Merge "Clean up docs around $wgUseSharedUploads"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 17 Jul 2018 05:05:44 +0000 (05:05 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 17 Jul 2018 05:05:44 +0000 (05:05 +0000)
164 files changed:
RELEASE-NOTES-1.32
autoload.php
docs/hooks.txt
includes/EditPage.php
includes/Linker.php
includes/OutputPage.php
includes/PathRouter.php
includes/Title.php
includes/api/ApiQuerySiteinfo.php
includes/api/i18n/ru.json
includes/api/i18n/zh-hant.json
includes/cache/LinkCache.php
includes/changes/ChangesList.php
includes/content/AbstractContent.php
includes/content/ContentHandler.php
includes/installer/MysqlUpdater.php
includes/installer/i18n/ar.json
includes/installer/i18n/ast.json
includes/installer/i18n/ba.json
includes/installer/i18n/be-tarask.json
includes/installer/i18n/bg.json
includes/installer/i18n/bn.json
includes/installer/i18n/br.json
includes/installer/i18n/bs.json
includes/installer/i18n/cs.json
includes/installer/i18n/de.json
includes/installer/i18n/el.json
includes/installer/i18n/en.json
includes/installer/i18n/es.json
includes/installer/i18n/eu.json
includes/installer/i18n/fi.json
includes/installer/i18n/fr.json
includes/installer/i18n/gl.json
includes/installer/i18n/he.json
includes/installer/i18n/hrx.json
includes/installer/i18n/hsb.json
includes/installer/i18n/hu.json
includes/installer/i18n/ia.json
includes/installer/i18n/id.json
includes/installer/i18n/it.json
includes/installer/i18n/ja.json
includes/installer/i18n/ko.json
includes/installer/i18n/lb.json
includes/installer/i18n/lij.json
includes/installer/i18n/mk.json
includes/installer/i18n/nan.json
includes/installer/i18n/nap.json
includes/installer/i18n/nb.json
includes/installer/i18n/nl.json
includes/installer/i18n/pl.json
includes/installer/i18n/pms.json
includes/installer/i18n/pt-br.json
includes/installer/i18n/pt.json
includes/installer/i18n/qqq.json
includes/installer/i18n/ru.json
includes/installer/i18n/sco.json
includes/installer/i18n/sr-ec.json
includes/installer/i18n/sv.json
includes/installer/i18n/th.json
includes/installer/i18n/tl.json
includes/installer/i18n/tr.json
includes/installer/i18n/uk.json
includes/installer/i18n/vi.json
includes/installer/i18n/war.json
includes/installer/i18n/zh-hans.json
includes/installer/i18n/zh-hant.json
includes/jobqueue/jobs/CategoryMembershipChangeJob.php
includes/libs/MapCacheLRU.php
includes/libs/filebackend/FileBackendStore.php
includes/libs/filebackend/SwiftFileBackend.php
includes/libs/objectcache/BagOStuff.php
includes/libs/objectcache/CachedBagOStuff.php
includes/libs/objectcache/MultiWriteBagOStuff.php
includes/libs/virtualrest/ParsoidVirtualRESTService.php
includes/libs/virtualrest/RestbaseVirtualRESTService.php
includes/page/Article.php
includes/page/PageArchive.php
includes/page/WikiPage.php
includes/parser/BlockLevelPass.php
includes/parser/Parser.php
includes/parser/ParserOptions.php
includes/parser/Sanitizer.php
includes/resourceloader/ResourceLoaderLanguageDataModule.php
includes/tidy/RemexCompatMunger.php
includes/user/PasswordReset.php
includes/widget/search/SearchFormWidget.php
languages/FakeConverter.php
languages/Language.php
languages/LanguageCode.php
languages/LanguageConverter.php
languages/data/Names.php
languages/i18n/af.json
languages/i18n/ar.json
languages/i18n/arq.json
languages/i18n/ast.json
languages/i18n/be-tarask.json
languages/i18n/bg.json
languages/i18n/bn.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/cs.json
languages/i18n/el.json
languages/i18n/es.json
languages/i18n/eu.json
languages/i18n/fi.json
languages/i18n/fr.json
languages/i18n/gcr.json
languages/i18n/ia.json
languages/i18n/io.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/ko.json
languages/i18n/lb.json
languages/i18n/lt.json
languages/i18n/mk.json
languages/i18n/mni.json
languages/i18n/my.json
languages/i18n/nan.json
languages/i18n/nb.json
languages/i18n/nn.json
languages/i18n/pl.json
languages/i18n/pnb.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/qu.json
languages/i18n/ro.json
languages/i18n/ru.json
languages/i18n/sat.json
languages/i18n/sd.json
languages/i18n/shy-latn.json
languages/i18n/sk.json
languages/i18n/skr-arab.json
languages/i18n/sl.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/sv.json
languages/i18n/tr.json
languages/i18n/uk.json
languages/i18n/ur.json
languages/i18n/yue.json
languages/i18n/zgh.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/messages/MessagesSat.php [new file with mode: 0644]
maintenance/removeUnusedAccounts.php
resources/src/mediawiki.language/mediawiki.language.init.js
resources/src/mediawiki.language/mediawiki.language.js
resources/src/mediawiki.page.gallery.js
resources/src/mediawiki.rcfilters/styles/mw.rcfilters.ui.ItemMenuOptionWidget.less
tests/parser/parserTests.txt
tests/phpunit/documentation/ReleaseNotesTest.php [new file with mode: 0644]
tests/phpunit/includes/PathRouterTest.php
tests/phpunit/includes/WebRequestTest.php
tests/phpunit/includes/content/WikitextContentTest.php
tests/phpunit/includes/libs/objectcache/BagOStuffTest.php
tests/phpunit/includes/page/PageArchiveTestBase.php
tests/phpunit/includes/parser/ParserOptionsTest.php
tests/phpunit/includes/user/PasswordResetTest.php
tests/phpunit/languages/LanguageCodeTest.php
tests/phpunit/languages/LanguageConverterTest.php
tests/phpunit/suite.xml
tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js
tests/selenium/specs/specialrecentchanges.js

index ac68967..da317de 100644 (file)
@@ -48,6 +48,14 @@ production.
 * The 'ImageBeforeProduceHTML' hook is now passed three new parameters, $parser,
   &$query and &$widthOption, allowing extensions even finer control over the
   resulting HTML code.
+* Added new 'ArticleShowPatrolFooter' hook, which allows extensions to determine
+  if the [mark as patrolled] link should be shown at the footer of patrollable
+  pages.
+* The array of hidden options ($opts) passed to the 'SpecialSearchPowerBox' hook
+  is now passed by reference, allowing extensions to modify or even unset it.
+* Added new 'OutputPageAfterGetHeadLinksArray' hook, allowing extensions to
+  modify the return value of OutputPage#getHeadLinksArray in order to add,
+  remove or otherwise alter the elements to be output in the page <head>.
 
 === External library changes in 1.32 ===
 * …
@@ -183,6 +191,9 @@ because of Phabricator reports.
   * getItemsData: Use getItems instead and get the data property
 * The hook 'LogEventsListGetExtraInputs' now needs a form descriptor array
   and not plain HTML.
+* LanguageCode::bcp47() now always returns a valid BCP 47 code.  This means
+  that some MediaWiki-specific language codes, such as `simple`, are mapped
+  into valid BCP 47 codes (eg `en-simple`).
 
 === Deprecations in 1.32 ===
 * Use of a StartProfiler.php file is deprecated in favour of placing
@@ -229,6 +240,12 @@ because of Phabricator reports.
   it had unexpected behavior (only marking text if it looked like a URL)
   and was only used in a single place in the code.  Use
   LanguageConverter::markNoConversion() instead.
+* (T197492) Language::truncate() was soft deprecated in 1.31 and is
+  hard deprecated in this release.  It has been split into two similar
+  methods, Language::truncateForVisual() and Language::truncateForDatabase(),
+  which measure length in characters and bytes, respectively.  Use
+  Language::truncateForVisual() when possible to provide equity to users
+  of multibyte scripts.
 * (T176526) EditPage::getContextTitle() falling back to $wgTitle when the
   context title is unset is now deprecated; anything creating an EditPage
   instance should set the context title via ::setContextTitle().
@@ -242,10 +259,15 @@ because of Phabricator reports.
   OutputPage::showFileCopyError() and OutputPage::showUnexpectedValueError().
 * The Replacer, DoubleReplacer, HashtableReplacer, and RegexlikeReplacer
   classes are now deprecated. Use a Closure instead.
+* (T194263) ContentHandler::makeParserOptions() is deprecated. Use
+  WikiPage::makeParserOptions() or ParserOptions::newCanonical() instead.
+* (T100681) Use of the Parsoid v1 API with the VirtualRESTService, deprecated in
+  MediaWiki 1.26,  is now hard-deprecated. All known clients were converted to
+  the Parsoid v3 API in May 2015.
 
 === Other changes in 1.32 ===
-* (T198811) The following tables have had their UNIQUE indexes turned into proper
-  PRIMARY KEYs for increased maintainability: interwiki, page_props,
+* (T198811) The following tables have had their UNIQUE indexes turned into
+  proper PRIMARY KEYs for increased maintainability: interwiki, page_props,
   protected_titles and site_identifiers.
 * …
 
index c535560..40b8acf 100644 (file)
@@ -1085,7 +1085,6 @@ $wgAutoloadLocalClasses = [
        'PasswordReset' => __DIR__ . '/includes/user/PasswordReset.php',
        'PatchSql' => __DIR__ . '/maintenance/patchSql.php',
        'PathRouter' => __DIR__ . '/includes/PathRouter.php',
-       'PathRouterPatternReplacer' => __DIR__ . '/includes/PathRouter.php',
        'PatrolLog' => __DIR__ . '/includes/logging/PatrolLog.php',
        'PatrolLogFormatter' => __DIR__ . '/includes/logging/PatrolLogFormatter.php',
        'Pbkdf2Password' => __DIR__ . '/includes/password/Pbkdf2Password.php',
index ff46503..fff5b24 100644 (file)
@@ -739,6 +739,11 @@ $user: the user who did the rollback
 $revision: the revision the page was reverted back to
 $current: the reverted revision
 
+'ArticleShowPatrolFooter': Called at the beginning of Article#showPatrolFooter.
+Extensions can use this to not show the [mark as patrolled] link in certain
+circumstances.
+$article: the Article object
+
 'ArticleUndelete': When one or more revisions of an article are restored.
 &$title: Title corresponding to the article restored
 $create: Whether or not the restoration caused the page to be created (i.e. it
@@ -2434,6 +2439,12 @@ users and/or IP addresses too.
 &$otherBlockLink: An array with links to other block logs
 $ip: The requested IP address or username
 
+'OutputPageAfterGetHeadLinksArray': Called in OutputPage#getHeadLinksArray right
+before returning the result.
+&$tags: array containing all <head> links generated so far. The array format is
+"link name or number => 'link HTML'".
+$out: the OutputPage object
+
 'OutputPageBeforeHTML': A page has been processed by the parser and the
 resulting HTML is about to be displayed.
 &$parserOutput: the parserOutput (object) that corresponds to the page
@@ -3339,7 +3350,7 @@ called.
 the advanced form, a.k.a. power search box.
 &$showSections: an array to add values with more options to
 $term: the search term (not a title object)
-$opts: an array of hidden options (containing 'redirs' and 'profile')
+&$opts: an array of hidden options (containing 'redirs' and 'profile')
 
 'SpecialSearchProfileForm': Allows modification of search profile forms.
 $search: special page object
index 2ae941f..a1cf3e2 100644 (file)
@@ -648,7 +648,7 @@ class EditPage {
                $this->isConflict = false;
 
                # Show applicable editing introductions
-               if ( $this->formtype === 'initial' || $this->firsttime ) {
+               if ( $this->formtype == 'initial' || $this->firsttime ) {
                        $this->showIntro();
                }
 
@@ -657,7 +657,7 @@ class EditPage {
                # that edit() already checked just in case someone tries to sneak
                # in the back door with a hand-edited submission URL.
 
-               if ( 'save' === $this->formtype ) {
+               if ( 'save' == $this->formtype ) {
                        $resultDetails = null;
                        $status = $this->attemptSave( $resultDetails );
                        if ( !$this->handleStatus( $status, $resultDetails ) ) {
@@ -667,7 +667,7 @@ class EditPage {
 
                # First time through: get contents, set time for conflict
                # checking, etc.
-               if ( 'initial' === $this->formtype || $this->firsttime ) {
+               if ( 'initial' == $this->formtype || $this->firsttime ) {
                        if ( $this->initialiseForm() === false ) {
                                $this->noSuchSectionPage();
                                return;
@@ -706,9 +706,9 @@ class EditPage {
                foreach ( $permErrors as $error ) {
                        if ( ( $this->preview || $this->diff )
                                && (
-                                       $error[0] === 'blockedtext' ||
-                                       $error[0] === 'autoblockedtext' ||
-                                       $error[0] === 'systemblockedtext'
+                                       $error[0] == 'blockedtext' ||
+                                       $error[0] == 'autoblockedtext' ||
+                                       $error[0] == 'systemblockedtext'
                                )
                        ) {
                                $remove[] = $error;
@@ -825,13 +825,13 @@ class EditPage {
                        // security reasons
                        return false;
                }
-               if ( $request->getVal( 'preview' ) === 'yes' ) {
+               if ( $request->getVal( 'preview' ) == 'yes' ) {
                        // Explicit override from request
                        return true;
-               } elseif ( $request->getVal( 'preview' ) === 'no' ) {
+               } elseif ( $request->getVal( 'preview' ) == 'no' ) {
                        // Explicit override from request
                        return false;
-               } elseif ( $this->section === 'new' ) {
+               } elseif ( $this->section == 'new' ) {
                        // Nothing *to* preview for new sections
                        return false;
                } elseif ( ( $request->getVal( 'preload' ) !== null || $this->mTitle->exists() )
@@ -895,7 +895,7 @@ class EditPage {
                        throw new ErrorPageError( 'sectioneditnotsupported-title', 'sectioneditnotsupported-text' );
                }
 
-               $this->isNew = !$this->mTitle->exists() || $this->section === 'new';
+               $this->isNew = !$this->mTitle->exists() || $this->section == 'new';
 
                if ( $request->wasPosted() ) {
                        # These fields need to be checked for encoding.
@@ -995,8 +995,8 @@ class EditPage {
 
                        $user = $this->context->getUser();
                        # Don't force edit summaries when a user is editing their own user or talk page
-                       if ( ( $this->mTitle->mNamespace === NS_USER || $this->mTitle->mNamespace === NS_USER_TALK )
-                               && $this->mTitle->getText() === $user->getName()
+                       if ( ( $this->mTitle->mNamespace == NS_USER || $this->mTitle->mNamespace == NS_USER_TALK )
+                               && $this->mTitle->getText() == $user->getName()
                        ) {
                                $this->allowBlankSummary = true;
                        } else {
@@ -1036,11 +1036,11 @@ class EditPage {
 
                        // When creating a new section, we can preload a section title by passing it as the
                        // preloadtitle parameter in the URL (T15100)
-                       if ( $this->section === 'new' && $request->getVal( 'preloadtitle' ) ) {
+                       if ( $this->section == 'new' && $request->getVal( 'preloadtitle' ) ) {
                                $this->sectiontitle = $request->getVal( 'preloadtitle' );
                                // Once wpSummary isn't being use for setting section titles, we should delete this.
                                $this->summary = $request->getVal( 'preloadtitle' );
-                       } elseif ( $this->section !== 'new' && $request->getVal( 'summary' ) ) {
+                       } elseif ( $this->section != 'new' && $request->getVal( 'summary' ) ) {
                                $this->summary = $request->getText( 'summary' );
                                if ( $this->summary !== '' ) {
                                        $this->hasPresetSummary = true;
@@ -1164,8 +1164,8 @@ class EditPage {
                $request = $this->context->getRequest();
                // For message page not locally set, use the i18n message.
                // For other non-existent articles, use preload text if any.
-               if ( !$this->mTitle->exists() || $this->section === 'new' ) {
-                       if ( $this->mTitle->getNamespace() === NS_MEDIAWIKI && $this->section !== 'new' ) {
+               if ( !$this->mTitle->exists() || $this->section == 'new' ) {
+                       if ( $this->mTitle->getNamespace() == NS_MEDIAWIKI && $this->section != 'new' ) {
                                # If this is a system message, get the default text.
                                $msg = $this->mTitle->getDefaultMessageText();
 
@@ -1242,7 +1242,7 @@ class EditPage {
 
                                                                # If we just undid one rev, use an autosummary
                                                                $firstrev = $oldrev->getNext();
-                                                               if ( $firstrev && $firstrev->getId() === $undo ) {
+                                                               if ( $firstrev && $firstrev->getId() == $undo ) {
                                                                        $userText = $undorev->getUserText();
                                                                        if ( $userText === '' ) {
                                                                                $undoSummary = $this->context->msg(
@@ -1277,7 +1277,7 @@ class EditPage {
                                        $out = $this->context->getOutput();
                                        // Messages: undo-success, undo-failure, undo-main-slot-only, undo-norev,
                                        // undo-nochange.
-                                       $class = ( $undoMsg === 'success' ? '' : 'error ' ) . "mw-undo-{$undoMsg}";
+                                       $class = ( $undoMsg == 'success' ? '' : 'error ' ) . "mw-undo-{$undoMsg}";
                                        $this->editFormPageTop .= $out->parse( "<div class=\"{$class}\">" .
                                                $this->context->msg( 'undo-' . $undoMsg )->plain() . '</div>', true, /* interface */true );
                                }
@@ -1307,7 +1307,7 @@ class EditPage {
         * @return Content|null
         */
        private function getOriginalContent( User $user ) {
-               if ( $this->section === 'new' ) {
+               if ( $this->section == 'new' ) {
                        return $this->getCurrentContent();
                }
                $revision = $this->mArticle->getRevisionFetched();
@@ -1498,7 +1498,7 @@ class EditPage {
                $postEditKey = self::POST_EDIT_COOKIE_KEY_PREFIX . $revisionId;
 
                $val = 'saved';
-               if ( $statusValue === self::AS_SUCCESS_NEW_ARTICLE ) {
+               if ( $statusValue == self::AS_SUCCESS_NEW_ARTICLE ) {
                        $val = 'created';
                } elseif ( $this->oldid ) {
                        $val = 'restored';
@@ -1553,8 +1553,8 @@ class EditPage {
                 * @todo FIXME: once the interface for internalAttemptSave() is made
                 *   nicer, this should use the message in $status
                 */
-               if ( $status->value === self::AS_SUCCESS_UPDATE
-                       || $status->value === self::AS_SUCCESS_NEW_ARTICLE
+               if ( $status->value == self::AS_SUCCESS_UPDATE
+                       || $status->value == self::AS_SUCCESS_NEW_ARTICLE
                ) {
                        $this->incrementResolvedConflicts();
 
@@ -1617,7 +1617,7 @@ class EditPage {
                                );
 
                                if ( $resultDetails['redirect'] ) {
-                                       if ( $extraQuery === '' ) {
+                                       if ( $extraQuery == '' ) {
                                                $extraQuery = 'redirect=no';
                                        } else {
                                                $extraQuery = 'redirect=no&' . $extraQuery;
@@ -1684,7 +1684,7 @@ class EditPage {
         */
        protected function runPostMergeFilters( Content $content, Status $status, User $user ) {
                // Run old style post-section-merge edit filter
-               if ( $this->hookError !== '' ) {
+               if ( $this->hookError != '' ) {
                        # ...or the hook could be expecting us to produce an error
                        $status->fatal( 'hookaborted' );
                        $status->value = self::AS_HOOK_ERROR_EXPECTED;
@@ -1846,7 +1846,7 @@ ERROR;
                }
 
                # Check image redirect
-               if ( $this->mTitle->getNamespace() === NS_FILE &&
+               if ( $this->mTitle->getNamespace() == NS_FILE &&
                        $textbox_content->isRedirect() &&
                        !$user->isAllowed( 'upload' )
                ) {
@@ -1858,7 +1858,7 @@ ERROR;
 
                # Check for spam
                $match = self::matchSummarySpamRegex( $this->summary );
-               if ( $match === false && $this->section === 'new' ) {
+               if ( $match === false && $this->section == 'new' ) {
                        # $wgSpamRegex is enforced on this new heading/summary because, unlike
                        # regular summaries, it is added to the actual wikitext.
                        if ( $this->sectiontitle !== '' ) {
@@ -1891,7 +1891,7 @@ ERROR;
                        $status->fatal( 'hookaborted' );
                        $status->value = self::AS_HOOK_ERROR;
                        return $status;
-               } elseif ( $this->hookError !== '' ) {
+               } elseif ( $this->hookError != '' ) {
                        # ...or the hook could be expecting us to produce an error
                        $status->fatal( 'hookaborted' );
                        $status->value = self::AS_HOOK_ERROR_EXPECTED;
@@ -2020,7 +2020,7 @@ ERROR;
                        $content = $textbox_content;
 
                        $result['sectionanchor'] = '';
-                       if ( $this->section === 'new' ) {
+                       if ( $this->section == 'new' ) {
                                if ( $this->sectiontitle !== '' ) {
                                        // Insert the section title above the content.
                                        $content = $content->addSectionHeader( $this->sectiontitle );
@@ -2047,13 +2047,13 @@ ERROR;
                        // revision that was current when editing was initiated on the client.
                        // This is checked based on the timestamp and revision ID.
                        // TODO: the timestamp based check can probably go away now.
-                       if ( $timestamp !== $this->edittime
-                               || ( $this->editRevId !== null && $this->editRevId !== $latest )
+                       if ( $timestamp != $this->edittime
+                               || ( $this->editRevId !== null && $this->editRevId != $latest )
                        ) {
                                $this->isConflict = true;
-                               if ( $this->section === 'new' ) {
-                                       if ( $this->page->getUserText() === $user->getName() &&
-                                               $this->page->getComment() === $this->newSectionSummary()
+                               if ( $this->section == 'new' ) {
+                                       if ( $this->page->getUserText() == $user->getName() &&
+                                               $this->page->getComment() == $this->newSectionSummary()
                                        ) {
                                                // Probably a duplicate submission of a new comment.
                                                // This can happen when CDN resends a request after
@@ -2142,9 +2142,9 @@ ERROR;
                                return $status;
                        }
 
-                       if ( $this->section === 'new' ) {
+                       if ( $this->section == 'new' ) {
                                // Handle the user preference to force summaries here
-                               if ( !$this->allowBlankSummary && trim( $this->summary ) === '' ) {
+                               if ( !$this->allowBlankSummary && trim( $this->summary ) == '' ) {
                                        $this->missingSummary = true;
                                        $status->fatal( 'missingsummary' ); // or 'missingcommentheader' if $section == 'new'. Blegh
                                        $status->value = self::AS_SUMMARY_NEEDED;
@@ -2152,7 +2152,7 @@ ERROR;
                                }
 
                                // Do not allow the user to post an empty comment
-                               if ( $this->textbox1 === '' ) {
+                               if ( $this->textbox1 == '' ) {
                                        $this->missingComment = true;
                                        $status->fatal( 'missingcommenttext' );
                                        $status->value = self::AS_TEXTBOX_EMPTY;
@@ -2161,7 +2161,7 @@ ERROR;
                        } elseif ( !$this->allowBlankSummary
                                && !$content->equals( $this->getOriginalContent( $user ) )
                                && !$content->isRedirect()
-                               && md5( $this->summary ) === $this->autoSumm
+                               && md5( $this->summary ) == $this->autoSumm
                        ) {
                                $this->missingSummary = true;
                                $status->fatal( 'missingsummary' );
@@ -2171,9 +2171,9 @@ ERROR;
 
                        # All's well
                        $sectionanchor = '';
-                       if ( $this->section === 'new' ) {
+                       if ( $this->section == 'new' ) {
                                $this->summary = $this->newSectionSummary( $sectionanchor );
-                       } elseif ( $this->section !== '' ) {
+                       } elseif ( $this->section != '' ) {
                                # Try to get a section anchor from the section source, redirect
                                # to edited section if header found.
                                # XXX: Might be better to integrate this into Article::replaceSectionAtRev
@@ -2305,7 +2305,7 @@ ERROR;
                $watch = $this->watchthis;
                // Do this in its own transaction to reduce contention...
                DeferredUpdates::addCallableUpdate( function () use ( $user, $title, $watch ) {
-                       if ( $watch === $user->isWatched( $title, User::IGNORE_USER_RIGHTS ) ) {
+                       if ( $watch == $user->isWatched( $title, User::IGNORE_USER_RIGHTS ) ) {
                                return; // nothing to change
                        }
                        WatchAction::doWatchOrUnwatch( $watch, $title, $user );
@@ -2451,11 +2451,11 @@ ERROR;
                $contextTitle = $this->getContextTitle();
                if ( $this->isConflict ) {
                        $msg = 'editconflict';
-               } elseif ( $contextTitle->exists() && $this->section !== '' ) {
-                       $msg = $this->section === 'new' ? 'editingcomment' : 'editingsection';
+               } elseif ( $contextTitle->exists() && $this->section != '' ) {
+                       $msg = $this->section == 'new' ? 'editingcomment' : 'editingsection';
                } else {
                        $msg = $contextTitle->exists()
-                               || ( $contextTitle->getNamespace() === NS_MEDIAWIKI
+                               || ( $contextTitle->getNamespace() == NS_MEDIAWIKI
                                        && $contextTitle->getDefaultMessageText() !== false
                                )
                                ? 'editing'
@@ -2499,7 +2499,7 @@ ERROR;
                $out = $this->context->getOutput();
                $namespace = $this->mTitle->getNamespace();
 
-               if ( $namespace === NS_MEDIAWIKI ) {
+               if ( $namespace == NS_MEDIAWIKI ) {
                        # Show a warning if editing an interface message
                        $out->wrapWikiMsg( "<div class='mw-editinginterface'>\n$1\n</div>", 'editinginterface' );
                        # If this is a default message (but not css, json, or js),
@@ -2515,7 +2515,7 @@ ERROR;
                                                'translateinterface' );
                                }
                        }
-               } elseif ( $namespace === NS_FILE ) {
+               } elseif ( $namespace == NS_FILE ) {
                        # Show a hint to shared repo
                        $file = wfFindFile( $this->mTitle );
                        if ( $file && !$file->isLocal() ) {
@@ -2537,7 +2537,7 @@ ERROR;
 
                # Show a warning message when someone creates/edits a user (talk) page but the user does not exist
                # Show log extract when the user is currently blocked
-               if ( $namespace === NS_USER || $namespace === NS_USER_TALK ) {
+               if ( $namespace == NS_USER || $namespace == NS_USER_TALK ) {
                        $username = explode( '/', $this->mTitle->getText(), 2 )[0];
                        $user = User::newFromName( $username, false /* allow IP users */ );
                        $ip = User::isIP( $username );
@@ -2545,7 +2545,7 @@ ERROR;
                        if ( !( $user && $user->isLoggedIn() ) && !$ip ) { # User does not exist
                                $out->wrapWikiMsg( "<div class=\"mw-userpage-userdoesnotexist error\">\n$1\n</div>",
                                        [ 'userpage-userdoesnotexist', wfEscapeWikiText( $username ) ] );
-                       } elseif ( !is_null( $block ) && $block->getType() !== Block::TYPE_AUTO ) {
+                       } elseif ( !is_null( $block ) && $block->getType() != Block::TYPE_AUTO ) {
                                # Show log extract if the user is currently blocked
                                LogEventsList::showLogExtract(
                                        $out,
@@ -2699,7 +2699,7 @@ ERROR;
                # we parse this near the beginning so that setHeaders can do the title
                # setting work instead of leaving it in getPreviewText
                $previewOutput = '';
-               if ( $this->formtype === 'preview' ) {
+               if ( $this->formtype == 'preview' ) {
                        $previewOutput = $this->getPreviewText();
                }
 
@@ -2715,7 +2715,7 @@ ERROR;
                $this->addEditNotices();
 
                if ( !$this->isConflict &&
-                       $this->section !== '' &&
+                       $this->section != '' &&
                        !$this->isSectionEditSupported() ) {
                        // We use $this->section to much before this and getVal('wgSection') directly in other places
                        // at this point we can't reset $this->section to '' to fallback to non-section editing.
@@ -2737,7 +2737,7 @@ ERROR;
 
                $showToolbar = true;
                if ( $this->wasDeletedSinceLastEdit() ) {
-                       if ( $this->formtype === 'save' ) {
+                       if ( $this->formtype == 'save' ) {
                                // Hide the toolbar and edit area, user can click preview to get it back
                                // Add an confirmation checkbox and explanation.
                                $showToolbar = false;
@@ -2796,7 +2796,7 @@ ERROR;
                // Put these up at the top to ensure they aren't lost on early form submission
                $this->showFormBeforeText();
 
-               if ( $this->wasDeletedSinceLastEdit() && 'save' === $this->formtype ) {
+               if ( $this->wasDeletedSinceLastEdit() && 'save' == $this->formtype ) {
                        $username = $this->lastDelete->user_name;
                        $comment = CommentStore::getStore()
                                ->getComment( 'log_comment', $this->lastDelete )->text;
@@ -2828,7 +2828,7 @@ ERROR;
                # ####
                # For a bit more sophisticated detection of blank summaries, hash the
                # automatic one and pass that in the hidden field wpAutoSummary.
-               if ( $this->missingSummary || ( $this->section === 'new' && $this->nosummary ) ) {
+               if ( $this->missingSummary || ( $this->section == 'new' && $this->nosummary ) ) {
                        $out->addHTML( Html::hidden( 'wpIgnoreBlankSummary', true ) );
                }
 
@@ -2858,7 +2858,7 @@ ERROR;
 
                $out->enableOOUI();
 
-               if ( $this->section === 'new' ) {
+               if ( $this->section == 'new' ) {
                        $this->showSummaryInput( true, $this->summary );
                        $out->addHTML( $this->getSummaryPreview( true, $this->summary ) );
                }
@@ -2980,7 +2980,7 @@ ERROR;
                $type = false;
                if ( $this->preview ) {
                        $type = 'preview';
-               } elseif ( $this->section !== '' ) {
+               } elseif ( $this->section != '' ) {
                        $type = 'section';
                }
 
@@ -3012,7 +3012,7 @@ ERROR;
                        $this->addExplainConflictHeader( $out );
                        $this->editRevId = $this->page->getLatest();
                } else {
-                       if ( $this->section !== '' && $this->section !== 'new' ) {
+                       if ( $this->section != '' && $this->section != 'new' ) {
                                if ( !$this->summary && !$this->preview && !$this->diff ) {
                                        $sectionTitle = self::extractSectionTitle( $this->textbox1 ); // FIXME: use Content object
                                        if ( $sectionTitle !== false ) {
@@ -3027,14 +3027,14 @@ ERROR;
                                $out->wrapWikiMsg( "<div id='mw-missingcommenttext'>\n$1\n</div>", 'missingcommenttext' );
                        }
 
-                       if ( $this->missingSummary && $this->section !== 'new' ) {
+                       if ( $this->missingSummary && $this->section != 'new' ) {
                                $out->wrapWikiMsg(
                                        "<div id='mw-missingsummary'>\n$1\n</div>",
                                        [ 'missingsummary', $buttonLabel ]
                                );
                        }
 
-                       if ( $this->missingSummary && $this->section === 'new' ) {
+                       if ( $this->missingSummary && $this->section == 'new' ) {
                                $out->wrapWikiMsg(
                                        "<div id='mw-missingcommentheader'>\n$1\n</div>",
                                        [ 'missingcommentheader', $buttonLabel ]
@@ -3059,7 +3059,7 @@ ERROR;
                                $out->addWikiText( $this->hookError );
                        }
 
-                       if ( $this->section !== 'new' ) {
+                       if ( $this->section != 'new' ) {
                                $revision = $this->mArticle->getRevisionFetched();
                                if ( $revision ) {
                                        // Let sysop know that this will make private content public if saved
@@ -3096,7 +3096,7 @@ ERROR;
                                [ 'readonlywarning', wfReadOnlyReason() ]
                        );
                } elseif ( $user->isAnon() ) {
-                       if ( $this->formtype !== 'preview' ) {
+                       if ( $this->formtype != 'preview' ) {
                                $out->wrapWikiMsg(
                                        "<div id='mw-anon-edit-warning' class='warningbox'>\n$1\n</div>",
                                        [ 'anoneditwarning',
@@ -3331,7 +3331,7 @@ ERROR;
         * @param string|null $textoverride Optional text to override $this->textarea1 with
         */
        protected function showTextbox1( $customAttribs = null, $textoverride = null ) {
-               if ( $this->wasDeletedSinceLastEdit() && $this->formtype === 'save' ) {
+               if ( $this->wasDeletedSinceLastEdit() && $this->formtype == 'save' ) {
                        $attribs = [ 'style' => 'display:none;' ];
                } else {
                        $builder = new TextboxBuilder();
@@ -3384,14 +3384,14 @@ ERROR;
 
                $attribs = [ 'id' => 'wikiPreview', 'class' => implode( ' ', $classes ) ];
 
-               if ( $this->formtype !== 'preview' ) {
+               if ( $this->formtype != 'preview' ) {
                        $attribs['style'] = 'display: none;';
                }
 
                $out = $this->context->getOutput();
                $out->addHTML( Xml::openElement( 'div', $attribs ) );
 
-               if ( $this->formtype === 'preview' ) {
+               if ( $this->formtype == 'preview' ) {
                        $this->showPreview( $previewOutput );
                } else {
                        // Empty content container for LivePreview
@@ -3403,7 +3403,7 @@ ERROR;
 
                $out->addHTML( '</div>' );
 
-               if ( $this->formtype === 'diff' ) {
+               if ( $this->formtype == 'diff' ) {
                        try {
                                $this->showDiff();
                        } catch ( MWContentSerializationException $ex ) {
@@ -3450,7 +3450,7 @@ ERROR;
 
                $oldtitlemsg = 'currentrev';
                # if message does not exist, show diff against the preloaded default
-               if ( $this->mTitle->getNamespace() === NS_MEDIAWIKI && !$this->mTitle->exists() ) {
+               if ( $this->mTitle->getNamespace() == NS_MEDIAWIKI && !$this->mTitle->exists() ) {
                        $oldtext = $this->mTitle->getDefaultMessageText();
                        if ( $oldtext !== false ) {
                                $oldtitlemsg = 'defaultmessagetext';
@@ -3641,7 +3641,7 @@ ERROR;
                $out = $this->context->getOutput();
                $out->addHTML( "<div class='editOptions'>\n" );
 
-               if ( $this->section !== 'new' ) {
+               if ( $this->section != 'new' ) {
                        $this->showSummaryInput( false, $this->summary );
                        $out->addHTML( $this->getSummaryPreview( false, $this->summary ) );
                }
@@ -3879,17 +3879,17 @@ ERROR;
                                        $level = false;
                                }
 
-                               if ( $content->getModel() === CONTENT_MODEL_CSS ) {
+                               if ( $content->getModel() == CONTENT_MODEL_CSS ) {
                                        $format = 'css';
                                        if ( $level === 'user' && !$config->get( 'AllowUserCss' ) ) {
                                                $format = false;
                                        }
-                               } elseif ( $content->getModel() === CONTENT_MODEL_JSON ) {
+                               } elseif ( $content->getModel() == CONTENT_MODEL_JSON ) {
                                        $format = 'json';
                                        if ( $level === 'user' /* No comparable 'AllowUserJson' */ ) {
                                                $format = false;
                                        }
-                               } elseif ( $content->getModel() === CONTENT_MODEL_JAVASCRIPT ) {
+                               } elseif ( $content->getModel() == CONTENT_MODEL_JAVASCRIPT ) {
                                        $format = 'js';
                                        if ( $level === 'user' && !$config->get( 'AllowUserJs' ) ) {
                                                $format = false;
@@ -4006,7 +4006,7 @@ ERROR;
         * @return array
         */
        public function getTemplates() {
-               if ( $this->preview || $this->section !== '' ) {
+               if ( $this->preview || $this->section != '' ) {
                        $templates = [];
                        if ( !isset( $this->mParserOutput ) ) {
                                return $templates;
index e625a02..f160fd6 100644 (file)
@@ -1496,7 +1496,7 @@ class Linker {
         * @return string
         */
        public static function tocIndent() {
-               return "\n<ul>";
+               return "\n<ul>\n";
        }
 
        /**
@@ -1527,9 +1527,9 @@ class Linker {
                        $classes .= " tocsection-$sectionIndex";
                }
 
-               // \n<li class="$classes"><a href="#$anchor"><span class="tocnumber">
+               // <li class="$classes"><a href="#$anchor"><span class="tocnumber">
                // $tocnumber</span> <span class="toctext">$tocline</span></a>
-               return "\n" . Html::openElement( 'li', [ 'class' => $classes ] )
+               return Html::openElement( 'li', [ 'class' => $classes ] )
                        . Html::rawElement( 'a',
                                [ 'href' => "#$anchor" ],
                                Html::element( 'span', [ 'class' => 'tocnumber' ], $tocnumber )
@@ -1564,6 +1564,7 @@ class Linker {
                return '<div id="toc" class="toc">'
                        . Html::element( 'input', [
                                'type' => 'checkbox',
+                               'role' => 'button',
                                'id' => 'toctogglecheckbox',
                                'class' => 'toctogglecheckbox',
                                'style' => 'display:none',
index 34de7c6..5965cbe 100644 (file)
@@ -3530,6 +3530,13 @@ class OutputPage extends ContextSource {
                        ] );
                }
 
+               // Allow extensions to add, remove and/or otherwise manipulate these links
+               // If you want only to *add* <head> links, please use the addHeadItem()
+               // (or addHeadItems() for multiple items) method instead.
+               // This hook is provided as a last resort for extensions to modify these
+               // links before the output is sent to client.
+               Hooks::run( 'OutputPageAfterGetHeadLinksArray', [ &$tags, $this ] );
+
                return $tags;
        }
 
index cc6fc4a..f24e298 100644 (file)
@@ -258,7 +258,7 @@ class PathRouter {
 
        /**
         * @param string $path
-        * @param string $pattern
+        * @param object $pattern
         * @return array|null
         */
        protected static function extractTitle( $path, $pattern ) {
@@ -319,13 +319,8 @@ class PathRouter {
                                        $value = $paramData['value'];
                                } elseif ( isset( $paramData['pattern'] ) ) {
                                        // For patterns we have to make value replacements on the string
-                                       $value = $paramData['pattern'];
-                                       $replacer = new PathRouterPatternReplacer;
-                                       $replacer->params = $m;
-                                       if ( isset( $pattern->key ) ) {
-                                               $replacer->key = $pattern->key;
-                                       }
-                                       $value = $replacer->replace( $value );
+                                       $value = self::expandParamValue( $m, $pattern->key ?? null,
+                                               $paramData['pattern'] );
                                        if ( $value === false ) {
                                                // Pattern required data that wasn't available, abort
                                                return null;
@@ -352,48 +347,43 @@ class PathRouter {
                return $matches;
        }
 
-}
-
-class PathRouterPatternReplacer {
-
-       public $key, $params, $error;
-
        /**
-        * Replace keys inside path router patterns with text.
-        * We do this inside of a replacement callback because after replacement we can't tell the
-        * difference between a $1 that was not replaced and a $1 that was part of
-        * the content a $1 was replaced with.
-        * @param string $value
+        * Replace $key etc. in param values with the matched strings from the path.
+        *
+        * @param array $pathMatches The match results from the path
+        * @param string|null $key The key of the matching pattern
+        * @param string $value The param value to be expanded
         * @return string|false
         */
-       public function replace( $value ) {
-               $this->error = false;
-               $value = preg_replace_callback( '/\$(\d+|key)/u', [ $this, 'callback' ], $value );
-               if ( $this->error ) {
-                       return false;
-               }
-               return $value;
-       }
+       protected static function expandParamValue( $pathMatches, $key, $value ) {
+               $error = false;
 
-       /**
-        * @param array $m
-        * @return string
-        */
-       protected function callback( $m ) {
-               if ( $m[1] == "key" ) {
-                       if ( is_null( $this->key ) ) {
-                               $this->error = true;
-                               return '';
-                       }
-                       return $this->key;
-               } else {
-                       $d = $m[1];
-                       if ( !isset( $this->params["par$d"] ) ) {
-                               $this->error = true;
-                               return '';
+               $replacer = function ( $m ) use ( $pathMatches, $key, &$error ) {
+                       if ( $m[1] == "key" ) {
+                               if ( is_null( $key ) ) {
+                                       $error = true;
+
+                                       return '';
+                               }
+
+                               return $key;
+                       } else {
+                               $d = $m[1];
+                               if ( !isset( $pathMatches["par$d"] ) ) {
+                                       $error = true;
+
+                                       return '';
+                               }
+
+                               return rawurldecode( $pathMatches["par$d"] );
                        }
-                       return rawurldecode( $this->params["par$d"] );
+               };
+
+               $value = preg_replace_callback( '/\$(\d+|key)/u', $replacer, $value );
+               if ( $error ) {
+                       return false;
                }
-       }
 
+               return $value;
+       }
 }
index 8586ad7..b583554 100644 (file)
@@ -37,7 +37,7 @@ use MediaWiki\MediaWikiServices;
  *       and does not rely on global state or the database.
  */
 class Title implements LinkTarget {
-       /** @var HashBagOStuff */
+       /** @var MapCacheLRU */
        static private $titleCache = null;
 
        /**
@@ -371,11 +371,11 @@ class Title implements LinkTarget {
        }
 
        /**
-        * @return HashBagOStuff
+        * @return MapCacheLRU
         */
        private static function getTitleCache() {
                if ( self::$titleCache == null ) {
-                       self::$titleCache = new HashBagOStuff( [ 'maxKeys' => self::CACHE_MAX ] );
+                       self::$titleCache = new MapCacheLRU( self::CACHE_MAX );
                }
                return self::$titleCache;
        }
index 4b408fc..f23c6a6 100644 (file)
@@ -705,7 +705,10 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                $data = [];
 
                foreach ( $langNames as $code => $name ) {
-                       $lang = [ 'code' => $code ];
+                       $lang = [
+                               'code' => $code,
+                               'bcp47' => LanguageCode::bcp47( $code ),
+                       ];
                        ApiResult::setContentValue( $lang, 'name', $name );
                        $data[] = $lang;
                }
index 1372af7..4df71ba 100644 (file)
@@ -33,7 +33,8 @@
                        "Ole Yves",
                        "AttemptToCallNil",
                        "Movses",
-                       "Stjn"
+                       "Stjn",
+                       "Edward Chernenko"
                ]
        },
        "apihelp-main-extended-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:Special:MyLanguage/API:Main_page|Документация]]\n* [[mw:Special:MyLanguage/API:FAQ|ЧаВО]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Почтовая рассылка]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Новости API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Ошибки и запросы]\n</div>\n<strong>Статус:</strong> MediaWiki API — зрелый и стабильный интерфейс, активно поддерживаемый и улучшаемый. Мы стараемся избегать ломающих изменений, однако изредка они могут быть необходимы. Подпишитесь на [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ почтовую рассылку mediawiki-api-announce], чтобы быть в курсе обновлений.\n\n<strong>Ошибочные запросы:</strong> Если API получает запрос с ошибкой, вернётся заголовок HTTP с ключом «MediaWiki-API-Error», после чего значение заголовка и код ошибки будут отправлены обратно и установлены в то же значение. Более подробную информацию см. [[mw:Special:MyLanguage/API:Errors_and_warnings|API: Ошибки и предупреждения]].\n\n<p class=\"mw-apisandbox-link\"><strong>Тестирование:</strong> для удобства тестирования API-запросов, см. [[Special:ApiSandbox]].</p>",
        "apihelp-parse-paramvalue-prop-headitems": "Возвращает элементы, которые следует поместить в <code>&lt;head&gt;</code> страницы.",
        "apihelp-parse-paramvalue-prop-headhtml": "Возвращает распарсенный <code>&lt;head&gt;</code> страницы.",
        "apihelp-parse-paramvalue-prop-modules": "Возвращает использованные на странице модули ResourceLoader. Для загрузки, используйте <code>mw.loader.using()</code>. Одновременно с <kbd>modules</kbd> должно быть запрошено либо <kbd>jsconfigvars</kbd>, либо <kbd>encodedjsconfigvars</kbd>.",
-       "apihelp-parse-paramvalue-prop-jsconfigvars": "Возвращает переменные JavaScript с данными настроек для этой страницы. Для их применения используйте <code>mw.condig.set()</code>.",
+       "apihelp-parse-paramvalue-prop-jsconfigvars": "Возвращает переменные JavaScript с данными настроек для этой страницы. Для их применения используйте <code>mw.config.set()</code>.",
        "apihelp-parse-paramvalue-prop-encodedjsconfigvars": "Возвращает переменные JavaScript с данными настроек для этой страницы в виде JSON-строки.",
        "apihelp-parse-paramvalue-prop-indicators": "Возвращает HTML-код индикаторов, использованных на данной странице.",
        "apihelp-parse-paramvalue-prop-iwlinks": "Возвращает интервики-ссылки из распарсенного вики-текста.",
index ac7a7b5..8e96b31 100644 (file)
        "apihelp-query+allredirects-param-limit": "要回傳的項目總數。",
        "apihelp-query+allrevisions-summary": "列出所有修訂版本。",
        "apihelp-query+alltransclusions-param-limit": "要回傳的項目總數。",
+       "apihelp-query+allusers-param-from": "起始列舉的使用者名稱。",
+       "apihelp-query+allusers-example-Y": "列出以<kbd>Y</kbd>開頭的使用者。",
        "apihelp-query+authmanagerinfo-summary": "取得目前身分核對狀態的資訊。",
        "apihelp-query+categories-param-limit": "要回傳的分類數量。",
        "apihelp-query+categoryinfo-summary": "回傳有關指定分類的資訊。",
index 58ed771..260038a 100644 (file)
@@ -32,10 +32,10 @@ use MediaWiki\MediaWikiServices;
  * @ingroup Cache
  */
 class LinkCache {
-       /** @var HashBagOStuff */
-       private $mGoodLinks;
-       /** @var HashBagOStuff */
-       private $mBadLinks;
+       /** @var MapCacheLRU */
+       private $goodLinks;
+       /** @var MapCacheLRU */
+       private $badLinks;
        /** @var WANObjectCache */
        private $wanCache;
 
@@ -52,8 +52,8 @@ class LinkCache {
        const MAX_SIZE = 10000;
 
        public function __construct( TitleFormatter $titleFormatter, WANObjectCache $cache ) {
-               $this->mGoodLinks = new HashBagOStuff( [ 'maxKeys' => self::MAX_SIZE ] );
-               $this->mBadLinks = new HashBagOStuff( [ 'maxKeys' => self::MAX_SIZE ] );
+               $this->goodLinks = new MapCacheLRU( self::MAX_SIZE );
+               $this->badLinks = new MapCacheLRU( self::MAX_SIZE );
                $this->wanCache = $cache;
                $this->titleFormatter = $titleFormatter;
        }
@@ -87,7 +87,7 @@ class LinkCache {
         * @return int Page ID or zero
         */
        public function getGoodLinkID( $title ) {
-               $info = $this->mGoodLinks->get( $title );
+               $info = $this->goodLinks->get( $title );
                if ( !$info ) {
                        return 0;
                }
@@ -103,7 +103,7 @@ class LinkCache {
         */
        public function getGoodLinkFieldObj( LinkTarget $target, $field ) {
                $dbkey = $this->titleFormatter->getPrefixedDBkey( $target );
-               $info = $this->mGoodLinks->get( $dbkey );
+               $info = $this->goodLinks->get( $dbkey );
                if ( !$info ) {
                        return null;
                }
@@ -116,7 +116,7 @@ class LinkCache {
         */
        public function isBadLink( $title ) {
                // Use get() to ensure it records as used for LRU.
-               return $this->mBadLinks->get( $title ) !== false;
+               return $this->badLinks->has( $title );
        }
 
        /**
@@ -134,7 +134,7 @@ class LinkCache {
                $revision = 0, $model = null, $lang = null
        ) {
                $dbkey = $this->titleFormatter->getPrefixedDBkey( $target );
-               $this->mGoodLinks->set( $dbkey, [
+               $this->goodLinks->set( $dbkey, [
                        'id' => (int)$id,
                        'length' => (int)$len,
                        'redirect' => (int)$redir,
@@ -153,7 +153,7 @@ class LinkCache {
         */
        public function addGoodLinkObjFromRow( LinkTarget $target, $row ) {
                $dbkey = $this->titleFormatter->getPrefixedDBkey( $target );
-               $this->mGoodLinks->set( $dbkey, [
+               $this->goodLinks->set( $dbkey, [
                        'id' => intval( $row->page_id ),
                        'length' => intval( $row->page_len ),
                        'redirect' => intval( $row->page_is_redirect ),
@@ -169,7 +169,7 @@ class LinkCache {
        public function addBadLinkObj( LinkTarget $target ) {
                $dbkey = $this->titleFormatter->getPrefixedDBkey( $target );
                if ( !$this->isBadLink( $dbkey ) ) {
-                       $this->mBadLinks->set( $dbkey, 1 );
+                       $this->badLinks->set( $dbkey, 1 );
                }
        }
 
@@ -177,7 +177,7 @@ class LinkCache {
         * @param string $title Prefixed DB key
         */
        public function clearBadLink( $title ) {
-               $this->mBadLinks->delete( $title );
+               $this->badLinks->clear( $title );
        }
 
        /**
@@ -185,8 +185,8 @@ class LinkCache {
         */
        public function clearLink( LinkTarget $target ) {
                $dbkey = $this->titleFormatter->getPrefixedDBkey( $target );
-               $this->mBadLinks->delete( $dbkey );
-               $this->mGoodLinks->delete( $dbkey );
+               $this->badLinks->clear( $dbkey );
+               $this->goodLinks->clear( $dbkey );
        }
 
        /**
@@ -332,7 +332,7 @@ class LinkCache {
         * Clears cache
         */
        public function clear() {
-               $this->mGoodLinks->clear();
-               $this->mBadLinks->clear();
+               $this->goodLinks->clear();
+               $this->badLinks->clear();
        }
 }
index c0822c3..eb9febe 100644 (file)
@@ -44,7 +44,7 @@ class ChangesList extends ContextSource {
        /** @var callable */
        protected $changeLinePrefixer;
 
-       /** @var BagOStuff */
+       /** @var MapCacheLRU */
        protected $watchMsgCache;
 
        /**
@@ -72,7 +72,7 @@ class ChangesList extends ContextSource {
                        $this->skin = $obj;
                }
                $this->preCacheMessages();
-               $this->watchMsgCache = new HashBagOStuff( [ 'maxKeys' => 50 ] );
+               $this->watchMsgCache = new MapCacheLRU( 50 );
                $this->linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer();
                $this->filterGroups = $filterGroups;
        }
@@ -602,10 +602,9 @@ class ChangesList extends ContextSource {
                if ( $count <= 0 ) {
                        return '';
                }
-               $cache = $this->watchMsgCache;
-               return $cache->getWithSetCallback(
-                       $cache->makeKey( 'watching-users-msg', $count ),
-                       $cache::TTL_INDEFINITE,
+
+               return $this->watchMsgCache->getWithSetCallback(
+                       "watching-users-msg:$count",
                        function () use ( $count ) {
                                return $this->msg( 'number_of_watching_users_RCview' )
                                        ->numParams( $count )->escaped();
index 284cab2..b6211b0 100644 (file)
@@ -501,7 +501,7 @@ abstract class AbstractContent implements Content {
                ParserOptions $options = null, $generateHtml = true
        ) {
                if ( $options === null ) {
-                       $options = $this->getContentHandler()->makeParserOptions( 'canonical' );
+                       $options = ParserOptions::newCanonical( 'canonical' );
                }
 
                $po = new ParserOutput();
index 3c5ee26..79bbba8 100644 (file)
@@ -1114,6 +1114,8 @@ abstract class ContentHandler {
        /**
         * Get parser options suitable for rendering and caching the article
         *
+        * @deprecated since 1.32, use WikiPage::makeParserOptions() or
+        *  ParserOptions::newCanonical() instead.
         * @param IContextSource|User|string $context One of the following:
         *        - IContextSource: Use the User and the Language of the provided
         *                                            context
@@ -1126,22 +1128,8 @@ abstract class ContentHandler {
         * @return ParserOptions
         */
        public function makeParserOptions( $context ) {
-               global $wgContLang;
-
-               if ( $context instanceof IContextSource ) {
-                       $user = $context->getUser();
-                       $lang = $context->getLanguage();
-               } elseif ( $context instanceof User ) { // settings per user (even anons)
-                       $user = $context;
-                       $lang = null;
-               } elseif ( $context === 'canonical' ) { // canonical settings
-                       $user = new User;
-                       $lang = $wgContLang;
-               } else {
-                       throw new MWException( "Bad context for parser options: $context" );
-               }
-
-               return ParserOptions::newCanonical( $user, $lang );
+               wfDeprecated( __METHOD__, '1.32' );
+               return ParserOptions::newCanonical( $context );
        }
 
        /**
index 3e1d196..99d6b35 100644 (file)
@@ -1231,7 +1231,7 @@ class MysqlUpdater extends DatabaseUpdater {
                                'Extending edit summary lengths (and setting defaults)'
                        );
                } else {
-                       $this->output( '...comment fields are up to date' );
+                       $this->output( "...comment fields are up to date.\n" );
                }
        }
 
index d853009..856b44b 100644 (file)
@@ -60,7 +60,7 @@
        "config-unicode-using-intl": "باستخدام [https://pecl.php.net/intl امتداد intl PECL] لتسوية يونيكود.",
        "config-unicode-pure-php-warning": "<strong>تحذير:</strong> لا يتوفر [https://pecl.php.net/intl امتداد intl PECL] للتعامل مع تطبيع يونيكود; حيث يتراجع لإبطاء تنفيذ Pure-Pure;\nإذا كنت تدير موقعا عالي الزيارات، فتجب عليك القراءة قليلا في [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations تطبيع يونيكود].",
        "config-unicode-update-warning": "<strong>تحذير:</strong> يستخدم الإصدار المثبت من برنامج تطبيع نظام يونيكود إصدارًا قديما من مكتبة [http://site.icu-project.org/ مشروع ICU];\nتجب عليك [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations الترقية] إذا كنت مهتما باستخدام يونيكود.",
-       "config-no-db": "لا يمكن العثور على مشغل قاعدة بيانات مناسب! تحتاج إلى تثبيت مشغل قاعدة بيانات PHP، \n{{PLURAL:$2|نوع قاعدة البيانات التالي مدعوم|أنواع قاعدة البيانات التالية مدعومة}} البيانات التالية مدعومة: $1.\n\nإذا قمت بتجميع PHP بنفسك، فقم بتكوينها مع تمكين عميل قاعدة البيانات، على سبيل المثال، باستخدام <code>./configure --with-mysqli</code>.\nإذا قمت بتثبيت PHP من حزمة Debian أو Ubuntu، فستحتاج أيضا إلى تثبيت، على سبيل المثال، حزمة <code>php5-mysql</code>.",
+       "config-no-db": "لا يمكن العثور على مشغل قاعدة بيانات مناسب! تحتاج إلى تثبيت مشغل قاعدة بيانات PHP، \n{{PLURAL:$2|نوع قاعدة البيانات التالي مدعوم|أنواع قاعدة البيانات التالية مدعومة}} البيانات التالية مدعومة: $1.\n\nإذا قمت بتجميع PHP بنفسك، فقم بتكوينها مع تمكين عميل قاعدة البيانات، على سبيل المثال، باستخدام <code>./configure --with-mysqli</code>.\nإذا قمت بتثبيت PHP من حزمة Debian أو Ubuntu، فستحتاج أيضا إلى تثبيت، على سبيل المثال، حزمة <code>php-mysql</code>.",
        "config-outdated-sqlite": "<strong>تحذير:</strong> لديك SQLite $1, which وهو أقل من الحد الأدنى المطلوب للنسخة $2. SQLite سوف يكون غير متوفر.",
        "config-no-fts3": "<strong>تحذير:</strong> يتم تجميع SQLite بدون [//sqlite.org/fts3.html FTS3 module]; ستكون ميزات البحث غير متوفرة في هذه الواجهة الخلفية.",
        "config-pcre-old": "<strong>فادح:</strong> مطلوب PCRE $1 أو أحدث،\nترتبط ثنائية PHP الخاصة بك بـPCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE مزيد من المعلومات].",
index 0b99eca..e0afeff 100644 (file)
@@ -53,7 +53,7 @@
        "config-unicode-using-intl": "Usando la [https://pecl.php.net/intl estensión intl PECL] pa la normalización Unicode.",
        "config-unicode-pure-php-warning": "'''Avisu:''' La [https://pecl.php.net/intl estensión intl PECL] nun ta disponible pa xestionar la normalización Unicode; volviendo a la implementación lenta en PHP puru.\nSi xestiona un sitiu con un tráficu altu, tendría de lleer una migaya sobro la [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
        "config-unicode-update-warning": "'''Avisu:''' La versión instalada del envoltoriu de normalización Unicode usa una versión antigua de la biblioteca [http://site.icu-project.org/ de los proyeutos ICU].\nTendría [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations d'anovala] si ye importante pa vusté usar Unicode.",
-       "config-no-db": "¡Nun pudo alcontrase un controlador de base de datos afayadizu! Necesites instalar un controlador de base de datos pa PHP.\n{{PLURAL:$2|Tien sofitu el tipu de base de datos siguiente|Tienen sofitu los tipos de base de datos siguientes}}: $1.\n\nSi compilasti PHP tu mesmu, reconfigúralu con un cliente de base de datos activáu, por exemplu, usando <code>./configure --with-mysqli</code>.\nSi instalasti PHP dende un paquete de Debian o Ubuntu, necesites instalar tamién,por exemplu, el paquete <code>php5-mysql</code>.",
+       "config-no-db": "¡Nun pudo alcontrase un controlador de base de datos afayadizu! Necesites instalar un controlador de base de datos pa PHP.\n{{PLURAL:$2|Tien sofitu el tipu de base de datos siguiente|Tienen sofitu los tipos de base de datos siguientes}}: $1.\n\nSi compilasti PHP tu mesmu, reconfigúralu con un cliente de base de datos activáu, por exemplu, usando <code>./configure --with-mysqli</code>.\nSi instalasti PHP dende un paquete de Debian o Ubuntu, necesites instalar tamién,por exemplu, el paquete <code>php-mysql</code>.",
        "config-outdated-sqlite": "'''Avisu:''' tien SQLite $1, que ye inferior a la versión mínima necesaria $2. SQLite nun tará disponible.",
        "config-no-fts3": "'''Avisu:''' SQLite ta compiláu ensin el [//sqlite.org/fts3.html módulu FTS3]; les funciones de gueta nun tarán disponibles nesti sistema.",
        "config-pcre-old": "<strong>Fatal:</strong> Ríquese PCRE $1 o posterior.\nEl binariu de PHP ta enllazáu con PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Más información].",
index 6d9a3c6..bfe2ca4 100644 (file)
@@ -60,7 +60,7 @@
        "config-unicode-using-intl": " [https://pecl.php.net/intl ҡушылмаһы файҙаланасаҡ, «intl» для PECL]  Юникод нормаль эшләһен өсөн.",
        "config-unicode-pure-php-warning": "'''Иғтибар!''': [https://pecl.php.net/intl ҡушылмаһы intl из PECL] Юникод өсөн рөхсәт ителмәгән PHP менән бик әкрен эшләйәсәк.\nҺеҙҙең сайт бик көсөргәнешле эшләһә [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормализации Юникодты нормалләштереү] өсөн уҡығыҙ.",
        "config-unicode-update-warning": "\"Иҫкәртеү\". Ҡуйылған тышлыҡ Юникодты нормаға килтереүҙең иҫке китапхана версияһын ҡуллана[http://site.icu-project.org/ проекта ICU].Әгәр Юникодты тулы мәғәнәһендә ҡулланырға теләһәгеҙ, һеҙ [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations версияны яңыртырға] тейешһегеҙ.",
-       "config-no-db": "Мәғлүмәттәр базаһына тура килгән драйверҙарҙы табып булманы!Һеҙгә  PHP өсөн мәғлүмәттәр базаһының  драйверҙарын ҡуйырға кәрәк.{{PLURAL:$2|сираттағы төр ҡулланыла|сираттағы төрҙәр ҡулланыла}}мәғлүмәттәр базалары:$1.\nӘгәр һеҙ үҙегеҙ PHP -ға компиляция яһаған булһағыҙ,  мәғлүмәттәр базаһына клиентты индереп уны яңынан, мәҫәлән, <code>./configure --with-mysqli</code> ярҙамы менән көйләгеҙ. Әгәр ҙә һеҙ PHP -ны Debian йәки Ubuntu пакеттарынан ҡуйһағыҙ, һеҙгә, мәҫәлән,  <code>php5-mysql</code> пакетын да ҡуйырға кәрәк булыр.",
+       "config-no-db": "Мәғлүмәттәр базаһына тура килгән драйверҙарҙы табып булманы!Һеҙгә  PHP өсөн мәғлүмәттәр базаһының  драйверҙарын ҡуйырға кәрәк.{{PLURAL:$2|сираттағы төр ҡулланыла|сираттағы төрҙәр ҡулланыла}}мәғлүмәттәр базалары:$1.\nӘгәр һеҙ үҙегеҙ PHP -ға компиляция яһаған булһағыҙ,  мәғлүмәттәр базаһына клиентты индереп уны яңынан, мәҫәлән, <code>./configure --with-mysqli</code> ярҙамы менән көйләгеҙ. Әгәр ҙә һеҙ PHP -ны Debian йәки Ubuntu пакеттарынан ҡуйһағыҙ, һеҙгә, мәҫәлән,  <code>php-mysql</code> пакетын да ҡуйырға кәрәк булыр.",
        "config-outdated-sqlite": "'''Киҫәтеү''': Һеҙҙә SQLite  $1 ҡуйылған, $2 тейешле өлгөнән түбән . SQLite асылмаясаҡ.",
        "config-no-fts3": "'''Иғтибар''': SQLite модулһыҙ йыйлған [//sqlite.org/fts3.html FTS3] — был мәғлүмәт базаһы өсөн эҙләү мөмкин булмаясаҡ.",
        "config-pcre-old": "'''Фаталь хата:'''  PCRE версияһы йәки яңырағы талап ителә $1.\nБашҡарылыусы файл PHP менән бәйләнгән PCRE  $2версияһы.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Ентекләберәк].",
index da060da..9b47a33 100644 (file)
@@ -56,7 +56,7 @@
        "config-unicode-using-intl": "Выкарыстоўваецца [https://pecl.php.net/intl intl пашырэньне з PECL] для Unicode-нармалізацыі",
        "config-unicode-pure-php-warning": "'''Папярэджаньне''': [https://pecl.php.net/intl Пашырэньне intl з PECL] — ня слушнае для Unicode-нармалізацыі, цяпер выкарыстоўваецца марудная PHP-рэалізацыя.\nКалі ў Вас сайт з высокай наведвальнасьцю, раім пачытаць пра [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-нармалізацыю].",
        "config-unicode-update-warning": "'''Папярэджаньне''': усталяваная вэрсія бібліятэкі для Unicode-нармалізацыі выкарыстоўвае састарэлую вэрсію бібліятэкі з [http://site.icu-project.org/ праекту ICU].\nРаім [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations абнавіць], калі ваш сайт будзе працаваць з Unicode.",
-       "config-no-db": "Немагчыма знайсьці адпаведны драйвэр базы зьвестак. Вам неабходна ўсталяваць драйвэр базы зьвестак для PHP.\n{{PLURAL:$2|Падтрымліваецца наступны тып базы|Падтрымліваюцца наступныя тыпы базаў}} зьвестак: $1.\n\nКалі вы скампілявалі PHP самастойна, зьмяніце канфігурацыю, каб уключыць кліента базы зьвестак, напрыклад, з дапамогай <code>./configure --with-mysqli</code>.\nКалі вы ўсталявалі PHP з пакунку Debian або Ubuntu, тады вам трэба дадаткова ўсталяваць, напрыклад, пакунак <code>php5-mysql</code>.",
+       "config-no-db": "Немагчыма знайсьці адпаведны драйвэр базы зьвестак. Вам неабходна ўсталяваць драйвэр базы зьвестак для PHP.\n{{PLURAL:$2|Падтрымліваецца наступны тып базы|Падтрымліваюцца наступныя тыпы базаў}} зьвестак: $1.\n\nКалі вы скампілявалі PHP самастойна, зьмяніце канфігурацыю, каб уключыць кліента базы зьвестак, напрыклад, з дапамогай <code>./configure --with-mysqli</code>.\nКалі вы ўсталявалі PHP з пакунку Debian або Ubuntu, тады вам трэба дадаткова ўсталяваць, напрыклад, пакунак <code>php-mysql</code>.",
        "config-outdated-sqlite": "'''Папярэджаньне''': усталяваны SQLite $1, у той час, калі мінімальная сумяшчальная вэрсія — $2. SQLite ня будзе даступны.",
        "config-no-fts3": "'''Папярэджаньне''': SQLite створаны без модуля [//sqlite.org/fts3.html FTS3], для гэтага ўнутранага інтэрфэйсу ня будзе даступная магчымасьць пошуку.",
        "config-pcre-old": "<strong>Крытычная памылка:</strong> патрэбны PCRE вэрсіі $1 або пазьнейшай.\nPHP-файл, які выконваецца, зьвязаны з PCRE вэрсіі $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Больш інфармацыі].",
        "config-sqlite-dir-help": "SQLite захоўвае ўсе зьвесткі ў адзіным файле.\n\nПададзеная Вамі дырэкторыя павінна быць даступнай да запісу вэб-сэрвэрам падчас усталяваньня.\n\nЯна '''ня''' мусіць быць даступнай праз Сеціва, вось чаму мы не захоўваем яе ў адным месцы з файламі PHP.\n\nПраграма ўсталяваньня дадаткова створыць файл <code>.htaccess</code>, але калі ён не выкарыстоўваецца, хто заўгодна зможа атрымаць зьвесткі з базы зьвестак.\nГэта ўключае як прыватныя зьвесткі ўдзельнікаў (адрасы электроннай пошты, хэшы пароляў), гэтак і выдаленыя вэрсіі старонак і іншыя зьвесткі, доступ да якіх маецца абмежаваны.\n\nПадумайце над тым, каб зьмяшчаць базу зьвестак у іншым месцы, напрыклад у <code>/var/lib/mediawiki/yourwiki</code>.",
        "config-oracle-def-ts": "Прастора табліцаў па змоўчваньні:",
        "config-oracle-temp-ts": "Часовая прастора табліцаў:",
-       "config-type-mysql": "MySQL (або сумяшчальная)",
+       "config-type-mysql": "MariaDB, MySQL, або сумяшчальная",
        "config-type-postgres": "PostgreSQL",
        "config-type-sqlite": "SQLite",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "MediaWiki падтрымлівае наступныя сыстэмы базаў зьвестак:\n\n$1\n\nКалі Вы ня бачыце сыстэму базаў зьвестак, якую Вы спрабуеце выкарыстоўваць ў сьпісе ніжэй, перайдзіце па спасылцы інструкцыі, якая знаходзіцца ніжэй, каб уключыць падтрымку.",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] зьяўляецца галоўнай мэтай MediaWiki і падтрымліваецца лепей за ўсё. MediaWiki таксама працуе з [{{int:version-db-mariadb-url}} MariaDB] і [{{int:version-db-percona-url}} Percona Server], якія сумяшчальныя з MySQL. ([https://secure.php.net/manual/en/mysqli.installation.php Як скампіляваць PHP з падтрымкай MySQL])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mariadb-url}} MariaDB] зьяўляецца галоўнай мэтай MediaWiki і падтрымліваецца найлепш. MediaWiki таксама працуе з [{{int:version-db-mysql-url}} MySQL] і [{{int:version-db-percona-url}} Percona Server], якія сумяшчальныя з MariaDB. ([https://secure.php.net/manual/en/mysqli.installation.php Як скампіляваць PHP з падтрымкай MySQL])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] — папулярная сыстэма базы зьвестак з адкрытым кодам, якая зьяўляецца альтэрнатывай MySQL. ([https://secure.php.net/manual/en/pgsql.installation.php Як кампіляваць PHP з падтрымкай PostgreSQL])",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] — невялікая сыстэма базы зьвестак, якая мае вельмі добрую падтрымку. ([https://secure.php.net/manual/en/pdo.installation.php Як кампіляваць PHP з падтрымкай SQLite], выкарыстоўвае PDO)",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] зьяўляецца камэрцыйнай прафэсійнай базай зьвестак. ([https://secure.php.net/manual/en/oci8.installation.php Як скампіляваць PHP з падтрымкай OCI8])",
        "config-db-web-create": "Стварыць рахунак, калі ён яшчэ не існуе",
        "config-db-web-no-create-privs": "Рахунак, які Вы пазначылі для ўсталяваньня ня мае правоў для стварэньня рахунку.\nРахунак, які Вы пазначылі тут, мусіць ужо існаваць.",
        "config-mysql-engine": "Рухавік сховішча:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (рэкамэндавана)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "'''Папярэджаньне''': Вы выбралі MyISAM у якасьці рухавіка для захоўваньня зьвестак у MySQL, які не рэкамэндуецца да выкарыстаньня з MediaWiki па прычынах:\n* кепская падтрымка паралельнай апрацоўкі з-за таблічных блякаваньняў;\n* большая імавернасьць пашкоджаньня зьвестак у параўнаньні зь іншымі рухавікамі;\n* код MediaWiki не ва ўсіх выпадках улічвае асаблівасьці MyISAM.\n\nКалі Ваш MySQL-сэрвэр падтрымлівае InnoDB, вельмі рэкамэндуецца выкарыстаньне менавіта гэтага рухавіка.\nКалі MySQL-сэрвэр не падтрымлівае InnoDB, пэўна, настаў час абнавіць яго.",
        "config-mysql-only-myisam-dep": "<strong>Папярэджаньне:</strong> MyISAM — адзіная даступная сыстэма захоўваньня зьвестак для MySQL на гэтым кампутары, яна не рэкамэндуецца для ўжываньня з MediaWiki, таму што:\n* слаба падтрымлівае паралельнасьць праз блякаваньне табліцаў\n* больш за іншыя сыстэмы схільная да пашкоджаньняў\n* кодавая база MediaWiki не заўсёды належна апрацоўвае MyISAM\n\nВашае ўсталяваньне MySQL не падтрымлівае InnoDB, магчыма, час для абнаўленьня.",
index 3988ada..6b2f33f 100644 (file)
@@ -55,7 +55,7 @@
        "config-unicode-using-intl": "Използване на разширението [https://pecl.php.net/intl intl PECL] за нормализация на Уникод.",
        "config-unicode-pure-php-warning": "<strong>Внимание:</strong> [https://pecl.php.net/intl Разширението intl PECL] не е налично за справяне с нормализацията на Уникод, превключване към по-бавното изпълнение на чист PHP.\nАко сайтът е с голям трафик, препоръчително е да се запознаете с [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормализацията на Уникод].",
        "config-unicode-update-warning": "<strong>Предупреждение</strong>: Инсталираната версия на Обвивката за нормализация на Unicode използва по-старата версия на библиотеката на [http://site.icu-project.org/ проекта ICU].\nНеобходимо е да [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations инсталирате по-нова версия], в случай че сте загрижени за използването на Unicode.",
-       "config-no-db": "Не може да бъде открит подходящ драйвер за база данни! Необходимо е да инсталирате драйвер за база данни за PHP.\n{{PLURAL:$2|Поддържа се следния тип|Поддържат се следните типове}} бази от данни: $1.\n\nАко сами сте компилирали PHP, преконфигурирайте го с включен клиент за база данни, например чрез използване на <code>./configure --with-mysqli</code>.\nАко сте инсталирали PHP от пакет за Debian или Ubuntu, необходимо е също така да инсталирате и модула <code>php5-mysql</code>.",
+       "config-no-db": "Не може да бъде открит подходящ драйвер за база данни! Необходимо е да инсталирате драйвер за база данни за PHP.\n{{PLURAL:$2|Поддържа се следния тип|Поддържат се следните типове}} бази от данни: $1.\n\nАко сами сте компилирали PHP, преконфигурирайте го с включен клиент за база данни, например чрез използване на <code>./configure --with-mysqli</code>.\nАко сте инсталирали PHP от пакет за Debian или Ubuntu, необходимо е също така да инсталирате и модула <code>php-mysql</code>.",
        "config-outdated-sqlite": "<strong>Внимание:</strong> имате инсталиран SQLite  $1, а минималната допустима версия е $2. SQLite ще бъде недостъпна за ползване.",
        "config-no-fts3": "'''Предупреждение''': SQLite е компилирана без [//sqlite.org/fts3.html модула FTS3], затова възможностите за търсене няма да са достъпни.",
        "config-pcre-old": "<strong>Фатална грешка:</strong> Изисква се PCRE версия $1 или по-нова.\nИзпълнимият файл на PHP е свързан с PCRE версия $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/Повече информация за PCRE].",
index a2448c4..ebee20b 100644 (file)
@@ -67,7 +67,7 @@
        "config-oracle-temp-ts": "সাময়কি টেবিলস্পেস:",
        "config-type-mssql": "মাইক্রোসফট এসকিউএল সার্ভার",
        "config-dbsupport-postgres": "* MySQL-এর বিকল্প হিসেবে [{{int:version-db-postgres-url}} PostgreSQL] হচ্ছে একটি জনপ্রিয় ওপেন সোর্স ডাটাবেস ব্যবস্থা। ([https://secure.php.net/manual/en/pgsql.installation.php PostgreSQL সমর্থনসহ কিভাবে PHP সঙ্কলন করবেন])",
-       "config-header-mysql": "মাইএসকিউএল সেটিংস",
+       "config-header-mysql": "MariaDB/MySQL সেটিং",
        "config-header-postgres": "পোস্টগ্রেএসকিউএল সেটিংস",
        "config-header-sqlite": "এসকিউলাইট সেটিংস",
        "config-header-oracle": "ওরাকল সেটিংস",
@@ -80,7 +80,7 @@
        "config-sqlite-cant-create-db": "ডাটাবেজ ফাইল <code>$1</code> তৈরি করা যায়নি।",
        "config-regenerate": "LocalSettings.php পুনরূত্পাদিত করুন →",
        "config-mysql-engine": "সংরক্ষণ ইঞ্জিন:",
-       "config-mysql-innodb": "ইনোডিবি",
+       "config-mysql-innodb": "InnoDB (সুপারিশকৃত)",
        "config-mysql-myisam": "মাইআইএসএএম",
        "config-mssql-windowsauth": "উইন্ডোজ প্রমাণীকরণ",
        "config-site-name": "উইকির নাম:",
index 75381f2..6ee9263 100644 (file)
@@ -55,7 +55,7 @@
        "config-unicode-using-intl": "Oc'h implijout [https://pecl.php.net/intl an astenn PECL intl] evit ar reolata Unicode.",
        "config-unicode-pure-php-warning": "<strong>Diwallit</strong> : N'haller ket ober gant an [https://pecl.php.net/intl intl astenn PECL] evit merañ reoladur Unicode; distreiñ d'ar stumm gorrek emplementet e PHP-rik.\nMa rit war-dro ul lec'hienn darempredet-stank e vo mat deoc'h lenn un tammig bihan diwar-benn se war [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations reolennadur Unicode].",
        "config-unicode-update-warning": "'''Diwallit''': ober a ra stumm staliet endalc'her skoueriekaat Unicode gant ur stumm kozh eus [http://site.icu-project.org/ levraoueg meziantoù ar raktres ICU].\nDleout a rafec'h [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations hizivaat] ma seblant deoc'h bezañ pouezus ober gant Unicode.",
-       "config-no-db": "N'eus ket bet gallet kavout ur sturier diazoù roadennoù a zere ! Ret eo deoc'h staliañ ur sturier diazoù roadennoù evit PHP.\nSkoret eo {{PLURAL:$2|ar seurt|ar seurtoù}} diazoù roadennoù da-heul : $1.\n\nMard eo bet kempunet PHP ganeoc'h-c'hwi hoc'h-unan, adkeflugnit-eñ en ur weredekaat un arval diaz roadennoù, da skouer en ur ober gant <code>/configure --with-mysqli</code>.\nM'hoc'h eus staliet PHP adalek ur pakad Debian pe Ubuntu, eo ret deoc'h staliañ, da skouer, ar pakad <code>php5-mysql</code> ivez.",
+       "config-no-db": "N'eus ket bet gallet kavout ur sturier diazoù roadennoù a zere ! Ret eo deoc'h staliañ ur sturier diazoù roadennoù evit PHP.\nSkoret eo {{PLURAL:$2|ar seurt|ar seurtoù}} diazoù roadennoù da-heul : $1.\n\nMard eo bet kempunet PHP ganeoc'h-c'hwi hoc'h-unan, adkeflugnit-eñ en ur weredekaat un arval diaz roadennoù, da skouer en ur ober gant <code>/configure --with-mysqli</code>.\nM'hoc'h eus staliet PHP adalek ur pakad Debian pe Ubuntu, eo ret deoc'h staliañ, da skouer, ar pakad <code>php-mysql</code> ivez.",
        "config-outdated-sqlite": "<strong>Taolit pled :</strong> ober a rit gant SQLite $1, hag a zo izeloc'h eget ar stumm $2 ret bihanañ. Ne vo ket posupl ober gant SQLite.",
        "config-no-fts3": "'''Diwallit ''': Kempunet eo SQLite hep ar [//sqlite.org/fts3.html vodulenn FTS3]; ne vo ket posupl ober gant an arc'hwelioù klask er staliadur-mañ",
        "config-pcre-old": "<strong>Fazo groñs :</strong> rekis eo ober gant PCRE $1 pe nevesoc'h.\nLiammet eo ho PHP binarel gant PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Gouzout hiroc'h].",
index 254c539..58931b8 100644 (file)
@@ -47,7 +47,7 @@
        "config-env-bad": "Okruženje je provjereno.\nNe možete instalirati MediaWiki.",
        "config-env-php": "PHP $1 je instaliran.",
        "config-env-hhvm": "HHVM $1 je instaliran.",
-       "config-no-db": "Ne mogu pronaći pogodan upravljački program za bazu podataka! Morate ga instalirati za PHP-bazu.\n{{PLURAL:$2|Podržana je sljedeća vrsta|Podržane su sljedeće vrste}} baze podataka: $1.\n\nAko se sami kompajlirali PHP, omogućite klijent baze podataka u postavkama koristeći, naprimjer, <code>./configure --with-mysqli</code>.\nAko ste instalirali PHP iz paketa za Debian ili Ubuntu, onda također morate instalirati, naprimjer, paket <code>php5-mysql</code>.",
+       "config-no-db": "Ne mogu pronaći pogodan upravljački program za bazu podataka! Morate ga instalirati za PHP-bazu.\n{{PLURAL:$2|Podržana je sljedeća vrsta|Podržane su sljedeće vrste}} baze podataka: $1.\n\nAko se sami kompajlirali PHP, omogućite klijent baze podataka u postavkama koristeći, naprimjer, <code>./configure --with-mysqli</code>.\nAko ste instalirali PHP iz paketa za Debian ili Ubuntu, onda također morate instalirati, naprimjer, paket <code>php-mysql</code>.",
        "config-memory-raised": "<code>memory_limit</code> za PHP iznosi $1, povišen na $2.",
        "config-memory-bad": "<strong>Upozorenje:</strong> <code>memory_limit</code> za PHP iznosi $1.\nOvo je vjerovatno premalo.\nInstalacija možda neće uspjeti!",
        "config-apc": "[https://secure.php.net/apc APC] je instaliran",
index 056531e..8e3b89c 100644 (file)
@@ -60,7 +60,7 @@
        "config-unicode-using-intl": "Pro normalizaci Unicode se používá [https://pecl.php.net/intl PECL rozšíření intl].",
        "config-unicode-pure-php-warning": "<strong>Upozornění:</strong> Není dostupné [https://pecl.php.net/intl PECL rozšíření intl] pro normalizaci Unicode, bude se využívat pomalá implementace v čistém PHP.\nPokud provozujete wiki s velkou návštěvností, měli byste si přečíst něco o [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizaci Unicode].",
        "config-unicode-update-warning": "<strong>Upozornění:</strong> Nainstalovaná verze vrstvy pro normalizaci Unicode používá starší verzi knihovny [http://site.icu-project.org/ projektu ICU].\nPokud vám aspoň trochu záleží na používání Unicode, měli byste [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ji aktualizovat].",
-       "config-no-db": "Nepodařilo se nalézt vhodný databázový ovladač! Musíte nainstalovat databázový ovladač pro PHP.\n{{PLURAL:$2|Je podporován následující typ databáze|Jsou podporovány následující typy databází}}: $1.\n\nPokud jste si PHP přeložili sami, překonfigurujte ho se zapnutým databázovým klientem, například pomocí <code>./configure --with-mysqli</code>.\nPokud jste PHP nainstalovali z balíčku Debian či Ubuntu, potřebujete nainstalovat také modul <code>php5-mysql</code>.",
+       "config-no-db": "Nepodařilo se nalézt vhodný databázový ovladač! Musíte nainstalovat databázový ovladač pro PHP.\n{{PLURAL:$2|Je podporován následující typ databáze|Jsou podporovány následující typy databází}}: $1.\n\nPokud jste si PHP přeložili sami, překonfigurujte ho se zapnutým databázovým klientem, například pomocí <code>./configure --with-mysqli</code>.\nPokud jste PHP nainstalovali z balíčku Debian či Ubuntu, potřebujete nainstalovat také modul <code>php-mysql</code>.",
        "config-outdated-sqlite": "<strong>Upozornění:</strong> Máte SQLite $1, které je starší než minimálně vyžadovaná verze $2. SQLite nebude dostupné.",
        "config-no-fts3": "<strong>Upozornění:</strong> SQLite bylo přeloženo bez [//sqlite.org/fts3.html modulu FTS3], funkce pro vyhledávání zde nebudou dostupné.",
        "config-pcre-old": "<strong>Kritická chyba:</strong> Je vyžadováno PCRE verze $1 nebo novější.\nVaše binárka PHP obsahuje PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Více informací.]",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "MediaWiki podporuje následující databázové systémy:\n\n$1\n\nPokud v nabídce níže nevidíte databázový systém, který chcete použít, musíte pro zapnutí podpory následovat instrukce odkázané výše.",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] je pro MediaWiki hlavní platformou a je podporováno nejlépe. MediaWiki pracuje také s [{{int:version-db-mariadb-url}} MariaDB] a [{{int:version-db-percona-url}} Percona Server], které jsou s MySQL kompatibilní. ([https://secure.php.net/manual/en/mysql.installation.php Jak zkompilovat PHP s podporou MySQL])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] je pro MediaWiki hlavní platformou a je podporováno nejlépe. MediaWiki pracuje také s [{{int:version-db-mariadb-url}} MariaDB] a [{{int:version-db-percona-url}} Percona Server], které jsou s MySQL kompatibilní. ([https://secure.php.net/manual/en/mysqli.installation.php Jak zkompilovat PHP s podporou MySQL])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] je populární otevřený databázový systém používaný jako alternativa k MySQL. ([https://secure.php.net/manual/en/pgsql.installation.php Jak přeložit PHP s podporou PostgreSQL])",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] je velmi dobře podporovaný odlehčený databázový systém. ([https://secure.php.net/manual/en/pdo.installation.php Jak přeložit PHP s podporou SQLite], používá PDO)",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] je komerční podniková databáze. ([https://secure.php.net/manual/en/oci8.installation.php Jak přeložit PHP s podporou OCI8])",
        "config-db-web-create": "Založit účet, pokud zatím neexistuje",
        "config-db-web-no-create-privs": "Účet uvedený pro instalaci nemá oprávnění dostatečná pro založení nového účtu.\nÚčet, který zde uvedete, již musí existovat.",
        "config-mysql-engine": "Typ úložiště:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (doporučeno)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "<strong>Upozornění:</strong> Jako typ úložiště pro MySQL jste zvolili MyISAM, které není pro použití v MediaWiki doporučeno, neboť:\n* stěží podporuje současný přístup kvůli zamykání tabulek,\n* je náchylnější na poškození dat než jiná úložiště,\n* kód MediaWiki nepodporuje MyISAM vždy tak dobře, jak by měl.\n\nPokud vaše instalace MySQL podporuje InnoDB, důrazně doporučujeme použít spíše to.\nPokud vaše instalace MySQL InnoDB nepodporuje, možná je čas na aktualizaci.",
        "config-mysql-only-myisam-dep": "<strong>Upozornění:</strong> Jediným dostupným úložištěm dat pro MySQL je MyISAM, který se k užití s MediaWiki nedoporučuje, neboť:\n* téměř nepodporuje paralelní přístup kvůli zamykání tabulek,\n* oproti jiným formátům je náchylnější k poškození,\n* MediaWiki nepodporuje MyISAM tak dobře, jak by bylo třeba.\n\nVaše instalace MySQL nepodporuje InnoDB, možná je na čase upgradovat.",
index 7a448a7..8433b33 100644 (file)
@@ -65,7 +65,7 @@
        "config-unicode-using-intl": "Zur  Unicode-Normalisierung wird die [https://pecl.php.net/intl PECL-Erweiterung intl] eingesetzt.",
        "config-unicode-pure-php-warning": "'''Warnung:''' Die [https://pecl.php.net/intl PECL-Erweiterung intl] ist für die Unicode-Normalisierung nicht verfügbar, so dass stattdessen die langsame pure-PHP-Implementierung genutzt wird.\nSofern eine Website mit großer Benutzeranzahl betrieben wird, sollten weitere Informationen auf der Webseite [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-Normalisierung (en)] gelesen werden.",
        "config-unicode-update-warning": "'''Warnung:''' Die installierte Version des Unicode-Normalisierungswrappers nutzt einer ältere Version der Bibliothek des [http://site.icu-project.org/ ICU-Projekts].\nDiese sollte [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations aktualisiert] werden, sofern auf die Verwendung von Unicode Wert gelegt wird.",
-       "config-no-db": "Es konnte kein adäquater Datenbanktreiber gefunden werden. Es muss daher ein Datenbanktreiber für PHP installiert werden.\n{{PLURAL:$2|Das folgende Datenbanksystem wird|Die folgenden Datenbanksysteme werden}} unterstützt: $1\n\nWenn du PHP selbst kompiliert hast, konfiguriere es erneut mit einem aktivierten Datenbankclient, zum Beispiel durch Verwendung von <code>./configure --with-mysqli</code>.\nWenn du PHP von einem Debian- oder Ubuntu-Paket installiert hast, dann musst du auch beispielsweise das <code>php5-mysql</code>-Paket installieren.",
+       "config-no-db": "Es konnte kein adäquater Datenbanktreiber gefunden werden. Es muss daher ein Datenbanktreiber für PHP installiert werden.\n{{PLURAL:$2|Das folgende Datenbanksystem wird|Die folgenden Datenbanksysteme werden}} unterstützt: $1\n\nWenn du PHP selbst kompiliert hast, konfiguriere es erneut mit einem aktivierten Datenbankclient, zum Beispiel durch Verwendung von <code>./configure --with-mysqli</code>.\nWenn du PHP von einem Debian- oder Ubuntu-Paket installiert hast, dann musst du auch beispielsweise das <code>php-mysql</code>-Paket installieren.",
        "config-outdated-sqlite": "'''Warnung:''' SQLite $1 ist installiert. Allerdings benötigt MediaWiki SQLite $2 oder höher. SQLite wird daher nicht verfügbar sein.",
        "config-no-fts3": "'''Warnung:''' SQLite wurde ohne das [//sqlite.org/fts3.html FTS3-Modul] kompiliert, sodass keine Suchfunktionen für dieses Datenbanksystem zur Verfügung stehen werden.",
        "config-pcre-old": "<strong>Fataler Fehler:</strong> PCRE $1 oder neuer ist erforderlich!\nDie vorhandene PHP-Binärdatei ist mit PCRE $2 verknüpft.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Weitere Informationen].",
        "config-sqlite-dir-help": "SQLite speichert alle Daten in einer einzigen Datei.\n\nDas für sie vorgesehene Verzeichnis muss während des Installationsvorgangs beschreibbar sein.\n\nEs sollte '''nicht''' über das Web zugänglich sein, was der Grund ist, warum die Datei nicht dort abgelegt wird, wo sich die PHP-Dateien befinden.\n\nDas Installationsprogramm wird mit der Datei zusammen eine zusätzliche <code>.htaccess</code>-Datei erstellen. Sofern dies scheitert, können Dritte auf die Datendatei zugreifen.\nDies umfasst die Nutzerdaten (E-Mail-Adressen, Passwörter, etc.) wie auch gelöschte Seitenversionen und andere vertrauliche Daten, die im Wiki gespeichert sind.\n\nEs ist daher zu erwägen, die Datendatei an gänzlich anderer Stelle abzulegen, beispielsweise im Verzeichnis <code>./var/lib/mediawiki/yourwiki</code>.",
        "config-oracle-def-ts": "Standardtabellenraum:",
        "config-oracle-temp-ts": "Temporärer Tabellenraum:",
-       "config-type-mysql": "MySQL (oder kompatible Datenbanksysteme)",
+       "config-type-mysql": "MariaDB, MySQL (oder kompatible Datenbanksysteme)",
        "config-type-postgres": "PostgreSQL",
        "config-type-sqlite": "SQLite",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "MediaWiki unterstützt die folgenden Datenbanksysteme:\n\n$1\n\nSofern unterhalb nicht das Datenbanksystem angezeigt wird, das verwendet werden soll, muss dieses noch verfügbar gemacht werden. Oben ist zu jedem unterstützten Datenbanksystem ein Link zur entsprechenden Anleitung vorhanden.",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] ist das von MediaWiki primär unterstützte Datenbanksystem. MediaWiki funktioniert auch mit [{{int:version-db-mariadb-url}} MariaDB] und [{{int:version-db-percona-url}} Percona Server], die MySQL-kompatibel sind. ([https://secure.php.net/manual/en/mysqli.installation.php Anleitung zur Kompilierung von PHP mit MySQL-Unterstützung])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mariadb-url}} MariaDB] ist das von MediaWiki primär unterstützte Datenbanksystem. MediaWiki funktioniert auch mit [{{int:version-db-mysql-url}} MySQL] und [{{int:version-db-percona-url}} Percona Server], die MariaDB-kompatibel sind. ([https://secure.php.net/manual/en/mysqli.installation.php Anleitung zur Kompilierung von PHP mit MySQL-Unterstützung])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] ist ein beliebtes Open-Source-Datenbanksystem und eine Alternative zu MySQL. ([https://secure.php.net/manual/en/pgsql.installation.php Anleitung zur Kompilierung von PHP mit PostgreSQL-Unterstützung])",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] ist ein verschlanktes Datenbanksystem, das auch gut unterstützt wird ([https://www.php.net/manual/de/pdo.installation.php Anleitung zur Kompilierung von PHP mit SQLite-Unterstützung], verwendet PHP Data Objects (PDO))",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] ist eine kommerzielle Unternehmensdatenbank ([https://www.php.net/manual/en/oci8.installation.php Anleitung zur Kompilierung von PHP mit OCI8-Unterstützung])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] ist eine gewerbliche Unternehmensdatenbank für Windows. ([https://www.php.net/manual/de/sqlsrv.installation.php Anleitung zur Kompilierung von PHP mit SQLSRV-Unterstützung])",
-       "config-header-mysql": "MySQL-Einstellungen",
+       "config-header-mysql": "MariaDB/MySQL-Einstellungen",
        "config-header-postgres": "PostgreSQL-Einstellungen",
        "config-header-sqlite": "SQLite-Einstellungen",
        "config-header-oracle": "Oracle-Einstellungen",
        "config-db-web-create": "Sofern nicht bereits vorhanden, muss nun das Konto erstellt werden",
        "config-db-web-no-create-privs": "Das angegebene und für den Installationsvorgang vorgesehene Datenbankkonto verfügt nicht über ausreichend Berechtigungen, um ein weiteres Datenbankkonto zu erstellen.\nDas hier angegebene Datenbankkonto muss daher bereits vorhanden sein.",
        "config-mysql-engine": "Datenbanksystem:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (empfohlen)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "<strong>Warnung:</strong> Es wurde MyISAM als Speichersubsystem für das Datenbanksystem MySQL ausgewählt. Aus folgenden Gründen wird es nicht für den Einsatz mit MediaWiki empfohlen:\n* Es unterstützt aufgrund von Tabellensperrungen kaum die nebenläufige Ausführung von Aktionen.\n* Es ist anfälliger für Datenprobleme.\n* Es wird von MediaWiki nicht immer adäquat unterstützt.\n\nSofern die vorhandene MySQL-Installation das Speichersubsystem InnoDB unterstützt, wird deren Verwendung eindringlich empfohlen.\nSofern sie es nicht unterstützt, sollte nunmehr eine entsprechende Aktualisierung in Erwägung gezogen werden.",
        "config-mysql-only-myisam-dep": "<strong>Warnung:</strong> MyISAM ist das einzige verfügbare Speichersubsystem für das Datenbanksystem MySQL auf diesem Server. Es wird nicht für die Verwendung mit MediaWiki empfohlen, da es\n* aufgrund von Tabellensperrungen kaum die nebenläufige Ausführung von Aktionen unterstützt,\n* anfälliger für Datenprobleme ist und\n* von MediaWiki nicht immer adäquat unterstützt wird.\n\nDeine MySQL-Installation unterstützt nicht das Speichersubsystem InnoDB. Eine Aktualisierung wird nunmehr empfohlen.",
index fae5001..34df619 100644 (file)
@@ -59,7 +59,7 @@
        "config-env-hhvm": "Το HHVM $1 είναι εγκατεστημένο.",
        "config-unicode-using-intl": "Χρησιμοποιείται η [https://pecl.php.net/intl επέκταση intl PECL] για κανονικοποίηση Unicode.",
        "config-unicode-pure-php-warning": "<strong>Προειδοποίηση:</strong> Η [https://pecl.php.net/intl επέκταση intl PECL] δεν είναι διαθέσιμη για να χειριστεί την κανονικοποίηση Unicode, επιστρέφουμε στην αργή αμιγώς PHP εφαρμογή.\nΕάν λειτουργείτε έναν ιστότοπο υψηλής επισκεψιμότητας, θα πρέπει να ρίξετε μια ματιά στην [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations κανονικοποίηση Unicode].",
-       "config-no-db": "Δεν βρέθηκε κάποιο κατάλληλο πρόγραμμα οδήγησης βάσης δεδομένων! Θα πρέπει να εγκαταστήσετε ένα πρόγραμμα οδήγησης βάσης δεδομένων για  PHP.\nΟ παρακάτω {{PLURAL:$2|τύπος βάσης δεδομένων|τύποι βάσεων δεδομένων}} υποστηρίζονται: $1.\n\nΑν κάνετε compile την PHP μόνοι σας, ρυθμίστε ξανά τις παραμέτρους με κάποιον ενεργοποιημένο εξυπηρετητή βάσεων  δεδομένων, για παράδειγμα, χρησιμοποιώντας την εντολή <code>./configure --with-mysqli</code>.\nΕάν έχετε εγκαταστήσει την PHP από κάποιο πακέτο στο Debian ή στο Ubuntu, τότε θα πρέπει να εγκαταστήσετε επίσης, για παράδειγμα, το πακέτο <code>php5-mysql</code>.",
+       "config-no-db": "Δεν βρέθηκε κάποιο κατάλληλο πρόγραμμα οδήγησης βάσης δεδομένων! Θα πρέπει να εγκαταστήσετε ένα πρόγραμμα οδήγησης βάσης δεδομένων για  PHP.\nΟ παρακάτω {{PLURAL:$2|τύπος βάσης δεδομένων|τύποι βάσεων δεδομένων}} υποστηρίζονται: $1.\n\nΑν κάνετε compile την PHP μόνοι σας, ρυθμίστε ξανά τις παραμέτρους με κάποιον ενεργοποιημένο εξυπηρετητή βάσεων  δεδομένων, για παράδειγμα, χρησιμοποιώντας την εντολή <code>./configure --with-mysqli</code>.\nΕάν έχετε εγκαταστήσει την PHP από κάποιο πακέτο στο Debian ή στο Ubuntu, τότε θα πρέπει να εγκαταστήσετε επίσης, για παράδειγμα, το πακέτο <code>php-mysql</code>.",
        "config-outdated-sqlite": "<strong>Προειδοποίηση:</strong> έχετε την SQLite έκδοση $1, που είναι χαμηλότερη από την ελάχιστη απαιτούμενη έκδοση $2. Η SQLite δεν θα είναι διαθέσιμη.",
        "config-pcre-no-utf8": "<strong>Κρίσιμο:</strong> Το PCRE module της PHP  φαίνεται να έχει μεταγλωττιστεί χωρίς υποστήριξη  PCRE_UTF8.\nΓια τη σωστή λειτουργία του MediaWiki απαιτείται υποστήριξη UTF-8.",
        "config-memory-raised": "Το  <code>memory_limit</code> της PHP είναι  $1 και αυξήθηκε σε  $2.",
index 45bbc4f..87bf792 100644 (file)
@@ -48,7 +48,7 @@
        "config-unicode-using-intl": "Using the [https://pecl.php.net/intl intl PECL extension] for Unicode normalization.",
        "config-unicode-pure-php-warning": "<strong>Warning:</strong> The [https://pecl.php.net/intl intl PECL extension] is not available to handle Unicode normalization, falling back to slow pure-PHP implementation.\nIf you run a high-traffic site, you should read a little on [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
        "config-unicode-update-warning": "<strong>Warning:</strong> The installed version of the Unicode normalization wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.\nYou should [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade] if you are at all concerned about using Unicode.",
-       "config-no-db": "Could not find a suitable database driver! You need to install a database driver for PHP.\nThe following database {{PLURAL:$2|type is|types are}} supported: $1.\n\nIf you compiled PHP yourself, reconfigure it with a database client enabled, for example, using <code>./configure --with-mysqli</code>.\nIf you installed PHP from a Debian or Ubuntu package, then you also need to install, for example, the <code>php5-mysql</code> package.",
+       "config-no-db": "Could not find a suitable database driver! You need to install a database driver for PHP.\nThe following database {{PLURAL:$2|type is|types are}} supported: $1.\n\nIf you compiled PHP yourself, reconfigure it with a database client enabled, for example, using <code>./configure --with-mysqli</code>.\nIf you installed PHP from a Debian or Ubuntu package, then you also need to install, for example, the <code>php-mysql</code> package.",
        "config-outdated-sqlite": "<strong>Warning:</strong> you have SQLite $1, which is lower than minimum required version $2. SQLite will be unavailable.",
        "config-no-fts3": "<strong>Warning:</strong> SQLite is compiled without the [//sqlite.org/fts3.html FTS3 module], search features will be unavailable on this backend.",
        "config-pcre-old": "<strong>Fatal:</strong> PCRE $1 or later is required.\nYour PHP binary is linked with PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE More information].",
        "config-sqlite-dir-help": "SQLite stores all data in a single file.\n\nThe directory you provide must be writable by the webserver during installation.\n\nIt should <strong>not</strong> be accessible via the web; this is why we're not putting it where your PHP files are.\n\nThe installer will write a <code>.htaccess</code> file along with it, but if that fails someone can gain access to your raw database.\nThat includes raw user data (email addresses, hashed passwords) as well as deleted revisions and other restricted data on the wiki.\n\nConsider putting the database somewhere else altogether, for example in <code>/var/lib/mediawiki/yourwiki</code>.",
        "config-oracle-def-ts": "Default tablespace:",
        "config-oracle-temp-ts": "Temporary tablespace:",
-       "config-type-mysql": "MySQL (or compatible)",
+       "config-type-mysql": "MariaDB, MySQL, or compatible",
        "config-type-postgres": "PostgreSQL",
        "config-type-sqlite": "SQLite",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "MediaWiki supports the following database systems:\n\n$1\n\nIf you do not see the database system you are trying to use listed below, then follow the instructions linked above to enable support.",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] is the primary target for MediaWiki and is best supported. MediaWiki also works with [{{int:version-db-mariadb-url}} MariaDB] and [{{int:version-db-percona-url}} Percona Server], which are MySQL compatible. ([https://secure.php.net/manual/en/mysqli.installation.php How to compile PHP with MySQL support])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mariadb-url}} MariaDB] is the primary target for MediaWiki and is best supported. MediaWiki also works with [{{int:version-db-mysql-url}} MySQL] and [{{int:version-db-percona-url}} Percona Server], which are MariaDB compatible. ([https://secure.php.net/manual/en/mysqli.installation.php How to compile PHP with MySQL support])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] is a popular open source database system as an alternative to MySQL. ([https://secure.php.net/manual/en/pgsql.installation.php How to compile PHP with PostgreSQL support])",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] is a lightweight database system that is very well supported. ([https://secure.php.net/manual/en/pdo.installation.php How to compile PHP with SQLite support], uses PDO)",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] is a commercial enterprise database. ([https://secure.php.net/manual/en/oci8.installation.php How to compile PHP with OCI8 support])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] is a commercial enterprise database for Windows. ([https://secure.php.net/manual/en/sqlsrv.installation.php How to compile PHP with SQLSRV support])",
-       "config-header-mysql": "MySQL settings",
+       "config-header-mysql": "MariaDB/MySQL settings",
        "config-header-postgres": "PostgreSQL settings",
        "config-header-sqlite": "SQLite settings",
        "config-header-oracle": "Oracle settings",
index 41ac945..ee89d1f 100644 (file)
@@ -85,7 +85,7 @@
        "config-unicode-using-intl": "Se utiliza la [https://pecl.php.net/intl extensión «intl» de PECL] para la normalización Unicode.",
        "config-unicode-pure-php-warning": "<strong>Advertencia:</strong> la [https://pecl.php.net/intl extensión intl] no está disponible para efectuar la normalización Unicode. Se utilizará la implementación más lenta en PHP puro.\nSi tu web tiene mucho tráfico, te recomendamos leer acerca de la [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
        "config-unicode-update-warning": "<strong>Atención:</strong> la versión instalada del contenedor de normalización de Unicode utiliza una versión anticuada de la biblioteca del [http://site.icu-project.org/ proyecto ICU].\nDeberías [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations modernizarla] si te interesa utilizar Unicode.",
-       "config-no-db": "No se encontró un controlador adecuado para la base de datos. Necesitas instalar un controlador de base de datos para PHP.\n{{PLURAL:$2|Se admite el siguiente gestor de bases de datos|Se admiten los siguientes gestores de bases de datos}}: $1.\n\nSi compilaste PHP por tu cuenta, debes reconfigurarlo activando un cliente de base de datos, por ejemplo, mediante <code>./configure --with-mysqli</code>.\nSi instalaste PHP desde un paquete de Debian o Ubuntu, también debes instalar, por ejemplo, el paquete <code>php5-mysql</code>.",
+       "config-no-db": "No se encontró un controlador adecuado para la base de datos. Necesitas instalar un controlador de base de datos para PHP.\n{{PLURAL:$2|Se admite el siguiente gestor de bases de datos|Se admiten los siguientes gestores de bases de datos}}: $1.\n\nSi compilaste PHP por tu cuenta, debes reconfigurarlo activando un cliente de base de datos, por ejemplo, mediante <code>./configure --with-mysqli</code>.\nSi instalaste PHP desde un paquete de Debian o Ubuntu, también debes instalar, por ejemplo, el paquete <code>php-mysql</code>.",
        "config-outdated-sqlite": "<strong>Advertencia:</strong> tienes SQLite $1, que es inferior a la mínima versión requerida: $2. SQLite no estará disponible.",
        "config-no-fts3": "<strong>Advertencia:</strong> SQLite está compilado sin el [//sqlite.org/fts3.html módulo FTS3]. Las funcionalidades de búsqueda no estarán disponibles en esta instalación.",
        "config-pcre-old": "'''Fatal:''' Se requiere PCRE $1 o posterior.\nSu PHP binario está enlazado con PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Más información].",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "MediaWiki es compatible con los siguientes sistemas de bases de datos:\n\n$1\n\nSi no encuentras en el listado el sistema de base de datos que estás intentando utilizar, sigue las instrucciones enlazadas arriba para activar la compatibilidad.",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] es la base de datos mayoritaria para MediaWiki y la que goza de mayor compatibilidad. MediaWiki también funciona con [{{int:version-db-mariadb-url}} MariaDB] y [{{int:version-db-percona-url}} Percona Server], que son compatibles con MySQL. ([https://secure.php.net/manual/es/mysql.installation.php Cómo compilar PHP con compatibilidad MySQL])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mariadb-url}} MariaDB] es la base de datos mayoritaria para MediaWiki y la que goza de mayor compatibilidad. MediaWiki también funciona con [{{int:version-db-myslql-url}} MySQL] y [{{int:version-db-percona-url}} Percona Server], que son compatibles con MariaDB. ([https://secure.php.net/manual/es/mysql.installation.php Cómo compilar PHP con compatibilidad MySQL])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] es un sistema de base de datos popular de código abierto, alternativa a MySQL. ([https://secure.php.net/manual/es/pgsql.installation.php Cómo compilar PHP con compatibilidad PostgreSQL]).",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] es un sistema de base de datos ligero con gran compatibilidad con MediaWiki. ([https://secure.php.net/manual/en/pdo.installation.php Cómo compilar PHP con compatibilidad SQLite], usando PDO)",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] es una base de datos comercial a nivel empresarial. ([https://secure.php.net/manual/en/oci8.installation.php Cómo compilar PHP con compatibilidad con OCI8])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] es un sistema comercial de base de datos empresariales para Windows. ([https://secure.php.net/manual/en/sqlsrv.installation.php Cómo compilar PHP con compatibilidad con SQLSRV])",
-       "config-header-mysql": "Configuración de MySQL",
+       "config-header-mysql": "Configuración de MariaDB/MySQL",
        "config-header-postgres": "Configuración de PostgreSQL",
        "config-header-sqlite": "Configuración de SQLite",
        "config-header-oracle": "Configuración de Oracle",
index 719478e..6928530 100644 (file)
@@ -55,7 +55,7 @@
        "config-unicode-using-intl": "[https://pecl.php.net/intl intl PECL extension] erabiltzen Unicode-ren normalizaziorako.",
        "config-unicode-pure-php-warning": "<strong>Oharra:</strong> [https://pecl.php.net/intl intl PECL extension] ez dago prest Unicode-ren normalizazioa jasatzeko,PHP hutsaren ezarpena motelara itzultzen.\n\nTrafiko handiko gune bat exekutatzen baduzu, apur bat irakurri beharko zenuke [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization]-ri buruz.",
        "config-unicode-update-warning": "<strong>Oharra:</strong> Unicode-ren normalizazioaren bilgarriaren bertsio instalatua [http://site.icu-project.org/ ICU proiektuaren] liburutegia bertsio zaharrago bat erabiltzen du.\n[Https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade] behar duzu Unicode erabiltzeagatik kezkatuta bazaude.",
-       "config-no-db": "Ezin izan da aurkitu datu-basearen driver egoki bat! Instalatu behar duzu PHP-ko datu-basearen driver bat. Hurrengo datu {{PLURAL:$2|basea|baseak}} onartzen {{PLURAL:$2|da|dira}}:$1\n\n\nPHP-k zuk konpilatu baduzu, berkonfiguratu datu-basearen bezeroarekin gaituta, adibidez, <code>./configure --with-mysqli</code>. erabiliz.\nDebian edo Ubuntu pakete batetik PHPa instalatu baduzu, orduan instalatu behar duzu ere bai hurrengo adibide bezalako bat <code>php5-mysql</code>",
+       "config-no-db": "Ezin izan da aurkitu datu-basearen driver egoki bat! Instalatu behar duzu PHP-ko datu-basearen driver bat. Hurrengo datu {{PLURAL:$2|basea|baseak}} onartzen {{PLURAL:$2|da|dira}}:$1\n\n\nPHP-k zuk konpilatu baduzu, berkonfiguratu datu-basearen bezeroarekin gaituta, adibidez, <code>./configure --with-mysqli</code>. erabiliz.\nDebian edo Ubuntu pakete batetik PHPa instalatu baduzu, orduan instalatu behar duzu ere bai hurrengo adibide bezalako bat <code>php-mysql</code>",
        "config-outdated-sqlite": "<strong>Warning:</strong> SQLite $1 daukazu, hau da, gutxieneko bertsioa $2 baino atzeratutagoa da. SQLite ez dago erabilgarri.",
        "config-no-fts3": "<strong>Warning:</strong> SQLite konpilatu egin da  [//sqlite.org/fts3.html FTS3 module] barik, \nbilaketa funtzioak ez dira erabilgarri izango \"backend\" honetan.",
        "config-pcre-old": "<strong>Fatal:</strong> PCRE $1 edo berriagoa behar da.\nZure PHP bitarra PCRE $2 rekin lotzen da.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Informazio gehiago].",
index 64dfa20..cec1647 100644 (file)
@@ -68,7 +68,7 @@
        "config-env-php": "PHP $1 on asennettu.",
        "config-env-hhvm": "HHVM $1 on asennettu.",
        "config-unicode-using-intl": "Käyttää [https://pecl.php.net/intl intl PECL-laajennusta] Unicode-normalisaatioon.",
-       "config-no-db": "Sopivaa tietokanta-ajuria ei löytynyt! Sinun täytyy asentaa tietokanta-ajuri PHP:lle.\n{{PLURAL:$2|Seuraava tietokantatyyppi on tuettu|Seuraavat tietokantatyypit ovat tuettuja}}: $1.\n\nJos koostit PHP:n itse, määritä se uudelleen tietokanta-asiakkaan ollessa käytössä, esimerkiksi koodilla <code>./configure --with-mysqli</code>.\nJos asensit PHP:n Debian- tai Ubuntu-pakkauksesta, sinun on myös asennettava esimerkiksi <code>php5-mysql</code>-pakkaus.",
+       "config-no-db": "Sopivaa tietokanta-ajuria ei löytynyt! Sinun täytyy asentaa tietokanta-ajuri PHP:lle.\n{{PLURAL:$2|Seuraava tietokantatyyppi on tuettu|Seuraavat tietokantatyypit ovat tuettuja}}: $1.\n\nJos koostit PHP:n itse, määritä se uudelleen tietokanta-asiakkaan ollessa käytössä, esimerkiksi koodilla <code>./configure --with-mysqli</code>.\nJos asensit PHP:n Debian- tai Ubuntu-pakkauksesta, sinun on myös asennettava esimerkiksi <code>php-mysql</code>-pakkaus.",
        "config-outdated-sqlite": "<strong>Varoitus:</strong> sinulla on käytössä SQLite $1, joke on vanhempi kuin vähintään vaadittava versio $2. SQLite ei ole saatavilla.",
        "config-no-fts3": "<strong>Varoitus:</strong> SQLite on koostettu ilman [//sqlite.org/fts3.html FTS3-moduulia], hakuominaisuudet eivät ole käytössä tässä taustajärjestelmässä.",
        "config-pcre-old": "<strong>Tärkeää:</strong> PCRE $1 tai uudempi versio tarvitaan.\nPHP-binäärisi on linkitetty versiolla PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Lisätietoja].",
index 6259731..d8693d7 100644 (file)
@@ -78,7 +78,7 @@
        "config-unicode-using-intl": "Utilisation de [https://pecl.php.net/intl l’extension PECL intl] pour la normalisation Unicode.",
        "config-unicode-pure-php-warning": "<strong>Attention :</strong> L’[https://pecl.php.net/intl extension PECL intl] n’est pas disponible pour la normalisation d’Unicode, retour à la version lente implémentée en PHP seulement.\nSi votre site web sera très fréquenté, vous devriez lire ceci : [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ''Unicode normalization''] (en anglais).",
        "config-unicode-update-warning": "<strong>Attention :</strong> la version installée du normalisateur Unicode utilise une ancienne version de la bibliothèque logicielle du [http://site.icu-project.org/ ''Projet ICU''].\nVous devriez faire une [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations mise à jour] si vous êtes concerné par l’usage d’Unicode.",
-       "config-no-db": "Impossible de trouver un pilote de base de données approprié ! Vous devez installer un pilote de base de données pour PHP. {{PLURAL:$2|Le type suivant|Les types suivants}} de bases de données {{PLURAL:$2|est reconnu|sont reconnus}} : $1.\n\nSi vous avez compilé PHP vous-même, reconfigurez-le avec un client de base de données actif, par exemple en utilisant <code>./configure --with-mysqli</code>. Si vous avez installé PHP depuis un paquet Debian ou Ubuntu, alors vous devrez aussi installer, par exemple, le paquet <code>php5-mysql</code>.",
+       "config-no-db": "Impossible de trouver un pilote de base de données approprié ! Vous devez installer un pilote de base de données pour PHP. {{PLURAL:$2|Le type suivant|Les types suivants}} de bases de données {{PLURAL:$2|est reconnu|sont reconnus}} : $1.\n\nSi vous avez compilé PHP vous-même, reconfigurez-le avec un client de base de données activé, par exemple en utilisant <code>./configure --with-mysqli</code>.  \nSi vous avez installé PHP depuis un paquet Debian ou Ubuntu, alors vous devrez aussi installer, par exemple, le paquet <code>php-mysql</code>.",
        "config-outdated-sqlite": "<strong>Attention :</strong> vous avez SQLite $1, qui est inférieur à la version minimale requise $2. SQLite sera indisponible.",
        "config-no-fts3": "<strong>Attention :</strong> SQLite est compilé sans le [//sqlite.org/fts3.html module FTS3] ; les fonctions de recherche ne seront pas disponibles sur ce moteur.",
        "config-pcre-old": "<strong>Erreur fatale :</strong> PCRE $1 ou ultérieur est nécessaire.\nVotre binaire PHP est lié avec PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/Plus d’information sur PCRE].",
        "config-sqlite-dir-help": "SQLite stocke toutes les données dans un fichier unique.\n\nLe répertoire que vous fournissez doit être accessible en écriture par le serveur lors de l'installation.\n\nIl '''ne faut pas''' qu'il soit accessible via le web, c'est pourquoi il n'est pas à l'endroit où sont vos fichiers PHP.\n\nL'installateur écrira un fichier <code>.htaccess</code> en même temps, mais s'il y a échec, quelqu'un peut accéder à votre base de données.\nCela comprend les données des utilisateurs (adresses de courriel, mots de passe hachés) ainsi que des révisions supprimées et d'autres données confidentielles du wiki.\n\nEnvisagez de placer la base de données ailleurs, par exemple dans <code>/var/lib/mediawiki/yourwiki</code>.",
        "config-oracle-def-ts": "Espace de stockage (''tablespace'') par défaut :",
        "config-oracle-temp-ts": "Espace de stockage (''tablespace'') temporaire :",
-       "config-type-mysql": "MySQL (ou compatible)",
+       "config-type-mysql": "MariaDB, MySQL , ou compatible",
        "config-type-postgres": "PostgreSQL",
        "config-type-sqlite": "SQLite",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "MediaWiki prend en charge ces systèmes de bases de données :\n\n$1\n\nSi vous ne voyez pas le système de base de données que vous essayez d’utiliser ci-dessous, alors suivez les instructions ci-dessus (voir liens) pour activer la prise en charge.",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] est le premier choix pour MediaWiki et est le mieux pris en charge. MediaWiki fonctionne aussi avec [{{int:version-db-mariadb-url}} MariaDB] et [{{int:version-db-percona-url}} Percona Server], qui sont compatibles avec MySQL. ([https://secure.php.net/manual/en/mysqli.installation.php Comment compiler PHP avec la prise en charge de MySQL])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mariadb-url}} MariaDB] est le premier choix pour MediaWiki et est le mieux pris en charge. MediaWiki fonctionne aussi avec [{{int:version-db-mysql-url}} MySQL] et [{{int:version-db-percona-url}} Percona Server], qui sont compatibles avec MariaDB. ([https://secure.php.net/manual/en/mysqli.installation.php Comment compiler PHP avec la prise en charge de MySQL])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] est un système de base de données populaire en ''source ouverte'' qui peut être une alternative à MySQL ([https://secure.php.net/manual/en/pgsql.installation.php Comment compiler PHP avec la prise en charge de PostgreSQL]).",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] est un système de base de données léger bien pris en charge ([https://secure.php.net/manual/en/pdo.installation.php Comment compiler PHP avec la prise en charge de SQLite], en utilisant PDO).",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] est un système commercial de gestion de base de données d’entreprise. ([https://secure.php.net/manual/en/oci8.installation.php Comment compiler PHP avec la prise en charge d’OCI8])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] est une base de données commerciale d’entreprise pour Windows. ([https://secure.php.net/manual/en/sqlsrv.installation.php Comment compiler PHP avec la prise en charge de SQLSRV])",
-       "config-header-mysql": "Paramètres de MySQL",
+       "config-header-mysql": "Paramètres de MariaDB/MySQL",
        "config-header-postgres": "Paramètres de PostgreSQL",
        "config-header-sqlite": "Paramètres de SQLite",
        "config-header-oracle": "Paramètres d’Oracle",
        "config-db-web-create": "Créez le compte s'il n'existe pas déjà",
        "config-db-web-no-create-privs": "Le compte que vous avez spécifié pour l'installation n'a pas de privilèges suffisants pour créer un compte.\nLe compte que vous spécifiez ici doit déjà exister.",
        "config-mysql-engine": "Moteur de stockage :",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (recommandé)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "<strong> Avertissement </strong>: vous avez sélectionné MyISAM comme moteur de stockage pour MySQL, ce qui n’est pas recommandé pour une utilisation avec MediaWiki, parce que :\n * il prend à peine en charge la simultanéité en raison de verrouillage de table\n * il est plus sujet à la corruption que les autres moteurs\n * le code de base MediaWiki ne gère pas toujours MyISAM comme il se doit\n\nSi votre installation MySQL prenden charge InnoDB, il est fortement recommandé que vous le choisissiez plutôt. \nSi votre installation MySQL ne prend pas en charge les tables InnoDB, il est peut-être temps de faire une mise à niveau.",
        "config-mysql-only-myisam-dep": "<strong>Attention :</strong> MyISAM est le seul moteur de stockage disponible pour MySQL sur cette machine, et cela n’est pas recommandé pour une utilisation avec MédiaWiki, car :\n* il prend très peu en charge les accès concurrents à cause du verrouillage des tables\n* il est plus sujet à corruption que les autres moteurs\n* le code de base de MédiaWiki ne gère pas toujours MyISAM comme il faudrait\n\nVotre installation MySQL ne prend pas en charge InnoDB ; il est peut-être temps de la mettre à jour.",
index 45bb959..e619978 100644 (file)
@@ -56,7 +56,7 @@
        "config-unicode-using-intl": "Usando a [https://pecl.php.net/intl extensión intl PECL] para a normalización Unicode.",
        "config-unicode-pure-php-warning": "<strong>Atención:</strong> A [https://pecl.php.net/intl extensión intl PECL] non está dispoñible para manexar a normalización Unicode; volvendo á execución lenta de PHP puro.\nSe o seu sitio posúe un alto tráfico de visitantes, debería ler un chisco sobre a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
        "config-unicode-update-warning": "<strong>Atención:</strong> A versión instalada da envoltura de normalización Unicode emprega unha versión vella da biblioteca [http://site.icu-project.org/ do proxecto ICU].\nDebería [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations actualizar] se o uso de Unicode é importante para vostede.",
-       "config-no-db": "Non se puido atopar un controlador axeitado para a base de datos! Necesita instalar un controlador de base de datos para PHP.\n{{PLURAL:$2|Acéptase o seguinte tipo|Acéptanse os seguintes tipos}} de base de datos: $1.\n\nSe compilou o PHP vostede mesmo, reconfigúreo activando un cliente de base de datos, por exemplo, usando <code>./configure --with-mysqli</code>.\nSe instalou o PHP desde un paquete Debian ou Ubuntu, entón tamén necesita instalar, por exemplo, o módulo <code>php5-mysql</code>.",
+       "config-no-db": "Non se puido atopar un controlador axeitado para a base de datos! Necesita instalar un controlador de base de datos para PHP.\n{{PLURAL:$2|Acéptase o seguinte tipo|Acéptanse os seguintes tipos}} de base de datos: $1.\n\nSe compilou o PHP vostede mesmo, reconfigúreo activando un cliente de base de datos, por exemplo, usando <code>./configure --with-mysqli</code>.\nSe instalou o PHP desde un paquete Debian ou Ubuntu, entón tamén necesita instalar, por exemplo, o módulo <code>php-mysql</code>.",
        "config-outdated-sqlite": "<strong>Atención:</strong> Ten o SQLite $1, que é inferior á versión mínima necesaria: $2. O SQLite non estará dispoñible.",
        "config-no-fts3": "<strong>Atención:</strong> O SQLite está compilado sen o [//sqlite.org/fts3.html módulo FTS3]; as características de procura non estarán dispoñibles nesta instalación.",
        "config-pcre-old": "<strong>Erro fatal:</strong> Necesítase PCRE $1 ou posterior.\nO seu PHP binario está ligado con PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Máis información].",
index 990b3bc..a680353 100644 (file)
        "config-sqlite-dir-help": "SQLite שומר את כל הנתונים בקובץ אחד.\n\nלשרת הווב צריכה להיות הרשאה לכתוב לתיקייה שמוגדרת כאן.\n\nהיא לא צריכה נגישה לכולם דרך האינטרנט – בגלל זה איננו שמים אותה באותו מקום עם קובצי ה־PHP.\n\nתוכנת ההתקנה תכתוב קובץ <code dir=\"ltr\">.htaccess</code> יחד אִתו, אבל אם זה ייכשל, מישהו יוכל להשיג גישה למסד הנתונים שלכם.\nשם נמצא מידע מפורש של משתמשים (כתובות דוא״ל, ססמאות מגובבות) וגם גרסאות מחוקות של דפים ומידע מוגבל אחר.\n\nכדאי לשקול לשים את מסד הנתונים במקום אחר לגמרי, למשל ב־<code dir=\"ltr\">/var/lib/mediawiki/yourwik</code>.",
        "config-oracle-def-ts": "מרחב טבלאות לפי בררת מחדל (default tablespace):",
        "config-oracle-temp-ts": "מרחב טבלאות זמני (temporary tablespace):",
-       "config-type-mysql": "MySQL (או תואם)",
+       "config-type-mysql": "MariaDB‏, MySQL, או תואם",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "מדיה־ויקי תומכת במערכות מסדי הנתונים הבאות:\n\n$1\n\nאם אינך רואה את מסד הנתונים שלך ברשימה, יש לעקוב אחר ההוראות המקושרות לעיל כדי להפעיל את התמיכה.",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] הוא היעד העיקרי עבור מדיה־ויקי ולו התמיכה הטובה ביותר. מדיה־ויקי עובדת גם עם [{{int:version-db-mariadb-url}} MariaDB] ועם [{{int:version-db-percona-url}} Percona Server], שתואמים ל־MySQL. (ר׳ [https://secure.php.net/manual/en/mysql.installation.php how to compile PHP with MySQL support])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mariadb-url}} MariaDB] הוא היעד העיקרי עבור מדיה־ויקי ולו התמיכה הטובה ביותר. מדיה־ויקי עובדת גם עם [{{int:version-db-mysql-url}} MySQL] ועם [{{int:version-db-percona-url}} Percona Server], שתואמים ל־MariaDB. (ר׳ [https://secure.php.net/manual/en/mysql.installation.php how to compile PHP with MySQL support])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] הוא מסד נתונים נפוץ בקוד פתוח והוא נפוץ בתור חלופה ל־MySQL. (ר׳ [https://secure.php.net/manual/en/pgsql.installation.php how to compile PHP with PostgreSQL support]).",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] הוא מסד נתונים קליל עם תמיכה טובה מאוד. (ר׳ [https://secure.php.net/manual/en/pdo.installation.php How to compile PHP with SQLite support], משתמש ב־PDO)",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] הוא מסד נתונים עסקי מסחרי. (ר׳ [https://secure.php.net/manual/en/oci8.installation.php How to compile PHP with OCI8 support])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] הוא מסד נתונים עסקי מסחרי לחלונות. ([https://secure.php.net/manual/en/sqlsrv.installation.php How to compile PHP with SQLSRV support])",
-       "config-header-mysql": "הגדרות MySQL",
+       "config-header-mysql": "הגדרות MariaDB/MySQL",
        "config-header-postgres": "הגדרות PostgreSQL",
        "config-header-sqlite": "הגדרות SQLite",
        "config-header-oracle": "הגדרות Oracle",
        "config-db-web-create": "ליצור חשבון אם הוא אינו קיים כבר.",
        "config-db-web-no-create-privs": "לחשבון שהקלדת להתקנה אין מספיק הרשאות ליצירת חשבון.\nהחשבון שאתם מקלידים כאן צריך להיות קיים.",
        "config-mysql-engine": "מנוע האחסון:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (מומלץ)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "'''אזהרה''': בחרתם ב־MyISAM בתור מנוע אחסון של MySQL, וזה לא מומלץ מהסיבות הבאות:\n* המנוע הזה בקושי תומך בעיבוד מקבילי בגלל נעילת טבלאות\n* הוא פחות עמיד בפני אובדן מידע ממנועים אחרים\n* הקוד של מדיה־ויקי לא תמיד מטפל ב־MyISAM כפי שצריך\n\nאם התקנת MySQL שלכם תומכת ב־InnoDB, מומלץ מאוד שתבחרו באפשרות הזאת.\nאם התקנת MySQL שלכם אינה תומכת ב־InnoDB, אולי זה הזמן לשקול לשדרג אותה.",
        "config-mysql-only-myisam-dep": "'''אזהרה:''' MyISAM הוא מנוע האחסון היחיד שזמין ל־MySQL במכונה הזאת, וזה לא מומלץ לשימוש עם מדיה־ויקי, כי:\n* הוא כמעט שאינו תומך בחיבורים מרובים בגלל נעילת טבלאות\n* הוא פגיע יותר לקלקול ממנועים אחרים\n* הקוד של מדיה־ויקי לא תמיד מטפל ב־MyISAM כפי שצריך\n\nהתקנת MySQL אינה תומכת ב־InnoDB, ואולי הגיע הזמן לשדרג אותה.",
index 2c357c1..b358c4d 100644 (file)
@@ -50,7 +50,7 @@
        "config-unicode-using-intl": "Zur  Unicode-Normalisierung weard die [https://pecl.php.net/intl PECL-Erweiterung intl] ingesetzt.",
        "config-unicode-pure-php-warning": "'''Warnung:''' Die [https://pecl.php.net/intl PECL-Erweiterung intl] ist für die Unicode-Normalisierung net verfüchbar, so dass stattdessen die langsame pure-PHP-Implementierung genutzt weard.\nSofern en Webseit mit grosser Benutzeranzoohl betrieb weard, sollte weitre Informatione uff der Webseite [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-Normalisierung (en)] geles sin.",
        "config-unicode-update-warning": "'''Warnung:''' Die installierte Version von der Unicode-Normalisierungswrappers nutzt en ältre Version von der [http://site.icu-project.org/ ICU-Projekts] sein Bibliothek.\nDie sollte [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations aktualisiert] sin, sofern uff die Verwennung von Unicode Wert geleht weard.",
-       "config-no-db": "Es konnt ken adäquater Datenbanktreiwer gefund sin. Es muss doher en Datenbanktreiwer für PHP installiert sin.\nDie folchende Datebanksysteme werre unnerstützt: $1\n\nWenn du PHP sellebst kompiliert host, konfigurier es erneit mit en aktiviert Datebankclient, zum Beispiel dorrich Verwennung von <code>./configure --with-mysqli</code>.\nWenn du PHP von en Debian- orrer Ubuntu-Paket installiert host, dann musst du ooch beispielsweis das <code>php5-mysql</code>-Paket installiere.",
+       "config-no-db": "Es konnt ken adäquater Datenbanktreiwer gefund sin. Es muss doher en Datenbanktreiwer für PHP installiert sin.\nDie folchende Datebanksysteme werre unnerstützt: $1\n\nWenn du PHP sellebst kompiliert host, konfigurier es erneit mit en aktiviert Datebankclient, zum Beispiel dorrich Verwennung von <code>./configure --with-mysqli</code>.\nWenn du PHP von en Debian- orrer Ubuntu-Paket installiert host, dann musst du ooch beispielsweis das <code>php-mysql</code>-Paket installiere.",
        "config-outdated-sqlite": "'''Warnung:''' SQLite $1 ist installiert. Allerdings benöticht MediaWiki SQLite $2 orrer höcher. SQLite weard doher net verfüchbar sin.",
        "config-no-fts3": "'''Warnung:''' SQLite woard ohne das [//sqlite.org/fts3.html FTS3-Modul] kompiliert, so dass ken Suchfunktione für das Datenbanksystem zur Verfüchung stehn werre.",
        "config-pcre-old": "<strong>Fataler Fehler:</strong> PCRE $1 orrer neier ist notwendich!\nDie vorhandne PHP-Binärdatei ist mit PCRE $2 verknüpft.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Weitre Informatione].",
index bc31799..10c6159 100644 (file)
@@ -47,7 +47,7 @@
        "config-env-bad": "Wokolina je so skontrolowała.\nNjemóžeš MediaWiki instalować.",
        "config-env-php": "PHP $1 je instalowany.",
        "config-unicode-using-intl": "Za normalizaciju Unicode so [https://pecl.php.net/intl PECL-rozšěrjenje intl] wužiwa.",
-       "config-no-db": "Njeda so přihódny ćěrjak datoweje banki namakać! Dyrbiš ćěrjak datoweje banki za PHP instalować.\nSlědowace typy datoweje banki so podpěruja: $1.\n\nJeli sy PHP sam kompilował, konfiguruj jón znowa z aktiwizowanym programom datoweje banki, na přikład z pomocu <code>./configure --with-mysqli</code>.\nJeli sy PHP z Debianoweho abo Ubuntuoweho paketa instalował, dyrbiš tež paket <code>php5-mysql</code> instalować.",
+       "config-no-db": "Njeda so přihódny ćěrjak datoweje banki namakać! Dyrbiš ćěrjak datoweje banki za PHP instalować.\nSlědowace typy datoweje banki so podpěruja: $1.\n\nJeli sy PHP sam kompilował, konfiguruj jón znowa z aktiwizowanym programom datoweje banki, na přikład z pomocu <code>./configure --with-mysqli</code>.\nJeli sy PHP z Debianoweho abo Ubuntuoweho paketa instalował, dyrbiš tež paket <code>php-mysql</code> instalować.",
        "config-outdated-sqlite": "'''Warnowanje''': maš SQLite $1, kotryž je starši hač minimalna trěbna wersija $2. SQLite njebudźe k dispoziciji stać.",
        "config-no-fts3": "'''Warnowanje''': SQLite je so bjez [//sqlite.org/fts3.html FTS3-modula] kompilował, pytanske funkcije njebudu k dispoziciji stać.",
        "config-pcre-no-utf8": "'''Ćežki zmylk''': Zda so, zo PCRE-modul za PHP ma so bjez PCRE_UTF8-podpěry kompilować.\nMediaWiki trjeba UTF-8-podpěru, zo by korektnje fungował.",
index 525ee6b..25c6cae 100644 (file)
@@ -62,7 +62,7 @@
        "config-unicode-using-intl": "A rendszer Unicode normalizálására az [https://pecl.php.net/intl intl PECL kiterjesztést] használja.",
        "config-unicode-pure-php-warning": "<strong>Figyelmeztetés:</strong> A Unicode-normalizáláshoz szükséges [https://pecl.php.net/intl intl PECL kiterjesztés] nem érhető el, helyette a lassú, PHP-alapú implementáció lesz használatban.\nHa nagy látogatottságú oldalt üzemeltetsz, [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations itt] találhatsz további információkat a témáról.",
        "config-unicode-update-warning": "<strong>Figyelmeztetés:</strong> A Unicode normalizáláshoz szükséges burkolókönyvtár [http://site.icu-project.org/ az ICU projekt] függvénykönyvtárának régebbi változatát használja.\nHa ügyelni kívánsz a Unicode használatára, fontold meg a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations frissítését].",
-       "config-no-db": "Nem sikerült egyetlen használható adatbázis-illesztőprogramot sem találni. Telepítened kell egyet a PHP-hez.\nA következő {{PLURAL:$2|adatbázistípus támogatott|adatbázistípusok támogatottak}}: $1.\n\nHa a PHP-t magad fordítottad, konfiguráld újra úgy, hogy engedélyezve legyen egy adatbáziskliens, pl. a <code>./configure --with-mysqli</code> parancs használatával.\nHa a PHP-t Debian vagy Ubuntu csomaggal telepítetted, akkor szükséged lesz például a <code>php5-mysql</code> csomagra is.",
+       "config-no-db": "Nem sikerült egyetlen használható adatbázis-illesztőprogramot sem találni. Telepítened kell egyet a PHP-hez.\nA következő {{PLURAL:$2|adatbázistípus támogatott|adatbázistípusok támogatottak}}: $1.\n\nHa a PHP-t magad fordítottad, konfiguráld újra úgy, hogy engedélyezve legyen egy adatbáziskliens, pl. a <code>./configure --with-mysqli</code> parancs használatával.\nHa a PHP-t Debian vagy Ubuntu csomaggal telepítetted, akkor szükséged lesz például a <code>php-mysql</code> csomagra is.",
        "config-outdated-sqlite": "<strong>Figyelmeztetés:</strong> SQLite $1 verziód van, ami alacsonyabb a legalább szükséges $2 verziónál. Az SQLite nem lesz elérhető.",
        "config-no-fts3": "<strong>Figyelmeztetés:</strong> Az SQLite [//sqlite.org/fts3.html FTS3 modul] nélkül lett fordítva, a keresési funkciók nem fognak működni ezen a rendszeren.",
        "config-pcre-old": "<strong>Kritikus hiba:</strong> PCRE $1 vagy későbbi szükséges.\nA te PHP binárisod a PCRE $2 verziójával van linkelve.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE További információ].",
index e71a6bb..fe382ac 100644 (file)
@@ -53,7 +53,7 @@
        "config-unicode-using-intl": "Le [https://pecl.php.net/intl extension PECL intl] es usate pro le normalisation Unicode.",
        "config-unicode-pure-php-warning": "'''Aviso''': Le [https://pecl.php.net/intl extension PECL intl] non es disponibile pro exequer le normalisation Unicode; le systema recurre al implementation lente in PHP pur.\nSi tu sito ha un alte volumine de traffico, tu deberea informar te un poco super le [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalisation Unicode].",
        "config-unicode-update-warning": "'''Aviso''': Le version installate del bibliotheca inveloppante pro normalisation Unicode usa un version ancian del bibliotheca del [http://site.icu-project.org/ projecto ICU].\nTu deberea [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations actualisar lo] si le uso de Unicode importa a te.",
-       "config-no-db": "Non poteva trovar un driver appropriate pro le base de datos! Es necessari installar un driver de base de datos pro PHP.\nLe sequente {{PLURAL:$2|typo|typos}} de base de datos es supportate: $1.\n\nSi tu compilava PHP tu mesme, reconfigura lo con un cliente de base de datos activate, per exemplo, usante <code>./configure --with-mysqli</code>.\nSi tu installava PHP ex un pacchetto Debian o Ubuntu, tu debe etiam installar, per exemplo, le modulo <code>php5-mysql</code>.",
+       "config-no-db": "Non poteva trovar un driver appropriate pro le base de datos! Es necessari installar un driver de base de datos pro PHP.\nLe sequente {{PLURAL:$2|typo|typos}} de base de datos es supportate: $1.\n\nSi tu compilava PHP tu mesme, reconfigura lo con un cliente de base de datos activate, per exemplo, usante <code>./configure --with-mysqli</code>.\nSi tu installava PHP ex un pacchetto Debian o Ubuntu, tu debe etiam installar, per exemplo, le modulo <code>php-mysql</code>.",
        "config-outdated-sqlite": "'''Attention''': tu ha SQLite $1, que es inferior al version minimal requirite, $2. SQLite essera indisponibile.",
        "config-no-fts3": "'''Attention''': SQLite es compilate sin [//sqlite.org/fts3.html modulo FTS3]; functionalitate de recerca non essera disponibile in iste back-end.",
        "config-pcre-old": "<strong>Fatal:</strong> PCRE $1 o plus tarde es necessari.\nTu binario de PHP binary es ligate con PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Plus information].",
        "config-db-web-create": "Crear le conto si illo non jam existe",
        "config-db-web-no-create-privs": "Le conto que tu specificava pro installation non ha sufficiente privilegios pro crear un conto.\nLe conto que tu specifica hic debe jam exister.",
        "config-mysql-engine": "Motor de immagazinage:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (recommendate)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "* '''Attention:''' Tu ha seligite MyISAM como motor de immagazinage pro MySQL, lo que non es recommendate pro uso con MediaWiki, perque:\n* illo a pena supporta le processamento simultanee a causa del blocada le tabulas\n* illo es plus susceptibile al corruption que altere motores\n* le base de codice de MediaWiki non sempre manea MyISAM como illo deberea\n\nSi tu installation de MySQL supporta InnoDB, es multo recommendate que tu selige iste in su loco.\nSi tu installation de MySQL non supporta InnoDB, forsan isto es un bon occasion pro actualisar lo.",
        "config-mysql-only-myisam-dep": "'''Attention:''' MyISAM es le unic motor de immagazinage disponibile pro MySQL in iste machina, ma isto non es recommendate pro le uso con MediaWiki, perque:\n* a pena supporto le accesso simultanee a causa del blocage de tabellas\n* es plus propense a corrumper se que altere motores\n* le codice base de MediaWiki non sempre gere MyISAM como deberea\n\nTu installation de MySQL non supporta InnoDB; forsan il es tempore de actualisar lo.",
index eb6f51c..87fc27b 100644 (file)
@@ -64,7 +64,7 @@
        "config-unicode-using-intl": "Menggunakan [https://pecl.php.net/intl ekstensi PECL intl] untuk normalisasi Unicode.",
        "config-unicode-pure-php-warning": "<strong>Peringatan:</strong> [https://pecl.php.net/intl intl Ekstensi PECL] tidak tersedia untuk menangani normalisasi Unicode, dikembalikan untuk melambatkan implementasi PHP asli.\nApabila Anda menjalankan situs dengan lalu-lintas tinggi, Anda harus membaca [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalisasi Unicode].",
        "config-unicode-update-warning": "<strong>Peringatan:</strong> Versi terinstal dari pembungkus normalisasi Unicode menggunakan versi lama pustaka [http://site.icu-project.org/ proyek ICU].\nAnda harus [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations meningkatkan versinya] jika ingin menggunakan Unicode.",
-       "config-no-db": "Pengandar basis data yang sesuai tidak ditemukan! Anda perlu menginstal pengandar basis data untuk PHP.\n{{PLURAL:$2|Jenis|Jenis}} basis data yang didukung: $1.\n\nJika Anda mengompilasi PHP sendiri, ubahlah konfigurasinya dengan mengaktifkan klien basis data, misalnya menggunakan <code>./configure --with-mysqli</code>.\nJika Anda menginstal PHP dari paket Debian atau Ubuntu, maka Anda juga perlu menginstal seperti paket <code>php5-mysql</code>.",
+       "config-no-db": "Pengandar basis data yang sesuai tidak ditemukan! Anda perlu menginstal pengandar basis data untuk PHP.\n{{PLURAL:$2|Jenis|Jenis}} basis data yang didukung: $1.\n\nJika Anda mengompilasi PHP sendiri, ubahlah konfigurasinya dengan mengaktifkan klien basis data, misalnya menggunakan <code>./configure --with-mysqli</code>.\nJika Anda menginstal PHP dari paket Debian atau Ubuntu, maka Anda juga perlu menginstal seperti paket <code>php-mysql</code>.",
        "config-outdated-sqlite": "<strong>Peringatan:</strong> Anda menggunakan SQLite $1, yang lebih rendah dari versi minimum yang diperlukan $2. SQLite akan tidak tersedia.",
        "config-no-fts3": "'''Peringatan''': SQLite dikompilasi tanpa [//sqlite.org/fts3.html modul FTS3], fitur pencarian tidak akan tersedia pada konfigurasi ini.",
        "config-pcre-old": "<strong>Fatal:</strong> PCRE $1 atau kemudian diperlukan.\nBiner PHP Anda dihubungkan dengan PCRE $2. [https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Selengkapnya].",
index b9b52b6..bea4607 100644 (file)
@@ -70,7 +70,7 @@
        "config-unicode-using-intl": "Usa [https://pecl.php.net/intl l'estensione PECL intl] per la normalizzazione Unicode.",
        "config-unicode-pure-php-warning": "'''Attenzione:''' [https://pecl.php.net/intl l'estensione PECL intl] non è disponibile per gestire la normalizzazione Unicode, quindi si torna alla lenta implementazione in PHP puro.\nSe esegui un sito ad alto traffico, dovresti leggere alcune considerazioni sulla [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizzazione Unicode].",
        "config-unicode-update-warning": "'''Attenzione:''' la versione installata del gestore per la normalizzazione Unicode usa una vecchia versione della libreria [http://site.icu-project.org/ del progetto ICU].\nDovresti [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations aggiornare] se vuoi usare l'Unicode.",
-       "config-no-db": "Impossibile trovare un driver adatto per il database! È necessario installare un driver per PHP.\n{{PLURAL:$2|Il seguente formato di database è supportato|I seguenti formati di database sono supportati}}: $1.\n\nSe compili PHP autonomamente, riconfiguralo attivando un client database, per esempio utilizzando <code>./configure --with-mysqli</code>.\nQualora avessi installato PHP per mezzo di un pacchetto Debian o Ubuntu, allora devi installare anche il pacchetto <code>php5-mysql</code>.",
+       "config-no-db": "Impossibile trovare un driver adatto per il database! È necessario installare un driver per PHP.\n{{PLURAL:$2|Il seguente formato di database è supportato|I seguenti formati di database sono supportati}}: $1.\n\nSe compili PHP autonomamente, riconfiguralo attivando un client database, per esempio utilizzando <code>./configure --with-mysqli</code>.\nQualora avessi installato PHP per mezzo di un pacchetto Debian o Ubuntu, allora devi installare anche il pacchetto <code>php-mysql</code>.",
        "config-outdated-sqlite": "'''Attenzione''': è presente SQLite $1 mentre è richiesta la versione $2, SQLite non sarà disponibile.",
        "config-no-fts3": "'''Attenzione''': SQLite è compilato senza il [//sqlite.org/fts3.html modulo FTS3], le funzionalità di ricerca non saranno disponibili su questo backend.",
        "config-pcre-old": "<strong>Errore fatale:</strong> si richiede PCRE  $1 o successivo.\nIl tuo file binario PHP è collegato con PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/Maggiori informazioni su PCRE].",
        "config-db-web-create": "Crea l'account se non esiste già",
        "config-db-web-no-create-privs": "L'account usato per l'installazione non dispone dei privilegi necessari per creare un altro account.\nL'account indicato qui deve già esistere.",
        "config-mysql-engine": "Storage engine:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (consigliato)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "<strong>Attenzione:</strong> hai selezionato MyISAM come motore di archiviazione per MySQL, che non è raccomandato per l'uso con  MediaWiki, perché:\n* supporta debolmente la concorrenza per il blocco della tabella\n* è più incline alla corruzione di altri motori\n* il codice di base MediaWiki non gestisce sempre MyISAM come dovrebbe\n\nSe la tua installazione MySQL supporta InnoDB, è altamente raccomandato che lo si scelga al suo posto.\nSe la tua installazione MySQL non supporta InnoDB, forse è il momento per un aggiornamento.",
        "config-mysql-only-myisam-dep": "<strong>Attenzione:</strong> MyISAM è l'unico motore di archiviazione disponibile per MySQL su questa macchina, e questo non è consigliato per l'uso con MediaWiki, perché:\n* supporta debolmente la concorrenza per il blocco della tabella\n* è più incline alla corruzione di altri motori\n* il codice di base MediaWiki non gestisce sempre MyISAM come dovrebbe\n\nSe la tua installazione MySQL non supporta InnoDB, forse è il momento per un aggiornamento.",
index f5e65a5..0346dc7 100644 (file)
@@ -72,7 +72,7 @@
        "config-unicode-using-intl": "Unicode正規化に[https://pecl.php.net/intl intl PECL 拡張機能]を使用。",
        "config-unicode-pure-php-warning": "<strong>警告:</strong> Unicode 正規化の処理に [https://pecl.php.net/intl intl PECL 拡張機能]を利用できないため、処理が遅いピュア PHP の実装を代わりに使用しています。\n高トラフィックのサイトを運営する場合は、[https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode 正規化]をお読みください。",
        "config-unicode-update-warning": "<strong>警告:</strong> インストールされているバージョンの Unicode 正規化ラッパーは、[http://site.icu-project.org/ ICU プロジェクト]のライブラリの古いバージョンを使用しています。\nUnicode を少しでも利用する可能性がある場合は、[https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations アップグレード]してください。",
-       "config-no-db": "適切なデータベース ドライバーが見つかりませんでした! PHP にデータベース ドライバーをインストールする必要があります。\n以下の種類のデータベース{{PLURAL:$2|のタイプ}}に対応しています: $1\n\nPHP を自分でコンパイルした場合は、例えば <code>./configure --with-mysqli</code> を実行して、データベース クライアントを使用できるように再設定してください。\nDebian または Ubuntu のパッケージから PHP をインストールした場合は、モジュール (例: <code>php5-mysql</code>) もインストールする必要があります。",
+       "config-no-db": "適切なデータベース ドライバーが見つかりませんでした! PHP にデータベース ドライバーをインストールする必要があります。\n以下の種類のデータベース{{PLURAL:$2|のタイプ}}に対応しています: $1\n\nPHP を自分でコンパイルした場合は、例えば <code>./configure --with-mysqli</code> を実行して、データベース クライアントを使用できるように再設定してください。\nDebian または Ubuntu のパッケージから PHP をインストールした場合は、モジュール (例: <code>php-mysql</code>) もインストールする必要があります。",
        "config-outdated-sqlite": "<strong>警告:</strong> あなたは SQLite $1 を使用していますが、最低限必要なバージョン $2 より古いバージョンです。SQLite は利用できません。",
        "config-no-fts3": "<strong>警告:</strong> SQLite は [//sqlite.org/fts3.html FTS3] モジュールなしでコンパイルされており、このバックエンドでは検索機能は利用できなくなります。",
        "config-pcre-old": "<strong>致命的エラー:</strong> PCRE $1 以降が必要です。\nご使用中の PHP のバイナリは PCRE $2 とリンクされています。\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 詳細情報]",
index e0a9c8b..bd4bd7f 100644 (file)
@@ -61,7 +61,7 @@
        "config-unicode-using-intl": "유니코드 정규화에 [https://pecl.php.net/intl intl PECL 확장 기능]을 사용합니다.",
        "config-unicode-pure-php-warning": "<strong>경고:</strong> 유니코드 정규화를 처리할 [https://pecl.php.net/intl intl PECL 확장 기능]을 사용할 수 없기 때문에 느린 pure-PHP 구현을 대신 사용합니다.\n트래픽이 높은 사이트에서 실행하시려면 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 유니코드 정규화]를 읽어보셔야 합니다.",
        "config-unicode-update-warning": "<strong>경고:</strong> 유니코드 정규화 래퍼의 설치된 버전은 [http://site.icu-project.org/ ICU 프로젝트]의 라이브러리의 이전 버전을 사용합니다.\n만약 유니코드를 사용하는 것에 대해 우려가 된다면 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 업그레이드]해야합니다.",
-       "config-no-db": "적절한 데이터베이스 드라이버를 찾을 수 없습니다! PHP용 데이터베이스 드라이버를 설치해야 합니다.\n다음 데이터베이스 {{PLURAL:$2|유형을}} 지원합니다: $1.\n\nPHP를 직접 컴파일했다면, 예를 들어 <code>./configure --with-mysqli</code>을 사용하여, 데이터베이스 클라이언트를 활성화하도록 다시 설정하세요.\n데비안이나 우분투 패키지에서 PHP를 설치했다면 <code>php5-mysql</code> 패키지도 설치해야 합니다.",
+       "config-no-db": "적절한 데이터베이스 드라이버를 찾을 수 없습니다! PHP용 데이터베이스 드라이버를 설치해야 합니다.\n다음 데이터베이스 {{PLURAL:$2|유형을}} 지원합니다: $1.\n\nPHP를 직접 컴파일했다면, 예를 들어 <code>./configure --with-mysqli</code>을 사용하여, 데이터베이스 클라이언트를 활성화하도록 다시 설정하세요.\n데비안이나 우분투 패키지에서 PHP를 설치했다면 <code>php-mysql</code> 패키지도 설치해야 합니다.",
        "config-outdated-sqlite": "<strong>경고:</strong> 최소 요구 버전 $2 보다 낮은 SQLite $1이(가) 있습니다. SQLite를 사용할 수 없습니다.",
        "config-no-fts3": "<strong>경고:</strong> SQLite를 [//sqlite.org/fts3.html FTS3 모듈] 없이 컴파일하며, 검색 기능은 백엔드에 사용할 수 없습니다.",
        "config-pcre-old": "<strong>치명:</strong> PCRE $1 또는 그 이상이 필요합니다.\nPHP 바이너리는 PCRE $2에 연결되어 있습니다. [https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 자세한 정보].",
        "config-sqlite-dir-help": "SQLite는 하나의 파일에 모든 데이터를 저장합니다.\n\n입력한 디렉토리는 설치하는 동안 웹 서버가 쓸 수 있어야 합니다.\n\n이 디렉토리는 웹을 통해 접근할 수 <strong>없어야</strong> 합니다. PHP 파일이 있는 곳에 넣을 수 없는 것은 이 때문입니다.\n\n설치 관리자는 <code>.htaccess</code> 파일을 작성하지만, 이것이 실패하면 누군가가 원본 데이터베이스에 접근할 수 있습니다.\n데이터베이스는 원본 사용자 데이터(이메일 주소, 해시한 비밀번호)뿐만 아니라 삭제된 판과 위키의 다른 제한된 데이터를 포함합니다.\n\n예를 들어 <code>/var/lib/mediawiki/yourwiki</code>와 같이 다른 곳에 데이터베이스를 넣는 것이 좋습니다.",
        "config-oracle-def-ts": "기본 테이블공간:",
        "config-oracle-temp-ts": "임시 테이블공간:",
-       "config-type-mysql": "MySQL (또는 호환되는 데이터베이스 시스템)",
+       "config-type-mysql": "MariaDB, MySQL 및 호환",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL 서버",
        "config-support-info": "미디어위키는 다음의 데이터베이스 시스템을 지원합니다:\n\n$1\n\n데이터베이스 시스템이 표시되지 않을 때 아래에 나열된 다음 지원을 활성화하려면 위의 링크된 지시에 따라 설치해볼 수 있습니다.",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL]은 미디어위키의 기본 대상이며 가장 잘 지원됩니다. 미디어위키는 또한 MySQL와 호환되는 [{{int:version-db-mariadb-url}} MariaDB]와 [{{int:version-db-percona-url}} Percona 서버]에서도 작동합니다. ([https://secure.php.net/manual/en/mysql.installation.php MySQL 지원으로 PHP를 컴파일하는 방법])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mariadb-url}} MariaDB]는 미디어위키의 기본 대상이며 가장 잘 지원됩니다. 미디어위키는 또한 MariaDB와 호환되는 [{{int:version-db-mysql-url}} MySQL]과 [{{int:version-db-percona-url}} Percona 서버]에서도 작동합니다. ([https://secure.php.net/manual/en/mysql.installation.php MySQL 지원으로 PHP를 컴파일하는 방법])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL]은 MySQL의 대안으로서 인기 있는 오픈 소스 데이터베이스 시스템입니다. ([https://secure.php.net/manual/en/pgsql.installation.php PostgreSQL 지원으로 PHP를 컴파일하는 방법])",
        "config-dbsupport-sqlite": "*  [{{int:version-db-sqlite-url}} SQLite]는 매우 잘 지원되고 가벼운 데이터베이스 시스템입니다. ([https://secure.php.net/manual/en/pdo.installation.php SQLite 지원으로 PHP를 컴파일하는 방법], PDO 사용)",
        "config-dbsupport-oracle": "*  [{{int:version-db-oracle-url}} Oracle]은 상용 기업 데이터베이스입니다. ([https://secure.php.net/manual/en/oci8.installation.php OCI8 지원으로 PHP를 컴파일하는 방법])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL 서버]는 Windows용 상용 기업 데이터베이스입니다. ([https://secure.php.net/manual/en/sqlsrv.installation.php SQLSRV 지원으로 PHP를 컴파일하는 방법])",
-       "config-header-mysql": "MySQL 설정",
+       "config-header-mysql": "MariaDB/MySQL 설정",
        "config-header-postgres": "PostgreSQL 설정",
        "config-header-sqlite": "SQLite 설정",
        "config-header-oracle": "Oracle 설정",
        "config-db-web-create": "이 계정이 아직 존재하지 않을 경우 계정 만들기",
        "config-db-web-no-create-privs": "설치를 위해 지정한 계정이 계정을 만들 수 있는 충분한 권한이 없습니다.\n여기서 지정한 계정은 이미 존재해야 합니다.",
        "config-mysql-engine": "저장소 엔진:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (권장)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "<strong>경고:</strong> MySQL을 위한 저장소 엔진으로 MyISAM을 선택하였습니다. MyISAM을 미디어위키에 사용하는 것은 좋지 않습니다.  이유는:\n* 테이블 잠금 때문에 동시 실행을 지원하지 않습니다\n* 다른 엔진보다 더 손상되는 경향이 있습니다\n* 미디어위키 코드베이스가 항상 정상적으로 MyISAM을 처리하지 않습니다\n\nMySQL이 InnoDB를 지원한다면, InnoDB를 선택할 것을 매우 권장합니다.\nMySQL이 InnoDB를 지원하지 않는다면, 업그레이드를 하시는 편이 좋습니다.",
        "config-mysql-only-myisam-dep": "<strong>경고:</strong> MyISAM은 이 기계에  유일하게 사용할 수 있는 MySQL용 저장소 엔진이며, 미디어위키에 사용하는 것은 좋지 않습니다. 이유는:\n* 테이블 잠금 때문에 동시 실행을 지원하지 않습니다\n* 다른 엔진보다 더 손상시키는 경향이 있습니다\n* 미디어위키 코드베이스가 항상 정상적으로 MyISAM을 처리하지 않습니다\n\n당신의 MySQL은 InnoDB를 지원하지 않으며, 업그레이드를 하는 것이 좋습니다.",
index f37b694..7980ca7 100644 (file)
@@ -79,7 +79,7 @@
        "config-sqlite-dir": "Repertoire vun den SQLite-Donnéeën",
        "config-oracle-def-ts": "Standard 'tablespace':",
        "config-oracle-temp-ts": "Temporären 'tablespace':",
-       "config-type-mysql": "MySQL (oder kompatibel)",
+       "config-type-mysql": "MariaDB, MySQL, oder kompatibel",
        "config-type-postgres": "PostgreSQL",
        "config-type-sqlite": "SQLite",
        "config-type-oracle": "Oracle",
@@ -87,7 +87,7 @@
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] ass e beléiften Open-Source-Datebanksystem an eng Alternativ zu MySQL. ([https://secure.php.net/manual/en/pgsql.installation.php Uleedung fir d'Kompilatoun vu PHP mat PostgreSQL-Ënnerstëtzung])",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] ass eng kommerziell Datebank-Software. ([http://www.php.net/manual/en/oci8.installation.php How to compile PHP mat OCI8 Ënnerstëtzung])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] ass eng kommerziell Datebank-Software fir Windows. ([https://secure.php.net/manual/en/sqlsrv.installation.php Wéi PHP mat SQLSRV Ënnerstëtzung kompiléieren])",
-       "config-header-mysql": "MySQL-Astellungen",
+       "config-header-mysql": "MariaDB/MySQL-Astellungen",
        "config-header-postgres": "PostgreSQL-Astellungen",
        "config-header-sqlite": "SQLite-Astellungen",
        "config-header-oracle": "Oracle-Astellungen",
        "config-db-web-account": "Datebankkont fir den Accès iwwer de Web",
        "config-db-web-account-same": "Dee selwechte Kont wéi bei der Installatioun benotzen",
        "config-db-web-create": "De Kont uleeë wann et e net scho gëtt",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (recommandéiert)",
        "config-mysql-myisam": "MyISAM",
        "config-mssql-auth": "Typ vun der Authentifikatioun:",
        "config-mssql-sqlauth": "SOL-Server-Authentifikatioun",
index 69821ec..421279c 100644 (file)
@@ -50,7 +50,7 @@
        "config-unicode-using-intl": "Adoeuvia [https://pecl.php.net/intl l'estenscion PECL intl] pe-a normalizzaçion Unicode.",
        "config-unicode-pure-php-warning": "'''Attençion:''' [https://pecl.php.net/intl l'estenscion PECL intl] a no l'è disponibile pe gestî a normalizzaçion Unicode, quindi se torna a-a lenta implementaçion in PHP puo.\nSe ti esegui un scito a ato traffego, ti doviesci leze arcun-e conscidiaçioin in sciâ [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizzaçion Unicode].",
        "config-unicode-update-warning": "'''Attençion:''' a verscion installaa do gestô pe-a normalizzaçion Unicode a l'adoeuvia una vegia verscion da libraia [http://site.icu-project.org/ do progetto ICU].\nTi doviesci [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations aggiornâ] se ti voeu doeuviâ l'Unicode.",
-       "config-no-db": "Imposcibile trovâ un driver adatto pe-o database! L'è necessaio installâ un driver pe PHP.\n{{PLURAL:$2|O seguente formato de database o l'è supportou|I seguenti formati de database son supportæ}}: $1.\n\nSe ti compilli PHP aotonomamente, riconfiguilo attivando un client database, presempio utilizzando <code>./configure --with-mysqli</code>.\nQualoa t'avesci installou PHP pe mezo de 'n pacchetto Debian ò Ubuntu, alloa ti devi installâ o pacchetto <code>php5-mysql</code> ascì.",
+       "config-no-db": "Imposcibile trovâ un driver adatto pe-o database! L'è necessaio installâ un driver pe PHP.\n{{PLURAL:$2|O seguente formato de database o l'è supportou|I seguenti formati de database son supportæ}}: $1.\n\nSe ti compilli PHP aotonomamente, riconfiguilo attivando un client database, presempio utilizzando <code>./configure --with-mysqli</code>.\nQualoa t'avesci installou PHP pe mezo de 'n pacchetto Debian ò Ubuntu, alloa ti devi installâ o pacchetto <code>php-mysql</code> ascì.",
        "config-outdated-sqlite": "'''Atençion''': ti g'hæ SQLite $1, ma te ghe voeu comme minnimo a verscion $2. SQLite o no saiâ disponibile.",
        "config-no-fts3": "'''Atençion''': SQLite o l'è compilou sença o [//sqlite.org/fts3.html modulo FTS3], e fonçioin de çerchia no saian disponibile insce sto motô.",
        "config-pcre-old": "<strong>Fatale:</strong> se richiede PCRE  $1 o succescivo.\nO to PHP binaio o l'è conligou con PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/Ciu informaçioin insce PCRE].",
index 303e82e..1554f40 100644 (file)
@@ -53,7 +53,7 @@
        "config-unicode-using-intl": "Со додатокот [https://pecl.php.net/intl intl PECL] за уникодна нормализација.",
        "config-unicode-pure-php-warning": "'''Предупредување''': Додатокот [https://pecl.php.net/intl intl PECL] не е достапен за врши уникодна нормализација, враќајќи се на бавна примена на чист PHP.\n\nАко имате високопрометно мрежно место, тогаш ќе треба да прочитате повеќе за [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations уникодната нормализација].",
        "config-unicode-update-warning": "'''Предупредување:''' Воспоставената верзија на обвивката за уникодна нормализација користи постара верзија на библиотеката на [http://site.icu-project.org/ проектот ICU].\nЗа да користите Уникод, ќе треба да направите [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations надградба].",
-       "config-no-db": "Не можев да најдам соодветен двигател за базата на податоци! Ќе треба да воспоставите двигател за PHP-база.\n{{PLURAL:$2|Поддржан се следниов вид|Поддржани се следниве видови}} бази: $1.\n\nДоколку самите го срочивте овој PHP, овозможете го базниот клиент во поставките — на пр. со <code>./configure --with-mysqli</code>.\nАко овој PHP го воспоставите од пакет на Debian или Ubuntu, тогаш ќе треба исто така да го воспоставите, на пр., пакетот <code>php5-mysql</code>.",
+       "config-no-db": "Не можев да најдам соодветен двигател за базата на податоци! Ќе треба да воспоставите двигател за PHP-база.\n{{PLURAL:$2|Поддржан се следниов вид|Поддржани се следниве видови}} бази: $1.\n\nДоколку самите го срочивте овој PHP, овозможете го базниот клиент во поставките — на пр. со <code>./configure --with-mysqli</code>.\nАко овој PHP го воспоставите од пакет на Debian или Ubuntu, тогаш ќе треба исто така да го воспоставите, на пр., пакетот <code>php-mysql</code>.",
        "config-outdated-sqlite": "'''Предупредување''': имате SQLite $1. Најстарата допуштена верзија е $2. Затоа, SQLite ќе биде недостапен.",
        "config-no-fts3": "'''Предупредување''': SQLite iе составен без модулот [//sqlite.org/fts3.html FTS3] - за оваа база нема да има можност за пребарување.",
        "config-pcre-old": "'''Кобно:''' Се бара PCRE $1 или понова верзија.\nВашиот PHP-бинарен е сврзан со PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Повеќе информации].",
        "config-sqlite-dir-help": "SQLite ги складира сите податоци во една податотека.\n\nПапката што ќе ја наведете мора да е запислива од мрежниот опслужувач во текот на воспоставката.\n\nТаа '''не''' смее да биде достапна преку семрежјето, и затоа не ја ставаме кајшто ви се наоѓаат PHP-податотеките.\n\nВоспоставувачот воедно ќе создаде податотека <code>.htaccess</code>, но ако таа не функционира како што треба, тогаш некој ќе може да ви влезе во вашата необработена (сирова) база на податоци.\nТука спаѓаат необработени кориснички податоци (е-поштенски адреси, хеширани лозинки) како и избришани преработки и други податоци за викито до кои се има ограничен пристап.\n\nСе препорачува целата база да ја сместите некаде, како на пр. <code>/var/lib/mediawiki/вашетовики</code>.",
        "config-oracle-def-ts": "Стандарден таблеарен простор:",
        "config-oracle-temp-ts": "Привремен табеларен простор:",
-       "config-type-mysql": "MySQL (или складно)",
+       "config-type-mysql": "MariaDB, MySQL или складно",
        "config-type-postgres": "PostgreSQL",
        "config-type-sqlite": "SQLite",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "МедијаВики ги поддржува следниве системи на бази на податоци:\n\n$1\n\nАко системот што сакате да го користите не е наведен подолу, тогаш проследете ја горенаведената врска со инструкции за да овозможите поддршка за тој систем.",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] е главната цел на МедијаВики и најдобро е поддржан. МедијаВики работи и со [{{int:version-db-mariadb-url}} MariaDB] и [{{int:version-db-percona-url}} Percona], кои се складни со MySQL. ([https://secure.php.net/manual/en/mysqli.installation.php Како да срочите PHP со поддршка за MySQL])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mariadb-url}} MariaDB] е главната цел на МедијаВики и најдобро е поддржан. МедијаВики работи и со  [{{int:version-db-mysql-url}} MySQL] и [{{int:version-db-percona-url}} Percona], кои се складни со MariaDB. ([https://secure.php.net/manual/en/mysqli.installation.php Како да срочите PHP со поддршка за MySQL])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] е популарен систем на бази на податоци со отворен код кој претставува алтернатива на MySQL ([https://secure.php.net/manual/en/pgsql.installation.php како да составите PHP со поддршка за PostgreSQL]). ([https://secure.php.net/manual/en/pgsql.installation.php Како да срочите PHP со поддршка за PostgreSQL])",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] е лесен систем за бази на податоци кој е многу добро поддржан. ([https://secure.php.net/manual/en/pdo.installation.php Како да составите PHP со поддршка за SQLite], користи PDO)",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] е база на податоци на комерцијално претпријатие. ([https://secure.php.net/manual/en/oci8.installation.php Како да составите PHP со поддршка за OCI8])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server]  е база на податоци на комерцијално претпријатиe за Windows ([https://secure.php.net/manual/en/sqlsrv.installation.php How to compile PHP with SQLSRV поддршка])",
-       "config-header-mysql": "Нагодувања на MySQL",
+       "config-header-mysql": "Нагодувања на MariaDB/MySQL",
        "config-header-postgres": "Нагодувања на PostgreSQL",
        "config-header-sqlite": "Нагодувања на SQLite",
        "config-header-oracle": "Нагодувања на Oracle",
        "config-db-web-create": "Создај ја сметката ако веќе не постои",
        "config-db-web-no-create-privs": "Сметката што ја назначивте за воспоставка нема доволно привилегии за да може да создаде сметка.\nТука мора да назначите постоечка сметка.",
        "config-mysql-engine": "Складишен погон:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (препорачано)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "'''Предупредување:''' Го одбравте MyISAM како складишен погон за MySQL. Но тој не се препорачува за МедијаВики бидејќи:\n* одвај поддржува едновременост поради заклучување на табелите\n* поподложен на расипување од другите погони\n* кодната база на МедијаВики не секогаш може да работи со MyISAM како што треба\n\nАко вашата воспоставка на MySQL поддржува InnoDB, тогаш сериозно препорачуваме да го користите него наместо MyISAM.\nАко вашата воспоставка на MySQL не поддржува InnoDB, веројатно дошло време за надградба.",
        "config-mysql-only-myisam-dep": "'''Предупредување:''' MyISAM е единствениот достапен складишен погон за MySQL на оваа машина, а ова не се препорачува за употреба со МедијаВики, бидејќи:\n* речиси не поддржува истовремено извршување на задачите поради заклучувањето на табелите\n* поподложен е на расипувања од другите погони\n* кодната база на МедијаВИки не секогаш работи исправно со MyISAM\nВашата воспоставка на MySQL не поддржува InnoDB. Можеби е време да ја надградите.",
index 953b672..67c20e0 100644 (file)
@@ -51,7 +51,7 @@
        "config-unicode-using-intl": "用 [https://pecl.php.net/intl intl PECL 擴充套件] 做 Unicode 正規化。",
        "config-unicode-pure-php-warning": "<strong>Kéng-kò:</strong> Bô-hoat-tō͘ iōng [https://pecl.php.net/intl intl PECL extension] chhú-lí Unicode chèng-kui-hoà, só͘-í thè kàu iōng sûn PHP si̍t-chok--ê chèng-kui-hoà têng-sek, chit khoán hong-sek chhú-lí sok-tō͘ khah bān. Nā lí--ê bāng-chām liú-lám--ê lâng chiâⁿ chē, lí èng-kai ài khoàⁿ [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations/zh Unicode chèng-kui-hoà].",
        "config-unicode-update-warning": "<strong>警告</strong>:這馬安裝的 Unicode 正規化包裝程式用舊版 [http://site.icu-project.org/ ICU 計劃] 的程式庫。\n若你需要用 Unicode,你應該先進行 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 升級]。",
-       "config-no-db": "揣無適合的資料庫驅動程式!你需要安裝 PHP 資料庫驅動程式。\n這馬支援下跤類型的資料庫: $1 。\n\n若你是家己編譯 PHP,你需要重新設定並且開資料庫客戶端,譬如:用 <code>./configure --with-mysqli</code> 指令參數。\n如你是用 Debian 或 Ubuntu 的套件安裝,你著需要閣另外安裝,例:<code>php5-mysql</code> 套件。",
+       "config-no-db": "揣無適合的資料庫驅動程式!你需要安裝 PHP 資料庫驅動程式。\n這馬支援下跤類型的資料庫: $1 。\n\n若你是家己編譯 PHP,你需要重新設定並且開資料庫客戶端,譬如:用 <code>./configure --with-mysqli</code> 指令參數。\n如你是用 Debian 或 Ubuntu 的套件安裝,你著需要閣另外安裝,例:<code>php-mysql</code> 套件。",
        "config-outdated-sqlite": "<strong>Kéng-kò:</strong> Lí í-keng an-chng SQLite $1, m̄-koh i--ê pán-pún pí thang-chng--ê pán-pún $2 khah kū. Só͘-í lí bô-hoat-tō͘ ēng SQLite.",
        "config-no-fts3": "<strong>Kéng-kò: </strong> SQLite tī pian-e̍k--ê sî-chūn bô pau-koat  [//sqlite.org/fts3.html FTS3 module], āu-tâi chhiau-chhoē kong-lêng tiō ē bô-hoat-tō͘ iōng.",
        "mainpagetext": "'''MediaWiki已經裝好矣。'''",
index 7977427..6ba2375 100644 (file)
@@ -52,7 +52,7 @@
        "config-unicode-using-intl": "Aúsa [https://pecl.php.net/intl l'estensione PECL intl] pe' ne fà 'a normalizzazione Unicode.",
        "config-unicode-pure-php-warning": "<strong>Attenziò:</strong> L' [https://pecl.php.net/intl estensione intl PECL] nun è a disposizione pe' gestire 'a normalizzazione Unicode, accussì se ausasse n'imprementazziona llenta 'n puro PHP.\nSi state a gestire nu pizzo ad alto traffico, avisseve a lieggere cocche considerazione ncopp' 'a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizzaziona Unicode].",
        "config-unicode-update-warning": "<strong>Attenziò:</strong> 'A verziona installata 'e normalizzazione Unicode aùsa 'a verziona viecchia d' 'o [http://site.icu-project.org/ pruggetto ICU].\nV'avite 'a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations agghiurnà] si state a penzà ncopp' 'o fatto d'ausà Unicode.",
-       "config-no-db": "Nun se può truvà nu driver adatto p' 'o database! È necessario installare nu driver p' 'o PHP.\n{{PLURAL:$2|'O furmato suppurtato|'E furmate suppurtate}} 'e database ccà annanze: $1.\n\nSi cumpilate PHP autonomamente, riaccunciatevello attivando nu client database, p'esempio ausannoo <code>./configure --with-mysqli</code>.\nQuanno fosse installato PHP pe' bbìa 'e nu pacchetto Debian o Ubuntu, allora avite 'a installà pure 'o pacchetto <code>php5-mysql</code>.",
+       "config-no-db": "Nun se può truvà nu driver adatto p' 'o database! È necessario installare nu driver p' 'o PHP.\n{{PLURAL:$2|'O furmato suppurtato|'E furmate suppurtate}} 'e database ccà annanze: $1.\n\nSi cumpilate PHP autonomamente, riaccunciatevello attivando nu client database, p'esempio ausannoo <code>./configure --with-mysqli</code>.\nQuanno fosse installato PHP pe' bbìa 'e nu pacchetto Debian o Ubuntu, allora avite 'a installà pure 'o pacchetto <code>php-mysql</code>.",
        "config-outdated-sqlite": "'''Attenziò''': tenite 'o SQLite $1 pe' tramente ca ce vulesse 'a verziona $2, SQLite nun sarrà a disposizione.",
        "config-no-fts3": "'''Attenziò''': SQLite è cumpilato senza 'o [//sqlite.org/fts3.html modulo FTS3], 'e funziune 'e p'ascià dinto nun sarranno a disposizione ncopp'a stu backend.",
        "config-pcre-old": "<strong>Errore fatale:</strong> s'addimanna PCRE  $1 o succiessivo.\n'O file vuosto binario PHP è acucchiato c' 'o PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Cchiù nfurmaziune].",
index a3d69c9..671127e 100644 (file)
@@ -58,7 +58,7 @@
        "config-unicode-using-intl": "Bruker [https://pecl.php.net/intl intl PECL-utvidelsen] for Unicode-normalisering.",
        "config-unicode-pure-php-warning": "'''Advarsel''': [https://pecl.php.net/intl intl PECL-utvidelsen] er ikke tilgjengelig for å håndtere Unicode-normaliseringen, faller tilbake til en langsommere ren-PHP-implementasjon.\nOm du kjører et nettsted med høy trafikk bør du lese litt om [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-normalisering].",
        "config-unicode-update-warning": "<strong>Advarsel:</strong> Den installerte versjonen av Unicode-normalisereren bruker en eldre versjon av [http://site.icu-project.org/ ICU-prosjektets] bibliotek.\nDu bør [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations oppgradere] om du er bekymret for å bruke Unicode.",
-       "config-no-db": "Fant ingen passende databasedriver! Du må installere en databasedriver for PHP.\nFølgende {{PLURAL:$2|databasetype|databasetyper}} støttes: $1\n\nOm du kompilerte PHP selv, rekonfigurer den med en aktivert databaseklient, for eksempel ved å bruke <code>./configure --with-mysqli</code>.\nOm du installerte PHP fra en Debian- eller Ubuntu-pakke, må du også installere for eksempel <code>php5-mysql</code>-pakken.",
+       "config-no-db": "Fant ingen passende databasedriver! Du må installere en databasedriver for PHP.\nFølgende {{PLURAL:$2|databasetype|databasetyper}} støttes: $1\n\nOm du kompilerte PHP selv, rekonfigurer den med en aktivert databaseklient, for eksempel ved å bruke <code>./configure --with-mysqli</code>.\nOm du installerte PHP fra en Debian- eller Ubuntu-pakke, må du også installere for eksempel <code>php-mysql</code>-pakken.",
        "config-outdated-sqlite": "'''Advarsel''': Du har SQLite $1, som er en eldre versjon enn minimumskravet SQLite $2. SQLite vil ikke være tilgjengelig.",
        "config-no-fts3": "'''Advarsel''': SQLite er kompilert uten [//sqlite.org/fts3.html FTS3-modulen], søkefunksjoner vil ikke være tilgjengelig på dette bakstykket.",
        "config-pcre-old": "'''Alvorlig:''' PCRE $1 eller senere kreves.\nDin PHP-kode er lenket med PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Nærmere informasjon].",
index 2a1d1b1..807a627 100644 (file)
@@ -70,7 +70,7 @@
        "config-unicode-using-intl": "Voor Unicode-normalisatie wordt de [https://pecl.php.net/intl PECL-extensie intl] gebruikt.",
        "config-unicode-pure-php-warning": "<strong>Waarschuwing:</strong> de [https://pecl.php.net/intl PECL-extensie intl] is niet beschikbaar om de Unicodenormalisatie af te handelen en daarom wordt de langzamere PHP-implementatie gebruikt.\nAls u MediaWiki voor een website met veel verkeer installeert, lees u dan in over [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicodenormalisatie].",
        "config-unicode-update-warning": "<strong>Waarschuwing:</strong> de geïnstalleerde versie van de Unicodenormalisatiewrapper maakt gebruik van een oudere versie van [http://site.icu-project.org/ de bibliotheek van het ICU-project].\nU moet [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations bijwerken] als Unicode voor u van belang is.",
-       "config-no-db": "Het was niet mogelijk een geschikte databasedriver te vinden voor PHP! U moet een databasedriver installeren voor PHP.\n{{PLURAL:$2|Het volgende databasetype wordt|De volgende databasetypes worden}} ondersteund: $1.\n\nAls u PHP zelf hebt gecompileerd, wijzig dan uw instellingen zodat een databasedriver wordt geactiveerd, bijvoorbeeld via <code>./configure --with-mysqli</code>.\nAls u PHP hebt geïnstalleerd via een Debian- of Ubuntu-package, installeer dan ook bijvoorbeeld de module <code>php5-mysql</code>.",
+       "config-no-db": "Het was niet mogelijk een geschikte databasedriver te vinden voor PHP! U moet een databasedriver installeren voor PHP.\n{{PLURAL:$2|Het volgende databasetype wordt|De volgende databasetypes worden}} ondersteund: $1.\n\nAls u PHP zelf hebt gecompileerd, wijzig dan uw instellingen zodat een databasedriver wordt geactiveerd, bijvoorbeeld via <code>./configure --with-mysqli</code>.\nAls u PHP hebt geïnstalleerd via een Debian- of Ubuntu-package, installeer dan ook bijvoorbeeld de module <code>php-mysql</code>.",
        "config-outdated-sqlite": "''' Waarschuwing:''' u gebruikt SQLite $1. SQLite is niet beschikbaar omdat de minimaal vereiste versie $2 is.",
        "config-no-fts3": "<strong>Waarschuwing:</strong> SQLite is gecompileerd zonder de module [//sqlite.org/fts3.html FTS3]; zoekfuncties zijn niet beschikbaar.",
        "config-pcre-old": "'''Onherstelbare fout:''' PCRE $1 of een latere versie is vereist.\nUw uitvoerbare versie van PHP is gekoppeld met PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Meer informatie].",
index 0f70dfb..1d4d515 100644 (file)
@@ -73,7 +73,7 @@
        "config-unicode-using-intl": "Korzystanie z [https://pecl.php.net/intl rozszerzenia intl PECL] do normalizacji Unicode.",
        "config-unicode-pure-php-warning": "<strong>Uwaga:<strong> [https://pecl.php.net/intl Rozszerzenie intl PECL] do obsługi normalizacji Unicode nie jest dostępne. Użyta zostanie mało wydajna zwykła implementacja w PHP.\nJeśli prowadzisz stronę o dużym natężeniu ruchu, powinieneś zapoznać się z informacjami o [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizacji Unicode].",
        "config-unicode-update-warning": "<strong>Uwaga:</strong> zainstalowana wersja normalizacji Unicode korzysta z nieaktualnej biblioteki [http://site.icu-project.org/ projektu ICU].\nPowinieneś [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations wykonać aktualizację], jeśli chcesz korzystać w pełni z Unicode.",
-       "config-no-db": "Nie można odnaleźć właściwego sterownika bazy danych! Musisz zainstalować sterownik bazy danych dla PHP.\nMożna użyć {{PLURAL:$2|następującego typu bazy|następujących typów baz}} danych: $1.\n\nJeśli skompilowałeś PHP samodzielnie, skonfiguruj go ponownie z włączonym klientem bazy danych, na przykład za pomocą polecenia <code>./configure --with-mysqli</code>.\nJeśli zainstalowałeś PHP jako pakiet Debiana lub Ubuntu, musisz również zainstalować np. moduł <code>php5-mysql</code>.",
+       "config-no-db": "Nie można odnaleźć właściwego sterownika bazy danych! Musisz zainstalować sterownik bazy danych dla PHP.\nMożna użyć {{PLURAL:$2|następującego typu bazy|następujących typów baz}} danych: $1.\n\nJeśli skompilowałeś PHP samodzielnie, skonfiguruj go ponownie z włączonym klientem bazy danych, na przykład za pomocą polecenia <code>./configure --with-mysqli</code>.\nJeśli zainstalowałeś PHP jako pakiet Debiana lub Ubuntu, musisz również zainstalować np. moduł <code>php-mysql</code>.",
        "config-outdated-sqlite": "'''Ostrzeżenie''': masz SQLite  $1, która jest niższa od minimalnej wymaganej wersji  $2 . SQLite będzie niedostępne.",
        "config-no-fts3": "'''Uwaga''' – SQLite został skompilowany bez [//sqlite.org/fts3.html modułu FTS3] – funkcje wyszukiwania nie będą dostępne.",
        "config-pcre-old": "<strong>Błąd krytyczny:</strong> Wymagany jest PCRE w wersji $1 lub nowszej.\nTwój plik wykonywalny PHP jest powiązany z wersją PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Więcej informacji].",
        "config-sqlite-dir-help": "SQLite przechowuje wszystkie dane w pojedynczym pliku.\n\nWskazany katalog musi być dostępny do zapisu przez webserver podczas instalacji.\n\nPowinien '''nie''' być dostępny za z sieci web, dlatego nie umieszczamy ich tam, gdzie znajdują się pliki PHP.\n\nInstalator zapisze plik <code>.htaccess</code> obokniego, ale jeśli to zawiedzie, ktoś może uzyskać dostęp do nieprzetworzonej bazy danych.\nZawiera ona nieopracowane dane użytkownika (adresy e-mail, zahaszowane hasła) jak również usunięte wersje oraz inne dane o ograniczonym dostępie na wiki.\n\nWarto rozważyć umieszczenie w bazie danych zupełnie gdzie indziej, na przykład w <code>/var/lib/mediawiki/yourwiki</code> .",
        "config-oracle-def-ts": "Domyślna przestrzeń tabel:",
        "config-oracle-temp-ts": "Przestrzeń tabel tymczasowych:",
-       "config-type-mysql": "MySQL (lub kompatybilna)",
+       "config-type-mysql": "MariaDB, MySQL lub kompatybilna",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "MediaWiki może współpracować z następującymi systemami baz danych:\n\n$1\n\nPoniżej wyświetlone są systemy baz danych gotowe do użycia. Jeżeli poniżej brakuje bazy danych, z której chcesz skorzystać, oznacza to, że brakuje odpowiedniego oprogramowania lub zostało ono niepoprawnie skonfigurowane. Powyżej znajdziesz odnośniki do dokumentacji, która pomoże w konfiguracji odpowiednich komponentów.",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] jest bazą danych, na której rozwijane jest oprogramowanie MediaWiki. MediaWiki działa również z [{{int:version-db-mariadb-url}} MariaDB] i [{{int:version-db-percona-url}} Percona Server], które są zgodne z MySQL. ([https://secure.php.net/manual/en/mysqli.installation.php Zobacz, jak skompilować PHP ze wsparciem dla MySQL])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mariadb-url}} MariaDB] jest bazą danych, na której rozwijane jest oprogramowanie MediaWiki. MediaWiki działa również z [{{int:version-db-mysql-url}} MySQL] i [{{int:version-db-percona-url}} Percona Server], które są zgodne z MariaDB. ([https://secure.php.net/manual/en/mysqli.installation.php Zobacz, jak skompilować PHP ze wsparciem dla MySQL])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] jest popularnym, otawrtym systemem baz danych, często stosowanym jako alternatywa dla MySQL. ([https://secure.php.net/manual/en/pgsql.installation.php Zobacz, jak skompilować PHP z obsługą PostgreSQL])",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] jest niewielkim systemem bazy danych, z którym MediaWiki bardzo dobrze współpracuje. ([https://secure.php.net/manual/pl/pdo.installation.php Zobacz, jak skompilować PHP ze wsparciem dla SQLite], korzystając z PDO)",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] jest komercyjną profesjonalną bazą danych. ([https://secure.php.net/manual/pl/oci8.installation.php Jak skompilować PHP ze wsparciem dla OCI8])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] jest komercyjną profesjonalną bazą danych. ([https://secure.php.net/manual/pl/sqlsrv.installation.php Jak skompilować PHP ze wsparciem dla SQLSRV])",
-       "config-header-mysql": "Ustawienia MySQL",
+       "config-header-mysql": "Ustawienia MariaDB/MySQL",
        "config-header-postgres": "Ustawienia PostgreSQL",
        "config-header-sqlite": "Ustawienia SQLite",
        "config-header-oracle": "Ustawienia Oracle",
        "config-db-web-create": "Utwórz konto, jeśli jeszcze nie istnieje",
        "config-db-web-no-create-privs": "Konto podane do wykonania instalacji nie ma wystarczających uprawnień, aby utworzyć nowe konto.\nKonto, które wskazałeś tutaj musi już istnieć.",
        "config-mysql-engine": "Silnik przechowywania",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (zalecane)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "'''Ostrzeżenie''': wybrano MyISIAM jako silnik  składowania danych MySQL, co nie jest zalecane do użytku w MediaWiki, ponieważ:\n * ledwo obsługuje współbieżnośći ze względu na blokowanie tabel\n * jest bardziej podatna na uszkodzenie niż inne silniki\n * kod źródłowy MediaWiki nie zawsze obsługuje MyISAM tak, jak powinien\n\nJeśli instalacja MySQL obsługuje InnoDB, jest wysoce zalecane, by to je wybrać.\nJeśli instalacja MySQL nie obsługuje InnoDB, być może nadszedł czas na jej uaktualnienie.",
        "config-mysql-only-myisam-dep": "'''Ostrzeżenie:''' MyISAM jest jedynym dostępnym na tym komputerze mechanizmem składowania dla MySQL, który jednak nie jest zalecany do używania z MediaWiki, ponieważ:\n* słabo obsługuje współbieżność z powodu blokowania tabel\n* jest bardziej skłonny do uszkodzeń niż inne silniki\n* kod MediaWiki nie zawsze traktuje MyISAM jak powinien\n\nTwoja instalacja MySQL nie obsługuje InnoDB, być może jest to czas na aktualizację.",
index a06e044..131e06f 100644 (file)
@@ -56,7 +56,7 @@
        "config-unicode-using-intl": "As deuvra l'[https://pecl.php.net/intl estension intl PECL] për la normalisassion Unicode.",
        "config-unicode-pure-php-warning": "'''Avis:''' L'[https://pecl.php.net/intl estension intl PECL] a l'é pa disponìbil për gestì la normalisassion Unicode, da già che l'implementassion an PHP pur a faliss për lentëssa.\nS'a gestiss un sit a àut tràfich, a dovrìa lese cheicòs an sla [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalisassion Unicode].",
        "config-unicode-update-warning": "'''Avis:''' La version instalà dlë spassiador ëd normalisassion Unicode a deuvra na version veja ëd la librarìa dël [http://site.icu-project.org/ proget ICU].\nA dovrìa fé n'[https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations agiornament] s'a l'é anteressà a dovré Unicode.",
-       "config-no-db": "Impossìbil trové un pilòta ëd base ëd dàit bon! A dev instalé un pilòta ëd base ëd dàit për PHP.\n{{PLURAL:$2|La sòrt ëd base ëd dàit mantnùa a l'é costa|Le sòrt ëd base ëd dàit mantùe a son coste}} sì-dapress: $1.\n\nS'a l'é compilasse PHP chiel-midem, ch'a lo configura torna con un client ëd base ëd dàit abilità, për esempi an dovrand <code>./configure --with-mysqli</code>.\nS'a l'ha instalà PHP dai pachèt Debian o Ubuntu, antlora a dev ëdcò anstalé, për esempi, ël mòdul <code>php5-mysql</code>.",
+       "config-no-db": "Impossìbil trové un pilòta ëd base ëd dàit bon! A dev instalé un pilòta ëd base ëd dàit për PHP.\n{{PLURAL:$2|La sòrt ëd base ëd dàit mantnùa a l'é costa|Le sòrt ëd base ëd dàit mantùe a son coste}} sì-dapress: $1.\n\nS'a l'é compilasse PHP chiel-midem, ch'a lo configura torna con un client ëd base ëd dàit abilità, për esempi an dovrand <code>./configure --with-mysqli</code>.\nS'a l'ha instalà PHP dai pachèt Debian o Ubuntu, antlora a dev ëdcò anstalé, për esempi, ël mòdul <code>php-mysql</code>.",
        "config-outdated-sqlite": "'''Avis''': chiel a l'ha SQLite $1, che a l'é pi vej che la version mìnima dont a-i é damanca $2. SQLite a sarà pa disponìbil.",
        "config-no-fts3": "'''Avis''': SQLite a l'é compilà sensa ël mòdul [//sqlite.org/fts3.html FTS3], le funsion d'arserca a saran pa disponìbij su cost motor.",
        "config-pcre-no-utf8": "'''Fatal''': ël mòdul PCRE ëd PHP a smija esse compilà sensa l'apògg PCRE_UTF8.\nMediaWiki a ciama l'apògg d'UTF8 për marcé për da bin.",
index e0216b3..5dfb8d8 100644 (file)
@@ -71,7 +71,7 @@
        "config-unicode-using-intl": "Usando a [https://pecl.php.net/intl extensão intl PECL] para a normalização Unicode.",
        "config-unicode-pure-php-warning": "<strong>Aviso</strong>: A [https://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode, abortando e passando para a lenta implementação de PHP puro.\nSe o seu site tem um alto volume de tráfego, informe-se sobre a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalização Unicode].",
        "config-unicode-update-warning": "<strong>Aviso:</strong> A versão instalada do wrapper de normalização Unicode usa uma versão mais antiga da biblioteca do [http://www.site.icu-project.org/projeto ICU].\nVocê deve [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations atualizar] se você tem quaisquer preocupações com o uso do Unicode.",
-       "config-no-db": "Não foi possível encontrar um driver apropriado para a banco de dados! Você precisa instalar um driver de banco de dados para PHP. {{PLURAL:$2|É aceito o seguinte tipo|São aceitos os seguintes tipos}} de banco de dados: $1.\n\nSe você compilou o PHP, reconfigure-o com um cliente de banco de dados ativado, por exemplo, usando <code>./configure --with-mysqli</code>.\nSe instalou o PHP a partir de um pacote Debian ou Ubuntu, então também precisa instalar, por exemplo, o pacote <code>php5-mysql</code>.",
+       "config-no-db": "Não foi possível encontrar um driver apropriado para a banco de dados! Você precisa instalar um driver de banco de dados para PHP. {{PLURAL:$2|É aceito o seguinte tipo|São aceitos os seguintes tipos}} de banco de dados: $1.\n\nSe você compilou o PHP, reconfigure-o com um cliente de banco de dados ativado, por exemplo, usando <code>./configure --with-mysqli</code>.\nSe instalou o PHP a partir de um pacote Debian ou Ubuntu, então também precisa instalar, por exemplo, o pacote <code>php-mysql</code>.",
        "config-outdated-sqlite": "<strong>Aviso:</strong> você tem o SQLite versão $1, que é menor do que a versão mínima necessária $2. O SQLite não estará disponível.",
        "config-no-fts3": "<strong>Aviso</strong> O SQLite foi compilado sem o [//sqlite.org/fts3.html módulo FTS3], as funcionalidades de pesquisa não estarão disponíveis nesta instalação.",
        "config-pcre-old": "<strong>Erro fatal:</strong> É necessário o PCRE $1 ou versão posterior.\nO binário do seu PHP foi vinculado com o PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mais informações].",
        "config-sqlite-dir-help": "O SQLite armazena todos os dados em um único arquivo.\n\nO diretório que você fornecer deve permitir a sua escrita pelo servidor web durante a instalação.\n\nO diretório <strong>não</strong> deve ser acessível pela web, por isso não estamos colocando onde estão os seus arquivos PHP.\n\nO instalador escreverá um arquivo <code>.htaccess</code>, mas se isso falhar alguém poderá ganhar acesso a toda sua base de dados.\nIsso inclui dados brutos dos usuários (endereços de e-mail, senhas criptografadas) assim como todas revisões deletadas e outros dados restritos na wiki.\n\nConsidere colocar a banco de dados em algum outro lugar, por exemplo <code>/var/lib/mediawiki/yourwiki</code>.",
        "config-oracle-def-ts": "Espaço de tabela padrão:",
        "config-oracle-temp-ts": "Tablespace temporário:",
-       "config-type-mysql": "MySQL (ou compatível)",
+       "config-type-mysql": "MariaDB, MySQL (ou compatível)",
        "config-type-postgres": "PostgreSQL",
        "config-type-sqlite": "SQLite",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "O MediaWiki suporta os sistemas de banco de dados a seguir:\n\n$1\n\nSe você não vê o sistema de banco de dados que você está tentando usar listados abaixo, siga as instruções relacionadas acima, para ativar o suporte.",
-       "config-dbsupport-mysql": "* O [{{int:version-db-mysql-url}} MySQL] é a base de dados preferida para o MediaWiki e a melhor suportada. O MediaWiki também trabalha com [{{int:version-db-mariadb-url}} MariaDB] e [{{int:version-db-percona-url}} Percona Server], que são compatíveis com MySQL. ([https://secure.php.net/manual/en/mysqli.installation.php Como compilar PHP com suporte para MySQL].)",
+       "config-dbsupport-mysql": "* [{{int:version-db-mariadb-url}} MariaDB] é a base de dados preferida para o MediaWiki e a melhor suportada. O MediaWiki também trabalha com [{{int:version-db-mysql-url}} MySQL] e [{{int:version-db-percona-url}} Percona Server], que são compatíveis com MariaDB. ([https://secure.php.net/manual/pt_BR/mysqli.installation.php Como compilar PHP com suporte para MySQL].)",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] é um popular sistema de banco de dados de código aberto como uma alternativa para o MySQL. ([https://secure.php.net/manual/en/pgsql.installation.php Como compilar o PHP com suporte PostgreSQL])",
        "config-dbsupport-sqlite": "* O [{{int:version-db-sqlite-url}} SQLite] é uma plataforma de base de dados ligeira muito bem suportada. ([https://secure.php.net/manual/en/pdo.installation.php Como compilar PHP com suporte para SQLite], usa PDO.)",
        "config-dbsupport-oracle": "* A [{{int:version-db-oracle-url}} Oracle] é uma base de dados comercial para empresas. ([https://secure.php.net/manual/en/oci8.installation.php Como compilar PHP com suporte para OCI8].)",
        "config-dbsupport-mssql": "* O [{{int:version-db-mssql-url}} Microsoft SQL Server] é uma base de dados comercial do Windows para empresas. ([https://secure.php.net/manual/en/sqlsrv.installation.php Como compilar PHP com suporte para SQLSRV].)",
-       "config-header-mysql": "Configurações MySQL",
+       "config-header-mysql": "Definições MariaDB/MySQL",
        "config-header-postgres": "Configurações PostgreSQL",
        "config-header-sqlite": "Configurações SQLite",
        "config-header-oracle": "Configurações Oracle",
        "config-db-web-create": "Crie a conta se esta ainda não existir",
        "config-db-web-no-create-privs": "A conta que você especificou para a instalação não possui privilégios suficientes para criar uma conta.\nA conta que for especificada aqui já deve existir.",
        "config-mysql-engine": "Mecanismo de armazenamento:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (recomendado)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "<strong>Aviso:</strong> Você selecionou MyISAM como mecanismo de armazenamento para o MySQL, o que não é recomendado para uso com o MediaWiki, porque:\n* dificilmente suporta concorrência devido ao bloqueio da tabela\n* é mais propenso à corrupção do que outros motores\n*a base de código MediaWiki nem sempre lida com o MyISAM como deveria\n\nSe sua instalação MySQL suportar o InnoDB, é altamente recomendável que você escolha ele.\nSe sua instalação MySQL não suportar o InnoDB, talvez seja hora de uma atualização.",
        "config-mysql-only-myisam-dep": "<strong>Aviso:</strong> O MyISAM é o único mecanismo de armazenamento disponível para o MySQL nesta máquina e isso não é recomendado para uso com o MediaWiki, porque:\n* dificilmente suporta concorrência devido ao bloqueio da tabela\n* é mais propenso à corrupção do que outros motores\n*a base de código MediaWiki nem sempre lida com o MyISAM como deveria\n\nA sua instalação no MySQL não suporta InnoDB, talvez seja hora de uma atualização.",
index c1fc5d8..cdcac45 100644 (file)
@@ -69,7 +69,7 @@
        "config-unicode-using-intl": "A usar a [https://pecl.php.net/intl extensão intl PECL] para a normalização Unicode.",
        "config-unicode-pure-php-warning": "<strong>Aviso:</strong> A [https://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode. Irá recorrer-se à implementação em PHP puro, que é mais lenta.\nSe o seu sítio tem alto volume de tráfego, devia informar-se um pouco sobre a [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations/pt normalização Unicode].",
        "config-unicode-update-warning": "<strong>Aviso:</strong> A versão instalada do wrapper de normalização Unicode usa uma versão mais antiga da biblioteca do [http://site.icu-project.org/ projeto ICU].\nDevia [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations atualizá-la] se tem quaisquer preocupações sobre o uso do Unicode.",
-       "config-no-db": "Não foi possível encontrar um controlador apropriado da base de dados! Precisa de instalar um controlador da base de dados para o PHP. {{PLURAL:$2|É aceite o seguinte tipo|São aceites os seguintes tipos}} de base de dados: $1.\n\nSe fez a compilação do PHP, reconfigure-o com um cliente de base de dados ativado; por exemplo, usando <code>./configure --with-mysqli</code>.\nSe instalou o PHP a partir de um pacote Debian ou Ubuntu, então precisa de instalar também, por exemplo, o pacote <code>php5-mysql</code>.",
+       "config-no-db": "Não foi possível encontrar um controlador apropriado da base de dados! Precisa de instalar um controlador da base de dados para o PHP. {{PLURAL:$2|É aceite o seguinte tipo|São aceites os seguintes tipos}} de base de dados: $1.\n\nSe fez a compilação do PHP, reconfigure-o com um cliente de base de dados ativado; por exemplo, usando <code>./configure --with-mysqli</code>.\nSe instalou o PHP a partir de um pacote Debian ou Ubuntu, então precisa de instalar também, por exemplo, o pacote <code>php-mysql</code>.",
        "config-outdated-sqlite": "<strong>Aviso:</strong> Tem a versão $1 do SQLite, que é anterior à versão mínima necessária, a $2. O SQLite não estará disponível.",
        "config-no-fts3": "<strong>Aviso:</strong> O SQLite foi compilado sem o módulo [//sqlite.org/fts3.html FTS3]; as funcionalidades de pesquisa não estarão disponíveis nesta instalação.",
        "config-pcre-old": "<strong>Erro fatal:</strong> É necessário o PCRE $1 ou versão posterior.\nO seu binário PHP foi linkado com o PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mais informações].",
        "config-sqlite-dir-help": "O SQLite armazena todos os dados num único ficheiro.\n\nDurante a instalação, o servidor de Internet precisa de ter permissão de escrita no diretório que especificar.\n\nEste diretório <strong>não</strong> deve poder ser acedido diretamente da Internet, por isso está a ser colocado onde estão os seus ficheiros PHP.\n\nJuntamente com o diretório, o instalador irá criar um ficheiro <code>.htaccess</code>, mas se esta operação falhar é possível que alguém venha a ter acesso direto à base de dados.\nIsto inclui acesso aos dados dos utilizadores (endereços de correio eletrónico, palavras-passe encriptadas), às revisões eliminadas e a outros dados de acesso restrito na wiki.\n\nConsidere colocar a base de dados num local completamente diferente, como, por exemplo, em <code>/var/lib/mediawiki/asuawiki</code>.",
        "config-oracle-def-ts": "Tablespace padrão:",
        "config-oracle-temp-ts": "Tablespace temporário:",
-       "config-type-mysql": "MySQL (ou compatível)",
+       "config-type-mysql": "MariaDB, MySQL (ou compatível)",
        "config-type-postgres": "PostgreSQL",
        "config-type-sqlite": "SQLite",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "O MediaWiki suporta as seguintes plataformas de base de dados:\n\n$1\n\nSe a plataforma que pretende usar não está listada abaixo, siga as instruções nas hiperligações acima para ativar o suporte.",
-       "config-dbsupport-mysql": "* O [{{int:version-db-mysql-url}} MySQL] é a base de dados preferida para o MediaWiki e a melhor suportada. O MediaWiki também trabalha com [{{int:version-db-mariadb-url}} MariaDB] e [{{int:version-db-percona-url}} Percona Server], que são compatíveis com MySQL. ([https://secure.php.net/manual/en/mysqli.installation.php Como compilar PHP com suporte para MySQL].)",
+       "config-dbsupport-mysql": "* [{{int:version-db-mariadb-url}} MariaDB] é a base de dados preferida para o MediaWiki e a melhor suportada. O MediaWiki também trabalha com [{{int:version-db-mysql-url}} MySQL] e [{{int:version-db-percona-url}} Percona Server], que são compatíveis com MariaDB. ([https://secure.php.net/manual/pt_BR/mysqli.installation.php Como compilar PHP com suporte para MySQL].)",
        "config-dbsupport-postgres": "* O [{{int:version-db-postgres-url}} PostgreSQL] é uma plataforma popular de base de dados de código aberto, alternativa ao MySQL. ([https://secure.php.net/manual/en/pgsql.installation.php Como compilar PHP com suporte para PostgreSQL].)",
        "config-dbsupport-sqlite": "* O [{{int:version-db-sqlite-url}} SQLite] é uma plataforma de base de dados ligeira muito bem suportada. ([https://secure.php.net/manual/en/pdo.installation.php Como compilar PHP com suporte para SQLite], usa PDO.)",
        "config-dbsupport-oracle": "* A [{{int:version-db-oracle-url}} Oracle] é uma base de dados comercial para empresas. ([https://secure.php.net/manual/en/oci8.installation.php Como compilar PHP com suporte para OCI8].)",
        "config-dbsupport-mssql": "* O [{{int:version-db-mssql-url}} Microsoft SQL Server] é uma base de dados comercial do Windows para empresas. ([https://secure.php.net/manual/en/sqlsrv.installation.php Como compilar PHP com suporte para SQLSRV].)",
-       "config-header-mysql": "Definições MySQL",
+       "config-header-mysql": "Definições MariaDB/MySQL",
        "config-header-postgres": "Definições PostgreSQL",
        "config-header-sqlite": "Definições SQLite",
        "config-header-oracle": "Definições Oracle",
        "config-db-web-create": "Criar a conta se ainda não existir",
        "config-db-web-no-create-privs": "A conta que especificou para a instalação não tem privilégios suficientes para criar uma conta.\nA conta que especificar aqui já tem de existir.",
        "config-mysql-engine": "Motor de armazenamento:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (recomendado)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "<strong>Aviso:</strong>  Selecionou o MyISAM para motor de armazenamento do MySQL, uma combinação desaconselhada para usar com o MediaWiki porque:\n* praticamente não permite acessos simultâneos, porque bloqueia tabelas\n* o MyISAM é mais suscetível a perdas da integridade dos dados do que outros motores\n* o código do MediaWiki não trabalha devidamente com o MyISAM\n\nSe a sua instalação do MySQL suporta InnoDB, é altamente recomendado que o escolha em vez do MyISAM.\nSe não suporta o InnoDB, talvez seja uma boa altura para atualizá-la para a versão mais recente.",
        "config-mysql-only-myisam-dep": "<strong>Aviso:</strong> O único motor de armazenamento para MySQL nesta máquina é o MyISAM e o seu uso com o MediaWiki não é recomendado porque:\n* praticamente não suporta acessos simultâneos, porque bloqueia tabelas\n* o MyISAM é mais suscetível a perdas da integridade dos dados do que outros motores\n* o código do MediaWiki não trabalha devidamente com o MyISAM\n\nA sua instalação MySQL não suporta InnoDB, talvez seja uma boa altura para atualizá-la para a versão mais recente.",
index d9edde5..c868169 100644 (file)
@@ -69,7 +69,7 @@
        "config-unicode-using-intl": "Status message in the MediaWiki installer environment checks.",
        "config-unicode-pure-php-warning": "PECL is the name of a group producing standard pieces of software for PHP, and intl is the name of their library handling some aspects of internationalization.",
        "config-unicode-update-warning": "ICU is a body producing standard software tools for support of Unicode and other internationalization aspects. This message warns the system administrator installing MediaWiki that the server's software is not up-to-date and MediaWiki will have problems handling some characters.",
-       "config-no-db": "{{doc-important|Do not translate \"<code>./configure --with-mysqli</code>\" and \"<code>php5-mysql</code>\".}}\nParameters:\n* $1 is comma separated list of database types supported by MediaWiki.\n* $2 is the count of items in $1 - for use in plural.",
+       "config-no-db": "{{doc-important|Do not translate \"<code>./configure --with-mysqli</code>\" and \"<code>php-mysql</code>\".}}\nParameters:\n* $1 is comma separated list of database types supported by MediaWiki.\n* $2 is the count of items in $1 - for use in plural.",
        "config-outdated-sqlite": "Used as warning. Parameters:\n* $1 - the version of SQLite that has been installed\n* $2 - minimum version",
        "config-no-fts3": "A \"[[:wikipedia:Front and back ends|backend]]\" is a system or component that ordinary users don't interact with directly and don't need to know about, and that is responsible for a distinct task or service - for example, a storage back-end is a generic system for storing data which other applications can use. Possible alternatives for back-end are \"system\" or \"service\", or (depending on context and language) even leave it untranslated.",
        "config-pcre-old": "Parameters:\n* $1 - minimum PCRE version number\n* $2 - the installed version of [[wikipedia:PCRE|PCRE]]\n{{Related|Config-fatal}}",
index ef38b51..9d9f677 100644 (file)
@@ -25,7 +25,8 @@
                        "Irus",
                        "Mailman",
                        "Facenapalm",
-                       "Movses"
+                       "Movses",
+                       "Vlad5250"
                ]
        },
        "config-desc": "Инсталлятор MediaWiki",
@@ -74,7 +75,7 @@
        "config-unicode-using-intl": "Будет использовано [https://pecl.php.net/intl расширение «intl» для PECL] для нормализации Юникода.",
        "config-unicode-pure-php-warning": "'''Внимание!''': [https://pecl.php.net/intl расширение intl из PECL] недоступно для нормализации Юникода, будет использоваться медленная реализация на чистом PHP.\nЕсли ваш сайт работает под высокой нагрузкой, вам следует больше узнать о [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормализации Юникода].",
        "config-unicode-update-warning": "'''Предупреждение''': установленная версия обёртки нормализации Юникода использует старую версию библиотеки [http://site.icu-project.org/ проекта ICU].\nВы должны [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations обновить версию], если хотите полноценно использовать Юникод.",
-       "config-no-db": "Не удалось найти подходящие драйвера баз данных! Вам необходимо установить драйвера базы данных для PHP.\n{{PLURAL:$2|Поддерживается следующий тип|Поддерживаются следующие типы}} баз данных: $1.\n\nЕсли вы скомпилировали PHP сами, перенастройте его с включением клиента баз данных, например, с помощью <code>./configure --with-mysqli</code>.\nЕсли вы установили PHP из пакетов Debian или Ubuntu, то вам также необходимо установить, например, пакет <code>php5-mysql</code>.",
+       "config-no-db": "Не удалось найти подходящие драйвера баз данных! Вам необходимо установить драйвера базы данных для PHP.\n{{PLURAL:$2|Поддерживается следующий тип|Поддерживаются следующие типы}} баз данных: $1.\n\nЕсли вы скомпилировали PHP сами, перенастройте его с включением клиента баз данных, например, с помощью <code>./configure --with-mysqli</code>.\nЕсли вы установили PHP из пакетов Debian или Ubuntu, то вам также необходимо установить, например, пакет <code>php-mysql</code>.",
        "config-outdated-sqlite": "'''Предупреждение''': у Вас установлен SQLite  $1, версия которого ниже требуемой $2 . SQLite будет недоступен.",
        "config-no-fts3": "'''Внимание''': SQLite собран без модуля [//sqlite.org/fts3.html FTS3] — поиск не будет работать для этой базы данных.",
        "config-pcre-old": "'''Фатальная ошибка:''' требуется PCRE версии $1 или более поздняя.\nВаш исполняемый файл PHP связан с PCRE версии $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Подробнее].",
        "config-sqlite-dir-help": "SQLite хранит все данные в одном файле.\n\nДиректория, указываемая вами, должна быть доступна для записи веб-сервером во время установки.\n\nОна '''не должна''' быть доступна через Интернет, поэтому не должна совпадать с той, где хранятся PHP файлы.\n\nУстановщик запишет в эту директорию файл <code>.htaccess</code>, но если это не сработает, кто-нибудь может получить доступ ко всей базе данных.\nВ этой базе находится в том числе и информация о пользователях (адреса электронной почты, хэши паролей), а также удалённые страницы и другие секретные данные о вики.\n\nПо возможности, расположите базу данных где-нибудь в стороне, например, в <code>/var/lib/mediawiki/yourwiki</code>.",
        "config-oracle-def-ts": "Пространство таблиц по умолчанию:",
        "config-oracle-temp-ts": "Временное пространство таблиц:",
-       "config-type-mysql": "MySQL (или совместимая)",
+       "config-type-mysql": "MariaDB, MySQL или совместимая",
        "config-type-postgres": "PostgreSQL",
        "config-type-sqlite": "SQLite",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "MediaWiki поддерживает следующие СУБД:\n\n$1\n\nЕсли вы не видите своей системы хранения данных в этом списке, следуйте инструкциям, на которые есть ссылка выше, чтобы получить поддержку.",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] — основная база данных для MediaWiki, которая поддерживается лучше всего. MediaWiki также работает с [{{int:version-db-mariadb-url}} MariaDB] и [{{int:version-db-percona-url}} Percona Server], которые являются MySQL-совместимыми. (См.[https://secure.php.net/manual/ru/mysql.installation.php Как собрать PHP с поддержкой MySQL])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] — основная база данных для MediaWiki, которая поддерживается лучше всего. MediaWiki также работает с [{{int:version-db-mariadb-url}} MariaDB] и [{{int:version-db-percona-url}} Percona Server], которые являются MariaDB-совместимыми. (См.[https://secure.php.net/manual/ru/mysql.installation.php Как собрать PHP с поддержкой MySQL])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] — популярная СУБД с открытым исходным кодом, альтернатива MySQL. ([https://secure.php.net/manual/ru/pgsql.installation.php Как собрать PHP с поддержкой PostgreSQL]).",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] — это легковесная система баз данных, имеющая очень хорошую поддержку. ([https://secure.php.net/manual/ru/pdo.installation.php Как собрать PHP с поддержкой SQLite], работающей посредством PDO)",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] — это коммерческая корпоративная база данных. ([https://secure.php.net/manual/ru/oci8.installation.php Как собрать PHP с поддержкой OCI8])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] — это коммерческая корпоративная база данных для Windows. ([https://secure.php.net/manual/ru/sqlsrv.installation.php Как собрать PHP с поддержкой SQLSRV])",
-       "config-header-mysql": "Настройки MySQL",
+       "config-header-mysql": "Настройки MariaDB/MySQL",
        "config-header-postgres": "Настройки PostgreSQL",
        "config-header-sqlite": "Настройки SQLite",
        "config-header-oracle": "Настройки Oracle",
        "config-db-web-create": "Создать учётную запись, если она ещё не существует",
        "config-db-web-no-create-privs": "Учётная запись, указанная вами для установки, не обладает достаточными правами для создания учётной записи.\nУказанная здесь учётная запись уже должна существовать.",
        "config-mysql-engine": "Движок базы данных:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (рекомендуется)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "''' Внимание.''' Вы выбрали механизм MyISAM для хранения данных MySQL. Он не рекомендуется к использованию по следующим причинам:\n* он слабо поддерживает параллелизм из-за табличных блокировок;\n* более склонен к потере данных, по сравнению с другими механизмами;\n* код MediaWiki не всегда учитывает особенности MyISAM должным образом.\n\nЕсли ваша MySQL поддерживает InnoDB, настоятельно рекомендуется выбрать этот механизм.\nЕсли ваша MySQL не поддерживает InnoDB, возможно, настало время обновиться.",
        "config-mysql-only-myisam-dep": "<strong>Предупреждение:</strong> MyISAM — единственная доступная система хранения данных для MySQL на этом компьютере, и она не рекомендуется для использования совместно с MediaWiki, потому что:\n* слабо поддерживает параллелизм из-за блокировки таблиц\n* больше других систем подвержена повреждению\n* кодовая база MediaWiki не всегда обрабатывает MyISAM так, как следует\n\nВаша MySQL не поддерживает InnoDB, так что, возможно, настало время для обновления.",
index b489ca3..68d40d5 100644 (file)
@@ -54,7 +54,7 @@
        "config-unicode-using-intl": "Uising the [https://pecl.php.net/intl intl PECL extension] fer Unicode normalization.",
        "config-unicode-pure-php-warning": "<strong>Warnishment:</strong> The [https://pecl.php.net/intl intl PECL extension] is no available tae haunle Unicode normalisation, fawin back tae slaw pure-PHP implementation.\nGif ye rin ae hei-traffic steid, ye shid read ae wee bit oan [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
        "config-unicode-update-warning": "<strong>Wairnin:</strong> The installed version o the Unicode normalisation wrapper uises an aulder version o [http://site.icu-project.org/ the ICU project's] library.\nYe shoud [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade] if ye are at aw concerned aboot uisin Unicode.",
-       "config-no-db": "Could nae find a suitable database driver! Ye need tae install a database driver for PHP.\nThe follaein database {{PLURAL:$2|type is|types are}} supportit: $1.\n\nIf you compiled PHP yersel, reconfigur it wi a database client enabled, for example, uisin <code>./configure --with-mysqli</code>.\nIf ye installed PHP frae a Debian or Ubuntu package, then ye an aa need tae install, for example, the <code>php5-mysql</code> package.",
+       "config-no-db": "Could nae find a suitable database driver! Ye need tae install a database driver for PHP.\nThe follaein database {{PLURAL:$2|type is|types are}} supportit: $1.\n\nIf you compiled PHP yersel, reconfigur it wi a database client enabled, for example, uisin <code>./configure --with-mysqli</code>.\nIf ye installed PHP frae a Debian or Ubuntu package, then ye an aa need tae install, for example, the <code>php-mysql</code> package.",
        "config-outdated-sqlite": "<strong>Warnishment:</strong> ye have SQLite $1, this is lower than minimum required version $2. SQLite will be onavailable.",
        "config-no-fts3": "<strong>Warnishment:</strong> SQLite is compiled wioot the [//sqlite.org/fts3.html FTS3 module], rake features will be onavailable oan this backend.",
        "config-pcre-old": "<strong>Fatal:</strong> PCRE $1 or later is required.\nYer PHP binary is link't wi PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mair informâtion].",
index 0957d8b..62f2538 100644 (file)
        "config-db-password": "Лозинка базе података:",
        "config-db-port": "Порт базе података:",
        "config-db-schema": "Шема за Медијавики:",
-       "config-type-mysql": "MySQL (или компактибилан)",
+       "config-type-mysql": "MariaDB, MySQL, или компактибилан",
        "config-type-postgres": "PostgreSQL",
        "config-type-sqlite": "SQLite",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL Server",
-       "config-header-mysql": "MySQL подешавања",
+       "config-header-mysql": "MariaDB/MySQL подешавања",
        "config-header-mssql": "Подешавања Microsoft SQL Server-а",
        "config-invalid-db-type": "Неважећи тип базе података.",
        "config-mssql-old": "Потребан је Microsoft SQL Server $1 или новији. Ви имате $2.",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (препоручено)",
        "config-mysql-myisam": "MyISAM",
        "config-mssql-auth": "Тип провере идентитета:",
        "config-mssql-sqlauth": "Провера идентитета SQL Server-а",
index c0ae4f0..dd2e51f 100644 (file)
@@ -58,7 +58,7 @@
        "config-unicode-using-intl": "Använder [https://pecl.php.net/intl intl PECL-tillägget] för Unicode-normalisering.",
        "config-unicode-pure-php-warning": "'''Varning:''' [https://pecl.php.net/intl intl PECL-tillägget] är inte tillgängligt för att hantera Unicode-normalisering, faller tillbaka till en långsamt implementering i ren PHP.\nOm du driver en högtrafikerad webbplats bör du läsa lite om [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode-normalisering].",
        "config-unicode-update-warning": "<strong>Varning:</strong> Den installerade versionen av Unicode-normaliserings \"wrappern\" använder en äldre version av [http://site.icu-project.org/ ICU projektets] bibliotek.\nDu bör [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations uppgradera] om är intresserad av att använda Unicode.",
-       "config-no-db": "Kunde inte hitta en lämplig databasdrivrutin! Du måste installera en databasdrivrutin för PHP.\nFöljande databas{{PLURAL:$2|typ |typer}} stöds: $1.\n\nI du själv kompilerat din PHP, konfigurera den med en databasklient aktiverad genom att t.ex. använda <code>./configure --with-mysqli</code>.\nOm du installerade PHP från ett Debian- eller Ubuntupaket måste du även installera, t.ex. <code>php5-mysql</code>-paketet.",
+       "config-no-db": "Kunde inte hitta en lämplig databasdrivrutin! Du måste installera en databasdrivrutin för PHP.\nFöljande databas{{PLURAL:$2|typ |typer}} stöds: $1.\n\nI du själv kompilerat din PHP, konfigurera den med en databasklient aktiverad genom att t.ex. använda <code>./configure --with-mysqli</code>.\nOm du installerade PHP från ett Debian- eller Ubuntupaket måste du även installera, t.ex. <code>php-mysql</code>-paketet.",
        "config-outdated-sqlite": "'''Varning:''' du har SQLite $1, vilket är lägre än minimikravet version $2. SQLite kommer inte att vara tillgänglig.",
        "config-no-fts3": "'''Varning:''' SQLite kompileras utan [//sqlite.org/fts3.html FTS3-modulen], sökfunktioner kommer att vara otillgängliga på denna backend.",
        "config-pcre-old": "'''Kritiskt:''' PCRE $1 eller senare krävs.\nDin PHP-binär är länkad till PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Mer information].",
        "config-sqlite-dir-help": "SQLite lagrar all data i en enda fil.\n\nDen katalog du anger måste vara skrivbar av webbservern under installationen.\n\nDet bör <strong>inte</strong> vara tillgänglig via webben; Det är därför vi inte lägger den där dina PHP-filer är.\n\nInstallationsprogrammet kommer att skriva en <code>.htaccess</code>-fil tillsammans med den, men om det misslyckas kan någon få tillgång till den råa databasen.\nVlken innehåller rå användardata (e-postadresser, hashade lösenord) samt borttagna revideringar och annan begränsad data på wiki.\n\nÖverväga att lägga databasen någon helt annanstans, till exempel i <code>/var/lib/mediawiki/yourwiki</code>.",
        "config-oracle-def-ts": "Standardtabellutrymme (tablespace):",
        "config-oracle-temp-ts": "Tillfälligt tabellutrymme (tablespace):",
-       "config-type-mysql": "MySQL (eller kompatibelt)",
+       "config-type-mysql": "MariaDB, MySQL eller kompatibelt",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "MediaWiki stöder följande databassystem:\n\n$1\n\nOm du inte ser det databassystem som du försöker använda nedanstående, följ då instruktionerna länkade ovan för aktivera stöd för det.",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] är det primära målet för MediaWiki och det stöds bäst. MediaWiki fungerar även med [{{int:version-db-mariadb-url}} MariaDB] och [{{int:version-db-percona-url}} Percona Server], som är kompatibla med MySQL. ([https://secure.php.net/manual/en/mysqli.installation.php Hur man kompilerar PHP med stöd för MySQL])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mariadb-url}} MariaDB] är det primära målet för MediaWiki och stöds bäst. MediaWiki fungerar även med [{{int:version-db-mysql-url}} MySQL] och [{{int:version-db-percona-url}} Percona Server], som är kompatibla med MariaDB. ([https://secure.php.net/manual/en/mysqli.installation.php Hur man kompilerar PHP med stöd för MySQL])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] är ett populärt databassystem med öppen källkod som ett alternativ till MySQL. ([https://secure.php.net/manual/en/pgsql.installation.php Hur man kompilerar PHP med PostgreSQL-stöd])",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] är en lättviktsdatabassystem med väldigt bra stöd. ([https://secure.php.net/manual/en/pdo.installation.php Hur man kompilerar PHP med SQLite stöd], använder PDO)",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] är en kommersiellt databas för företag. ([https://secure.php.net/manual/en/oci8.installation.php Hur man kompilerar PHP med OCI8 stöd])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] är en kommersiellt databas för företag för Windows. ([https://secure.php.net/manual/en/sqlsrv.installation.php Hur man kompilerar PHP med SQLSRV stöd])",
-       "config-header-mysql": "MySQL-inställningar",
+       "config-header-mysql": "MariaDB/MySQL-inställningar",
        "config-header-postgres": "PostgreSQL-inställningar",
        "config-header-sqlite": "SQLite-inställningar",
        "config-header-oracle": "Oracle-inställningar",
        "config-db-web-create": "Skapa kontot om det inte redan finns",
        "config-db-web-no-create-privs": "Det konto som du har angett för installation har inte tillräcklig behörighet för att skapa ett konto.\nDet konto du anger här måste redan finnas.",
        "config-mysql-engine": "Lagringsmotor:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (rekommenderas)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "'''Varning:''' Du har valt MyISAM som lagringsmotor för MySQL, vilket inte rekommenderas för användning med MediaWiki eftersom:\n* den knappt stöder samtidigt exekvering på grund av låsning av tabeller\n* den är mer benägen att korrumpera data än andra motorer\n* MediaWiki-kodbasen hanterar inte alltid MyISAM som den ska\n\nOm din MySQL-installation stöder InnoDB, är det starkt rekommenderat att du väljer det istället.\nOm din MySQL-installation inte stöder InnoDB, kanske det är dags för en uppgradering.",
        "config-mysql-only-myisam-dep": "'''Varning:''' MyISAM är den enda tillgängliga lagringsmotorn för MySQL på denna maskin, och den är inte rekommenderad att använda med MediaWiki eftersom:\n* den knappt stöder samtidigt exekvering på grund av låsning av tabeller\n* den är mer benägen att korrumpera data än andra motorer\n* MediaWiki-kodbasen hanterar inte alltid MyISAM som den ska\n\nDin MySQL-installation stöder inte InnoDB, det kanske är dags för en uppgradering.",
index ab47a50..a21909e 100644 (file)
@@ -53,7 +53,7 @@
        "config-env-hhvm": "มี HHVM $1 ติดตั้งอยู่",
        "config-unicode-using-intl": "ใช้[https://pecl.php.net/intl ส่วนขยาย intl PECL] สำหรับการปรับ Unicode เข้าสู่รูปปกติ (Unicode normalization)",
        "config-unicode-pure-php-warning": "<strong>คำเตือน:</strong> [https://pecl.php.net/intl intl ส่วนขยาย PECL] ไม่พร้อมใช้งานสำหรับการจัดมาตรฐาน Unicode กำลังกลับไปใช้ PHP ที่แท้จริงแบบช้า\nถ้าคุณเปิดดำเนินการไซต์ที่มีปริมาณการใช้งานสูง คุณควรอ่านดูเกี่ยวกับ[https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations การจัดมาตรฐาน Unicode] สักเล็กน้อย",
-       "config-no-db": "ไม่พบไดรเวอร์ฐานข้อมูลที่เหมาะสม! คุณจำเป็นต้องติดตั้งไดรเวอร์ฐานข้อมูลสำหรับ PHP\nชนิดฐานข้อมูลต่อไปนี้ได้รับการสนับสนุน: $1\n\nถ้าคุณคอมไพล์ PHP ด้วยตนเอง ให้กำหนดค่าใหม่อีกครั้งโดยเปิดใช้งานไคลเอนต์ฐานข้อมูล ตัวอย่างเช่น ใช้ <code>./configure --with-mysqli</code>\nถ้าคุณติดตั้ง PHP จากแพกเกจ Debian หรือ Ubuntu คุณก็จำเป็นต้องติดตั้งแพกเกจต่อไปนี้ ตัวอย่างเช่น แพกเกจ <code>php5-mysql</code>",
+       "config-no-db": "ไม่พบไดรเวอร์ฐานข้อมูลที่เหมาะสม! คุณจำเป็นต้องติดตั้งไดรเวอร์ฐานข้อมูลสำหรับ PHP\nชนิดฐานข้อมูลต่อไปนี้ได้รับการสนับสนุน: $1\n\nถ้าคุณคอมไพล์ PHP ด้วยตนเอง ให้กำหนดค่าใหม่อีกครั้งโดยเปิดใช้งานไคลเอนต์ฐานข้อมูล ตัวอย่างเช่น ใช้ <code>./configure --with-mysqli</code>\nถ้าคุณติดตั้ง PHP จากแพกเกจ Debian หรือ Ubuntu คุณก็จำเป็นต้องติดตั้งแพกเกจต่อไปนี้ ตัวอย่างเช่น แพกเกจ <code>php-mysql</code>",
        "config-outdated-sqlite": "<strong>คำเตือน:</strong> คุณมี SQLite $1 ซึ่งต่ำกว่ารุ่นขั้นต่ำที่ต้องการ $2 ดังนั้น SQLite จะไม่พร้อมให้ใช้งาน",
        "config-no-fts3": "<strong>คำเตือน:</strong> SQLite ถูกคอมไพล์โดยไม่มี[//sqlite.org/fts3.html โมดูล FTS3] คุณลักษณะการค้นหาจะไม่พร้อมใช้งานบนแบ็กเอนด์นี้",
        "config-pcre-old": "<strong>ข้อผิดพลาดร้ายแรง:</strong> ต้องใช้ PCRE $1 หรือสูงกว่า\nไบนารี PHP ของคุณถูกเชื่อมโยงกับ PCRE $2\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE ข้อมูลเพิ่มเติม]",
index 0249bae..9db0003 100644 (file)
@@ -57,7 +57,7 @@
        "config-unicode-using-intl": "Ginagamit ang [https://pecl.php.net/intl intl dugtong na PECL] para sa pagsasanormal ng Unikodigo.",
        "config-unicode-pure-php-warning": "'''Babala''': Ang [https://pecl.php.net/intl dugtong ng internasyunal na PECL] ay hindi makukuha upang makapanghawak ng pagpapanormal ng Unikodigo, na babagsak na pabalik sa mabagal na pagsasakatuparan ng dalisay na PHP.\nKapag nagpapatakbo ka ng isang pook na mataas ang trapiko, dapat kang bumasa ng kaunti hinggil sa [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations pagpapanormal ng Unikodigo].",
        "config-unicode-update-warning": "'''Babala''': Ang nakaluklok na bersiyon ng pambalot ng pagpapanormal ng Unikodigo ay gumagamit ng isang mas matandang bersiyon ng aklatan ng [http://site.icu-project.org/ proyekto ng ICU].\nDapat kang [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations magtaas ng uri] kung may pag-aalala ka hinggil sa paggamit ng Unikodigo.",
-       "config-no-db": "Hindi matagpuan ang isang angkop na tagapagmaneho ng kalipunan ng datos! Kailangan mong magluklok ng isang tagapagmaneho ng kalipunan ng dato para sa PHP.\nTinatangkilik ang {{PLURAL:$2|mga}} sumusunod na uri ng kalipunan ng dato: $1.\n\nKung ikaw mismo ang nangalap ng PHP, muling isaayos ito na pinagagana ang isang kliyente ng kalipunan ng dato, halimbawa na ang paggamit ng <code>./configure --with-mysqli</code>.\nKung iniluklok mo ang PHP mula sa isang pakete ng Debian o Ubuntu, kung gayon kailangan mo ring magluklok, halimbawa ay ang paketeng <code>php5-mysql</code>.",
+       "config-no-db": "Hindi matagpuan ang isang angkop na tagapagmaneho ng kalipunan ng datos! Kailangan mong magluklok ng isang tagapagmaneho ng kalipunan ng dato para sa PHP.\nTinatangkilik ang {{PLURAL:$2|mga}} sumusunod na uri ng kalipunan ng dato: $1.\n\nKung ikaw mismo ang nangalap ng PHP, muling isaayos ito na pinagagana ang isang kliyente ng kalipunan ng dato, halimbawa na ang paggamit ng <code>./configure --with-mysqli</code>.\nKung iniluklok mo ang PHP mula sa isang pakete ng Debian o Ubuntu, kung gayon kailangan mo ring magluklok, halimbawa ay ang paketeng <code>php-mysql</code>.",
        "config-outdated-sqlite": "'''Babala''': mayroong kang $1 ng SQLite, na mas mababa kaysa sa pinaka mababang kailangang bersiyon na $2. Magiging hindi makukuha ang SQLite.",
        "config-no-fts3": "'''Warning''': Ang SQLite ay hindi itinala at tinipon na wala ang [//sqlite.org/fts3.html modulong FTS3], ang mga tampok na panghanap ay magiging hindi makukuha sa ibabaw ng panlikod na dulong ito.",
        "config-pcre-no-utf8": "'''Malubha''': Tila tinipon ang modyul na PCRE ng PHP na wala ang suporta ng PCRE_UTF8.\nNangangailangan ang MediaWiki ng suporta ng UTF-8 upang maging tama ang pag-andar.",
index 60f3000..633d8cb 100644 (file)
@@ -68,7 +68,7 @@
        "config-unicode-using-intl": "Unikod normalleştirmesi için [https://pecl.php.net/intl intl PECL uzantısı] kullanılıyor.",
        "config-unicode-pure-php-warning": "<strong>Uyarı:</strong> [https://pecl.php.net/intl intl PECL uzantısı] Unicode normalizasyonunu kaldırabilecek şekilde müsait değil; bu yüzden sayfa saf PHP uygulamasına dönüyor. Yüksek trafik alan bir sayfa çalıştırıyorsanız, [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalizasyonu] ile ilgili biraz bilgi almalısınız.",
        "config-unicode-update-warning": "<strong>Uyarı:</strong> Yüklü durumdaki Unicode normalleştirme sarıcı [http://site.icu-project.org/ ICU proje] kütüphanesinin eski bir sürümünü kullanır.\nUnicode kullanımı konusunda endişeleriniz varsa [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations yükseltme] yapmanız gerekmektedir.",
-       "config-no-db": "Uygun bir veri tabanı sürücüsü bulunamadı! PHP için bir veri tabanı sürücüsü kurmanız gerekir. Şu veri tabanı {{PLURAL:$2|türleri|türleri}} desteklenmektedir: $1\n\nEğer PHP'yi kendiniz derlediyseniz, bu durumda <code>./configure --with-mysqli</code> kullanarak etkinleştirilmiş veri tabanı istemcisi ile yeniden yapılandırmalısınız.\nPHP'yi bir Debian veya Ubuntu paketinden yüklediyseniz, bu durumda <code>php5-mysql</code> paketini de kurmanız gerekir.",
+       "config-no-db": "Uygun bir veri tabanı sürücüsü bulunamadı! PHP için bir veri tabanı sürücüsü kurmanız gerekir. Şu veri tabanı {{PLURAL:$2|türleri|türleri}} desteklenmektedir: $1\n\nEğer PHP'yi kendiniz derlediyseniz, bu durumda <code>./configure --with-mysqli</code> kullanarak etkinleştirilmiş veri tabanı istemcisi ile yeniden yapılandırmalısınız.\nPHP'yi bir Debian veya Ubuntu paketinden yüklediyseniz, bu durumda <code>php-mysql</code> paketini de kurmanız gerekir.",
        "config-outdated-sqlite": "<strong>Uyarı:</strong> Elinizde SQLite $1 var. Gerekli minimum sürüm: $2. SQLite kullanılamayacaktır.",
        "config-no-fts3": "<strong>Uyarı:</strong> SQLite [//sqlite.org/fts3.html FTS3 modülü] olmadan derlendi, bu arkayüzde arama özellikleri kullanılamayacaktır.",
        "config-pcre-old": "<strong>Ağır hata:</strong> PCRE $1 veya daha üst versiyon gerekli.\nSizin PHP kurulumunuz PCRE $2 ile bağlı.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Daha fazla bilgi].",
        "config-db-web-create": "Eğer oluşturulmuş hesap yoksa yeni hesap oluştur",
        "config-db-web-no-create-privs": "Kurulum için belirlediğiniz hesap, hesap yaratımı için gerekli izinlere sahip değil.\nBurada belirttiğiniz hesap halihazırda var olmalı.",
        "config-mysql-engine": "Depolama motoru:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB (önerilen)",
        "config-mysql-myisam": "MyISAM",
        "config-mssql-auth": "Kimlik doğrulama türü:",
        "config-mssql-install-auth": "Kurulum işlemi sırasında veritabanına bağlanmak için kullanılacak doğrulama türünü seçin.\n\"{{int:config-mssql-windowsauth}}\"'ı seçerseniz,ağ sunucusu olarak çalışan kullanıcının kimlik bilgileri kullanılacaktır.",
index df5aad0..3f31990 100644 (file)
@@ -62,7 +62,7 @@
        "config-unicode-using-intl": "Використовувати [https://pecl.php.net/intl міжнародне розширення PECL] для нормалізації Юнікоду.",
        "config-unicode-pure-php-warning": "'''Увага''': [https://pecl.php.net/intl міжнародне розширення PECL] не може провести нормалізацію Юнікоду.\nЯкщо ваш сайт має високий трафік, вам варто почитати про [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations нормалізацію Юнікоду].",
        "config-unicode-update-warning": "'''Увага''': Встановлена версія обгортки нормалізації Юнікоду використовує стару версію бібліотеки [http://site.icu-project.org/ проекту ICU].\nВи маєте [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations оновити версію], якщо плануєте повноцінно використовувати Юнікод.",
-       "config-no-db": "Не вдалося знайти потрібний драйвер бази даних! Вам необхідно встановити драйвер бази даних для PHP. Підтримуються {{PLURAL:$2|такий тип|такі типи}} баз даних: $1.\n\nЯкщо ви скомпілювали PHP самостійно, переналаштуйте його з увімкненим клієнтом бази даних, наприклад за допомогою <code>./configure --with-mysqli</code>.\n\nЯкщо установлено PHP з пакетів Debian або Ubuntu, тоді ви також повинні встановити, наприклад, пакунок <code>php5-mysql</code>.",
+       "config-no-db": "Не вдалося знайти потрібний драйвер бази даних! Вам необхідно встановити драйвер бази даних для PHP. Підтримуються {{PLURAL:$2|такий тип|такі типи}} баз даних: $1.\n\nЯкщо ви скомпілювали PHP самостійно, переналаштуйте його з увімкненим клієнтом бази даних, наприклад за допомогою <code>./configure --with-mysqli</code>.\n\nЯкщо установлено PHP з пакетів Debian або Ubuntu, тоді ви також повинні встановити, наприклад, пакунок <code>php-mysql</code>.",
        "config-outdated-sqlite": "'''Увага''': у Вас встановлена версія SQLite $1, а це нижче, ніж мінімально необхідна версія $2. SQLite буде недоступним.",
        "config-no-fts3": "'''Увага''': SQLite зібраний без [//sqlite.org/fts3.html модуля FTS3], функції пошуку не будуть працювати у цій системі.",
        "config-pcre-old": "'''Фатальна помилка:''' потрібно PCRE версії $1 або пізнішої.\nВаш виконуваний файл PHP пов'язаний з PCRE версії $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Подробиці].",
index d69a260..7b3462d 100644 (file)
@@ -56,7 +56,7 @@
        "config-unicode-using-intl": "Sẽ sử dụng [https://pecl.php.net/intl phần mở rộng PECL intl] để chuẩn hóa Unicode.",
        "config-unicode-pure-php-warning": "<strong>Cảnh báo:</strong>  [https://pecl.php.net/intl intl PECL extension] không được phép xử lý Unicode chuẩn hóa, trả lại thực thi PHP-gốc chậm.\nNếu bạn chạy một site lưu lượng lớn, bạn phải để ý qua một chút trên  [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
        "config-unicode-update-warning": "<strong>Cảnh báo:</strong> Phiên bản cài đặt của gói Unicode chuẩn hóa sử dụng một phiên bản cũ của thư viện [http://site.icu-project.org/ the ICU project].\nBạn phải [https://www.mediawiki.org/wiki/Special:MyLanguage/nâng cấp Unicode_normalization_considerations] nếu bạn quan tâm đến việc sử dụng Unicode.",
-       "config-no-db": "Không tìm thấy một trình điều khiển cơ sở dữ liệu phù hợp! Bạn cần phải cài một trình điều khiển cơ sở dữ liệu cho PHP.\n{{PLURAL:$2|Loại|Các loại}} cơ sở dữ liệu sau đây được hỗ trợ: $1.\n\nNếu bạn đã biên dịch PHP lấy, cấu hình lại nó mà kích hoạt một trình khách cơ sở dữ liệu, ví dụ bằng lệnh <code>./configure --with-mysqli</code>.\nNếu bạn đã cài PHP từ một gói Debian hoặc Ubuntu, thì bạn cũng cần phải cài ví dụ gói <code>php5-mysql</code>.",
+       "config-no-db": "Không tìm thấy một trình điều khiển cơ sở dữ liệu phù hợp! Bạn cần phải cài một trình điều khiển cơ sở dữ liệu cho PHP.\n{{PLURAL:$2|Loại|Các loại}} cơ sở dữ liệu sau đây được hỗ trợ: $1.\n\nNếu bạn đã biên dịch PHP lấy, cấu hình lại nó mà kích hoạt một trình khách cơ sở dữ liệu, ví dụ bằng lệnh <code>./configure --with-mysqli</code>.\nNếu bạn đã cài PHP từ một gói Debian hoặc Ubuntu, thì bạn cũng cần phải cài ví dụ gói <code>php-mysql</code>.",
        "config-outdated-sqlite": "<strong>Chú ý:</strong> Bạn có SQLite $1, phiên bản này thấp hơn phiên bản yêu câu tối thiểu $2. SQLite sẽ không có tác dụng.",
        "config-no-fts3": "<strong>Chú ý:</strong> SQLite được biên dịch mà không có [//sqlite.org/fts3.html mô đun FTS3], nên các chức năng tìm kiếm sẽ bị vô hiệu trên hệ thống phía sau này.",
        "config-pcre-old": "<strong>Lỗi chí tử:</strong> PCRE $1 trở lên được yêu cầu phải có.\nBản nhị phân PHP của bạn dang được liên kết với PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Thông tin bổ sung].",
index d6a364c..dca707f 100644 (file)
@@ -46,7 +46,7 @@
        "config-env-hhvm": "Gin-install an HHVM $1.",
        "config-unicode-using-intl": "Gamita an [https://pecl.php.net/intl intl PECL extension] para han normalisasyon han Unicode.",
        "config-unicode-pure-php-warning": "<strong>Pahimatngon:</strong> An [https://pecl.php.net/intl intl PECL extension] in waray akos kumapot hin Unicode normalization, tungod hini mabalik ha mahinay nga puro-PHP nga implementasyon.\nKun nagpapadalagan ka hin high-traffic site, alayon pagbasa hin guti han [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode normalization].",
-       "config-no-db": "Diri nakakabiling hin naaangay nga database driver! Kinahanglan mo magtaod hin uska database driver para han PHP. An masunod nga mga klase hin database in ginsusuporatahan: $1.\n\nKun ikaw mismo an nag-compile han PHP, kinahanglan ma-reconfigure iton nga para maapandar an database client, pananglitan, han paggamit han <code>./configure --with-mysqli</code>.\nKun gintaod mo an PHP tikang ha uska Debian o Ubuntu nga pakete, kinahanglan nimo magtaod liwat, pananglitan, hiton an <code>php5-mysql</code> nga pakete.",
+       "config-no-db": "Diri nakakabiling hin naaangay nga database driver! Kinahanglan mo magtaod hin uska database driver para han PHP. An masunod nga mga klase hin database in ginsusuporatahan: $1.\n\nKun ikaw mismo an nag-compile han PHP, kinahanglan ma-reconfigure iton nga para maapandar an database client, pananglitan, han paggamit han <code>./configure --with-mysqli</code>.\nKun gintaod mo an PHP tikang ha uska Debian o Ubuntu nga pakete, kinahanglan nimo magtaod liwat, pananglitan, hiton an <code>php-mysql</code> nga pakete.",
        "config-pcre-old": "<strong>Nangangarat-an:</strong> Nagkikinahanglan hin PCRE $1 o mas urhi pa.\nAn imo PHP nga binaryo in nakasumpay hin PCRE $2. [https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE More information].",
        "config-db-name": "Ngaran han database:",
        "config-db-name-help": "Pagpili hin ngaran nga natudlok ha imo wiki.\nDapat waray ini mga espasyo.\n\nKun ikaw in nagamit hin shared web hosting, an imo hosting provider in mahatag diri ngani an specific database name para paggamit, matugot ha imo paghimo hin mga database pinaagi han control panel.",
index c46478d..37706fa 100644 (file)
@@ -71,7 +71,7 @@
        "config-unicode-using-intl": "使用[https://pecl.php.net/intl intl PECL扩展程序]标准化Unicode。",
        "config-unicode-pure-php-warning": "<strong>警告:</strong>因为尚未安装 [https://pecl.php.net/intl intl PECL 扩展]以处理 Unicode 正常化,故只能退而采用运行较慢的纯 PHP 实现的方法。如果您运行着一个高流量的网站,请参阅 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations Unicode标准化]一文。",
        "config-unicode-update-warning": "<strong>警告:</strong>Unicode正常化封装器的已安装版本使用了旧版本的[http://site.icu-project.org/ ICU项目]库。如果您需要使用Unicode,请将其[https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 升级]。",
-       "config-no-db": "无法找到合适的数据库驱动!您需要为PHP安装数据库驱动。目前支持以下数据库{{PLURAL:$2|类型}}:$1。\n\n如果您自己编译了PHP,请通过启用数据库客户端重新配置它,例如使用 <code>./configure --with-mysqli</code>。如果您从 Debian 或 Ubuntu 安装包安装了PHP,那么您也需要安装,例如 <code>php5-mysql</code> 安装包。",
+       "config-no-db": "无法找到合适的数据库驱动!您需要为PHP安装数据库驱动。目前支持以下数据库{{PLURAL:$2|类型}}:$1。\n\n如果您自己编译了PHP,请通过启用数据库客户端重新配置它,例如使用<code>./configure --with-mysqli</code>。如果您从Debian或Ubuntu安装包安装了PHP,那么您也需要安装一些组件包,例如<code>php-mysql</code>。",
        "config-outdated-sqlite": "<strong>警告:</strong>您已安装SQLite $1,但是它的版本低于最低要求版本$2。因此您无法选择SQLite。",
        "config-no-fts3": "<strong>警告:</strong>已编译的SQLite不包含[//sqlite.org/fts3.html FTS3模块],后台搜索功能将不可用。",
        "config-pcre-old": "<strong>致命错误:</strong>需要PCRE $1 或更高版本。\n您的 PHP 二进制文件与 PCRE $2 链接。\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 详细信息]。",
        "config-sqlite-dir-help": "SQLite会将所有的数据存储于单一文件中。\n\n您所提供的目录必须在安装过程中对网页服务器可写。\n\n该目录<strong>不应</strong>允许通过web访问,因此我们不会将数据文件和PHP文件放在一起。\n\n安装程序在创建数据文件时,亦会在相同目录下创建<code>.htaccess</code>以控制权限。假若此等控制失效,则可能会将您的数据文件暴露于公共空间,让他人可以获取用户数据(电子邮件地址、杂凑后的密码)、被删除的版本以及其他在wiki上被限制访问的数据。\n\n请考虑将数据库统一放置在某处,如<code>/var/lib/mediawiki/yourwiki</code>下。",
        "config-oracle-def-ts": "默认表空间:",
        "config-oracle-temp-ts": "临时表空间:",
-       "config-type-mysql": "MySQL(或兼容程序)",
+       "config-type-mysql": "MariaDB、MySQL或兼容程序",
        "config-type-mssql": "微软SQL服务器",
        "config-support-info": "MediaWiki支持以下数据库系统:\n\n$1\n\n如果您在下面列出的数据库系统中没有找到您希望使用的系统,请根据上方链向的指引启用支持。",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL]是MediaWiki的首选数据库,对它的支持最为完备。MediaWiki也可以在[{{int:version-db-mariadb-url}} MariaDB]和[{{int:version-db-percona-url}} Percona Server]下工作,它们与MySQL兼容。([https://secure.php.net/manual/en/mysqli.installation.php 如何将对MySQL的支持编译进PHP中])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mariadb-url}} MariaDB]是用于MediaWiki的主要数据库,对它的支持最为完备。MediaWiki也可以在[{{int:version-db-mysql-url}} MySQL]和[{{int:version-db-percona-url}} Percona Server]下工作,它们与MariaDB兼容。([https://secure.php.net/manual/en/mysqli.installation.php 如何将对MySQL的支持编译进PHP中])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL]是一种流行的开源数据库系统,可作为MySQL的替代。([https://secure.php.net/manual/en/pgsql.installation.php 如何将对PostgreSQL的支持编译进PHP中])",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite]是一种轻量级的数据库系统,能被良好地支持。([https://secure.php.net/manual/en/pdo.installation.php 如何将对SQLite的支持编译进PHP中],须使用PDO)",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle]是一种商用企业级的数据库。([https://secure.php.net/manual/en/oci8.installation.php 如何将对OCI8的支持编译进PHP中])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server]是一个适用于Windows的商业性企业数据库。([https://secure.php.net/manual/en/sqlsrv.installation.php 如何编译带有SQLSRV支持的PHP])",
-       "config-header-mysql": "MySQL设置",
+       "config-header-mysql": "MariaDB/MySQL设置",
        "config-header-postgres": "PostgreSQL设置",
        "config-header-sqlite": "SQLite设置",
        "config-header-oracle": "Oracle设置",
        "config-db-web-create": "如果帐号不存在,则自动创建",
        "config-db-web-no-create-privs": "您指定给安装程序的帐号缺少创建帐号的权限,因此您指定的帐号必须已经存在。",
        "config-mysql-engine": "存储引擎:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB(推荐)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "<strong>警告:</strong>您选择了MyISAM作为MySQL的存储引擎,MediaWiki并不推荐您这么做,因为:\n* 它仅能通过表锁定来勉强支持并发\n* 与其他引擎相比,它更容易被损坏\n* MediaWiki代码库并不总会去处理MyISAM\n\n如果您的MySQL程序支持InnoDB,我们高度推荐您使用该引擎替代MyISAM。\n如果您的MySQL程序不支持InnoDB,请考虑升级。",
        "config-mysql-only-myisam-dep": "<strong>警告:</strong>MyISAM是MySQL在此机器上唯一可用的存储引擎,但它不适合用于MediaWiki,因为:\n*因为表级锁定,它几乎不支持并发。\n*它相比其他引擎更容易损坏。\n*MediaWiki代码不能总是按照预期操作MyISAM。\n\n你的MySQL不支持InnoDB,是时候升级了。",
index 4854877..0ed6f6f 100644 (file)
@@ -70,7 +70,7 @@
        "config-unicode-using-intl": "使用 [https://pecl.php.net/intl intl PECL 擴充套件] 做 Unicode 正規化。",
        "config-unicode-pure-php-warning": "<strong>警告:</strong> 無法使用 [https://pecl.php.net/intl intl PECL 擴充套件] 處理 Unicode 正規化,故回退使用純 PHP 實作的正規化程式,此方式處理速度較緩慢。\n\n如果您的網站瀏覽人次很高,您應先閱讀 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations/zh Unicode 正規化]。",
        "config-unicode-update-warning": "<strong>警告</strong>:目前安裝的 Unicode 正規化包裝程式使用了舊版 [http://site.icu-project.org/ ICU 計劃] 的程式庫。\n若您需要使用 Unicode,您應先進行 [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 升級]。",
-       "config-no-db": "找不到合適的資料庫驅動程式!您需要安裝 PHP 資料庫驅動程式。\n目前支援以下{{PLURAL:$2|類型|類型}}的資料庫: $1 。\n\n如果您是自行編譯 PHP,您必須重新設定並開啟資料庫客戶端,例:使用 <code>./configure --with-mysqli</code> 指令參數。\n如果您是使用 Debian 或 Ubuntu 的套件安裝 PHP ,您則需要額外安裝,例:<code>php5-mysql</code> 套件。",
+       "config-no-db": "找不到合適的資料庫驅動程式!您需要安裝 PHP 資料庫驅動程式。\n目前支援以下{{PLURAL:$2|類型|類型}}的資料庫: $1 。\n\n如果您是自行編譯 PHP,您必須重新設定並開啟資料庫客戶端,例:使用 <code>./configure --with-mysqli</code> 指令參數。\n如果您是使用 Debian 或 Ubuntu 的套件安裝 PHP ,您則需要額外安裝,例:<code>php-mysql</code> 套件。",
        "config-outdated-sqlite": "<strong>警告:</strong>您已安裝 SQLite $1,但是它的版本低於最低需求版本 $2。 因此您無法使用 SQLite。",
        "config-no-fts3": "<strong>警告:</strong> SQLite 編譯時未包含 [//sqlite.org/fts3.html FTS3 模組],後台搜尋功能將無法使用。",
        "config-pcre-old": "<strong>嚴重:</strong> 需要使用 PCRE $1 或更新的版本。\n您的 PHP 執行檔使用的是 PCRE $2。\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE 詳細資訊]。",
        "config-sqlite-dir-help": "SQLite 會將所有的資料存儲於單一檔案中。\n\n您所提供的目錄在安裝過程中必須開啟給網頁伺服器的寫入權限。\n\n該目錄 <strong>不應</strong> 可以被透過網頁所開啟,這也是為什麼我們不將資料與 PHP 檔案放在一起。\n\n安裝程式在建立資料庫檔案時,會同時在目錄下建立 <code>.htaccess</code> 以控制網頁伺服器權限。若此設定失效,則會導致任何人可以直接存取您的原始資料檔案,而資料庫的內容包含原始的使用者資料 (電子郵件地址、加密後的密碼)、刪除後的修訂及其他在 Wiki 上被限制存取的資料。\n\n請考慮將資料庫統一放置在某處,如 <code>/var/lib/mediawiki/yourwiki</code> 底下。",
        "config-oracle-def-ts": "預設資料表空間:",
        "config-oracle-temp-ts": "臨時資料表空間:",
-       "config-type-mysql": "MySQL (或與其相容的程式)",
+       "config-type-mysql": "MariaDB、MySQL、或與其相容的套件",
        "config-type-mssql": "Microsoft SQL Server",
        "config-support-info": "MediaWiki 支援以下資料庫系統:\n\n$1\n\n如果您下方沒有看到您要使用的資料庫系統,請根據上方連結指示開啟資料庫的支援。",
-       "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] 是 MediaWiki 主要支援的資料庫系統。MediaWiki 也同時可運作與於 [{{int:version-db-mariadb-url}} MariaDB] 和 [{{int:version-db-percona-url}} Percona 伺服器],上述這些與 MySQL 相容的資料庫系統。([https://secure.php.net/manual/en/mysqli.installation.php 如何編譯支援 MySQL 的 PHP])",
+       "config-dbsupport-mysql": "* [{{int:version-db-mariadb-url}} MariaDB] 是 MediaWiki 主要支援的資料庫系統。MediaWiki 也同時可運作與於 [{{int:version-db-mysql-url}} MySQL] 和 [{{int:version-db-percona-url}} Percona 伺服器],上述這些與 MariaDB 相容的資料庫系統。([https://secure.php.net/manual/en/mysqli.installation.php 如何編譯支援 MySQL 的 PHP])",
        "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] 是一套受歡迎的開源資料庫系統,可用來替代 MySQL。([https://secure.php.net/manual/en/pgsql.installation.php 如何編譯支援 PostgreSQL 的 PHP])。",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] 是一套輕量級的資料庫系統,MediaWiki 可在此資料庫系統上良好的運作。([https://secure.php.net/manual/en/pdo.installation.php 如何編譯支援 SQLite 的 PHP],須透過 PDO)",
        "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] 是一套商用企業級的資料庫。([https://secure.php.net/manual/en/oci8.installation.php 如何編譯支援 OCI8 的 PHP])",
        "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] 是一套 Windows 專用的商用企業級的資料庫。 ([https://secure.php.net/manual/en/sqlsrv.installation.php 如何編譯支援 SQLSRV 的 PHP])",
-       "config-header-mysql": "MySQL 設定",
+       "config-header-mysql": "MariaDB/MySQL 設定",
        "config-header-postgres": "PostgreSQL 設定",
        "config-header-sqlite": "SQLite 設定",
        "config-header-oracle": "Oracle 設定",
        "config-db-web-create": "如果帳號不存在則建立新帳號",
        "config-db-web-no-create-privs": "您指定給安裝程序使用的帳號沒有足夠的權限建立新帳號。\n在此處必須指定已經存在的帳號。",
        "config-mysql-engine": "儲存引擎:",
-       "config-mysql-innodb": "InnoDB",
+       "config-mysql-innodb": "InnoDB(推薦)",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "<strong>警告:</strong>您選擇用來做為 MySQL 的儲存引撆 MyISAM 並不建議使用在 MediaWiki,主要原因為:\n* MyISAM 使用的資料表鎖定較無法承受多人同時連線\n* 比起其他儲存引擎相,它較容易損壞\n* MediaWiki 程式碼並沒有針對 MyISAM 做特別的處理\n\n若您安裝的 MySQL 支援 InnoDB,我們強烈建議您改用 InnoDB。\n若您安裝的 MySQL 不支援 InnoDB,則應考慮升級 MySQL。",
        "config-mysql-only-myisam-dep": "<strong>警告:</strong>您的伺服器上的 MySQL 唯一可用的儲存引擎是 MyISAM,但並不建議使用,主要原因為:\n* MyISAM 使用的資料表鎖定較無法承受多人同時連線\n* 比起其他儲存引擎相,它較容易損壞\n* MediaWiki 程式碼並沒有針對 MyISAM 做特別的處理\n\n若您安裝的 MySQL 不支援 InnoDB,則應考慮升級 MySQL。",
index 16640be..a0c70ab 100644 (file)
@@ -173,7 +173,7 @@ class CategoryMembershipChangeJob extends Job {
                }
 
                // Parse the new revision and get the categories
-               $categoryChanges = $this->getExplicitCategoriesChanges( $title, $newRev, $oldRev );
+               $categoryChanges = $this->getExplicitCategoriesChanges( $page, $newRev, $oldRev );
                list( $categoryInserts, $categoryDeletes ) = $categoryChanges;
                if ( !$categoryInserts && !$categoryDeletes ) {
                        return; // nothing to do
@@ -203,7 +203,7 @@ class CategoryMembershipChangeJob extends Job {
        }
 
        private function getExplicitCategoriesChanges(
-               Title $title, Revision $newRev, Revision $oldRev = null
+               WikiPage $page, Revision $newRev, Revision $oldRev = null
        ) {
                // Inject the same timestamp for both revision parses to avoid seeing category changes
                // due to time-based parser functions. Inject the same page title for the parses too.
@@ -213,10 +213,10 @@ class CategoryMembershipChangeJob extends Job {
                // assumes these updates are perfectly FIFO and that link tables are always
                // up to date, neither of which are true.
                $oldCategories = $oldRev
-                       ? $this->getCategoriesAtRev( $title, $oldRev, $parseTimestamp )
+                       ? $this->getCategoriesAtRev( $page, $oldRev, $parseTimestamp )
                        : [];
                // Parse the new revision and get the categories
-               $newCategories = $this->getCategoriesAtRev( $title, $newRev, $parseTimestamp );
+               $newCategories = $this->getCategoriesAtRev( $page, $newRev, $parseTimestamp );
 
                $categoryInserts = array_values( array_diff( $newCategories, $oldCategories ) );
                $categoryDeletes = array_values( array_diff( $oldCategories, $newCategories ) );
@@ -225,19 +225,19 @@ class CategoryMembershipChangeJob extends Job {
        }
 
        /**
-        * @param Title $title
+        * @param WikiPage $page
         * @param Revision $rev
         * @param string $parseTimestamp TS_MW
         *
         * @return string[] category names
         */
-       private function getCategoriesAtRev( Title $title, Revision $rev, $parseTimestamp ) {
+       private function getCategoriesAtRev( WikiPage $page, Revision $rev, $parseTimestamp ) {
                $content = $rev->getContent();
-               $options = $content->getContentHandler()->makeParserOptions( 'canonical' );
+               $options = $page->makeParserOptions( 'canonical' );
                $options->setTimestamp( $parseTimestamp );
                // This could possibly use the parser cache if it checked the revision ID,
                // but that's more complicated than it's worth.
-               $output = $content->getParserOutput( $title, $rev->getId(), $options );
+               $output = $content->getParserOutput( $page->getTitle(), $rev->getId(), $options );
 
                // array keys will cast numeric category names to ints
                // so we need to cast them back to strings to avoid breaking things!
index 595dc1a..e891c9e 100644 (file)
@@ -251,7 +251,7 @@ class MapCacheLRU implements IExpiringStore, Serializable {
         * @return void
         */
        public function clear( $keys = null ) {
-               if ( $keys === null ) {
+               if ( func_num_args() == 0 ) {
                        $this->cache = [];
                        $this->timestamps = [];
                } else {
index 118464c..e2d56b0 100644 (file)
@@ -40,9 +40,9 @@ abstract class FileBackendStore extends FileBackend {
        protected $memCache;
        /** @var BagOStuff */
        protected $srvCache;
-       /** @var ProcessCacheLRU Map of paths to small (RAM/disk) cache items */
+       /** @var MapCacheLRU Map of paths to small (RAM/disk) cache items */
        protected $cheapCache;
-       /** @var ProcessCacheLRU Map of paths to large (RAM/disk) cache items */
+       /** @var MapCacheLRU Map of paths to large (RAM/disk) cache items */
        protected $expensiveCache;
 
        /** @var array Map of container names to sharding config */
@@ -73,8 +73,8 @@ abstract class FileBackendStore extends FileBackend {
                $this->mimeCallback = $config['mimeCallback'] ?? null;
                $this->srvCache = new EmptyBagOStuff(); // disabled by default
                $this->memCache = WANObjectCache::newEmpty(); // disabled by default
-               $this->cheapCache = new ProcessCacheLRU( self::CACHE_CHEAP_SIZE );
-               $this->expensiveCache = new ProcessCacheLRU( self::CACHE_EXPENSIVE_SIZE );
+               $this->cheapCache = new MapCacheLRU( self::CACHE_CHEAP_SIZE );
+               $this->expensiveCache = new MapCacheLRU( self::CACHE_EXPENSIVE_SIZE );
        }
 
        /**
@@ -627,11 +627,11 @@ abstract class FileBackendStore extends FileBackend {
                }
                $ps = $this->scopedProfileSection( __METHOD__ . "-{$this->name}" );
                $latest = !empty( $params['latest'] ); // use latest data?
-               if ( !$latest && !$this->cheapCache->has( $path, 'stat', self::CACHE_TTL ) ) {
+               if ( !$latest && !$this->cheapCache->hasField( $path, 'stat', self::CACHE_TTL ) ) {
                        $this->primeFileCache( [ $path ] ); // check persistent cache
                }
-               if ( $this->cheapCache->has( $path, 'stat', self::CACHE_TTL ) ) {
-                       $stat = $this->cheapCache->get( $path, 'stat' );
+               if ( $this->cheapCache->hasField( $path, 'stat', self::CACHE_TTL ) ) {
+                       $stat = $this->cheapCache->getField( $path, 'stat' );
                        // If we want the latest data, check that this cached
                        // value was in fact fetched with the latest available data.
                        if ( is_array( $stat ) ) {
@@ -648,21 +648,21 @@ abstract class FileBackendStore extends FileBackend {
                if ( is_array( $stat ) ) { // file exists
                        // Strongly consistent backends can automatically set "latest"
                        $stat['latest'] = $stat['latest'] ?? $latest;
-                       $this->cheapCache->set( $path, 'stat', $stat );
+                       $this->cheapCache->setField( $path, 'stat', $stat );
                        $this->setFileCache( $path, $stat ); // update persistent cache
                        if ( isset( $stat['sha1'] ) ) { // some backends store SHA-1 as metadata
-                               $this->cheapCache->set( $path, 'sha1',
+                               $this->cheapCache->setField( $path, 'sha1',
                                        [ 'hash' => $stat['sha1'], 'latest' => $latest ] );
                        }
                        if ( isset( $stat['xattr'] ) ) { // some backends store headers/metadata
                                $stat['xattr'] = self::normalizeXAttributes( $stat['xattr'] );
-                               $this->cheapCache->set( $path, 'xattr',
+                               $this->cheapCache->setField( $path, 'xattr',
                                        [ 'map' => $stat['xattr'], 'latest' => $latest ] );
                        }
                } elseif ( $stat === false ) { // file does not exist
-                       $this->cheapCache->set( $path, 'stat', $latest ? 'NOT_EXIST_LATEST' : 'NOT_EXIST' );
-                       $this->cheapCache->set( $path, 'xattr', [ 'map' => false, 'latest' => $latest ] );
-                       $this->cheapCache->set( $path, 'sha1', [ 'hash' => false, 'latest' => $latest ] );
+                       $this->cheapCache->setField( $path, 'stat', $latest ? 'NOT_EXIST_LATEST' : 'NOT_EXIST' );
+                       $this->cheapCache->setField( $path, 'xattr', [ 'map' => false, 'latest' => $latest ] );
+                       $this->cheapCache->setField( $path, 'sha1', [ 'hash' => false, 'latest' => $latest ] );
                        $this->logger->debug( __METHOD__ . ": File $path does not exist.\n" );
                } else { // an error occurred
                        $this->logger->warning( __METHOD__ . ": Could not stat file $path.\n" );
@@ -709,8 +709,8 @@ abstract class FileBackendStore extends FileBackend {
                }
                $ps = $this->scopedProfileSection( __METHOD__ . "-{$this->name}" );
                $latest = !empty( $params['latest'] ); // use latest data?
-               if ( $this->cheapCache->has( $path, 'xattr', self::CACHE_TTL ) ) {
-                       $stat = $this->cheapCache->get( $path, 'xattr' );
+               if ( $this->cheapCache->hasField( $path, 'xattr', self::CACHE_TTL ) ) {
+                       $stat = $this->cheapCache->getField( $path, 'xattr' );
                        // If we want the latest data, check that this cached
                        // value was in fact fetched with the latest available data.
                        if ( !$latest || $stat['latest'] ) {
@@ -719,7 +719,7 @@ abstract class FileBackendStore extends FileBackend {
                }
                $fields = $this->doGetFileXAttributes( $params );
                $fields = is_array( $fields ) ? self::normalizeXAttributes( $fields ) : false;
-               $this->cheapCache->set( $path, 'xattr', [ 'map' => $fields, 'latest' => $latest ] );
+               $this->cheapCache->setField( $path, 'xattr', [ 'map' => $fields, 'latest' => $latest ] );
 
                return $fields;
        }
@@ -740,8 +740,8 @@ abstract class FileBackendStore extends FileBackend {
                }
                $ps = $this->scopedProfileSection( __METHOD__ . "-{$this->name}" );
                $latest = !empty( $params['latest'] ); // use latest data?
-               if ( $this->cheapCache->has( $path, 'sha1', self::CACHE_TTL ) ) {
-                       $stat = $this->cheapCache->get( $path, 'sha1' );
+               if ( $this->cheapCache->hasField( $path, 'sha1', self::CACHE_TTL ) ) {
+                       $stat = $this->cheapCache->getField( $path, 'sha1' );
                        // If we want the latest data, check that this cached
                        // value was in fact fetched with the latest available data.
                        if ( !$latest || $stat['latest'] ) {
@@ -749,7 +749,7 @@ abstract class FileBackendStore extends FileBackend {
                        }
                }
                $hash = $this->doGetFileSha1Base36( $params );
-               $this->cheapCache->set( $path, 'sha1', [ 'hash' => $hash, 'latest' => $latest ] );
+               $this->cheapCache->setField( $path, 'sha1', [ 'hash' => $hash, 'latest' => $latest ] );
 
                return $hash;
        }
@@ -788,8 +788,8 @@ abstract class FileBackendStore extends FileBackend {
                        $path = self::normalizeStoragePath( $src );
                        if ( $path === null ) {
                                $fsFiles[$src] = null; // invalid storage path
-                       } elseif ( $this->expensiveCache->has( $path, 'localRef' ) ) {
-                               $val = $this->expensiveCache->get( $path, 'localRef' );
+                       } elseif ( $this->expensiveCache->hasField( $path, 'localRef' ) ) {
+                               $val = $this->expensiveCache->getField( $path, 'localRef' );
                                // If we want the latest data, check that this cached
                                // value was in fact fetched with the latest available data.
                                if ( !$latest || $val['latest'] ) {
@@ -802,7 +802,7 @@ abstract class FileBackendStore extends FileBackend {
                foreach ( $this->doGetLocalReferenceMulti( $params ) as $path => $fsFile ) {
                        $fsFiles[$path] = $fsFile;
                        if ( $fsFile ) { // update the process cache...
-                               $this->expensiveCache->set( $path, 'localRef',
+                               $this->expensiveCache->setField( $path, 'localRef',
                                        [ 'object' => $fsFile, 'latest' => $latest ] );
                        }
                }
@@ -1102,7 +1102,7 @@ abstract class FileBackendStore extends FileBackend {
                }
 
                // Enlarge the cache to fit the stat entries of these files
-               $this->cheapCache->resize( max( 2 * count( $paths ), self::CACHE_CHEAP_SIZE ) );
+               $this->cheapCache->setMaxSize( max( 2 * count( $paths ), self::CACHE_CHEAP_SIZE ) );
 
                // Load from the persistent container caches
                $this->primeContainerCache( $paths );
@@ -1129,7 +1129,7 @@ abstract class FileBackendStore extends FileBackend {
                $status->success = $subStatus->success; // not done in merge()
 
                // Shrink the stat cache back to normal size
-               $this->cheapCache->resize( self::CACHE_CHEAP_SIZE );
+               $this->cheapCache->setMaxSize( self::CACHE_CHEAP_SIZE );
 
                return $status;
        }
@@ -1323,23 +1323,23 @@ abstract class FileBackendStore extends FileBackend {
                        if ( is_array( $stat ) ) { // file exists
                                // Strongly consistent backends can automatically set "latest"
                                $stat['latest'] = $stat['latest'] ?? $latest;
-                               $this->cheapCache->set( $path, 'stat', $stat );
+                               $this->cheapCache->setField( $path, 'stat', $stat );
                                $this->setFileCache( $path, $stat ); // update persistent cache
                                if ( isset( $stat['sha1'] ) ) { // some backends store SHA-1 as metadata
-                                       $this->cheapCache->set( $path, 'sha1',
+                                       $this->cheapCache->setField( $path, 'sha1',
                                                [ 'hash' => $stat['sha1'], 'latest' => $latest ] );
                                }
                                if ( isset( $stat['xattr'] ) ) { // some backends store headers/metadata
                                        $stat['xattr'] = self::normalizeXAttributes( $stat['xattr'] );
-                                       $this->cheapCache->set( $path, 'xattr',
+                                       $this->cheapCache->setField( $path, 'xattr',
                                                [ 'map' => $stat['xattr'], 'latest' => $latest ] );
                                }
                        } elseif ( $stat === false ) { // file does not exist
-                               $this->cheapCache->set( $path, 'stat',
+                               $this->cheapCache->setField( $path, 'stat',
                                        $latest ? 'NOT_EXIST_LATEST' : 'NOT_EXIST' );
-                               $this->cheapCache->set( $path, 'xattr',
+                               $this->cheapCache->setField( $path, 'xattr',
                                        [ 'map' => false, 'latest' => $latest ] );
-                               $this->cheapCache->set( $path, 'sha1',
+                               $this->cheapCache->setField( $path, 'sha1',
                                        [ 'hash' => false, 'latest' => $latest ] );
                                $this->logger->debug( __METHOD__ . ": File $path does not exist.\n" );
                        } else { // an error occurred
@@ -1769,14 +1769,14 @@ abstract class FileBackendStore extends FileBackend {
                        $path = $pathNames[$cacheKey];
                        if ( is_array( $val ) ) {
                                $val['latest'] = false; // never completely trust cache
-                               $this->cheapCache->set( $path, 'stat', $val );
+                               $this->cheapCache->setField( $path, 'stat', $val );
                                if ( isset( $val['sha1'] ) ) { // some backends store SHA-1 as metadata
-                                       $this->cheapCache->set( $path, 'sha1',
+                                       $this->cheapCache->setField( $path, 'sha1',
                                                [ 'hash' => $val['sha1'], 'latest' => false ] );
                                }
                                if ( isset( $val['xattr'] ) ) { // some backends store headers/metadata
                                        $val['xattr'] = self::normalizeXAttributes( $val['xattr'] );
-                                       $this->cheapCache->set( $path, 'xattr',
+                                       $this->cheapCache->setField( $path, 'xattr',
                                                [ 'map' => $val['xattr'], 'latest' => false ] );
                                }
                        }
index 143f854..31882de 100644 (file)
@@ -129,7 +129,7 @@ class SwiftFileBackend extends FileBackendStore {
                        $this->memCache = $config['wanCache'];
                }
                // Process cache for container info
-               $this->containerStatCache = new ProcessCacheLRU( 300 );
+               $this->containerStatCache = new MapCacheLRU( 300 );
                // Cache auth token information to avoid RTTs
                if ( !empty( $config['cacheAuthInfo'] ) && isset( $config['srvCache'] ) ) {
                        $this->srvCache = $config['srvCache'];
@@ -1033,7 +1033,7 @@ class SwiftFileBackend extends FileBackendStore {
         * @param array $val Stat value
         */
        public function loadListingStatInternal( $path, array $val ) {
-               $this->cheapCache->set( $path, 'stat', $val );
+               $this->cheapCache->setField( $path, 'stat', $val );
        }
 
        protected function doGetFileXAttributes( array $params ) {
@@ -1188,7 +1188,7 @@ class SwiftFileBackend extends FileBackendStore {
                                // Set the file stat process cache in passing
                                $stat = $this->getStatFromHeaders( $rhdrs );
                                $stat['latest'] = $isLatest;
-                               $this->cheapCache->set( $path, 'stat', $stat );
+                               $this->cheapCache->setField( $path, 'stat', $stat );
                        } elseif ( $rcode === 404 ) {
                                $tmpFiles[$path] = false;
                        } else {
@@ -1395,10 +1395,10 @@ class SwiftFileBackend extends FileBackendStore {
 
                if ( $bypassCache ) { // purge cache
                        $this->containerStatCache->clear( $container );
-               } elseif ( !$this->containerStatCache->has( $container, 'stat' ) ) {
+               } elseif ( !$this->containerStatCache->hasField( $container, 'stat' ) ) {
                        $this->primeContainerCache( [ $container ] ); // check persistent cache
                }
-               if ( !$this->containerStatCache->has( $container, 'stat' ) ) {
+               if ( !$this->containerStatCache->hasField( $container, 'stat' ) ) {
                        $auth = $this->getAuthentication();
                        if ( !$auth ) {
                                return null;
@@ -1418,7 +1418,7 @@ class SwiftFileBackend extends FileBackendStore {
                                if ( $bypassCache ) {
                                        return $stat;
                                } else {
-                                       $this->containerStatCache->set( $container, 'stat', $stat ); // cache it
+                                       $this->containerStatCache->setField( $container, 'stat', $stat ); // cache it
                                        $this->setContainerCache( $container, $stat ); // update persistent cache
                                }
                        } elseif ( $rcode === 404 ) {
@@ -1431,7 +1431,7 @@ class SwiftFileBackend extends FileBackendStore {
                        }
                }
 
-               return $this->containerStatCache->get( $container, 'stat' );
+               return $this->containerStatCache->getField( $container, 'stat' );
        }
 
        /**
@@ -1583,7 +1583,7 @@ class SwiftFileBackend extends FileBackendStore {
 
        protected function doPrimeContainerCache( array $containerInfo ) {
                foreach ( $containerInfo as $container => $info ) {
-                       $this->containerStatCache->set( $container, 'stat', $info );
+                       $this->containerStatCache->setField( $container, 'stat', $info );
                }
        }
 
index 0100fb2..782f4c6 100644 (file)
@@ -371,7 +371,13 @@ abstract class BagOStuff implements IExpiringStore, LoggerAwareInterface {
         * @return bool Success
         */
        protected function mergeViaLock( $key, $callback, $exptime = 0, $attempts = 10, $flags = 0 ) {
-               if ( !$this->lock( $key, 6 ) ) {
+               if ( $attempts <= 1 ) {
+                       $timeout = 0; // clearly intended to be "non-blocking"
+               } else {
+                       $timeout = 3;
+               }
+
+               if ( !$this->lock( $key, $timeout ) ) {
                        return false;
                }
 
index 1f36537..726836e 100644 (file)
@@ -68,7 +68,7 @@ class CachedBagOStuff extends HashBagOStuff {
        }
 
        public function delete( $key, $flags = 0 ) {
-               unset( $this->bag[$key] );
+               parent::delete( $key );
                if ( !( $flags & self::WRITE_CACHE_ONLY ) ) {
                        $this->backend->delete( $key );
                }
index 64bfa95..91f4167 100644 (file)
@@ -202,7 +202,7 @@ class MultiWriteBagOStuff extends BagOStuff {
                $ret = true;
                $args = array_slice( func_get_args(), 3 );
 
-               if ( count( $indexes ) > 1 && $asyncWrites ) {
+               if ( array_diff( $indexes, [ 0 ] ) && $asyncWrites ) {
                        // Deep-clone $args to prevent misbehavior when something writes an
                        // object to the BagOStuff then modifies it afterwards, e.g. T168040.
                        $args = unserialize( serialize( $args ) );
index 37a967f..73ecc9d 100644 (file)
@@ -150,8 +150,10 @@ class ParsoidVirtualRESTService extends VirtualRESTService {
         * @param Closure $idGeneratorFunc
         * @return array
         * @throws Exception
+        * @deprecated since 1.26, upgrade your client to issue v3 requests.
         */
        public function onParsoid1Request( array $req, Closure $idGeneratorFunc ) {
+               wfDeprecated( __METHOD__, '1.26' );
                $parts = explode( '/', $req['url'] );
                list(
                        $targetWiki, // 'local'
index 192b4bd..d31e735 100644 (file)
@@ -153,8 +153,10 @@ class RestbaseVirtualRESTService extends VirtualRESTService {
         * @param Closure $idGeneratorFunc
         * @return array
         * @throws Exception
+        * @deprecated since 1.26, upgrade your client to issue v3 requests.
         */
        public function onParsoid1Request( array $req, Closure $idGeneratorFunc ) {
+               wfDeprecated( __METHOD__, '1.26' );
                $parts = explode( '/', $req['url'] );
                list(
                        $targetWiki, // 'local'
index abf32d7..9015a32 100644 (file)
@@ -976,6 +976,11 @@ class Article implements Page {
        public function showPatrolFooter() {
                global $wgUseNPPatrol, $wgUseRCPatrol, $wgUseFilePatrol;
 
+               // Allow hooks to decide whether to not output this at all
+               if ( !Hooks::run( 'ArticleShowPatrolFooter', [ $this ] ) ) {
+                       return false;
+               }
+
                $outputPage = $this->getContext()->getOutput();
                $user = $this->getContext()->getUser();
                $title = $this->getTitle();
index fc079e2..aa34dd2 100644 (file)
@@ -329,7 +329,7 @@ class PageArchive {
 
                // Check the previous deleted revision...
                $row = $dbr->selectRow( 'archive',
-                       [ 'ar_id', 'ar_timestamp' ],
+                       [ 'ar_rev_id', 'ar_timestamp' ],
                        [ 'ar_namespace' => $this->title->getNamespace(),
                                'ar_title' => $this->title->getDBkey(),
                                'ar_timestamp < ' .
index f34e894..7cc25bd 100644 (file)
@@ -1870,7 +1870,7 @@ class WikiPage implements Page, IDBAccessObject {
        /**
         * Get parser options suitable for rendering the primary article wikitext
         *
-        * @see ContentHandler::makeParserOptions
+        * @see ParserOptions::newCanonical
         *
         * @param IContextSource|User|string $context One of the following:
         *        - IContextSource: Use the User and the Language of the provided
@@ -1882,7 +1882,7 @@ class WikiPage implements Page, IDBAccessObject {
         * @return ParserOptions
         */
        public function makeParserOptions( $context ) {
-               $options = $this->getContentHandler()->makeParserOptions( $context );
+               $options = ParserOptions::newCanonical( $context );
 
                if ( $this->getTitle()->isConversionTable() ) {
                        // @todo ConversionTable should become a separate content model, so
index c366903..0553db9 100644 (file)
@@ -293,7 +293,7 @@ class BlockLevelPass {
                                # @todo consider using a stack for nestable elements like span, table and div
 
                                // P-wrapping and indent-pre are suppressed inside, not outside
-                               $blockElems = 'table|h1|h2|h3|h4|h5|h6|pre|p|ul|ol|dl|li';
+                               $blockElems = 'table|h1|h2|h3|h4|h5|h6|pre|p|ul|ol|dl';
                                // P-wrapping and indent-pre are suppressed outside, not inside
                                $antiBlockElems = 'td|th';
 
@@ -301,7 +301,7 @@ class BlockLevelPass {
                                        '/<('
                                                . "({$blockElems})|\\/({$antiBlockElems})|"
                                                // Always suppresses
-                                               . '\\/?(tr)'
+                                               . '\\/?(tr|dt|dd|li)'
                                                . ')\\b/iS',
                                        $t
                                );
index fd5ccb8..12d899b 100644 (file)
@@ -4216,6 +4216,13 @@ class Parser {
                        # Avoid insertion of weird stuff like <math> by expanding the relevant sections
                        $safeHeadline = $this->mStripState->unstripBoth( $safeHeadline );
 
+                       # Remove any <style> or <script> tags (T198618)
+                       $safeHeadline = preg_replace(
+                               '#<(style|script)(?: [^>]*[^>/])?>.*?</\1>#is',
+                               '',
+                               $safeHeadline
+                       );
+
                        # Strip out HTML (first regex removes any tag not allowed)
                        # Allowed tags are:
                        # * <sup> and <sub> (T10393)
index 3a7a1d6..c8e68b2 100644 (file)
@@ -41,6 +41,13 @@ use Wikimedia\ScopedCallback;
  */
 class ParserOptions {
 
+       /**
+        * Flag indicating that newCanonical() accepts an IContextSource or the string 'canonical', for
+        * back-compat checks from extensions.
+        * @since 1.32
+        */
+       const HAS_NEWCANONICAL_FROM_CONTEXT = 1;
+
        /**
         * Default values for all options that are relevant for caching.
         * @see self::getDefaults()
@@ -930,8 +937,7 @@ class ParserOptions {
 
        /**
         * @warning For interaction with the parser cache, use
-        *  WikiPage::makeParserOptions(), ContentHandler::makeParserOptions(), or
-        *  ParserOptions::newCanonical() instead.
+        *  WikiPage::makeParserOptions() or ParserOptions::newCanonical() instead.
         * @param User|null $user
         * @param Language|null $lang
         */
@@ -957,8 +963,7 @@ class ParserOptions {
        /**
         * Get a ParserOptions object for an anonymous user
         * @warning For interaction with the parser cache, use
-        *  WikiPage::makeParserOptions(), ContentHandler::makeParserOptions(), or
-        *  ParserOptions::newCanonical() instead.
+        *  WikiPage::makeParserOptions() or ParserOptions::newCanonical() instead.
         * @since 1.27
         * @return ParserOptions
         */
@@ -972,8 +977,7 @@ class ParserOptions {
         * Language will be taken from $wgLang.
         *
         * @warning For interaction with the parser cache, use
-        *  WikiPage::makeParserOptions(), ContentHandler::makeParserOptions(), or
-        *  ParserOptions::newCanonical() instead.
+        *  WikiPage::makeParserOptions() or ParserOptions::newCanonical() instead.
         * @param User $user
         * @return ParserOptions
         */
@@ -985,8 +989,7 @@ class ParserOptions {
         * Get a ParserOptions object from a given user and language
         *
         * @warning For interaction with the parser cache, use
-        *  WikiPage::makeParserOptions(), ContentHandler::makeParserOptions(), or
-        *  ParserOptions::newCanonical() instead.
+        *  WikiPage::makeParserOptions() or ParserOptions::newCanonical() instead.
         * @param User $user
         * @param Language $lang
         * @return ParserOptions
@@ -999,8 +1002,7 @@ class ParserOptions {
         * Get a ParserOptions object from a IContextSource object
         *
         * @warning For interaction with the parser cache, use
-        *  WikiPage::makeParserOptions(), ContentHandler::makeParserOptions(), or
-        *  ParserOptions::newCanonical() instead.
+        *  WikiPage::makeParserOptions() or ParserOptions::newCanonical() instead.
         * @param IContextSource $context
         * @return ParserOptions
         */
@@ -1015,12 +1017,29 @@ class ParserOptions {
         * different from the canonical values used for caching.
         *
         * @since 1.30
-        * @param User|null $user
-        * @param Language|StubObject|null $lang
+        * @since 1.32 Added string and IContextSource as options for the first parameter
+        * @param IContextSource|string|User|null $context
+        *  - If an IContextSource, the options are initialized based on the source's User and Language.
+        *  - If the string 'canonical', the options are initialized with an anonymous user and
+        *    $wgContLang.
+        *  - If a User or null, the options are initialized for that User (or $wgUser if null).
+        *    'userlang' is taken from the $userLang parameter, defaulting to $wgLang if that is null.
+        * @param Language|StubObject|null $userLang (see above)
         * @return ParserOptions
         */
-       public static function newCanonical( User $user = null, $lang = null ) {
-               $ret = new ParserOptions( $user, $lang );
+       public static function newCanonical( $context = null, $userLang = null ) {
+               if ( $context instanceof IContextSource ) {
+                       $ret = self::newFromContext( $context );
+               } elseif ( $context === 'canonical' ) {
+                       $ret = self::newFromAnon();
+               } elseif ( $context instanceof User || $context === null ) {
+                       $ret = new self( $context, $userLang );
+               } else {
+                       throw new InvalidArgumentException(
+                               '$context must be an IContextSource, the string "canonical", a User, or null'
+                       );
+               }
+
                foreach ( self::getCanonicalOverrides() as $k => $v ) {
                        $ret->setOption( $k, $v );
                }
index 71b71e0..4614402 100644 (file)
@@ -1155,9 +1155,10 @@ class Sanitizer {
                $fixtags = [
                        # French spaces, last one Guillemet-left
                        # only if there is something before the space
-                       '/(.) (?=[?:;!%»])/u' => "\\1$space",
+                       # and a non-word character after the punctuation.
+                       '/(\S) (?=[?:;!%»›](?!\w))/u' => "\\1$space",
                        # French spaces, Guillemet-right
-                       '/(«) /u' => "\\1$space",
+                       '/([«‹]) /u' => "\\1$space",
                ];
                return preg_replace( array_keys( $fixtags ), array_values( $fixtags ), $text );
        }
index 4b24081..f718e5f 100644 (file)
@@ -46,6 +46,7 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderFileModule {
                        'pluralRules' => $language->getPluralRules(),
                        'digitGroupingPattern' => $language->digitGroupingPattern(),
                        'fallbackLanguages' => $language->getFallbackLanguages(),
+                       'bcp47Map' => LanguageCode::getNonstandardLanguageCodeMapping(),
                ];
        }
 
index 7cf7bbe..ab2ba46 100644 (file)
@@ -28,6 +28,7 @@ class RemexCompatMunger implements TreeHandler {
                "button" => true,
                "cite" => true,
                "code" => true,
+               "del" => true,
                "dfn" => true,
                "em" => true,
                "font" => true,
@@ -35,6 +36,7 @@ class RemexCompatMunger implements TreeHandler {
                "iframe" => true,
                "img" => true,
                "input" => true,
+               "ins" => true,
                "kbd" => true,
                "label" => true,
                "legend" => true,
index e7825e4..39c0c1b 100644 (file)
@@ -46,14 +46,14 @@ class PasswordReset implements LoggerAwareInterface {
        /**
         * In-process cache for isAllowed lookups, by username.
         * Contains a StatusValue object
-        * @var HashBagOStuff
+        * @var MapCacheLRU
         */
        private $permissionCache;
 
        public function __construct( Config $config, AuthManager $authManager ) {
                $this->config = $config;
                $this->authManager = $authManager;
-               $this->permissionCache = new HashBagOStuff( [ 'maxKeys' => 1 ] );
+               $this->permissionCache = new MapCacheLRU( 1 );
                $this->logger = LoggerFactory::getInstance( 'authentication' );
        }
 
index 2c88563..e40ae29 100644 (file)
@@ -270,7 +270,7 @@ class SearchFormWidget {
                $showSections = [
                        'namespaceTables' => "<table>" . implode( '</table><table>', $namespaceTables ) . '</table>',
                ];
-               Hooks::run( 'SpecialSearchPowerBox', [ &$showSections, $term, $opts ] );
+               Hooks::run( 'SpecialSearchPowerBox', [ &$showSections, $term, &$opts ] );
 
                $hidden = '';
                foreach ( $opts as $key => $value ) {
index 22377c2..6d98920 100644 (file)
@@ -116,6 +116,10 @@ class FakeConverter {
        }
 
        function validateVariant( $variant = null ) {
+               if ( $variant === null ) {
+                       return null;
+               }
+               $variant = strtolower( $variant );
                return $variant === $this->mLang->getCode() ? $variant : null;
        }
 
index 8373ffc..9792095 100644 (file)
@@ -3497,6 +3497,7 @@ class Language {
         * @return string
         */
        function truncate( $string, $length, $ellipsis = '...', $adjustLength = true ) {
+               wfDeprecated( __METHOD__, '1.31' );
                return $this->truncateForDatabase( $string, $length, $ellipsis, $adjustLength );
        }
 
index f50c55f..54d7fbe 100644 (file)
@@ -30,22 +30,85 @@ class LanguageCode {
        /**
         * Mapping of deprecated language codes that were used in previous
         * versions of MediaWiki to up-to-date, current language codes.
+        * These may or may not be valid BCP 47 codes; they are included here
+        * because MediaWiki remapped these particular codes at some point.
         *
         * @var array Mapping from language code to language code
         *
         * @since 1.30
+        * @see https://meta.wikimedia.org/wiki/Special_language_codes
         */
        private static $deprecatedLanguageCodeMapping = [
                // Note that als is actually a valid ISO 639 code (Tosk Albanian), but it
                // was previously used in MediaWiki for Alsatian, which comes under gsw
-               'als' => 'gsw',
-               'bat-smg' => 'sgs',
-               'be-x-old' => 'be-tarask',
-               'fiu-vro' => 'vro',
-               'roa-rup' => 'rup',
-               'zh-classical' => 'lzh',
-               'zh-min-nan' => 'nan',
-               'zh-yue' => 'yue',
+               'als' => 'gsw', // T25215
+               'bat-smg' => 'sgs', // T27522
+               'be-x-old' => 'be-tarask', // T11823
+               'fiu-vro' => 'vro', // T31186
+               'roa-rup' => 'rup', // T17988
+               'zh-classical' => 'lzh', // T30443
+               'zh-min-nan' => 'nan', // T30442
+               'zh-yue' => 'yue', // T30441
+       ];
+
+       /**
+        * Mapping of non-standard language codes used in MediaWiki to
+        * standardized BCP 47 codes.  These are not deprecated (yet?):
+        * IANA may eventually recognize the subtag, in which case the `-x-`
+        * infix could be removed, or else we could rename the code in
+        * MediaWiki, in which case they'd move up to the above mapping
+        * of deprecated codes.
+        *
+        * As a rule, we preserve all distinctions made by MediaWiki
+        * internally.  For example, `de-formal` becomes `de-x-formal`
+        * instead of just `de` because MediaWiki distinguishes `de-formal`
+        * from `de` (for example, for interface translations).  Similarly,
+        * BCP 47 indicates that `kk-Cyrl` SHOULD not be used because it
+        * "typically does not add information", but in our case MediaWiki
+        * LanguageConverter distinguishes `kk` (render content in a mix of
+        * Kurdish variants) from `kk-Cyrl` (convert content to be uniformly
+        * Cyrillic).  As the BCP 47 requirement is a SHOULD not a MUST,
+        * `kk-Cyrl` is a valid code, although some validators may emit
+        * a warning note.
+        *
+        * @var array Mapping from nonstandard codes to BCP 47 codes
+        *
+        * @since 1.32
+        * @see https://meta.wikimedia.org/wiki/Special_language_codes
+        * @see https://phabricator.wikimedia.org/T125073
+        */
+       private static $nonstandardLanguageCodeMapping = [
+               // All codes returned by Language::fetchLanguageNames() validated
+               // against IANA registry at
+               //   https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
+               // with help of validator at
+               //   http://schneegans.de/lv/
+               'cbk-zam' => 'cbk', // T124657
+               'de-formal' => 'de-x-formal',
+               'eml' => 'egl', // T36217
+               'en-rtl' => 'en-x-rtl',
+               'es-formal' => 'es-x-formal',
+               'hu-formal' => 'hu-x-formal',
+               'map-bms' => 'jv-x-bms', // [[en:Banyumasan_dialect]] T125073
+               'mo' => 'ro-MD', // T125073
+               'nrm' => 'nrf', // [[en:Norman_language]] T25216
+               'nl-informal' => 'nl-x-informal',
+               'roa-tara' => 'nap-x-tara', // [[en:Tarantino_dialect]]
+               'simple' => 'en-simple',
+               'sr-ec' => 'sr-Cyrl', // T117845
+               'sr-el' => 'sr-Latn', // T117845
+
+               // Although these next codes aren't *wrong* per se, including
+               // both the script and the country code helps compatibility with
+               // other BCP 47 users. Note that MW also uses `zh-Hans`/`zh-Hant`,
+               // without a country code, and those should be left alone.
+               // (See $variantfallbacks in LanguageZh.php for Hans/Hant id.)
+               'zh-cn' => 'zh-Hans-CN',
+               'zh-sg' => 'zh-Hans-SG',
+               'zh-my' => 'zh-Hans-MY',
+               'zh-tw' => 'zh-Hant-TW',
+               'zh-hk' => 'zh-Hant-HK',
+               'zh-mo' => 'zh-Hant-MO',
        ];
 
        /**
@@ -64,6 +127,29 @@ class LanguageCode {
                return self::$deprecatedLanguageCodeMapping;
        }
 
+       /**
+        * Returns a mapping of non-standard language codes used by
+        * (current and previous version of) MediaWiki, mapped to standard
+        * BCP 47 names.
+        *
+        * This array is exported to JavaScript to ensure
+        * mediawiki.language.bcp47 stays in sync with LanguageCode::bcp47().
+        *
+        * @return string[]
+        *
+        * @since 1.32
+        */
+       public static function getNonstandardLanguageCodeMapping() {
+               $result = [];
+               foreach ( self::$deprecatedLanguageCodeMapping as $code => $ignore ) {
+                       $result[$code] = self::bcp47( $code );
+               }
+               foreach ( self::$nonstandardLanguageCodeMapping as $code => $ignore ) {
+                       $result[$code] = self::bcp47( $code );
+               }
+               return $result;
+       }
+
        /**
         * Replace deprecated language codes that were used in previous
         * versions of MediaWiki to up-to-date, current language codes.
@@ -87,11 +173,15 @@ class LanguageCode {
         * See mediawiki.language.bcp47 for the JavaScript implementation.
         *
         * @param string $code The language code.
-        * @return string The language code which complying with BCP 47 standards.
+        * @return string A language code complying with BCP 47 standards.
         *
         * @since 1.31
         */
        public static function bcp47( $code ) {
+               $code = self::replaceDeprecatedCodes( strtolower( $code ) );
+               if ( isset( self::$nonstandardLanguageCodeMapping[$code] ) ) {
+                       $code = self::$nonstandardLanguageCodeMapping[$code];
+               }
                $codeSegment = explode( '-', $code );
                $codeBCP = [];
                foreach ( $codeSegment as $segNo => $seg ) {
index dcc2cf3..494280c 100644 (file)
@@ -175,11 +175,13 @@ class LanguageConverter {
                        $req = $this->validateVariant( $wgDefaultLanguageVariant );
                }
 
+               $req = $this->validateVariant( $req );
+
                // This function, unlike the other get*Variant functions, is
                // not memoized (i.e. there return value is not cached) since
                // new information might appear during processing after this
                // is first called.
-               if ( $this->validateVariant( $req ) ) {
+               if ( $req ) {
                        return $req;
                }
                return $this->mMainLanguageCode;
@@ -215,9 +217,25 @@ class LanguageConverter {
         * @return mixed Returns the variant if it is valid, null otherwise
         */
        public function validateVariant( $variant = null ) {
-               if ( $variant !== null && in_array( $variant, $this->mVariants ) ) {
+               if ( $variant === null ) {
+                       return null;
+               }
+               // Our internal variants are always lower-case; the variant we
+               // are validating may have mixed case.
+               $variant = LanguageCode::replaceDeprecatedCodes( strtolower( $variant ) );
+               if ( in_array( $variant, $this->mVariants ) ) {
                        return $variant;
                }
+               // Browsers are supposed to use BCP 47 standard in the
+               // Accept-Language header, but not all of our internal
+               // mediawiki variant codes are BCP 47.  Map BCP 47 code
+               // to our internal code.
+               foreach ( $this->mVariants as $v ) {
+                       // Case-insensitive match (BCP 47 is mixed case)
+                       if ( strtolower( LanguageCode::bcp47( $v ) ) === $variant ) {
+                               return $v;
+                       }
+               }
                return null;
        }
 
@@ -293,7 +311,7 @@ class LanguageConverter {
                        return $this->mHeaderVariant;
                }
 
-               // see if some supported language variant is set in the
+               // See if some supported language variant is set in the
                // HTTP header.
                $languages = array_keys( $wgRequest->getAcceptLang() );
                if ( empty( $languages ) ) {
@@ -545,17 +563,18 @@ class LanguageConverter {
                $convTable = $convRule->getConvTable();
                $action = $convRule->getRulesAction();
                foreach ( $convTable as $variant => $pair ) {
-                       if ( !$this->validateVariant( $variant ) ) {
+                       $v = $this->validateVariant( $variant );
+                       if ( !$v ) {
                                continue;
                        }
 
                        if ( $action == 'add' ) {
                                // More efficient than array_merge(), about 2.5 times.
                                foreach ( $pair as $from => $to ) {
-                                       $this->mTables[$variant]->setPair( $from, $to );
+                                       $this->mTables[$v]->setPair( $from, $to );
                                }
                        } elseif ( $action == 'remove' ) {
-                               $this->mTables[$variant]->removeArray( $pair );
+                               $this->mTables[$v]->removeArray( $pair );
                        }
                }
        }
index 277bd02..67da06b 100644 (file)
@@ -82,7 +82,7 @@ class Names {
                'ba' => 'башҡортса', # Bashkir
                'ban' => 'Basa Bali', # Balinese
                'bar' => 'Boarisch', # Bavarian (Austro-Bavarian and South Tyrolean)
-               'bat-smg' => 'žemaitėška', # Samogitian (deprecated code, 'sgs' in ISO 693-3 since 2010-06-30 )
+               'bat-smg' => 'žemaitėška', # Samogitian (deprecated code, 'sgs' in ISO 639-3 since 2010-06-30 )
                'bbc' => 'Batak Toba', # Batak Toba (falls back to bbc-latn)
                'bbc-latn' => 'Batak Toba', # Batak Toba
                'bcc' => 'جهلسری بلوچی', # Southern Balochi
@@ -287,7 +287,7 @@ class Names {
                'lzh' => '文言', # Literary Chinese, T10217
                'lzz' => 'Lazuri', # Laz
                'mai' => 'मैथिली', # Maithili
-               'map-bms' => 'Basa Banyumasan', # Banyumasan
+               'map-bms' => 'Basa Banyumasan', # Banyumasan ('jv-x-bms')
                'mdf' => 'мокшень', # Moksha
                'mg' => 'Malagasy', # Malagasy
                'mh' => 'Ebon', # Marshallese
@@ -298,7 +298,7 @@ class Names {
                'ml' => 'മലയാളം', # Malayalam
                'mn' => 'монгол', # Halh Mongolian (Cyrillic) (ISO 639-3: khk)
                'mni' => 'মেইতেই লোন্', # Manipuri/Meitei
-               'mo' => 'молдовеняскэ', # Moldovan, deprecated
+               'mo' => 'молдовеняскэ', # Moldovan, deprecated (ISO 639-2: ro-MD)
                'mr' => 'मराठी', # Marathi
                'mrj' => 'кырык мары', # Hill Mari
                'ms' => 'Bahasa Melayu', # Malay
@@ -309,7 +309,7 @@ class Names {
                'myv' => 'эрзянь', # Erzya
                'mzn' => 'مازِرونی', # Mazanderani
                'na' => 'Dorerin Naoero', # Nauruan
-               'nah' => 'Nāhuatl', # Nahuatl (not in ISO 639-3)
+               'nah' => 'Nāhuatl', # Nahuatl (added to ISO 639-3 on 2006-10-31)
                'nan' => 'Bân-lâm-gú', # Min-nan, T10217
                'nap' => 'Napulitano', # Neapolitan, T45793
                'nb' => 'norsk bokmål', # Norwegian (Bokmal)
@@ -324,7 +324,7 @@ class Names {
                'nn' => 'norsk nynorsk', # Norwegian (Nynorsk)
                'no' => 'norsk', # Norwegian macro language (falls back to nb).
                'nov' => 'Novial', # Novial
-               'nrm' => 'Nouormand', # Norman
+               'nrm' => 'Nouormand', # Norman (invalid code; 'nrf' in ISO 639 since 2014)
                'nso' => 'Sesotho sa Leboa', # Northern Sotho
                'nv' => 'Diné bizaad', # Navajo
                'ny' => 'Chi-Chewa', # Chichewa
@@ -360,8 +360,8 @@ class Names {
                'rmy' => 'Romani', # Vlax Romany
                'rn' => 'Kirundi', # Rundi/Kirundi/Urundi
                'ro' => 'română', # Romanian
-               'roa-rup' => 'armãneashti', # Aromanian (deprecated code, 'rup' exists in ISO 693-3)
-               'roa-tara' => 'tarandíne', # Tarantino
+               'roa-rup' => 'armãneashti', # Aromanian (deprecated code, 'rup' exists in ISO 639-3)
+               'roa-tara' => 'tarandíne', # Tarantino ('nap-x-tara')
                'ru' => 'русский', # Russian
                'rue' => 'русиньскый', # Rusyn
                'rup' => 'armãneashti', # Aromanian
@@ -437,7 +437,7 @@ class Names {
                'tt-cyrl' => 'татарча', # Tatar (Cyrillic script) (default)
                'tt-latn' => 'tatarça', # Tatar (Latin script)
                'tum' => 'chiTumbuka', # Tumbuka
-               'tw' => 'Twi', # Twi, (FIXME!)
+               'tw' => 'Twi', # Twi
                'ty' => 'reo tahiti', # Tahitian
                'tyv' => 'тыва дыл', # Tyvan
                'tzm' => 'ⵜⴰⵎⴰⵣⵉⵖⵜ', # Tamazight
index 5a8845e..c6e0c38 100644 (file)
        "mainpage": "Tuisblad",
        "mainpage-description": "Tuisblad",
        "policy-url": "Project:Beleid",
-       "portal": "Gemeenskapsportaal",
+       "portal": "Gebruikersportaal",
        "portal-url": "Project:Gebruikersportaal",
        "privacy": "Privaatheidsbeleid",
        "privacypage": "Project:Privaatheidsbeleid",
index 651c3f4..8d12ba0 100644 (file)
        "speciallogtitlelabel": "الهدف (عنوان أو {{ns:user}}:اسم المستخدم للمستخدم):",
        "log": "سجلات",
        "logeventslist-submit": "أظهر",
+       "logeventslist-more-filters": "المزيد من المرشحات:",
        "all-logs-page": "كل السجلات العامة",
        "alllogstext": "عرض شامل لكل السجلات المتوفرة في {{SITENAME}}.\nباستطاعتك جعل القائمة أكثر تحديداً، وذلك باختيار نوع السجل واسم المستخدم (حساس لحالة الحروف)، أو الصفحة المتأثرة (أيضاً حساس لحالة الحروف).",
        "logempty": "لا توجد مدخلات مطابقة في السجل.",
index 047a7b4..3aa0599 100644 (file)
@@ -39,7 +39,7 @@
        "tog-shownumberswatching": "بين شحال كاين من مستعمل يتبع الباجه",
        "tog-oldsig": "خطّ‘ اليدّ تاعك الي كاين:",
        "tog-fancysig": "اعتبر التوقيع كي كتيبه ويكي (بلا وصيله توماتيك)",
-       "tog-uselivepreview": "استعمل الشوفة الخفيفة",
+       "tog-uselivepreview": "وري تشوف بلا ماتعاود تطلع الپاجة",
        "tog-forceeditsummary": "نبّهني كي تندخل كاش صفحة خاوية",
        "tog-watchlisthideown": "خبّي الـتبدالات تاوعي فل ليستة تاع الـتتباع",
        "tog-watchlisthidebots": "خبّي الـتبدالات تاع الـروبويات فل ليستة تاع التتباع تاعي",
        "nosuchusershort": "ما كاين حتا مستعملي ب` السميّة \"$1\".\nأكّد على الكتيبة تاعك.",
        "nouserspecified": "لازم لك تمدّ السميّة تاع المستعملي.",
        "login-userblocked": "هاد السميّة تاع المستعملي راهي مطرودة. تسجال` الدخول ماشي مسموح.",
-       "wrongpassword": "كلمت` السرّ المدخّلة ما راهيشي صحيحة.\nالله يسترك عاود سيّي.",
+       "wrongpassword": "او غالط الأسم ولا الكود لي دخلتهم\nتعيش عاود سيي.",
        "wrongpasswordempty": "كلمت` السرّ كانت خاوية.\nالله يعيّشك عاود سيّي.",
        "passwordtooshort": "كلمت` السرّ لازم يكون فيها على القل {{PLURAL:$1|1 حرف واحد|$1 حروف}}.",
        "passwordtoolong": "كلمت` السرّ ما تنجمش تكون طويلة على {{PLURAL:$1|1 حرف واحد|$1 حرف}}.",
-       "passwordtoopopular": "Ù\83Ù\84Ù\85ات Ø§Ù\84Ù\85رÙ\88ر Ø§Ù\84شاÙ\8aعة Ù\85ا Ù\8aÙ\85Ù\83Ù\86Ø´ Ø§Ø³ØªØ®Ø¯Ø§Ù\85Ù\87ا. Ù\85Ù\86 Ù\81ضÙ\84Ù\83  Ø®Ù\8aÙ\91ر Ù\83Ù\84Ù\85Ø© Ø³Ø± Ø³Ø¨Ù\8aسÙ\8aاÙ\84.",
+       "passwordtoopopular": "Ù\85اتÙ\82دش ØªØ¯Ù\8aر Ù\83Ù\88د Ù\85Ù\86 Ø§Ù\84شاÙ\8aعÙ\8aÙ\86 (Ù\86اس Ù\83Ù\84 Ù\8aدÙ\8aرÙ\88 Ù\83Ù\8aÙ\81Ù\87Ù\85). ØªØ¹Ù\8aØ´ Ø¯Ù\8aر Ù\83Ù\88د ØªØ§Ø¹Ù\83 Ù\88حدÙ\83 Ù\88Ù\85اشÙ\8a Ø³Ø§Ù\87Ù\84 Ø¨Ø§Ø´ Ù\8aÙ\81Ù\8aÙ\82Ù\88Ù\84Ù\83 Ø¨Ù\8aÙ\87.",
        "password-name-match": "كلمت` السرّ تاعك لازم لها تكون مبدّلة على سميّت` المستعملي تاعك.",
        "password-login-forbidden": "الستعملية تاع هاد السميّة تاع المستعملي و كلمت` السرّ راهم ممنوعين.",
        "mailmypassword": "استرجع كلمت` السرّ",
        "botpasswords-existing": "كلمات سر البوت اللي كاينة",
        "botpasswords-createnew": "صناعة كلمة سر جديدة للبوت",
        "botpasswords-editexisting": "تعديل كلمة سر موجودة للبوت",
+       "botpasswords-label-needsreset": "(لكود لازم يتبدل)",
        "botpasswords-label-appid": "آسم البوت:",
        "botpasswords-label-create": "أصنع",
        "botpasswords-label-update": "حدّث / ميزاجور",
        "botpasswords-updated-title": "كلمت` السرّ تاع البوت راهي ندارت لها الميزاجور",
        "botpasswords-deleted-title": "كلمت` السرّ تاع البوت تفاصات",
        "resetpass_forbidden": "كلمت` السرّ ما تنجمش تتبدّل",
-       "resetpass_forbidden-reason": "Ù\83Ù\84Ù\85ت` Ø§Ù\84سرÙ\91 Ù\85ا ØªÙ\86جÙ\85Ø´ ØªØªØ¨Ø¯Ù\91Ù\84",
+       "resetpass_forbidden-reason": "Ù\84Ù\83Ù\88د Ù\84Ù\8a Ù\85اتÙ\82دش ØªØ¨Ø¯Ù\84Ù\87Ù\85 :$1",
        "resetpass-no-info": "لازم لك تكون مسجّل الدخول باش تلحق ل هاد الپاجة.",
        "resetpass-submit-loggedin": "بدّل كلمت` السرّ",
        "resetpass-submit-cancel": "بطّل",
        "resetpass-wrong-oldpass": "كلمت` سرّ ماشي مقبولة.\nبالاك راك بدّلتها ولا طلبت كاش كلمت` سرّ مأقّتة.",
-       "resetpass-recycled": "اÙ\84Ù\84Ù\87 Ù\8aØ®Ù\84Ù\91Ù\8aÙ\83 Ø¨Ø¯Ù\91Ù\84 Ù\83Ù\84Ù\85ت` Ø§Ù\84سرÙ\91 ØªØ§Ø¹Ù\83 Ø¨ Ø­Ø§Ø¬Ø© Ù\85Ù\86 ØºÙ\8aر Ø§Ù\84حاجة Ø§Ù\84Ù\91Ù\8a Ø±Ø§Ù\83 Ø¯Ø§Ù\8aرÙ\87ا Ø¶Ø±Ù\83ا.",
+       "resetpass-recycled": "تعÙ\8aØ´ Ø¯Ù\8aر Ù\83Ù\88د Ù\88حداخر Ù\85اشÙ\8a Ø²Ù\8a Ù\84Ù\8a Ø±Ø§Ù\83 Ø¯Ø§Ù\8aرÙ\88 Ø¶Ù\83.",
        "resetpass-temp-emailed": "راك سجّلت الدخول تاعك ب كود مأقّت مبعوت ليك ب إيمال. باش تكمّل الدخول لل پاجات لخرين، لازم لك تختار كلمت` سرّ جديدة هنا:",
        "resetpass-temp-password": "كلمت` سرّ مأقّتة:",
        "resetpass-abort-generic": "التبدال تاعع كلمت` السرّ راه تحبّس علاجال وحد المزيودة (extension).",
index 8f248ce..2b65a07 100644 (file)
        "databaseerror-function": "Función: $1",
        "databaseerror-error": "Error: $1",
        "transaction-duration-limit-exceeded": "Para evitar crear un gran atrasu na replicación, esta transaición albortóse porque la duración de la escritura ($1) pasó la llende de $2 {{PLURAL:$2|segundu|segundos}}.\nSi tas cambiando munchos oxetos al mesmu tiempu, intenta meyor facer operaciones múltiples más pequeñes.",
-       "laggedslavemode": "'''Avisu:''' Esta páxina pue que nun tenga actualizaciones recientes.",
+       "laggedslavemode": "<strong>Avisu:</strong> Escurque esta páxina nun tenga anovamientos de recién.",
        "readonly": "Base de datos candada",
        "enterlockreason": "Introduz un motivu pal candáu, amestando una estimación de cuándo va tener llugar el descandáu",
        "readonlytext": "Nestos momentos la base de datos ta candada pa nueves entraes y otros cambios, seique por un mantenimientu de rutina, y n'acabando too volverá a la normalidá.\n\nL'alministrador del sistema que la candó conseñó esti motivu: $1",
        "filenotfound": "Nun pudo atopase'l ficheru «$1».",
        "unexpected": "Valor inesperáu: «$1»=«$2».",
        "formerror": "Fallu: Nun se pudo unviar el formulariu.",
-       "badarticleerror": "Esta aición nun pue facese nesta páxina.",
+       "badarticleerror": "Esta aición nun puede facese nesta páxina.",
        "cannotdelete": "Nun pudo desaniciase la páxina o'l ficheru «$1».\nSeique daquién yá lo desaniciara.",
-       "cannotdelete-title": "Nun se pue desaniciar la páxina «$1»",
+       "cannotdelete-title": "La páxina «$1» nun puede desaniciase",
        "delete-hook-aborted": "Desaniciu albortáu pol enganche.\nNun conseñó esplicación.",
        "no-null-revision": "Nun pudo crease una nueva revisión nula pa la páxina «$1»",
        "badtitle": "Títulu incorreutu",
        "blockednoreason": "nun se dio nengún motivu",
        "whitelistedittext": "Tienes d'$1 pa editar páxines.",
        "confirmedittext": "Tienes de confirmar la direición de corréu electrónicu enantes d'editar páxines.\nPor favor, configura y valida la direición de corréu nes [[Special:Preferences|preferencies d'usuariu]].",
-       "nosuchsectiontitle": "Nun pue atopase la seición",
+       "nosuchsectiontitle": "Nun s'alcontró la seición",
        "nosuchsectiontext": "Intentasti editar una seición que nun esiste.\nSeique se treslladara o desaniciara mientres víes la páxina.",
        "loginreqtitle": "Ye necesario aniciar sesión",
        "loginreqlink": "aniciar sesión",
        "moveddeleted-notice-recent": "Esta páxina desanicióse apocayá (dientro de les postreres 24 hores).\nEl rexistru de desanicios, proteiciones y tresllaos de la páxina amuésense de siguío como referencia.",
        "log-fulllog": "Ver el rexistru ensembre",
        "edit-hook-aborted": "Edición albortada pol enganche.\nNun dio esplicación.",
-       "edit-gone-missing": "Nun se pudo actualizar la páxina.\nPaez que se desanició.",
+       "edit-gone-missing": "Nun pudo actualizase la páxina.\nPaez que se desanició.",
        "edit-conflict": "Conflictu d'edición.",
        "edit-no-change": "S'inoró la to edición, porque nun se fizo nengún cambéu nel testu.",
        "postedit-confirmation-created": "Creóse la páxina.",
        "converter-manual-rule-error": "Detectóse un error na regla de conversión manual de llingua",
        "undo-success": "La edición se pue esfacer.\nPor favor comprueba la comparanza d'abaxo pa confirmar que ye eso lo que quies facer, y depués guarda los cambios p'acabar d'esfacer la edición.",
        "undo-failure": "Nun pudo esfacese la edición por aciu d'ediciones intermedies conflictives.",
-       "undo-norev": "Nun se pudo esfacer la edición porque nun esiste o se desanició.",
+       "undo-norev": "Nun pudo desfacese la edición porque nun esiste o se desanició.",
        "undo-nochange": "Paez que la edición yá ta desfecha.",
        "undo-summary": "Esfacer la revisión $1 de [[Special:Contributions/$2|$2]] ([[User talk:$2|alderique]])",
        "undo-summary-username-hidden": "Desfacer la revisión $1 d'un usuariu tapecíu",
        "mergehistory-merge": "Les siguientes revisiones de [[:$1]] puen fusionase'n [[:$2]]. Usa la columna de botones d'opción pa fusionar namai les revisiones creaes na y enantes de la hora especificada.\nHas fixate en que si uses los enllaces de navegación esborraránse les seleiciones feches nesta columna.",
        "mergehistory-go": "Amosar ediciones fusionables",
        "mergehistory-submit": "Fusionar revisiones",
-       "mergehistory-empty": "Nun se pue fusionar nenguna revisión.",
+       "mergehistory-empty": "Nun puede fusionase nenguna revisión.",
        "mergehistory-done": "$3 {{PLURAL:$3|revisión|revisiones}} de $1 {{PLURAL:$3|fusionóse|fusionáronse}} en [[:$2]].",
        "mergehistory-fail": "Nun pudo facese la fusión d'historiales, por favor comprueba los parámetros de páxina y hora.",
        "mergehistory-fail-bad-timestamp": "La marca de tiempu ye inválida.",
        "badfilename": "El nome del ficheru cambióse a «$1».",
        "filetype-mime-mismatch": "La estensión de ficheru \".$1\" nun casa cola triba MIME detectada del ficheru ($2).",
        "filetype-badmime": "Los ficheros de la triba MIME \"$1\" nun tienen permitida la xubida.",
-       "filetype-bad-ie-mime": "Nun se pue xubir esti ficheru porque Internet Explorer detectalu como \"$1\", que nun ta permitíu y pue ser una triba de ficheru peligrosa.",
+       "filetype-bad-ie-mime": "Nun puede xubise esti ficheru porque Internet Explorer detectaríalu como «$1», que ye una triba de ficheru que nun ta permitida y ye posiblemente peligrosa.",
        "filetype-unwanted-type": "'''\".$1\"''' ye una triba de ficheru non recomendáu.\n{{PLURAL:$3|La triba de ficheru preferida ye|Les tribes de ficheru preferíes son}} $2.",
        "filetype-banned-type": "'''\".$1\"''' {{PLURAL:$4|nun ye una triba de ficheru permitida|nun son tribes de ficheru permitíes}}.\n{{PLURAL:$3|La triba de ficheru permitida ye|Les tribes de ficheru permitíes son}} $2.",
        "filetype-missing": "El ficheru nun tien estensión (como \".jpg\").",
        "filedelete-reason-dropdown": "*Motivos habituales pal desaniciu\n** Frayamientu de Copyright\n** Ficheru duplicáu",
        "filedelete-edit-reasonlist": "Editar los motivos del desaniciu",
        "filedelete-maintenance": "El desaniciu y restauración de ficheros ta desactivao temporalmente mientres ta en mantenimientu.",
-       "filedelete-maintenance-title": "Nun se pue desaniciar el ficheru",
+       "filedelete-maintenance-title": "Nun puede desaniciase'l ficheru",
        "mimesearch": "Busca MIME",
        "mimesearch-summary": "Esta páxina permite filtriar los ficheros pol so tipu MIME.\nEntrada: contenttype/subtype o contenttype/*, p.ex. <code>image/jpeg</code>.",
        "mimetype": "Triba MIME:",
        "prot_1movedto2": "[[$1]] treslladáu a [[$2]]",
        "protect-badnamespace-title": "Espaciu de nomes non protexible",
        "protect-badnamespace-text": "Les páxines d'esti espaciu de nomes nun se puen protexer.",
-       "protect-norestrictiontypes-text": "Esta páxina nun se pue protexer porque nun ta disponible dengún tipu de torga.",
+       "protect-norestrictiontypes-text": "Esta páxina nun puede protexese porque nun ta disponible nengún tipu de torga.",
        "protect-norestrictiontypes-title": "Páxina non protexible",
        "protect-legend": "Confirmar proteición",
        "protectcomment": "Motivu:",
index 451429d..9f6cbda 100644 (file)
        "uploaded-setting-handler-svg": "SVG, які выстаўляе атрыбут «handler» з дапамогай аддаленага адрасу/зьвестак/скрыпту, блякуецца. У загружаным SVG-файле знойдзена <code>$1=\"$2\"</code>.",
        "uploaded-remote-url-svg": "SVG, які выстаўляе любы атрыбут з дапамогай аддаленага URL-адрасу, блякуецца. У загружаным SVG-файле знойдзена <code>$1=\"$2\"</code>.",
        "uploaded-image-filter-svg": "У загружаным SVG-файле знойдзены фільтар выяваў з URL-адрасам: <code>&lt;$1 $2=\"$3\"&gt;</code>.",
-       "uploadscriptednamespace": "Гэты SVG-файл утрымлівае няслушную прастору назваў «<nowiki>$1</nowiki>»",
+       "uploadscriptednamespace": "Гэты SVG-файл утрымлівае недапушчальную прастору назваў «<nowiki>$1</nowiki>».",
        "uploadinvalidxml": "Не атрымалася прааналізаваць XML у загружаным файле.",
        "uploadvirus": "Файл утрымлівае вірус! Падрабязнасьці: $1",
-       "uploadjava": "Файл зьяўляецца ZIP-архівам, які зьмяшчае .class-файл Java.\nЗагрузка Java-файлаў забароненая ў мэтах бясьпекі.",
+       "uploadjava": "Файл зьяўляецца ZIP-архівам, які зьмяшчае .class-файл Java.\nЗагрузка Java-файлаў забароненая, бо яны могуць быць прычынай абыходу абмежаваньняў бясьпекі.",
        "upload-source": "Крынічны файл",
        "sourcefilename": "Пачатковая назва файла:",
        "sourceurl": "URL-адрас крыніцы:",
        "log": "Журналы падзеяў",
        "logeventslist-submit": "Паказаць",
        "logeventslist-more-filters": "Болей фільтраў:",
+       "logeventslist-patrol-log": "Журнал патруляваньня",
+       "logeventslist-tag-log": "Журнал метак",
        "all-logs-page": "Усе публічныя журналы падзеяў",
        "alllogstext": "Сумесны паказ усіх журналаў падзеяў {{GRAMMAR:родны|{{SITENAME}}}}.\nВы можаце адфільтраваць вынікі па тыпе журналу, удзельніку (улічваецца рэгістар) ці старонцы (таксама ўлічваецца рэгістар).",
        "logempty": "Падобных запісаў у журнале няма.",
        "uctop": "(апошняя)",
        "month": "Ад месяца (і раней):",
        "year": "Ад году (і раней):",
+       "date": "З даты (і раней):",
        "sp-contributions-newbies": "Паказаць унёсак толькі з новых рахункаў",
        "sp-contributions-newbies-sub": "Унёсак пачынаючых",
        "sp-contributions-newbies-title": "Унёсак удзельнікаў з новых рахункаў",
index a67ad5c..480f28c 100644 (file)
        "dellogpage": "Дневник на изтриванията",
        "dellogpagetext": "Списък на последните изтривания.",
        "deletionlog": "дневник на изтриванията",
+       "logentry-create-create": "$1 {{GENDER:$2|създаде}} страница $3",
        "reverted": "Възвръщане към предишна версия",
        "deletecomment": "Причина:",
        "deleteotherreason": "Друга/допълнителна причина:",
index a934abf..5f5e085 100644 (file)
        "rcfilters-filter-humans-label": "মানুষ (বট নয়)",
        "rcfilters-filter-humans-description": "মানুষের করা সম্পাদনা।",
        "rcfilters-filtergroup-reviewstatus": "পর্যালোচনার অবস্থা",
+       "rcfilters-filter-reviewstatus-unpatrolled-description": "সম্পাদনা হাতে করে বা স্বয়ংক্রিয়ভাবে পরীক্ষিত হিসেবে চিহ্নিত করা হয় নি।",
        "rcfilters-filter-reviewstatus-unpatrolled-label": "অপরীক্ষিত",
+       "rcfilters-filter-reviewstatus-manual-description": "সম্পাদনা হাতে করে পরীক্ষিত হিসেবে চিহ্নিত করা হয়েছে।",
+       "rcfilters-filter-reviewstatus-manual-label": "হাতে করে পরীক্ষিত",
+       "rcfilters-filter-reviewstatus-auto-description": "অভিজ্ঞ ব্যবহারকারীদের দ্বারা করা সম্পাদনা যাদের কাজ স্বয়ংক্রিয়ভাবে পরীক্ষিত হিসেবে চিহ্নিত করা হয়েছে।",
        "rcfilters-filter-reviewstatus-auto-label": "স্বয়ংপরীক্ষিত",
        "rcfilters-filtergroup-significance": "তাৎপর্য",
        "rcfilters-filter-minor-label": "অনুল্লেখ্য সম্পাদনা",
        "speciallogtitlelabel": "লক্ষ্য (ব্যবহারকারীর জন্য শিরোনাম বা {{ns:user}}:ব্যবহারকারী নাম):",
        "log": "লগগুলি",
        "logeventslist-submit": "দেখাও",
+       "logeventslist-more-filters": "আরো ছাঁকনি:",
+       "logeventslist-patrol-log": "পরীক্ষণ লগ",
+       "logeventslist-tag-log": "ট্যাগ লগ",
        "all-logs-page": "সব প্রকাশ্য লগ",
        "alllogstext": "{{SITENAME}}-এর সবগুলো লগের সম্মিলিত প্রদর্শন।\nআপনি লগের ধরন, ব্যবহারকারীর নাম, বা পাতার নাম নির্বাচন করে প্রদর্শনটির আকার কমিয়ে আনতে পারেন।",
        "logempty": "মিলে যায় এমন কিছু লগে পাওয়া যায়নি।",
        "nocontribs": "এই শর্তগুলির সাথে মিলে যায়, এমন কোন পরিবর্তন খুঁজে পাওয়া যায়নি।",
        "uctop": "(বর্তমান)",
        "month": "এই মাস (বা তার আগে) থেকে:",
-       "year": "এই বছর (এবং তার আগে) থেকে:",
+       "year": "এই বছর (বা তার আগে) থেকে:",
+       "date": "এই তারিখ (বা তার আগে) থেকে:",
        "sp-contributions-newbies": "শুধু নতুন অ্যাকাউন্টের অবদানসমূহ দেখাও",
        "sp-contributions-newbies-sub": "নতুন অ্যাকাউন্টের জন্য",
        "sp-contributions-newbies-title": "নতুন অ্যাকাউন্টের ব্যবহারকারী অবদান",
        "autoblockid": "স্বয়ংক্রিয় বাধা #$1",
        "block": "ব্যবহারকারীকে বাধা দাও",
        "unblock": "ব্যবহারকারীর উপর থেকে বাধা অপসারণ",
-       "blockip": "{{GENDER:$1|বà§\8dযবহারà¦\95ারà§\80à¦\95à§\87}} à¦¬à¦¾à¦§à¦¾ à¦¦à¦¾à¦\93",
+       "blockip": "{{GENDER:$1|বà§\8dযবহারà¦\95ারà§\80à¦\95à§\87}} à¦¬à¦¾à¦§à¦¾ à¦¦à¦¿à¦¨",
        "blockiptext": "কোন নির্দিষ্ট আইপি ঠিকানা বা ব্যবহারকারীর লেখার অধিকারে বাধা দিতে নিচের ফর্মটি ব্যবহার করুন।\nএটি কেবলমাত্র ধ্বংসপ্রবণতা প্রতিরোধে ও [[{{MediaWiki:Policy-url}}|নীতিমালা]] মেনে সম্পাদন করা উচিত।\nনিচে একটি নির্দিষ্ট কারণ দিন (উদাহরণস্বরূপ, যেসব পাতার ধ্বংসসাধন করা হয়েছে, সেগুলি উল্লেখ করতে পারেন)।\nআপনি একটি নির্দিষ্ট সীমার অন্তর্গত একাধিক আইপি ঠিকানাকে বাধা দিতে পারেন; এজন্য [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] সিনট্যাক্স বা পদবিন্যাসবিধি ব্যবহার করুন; এরকম বৃহত্তম অনুমোদিত সীমা হচ্ছে IPv4-এর ক্ষেত্রে /$1 এবং IPv6-এর ক্ষেত্রে /$2।",
        "ipaddressorusername": "আইপি ঠিকানা বা ব্যবহারকারীর নাম:",
        "ipbexpiry": "যখন মেয়াদোত্তীর্ণ হবে:",
index c3f575a..0f18d91 100644 (file)
        "rcfilters-watchlist-showupdated": "Izmjene na stranicama koje niste posjetili otkako su izvršene istaknute su <strong>podebljanim slovima</strong>, s ispunjenim kružićima.",
        "rcfilters-preference-label": "Sakrij poboljšanu verziju nedavnih izmjena",
        "rcfilters-preference-help": "Poništava novi izgled interfejsa iz 2017. i sve alate dodane od tada.",
+       "rcfilters-watchlist-preference-label": "Sakrij poboljšanu verziju spiska praćenja",
+       "rcfilters-watchlist-preference-help": "Poništava novi izgled interfejsa iz 2017. i sve alate dodane od tada.",
        "rcnotefrom": "Ispod {{PLURAL:$5|je izmjena|su izmjene}} od <strong>$3, $4</strong> (do <strong>$1</strong> prikazano).",
        "rclistfromreset": "Resetiraj izbor datuma",
        "rclistfrom": "Prikaži nove izmjene počev od $3 u $2",
index ee7435f..3579d72 100644 (file)
        "uploadstash-bad-path": "El camí no existeix.",
        "uploadstash-bad-path-invalid": "El camí no és vàlid.",
        "uploadstash-bad-path-unknown-type": "El tipus «$1» és desconegut.",
+       "uploadstash-bad-path-unrecognized-thumb-name": "Nom de miniatura no reconegut.",
        "uploadstash-no-extension": "L’extensió és nul·la.",
        "uploadstash-zero-length": "El fitxer té mida zero.",
        "invalid-chunk-offset": "El desplaçament del fragment no és vàlid",
        "speciallogtitlelabel": "Objectiu (títol o «{{ns:user}}:nom d’usuari» per a un usuari):",
        "log": "Registres",
        "logeventslist-submit": "Mostra",
+       "logeventslist-more-filters": "Més filtres:",
        "all-logs-page": "Tots els registres públics",
        "alllogstext": "Presentació combinada de tots els registres disponibles de {{SITENAME}}.\nPodeu reduir l'extensió seleccionant el tipus de registre, el nom d'usuari realitzador (distingeix entre majúscules i minúscules), o la pàgina objectiu (també en distingeix).",
        "logempty": "No hi ha cap coincidència en el registre.",
        "thumbnail_dest_directory": "No s'ha pogut crear el directori de destinació",
        "thumbnail_image-type": "Tipus d'imatge no contemplat",
        "thumbnail_gd-library": "Configuració de la biblioteca GD incompleta: falta la funció $1",
+       "thumbnail_image-size-zero": "La mida del fitxer d'imatge sembla ser zero.",
        "thumbnail_image-missing": "Sembla que falta el fitxer: $1",
        "thumbnail_image-failure-limit": "Hi ha hagut massa intents fallits recents ($1 o més) per dibuixar aquesta miniatura.\nTorneu-ho a provar més endavant.",
        "import": "Importació de pàgines",
        "compare-revision-not-exists": "La revisió que heu especificat no existeix.",
        "diff-form": "Diferències",
        "diff-form-oldid": "ID de la revisió antiga (opcional)",
+       "diff-form-revid": "ID de revisió de la diferència",
        "diff-form-submit": "Mostra les diferències",
        "permanentlink": "Enllaç permanent",
        "permanentlink-revid": "ID de la revisó",
index 7b931c4..d8e9640 100644 (file)
        "rcfilters-activefilters": "Aktivní filtry",
        "rcfilters-activefilters-hide": "Skrýt",
        "rcfilters-activefilters-show": "Zobrazit",
+       "rcfilters-activefilters-hide-tooltip": "Skrýt plochu aktivních filtrů",
+       "rcfilters-activefilters-show-tooltip": "Zobrazit plochu aktivních filtrů",
        "rcfilters-advancedfilters": "Pokročilé filtry",
        "rcfilters-limit-title": "Zobrazené výsledky",
        "rcfilters-limit-and-date-label": "{{PLURAL:$1|Jedna změna|$1 změny|$1 změn}}, $2",
        "speciallogtitlelabel": "Cíl (název nebo {{ns:user}}:Jméno pro uživatele):",
        "log": "Protokolovací záznamy",
        "logeventslist-submit": "Zobrazit",
+       "logeventslist-more-filters": "Další filtry:",
+       "logeventslist-patrol-log": "Kniha prověřených editací",
+       "logeventslist-tag-log": "Kniha značek",
        "all-logs-page": "Všechny veřejné záznamy",
        "alllogstext": "Společné zobrazení všech dostupných protokolovacích záznamů pro {{grammar:4sg|{{SITENAME}}}}.\nZobrazení můžete zúžit výběrem typu záznamu, uživatelského jména (záleží na velikosti písmen) nebo dotčené stránky (také záleží na velikosti písmen).",
        "logempty": "Protokol neobsahuje žádný odpovídající záznam.",
        "uctop": "(aktuální)",
        "month": "Do měsíce:",
        "year": "Do roku:",
+       "date": "Od data (a dříve):",
        "sp-contributions-newbies": "Zobrazit příspěvky nově založených účtů",
        "sp-contributions-newbies-sub": "Noví uživatelé",
        "sp-contributions-newbies-title": "Příspěvky nových uživatelů",
index bcb2ab9..6b223f8 100644 (file)
        "edit-gone-missing": "Δεν ήταν εφικτό να ενημερωθεί η σελίδα.\nΦαίνεται πως έχει διαγραφεί.",
        "edit-conflict": "Σύγκρουση επεξεργασιών.",
        "edit-no-change": "Η επεξεργασία σας αγνοήθηκε, επειδή δεν έγινε καμία αλλαγή στο κείμενο.",
-       "postedit-confirmation-created": "Î\97 Ï\83ελίδα Î­Ï\87ει Î´Î·Î¼Î¹Î¿Ï\85Ï\81γηθεί.",
+       "postedit-confirmation-created": "Î\97 Ï\83ελίδα Î´Î·Î¼Î¹Î¿Ï\85Ï\81γήθηκε.",
        "postedit-confirmation-restored": "Η σελίδα έχει αποκατασταθεί.",
        "postedit-confirmation-saved": "H επεξεργασία σας αποθηκεύτηκε.",
        "postedit-confirmation-published": "Η επεξεργασία σας δημοσιεύτηκε.",
index 74a7ce4..ff54ea7 100644 (file)
        "speciallogtitlelabel": "Objetivo (título o {{ns:user}}:nombre de usuario):",
        "log": "Registros",
        "logeventslist-submit": "Mostrar",
+       "logeventslist-more-filters": "Más filtros:",
+       "logeventslist-patrol-log": "Registro de revisiones",
+       "logeventslist-tag-log": "Registro de etiquetas",
        "all-logs-page": "Todos los registros públicos",
        "alllogstext": "Vista combinada de todos los registros de {{SITENAME}}.\nPuedes filtrar la vista seleccionando un tipo de registro, el nombre del usuario o la página afectada. Se distinguen mayúsculas de minúsculas.",
        "logempty": "No hay elementos en el registro con esas condiciones.",
index 88d39dd..c547056 100644 (file)
        "speciallogtitlelabel": "Helburua (izenburua edo {{ns:user}}: lankidea):",
        "log": "Erregistroak",
        "logeventslist-submit": "Erakutsi",
+       "logeventslist-more-filters": "Iragazki gehiago:",
        "all-logs-page": "Erregistro publiko guztiak",
        "alllogstext": "{{SITENAME}} orrialdearen erregistro guztien erakusketa konbinatua.\nErregistro mota, erabiltzailearen izena edota orrialdearen izena iragaziz bistaratu daiteke. Letra larriak eta xeheak bereizten dira.",
        "logempty": "Ez dago emaitzarik erregistroan.",
        "uctop": "(azken aldaketa)",
        "month": "Hilabetea (eta lehenagokoak):",
        "year": "Urtea (eta lehenagokoak):",
+       "date": "Data honetatik (eta lehenagokoak):",
        "sp-contributions-newbies": "Soilik kontu berrien ekarpenak erakutsi",
        "sp-contributions-newbies-sub": "Hasiberrientzako",
        "sp-contributions-newbies-title": "Lankideen ekarpenak lankide berrietn",
index f36aa8c..d45e2e7 100644 (file)
@@ -57,7 +57,8 @@
                        "4shadoww",
                        "Pahkiqaz",
                        "Rueter",
-                       "Kyykaarme"
+                       "Kyykaarme",
+                       "Surjection"
                ]
        },
        "tog-underline": "Linkkien alleviivaus:",
@@ -94,7 +95,7 @@
        "tog-watchlisthideminor": "Piilota pienet muokkaukset tarkkailulistalta",
        "tog-watchlisthideliu": "Piilota kirjautuneiden käyttäjien muokkaukset tarkkailulistalta",
        "tog-watchlistreloadautomatically": "Päivitä tarkkailulista automaattisesti aina kun jotakin suodatinta on muutettu (vaatii JavaScriptiä)",
-       "tog-watchlistunwatchlinks": "Lisää suorat tarkkailemattomat/tarkkaillut linkit tarkkailulistan merkintöihin (JavaScriptiä edellytetään nappuloiden toiminnallisuuteen)",
+       "tog-watchlistunwatchlinks": "Lisää suorat tarkkailemattomat/tarkkaillut linkit ({{int:Watchlist-unwatch}}/{{int:Watchlist-unwatch-undo}}) tarkkailulistan muutettujen sivujen merkintöihin (JavaScriptiä edellytetään nappuloiden toiminnallisuuteen)",
        "tog-watchlisthideanons": "Piilota rekisteröitymättömien käyttäjien muokkaukset tarkkailulistalta",
        "tog-watchlisthidepatrolled": "Piilota muutostentarkastajien hyväksymät muokkaukset tarkkailulistalta",
        "tog-watchlisthidecategorization": "Piilota sivujen luokitusmuutokset",
        "versionrequiredtext": "MediaWikistä tarvitaan vähintään versio $1 tämän sivun käyttämiseen. Katso [[Special:Version|versio]].",
        "ok": "OK",
        "pagetitle": "$1 – {{SITENAME}}",
-       "retrievedfrom": "Noudettu kohteesta $1",
+       "retrievedfrom": "Noudettu kohteesta \"$1\"",
        "youhavenewmessages": "Sinulle on $1 ($2).",
-       "youhavenewmessagesfromusers": "Sinulle on $1 {{PLURAL:$3|toiselta käyttäjältä|$3 käyttäjältä}} ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Sinulle on}} $1 {{PLURAL:$3|toiselta käyttäjältä|$3 käyttäjältä}} ($2).",
        "youhavenewmessagesmanyusers": "Sinulle on $1 uusia viestejä useilta käyttäjiltä ($2).",
        "newmessageslinkplural": "{{PLURAL:$1|uusi viesti|999=uusia viestejä}}",
        "newmessagesdifflinkplural": "{{PLURAL:$1|viimeinen muutos|999=viimeiset muutokset}}",
        "editold": "muokkaa",
        "viewsourceold": "näytä wikiteksti",
        "editlink": "muokkaa",
-       "viewsourcelink": "näytä lähdekoodi",
+       "viewsourcelink": "näytä wikiteksti",
        "editsectionhint": "Muokkaa osiota $1",
        "toc": "Sisällysluettelo",
        "showtoc": "näytä",
        "databaseerror-query": "Kysely: $1",
        "databaseerror-function": "Toiminto (funktio): $1",
        "databaseerror-error": "Virhe: $1",
+       "transaction-duration-limit-exceeded": "Korkean toistoviiveen välttämiseksi tämä transaktio keskeytettiin, koska kirjoituksen pituus ($1) ylitti $2 sekunnin rajan.\nJos muutat monia kohteita samaan aikaan, voit yrittää operaation halkaisemista pienempiin osiin.",
        "laggedslavemode": "'''Varoitus:''' Sivu ei välttämättä sisällä viimeisimpiä muutoksia.",
        "readonly": "Tietokanta on lukittu",
        "enterlockreason": "Anna lukituksen syy sekä sen arvioitu poistamisaika",
        "cascadeprotected": "Tämä sivu on suojattu muokkauksilta, koska se on sisällytetty {{PLURAL:$1|seuraavaan tarttuvasti suojattuun sivuun|seuraaviin tarttuvasti suojattuihin sivuihin}}:\n$2",
        "namespaceprotected": "Sinulla ei ole oikeutta muokata sivuja, jotka ovat nimiavaruudessa <strong>$1</strong>.",
        "customcssprotected": "Sinulla ei ole oikeutta muuttaa tätä CSS-sivua, koska se sisältää toisen käyttäjän henkilökohtaisia asetuksia.",
+       "customjsonprotected": "Sinulla ei ole oikeutta muuttaa tätä JSON-sivua, koska se sisältää toisen käyttäjän henkilökohtaisia asetuksia.",
        "customjsprotected": "Sinulla ei ole oikeutta muuttaa tätä JavaScript-sivua, koska se sisältää toisen käyttäjän henkilökohtaisia asetuksia.",
        "mycustomcssprotected": "Sinulla ei ole oikeutta muokata tätä CSS-sivua.",
        "mycustomjsonprotected": "Sinulla ei ole oikeutta muokata tätä JSON-sivua.",
        "botpasswords-label-delete": "Poista",
        "botpasswords-label-resetpassword": "Hanki uusi salasana",
        "botpasswords-label-grants": "Valittavissa olevat toimintaoikeudet:",
+       "botpasswords-help-grants": "Toimintaoikeudet sallivat pääsyn oikeuksiin, joita käyttäjätililläsi jo on. Toimintaoikeuden käyttöönotto täällä ei lisää käyttäjätilillesi oikeuksia, joita sillä ei jo ole. Lisätietoja löytyy [[Special:ListGrants|toimintaoikeuksien luettelosta]].",
        "botpasswords-label-grants-column": "Myönnetään",
        "botpasswords-bad-appid": "Botin nimi \"$1\" ei kelpaa.",
        "botpasswords-insert-failed": "Botin nimen \"$1\" lisääminen epäonnsitui. Onko se jo lisätty?",
        "resetpass-temp-password": "Väliaikainen salasana:",
        "resetpass-abort-generic": "Laajennus keskeytti salasanan vaihdon.",
        "resetpass-expired": "Salasanasi on vanhentunut. Valitse uusi salasana, jotta pääset kirjautumaan sisään.",
-       "resetpass-expired-soft": "Salasanasi on vanhentunut ja se pitää uudistaa. Valitse uusi salasana nyt tai paina \"{{int:authprovider-resetpass-skip-label}}\", niin voit uudistaa salasanan myöhemmin.",
+       "resetpass-expired-soft": "Salasanasi on vanhentunut ja se pitää vaihtaa. Valitse uusi salasana nyt tai paina \"{{int:authprovider-resetpass-skip-label}}\", niin voit vaihtaa salasanan myöhemmin.",
        "resetpass-validity-soft": "Salasanasi ei ole kelvollinen: $1\n\nValitse nyt uusi salasana tai paina \"{{int:authprovider-resetpass-skip-label}}\", niin voit vaihtaa sen myöhemmin.",
        "passwordreset": "Salasanan uusiminen",
        "passwordreset-text-one": "Täytä tämä lomake uudistaaksesi salasanasi.",
        "passwordreset-emailelement": "Käyttäjätunnus: \n$1\n\nVäliaikainen salasana: \n$2",
        "passwordreset-emailsentemail": "Jos tämä on sinun tunnuksellesi rekisteröity sähköpostiosoite, salasanan uudistamisesta kertova viesti lähetetään.",
        "passwordreset-emailsentusername": "Jos on olemassa vastaava rekisteröity sähköpostiosoite, salasanan uudistamisesta kertova viesti lähetetään.",
+       "passwordreset-nocaller": "Kutsuja on määriteltävä",
        "passwordreset-nosuchcaller": "Kutsuvaa funktiota ei ole olemassa: $1",
        "passwordreset-ignored": "Salasanan palauttamista ei käsitelty. Ehkä tarjoajaa ei ollut määritetty?",
        "passwordreset-invalidemail": "Virheellinen sähköpostiosoite",
        "accmailtext": "Satunnaisesti generoitu salasana käyttäjälle [[User talk:$1|$1]] on lähetetty osoitteeseen $2. Sen voi vaihtaa kirjautumisen jälkeen [[Special:ChangePassword|asetussivulla]].",
        "newarticle": "(Uusi)",
        "newarticletext": "Linkki toi sivulle, jota ei vielä ole.\nVoit luoda sivun kirjoittamalla alla olevaan kenttään (katso [$1 ohjesivulta] lisätietoja).\nJos et halua luoda sivua, käytä selaimen paluutoimintoa.",
-       "anontalkpagetext": "----''Tämä on nimettömän käyttäjän keskustelusivu. Hän ei ole joko luonut itselleen käyttäjätunnusta tai ei käytä sitä. Siksi hänet tunnistetaan nyt numeerisella IP-osoitteella. Kyseinen IP-osoite voi olla useamman henkilön käytössä. Jos olet nimetön käyttäjä, ja sinusta tuntuu, että aiheettomia kommentteja on ohjattu sinulle, [[Special:CreateAccount|luo itsellesi käyttäjätunnus]] tai [[Special:UserLogin|kirjaudu sisään]] välttääksesi jatkossa sekaannukset muiden nimettömien käyttäjien kanssa.''",
+       "anontalkpagetext": "----''Tämä on nimettömän käyttäjän keskustelusivu. Hän ei ole joko luonut itselleen käyttäjätunnusta tai ei käytä sitä, jonka vuoksi hänet tunnistetaan nyt numeerisella IP-osoitteella. Kyseinen IP-osoite voi olla useamman henkilön käytössä. Jos olet nimetön käyttäjä ja sinusta tuntuu, että aiheettomia kommentteja on ohjattu sinulle, [[Special:CreateAccount|luo itsellesi käyttäjätunnus]] tai [[Special:UserLogin|kirjaudu sisään]] välttääksesi jatkossa sekaannukset muiden nimettömien käyttäjien kanssa.''",
        "noarticletext": "Tällä hetkellä tällä sivulla ei ole tekstiä.\nVoit [[Special:Search/{{PAGENAME}}|etsiä sivun nimellä]] muilta sivuilta,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} hakea aiheeseen liittyviä lokeja]\ntai [{{fullurl:{{FULLPAGENAME}}|action=edit}} luoda tämän sivun]</span>.",
        "noarticletext-nopermission": "Tällä hetkellä tällä sivulla ei ole tekstiä.\nVoit [[Special:Search/{{PAGENAME}}|etsiä sivun nimellä]] muilta sivuilta tai <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} hakea aiheeseen liittyviä lokeja]</span>, mutta sinulla ei ole oikeutta luoda tätä sivua.",
        "missing-revision": "Sivusta \"{{FULLPAGENAME}}\" ei ole olemassa versiota $1.\n\nYleensä tämä johtuu vanhentuneesta historialinkistä sivulle, joka on poistettu.\nTarkempia tietoja löytyy [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} poistolokista].",
        "userjsonyoucanpreview": "<strong>Vihje:</strong> Käytä \"{{int:showpreview}}\" painiketta testataksesi uutta JSON:iasi ennen tallentamista.",
        "userjsyoucanpreview": "Voit testata uutta JavaScriptiä ennen tallennusta käyttämällä painiketta ”{{int:showpreview}}”.",
        "usercsspreview": "'''Tämä on CSS:n esikatselu. Muutoksia ei ole vielä tallennettu.'''",
+       "userjsonpreview": "<strong>Huomaa, että tämä on vasta JSON-käyttäjäasetusten esikatselu.\nMuutoksia ei ole vielä tallennettu!</strong>",
        "userjspreview": "'''Tämä on JavaScriptin esikatselu.'''",
        "sitecsspreview": "'''Huomaa, että tämä on vasta CSS:n esikatselu.''' \n'''Muutoksia ei ole vielä tallennettu.'''",
+       "sitejsonpreview": "<strong>Huomaa, että tämä on vasta JSON-asetusten esikatselu.\nMuutoksia ei ole vielä tallennettu!</strong>",
        "sitejspreview": "'''Huomaa, että tämä on vasta JavaScript-koodin esikatselu.'''\n'''Muutoksia ei ole vielä tallennettu.'''",
        "userinvalidconfigtitle": "<strong>Varoitus:</strong> Tyyliä nimeltä ”$1” ei ole olemassa. Muista, että käyttäjän määrittelemät .css-, -json- ja .js-sivut alkavat pienellä alkukirjaimella, esim. {{ns:user}}:Matti Meikäläinen/vector.css eikä {{ns:user}}:Matti Meikäläinen/Vector.css.",
        "updated": "(Päivitetty)",
        "post-expand-template-argument-category": "Käsittelemättömiä mallinemuuttujia sisältävät sivut",
        "parser-template-loop-warning": "Mallinesilmukka havaittu: [[$1]]",
        "template-loop-category": "Sivut, joissa on mallinesilmukoita",
+       "template-loop-category-desc": "Tämä sivu sisältää mallinesilmukan, eli itseänsä kutsuvan mallineen.",
        "template-loop-warning": "<strong>Varoitus:</strong> Tämä sivu kutsuu mallinetta [[:$1]] joka aiheuttaa mallinesilmukan (loputon rekursiivinen kutsu).",
        "parser-template-recursion-depth-warning": "Mallineen rekursioraja ylittyi ($1)",
        "language-converter-depth-warning": "Kielimuuntimen syvyysraja ylittyi ($1)",
        "expansion-depth-exceeded-warning": "Sivu ylitti laajentamissyvyyden.",
        "parser-unstrip-loop-warning": "Unstrip-silmukka havaittiin",
        "unstrip-depth-warning": "Unstrip-rekursion enimmäissyvyys ($1) ylitettiin",
+       "unstrip-depth-category": "Sivut, joissa unstrip-enimmäissyvyys ylittyy",
+       "unstrip-size-warning": "Unstrip-kokoraja ($1) ylitettiin",
+       "unstrip-size-category": "Sivut, joissa unstrip-kokoraja ylittyy",
        "converter-manual-rule-error": "Kielivarianttisäännössä on virhe",
        "undo-success": "Kumoaminen voidaan suorittaa.\nVarmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen tallenna alla näkyvät muutokset.",
        "undo-failure": "Muokkausta ei voi kumota välissä olevien ristiriitaisten muutosten vuoksi.",
+       "undo-main-slot-only": "Muokkausta ei voitu kumota, koska muokkaus koskee sisältöä pääalueen ulkopuolella.",
        "undo-norev": "Muokkausta ei voida kumota, koska sitä ei ole olemassa tai se on poistettu.",
        "undo-nochange": "Tämä muokkaus näyttää olevan jo kumottu.",
        "undo-summary": "Kumottu muokkaus $1, jonka teki [[Special:Contributions/$2|$2]] ([[User talk:$2|keskustelu]])",
        "prefs-watchlist-edits": "Tarkkailulistalla näytettävien muokkausten enimmäismäärä:",
        "prefs-watchlist-edits-max": "Enintään 1000",
        "prefs-watchlist-token": "Tarkkailulistan avain:",
+       "prefs-watchlist-managetokens": "Hallitse avaimia",
        "prefs-misc": "Muut",
        "prefs-resetpass": "Muuta salasana",
        "prefs-changeemail": "Muuta tai poista sähköpostiosoite",
        "recentchangescount": "Näytettävien muutoksien määrä tuoreissa muutoksissa, sivujen historioissa ja logeissa oletuksena",
        "prefs-help-recentchangescount": "Maksimiluku 1000",
        "prefs-help-watchlist-token2": "Tämä on salainen avain tarkkailulistasi verkkosyötteeseen.\nKuka tahansa, joka tietää sen voi lukea tarkkailulistaasi, joten älä paljasta sitä.\nJos sinun täytyy, [[Special:ResetTokens|voit uudistaa sen]].",
+       "prefs-help-tokenmanagement": "Voit nähdä ja nollata tilisi salaisen avaimen, jota käyttämällä pääset katsomaan tarkastuslistasi verkkosyötettä. Kuka tahansa sen tietävä voi lukea tarkkailulistaasi, joten älä paljasta sitä.",
        "savedprefs": "Asetuksesi on tallennettu.",
        "savedrights": "Käyttäjän {{GENDER:$1|$1}} käyttäjäryhmät on tallennettu.",
        "timezonelegend": "Aikavyöhyke",
        "prefs-editor": "Muokkain",
        "prefs-preview": "Esikatselu",
        "prefs-advancedrc": "Lisäasetukset",
+       "prefs-opt-out": "Jättäydy pois uudistuksista",
        "prefs-advancedrendering": "Lisäasetukset",
        "prefs-advancedsearchoptions": "Lisäasetukset",
        "prefs-advancedwatchlist": "Lisäasetukset",
        "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-invalid-expiry": "Ryhmän \"$1\" vanhentumisaika on virheellinen.",
        "userrights-expiry-in-past": "Ryhmän \"$1\" vanhentumisaika on mennyt.",
+       "userrights-cannot-shorten-expiry": "Et voi aikaistaa ryhmän \"$1\" jäsenyyden erääntymisaikoja. Vain käyttäjät, joilla on oikeus lisätä ja poistaa ryhmiä, voivat aikaistaa erääntymisaikoja.",
        "userrights-conflict": "Päällekkäinen käyttöoikeuksien muutos! Tarkista tekemäsi muutokset ja vahvista ne.",
        "group": "Ryhmä",
        "group-user": "käyttäjät",
        "grant-viewdeleted": "Nähdä poistettuja sivuja ja tiedostoja",
        "grant-viewmywatchlist": "Nähdä oma tarkkailulista",
        "grant-viewrestrictedlogs": "Nähdä rajoitettuja lokimerkintöjä",
-       "newuserlogpage": "Uudet käyttäjät",
+       "newuserlogpage": "Tunnusten luonnin loki",
        "newuserlogpagetext": "Tämä on loki luoduista käyttäjätunnuksista.",
        "rightslog": "Käyttöoikeusloki",
        "rightslogtext": "Tämä on loki käyttäjien käyttöoikeuksien muutoksista.",
        "rcfilters-activefilters": "Aktiiviset suodattimet",
        "rcfilters-activefilters-hide": "Piilota",
        "rcfilters-activefilters-show": "Näytä",
+       "rcfilters-activefilters-hide-tooltip": "Piilota Aktiiviset suodattimet -alue",
+       "rcfilters-activefilters-show-tooltip": "Näytä Aktiiviset suodattimet -alue",
        "rcfilters-advancedfilters": "Kehittyneet suodattimet",
        "rcfilters-limit-title": "Näytettävät tulokset",
        "rcfilters-limit-and-date-label": "$1 {{PLURAL:$1|muutos|muutosta}}, $2",
        "rcfilters-preference-help": "Peruuttaa vuoden 2017 käyttöliittymän uudistuksen ja kaikki sen jälkeen lisätyt työkalut.",
        "rcfilters-watchlist-preference-label": "Piilota tarkkailulistan parannettu versio",
        "rcfilters-watchlist-preference-help": "Poistaa käytöstä vuoden 2017 ulkoasun uudistuksen ja kaikki sen jälkeen lisätyt työkalut.",
+       "rcfilters-filter-showlinkedfrom-label": "Näytä muutokset sivuilla, jonne on linkki sivulta",
        "rcfilters-filter-showlinkedfrom-option-label": "<strong>Sivut, joihin linkitetään</strong> valitulta sivulta",
+       "rcfilters-filter-showlinkedto-label": "Näytä muutokset sivuilla, joista on linkki sivulle",
        "rcfilters-filter-showlinkedto-option-label": "<strong>Sivut, jotka linkittävät</strong> valitulle sivulle",
        "rcfilters-target-page-placeholder": "Anna sivun nimi (tai luokka)",
        "rcnotefrom": "Alla ovat muutokset <strong>$3, $4</strong> lähtien. (Enintään <strong>$1</strong> näytetään.)",
        "upload-http-error": "HTTP-virhe: $1",
        "upload-copy-upload-invalid-domain": "Tiedostojen tallentamista tästä verkko-osoitteesta ei ole sallittu.",
        "upload-foreign-cant-upload": "Tätä wikiä ei ole konfiguroitu tallentamaan tiedostoja pyydettyyn ulkoiseen tiedostovarastoon.",
+       "upload-foreign-cant-load-config": "Ulkoisen tietovaraston tiedostotallennusten asetusten lataus epäonnistui.",
+       "upload-dialog-disabled": "Tätä lomaketta käyttävät tiedostojen tallennukset ovat poistettu käytöstä tästä wikistä.",
        "upload-dialog-title": "Tiedoston tallennus",
        "upload-dialog-button-cancel": "Peru",
        "upload-dialog-button-back": "Takaisin",
        "uploadstash-errclear": "Tiedostojen tyhjentäminen epäonnistui.",
        "uploadstash-refresh": "Päivitä tiedostoluettelo",
        "uploadstash-thumbnail": "näytä pienoiskuva",
+       "uploadstash-exception": "Tiedostoa ei kyetty säilömään latausmuistiin ($1): \"$2\"",
        "uploadstash-bad-path": "\nPolkua ei ole.",
        "uploadstash-bad-path-invalid": "Polku ei kelpaa.",
        "uploadstash-bad-path-unknown-type": "Tuntematon tyyppi \"$1\".",
+       "uploadstash-bad-path-unrecognized-thumb-name": "Tunnistamaton pienoiskuvan nimi.",
+       "uploadstash-bad-path-no-handler": "Tiedoston $2 MIME-tyypille $1 ei löytynyt käsittelijää.",
        "uploadstash-bad-path-bad-format": "Avain \"$1\" ei ole sopivassa muodossa.",
        "uploadstash-file-not-found": "Avainta \"$1\" ei löytynyt kätköstä.",
+       "uploadstash-file-not-found-no-thumb": "Pienoiskuvaa ei voitu saada.",
+       "uploadstash-file-not-found-no-local-path": "Skaalatulla kohteella ei ole paikallista polkua.",
        "uploadstash-file-not-found-no-object": "Ei voitu luoda paikallista tiedostokohdetta pienoiskuvalle.",
+       "uploadstash-file-not-found-no-remote-thumb": "Pienoiskuvan haku epäonnistui: $1\nURL = $2",
        "uploadstash-file-not-found-missing-content-type": "Puuttuva sisältötyypin ylätunniste",
+       "uploadstash-file-not-found-not-exists": "Polkua ei löytynyt, tai ei selkotiedosto.",
+       "uploadstash-file-too-large": "Yli $1 tavun kokoista tiedostoa ei voida käsitellä.",
        "uploadstash-not-logged-in": "Käyttäjää ei ole kirjautunut sisään, tiedostojen on kuuluttava käyttäjille.",
        "uploadstash-wrong-owner": "Tämä tiedosto ($1) ei kuulu nykyiselle käyttäjälle.",
        "uploadstash-no-such-key": "Ei tälläistä avainta ($1), ei voi poistaa.",
        "uploadnewversion-linktext": "Tallenna uusi versio tästä tiedostosta",
        "shared-repo-from": "kohteesta $1",
        "shared-repo": "yhteinen mediavarasto",
+       "filepage.css": "/* Tänne syötetty CSS-koodi sisältyy tiedoston kuvaussivulle sekä muunkielisille asiakaswikeille */",
        "upload-disallowed-here": "Et voi tallentaa uutta tiedostoa tämän tilalle.",
        "filerevert": "Tiedoston $1 palautus",
        "filerevert-legend": "Tiedoston palautus",
        "uncategorizedcategories": "Luokittelemattomat luokat",
        "uncategorizedimages": "Luokittelemattomat tiedostot",
        "uncategorizedtemplates": "Luokittelemattomat mallineet",
+       "uncategorized-categories-exceptionlist": "# Sisältää luettelon luokkia, joita ei tulisi mainita Special:UncategorizedCategories-sivulla. Yksi riviä kohden, alkaen \"*\"-merkillä. Muilla merkeillä alkavat rivit jätetään huomiotta. Käytä \"#\"-merkkiä kommenttien kirjoittamiseen.",
        "unusedcategories": "Käyttämättömät luokat",
        "unusedimages": "Käyttämättömät tiedostot",
        "wantedcategories": "Halutut luokat",
        "protectedtitles-summary": "Tällä sivulla on lueteltu ne sivut, jotka on tällä hetkellä suojattu uudelleenluonnilta. Nähdäksesi luettelon olemassaolevista suojatuista sivuista katso [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "Ei suojattuja sivunimiä näillä hakuehdoilla.",
        "protectedtitles-submit": "Hae sivunimet",
-       "listusers": "Käyttäjien luettelo",
+       "listusers": "Käyttäjäluettelo",
        "listusers-editsonly": "Näytä vain käyttäjät, joilla on muokkauksia",
        "listusers-temporarygroupsonly": "Näytä vain väliaikaisten käyttäjäryhmien käyttäjät",
        "listusers-creationsort": "Lajittele tunnuksen luontipäivämäärän mukaan",
        "apisandbox-dynamic-parameters-add-label": "Lisää parametri:",
        "apisandbox-dynamic-parameters-add-placeholder": "Parametrin nimi",
        "apisandbox-dynamic-error-exists": "Parametri nimellä ”$1” on jo olemassa.",
+       "apisandbox-templated-parameter-reason": "Tämä [[Special:ApiHelp/main#main/templatedparams|mallineparametri]] tarjotaan kohteen $2 {{PLURAL:$1|arvon|arvojen}} pohjalta.",
        "apisandbox-deprecated-parameters": "Käytöstä poistuneet parametrit",
        "apisandbox-fetch-token": "Lisää token automaattisesti",
        "apisandbox-add-multi": "Lisää",
        "apisandbox-sending-request": "API-pyyntöä lähetetään...",
        "apisandbox-loading-results": "API-tuloksia vastaanotetaan...",
        "apisandbox-results-error": "Tapahtui virhe ladattaessa API-kyselyn vastausta: $1",
+       "apisandbox-results-login-suppressed": "Tämä pyyntö on käsitelty uloskirjautuneena käyttäjänä, sillä sitä voitaisiin käyttää selaimen Same-Origin-turvakeinon kiertämiseen. Huomioi, että API:n hiekkalaatikon automaattinen avaimen käsittely ei toimi oikein tämänkaltaisen pyyntöjen kanssa, joten sinun tulee täyttää ne käsin.",
+       "apisandbox-request-selectformat-label": "Näytä pyyntödata muodossa:",
        "apisandbox-request-format-url-label": "URL-kyselymerkkijono",
        "apisandbox-request-url-label": "Pyynnön URL",
        "apisandbox-request-json-label": "Pyydetty JSON:",
        "apisandbox-request-time": "Pyyntöön kulunut aika: {{PLURAL:$1|$1 ms}}",
        "apisandbox-results-fixtoken": "Korjaa \"token\" ja lähetä uudelleen",
+       "apisandbox-results-fixtoken-fail": "\"$1\"-avaimen haku epäonnistui.",
        "apisandbox-alert-page": "Tällä sivulla olevat kentät eivät ole kelvollisia.",
        "apisandbox-alert-field": "Tässä kentässä oleva arvo ei ole kelvollinen.",
        "apisandbox-continue": "Jatka",
        "apisandbox-continue-clear": "Tyhjennä",
+       "apisandbox-continue-help": "{{int:apisandbox-continue}} [https://www.mediawiki.org/wiki/API:Query#Continuing_queries jatkaa] viimeistä pyyntöä; {{int:apisandbox-continue-clear}} nollaa jatkamisparametrit.",
        "apisandbox-param-limit": "Kirjoita <kbd>max</kbd> käyttääksesi ylärajaa.",
        "apisandbox-multivalue-all-namespaces": "$1 (Kaikki nimiavaruudet)",
        "apisandbox-multivalue-all-values": "$1 (Kaikki arvot)",
        "speciallogtitlelabel": "Kohde (sivu tai {{ns:user}}:käyttäjänimi):",
        "log": "Lokit",
        "logeventslist-submit": "Näytä",
+       "logeventslist-more-filters": "Lisää suodattimia:",
+       "logeventslist-patrol-log": "Partiointiloki",
+       "logeventslist-tag-log": "Merkkausloki",
        "all-logs-page": "Kaikki julkiset lokit",
        "alllogstext": "Tämä on yhdistetty lokien näyttö.\nVoit rajoittaa listaa valitsemalla lokityypin, käyttäjän tai sivun johon muutos on kohdistunut. Jälkimmäiset ovat kirjainkokoherkkiä.",
        "logempty": "Ei tapahtumia lokissa.",
        "listgrouprights-namespaceprotection-namespace": "Nimiavaruus",
        "listgrouprights-namespaceprotection-restrictedto": "Käyttäjän muokkausoikeudet",
        "listgrants": "Toimintaoikeudet",
+       "listgrants-summary": "Alla on luettelo toimintaoikeuksista sekä niiden vastaavista pääsytavoista käyttäjäoikeuksiin. Käyttäjät voivat valtuuttaa sovelluksia käyttämään heidän tiliään rajoitetuin oikeuksien riippuen toimintaoikeuksista, jota käyttäjä on sovellukselle myöntänyt. Käyttäjän puolesta toimiva sovellus ei kuitenkaan voi käyttää oikeuksia, joita käyttäjällä ei ole.\nYksittäisistä oikeuksista saattaa olla saatavilla [[{{MediaWiki:Listgrouprights-helppage}}|lisätietoa]].",
        "listgrants-grant": "Toimintaoikeus (grant)",
        "listgrants-rights": "Oikeudet (rights)",
        "trackingcategories": "Tarkkailuluokat",
        "notvisiblerev": "Versio on poistettu",
        "watchlist-details": "Tarkkailulistallasi on {{PLURAL:$1|$1 sivu|$1 sivua}} (keskustelusivut mukaan lukien).",
        "wlheader-enotif": "Sähköposti-ilmoitus on käytössä.",
-       "wlheader-showupdated": "Sivut, joita on muokattu viimeisen käyntisi jälkeen, on '''lihavoitu'''.",
+       "wlheader-showupdated": "Sivut, joita on muokattu viimeisen käyntisi jälkeen, on <strong>lihavoitu</strong>.",
        "wlnote": "Alla {{PLURAL:$1|on viimeisin muutos|ovat viimeisimmät <strong>$1</strong> muutosta}} edellisen {{PLURAL:$2|tunnin|<strong>$2</strong> tunnin}} ajalta $3 kello $4 lukien.",
        "wlshowlast": "Näytä edelliset $1 tuntia tai $2 päivää",
        "watchlist-hide": "Piilota",
        "dellogpage": "Poistoloki",
        "dellogpagetext": "Alla on loki viimeisimmistä poistoista.",
        "deletionlog": "poistoloki",
+       "log-name-create": "Sivujen luonnin loki",
+       "log-description-create": "Alla on luettelo viimeisimmistä sivujen luonneista.",
        "logentry-create-create": "$1 {{GENDER:$2|loi}} sivun $3",
        "reverted": "Palautettu aikaisempaan versioon",
        "deletecomment": "Syy:",
        "changecontentmodel-nodirectediting": "Sisältömalli $1 ei tue suoraa muokkaamista",
        "changecontentmodel-emptymodels-title": "Mitään sisältömallia ei ole saatavilla",
        "changecontentmodel-emptymodels-text": "Sisältöä sivulla [[:$1]] ei voida muuntaa mihinkään muotoon.",
-       "log-name-contentmodel": "Sisältömallin muutosloki",
+       "log-name-contentmodel": "Sisältömallin muutosten loki",
        "log-description-contentmodel": "Tällä sivulla on lueteltu muutokset sivujen sisältömalliin, ja sivut, jotka on luotu muulla kuin oletussisältömallilla.",
        "logentry-contentmodel-new": "$1 {{GENDER:$2|loi}} sivun $3 käyttäen normaalista poikkeavaa sisältömallia \"$5\"",
        "logentry-contentmodel-change": "$1 {{GENDER:$2|muutti}} sivun $3 sisältömallia muodosta \"$4\" muotoon \"$5\"",
        "contributions-userdoesnotexist": "Käyttäjätunnusta ”$1” ei ole rekisteröity.",
        "nocontribs": "Näihin ehtoihin sopivia muokkauksia ei löytynyt.",
        "uctop": "(uusin)",
-       "month": "Kuukausi",
+       "month": "Alkaen kuukaudesta (ja aiemmin):",
        "year": "Vuosi",
+       "date": "Alkaen päiväydestä (ja aiemmin):",
        "sp-contributions-newbies": "Näytä uusien tulokkaiden muutokset",
        "sp-contributions-newbies-sub": "Uusien käyttäjien muokkaukset",
        "sp-contributions-newbies-title": "Uusien käyttäjien muokkaukset",
        "import-mapping-subpage": "Tuonti seuraavan sivun alasivuiksi:",
        "import-upload-filename": "Tiedostonimi:",
        "import-upload-username-prefix": "Interwiki-etuliite:",
+       "import-assign-known-users": "Siirrä muokkaukset paikallisille käyttäjille, jos samanniminen käyttäjä on paikallisesti olemassa",
        "import-comment": "Kommentti:",
        "importtext": "Vie sivuja lähdewikistä käyttäen [[Special:Export|vientityökalua]].\nTallenna tiedot koneellesi ja tuo ne tällä sivulla.",
        "importstart": "Tuodaan sivuja...",
        "tooltip-pt-watchlist": "Lista sivuista, joiden muokkauksia tarkkailet",
        "tooltip-pt-mycontris": "Luettelo {{GENDER:|omista muokkauksistasi}}",
        "tooltip-pt-anoncontribs": "Luettelo tästä IP-osoitteesta tehdyistä muokkauksista",
-       "tooltip-pt-login": "Kirjaudu sisään tai luo tunnus",
+       "tooltip-pt-login": "On suositeltavaa kirjautua sisään. Se ei kuitenkaan ole pakollista.",
        "tooltip-pt-login-private": "Tämän wikin käyttö edellyttää kirjautumista",
        "tooltip-pt-logout": "Kirjaudu ulos",
        "tooltip-pt-createaccount": "On suositeltavaa luoda käyttäjätunnus ja kirjautua sisään. Se ei kuitenkaan ole pakollista.",
        "group-bot.css": "/* Tämä sivun tyylit muuttavat bottien tyylejä */",
        "group-sysop.css": "/* Tämä sivun tyylit muuttavat ylläpitäjien tyylejä */",
        "group-bureaucrat.css": "/* Tämä sivun tyylit muuttavat byrokraattien tyylejä */",
+       "common.json": "/* Tämän sivun JSON-koodi liitetään jokaiseen sivulataukseen */",
        "common.js": "/* Tämän sivun JavaScript-koodi liitetään jokaiseen sivulataukseen */",
        "group-autoconfirmed.js": "/* Tämän sivun JavaScript-koodi liitetään vain automaattisesti hyväksytyille käyttäjille */",
        "group-user.js": "/* Tämän sivun JavaScript ladataan vain rekisteröityneille käyttäjille */",
        "exif-photometricinterpretation-1": "Mustavalkoinen (musta on 0)",
        "exif-photometricinterpretation-3": "Paletti",
        "exif-photometricinterpretation-4": "Läpinäkyvyysmaski",
+       "exif-photometricinterpretation-5": "Erotettu (luultavasti CMYK)",
        "exif-photometricinterpretation-9": "CIE L*a*b* (ICC-koodaus)",
        "exif-photometricinterpretation-10": "CIE L*a*b* (ITU-koodaus)",
        "exif-unknowndate": "Tuntematon päiväys",
        "version-entrypoints": "Aloituskohtien URL-osoitteet",
        "version-entrypoints-header-entrypoint": "Aloituskohta",
        "version-entrypoints-header-url": "URL",
+       "version-entrypoints-articlepath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgArticlePath Artikkelin polku]",
+       "version-entrypoints-scriptpath": "[https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgScriptPath Skriptin polku]",
        "version-libraries": "Asennetut kirjastot",
        "version-libraries-library": "Kirjasto",
        "version-libraries-version": "Versio",
        "mw-widgets-usersmultiselect-placeholder": "Lisää enemmän...",
        "date-range-from": "Aloituspäivä:",
        "date-range-to": "Päättymispäivä:",
-       "sessionmanager-tie": "Cannot combine multiple request authentication types: $1.",
+       "sessionmanager-tie": "Monentyyppisiä kirjautumispyyntöjä ei voi yhdistää: $1.",
        "sessionprovider-generic": "$1 istuntoa",
        "sessionprovider-mediawiki-session-cookiesessionprovider": "istuntoja, joissa on evästeet käytössä",
        "sessionprovider-nocookies": "Evästeet on voitu poistaa käytöstä. Varmista, että sinulla on evästeet käytössä ja yritä sitten uudelleen.",
        "unlinkaccounts-success": "Tunnuksen linkitys poistettiin.",
        "authenticationdatachange-ignored": "Varmennustietojen muutosta ei käsitelty. Ehkä palveluntarjoajaa ei määritelty?",
        "userjsispublic": "Huomio: JavaScript-alasivuilla ei tulisi olla luottamuksellisia tietoja, koska muut käyttäjät voivat nähdä ne.",
+       "userjsonispublic": "Huomio: JSON-alasivuilla ei tulisi olla luottamuksellisia tietoja, koska muut käyttäjät voivat nähdä ne.",
        "usercssispublic": "Huomio: CSS-alasivuilla ei tulisi olla luottamuksellisia tietoja, koska muut käyttäjät voivat nähdä ne.",
        "restrictionsfield-badip": "Virheellinen IP-osoite tai alue: $1",
        "restrictionsfield-label": "Sallitut IP-alueet:",
        "undelete-cantedit": "Et voi palauttaa tätä sivua, koska sinulla ei ole oikeutta muokata tätä sivua.",
        "undelete-cantcreate": "Et voi palauttaa tätä sivua, koska tällä nimellä ei ole olemassaolevaa sivua eikä sinulla ole oikeutta luoda tätä sivua.",
        "pagedata-title": "Sivudata",
+       "pagedata-text": "Tämä sivu tarjoaa datarajapinnan sivuihin. Syötä sivun otsikko URL-osoitteeseen käyttäen alasivusyntaksia.\n* Automaattisen kielivalinnan toiminta riippuu asiakasohjelman Accept-otsikkotiedosta. Tämä tarkoittaa sitä, että asiakasohjelma saa sivun tiedot haluamassaan muodossa.",
        "pagedata-not-acceptable": "Vastaavaa muotoa ei löytynyt. Tuetut MIME-tyypit: $1",
        "pagedata-bad-title": "Virheellinen otsikko: $1.",
+       "unregistered-user-config": "Turvallisuussyistä JavaScript-, CSS- ja JSON-käyttäjäalasivuja ei voi ladata rekisteröimättömiltä käyttäjiltä.",
        "passwordpolicies": "Salasanakäytännöt",
        "passwordpolicies-summary": "Tämä on luettelo käytössä olevista salasanakäytännöistä tämän wikin käyttäjäryhmille.",
        "passwordpolicies-group": "Ryhmä",
index 51a13fc..ab015fa 100644 (file)
                        "Djiboun",
                        "Pols12",
                        "KATRINE1992",
-                       "Friday83260"
+                       "Friday83260",
+                       "Niridya"
                ]
        },
        "tog-underline": "Soulignement des liens :",
        "nstab-user": "Page d’{{GENDER:{{ROOTPAGENAME}}|utilisateur|utilisatrice}}",
        "nstab-media": "Média",
        "nstab-special": "Page spéciale",
-       "nstab-project": "À propos",
+       "nstab-project": "Page de projet",
        "nstab-image": "Fichier",
        "nstab-mediawiki": "Message",
        "nstab-template": "Modèle",
        "tooltip-t-contributions": "Voir la liste des contributions de {{GENDER:$1|cet utilisateur|cette utilisatrice}}",
        "tooltip-t-emailuser": "Envoyer un courriel à {{GENDER:$1|cet utilisateur|cette utilisatrice}}",
        "tooltip-t-info": "Plus d’information sur cette page",
-       "tooltip-t-upload": "Téléverser des fichiers",
+       "tooltip-t-upload": "Importer des fichiers",
        "tooltip-t-specialpages": "Liste de toutes les pages spéciales",
        "tooltip-t-print": "Version imprimable de cette page",
        "tooltip-t-permalink": "Adresse permanente de cette version de la page",
index 28978ae..a7eb5ab 100644 (file)
        "otherlanguages": "Annan rounòt langaj",
        "redirectedfrom": "(Roudirijé dipi $1)",
        "redirectpagesub": "Paj di roudirèksyon",
-       "redirectto": "Roudirijé vèr :",
+       "redirectto": "Roudirijé bò'd :",
        "lastmodifiedat": "Dannyé modifikasyon di sa paj té fè $1 à $2.",
        "viewcount": "Sa paj {{PLURAL:$1|0=pa té janmè konsilté|1=té konsilté roun sèl fwè|té konsilté $1 fwè}}.",
        "protectedpage": "Paj protéjé",
        "nosuchspecialpage": "Paj èspésyal inègzistant",
        "nospecialpagetext": "<strong>Zòt doumandé oun paj èspésyal ki pa ka ègzisté.</strong>\n\nOun lis dé paj èspésyal valid ka trouvé so kò asou [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Érò",
-       "databaseerror": "Érò di baz di doné",
+       "databaseerror": "Érò di baz-a di data",
        "databaseerror-text": "Oun érò di rékèt di baz di doné aparèt.\nSala pouvé provini di roun anomali annan lojisyèl-a.",
        "databaseerror-textcl": "Oun érò di rékèt di baz di doné aparèt.",
        "databaseerror-query": "Rékèt : $1",
        "databaseerror-error": "Érò : $1",
        "transaction-duration-limit-exceeded": "Pou évité roun tròp fò ogmantasyon di délè di réplikasyon, sa tranzaksyon té anilé piskétan douré di ékritir ($1) dépasé limit-a di $2 ségonn. Si zòt ka sasé modifyé oun gran nonm di éléman similtanéman, éséyé plito di éfèktchwé opérasyon-an an plizyò étap pli piti.",
        "laggedslavemode": "Panga, sa paj pa pouvé kontni tout dannyé modifikasyon éfèktchwé",
-       "readonly": "Baz di doné vérouyé",
+       "readonly": "Baz di data vérouyé",
        "enterlockreason": "Endiké rézon-an di vérouyaj ensi ki roun èstimasyon di so douré",
        "readonlytext": "Ajou ké mizajou di baz di doné sa atchwèlman bloké, probabman pou pèrmèt mentnans di baz-a, aprè sa, tout bagaj ké rantré andan lòrd.\n\nAdministratò sistèm ki vérouyé baz di doné té fourni èksplikasyon swivant :<br /> $1",
-       "missing-article": "Baz-a di doné pa trouvé tèks-a di roun paj ki li té divèt trouvé, entitilé « $1 » $2.\n\nJénéralman, sala ka sirviv an swivan roun lyen vèr roun diff périmé ou vèr listorik di roun paj souprimé.\n\nSi a pa sa ki la, zòt pitèt trouvé roun anomali annan program-an.\nSouplé, signalé li à roun [[Special:ListUsers/sysop|administratò]] é pa bliyé di endiké li URL-a di paj-a.",
+       "missing-article": "Baz-a di data pa trouvé tèks-a di roun paj ki li té divèt trouvé, ki entitilé « $1 » $2.\n\nJénéralman, sala ka sirvini an swivan roun lyen bò'd roun diff périmé oben bò'd listorik di roun paj souprimé.\n\nSi a pa sa ki la, zòt pitèt trouvé roun annonmali annan progranm-an.\nSouplé, signalé li à roun [[Special:ListUsers/sysop|administratò]] é pa bliyé di endiké li URL-a di paj-a.",
        "missingarticle-rev": "(niméro di vèrsyon : $1)",
        "missingarticle-diff": "(diff : $1, $2)",
        "readonly_lag": "Baz-a di doné té otomatikman vérouyé pannan ki sèrvò-ya ségondèr ka réyaligné yé kò asou sèrvò prensipal",
        "internalerror": "Érò entèrn",
        "internalerror_info": "Érò entèrn : $1",
        "internalerror-fatal-exception": "Érò fatal di tip « $1 »",
-       "filecopyerror": "Enposib di kopyé fiché-a « $1 » vèr « $2 ».",
+       "filecopyerror": "Enposib di kopyé fiché-a « $1 » bò'd « $2 ».",
        "filerenameerror": "Enposib di rounonmen fiché-a « $1 » an « $2 ».",
        "filedeleteerror": "Enposib di souprimé fiché-a « $1 ».",
        "directorycreateerror": "Enposib di kréyé répèrtwar-a « $1 ».",
        "preview": "Prévizwalizasyon",
        "showpreview": "Prévizwalizé",
        "showdiff": "Wè modifikasyon-yan",
-       "anoneditwarning": "<strong>Panga :</strong> zòt pa konèkté. Zòt adrès IP ké sa vizib di tout moun si zòt ka fè dé modifikasyon. Si zòt <strong>[$1 ka konèkté zòt kò]</strong> ou <strong>[$2 kréyé roun kont]</strong>, zòt modifikasyon ké sq atribwé à zòt pròp non di itilizatò(ris) é zòt ké gen dé ròt avantaj.",
+       "anoneditwarning": "<strong>Panga :</strong> zòt pa konèkté. Zòt adrès IP ké fika vizib pa tout moun si zòt ka fè dé modifikasyon. Si zòt <strong>[$1 ka konèkté zòt kò]</strong> oben <strong>[$2 kréyé roun kont]</strong>, zòt modifikasyon ké fika atribiyé à zòt pròp non di itilizatò é zòt ké gen ròt avantaj.",
        "blockedtext": "<strong>Zòt kont itilizatò oben zòt adrès IP bloké.</strong>\n\nBlokaj té éfèktchwé pa $1.\nRézon-an ki évoké ka swiv : <em>$2</em>.\n\n* Koumansman di blokaj : $8\n* Èspirasyon di blokaj : $6\n* Kont bloké : $7.\n\nZòt pouvé kontakté $1 oben rounòt [[{{MediaWiki:Grouppage-sysop}}|administratò]] pou an diskité.\nZòt pa pouvé itilizé fonksyon-an « {{int:emailuser}} » rounso si oun adrès di kouryé valid sa èspésifyé andan zòt [[Special:Preferences|préférans]] é rounso si sa fonksyonalité pa bloké.\nZòt adrès IP atchwèl sa $3 é zòt idantifyan di blokaj sa $5.\nSouplé, enkli tout détay-ya lasou'l annan chakin dé rékèt ki zòt ké fè.",
        "loginreqlink": "konèkté so kò",
        "newarticletext": "Zòt té ka swiv roun lyen bò'd roun paj ki pa ka ègzisté òkò. \nAfen di kréyé sa paj, antré zòt tèks annan bwèt ki aprè (zòt pouvé konsilté [$1 paj di lèd-a] pou plis d'enfòrmasyon).\nSi zòt vini{{GENDER:|}} isi pa éròr, kliké asou bouton <strong>Routour</strong> di zòt navigatò.",
        "currentrevisionlink": "Wè vèrsyon atchwèl-a",
        "cur": "atch",
        "last": "dif",
-       "histlegend": "Sélèksyon di dif : koché bouton radyo-ya dé vèrsyon à konparé é apwiyé asou antré ou asou bouton an ba.<br />\nLéjann : <strong>({{int:cur}})</strong> = diférans ké dannyé vèrsyon-an, <strong>({{int:last}})</strong> = diférans ké vèrsyon présédant, <strong>{{int:minoreditletter}}</strong> = modifikasyon minò.",
+       "histlegend": "Sélèksyon di diff : koché bouton radjo-ya dé vèrsyon à konparé é apiyé asou antré oben asou bouton-an ki anba.<br />\nLéjann : <strong>({{int:cur}})</strong> = diférans ké dannyé vèrsyon-an, <strong>({{int:last}})</strong> = diférans ké vèrsyon présédant-a, <strong>{{int:minoreditletter}}</strong> = modifikasyon minò.",
        "history-fieldset-title": "Sasé dé révizyon",
        "histfirst": "Pli ansyenn",
        "histlast": "Pli résant",
        "recentchangeslinked-title": "Swivi dé paj asosyé à « $1 »",
        "recentchangeslinked-summary": "Antré roun non di paj pou wè modifikasyon-yan ki fè résaman asou dé paj ki lyannen dipi oben bò'd sa paj (pou wè manm-yan di oun katégori, antré {{ns:category}}:Non di katégori). Modifikasyon-yan dé paj di [[Special:Watchlist|zòt lis di swivi]] sa <strong>an gra</strong>.",
        "recentchangeslinked-page": "Non di paj :",
-       "recentchangeslinked-to": "Afiché modifikasyon-yan dé paj ki ka konpòrté roun lyen vèr paj ki bay plito ki envèrs",
+       "recentchangeslinked-to": "Afiché modifikasyon-yan dé paj ki ka konpòrté roun lyen bò'd paj-a ki bay plito ki lenvèrs-a",
        "upload": "Enpòrté roun fiché",
        "uploadlogpage": "Journal di enpo di fiché",
        "filedesc": "Dèskripsyon",
        "whatlinkshere": "Paj ki lyannen",
        "whatlinkshere-title": "Paj ki ka pwenté bò'd « $1 »",
        "whatlinkshere-page": "Paj :",
-       "linkshere": "Paj-ya ki anba ka kontni roun lyen vèr <strong>$2</strong> :",
-       "nolinkshere": "Pyès paj pa gen kontni dé lyen vèr <strong>$2</strong>.",
+       "linkshere": "Paj-ya ki anba ka kontni roun lyen bò'd <strong>$2</strong> :",
+       "nolinkshere": "Pyès paj ka kontni dé lyen bò'd <strong>$2</strong>.",
        "isredirect": "paj di roudirèksyon",
        "istemplate": "enklizyon",
-       "isimage": "Lyen vèr fiché-a",
+       "isimage": "Lyen bò'd fiché-a",
        "whatlinkshere-prev": "{{PLURAL:$1|présédant|$1 présédant}}",
        "whatlinkshere-next": "{{PLURAL:$1|swivant|$1 swivant}}",
        "whatlinkshere-links": "lyen",
        "whatlinkshere-hideredirs": "$1 roudirèksyon-yan",
        "whatlinkshere-hidetrans": "$1 enklizyon-yan",
        "whatlinkshere-hidelinks": "$1 lyen-yan",
-       "whatlinkshere-hideimages": "$1 lyen vèr fiché-a",
+       "whatlinkshere-hideimages": "$1 lyen-yan bò'd fiché-a",
        "whatlinkshere-filters": "Filt",
        "ipboptions": "2 lò:2 hours,1 jou:1 day,3 jou:3 days,1 simenn:1 week,2 simenn:2 weeks,1 mwa:1 month,3 mwa:3 months,6 mwa:6 months,1 lan:1 year,endéfiniman:infinite",
        "infiniteblock": "enfini",
        "pageinfo-robot-noindex": "Pa otorizé",
        "pageinfo-watchers": "Nonm di kontribitò ki gen paj andan yé lis di swivi",
        "pageinfo-few-watchers": "Mwens di $1 {{PLURAL:$1|obsèrvatò}}",
-       "pageinfo-redirects-name": "Nonm di roudirèksyon vèr sa paj",
+       "pageinfo-redirects-name": "Nonm di roudirèksyon bò'd sa paj",
        "pageinfo-subpages-name": "Nonm di soupaj di sa paj",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|roudirèksyon}}; $3 {{PLURAL:$3|pa-roudirèksyon}})",
        "pageinfo-firstuser": "Kréyatò di paj-a",
        "logentry-delete-restore": "$1 rèstoré paj-a $3 ($4)",
        "logentry-delete-revision": "$1 {{GENDER:$2|modifyé}} vizibilité {{PLURAL:$5|di oun révizyon|di $5 révizyon}} asou paj $3 : $4",
        "revdelete-content-hid": "kontni maské",
-       "logentry-move-move": "$1 déplasé paj $3 vèr $4",
-       "logentry-move-move-noredirect": "$1 {{GENDER:$2|déplasé}} paj-a $3 vèr $4 san lésé di roudirèksyon",
-       "logentry-move-move_redir": "$1 {{GENDER:$2|déplasé}} paj-a $3 vèr $4 pa lasou oun roudirèksyon",
+       "logentry-move-move": "$1 déplasé paj-a $3 bò'd $4",
+       "logentry-move-move-noredirect": "$1 {{GENDER:$2|déplasé}} paj-a $3 bò'd $4 san lésé di roudirèksyon",
+       "logentry-move-move_redir": "$1 {{GENDER:$2|déplasé}} paj-a $3 bò'd $4 asou roun roudirèksyon",
        "logentry-patrol-patrol-auto": "$1 {{GENDER:$2|té otomatikman marké}} révizyon $4 di paj $3 kou rouli",
        "logentry-newusers-create": "Kont di itilizat{{GENDER:$4|ò|ris}} $1 té kréyé",
        "logentry-newusers-autocreate": "Kont $1 {{GENDER:$2|té kréyé}} otomatikman",
index 5c9ac57..9eed78c 100644 (file)
        "speciallogtitlelabel": "Objectivo (titulo o {{ns:user}}:nomine de usator):",
        "log": "Registros",
        "logeventslist-submit": "Monstrar",
+       "logeventslist-more-filters": "Altere filtros:",
+       "logeventslist-patrol-log": "Registro de patrulia",
+       "logeventslist-tag-log": "Registro de etiquettas",
        "all-logs-page": "Tote le registros public",
        "alllogstext": "Presentation combinate de tote le registros disponibile de {{SITENAME}}.\nPro restringer le presentation, selige un typo de registro, le nomine de usator (sensibile al majusculas e minusculas), o le pagina in question (etiam sensibile al majusculas e minusculas).",
        "logempty": "Le registro contine nihil pro iste pagina.",
        "uctop": "(ultime)",
        "month": "A partir del mense (e anterior):",
        "year": "A partir del anno (e anterior):",
+       "date": "A partir del data (e anterior):",
        "sp-contributions-newbies": "Monstrar contributiones de nove contos solmente",
        "sp-contributions-newbies-sub": "Pro nove contos",
        "sp-contributions-newbies-title": "Contributiones de nove contos de usator",
index e7b737d..9b69a62 100644 (file)
        "parser-unstrip-loop-warning": "Renkontresis nefinita procedo ('loop') en la funciono \"Unstrip\"",
        "undo-success": "La redakto ne povas desfacesar.\nVerifikez adinfre per komparo inter la du versioni se to esas fakte quon vu deziras facar; pose 'salvez' la modifiki por kompletigar la redakto.",
        "undo-failure": "Ne povis nuligar la redakto pro konflikti kun intermeza redakti.",
+       "cantcreateaccount-text": "La kreo di konto de ica adreso IP (<strong>$1</strong>) blokusesis da [[User:$3|$3]].\n\nLa motivo, segun $3, esas <em>$2</em>",
        "viewpagelogs": "Videz registrari por ca pagino",
        "nohistory": "Ne esas redakto-historio por ica pagino.",
        "currentrev": "Aktuala versiono",
        "powersearch-remember": "Memorez la selektajo por futura serchi",
        "search-external": "Extera sercho",
        "searchdisabled": "La sercho en la kompleta texto desaktivigesis temporale pro superkargo dil servanto. Ni esperas riaktivigar ol pos facar ula proxima aktualigi. Dum ica tempo, vu povas serchar per Google.",
+       "search-error": "Eventis eroro dum serchado: $1",
        "preferences": "Preferaji",
        "mypreferences": "Preferaji",
        "prefs-edits": "Nombro di redaktaji:",
        "ipblocklist-submit": "Serchar",
        "ipblocklist-otherblocks": "Altra {{PLURAL:$1|blokuso|blokusi}}",
        "infiniteblock": "nefinita",
+       "emailblock": "e-posto blokusita",
        "blocklist-nousertalk": "ne povas redaktar lua propra diskuto-pagino",
        "blocklink": "blokusar",
        "unblocklink": "desblokusar",
        "tags-delete-too-many-uses": "L'etiketo \"$1\" uzesas en plua kam $2 {{PLURAL:$2|revizo|revizi}}, do ol ne povas eskartesar.",
        "tags-delete-warnings-after-delete": "L'etiketo \"$1\" efacesis, ma la sequanta {{PLURAL:$2|avizo|avizi}} renkontresis:",
        "tags-activate-not-found": "L'etiketo \"$1\" ne existas.",
+       "tags-update-blocked": "Dum ke {{GENDER:$1|vu}} blokusabos, vu ne povos modifikar od efacar etiketi.",
        "dberr-problems": "Pardonez! Ica retopagino subisas teknikala problemi.",
        "dberr-again": "Voluntez vartar kelka minuti, e riprobez acesar ol.",
        "dberr-info": "(Ne povis acesar la datumaro: $1)",
index b3b617f..d0ffa8e 100644 (file)
        "rcfilters-activefilters": "Filtri attivi",
        "rcfilters-activefilters-hide": "Nascondi",
        "rcfilters-activefilters-show": "Mostra",
+       "rcfilters-activefilters-hide-tooltip": "Nascondi area dei filtri attivi",
        "rcfilters-advancedfilters": "Filtri avanzati",
        "rcfilters-limit-title": "Risultati da mostrare",
        "rcfilters-limit-and-date-label": "$1 {{PLURAL:$1|modifica|modifiche}}, $2",
        "rcfilters-watchlist-showupdated": "Le modifiche alle pagine che non hai ancora visitato da quando le modifiche sono avvenute, vengono evidenziate in <strong>grassetto</strong> e con dei pallini pieni.",
        "rcfilters-preference-label": "Nascondi la versione migliorata delle ultime modifiche",
        "rcfilters-preference-help": "Ripristina la riprogettazione dell'interfaccia 2017 e tutti gli strumenti aggiunti allora e da allora.",
+       "rcfilters-watchlist-preference-label": "Nascondi la versione migliorata degli osservati speciali",
+       "rcfilters-watchlist-preference-help": "Ripristina la riprogettazione dell'interfaccia 2017 e tutti gli strumenti aggiunti allora e da allora.",
        "rcfilters-filter-showlinkedfrom-label": "Mostra le modifiche alle pagine collegate da",
        "rcfilters-filter-showlinkedfrom-option-label": "<strong>Pagine con collegamenti da</strong> la pagina selezionata",
        "rcfilters-filter-showlinkedto-label": "Mostra le modifiche alle pagine che collegano a",
        "speciallogtitlelabel": "Azione effettuata su (titolo della pagina o {{ns:user}}:Nome utente):",
        "log": "Registri",
        "logeventslist-submit": "Mostra",
+       "logeventslist-more-filters": "Altri filtri:",
+       "logeventslist-patrol-log": "Modifiche verificate",
+       "logeventslist-tag-log": "Etichette",
        "all-logs-page": "Tutti i registri pubblici",
        "alllogstext": "Presentazione unificata di tutti i registri di {{SITENAME}}.\nÈ possibile restringere i criteri di ricerca selezionando il tipo di registro, l'utente che ha eseguito l'azione, e/o la pagina interessata (entrambi i campi sono sensibili al maiuscolo/minuscolo).",
        "logempty": "Il registro non contiene elementi corrispondenti alla ricerca.",
        "uctop": "(attuale)",
        "month": "Dal mese (e precedenti):",
        "year": "Dall'anno (e precedenti):",
+       "date": "Dal giorno (e precedenti):",
        "sp-contributions-newbies": "Mostra solo i contributi dei nuovi utenti",
        "sp-contributions-newbies-sub": "Per i nuovi utenti",
        "sp-contributions-newbies-title": "Contributi dei nuovi utenti",
index 082ed36..2d37572 100644 (file)
        "rcfilters-other-review-tools": "その他の監視ツール",
        "rcfilters-group-results-by-page": "ページごとにまとめて表示",
        "rcfilters-activefilters": "絞り込み",
+       "rcfilters-activefilters-hide": "非表示",
+       "rcfilters-activefilters-show": "表示",
+       "rcfilters-activefilters-hide-tooltip": "絞り込み欄を非表示",
+       "rcfilters-activefilters-show-tooltip": "絞り込み欄を表示",
        "rcfilters-advancedfilters": "詳細フィルター",
        "rcfilters-limit-title": "表示する件数",
        "rcfilters-limit-and-date-label": "過去$2の$1{{PLURAL:$1|件の変更}}",
        "rcfilters-empty-filter": "絞り込みは行われていません。全ての項目が表示さます。",
        "rcfilters-filterlist-title": "フィルター",
        "rcfilters-filterlist-whatsthis": "これらはどのように機能しますか?",
-       "rcfilters-filterlist-feedbacklink": "(新しい)絞り込み機能に関するフィードバックをお願いします",
+       "rcfilters-filterlist-feedbacklink": "絞り込み機能に関するフィードバック",
        "rcfilters-highlightbutton-title": "該当項目を強調表示する",
        "rcfilters-highlightmenu-title": "色を選ぶ",
        "rcfilters-highlightmenu-help": "この項目を何色で強調表示するか選択してください",
        "tag-mw-contentmodelchange-description": "ページの[https://www.mediawiki.org/wiki/Special:MyLanguage/Help:ChangeContentModel コンテンツモデルを変更]する",
        "tag-mw-new-redirect": "新規リダイレクト",
        "tag-mw-new-redirect-description": "新たな転送ページの作成または既存ページの転送化の編集",
-       "tag-mw-removed-redirect": "転送廃止",
-       "tag-mw-removed-redirect-description": "既存の転送を廃止する編集",
+       "tag-mw-removed-redirect": "リダイレクト解消",
+       "tag-mw-removed-redirect-description": "既存のリダイレクトを解消する編集",
        "tag-mw-changed-redirect-target": "転送先変更",
        "tag-mw-changed-redirect-target-description": "転送先を変更する編集",
        "tag-mw-blank": "白紙化",
index f85711b..0108114 100644 (file)
        "converter-manual-rule-error": "언어 변환 규칙을 수동으로 지정하는 도중 오류",
        "undo-success": "편집을 되돌릴 수 있습니다.\n이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.",
        "undo-failure": "중간의 다른 편집과 충돌하여 이 편집을 되돌릴 수 없습니다.",
+       "undo-main-slot-only": "메인 슬롯 이외의 내용을 수반하기 때문에 이 편집의 실행을 취소할 수 없습니다.",
        "undo-norev": "문서가 없거나 삭제되었기 때문에 편집을 되돌릴 수 없습니다.",
        "undo-nochange": "편집이 이미 되돌려진 것으로 나타납니다.",
        "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|토론]])의 $1판 편집을 되돌림",
        "speciallogtitlelabel": "대상 (문서 제목 또는 {{ns:user}}:사용자 이름으로 사용자 검색):",
        "log": "기록 목록",
        "logeventslist-submit": "보기",
+       "logeventslist-more-filters": "더 많은 필터:",
+       "logeventslist-patrol-log": "점검 기록",
+       "logeventslist-tag-log": "태그 기록",
        "all-logs-page": "모든 공개 기록",
        "alllogstext": "{{SITENAME}}에서 사용할 수 있는 모든 기록이 표시됩니다.\n기록 종류나 사용자 이름(대소문자 구별) 또는 영향을 받는 문서(대소문자 구별)를 선택하여 범위를 좁혀서 살펴볼 수 있습니다.",
        "logempty": "일치하는 항목이 없습니다.",
        "uctop": "(최신)",
        "month": "월:",
        "year": "연도:",
+       "date": "날짜부터 (혹은 이전):",
        "sp-contributions-newbies": "새 사용자의 기여만 보기",
        "sp-contributions-newbies-sub": "새 사용자의 기여",
        "sp-contributions-newbies-title": "새 사용자의 기여",
index 74001ee..130d2ca 100644 (file)
        "speciallogtitlelabel": "Zil (Titel oder {{ns:user}}:Benotzernumm fir e Benotzer):",
        "log": "Logbicher",
        "logeventslist-submit": "Weisen",
+       "logeventslist-more-filters": "Méi Filteren:",
        "all-logs-page": "All ëffentlech Logbicher",
        "alllogstext": "Dëst ass eng kombinéiert Lëscht vu Logbicher op {{SITENAME}}.\nDir kënnt d'Siche limitéiere wann Dir e Log-Typ, e Benotzernumm (case-senisitive) oder déi gefrot Säit (och case-senisitive) agitt.",
        "logempty": "Näischt fonnt.",
        "uctop": "(aktuell)",
        "month": "Vum Mount (a virdrun):",
        "year": "Vum Joer (a virdrun):",
+       "date": "Vum Datum (a virdrun):",
        "sp-contributions-newbies": "Nëmme Kontributioune vun neie Mataarbechter weisen",
        "sp-contributions-newbies-sub": "Fir déi Nei",
        "sp-contributions-newbies-title": "Kontributioune vun neie Benotzer",
index a3c83f4..27d7605 100644 (file)
        "rcfilters-other-review-tools": "Kiti peržiūros įrankiai",
        "rcfilters-group-results-by-page": "Grupuoti rezultatus pagal puslapį",
        "rcfilters-activefilters": "Aktyvūs filtrai",
+       "rcfilters-activefilters-hide": "Slėpti",
+       "rcfilters-activefilters-show": "Rodyti",
+       "rcfilters-activefilters-hide-tooltip": "Slėpti aktyvių filtrų sritį",
+       "rcfilters-activefilters-show-tooltip": "Rodyti aktyvių filtrų sritį",
        "rcfilters-advancedfilters": "Detalūs filtrai",
        "rcfilters-limit-title": "Rodyti rezultatų",
        "rcfilters-limit-and-date-label": "$1 {{PLURAL:$1|keitimas|keitimai|keitimų}}, $2",
        "rcfilters-savedqueries-rename": "Pervadinti",
        "rcfilters-savedqueries-setdefault": "Nustatyti kaip numatytą",
        "rcfilters-savedqueries-unsetdefault": "Pašalinti kaip numatytą",
-       "rcfilters-savedqueries-remove": "Pašalinti",
+       "rcfilters-savedqueries-remove": "Ištrinti",
        "rcfilters-savedqueries-new-name-label": "Pavadinimas",
        "rcfilters-savedqueries-new-name-placeholder": "Apibūdinkite šio filtro tikslą",
        "rcfilters-savedqueries-apply-label": "Sukurti filtrą",
        "rcfilters-empty-filter": "Nėra aktyvių filtrų. Rodomi visi indėliai.",
        "rcfilters-filterlist-title": "Filtrai",
        "rcfilters-filterlist-whatsthis": "Kaip tai veikia?",
-       "rcfilters-filterlist-feedbacklink": "Pateikite atsiliepimą apie šiuos (naujus) filtravimo įrankius",
+       "rcfilters-filterlist-feedbacklink": "Pateikite atsiliepimą apie šiuos filtravimo įrankius",
        "rcfilters-highlightbutton-title": "Paryškinti rezultatus",
        "rcfilters-highlightmenu-title": "Pasirinkite spalvą",
        "rcfilters-highlightmenu-help": "Pasirinkite spalvą šio elemento paryškinimui",
index 0b923d7..b4b35ff 100644 (file)
        "speciallogtitlelabel": "Цел (наслов или {{ns:user}}:корисничко име на корисникот):",
        "log": "Дневници",
        "logeventslist-submit": "Прикажи",
+       "logeventslist-more-filters": "Повеќе филтри:",
+       "logeventslist-patrol-log": "Дневник на патролирања",
+       "logeventslist-tag-log": "Дневник на ознаки",
        "all-logs-page": "Сите јавни дневници",
        "alllogstext": "Комбиниран приказ на сите расположиви дневници на {{SITENAME}}.\nМожете да го ограничите прикажаното избирајќи тип на дневник, корисничко име (разликува големи и мали букви), или страница (разликува големи и мали букви).",
        "logempty": "Дневникот нема записи што одговараат на ова.",
        "uctop": "(тековно)",
        "month": "Од месец (и порано):",
        "year": "Од година (и порано):",
+       "date": "Од датумот (и порано):",
        "sp-contributions-newbies": "Прикажи само придонеси на нови корисници",
        "sp-contributions-newbies-sub": "За нови кориснички сметки",
        "sp-contributions-newbies-title": "Придонеси на нови корисници",
index 81cfbe9..9dd455c 100644 (file)
        "actions": "Actions",
        "namespaces": "ꯃꯥꯃꯤꯡꯒꯤ ꯃꯐꯝ",
        "variants": "ꯈꯦꯇꯅꯕꯥ",
-       "navigation-heading": "Chatnaba Yengfam",
+       "navigation-heading": "ꯆꯠꯅꯕ ꯌꯦꯡꯐꯝ",
        "errorpagetitle": "ꯑꯔꯥꯟꯕꯥ",
        "returnto": "$1 ꯗꯥ ꯍꯟꯂꯨ",
-       "tagline": "ê¯\83ê¯\94ê¯\9dê¯\97ꯥ ê¯\83ê¯\90ê¯\9dê¯\97ꯨê¯\92ꯤ ê¯\83ê¯\83ꯤꯡ",
+       "tagline": "ê¯\97ê¯\92ꯤ",
        "help": "ꯃꯥꯇꯦꯡ",
        "search": "ꯊꯤꯕꯥ",
        "search-ignored-headings": " #<!-- leave this line exactly as it is --> <pre>\n# Headings that will be ignored by search.\n# Changes to this take effect as soon as the page with the heading is indexed.\n# You can force page reindexing by doing a null edit.\n# The syntax is as follows:\n#   * Everything from a \"#\" character to the end of the line is a comment.\n#   * Every non-blank line is the exact title to ignore, case and everything.\nReferences\nExternal links\nSee also\n #</pre> <!-- leave this line exactly as it is -->",
        "searchbutton": "ꯇꯤꯕꯥ",
        "go": "ꯆꯠꯂꯨ",
-       "searcharticle": "Chatlu",
+       "searcharticle": "ꯆꯠꯂꯨ",
        "history": "ꯂꯥꯃꯥꯏꯒꯤ ꯄꯨꯋꯥꯔꯤ",
        "history_short": "ꯄꯨꯋꯥꯔꯤ",
        "history_small": "ꯄꯨꯋꯥꯔꯤ",
        "updatedmarker": "updated since my last visit",
        "printableversion": "ꯅꯝꯊꯣꯛꯄꯥꯌꯥꯕꯥ ꯃꯑꯣꯡ",
-       "permalink": "Matampumbagi Samafam",
+       "permalink": "ꯃꯇꯝꯄꯨꯝꯕꯒꯤ ꯁꯝꯅꯐꯝ",
        "print": "ꯅꯝꯕꯥ",
        "view": "ꯃꯤꯠꯌꯦꯡ",
        "view-foreign": "$1 ꯗꯥ ꯌꯦꯡꯉꯨ",
        "talkpagelinktext": "ꯉꯥꯡꯐꯝ",
        "specialpage": "MediaWiki:Bs-wikiadmin-mediawiki-akhannaba-lamai-text/mni",
        "personaltools": "ꯏꯁꯥꯒꯥ ꯂꯣꯏꯅꯕꯥ ꯈꯨꯠꯂꯥꯏ",
-       "talk": "Khanna Neinaba",
+       "talk": "ꯈꯟꯅ ꯅꯩꯅꯕ",
        "views": "ꯃꯤꯠꯌꯦꯡ",
-       "toolbox": "ꯈꯨꯠꯂꯥꯏ",
+       "toolbox": "ꯈꯨꯠꯂꯥꯏꯁꯤꯡ",
        "tool-link-userrights": "Change {{GENDER:$1|user}} groups",
        "tool-link-userrights-readonly": "View {{GENDER:$1|user}} groups",
        "tool-link-emailuser": "Email this {{GENDER:$1|user}}",
        "pool-errorunknown": "ꯁꯛꯈꯪꯗꯕꯥ ꯑꯔꯥꯟꯕꯥ",
        "pool-servererror": "$1 ꯄꯨꯜ ꯀꯥꯎꯟꯇꯔ ꯇꯧꯅꯕꯥ ꯂꯩꯇꯔꯦ",
        "poolcounter-usage-error": "$1:ꯁꯤꯖꯤꯟꯅꯔꯤꯕꯥ ꯑꯔꯥꯟꯕꯥ",
-       "aboutsite": "ꯃꯔꯝꯗꯥ ꯃꯐꯝꯗꯨꯒꯤ ꯃꯃꯤꯡ",
+       "aboutsite": "ꯃꯔꯝꯗꯥ",
        "aboutpage": "Project:ꯃꯔꯝꯗꯥ",
        "copyright": "$1 ꯒꯤ ꯃꯇꯦꯡꯅ ꯃꯅꯨꯡꯒꯤ ꯑꯌꯥꯑꯣꯕꯥ ꯐꯪꯒꯅꯤ ꯅꯠꯇꯔꯒꯥ ꯏꯁꯤꯟꯗꯔꯤꯒꯩ",
        "copyrightpage": "{{ns:project}}: ꯁꯤꯟꯗꯣꯔꯛꯄꯒꯤ ꯍꯛ",
-       "currentevents": "Houjikkee thouram",
+       "currentevents": "ꯍꯧꯖꯤꯛꯀꯤ ꯊꯧꯔꯝꯁꯤꯡ",
        "currentevents-url": "Project:houjikkee thouram",
        "disclaimers": "ꯌꯥꯅꯤꯡꯗꯕꯥ ꯐꯣꯡꯗꯣꯛꯄꯁꯤꯡ",
        "disclaimerpage": "Project:ꯃꯌꯥꯝꯒꯤ ꯑꯣꯏꯅꯥ ꯌꯥꯅꯤꯡꯗꯕꯥ ꯐꯣꯡꯗꯣꯔꯛꯄꯥ",
        "mainpage": "ꯃꯔꯨ ꯑꯣꯏꯕꯥ ꯂꯃꯥꯏ",
        "mainpage-description": "ꯃꯔꯨ ꯑꯣꯏꯕꯥ ꯂꯃꯥꯏ",
        "policy-url": "Project:ꯈꯣꯡꯊꯥꯡ",
-       "portal": "Meeyam gi portal",
-       "portal-url": "Project:Meeyam gi oiba portal",
+       "portal": "ꯃꯤꯌꯥꯝꯒꯤ ꯄꯣꯔꯇꯦꯜ",
+       "portal-url": "Project:ꯃꯤꯌꯥꯝꯒꯤ ꯄꯣꯔꯇꯦꯜ",
        "privacy": "ꯑꯔꯣꯟꯕꯥ ꯊꯧꯔꯥꯡ",
        "privacypage": "Project:ꯑꯔꯣꯟꯕꯥ ꯊꯧꯔꯥꯡ",
        "badaccess": "ꯑꯌꯥꯕꯥꯗꯨ ꯁꯣꯏꯔꯦ",
        "nstab-mediawiki": "ꯄꯥꯎꯖꯦꯜ",
        "nstab-template": "ꯇꯦꯝꯄꯂꯦꯠ",
        "nstab-help": "ꯂꯥꯃꯥꯏꯒꯤ ꯃꯇꯦꯂꯧꯐꯝ",
-       "nstab-category": "Machakhaiba",
+       "nstab-category": "ꯃꯥꯆꯥꯛꯈꯥꯏꯕꯥ",
        "mainpage-nstab": "ꯃꯔꯨ ꯑꯣꯏꯕꯥ ꯂꯃꯥꯏ",
        "nosuchaction": "ꯃꯁꯤꯒꯨꯕꯥ ꯃꯥꯑꯣꯡꯁꯤ ꯅꯠꯇꯦ",
        "nosuchactiontext": "The action specified by the URL is invalid.\nYou might have mistyped the URL, or followed an incorrect link.\nThis might also indicate a bug in the software used by {{SITENAME}}.",
        "emailconfirmlink": "ꯅꯪꯒꯤ ꯏꯃꯦꯜ ꯑꯦꯗꯔꯦꯁ ꯌꯥꯕꯔꯥ ꯌꯦꯡ ꯎ",
        "accountcreated": "ꯑꯦꯀꯥꯎꯟ ꯁꯥꯈꯔꯦ",
        "loginlanguagelabel": "$1 ꯂꯣꯟ",
-       "pt-login": "Chang Sinba",
+       "pt-login": "ꯆꯪꯁꯤꯟꯕ ꯃꯅꯨꯪꯗ",
        "pt-login-button": "Chang Sinba",
        "pt-login-continue-button": "ꯂꯣꯘ ꯏꯟ ꯃꯈꯥ ꯆꯠꯊꯧ",
        "pt-createaccount": "ꯑꯩꯒꯤ ꯑꯣꯏꯕꯥ ꯑꯃꯥ ꯁꯦꯝꯕꯥ",
        "noarticletext": "There is currently no text in this page.\nYou can [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs],\nor [{{fullurl:{{FULLPAGENAME}}|action=edit}} create this page]</span>.",
        "noarticletext-nopermission": "There is currently no text in this page.\nYou can [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages, or <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs]</span>, but you do not have permission to create this page.",
        "missing-revision": "The revision #$1 of the page named \"{{FULLPAGENAME}}\" does not exist.\n\nThis is usually caused by following an outdated history link to a page that has been deleted.\nDetails can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
+       "userpage-userdoesnotexist-view": "$1 ꯁꯤꯖꯤꯅꯅꯔꯤꯕ ꯑꯦꯀꯥꯎꯅ ꯁꯤ ꯃꯤꯡ ꯆꯟꯗꯔꯤ",
        "continue-editing": "ꯁꯦꯝꯒꯠꯄꯒꯤ ꯃꯐꯝꯗꯨꯗꯥ ꯆꯠꯂꯨ",
        "editing": "$1 ꯁꯦꯝꯒꯠꯂꯤ",
        "creating": "Creating $1",
        "permissionserrorstext-withaction": "You do not have permission to $2, for the following {{PLURAL:$1|reason|reasons}}:",
        "moveddeleted-notice": "ꯃꯁꯤꯒꯤ ꯂꯥꯃꯥꯏꯁꯤ ꯀꯛꯊꯠꯈꯔꯦ. \nꯀꯛꯊꯠꯄꯥ, ꯉꯥꯛꯊꯣꯛꯄꯥ ꯑꯃꯗꯤ ꯂꯣꯒ ꯂꯦꯡꯍꯟꯕꯥ ꯂꯥꯃꯥꯏꯒꯤꯗꯃꯛ ꯇꯨ ꯃꯈꯥꯒꯤ ꯁꯤꯗꯥ ꯔꯤꯐꯔꯦꯟꯁ ꯎꯨꯠꯂꯦ",
        "edit-conflict": "ꯁ‍ꯦꯝꯒꯠꯐꯝꯒꯤ ꯈꯠꯅ ꯆꯩꯅꯕꯥ",
+       "content-model-wikitext": "ꯋꯤꯀꯤ ꯋꯥꯍꯩ ꯋꯥꯇꯥ",
        "content-json-empty-object": "ꯑꯍꯥꯡꯕꯥ ꯄꯣꯠꯁꯛ",
        "viewpagelogs": "ꯃꯁꯤꯒꯤ ꯂꯥꯃꯥꯏꯁꯤꯒꯤ ꯅꯧꯅ ꯆꯪꯉꯨ",
        "currentrev-asof": "$1 ꯒꯤ ꯅꯧꯅꯥ ꯑꯃꯨꯛꯍꯟꯅꯥ ꯌꯦꯡꯕꯥ ꯃꯤꯠꯌꯦꯡ",
        "nextrevision": "ꯑꯅꯧꯕꯥ ꯑꯃꯨꯛꯍꯟꯅꯥ ꯌꯦꯡꯕꯥ",
        "currentrevisionlink": "ꯈꯋꯥꯏꯗꯒꯤ ꯅꯧꯅꯥ ꯑꯃꯨꯛ ꯌꯦꯡꯕꯥ",
        "cur": "ꯍꯧ",
-       "last": "ê¯\83ꯥê¯\83ꯥꯡê¯\92ꯤ",
+       "last": "ꯃꯃꯥꯡꯒꯤ",
        "page_first": "ꯑꯍꯥꯟꯕ",
        "page_last": "ꯑꯔꯣꯏꯕ",
        "histlegend": "Diff selection: Mark the radio boxes of the revisions to compare and hit enter or the button at the bottom.<br />\nLegend: <strong>({{int:cur}})</strong> = difference with latest revision, <strong>({{int:last}})</strong> = difference with preceding revision, <strong>{{int:minoreditletter}}</strong> = minor edit.",
        "history-fieldset-title": "ꯊꯤꯋꯨ ꯑꯃꯨꯛ ꯍꯝꯁꯟꯅꯥ ꯌꯦꯡꯅꯕꯥ",
        "histfirst": "ꯈꯋꯥꯏꯗꯒꯤ ꯑꯔꯤꯕꯥ",
        "histlast": "ꯑꯅꯧꯕꯥ",
+       "history-feed-title": "ꯄꯨꯋꯥꯔꯤ ꯑꯃꯨꯛ ꯍꯟꯅ ꯌꯦꯡꯕ",
+       "history-feed-item-nocomment": "$2 ꯗ$1",
        "rev-delundel": "ꯑꯍꯣꯡꯕꯥ ꯎꯍꯟꯂꯤꯕꯥ",
        "revdelete-show-file-submit": "ꯍꯣꯏ",
        "revdelete-radio-unset": "ꯎꯍꯟꯕ",
+       "mergelog": "ꯂꯣꯒ ꯄꯨꯟꯁꯤꯟꯕ",
        "history-title": "Revision history of \"$1\"",
        "difference-title": "$1 ꯒꯤ ꯑꯃꯨꯛꯍꯟꯕꯥ ꯈꯦꯠꯅꯕꯥꯒꯤ ꯃꯔꯛ",
        "lineno": "ꯂꯥ ꯏ $1",
+       "compareselectedversions": "ꯈꯟꯒꯠꯂꯕ ꯁꯤꯡ ꯑꯃꯨꯛ ꯍꯟꯅ ꯌꯦꯡꯕꯗꯨ ꯆꯥꯡꯗꯝꯅꯧ",
        "editundo": "ꯇꯧꯒꯅꯨ",
+       "diff-empty": "ꯈꯩꯠꯅꯕ ꯂꯩꯇꯦ",
        "diff-multi-sameuser": "({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} by the same user not shown)",
        "searchresults": "ꯊꯤꯕꯒꯤ ꯐꯣꯜ",
        "searchresults-title": "Search results for \"$1\"",
        "shown-title": "Show $1 {{PLURAL:$1|result|results}} per page",
        "viewprevnext": "ꯎꯨꯇꯂꯨ ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-new": "<strong>Create the page \"[[:$1]]\" on this wiki!</strong> {{PLURAL:$2|0=|See also the page found with your search.|See also the search results found.}}",
-       "searchprofile-articles": "Kamai c da yaoba pumnamak",
-       "searchprofile-images": "Multimedia",
-       "searchprofile-everything": "Pumnamak",
-       "searchprofile-advanced": "Khumangchaoba",
-       "searchprofile-articles-tooltip": "$1 da thiyu",
-       "searchprofile-images-tooltip": "File gi damak thiba",
-       "searchprofile-everything-tooltip": "Mashida yaoriba c loina thiyu (Ngamgani Lamgi ga loinana)",
-       "searchprofile-advanced-tooltip": "Custom gi ming eramdamgi thiyu",
+       "searchprofile-articles": "ꯂꯥꯃꯥꯏꯁꯤꯡꯒꯤ ꯑꯌꯥꯎꯕ",
+       "searchprofile-images": "ꯃꯜꯇꯤꯃꯦꯗꯤꯌꯥ",
+       "searchprofile-everything": "ꯄꯨꯝꯅꯃꯛ",
+       "searchprofile-advanced": "ꯈꯨꯃꯥꯡꯆꯥꯎꯁꯤꯜꯂꯕ",
+       "searchprofile-articles-tooltip": "$1ꯗ ꯊꯤꯌꯨ",
+       "searchprofile-images-tooltip": "ꯐꯥꯏꯜꯁꯤꯡ ꯒꯤ ꯗꯃꯛ ꯊꯤꯕꯥ",
+       "searchprofile-everything-tooltip": "ꯃꯁꯤꯗ ꯌꯥꯎꯔꯤꯕꯁꯤ ꯂꯣꯏꯅ ꯊꯤꯌꯨ",
+       "searchprofile-advanced-tooltip": "ꯀꯁꯇꯝꯒꯤ ꯃꯤꯡ ꯏꯕꯝ ꯗꯒꯤ ꯊꯤꯌꯨ",
        "search-result-size": "$1 ({{PLURAL:$2|1 word|$2 words}})",
        "search-redirect": "(redirect from $1)",
        "search-section": "(section $1)",
        "search-showingresults": "{{PLURAL:$4|Result <strong>$1</strong> of <strong>$3</strong>|Results <strong>$1 – $2</strong> of <strong>$3</strong>}}",
        "search-nonefound": "ꯃꯁꯤꯒꯤ ꯐꯣꯜꯁꯤꯒꯥ ꯆꯥꯟꯅꯕꯥ ꯂꯩꯇꯦ",
        "mypreferences": "Preferences",
+       "group-bot": "ꯕꯣꯇꯁꯤꯡ",
+       "group-sysop": "ꯆꯨꯞꯂꯤ ꯄꯥꯏꯔꯤꯕꯁꯤꯡ",
+       "grouppage-bot": "ꯕꯣꯇ ꯁꯤꯡ:{{ns:project}}",
+       "grouppage-sysop": "ꯉꯥꯛ ꯁꯦꯟꯂꯤꯕ {{ns:project}}",
        "right-writeapi": "API sijinaduna eba",
        "newuserlogpage": "User creation log",
        "action-edit": "ꯃꯁꯤꯒꯤ ꯂꯥꯃꯥꯏꯁꯤ ꯁꯦꯝꯒꯠꯂꯨ",
        "rcshowhideanons": "$1 ꯃꯁꯛ ꯃꯥꯅꯥꯗꯕꯥ ꯄꯥꯏꯔꯤꯕꯥ ꯃꯤ",
        "rcshowhideanons-show": "ꯎꯨꯇꯄꯥ",
        "rcshowhideanons-hide": "ꯂꯣꯇꯄꯥ",
+       "rcshowhidepatr": "$1 ꯁꯦꯝꯒꯠꯄꯁꯤꯡ ꯆꯠꯂꯤꯕ",
        "rcshowhidemine": "$1 ꯑꯩꯅꯥ ꯁꯦꯝꯒꯠꯄꯁꯤꯡ",
        "rcshowhidemine-show": "ꯎꯨꯇꯄꯥ",
        "rcshowhidemine-hide": "ꯂꯣꯇꯄꯥ",
        "newpageletter": "ꯟ",
        "boteditletter": "ꯕ",
        "rc-change-size-new": "{{PLURAL:$1|$1}} ꯍꯣꯡꯗꯣꯛꯑꯕꯥ ꯃꯇꯨꯪꯗꯥ",
+       "rc-old-title": "$1 ꯑꯆꯨꯝꯕ ꯑꯣꯏꯅ ꯁꯥꯔꯛꯄ",
        "recentchangeslinked": "ꯃꯔꯤꯂꯩꯅꯕꯥ ꯑꯍꯣꯡꯕꯁꯤꯡ",
+       "recentchangeslinked-feed": "ꯃꯔꯤꯂꯩꯅꯕꯥ ꯑꯍꯣꯡꯕꯁꯤꯡ",
        "recentchangeslinked-toolbox": "ꯃꯔꯤꯂꯩꯅꯕꯥ ꯑꯍꯣꯡꯕꯁꯤꯡ",
        "recentchangeslinked-title": "$1 ꯂꯩꯅꯕꯥ ꯑꯍꯣꯡꯕꯁꯤꯡ",
        "recentchangeslinked-summary": "Enter a page name to see changes on pages linked to or from that page. (To see members of a category, enter {{ns:category}}:Name of category). Changes to pages on [[Special:Watchlist|your Watchlist]] are in <strong>bold</strong>.",
        "recentchangeslinked-page": "ꯂꯥꯃꯥꯏ ꯃꯥꯃꯤꯡ",
        "recentchangeslinked-to": "ꯂꯥꯃꯥꯏꯁꯤꯒꯥ ꯁꯝꯅꯐꯝꯒꯤ ꯑꯍꯣꯡꯕꯗꯨ ꯎꯠꯂꯨ ꯄꯤꯔꯝꯂꯤꯕꯥ ꯂꯥꯃꯥꯏꯗꯨ ꯃꯍꯨꯠꯇꯥ",
        "upload": "ꯐꯥꯏꯜ ꯊꯥꯒꯠꯂꯨ",
+       "uploadlogpage": "ꯂꯣꯒ ꯊꯥꯒꯌꯄ",
        "filedesc": "ꯑꯇꯦꯟꯕꯥ ꯁꯟꯗꯣꯛꯅꯥ ꯇꯥꯛꯄꯥ",
+       "license": "ꯑꯌꯥꯕ:",
        "license-header": "ꯑꯌꯥꯕꯥ",
        "imgfile": "ꯈꯣꯝꯖꯤꯟꯗꯨꯅꯥ ꯍꯥꯞꯐꯝ",
+       "listfiles": "ꯐꯥꯏꯜ ꯄꯥꯔꯦꯡ",
        "file-anchor-link": "ꯈꯣꯝꯖꯤꯟꯗꯨꯅꯥ ꯍꯥꯞꯐꯝ",
        "filehist": "ꯐꯥꯏꯜꯒꯤ ꯄꯨꯋꯥꯔꯤ",
-       "filehist-help": "Cheichat/Matamda nammmu matam aduda file adu ooonaba",
+       "filehist-help": "ꯆꯩꯆꯠ/ꯃꯇꯝꯗ ꯅꯝꯃꯨ ꯃꯇꯝ ꯑꯗꯨꯗ ꯐꯥꯏꯜ ꯑꯗꯨ ꯎꯨꯅꯕ",
        "filehist-revert": "ꯑꯃꯨꯛ ꯍꯟꯂꯟꯕꯥ",
-       "filehist-current": "Houjikki",
+       "filehist-current": "ꯍꯧꯖꯤꯛꯀꯤ",
        "filehist-datetime": "ꯆꯩꯆꯠ/ꯃꯇꯝ",
        "filehist-thumb": "Khutpina namba",
        "filehist-thumbtext": "Thumbnail for version as of $1",
+       "filehist-nothumb": "ꯊꯝꯅꯦꯜ ꯅꯠꯇꯦ",
        "filehist-user": "ꯄꯥꯏꯔꯤꯕꯥ",
        "filehist-dimensions": "ꯄꯥꯛ ꯆꯥꯎꯕꯥ",
        "filehist-comment": "ꯑꯄꯥꯝꯕꯥ ꯐꯣꯡꯗꯣꯛ ꯎ",
        "linkstoimage": "The following {{PLURAL:$1|page links|$1 pages link}} to this file:",
        "nolinkstoimage": "ꯃꯁꯤꯒꯤ ꯂꯥꯃꯥꯏꯁꯤꯒꯥ ꯃꯔꯤ ꯂꯩꯅꯕꯥ ꯁꯝꯅꯐꯝ ꯐꯥꯏꯜ ꯂꯩꯇꯦ",
        "sharedupload-desc-here": "This file is from $1 and may be used by other projects.\nThe description on its [$2 file description page] there is shown below.",
+       "filepage-nofile": "ꯃꯁꯤꯒꯤ ꯐꯥꯏꯜ ꯃꯃꯤꯡ ꯁꯤ ꯒꯥ ꯃꯥꯟꯅꯕ ꯂꯩꯇꯦ",
        "upload-disallowed-here": "ꯃꯁꯤꯒꯤ ꯐꯥꯏꯜꯁꯤ ꯅꯪꯅꯥ ꯑꯃꯨꯛ ꯍꯟꯅꯥ ꯏꯕꯥ ꯌꯥꯔꯣꯏ",
        "randompage": "ꯆꯥꯡ ꯅꯥꯏꯗꯕꯥ ꯂꯥꯃꯥꯏ",
+       "statistics": "ꯍꯦꯟꯒꯠꯂꯛꯄ ꯍꯥꯏꯊꯔꯧꯄ ꯌꯦꯡꯅꯕ",
        "nbytes": "$1 {{PLURAL:$1|byte|bytes}}",
        "nmembers": "$1 {{PLURAL:$1|member|members}}",
+       "prefixindex": "ꯋꯥꯇꯞ ꯀꯥ ꯂꯣꯏꯅꯕ ꯂꯥꯃꯥꯏꯁꯤꯡ ꯄꯨꯝꯅꯃꯛ",
+       "listusers": "ꯁꯤꯖꯤꯟꯅꯔꯤꯕ ꯁꯤꯡꯒꯤ ꯄꯥꯔꯦꯡ",
        "newpages": "ꯑꯅꯧꯕꯥ ꯂꯥꯃꯥꯏꯁꯤꯡ",
        "move": "ꯂꯦꯡꯍꯟꯕꯥ",
        "pager-newer-n": "{{PLURAL:$1|newer 1|newer $1}}",
        "booksources": "ꯂꯥꯏꯔꯤꯛꯀꯤ ꯍꯧꯔꯛꯐꯝ",
        "booksources-search-legend": "ꯂꯥꯏꯔꯤꯛꯀꯤ ꯍꯧꯔꯛꯐꯝ ꯊꯤꯕꯥ",
        "booksources-search": "ꯊꯤꯕꯥ",
+       "specialloguserlabel": "ꯄꯥꯡꯊꯣꯛꯂꯤꯕ ꯃꯤ",
        "log": "ꯆꯪꯕꯥ",
        "allpages": "ꯂꯥꯃꯥꯏ ꯂꯣꯏꯅꯥ",
        "allarticles": "ꯂꯥꯃꯥꯏ ꯂꯣꯏꯅꯥ",
        "allpagessubmit": "ꯆꯠꯂꯨ",
+       "allpages-hide-redirects": "ꯃꯥꯏꯀꯩ ꯄꯤꯔꯧꯄꯗꯨ ꯂꯣꯌꯂꯨ",
        "categories": "ꯃꯊꯪ ꯃꯅꯥꯎ ꯈꯥꯏꯗꯣꯛꯄꯥ",
+       "emailuser": "ꯃꯁꯤ ꯁꯤꯖꯤꯟꯅꯔꯤꯕꯁꯤ ꯏ-ꯃꯦꯜ ꯊꯥꯖꯤꯟꯂꯨ",
+       "watchlist": "ꯌꯦꯡꯂꯤꯕ ꯄꯥꯥꯔꯦꯡ",
        "mywatchlist": "Watchlist",
+       "watchlistfor2": "$1$2 ꯒꯤ",
        "watch": "ꯌꯦꯡꯕꯥ",
+       "unwatch": "ꯌꯦꯡꯗꯕ",
+       "watchlist-details": "{{PLURAL:$1|$1 page is|$1 pages are}} ꯗ ꯅꯪꯅ ꯌꯦꯡꯂꯤꯕ ꯄꯥꯔꯦꯡꯁꯤꯡ(plus talk pages).",
+       "wlshowlast": "$1 ꯄꯨꯪ ꯱ $2 ꯅꯨꯃꯤꯠꯁꯤꯡ ꯑꯔꯣꯏꯕꯗꯨ ꯎꯨꯠꯂꯨ",
+       "watchlist-options": "ꯌꯦꯡꯂꯤꯕ ꯄꯔꯦꯡ ꯑꯄꯥꯝꯕ ꯈꯟꯅꯕ",
+       "enotif_reset": "ꯂꯥꯃꯥꯏꯁꯤꯡ ꯁꯤ ꯂꯣꯏꯅ ꯊꯨꯪꯈꯔꯦ ꯍꯥꯏꯅ ꯍꯧ ꯎ",
        "dellogpage": "ꯀꯛꯊꯠꯄꯥꯒꯤ ꯂꯣꯒ",
        "rollbacklink": "ꯑꯃꯨꯛ ꯍꯟꯍꯟꯕꯥ",
        "rollbacklinkcount": "rollback $1 {{PLURAL:$1|edit|edits}}",
        "restriction-edit": "ꯁꯦꯝꯒꯠꯄꯥ",
        "restriction-move": "ꯂꯦꯡꯍꯟꯕꯥ",
        "namespace": "ꯃꯥꯃꯤꯡꯒꯤ ꯃꯐꯝ",
-       "invert": "Khanlibadu Makoktagi lak hanba",
+       "invert": "ꯈꯟꯂꯤꯕꯗꯨ ꯃꯀꯣꯛꯇꯒꯤ ꯂꯥꯛꯍꯟꯕ",
        "tooltip-invert": "Akhannaba maming gi manungda page tungi ahongba lotnaba oopu du yeng ngoo",
        "namespace_association": "Maming eefam ga marileinaba",
        "tooltip-namespace_association": "Oopu du yengoo maming eefam gi hiramga mari leinaba khangatlaba maming eefam amadi wa ngangfam manung channaba",
        "blanknamespace": "ꯃꯔꯨꯑꯣꯏꯕꯥ",
        "contributions": "{{GENDER:$1|User}} ꯈꯣꯝꯒꯠꯂꯛꯄꯁꯤꯡ",
+       "contributions-title": "$1 ꯁꯤꯖꯤꯟꯅꯔꯤꯕꯁꯤꯅ ꯈꯣꯝꯖꯤꯜꯂꯛꯄꯁꯤꯡ",
        "mycontris": "ꯈꯣꯝꯒꯠꯂꯛꯂꯤꯕꯁꯤꯡ",
        "anoncontribs": "ꯈꯣꯝꯒꯠꯂꯛꯂꯤꯕꯁꯤꯡ",
+       "contribsub2": "{{GENDER:$3|$1}}$2 ꯒꯤ",
        "uctop": "ꯍꯧꯖꯤꯛ",
        "month": "ꯃꯗꯨꯒꯤ ꯊꯥꯗꯒꯤ (ꯑꯃꯗꯤ ꯅꯧꯔꯤꯕꯥ)",
        "year": "ꯃꯗꯨꯒꯤ ꯆꯥꯍꯤꯗꯒꯤ (ꯑꯃꯗꯤ ꯅꯧꯔꯤꯕꯥ)",
+       "sp-contributions-blocklog": "ꯆꯪꯁꯤꯟꯕꯥ ꯊꯤꯡꯕꯥ",
+       "sp-contributions-uploads": "ꯊꯥꯒꯠꯄ",
+       "sp-contributions-logs": "ꯆꯪꯕꯁꯤꯟꯕ ꯃꯌꯥꯝ",
        "sp-contributions-talk": "ꯉꯥꯡꯐꯝ",
+       "sp-contributions-search": "ꯈꯣꯝꯖꯤꯟꯂꯛꯂꯤꯕꯁꯤꯡꯗꯨ ꯊꯤꯌꯨ",
+       "sp-contributions-username": "ꯑꯥꯏ ꯄꯤ ꯂꯩꯐꯝ / ꯁꯤꯖꯤꯟꯅꯔꯤꯕ ꯃꯃꯤꯡ",
+       "sp-contributions-toponly": "ꯑꯅꯧꯕ ꯑꯃꯨꯛꯍꯟꯅ ꯌꯦꯡꯗꯨꯅ ꯁꯦꯝꯒꯠꯂꯛꯄꯁꯤꯡꯗꯨ ꯎꯨꯠꯂꯨ",
        "sp-contributions-submit": "ꯊꯤꯕꯥ",
        "whatlinkshere": "ꯃꯁꯤꯗꯥ ꯀꯔꯤ ꯁꯝꯃꯤ",
        "whatlinkshere-title": "$1 ꯒꯥ ꯃꯔꯤ ꯂꯩꯅꯕꯥ ꯁꯝꯅꯐꯝ",
        "whatlinkshere-hideredirs": "$1 redirects",
        "whatlinkshere-hidetrans": "$1 transclusions",
        "whatlinkshere-hidelinks": "$1 ꯁꯝꯅꯐꯝ",
+       "whatlinkshere-hideimages": "$1 ꯒꯤ ꯐꯥꯏꯜ ꯁꯝꯅꯐꯝ",
        "whatlinkshere-filters": "ꯁꯦꯡꯇꯣꯛꯐꯝ",
-       "blocklink": "Thingba",
-       "contribslink": "ꯐꯪꯉꯛꯄꯥ",
+       "ipboptions": "ꯄꯨꯪ ꯲:2 hours,  ꯅꯣꯡꯃ:1 day, ꯅꯨꯃꯤꯠ ꯳ꯅꯤ:3 days, ꯆꯥꯌꯣꯜ ꯱: 1 week, ꯆꯥꯌꯣꯜ ꯲: 2weeks, ꯊꯥ ꯱: 1 month, ꯊꯥ ꯳: 3 months, ꯊꯥ ꯶: 6 months, ꯆꯥꯍꯤ ꯱: 1 year, ꯃꯁꯤꯡꯊꯤꯉꯝꯗꯅ:infinite ‌.",
+       "infiniteblock": "ꯃꯁꯤꯡ ꯊꯤꯉꯝꯗꯅ",
+       "blocklink": "ꯊꯤꯡꯕ",
+       "contribslink": "ꯈꯣꯝ",
+       "blocklogpage": "ꯆꯪꯁꯤꯟꯕꯥ ꯊꯤꯡꯕꯥ",
+       "reblock-logentry": "[[$1]] ꯒꯤ ꯁꯦꯝꯐꯝꯒꯤ ꯑꯍꯣꯡꯕꯗꯨ ꯊꯤꯡꯉꯨ  $2 $3 ꯒꯤ ꯑꯍꯦꯟꯕ ꯃꯇꯝꯒ ꯂꯣꯏꯅꯅ",
        "movelogpage": "ꯂꯣꯒ ꯁꯤ ꯂꯦꯡꯍꯟꯂꯨ",
        "export": "ꯂꯥꯃꯥꯏꯁꯤꯡ ꯄꯨꯊꯣꯛꯈꯣ",
        "thumbnail-more": "ꯆꯥꯑꯣꯍꯟꯕꯥ",
+       "importlogpage": "ꯂꯣꯒ ꯄꯨꯁꯤꯟꯂꯛꯄ",
        "tooltip-pt-userpage": "{{GENDER:|Your user}} ꯂꯥꯃꯥꯏ",
        "tooltip-pt-mytalk": "{{GENDER:|Your}} ꯉꯥꯡꯐꯝ ꯂꯥꯃꯥꯏ",
        "tooltip-pt-preferences": "{{GENDER:|Your}} preferences",
        "tooltip-ca-addsection": "Anouba khaidokpadu houro",
        "tooltip-ca-viewsource": "ꯃꯁꯤꯒꯤ ꯂꯥꯃꯥꯏꯁꯤ ꯉꯥꯛꯊꯣꯛꯂꯦ \nꯅꯪꯅꯥ ꯂꯥꯃꯥꯏꯁꯤꯒꯤ ꯍꯧꯔꯛꯐꯝ ꯎꯒꯅꯤ",
        "tooltip-ca-history": "ꯍꯧꯈꯔꯕꯥ ꯂꯥꯃꯥꯏ ꯑꯃꯨꯛ ꯍꯟꯅꯥ ꯌꯦꯡꯕꯥ",
+       "tooltip-ca-protect": "ꯃꯁꯤꯒꯤ ꯂꯥꯃꯥꯏꯁꯤ ꯉꯥꯛ ꯎ",
+       "tooltip-ca-delete": "ꯃꯁꯤꯒꯤ ꯂꯥꯃꯥꯏꯁꯤ ꯀꯛꯊꯠꯂꯨ",
        "tooltip-ca-move": "ꯃꯁꯤꯒꯤ ꯂꯥꯃꯥꯏꯁꯤ ꯂꯦꯡꯍꯟꯂꯨ",
        "tooltip-ca-watch": "ꯅꯪꯒꯤ ꯌꯦꯡꯅꯕꯥ ꯄꯥꯔꯦꯡꯗꯨꯗꯥ ꯍꯥꯞꯆꯏꯟꯂꯨ ꯃꯁꯤꯒꯤ ꯂꯥꯃꯥꯏꯁꯤ",
-       "tooltip-search": "ꯊꯤꯔꯣ ꯃꯐꯝꯗꯨꯒꯤ ꯃꯃꯤꯡ",
-       "tooltip-search-go": "Leiraga Chatlu madugi chapchaba Lamai Duda",
+       "tooltip-search": "ꯊꯤꯔꯣ",
+       "tooltip-search-go": "ꯂꯩꯔꯒꯥ ꯆꯠꯂꯨ ꯃꯗꯨꯒꯤ ꯆꯞꯆꯕ ꯂꯥꯃꯥꯏ ꯗꯨꯗ",
        "tooltip-search-fulltext": "ꯏꯔꯤꯕꯥ ꯃꯇꯦꯛꯁꯤꯒꯤ ꯂꯃꯥꯏ ꯁꯤ ꯊꯤꯔꯣ",
        "tooltip-p-logo": "ꯃꯔꯨ ꯑꯣꯏꯕꯥ ꯂꯥꯃꯥꯏꯗꯨꯗꯥ ꯌꯧꯁꯤꯟꯂꯨ",
        "tooltip-n-mainpage": "ꯃꯔꯨ ꯑꯣꯏꯕꯥ ꯂꯥꯃꯥꯏꯗꯨꯗꯥ ꯌꯧꯁꯤꯟꯂꯨ",
        "tooltip-n-recentchanges": "ꯍꯧꯖꯤꯛꯀꯤ ꯑꯣꯏꯅꯥ ꯋꯤꯀꯤꯄꯦꯗꯤꯌꯥꯗꯥ ꯑꯍꯣꯡꯕꯥꯁꯤꯡꯒꯤ ꯄꯥꯔꯦꯡ",
        "tooltip-n-randompage": "ꯆꯥꯡ ꯅꯥꯏꯗꯕꯥ ꯂꯃꯥꯏ ꯍꯥꯞꯆꯤꯟꯕꯥ",
        "tooltip-n-help": "ꯄꯨꯊꯣꯔꯛꯅꯕꯥ ꯃꯐꯝꯅꯤ",
-       "tooltip-t-whatlinkshere": "Mashigi Lamai c da samliba wiki parent ama",
+       "tooltip-t-whatlinkshere": "ꯃꯁꯤꯗ ꯁꯝꯂꯤꯕ ꯑꯄꯨꯟꯕ ꯋꯤꯀꯤ ꯂꯥꯃꯥꯏꯁꯤꯡꯒꯤ ꯄꯥꯔꯦꯡ ꯱",
        "tooltip-t-recentchangeslinked": "ꯃꯁꯤꯒꯤ ꯂꯃꯥꯏꯁꯤꯒꯥ ꯃꯔꯤ ꯂꯩꯅꯕꯥ ꯍꯧꯖꯤꯛꯀꯤ ꯑꯍꯣꯡꯕꯥ ꯂꯥꯃꯥꯏꯁꯤꯡ",
        "tooltip-feed-atom": "ꯂꯥꯃꯥꯏꯁꯤꯒꯤ ꯃꯁꯥ ꯃꯇꯣꯝꯇꯥ ꯌꯣꯛꯈꯠꯂꯛꯄꯥ",
        "tooltip-t-contributions": " {{GENDER:$1|this user}} ꯅꯥ ꯈꯣꯝꯖꯤꯟꯂꯛꯂꯤꯕꯥ ꯄꯥꯔꯦꯡ ꯱",
        "tooltip-t-upload": "ꯐꯥꯏꯜꯁꯤꯡ ꯊꯥꯒꯠꯂꯨ",
-       "tooltip-t-specialpages": "Akhanaba Lamai gi Parent Ama",
+       "tooltip-t-specialpages": "ꯑꯈꯟꯅꯕ ꯂꯥꯃꯥꯏꯁꯤꯡꯒꯤ ꯄꯥꯔꯦꯡ ꯱",
        "tooltip-t-print": "Namba Yaba ma ong  gi Lamai",
        "tooltip-t-permalink": "Amuk han na yengba lamaisigi Lengdaba Samnafam",
        "tooltip-ca-nstab-main": "ꯂꯃꯥꯏꯁꯤꯒꯤ ꯑꯌꯥꯎꯕꯁꯤꯡꯗꯨ ꯎꯨꯇꯂꯨ",
        "tooltip-ca-nstab-user": "ꯁꯤꯖꯤꯟꯅꯔꯤꯕꯥ ꯂꯥꯃꯥꯏꯁꯤ ꯌꯦꯡꯕꯥ",
        "tooltip-ca-nstab-special": "ꯃꯁꯤ ꯑꯈꯟꯅꯕꯥ ꯂꯥꯃꯥꯏꯅꯤ, ꯁꯦꯝꯒꯠꯄꯥ ꯌꯥꯔꯣꯏ",
        "tooltip-ca-nstab-project": "ꯂꯃꯥꯏꯁꯤꯒꯤ ꯇꯧꯒꯗꯥ ꯊꯧꯔꯥꯡꯗꯨ ꯎꯨꯇꯂꯨ",
-       "tooltip-ca-nstab-image": "File lamai du ootlu",
+       "tooltip-ca-nstab-image": "ꯐꯥꯏꯜ ꯂꯥꯃꯥꯏꯗꯨꯨꯨꯨꯨ ꯎꯨꯠꯂꯨ",
+       "tooltip-ca-nstab-mediawiki": "ꯊꯧꯁꯤꯜꯒꯤ ꯑꯣꯏꯕ ꯄꯥꯎꯖꯦꯜꯗꯨ ꯎꯨꯠꯂꯨ",
        "tooltip-ca-nstab-template": "ꯇꯦꯝꯄꯂꯦꯠ ꯇꯨ ꯎꯨꯠꯂꯨ",
        "tooltip-ca-nstab-category": "Macahkhaiba lamai sure oootlooo",
        "tooltip-save": "ꯅꯪꯒꯤ ꯑꯍꯣꯡꯕꯗꯨ ꯇꯨꯡꯁꯤꯟꯂꯨ",
        "tooltip-preview": "ꯅꯪꯒꯤ ꯑꯍꯣꯡꯕꯗꯨ ꯑꯃꯨꯛ ꯍꯟꯅꯥ ꯎꯠꯂꯨ. ꯆꯥꯟꯕꯤꯗꯨꯅꯥ ꯃꯁꯤ ꯍꯥꯟꯅꯥ ꯁꯤꯖꯤꯅꯧ ꯇꯪꯁꯤꯟꯗ꯭ꯔꯤꯉꯧꯗꯥ",
        "tooltip-diff": "ꯅꯪꯅꯥ ꯏꯔꯤꯕꯥ ꯄꯥꯔꯦꯡꯗꯨꯗꯥ ꯑꯍꯣꯡꯕꯥ ꯎꯠꯂꯨ",
        "tooltip-compareselectedversions": "See the differences between the two selected revisions of this page",
+       "tooltip-watch": "ꯍꯥꯞꯆꯤꯟꯂꯨ ꯃꯁꯤꯒꯤ ꯂꯥꯃꯥꯏꯁꯤ ꯅꯪꯅ ꯌꯦꯡꯂꯤꯕ ꯄꯔꯦꯡ ꯗ",
        "tooltip-rollback": "ꯑꯔꯣꯏꯕꯥ ꯈꯣꯝꯒꯠꯛꯂꯤꯕꯥꯁꯤꯡꯒꯤ ꯁꯦꯝꯒꯠꯄꯁꯤꯡ ꯗꯨꯒꯤ ꯂꯥꯃꯥꯏ ꯑꯃꯨꯛ ꯅꯝꯕꯗꯥ ꯂꯥꯛꯍꯟꯂꯨ ꯍꯥꯟꯅꯒꯤ ꯃꯐꯝꯗꯨꯗꯥ",
        "tooltip-undo": "\"Undo\" reverts this edit and opens the edit form in preview mode. It allows adding a reason in the summary.",
        "tooltip-summary": "ꯑꯇꯦꯟꯕꯥ ꯀꯨꯞꯅꯥ ꯁꯟꯗꯣꯛꯅꯩ ꯇꯥꯛꯄꯥ ꯏꯌꯨ",
        "simpleantispam-label": "Anti-spam check.\nDo <strong>not</strong> fill this in!",
+       "pageinfo-title": "$1 ꯒꯤ ꯑꯀꯨꯞꯄ ꯋꯥꯔꯣꯜ",
+       "pageinfo-header-basic": "ꯆꯪꯗꯌꯥꯗ꯭ꯔꯕ ꯑꯀꯨꯞꯄ ꯋꯥꯔꯣꯜ",
        "pageinfo-header-edits": "ꯄꯨꯋꯥꯔꯤ ꯁꯦꯝꯒꯠꯄ",
        "pageinfo-header-restrictions": "ꯉꯥꯛꯊꯣꯛꯂꯕꯥ ꯂꯥꯃꯥꯏ",
+       "pageinfo-header-properties": "ꯂꯥꯃꯥꯏꯁꯤ ꯒꯤ ꯑꯣꯏꯒꯗꯕꯁꯤꯡ",
+       "pageinfo-display-title": "ꯂꯥꯃꯥꯤꯒꯤ ꯃꯃꯤꯡ ꯌꯦꯡꯍꯟꯕ",
+       "pageinfo-default-sort": "ꯑꯇꯦꯟꯕ-꯱ꯍꯦꯛ-ꯇ ꯌꯥꯕ ‌‌‌‌‌",
+       "pageinfo-length": "ꯂꯥꯃꯥꯏꯒꯤ ꯑꯁꯥꯡꯕ(ꯕꯥꯏꯇ ꯇ)",
+       "pageinfo-article-id": "ꯂꯥꯃꯥꯏꯒꯤ ꯁꯛꯇꯥꯛ",
+       "pageinfo-language": "ꯂꯥꯃꯥꯏꯁꯤꯗ ꯏꯔꯤꯕ ꯂꯣꯟ",
+       "pageinfo-content-model": "ꯂꯥꯃꯥꯏꯁꯤꯗ ꯌꯥꯎꯔꯤꯕ ꯃꯑꯣꯡ ꯃꯇꯧ",
+       "pageinfo-robot-index": "ꯌꯥꯍꯟꯕ",
        "pageinfo-robot-noindex": "ꯌꯥꯍꯟꯗꯕꯥ",
+       "pageinfo-watchers": "ꯂꯥꯃꯥꯏꯁꯤꯕꯎ ꯌꯦꯡꯂꯤꯕ ꯃꯤꯑꯣꯤꯁꯤꯡꯒꯤ ꯃꯁꯤꯡ",
+       "pageinfo-few-watchers": " $1 ꯁꯤꯗꯒꯤ ꯋꯥꯠꯅ {{PLURAL:$1|ꯌꯦꯡꯂꯤꯕ|ꯌꯦꯡꯂꯤꯕꯁꯤꯡ}}",
+       "pageinfo-redirects-name": "ꯃꯁꯤꯒꯤ ꯂꯥꯃꯥꯏꯁꯤꯗ ꯃꯥꯏꯀꯩ ꯇꯥꯛꯂꯛꯄ ꯃꯁꯤꯡ",
        "pageinfo-subpages-name": "ꯂꯥꯃꯥꯏꯁꯤ ꯒꯤ ꯃꯅꯨꯡ ꯆꯟꯕꯥ ꯀꯨꯞꯊꯕꯥ ꯂꯥꯃꯥꯏꯁꯤꯡ",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|redirect|redirects}}; $3 {{PLURAL:$3|non-redirect|non-redirects}})",
        "pageinfo-firstuser": "ꯂꯥꯃꯥꯏ ꯁꯥꯔꯤꯕ ꯃꯤꯑꯣꯏꯁꯤꯡ",
        "pageinfo-edits": "ꯑꯄꯨꯟꯕ ꯁꯦꯝꯒꯠꯄꯒꯤ ꯃꯁꯤꯡ",
        "pageinfo-authors": "ꯑꯄꯨꯟꯕ ꯑꯈꯟꯅꯕ ꯑꯌꯤꯕꯁꯤꯡꯒꯤ ꯃꯁꯤꯡ",
        "pageinfo-magic-words": "Magic {{PLURAL:$1|word|words}} ($1)",
+       "pageinfo-hidden-categories": "ꯂꯣꯠꯍꯟꯕ {{PLURAL:$1|category|ꯃꯆꯥꯛꯈꯥꯏꯕ}} ($1)",
        "pageinfo-toolboxlink": "ꯂꯥꯃꯥꯏꯒꯤ ꯃꯇꯥꯡꯗꯥ",
+       "pageinfo-contentpage": "ꯂꯥꯃꯥꯏꯁꯤꯒꯤ ꯃꯅꯨꯪꯗ ꯌꯥꯎꯕ ꯑꯣꯏꯅꯥ ꯃꯁꯤꯡ ꯊꯤꯔꯦ",
        "pageinfo-contentpage-yes": "ꯍꯣꯏ",
        "previousdiff": "ꯑꯔꯤꯕꯥ ꯁꯦꯝꯒꯠꯂꯛꯐꯝ",
        "nextdiff": "ꯑꯅꯧꯕꯥ ꯁꯦꯝꯗꯠꯄ",
+       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|ꯂꯥꯃꯥꯏ|ꯂꯥꯃꯥꯏꯁꯤꯡ}}",
        "file-info-size": "$1 × $2 pixels, file size: $3, MIME type: $4",
+       "file-info-size-pages": "$1 × $2 pixels, ꯐꯥꯏꯜ ꯆꯥꯎꯕꯒꯤ ꯆꯥꯡ: $3, MIME type: $4, $5 {{PLURAL:$5|ꯂꯥꯃꯥꯏ|ꯂꯥꯃꯥꯏꯁꯤꯡ}}",
        "file-nohires": "ꯃꯁꯤꯗꯒꯤ ꯍꯦꯟꯅꯥ ꯁꯦꯡꯕꯥ ꯂꯩꯇꯔꯦ",
        "svg-long-desc": "SVG file, nominally $1 × $2 pixels, file size: $3",
        "show-big-image": "File Asengba",
        "exif-datetimeoriginal": "data generationꯒꯤ ꯃꯇꯝ ꯑꯝꯗꯤ ꯆꯩꯆꯠ",
        "exif-datetimedigitized": "ꯃꯥꯃꯤ ꯇꯥꯏꯕꯪꯗꯥ ꯍꯥꯞꯆꯤꯟꯕꯒꯤ ꯃꯇꯝ ꯑꯃꯥꯗꯤ ꯆꯩꯆꯠ",
        "exif-orientation-1": "ꯆꯥꯡ ꯅꯥꯏꯅꯥ",
-       "namespacesall": "Pullap",
+       "namespacesall": "ꯄꯨꯂꯞ",
        "monthsall": "ꯄꯨꯂꯞ",
+       "imgmultipagenext": "ꯃꯊꯪ ꯂꯥꯃꯥꯏ",
+       "imgmultigo": "ꯆꯠꯂꯨ",
+       "imgmultigoto": "$1 ꯂꯥꯃꯥꯏ ꯗ ꯆꯠꯂꯨ",
+       "watchlisttools-clear": "ꯌꯦꯡꯂꯤꯕ ꯄꯥꯔꯦꯡꯗꯨ ꯁꯦꯡꯗꯣꯛ ꯨꯎ",
+       "watchlisttools-view": "ꯃꯁꯤꯒ ꯆꯥꯟꯅꯕ ꯑꯍꯣꯡꯕꯗꯨ ꯎꯨꯠꯂꯨ",
+       "watchlisttools-edit": "ꯌꯦꯡꯂꯤꯕ ꯄꯥꯔꯦꯡꯗꯨ ꯁꯦꯝꯒꯌꯂꯨ ꯱ꯁꯨꯡ ꯎꯨꯠꯂꯨ",
+       "watchlisttools-raw": "ꯑꯍꯤꯡꯕ ꯌꯦꯡꯂꯤꯕ ꯄꯥꯔꯦꯡꯗꯨ ꯁꯦꯝꯒꯠꯂꯨ",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|talk]])",
        "redirect-submit": "ꯆꯠꯂꯨ",
+       "redirect-lookup": "ꯌꯦꯡꯈꯠꯂꯨ",
        "redirect-value": "ꯃꯔꯨꯑꯣꯏꯕꯥ",
-       "specialpages": "MediaWiki:Bs-wikiadmin-mediawiki-akhannaba-lamai-text/mni",
+       "redirect-user": "ꯁꯤꯖꯤꯟꯅꯔꯤꯕ ꯁꯛꯇꯥꯛ",
+       "redirect-page": "ꯂꯥꯃꯥꯏꯒꯤ ꯁꯛꯇꯛ",
+       "redirect-revision": "ꯂꯥꯃꯥꯏ ꯑꯃꯨꯧꯍꯟꯅ ꯌꯦꯡꯕ",
+       "redirect-file": "ꯐꯥꯏꯜ ꯃꯃꯤꯡ",
+       "specialpages": "ꯑꯈꯟꯅꯕ ꯂꯥꯃꯥꯏꯁꯤꯡ",
        "tag-filter": "[[Special:Tags|Tag]] filter:",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tags}}]]: $2)",
        "tags-active-yes": "ꯍꯣꯏ",
        "tags-active-no": "ꯅꯠꯇꯦ",
        "logentry-delete-delete": "$1 {{GENDER:$2|deleted}} page $3",
+       "logentry-delete-restore": "$1 {{GENDER:$2|restored}} ꯂꯥꯃꯥꯏ $3 ($4)",
+       "revdelete-content-hid": "ꯑꯌꯥꯎꯕꯗꯎ ꯂꯣꯌꯂꯒ ꯊꯝꯕ",
        "logentry-move-move": "$1 {{GENDER:$2|moved}} page $3 to $4",
        "logentry-newusers-create": "User account $1 was {{GENDER:$2|created}}",
        "logentry-upload-upload": "$1 {{GENDER:$2|uploaded}} $3",
-       "searchsuggest-search": "ꯊꯤꯔꯣ ꯃꯐꯝꯗꯨꯒꯤ ꯃꯃꯤꯡ"
+       "searchsuggest-search": "ꯊꯤꯔꯣ",
+       "duration-days": "$1 {{PLURAL:$1|ꯅꯨꯃꯤꯌ|ꯅꯨꯃꯤꯠꯁꯤꯡ}}",
+       "randomrootpage": "ꯆꯥꯡ ꯅꯥꯏꯗꯕ ꯂꯥꯃꯥꯏꯒꯤ ꯃꯔꯥ"
 }
index e73006f..da5d40d 100644 (file)
        "userrights-user-editname": "အသုံးပြုသူအမည်တစ်ခုကို ထည့်ပါ -",
        "editusergroup": "အသုံးပြုသူအုပ်စုကို ဖော်ပြရန်",
        "editinguser": "{{GENDER:$1|အသုံးပြုသူ}} <strong>[[User:$1|$1]]</strong> $2 ၏ အသုံးပြုအခွင့်အရေးများကို ပြောင်းလဲခြင်း",
+       "viewinguserrights": "{{GENDER:$1|အသုံးပြုသူ}} <strong>[[User:$1|$1]]</strong> $2 ၏ အသုံးပြုသူ အခွင့်အရေးများကို ကြည့်ရှုနေသည်",
        "userrights-editusergroup": "{{GENDER:$1|အသုံးပြုသူ}}အုပ်စုများကို တည်းဖြတ်ရန်",
+       "userrights-viewusergroup": "{{GENDER:$1|အသုံးပြုသူ}} အုပ်စုများကို ကြည့်ရန်",
        "saveusergroups": "{{GENDER:$1|အသုံးပြုသူ}}အုပ်စုများကို သိမ်းရန်",
        "userrights-groupsmember": "အဖွဲ့ဝင်",
        "userrights-groups-help": "ဤအသုံးပြုသူ၏ အုပ်စုများကို အောက်ပါအတိုင်း သင်ပြောင်းလဲနိုင်သည်\n* အမှန်ခြစ်အကွက်သည် ထိုအသုံးပြုသူသည် ယင်းအုပ်စုတွင် ပါဝင်ကြောင်း ဆိုလိုသည်။\n* အမှန်ခြစ်မပါသော အကွက်သည် ထိုအသုံးပြုသူသည် ယင်းအုပ်စုတွင် မပါဝင်ကြောင်း ဆိုလိုသည်။\n* ခရေပွင့် * အမှတ်အသားသည် အုပ်စုတစ်ခုအတွင်းသို့ ထည့်သွင်းပြီးပါက ပြန်လည် ဖယ်ရှားမရနိုင်ကြောင်း (အပြန်အလှန်) ကို ဆိုလိုသည်။\n* သင်္ကေတ # အမှတ်အသားသည် ဤအုပ်စုအဖွဲ့ဝင် သက်တမ်းကို ပြန်လည်ထည့်သွင်းနိုင်ပြီး ရှေ့တိုးပေးရန် မဖြစ်နိုင်ကြောင်း ဖော်ပြသည်။",
        "filemissing": "ဖိုင်ပျောက်နေသည်",
        "thumbnail_error": "ပုံစံငယ်ဖန်တီးရာတွင် အမှားပြနေသည် - $1",
        "import": "စာမျက်နှာများထည့်သွင်းရန်",
-       "import-interwiki-submit": "á\80\91á\80\8aá\80·်သွင်းရန်",
+       "import-interwiki-submit": "á\80\90á\80\84်သွင်းရန်",
        "import-upload-filename": "ဖိုင်အမည် -",
        "import-comment": "မှတ်ချက် -",
        "importstart": "စာမျက်နှာများကို ထည့်သွင်းနေသည်...",
        "tag-mw-blank": "ဗလာပြုလုပ်ခြင်း",
        "tag-mw-replace": "အစားထိုးခဲ့သည်",
        "tag-mw-rollback": "နောက်ပြန် ပြန်ပြင်ခြင်း",
+       "tag-mw-undo": "နောက်ပြန် ပြန်ပြင်ခြင်း",
        "tags-title": "အမည်တွဲ",
        "tags-tag": "အမည်တွဲ အမည်",
        "tags-active-yes": "မှန်",
index 512e4ae..3a93f60 100644 (file)
        "table_pager_limit_submit": "Lâi-khì",
        "autosumm-blank": "Kā ia̍h ê loē-iông the̍h tiāu",
        "autoredircomment": "Choán khì [[$1]]",
+       "autosumm-changed-redirect-target": "Choán-ia̍h bo̍k-phiau kái [[$1]] kòe [[$2]] oân-sêng",
        "autosumm-new": "$1 ê ia̍h í-keng kiàn-li̍p",
        "watchlistedit-normal-submit": "Mài kàm-sī",
        "watchlistedit-normal-done": "Í-keng uì lí ê kám-sī-toaⁿ soá {{PLURAL:$1|ia̍h}} cháu:",
        "tag-filter": "[[Special:Tags|Piau-chhiam]] chhoē mi̍h:",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|piau-chhiam}}]]: $2)",
        "tag-mw-new-redirect": "Sin choán-ia̍h",
+       "tag-mw-changed-redirect-target": "Choán-ia̍h bo̍k-phiau kái-piàn",
        "logentry-move-move": "$1 {{GENDER:$2|sóa}} $3 chit ia̍h khì $4",
        "logentry-move-move_redir": "$1 iōng choán-ia̍h {{GENDER:$2|sóa}} ia̍h-bīn $3 kòe $4",
        "logentry-newusers-create": "已經{{GENDER:$2|開好}}用者口座 $1",
index 17886a4..266ba64 100644 (file)
        "speciallogtitlelabel": "Mål (tittel eller {{ns:user}}:brukernavn for brukeren):",
        "log": "Logger",
        "logeventslist-submit": "Vis",
+       "logeventslist-more-filters": "Flere filtre:",
+       "logeventslist-patrol-log": "Patruljeringslogg",
+       "logeventslist-tag-log": "Merkelogg",
        "all-logs-page": "Alle offentlige logger",
        "alllogstext": "Kombinert visning av alle loggene på {{SITENAME}}.\nDu kan minske antallet resultater ved å velge loggtype, brukernavn eller den siden som er påvirket (husk å skille mellom store og små bokstaver).",
        "logempty": "Ingen elementer i loggen.",
        "uctop": "(siste)",
        "month": "Fra måned (og tidligere):",
        "year": "Fra år (og tidligere):",
+       "date": "Fra dato (og tidligere):",
        "sp-contributions-newbies": "Vis kun bidrag fra nye kontoer",
        "sp-contributions-newbies-sub": "For nybegynnere",
        "sp-contributions-newbies-title": "Bidrag av nye kontoer",
index 1e14438..ec31855 100644 (file)
        "dellogpage": "Slettelogg",
        "dellogpagetext": "Her er ei liste over dei siste slettingane.",
        "deletionlog": "slettelogg",
+       "logentry-create-create": "$1 {{GENDER:$2|oppretta}} sida $3",
        "reverted": "Attenderulla til ein tidlegare versjon",
        "deletecomment": "Årsak:",
        "deleteotherreason": "Annan grunn:",
index 0ef2818..2d0ff9b 100644 (file)
        "uctop": "(ostatnia)",
        "month": "Do miesiąca (włącznie):",
        "year": "Do roku (włącznie):",
+       "date": "Od daty (i wcześniej):",
        "sp-contributions-newbies": "Pokazuj wyłącznie wkład nowych użytkowników",
        "sp-contributions-newbies-sub": "Dla nowych użytkowników",
        "sp-contributions-newbies-title": "Wkład nowych użytkowników",
index 9fba0d5..9e105c7 100644 (file)
        "oct": "اکتوبر",
        "nov": "نومبر",
        "dec": "دسمبر",
-       "january-date": "جنوری",
+       "january-date": "جنوری $1",
        "february-date": "فروری $1",
        "march-date": "مارچ $1",
        "april-date": "اپریل $1",
        "talk": "گل بات",
        "views": "وکھالے",
        "toolbox": "سَند",
+       "tool-link-emailuser": "اس {{GENDER:$1|ورتن والے}} نوں ای میل کرو",
        "imagepage": "فائل آلا صفہ ویکھو",
        "mediawikipage": "سنیعا آلا صفحہ ویکھو",
        "templatepage": "سچے آلا صفحہ ویکھو",
        "jumptonavigation": "پاندھ",
        "jumptosearch": "کھوج",
        "view-pool-error": "$1",
+       "generic-pool-error": "معاف کرو، اس ویلے سرور کم نہیں کر رہے۔\nاس چیز نوں اس ویلے بہت زیادہ ورتن والے ویکھن دی کوشش کر رہے ہیں۔\nاس چیز نوں دوبارہ دیکھن دی کوشش کرن تو پہلاں تھوڑی دیر انتظار کرو۔",
        "pool-timeout": "تالے لئی انتظار",
        "pool-queuefull": "چنوتی کرن ل‏ئی بندے پورے نیں۔",
        "pool-errorunknown": "انجان غلطی",
        "hidetoc": "چھپاؤ",
        "collapsible-collapse": "لُکاؤ",
        "collapsible-expand": "ودھاؤ",
+       "confirmable-confirm": "کیا {{GENDER:$1|توانوں}} پورا یقین ہے؟",
+       "confirmable-yes": "ہاں",
        "confirmable-no": "نئیں",
        "thisisdeleted": "$1 ویکھو یا واپس لاؤ",
-       "viewdeleted": "ویکھو 1$ ؟",
+       "viewdeleted": "$1 ویکھنیاں ہن؟",
        "restorelink": "{{PLURAL:$1|اک مٹائی گئی تبدیلی|1$ مٹائیاں گئیاں تبدیلیاں}}",
        "feedlinks": "دسو:",
        "feed-invalid": "ناں منی جان والی سبسکرپشن فیڈ ٹائپ",
        "perfcachedts": "تھلے دتا گیا ڈیٹا کاشیڈ اے تے  $1 نوں نواں کیتا گیا۔ زیادہ توں زیادہ {{PLURAL:$4|اک نتیجہ ہووے|$4 نتیجے ہوون}} نتیجے کاشے چ ہیگے نیں .",
        "querypage-no-updates": "اس صفحے نوں اپڈیٹ فلحال نئیں کیتا جا سکدا۔\nایدا مال ہلے نواں نئیں کیتا جاۓ گا۔",
        "viewsource": "ویکھو",
-       "viewsource-title": "1 لئی سورس ویکھو",
+       "viewsource-title": "$1 لئی سورس ویکھو",
        "actionthrottled": "اے کم کئی واری کیتا گیا اے",
-       "actionthrottledtext": "سپاÙ\85 Ø±Ù\88Ú© Ú©Ù\85 Ù\84ئÛ\8cØ\8c ØªÙ\88اÙ\86Ù\88Úº Ø§Û\8cس Ú©Ù\85 ØªÙ\88Úº Ú©Ø¦Û\8c Ù\88ارÛ\8c Ø§Ú© ØªÚ¾Ù\88Ú\91Û\92 Ù\88Û\8cÙ\84Û\92 Ú\86 Ø±Ù\88Ú©Û\8cا Ú¯Û\8cا Ø§Û\92  Ù¾Ø± ØªØ³Ø§Úº Ø§Ù¾Ù\86Û\8c Ø­Ø¯ ØªÙ\88Úº Ø§Ú¯Û\92 Ù\88دÛ\92Û\94 \nÙ\85Û\81رباÙ\86Û\8c Ú©Ø±Ú©Û\92 ØªÚ¾Ù\88Ú\91Û\92 Ú\86ر Ù\85گرÙ\88Úº  فیر کوشش کرنا۔",
+       "actionthrottledtext": "خراب Ø±Ù\88Ú© Ú©Ù\85 Ù\84ئÛ\8cØ\8c ØªÙ\88اÙ\86Ù\88Úº Ø§Û\8cس Ú©Ù\85 ØªÙ\88Úº Ú©Ø¦Û\8c Ù\88ارÛ\8c Ø§Ú© ØªÚ¾Ù\88Ú\91Û\92 Ù\88Û\8cÙ\84Û\92 Ú\86 Ø±Ù\88Ú©Û\8cا Ú¯Û\8cا Ø§Û\92 Ù¾Ø± ØªØ³Ø§Úº Ø§Ù¾Ù\86Û\8c Ø­Ø¯ ØªÙ\88Úº Ø§Ú¯Û\92 Ù\88دÛ\92Û\94 \nÙ\85Û\81رباÙ\86Û\8c Ú©Ø±Ú©Û\92 ØªÚ¾Ù\88Ú\91Û\92 Ú\86ر Ù\85گرÙ\88Úº فیر کوشش کرنا۔",
        "protectedpagetext": "اس صفحے دے اتے تبدیلی کرن نوں روکیا گیا اے۔",
        "viewsourcetext": "تسی اس صفحے دی لکھائی نوں ویکھ تے نقل کر سکدے او:",
        "viewyourtext": "تسیں آپنی تبدیلیاں دا ذریعہ ایس صفے تے ویکھ تے کاپی کرسکدے او۔",
        "virus-badscanner": "غلط تریقہ کار: انجان وائرس کھوجی: ''$1''",
        "virus-scanfailed": "کھوج نا ہوسکی (کوڈ $1)",
        "virus-unknownscanner": "اندیکھا اینٹیوائرس:",
-       "logouttext": "'''تسی لاگ آؤٹ ہوگۓ او.'''\nتسی   {{SITENAME}} نوں گمنامی چ ورت سکدے او یا تسی <span class='plainlinks'>[$1 لاگ ان دوبارہ]</span> ہوجاؤ اوسے ناں توں یا وکھرے ورتن والے توں۔ اے گل چیتے رکھنا جے کج صفیاں تے تسی لاگ ان دسے جاؤگے جدوں تک تسی اپنے براؤزر دے کاشے نوں صاف ناں کرلو۔\nYou can continue to use {{SITENAME}} anonymously, or you can <span class='plainlinks'>[$1 log in again]</span> as the same or as a different user.\nNote that some pages may continue to be displayed as if you were still logged in, until you clear your browser cache.",
+       "logouttext": "</strong>ہن تسی لاگ آؤٹ ہوگۓ او۔</strong>\n\nدھیان دیو کہ جدوں تک تسی اپنے براؤزر دا کیش صاف نہیں کردے، کجھ صفے ایداں ویکھائی دے سکدے ہن کہ جویں تسی اجے وی لگانا ہی ہو۔",
        "welcomeuser": "جی آیاں نوں، $1!",
        "yourname": "ورتن والہ:",
        "userlogin-yourname": "ورتن ناں",
        "createaccount": "کھاتہ بناؤ",
        "userlogin-resetpassword-link": "اپنی کنجی بھل گۓ او؟",
        "userlogin-helplink2": "لاگ ان ہون وچ ہتھ ونڈائی",
+       "createacct-emailrequired": "ای میل پتہ",
        "createacct-emailoptional": "ای-میل پتہ (مرضی نال)",
        "createacct-email-ph": "اپنا ای-میل پتہ دیؤ",
+       "createacct-another-email-ph": "ای میل پتہ دیو",
        "createaccountmail": "ای میل دے نال",
+       "createacct-realname": "اصل ناں (اختیاری)",
        "createacct-reason": "وجہ",
        "createacct-reason-ph": "تسیں اک ہور کھاتہ کیوں بنا رہے او",
        "createacct-submit": "اپنا کھاتا کھولو",
+       "createacct-another-submit": "کھاتہ بناؤ",
        "createacct-benefit-heading": "پنجابی وکی نوں تواڈے ورگے لوکاں نے بنایا اے۔",
        "createacct-benefit-body1": "$1 {{PLURAL:$1|تبدیلی|تبدیلیاں}}",
        "createacct-benefit-body2": "{{PLURAL:$1|صفہ|صفے}}",
        "nosuchusershort": "اس \"$1\" ناں دا کوئی ورتن آلا نہيں اے۔\n\nاپنی الف، بے چیک کرو۔",
        "nouserspecified": "توانوں اپنا ورتن آلا ناں دسنا ہوۓ گا۔",
        "login-userblocked": "اے ورتن آلے روکیا ہویا اے۔ اے لاگ ان نئیں کرسکدا۔",
-       "wrongpassword": "تواڈی کنجی ٹھیک نہیں۔<br />\nفیر ٹرائی مارو۔",
+       "wrongpassword": "تواڈی کنجی یا ورتن ناں ٹھیک نہیں۔<br />\nفیر کوشش کرو۔",
        "wrongpasswordempty": "تواڈی کنجی کم نہیں کر رہی۔<br />\nفیر ٹرائی مارو۔",
        "passwordtooshort": "کنجی کم از کم {{PLURAL:$1|1 ہندسے|$1 ہندسیاں}} دی ہونی چائیدی اے۔",
        "password-name-match": "کنجی ورتن ناں توں مختلف ہونی چائیدی اے۔",
        "password-login-forbidden": "اس ورتن ناں یا کنجی دا ورتن تے پابندی اے۔",
-       "mailmypassword": "نئی کنجی ای میل کرو",
+       "mailmypassword": "کنجی سیٹ کرو",
        "passwordremindertitle": "{{SITENAME}} لئی نوی عارضی کنجی",
        "passwordremindertext": "کسے نے (غالبن تسی $1 آئی پی پتے توں) نوی کنجی ($4) {{SITENAME}} واسطے منگی۔ اک عارضی کنجی ورتن والے \"$2\" دے لئی بنائی گئی سی تے \"$3\" تے سیٹ کر دتی گئی سی۔ اگر اے تواڈا کم اے تے توانوں اندر آکے اک  نویں  کنجی چننی پۓ گی۔ تواڈی کچی\n کنجی {{PLURAL:$5|اک دن|$5 دناں}} چ مک جائیگی۔\nاگر کسے ہور نے اے درخواست کیتی اے یا تسی اپنی پرانی کنجی لب لئی اے تے تسی اینوں بدلنا نئیں چاندے تے تسی اس سنعے نوں چھڈو تے پرانی کنجی استعمال کرو۔",
        "noemail": "اس ورتن والے \"$1\" دا کوئی ای میل پتہ نئیں ہے گا۔",
        "passwordreset-emailtext-user": "ورتنوالے $1 نے {{سائیٹناں}} تے تواڈے کھاتے بارے پچھیا اے {{SITENAME}} لئی ($4)۔ تھلے دتا گیا ورتن {{PLURAL:$3|کھاتہ|کھاتے}} ایس ای-میل نال جڑدا اے۔\n\n$2\n\n{{PLURAL:$3|ایہ عارضی کنجی|اے عارضی کنجیاں}} مک جائیگا {{PLURAL:$5|اک دن|$5 دن}}۔ تسیں ہن لاکان ہوو تے نویں کنجی چنو۔ اگر کسے ہور نے اے چٹھی پیجی یا توانوں اپنی پہلی کنجی یاد آگئی اے تے تسیں اونوں بدلنا نئیں چاندے تے تسیں ایس سنیعے نوں پھل جاؤ تے پرانی کنجی نال ای کم چلاؤ۔",
        "passwordreset-emailelement": "ورتن ناں: \n$1\n\nعارضی کنجی: \n$2",
        "passwordreset-emailsentemail": "یاد کران واسطے اک ای-میل بھیج دتی گئی اے۔",
-       "changeemail": "ای-میل پتہ بدلو",
+       "changeemail": "ای-میل پتہ بدلو یا ہٹاؤ",
        "changeemail-header": "کھاتے دا ای-میل پتہ بدلو",
        "changeemail-no-info": "تسی لاگ ان ہوکے ای اس صفحے نوں ویکھ سکدے او۔",
        "changeemail-oldemail": "ہلے دا ای-میل پتہ:",
        "sig_tip": "تواڈے دستخط ویلے دے نال",
        "hr_tip": "سدھی لکیر",
        "summary": "ویروا:",
-       "subject": "موضوع/شہ سرخی:",
+       "subject": "موضوع:",
        "minoredit": "اے نکا جیا کم اے",
        "watchthis": "اس صفے تے اکھ رکھو",
        "savearticle": "کم بچاؤ",
        "savechanges": "کم بچاؤ",
+       "publishpage": "صفہ چھاپو",
+       "savearticle-start": "صفہ بچاؤ…",
+       "savechanges-start": "کم بچاؤ…",
+       "publishpage-start": "صفہ چھاپو…",
+       "publishchanges-start": "کم چھاپو…",
        "preview": "وکھاؤ",
        "showpreview": "کچا کم ویکھو",
        "showdiff": "تبدیلیاں وکھاؤ",
        "missingcommenttext": "تھلے اپنی گل لکھو۔",
        "missingcommentheader": "'''یادکرائی:''' تساں ایس گل تے سرخی / سرناواں نئیں دتا۔\nاگر تسیں  \"$1\" دوبارہ کلک کردے اوہ تواڈی تبدیلی اک توں بنا بچاۓ گا۔",
        "summary-preview": "کچے کم دا خلاصہ:",
-       "subject-preview": "سرناواں / سرخی وکھالہ:",
+       "subject-preview": "موضوع دا کچا کم:",
        "blockedtitle": "ورتن آلے نوں روکیا ہویا اے",
        "blockedtext": "تواڈا ورتن والا ناں یا فیر آئی پی ایڈریس روک دتا گیا اے۔'''\n\nتوانوں $1 نے روکیا اے۔<br />\nایدی وجہ ''$2'' اے۔\n\n* رکوائی دی پہل:$8\n* رکوائی دا انت:$6\n* روکیا جان آلا:$7\n\nتسی $1 نال مل ملسکدے او یا اک ہور [[{{MediaWiki:Grouppage-sysop}}|ایڈمنسٹریٹر]] نال روک دے بارے چ گل بات کر سکدے او۔<br />\nتسی اس ورتن آلے نوں ای میل نئیں کر سکدے جدوں تک توانوں [[Special:Preferences|account preferences]] کوئی ای میل ایڈریس نا دتا جاۓ تے توانوں اس دے استعمال توں روکیا نا گیا ہوۓ۔\nتواڈا موجودہ آئی پی پتہ $3 اے تے روکی گئی آئی ڈی #$5 اے۔\nمہربانی کر کے کوئی وی سوال جواب کرن آسطے اتے دتیاں گئیاں تفصیلات ضرور دیو۔",
        "autoblockedtext": "تواڈا آئی پی پتہ  اپنے آپ روک دتا گیا جے کیوں جے اینوں اک ہور ورتن والا ورت ریا سی۔ جینوں $1 نے روک دتا اے۔\nوجہ ایہ دتی کئی اے:\n\n:''$2''\n*روک دا شروع: $8\n*روک دا مکن: $6\n* روکے گۓ:$7\n\nتسیں $1 نال گل کرو یا کسے [[{{MediaWiki:Grouppage-sysop}}|administrators]] مکھۓ نال روک تے گل کرو۔\n\nایہ گل یاد رکھو جے تسیں \"ایس ورتن والے نوں ای-میل کرو\" والا فیخر نئیں ورت سکدے جدوں تک تواڈے کول اک پکا ای-میل پتہ [[Special:Preferences|user preferences]] تے جینوں ورتن تے  روک ناں لگی ہووے۔\nتھواڈا ہن دا آئی پی پتہ $3 اے تے روکی آئی ڈی #$5۔\nکسے وی سوال جواب لئي اوپر دسیاں گلاں وی شامل کرو۔",
        "edit-no-change": "تواڈی تبدیلی ول کوئی توجہ نئیں، کیوں جے لکھت چ کوئی تبدیلی نئیں۔",
        "edit-already-exists": "نواں صفہ نئیں بن سکدا۔\nایہ پہلے ای ہیگا اے۔",
        "editwarning-warning": "اے صفے توں جان تے ہو سکدا اوہ ساریاں تبدیلیاں مک جان جیہڑیاں تساں بناياں نیں۔\nاگر تسیں لاکان او، تسیں ایڈیٹنگ سیکشن چ  اپنی پسنداں چ ایس خبرداری نوں پعلے ناں۔",
+       "content-model-wikitext": "وکی ٹکسٹ",
        "expensive-parserfunction-warning": "'''خبردار:''' ایس صفے تے چوکھیاں ساریاں پارسر کلز نیں۔\nایدے چ $2 توں تھوڑی {{PLURAL:$2|کال|کالاں}} ہونیاں چاسیدیاں نیں، ایتھے {{PLURAL:$1|ہن $1 کال|ہن $1 کالاں}}",
        "expensive-parserfunction-category": "صفے بعوت ساریاں ایکسپنسو فنکشن کالز نال",
        "post-expand-template-inclusion-warning": "'''خبردار:''' ٹمپلیٹ ناپ چوکھا وڈا اے۔\nکج ٹمپلیٹ نئیں پاۓ جان گے۔",
        "notextmatches": "کوئی صفح نئیں لبیا",
        "prevn": "پہلا {{PLURAL:$1|$1}}",
        "nextn": "اگلا {{PLURAL:$1|$1}}",
+       "next-page": "اگلا صفہ",
        "prevn-title": "پہلے $1 {{PLURAL:$1|نتیجے}}",
        "nextn-title": "اگلے $1 {{PLURAL:$1|نتیجے}}",
        "shown-title": "وکھاؤ $1 {{PLURAL:$1|نتیجے}}",
        "skin-preview": "کچا کم",
        "datedefault": "خاص پسند نئیں",
        "prefs-labs": "لیبز فیچرز",
+       "prefs-user-pages": "ورتن والے دے صفے",
        "prefs-personal": "ورتن آلے دا پروفائل",
        "prefs-rc": "نویاں تبدیلیاں",
        "prefs-watchlist": "نظر تھلے صفحے",
+       "prefs-editwatchlist": " اکھ تھلے رکھی ہوئی نو تبدیل کرو",
        "prefs-watchlist-days": "اکھ تھلے رکھی لسٹ چ دسے گۓ دن:",
        "prefs-watchlist-days-max": "زیادہ توں زیادہ  $1 {{PLURAL:$1|دن|دن}}",
        "prefs-watchlist-edits": "ودائی ہوئی اکھ تھلے رکھی لسٹ چ زیادہ توں زیادہ نمبر دسو۔",
        "javascripttest-qunit-intro": "mediawiki.org تے [$1 ٹسٹنگ ڈوکومنٹیشن] ویکھو۔",
        "tooltip-pt-userpage": "{{GENDER:|میرا صفہ}}صفہ",
        "tooltip-pt-anonuserpage": "ورتن صفہ IP  پتے لئی تسی تبدیل کر رۓ او۔۔۔",
-       "tooltip-pt-mytalk": "{{GENDER:|Your}} گل بات",
+       "tooltip-pt-mytalk": "{{GENDER:|تواڈا}} گل بات صفہ",
        "tooltip-pt-anontalk": "ایس IP  پتے دیاں تبدیلیاں تے گل بات",
        "tooltip-pt-preferences": "میریاں تانگاں",
        "tooltip-pt-watchlist": "او صفے جنہاں وچ تبدیلیاں تسی ویکھ رہے او",
index 5b61e8b..a947f6b 100644 (file)
        "speciallogtitlelabel": "Alvo (título da página ou {{ns:user}}:'nomedeusuário' para usuários):",
        "log": "Registros",
        "logeventslist-submit": "Exibir",
+       "logeventslist-more-filters": "Mais filtros:",
+       "logeventslist-patrol-log": "Registro de edições patrulhadas",
+       "logeventslist-tag-log": "Registro de etiquetas",
        "all-logs-page": "Todos os registros públicos",
        "alllogstext": "Exibição combinada de todos registros disponíveis para o {{SITENAME}}.\nVocê pode diminuir a lista escolhendo um tipo de registro, um nome de usuário (sensível a maiúsculas e minúsculas), ou uma página afetada (também sensível a maiúsculas e minúsculas).",
        "logempty": "Nenhum item correspondente no registro.",
        "uctop": "(atual)",
        "month": "Mês (inclusive anteriores):",
        "year": "Ano (inclusive anteriores):",
+       "date": "A partir da data (e anterior):",
        "sp-contributions-newbies": "Mostrar apenas as contribuições das novas contas",
        "sp-contributions-newbies-sub": "Para contas novas",
        "sp-contributions-newbies-title": "Contribuições de contas novas",
index 33047fe..e04b6ae 100644 (file)
        "converter-manual-rule-error": "Erro detetado na regra de conversão de língua manual",
        "undo-success": "É possível desfazer a edição.\nVerifique a comparação abaixo, por favor, para se certificar de que corresponde ao que pretende fazer.\nDepois grave as alterações, para finalizar e desfazer a edição.",
        "undo-failure": "Não foi possível desfazer a edição por conflito com alterações intermédias.",
+       "undo-main-slot-only": "Não foi possível desfazer a edição porque ela envolve conteúdo fora da zona principal.",
        "undo-norev": "Não foi possível desfazer a edição porque não existe ou foi apagada.",
        "undo-nochange": "A edição parece já ter sido desfeita.",
        "undo-summary": "Desfez a edição $1 de [[Special:Contributions/$2|$2]] ([[User talk:$2|discussão]])",
        "uctop": "(atual)",
        "month": "Até o mês:",
        "year": "Até o ano:",
+       "date": "Na data (e anteriores):",
        "sp-contributions-newbies": "Mostrar só as contribuições de contas recentes",
        "sp-contributions-newbies-sub": "Para contas novas",
        "sp-contributions-newbies-title": "Contribuições de contas novas",
index 7732a92..cc1614e 100644 (file)
        "logeventslist-submit": "Submit button on [[Special:Log]]\n{{Identical|Show}}",
        "logeventslist-more-filters": "More filters label on [[Special:Log]]",
        "logeventslist-patrol-log": "Patrol log option label on [[Special:Log]]",
-       "logeventslist-tag-log": "Patrol log option label on [[Special:Log]]",
+       "logeventslist-tag-log": "Tag log option label on [[Special:Log]]",
        "all-logs-page": "{{doc-logpage}}\nTitle of [[Special:Log]].",
        "alllogstext": "Header of [[Special:Log]]",
        "logempty": "Used as warning when there are no items to show.",
        "variantname-gan-hans": "{{Optional}}\n\nVariant option for wikis with variants conversion enabled.",
        "variantname-gan-hant": "{{Optional}}\n\nVariant option for wikis with variants conversion enabled.",
        "variantname-gan": "{{Optional}}\n\nVariant option for wikis with variants conversion enabled.",
-       "variantname-sr-ec": "{{optional}}\nVariant Option for wikis with variants conversion enabled.\n\nNote that <code>sr-ec</code> is not a conforming BCP47 language tag. Wikis should be migrated by:\n* allowing it only as a legacy alias of the preferred tag <code>sr-cyrl</code> (possibly insert a tracking category in templates as long as they must support the legacy tag),\n* making the new tag the default to look first, before looking for the old tag,\n* moving the translations to the new code by renaming them,\n* checking links in source pages still using the legacy tag to change it to the new tag,\n* possibly cleanup the redirect pages.",
-       "variantname-sr-el": "{{optional}}\nVariant Option for wikis with variants conversion enabled.\n\nNote that <code>sr-el</code> is not a conforming BCP47 language tag. Wikis should be migrated by:\n* allowing it only as a legacy alias of the preferred tag <code>sr-latn</code> (possibly insert a tracking category in templates as long as they must support the legacy tag),\n* making the new tag the default to look first, before looking for the old tag,\n* moving the translations to the new code by renaming them,\n* checking links in source pages still using the legacy tag to change it to the new tag,\n* possibly cleanup the redirect pages.",
+       "variantname-sr-ec": "{{optional}}\nVariant Option for wikis with variants conversion enabled.\n\nNote that <code>sr-ec</code> is not a conforming BCP 47 language tag. Wikis should be migrated by:\n* allowing it only as a legacy alias of the preferred tag <code>sr-cyrl</code> (possibly insert a tracking category in templates as long as they must support the legacy tag),\n* making the new tag the default to look first, before looking for the old tag,\n* moving the translations to the new code by renaming them,\n* checking links in source pages still using the legacy tag to change it to the new tag,\n* possibly cleanup the redirect pages.",
+       "variantname-sr-el": "{{optional}}\nVariant Option for wikis with variants conversion enabled.\n\nNote that <code>sr-el</code> is not a conforming BCP 47 language tag. Wikis should be migrated by:\n* allowing it only as a legacy alias of the preferred tag <code>sr-latn</code> (possibly insert a tracking category in templates as long as they must support the legacy tag),\n* making the new tag the default to look first, before looking for the old tag,\n* moving the translations to the new code by renaming them,\n* checking links in source pages still using the legacy tag to change it to the new tag,\n* possibly cleanup the redirect pages.",
        "variantname-sr": "{{optional}}\nVariant Option for wikis with variants conversion enabled.",
        "variantname-kk-kz": "{{optional}}\nVariant Option for wikis with variants conversion enabled.",
        "variantname-kk-tr": "{{optional}}\nVariant Option for wikis with variants conversion enabled.",
index 8658b97..3275e0b 100644 (file)
        "talk": "Rimachina",
        "views": "Rikunakuna",
        "toolbox": "Llamk'anakuna",
+       "tool-link-userrights": "{{GENDER:$1|Ruraqpa}} huñunkunata llamk'apuy",
+       "tool-link-emailuser": "Kay {{GENDER:$1|ruraqman}} e-chaskita kachay",
        "imagepage": "Willañiqimanta p'anqata qhaway",
        "mediawikipage": "Willay p'anqata qhaway",
        "templatepage": "Plantilla p'anqata qhaway",
        "userrights-user-editname": "Ruraqpa sutinta qillqamuy:",
        "editusergroup": "Ruraqkunap huñunkunata hukchay",
        "editinguser": "Kay ruraqpa hayñinkunata hukchaspa: '''[[User:$1|$1]]''' $2",
-       "userrights-editusergroup": "Ruraqkunap huñunkunata hukchay",
+       "userrights-editusergroup": "{{GENDER:$1|Ruraqpa}} huñunkunata llamk'apuy",
        "saveusergroups": "Ruraq huñukunata waqaychay",
        "userrights-groupsmember": "Kayman kapuq:",
        "userrights-groupsmember-auto": "Ch'aqtasqalla wankurisqa kaypi:",
        "sp-contributions-username": "IP huchha icha ruraqpa sutin:",
        "sp-contributions-toponly": "Pata musuqchasqakunallata rikuchiy",
        "sp-contributions-newonly": "P'anqa kamarisqakunallata rikuchiy",
+       "sp-contributions-hideminor": "Aslla llamk'apusqakunata pakay",
        "sp-contributions-submit": "Maskay",
        "whatlinkshere": "Kayman t'inkimuq",
        "whatlinkshere-title": "$1 sutiyuq p'anqaman t'inkimuqkuna",
        "special-characters-group-khmer": "Khmer",
        "special-characters-title-endash": "kuru aspi",
        "special-characters-title-emdash": "suni aspi",
-       "special-characters-title-minus": "qichuy sanancha"
+       "special-characters-title-minus": "qichuy sanancha",
+       "mw-widgets-dateinput-no-date": "Manam akllasqa p'unchaw kanchu",
+       "date-range-from": "Kay p'unchawmanta:",
+       "date-range-to": "Kay p'unchawkama:"
 }
index 730985f..7259340 100644 (file)
        "botpasswords-existing": "Parole de robot existente",
        "botpasswords-createnew": "Creați o nouă parolă de bot",
        "botpasswords-editexisting": "Editați o parolă de bot",
+       "botpasswords-label-needsreset": "(parola trebuie resetată)",
        "botpasswords-label-appid": "Numele robotului:",
        "botpasswords-label-create": "Creare",
        "botpasswords-label-update": "Actualizează",
        "botpasswords-restriction-failed": "Restricțiile privind parola botului împiedică această conectare.",
        "botpasswords-invalid-name": "Numele de utilizator specificat nu conține separatorul de parole pentru bot (\"$1\").",
        "botpasswords-not-exist": "Utilizatorul \"$1\" nu are un bot de parole numit \"$2\".",
+       "botpasswords-needs-reset": "Parola de robot pentru robotul \"$1\" al {{GENDER:$2|utilizatorului|utilizatoarei}} \"$2\" trebuie resetată.",
        "resetpass_forbidden": "Parolele nu pot fi schimbate.",
        "resetpass_forbidden-reason": "Parolele nu pot fi schimbate: $1",
        "resetpass-no-info": "Trebuie să fiți autentificat pentru a accesa această pagină direct.",
        "resetpass-abort-generic": "Schimbarea parolei a fost anulată de către o extensie.",
        "resetpass-expired": "Parola dumneavoastră a expirat. Alegeți o parolă nouă pentru a vă autentifica.",
        "resetpass-expired-soft": "Parola dumneavoastră a expirat și trebuie schimbată. Alegeți o parolă nouă acum sau apăsați „{{int:authprovider-resetpass-skip-label}}” pentru a o reseta mai târziu.",
-       "resetpass-validity-soft": "Parola dumneavoastră nu este validă: $1 \n\nAlegeți o parolă nouă acum sau apăsați „{{int:authprovider-resetpass-skip-label}}” pentru a o reseta mai târziu.",
+       "resetpass-validity-soft": "Parola dumneavoastră nu este validă: $1 \n\nAlegeți o parolă nouă acum sau apăsați „{{int:authprovider-resetpass-skip-label}}” pentru a o schimba mai târziu.",
        "passwordreset": "Resetare parolă",
        "passwordreset-text-one": "Completați acest formular pentru a vă reseta parola.",
        "passwordreset-text-many": "{{PLURAL:$1|Completați unul din câmpuri pentru a primi o parolă temporară prin e-mail.}}",
        "savechanges": "Salvează modificările",
        "publishpage": "Publică pagina",
        "publishchanges": "Publică modificările",
+       "savearticle-start": "Salvare pagină...",
+       "savechanges-start": "Salvează modificările...",
+       "publishpage-start": "Publică pagina...",
+       "publishchanges-start": "Publică modificările...",
        "preview": "Previzualizare",
        "showpreview": "Previzualizare",
        "showdiff": "Afișare diferențe",
        "subject-preview": "Previzualizare subiect/titlu:",
        "previewerrortext": "A survenit o eroare ca urmare a tentativei de previzualizare a modificărilor dumneavoastră.",
        "blockedtitle": "Utilizatorul este blocat",
-       "blockedtext": "'''Adresa IP sau contul dumneavoastră de utilizator a fost blocat.'''\n\nBlocarea a fost făcută de $1.\nMotivul blocării este ''$2''.\n\n* Începutul blocării: $8\n* Sfârșitul blocării: $6\n* Utilizatorul vizat: $7\n\nÎl puteți contacta pe $1 sau pe alt [[{{MediaWiki:Grouppage-sysop}}|administrator]] pentru a discuta blocarea.\nNu puteți folosi opțiunea 'trimite un e-mai utilizatorului' decât dacă o adresă de e-mail validă este specificată în [[Special:Preferences|preferințele contului]] și nu sunteți blocat la folosirea ei.\nAdresa dumneavoastră IP curentă este $3, iar ID-ul blocării este $5. Vă rugăm să includeți oricare sau ambele informații în orice interogări.",
-       "autoblockedtext": "Această adresă IP a fost blocată automat deoarece a fost folosită de către un alt utilizator, care a fost blocat de $1.\nMotivul blocării este:\n\n:''$2''\n\n* Începutul blocării: $8\n* Sfârșitul blocării: $6\n* Intervalul blocării: $7\n\nPuteți contacta pe $1 sau pe unul dintre ceilalți [[{{MediaWiki:Grouppage-sysop}}|administratori]] pentru a discuta blocarea.\n\nNu veți putea folosi opțiunea de \"trimite e-mail\" decât dacă aveți înregistrată o adresă de e-mail validă la [[Special:Preferences|preferințe]] și nu sunteți blocat la folosirea ei.\n\nAveți adresa IP $3, iar identificatorul dumneavoastră de blocare este $5.\nVă rugăm să includeți detaliile de mai sus în orice interogări pe care le faceți.",
+       "blockedtext": "* Începutul blocării: $8\n* Sfârșitul blocării: $6\n* Utilizatorul vizat: $7\n\nÎl puteți contacta pe $1 sau pe alt [[{{MediaWiki:Grouppage-sysop}}|administrator]] pentru a discuta blocarea.\nNu puteți folosi opțiunea 'trimite un e-mai utilizatorului' decât dacă o adresă de e-mail validă este specificată în [[Special:Preferences|preferințele contului]] și nu sunteți blocat la folosirea ei.\nAdresa dumneavoastră IP curentă este $3, iar ID-ul blocării este #$5. Vă rugăm să includeți toate detaliile de mai sus în orice mesaj.",
+       "autoblockedtext": "Această adresă IP a fost blocată automat deoarece a fost folosită de către un alt utilizator, care a fost blocat de $1.\nMotivul blocării este:\n\n:<em>$2</em>\n\n* Începutul blocării: $8\n* Sfârșitul blocării: $6\n* Intervalul blocării: $7\n\nPuteți contacta pe $1 sau pe unul dintre ceilalți [[{{MediaWiki:Grouppage-sysop}}|administratori]] pentru a discuta blocarea.\n\nNu veți putea folosi opțiunea de \"{{int:emailuser}}\" decât dacă aveți înregistrată o adresă de e-mail validă la [[Special:Preferences|preferințe]] și nu sunteți blocat la folosirea ei.\n\nAveți adresa IP $3, iar identificatorul dumneavoastră de blocare este #$5.\nVă rugăm să includeți detaliile de mai sus în orice mesaje pe care le trimiteți.",
        "systemblockedtext": "Numele de utilizator sau adresa IP a fost blocat automat de MediaWiki.\nMotivul indicat este:\n\n:<em>$2</em>\n\n\n* Începutul blocării: $8\n* Expirarea blocării: $6\n* Utilizatorul vizat: $7\n\nAdresa IP curentă a dumneavoastră este $3.\nVă rugăm să includeți toate detaliile de mai sus în orice interogare pe care o veți faceți.",
        "blockednoreason": "nici un motiv oferit",
        "whitelistedittext": "Trebuie să vă $1 pentru a putea modifica pagini.",
        "blocked-notice-logextract": "Acest utilizator este momentan blocat.\nUltima intrare în jurnalul blocărilor este afișată mai jos pentru referință:",
        "clearyourcache": "<strong>Notă:</strong> După salvare, trebuie să treceți peste memoria cache a navigatorului pentru a putea vedea modificările:\n* <strong>Firefox / Safari:</strong> țineți apăsat pe <em>Shift</em> în timp ce faceți clic pe <em>Reîncărcare</em> ori apăsați <em>Ctrl-F5</em> sau <em>Ctrl-R</em> (<em>⌘-R</em> pe un sistem Mac);\n* <strong>Google Chrome:</strong> apăsați <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> pe un sistem Mac);\n* <strong>Internet Explorer:</strong> țineți apăsat pe <em>Ctrl</em> în timp ce faceți clic pe ''Reîmprospătare'' sau apăsați <em>Ctrl-F5</em>;\n* <strong>Opera:</strong> Mergeți la <em>Meniu → Setări</em> (<em>Opera → Preferințe</em> pe un sistem Mac) și apoi la <em>Confidențialitate & securitate → Șterge istoricul de navigare → Imagini și fișiere memorate în cache</em>.",
        "usercssyoucanpreview": "'''Sfat:''' Folosiți butonul „{{int:showpreview}}” pentru a testa noul CSS înainte de a-l salva.",
+       "userjsonyoucanpreview": "'''Sfat:''' Folosiți butonul „{{int:showpreview}}” pentru a testa noul JSON înainte de a-l salva.",
        "userjsyoucanpreview": "'''Sfat:''' Folosiți butonul „{{int:showpreview}}” pentru a testa noul JavaScript înainte de a-l salva.",
        "usercsspreview": "'''Rețineți că vizualizați doar o previzualizare a CSS-ului dumneavoastră de utilizator.'''\n'''Acesta nu a fost încă salvat!'''",
+       "userjsonpreview": "<strong>Rețineți că vedeți doar o previzualizare a JSON-ului dumneavoastră de utilizator.\nAcesta nu a fost încă salvat!</strong>",
        "userjspreview": "'''Rețineți că vizualizați doar o previzualizare/versiune de testare a JavaScript-ului dumneavoastră de utilizator.'''\n'''Acesta nu a fost încă salvat!'''",
        "sitecsspreview": "'''Rețineți că doar previzualizați această foaie de stil.'''\n'''Ea nu a fost salvată încă!'''",
        "sitejspreview": "'''Rețineți că doar previzualizați acest cod JavaScript.'''\n'''El nu a fost salvat încă!'''",
        "default": "standard",
        "prefs-files": "Fișiere",
        "prefs-custom-css": "CSS personalizat",
+       "prefs-custom-json": "JSON personalizat",
        "prefs-custom-js": "JS personalizat",
-       "prefs-common-config": "Pagini CSS și JavaScript comune pentru toate interfețele:",
+       "prefs-common-config": "Pagini CSS/JSON/JavaScript comune pentru toate interfețele:",
        "prefs-reset-intro": "Poți folosi această pagină pentru a reseta preferințele la valorile implicite.\nAcțiunea nu este reversibilă.",
        "prefs-emailconfirm-label": "Confirmare e-mail:",
        "youremail": "Adresă de e-mail:",
        "prefs-dateformat": "Format dată",
        "prefs-timeoffset": "Decalaj orar",
        "prefs-advancedediting": "Opțiuni generale",
+       "prefs-developertools": "Unelte pentru dezvolatori",
        "prefs-editor": "Editor",
        "prefs-preview": "Previzualizare",
        "prefs-advancedrc": "Opțiuni avansate",
        "right-editcontentmodel": "Modifică modelul de conținut al unei pagini",
        "right-editinterface": "Modifică interfața cu utilizatorul",
        "right-editusercss": "Modifică fișierele CSS ale altor utilizatori",
+       "right-edituserjson": "Modifică fișierele JSON ale altor utilizatori",
        "right-edituserjs": "Modifică fișierele JS ale altor utilizatori",
        "right-editmyusercss": "Modificați-vă propriile fișiere CSS",
+       "right-editmyuserjson": "Modificați-vă propriile fișiere JSON",
        "right-editmyuserjs": "Modificați-vă propriile fișiere JavaScript",
        "right-viewmywatchlist": "Vizualizați propria listă de pagini urmărite",
        "right-editmywatchlist": "Modificați propria listă de pagini urmărite. Rețineți că anumite acțiuni vor adăuga pagini chiar și fără acest drept.",
        "grant-createaccount": "Creare conturi",
        "grant-createeditmovepage": "Creează, editează și redenumește pagini",
        "grant-delete": "Șterge pagini, revizii și loguri",
-       "grant-editinterface": "Editați spațiul de nume MediaWiki și CSS/JavaScript de utilizator",
-       "grant-editmycssjs": "Editați CSS/JavaScript ale contului dv.",
+       "grant-editinterface": "Editați spațiul de nume MediaWiki și CSS/JSON/JavaScript de utilizator",
+       "grant-editmycssjs": "Editați CSS/JSON/JavaScript ale contului dv.",
        "grant-editmyoptions": "Modificați-vă preferințele de utilizator",
        "grant-editmywatchlist": "Modificați-vă lista de pagini urmărite",
        "grant-editpage": "Editați pagini existente",
        "rcfilters-other-review-tools": "Alte unelte de revizuire",
        "rcfilters-group-results-by-page": "Grupează rezultatele după pagină",
        "rcfilters-activefilters": "Filtre active",
+       "rcfilters-activefilters-hide": "Ascunde",
+       "rcfilters-activefilters-show": "Arată",
+       "rcfilters-activefilters-hide-tooltip": "Ascunde zona filtrelor active",
+       "rcfilters-activefilters-show-tooltip": "Arată zona filtrelor active",
        "rcfilters-advancedfilters": "Filtre avansate",
        "rcfilters-limit-title": "Schimbări de afișat",
        "rcfilters-limit-and-date-label": "$1 {{PLURAL:$1|schimbare|schimbări|de schimbări}}, $2",
        "rcfilters-savedqueries-rename": "Redenumește",
        "rcfilters-savedqueries-setdefault": "Setează ca predefinit",
        "rcfilters-savedqueries-unsetdefault": "Eliminați ca implicit",
-       "rcfilters-savedqueries-remove": "Elimină",
+       "rcfilters-savedqueries-remove": "Șterge",
        "rcfilters-savedqueries-new-name-label": "Nume",
        "rcfilters-savedqueries-new-name-placeholder": "Descrie scopul fitrului",
        "rcfilters-savedqueries-apply-label": "Crează filtru",
        "rcfilters-empty-filter": "Nu există filtre active. Toate contribuțiile sunt afișate.",
        "rcfilters-filterlist-title": "Filtre",
        "rcfilters-filterlist-whatsthis": "Cum funcționează acestea?",
-       "rcfilters-filterlist-feedbacklink": "Spuneți-ne ce credeți despre aceste (noi) unelte de filtrare",
+       "rcfilters-filterlist-feedbacklink": "Spuneți-ne ce credeți despre aceste unelte de filtrare",
        "rcfilters-highlightbutton-title": "Evidențiați rezultatele",
        "rcfilters-highlightmenu-title": "Selectați o culoare",
        "rcfilters-highlightmenu-help": "Selectați o culoare pentru a evidenția această proprietate",
        "rcfilters-filter-humans-description": "Modificări făcute de oameni.",
        "rcfilters-filtergroup-reviewstatus": "Statutul reviziei",
        "rcfilters-filter-reviewstatus-unpatrolled-label": "Nepatrulate",
+       "rcfilters-filter-reviewstatus-manual-label": "Patrulate manual",
+       "rcfilters-filter-reviewstatus-auto-label": "Patrulate automat",
        "rcfilters-filtergroup-significance": "Semnificație",
        "rcfilters-filter-minor-label": "Modificări minore",
        "rcfilters-filter-minor-description": "Modificări pe care autorul le-a marcat ca fiind minore.",
        "recentchangeslinked-feed": "Modificări corelate",
        "recentchangeslinked-toolbox": "Modificări corelate",
        "recentchangeslinked-title": "Modificări legate de „$1”",
-       "recentchangeslinked-summary": "Introduceți titlul unei pagini pentru a vedea schimbările din paginile spre care trimite sau care trimit spre ea. (Pentru a vedea membrii unei categorii, scrieți Categorie:Numele categoriei).\nSchimbările din paginile pe care le [[Special:Watchlist|urmăriți]] apar cu <strong>aldine</strong>.",
+       "recentchangeslinked-summary": "Introduceți titlul unei pagini pentru a vedea schimbările din paginile spre care trimite sau care trimit spre ea. (Pentru a vedea membrii unei categorii, scrieți {{ns:category}}:Numele categoriei).\nSchimbările din paginile pe care le [[Special:Watchlist|urmăriți]] apar cu <strong>aldine</strong>.",
        "recentchangeslinked-page": "Numele paginii:",
        "recentchangeslinked-to": "Arată în schimb modificările asupra paginilor care se leagă de pagina indicată",
        "recentchanges-page-added-to-category": "[[:$1]] a fost adăugată în categorii",
        "tooltip-ca-nstab-category": "Vezi categoria",
        "tooltip-minoredit": "Marchează această modificare ca fiind minoră",
        "tooltip-save": "Salvați modificările dumneavoastră",
-       "tooltip-publish": "Publică modificările tale",
+       "tooltip-publish": "Publicați-vă modificările",
        "tooltip-preview": "Previzualizați-vă modificările. Vă rugăm să faceți acest lucru înainte de a salva pagina.",
        "tooltip-diff": "Afișează modificările pe care le-ați efectuat asupra textului",
        "tooltip-compareselectedversions": "Vezi diferențele între cele două versiuni selectate de pe această pagină.",
index 4e753ce..c688b3f 100644 (file)
        "right-createtalk": "создание страниц обсуждений",
        "right-createaccount": "создание новых учётных записей участников",
        "right-autocreateaccount": "автоматический вход с помощью внешней учётной записи участника",
-       "right-minoredit": "пÑ\80оÑ\81Ñ\82ановка Ð¾Ñ\82меÑ\82ки Â«Ð¼Ð°Ð»Ð¾Ðµ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸ÐµÂ»",
+       "right-minoredit": "оÑ\82меÑ\82ка Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ ÐºÐ°Ðº Ð¼Ð°Ð»Ñ\8bÑ\85",
        "right-move": "переименование страниц",
        "right-move-subpages": "переименование страниц с их подстраницами",
        "right-move-rootuserpages": "переименование корневых страниц участников",
        "tooltip-ca-talk": "Обсуждение основной страницы",
        "tooltip-ca-edit": "Редактировать данную страницу",
        "tooltip-ca-addsection": "Создать новый раздел",
-       "tooltip-ca-viewsource": "Эта страница защищена от изменений, но вы можете посмотреть и скопировать её исходный текст",
+       "tooltip-ca-viewsource": "Эта страница защищена от изменений. Вы можете посмотреть и скопировать её исходный текст.",
        "tooltip-ca-history": "Журнал изменений страницы",
        "tooltip-ca-protect": "Защитить страницу от изменений",
        "tooltip-ca-unprotect": "Изменить защиту этой страницы",
index 3d12f42..76e4181 100644 (file)
        "right-createaccount": "ᱱᱟᱶᱟ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱠᱷᱟᱛᱟ ᱛᱮᱭᱟᱨ",
        "right-move": "ᱥᱟᱦᱴᱟᱠᱚ ᱥᱟᱦᱟᱭᱢᱮ",
        "right-move-subpages": "ᱥᱟᱦᱴᱟ ᱥᱟᱦᱟᱦᱟᱭᱢᱮ ᱥᱟᱶᱛᱮᱱ ᱥᱟᱦᱴᱟᱠᱚ ᱥᱟᱶ",
-       "right-movefile": "ᱨᱮᱫᱠá±\9a á±\9aᱪá±\9aá±\9cá±½ ᱢᱮ",
+       "right-movefile": "ᱨᱮᱫᱠá±\9a á±©á±ªá±\9fᱹᱲᱢᱮ",
        "right-upload": "ᱨᱮᱫ ᱠᱚ ᱞᱟᱫᱮᱢᱮ",
        "right-writeapi": "ᱚᱞ API ᱨᱮᱱᱟᱜ ᱵᱮᱵᱷᱟᱨ",
        "right-delete": "ᱥᱟᱦᱴᱟᱠᱚ ᱜᱮᱫᱽ ᱢᱮ",
        "newpages": "ᱱᱟᱶᱟ ᱥᱟᱦᱴᱟᱠᱳ",
        "newpages-username": "ᱵᱮᱵᱦᱟᱨᱤᱡ ᱧᱩᱛᱩᱢᱺ",
        "ancientpages": "ᱢᱟᱨᱮ ᱥᱟᱦᱴᱟᱠᱚ",
-       "move": "á±\9aᱪá±\9aá±\9c",
+       "move": "ᱩᱪá±\9fᱹᱲ",
        "movethispage": "ᱱᱚᱶᱟ ᱥᱟᱦᱴᱟ ᱥᱟᱦᱟᱭᱢᱮ",
        "pager-newer-n": "{{PLURAL:$1|1 ᱱᱟᱣᱟᱱᱟᱜ | ᱱᱟᱣᱟᱱᱟᱜ $1}}",
        "pager-older-n": "{{PLURAL:$1|ᱢᱟᱨᱮᱭᱟᱜ 1|ᱢᱟᱨᱮᱭᱟᱜ $1}}",
        "protectexpiry": "ᱢᱮᱭᱟᱫ ᱯᱟᱨᱚᱢ:",
        "protect-default": "ᱡᱚᱛᱚ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹᱠᱚ ᱫᱟᱣ ᱮᱢ",
        "restriction-edit": "ᱥᱟᱯᱲᱟᱣ",
-       "restriction-move": "á±\9aᱪá±\9aá±\9c",
+       "restriction-move": "ᱩᱪá±\9fᱹᱲ",
        "restriction-create": "ᱛᱮᱭᱟᱨ",
        "undeletelink": "ᱧᱮᱞ/ᱫᱚᱦᱚ ᱨᱩᱣᱟᱹᱲ",
        "undeleteviewlink": "ᱧᱮᱞ",
        "block-log-flags-noemail": "E-mail ᱵᱚᱸᱫᱷ ᱜᱮᱭᱟ",
        "block-log-flags-hiddenname": "ᱵᱮᱵᱦᱟᱨᱤᱭᱟᱜ ᱧᱩᱛᱩᱢ ᱩᱠᱩ ᱜᱮᱭᱟ",
        "proxyblocker": "ᱯᱨᱚᱠᱥᱤ ᱮᱥᱮᱫᱤᱡ",
-       "movepagebtn": "á±¥á±\9fᱦᱴá±\9f á±¥á±\9fᱦá±\9fá±­ᱢᱮ",
+       "movepagebtn": "á±¥á±\9fᱦᱴá±\9f á±©á±ªá±\9fᱹᱲᱢᱮ",
        "pagemovedsub": "ᱚᱪᱟᱜ ᱫᱚ ᱦᱩᱭᱱᱟ",
        "movelogpage": "ᱛᱟᱞᱟ ᱪᱟᱹᱵᱤ ᱚᱪᱚᱜᱽᱢᱮ",
        "revertmove": "ᱨᱩᱣᱟᱹᱲ ᱟᱹᱜᱩ",
        "logentry-delete-restore": "$1 {{GENDER:$2|ᱨᱟᱠᱷᱟ ᱫᱚᱲᱦᱟ}} ᱠᱮᱜ-ᱟ ᱥᱟᱦᱴᱟ $3 ($4)",
        "logentry-delete-revision": "$1 {{GENDER:$2|ᱵᱚᱫᱚᱞᱠᱮᱜ-ᱟᱭ}} ᱧᱮᱞᱚᱜᱟᱜ {{PLURAL:$5|ᱫᱚᱦᱲᱟᱭᱮᱱᱟᱜ|$5 ᱫᱚᱦᱲᱟᱭᱮᱱᱟᱜ ᱠᱚ}} $3: $4 ᱥᱟᱦᱴᱟ ᱪᱮᱛᱟᱱᱨᱮ",
        "revdelete-content-hid": "ᱩᱱᱩᱫᱩᱜ ᱫᱟᱱᱟᱝ",
-       "logentry-move-move": "$1 á±µá±®á±µá±¦á±\9fᱨᱤᱡ $3 á±¥á±\9fᱦᱴá±\9f á±«á±\9a $4 á±§á±¤á±\9bᱩᱢᱨᱮ {{GENDER:$2|á±\9aᱪá±\9aá±\9c}} á±\9fá± á±\9fᱫá±\9f",
+       "logentry-move-move": "$1 á±µá±®á±µá±·á±\9fᱨᱤᱡ $3 á±¥á±\9fᱦᱴá±\9f á±«á±\9a $4 á±§á±¤á±\9bᱩᱢᱨᱮ {{GENDER:$2|ᱩᱪá±\9fᱹᱲ}} á± á±®á±«á±¼á±\9fá±­",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|ᱩᱪᱟᱹᱲᱠᱮᱜ-ᱟᱭ}} ᱥᱟᱦᱴᱟ $3 to $4 ᱢᱚᱦᱰᱟ ᱵᱤᱱ ᱵᱟᱹᱜᱤ ᱠᱟᱛᱮ",
-       "logentry-move-move_redir": "$1 {{GENDER:$2|ᱩᱪᱟᱹᱲᱮᱱᱟ}} ᱥᱟᱦᱴᱟ $3 ᱠᱷᱚᱱ $4 ᱪᱮᱛᱟᱱ ᱢᱚᱸᱦᱰᱟ ᱦᱟᱠᱟᱱᱟ",
+       "logentry-move-move_redir": "ᱥᱟᱦᱴᱟ $3 ᱠᱷᱚᱱ $4 ᱛᱮ $1 {{GENDER:$2|ᱩᱪᱟᱹᱲ ᱠᱮᱫᱼᱟᱭ}} ᱢᱚᱸᱦᱰᱟ ᱥᱟᱶᱛᱮ",
        "logentry-patrol-patrol-auto": "$1 ᱟᱡᱛᱮᱜᱮ {{GENDER:$2|ᱪᱤᱱᱦᱟᱹᱭᱮᱱᱟ}} $4 ᱧᱮᱞᱟᱹᱨᱩ $3 ᱥᱟᱦᱴᱟ ᱨᱮᱱᱟᱜ ᱾",
        "logentry-newusers-create": "ᱵᱮᱵᱦᱟᱨᱤᱭᱟᱜ ᱦᱤᱥᱟᱹᱵ $1 ᱫᱚ {{GENDER:$2|ᱛᱮᱭᱟᱨᱱᱟ}}",
        "logentry-newusers-autocreate": "ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱠᱷᱟᱛᱟ $1 ᱫᱚ {{GENDER:$2|ᱛᱮᱭᱟᱨᱮᱱᱟ}} ᱟᱡᱛᱮᱜᱮ",
index 3d5944f..67ef97d 100644 (file)
        "viewsource-title": "$1 جو ڪوڊ ڏسو",
        "protectedpagetext": "هيءُ صفحو ترميمن ۽ ٻين عملن کان بچائڻ لاءِ تحفظيل آهي.",
        "viewsourcetext": "توهان هن صفحي جو ڪوڊ ڏسي ۽ نقل ڪري سگھو ٿا.",
+       "protectedinterface": "هي صفحو سافٽ ويئر جو انٽرفيس متعين ڪري ٿو ۽ غلط استعال کان بچڻ لاءِ ان کي تحفظيو ويو آهي.\nتمام وڪي ۾ ترجمو شامل ڪرڻ لاءِ يا هن ۾ تبديلي ڪرڻ لاءِ ميڊياوڪي ترجمو [https://translatewiki.net/ translatewiki.net] استعمال ڪيو.",
        "namespaceprotected": "توهان کي نانءُپولار <strong>$1</strong> جا صفحا سنوارڻ جا اختيار ناهن.",
        "mycustomcssprotected": "توهان کي هيءُ CSS صفحو سنوارڻ جي اجازت نہ آهي.",
        "mycustomjsprotected": "توهان کي هيءُ جاوا اسڪرپٽ صفحو سنوارڻ جي اجازت حاصل ڪانهي.",
        "preview": "پيش نگاھ",
        "showpreview": "پيش نگاھ",
        "showdiff": "تبديليون ڏيکاريو",
+       "blankarticle": "<strong>چتاءُ:</strong> اوهان خيالي صفحو تخليق ڪري رهيا آهيو.\nجيڪڏهن اوهان «$1» تي ٻيهر ڪلڪ ڪريو، ته هي صفحو بغير ڪنهن مواد جي ڇاپيو ويندو.",
        "anoneditwarning": "<strong>چتاءُ:</strong> توھان داخل ٿيل نہ آھيو. توھان جو آءِپي پتو عوامي طور ظاھر ٿيندو جي توھان ڪي ترميمون ڪريو ٿا. جيڪڏھن توھان <strong>[$1 داخل ٿيو]</strong> ٿا يا <strong>[$2 کاتو کوليو]</strong> ٿا، تہ ٻين فائدن سان گڏ توھان جون ترميمون توھان جي واپرائيندڙ-نانءَ سان منسوب ڪيون وينديون.",
        "anonpreviewwarning": "توهان داخل ٿيل نہ آهيو. جيڪڏهن توهان صفحي ۾ تبديليون سانڍيون تہ اهڙين تبديلين ساڻ توهان جو آءِپي پتو درج ڪيو ويندو.",
        "missingcommenttext": "براءِ مھرباني ڪو تاثر درج ڪندا.",
        "compareselectedversions": "چونڊيل پرت ڀيٽيو",
        "editundo": "اڻڪريو",
        "diff-empty": "(ڪو بہ تفاوت ڪونھي)",
+       "diff-multi-sameuser": "({{PLURAL:$1|هڪ تڪڙو مسودو|$1 تڪڙا مسودا}} ساڳي واپرائيندڙ طرفان ظهار نه ٿيندا)",
        "searchresults": "ڳولا نتيجا",
        "searchresults-title": "”$1“ لاءِ ڳولا نتيجا",
        "titlematches": "صفحي جو عنوان مشابھت رکي ٿو",
        "protectlogpage": "تحفظ لاگ",
        "protectedarticle": "محفوظ ٿيل \"[[$1]]\"",
        "modifiedarticleprotection": "\"[[$1]]\" جي تحفظ جي سطح تبديل ڪئي",
+       "movedarticleprotection": "\"[[$2]]\" جو حفاظت درجو \"[[$1]]\" جي طرف منتقل ڪيو",
        "prot_1movedto2": "[[$1]] کي چوري [[$2]] تي رکيو ويو",
        "protect-legend": "تحفظڻ جي پڪ ڪريو",
        "protectcomment": "سبب:",
        "whatlinkshere-next": "{{PLURAL:$1|اڳيون|اڳيان $1}}",
        "whatlinkshere-links": "← ڳنڍڻا",
        "whatlinkshere-hideredirs": "$1 چوري ٿو",
+       "whatlinkshere-hidetrans": "$1 شموليت",
        "whatlinkshere-hidelinks": "$1 ڳنڍڻا",
        "whatlinkshere-hideimages": "$1 ڳنڍي ٿو",
        "whatlinkshere-filters": "ڇاڻيون",
        "tooltip-compareselectedversions": "هن صفحي جن ٻن چونڊيل پرتن درميان تفاوت ڏسو.",
        "tooltip-watch": "هيءُ صفحو پنهنجي نظر ۾ فھرست ۾ شامل ڪريو",
        "tooltip-rollback": "\"واپس ورايو\" ھن صفحي ۾ پوئين ڀاڱيدار جي ڪيل ترميم(ن) کي ھڪ ٽڙڪ سان اڻڪري ٿو",
+       "tooltip-undo": "\"اڻڪريو\" هن ترميم کي واپس ڪيو ۽ پيش نگاه ۾ ترميم کي کوليو. اهو اوهان کي تت شامل ڪرڻ جو موقعو ڏيندو.",
        "tooltip-preferences-save": "ترجيحون سانڍيو",
        "tooltip-summary": "ننڍو خلاصو ڏيو",
        "anonymous": "{{SITENAME}} جا گمنام {{PLURAL:$1|واپرائيندڙ|واپرائيندڙَ}}",
        "sunday-at": "$1 بجي آچر",
        "yesterday-at": "$1 بجي ڪالهہ",
        "metadata": "اعدادِ اعداد",
+       "metadata-help": "هن فائل ۾ وڌيڪ ڄاڻ موجود آهي، جيڪو ڪنهن ڊجيٽل ڪيمرا يا اسڪينر متعلق آهي،  جنهن سان هي عڪس چٽيو ويو آهي. \nجيڪڏهن فائل ترميم ڪيل هجي ته پوءِ ممڪن آهي ته ڪجه ڄاڻ ضايع ٿي چڪو هجي.",
        "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",
        "confirmemail_success": "توهان جي برقٽپال پتي جي تصديق ڪئي وئي آهي.\nهاڻ توهان [[Special:UserLogin|داخل ٿي]] ۽ وڪي جو مزو وٺي سگھو ٿا.",
        "confirmemail_loggedin": "توهان جي برقٽپال پتي جي تصديق هاڻي ٿي چڪي آهي.",
        "confirmemail_subject": "{{SITENAME}} برقٽپال پتي جي تصديق",
+       "confirmemail_body": "ڪنهن، شايد اوهان جي، هن آئي پي پتي $1 کان {{SITENAME}} ۾ «$2» جي نالي سان کاتو کوليو ۽ هن برق ٽپال کي استعمال ڪيو آهي.\n\nهن ڳالهه جي تصديق ڪري وٺو ته هي کاتو اوهان جو ئي آهي ۽ {{SITENAME}} تي پڻ هي برق ٽپال ڏنل آهي، ته پوءِ هيٺين ڳنڍڻي تي ڪلڪ ڪيو. يا ڪاپي ڪري برائوزر تي کوليو.\n\n$3\n\nجيڪڏهن اوهان کاتي ۾ برق ٽپال رجسٽر *نه* ڪيو آهي ته هيٺين ڳنڍڻي کي ڪلڪ ڪيو يا برائوزر ۾ کوليو:\n\n$5\n\nهن ڪوڊ جي تصديقي جي مدت $4 تي ختم ٿي ويندي.",
        "recreate": "ورسرجيو",
        "confirm-watch-button": "ٺيڪ",
        "confirm-watch-top": "هيءُ صفحو پنهنجي نظر ۾ فھرست ۾ شامل ڪندا؟",
        "watchlisttools-edit": "نظر ۾ فهرست ڏسو ۽ سنواريو",
        "watchlisttools-raw": "ڪچي نظر ۾ فھرست سنواريو",
        "hijri-calendar-m10": "شوال",
+       "hijri-calendar-m11": "ذوالقعد",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|ڳالھ]])",
        "version": "ڀيرو",
        "version-extensions": "تنصيب شده توسيعات",
        "tag-filter-submit": "ڇاڻي",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ٽيگ|ٽيگز}}]]: $2)",
        "tag-mw-new-redirect": "نئون چوريل",
+       "tag-mw-blank": "خالي",
        "tag-mw-rollback-description": "واپس-ورايو ڳنڍڻي کي استعمال ڪندي پوين ترميمن کي واپس ورائيندڙ ترميمون",
        "tags-title": "ٽيگس",
        "tags-tag": "ٽيگ نانءُ",
index 170c9b8..a1493ae 100644 (file)
        "search-ignored-headings": "#<!-- eǧǧ izirigen-agi akken llan --><pre>\n# Izwal n tgezmiyin ad ttwazeglen deg unadi\n# Ibeddilen yettwagen dagi ad ddun ticki asebter s uzwel yettwarna ar umatar.\n# Tzemreḍ ad ḥettmeḍ tulsa n tmerna ar umatar n usebter s usnifel ilem\n# Taseddast d tagi :\n#   * Yal iziirig ibeddun s \"#\" d awennit\n#   * Yal izirig yeččuren d azwel ara tzegleḍ, ula d taṛuzi n usekkil\nTimsisɣal\nIseɣwan izɣarayen\nWali daɣen\n #</pre><!-- eǧǧ izirig-agi akken yella -->",
        "searchbutton": "Iruzzi",
        "go": "Ẓer",
-       "searcharticle": "áº\92er",
+       "searcharticle": "á¹\9auḥ",
        "history": "Amezruy n usebter",
        "history_short": "Amazray",
        "history_small": "amazray",
        "right-reupload-shared": "Ɛefes deg udigan afaylu yellan ɣef azadur azduklan",
        "right-upload_by_url": "Kter afaylu seg tansa URL",
        "enhancedrc-history": "amazray",
+       "recentchanges": "Ibeddilen imaynuten",
+       "recentchanges-label-newpage": "Abeddel agi ad yesnulfu asebter amaynut",
+       "recentchanges-label-minor": "Wagi d-abeddel amectuḥ",
+       "recentchanges-label-bot": "D-arubut id yeseqdacen abeddel agi",
        "recentchanges-submit": "Ssken",
        "rcshowhideminor-show": "Ssken",
        "rcshowhideminor-hide": "Ffer",
        "rcshowhidemine-show": "Ssken",
        "rcshowhidemine-hide": "Ffer",
        "rcshowhidecategorization-show": "Ssken",
+       "diff": "amgi",
+       "hist": "amez",
        "hide": "Ffer",
        "show": "Ssken",
+       "minoreditletter": "m",
+       "newpageletter": "N",
+       "boteditletter": "b",
+       "rc-change-size-new": "$1 {{PLURAL:$1|atamḍan|itamḍanen}} seld abeddel",
+       "recentchangeslinked-toolbox": "Ibeddlen imaynuten n isebtar myezdin",
        "upload": "Azen afaylu",
        "imgfile": "Afaylu",
        "file-anchor-link": "Afaylu",
+       "filehist": "Amazray n ufaylu",
+       "filehist-thumbtext": "Tugna tamectuḥt i lqem n $1",
+       "imagelinks": "Aseqdec n ufaylu",
+       "randompage": "Asebter menwala",
        "withoutinterwiki-submit": "Ssken",
        "nbytes": "$1 {{PLURAL:$1|byte|bytes}}",
        "prefixindex-submit": "Ssken",
+       "newpages": "Isebtar imaynuten",
        "newpages-submit": "Ssken",
        "newpages-username": "Isem n useqdac:",
        "logeventslist-submit": "Ssken",
+       "allpagessubmit": "Ṛuḥ",
        "categories-submit": "Ssken",
        "linksearch-ok": "Iruzzi",
        "listusers-submit": "Ssken",
        "emailusername": "Isem n useqdac:",
        "watchlist-submit": "Ssken",
        "historyaction-submit": "Ssken",
+       "rollbacklink": "semmet",
        "restriction-edit": "Glef",
        "undelete-search-submit": "Iruzzi",
        "namespace": "Talluntin n isemawen",
+       "blanknamespace": "(Agejdan)",
        "sp-contributions-submit": "Iruzzi",
+       "whatlinkshere": "Ayen i d-yettawi ɣer da",
        "ipblocklist-submit": "Iruzzi",
+       "contribslink": "attekki",
+       "thumbnail-more": "Ssemɣer",
+       "tooltip-pt-login": "Lukan tkecmeḍ xir, meɛna am tebɣiḍ",
        "tooltip-pt-logout": "Ffeɣ",
+       "tooltip-pt-createaccount": "Yelha limer ad ternuḍ amiḍan sakin ad teqqneḍ; maca, ur issefk ara",
+       "tooltip-ca-talk": "Aseqerdec ɣef usebter-agi n ugbur",
+       "tooltip-ca-edit": "Ẓreg asebter-agi",
+       "tooltip-ca-history": "Tisiwal ssabeq n usebter-agi.",
+       "tooltip-ca-watch": "Rnu asebter-agi ar tebdart-ik n uḍfaṛ",
        "tooltip-search": "Iruzzi {{SITENAME}}",
+       "tooltip-search-go": "Ṛuḥ ɣer usebter i sɛan isem agi ma yella",
+       "tooltip-search-fulltext": "Nadi isebtar i sɛan aḍris agi",
+       "tooltip-p-logo": "Rzu ar usebter agejdan",
+       "tooltip-n-mainpage": "Rzu ar usebter agejdan",
+       "tooltip-n-mainpage-description": "Rzu ar usebter agejdan",
+       "tooltip-n-portal": "Ɣef usenfar, ayen tzemrḍ ad txedmeḍ, anda tafeḍ tiɣawsiwin",
+       "tooltip-n-currentevents": "Af ayen yeḍran tura",
+       "tooltip-n-recentchanges": "Umuɣ n yibeddlen imaynuten deg wiki",
+       "tooltip-n-randompage": "Ẓer asebter menwala",
+       "tooltip-n-help": "Amkan ideg tafeḍ",
+       "tooltip-t-whatlinkshere": "Umuɣ n akk isebtar i yesɛan azday ar dagi",
+       "tooltip-t-recentchangeslinked": "Ibeddlen imaynuten deg isebtar myezdin seg usebter-agi",
        "tooltip-t-upload": "Azen ifuyla",
+       "tooltip-t-specialpages": "Umuɣ n akk isebtar usligen",
+       "tooltip-t-print": "Lqem tasiggezt n usebter agi",
+       "tooltip-t-permalink": "Azday ameɣlal ɣer lqem agi n usebter",
+       "tooltip-ca-nstab-main": "Ẓer ayen yellan deg usebter",
+       "tooltip-ca-nstab-special": "Wagi d asebter uzzig, ur tezmireḍ ara ad t-tbeddleḍ",
        "tooltip-ca-nstab-category": "Ẓer asebter n taggayin",
+       "tooltip-rollback": "\"Semmet\" yesemmet s-yiwen asenned akk d-acu amseqdac aneggaru yebeddel deg usebter",
        "pageinfo-toolboxlink": "Tilɣa n udasil",
        "pageinfo-contentpage-yes": "Ih",
        "show-big-image-size": "$1 × $2 pixels",
        "ilsubmit": "Iruzzi",
        "days": "{{PLURAL:$1|$1 ass|$1 ussan}}",
+       "metadata": "Adferisefka",
+       "metadata-fields": "Urtan n adferisefka n tugniwin yellan deg umuɣ n izen agi, ad seddun deg usebter n aglam n tugna mi ṭabla n adferisefka at illi tesemẓi. Urtan nniḍen ad illin ffren m-ulac.\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",
        "namespacesall": "akk",
        "monthsall": "akk",
        "fileduplicatesearch-submit": "Iruzzi",
        "specialpages": "Asebter uslig",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Ticṛeṭ|Ticraḍ}}]] : $2)",
        "tags-active-yes": "Ih",
        "tags-active-no": "Uhu",
        "searchsuggest-search": "Iruzzi {{SITENAME}}",
index 326b33b..3fe3bc8 100644 (file)
        "print": "Tlač",
        "view": "Zobraziť",
        "view-foreign": "Prehliadnuť na {{GRAMMAR:lokál|$1}}",
-       "edit": "upraviť",
+       "edit": "Upraviť",
        "edit-local": "Upraviť miestny popis",
        "create": "Vytvoriť",
        "create-local": "Pridať miestny popis",
        "dellogpage": "Záznam zmazaní",
        "dellogpagetext": "Tu je zoznam posledných zmazaní.",
        "deletionlog": "záznam zmazaní",
+       "log-name-create": "Záznam vytvorení stránok",
+       "log-description-create": "Toto je zoznam posledných vytvorených stránok.",
        "reverted": "Obnovené na skoršiu verziu",
        "deletecomment": "Dôvod:",
        "deleteotherreason": "Iný/ďalší dôvod:",
index f5d84d8..a9d9e7c 100644 (file)
@@ -9,7 +9,7 @@
        "tog-hideminor": "چھوٹیاں تبدیلیاں لُکاؤ",
        "tog-hidepatrolled": "تازہ تبدیلیاں وچوں زیرنگرانی تبدیلیاں لکاؤ",
        "tog-newpageshidepatrolled": "نویں ورقیاں دی فہرست وچوں نگرانی ہیٹھ ورقے لُکاؤ",
-       "tog-hidecategorization": "Ù\88رÙ\82Û\8cاں Ø¯Û\8cاں Ù\82سÙ\85 بندی لُکاؤ",
+       "tog-hidecategorization": "Ù\88رÙ\82Û\8cاں Ø¯Û\8cاں Ù\88Ù\86Ú©Û\8c بندی لُکاؤ",
        "tog-numberheadings": "سرخیاں کوں خود کار نمبر ݙیوو",
        "tog-showtoolbar": "آلات ترمیم ݙکھاؤ",
        "tog-editondblclick": "ڈبل کلک نال ورقے وچ تبدیلیاں کرو",
@@ -20,8 +20,8 @@
        "tog-watchlisthideown": "میݙیاں تبدیلیاں اکھیں ہیٹھ فہرست وچوں لکاؤ",
        "tog-watchlisthidebots": "بوٹ دیاں تبدیلیاں اکھیں ہیٹھ فہرست وچوں لکاؤ",
        "tog-watchlisthideminor": "چھوٹیاں تبدیلیاں اکھیں ہیٹھ فہرست وچوں لکاؤ",
-       "tog-watchlisthidecategorization": "Ù\88رÙ\82Û\8cاں Ø¯Û\8cاں Ù\82سÙ\85 بندی لُکاؤ",
-       "tog-showhiddencats": "Ù\84Ú³Û\8cاں Ù\82سÙ\85اں ݙکھاؤ",
+       "tog-watchlisthidecategorization": "Ù\88رÙ\82Û\8cاں Ø¯Û\8cاں Ù\88Ù\86Ú©Û\8c بندی لُکاؤ",
+       "tog-showhiddencats": "Ù\84Ú³Û\8cاں Ù\88Ù\86Ú©Û\8cاں ݙکھاؤ",
        "underline-always": "ہمیشہ",
        "underline-never": "کݙاہیں وی کائناں",
        "underline-default": "سکن یا براؤزر دا طے شدہ",
        "december-date": "$1 دسمبر",
        "period-am": "سویر",
        "period-pm": "شام",
-       "pagecategories": "{{PLURAL:$1|زمرہ|زمرہ جات}}",
-       "category_header": "زمرہ \"$1\" وچ ورقے",
-       "subcategories": "ذیلی زمرہ جات",
-       "category-media-header": "زمرہ \"$1\" وچ میڈیا",
+       "pagecategories": "{{PLURAL:$1|ونکی|ونکیاں}}",
+       "category_header": "ونکی \"$1\" وچ ورقے",
+       "subcategories": "ذیلی ونکیاں",
+       "category-media-header": "ونکی \"$1\" وچ میڈیا",
        "category-empty": "<em>ایں قسم وچ اڄݨ تائیں کوئی ورقہ یا میڈیا کائنی۔</em>",
-       "hidden-categories": "{{PLURAL:$1|Ù¾Ù\88Ø´Û\8cدÛ\81 Ø²Ù\85رÛ\81|Ù¾Ù\88Ø´Û\8cدÛ\81 Ø²Ù\85رÛ\81 Ø¬Ø§Øª}}",
-       "hidden-category-category": "Ù\84Ú©Û\8cاں Ù\82سÙ\85اں",
+       "hidden-categories": "{{PLURAL:$1|Ù\84Ú³Û\8c Ù\88Ù\86Ú©Û\8c\84Ù\8fÚ³Û\8cاں Ù\88Ù\86Ú©Û\8cاں}}",
+       "hidden-category-category": "Ù\84Ú©Û\8cاں Ù\88Ù\86Ú©Û\8cاں",
        "listingcontinuesabbrev": "جاری۔",
        "index-category": "فہرست شدہ ورقے",
        "noindex-category": "غیر فہرست شدہ صفحات",
        "faq": "عام طور تے پچھے ونڄݨ آلے سوال",
        "actions": "کم",
        "namespaces": "ناں جاہیں",
-       "variants": "Ù\82سÙ\85اں",
+       "variants": "Ù\88Ù\86Ú©Û\8cاں",
        "navigation-heading": "نیوی ڳیشݨ فہرست",
        "errorpagetitle": "نقص",
        "returnto": "واپس $1 چلو",
        "nstab-mediawiki": "سنیہہ",
        "nstab-template": "سانچہ",
        "nstab-help": "مدد ورقہ",
-       "nstab-category": "زمرہ",
+       "nstab-category": "ونکی",
        "mainpage-nstab": "وݙا ورقہ",
        "nosuchaction": "کوئی اینجھا کم کائنی",
        "nosuchspecialpage": "اینجھا کوئی خاص ورقہ کائنی",
        "templatesusedpreview": "ایں کچے کم تے  ورتے ڳئے {{PLURAL:$1|سانچے|سانچہ}}:",
        "template-protected": "(بچایا ڳیا)",
        "template-semiprotected": "(نیم محفوظ)",
-       "hiddencategories": "اÛ\8cÛ\81 Ù\88رÙ\82Û\81 {{PLURAL:$1|1 Ù\84Ù\8fÚ©Û\92 Ø²Ù\85رÛ\8cاں|$1 Ù\84کا Ø²Ù\85رÛ\81 }} وچ شامل ہے:",
+       "hiddencategories": "اÛ\8cÛ\81 Ù\88رÙ\82Û\81 {{PLURAL:$1|1 Ù\84Ù\8fÚ³Û\8cاں Ù\88Ù\86Ú©Û\8cاں|$1 Ù\84Ú³Û\8c Ù\88Ù\86Ú©Û\8c }} وچ شامل ہے:",
        "permissionserrors": "خطائے اجازت",
        "permissionserrorstext-withaction": "انہاں {{PLURAL:$1|وجہ|وجوہات}} پاروں تہاکوں$2 دی اجازت کائنی",
        "moveddeleted-notice": "ایہ ورقہ مٹایا ڳیا ہے۔ مٹاوݨ دا لاگ،حفاظت دا لاگ تے ورقہ ٹورݨ دا لاگ  حوالے کیتے ہیٹھاں ݙتے ہوئے ہن۔",
        "upload-form-label-usage-title": "استعمال",
        "upload-form-label-usage-filename": "فائل دا ناں",
        "upload-form-label-own-work": "یہ میݙا ذاتی کم ہے",
-       "upload-form-label-infoform-categories": "Ù\82سÙ\85اںØ\8c Ø²Ù\85رÛ\92",
+       "upload-form-label-infoform-categories": "Ù\88Ù\86Ú©Û\8cاں",
        "upload-form-label-infoform-date": "تاریخ",
        "backend-fail-delete": "مِسَل \"$1\" کوں مٹایا نی ونڄ سڳیا۔",
        "license": "اجازت نامہ:",
        "filedelete-submit": "مٹاؤ",
        "filedelete-maintenance-title": "مِسل نی مٹا سڳدے",
        "randompage": "رلے ملے ورقے",
-       "randomincategory-category": "Ù\82سÙ\85:",
+       "randomincategory-category": "Ù\88Ù\86Ú©Û\8c:",
        "randomincategory-submit": "ڄلو",
        "statistics": "شماريات",
        "statistics-pages": "ورقے",
        "allarticles": "سارے مقالے",
        "allpagessubmit": "ڄلو",
        "allpages-hide-redirects": "رجوع مکررات لکاؤ",
-       "categories": "زمرہ",
+       "categories": "ونکی",
        "categories-submit": "ݙِکھاؤ",
        "deletedcontributions": "ورتݨ آلے دے کم مٹا ݙتے ڳئے",
        "linksearch-ok": "ڳولو",
        "pageinfo-recent-edits": "حالیہ ترامیم دی تعداد (گزشتہ $1 وچ)",
        "pageinfo-recent-authors": "مختلف مصنفین دی حالیہ تعداد",
        "pageinfo-magic-words": "جادوئی {{PLURAL:$1|لفظ|الفاظ}} ($1)",
-       "pageinfo-hidden-categories": "Ù¾Ù\88Ø´Û\8cدÛ\81 {{PLURAL:$1|زÙ\85رÛ\81|زÙ\85رÛ\81 Ø¬Ø§Øª}} ($1)",
+       "pageinfo-hidden-categories": "Ù\84Ú³Û\92 {{PLURAL:$1|Ù\88Ù\86Ú©Û\8c\88Ù\86Ú©Û\8cاں}} ($1)",
        "pageinfo-templates": "زیر استعمال {{PLURAL:$1|سانچہ|سانچے}} ($1)",
        "pageinfo-toolboxlink": "معلومات ورقہ",
        "pageinfo-contentpage": "شمار بطور ورقہ",
index 81cba7f..b57bd0b 100644 (file)
        "session_fail_preview": "Oprostite! Zaradi izgube podatkov o seji nam vašega urejanja žal ni uspelo obdelati.\n\nMorda ste bili odjavljeni. <strong>Prosimo, preverite, da ste še vedno prijavljeni, in poskusite znova.</strong>\nČe še vedno ne deluje, se poskusite [[Special:UserLogout|odjaviti]] in znova prijaviti; prav tako preverite, da vaš brskalnik dovoljuje piškotke s te strani.",
        "session_fail_preview_html": "Oprostite! Zaradi izgube podatkov o seji nam vašega urejanja ni uspelo obdelati.\n\n<em>Ker ima {{SITENAME}} omogočen surov HTML, smo predogled skrili kot previdnostni ukrep pred napadi z JavaScriptom.</em>\n\n<strong>Če gre za dobronameren poskus urejanja, vas prosimo, da poskusite znova.</strong>\nČe še vedno ne deluje, se poskusite [[Special:UserLogout|odjaviti]] in znova prijaviti; prav tako preverite, da vaš brskalnik dovoljuje piškotke s te strani.",
        "token_suffix_mismatch": "'''Vaše urejanje je bilo zavrnjeno, ker je vaš odjemalec pokvaril ločila v urejevalnem zahtevku.'''\nUrejanje je bilo zavrnjeno z namenom preprečitve okvare v besedilu strani.\nNajvečkrat je razlog uporaba hroščato spletno anonimizacijsko storitev.",
-       "edit_form_incomplete": "'''Nekateri deli urejevalnega obrazca niso dosegli strežnika; prepričajte se, da so vaša urejanja neokrnjena in poskusite znova.'''",
+       "edit_form_incomplete": "<strong>Nekateri deli urejevalnega obrazca niso dosegli strežnika; prepričajte se, da so vaša urejanja neokrnjena, in poskusite znova.</strong>",
        "editing": "Urejanje $1",
        "creating": "Ustvarjanje strani $1",
        "editingsection": "Urejanje $1 (razdelek)",
index f8bffa7..d615041 100644 (file)
        "youhavenewmessagesmulti": "Имате нове поруке на $1",
        "editsection": "уреди",
        "editold": "уреди",
-       "viewsourceold": "изворни кôд",
+       "viewsourceold": "изворни код",
        "editlink": "уреди",
-       "viewsourcelink": "изворни кôд",
+       "viewsourcelink": "изворни код",
        "editsectionhint": "Уредите одељак „$1“",
        "toc": "Садржај",
        "showtoc": "прикажи",
        "hidetoc": "сакриј",
-       "collapsible-collapse": "Ñ\81кÑ\83пи",
-       "collapsible-expand": "пÑ\80оÑ\88иÑ\80и",
+       "collapsible-collapse": "Ñ\81акÑ\80иÑ\98",
+       "collapsible-expand": "пÑ\80икажи",
        "confirmable-confirm": "Да ли {{GENDER:$1|сте}} сигурни?",
        "confirmable-yes": "Да",
        "confirmable-no": "Не",
        "perfcached": "Следећи подаци су кеширани и можда нису ажурирани. У кешу {{PLURAL:$1|је доступан највише један резултат|су доступна највише $1 резултата|је доступно највише $1 резултата}}.",
        "perfcachedts": "Следећи подаци су кеширани и последњи пут ажурирани на датум $2 у $3 ч. У кешу {{PLURAL:$4|је доступан највише један резултат|су доступна највише $4 резултата|је доступно највише $4 резултата}}.",
        "querypage-no-updates": "Ажурирање ове странице је тренутно онемогућено.\nПодаци који се овде налазе могу бити застарели.",
-       "viewsource": "Изворни кôд",
-       "viewsource-title": "Изворни кôд за страницу $1",
+       "viewsource": "Изворни код",
+       "viewsource-title": "Изворни код за страницу $1",
        "actionthrottled": "Радња је успорена",
        "actionthrottledtext": "У циљу борбе против непожељних порука, ограничене су вам измене у одређеном времену, а управо сте прешли то ограничење. Покушајте поново за неколико минута.",
        "protectedpagetext": "Ова страница је закључана за измене и друге радње.",
-       "viewsourcetext": "Можете да погледате и копирате изворни кôд ове странице.",
-       "viewyourtext": "Можете да погледате и копирате изворни кôд <strong>Ваших измена</strong> на овој страници.",
+       "viewsourcetext": "Можете да читате и копирате изворник ове странице.",
+       "viewyourtext": "Можете да погледате и копирате изворни код <strong>Ваших измена</strong> на овој страници.",
        "protectedinterface": "Ова страница садржи текст интерфејса за софтвер на овом викију и заштићена је ради спречавања злоупотребе.\nДа бисте додали или изменили преводе било којег викија, посетите [https://translatewiki.net/ translatewiki.net], пројекат за локализацију Медијавикија.",
        "editinginterface": "<strong>Упозорење:</strong> уређујете страницу која се користи за приказивање текста корисничког окружења.\nИзмене на овој страници ће утицати на све кориснике овог викија.",
        "translateinterface": "Да додате или промените преводе за све викије, посетите [https://translatewiki.net/ Транслејтвики], пројекат за локализацију Медијавикија.",
        "link_sample": "Наслов везе",
        "link_tip": "Унутрашња веза",
        "extlink_sample": "http://www.example.com/ наслов везе",
-       "extlink_tip": "Спољашња веза (запамтите префикс http://)",
-       "headline_sample": "Ð\9dаÑ\81лов",
-       "headline_tip": "Поднаслов",
+       "extlink_tip": "Спољашња веза (с префиксом http://)",
+       "headline_sample": "ТекÑ\81Ñ\82 Ð½Ð°Ñ\81лова",
+       "headline_tip": "Поднаслов (ниво 2)",
        "nowiki_sample": "Убаците необликован текст овде",
        "nowiki_tip": "Занемари вики обликовање",
        "image_sample": "Пример.jpg",
        "showpreview": "Прикажи претпреглед",
        "showdiff": "Прикажи измене",
        "blankarticle": "<strong>Упозорење:</strong> Страница коју правите је празна.\nАко још једном притиснете „$1”, страница ће бити направљена без икаквог садржаја.",
-       "anoneditwarning": "<strong>УпозоÑ\80еÑ\9aе:</strong> Ð\9dиÑ\81Ñ\82е Ð¿Ñ\80иÑ\98авÑ\99ени. Ð\92аÑ\88а IP Ð°Ð´Ñ\80еÑ\81а Ñ\9bе Ð±Ð¸Ñ\82и Ñ\98авно Ð²Ð¸Ð´Ñ\99ива Ð°ÐºÐ¾ Ð½Ð°Ð¿Ñ\80авиÑ\82е Ð½ÐµÐºÑ\83 Ð¸Ð·Ð¼ÐµÐ½Ñ\83. Ð\90ко Ñ\81е <strong>[$1 Ð¿Ñ\80иÑ\98авиÑ\82е]</strong> Ð¸Ð»Ð¸ <strong>[$2 Ð¾Ñ\82воÑ\80иÑ\82е Ð½Ð°Ð»Ð¾Ð³]</strong>, Ð\92аÑ\88е Ð¸Ð·Ð¼ÐµÐ½Ðµ Ñ\9bе Ð±Ð¸Ñ\82и Ð¿Ñ\80ипиÑ\81иване Ð\92аÑ\88ем ÐºÐ¾Ñ\80иÑ\81ниÑ\87ком Ð¸Ð¼ÐµÐ½Ñ\83, Ð¿Ð¾Ñ\80ед Ð´Ñ\80Ñ\83гиÑ\85 Ð¿Ð¾Ð³Ð¾Ð´Ð½Ð¾Ñ\81Ñ\82и.",
+       "anoneditwarning": "<strong>УпозоÑ\80еÑ\9aе:</strong> Ð\9dиÑ\81Ñ\82е Ð¿Ñ\80иÑ\98авÑ\99ени. Ð\90ко Ð¾Ð±Ñ\98авиÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83, Ð\92аÑ\88а IP Ð°Ð´Ñ\80еÑ\81а Ñ\9bе Ð±Ð¸Ñ\82и Ñ\98авно Ð²Ð¸Ð´Ñ\99ива Ñ\83 Ñ\9aеноÑ\98 Ð¸Ñ\81Ñ\82оÑ\80иÑ\98и Ð¸Ð·Ð¼ÐµÐ½Ð° Ð¸ Ð´Ñ\80Ñ\83где. Ð\90ко Ñ\81е <strong>[$1 Ð¿Ñ\80иÑ\98авиÑ\82е]</strong> Ð¸Ð»Ð¸ <strong>[$2 Ð¾Ñ\82воÑ\80иÑ\82е Ð½Ð°Ð»Ð¾Ð³]</strong>, Ð¿Ð¾Ñ\80ед Ð¾Ñ\81Ñ\82алиÑ\85 Ð¿Ð¾Ð³Ð¾Ð´Ð½Ð¾Ñ\81Ñ\82и ÐºÐ¾Ñ\98е Ð´Ð¾Ð±Ð¸Ñ\98аÑ\82е Ð\92аÑ\88е Ð¸Ð·Ð¼ÐµÐ½Ðµ Ñ\9bе Ð±Ð¸Ñ\82и Ð¿Ñ\80ипиÑ\81иване Ð\92аÑ\88ем ÐºÐ¾Ñ\80иÑ\81ниÑ\87ком Ð¸Ð¼ÐµÐ½Ñ\83.",
        "anonpreviewwarning": "<em>Нисте пријављени. Ако објавите страницу, Ваша IP адреса ће бити јавно видљива у њеној историји измена и другде.</em>",
        "missingsummary": "<strong>Подсетник:</strong> Нисте унели опис измене.\nАко поново кликнете на „$1”, Ваша измена ће бити сачувана без описа.",
        "selfredirect": "<strong>Упозорење:</strong> Преусмеравате ову страницу на њу саму.\nМожда вам је одредишна страница за преусмерење погрешна или уређујете погрешну страницу.\nАко још једном притиснете „$1”, преусмерење ће свеједно бити направљено.",
        "revertmerge": "растави",
        "mergelogpagetext": "Испод је списак најскоријих спајања историја двеју страница.",
        "history-title": "Историја измена странице „$1“",
-       "difference-title": "Разлика Ð¸Ð·Ð¼ÐµÑ\92Ñ\83 Ð¸Ð·Ð¼ÐµÐ½Ð° Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86и â\80\9e$1â\80\9c",
+       "difference-title": "Разлика Ð¸Ð·Ð¼ÐµÑ\92Ñ\83 Ð¸Ð·Ð¼ÐµÐ½Ð° Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86и â\80\9e$1â\80\9d",
        "difference-title-multipage": "Разлика између страница „$1“ и „$2“",
        "difference-multipage": "(разлике између страница)",
        "lineno": "Ред $1:",
        "shown-title": "Прикажи $1 {{PLURAL:$1|резултат|резултата}} по страници",
        "viewprevnext": "Погледај ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "<strong>Постоји страница под називом „[[:$1]]”!</strong> {{PLURAL:$2|0=|Такође погледајте друге пронађене резултате претраге.}}",
-       "searchmenu-new": "<strong>Ð\9dапÑ\80авиÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 â\80\9e[[:$1]]â\80\9d Ð½Ð° Ð¾Ð²Ð¾Ð¼ Ð²Ð¸ÐºÐ¸Ñ\98Ñ\83!</strong> {{PLURAL:$2|0=|ТакоÑ\92е Ð¿Ð¾Ð³Ð»ÐµÐ´Ð°Ñ\98Ñ\82е Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 Ð¿Ñ\80онаÑ\92енÑ\83 Ð¿Ñ\80еÑ\82Ñ\80агом.|Такође погледајте резултате претраге.}}",
+       "searchmenu-new": "<strong>Ð\9dапÑ\80авиÑ\82е Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 â\80\9e[[:$1]]â\80\9d Ð½Ð° Ð¾Ð²Ð¾Ð¼ Ð²Ð¸ÐºÐ¸Ñ\98Ñ\83!</strong> {{PLURAL:$2|0=|ТакоÑ\92е Ð¿Ð¾Ð³Ð»ÐµÐ´Ð°Ñ\98Ñ\82е Ñ\80езÑ\83лÑ\82аÑ\82 Ð¿Ñ\80еÑ\82Ñ\80аге.|Такође погледајте резултате претраге.}}",
        "searchprofile-articles": "Странице са садржајем",
        "searchprofile-images": "Датотеке",
        "searchprofile-everything": "Све",
        "rcfilters-highlighted-filters-list": "Истакнуто: $1",
        "rcfilters-quickfilters": "Сачувани филтери",
        "rcfilters-quickfilters-placeholder-title": "Још нема сачуваних филтера",
-       "rcfilters-quickfilters-placeholder-description": "Ð\94а Ð±Ð¸Ñ\81Ñ\82е Ñ\81аÑ\87Ñ\83вали Ñ\81воÑ\98а Ð¿Ð¾Ð´ÐµÑ\88аваÑ\9aа Ñ\84илÑ\82еÑ\80а Ð¸ Ð¿Ð¾Ð½Ð¾Ð²Ð¾ Ð¸Ñ\85 Ñ\83поÑ\82Ñ\80ебÑ\99авали ÐºÐ°Ñ\81ниÑ\98е, ÐºÐ»Ð¸ÐºÐ½Ð¸Ñ\82е Ð½Ð° Ð¸ÐºÐ¾Ð½Ñ\83 Ð·Ð° Ð¾Ð±ÐµÐ»ÐµÐ¶Ð°Ð²Ð°Ñ\9aе Ñ\83 Ð¿Ð¾Ð´Ñ\80Ñ\83Ñ\87Ñ\98Ñ\83 Ð°ÐºÑ\82ивниÑ\85 Ñ\84илÑ\82еÑ\80а, испод.",
+       "rcfilters-quickfilters-placeholder-description": "Ð\94а Ð±Ð¸Ñ\81Ñ\82е Ñ\81аÑ\87Ñ\83вали Ñ\81воÑ\98а Ð¿Ð¾Ð´ÐµÑ\88аваÑ\9aа Ñ\84илÑ\82еÑ\80а Ð¸ Ð¿Ð¾Ð½Ð¾Ð²Ð¾ Ð¸Ñ\85 Ñ\83поÑ\82Ñ\80ебÑ\99авали ÐºÐ°Ñ\81ниÑ\98е, ÐºÐ»Ð¸ÐºÐ½Ð¸Ñ\82е Ð½Ð° Ð¸ÐºÐ¾Ð½Ñ\83 Ð·Ð° Ð¾Ð·Ð½Ð°ÐºÑ\83 Ñ\83 Ð¿Ð¾Ð´Ñ\80Ñ\83Ñ\87Ñ\98Ñ\83 Ð°ÐºÑ\82ивниÑ\85 Ñ\84илÑ\82еÑ\80а â\80\94 испод.",
        "rcfilters-savedqueries-defaultlabel": "Сачувани филтери",
        "rcfilters-savedqueries-rename": "Преименуј",
        "rcfilters-savedqueries-setdefault": "Постави као подразумевано",
        "rcfilters-filter-bots-description": "Измене направљене аутоматизованим алаткама.",
        "rcfilters-filter-humans-label": "Човек (није бот)",
        "rcfilters-filter-humans-description": "Измене које су направили људи-уредници.",
-       "rcfilters-filtergroup-reviewstatus": "Прегледаност",
+       "rcfilters-filtergroup-reviewstatus": "Патролираност",
        "rcfilters-filter-reviewstatus-unpatrolled-description": "Измене које нису ручно или аутоматски означене патролираним.",
        "rcfilters-filter-reviewstatus-unpatrolled-label": "Непатролирано",
        "rcfilters-filter-reviewstatus-manual-description": "Измене које су ручно означене патролираним.",
        "rcfilters-filter-reviewstatus-auto-label": "Аутоматски патролирано",
        "rcfilters-filtergroup-significance": "Значај",
        "rcfilters-filter-minor-label": "Мање измене",
-       "rcfilters-filter-minor-description": "Ð\98змене ÐºÐ¾Ñ\98е Ñ\98е Ð°Ñ\83Ñ\82оÑ\80 Ð¾Ð·Ð½Ð°Ñ\87ио Ð¼Ð°Ñ\9aим.",
+       "rcfilters-filter-minor-description": "Ð\98змене ÐºÐ¾Ñ\98е Ñ\98е Ð°Ñ\83Ñ\82оÑ\80 Ð¾Ð·Ð½Ð°Ñ\87ио ÐºÐ°Ð¾ Ð¼Ð°Ñ\9aе.",
        "rcfilters-filter-major-label": "Не-мање измене",
-       "rcfilters-filter-major-description": "Ð\98змене ÐºÐ¾Ñ\98е Ð½Ð¸Ñ\81Ñ\83 Ð¾Ð·Ð½Ð°Ñ\87ене Ð¼Ð°Ñ\9aим.",
+       "rcfilters-filter-major-description": "Ð\98змене ÐºÐ¾Ñ\98е Ð½Ð¸Ñ\81Ñ\83 Ð¾Ð·Ð½Ð°Ñ\87ене ÐºÐ°Ð¾ Ð¼Ð°Ñ\9aе.",
        "rcfilters-filtergroup-watchlist": "Странице на списку надгледања",
        "rcfilters-filter-watchlist-watched-label": "На списку надгледања",
        "rcfilters-filter-watchlist-watched-description": "Измене страница на Вашем списку надгледања.",
        "rcfilters-filter-watchlistactivity-unseen-description": "Измене страница које нисте посетили од када су направљене измене.",
        "rcfilters-filter-watchlistactivity-seen-label": "Погледане измене",
        "rcfilters-filter-watchlistactivity-seen-description": "Измене страница које сте посетили од када су направљене измене.",
-       "rcfilters-filtergroup-changetype": "Ð\92Ñ\80Ñ\81Ñ\82а измене",
+       "rcfilters-filtergroup-changetype": "Тип измене",
        "rcfilters-filter-pageedits-label": "Измене страница",
        "rcfilters-filter-pageedits-description": "Измене вики садржаја, расправа, описа категорија…",
        "rcfilters-filter-newpages-label": "Прављење страница",
        "rcfilters-target-page-placeholder": "Унесите име странице (или категорије)",
        "rcnotefrom": "Испод {{PLURAL:$5|је измена|су измене}} од <strong>$3, $4</strong> (до <strong>$1</strong> приказано).",
        "rclistfromreset": "Ресетуј одабир датума",
-       "rclistfrom": "Прикажи нове измене почев од $3 у $2",
+       "rclistfrom": "Прикажи нове измене почев од $2, $3",
        "rcshowhideminor": "$1 мање измене",
        "rcshowhideminor-show": "Прикажи",
        "rcshowhideminor-hide": "Сакриј",
        "recentchangeslinked-feed": "Сродне измене",
        "recentchangeslinked-toolbox": "Сродне измене",
        "recentchangeslinked-title": "Сродне измене са „$1“",
-       "recentchangeslinked-summary": "УнеÑ\81иÑ\82е Ð¸Ð¼Ðµ Ñ\81Ñ\82Ñ\80аниÑ\86е Ð´Ð° Ð±Ð¸Ñ\81Ñ\82е Ð²Ð¸Ð´ÐµÐ»Ð¸ Ð¸Ð·Ð¼ÐµÐ½Ðµ Ñ\81Ñ\82Ñ\80аниÑ\86а ÐºÐ¾Ñ\98е Ñ\81Ñ\83 Ð¿Ð¾Ð²ÐµÐ·Ð°Ð½Ðµ Ñ\81а Ð¸Ð»Ð¸ Ñ\81а Ñ\82е Ñ\81Ñ\82Ñ\80аниÑ\86е. (Ð\94а Ð±Ð¸Ñ\81Ñ\82е Ð²Ð¸Ð´ÐµÐ»Ð¸ Ñ\87ланове ÐºÐ°Ñ\82егоÑ\80иÑ\98е, Ñ\83неÑ\81иÑ\82е {{ns:category}}:Ð\98ме ÐºÐ°Ñ\82егоÑ\80иÑ\98е). Ð\98змене Ñ\81Ñ\82Ñ\80аниÑ\86а на [[Special:Watchlist|Вашем списку надгледања]] су <strong>подебљане</strong>.",
+       "recentchangeslinked-summary": "УнеÑ\81иÑ\82е Ð¸Ð¼Ðµ Ñ\81Ñ\82Ñ\80аниÑ\86е Ð´Ð° Ð±Ð¸Ñ\81Ñ\82е Ð²Ð¸Ð´ÐµÐ»Ð¸ Ð¿Ñ\80омене Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86ама ÐºÐ¾Ñ\98е Ñ\81Ñ\83 Ð¿Ð¾Ð²ÐµÐ·Ð°Ð½Ðµ Ñ\81а Ð¸Ð»Ð¸ Ñ\81а Ñ\82е Ñ\81Ñ\82Ñ\80аниÑ\86е. (Ð\94а Ð±Ð¸Ñ\81Ñ\82е Ð²Ð¸Ð´ÐµÐ»Ð¸ Ñ\87ланове ÐºÐ°Ñ\82егоÑ\80иÑ\98е, Ñ\83неÑ\81иÑ\82е {{ns:category}}:Ð\98ме ÐºÐ°Ñ\82егоÑ\80иÑ\98е). Ð\9fÑ\80омене Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86ама ÐºÐ¾Ñ\98е Ñ\81Ñ\83 на [[Special:Watchlist|Вашем списку надгледања]] су <strong>подебљане</strong>.",
        "recentchangeslinked-page": "Назив странице:",
        "recentchangeslinked-to": "Прикажи измене страница које су повезане с датом страницом",
        "recentchanges-page-added-to-category": "[[:$1]] је додата у категорију",
        "whatlinkshere": "Шта води овде",
        "whatlinkshere-title": "Странице које су повезане са „$1”",
        "whatlinkshere-page": "Страница:",
-       "linkshere": "СледеÑ\9bе Ñ\81Ñ\82Ñ\80аниÑ\86е Ð²Ð¾Ð´Ðµ Ð½Ð° <strong>$2</strong>:",
+       "linkshere": "СледеÑ\9bе Ñ\81Ñ\82Ñ\80аниÑ\86е Ð¸Ð¼Ð°Ñ\98Ñ\83 Ð²ÐµÐ·Ñ\83 Ð´Ð¾ <strong>$1</strong>:",
        "nolinkshere": "Ниједна страница није повезана са: <strong>$2</strong>.",
        "nolinkshere-ns": "Ниједна страница не води до '''$2''' у изабраном именском простору.",
        "isredirect": "преусмерење",
        "tooltip-ca-talk": "Разговор о страници са садржајем",
        "tooltip-ca-edit": "Уредите ову страницу",
        "tooltip-ca-addsection": "Започните нови одељак",
-       "tooltip-ca-viewsource": "Ова страница је закључана. \nМожете да погледате њен изворни кôд",
+       "tooltip-ca-viewsource": "Ова страница је закључана. \nМожете да погледате њен изворни код",
        "tooltip-ca-history": "Претходне измене ове странице",
        "tooltip-ca-protect": "Заштитите ову страницу",
        "tooltip-ca-unprotect": "Промени заштиту ове странице",
        "tooltip-n-randompage": "Учитајте случајну страницу",
        "tooltip-n-help": "Место где можете да научите нешто",
        "tooltip-t-whatlinkshere": "Списак свих вики страница које воде овде",
-       "tooltip-t-recentchangeslinked": "Скорашње измене страница које су повезане са овом страницом",
+       "tooltip-t-recentchangeslinked": "Скорашње измене на страницама које су повезане са овом страницом",
        "tooltip-feed-rss": "RSS довод ове странице",
        "tooltip-feed-atom": "Атом довод ове странице",
        "tooltip-t-contributions": "Списак доприноса {{GENDER:$1|овог корисника|ове кориснице|овог корисника}}",
        "tooltip-ca-nstab-template": "Погледајте шаблон",
        "tooltip-ca-nstab-help": "Погледајте страницу за помоћ",
        "tooltip-ca-nstab-category": "Погледајте страницу категорије",
-       "tooltip-minoredit": "Ð\9eзнаÑ\87иÑ\82е ÐºÐ°Ð¾ Ð¼Ð°Ñ\9aÑ\83 Ð¸Ð·Ð¼ÐµÐ½у",
+       "tooltip-minoredit": "Ð\9eзнаÑ\87иÑ\82е Ð¾Ð²Ñ\83 Ð¸Ð·Ð¼ÐµÐ½Ñ\83 ÐºÐ°Ð¾ Ð¼Ð°Ñ\9aу",
        "tooltip-save": "Сачувајте своје измене",
        "tooltip-publish": "Објавите своје измене",
        "tooltip-preview": "Прегледајте своје измене. Користите ово дугме пре чувања.",
-       "tooltip-diff": "Погледајте које измене сте направили у тексту",
+       "tooltip-diff": "Погледајте које измене сте направили на тексту",
        "tooltip-compareselectedversions": "Погледаjте разлике између две изабране измене ове странице.",
        "tooltip-watch": "Додајте ову страницу на свој списак надгледања",
        "tooltip-watchlistedit-normal-submit": "Уклоните наслове",
        "mw-widgets-titleinput-description-new-page": "страница још увек не постоји",
        "mw-widgets-titleinput-description-redirect": "преусмерава на $1",
        "mw-widgets-categoryselector-add-category-placeholder": "Додај категорију...",
-       "mw-widgets-usersmultiselect-placeholder": "Додајте још...",
+       "mw-widgets-usersmultiselect-placeholder": "Додај још...",
        "date-range-from": "Од датума:",
        "date-range-to": "До датума:",
        "sessionprovider-generic": "$1 сесије",
index 65da0bd..a8ebcb3 100644 (file)
                ]
        },
        "tog-underline": "Podvlačenje veza:",
-       "tog-hideminor": "Sakrij manje izmene u spisku skorašnjih izmena",
-       "tog-hidepatrolled": "Sakrij patrolirane izmene u spisku skorašnjih izmena",
+       "tog-hideminor": "Sakrij manje izmene sa spiska skorašnjih izmena",
+       "tog-hidepatrolled": "Sakrij patrolirane izmene sa spiska skorašnjih izmena",
        "tog-newpageshidepatrolled": "Sakrij patrolirane stranice sa spiska novih stranica",
        "tog-hidecategorization": "Sakrij kategorizaciju stranica",
        "tog-extendwatchlist": "Proširi spisak nadgledanja za prikaz svih izmena, ne samo skorašnjih",
-       "tog-usenewrc": "Grupni prikaz izmena svake pojedinačne stranice u skorašnjim izmenama i spisku nadgledanja",
+       "tog-usenewrc": "Grupiši izmene po stranici u skorašnjim izmenama i spisku nadgledanja",
        "tog-numberheadings": "Automatski numeriši podnaslove",
-       "tog-showtoolbar": "Prikaži traku s alatkama za uređivanje",
-       "tog-editondblclick": "Uređivanje stranica dvostrukim klikom",
+       "tog-showtoolbar": "Traka sa alatkama za uređivanje",
+       "tog-editondblclick": "Uredi stranice dvostrukim klikom",
        "tog-editsectiononrightclick": "Uređivanje odeljaka desnim klikom na njihove naslove",
-       "tog-watchcreations": "Dodaj stranice koje napravim i datoteke koje pošaljem u spisak nadgledanja",
-       "tog-watchdefault": "Dodaj stranice i datoteke koje izmenim u spisak nadgledanja",
-       "tog-watchmoves": "Dodaj stranice i datoteke koje premestim u spisak nadgledanja",
-       "tog-watchdeletion": "Dodaj stranice i datoteke koje obrišem u spisak nadgledanja",
-       "tog-watchuploads": "Dodaj datoteke koje otpremim u spisak nadgledanja",
-       "tog-watchrollback": "Dodaj stranice na kojima sam vratio izmene u spisak nadgledanja",
+       "tog-watchcreations": "Dodaj stranice koje napravim i datoteke koje otpremim u moj spisak nadgledanja",
+       "tog-watchdefault": "Dodaj stranice i datoteke koje izmenim u moj spisak nadgledanja",
+       "tog-watchmoves": "Dodaj stranice i datoteke koje premestim u moj spisak nadgledanja",
+       "tog-watchdeletion": "Dodaj stranice i datoteke koje obrišem u moj spisak nadgledanja",
+       "tog-watchuploads": "Dodaj datoteke koje otpremim u moj spisak nadgledanja",
+       "tog-watchrollback": "Dodaj stranice na kojima sam vratio izmene u moj spisak nadgledanja",
        "tog-minordefault": "Označavaj sve izmene kao manje",
-       "tog-previewontop": "Prikaži pregled pre okvira za uređivanje",
-       "tog-previewonfirst": "Prikaži pregled na prvoj izmeni",
-       "tog-enotifwatchlistpages": "Pošalji mi imejl kada se promeni stranica/datoteka koju nadgledam",
-       "tog-enotifusertalkpages": "Pošalji mi imejl kada se promeni moja stranica za razgovor",
-       "tog-enotifminoredits": "Pošalji mi imejl i za manje izmene u stranicama i datotekama",
-       "tog-enotifrevealaddr": "Prikaži moju imejl adresu u porukama obaveštenja",
+       "tog-previewontop": "Prikaži pretpregled pre okvira za uređivanje",
+       "tog-previewonfirst": "Prikaži pretpregled pri prvoj izmeni",
+       "tog-enotifwatchlistpages": "Pošalji mi imejl kada se promeni stranica ili datoteka sa mog spiska nadgledanja",
+       "tog-enotifusertalkpages": "Pošalji mi imejl kad se promeni moja stranica za razgovor",
+       "tog-enotifminoredits": "Pošalji mi imejl i kod manjih izmena stranica i datoteka",
+       "tog-enotifrevealaddr": "Otkrij moju imejl adresu u porukama obaveštenja",
        "tog-shownumberswatching": "Prikaži broj korisnika koji nadgledaju",
-       "tog-oldsig": "Potpis:",
+       "tog-oldsig": "Vaš postojeći potpis:",
        "tog-fancysig": "Smatraj potpis kao vikitekst (bez samopovezivanja)",
-       "tog-uselivepreview": "Koristi trenutni pregled",
+       "tog-uselivepreview": "Prikaži pretpregled bez ponovnog učitavanja stranice",
        "tog-forceeditsummary": "Upozori me kada ne unesem opis izmene",
        "tog-watchlisthideown": "Sakrij moje izmene sa spiska nadgledanja",
        "tog-watchlisthidebots": "Sakrij izmene botova sa spiska nadgledanja",
        "tog-watchlisthideminor": "Sakrij manje izmene sa spiska nadgledanja",
        "tog-watchlisthideliu": "Sakrij izmene prijavljenih korisnika sa spiska nadgledanja",
-       "tog-watchlistreloadautomatically": "Automatski osveži spisak nadgledanja kad god se filter izmeni (potrebna JavaScript-a)",
+       "tog-watchlistreloadautomatically": "Automatski osveži spisak nadgledanja kad god se filter izmeni (potreban JavaScript)",
+       "tog-watchlistunwatchlinks": "Dodaj veze za direktno dodavanje/uklanjanje stavki sa spiska nadgledanja (potreban JavaScript)",
        "tog-watchlisthideanons": "Sakrij izmene anonimnih korisnika sa spiska nadgledanja",
        "tog-watchlisthidepatrolled": "Sakrij patrolirane izmene sa spiska nadgledanja",
        "tog-watchlisthidecategorization": "Sakrij kategorizaciju stranica",
        "tog-ccmeonemails": "Pošalji mi kopije imejlova koje pošaljem drugim korisnicima",
        "tog-diffonly": "Ne prikazuj sadržaj stranice ispod razlika",
-       "tog-showhiddencats": "Prikaži skrivene kategorije",
+       "tog-showhiddencats": "Skrivene kategorije",
        "tog-norollbackdiff": "Ne prikazuj razliku nakon izvršenog vraćanja",
-       "tog-useeditwarning": "Upozori me kada napuštam stranicu sa nesačuvanim promenama",
-       "tog-prefershttps": "Uvek koristi bezbednu konekciju dok sam prijavljen.",
-       "underline-always": "uvek podvlači",
-       "underline-never": "nikad ne podvlači",
+       "tog-useeditwarning": "Upozori me kada napuštam stranicu sa nesačuvanim izmenama",
+       "tog-prefershttps": "Uvek koristi sigurnu vezu dok sam prijavljen.",
+       "underline-always": "uvek",
+       "underline-never": "nikad",
        "underline-default": "prema temi ili pregledaču",
-       "editfont-style": "Izgled fonta u uređivačkom okviru:",
+       "editfont-style": "Stil fonta u okviru za uređivanje:",
        "editfont-monospace": "srazmerno širok font",
        "editfont-sansserif": "beserifni font",
        "editfont-serif": "serifni font",
        "category-file-count-limited": "{{PLURAL:$1|1=Sledeća datoteka je|Sledeće $1 datoteke su|Sledećih $1 datoteka je}} u ovoj kategoriji.",
        "listingcontinuesabbrev": "nast.",
        "index-category": "Popisane stranice",
-       "noindex-category": "Neindeksirane stranice",
+       "noindex-category": "Nepopisane stranice",
        "broken-file-category": "Stranice s neispravnim vezama do datoteka",
+       "categoryviewer-pagedlinks": "$1 ($2)",
+       "category-header-numerals": "$1–$2",
        "about": "O nama",
        "article": "Članak",
        "newwindow": "(otvara se u novom prozoru)",
        "variants": "Varijante",
        "navigation-heading": "Navigacioni meni",
        "errorpagetitle": "Greška",
-       "returnto": "Nazad na $1.",
+       "returnto": "Nazad na stranicu „$1“.",
        "tagline": "Izvor: {{SITENAME}}",
        "help": "Pomoć",
        "search": "Pretraga",
-       "search-ignored-headings": "#<!-- ovu liniju ostavite onakvu kakva jeste --> <pre>\n# Naslovi koji će biti ignorisani upitom\n# Promene su vidljive odmah nakon što stranica sa naslovom bude popisana\n# Možete iznuditi ponovno popisivanje sa \"null\" promenom\n# Sintaksa je sledeća:\n# * Svaka vrsta koja započinje \"#\" znakom pa sve do kraja je komentar\n# * Svaka ne prazna vrsta je tačan naslov za zanemariti, u tačnom obliku\nReference\nSpoljašnje veze\nPogledajte\n#</pre> <!-- ovu liniju ostavite onakvu kakva jeste -->",
+       "search-ignored-headings": " #<!-- ne menjajte ništa u ovom redu --> <pre>\n# Naslovi koji će biti zanemareni pri pretrazi.\n# Izmene su vidljive odmah nakon što se stranica sa naslovom popiše.\n# Možete iznuditi ponovno popisivanje „nultom” izmenom.\n# Sintaksa je sledeća:\n#  * Svaki red koji započinje znakom „#” je komentar.\n#  * Svaki ne prazni red je tačan naslov koji će biti zanemaren, s tim da se razlikuju mala i velika slova i sve ostalo\nReference\nSpoljašnje veze\nTakođe pogledajte\n #</pre> <!-- ne menjajte ništa u ovom redu -->",
        "searchbutton": "Pretraži",
        "go": "Idi",
        "searcharticle": "Idi",
        "permalink": "Trajna veza",
        "print": "Štampaj",
        "view": "Pogledaj",
-       "view-foreign": "Vidi na projektu $1",
+       "view-foreign": "Pogledaj na projektu $1",
        "edit": "Uredi",
        "edit-local": "Uredi lokalni opis",
        "create": "Napravi",
        "create-local": "Dodaj lokalni opis",
        "delete": "Obriši",
-       "undelete_short": "Vrati {{PLURAL:$1|1=jednu obrisanu izmenu|$1 obrisane izmene|$1 obrisanih izmena}}",
+       "undelete_short": "Vrati {{PLURAL:$1|obrisanu izmenu|$1 obrisane izmene|$1 obrisanih izmena}}",
        "viewdeleted_short": "Pogledaj {{PLURAL:$1|obrisanu izmenu|$1 obrisane izmene|$1 obrisanih izmena}}",
        "protect": "Zaštiti",
        "protect_change": "promeni",
        "views": "Pregledi",
        "toolbox": "Alatke",
        "tool-link-userrights": "Uredi {{GENDER:$1|korisničke}} grupe",
-       "tool-link-userrights-readonly": "Prikaži {{GENDER:$1|korisnik}} grupe",
-       "tool-link-emailuser": "Pošalji imejl",
+       "tool-link-userrights-readonly": "{{GENDER:$1|Korisničke}} grupe",
+       "tool-link-emailuser": "Pošalji imejl {{GENDER:$1|korisniku|korisnici}}",
        "imagepage": "Pogledaj stranicu datoteke",
        "mediawikipage": "Pogledaj stranicu poruke",
        "templatepage": "Pogledaj stranicu šablona",
        "viewhelppage": "Pogledaj stranicu pomoći",
-       "categorypage": "Pogledaj stranicu kategorija",
+       "categorypage": "Pogledaj stranicu kategorije",
        "viewtalkpage": "Pogledaj razgovor",
        "otherlanguages": "Na drugim jezicima",
        "redirectedfrom": "(preusmereno sa $1)",
        "redirectpagesub": "Preusmerenje",
        "redirectto": "Preusmerava na:",
        "lastmodifiedat": "Ova stranica je poslednji put uređena na datum $1 u $2 č.",
-       "viewcount": "Ova stranica je pregledana {{PLURAL:$1|jedanput|$1 puta|$1 puta}}.",
+       "viewcount": "Ovoj stranici je pristupljeno {{PLURAL:$1|jedanput|$1 puta}}.",
        "protectedpage": "Zaštićena stranica",
        "jumpto": "Idi na:",
        "jumptonavigation": "navigaciju",
        "pool-timeout": "Istek vremena čeka na zaključavanje",
        "pool-queuefull": "Red je pun zahteva",
        "pool-errorunknown": "Nepoznata greška",
-       "pool-servererror": "Brojač fonda trenutno nije dostupan ($1)",
-       "poolcounter-usage-error": "Greška tokom upotrebe: $1",
+       "pool-servererror": "Usluga brojača redova nije dostupna ($1).",
+       "poolcounter-usage-error": "Greška pri upotrebi: $1",
        "aboutsite": "O projektu {{SITENAME}}",
-       "aboutpage": "Project:O nama",
+       "aboutpage": "Project:O_projektu_{{SITENAME}}",
        "copyright": "Sadržaj je dostupan pod licencom $1 osim ako je drugačije navedeno.",
        "copyrightpage": "{{ns:project}}:Autorska prava",
        "currentevents": "Aktuelnosti",
        "mainpage-description": "Glavna strana",
        "policy-url": "Project:Pravila",
        "portal": "Portal zajednice",
-       "portal-url": "Project:Radionica",
+       "portal-url": "Project:Portal zajednice",
        "privacy": "Politika privatnosti",
        "privacypage": "Project:Politika privatnosti",
        "badaccess": "Greške u ovlašćenjima",
-       "badaccess-group0": "Nije vam dozvoljeno da izvršite zahtevanu radnju.",
+       "badaccess-group0": "Nije Vam dozvoljeno da izvršite zahtevanu radnju.",
        "badaccess-groups": "Radnja koju ste zahtevali je ograničena samo korisnicima u {{PLURAL:$2|sledećoj grupi|sledećim grupama}}: $1.",
-       "versionrequired": "Potrebno je izdanje $1 Medijavikija",
+       "versionrequired": "Potrebna je verzija $1 Medijavikija",
        "versionrequiredtext": "Potrebno je izdanje $1 Medijavikija da biste koristili ovu stranicu.\nPogledajte stranicu za [[Special:Version|izdanje]].",
        "ok": "U redu",
        "pagetitle": "$1 — {{SITENAME}}",
        "pagetitle-view-mainpage": "{{SITENAME}}",
        "backlinksubtitle": "← $1",
        "retrievedfrom": "Preuzeto iz „$1“",
-       "youhavenewmessages": "Imate $1 ($2).",
-       "youhavenewmessagesfromusers": "Imate $1 od {{PLURAL:$3|drugog korisnika|$3 korisnika|$3 korisnika}} ($2).",
+       "youhavenewmessages": "{{PLURAL:$3|Imate}} $1 ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Imate}} $1 od {{PLURAL:$3|drugog korisnika|$3 korisnika}} ($2).",
        "youhavenewmessagesmanyusers": "Imate $1 od mnogo korisnika ($2).",
-       "newmessageslinkplural": "{{PLURAL:$1|novu poruku|999=nove poruke}}",
-       "newmessagesdifflinkplural": "{{PLURAL:$1|poslednja izmena|999=poslednje izmene}}",
-       "youhavenewmessagesmulti": "Imate novih poruka na $1",
+       "newmessageslinkplural": "{{PLURAL:$1|novu poruku|nove poruke|novih poruka}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|poslednja izmena|poslednje izmene|poslednjih izmena}}",
+       "youhavenewmessagesmulti": "Imate nove poruke na $1",
        "editsection": "uredi",
        "editold": "uredi",
        "viewsourceold": "izvorni kod",
        "editlink": "uredi",
        "viewsourcelink": "izvorni kod",
-       "editsectionhint": "Uredi odeljak „$1“",
+       "editsectionhint": "Uredite odeljak „$1“",
        "toc": "Sadržaj",
        "showtoc": "prikaži",
        "hidetoc": "sakrij",
-       "collapsible-collapse": "Skupi",
-       "collapsible-expand": "Proširi",
+       "collapsible-collapse": "sakrij",
+       "collapsible-expand": "prikaži",
        "confirmable-confirm": "Da li {{GENDER:$1|ste}} sigurni?",
        "confirmable-yes": "Da",
        "confirmable-no": "Ne",
-       "thisisdeleted": "Pogledati ili vratiti $1?",
-       "viewdeleted": "Pogledati $1?",
-       "restorelink": "{{PLURAL:$1|1=obrisanu izmenu|$1 obrisane izmene|$1 obrisanih izmena}}",
+       "thisisdeleted": "Pogledaj ili vrati $1?",
+       "viewdeleted": "Pogledaj $1?",
+       "restorelink": "{{PLURAL:$1|obrisanu izmenu|$1 obrisane izmene|$1 obrisanih izmena}}",
        "feedlinks": "Dovod:",
        "feed-invalid": "Neispravna vrsta dovoda.",
        "feed-unavailable": "Dovodi nisu dostupni",
        "sort-descending": "Poređaj opadajuće",
        "sort-ascending": "Poređaj rastuće",
        "nstab-main": "Stranica",
-       "nstab-user": "{{GENDER:{{BASEPAGENAME}}|Korisnik|Korisnica}}",
+       "nstab-user": "{{GENDER:{{BASEPAGENAME}}|Korisnik|Korisnica|Korisnik}}",
        "nstab-media": "Mediji",
        "nstab-special": "Posebno",
        "nstab-project": "Projekat",
        "nosuchaction": "Nema takve radnje",
        "nosuchactiontext": "Radnja navedena u adresi nije ispravna.\nMožda ste pogrešno napisali adresu ili ste pratili zastarelu vezu.\nMoguće je i da se radi o grešci u softveru vikija.",
        "nosuchspecialpage": "Nema takve posebne stranice",
-       "nospecialpagetext": "<strong>Posebna stranica ne postoji.</strong>\n\nSpisak svih posebnih stranica nalazi se [[Special:SpecialPages|ovde]].",
+       "nospecialpagetext": "<strong>Posebna stranica koju ste zahtevali ne postoji.</strong>\n\nSpisak svih posebnih stranica nalazi se na „[[Special:SpecialPages|{{int:specialpages}}]]”.",
        "error": "Greška",
        "databaseerror": "Greška u bazi podataka",
        "databaseerror-text": "Došlo je do greške u upitu baze podataka. Možda je u pitanju programska greška.",
        "databaseerror-function": "Funkcija: $1",
        "databaseerror-error": "Greška: $1",
        "transaction-duration-limit-exceeded": "Zbog izbegavanja velikih kopirajućih zaostajanja, ova transakcija je prekinuta zbog toga što je trajanje zapisivanja ($1) premašilo ($2) sekundi ograničenja. \nUkoliko menjate puno artikala odjednom, pokušajte sa više manjih operacija.",
-       "laggedslavemode": "<strong>Upozorenje:</strong> stranica je možda zastarela.",
+       "laggedslavemode": "<strong>Upozorenje:</strong> moguće je da stranica nije ažurirana.",
        "readonly": "Baza podataka je zaključana",
        "enterlockreason": "Unesite razlog za zaključavanje, uključujući i vreme otključavanja",
        "readonlytext": "Baza podataka je trenutno zaključana, što znači da je nije moguće menjati.\n\nSistemski administrator je naveo sledeće objašnjenje: $1",
        "missingarticle-diff": "(razlika: $1, $2)",
        "readonly_lag": "Baza podataka je automatski zaključana da bi se sekundarni serveri baze podataka uskladili s glavnim.",
        "internalerror": "Unutrašnja greška",
-       "internalerror_info": "Unutrašnja greška: $1",
-       "internalerror-fatal-exception": "Kritični izuzetak tipa $1",
-       "filecopyerror": "Ne mogu da umnožim datoteku „$1“ u „$2“.",
+       "internalerror_info": "Interna greška: $1",
+       "internalerror-fatal-exception": "Fatalna greška tipa „$1“",
+       "filecopyerror": "Ne mogu da kopiram datoteku „$1“ u „$2“.",
        "filerenameerror": "Ne mogu da preimenujem datoteku „$1“ u „$2“.",
        "filedeleteerror": "Ne mogu da obrišem datoteku „$1“.",
-       "directorycreateerror": "Ne mogu da napravim fasciklu „$1“.",
+       "directorycreateerror": "Ne mogu da napravim direktorijum „$1“.",
        "directoryreadonlyerror": "Direktorijum „$1“ je samo za čitanje.",
        "directorynotreadableerror": "Direktorijum „$1“ nije čitljiv.",
        "filenotfound": "Ne mogu da pronađem datoteku „$1“.",
        "unexpected": "Neočekivana vrednost: „$1“=„$2“.",
-       "formerror": "Greška: ne mogu da pošaljem obrazac",
+       "formerror": "Greška: ne mogu da pošaljem obrazac.",
        "badarticleerror": "Ova radnja se ne može izvršiti na ovoj stranici.",
        "cannotdelete": "Ne mogu da obrišem stranicu ili datoteku „$1“.\nVerovatno ju je neko drugi obrisao.",
        "cannotdelete-title": "Ne mogu da obrišem stranicu „$1“",
        "delete-hook-aborted": "Brisanje je prekinula kuka.\nNije dato nikakvo obrazloženje.",
-       "no-null-revision": "Nije moguće napraviti \"null\" reviziju za stranicu $1",
+       "no-null-revision": "Ne mogu da napravim novu praznu verziju za stranicu „$1“",
        "badtitle": "Neispravan naslov",
        "badtitletext": "Naslov stranice je neispravan, prazan ili je međujezički ili međuviki naslov pogrešno povezan.\nMožda sadrži znakove koji se ne mogu koristiti u naslovima.",
-       "title-invalid-empty": "Zatraženi naslov strane je prazan ili sadrži samo razmak.",
-       "title-invalid-utf8": "Zatraženi naslov stranice sadrži nevažeći UTF-8 niz.",
-       "title-invalid-interwiki": "Zatraženi naslov stranice sadrži \"interwiki\" vezu koja ne može biti upotrebljenja za naslove.",
-       "title-invalid-talk-namespace": "Zatraženi naslov strane se odnosi na stranicu za razgovor koja ne može da postoji.",
-       "title-invalid-characters": "Traženi naslov ima nevažeće karaktere: „$1“.",
-       "title-invalid-relative": "Naslov ima relativan put. Relativni naslovi (./, ../) su nevažeći, zato što će često biti nedostupni kroz korisnički pretraživač.",
-       "title-invalid-magic-tilde": "Naslov stranice koju ste tražili je nevažeći jer sadrži magični niz tildi (<nowiki>~~~</nowiki>)",
-       "title-invalid-too-long": "Naslov stranice koju ste tražili je predugačak. Ne sme da bude duži od $1 {{PLURAL:$1|bajt|bajtovi}} u UTF-8 znacima.",
-       "title-invalid-leading-colon": "Naslov stranice koju ste tražili sadrži dvotačku na početku.",
+       "title-invalid-empty": "Traženo ime stranice je prazno ili sadrži samo naziv imenskog prostora.",
+       "title-invalid-utf8": "Traženi naziv stranice sadrži nevažeći UTF-8 znak.",
+       "title-invalid-interwiki": "Traženi naslov stranice sadrži unutrašnju viki vezu koja ne može biti korištena u naslovima.",
+       "title-invalid-talk-namespace": "Traženi naslov stranice se odnosi na stranicu za razgovor koja ne može postojati.",
+       "title-invalid-characters": "Traženi naslov ima nevažeće znakove: „$1“.",
+       "title-invalid-relative": "Naslov ima relativnu putanju. Relativni naslovi stranica (./, ../) nisu važeći jer će često biti nedostupni u korisničkom pregledaču.",
+       "title-invalid-magic-tilde": "Traženi naslov stranice sadrži nevažeći sled magičnog znaka tilda (<nowiki>~~~</nowiki>).",
+       "title-invalid-too-long": "Traženi naziv stranice je predugačak. Ne sme biti duži od $1 {{PLURAL:$1|bajta|bajtova}} u UTF-8 kodiranju.",
+       "title-invalid-leading-colon": "Zahtevani naslov stranice sadrži nevažeću dvotačku na početku.",
        "perfcached": "Sledeći podaci su keširani i možda nisu ažurirani. U kešu {{PLURAL:$1|je dostupan najviše jedan rezultat|su dostupna najviše $1 rezultata|je dostupno najviše $1 rezultata}}.",
        "perfcachedts": "Sledeći podaci su keširani i poslednji put ažurirani na datum $2 u $3 č. U kešu {{PLURAL:$4|je dostupan najviše jedan rezultat|su dostupna najviše $4 rezultata|je dostupno najviše $4 rezultata}}.",
        "querypage-no-updates": "Ažuriranje ove stranice je trenutno onemogućeno.\nPodaci koji se ovde nalaze mogu biti zastareli.",
        "viewsource": "Izvorni kod",
-       "viewsource-title": "Izvorni tekst stranice $1",
+       "viewsource-title": "Izvorni kod za stranicu $1",
        "actionthrottled": "Radnja je usporena",
-       "actionthrottledtext": "Kao meru protiv zloupotrebe, ograničeno vam je izvođenje ove radnje previše puta u kratkom vremenskom periodu, a vi ste premašili ovo ograničenje.\nMolimo pokušajte ponovo za nekoliko minuta.",
+       "actionthrottledtext": "U cilju borbe protiv nepoželjnih poruka, ograničene su vam izmene u određenom vremenu, a upravo ste prešli to ograničenje. Pokušajte ponovo za nekoliko minuta.",
        "protectedpagetext": "Ova stranica je zaključana za izmene i druge radnje.",
-       "viewsourcetext": "Možete čitati i kopirati izvornik ove stranice.",
-       "viewyourtext": "Možete da pogledate i kopirate izvorni tekst <strong>vaših izmena</strong> na ovoj stranici.",
+       "viewsourcetext": "Možete da čitate i kopirate izvornik ove stranice.",
+       "viewyourtext": "Možete da pogledate i kopirate izvorni kod <strong>Vaših izmena</strong> na ovoj stranici.",
        "protectedinterface": "Ova stranica sadrži tekst interfejsa za softver na ovom vikiju i zaštićena je radi sprečavanja zloupotrebe.\nDa biste dodali ili izmenili prevode bilo kojeg vikija, posetite [https://translatewiki.net/ translatewiki.net], projekat za lokalizaciju Medijavikija.",
        "editinginterface": "<strong>Upozorenje:</strong> uređujete stranicu koja se koristi za prikazivanje teksta korisničkog okruženja.\nIzmene na ovoj stranici će uticati na sve korisnike ovog vikija.",
        "translateinterface": "Da dodate ili promenite prevode za sve vikije, posetite [https://translatewiki.net/ Translejtviki], projekat za lokalizaciju Medijavikija.",
        "cascadeprotected": "Ova stranica je zaključana jer sadrži {{PLURAL:$1|sledeću stranicu koja je zaštićena|sledeće stranice koje su zaštićene}} „prenosivom“ zaštitom:\n$2",
-       "namespaceprotected": "Nemate dozvolu da uređujete stranice u imenskom prostoru <strong>$1</strong>.",
+       "namespaceprotected": "Nemate dozvolu da uređujete stranice u imenskom prostoru: <strong>$1</strong>.",
        "customcssprotected": "Nemate dozvolu da menjate ovu CSS stranicu jer sadrži lična podešavanja drugog korisnika.",
-       "customjsprotected": "Nemate dozvolu da menjate ovu stranicu javaskripta jer sadrži lične postavke drugog korisnika.",
+       "customjsprotected": "Nemate dozvolu da menjate ovu stranicu JavaScript jer sadrži lična podešavanja drugog korisnika.",
        "mycustomcssprotected": "Nemate dozvolu za menjanje ove CSS stranice.",
+       "mycustomjsonprotected": "Nemate dozvolu za menjanje ove JSON stranice.",
        "mycustomjsprotected": "Nemate dozvolu za menjanje ove JavaScript stranice.",
        "myprivateinfoprotected": "Nemate dozvolu za menjanje vaših ličnih informacija.",
        "mypreferencesprotected": "Nemate dozvolu za menjanje vaših podešavanja.",
        "exception-nologin": "Niste prijavljeni",
        "exception-nologin-text": "Prijavite se da biste pristupili ovoj stranici ili radnji.",
        "exception-nologin-text-manual": "Morate biti $1 da biste pristupili ovoj stranici ili radnji.",
-       "virus-badscanner": "Neispravna postavka: nepoznati skener za viruse: ''$1''",
+       "virus-badscanner": "Neispravno podešavanje: nepoznati skener za viruse: <em>$1</em>",
        "virus-scanfailed": "neuspešno skeniranje (kod $1)",
        "virus-unknownscanner": "nepoznati antivirus:",
-       "logouttext": "<strong>Odjavljeni ste.</strong>\n\nImajte na umu da neke stranice mogu nastaviti da se prikazuju kao da ste još prijavljeni, sve dok ne očistite privremenu memoriju svog pregledača.",
-       "welcomeuser": "Dobrodošli, $1!",
+       "logouttext": "<strong>Sada ste odjavljeni.</strong>\n\nZapamtite da neke stranice mogu da nastave da se prikazuju kao da ste još uvek prijavljeni, dok ne očistite privremenu memoriju svog pregledača.",
+       "cannotlogoutnow-title": "Odjava trenutno nije moguća",
+       "cannotlogoutnow-text": "Odjava nije moguća tokom upotrebe $1.",
+       "welcomeuser": "Dobro došli, $1!",
        "welcomecreation-msg": "Vaš nalog je otvoren.\nNe zaboravite da promenite svoja [[Special:Preferences|podešavanja]].",
        "yourname": "Korisničko ime:",
        "userlogin-yourname": "Korisničko ime",
        "userlogin-yourpassword": "Lozinka",
        "userlogin-yourpassword-ph": "Unesite svoju lozinku",
        "createacct-yourpassword-ph": "Unesite lozinku",
-       "yourpasswordagain": "Potvrda lozinke:",
+       "yourpasswordagain": "Ponovo unesi lozinku:",
        "createacct-yourpasswordagain": "Potvrdite lozinku",
-       "createacct-yourpasswordagain-ph": "Unesite lozinku još jednom",
+       "createacct-yourpasswordagain-ph": "Unesite lozinku ponovo",
        "userlogin-remembermypassword": "Ostavi me prijavljenog/u",
        "userlogin-signwithsecure": "Koristite sigurnu konekciju",
+       "cannotlogin-title": "Prijava nije moguća",
+       "cannotlogin-text": "Prijava nije moguća",
+       "cannotloginnow-title": "Prijava trenutno nije moguća",
+       "cannotloginnow-text": "Prijava nije moguća kada se koristi $1.",
+       "cannotcreateaccount-title": "Otvaranje naloga nije moguće",
+       "cannotcreateaccount-text": "Direktno pravljenje naloga nije omogućeno na ovom vikiju.",
        "yourdomainname": "Domen:",
        "password-change-forbidden": "Ne možete da promenite lozinku na ovom vikiju.",
        "externaldberror": "Došlo je do greške pri prepoznavanju baze podataka ili nemate ovlašćenja da ažurirate svoj spoljni nalog.",
        "login": "Prijavi me",
-       "login-security": "Verifikacija vašeg identiteta",
+       "login-security": "Verifikacija vašeg indentiteta",
        "nav-login-createaccount": "Prijava/registracija",
        "logout": "Odjava",
        "userlogout": "Odjava",
        "notloggedin": "Niste prijavljeni",
        "userlogin-noaccount": "Nemate nalog?",
-       "userlogin-joinproject": "Otvorite ga",
+       "userlogin-joinproject": "Pridružite se projektu {{SITENAME}}",
        "createaccount": "Otvori nalog",
        "userlogin-resetpassword-link": "Zaboravili ste lozinku?",
        "userlogin-helplink2": "Pomoć pri prijavljivanju",
        "userlogin-loggedin": "Već ste prijavljeni kao {{GENDER:$1|$1}}.\nKoristite donji obrazac da biste se prijavili kao drugi korisnik.",
+       "userlogin-reauth": "Morate se ponovo prijaviti da bi verifikovali da ste {{GENDER:$1|$1}}.",
        "userlogin-createanother": "Otvori još jedan nalog",
        "createacct-emailrequired": "Imejl adresa",
-       "createacct-emailoptional": "Imejl adresa (opciono)",
-       "createacct-email-ph": "Unesite Vašu imejl adresu",
+       "createacct-emailoptional": "Imejl adresa (neobavezno)",
+       "createacct-email-ph": "Unesite svoju imejl adresu",
        "createacct-another-email-ph": "Unesite imejl adresu",
-       "createaccountmail": "Koristite privremenu, slučajno stvorenu lozinku i pošaljite na navedenu adresu elektronske pošte",
-       "createacct-realname": "Pravo ime (opciono)",
+       "createaccountmail": "Koristite privremenu, slučajno stvorenu lozinku i pošaljite na navedenu imejl adresu",
+       "createaccountmail-help": "Može se koristiti da se nekome napravi nalog bez saznanja lozinke.",
+       "createacct-realname": "Pravo ime (neobavezno)",
        "createacct-reason": "Razlog",
        "createacct-reason-ph": "Zašto pravite još jedan nalog?",
+       "createacct-reason-help": "Poruka koja se prikazuje u dnevniku stvaranja korisničkih naloga",
        "createacct-submit": "Otvori nalog",
        "createacct-another-submit": "Otvori nalog",
+       "createacct-continue-submit": "Nastavite otvaranje naloga",
+       "createacct-another-continue-submit": "Nastavite otvaranje naloga",
        "createacct-benefit-heading": "{{SITENAME}} je projekat koji stvaraju ljudi poput Vas.",
-       "createacct-benefit-body1": "{{PLURAL:$1|izmena|izmene}}",
-       "createacct-benefit-body2": "{{PLURAL:$1|stranica|stranice}}",
-       "createacct-benefit-body3": "{{PLURAL:$1|aktivni korisnik|aktivnih korisnika}}",
+       "createacct-benefit-body1": "{{PLURAL:$1|izmena|izmene|izmena}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|stranica|stranice|stranica}}",
+       "createacct-benefit-body3": "nedavno {{PLURAL:$1|aktivni korisnik|aktivna korisnika|aktivnih korisnika}}",
        "badretype": "Unete lozinke se ne poklapaju.",
-       "usernameinprogress": "Nalog za ovo korisničko ime se već pravi, molimo sačekajte.",
+       "usernameinprogress": "Nalog za ovo korisničko ime se već pravi, sačekajte.",
        "userexists": "Korisničko ime je zauzeto. Izaberite drugo.",
        "loginerror": "Greška pri prijavljivanju",
        "createacct-error": "Došlo je do greške pri otvaranju naloga",
-       "createaccounterror": "Ne mogu da otvorim nalog: $1",
+       "createaccounterror": "Ne mogu da otvorim nalog: $1.",
        "nocookiesnew": "Korisnički nalog je otvoren, ali niste prijavljeni.\n{{SITENAME}} koristi kolačiće za prijavu. Vama su kolačići onemogućeni.\nOmogućite ih, pa se onda prijavite sa svojim korisničkim imenom i lozinkom.",
        "nocookieslogin": "{{SITENAME}} koristi kolačiće za prijavljivanje korisnika.\nVama su kolačići onemogućeni. Omogućite ih i pokušajte ponovo.",
        "nocookiesfornew": "Korisnički nalog nije otvoren jer njegov izvor nije potvrđen.\nOmogućite kolačiće na pregledaču i ponovo učitajte stranicu.",
        "nocookiesforlogin": "{{int:nocookieslogin}}",
+       "createacct-loginerror": "Nalog je uspešno napravljen, ali se ne možete automatski prijaviti. Pređite na [[Special:UserLogin|ručno prijavljivanje]].",
        "noname": "Uneli ste neispravno korisničko ime.",
        "loginsuccesstitle": "Uspešno prijavljivanje",
-       "loginsuccess": "'''Prijavljeni ste kao „$1“.'''",
+       "loginsuccess": "<strong>Prijavljeni ste na {{SITENAME}} kao „$1”.</strong>",
        "nosuchuser": "Ne postoji korisnik s imenom „$1“.\nKorisnička imena su osetljiva na mala i velika slova.\nProverite da li ste ga dobro uneli ili [[Special:CreateAccount|otvorite novi nalog]].",
        "nosuchusershort": "Korisnik s imenom „$1“ ne postoji.\nProverite da li ste pravilno napisali.",
        "nouserspecified": "Morate navesti korisničko ime.",
        "login-userblocked": "{{GENDER:$1|Ovaj korisnik je blokiran|Ova korisnica je blokirana|Ovaj korisnik je blokiran}}. Prijava nije dozvoljena.",
-       "wrongpassword": "Uneli ste neispravnu lozinku. Pokušajte ponovo.",
+       "wrongpassword": "Uneli ste neispravno korisničko ime ili lozinku. Pokušajte ponovo.",
        "wrongpasswordempty": "Niste uneli lozinku. Pokušajte ponovo.",
        "passwordtooshort": "Lozinka mora imati najmanje {{PLURAL:$1|jedan znak|$1 znaka|$1 znakova}}.",
        "passwordtoolong": "Lozinke ne mogu biti duže od {{PLURAL:$1|$1 znaka|$1 znakova}}.",
+       "passwordtoopopular": "Često izabrane lozinke ne mogu da se koriste. Izaberite lozinku koju je teže pogoditi.",
        "password-name-match": "Lozinka se mora razlikovati od korisničkog imena.",
        "password-login-forbidden": "Korišćenje ovog korisničkog imena i lozinke je zabranjeno.",
        "mailmypassword": "Resetuj lozinku",
        "passwordremindertitle": "{{SITENAME}} — privremena lozinka",
-       "passwordremindertext": "Neko, verovatno vi, sa IP adrese $1 je zatražio novu lozinku na vikiju {{SITENAME}} ($4).\nStvorena je privremena lozinka za {{GENDER:$2|korisnika|korisnicu|korisnika}} $2 koja glasi $3.\nUkoliko je ovo vaš zahtev, sada se prijavite i postavite novu lozinku.\nPrivremena lozinka ističe za {{PLURAL:$5|jedan dan|$5 dana|$5 dana}}.\n\nAko je neko drugi zatražio promenu lozinke, ili ste se setili vaše lozinke i ne želite da je menjate, zanemarite ovu poruku.",
+       "passwordremindertext": "Neko sa IP adrese $1 je zatražio novu lozinku na vikiju {{SITENAME}} ($4).\nStvorena je privremena lozinka za {{GENDER:$2|korisnika|korisnicu|korisnika}} $2 koja glasi $3.\nUkoliko je ovo vaš zahtev, sada se prijavite i postavite novu lozinku.\nPrivremena lozinka ističe za {{PLURAL:$5|jedan dan|$5 dana}}.\n\nAko je neko drugi zatražio promenu lozinke, ili ste se setili vaše lozinke i ne želite da je menjate, zanemarite ovu poruku.",
        "noemail": "Ne postoji imejl adresa za {{GENDER:$1|korisnika|korisnicu}} $1.",
        "noemailcreate": "Morate navesti ispravnu imejl adresu.",
        "passwordsent": "Nova lozinka je poslata na imejl adresu {{GENDER:$1|korisnika|korisnice|korisnika}} $1.\nPrijavite se pošto je primite.",
-       "blocked-mailpassword": "Vašoj IP adresi je onemogućeno uređivanje stranica, kao i mogućnost zahtevanja nove lozinke.",
-       "eauthentsent": "Na navedenu imejl adresu je poslat potvrdni kod.\nPre nego što pošaljemo daljnje poruke, pratite uputstva s imejla da biste potvrdili da ste Vi otvorili nalog.",
+       "blocked-mailpassword": "Vaša IP adresa ima zabranu uređivanja. Radi sprečavanja zloupotrebe, nije dozvoljeno vraćanje lozinke sa nje.",
+       "eauthentsent": "Na navedenu imejl adresu je poslat potvrdni kôd.\nPre nego što pošaljemo daljnje poruke, pratite uputstva s imejla da biste potvrdili da ste Vi otvorili nalog.",
        "throttled-mailpassword": "Poruka za promenu lozinke je poslata u {{PLURAL:$1|1=poslednjih sat vremena|poslednja $1 sata|poslednjih $1 sati}}.\nDa bismo sprečili zloupotrebu, podsetnik šaljemo samo jednom u roku od {{PLURAL:$1|1=sat vremena|$1 sata|$1 sati}}.",
        "mailerror": "Greška pri slanju poruke: $1",
        "acct_creation_throttle_hit": "Posetioci ovog vikija koji koriste vašu IP adresu su već otvorili {{PLURAL:$1|1=jedan nalog|$1 naloga}} prethodni $2, što je najveći dozvoljeni broj u tom vremenskom periodu.\nZbog toga posetioci s ove IP adrese trenutno ne mogu otvoriti više naloga.",
-       "emailauthenticated": "Vaša imejl adresa je potvrđena $2 u $3.",
-       "emailnotauthenticated": "Vaša imejl adresa još nije potvrđena.\nImejl neće biti poslat ni u jednom od sledećih slučajeva.",
-       "noemailprefs": "Unesite imejl adresu kako bi ove mogućnosti radile.",
+       "emailauthenticated": "Vaša imejl adresa je potvrđena na dan $2 u $3.",
+       "emailnotauthenticated": "Vaša imejl adresa još uvek nije potvrđena.\nImejl neće biti poslat ni u jednom od sledećih slučajeva.",
+       "noemailprefs": "Navedite imejl adresu u svojim podešavanjima za rad ovih mogućnosti.",
        "emailconfirmlink": "Potvrdite svoju imejl adresu",
        "invalidemailaddress": "Imejl adresa ne može biti prihvaćena jer je neispravnog oblika.\nUnesite ispravnu adresu ili ostavite prazno polje.",
        "cannotchangeemail": "Na ovom vikiju ne možete promeniti imejl adresu naloga.",
        "accountcreatedtext": "Korisnički nalog [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) je otvoren.",
        "createaccount-title": "Otvaranje korisničkog naloga za {{SITENAME}}",
        "createaccount-text": "Neko je otvorio nalog s vašom imejl adresom na {{SITENAME}} ($4) pod imenom $2 i lozinkom $3.\nPrijavite se i promenite svoju lozinku.\n\nAko je ovo greška, zanemarite ovu poruku.",
-       "login-throttled": "Previše puta ste pokušali da se prijavite. \nMolimo vas da sačekate $1 pre nego što pokušate ponovo.",
+       "login-throttled": "Previše puta ste pokušali da se prijavite.\nMolimo vas da sačekate $1 pre nego što pokušate ponovo.",
        "login-abort-generic": "Neuspešna prijava – prekinuto",
        "login-migrated-generic": "Vaš nalog je migriran i vaše korisničko više ne postoji na ovom vikiju.",
        "loginlanguagelabel": "Jezik: $1",
        "pt-userlogout": "Odjavi me",
        "php-mail-error-unknown": "Nepoznata greška u funkciji PHP mail().",
        "user-mail-no-addy": "Pokušali ste da pošaljete imejl bez imejl adrese.",
-       "user-mail-no-body": "Pokušano slanje elektronske poruke s praznim ili nerazumno kratkim sadržajem.",
+       "user-mail-no-body": "Pokušano slanje imejla s praznim ili nerazumno kratkim sadržajem.",
        "changepassword": "Promeni lozinku",
        "resetpass_announce": "Da biste završili prijavu, podesite novu lozinku ovde.",
        "resetpass_text": "<!-- Ovde unesite tekst -->",
        "newpassword": "Nova lozinka:",
        "retypenew": "Potvrda lozinke:",
        "resetpass_submit": "Postavi lozinku i prijavi me",
-       "changepassword-success": "Vaša lozinka je promenjena.",
+       "changepassword-success": "Vaša lozinka je uspešno promenjena!",
        "changepassword-throttled": "Previše puta ste pokušali da se prijavite.\nMolimo vas da sačekate $1 pre nego što pokušate ponovo.",
        "botpasswords": "Lozinke botova",
+       "botpasswords-disabled": "Lozinke botova su onemogućene.",
+       "botpasswords-no-central-id": "Da bi ste koristili botovske lozinke, morate biti prijavljeni na središnji nalog.",
+       "botpasswords-existing": "Postojeća lozinka bota",
+       "botpasswords-createnew": "Napravi novu lozinku za bota",
+       "botpasswords-editexisting": "Izmeni postojeću lozinku za bota",
+       "botpasswords-label-needsreset": "(lozinku treba resetovati)",
        "botpasswords-label-appid": "Ime bota:",
        "botpasswords-label-create": "Napravi",
        "botpasswords-label-update": "Ažuriraj",
        "botpasswords-label-cancel": "Otkaži",
        "botpasswords-label-delete": "Obriši",
+       "botpasswords-label-resetpassword": "Resetuj lozinku",
+       "botpasswords-label-grants": "Primenljive dozvole:",
        "botpasswords-label-grants-column": "Odobreno",
+       "botpasswords-bad-appid": "„$1” nije validan naziv bota.",
+       "botpasswords-insert-failed": "Neuspešno dodavanje bota \"$1\". Da li je već dodat?",
+       "botpasswords-update-failed": "Nije moguće ažurirati bota \"$1\". Da li je obrisan?",
+       "botpasswords-created-title": "Napravljena lozinka bota",
+       "botpasswords-created-body": "Lozinka za bota „$1” korisnika „$2” je napravljena.",
+       "botpasswords-updated-title": "Lozinka bota promenjena",
+       "botpasswords-updated-body": "Lozinka za bota „$1” korisnika „$2” je ažurirana.",
+       "botpasswords-deleted-title": "Obrisana lozinka bota",
+       "botpasswords-deleted-body": "Lozinka za bota „$1” korisnika „$2” je obrisana.",
+       "botpasswords-no-provider": "BotPasswordsSessionProvider nije dostupan.",
+       "botpasswords-restriction-failed": "Ne možete se prijaviti zbog ograničenja lozinki za botove.",
+       "botpasswords-not-exist": "Korisnik „$1“ nema lozinku bota „$2“.",
        "resetpass_forbidden": "Lozinka ne može biti promenjena",
+       "resetpass_forbidden-reason": "Lozinke nije moguće promeniti: $1",
        "resetpass-no-info": "Morate biti prijavljeni da biste pristupili ovoj stranici.",
        "resetpass-submit-loggedin": "Promeni lozinku",
        "resetpass-submit-cancel": "Otkaži",
-       "resetpass-wrong-oldpass": "Neispravna privremena ili tekuća lozinka.\nMožda ste već promenili lozinku ili ste zatražili novu privremenu lozinku.",
-       "resetpass-recycled": "Uneli ste sadašnju lozinku, da biste resetovali lozinku morate uneti novu.",
-       "resetpass-temp-emailed": "Prijavili ste se sa privremenim kodom iz imejla.\nDa biste završili prijavljivanje morate postaviti novu lozinku ovde:",
+       "resetpass-wrong-oldpass": "Neispravna privremena ili trenutna lozinka.\nMožda ste već promenili lozinku ili ste zatražili novu privremenu lozinku.",
+       "resetpass-recycled": "Uneli ste sadašnju lozinku, da biste promenili lozinku morate uneti novu.",
+       "resetpass-temp-emailed": "Prijavili ste se sa privremenim kôdom iz imejla.\nDa biste završili prijavljivanje morate postaviti novu lozinku ovde:",
        "resetpass-temp-password": "Privremena lozinka:",
        "resetpass-abort-generic": "Promenu lozinke je sprečio dodatak.",
        "resetpass-expired": "Vaša lozinka je istekla. Postavite novu lozinku da biste se prijavili.",
-       "resetpass-expired-soft": "Vaša lozinka je istekla i morate postaviti novu. Postavite novu lozinku ili kliknite „{{int:authprovider-resetpass-skip-label}}“ da je postavite kasnije.",
-       "resetpass-validity-soft": "Vaša lozinka nije valjana: $1\n\nMolimo izaberite novu ili kliknite „{{int:authprovider-resetpass-skip-label}}“ da resetujete kasnije.",
+       "resetpass-expired-soft": "Vaša lozinka je istekla i morate je promeniti. Postavite novu lozinku ili kliknite „{{int:authprovider-resetpass-skip-label}}“ da je promenite kasnije.",
+       "resetpass-validity-soft": "Vaša lozinka nije ispravna: $1\n\nMolimo izaberite novu ili kliknite „{{int:authprovider-resetpass-skip-label}}“ da je promenite kasnije.",
        "passwordreset": "Obnavljanje lozinke",
        "passwordreset-text-one": "Popunite ovaj obrazac da biste dobili privremenu lozinku na imejl.",
        "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja kako biste dobili privremenu lozinku na imejl.}}",
        "passwordreset-emailtext-ip": "Neko (verovatno Vi, sa IP adrese $1) je zatražio novu lozinku na vikiju {{SITENAME}} ($4).\nSledeći {{PLURAL:$3|korisnički nalog je povezan|korisnički nalozi su povezani}} s ovom imejl adresom:\n\n$2\n\n{{PLURAL:$3|Privremena lozinka ističe|Privremene lozinke ističu}} za {{PLURAL:$5|jedan dan|$5 dana}}.\nPrijavite se i izaberite novu lozinku. Ako je neko drugi zahtevao ovu radnju ili ste se setili lozinke i ne želite da je menjate, zanemarite ovu poruku i nastavite koristiti staru lozinku.",
        "passwordreset-emailtext-user": "{{GENDER:$1|Korisnik je zatražio|Korisnica je zatražila}} podsetnik o podacima za prijavu na vikiju {{SITENAME}} ($4).\nSledeći {{PLURAL:$3|korisnički nalog je povezan|korisnički nalozi su povezani}} s ovom imejl adresom:\n\n$2\n\n{{PLURAL:$3|Privremena lozinka ističe|Privremene lozinke ističu}} za {{PLURAL:$5|jedan dan|$5 dana}}.\nPrijavite se i izaberite novu lozinku. Ako je neko drugi zahtevao ovu radnju ili ste se setili lozinke i ne želite da je menjate, zanemarite ovu poruku.",
        "passwordreset-emailelement": "Korisničko ime: \n$1\n\nPrivremena lozinka: \n$2",
-       "passwordreset-emailsentemail": "Podsetnik o lozinci je poslat na vašu adresu.",
+       "passwordreset-emailsentemail": "Ako je ovo imejl adresa povezana sa Vašim nalogom, podsetnik o lozinci će biti poslat na imejl.",
        "passwordreset-emailsentusername": "Ako ste naveli imejl adresu prilikom registracije, biće poslat imejl za resetovanje lozinke.",
-       "changeemail": "Promeni ili ukloni imejl adresu",
-       "changeemail-header": "Promenite e-adresu naloga",
+       "passwordreset-nocaller": "Pozivalac se mora navesti",
+       "passwordreset-nosuchcaller": "Pozivalac ne postoji: $1",
+       "passwordreset-ignored": "Resetovanje lozinke nije uspelo. Možda poslužilac nije konfigurisan?",
+       "passwordreset-invalidemail": "Neispravna imejl adresa",
+       "passwordreset-nodata": "Korisničko ime i adresa e-pošte nisu navedeni",
+       "changeemail": "Promena ili uklanjanje imejl adrese",
+       "changeemail-header": "Popunite ovaj obrazac da bi ste promenili Vašu imejl adresu. Ako želi da uskratite pristup bilo kojoj imejl adresi Vašem nalogu, ostavite prazno polje za novu imejl adresu prilikom popunjavanje obrasca.",
        "changeemail-no-info": "Morate biti prijavljeni da biste pristupili ovoj stranici.",
        "changeemail-oldemail": "Trenutna imejl adresa:",
        "changeemail-newemail": "Nova imejl adresa:",
        "changeemail-throttled": "Previše puta ste pokušali da se prijavite.\nMolimo vas da sačekate $1 pre nego što pokušate ponovo.",
        "changeemail-nochange": "Unesite drugu imejl adresu.",
        "resettokens": "Resetovanje žetona",
+       "resettokens-text": "Možete ponovo postaviti žetone koji će vam omogućiti pristup određenim privatnim podacima povezanim sa vašim nalogom ovde.\n\nTrebali biste to da uradite ako ih mimo volje podelite s nekim ili ako je vaš nalog ugrožen.",
        "resettokens-no-tokens": "Nema žetona za resetovanje.",
        "resettokens-tokens": "Žetoni:",
        "resettokens-token-label": "$1 (trenutna vrednost: $2)",
-       "resettokens-watchlist-token": "Žeton za veb dovod (Atom/RSS) vašeg [[Special:Watchlist|spiska nadgledanja]]",
+       "resettokens-watchlist-token": "Žeton za veb dovod (Atom/RSS) [[Special:Watchlist|izmena na stranicama u vašem spisku nadgledanja]]",
        "resettokens-done": "Žetoni su resetovani",
        "resettokens-resetbutton": "Resetuj izabrane žetone",
        "bold_sample": "Podebljan tekst",
        "bold_tip": "Podebljan tekst",
-       "italic_sample": "Iskošeni tekst",
-       "italic_tip": "Iskošeni tekst",
+       "italic_sample": "Iskošen tekst",
+       "italic_tip": "Iskošen tekst",
        "link_sample": "Naslov veze",
        "link_tip": "Unutrašnja veza",
-       "extlink_sample": "http://www.primer.com naslov veze",
-       "extlink_tip": "Spoljna veza (s predmetkom http://)",
-       "headline_sample": "Naslov",
-       "headline_tip": "Podnaslov",
+       "extlink_sample": "http://www.example.com/ naslov veze",
+       "extlink_tip": "Spoljašnja veza (s prefiksom http://)",
+       "headline_sample": "Tekst naslova",
+       "headline_tip": "Podnaslov (nivo 2)",
        "nowiki_sample": "Ubacite neoblikovan tekst ovde",
        "nowiki_tip": "Zanemari viki oblikovanje",
        "image_sample": "Primer.jpg",
-       "image_tip": "Ugrađena datoteka",
+       "image_tip": "Ugrađivanje datoteke",
        "media_sample": "Primer.ogg",
        "media_tip": "Veza",
        "sig_tip": "Vaš potpis sa trenutnim vremenom",
-       "hr_tip": "Vodoravna linija (koristiti retko)",
+       "hr_tip": "Vodoravna linija (koristite retko)",
        "summary": "Opis izmene:",
        "subject": "Tema:",
        "minoredit": "Ovo je manja izmena",
        "savechanges": "Sačuvaj izmene",
        "publishpage": "Objavi stranicu",
        "publishchanges": "Objavi izmene",
+       "savearticle-start": "Sačuvaj stranicu...",
+       "savechanges-start": "Sačuvaj izmene...",
+       "publishpage-start": "Objavi stranicu...",
+       "publishchanges-start": "Objavi izmene...",
        "preview": "Pretpregled",
        "showpreview": "Prikaži pretpregled",
        "showdiff": "Prikaži izmene",
        "blankarticle": "<strong>Upozorenje:</strong> Stranica koju pravite je prazna.\nAko još jednom pritisnete „$1”, stranica će biti napravljena bez ikakvog sadržaja.",
        "anoneditwarning": "<strong>Upozorenje:</strong> Niste prijavljeni. Ako objavite stranicu, Vaša IP adresa će biti javno vidljiva u njenoj istoriji izmena i drugde. Ako se <strong>[$1 prijavite]</strong> ili <strong>[$2 otvorite nalog]</strong>, pored ostalih pogodnosti koje dobijate Vaše izmene će biti pripisivane Vašem korisničkom imenu.",
        "anonpreviewwarning": "<em>Niste prijavljeni. Ako objavite stranicu, Vaša IP adresa će biti javno vidljiva u njenoj istoriji izmena i drugde.</em>",
-       "missingsummary": "'''Podsetnik:''' Niste uneli opis izmene.\nAko ponovo kliknete na „$1”, Vaša izmena će biti sačuvana bez opisa.",
+       "missingsummary": "<strong>Podsetnik:</strong> Niste uneli opis izmene.\nAko ponovo kliknete na „$1”, Vaša izmena će biti sačuvana bez opisa.",
        "selfredirect": "<strong>Upozorenje:</strong> Preusmeravate ovu stranicu na nju samu.\nMožda vam je odredišna stranica za preusmerenje pogrešna ili uređujete pogrešnu stranicu.\nAko još jednom pritisnete „$1”, preusmerenje će svejedno biti napravljeno.",
-       "missingcommenttext": "Unesite komentar ispod.",
+       "missingcommenttext": "Molimo unesite komentar.",
        "missingcommentheader": "<strong>Napomena:</strong> Niste uneli naslov teme ovog komentara.\nAko ponovo kliknete na „$1”, izmena će biti sačuvana bez naslova.",
-       "summary-preview": "Pregled opisa:",
-       "subject-preview": "Pregled tema:",
+       "summary-preview": "Pregled opisa izmene:",
+       "subject-preview": "Pregled teme:",
+       "previewerrortext": "Dogodila se greška prilikom prikazivanja vaših izmena.",
        "blockedtitle": "Korisnik je blokiran",
-       "blockedtext": "<strong>Vaše korisničko ime ili IP adresa je blokirana.</strong>\n\nBlokiranje je {{GENDER:$4|izvršio|izvršila}} $1.\nRazlog je <em>$2</em>.\n\n* Datum blokiranja: $8\n* Blokiranje ističe: $6\n* Ime korisnika: $7\n\nObratite se {{GENDER:$4|korisniku|korisnici}} $1 ili [[{{MediaWiki:Grouppage-sysop}}|administratoru]] da razjasnite stvar.\nNe možete koristiti mogućnost „Pošalji imejl ovom korisniku“ ako niste uneli ispravnu imejl adresu u [[Special:Preferences|podešavanjima]].\nVaša blokirana IP adresa je $3, a ID blokiranja $5.\nNavedite sve podatke iznad pri stvaranju bilo kakvih upita.",
-       "autoblockedtext": "Vaša IP adresa je blokirana jer ju je upotrebljavao drugi korisnik, koga je {{GENDER:$4|blokirao|blokirala}} $1.\nRazlog:\n\n:<em>$2</em>\n\n* Datum blokiranja: $8\n* Blokiranje ističe: $6\n* Ime korisnika: $7\n\nObratite se {{GENDER:$4|korisniku|korisnici}} $1 ili [[{{MediaWiki:Grouppage-sysop}}|administratoru]] da razjasnite stvar.\n\nNe možete koristiti mogućnost „Pošalji imejl ovom korisniku“ ako niste uneli ispravnu imejl adresu u [[Special:Preferences|podešavanjima]].\n\nVaša blokirana IP adresa je $3, a ID $5.\nNavedite sve podatke iznad pri stvaranju bilo kakvih upita.",
+       "blockedtext": "<strong>Vaše korisničko ime ili IP adresa je blokirana.</strong>\n\nBlokiranje je {{GENDER:$4|izvršio|izvršila}} $1.\nRazlog je <em>$2</em>.\n\n* Početak blokiranja: $8\n* Istek blokiranja: $6\n* Blokirani: $7\n\nMožete da se obratite {{GENDER:$4|korisniku|korisnici}} $1 ili [[{{MediaWiki:Grouppage-sysop}}|administratoru]] radi diskusije o blokiranju.\nNe možete da koristite mogućnost „{{int:emailuser}}” osim ako ste uneli validnu imejl adresu u svojim [[Special:Preferences|podešavanjima]] naloga i niste blokirani od korišćenja iste.\nVaša trenutna IP adresa je $3, a ID blokiranja #$5.\nNavedite sve informacije odozgo pri stvaranju bilo kakvih upita.",
+       "autoblockedtext": "Vaša IP adresa je blokirana jer ju je upotrebljavao drugi korisnik, koga je {{GENDER:$4|blokirao|blokirala}} $1.\nRazlog:\n\n:<em>$2</em>\n\n* Datum blokiranja: $8\n* Blokiranje ističe: $6\n* Ime korisnika: $7\n\nObratite se {{GENDER:$4|korisniku|korisnici}} $1 ili [[{{MediaWiki:Grouppage-sysop}}|administratoru]] da razjasnite stvar.\n\nNe možete koristiti mogućnost „{{int:emailuser}}“ ako niste uneli ispravnu imejl adresu u [[Special:Preferences|podešavanjima]].\n\nVaša blokirana IP adresa je $3, a ID $5.\nNavedite sve podatke iznad pri stvaranju bilo kakvih upita.",
        "blockednoreason": "razlog nije naveden",
        "whitelistedittext": "Za uređivanje stranice je potrebno da budete $1.",
        "confirmedittext": "Morate da potvrdite svoju imejl adresu pre uređivanja stranica.\nPostavite i potvrdite imejl adresu preko [[Special:Preferences|podešavanja]].",
-       "nosuchsectiontitle": "Ne mogu da pronađem odeljak",
+       "nosuchsectiontitle": "Ne mogu da pronađem odeljak.",
        "nosuchsectiontext": "Pokušali ste da uredite odeljak koji ne postoji.\nMožda je premešten ili obrisan dok ste pregledali stranicu.",
        "loginreqtitle": "Potrebna je prijava",
        "loginreqlink": "prijavljeni",
        "loginreqpagetext": "Morate biti $1 da biste videli druge stranice.",
        "accmailtitle": "Lozinka je poslata.",
-       "accmailtext": "Lozika za {{GENDER:$1|korisnika|korisnicu}} [[User talk:$1|$1]] je poslata na $2. Nakon prijave, lozinka se može promeniti [[Special:ChangePassword|ovde]].",
+       "accmailtext": "Lozinka za {{GENDER:$1|korisnika|korisnicu}} [[User talk:$1|$1]] je poslata na $2. Nakon prijave, lozinka se može promeniti [[Special:ChangePassword|ovde]].",
        "newarticle": "(novi)",
        "newarticletext": "Došli ste na stranicu koja još ne postoji.\nDa biste je napravili, počnite da kucate u prozor ispod ovog teksta (pogledajte [$1 stranicu za pomoć]).\nAko ste ovde došli greškom, vratite se na prethodnu stranicu.",
-       "anontalkpagetext": "---- Ovo je stranica za razgovor s anonimnim korisnikom koji još nema nalog ili ga ne koristi.\nZbog toga moramo da koristimo brojčanu IP adresu kako bismo ga prepoznali.\nTakvu adresu može deliti više korisnika.\nAko ste anonimni korisnik i mislite da su vam upućene primedbe, [[Special:CreateAccount|otvorite nalog]] ili se [[Special:UserLogin|prijavite]] da biste izbegli buduću zabunu s ostalim anonimnim korisnicima.",
-       "noarticletext": "Na ovoj stranici trenutno nema sadržaja.\nMožete [[Special:Search/{{PAGENAME}}|potražiti ovaj naslov]] na drugim stranicama,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti srodne izveštaje] ili [{{fullurl:{{FULLPAGENAME}}|action=edit}} napraviti ovu stranicu]</span>.",
-       "noarticletext-nopermission": "Na ovoj stranici trenutno nema sadržaja.\nMožete [[Special:Search/{{PAGENAME}}|potražiti ovaj naslov]] na drugim stranicama ili <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti srodne dnevnike]</span>, ali nemate dozvolu da napravite ovu stranicu.",
+       "anontalkpagetext": "----\n<em>Ovo je stranica za razgovor s anonimnim korisnikom koji još nema nalog ili ga ne koristi.</em>\nZbog toga moramo da koristimo brojčanu IP adresu kako bismo ga prepoznali.\nTakvu adresu može deliti više korisnika.\nAko ste anonimni korisnik i mislite da su vam upućene primedbe, [[Special:CreateAccount|otvorite nalog]] ili se [[Special:UserLogin|prijavite]] da biste izbegli buduću zabunu s ostalim anonimnim korisnicima.",
+       "noarticletext": "Na ovoj stranici trenutno nema teksta.\nMožete [[Special:Search/{{PAGENAME}}|potražiti ovaj naslov]] na drugim stranicama,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti srodne izveštaje] ili [{{fullurl:{{FULLPAGENAME}}|action=edit}} napraviti ovu stranicu]</span>.",
+       "noarticletext-nopermission": "Na ovoj stranici trenutno nema teksta.\nMožete [[Special:Search/{{PAGENAME}}|potražiti ovaj naslov]] na drugim stranicama ili <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pretražiti srodne dnevnike]</span>, ali nemate dozvolu da napravite ovu stranicu.",
        "missing-revision": "Ne mogu da pronađem izmenu br. $1 na stranici pod nazivom „{{FULLPAGENAME}}“.\n\nOvo se obično dešava kada pratite zastarelu vezu do stranice koja je obrisana.\nViše informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} dnevniku brisanja].",
        "userpage-userdoesnotexist": "Korisnički nalog „<nowiki>$1</nowiki>“ nije otvoren.\nRazmislite da li zaista želite da napravite/uredite ovu stranicu.",
        "userpage-userdoesnotexist-view": "Korisnički nalog „$1“ nije otvoren.",
        "blocked-notice-logextract": "Ovaj korisnik je trenutno blokiran.\nIzveštaj o poslednjem blokiranju možete pogledati ispod:",
-       "clearyourcache": "<strong>Napomena:</strong> Nakon čuvanja, možda ćete morati da očistite keš pregledača kako biste videli izmene.\n* <strong>Fajerfoks/Safari:</strong> Držite <em>Shift</em> i kliknite na <em>Osveži</em> ili pritisnite <em>Ctrl-F5</em> ili <em>Ctrl-R</em> (<em>⌘-R</em> na Meku)\n* <strong>Gugl kroum:</strong> Pritisnite <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> na Meku)\n* <strong>Internet eksplorer:</strong> Držite <em>Ctrl</em> i kliknite na <em>Osveži</em> ili pritisnite <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Idite na <em>Alatke → Podešavanja</em> (<em>Opera → Postavke</em> na Meku) i zatim <em>Privatnost i bezbednost → Očistite podatke o pregledima → Keširane slike i datoteke</em>.",
-       "usercssyoucanpreview": "'''Savet:''' korisitite dugme „{{int:showpreview}}“ da isprobate svoj novi CSS pre nego što ga sačuvate.",
-       "userjsyoucanpreview": "'''Savet:''' korisitite dugme „{{int:showpreview}}“ da isprobate svoj novi javaskript pre nego što ga sačuvate.",
-       "usercsspreview": "'''Ovo je samo pregled CSS-a.'''\n'''Stranica još nije sačuvana!'''",
-       "userjspreview": "'''Ovo je samo pregled javaskripta.'''\n'''Stranica još nije sačuvana!'''",
-       "sitecsspreview": "'''Ovo je samo pregled CSS-a.'''\n'''Stranica još nije sačuvana!'''",
-       "sitejspreview": "'''Ovo je samo pregled javaskripta.'''\n'''Stranica još nije sačuvana!'''",
-       "userinvalidconfigtitle": "<strong>Upozorenje:</strong> ne postoji tema „$1“.\nPrilagođene stranice CSS i javaskript počinju malim slovom, npr. {{ns:user}}:Foo/vector.css, a ne {{ns:user}}:Foo/Vector.css.",
-       "updated": "(Ažurirano)",
+       "clearyourcache": "<strong>Napomena:</strong> Nakon čuvanja, možda ćete morati da očistite keš pregledača kako biste videli izmene.\n* <strong>Fajerfoks / Safari:</strong> Držite <em>Shift</em> i kliknite na <em>Osveži</em> ili pritisnite <em>Ctrl-F5</em> ili <em>Ctrl-R</em> (<em>⌘-R</em> na Meku)\n* <strong>Gugl kroum:</strong> Pritisnite <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> na Meku)\n* <strong>Internet eksplorer:</strong> Držite <em>Ctrl</em> i kliknite na <em>Osveži</em> ili pritisnite <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Idite na <em>Alatke → Podešavanja</em> (<em>Opera → Podešavanja</em> na Meku) i zatim <em>Privatnost i bezbednost → Očistite podatke o pregledima → Keširane slike i datoteke</em>.",
+       "usercssyoucanpreview": "<strong>Savet:<strong> korisitite dugme „{{int:showpreview}}“ da isprobate svoj novi CSS pre nego što ga sačuvate.",
+       "userjsyoucanpreview": "<strong>Savet:</strong> korisitite dugme „{{int:showpreview}}“ da isprobate svoj novi javaskript pre nego što ga sačuvate.",
+       "usercsspreview": "<strong>Ovo je samo pregled CSS-a.\nStranica još nije sačuvana!</strong>",
+       "userjspreview": "<strong>Ovo je samo pregled javaskripta.\nStranica još nije sačuvana!</strong>",
+       "sitecsspreview": "<strong>Ovo je samo pregled CSS-a.\nStranica još nije sačuvana!</strong>",
+       "sitejspreview": "<strong>Ovo je samo pregled javaskripta.\nStranica još nije sačuvana!</strong>",
+       "userinvalidconfigtitle": "<strong>Upozorenje:</strong> ne postoji tema „$1“.\nPrilagođene stranice CSS, JSON i Javaskript počinju malim slovom, npr. {{ns:user}}:Foo/vector.css, a ne {{ns:user}}:Foo/Vector.css.",
+       "updated": "(ažurirano)",
        "note": "<strong>Napomena:</strong>",
        "previewnote": "<strong>Ne zaboravite da je ovo samo pretpregled.</strong>\nVaše izmene još nisu sačuvane!",
        "continue-editing": "Idi na uređivački okvir",
-       "previewconflict": "Ovaj pregled oslikava kako će tekst u tekstualnom okviru izgledati.",
+       "previewconflict": "Ovaj pregled oslikava kako će izgledati tekst u tekstualnom okviru.",
        "session_fail_preview": "Izvinjavamo se! Nismo mogli da obradimo Vašu izmenu zbog gubitka podataka sesije.\n\nMožda ste odjavljeni. <strong>Proverite da li ste prijavljeni i pokušajte ponovo</strong>.\nAko i dalje ne radi, pokušajte da se [[Special:UserLogout|odjavite]] i ponovo prijavite, te proverite da li su na Vašem pretraživaču dozvoljeni kolačići sa ovog sajta.",
-       "session_fail_preview_html": "'''Nismo mogli da obradimo vašu izmenu zbog gubitka podataka sesije.'''\n\n''Budući da je na ovom vikiju omogućen unos HTML oznaka, pregled je sakriven kao mera predostrožnosti protiv napada preko javaskripta.''\n\n'''Ako ste pokušali da napravite pravu izmenu, pokušajte ponovo.\nAko i dalje ne radi, pokušajte da se [[Special:UserLogout|odjavite]] i ponovo prijavite.'''",
-       "token_suffix_mismatch": "'''Vaša izmena je odbačena jer je vaš pregledač ubacio znakove interpunkcije u novčić uređivanja.\nTo se ponekad događa kada se koristi neispravan posrednik.'''",
+       "session_fail_preview_html": "Nismo mogli da obradimo vašu izmenu zbog gubitka podataka sesije.\n\n<em>Budući da je na ovom vikiju omogućen unos HTML oznaka, pregled je sakriven kao mera predostrožnosti protiv napada preko javaskripta.</em>\n\n<strong>Ako ste pokušali da napravite pravu izmenu, pokušajte ponovo.<strong>\nAko i dalje ne radi, pokušajte da se [[Special:UserLogout|odjavite]] i ponovo prijavite i proverite da li Vaš pregledač dozvoljava kolačiće sa ovog sajta.",
+       "token_suffix_mismatch": "<strong>Vaša izmena je odbačena jer je vaš pregledač ubacio znakove interpunkcije u novčić uređivanja.</strong>\nTo se ponekad događa kada se koristi neispravan posrednik.",
        "edit_form_incomplete": "<strong>Neki delovi obrasca za uređivanje nisu stigli do servera. Proverite da li su vaše izmene nepromenjene i pokušajte ponovo.</strong>",
        "editing": "Uređujete $1",
        "creating": "Pravljenje stranice $1",
        "yourtext": "Vaš tekst",
        "storedversion": "Uskladištena izmena",
        "editingold": "<strong>Upozorenje: uređujete zastarelu izmenu ove stranice.</strong>\nAko je sačuvate, sve novije izmene će biti izgubljene.",
+       "unicode-support-fail": "Vaš pregledač ne podržava Unicode. On je neopohodan za uređivanje stranica, pa zato ne mogu sačuvati izmenu.",
        "yourdiff": "Razlike",
-       "copyrightwarning": "Imajte na umu da se svi doprinosi na ovom vikiju smatraju kao objavljeni pod licencom $2 (više na $1).\nAko ne želite da se vaši tekstovi menjaju i razmenjuju bez ograničenja, onda ih ne šaljite ovde.<br />\nIsto tako obećavate da ste vi autor teksta, ili da ste ga umnožili s izvora koji je u javnom vlasništvu.\n'''Ne šaljite radove zaštićene autorskim pravima bez dozvole!'''",
-       "copyrightwarning2": "Imajte na umu da se svi doprinosi na ovom vikiju mogu menjati, vraćati ili brisati od drugih korisnika.\nAko ne želite da se vaši tekstovi slobodno menjaju i raspodeljuju, ne šaljite ih ovde.<br />\nIsto tako obećavate da ste vi autor teksta, ili da ste ga umnožili s izvora koji je u javnom vlasništvu (više na $1).\n'''Ne šaljite radove zaštićene autorskim pravima bez dozvole!'''",
-       "longpageerror": "'''Greška: tekst koji ste uneli je veličine {{PLURAL:$1|jedan kilobajt|$1 kilobajta|$1 kilobajta}}, što je veće od {{PLURAL:$2|dozvoljenog jednog kilobajta|dozvoljena $2 kilobajta|dozvoljenih $2 kilobajta}}.'''\nStranica ne može biti sačuvana.",
+       "copyrightwarning": "Imajte na umu da se svi doprinosi na ovom vikiju smatraju kao objavljeni pod licencom $2 (više na $1).\nAko ne želite da se vaši tekstovi menjaju i razmenjuju bez ograničenja, onda ih ne šaljite ovde.<br />\nIsto tako obećavate da ste Vi autor teksta, ili da ste ga umnožili s izvora koji je u javnom vlasništvu.\n<strong>Ne šaljite radove zaštićene autorskim pravima bez dozvole!</strong>",
+       "copyrightwarning2": "Imajte na umu da se svi doprinosi na ovom vikiju mogu menjati, vraćati ili brisati od drugih korisnika.\nAko ne želite da se vaši tekstovi slobodno menjaju i raspodeljuju, ne šaljite ih ovde.<br />\nIsto tako obećavate da ste vi autor teksta, ili da ste ga umnožili s izvora koji je u javnom vlasništvu (više na $1).\n<strong>Ne šaljite radove zaštićene autorskim pravima bez dozvole!</strong>",
+       "editpage-cannot-use-custom-model": "Model sadržaja ove stranice se ne može promeniti.",
+       "longpageerror": "<strong>Greška: tekst koji ste uneli je veličine {{PLURAL:$1|jedan kilobajt|$1 kilobajta}}, što je veće od {{PLURAL:$2|dozvoljenog jednog kilobajta|dozvoljena $2 kilobajta|dozvoljenih $2 kilobajta}}.</strong>\nStranica ne može biti sačuvana.",
        "readonlywarning": "<strong>Upozorenje: baza podataka je zaključana radi održavanja, tako da trenutno nećete moći da sačuvate izmene.</strong>\nMožda biste želeli sačuvati tekst za kasnije u nekoj tekstualnoj datoteci.\n\nSistemski administrator je naveo sledeće objašnjenje: $1",
        "protectedpagewarning": "<strong>Upozorenje: ova stranica je zaštićena, tako da samo administratori mogu da je menjaju.</strong>\nPoslednji zapis u dnevniku je prikazan ispod:",
-       "semiprotectedpagewarning": "<strong>Napomena:</strong> Ova stranica je zaštićena, tako da samo registrovani korisnici mogu da je uređuju.\nPoslednji zapis u dnevniku prikazan je ispod kao referenca:",
+       "semiprotectedpagewarning": "<strong>Napomena:</strong> ova stranica je zaštićena, tako da samo registrovani korisnici mogu da je uređuju.\nPoslednji zapis u dnevniku je prikazan ispod kao referenca:",
        "cascadeprotectedwarning": "<strong>Upozorenje:</strong> Ova stranica je zaštićena tako da je mogu uređivati samo korisnici sa [[Special:ListGroupRights|određenim pravima]] (administratori), jer je ista uključena u {{PLURAL:$1|sledeću stranicu koja je zaštićena|sledeće stranice koje su zaštićene}} „prenosivom” zaštitom:",
-       "titleprotectedwarning": "<strong>Upozorenje: ovu stranicu mogu napraviti samo korisnici [[Special:ListGroupRights|s određenim pravima]].</strong>\nIspod su navedeni poslednji zapisi u dnevniku:",
-       "templatesused": "{{PLURAL:$1|Šablon|Šabloni}} na ovoj stranici:",
-       "templatesusedpreview": "{{PLURAL:$1|Šablon|Šabloni}} u ovom pregledu:",
+       "titleprotectedwarning": "<strong>Upozorenje: ovu stranicu mogu napraviti samo korisnici [[Special:ListGroupRights|s određenim pravima]].</strong>\nPoslednji zapis u dnevniku je prikazan ispod:",
+       "templatesused": "{{PLURAL:$1|Šablon koji se koristi|Šabloni koji se koriste}} na ovoj stranici:",
+       "templatesusedpreview": "{{PLURAL:$1|Šablon|Šabloni}} u ovom pretpregledu:",
        "templatesusedsection": "{{PLURAL:$1|Šablon|Šabloni}} u ovom odeljku:",
        "template-protected": "(zaštićeno)",
        "template-semiprotected": "(poluzaštićeno)",
        "permissionserrors": "Greška u dozvoli",
        "permissionserrorstext": "Nemate ovlašćenje za ovu radnju iz {{PLURAL:$1|1=sledećeg|sledećih}} razloga:",
        "permissionserrorstext-withaction": "Nemate dozvolu za $2 iz {{PLURAL:$1|sledećeg|sledećih}} razloga:",
+       "contentmodelediterror": "Ne možete urediti ovu izmenu jer je njen model sadržaja <code>$1</code>, što se razlikuje od trenutnog modela sadržaja stranice <code>$2</code>.",
        "recreate-moveddeleted-warn": "<strong>Upozorenje: ponovo pravite stranicu koja je prethodno obrisana.</strong>\n\nRazmotrite da li je prikladno da nastavite s uređivanjem ove stranice.\nOvde je navedena istorija brisanja i premeštanja s obrazloženjem:",
        "moveddeleted-notice": "Ova stranica je obrisana.\nDnevnik brisanja, zaštite i premeštanja stranice nalazi se ispod.",
-       "moveddeleted-notice-recent": "Žao nam je, ova stranica je nedavno obrisana (u poslednjih 24 sata).\nOvde je navedena istorija brisanja i premeštanja s obrazloženjem.",
+       "moveddeleted-notice-recent": "Žao nam je, ova stranica je nedavno obrisana (u poslednjih 24 sata).\nIstorija njenog brisanja, zaštite i premeštanja nalazi se ispod:",
        "log-fulllog": "Pogledaj celu istoriju",
        "edit-hook-aborted": "Izmenu je prekinula kuka.\nNije dato nikakvo obrazloženje.",
        "edit-gone-missing": "Ne mogu da ažuriram stranicu.\nIzgleda da je obrisana.",
        "postedit-confirmation-created": "Stranica je napravljena.",
        "postedit-confirmation-restored": "Stranica je vraćena.",
        "postedit-confirmation-saved": "Vaša izmena je sačuvana.",
+       "postedit-confirmation-published": "Vaša izmena je objavljena.",
        "edit-already-exists": "Ne mogu da napravim stranicu.\nIzgleda da ona već postoji.",
        "defaultmessagetext": "Podrazumevani tekst poruke",
        "content-failed-to-parse": "Ne mogu da raščlanim sadržaj tipa $2 za model $1: $3",
        "invalid-content-data": "Neispravni podaci sadržaja",
        "content-not-allowed-here": "Sadržaj modela „$1“ nije dozvoljen na stranici [[$2]]",
        "editwarning-warning": "Ako napustite ovu stranicu, izgubićete sve izmene koje ste napravili. Ako ste prijavljeni, možete onemogućiti ovo upozorenje u svojim podešavanjima, u odeljku „{{int:prefs-editing}}“.",
+       "editpage-invalidcontentmodel-title": "Model sadržaja nije podržan",
+       "editpage-invalidcontentmodel-text": "Model sadržaja „$1“ nije podržan.",
        "editpage-notsupportedcontentformat-title": "Format sadržaja nije podržan",
+       "editpage-notsupportedcontentformat-text": "Format sadržaja $1 nije podržan za model sadržaja $2.",
        "content-model-wikitext": "vikitekst",
        "content-model-text": "čist tekst",
        "content-model-javascript": "javaskript",
        "content-model-css": "CSS",
+       "content-model-json": "JSON",
+       "content-json-empty-object": "Prazan objekat",
+       "content-json-empty-array": "Prazan niz",
+       "deprecated-self-close-category": "Stranice koje koriste nevalidne samozatvarajuće HTML tagove",
        "duplicate-args-warning": "<strong>Upozorenje:</strong> [[:$1]] poziva [[:$2]] sa više od jedne vrednosti za parametar „$3“. Samo poslednja navedena vrednost će biti korišćena.",
-       "expensive-parserfunction-warning": "'''Upozorenje:''' ova stranica sadrži previše poziva za raščlanjivanje.\n\nTrebalo bi da ima manje od $2 {{PLURAL:$2|poziv|poziva|poziva}}, a sada ima $1.",
+       "duplicate-args-category": "Stranice s dupliranim argumentima kod poziva šablona",
+       "duplicate-args-category-desc": "Stranica sadrži pozive šablona koji koriste dvostruke argumente, kao što su <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> ili <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
+       "expensive-parserfunction-warning": "<strong>Upozorenje:</strong> ova stranica sadrži previše poziva za raščlanjivanje.\n\nTrebalo bi da ima manje od $2 {{PLURAL:$2|poziv|poziva}}, a sada ima $1.",
        "expensive-parserfunction-category": "Stranice s previše poziva za raščlanjivanje",
-       "post-expand-template-inclusion-warning": "'''Upozorenje:''' veličina uključenog šablona je prevelika.\nNeki šabloni neće biti uključeni.",
-       "post-expand-template-inclusion-category": "Stranice gde su uključeni šabloni preveliki",
+       "post-expand-template-inclusion-warning": "<strong>Upozorenje:</strong> veličina obuhvaćenog šablona je prevelika.\nNeki šabloni neće biti obuhvaćeni.",
+       "post-expand-template-inclusion-category": "Stranice gde su obuhvaćeni preveliki šabloni",
        "post-expand-template-argument-warning": "'''Upozorenje:''' ova stranica sadrži najmanje jedan argument u šablonu koji ima preveliku veličinu.\nOvakve argumente bi trebalo izbegavati.",
        "post-expand-template-argument-category": "Stranice koje sadrže izostavljene argumente u šablonu",
        "parser-template-loop-warning": "Otkrivena je petlja šablona: [[$1]]",
+       "template-loop-category": "Stranice sa petljama šablona",
+       "template-loop-category-desc": "Stranica sadrži petlju šablona, tj. šablon koji poziva sam rebe rekurzivno.",
        "parser-template-recursion-depth-warning": "Dubina uključivanja šablona je prekoračena ($1)",
        "language-converter-depth-warning": "Prekoračena je granica dubine jezičkog pretvarača ($1)",
        "node-count-exceeded-category": "Stranice u kojima je prekoračen broj čvorova",
+       "node-count-exceeded-category-desc": "Stranice sa previše čvorova (node).",
        "node-count-exceeded-warning": "Stranica u kojoj je prekoračen broj čvorova",
        "expansion-depth-exceeded-category": "Stranice u kojima je prekoračena dubina proširenja",
+       "expansion-depth-exceeded-category-desc": "Stranica je prekoračila najveću dubinu proširenja.",
        "expansion-depth-exceeded-warning": "Stranica u kojoj je prekoračena dubina proširenja",
        "parser-unstrip-loop-warning": "Utvrđena je petlja",
        "unstrip-depth-warning": "Prekoračen limit Unstrip rekurzije ($1)",
        "undo-summary-username-hidden": "Poništi izmenu $1 skrivenog korisnika",
        "cantcreateaccount-text": "Otvaranje naloga s ove IP adrese (<strong>$1</strong>) je blokirao/la [[User:$3|$3]].\n\nRazlog koji je naveo/la $3 je <em>$2</em>",
        "cantcreateaccount-range-text": "Otvaranje naloga sa IP adresa u rasponu <strong>$1</strong>, koji uključuje i vašu IP adresu (<strong>$4</strong>) je blokirao/la [[User:$3|$3]].\n\nRazlog koji je naveo/la $3 je <em>$2</em>",
-       "viewpagelogs": "Pogledaj dnevnike ove stranice",
+       "viewpagelogs": "Dnevnici ove stranice",
        "nohistory": "Ne postoji istorija izmena ove stranice.",
-       "currentrev": "Tekuća izmena",
-       "currentrev-asof": "Poslednja verzija na datum $2 u $3",
-       "revisionasof": "Izmena od $2 u $3",
-       "revision-info": "Izmena od $1 koju je {{GENDER:$6|uredio $2|uredila $2}}$7",
+       "currentrev": "Trenutna izmena",
+       "currentrev-asof": "Trenutna izmena na datum $2 u $3",
+       "revisionasof": "Izmena na datum $2 u $3",
+       "revision-info": "Izmena od $1 od strane {{GENDER:$6|korisnika $2|korisnice $2}}$7",
        "previousrevision": "← Starija izmena",
        "nextrevision": "Novija izmena →",
-       "currentrevisionlink": "Tekuća izmena",
+       "currentrevisionlink": "Trenutna izmena",
        "cur": "tren",
        "next": "sled",
        "last": "razl",
        "page_first": "prva",
        "page_last": "poslednja",
-       "histlegend": "Izbor razlika: izaberite kutijice izmena za upoređivanje i pritisnite enter ili dugme na dnu.<br />\nObjašnjenje: <strong>({{int:cur}})</strong> = razlika s trenutnom izmenom, <strong>({{int:last}})</strong> = razlika s prethodnom izmenom, <strong>{{int:minoreditletter}}</strong> = mala izmena",
-       "history-fieldset-title": "Pregled izmena",
+       "histlegend": "Izbor razlika: izaberite kutijice izmena za upoređivanje i pritisnite enter ili dugme na dnu.<br />\nObjašnjenje: <strong>({{int:cur}})</strong> = razlika s trenutnom izmenom, <strong>({{int:last}})</strong> = razlika s prethodnom izmenom, <strong>{{int:minoreditletter}}</strong> = manja izmena",
+       "history-fieldset-title": "Pretraga izmena",
        "history-show-deleted": "Samo obrisane izmene",
        "histfirst": "najstarije",
        "histlast": "najnovije",
        "history-feed-description": "Istorija izmena ove stranice na vikiju",
        "history-feed-item-nocomment": "$1 u $2",
        "history-feed-empty": "Tražena stranica ne postoji.\nMoguće da je obrisana s vikija ili je preimenovana.\nPokušajte da [[Special:Search|pretražite viki]] za slične stranice.",
+       "history-edit-tags": "Uredi oznake izabranih izmena",
        "rev-deleted-comment": "(opis izmene uklonjen)",
        "rev-deleted-user": "(korisničko ime uklonjeno)",
        "rev-deleted-event": "(detalji unosa uklonjeni)",
        "rev-deleted-user-contribs": "[korisničko ime ili IP adresa je uklonjena – izmena je sakrivena sa spiska doprinosa]",
        "rev-deleted-text-permission": "Izmena ove stranice je '''obrisana'''.\nDetalje možete videti u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} istoriji brisanja].",
+       "rev-suppressed-text-permission": "Izmena ove stranice je <strong>sakrivena</strong>. Više detalja možete naći u [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} istoriji sakrivanja].",
        "rev-deleted-text-unhide": "Izmena ove stranice je '''obrisana'''.\nDetalje možete videti u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} istoriji brisanja].\nIpak možete da [$1 vidite ovu izmenu] ako želite da nastavite.",
        "rev-suppressed-text-unhide": "Izmena ove stranice je '''sakrivena'''.\nDetalje možete videti u [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} istoriji sakrivanja].\nIpak možete da [$1 vidite ovu izmenu] ako želite da nastavite.",
        "rev-deleted-text-view": "Izmena ove stranice je '''obrisana'''.\nMožete je pogledati; više detalja možete naći u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} istoriji brisanja].",
        "revdelete-no-file": "Tražena datoteka ne postoji.",
        "revdelete-show-file-confirm": "Želite li da vidite obrisanu izmenu datoteke „<nowiki>$1</nowiki>“ od $2; $3?",
        "revdelete-show-file-submit": "Da",
-       "revdelete-selected-text": "{{PLURAL:$1|Izabrana izmena|Izabrane izmene}} [[:$2]]:",
+       "revdelete-selected-text": "{{PLURAL:$1|Izabrana izmena|Izabrane izmene|Izabranih izmena}} [[:$2]]:",
        "revdelete-selected-file": "{{PLURAL:$1|Izabrana verzija datoteke|Izabrane verzije datoteke}} [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Izabrana stavka u istoriji|Izabrane stavke u istoriji}}:",
        "revdelete-text-text": "Izbrisane izmene će i dalje biti vidljive u istoriji stranice, ali delovi njihovog sadržaja neće biti javno dostupni.",
        "mergehistory-empty": "Nema izmena za spajanje.",
        "mergehistory-done": "$3 {{PLURAL:$3|izmena stranice $1 je spojena|izmene stranice $1 su spojene|izmena stranice $1 je spojeno}} u [[:$2]].",
        "mergehistory-fail": "Ne mogu da spojim istorije. Proverite stranicu i vremenske parametre.",
+       "mergehistory-fail-bad-timestamp": "Vremenska oznaka nije ispravna.",
+       "mergehistory-fail-invalid-source": "Izvorna stranica nije ispravna.",
+       "mergehistory-fail-invalid-dest": "Odredišna stranica nije ispravna.",
+       "mergehistory-fail-no-change": "Spajanje istorije nije spojilo nijednu izmenu. Proverite parametre stranice i vremena.",
+       "mergehistory-fail-permission": "Nemate ovlašćenje za spajanje istorije.",
+       "mergehistory-fail-self-merge": "Izvorna i odredišna stranica ne mogu biti iste.",
+       "mergehistory-fail-timestamps-overlap": "Izvorne izmene se preklapaju ili dolaze nakon odredišnih izmena.",
        "mergehistory-fail-toobig": "Nije moguće spojiti istorije jer više od $1 {{PLURAL:$1|izmene će biti premeštene|izmena će biti premešteno}}.",
        "mergehistory-no-source": "Izvorna stranica $1 ne postoji.",
        "mergehistory-no-destination": "Odredišna stranica $1 ne postoji.",
        "revertmerge": "rastavi",
        "mergelogpagetext": "Ispod je spisak najskorijih spajanja istorija dveju stranica.",
        "history-title": "Istorija izmena stranice „$1“",
-       "difference-title": "$1 — razlika između izmena",
+       "difference-title": "Razlika između izmena na stranici „$1”",
        "difference-title-multipage": "Razlika između stranica „$1“ i „$2“",
        "difference-multipage": "(razlike između stranica)",
        "lineno": "Red $1:",
        "compareselectedversions": "Uporedi izabrane izmene",
        "showhideselectedversions": "Promeni vidljivost izabranih izmena",
        "editundo": "poništi",
-       "diff-empty": "(Nema razlike)",
-       "diff-multi-sameuser": "({{PLURAL:$1|Jedna međuizmena istog korisnika nije prikazana|$1 međuizmene istog korisnika nije prikazano|$1 međuizmena istog korisnika nije prikazano}})",
+       "diff-empty": "(nema razlike)",
+       "diff-multi-sameuser": "({{PLURAL:$1|Jedna međuizmena istog korisnika nije prikazana|$1 međuizmene istog korisnika nisu prikazane|$1 međuizmena istog korisnika nije prikazano}})",
        "diff-multi-otherusers": "({{PLURAL:$1|Jedna međuizmena|$1 međuizmene|$1 međuizmena}} od strane {{PLURAL:$2|još jednog korisnika nije prikazana|$2 korisnika nije prikazano}})",
        "diff-multi-manyusers": "({{PLURAL:$1|Nije prikazana međuizmena|Nisu prikazane $1 međuizmene|Nije prikazano $1 međuizmena}} od više od $2 korisnika)",
+       "diff-paragraph-moved-tonew": "Odlomak je premešten. Kliknite da pređete na njegovo novo mesto.",
+       "diff-paragraph-moved-toold": "Odlomak je premešten. Kliknite da pređete na njegovo staro mesto.",
        "difference-missing-revision": "Ne mogu da pronađem {{PLURAL:$2|jednu izmenu|$2 izmene|$2 izmena}} od ove razlike ($1).\n\nOvo se obično dešava kada pratite zastarelu vezu do stranice koja je obrisana.\nViše informacija možete pronaći u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} dnevniku brisanja].",
        "searchresults": "Rezultati pretrage",
        "searchresults-title": "Rezultati pretrage za „$1“",
        "titlematches": "Naslov stranice odgovara",
        "textmatches": "Tekst stranice odgovara",
        "notextmatches": "Nijedan tekst stranice ne odgovara",
-       "prevn": "prethodnih {{PLURAL:$1|$1}}",
-       "nextn": "sledećih {{PLURAL:$1|$1}}",
+       "prevn": "{{PLURAL:$1|prethodnu $1|prethodne $1|prethodnih $1}}",
+       "nextn": "{{PLURAL:$1|sledeću $1|sledeće $1|sledećih $1}}",
        "prev-page": "prethodna stranica",
        "next-page": "sledeća stranica",
        "prevn-title": "$1 {{PLURAL:$1|prethodni  rezultat|prethodna rezultata|prethodnih rezultata}}",
        "nextn-title": "$1 {{PLURAL:$1|sledeći rezultat|sledeća rezultata|sledećih rezultata}}",
-       "shown-title": "Prikaži $1 {{PLURAL:$1|rezultat|rezultata|rezultata}} po stranici",
+       "shown-title": "Prikaži $1 {{PLURAL:$1|rezultat|rezultata}} po stranici",
        "viewprevnext": "Pogledaj ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "<strong>Postoji stranica pod nazivom „[[:$1]]”!</strong> {{PLURAL:$2|0=|Takođe pogledajte druge pronađene rezultate pretrage.}}",
-       "searchmenu-new": "<strong>Napravite stranicu „[[:$1]]”!</strong> {{PLURAL:$2|0=|Takođe pogledajte rezultat pretrage.|Takođe pogledajte rezultate pretrage.}}",
-       "searchprofile-articles": "Članci",
+       "searchmenu-new": "<strong>Napravite stranicu „[[:$1]]” na ovom vikiju!</strong> {{PLURAL:$2|0=|Takođe pogledajte rezultat pretrage.|Takođe pogledajte rezultate pretrage.}}",
+       "searchprofile-articles": "Stranice sa sadržajem",
        "searchprofile-images": "Datoteke",
        "searchprofile-everything": "Sve",
        "searchprofile-advanced": "Napredno",
        "searchprofile-images-tooltip": "Pretražite datoteke",
        "searchprofile-everything-tooltip": "Pretražite sav sadržaj (uključujući stranice za razgovor)",
        "searchprofile-advanced-tooltip": "Pretražite prilagođene imenske prostore",
-       "search-result-size": "$1 ({{PLURAL:$2|1 reč|$2 reči|$2 reči}})",
+       "search-result-size": "$1 ({{PLURAL:$2|1 reč|$2 reči}})",
        "search-result-category-size": "{{PLURAL:$1|1 član|$1 člana|$1 članova}}, ({{PLURAL:$2|1 potkategorija|$2 potkategorije|$2 potkategorija}}, {{PLURAL:$3|1 datoteka|$3 datoteke|$3 datoteka}})",
-       "search-redirect": "(preusmereno sa $1)",
+       "search-redirect": "(preusmerenje sa $1)",
        "search-section": "(odeljak $1)",
        "search-category": "(kategorija $1)",
        "search-file-match": "(podudara se sadržaj datoteke)",
-       "search-suggest": "Da li ste mislili na: $1",
+       "search-suggest": "Da li ste mislili: $1",
        "search-rewritten": "Prikazani rezultati za $1. Ipak pretraži $2.",
-       "search-interwiki-caption": "Bratski projekti",
+       "search-interwiki-caption": "Rezultati sa sestrinskih projekata",
        "search-interwiki-default": "Rezultati sa $1:",
        "search-interwiki-more": "(više)",
+       "search-interwiki-more-results": "još rezultata",
        "search-relatedarticle": "Povezano",
        "searchrelated": "povezano",
        "searchall": "sve",
        "showingresults": "Ispod {{PLURAL:$1|je prikazan <strong>1</strong> rezultat|su prikazana <strong>$1</strong> rezultata|je prikazano <strong>$1</strong> rezultata}}, počev od broja <strong>$2</strong>.",
        "showingresultsinrange": "Ispod {{PLURAL:$1|je prikazan <strong>1</strong> rezultat|su prikazana <strong>$1</strong> rezultata|je prikazano <strong>$1</strong> rezultata}}, u rasponu od <strong>$2</strong> do <strong>$3</strong>.",
        "search-showingresults": "{{PLURAL:$4|Rezultat <strong>$1</strong> od <strong>$3</strong>|Rezultati <strong>$1—$2</strong> od <strong>$3</strong>}}",
-       "search-nonefound": "Nema poklapanja.",
+       "search-nonefound": "Nisu pronađeni rezultati koji odgovaraju upitu.",
+       "search-nonefound-thiswiki": "Nema rezultata na ovom sajtu koji se poklapaju sa terminom pretrage.",
        "powersearch-legend": "Napredna pretraga",
        "powersearch-ns": "Pretraga po imenskim prostorima:",
        "powersearch-togglelabel": "Izaberi:",
        "powersearch-toggleall": "Sve",
        "powersearch-togglenone": "Ništa",
        "powersearch-remember": "Zapamti moj izbor za buduće pretrage",
-       "search-external": "Spoljna pretraga",
+       "search-external": "Spoljašnja pretraga",
        "searchdisabled": "Pretraga je onemogućena.\nU međuvremenu možete tražiti preko Gugla.\nUpamtite da njegovi popisi ovog vikija mogu biti zastareli.",
        "search-error": "Došlo je do greške prilikom pretrage: $1",
+       "search-warning": "Upozorenje prilikom pretrage: $1",
        "preferences": "Podešavanja",
        "mypreferences": "Podešavanja",
        "prefs-edits": "Broj izmena:",
        "prefsnologintext2": "Morate biti prijavljeni da biste menjali svoja podešavanja.",
        "prefs-skin": "Tema",
-       "skin-preview": "Pregledaj",
+       "skin-preview": "pregledaj",
        "datedefault": "Svejedno",
        "prefs-labs": "Probne mogućnosti",
        "prefs-user-pages": "Korisničke stranice",
        "prefs-watchlist": "Spisak nadgledanja",
        "prefs-editwatchlist": "Uređivanje spiska nadgledanja",
        "prefs-editwatchlist-label": "Uređivanje spiska:",
-       "prefs-editwatchlist-edit": "Uredi spisak",
-       "prefs-editwatchlist-raw": "Uredi sirov spisak",
-       "prefs-editwatchlist-clear": "Isprazni spisak",
+       "prefs-editwatchlist-edit": "uredi spisak",
+       "prefs-editwatchlist-raw": "uredi sirov spisak",
+       "prefs-editwatchlist-clear": "isprazni spisak",
        "prefs-watchlist-days": "Broj dana u spisku nadgledanja:",
        "prefs-watchlist-days-max": "Najviše $1 {{PLURAL:$1|dan|dana|dana}}",
-       "prefs-watchlist-edits": "Najveći broj izmena u proširenom spisku nadgledanja:",
-       "prefs-watchlist-edits-max": "Najveća vrednost je hiljadu",
+       "prefs-watchlist-edits": "Najveći broj izmena prikazanih na spisku nadgledanja:",
+       "prefs-watchlist-edits-max": "Najveći broj: 1000",
        "prefs-watchlist-token": "Žeton spiska nadgledanja:",
+       "prefs-watchlist-managetokens": "Upravljaj žetonima",
        "prefs-misc": "Druga podešavanja",
-       "prefs-resetpass": "Promeni lozinku",
-       "prefs-changeemail": "Promeni ili ukloni imejl adresu",
-       "prefs-setemail": "Postavi imejl adresu",
-       "prefs-email": "Postavke imejla",
+       "prefs-resetpass": "promeni lozinku",
+       "prefs-changeemail": "promeni ili ukloni imejl adresu",
+       "prefs-setemail": "postavi imejl adresu",
+       "prefs-email": "Opcije imejla",
        "prefs-rendering": "Izgled",
        "saveprefs": "Sačuvaj",
-       "restoreprefs": "Vrati sve na podrazumevano (u svim odeljcima)",
+       "restoreprefs": "Vrati sva podrazumevana podešavanja (u svim odeljcima)",
        "prefs-editing": "Uređivanje",
        "searchresultshead": "Pretraga",
        "stub-threshold": "Prag za oblikovanje veze kao klice ($1):",
        "stub-threshold-sample-link": "primer",
-       "stub-threshold-disabled": "Onemogućeno",
+       "stub-threshold-disabled": "onemogućeno",
        "recentchangesdays": "Broj dana u skorašnjim izmenama:",
        "recentchangesdays-max": "Najviše $1 {{PLURAL:$1|dan|dana}}",
-       "recentchangescount": "Broj izmena za prikaz:",
-       "prefs-help-recentchangescount": "Podrazumeva skorašnje izmene, istorije stranica i dnevnike.",
-       "prefs-help-watchlist-token2": "Ovo je tajni ključ za veb-dovod Vašeg spiska nadgledanja. \nSvako ko zna ovaj ključ biće u mogućnosti da vidi Vaša nadgledanja; stoga, ključ nemojte odavati nikome. \nAko je potrebno, ključ možete [[Special:ResetTokens|resetovati]].",
+       "recentchangescount": "Podrazumevani broj izmena za prikaz u skorašnjim izmenama, istorijama stranica i dnevnicima:",
+       "prefs-help-recentchangescount": "Najveća broj: 1000",
+       "prefs-help-watchlist-token2": "Ovo je tajni ključ za veb-dovod Vašeg spiska nadgledanja. \nSvako ko zna ovaj ključ biće u mogućnosti da čita Vaš spisak nadgledanja, zato ga nemojte deliti. \nAko je potrebno, [[Special:ResetTokens|možete ga obnoviti]].",
        "savedprefs": "Vaša podešavanja su sačuvana.",
-       "savedrights": "Korisnička prava za {{GENDER:$1|$1}} su sačuvana.",
+       "savedrights": "Korisničke grupe za {{GENDER:$1|$1}} su sačuvane.",
        "timezonelegend": "Vremenska zona:",
        "localtime": "Lokalno vreme:",
        "timezoneuseserverdefault": "podrazumevane vrednosti ($1)",
        "timezoneregion-europe": "Evropa",
        "timezoneregion-indian": "Indijski okean",
        "timezoneregion-pacific": "Tihi okean",
-       "allowemail": "Omogući primanje imejlova od drugih korisnika",
+       "allowemail": "Dozvoli primanje imejlova od drugih korisnika",
+       "email-allow-new-users-label": "Dozvoli primanje imejlova od novajlija",
+       "email-blacklist-label": "Zabrani primanje imejlova od sledećih korisnika:",
        "prefs-searchoptions": "Pretraga",
        "prefs-namespaces": "Imenski prostori",
-       "default": "podrazumevano",
+       "default": "podrazumevana",
        "prefs-files": "Datoteke",
-       "prefs-custom-css": "Prilagođeni CSS",
-       "prefs-custom-js": "Prilagođeni javaskript",
-       "prefs-common-config": "Deljeni CSS/javaskript za sve teme:",
-       "prefs-reset-intro": "Možete koristiti ovu stranicu da poništite svoje postavke na podrazumevane vrednosti.\nOva radnja se ne može vratiti.",
+       "prefs-custom-css": "prilagođeni CSS",
+       "prefs-custom-json": "Prilagođeni JSON",
+       "prefs-custom-js": "prilagođeni Javaskript",
+       "prefs-common-config": "Deljeni CSS/JSON/Javaskript za sve teme:",
+       "prefs-reset-intro": "Možete koristiti ovu stranicu da poništite svoja podešavanja na podrazumevane vrednosti.\nOva radnja se ne može vratiti.",
        "prefs-emailconfirm-label": "Potvrda imejla:",
        "youremail": "Imejl:",
        "username": "{{GENDER:$1|Korisničko ime}}:",
-       "prefs-memberingroups": "{{PLURAL:$1|Grupa|Grupe}}:",
+       "prefs-memberingroups": "{{GENDER:$2|Član|Članica}} {{PLURAL:$1|grupe|grupâ}}:",
        "prefs-memberingroups-type": "$1",
        "group-membership-link-with-expiry": "$1 (do $2)",
        "prefs-registration": "Vreme registracije:",
        "yourvariant": "Varijanta jezika:",
        "prefs-help-variant": "Željena varijanta ili pravopis za prikaz stranica sa sadržajem ovog vikija.",
        "yournick": "Novi potpis:",
-       "prefs-help-signature": "Komentare na stranicama za razgovor potpisujte sa četiri tilde: <nowiki>~~~~</nowiki>. Ovaj vikitekst će biti pretvoren u Vaš potpis i trenutno vreme.",
+       "prefs-help-signature": "Komentari na stranicama za razgovor treba da budu potpisani sa „<nowiki>~~~~</nowiki>“ koje će biti pretvoreno u Vaš potpis s trenutnim vremenom.",
        "badsig": "Potpis je neispravan.\nProverite oznake HTML.",
        "badsiglength": "Vaš potpis je predugačak.\nNe sme biti duži od $1 {{PLURAL:$1|znaka|znaka|znakova}}.",
        "yourgender": "Kako želite da se predstavite?",
-       "gender-unknown": "Ne želim da se predstavim",
+       "gender-unknown": "Kad Vas spominje, softver će koristiti rodno neutralne reči kad god je to moguće",
        "gender-male": "On uređuje viki stranice",
        "gender-female": "Ona uređuje viki stranice",
-       "prefs-help-gender": "Neobavezno: koristi se za ispravno obraćanje softvera korisnicima, zavisno od njihovog pola.\nOvaj podatak će biti javan.",
+       "prefs-help-gender": "Postavljanje ovog podešavanja je neobavezno.\nSoftver koristi datu vrednost da bi Vam se obratio i spomenuo Vas drugima koristeći odgovarajući gramatički rod.\nOva informacija će biti javna.",
        "email": "Imejl",
        "prefs-help-realname": "Pravo ime nije obavezno.\nAko izaberete da ga unesete, ono će biti korišćeno za pripisivanje vašeg rada.",
-       "prefs-help-email": "Imejl adresa nije obavezna, ali je potrebna u slučaju da zaboravite lozinku.",
-       "prefs-help-email-others": "Možete je koristiti i da omogućite drugima da vas kontaktiraju preko korisničke stranice ili stranice za razgovor, bez otkrivanja svog identiteta.",
+       "prefs-help-email": "Imejl adresa nije obavezna, ali je potrebna za obnavljanje lozinke, ako je zaboravite.",
+       "prefs-help-email-others": "Takođe možete izabrati da dopustite drugima da Vas kontaktiraju preko imejla putem veze na Vašoj korisničkoj stranici ili stranici za razgovor.\nVaša imejl adresa neće biti prikazana drugim korisnicima koji Vas kontaktiraju.",
        "prefs-help-email-required": "Potrebna je imejl adresa.",
-       "prefs-info": "Osnovni podaci",
+       "prefs-info": "Osnovne informacije",
        "prefs-i18n": "Internacionalizacija",
        "prefs-signature": "Potpis",
        "prefs-dateformat": "Format datuma",
        "prefs-timeoffset": "Vremenska razlika",
        "prefs-advancedediting": "Glavna podešavanja",
+       "prefs-developertools": "Programerske alatke",
        "prefs-editor": "Uređivač",
        "prefs-preview": "Pretpregled",
-       "prefs-advancedrc": "Napredne postavke",
+       "prefs-advancedrc": "Napredne opcije",
        "prefs-opt-out": "Onemogućavanje poboljšanja",
-       "prefs-advancedrendering": "Napredne postavke",
-       "prefs-advancedsearchoptions": "Napredne postavke",
-       "prefs-advancedwatchlist": "Napredne postavke",
-       "prefs-displayrc": "Postavke prikaza",
-       "prefs-displaywatchlist": "Postavke prikaza",
+       "prefs-advancedrendering": "Napredne opcije",
+       "prefs-advancedsearchoptions": "Napredne opcije",
+       "prefs-advancedwatchlist": "Napredne opcije",
+       "prefs-displayrc": "Podešavanja prikaza",
+       "prefs-displaywatchlist": "Podešavanja prikaza",
        "prefs-tokenwatchlist": "Žeton",
        "prefs-diffs": "Razlike",
        "prefs-help-prefershttps": "Ova podešavanja će stupiti na snagu pri sledećoj prijavi.",
        "prefswarning-warning": "Promenili ste vaša podešavanja ali niste ih još sačuvali.\nAko ne pritisnete „$1“ vaša podešavanja će biti izgubljena.",
        "prefs-tabs-navigation-hint": "Savet: možete koristiti tipke sa levom i desnom strelicom za kretanje kroz kartice.",
-       "userrights": "Upravljanje korisničkim pravima",
-       "userrights-lookup-user": "Upravljanje korisničkim grupama",
+       "userrights": "Korisnička prava",
+       "userrights-lookup-user": "Izaberi korisnika",
        "userrights-user-editname": "Korisničko ime:",
-       "editusergroup": "Uredi {{GENDER:$1|korisničke}} grupe",
-       "editinguser": "Menjate korisnička prava {{GENDER:$1|korisnika|korisnice|korisnika}} '''[[User:$1|$1]]''' $2",
-       "userrights-editusergroup": "Promena korisničkih grupa",
+       "editusergroup": "Učitaj korisničke grupe",
+       "editinguser": "Menjate korisnička prava {{GENDER:$1|korisnika|korisnice}} <strong>[[User:$1|$1]]</strong> $2",
+       "viewinguserrights": "Korisnička prava {{GENDER:$1|korisnika|korisnice}} <strong>[[User:$1|$1]]</strong> $2",
+       "userrights-editusergroup": "Promena {{GENDER:$1|korisničkih}} grupa",
+       "userrights-viewusergroup": "Pregled {{GENDER:$1|korisničkih}} grupa",
        "saveusergroups": "Sačuvaj {{GENDER:$1|korisničke}} grupe",
        "userrights-groupsmember": "Član:",
        "userrights-groupsmember-auto": "Podrazumevano član i:",
-       "userrights-groups-help": "Možete promeniti grupe kojima ovaj korisnik pripada.\n* Označen kvadratić označava da se korisnik nalazi u toj grupi.\n* Neoznačen kvadratić označava da se korisnik ne nalazi u toj grupi.\n* Zvezdica označava da ne možete ukloniti grupu ako je dodate i obratno.",
+       "userrights-groups-help": "Možete promeniti grupe kojima ovaj korisnik pripada:\n* Označen kvadratić označava da se korisnik nalazi u toj grupi.\n* Neoznačen kvadratić označava da se korisnik ne nalazi u toj grupi.\n* Zvezdica (*) označava da ne možete ukloniti tu grupu ako je dodate i obratno.\n* Taraba (#) označava da jedino možete odložiti vreme isteka članstva u toj grupi; ne možete ga ubrzati.",
        "userrights-reason": "Razlog:",
        "userrights-no-interwiki": "Nemate ovlašćenja da menjate korisnička prava na drugim vikijima.",
        "userrights-nodatabase": "Baza podataka $1 ne postoji ili nije lokalna.",
        "userrights-changeable-col": "Grupe koje možete da promenite",
        "userrights-unchangeable-col": "Grupe koje ne možete da promenite",
        "userrights-irreversible-marker": "$1*",
+       "userrights-expiry-current": "Ističe $1",
+       "userrights-expiry-none": "Ne ističe",
+       "userrights-expiry": "Ističe:",
        "userrights-expiry-existing": "Postojeće vreme isteka: $3, $2",
        "userrights-expiry-othertime": "Drugo vreme:",
+       "userrights-expiry-options": "1 dan:1 day,1 nedelja:1 week,1 mesec:1 month,3 meseca:3 months,6 meseci:6 months,1 godina:1 year",
+       "userrights-invalid-expiry": "Vreme isticanja grupe „$1“ nije ispravno.",
+       "userrights-expiry-in-past": "Vreme isticanja grupe „$1“ je prošlo.",
+       "userrights-cannot-shorten-expiry": "Ne možete ubrzati istek članstva u grupi „$1”. Samo korisnici sa dozvolom da dodaju ili uklone ovu grupu mogu da ubrzaju rok isteka.",
        "userrights-conflict": "Sukob promena korisničkih prava! Molimo proverite vaše izmene.",
        "group": "Grupa:",
        "group-user": "Korisnici",
        "group-user-member": "{{GENDER:$1|korisnik|korisnica|korisnik}}",
        "group-autoconfirmed-member": "{{GENDER:$1|automatski potvrđen korisnik|automatski potvrđena korisnica}}",
        "group-bot-member": "{{GENDER:$1|bot}}",
-       "group-sysop-member": "{{GENDER:$1|administrator|administratorka}}",
+       "group-sysop-member": "{{GENDER:$1|administrator|administratorka|administrator}}",
        "group-bureaucrat-member": "{{GENDER:$1|birokrata|birokratkinja}}",
        "group-suppress-member": "{{GENDER:$1|brisač izmena}}",
        "grouppage-user": "{{ns:project}}:Korisnici",
        "right-createpage": "pravljenje stranica (izuzev stranica za razgovor)",
        "right-createtalk": "pravljenje stranica za razgovor",
        "right-createaccount": "otvaranje novih korisničkih naloga",
+       "right-autocreateaccount": "Prijavite se automatski sa eksternim korisničkim nalogom",
        "right-minoredit": "označavanje izmena manjim",
-       "right-move": "Premeštanje stranica",
+       "right-move": "premeštanje stranica",
        "right-move-subpages": "premeštanje stranica s njihovim podstranicama",
        "right-move-rootuserpages": "premeštanje osnovnih korisničkih stranica",
-       "right-move-categorypages": "Premeštanje kategorija",
-       "right-movefile": "Premeštanje datoteka",
+       "right-move-categorypages": "premeštanje kategorija",
+       "right-movefile": "premeštanje datoteka",
        "right-suppressredirect": "premeštanje stranica bez ostavljanja preusmerenja",
-       "right-upload": "Otpremanje datoteka",
+       "right-upload": "otpremanje datoteka",
        "right-reupload": "zamenjivanje postojećih datoteka",
        "right-reupload-own": "zamenjivanje sopstvenih datoteka",
        "right-reupload-shared": "menjanje datoteka na deljenom skladištu multimedije",
        "right-purge": "čišćenje keš memorije stranice bez potvrde",
        "right-autoconfirmed": "bez ograničavanja stavki za IP adrese",
        "right-bot": "smatranje izmena kao automatski proces",
-       "right-nominornewtalk": "neposedovanje malih izmena na stranicama za razgovor otvara prozor za nove poruke",
+       "right-nominornewtalk": "neposedovanje manjih izmena na stranicama za razgovor otvara prozor za nove poruke",
        "right-apihighlimits": "korišćenje viših granica za upite iz API-ja",
-       "right-writeapi": "pisanje API-ja",
+       "right-writeapi": "mogućnost pisanja API-ja",
        "right-delete": "brisanje stranica",
        "right-bigdelete": "brisanje stranica s velikom istorijom",
        "right-deletelogentry": "brisanje i vraćanje određenih stavki u dnevniku",
        "right-viewsuppressed": "pregledanje izmena skrivenih od svih korisnika",
        "right-suppressionlog": "pregledanje privatnih dnevnika",
        "right-block": "blokiranje daljih izmena drugih korisnika",
-       "right-blockemail": "Blokiraj korisniku slanje imejla",
+       "right-blockemail": "blokiranje korisnika da šalju imejl",
        "right-hideuser": "blokiranje korisničkog imena i njegovo sakrivanje od javnosti",
        "right-ipblock-exempt": "zaobilaženje blokiranja IP adrese, automatska blokiranja i blokiranja opsega",
        "right-unblockself": "deblokiranje samog sebe",
        "right-protect": "menjanje stepena zaštite i uređivanje stranica pod prenosivom zaštitom",
-       "right-editprotected": "uređivanje stranice pod zaštitom „{{int:protect-level-sysop}}“",
+       "right-editprotected": "uređivanje stranica pod zaštitom „{{int:protect-level-sysop}}“",
        "right-editsemiprotected": "uređivanje stranica pod zaštitom „{{int:protect-level-autoconfirmed}}“",
+       "right-editcontentmodel": "menjanje modela sadržaja stranice",
        "right-editinterface": "uređivanje korisničkog okruženja",
        "right-editusercss": "uređivanje tuđih CSS datoteka",
        "right-edituserjson": "uređivanje tuđih JSON datoteka",
        "right-editmyusercss": "uređivanje sopstvenih CSS datoteka",
        "right-editmyuserjson": "uređivanje sopstvenih JSON datoteka",
        "right-editmyuserjs": "uređivanje sopstvenih JavaScript datoteka",
-       "right-viewmywatchlist": "vidi sopstveni spisak nadgledanja",
+       "right-viewmywatchlist": "pregled sopstvenog spiska nadgledanja",
        "right-editmywatchlist": "uređivanje sopstvenog spiska nadgledanja; neke preduzete radnje će svejedno dodati stranice na spisak i bez ovog prava",
-       "right-viewmyprivateinfo": "vidite svoje lične podatke (npr. imejl adresu, pravo ime)",
-       "right-editmyprivateinfo": "uređivanje sopstvenih ličnih podataka (npr. imejl adresa, pravo ime)",
+       "right-viewmyprivateinfo": "pregled svojih ličnih podataka (npr. imejl adresu, pravo ime)",
+       "right-editmyprivateinfo": "uređivanje sopstvenih ličnih podataka (npr. imejl adrese, pravog imena)",
        "right-editmyoptions": "uređivanje sopstvenih podešavanja",
        "right-rollback": "brzo vraćanje izmena poslednjeg korisnika koji je menjao određenu stranicu",
        "right-markbotedits": "označavanje vraćenih izmena kao izmene bota",
        "right-userrights-interwiki": "uređivanje korisničkih prava na drugim vikijima",
        "right-siteadmin": "zaključavanje i otključavanje baze podataka",
        "right-override-export-depth": "izvoz stranica uključujući i povazene stranice do dubine od pet veza",
-       "right-sendemail": "Pošalji imejl drugim korisnicima",
+       "right-sendemail": "slanje imejla drugim korisnicima",
        "right-managechangetags": "pravljenje i (de)aktiviranje [[Special:Tags|oznaka]]",
+       "right-applychangetags": "primenjivanje [[Special:Tags|oznaka]] na nečije izmene",
+       "right-changetags": "dodavanje i uklanjanje raznih [[Special:Tags|oznaka]] na pojedinačnim izmenama i unosima u dnevnicima",
+       "right-deletechangetags": "brisanje [[Special:Tags|oznaka]] iz baze podataka",
+       "grant-generic": "Skup prava „$1“",
        "grant-group-page-interaction": "Uređivanje stranica",
        "grant-group-file-interaction": "Uređivanje datoteka",
        "grant-group-watchlist-interaction": "Uređivanje vašeg spiska nadgledanja",
-       "grant-group-email": "Slanje e-poruka",
+       "grant-group-email": "Pošalji imejl",
+       "grant-group-high-volume": "Izvršavanje velikog broja radnji",
+       "grant-group-customization": "Prilagođavanje i podešavanja",
+       "grant-group-administration": "Izvršavanje administrativnih radnji",
+       "grant-group-private-information": "Pristupanje Vašim ličnim podacima",
+       "grant-group-other": "Razne aktivnosti",
+       "grant-blockusers": "Blokiranje i deblokiranje korisnika",
        "grant-createaccount": "Otvaranje naloga",
        "grant-createeditmovepage": "Pravljenje, uređivanje i premeštanje stranica",
        "grant-delete": "Brisanje stranica, izmena i unosa u dnevnicima",
-       "grant-editinterface": "Uređivanje Medijaviki imenskog prostora i korisničkih CSS/JavaScript stranica",
+       "grant-editinterface": "Uređivanje Medijaviki imenskog prostora i korisničkih CSS/JSON/Javaskript stranica",
+       "grant-editmycssjs": "Uređivanje vašeg CSS/JSON/Javaskripta",
+       "grant-editmyoptions": "Uređivanje Vaših podešavanja",
        "grant-editmywatchlist": "Uređivanje vašeg spiska nadgledanja",
        "grant-editpage": "Uređivanje postojećih stranica",
        "grant-editprotected": "Uređivanje zaštićenih stranica",
+       "grant-highvolume": "Masovno uređivanje",
+       "grant-oversight": "Skrivanje korisnika i izmena",
+       "grant-patrol": "Patroliranje izmena",
+       "grant-privateinfo": "Pristupi privatnim informacijama",
+       "grant-protect": "Zaključavanje i otključavanje stranica",
+       "grant-rollback": "Vraćanje izmena",
+       "grant-sendemail": "Slanje imejlova drugim korisnicima",
        "grant-uploadeditmovefile": "Otpremanje, zamena i premeštanje datoteka",
        "grant-uploadfile": "Otpremanje novih datoteka",
+       "grant-basic": "Osnovna prava",
+       "grant-viewdeleted": "Pregled obrisanih stranica i datoteka",
+       "grant-viewmywatchlist": "Pregled vašeg spisak nadgledanja",
+       "grant-viewrestrictedlogs": "Pregledanje ograničenih unosa u dnevniku",
        "newuserlogpage": "Dnevnik novih korisnika",
        "newuserlogpagetext": "Ovo je dnevnik novih korisnika.",
        "rightslog": "Dnevnik korisničkih prava",
        "action-createpage": "pravljenje stranica",
        "action-createtalk": "pravljenje stranica za razgovor",
        "action-createaccount": "otvaranje ovog korisničkog naloga",
+       "action-autocreateaccount": "automatsko pravljenje ovog spoljašnjeg korisničkog naloga",
        "action-history": "gledanje istorije ove stranice",
        "action-minoredit": "označavanje ove izmene kao manje",
        "action-move": "premeštanje ove stranice",
        "action-upload_by_url": "otpremanje ove datoteke preko veb-adrese",
        "action-writeapi": "pisanje API-ja",
        "action-delete": "brisanje ove stranice",
-       "action-deleterevision": "brisanje ove izmene",
-       "action-deletedhistory": "pregledanje obrisane istorije ove stranice",
+       "action-deleterevision": "brisanje izmena",
+       "action-deletelogentry": "birsanje unosa u dnevnicima",
+       "action-deletedhistory": "pregledanje obrisane istorije stranice",
+       "action-deletedtext": "pregled obrisanog teksta izmene",
        "action-browsearchive": "pretraživanje obrisanih stranica",
-       "action-undelete": "vraćanje ove stranice",
-       "action-suppressrevision": "pregledanje i vraćanje ove sakrivene izmene",
+       "action-undelete": "vraćanje stranica",
+       "action-suppressrevision": "pregledanje i vraćanje sakrivenih izmena",
        "action-suppressionlog": "pregledanje ove privatne istorije",
        "action-block": "blokiranje daljih izmena ovog korisnika",
        "action-protect": "menjanje stepena zaštite ove stranice",
        "action-userrights-interwiki": "uređivanje korisničkih prava na drugim vikijima",
        "action-siteadmin": "zaključavanje ili otključavanje baze podataka",
        "action-sendemail": "slanje imejlova",
+       "action-editmyoptions": "uređivanje Vaših podešavanja",
        "action-editmywatchlist": "izmenu sopstvenog spisak nadgledanja",
        "action-viewmywatchlist": "pregled vašeg spisak nadgledanja",
        "action-viewmyprivateinfo": "pregledanje vaših ličnih podataka",
        "action-editmyprivateinfo": "uređivanje vaših ličnih podataka",
-       "action-managechangetags": "pravljenje i/ili brisanje oznaka iz baze podataka",
+       "action-editcontentmodel": "menjanje modela sadržaja stranice",
+       "action-managechangetags": "pravljenje i (de)aktiviranje oznaka",
+       "action-applychangetags": "dodavanje oznaka na vaše izmene",
+       "action-changetags": "dodavanje i uklanjanje raznih oznaka na pojedinačnim izmenama i unosima u dnevnicima",
+       "action-deletechangetags": "Obriši oznake iz baze podataka",
+       "action-purge": "čišćenje privremene memorije ove stranice",
        "nchanges": "$1 {{PLURAL:$1|izmena|izmene|izmena}}",
+       "ntimes": "$1×",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|izmena od vaše poslednje posete}}",
        "enhancedrc-history": "istorija",
        "recentchanges": "Skorašnje izmene",
        "recentchanges-legend": "Opcije skorašnjih izmena",
        "recentchanges-summary": "Pratite skorašnje izmene na ovoj stranici.",
-       "recentchanges-noresult": "Nema promena u zadatom vremenu za zadate kriterijume.",
+       "recentchanges-noresult": "Nema izmena u zadatom periodu koji odgovaraju ovim kriterijumima.",
+       "recentchanges-timeout": "Ova pretraga je istekla. Možda želite da pokušate drugačije parametre pretrage.",
+       "recentchanges-network": "Zbog tehničkog problema ne mogu da učitam rezultate. Pokušajte da osvežite stranicu.",
        "recentchanges-notargetpage": "Unesite naziv stranice kako biste videli srodne izmene.",
        "recentchanges-feed-description": "Pratite skorašnje izmene uz pomoć ovog dovoda.",
-       "recentchanges-label-newpage": "Nova stranica",
+       "recentchanges-label-newpage": "Ovom izmenom je napravljena nova stranica",
        "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",
        "recentchanges-legend-heading": "<strong>Legenda:</strong>",
-       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|spisak novih stranica]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (takođe pogledajte [[Special:NewPages|spisak novih stranica]])",
+       "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "recentchanges-submit": "Prikaži",
+       "rcfilters-tag-remove": "Uklonite filter „$1“",
        "rcfilters-legend-heading": "<strong>Spisak skraćenica:</strong>",
-       "rcfilters-other-review-tools": "Ostali alati za pregled:",
+       "rcfilters-other-review-tools": "Druge alatke za pregled",
+       "rcfilters-group-results-by-page": "Grupiši rezultate po stranicama",
        "rcfilters-activefilters": "Aktivni filteri",
+       "rcfilters-activefilters-hide": "Sakrij",
+       "rcfilters-activefilters-show": "Prikaži",
+       "rcfilters-activefilters-hide-tooltip": "Sakrijte područje aktivnih filtera",
+       "rcfilters-activefilters-show-tooltip": "Prikažite područje aktivnih filtera",
        "rcfilters-advancedfilters": "Napredni filteri",
        "rcfilters-limit-title": "Broj izmena za prikaz",
+       "rcfilters-limit-and-date-label": "$1 {{PLURAL:$1|izmena|izmene|izmena}}, $2",
+       "rcfilters-date-popup-title": "Vremenski period za pretragu",
+       "rcfilters-days-title": "Skorašnji dani",
        "rcfilters-hours-title": "Skorašnji sati",
-       "rcfilters-days-show-days": "$1 {{PLURAL:$1|dana|dana}}",
+       "rcfilters-days-show-days": "$1 {{PLURAL:$1|dan|dana}}",
        "rcfilters-days-show-hours": "$1 {{PLURAL:$1|sat|sata}}",
-       "rcfilters-quickfilters-placeholder-description": "Da biste sačuvali svoja podešavanja filtera i upotrebljavali ih kasnije, kliknite na ikonu za oznaku u području aktivnih filtera, ispod.",
-       "rcfilters-search-placeholder": "Filtriraj skorašnje izmene (upotrebite meni ili potražite ime filtera)",
+       "rcfilters-highlighted-filters-list": "Istaknuto: $1",
+       "rcfilters-quickfilters": "Sačuvani filteri",
+       "rcfilters-quickfilters-placeholder-title": "Još nema sačuvanih filtera",
+       "rcfilters-quickfilters-placeholder-description": "Da biste sačuvali svoja podešavanja filtera i ponovo ih upotrebljavali kasnije, kliknite na ikonu za oznaku u području aktivnih filtera — ispod.",
+       "rcfilters-savedqueries-defaultlabel": "Sačuvani filteri",
+       "rcfilters-savedqueries-rename": "Preimenuj",
+       "rcfilters-savedqueries-setdefault": "Postavi kao podrazumevano",
+       "rcfilters-savedqueries-unsetdefault": "Ukloni kao podrazumevano",
+       "rcfilters-savedqueries-remove": "Ukloni",
+       "rcfilters-savedqueries-new-name-label": "Ime",
+       "rcfilters-savedqueries-new-name-placeholder": "Opišite svrhu filtera",
+       "rcfilters-savedqueries-apply-label": "Napravi filter",
+       "rcfilters-savedqueries-apply-and-setdefault-label": "Napravi podrazumevani filter",
+       "rcfilters-savedqueries-cancel-label": "Otkaži",
+       "rcfilters-savedqueries-add-new-title": "Sačuvajte trenutna podešavanja filtera",
+       "rcfilters-savedqueries-already-saved": "Ovi filteri su već sačuvani. Izmenite Vaša podešavanja da biste napravili nove sačuvane filtere.",
+       "rcfilters-restore-default-filters": "Vrati podrazumevane filtere",
+       "rcfilters-clear-all-filters": "Uklonite sve filtere",
+       "rcfilters-show-new-changes": "Najnovije izmene",
+       "rcfilters-search-placeholder": "Filtrirajte izmene (koristite meni ili pretragu za ime filtera)",
+       "rcfilters-invalid-filter": "Neispravan filter",
+       "rcfilters-empty-filter": "Nema aktivnih filtera. Svi doprinosi su prikazani.",
+       "rcfilters-filterlist-title": "Filteri",
+       "rcfilters-filterlist-whatsthis": "Kako ovo funkcioniše?",
+       "rcfilters-filterlist-feedbacklink": "Recite nam šta mislite o ovim alatkama za filtriranje",
+       "rcfilters-highlightbutton-title": "Istakni rezultate",
+       "rcfilters-highlightmenu-title": "Izbor boje",
+       "rcfilters-highlightmenu-help": "Izaberite boju da biste istaknuli ovo svojstvo",
+       "rcfilters-filterlist-noresults": "Nema pronađenih filtera",
+       "rcfilters-noresults-conflict": "Nije pronađen nijedan rezultat jer su kriterijumi pretrage sukobljeni",
+       "rcfilters-state-message-subset": "Ovaj filter nema efekta jer su njegovi rezultati uključeni sa onima {{PLURAL:$2|sledećeg, šireg filtera|sledećih, širih filtera}} (pokušajte sa označavanjem da biste ih raspoznali): $1",
+       "rcfilters-state-message-fullcoverage": "Odabir svih filtera u grupi je isto kao i odabir nijednog, tako da ovaj filter nema efekta. Grupa uključuje: $1",
        "rcfilters-filtergroup-authorship": "Autorstvo doprinosa",
        "rcfilters-filter-editsbyself-label": "Vaše izmene",
+       "rcfilters-filter-editsbyself-description": "Vaši doprinosi.",
        "rcfilters-filter-editsbyother-label": "Izmene drugih",
        "rcfilters-filter-editsbyother-description": "Sve izmene osim Vaših.",
+       "rcfilters-filtergroup-userExpLevel": "Korisnička registracija i iskustvo",
        "rcfilters-filter-user-experience-level-registered-label": "Registrovani",
        "rcfilters-filter-user-experience-level-registered-description": "Prijavljeni urednici.",
        "rcfilters-filter-user-experience-level-unregistered-label": "Neregistrovani",
        "rcfilters-filter-user-experience-level-unregistered-description": "Urednici koji nisu prijavljeni.",
        "rcfilters-filter-user-experience-level-newcomer-label": "Novajlije",
-       "rcfilters-filter-user-experience-level-newcomer-description": "Manje od 10 izmena i 4 dana aktivnosti.",
+       "rcfilters-filter-user-experience-level-newcomer-description": "Registrovani urednici koji imaju manje od 10 izmena ili 4 dana aktivnosti.",
        "rcfilters-filter-user-experience-level-learner-label": "Učenici",
-       "rcfilters-filter-user-experience-level-learner-description": "Više dana aktivnosti i izmena od „novajlija”, ali manje od „iskusnih korisnika”.",
+       "rcfilters-filter-user-experience-level-learner-description": "Registrovani urednici čije je iskustvo između „novajlija” i „iskusnih korisnika”.",
        "rcfilters-filter-user-experience-level-experienced-label": "Iskusni korisnici",
        "rcfilters-filter-user-experience-level-experienced-description": "Registrovani urednici sa više od 500 izmena i 30 dana aktivnosti.",
-       "rcfilters-filter-bots-description": "Izmene napravljene automatizovanim alatima.",
+       "rcfilters-filtergroup-automated": "Automatizovani doprinosi",
+       "rcfilters-filter-bots-label": "Bot",
+       "rcfilters-filter-bots-description": "Izmene napravljene automatizovanim alatkama.",
        "rcfilters-filter-humans-label": "Čovek (nije bot)",
        "rcfilters-filter-humans-description": "Izmene koje su napravili ljudi-urednici.",
+       "rcfilters-filtergroup-reviewstatus": "Patroliranost",
+       "rcfilters-filter-reviewstatus-unpatrolled-description": "Izmene koje nisu ručno ili automatski označene patroliranim.",
        "rcfilters-filter-reviewstatus-unpatrolled-label": "Nepatrolirano",
+       "rcfilters-filter-reviewstatus-manual-description": "Izmene koje su ručno označene patroliranim.",
+       "rcfilters-filter-reviewstatus-manual-label": "Ručno patrolirano",
+       "rcfilters-filter-reviewstatus-auto-description": "Izmene naprednih korisnika čiji je rad automatski označen patroliranim.",
+       "rcfilters-filter-reviewstatus-auto-label": "Automatski patrolirano",
+       "rcfilters-filtergroup-significance": "Značaj",
        "rcfilters-filter-minor-label": "Manje izmene",
        "rcfilters-filter-minor-description": "Izmene koje je autor označio kao manje.",
        "rcfilters-filter-major-label": "Ne-manje izmene",
        "rcfilters-filter-major-description": "Izmene koje nisu označene kao manje.",
-       "rcfilters-filter-watchlist-watched-description": "Izmene stranica koje su na Vašem spisku nadgledanja.",
+       "rcfilters-filtergroup-watchlist": "Stranice na spisku nadgledanja",
+       "rcfilters-filter-watchlist-watched-label": "Na spisku nadgledanja",
+       "rcfilters-filter-watchlist-watched-description": "Izmene stranica na Vašem spisku nadgledanja.",
        "rcfilters-filter-watchlist-watchednew-label": "Nove izmene na spisku nadgledanja",
        "rcfilters-filter-watchlist-watchednew-description": "Izmene stranica na spisku nadgledanja koje niste posetili od kada su napravljene izmene.",
+       "rcfilters-filter-watchlist-notwatched-label": "Nije na spisku nadgledanja",
        "rcfilters-filter-watchlist-notwatched-description": "Sve osim izmena stranica na Vašem spisku nadgledanja.",
-       "rcfilters-filtergroup-changetype": "Vrsta izmene",
+       "rcfilters-filtergroup-watchlistactivity": "Stanje na spisku nadgledanja",
+       "rcfilters-filter-watchlistactivity-unseen-label": "Nepogledane izmene",
+       "rcfilters-filter-watchlistactivity-unseen-description": "Izmene stranica koje niste posetili od kada su napravljene izmene.",
+       "rcfilters-filter-watchlistactivity-seen-label": "Pogledane izmene",
+       "rcfilters-filter-watchlistactivity-seen-description": "Izmene stranica koje ste posetili od kada su napravljene izmene.",
+       "rcfilters-filtergroup-changetype": "Tip izmene",
        "rcfilters-filter-pageedits-label": "Izmene stranica",
-       "rcfilters-filter-pageedits-description": "Izmene viki sadržaja, rasprava, opisa kategorija...",
-       "rcfilters-filter-newpages-label": "Stvaranje stranica",
-       "rcfilters-filter-newpages-description": "Izmene kojima se stvaraju nove stranice.",
+       "rcfilters-filter-pageedits-description": "Izmene viki sadržaja, rasprava, opisa kategorija",
+       "rcfilters-filter-newpages-label": "Pravljenje stranica",
+       "rcfilters-filter-newpages-description": "Izmene kojima se prave nove stranice.",
        "rcfilters-filter-categorization-label": "Izmene kategorija",
-       "rcfilters-filter-logactions-label": "Radnje zabeležene u dnevnicima",
+       "rcfilters-filter-categorization-description": "Zapisi o stranicama dodatim ili uklonjenim iz kategorija.",
+       "rcfilters-filter-logactions-label": "Zabeležene radnje",
+       "rcfilters-filter-logactions-description": "Administrativne radnje, pravljenje naloga, brisanje stranica, otpremanja…",
+       "rcfilters-hideminor-conflicts-typeofchange-global": "Filter za „manje” izmene je u sukobu sa jednim ili više filtera tipa izmena, zato što određeni tipovi izmena ne mogu da se označe kao „manje”. Sukobljeni filteri su označeni u području Aktivni filteri, iznad.",
+       "rcfilters-hideminor-conflicts-typeofchange": "Određeni tipovi izmena ne mogu da se označe kao „manje”, tako da je ovaj filter u sukobu sa sledećim filterima tipa izmena: $1",
+       "rcfilters-typeofchange-conflicts-hideminor": "Ovaj filter tipa izmene je u sukobu sa filterom za „manje” izmene. Određeni tipovi izmena ne mogu da se označe kao „manje”.",
        "rcfilters-filtergroup-lastRevision": "Poslednje izmene",
        "rcfilters-filter-lastrevision-label": "Poslednja izmena",
+       "rcfilters-filter-lastrevision-description": "Samo najnovija izmena na stranici.",
        "rcfilters-filter-previousrevision-label": "Nije poslednja izmena",
        "rcfilters-filter-previousrevision-description": "Sve izmene koje nisu „poslednje izmene”.",
+       "rcfilters-filter-excluded": "Izostavljeno",
+       "rcfilters-tag-prefix-namespace-inverted": "<strong>:nije</strong> $1",
+       "rcfilters-exclude-button-off": "Izostavi označeno",
+       "rcfilters-exclude-button-on": "Izostavi odabrano",
        "rcfilters-view-tags": "Označene izmene",
-       "rcfilters-view-namespaces-tooltip": "Filter rezultata prema imenskom prostoru",
-       "rcfilters-view-tags-tooltip": "Filtriranje rezultata prema oznaci izmene",
+       "rcfilters-view-namespaces-tooltip": "Filtrirajte rezultate prema imenskom prostoru",
+       "rcfilters-view-tags-tooltip": "Filtrirajte rezultate prema oznaci izmene",
+       "rcfilters-view-return-to-default-tooltip": "Povratak na glavni meni",
        "rcfilters-view-tags-help-icon-tooltip": "Saznajte više o označenim izmenama",
-       "rcfilters-liveupdates-button": "Ažuriranja uživo",
-       "rcfilters-watchlist-markseen-button": "Označi sve izmene kao viđene",
-       "rcfilters-watchlist-showupdated": "Izmene na stranicama koje niste posetili od kada je izmena izvršena su <strong>podebljane</strong>, sa ispunjenim oznakama.",
+       "rcfilters-liveupdates-button": "Ažuriraj uživo",
+       "rcfilters-liveupdates-button-title-on": "Isključite ažuriranja uživo",
+       "rcfilters-liveupdates-button-title-off": "Prikažite nove izmene uživo",
+       "rcfilters-watchlist-markseen-button": "Označi sve izmene kao pogledane",
+       "rcfilters-watchlist-edit-watchlist-button": "Promeni spisak nadgledanih stranica",
+       "rcfilters-watchlist-showupdated": "Izmene stranica koje niste posetili od kada je izmena izvršena su <strong>podebljane</strong>, sa ispunjenim oznakama.",
        "rcfilters-preference-label": "Sakrij poboljšanu verziju skorašnjih izmena",
        "rcfilters-preference-help": "Poništava redizajn interfejsa iz 2017. i sve alatke dodate tada i posle.",
+       "rcfilters-watchlist-preference-label": "Sakrij poboljšanu verziju spiska nadgledanja",
+       "rcfilters-filter-showlinkedfrom-label": "Prikaži izmene na stranicama sa kojih dolaze veze",
+       "rcfilters-filter-showlinkedfrom-option-label": "<strong>Stranice sa kojih dolaze veze do</strong> izabrane stranice",
+       "rcfilters-filter-showlinkedto-label": "Prikaži izmene na stranicama ka kojima vode veze",
+       "rcfilters-filter-showlinkedto-option-label": "<strong>Stranice ka kojima vode veze sa</strong> izabrane stranice",
+       "rcfilters-target-page-placeholder": "Unesite ime stranice (ili kategorije)",
        "rcnotefrom": "Ispod {{PLURAL:$5|je izmena|su izmene}} od <strong>$3, $4</strong> (do <strong>$1</strong> prikazano).",
-       "rclistfrom": "Prikaži nove izmene počev od $2 $3",
+       "rclistfromreset": "Resetuj odabir datuma",
+       "rclistfrom": "Prikaži nove izmene počev od $2, $3",
        "rcshowhideminor": "$1 manje izmene",
        "rcshowhideminor-show": "Prikaži",
        "rcshowhideminor-hide": "Sakrij",
        "recentchangeslinked-feed": "Srodne izmene",
        "recentchangeslinked-toolbox": "Srodne izmene",
        "recentchangeslinked-title": "Srodne izmene sa „$1“",
-       "recentchangeslinked-summary": "Ova posebna stranica prikazuje spisak poslednjih izmena na stranicama koje su povezane (ili članovi određene kategorije).\nStranice s [[Special:Watchlist|vašeg spiska nadgledanja]] su '''podebljane'''.",
+       "recentchangeslinked-summary": "Unesite ime stranice da biste videli promene na stranicama koje su povezane sa ili sa te stranice. (Da biste videli članove kategorije, unesite {{ns:category}}:Ime kategorije). Promene na stranicama koje su na [[Special:Watchlist|Vašem spisku nadgledanja]] su <strong>podebljane</strong>.",
        "recentchangeslinked-page": "Naziv stranice:",
        "recentchangeslinked-to": "Prikaži izmene stranica koje su povezane s datom stranicom",
        "recentchanges-page-added-to-category": "[[:$1]] je dodata u kategoriju",
-       "recentchanges-page-added-to-category-bundled": "[[:$1]] i još [[Special:WhatLinksHere/$1|{{PLURAL:$2|jedna stranica|$2 stranice}}]] su dodate u kategoriju",
+       "recentchanges-page-added-to-category-bundled": "[[:$1]] je dodana u kategoriju, [[Special:WhatLinksHere/$1|ova stranica je povezana sa drugim stranicama]]",
        "recentchanges-page-removed-from-category": "[[:$1]] je uklonjena iz kategorije",
-       "recentchanges-page-removed-from-category-bundled": "[[:$1]] i još [[Special:WhatLinksHere/$1|{{PLURAL:$2|jedna stranica|$2 stranice}}]] su uklonjene iz kategorije",
+       "recentchanges-page-removed-from-category-bundled": "[[:$1]] je uklonjena iz kategorije, [[Special:WhatLinksHere/$1|ova stranica je povezana sa drugim stranicama]]",
        "autochange-username": "Medijaviki automatska izmena",
-       "upload": "Otpremi datoteku",
+       "upload": "Otpremanje datoteke",
        "uploadbtn": "Otpremi datoteku",
        "reuploaddesc": "Nazad na obrazac za otpremanje",
        "upload-tryagain": "Pošalji izmenjeni opis datoteke",
+       "upload-tryagain-nostash": "Pošaljite re-otpremljenu datoteku i izmenjen opis",
        "uploadnologin": "Niste prijavljeni",
        "uploadnologintext": "Morate biti $1 da biste otpremali datoteke.",
        "upload_directory_missing": "Fascikla za slanje ($1) nedostaje i server je ne može napraviti.",
        "windows-nonascii-filename": "Ovaj viki ne podržava nazive datoteka s posebnim znacima.",
        "fileexists": "Datoteka s ovim nazivom već postoji. Pogledajte <strong>[[:$1]]</strong> ako niste sigurni da li želite da je promenite.\n[[$1|thumb]]",
        "filepageexists": "Stranica s opisom ove datoteke je već napravljena ovde <strong>[[:$1]]</strong>, iako datoteka ne postoji.\nOpis koji ste naveli se neće pojaviti na stranici s opisom.\nDa bi se vaš opis ovde našao, potrebno je da ga ručno izmenite.\n[[$1|thumb]]",
-       "fileexists-extension": "Datoteka sa sličnim nazivom već postoji: [[$2|thumb]]\n* Naziv datoteke koju šaljete: <strong>[[:$1]]</strong>\n* Naziv postojeće datoteke: <strong>[[:$2]]</strong>\nIzaberite drugačiji naziv.",
+       "fileexists-extension": "Datoteka sa sličnim nazivom već postoji: [[$2|thumb]]\n* Naziv datoteke koju šaljete: <strong>[[:$1]]</strong>\n* Naziv postojeće datoteke: <strong>[[:$2]]</strong>\nDa li želite da koristite prepoznatljivije ime?",
        "fileexists-thumbnail-yes": "Izgleda da je datoteka umanjeno izdanje slike ''(thumbnail)''.\n[[$1|thumb]]\nProverite datoteku <strong>[[:$1]]</strong>.\nAko je proverena datoteka ista slika originalne veličine, nije potrebno slati dodatnu sliku.",
        "file-thumbnail-no": "Datoteka počinje sa <strong>$1</strong>.\nIzgleda da se radi o umanjenoj slici ''(thumbnail)''.\nUkoliko imate ovu sliku u punoj veličini, pošaljite je, a ako nemate, promenite naziv datoteke.",
        "fileexists-forbidden": "Datoteka s ovim nazivom već postoji i ne može se zameniti.\nAko i dalje želite da pošaljete datoteku, vratite se i izaberite drugi naziv.\n[[File:$1|thumb|center|$1]]",
        "fileexists-shared-forbidden": "Datoteka s ovim nazivom već postoji u zajedničkoj ostavi.\nVratite se i pošaljite datoteku s drugim nazivom.\n[[File:$1|thumb|center|$1]]",
+       "fileexists-no-change": "Datoteka je duplikat trenutne verzije <strong>[[:$1]]</strong>.",
+       "fileexists-duplicate-version": "Datoteka je duplikat {{PLURAL:$2|stare verzije|starih verzija}} <strong>[[:$1]]</strong>.",
        "file-exists-duplicate": "Ovo je duplikat {{PLURAL:$1|sledeće datoteke|sledećih datoteka}}:",
        "file-deleted-duplicate": "Datoteka istovetna ovoj ([[:$1]]) je prethodno obrisana.\nPogledajte istoriju brisanja pre ponovnog slanja.",
+       "file-deleted-duplicate-notitle": "Datoteka identična ovoj prethodno je obrisana i ime joj je sakriveno.\nTrebali biste pitati nekoga ko može videti podatke skrivenih datoteka da pregleda situaciju pre nego što ponovo otpremite datoteku.",
        "uploadwarning": "Upozorenje pri otpremanju",
        "uploadwarning-text": "Izmenite opis datoteke i pokušajte ponovo.",
+       "uploadwarning-text-nostash": "Re-otpremite datoteku, izmenite opis ispod i pokušajte ponovo.",
        "savefile": "Sačuvaj datoteku",
        "uploaddisabled": "Otpremanje je onemogućeno.",
        "copyuploaddisabled": "Otpremanje putem veb-adrese je onemogućeno.",
        "uploaddisabledtext": "Otpremanje datoteka je onemogućeno.",
        "php-uploaddisabledtext": "Otpremanje datoteka je onemogućeno u PHP-u.\nProverite podešavanja file_uploads.",
-       "uploadscripted": "Datoteka sadrži HTML ili skriptni kod koji može biti pogrešno protumačen od strane pregledača.",
+       "uploadscripted": "Datoteka sadrži HTML ili skriptni kôd koji može biti pogrešno protumačen od strane pregledača.",
+       "upload-scripted-pi-callback": "Datoteka koja sadrži instrukcije za obradu XML stilskog oblika se ne može otpremiti.",
+       "upload-scripted-dtd": "Nije moguće otpremanje SVG datoteka koje sadrže nestandardnu DTD deklaraciju.",
+       "uploaded-script-svg": "Pronađen skriptni elemenat „$1“ u postavljenoj SVG datoteci.",
+       "uploaded-hostile-svg": "Pronađen nebezbedan CSS u stilskom elementu postavljene SVG datoteke.",
+       "uploaded-event-handler-on-svg": "Nije dozvoljeno postavljanje atributa koji kontrolišu događaje <code>$1=\"$2\"</code> u SVG datotekama.",
+       "uploaded-href-unsafe-target-svg": "Pronađen href sa nesigurnim podacima: URI odredište <code>&lt;$1 $2=\"$3\"&gt;</code> u postavljenoj SVG datoteci.",
+       "uploaded-animate-svg": "Pronađena „animate“ oznaka koja možda menja href koristeći se „from“ atributom <code>&lt;$1 $2=\"$3\"&gt;</code> u postavljenoj SVG datoteci.",
        "uploadscriptednamespace": "Ova SVG datoteka sadrži pogrešan imenski prostor „<nowiki>$1</nowiki>“",
+       "uploadinvalidxml": "Nije moguće raščlaniti XML otpremljene datoteke.",
        "uploadvirus": "Datoteka sadrži virus!\nDetalji: $1",
        "uploadjava": "Datoteka je formata ZIP koji sadrži java .class element.\nSlanje java datoteka nije dozvoljeno jer one mogu izazvati zaobilaženje sigurnosnih ograničenja.",
        "upload-source": "Izvorna datoteka",
        "destfilename": "Naziv:",
        "upload-maxfilesize": "Maksimalna veličina datoteke: $1",
        "upload-description": "Opis datoteke",
-       "upload-options": "Postavke otpremanja",
+       "upload-options": "Opcije otpremanja",
        "watchthisupload": "Nadgledaj ovu datoteku",
        "filewasdeleted": "Datoteka s ovim nazivom je ranije poslata, ali je obrisana.\nProverite $1 pre nego što nastavite s ponovnim slanjem.",
        "filename-bad-prefix": "Naziv datoteke koju šaljete počinje sa <strong>„$1“</strong>, a njega obično dodeljuju digitalni fotoaparati.\nIzaberite naziv datoteke koji opisuje njen sadržaj.",
        "upload-too-many-redirects": "Adresa sadrži previše preusmerenja",
        "upload-http-error": "Došlo je do HTTP greške: $1",
        "upload-copy-upload-invalid-domain": "Primerci otpremanja nisu dostupni na ovom domenu.",
-       "upload-dialog-title": "Otpremanje datoteka",
+       "upload-dialog-disabled": "Postavljanje datoteka pomoću ovog dijaloga je onemogućeno na ovom vikiju.",
+       "upload-dialog-title": "Otpremi datoteku",
        "upload-dialog-button-cancel": "Otkaži",
+       "upload-dialog-button-back": "Nazad",
        "upload-dialog-button-done": "Gotovo",
        "upload-dialog-button-save": "Sačuvaj",
        "upload-dialog-button-upload": "Otpremi",
        "upload-form-label-infoform-title": "Detalji",
-       "upload-form-label-infoform-name": "Ime",
+       "upload-form-label-infoform-name": "Naziv",
        "upload-form-label-infoform-description": "Opis",
+       "upload-form-label-usage-title": "Upotrebe",
        "upload-form-label-usage-filename": "Naziv datoteke",
        "upload-form-label-own-work": "Ovo je moje sopstveno delo",
        "upload-form-label-infoform-categories": "Kategorije",
        "upload-form-label-infoform-date": "Datum",
+       "upload-form-label-not-own-work-local-generic-local": "Takođe možete pokušati [[Special:Upload|podrazumevanu stranicu za otpremanje]].",
        "backend-fail-stream": "Ne mogu da emitujem datoteku $1.",
        "backend-fail-backup": "Ne mogu da napravim rezervu datoteke $1.",
        "backend-fail-notexists": "Datoteka $1 ne postoji.",
        "lockmanager-fail-closelock": "Ne mogu da zatvorim katanac za „$1“.",
        "lockmanager-fail-deletelock": "Ne mogu da obrišem katanac za „$1“.",
        "lockmanager-fail-acquirelock": "Ne mogu da se zaključam za „$1“.",
-       "lockmanager-fail-openlock": "Ne mogu da otvorim katanac za „$1“.",
+       "lockmanager-fail-openlock": "Ne mogu da otvorim katanac za „$1“. Uverite se da je Vaš direktorijum za otpremanje ispravno konfigurisan i da Vaš veb-server ima dozvolu da piše u tom direktorijumu. Pogledajte https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgUploadDirectory za više informacija.",
        "lockmanager-fail-releaselock": "Ne mogu da oslobodim katanac za „$1“.",
        "lockmanager-fail-db-bucket": "Ne mogu da kontaktiram s dovoljno katanaca u kanti $1.",
        "lockmanager-fail-db-release": "Ne mogu da oslobodim katance u bazi $1.",
        "uploadstash-summary": "Ova stranica pruža pristup datotekama koje su otpremljene ili se otpremaju, ali još nisu objavljene. Ove datoteke nisu vidljive nikome, osim korisniku koji ih je otpremio.",
        "uploadstash-clear": "Očisti sakrivene datoteke",
        "uploadstash-nofiles": "Nemate sakrivene datoteke.",
-       "uploadstash-badtoken": "Izvršavanje date radnje nije uspelo. Razlog tome može biti istek vremena za uređivanje. Pokušajte ponovo.",
+       "uploadstash-badtoken": "Izvršavanje ove radnje nije uspelo, razlog tome može biti istek vremena za uređivanje. Pokušajte ponovo.",
        "uploadstash-errclear": "Čišćenje datoteka nije uspelo.",
        "uploadstash-refresh": "Osveži spisak datoteka",
+       "uploadstash-thumbnail": "pogledaj minijaturu",
+       "uploadstash-exception": "Ne mogu sačuvati datoteku u skladište ($1): „$2“.",
+       "uploadstash-bad-path": "Putanja ne postoji.",
+       "uploadstash-bad-path-invalid": "Putanja nije ispravna.",
+       "uploadstash-bad-path-unknown-type": "Nepoznat tip „$1“.",
+       "uploadstash-bad-path-unrecognized-thumb-name": "Neprepoznato ime minijature.",
+       "uploadstash-bad-path-bad-format": "Ključ „$1“ nije u odgovarajućem obliku.",
+       "uploadstash-file-not-found-no-thumb": "Ne mogu dobiti minijaturu.",
+       "uploadstash-file-not-found-no-local-path": "Nema lokalne putanje za umanjenu stavku.",
+       "uploadstash-file-not-found-no-object": "Ne mogu napraviti lokalni datotečni objekat za minijaturu.",
+       "uploadstash-file-not-found-no-remote-thumb": "Dobavljanje minijature nije uspelo: $1\nAdresa = $2",
+       "uploadstash-file-not-found-missing-content-type": "Nedostaje zaglavlje za vrstu sadržaja.",
+       "uploadstash-file-not-found-not-exists": "Ne mogu naći putanju ili ovo nije obična datoteka.",
+       "uploadstash-file-too-large": "Ne mogu poslužiti datoteku veću od $1 {{PLURAL:$1|bajta|bajtova}}",
+       "uploadstash-not-logged-in": "Niko nije prijavljen. Datoteke moraju pripadati korisnicima.",
+       "uploadstash-wrong-owner": "Ova datoteka ($1) ne pripada trenutnom korisniku.",
+       "uploadstash-no-such-key": "Nema takvog ključa ($1). Ne mogu ukloniti.",
+       "uploadstash-no-extension": "Nema traženog dodatka.",
+       "uploadstash-zero-length": "Datoteka je prazna",
        "invalid-chunk-offset": "Neispravna polazna tačka",
        "img-auth-accessdenied": "Pristup je odbijen",
        "img-auth-nopathinfo": "Nedostaje PATH_INFO.\nVaš server nije podešen da prosleđuje ovakve podatke.\nMožda je zasnovan na CGI-ju koji ne podržava img_auth.\nPogledajte https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization?uselang=sr-ec.",
        "img-auth-nologinnWL": "Niste prijavljeni i „$1” nije na spisku dozvoljenih.",
        "img-auth-nofile": "Datoteka „$1“ ne postoji.",
        "img-auth-isdir": "Pokušavate da pristupite fascikli „$1“.\nDozvoljen je samo pristup datotekama.",
-       "img-auth-streaming": "Učitavanje „$1“.",
+       "img-auth-streaming": "Učitavam „$1“...",
        "img-auth-public": "Svrha img_auth.php je da prosleđuje datoteke iz privatnih vikija.\nOvaj viki je postavljen kao javni.\nRadi sigurnosti, img_auth.php je onemogućen.",
        "img-auth-noread": "Korisnik nema pristup za čitanje „$1“.",
        "http-invalid-url": "Neispravna adresa: $1",
        "upload-curl-error28": "Otpremanje je isteklo",
        "upload-curl-error28-text": "Server ne odgovara na upit.\nProverite da li sajt radi, malo osačekajte i pokušajte ponovo.\nProbajte kasnije kada bude manje opterećenje.",
        "license": "Licenca:",
-       "license-header": "Licenca:",
+       "license-header": "Licenciranje",
        "nolicense": "Nije izabrano",
        "licenses-edit": "Uredi izbor licenci",
        "license-nopreview": "(pregled nije dostupan)",
        "upload_source_url": "(vaša izabrana datoteka od ispravnih i javno dostupnih adresa)",
        "upload_source_file": "(vaša odabrana datoteka sa vašeg računara)",
        "listfiles-delete": "obriši",
-       "listfiles-summary": "Ova posebna stranica prikazuje sve poslate datoteke.",
+       "listfiles-summary": "Ova posebna stranica prikazuje sve otpremljene datoteke.",
        "listfiles_search_for": "Naziv datoteke:",
-       "listfiles-userdoesnotexist": "Korisnički nalog „$1“ nije registrovan.",
+       "listfiles-userdoesnotexist": "Korisnički nalog „$1“ nije otvoren.",
        "imgfile": "datoteka",
        "listfiles": "Spisak datoteka",
        "listfiles_thumb": "Minijatura",
        "listfiles_size": "Veličina",
        "listfiles_description": "Opis",
        "listfiles_count": "Verzije",
-       "listfiles-show-all": "Obuhvati stare verzije slika",
+       "listfiles-show-all": "Obuhvati stare verzije datoteka",
        "listfiles-latestversion": "Trenutna verzija",
        "listfiles-latestversion-yes": "Da",
        "listfiles-latestversion-no": "Ne",
        "filehist-revert": "vrati",
        "filehist-current": "trenutno",
        "filehist-datetime": "Datum/vreme",
-       "filehist-thumb": "Umanjeni prikaz",
-       "filehist-thumbtext": "Umanjeni prikaz za izdanje od $1",
+       "filehist-thumb": "Minijatura",
+       "filehist-thumbtext": "Minijatura za verziju na dan $1",
        "filehist-nothumb": "Nema umanjenog prikaza",
        "filehist-user": "Korisnik",
        "filehist-dimensions": "Dimenzije",
        "filehist-comment": "Komentar",
        "imagelinks": "Upotreba datoteke",
        "linkstoimage": "{{PLURAL:$1|Sledeća stranica koristi|$1 sledeće stranice koriste|$1 sledećih stranica koristi}} ovu datoteku:",
-       "linkstoimage-more": "Više od $1 {{PLURAL:$1|stranice|stranice|stranica}} je povezano s ovom datotekom.\nSledeći spisak prikazuje samo {{PLURAL:$1|prvu stranicu povezanu|prve $1 stranice povezane|prvih $1 stranica povezanih}} s ovom datotekom.\nDostupan je i [[Special:WhatLinksHere/$2|potpuni spisak]].",
+       "linkstoimage-more": "Više od $1 {{PLURAL:$1|stranica|stranice|stranica}} je povezano s ovom datotekom.\nSledeći spisak prikazuje samo {{PLURAL:$1|prvu stranicu povezanu|prve $1 stranice povezane|prvih $1 stranica povezanih}} s ovom datotekom.\nDostupan je i [[Special:WhatLinksHere/$2|potpuni spisak]].",
        "nolinkstoimage": "Nema stranica koje koriste ovu datoteku.",
        "morelinkstoimage": "Pogledajte [[Special:WhatLinksHere/$1|više veza]] do ove datoteke.",
        "linkstoimage-redirect": "$1 (preusmerenje datoteke) $2",
        "filerevert-submit": "Vrati",
        "filerevert-success": "Datoteka '''[[Media:$1|$1]]''' je vraćena na [$4 izdanje od $2; $3].",
        "filerevert-badversion": "Ne postoji ranije lokalno izdanje datoteke s navedenim vremenskim podacima.",
+       "filerevert-identical": "Trenutna izmena datoteke indentična je izabranoj.",
        "filedelete": "Obriši $1",
        "filedelete-legend": "Obriši datoteku",
        "filedelete-intro": "Brišete datoteku '''[[Media:$1|$1]]''' zajedno s njenom istorijom.",
        "pageswithprop-legend": "Strane s osobinom strane",
        "pageswithprop-text": "Ova strana izlistava strane koje imaju određenu osobinu",
        "pageswithprop-prop": "Ime osobine:",
+       "pageswithprop-reverse": "Poređaj u suprotnom redosledu",
+       "pageswithprop-sortbyvalue": "Poređaj prema svojstvima",
        "pageswithprop-submit": "Idi",
+       "pageswithprop-prophidden-long": "sakriveno dugo tekstualno svojstvo ($1)",
+       "pageswithprop-prophidden-binary": "sakriveno dugo binarno svojstvo ($1)",
        "doubleredirects": "Dvostruka preusmerenja",
        "doubleredirectstext": "Ova stranica prikazuje stranice koje preusmeravaju na druga preusmerenja.\nSvaki red sadrži veze prema prvom i drugom preusmerenju, kao i odredišnu stranicu drugog preusmerenja koja je obično „pravi“ članak na koga prvo preusmerenje treba da upućuje.\n<del>Precrtani</del> unosi su već rešeni.",
        "double-redirect-fixed-move": "[[$1]] je premešten.\nAutomatski je ažurirano i sada preusmerava na [[$2]].",
-       "double-redirect-fixed-maintenance": "Automatski ispravlja dvostruka preusmerenja iz [[$1]] u [[$2]]. Kao deo održavanja.",
+       "double-redirect-fixed-maintenance": "Automatski ispravlja dvostruka preusmerenja iz [[$1]] u [[$2]] kao deo održavanja",
        "double-redirect-fixer": "Ispravljač preusmerenja",
        "brokenredirects": "Pokvarena preusmerenja",
        "brokenredirectstext": "Sledeća preusmerenja upućuju na nepostojeće stranice:",
        "deadendpages": "Stranice bez unutrašnjih veza",
        "deadendpagestext": "Sledeće stranice nemaju veze do drugih stranica na ovom vikiju.",
        "protectedpages": "Zaštićene stranice",
+       "protectedpages-filters": "Filteri:",
        "protectedpages-indef": "Samo neograničene zaštite",
        "protectedpages-summary": "Na ovoj stranici se nalazi spisak trenutno zaštićenih stranica. Za spisak zaštićenih naslova vidi [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
        "protectedpages-cascade": "Samo prenosive zaštite",
        "protectedtitles-submit": "Prikaži naslove",
        "listusers": "Spisak korisnika",
        "listusers-editsonly": "Prikaži samo korisnike koji su uređivali",
+       "listusers-temporarygroupsonly": "Prikaži samo korisnike u privremenim korisničkim grupama",
        "listusers-creationsort": "Poređaj po datumu stvaranja",
-       "listusers-desc": "Sortiraj u opadajućem redosledu",
+       "listusers-desc": "Poređaj u opadajućem redosledu",
        "usereditcount": "$1 {{PLURAL:$1|izmena|izmene|izmena}}",
        "usercreated": "{{GENDER:$3|je napravio|je napravila|je napravio}} dana $1 u $2",
        "newpages": "Nove stranice",
        "nopagetitle": "Ne postoji takva stranica",
        "nopagetext": "Tražena stranica ne postoji.",
        "pager-newer-n": "{{PLURAL:$1|noviji 1|novija $1|novijih $1}}",
-       "pager-older-n": "{{PLURAL:$1|stariji 1|starijih $1}}",
+       "pager-older-n": "{{PLURAL:$1|stariji 1|starija $1|starijih $1}}",
        "suppress": "Potisni",
        "querypage-disabled": "Ova posebna stranica je onemogućena radi poboljšanja performansi.",
        "apihelp": "API pomoć",
        "apihelp-no-such-module": "Modul „$1“ nije pronađen.",
        "apisandbox": "API pesak",
+       "apisandbox-jsonly": "JavaScript je neophodan za korišćenje API peska.",
        "apisandbox-api-disabled": "API je onemogućen na ovom sajtu.",
-       "apisandbox-submit": "Postavi zahtev",
+       "apisandbox-submit": "Pošalji zahtev",
+       "apisandbox-reset": "Očisti",
+       "apisandbox-retry": "Pokušaj ponovo",
+       "apisandbox-loading": "Učitavam informacije za API modul „$1”...",
+       "apisandbox-load-error": "Došlo je do greške prilikom učitavanja informacija za API modul \"$1\": $2",
+       "apisandbox-no-parameters": "Ovaj API modul nema parametre.",
+       "apisandbox-helpurls": "Linkovi za pomoć",
+       "apisandbox-examples": "Primeri",
+       "apisandbox-dynamic-parameters": "Dodatni parametri",
+       "apisandbox-dynamic-parameters-add-label": "Dodaj parametar:",
+       "apisandbox-dynamic-parameters-add-placeholder": "Naziv parametra",
+       "apisandbox-dynamic-error-exists": "Parametar pod nazivom \"$1\" već postoji.",
+       "apisandbox-deprecated-parameters": "Zastareli parametri",
+       "apisandbox-fetch-token": "Automatski popuni token",
+       "apisandbox-add-multi": "Dodaj",
+       "apisandbox-submit-invalid-fields-title": "Neka polja nisu ispravna",
+       "apisandbox-submit-invalid-fields-message": "Molimo Vas popravite označena polja i pokušajte ponovo.",
        "apisandbox-results": "Rezultati",
+       "apisandbox-sending-request": "Slanje API zahteva...",
+       "apisandbox-loading-results": "Prijem API rezultata...",
+       "apisandbox-results-error": "Došlo je do greške prilikom učitavanja rezultata API upita: $1.",
+       "apisandbox-request-selectformat-label": "Prikaži sahtevane podatke kao:",
        "apisandbox-request-url-label": "Adresa zahteva:",
+       "apisandbox-request-format-json-label": "JSON",
+       "apisandbox-request-json-label": "Zatražite JSON:",
+       "apisandbox-request-time": "Vreme za izvršavanje zahtjeva: {{PLURAL:$1|$1 milisekunda|$1 milisekunde|$1 milisekundi}}",
+       "apisandbox-results-fixtoken": "Ispravi žeton i pošalji ponovo",
+       "apisandbox-results-fixtoken-fail": "Nisam uspeo da dobijem žeton „$1“.",
+       "apisandbox-alert-page": "Polja na stranici su neispravna.",
+       "apisandbox-alert-field": "Vrednost ovog polja je neispravna.",
+       "apisandbox-continue": "Nastavi",
+       "apisandbox-continue-clear": "Očisti",
+       "apisandbox-param-limit": "Unesite <kbd>max</kbd> da bi ste koristili najveće ograničenje.",
+       "apisandbox-multivalue-all-namespaces": "$1 (svi imenski prostori)",
+       "apisandbox-multivalue-all-values": "$1 (sve vrednosti)",
        "booksources": "Štampani izvori",
-       "booksources-search-legend": "Traži književne izvore",
+       "booksources-search-legend": "Pretraži štampane izvore",
        "booksources-isbn": "ISBN:",
        "booksources-search": "Pretraži",
        "booksources-text": "Ispod se nalazi spisak veza ka sajtovima koji se bave prodajom novih i polovnih knjiga, a koji bi mogli imati dodatne podatke o knjigama koje tražite:",
        "booksources-invalid-isbn": "Navedeni ISBN broj nije ispravan. Proverite da nije došlo do greške pri umnožavanju iz prvobitnog izvora.",
+       "magiclink-tracking-rfc": "Stranice s magičnim RFC vezama",
+       "magiclink-tracking-pmid": "Stranice s magičnim PMID vezama",
        "magiclink-tracking-isbn": "Stranice sa ISBN magičnim vezama",
        "specialloguserlabel": "Izvršilac:",
        "speciallogtitlelabel": "Cilj (naslov ili {{ns:user}}:korisničko ime):",
        "deletedcontributions": "Obrisani korisnički doprinosi",
        "deletedcontributions-title": "Obrisani korisnički doprinosi",
        "sp-deletedcontributions-contribs": "doprinosi",
-       "linksearch": "Pretraga spoljnih veza",
+       "linksearch": "Pretraga spoljašnjih veza",
        "linksearch-pat": "Obrazac pretrage:",
        "linksearch-ns": "Imenski prostor:",
        "linksearch-ok": "Pretraži",
        "activeusers-intro": "Ovo je spisak korisnika koji su bili aktivni {{PLURAL:$1|1=prethodni dan|u poslednja $1 dana|u poslednjih $1 dana}}.",
        "activeusers-count": "$1 {{PLURAL:$1|radnja|radnje|radnji}} {{PLURAL:$3|prethodni dan|u poslednja $3 dana|u poslednjih $3 dana}}",
        "activeusers-from": "Prikaži korisnike počev od:",
+       "activeusers-groups": "Prikaži korisnike koji su članovi grupa:",
+       "activeusers-excludegroups": "Izuzmi korisnike koji su članovi grupa:",
        "activeusers-noresult": "Korisnik nije pronađen.",
        "activeusers-submit": "Prikaži aktivne korisnike",
        "listgrouprights": "Prava korisničkih grupa",
        "listgrouprights-namespaceprotection-namespace": "Imenski prostor",
        "listgrouprights-namespaceprotection-restrictedto": "Prava potrebna za uređivanje",
        "listgrants": "Dozvole",
+       "listgrants-grant": "Dozvola",
        "listgrants-rights": "Prava",
        "trackingcategories": "Medijaviki kategorije",
        "trackingcategories-summary": "Ova posebna stranica je spisak kategorija koje su deo Medijavikija, one se automatski ažuriraju i njihovi nazivi se mogu menjati uređivanjem sistemskih poruka u imenskom prostoru {{ns:8}}.",
+       "trackingcategories-msg": "Praćenje kategorije",
        "trackingcategories-name": "Ime poruke",
        "trackingcategories-desc": "Koje stranice se nalaze u kategoriji",
+       "restricted-displaytitle-ignored": "Stranice sa zanemarenim naslovima za prikaz",
        "noindex-category-desc": "Stranice koje u sebi imaju magičnu reč <code><nowiki>__NOINDEX__</nowiki></code>.",
        "index-category-desc": "Stranice koje u sebi imaju magičnu reč <code><nowiki>__INDEX__</nowiki></code> i samim tim su indeksirane od strane robota.",
        "broken-file-category-desc": "Stranice koje imaju veze do nepostojećih datoteka.",
        "trackingcategories-nodesc": "Opis nije dostupan.",
        "trackingcategories-disabled": "Kategorija je onemogućena",
        "mailnologin": "Nema adrese za slanje",
-       "mailnologintext": "Morate biti [[Special:UserLogin|prijavljeni]] i imati ispravnu imejl adresu u [[Special:Preferences|podešavanjima]] da biste slali imejlove drugim korisnicima.",
+       "mailnologintext": "Morate biti [[Special:UserLogin|prijavljeni]] i imati ispravan imejl adresu u [[Special:Preferences|podešavanjima]] da biste slali imejlove drugim korisnicima.",
        "emailuser": "Pošalji imejl",
        "emailuser-title-target": "Slanje imejla {{GENDER:$1|korisniku|korisnici}}",
        "emailuser-title-notarget": "Slanje imejla korisniku",
        "mywatchlist": "Spisak nadgledanja",
        "watchlistfor2": "Za $1 $2",
        "nowatchlist": "Vaš spisak nadgledanja je prazan.",
-       "watchlistanontext": "Morate biti $1 da biste gledali i uređivali stavke na vašem spisku nadgledanja.",
+       "watchlistanontext": "Morate biti prijavljeni da biste gledali i uređivali stavke na vašem spisku nadgledanja.",
        "watchnologin": "Niste prijavljeni",
        "addwatch": "Dodaj na spisak nadgledanja",
        "addedwatchtext": "Stranica „[[:$1]]“ i njena stranica za razgovor je dodata na Vaš [[Special:Watchlist|spisak nadgledanja]].",
+       "addedwatchtext-talk": "Stranica „[[:$1]]” i njena pridružena stranica je dodata na Vaš [[Special:Watchlist|spisak nadgledanja]]",
        "addedwatchtext-short": "Stranica „$1“ je dodata na Vaš spisak nadgledanja.",
        "removewatch": "Ukloni sa spiska nadgledanja",
-       "removedwatchtext": "Stranica „[[:$1]]“ i njena stranica za razgovor je uklonjena s vašeg [[Special:Watchlist|spiska nadgledanja]].",
+       "removedwatchtext": "Stranica „[[:$1]]“ i njena stranica za razgovor je uklonjena sa Vašeg [[Special:Watchlist|spiska nadgledanja]].",
        "removedwatchtext-short": "Stranica „$1“ je uklonjena s vašeg spiska nadgledanja.",
        "watch": "Nadgledaj",
        "watchthispage": "Nadgledaj ovu stranicu",
        "notvisiblerev": "Izmena je obrisana",
        "watchlist-details": "Na Vašem spisku nadgledanja {{PLURAL:$1|je $1 stranica|su $1 stranice|je $1 stranica}} (plus stranice za razgovor).",
        "wlheader-enotif": "Obaveštenje imejlom je omogućeno.",
-       "wlheader-showupdated": "Stranice koje su izmenjene otkad ste ih poslednji put posetili su '''podebljane'''.",
+       "wlheader-showupdated": "Stranice koje su izmenjene otkad ste ih poslednji put posetili su <strong>podebljane</strong>.",
        "wlnote": "Ispod {{PLURAL:$1|je poslednja izmena|su poslednje <strong>$1</strong> izmene|je poslednjih <strong>$1</strong> izmena}} u {{PLURAL:$2|prethodnom satu|prethodna <strong>$2</strong> sata|prethodnih <strong>$2</strong> sati}}, zaključno sa $3, $4.",
        "wlshowlast": "Prikaži poslednjih $1 sati, $2 dana",
        "watchlist-hide": "Sakrij",
        "wlshowhidepatr": "patrolirane izmene",
        "wlshowhidemine": "moje izmene",
        "wlshowhidecategorization": "kategorizaciju stranica",
-       "watchlist-options": "Postavke spiska nadgledanja",
-       "watching": "Nadgledanje…",
-       "unwatching": "Uklanjanje sa spiska nadgledanja...",
+       "watchlist-options": "Opcije spiska nadgledanja",
+       "watching": "Nadgledam…",
+       "unwatching": "Prestajem da nadgledam...",
        "watcherrortext": "Došlo je do greške pri promeni postavki vašeg spiska nadgledanja za „$1“.",
        "enotif_reset": "Označi sve stranice kao posećene",
        "enotif_impersonal_salutation": "{{SITENAME}} korisnik",
-       "enotif_subject_deleted": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|obrisao je|obrisala je}} $2",
-       "enotif_subject_created": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|napravio je|napravila je}} $2",
+       "enotif_subject_deleted": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|obrisao je|obrisala je|obrisao je}} $2",
+       "enotif_subject_created": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|napravio je|napravila je|napravio je}} $2",
        "enotif_subject_moved": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|premestio je|premestila je}} $2",
-       "enotif_subject_restored": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|vratio je|vratila je}} $2",
+       "enotif_subject_restored": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|vratio je|vratila je|vratio je}} $2",
        "enotif_subject_changed": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|promenio|promenila}} je $2",
        "enotif_body_intro_deleted": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|obrisao|obrisala}} je $2 dana $PAGEEDITDATE Pogledajte $3.",
        "enotif_body_intro_created": "Stranicu $1 na {{SITENAME}} {{GENDER:$2|napravio|napravila}} je $2 dana $PAGEEDITDATE Trenutna izmena nalazi se na $3.",
        "enotif_lastvisited": "Za sve izmene od vaše poslednje posete, pogledajte $1.",
        "enotif_lastdiff": "Da vidite ovu izmenu, pogledajte $1.",
        "enotif_anon_editor": "anoniman korisnik $1",
-       "enotif_body": "Poštovani $WATCHINGUSERNAME,\n \t\n$PAGEINTRO $NEWPAGE\n\nOpis: $PAGESUMMARY $PAGEMINOREDIT\n\nKontakt:\nmejl: $PAGEEDITOR_EMAIL\nviki: $PAGEEDITOR_WIKI\n\nNeće biti drugih obaveštenja u slučaju daljih izmena ukoliko ne posetite ovu stranicu kada ste prijavljeni.\nMožete i da poništite postavke obaveštenja za sve stranice u vašem spisku nadgledanja.\n\nSrdačan pozdrav, {{SITENAME}}\n\n--\nDa biste promenili postavke imejl obaveštenja, posetite\n{{canonicalurl:{{#special:Preferences}}}}\n\nDa biste promenili postavke spiska nadgledanja, posetite\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nDa biste uklonili ovu stranicu sa spiska nadgledanja, posetite\n$UNWATCHURL\n\nPodrška i dalja pomoć:\n$HELPPAGE",
+       "enotif_body": "Poštovani $WATCHINGUSERNAME,\n \t\n$PAGEINTRO $NEWPAGE\n\nOpis: $PAGESUMMARY $PAGEMINOREDIT\n\nKontakt:\nmejl: $PAGEEDITOR_EMAIL\nviki: $PAGEEDITOR_WIKI\n\nNeće biti drugih obaveštenja u slučaju daljih izmena ukoliko ne posetite ovu stranicu kada ste prijavljeni.\nMožete i da poništite podešavanja obaveštenja za sve stranice u vašem spisku nadgledanja.\n\nSrdačan pozdrav, {{SITENAME}}\n\n--\nDa biste promenili podešavanja imejl obaveštenja, posetite\n{{canonicalurl:{{#special:Preferences}}}}\n\nDa biste promenili podešavanja spiska nadgledanja, posetite\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nDa biste uklonili ovu stranicu sa spiska nadgledanja, posetite\n$UNWATCHURL\n\nPodrška i dalja pomoć:\n$HELPPAGE",
+       "enotif_minoredit": "Ovo je manja izmena",
        "created": "napravljena",
        "changed": "izmenjena",
        "deletepage": "Obriši stranicu",
        "confirm": "Potvrdi",
        "excontent": "sadržaj je bio: „$1“",
-       "excontentauthor": "sadržaj je bio: „$1“, a jedini urednik [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]])",
+       "excontentauthor": "sadržaj je bio: „$1“, a jedini urednik „[[Special:Contributions/$2|$2]]“ ([[User talk:$2|razgovor]])",
        "exbeforeblank": "sadržaj pre brisanja je bio: „$1“",
        "delete-confirm": "Brisanje stranice „$1“",
        "delete-legend": "Obriši",
        "dellogpage": "Dnevnik brisanja",
        "dellogpagetext": "Ispod je spisak poslednjih brisanja.",
        "deletionlog": "dnevnik brisanja",
-       "logentry-create-create": "$1 {{GENDER:$2|kreirao je|kreirala je}} stranicu $3",
+       "logentry-create-create": "$1 je {{GENDER:$2|napravio|napravila}} stranicu $3",
        "reverted": "Vraćeno na raniju izmenu",
        "deletecomment": "Razlog:",
        "deleteotherreason": "Drugi/dodatni razlog:",
        "rollbacklinkcount": "vrati $1 {{PLURAL:$1|izmenu|izmene|izmena}}",
        "rollbacklinkcount-morethan": "vrati više od $1 {{PLURAL:$1|izmene|izmene|izmena}}",
        "rollbackfailed": "Neuspešno vraćanje",
+       "rollback-missingparam": "Nedostaje potreban parametar na zahtevu.",
+       "rollback-missingrevision": "Ne mogu učitati podatke o izmeni.",
        "cantrollback": "Ne mogu da vratim izmenu.\nPoslednji autor je ujedno i jedini.",
        "alreadyrolled": "Vraćanje poslednje izmene stranice [[:$1]] od strane {{GENDER:$2|korisnika|korisnice|korisnika}} [[User:$2|$2]] ([[User talk:$2|razgovor]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) nije uspelo; neko drugi je u međuvremenu izmenio ili vratio stranicu.\n\nPoslednju izmenu je {{GENDER:$3|napravio|napravila|napravio}} [[User:$3|$3]] ([[User talk:$3|razgovor]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "Opis izmene: <em>$1</em>.",
-       "revertpage": "Vraćene izmene [[Special:Contribs/$2|$2]] ([[User talk:$2|razgovor]]) na poslednju izmenu korisnika [[User:$1|$1]]",
-       "revertpage-nouser": "Vraćene su izmene skrivenog korisnika na poslednju izmenu {{GENDER:$1|korisnika|korisnice}} [[User:$1|$1]]",
-       "rollback-success": "Vraćene su izmene {{GENDER:$1|korisnika|korisnice}} $1\nna poslednju izmenu {{GENDER:$2|korisnika|korisnice}} $2.",
+       "revertpage": "!!FUZZY!!Vraćene izmene {{GENDER:$2|korisnika|korisnice}} [[Special:Contribs/$2|$2]] ([[User talk:$2|razgovor]]) na poslednju izmenu {{GENDER:$1|korisnika|korisnice}} [[User:$1|$1]]",
+       "revertpage-nouser": "Izmene skrivenog korisnika su vraćene na poslednju izmenu {{GENDER:$1|korisnika|korisnice}} [[User:$1|$1]]",
+       "rollback-success": "Izmene {{GENDER:$1|korisnika|korisnice}} {{GENDER:$3|$1}} su vraćene na poslednju izmenu {{GENDER:$2|korisnika|korisnice}} {{GENDER:$4|$2}}.",
+       "rollback-success-notify": "Vraćene izmene korisnika $1;\nvraćeno na poslednju izmenu korisnika $2. [$3 Prikaži izmene]",
        "sessionfailure-title": "Sesija je okončana",
-       "sessionfailure": "Izgleda da postoji problem s vašom sesijom;\nova radnja je otkazana da bi se izbegla zloupotreba.\nVratite se na prethodnu stranicu, ponovo je učitajte i pokušajte ponovo.",
-       "changecontentmodel": "Promeni model sadržaja stranice",
+       "sessionfailure": "Izgleda da postoji problem s vašom sesijom;\nova radnja je otkazana da bi se izbegla zloupotreba.\nMolimo, ponovo pošaljite obrazac.",
+       "changecontentmodel": "Promena modela sadržaja stranice",
        "changecontentmodel-legend": "Promeni model sadržaja",
        "changecontentmodel-title-label": "Naslov stranice",
        "changecontentmodel-model-label": "Novi model sadržaja",
        "changecontentmodel-reason-label": "Razlog:",
+       "changecontentmodel-submit": "Promeni",
        "changecontentmodel-success-title": "Model sadržaja je promenjen",
        "changecontentmodel-success-text": "Model sadržaja stranice [[:$1]] je promenjen.",
        "changecontentmodel-cannot-convert": "Model sadržaja stranice [[:$1]] se ne može pretvoriti u vrstu $2.",
        "changecontentmodel-nodirectediting": "Model sadržaja $1 ne podržava izravno uređivanje",
+       "changecontentmodel-emptymodels-title": "Nema dostupnih modela sadržaja",
+       "changecontentmodel-emptymodels-text": "Model sadržaja stranice [[:$1]] se ne može pretvoriti ni u jednu drugu vrstu.",
        "log-name-contentmodel": "Dnevnik promene modela sadržaja",
-       "log-description-contentmodel": "Događaji koji imaju vezu sa modelima sadržaja stranica",
+       "log-description-contentmodel": "Ova stranica prikazuje izmene u modelima sadržaja stranica i stranice koje su napravljene sa modelom sadržaja koji se razlikuje od podrazumevanog.",
+       "logentry-contentmodel-new": "$1 je {{GENDER:$2|napravio|napravila}} stranicu $3 s nestandardnim modelom sadržaja „$5“",
        "logentry-contentmodel-change": "$1 je {{GENDER:$2|promenio|promenila}} model sadržaja stranice $3 iz „$4“ u „$5“",
        "logentry-contentmodel-change-revertlink": "vrati",
        "logentry-contentmodel-change-revert": "vrati",
        "protectlogpage": "Dnevnik zaštite",
        "protectlogtext": "Ispod je spisak zaštićenih stranica.\nPogledajte [[Special:ProtectedPages|spisak zaštićenih stranica]] za više detalja.",
-       "protectedarticle": "je zaštitio „[[$1]]“",
-       "modifiedarticleprotection": "promenjen stepen zaštite za „[[$1]]“",
+       "protectedarticle": "je {{GENDER:|zaštitio|zaštitila}} stranicu „[[$1]]“",
+       "modifiedarticleprotection": "je {{GENDER:|promenio|promenila}} stepen zaštite stranice „[[$1]]“",
        "unprotectedarticle": "je skinuo zaštitu sa stranice „[[$1]]“",
        "movedarticleprotection": "je premestio podešavanja zaštite sa „[[$2]]“ na „[[$1]]“",
+       "protectedarticle-comment": "{{GENDER:$2|Zaštićena}} stranica [[$1]]",
+       "modifiedarticleprotection-comment": "{{GENDER:$2|Promenjen}} nivo zaštite [[$1]]",
+       "unprotectedarticle-comment": "{{GENDER:$2|Skinuta}} zaštita sa [[$1]]",
        "protect-title": "Stepen zaštite za „$1“",
        "protect-title-notallowed": "Pregled stepena zaštite za „$1“",
        "prot_1movedto2": "je premestio [[$1]] na [[$2]]",
        "protect-badnamespace-text": "Stranice u ovom imenskom prostoru se ne mogu zaštititi.",
        "protect-norestrictiontypes-text": "Ova stranica se ne može zaštititi jer nema dostupnih vrsta ograničenja.",
        "protect-norestrictiontypes-title": "Nezaštitljiva strana",
-       "protect-legend": "Postavke zaštite",
+       "protect-legend": "Podešavanja zaštite",
        "protectcomment": "Razlog:",
        "protectexpiry": "Ističe:",
        "protect_expiry_invalid": "Vreme isteka je neispravno.",
        "protect_expiry_old": "Vreme isteka je starije od trenutnog vremena.",
-       "protect-unchain-permissions": "Otključaj daljnje postavke zaštite",
+       "protect-unchain-permissions": "Otključaj daljnja podešavanja zaštite",
        "protect-text": "Ovde možete da pogledate i promenite stepen zaštite za stranicu '''$1'''.",
-       "protect-locked-blocked": "Ne možete menjati stepene zaštite dok ste blokirani.\nOvo su trenutne postavke stranice '''$1''':",
-       "protect-locked-dblock": "Stepeni zaštite se ne mogu menjati jer je aktivna baza podataka zaključana.\nOvo su postavke stranice '''$1''':",
-       "protect-locked-access": "Nemate ovlašćenja za menjanje stepena zaštite stranice.\nOvo su trenutne postavke stranice '''$1''':",
+       "protect-locked-blocked": "Ne možete menjati stepene zaštite dok ste blokirani.\nOvo su trenutna podešavanja stranice '''$1''':",
+       "protect-locked-dblock": "Stepeni zaštite se ne mogu menjati jer je aktivna baza podataka zaključana.\nOvo su podešavanja stranice '''$1''':",
+       "protect-locked-access": "Nemate ovlašćenja za menjanje stepena zaštite stranice.\nOvo su trenutna podešavanja stranice '''$1''':",
        "protect-cascadeon": "Ova stranica je trenutno zaštićena jer se nalazi na {{PLURAL:$1|stranici koja ima|stranicama koje imaju}} prenosivu zaštitu.\nMožete da promenite stepen zaštite, ali to neće uticati na prenosivu zaštitu.",
        "protect-default": "Dopušteno svim korisnicima",
        "protect-fallback": "Dozvoljeno samo korisnicima sa dozvolom „$1“",
        "undeletepagetext": "{{PLURAL:$1|Sledeća stranica je obrisana, ali je još u arhivi i može biti vraćena|Sledeće $1 stranice su obrisane, ali su još u arhivi i mogu biti vraćene|Sledećih $1 stranica je obrisano, ali su još u arhivi i mogu biti vraćene}}.\nArhiva se povremeno čisti od ovakvih stranica.",
        "undelete-fieldset-title": "Vraćanje izmena",
        "undeleteextrahelp": "Da biste vratili celu istoriju stranice, ostavite sve kućice neoznačene i kliknite na dugme '''''{{int:undeletebtn}}'''''.\nAko želite da vratite određene izmene, označite ih i kliknite na '''''{{int:undeletebtn}}'''''.",
-       "undeleterevisions": "$1 {{PLURAL:$1|izmena je arhivirana|izmene su arhivirane|izmena je arhivirano}}",
-       "undeletehistory": "Ako vratite stranicu, sve revizije će biti vraćene njenoj istoriji.\nAko je u međuvremenu napravljena nova stranica s istim nazivom, vraćene izmene će se pojaviti u njenoj ranijoj istoriji.",
+       "undeleterevisions": "{{PLURAL:$1|Izmena}} obrisano: $1",
+       "undeletehistory": "Ako vratite stranicu, sve izmene će biti vraćene njenoj istoriji.\nAko je u međuvremenu napravljena nova stranica s istim nazivom, vraćene izmene će se pojaviti u njenoj ranijoj istoriji.",
        "undeleterevdel": "Vraćanje neće biti izvršeno ako je rezultat toga delimično brisanje poslednje izmene.\nU takvim slučajevima morate isključiti ili otkriti najnovije obrisane izmene.",
        "undeletehistorynoadmin": "Ova stranica je obrisana.\nRazlog za brisanje se nalazi ispod, zajedno s detaljima o korisniku koji je izmenio ovu stranicu pre brisanja.\nTekst obrisanih izmena je dostupan samo administratorima.",
        "undelete-revision": "Obrisana izmena stranice $1 (dana $4; $5) od strane {{GENDER:$3|korisnika|korisnice|korisnika}} $3:",
        "undeleterevision-missing": "Neispravna ili nepostojeća izmena.\nMožda ste uneli pogrešnu vezu, ili je izmena vraćena ili uklonjena iz arhive.",
+       "undeleterevision-duplicate-revid": "Ne mogu vratiti {{PLURAL:$1|izmenu|$1 izmene|$1 izmena}} jer se {{PLURAL:$1|njen|njihov}} <code>rev_id</code> već koristi.",
        "undelete-nodiff": "Prethodne izmene nisu pronađene.",
        "undeletebtn": "Vrati",
        "undeletelink": "pogledaj/vrati",
        "undelete-search-title": "Pretraga obrisanih stranica",
        "undelete-search-box": "Pretraži obrisane stranice",
        "undelete-search-prefix": "Prikaži stranice koje počinju sa:",
+       "undelete-search-full": "Prikaži naslove koji sadrže:",
        "undelete-search-submit": "Pretraži",
        "undelete-no-results": "Odgovarajuća stranica u dnevniku brisanja nije pronađena.",
        "undelete-filename-mismatch": "Ne mogu da vratim izmenu datoteke od $1: naziv datoteke se ne poklapa",
        "undelete-show-file-submit": "Da",
        "namespace": "Imenski prostor:",
        "invert": "Obrni izbor",
-       "tooltip-invert": "Označite ovu kućicu da biste sakrili izmene na stranicama u odabranom imenskom prostoru (i povezanim imenskim prostorima, ako je označeno)",
+       "tooltip-invert": "Označite ovu kutijucu da biste sakrili izmene stranica u izabranom imenskom prostoru (i povezanim imenskim prostorima, ako je označeno)",
+       "tooltip-whatlinkshere-invert": "Označite ovu kutijicu za sakrivanje veza sa stranica u izabranom imenskom prostoru.",
        "namespace_association": "Povezani imenski prostor",
-       "tooltip-namespace_association": "Označite ovu kućicu da biste uključili i razgovor ili imenski prostor teme koja je povezana s odabranim imenskim prostorom",
+       "tooltip-namespace_association": "Označite ovu kutijicu da biste uključili i razgovor ili imenski prostor teme koja je povezana sa izabranim imenskim prostorom",
        "blanknamespace": "(glavni)",
        "contributions": "{{GENDER:$1|Korisnički}} doprinosi",
        "contributions-title": "Doprinosi {{GENDER:$1|korisnika|korisnice}} $1",
        "mycontris": "Doprinosi",
        "anoncontribs": "Doprinosi",
        "contribsub2": "Za {{GENDER:$3|$1}} ($2)",
-       "contributions-userdoesnotexist": "Korisnički nalog „$1“ nije registrovan.",
+       "contributions-userdoesnotexist": "Korisnički nalog „$1“ nije otvoren.",
        "nocontribs": "Nema izmena koje odgovaraju navedenim kriterijumima.",
-       "uctop": "(poslednja)",
+       "uctop": "(trenutna)",
        "month": "od meseca (i ranije):",
        "year": "od godine (i ranije):",
        "sp-contributions-newbies": "Prikaži samo doprinose novih korisnika",
        "sp-contributions-newbies-sub": "Za nove korisnike",
        "sp-contributions-newbies-title": "Doprinosi novih korisnika",
        "sp-contributions-blocklog": "dnevnik blokiranja",
+       "sp-contributions-suppresslog": "obrisani {{GENDER:$1|korisnički}} doprinosi",
        "sp-contributions-deleted": "obrisani {{GENDER:$1|doprinosi}}",
        "sp-contributions-uploads": "otpremanja",
        "sp-contributions-logs": "dnevnici",
        "sp-contributions-username": "IP adresa ili korisničko ime:",
        "sp-contributions-toponly": "Samo najnovije izmene",
        "sp-contributions-newonly": "Samo izmene kojima su napravljene nove stranice",
+       "sp-contributions-hideminor": "Sakrij manje izmene",
        "sp-contributions-submit": "Pretraži",
        "whatlinkshere": "Šta vodi ovde",
        "whatlinkshere-title": "Stranice koje su povezane sa „$1”",
        "whatlinkshere-page": "Stranica:",
-       "linkshere": "Sledeće stranice imaju vezu do '''$1''':",
-       "nolinkshere": "Nijedna stranica nije povezana sa: '''$2'''.",
+       "linkshere": "Sledeće stranice imaju vezu do <strong>$1</strong>:",
+       "nolinkshere": "Nijedna stranica nije povezana sa: <strong>$2</strong>.",
        "nolinkshere-ns": "Nijedna stranica ne vodi do '''$2''' u izabranom imenskom prostoru.",
        "isredirect": "preusmerenje",
        "istemplate": "uključivanje",
-       "isimage": "veza ka datoteci",
-       "whatlinkshere-prev": "{{PLURAL:$1|prethodni|prethodnih $1}}",
-       "whatlinkshere-next": "{{PLURAL:$1|sledeći|sledećih $1}}",
+       "isimage": "veza do datoteke",
+       "whatlinkshere-prev": "{{PLURAL:$1|prethodni|prethodna $1|prethodnih $1}}",
+       "whatlinkshere-next": "{{PLURAL:$1|sledeći|sledeća $1|sledećih $1}}",
        "whatlinkshere-links": "← veze",
        "whatlinkshere-hideredirs": "$1 preusmerenja",
        "whatlinkshere-hidetrans": "$1 uključivanja",
        "whatlinkshere-submit": "Idi",
        "autoblockid": "Automatsko blokiranje #$1",
        "block": "Blokiraj korisnika",
-       "unblock": "Deblokiraj korisnika",
-       "blockip": "Blokiraj korisnika",
+       "unblock": "Deblokiranje korisnika",
+       "blockip": "Blokiraj {{GENDER:$1|korisnika|korisnicu}}",
        "blockiptext": "Koristite donji obrazac da biste zabranili pristup za pisanje s određene IP adrese ili korisničkog imena.\nOvo bi trebalo da vršite samo radi sprečavanja vandalizma, u skladu sa [[{{MediaWiki:Policy-url}}|smernicama]].\nIzaberite konkretan razlog ispod (primer: navođenje konkretnih stranica koje su vandalizovane). Možete blokirati opsege IP adresa pomoću [https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing CIDR] sintakse, najveći dozvoljeni opseg za IPv4 je /$1 odnosno /$2 za IPv6.",
        "ipaddressorusername": "IP adresa ili korisničko ime:",
        "ipbexpiry": "Ističe:",
        "ipb-unblock-addr": "Deblokiraj $1",
        "ipb-unblock": "Deblokiraj korisničko ime ili IP adresu",
        "ipb-blocklist": "Pogledaj postojeća blokiranja",
-       "ipb-blocklist-contribs": "Doprinosi za $1",
+       "ipb-blocklist-contribs": "Doprinosi za {{GENDER:$1|$1}}",
+       "ipb-blocklist-duration-left": "preostalo: $1",
        "unblockip": "Deblokiraj korisnika",
        "unblockiptext": "Koristite obrazac ispod da biste vratili pravo pisanja blokiranoj IP adresi ili korisničkom imenu.",
        "ipusubmit": "Ukloni ovu blokadu",
        "unblocked-id": "Blokiranje $1 je uklonjeno",
        "unblocked-ip": "[[Special:Contributions/$1|$1]] je deblokiran.",
        "blocklist": "Blokirani korisnici",
+       "autoblocklist": "Autoblokovi",
+       "autoblocklist-submit": "Pretraži",
+       "autoblocklist-legend": "Spisak autoblokiranja",
+       "autoblocklist-localblocks": "{{PLURAL:$1|Lokalni autoblok|Lokalni autoblokovi}}",
+       "autoblocklist-total-autoblocks": "Ukupno autoblokova: $1",
+       "autoblocklist-empty": "Spisak autoblokiranja je prazan.",
+       "autoblocklist-otherblocks": "{{PLURAL:$1|Drugi autoblok|Drugi autoblokovi}}",
        "ipblocklist": "Blokirani korisnici",
        "ipblocklist-legend": "Pronalaženje blokiranog korisnika",
        "blocklist-userblocks": "Sakrij blokiranja naloga",
        "emaillink": "pošalji imejl",
        "autoblocker": "Automatski ste blokirani jer delite IP adresu s korisnikom/com [[User:$1|$1]].\nRazlog blokiranja: „$2“",
        "blocklogpage": "Dnevnik blokiranja",
-       "blocklog-showlog": "{{GENDER:$1|Ovaj korisnik je ranije blokiran|Ova korisnica je ranije blokirana|Ovaj korisnik je ranije blokiran}}.\nIstorija blokiranja se nalazi ispod:",
+       "blocklog-showlog": "{{GENDER:$1|Ovaj korisnik je ranije blokiran|Ova korisnica je ranije blokirana}}.\nIstorija blokiranja se nalazi ispod:",
        "blocklog-showsuppresslog": "{{GENDER:$1|Ovaj korisnik je ranije blokiran i sakriven|Ova korisnica je ranije blokirana i sakrivena}}.\nIstorija sakrivanja se nalazi ispod:",
-       "blocklogentry": "je blokirao [[$1]] s rokom isticanja od $2 $3",
-       "reblock-logentry": "{{GENDER:|je promenio|je promenila|je promenio}} podešavanja za blokiranje {{GENDER:$1|korisnika|korisnice|korisnika}} [[$1]] s rokom isteka od $2 ($3)",
+       "blocklogentry": "je blokirao [[$1]] sa vremenom isticanja od $2 $3",
+       "reblock-logentry": "{{GENDER:|je promenio|je promenila}} podešavanja za blokiranje {{GENDER:$1|korisnika|korisnice}} [[$1]] sa vremenom isteka od $2 ($3)",
        "blocklogtext": "Ovo je dnevnik blokiranja i deblokiranja korisnika.\nAutomatski blokirane IP adrese nisu navedene.\nTekuće zabrane i blokiranja možete naći [[Special:BlockList|ovde]].",
        "unblocklogentry": "je deblokirao $1",
        "block-log-flags-anononly": "samo anonimni korisnici",
        "block-log-flags-hiddenname": "korisničko ime je sakriveno",
        "range_block_disabled": "Administratorska mogućnost za blokiranje raspona IP adresa je onemogućena.",
        "ipb_expiry_invalid": "Vreme isteka je neispravno.",
+       "ipb_expiry_old": "Vreme isteka je u prošlosti.",
        "ipb_expiry_temp": "Sakrivene blokade korisnika moraju biti trajne.",
        "ipb_hide_invalid": "Ne mogu da potisnem ovaj nalog; ima više od {{PLURAL:$1|jedne izmene|$1 izmena}}.",
        "ipb_already_blocked": "„$1“ je već blokiran.",
        "ipb_blocked_as_range": "Greška: IP adresa $1 nije direktno blokirana i ne može da se deblokira.\nOna je blokirana kao deo blokade $2, koja može biti deblokirana.",
        "ip_range_invalid": "Neispravan raspon IP adresa.",
        "ip_range_toolarge": "Opsežna blokiranja veća od /$1 nisu dozvoljena.",
+       "ip_range_toolow": "IP-opsezi nisu dozvoljeni.",
        "proxyblocker": "Bloker posrednika",
        "proxyblockreason": "Vaša IP adresa je blokirana jer predstavlja otvoreni posrednik.\nObratite se vašem dobavljaču internet usluga ili tehničku podršku i obavestite ih o ovom ozbiljnom bezbednosnom problemu.",
        "sorbs": "DNSBL",
        "lockdbsuccesstext": "Baza podataka je zaključana.<br />\nSetite se da je [[Special:UnlockDB|otključate]] kada završite s održavanjem.",
        "unlockdbsuccesstext": "Baza je otključana.",
        "lockfilenotwritable": "Datoteka za zaključavanje baze nije otvorena za pisanje.\nDa biste zaključali i otključali bazu, datoteka mora biti dostupna za pisanje od strane mrežnog servera.",
+       "databaselocked": "Baza podataka je već zaključana.",
        "databasenotlocked": "Baza nije zaključana.",
        "lockedbyandtime": "(od $1 dana $2 u $3)",
        "move-page": "Premeštanje „$1“",
        "cant-move-user-page": "Nemate dozvolu za premeštanje osnovnih korisničkih stranica (osim podstranica).",
        "cant-move-to-user-page": "Nemate dozvolu za premeštanje stranice na vašu korisničku stranicu (osim na korisničku podstranicu).",
        "cant-move-category-page": "Nemate dozvolu da premeštate stranice kategorija.",
+       "cant-move-to-category-page": "Nemate dozvolu da premestite stranicu na stranicu kategorije.",
+       "cant-move-subpages": "Nemate dozvolu da premeštate podstranice.",
+       "namespace-nosubpages": "Imeniski prostor „$1“ ne dozvoljava podstranice.",
        "newtitle": "Novi naslov:",
        "move-watch": "Nadgledaj ovu stranicu",
        "movepagebtn": "Premesti stranicu",
        "delete_and_move_text": "Odredišna stranica „[[:$1]]“ već postoji. \nŽelite li da je obrišete da biste oslobodili mesto za premeštanje?",
        "delete_and_move_confirm": "Da, obriši stranicu",
        "delete_and_move_reason": "Obrisano da se oslobodi mesto za premeštanje iz „[[$1]]“",
-       "selfmove": "Izvorni i odredišni naslovi su istovetni;\nne mogu da premestim stranicu preko same sebe.",
+       "selfmove": "Naslov je istovetan;\nne možete premestiti stranicu preko same sebe.",
        "immobile-source-namespace": "Ne mogu premestiti stranice u imenski prostor „$1“.",
        "immobile-target-namespace": "Ne mogu premestiti stranice u imenski prostor „$1“.",
        "immobile-target-namespace-iw": "Međuviki veza nije ispravno odredište za premeštanje stranice.",
        "export-download": "Sačuvaj kao datoteku",
        "export-templates": "Uključi šablone",
        "export-pagelinks": "Uključi povezane stranice do dubine od:",
+       "export-manual": "Ručno dodaj stranice:",
        "allmessages": "Sistemske poruke",
        "allmessagesname": "Naziv",
        "allmessagesdefault": "Podrazumevani tekst",
        "allmessagescurrent": "Trenutni tekst poruke",
-       "allmessagestext": "Ovo je spisak svih sistemskih poruka koje su dostupne u imenskom prostoru „Medijaviki“.\nPosetite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Medijaviki lokalizaciju] i [https://translatewiki.net Translejtviki] ako želite da pomognete u prevođenju.",
+       "allmessagestext": "Ovo je spisak sistemskih poruka dostupnih u imenskom prostoru „Medijaviki“.\nPosetite [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Medijaviki lokalizaciju] i [https://translatewiki.net translatewiki.net] ako želite da doprinesete opštoj lokalizaciji Medijavikija.",
        "allmessagesnotsupportedDB": "Ova stranica ne može da se koristi jer je '''$wgUseDatabaseMessages''' onemogućen.",
        "allmessages-filter-legend": "Filter",
        "allmessages-filter": "Filtriraj po stanju:",
        "allmessages-language": "Jezik:",
        "allmessages-filter-submit": "Idi",
        "allmessages-filter-translate": "Prevedi",
-       "thumbnail-more": "Povećaj",
+       "thumbnail-more": "Povećajte",
        "filemissing": "Nedostaje datoteka",
        "thumbnail_error": "Greška pri stvaranju minijature: $1",
+       "thumbnail_error_remote": "Poruka o grešci iz $1:\n$2",
        "djvu_page_error": "DjVu stranica je nedostupna",
        "djvu_no_xml": "Ne mogu da preuzmem XML za DjVu datoteku.",
        "thumbnail-temp-create": "Ne mogu da napravim privremenu datoteku minijature",
        "thumbnail-dest-create": "Ne mogu da sačuvam minijaturu u odredištu",
        "thumbnail_invalid_params": "Neispravni parametri za minijaturu",
+       "thumbnail_toobigimagearea": "Datoteka sa veličinama većim od $1",
        "thumbnail_dest_directory": "Ne mogu da napravim odredišnu fasciklu",
        "thumbnail_image-type": "Vrsta slike nije podržana",
-       "thumbnail_gd-library": "Nedovršene postavke grafičke biblioteke: nedostaje funkcija $1",
+       "thumbnail_gd-library": "Nedovršena podešavanja grafičke biblioteke: nedostaje funkcija $1",
+       "thumbnail_image-size-zero": "Izgleda da je veličina datoteke nula.",
        "thumbnail_image-missing": "Datoteka nedostaje: $1",
+       "thumbnail_image-failure-limit": "Bilo je previše skorašnjih neuspešnih pokušaja ($1 ili više) renderovanja ove minijature. Pokušajte ponovo kasnije.",
        "import": "Uvoz stranica",
-       "importinterwiki": "Uvoz iz drugo vikija",
+       "importinterwiki": "Uvoz sa drugog vikija",
        "import-interwiki-text": "Izaberite viki i naslov stranice za uvoz.\nDatumi i imena urednika će biti sačuvani.\nSve radnje pri uvozu s drugih vikija su zabeležene u [[Special:Log/import|dnevniku uvoza]].",
        "import-interwiki-sourcewiki": "Izvorna viki:",
        "import-interwiki-sourcepage": "Izvorna stranica:",
        "import-mapping-namespace": "Uvezi u imenski prostor:",
        "import-mapping-subpage": "Uvezi kao podstranice sledeće stranice:",
        "import-upload-filename": "Naziv datoteke:",
+       "import-upload-username-prefix": "Međuviki prefiks:",
        "import-comment": "Komentar:",
        "importtext": "Izvezite datoteku s izvornog vikija koristeći [[Special:Export|izvoz]].\nSačuvajte je na računar i pošaljite ovde.",
        "importstart": "Uvozim stranice…",
        "imported-log-entries": "{{PLURAL:$1|Uvezena je $1 stavka izveštaja|Uvezene su $1 stavke izveštaja|Uvezeno je $1 stavki izveštaja}}.",
        "importfailed": "Neuspešan uvoz: <nowiki>$1</nowiki>",
        "importunknownsource": "Nepoznata vrsta za uvoz",
-       "importcantopen": "Ne mogu da otvorim datoteku za uvoz",
+       "importnoprefix": "Nije naveden međuviki prefiks",
+       "importcantopen": "Ne mogu da otvorim datoteku za uvoz.",
        "importbadinterwiki": "Neispravna međuviki veza",
        "importsuccess": "Uvoženje je završeno!",
        "importnosources": "Nije određen nijedan izvor za uvoz, tako da je otpremanje istorije onemogućeno.",
        "importuploaderrortemp": "Ne mogu da pošaljem datoteku za uvoz.\nNedostaje privremena fascikla.",
        "import-parse-failure": "Pogrešno raščlanjivanje XML-a.",
        "import-noarticle": "Nema stranice za uvoz!",
-       "import-nonewrevisions": "Izmene nisu uvezene (sve su već bile ili prisutne ili preskočene zbog greški).",
+       "import-nonewrevisions": "Izmene nisu uvezene (sve su već bile ili prisutne ili preskočene zbog grešaka).",
        "xml-error-string": "$1 u redu $2, kolona $3 (bajt $4): $5",
        "import-upload": "Otpremanje XML podataka",
-       "import-token-mismatch": "Gubitak podataka o sesiji.\nPokušajte ponovo.",
+       "import-token-mismatch": "Gubitak podataka o sesiji.\n\nMožda ste odjavljeni. '''Molimo Vas proverite da li ste još uvek prijavljeni i pokušajte ponovo'''.\n\nAko i dalje ne radi, pokušajte se [[Special:UserLogout|odjaviti]] i ponovo prijaviti i proverite da li Vaš veb-prtraživač dozvoljava kolačiće sa ovog sajta.",
        "import-invalid-interwiki": "Ne mogu da uvozim s navedenog vikija.",
        "import-error-edit": "Stranica „$1“ nije uvezena jer vam nije dozvoljeno da je uređujete.",
        "import-error-create": "Stranica „$1“ nije uvezena jer vam nije dozvoljeno da je napravite.",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|izmena uvezena|izmene uvezene|izmena uvezeno}}",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|izmena uvezena|izmene uvezene|izmena uvezeno}} iz $2",
        "javascripttest": "Javaskript test",
+       "javascripttest-pagetext-unknownaction": "Nepoznata radnja „$1“.",
        "javascripttest-qunit-intro": "Pogledajte [$1 dokumentaciju za testiranje] na mediawiki.org.",
        "tooltip-pt-userpage": "{{GENDER:|Vaša}} korisnička stranica",
        "tooltip-pt-anonuserpage": "Korisnička stranica za IP adresu s koje uređujete",
        "tooltip-pt-mytalk": "{{GENDER:|Vaša}} stranica za razgovor",
-       "tooltip-pt-anontalk": "Razgovor o izmenama s ove IP adrese",
+       "tooltip-pt-anontalk": "Razgovor o izmenama sa ove IP adrese",
        "tooltip-pt-preferences": "{{GENDER:|Vaša}} podešavanja",
        "tooltip-pt-watchlist": "Spisak stranica koje nadgledate",
-       "tooltip-pt-mycontris": "Spisak {{GENDER:|vaših}} doprinosa",
+       "tooltip-pt-mycontris": "Spisak {{GENDER:|Vaših}} doprinosa",
        "tooltip-pt-anoncontribs": "Spisak izmena napravljenih sa ove IP adrese",
-       "tooltip-pt-login": "Preporučujemo vam da se prijavite, iako to nije obavezno.",
+       "tooltip-pt-login": "Predlažemo Vam da se prijavite, iako to nije obavezno",
+       "tooltip-pt-login-private": "Morate da se prijavite da biste koristili ovaj Viki",
        "tooltip-pt-logout": "Odjavite se",
-       "tooltip-pt-createaccount": "Ohrabrujemo vas da otvorite nalog i prijavite se ali to nije obavezno",
+       "tooltip-pt-createaccount": "Predlažemo Vam da otvorite nalog i prijavite se, iako to nije obavezno",
        "tooltip-ca-talk": "Razgovor o stranici sa sadržajem",
-       "tooltip-ca-edit": "Uredi ovu stranicu",
+       "tooltip-ca-edit": "Uredite ovu stranicu",
        "tooltip-ca-addsection": "Započnite novi odeljak",
-       "tooltip-ca-viewsource": "Ova stranica je zaključana. \nMožete da pogledate njen izvorni kôd",
-       "tooltip-ca-history": "Prethodne verzije ove stranice",
+       "tooltip-ca-viewsource": "Ova stranica je zaključana. \nMožete da pogledate njen izvorni kod",
+       "tooltip-ca-history": "Prethodne izmene ove stranice",
        "tooltip-ca-protect": "Zaštitite ovu stranicu",
        "tooltip-ca-unprotect": "Promeni zaštitu ove stranice",
        "tooltip-ca-delete": "Obrišite ovu stranicu",
        "tooltip-ca-undelete": "Vrati izmene napravljene na ovoj stranici pre nego što bude obrisana",
        "tooltip-ca-move": "Premesti ovu stranicu",
-       "tooltip-ca-watch": "Dodaj ovu stranicu na spisak nadgledanja",
-       "tooltip-ca-unwatch": "Ukloni ovu stranicu sa spiska nadgledanja",
-       "tooltip-search": "Pretraga",
-       "tooltip-search-go": "Idite na stranicu s ovim imenom, ako postoji",
-       "tooltip-search-fulltext": "Pretražite stranice s ovim tekstom",
+       "tooltip-ca-watch": "Dodajte ovu stranicu na svoj spisak nadgledanja",
+       "tooltip-ca-unwatch": "Uklonite ovu stranicu sa spiska nadgledanja",
+       "tooltip-search": "Pretražite projekat {{SITENAME}}",
+       "tooltip-search-go": "Idite na stranicu s tačno ovim imenom ako postoji",
+       "tooltip-search-fulltext": "Pretražite stranice sa ovim tekstom",
        "tooltip-p-logo": "Posetite glavnu stranu",
        "tooltip-n-mainpage": "Posetite glavnu stranu",
        "tooltip-n-mainpage-description": "Posetite glavnu stranu",
        "tooltip-n-portal": "O projektu, šta možete da radite i gde da pronađete stvari",
-       "tooltip-n-currentevents": "Saznajte više o tekućim događajima",
+       "tooltip-n-currentevents": "Pronađite dodatne informacije o aktuelnostima",
        "tooltip-n-recentchanges": "Spisak skorašnjih izmena na vikiju",
-       "tooltip-n-randompage": "Otvorite slučajnu stranicu",
-       "tooltip-n-help": "Mesto gde možete da se informišete",
-       "tooltip-t-whatlinkshere": "Spisak svih stranica koje vode ovde",
-       "tooltip-t-recentchangeslinked": "Skorašnje izmene na stranicama koje su povezana s ovom stranicom",
+       "tooltip-n-randompage": "Učitajte slučajnu stranicu",
+       "tooltip-n-help": "Mesto gde možete da naučite nešto",
+       "tooltip-t-whatlinkshere": "Spisak svih viki stranica koje vode ovde",
+       "tooltip-t-recentchangeslinked": "Skorašnje izmene na stranicama koje su povezane sa ovom stranicom",
        "tooltip-feed-rss": "RSS dovod ove stranice",
        "tooltip-feed-atom": "Atom dovod ove stranice",
-       "tooltip-t-contributions": "Spisak doprinosa {{GENDER:$1|ovog korisnika|ove korisnice}}",
+       "tooltip-t-contributions": "Spisak doprinosa {{GENDER:$1|ovog korisnika|ove korisnice|ovog korisnika}}",
        "tooltip-t-emailuser": "Pošaljite imejl {{GENDER:$1|ovom korisniku|ovoj korisnici}}",
        "tooltip-t-info": "Više informacija o ovoj stranici",
-       "tooltip-t-upload": "Otpremi datoteke",
+       "tooltip-t-upload": "Otpremite datoteke",
        "tooltip-t-specialpages": "Spisak svih posebnih stranica",
        "tooltip-t-print": "Verzija ove stranice za štampanje",
-       "tooltip-t-permalink": "Stalna veza ka ovoj izmeni stranice",
+       "tooltip-t-permalink": "Trajna veza ka ovoj izmeni stranice",
        "tooltip-ca-nstab-main": "Pogledajte stranicu sa sadržajem",
        "tooltip-ca-nstab-user": "Pogledajte korisničku stranicu",
-       "tooltip-ca-nstab-media": "Pogledajte multimedijalnu datoteku",
+       "tooltip-ca-nstab-media": "Pogledajte medijsku stranicu",
        "tooltip-ca-nstab-special": "Ovo je posebna stranica. Ne možete je menjati.",
        "tooltip-ca-nstab-project": "Pogledajte stranicu projekta",
-       "tooltip-ca-nstab-image": "Prikaži stranu datoteke",
+       "tooltip-ca-nstab-image": "Pogledajte stranicu datoteke",
        "tooltip-ca-nstab-mediawiki": "Pogledajte sistemsku poruku",
        "tooltip-ca-nstab-template": "Pogledajte šablon",
        "tooltip-ca-nstab-help": "Pogledajte stranicu za pomoć",
-       "tooltip-ca-nstab-category": "Pogledajte stranicu kategorija",
+       "tooltip-ca-nstab-category": "Pogledajte stranicu kategorije",
        "tooltip-minoredit": "Označite ovu izmenu kao manju",
        "tooltip-save": "Sačuvajte svoje izmene",
-       "tooltip-publish": "Objavi svoje izmene",
+       "tooltip-publish": "Objavite svoje izmene",
        "tooltip-preview": "Pregledajte svoje izmene. Koristite ovo dugme pre čuvanja.",
        "tooltip-diff": "Pogledajte koje izmene ste napravili na tekstu",
        "tooltip-compareselectedversions": "Pogledajte razlike između dve izabrane izmene ove stranice.",
        "tooltip-watch": "Dodajte ovu stranicu na svoj spisak nadgledanja",
-       "tooltip-watchlistedit-normal-submit": "Ukloni naslove",
+       "tooltip-watchlistedit-normal-submit": "Uklonite naslove",
        "tooltip-watchlistedit-raw-submit": "Ažuriraj spisak",
        "tooltip-recreate": "Ponovo napravite stranicu iako je obrisana",
        "tooltip-upload": "Započnite otpremanje",
-       "tooltip-rollback": "„Vrati“ vraća izmene poslednjeg korisnika jednim klikom",
-       "tooltip-undo": "Poništava ovu izmenu i otvara obrazac za uređivanje.",
-       "tooltip-preferences-save": "Sačuvaj postavke",
+       "tooltip-rollback": "„Vrati“ vraća izmene poslednjeg doprinosioca ove stranice jednim klikom",
+       "tooltip-undo": "„Poništi” vraća ovu izmenu i otvara obrazac za uređivanje u pretpreglednom modu. Dozvoljava dodavanje razloga u opisu izmene.",
+       "tooltip-preferences-save": "Sačuvaj podešavanja",
        "tooltip-summary": "Unesite kratak opis",
        "interlanguage-link-title": "$1 — $2",
        "interlanguage-link-title-nonlang": "$1 — $2",
        "spam_reverting": "Vraćam na poslednju izmenu koja ne sadrži veze do $1",
        "spam_blanking": "Sve izmene sadrže veze do $1. Čistim",
        "spam_deleting": "Sve izmene sadrže veze do $1. Brišem",
-       "simpleantispam-label": "Anti-spama provera. \n<strong>Ne</strong> popunjavaj ovo unutra!",
-       "pageinfo-title": "Podaci o „$1“",
+       "simpleantispam-label": "Anti-spam provera. \n<strong>Ne</strong> popunjavaj ovo unutra!",
+       "pageinfo-title": "Informacije za „$1“",
        "pageinfo-not-current": "Nažalost, nemoguće je pribaviti ove podatke za starije izmene.",
-       "pageinfo-header-basic": "Osnovni podaci",
+       "pageinfo-header-basic": "Osnovne informacije",
        "pageinfo-header-edits": "Istorija izmena",
        "pageinfo-header-restrictions": "Zaštita stranice",
        "pageinfo-header-properties": "Svojstva stranice",
        "pageinfo-length": "Dužina stranice (u bajtovima)",
        "pageinfo-article-id": "ID stranice",
        "pageinfo-language": "Jezik sadržaja stranice",
-       "pageinfo-content-model": "Model sadržaj stranice",
+       "pageinfo-language-change": "promeni",
+       "pageinfo-content-model": "Model sadržaja stranice",
+       "pageinfo-content-model-change": "promeni",
        "pageinfo-robot-policy": "Indeksiranje od strane robota",
        "pageinfo-robot-index": "Dozvoljeno",
        "pageinfo-robot-noindex": "Nije dozvoljeno",
-       "pageinfo-watchers": "Broj nadgledača stranicе",
+       "pageinfo-watchers": "Broj nadgledača stranice",
        "pageinfo-visiting-watchers": "Broj nadgledača stranice koji su posetili skorašnje izmene",
-       "pageinfo-few-watchers": "Manje od $1 {{PLURAL:$1|pratioca|pratilaca}}",
+       "pageinfo-few-watchers": "Manje od $1 {{PLURAL:$1|nadgledača}}",
        "pageinfo-redirects-name": "Broj preusmerenja na ovu stranicu",
-       "pageinfo-subpages-name": "Podstranice ove stranice",
+       "pageinfo-redirects-value": "$1",
+       "pageinfo-subpages-name": "Broj podstranica ove stranice",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|preusmerenje|preusmerenja|preusmerenja}}; $3 {{PLURAL:$3|nepreusmerenje|nepreusmerenja|nepreusmerenja}})",
        "pageinfo-firstuser": "Autor stranice",
        "pageinfo-firsttime": "Datum stvaranja stranice",
        "pageinfo-recent-edits": "Broj skorašnjih izmena (u poslednjih $1)",
        "pageinfo-recent-authors": "Broj skorašnjih zasebnih autora",
        "pageinfo-magic-words": "{{PLURAL:$1|Magična reč|Magične reči}} ($1)",
-       "pageinfo-hidden-categories": "{{PLURAL:$1|Skrivena kategorija|Skrivene kategorije}} ($1)",
+       "pageinfo-hidden-categories": "{{PLURAL:$1|Sakrivena kategorija|Sakrivene kategorije}} ($1)",
        "pageinfo-templates": "{{PLURAL:$1|Uključeni šablon|Uključeni šabloni}} ($1)",
        "pageinfo-transclusions": "{{PLURAL:$1|Stranica|Stranice}} uključene u ($1)",
-       "pageinfo-toolboxlink": "Podaci o stranici",
+       "pageinfo-toolboxlink": "Informacije o stranici",
        "pageinfo-redirectsto": "Preusmerava na",
        "pageinfo-redirectsto-info": "podaci",
        "pageinfo-contentpage": "Računa se kao stranica sa sadržajem",
        "pageinfo-protect-cascading-yes": "Da",
        "pageinfo-protect-cascading-from": "Stranice sa prenosivom zaštitom od",
        "pageinfo-category-info": "Informacije o kategoriji",
+       "pageinfo-category-total": "Ukupno",
        "pageinfo-category-pages": "Broj stranica",
        "pageinfo-category-subcats": "Broj potkategorija",
        "pageinfo-category-files": "Broj datoteka",
+       "pageinfo-user-id": "ID korisnika",
+       "pageinfo-file-hash": "Hash vrednost",
        "markaspatrolleddiff": "Označi kao patrolirano",
        "markaspatrolledtext": "Označi stranicu kao patroliranu",
        "markaspatrolledtext-file": "Označi ovu verziju datoteke kao patroliranu",
        "markedaspatrolledtext": "Izabrana izmena stranice [[:$1]] označena je kao patrolirana.",
        "rcpatroldisabled": "Patroliranje skorašnjih izmena je onemogućeno",
        "rcpatroldisabledtext": "Patroliranje skorašnjih izmena je onemogućeno.",
-       "markedaspatrollederror": "Ne mogu da označim kao patrolirano",
+       "markedaspatrollederror": "Ne mogu da označim kao patrolirano.",
        "markedaspatrollederrortext": "Morate izabrati izmenu da biste je označili kao patroliranu.",
        "markedaspatrollederror-noautopatrol": "Ne možete da označite svoje izmene kao patrolirane.",
        "markedaspatrollednotify": "Ova izmena na stranici „$1” označena je kao patrolirana.",
        "patrol-log-header": "Ovo je dnevnik patroliranih izmena.",
        "log-show-hide-patrol": "$1 dnevnik patroliranja",
        "log-show-hide-tag": "$1 dnevnik oznaka",
+       "confirm-markpatrolled-button": "U redu",
+       "confirm-markpatrolled-top": "Označiti izmenu $3 stranice $2 patroliranom?",
        "deletedrevision": "Obrisana stara izmena $1.",
        "filedeleteerror-short": "Greška pri brisanju datoteke: $1",
        "filedeleteerror-long": "Došlo je do grešaka pri brisanju datoteke:\n\n$1",
        "filedelete-archive-read-only": "Server ne može da piše po skladišnoj fascikli ($1).",
        "previousdiff": "← Starija izmena",
        "nextdiff": "Novija izmena →",
-       "mediawarning": "<strong>Upozorenje:</strong> ova vrsta datoteke može sadržati štetan kod.\nAko ga pokrenete, Vaš računar može biti ugrožen.",
+       "mediawarning": "<strong>Upozorenje:</strong> ova vrsta datoteke može sadržati štetan kôd.\nAko ga pokrenete, Vaš računar može biti ugrožen.",
        "imagemaxsize": "Ograničenje veličine slike:<br /><em>(na stranicama za opis datoteka)</em>",
        "thumbsize": "Veličina minijature:",
        "widthheight": "$1 × $2",
        "svg-long-desc": "SVG datoteka, nominalno $1 × $2 piksela, veličina: $3",
        "svg-long-desc-animated": "Animirana SVG datoteka, nominalno: $1 × $2 piksela, veličina: $3",
        "svg-long-error": "Neispravna SVG datoteka: $1",
-       "show-big-image": "Puna veličina",
+       "show-big-image": "Izvorna datoteka",
        "show-big-image-preview": "Veličina ovog prikaza: $1.",
        "show-big-image-preview-differ": "Veličina $3 pregleda za ovu $2 datoteku je $1.",
-       "show-big-image-other": "{{PLURAL:$2|Druga rezolucija|Druge rezolucije}}: $1.",
+       "show-big-image-other": "$2 {{PLURAL:$2|druga rezolucija|druge rezolucije|drugih rezolucija}}: $1.",
        "show-big-image-size": "$1 × $2 piksela",
        "file-info-gif-looped": "petlja",
        "file-info-gif-frames": "$1 {{PLURAL:$1|kadar|kadra|kadrova}}",
        "newimages-summary": "Ova posebna stranica prikazuje poslednje otpremljene datoteke.",
        "newimages-legend": "Filter",
        "newimages-label": "Naziv datoteke (ili njen deo):",
+       "newimages-user": "IP adresa ili korisničko ime",
+       "newimages-newbies": "Prikaži samo doprinose novih korisnika",
        "newimages-showbots": "Prikaži datoteke koje su poslali botovi",
        "newimages-hidepatrolled": "Sakrij patrolirana otpremanja",
+       "newimages-mediatype": "Vrsta datoteke:",
        "noimages": "Nema ništa.",
+       "gallery-slideshow-toggle": "minijature",
        "ilsubmit": "Pretraži",
        "bydate": "po datumu",
        "sp-newimages-showfrom": "prikaži nove datoteke počevši od $1, $2",
        "seconds-abbrev": "$1 s",
        "minutes-abbrev": "$1 m",
        "hours-abbrev": "$1 č",
-       "days-abbrev": "$1 d",
+       "days-abbrev": "$1 d.",
        "seconds": "{{PLURAL:$1|$1 sekunda|$1 sekunda|$1 sekundi}}",
        "minutes": "{{PLURAL:$1|$1 minut|$1 minuta|$1 minuta}}",
        "hours": "{{PLURAL:$1|$1 sat|$1 sata|$1 sati}}",
        "variantname-gan": "gan",
        "variantname-sr-ec": "Ćirilica",
        "variantname-sr-el": "Latinica",
-       "variantname-sr": "Ћир./lat.",
+       "variantname-sr": "Ćir./lat.",
        "variantname-kk-kz": "kk-kz",
        "variantname-kk-tr": "kk-tr",
        "variantname-kk-cn": "kk-cn",
        "variantname-shi-latn": "shi-Latn",
        "variantname-shi": "shi",
        "metadata": "Metapodaci",
-       "metadata-help": "Ova datoteka sadrži dodatne podatke koji verovatno dolaze od digitalnog fotoaparata ili skenera.\nAko je prvobitno stanje datoteke promenjeno, moguće je da neki detalji ne opisuju izmenjenu datoteku.",
+       "metadata-help": "Ova datoteka sadrži dodatne podatke, koji verovatno dolaze od digitalnog fotoaparata ili skenera korišćenog za digitalizaciju.\nAko je prvobitno stanje datoteke promenjeno, moguće je da neki detalji ne opisuju izmenjenu datoteku u potpunosti.",
        "metadata-expand": "Prikaži detalje",
        "metadata-collapse": "Sakrij detalje",
        "metadata-fields": "Polja za metapodatke slike navedena u ovoj poruci će biti uključena na stranici za slike kada se skupi tabela metapodataka. Ostala polja će biti sakrivena po podrazumevanim postavkama.\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-keywords": "Ključne reči",
        "exif-worldregioncreated": "Oblast sveta gde je slikana fotografija",
        "exif-countrycreated": "Zemlja gde je slikana fotografija",
-       "exif-countrycodecreated": "Kod zemlje gde je slika napravljena",
+       "exif-countrycodecreated": "Kôd zemlje gde je slika napravljena",
        "exif-provinceorstatecreated": "Pokrajina ili država gde je slikana fotografija",
        "exif-citycreated": "Grad gde je slikana fotografija",
        "exif-sublocationcreated": "Oblast grada gde je slikana fotografija",
        "exif-worldregiondest": "Prikazana oblast sveta",
        "exif-countrydest": "Prikazana zemlja",
-       "exif-countrycodedest": "Kod prikazane zemlje",
+       "exif-countrycodedest": "Kôd prikazane zemlje",
        "exif-provinceorstatedest": "Prikazana pokrajina ili država",
        "exif-citydest": "Prikazani grad",
        "exif-sublocationdest": "Prikazana oblast grada",
        "exif-urgency": "Hitnost",
        "exif-fixtureidentifier": "Naziv rubrike",
        "exif-locationdest": "Prikazana lokacija",
-       "exif-locationdestcode": "Kod prikazanog mesta",
+       "exif-locationdestcode": "Kôd prikazanog mesta",
        "exif-objectcycle": "Doba dana za koji je medij namenjen",
        "exif-contact": "Podaci za kontakt",
        "exif-writer": "Pisac",
        "exif-iimsupplementalcategory": "Dopunske kategorije",
        "exif-datetimeexpires": "Ne koristi nakon",
        "exif-datetimereleased": "Objavljeno",
-       "exif-originaltransmissionref": "Izvorni prenos koda lokacije",
+       "exif-originaltransmissionref": "Izvorni prenos kôda lokacije",
        "exif-identifier": "Naznaka",
        "exif-lens": "Korišćeni objektiv",
        "exif-serialnumber": "Serijski broj kamere",
        "exif-contentwarning": "Upozorenje o sadržaju",
        "exif-giffilecomment": "Komentar na datoteku GIF",
        "exif-intellectualgenre": "Vrsta stavke",
-       "exif-subjectnewscode": "Kod predmeta",
-       "exif-scenecode": "IPTC kod scene",
+       "exif-subjectnewscode": "Kôd predmeta",
+       "exif-scenecode": "IPTC kôd scene",
        "exif-event": "Prikazani događaj",
        "exif-organisationinimage": "Prikazana organizacija",
        "exif-personinimage": "Prikazana osoba",
        "exif-compression-34712": "JPEG2000",
        "exif-copyrighted-true": "Zaštićeno autorskim pravom",
        "exif-copyrighted-false": "Nije definisan",
+       "exif-photometricinterpretation-0": "Crno-belo (bela je 0)",
+       "exif-photometricinterpretation-1": "Crno-belo (crna je 0)",
        "exif-photometricinterpretation-2": "RGB",
+       "exif-photometricinterpretation-3": "Paleta",
        "exif-photometricinterpretation-6": "YCbCr",
        "exif-unknowndate": "Nepoznat datum",
        "exif-orientation-1": "Normalno",
        "monthsall": "sve",
        "confirmemail": "Potvrda imejl adrese",
        "confirmemail_noemail": "Niste uneli ispravnu imejl adresu u [[Special:Preferences|podešavanjima]].",
-       "confirmemail_text": "{{SITENAME}} zahteva da potvrdite imejl adresu pre nego što počnete da koristite mogućnosti imejla.\nKliknite na dugme ispod za slanje poruke na vašu adresu.\nU poruci će se nalaziti veza s potvrdnim kodom;\nunesite je u pregledač da biste potvrdili da je vaša imejl adresa ispravna.",
-       "confirmemail_pending": "Potvrdni kod vam je već poslat. Ako ste upravo otvorili nalog, onda verovatno treba da sačekate nekoliko minuta da pristigne, pre nego što ponovo zatražite novi kod.",
-       "confirmemail_send": "Pošalji potvrdni kod",
+       "confirmemail_text": "{{SITENAME}} zahteva da potvrdite imejl adresu pre nego što počnete da koristite mogućnosti imejla.\nKliknite na dugme ispod za slanje poruke na vašu adresu.\nU poruci će se nalaziti veza s potvrdnim kôdom;\nunesite je u pregledač da biste potvrdili da je vaša imejl adresa ispravna.",
+       "confirmemail_pending": "Potvrdni kôd vam je već poslat. Ako ste upravo otvorili nalog, onda verovatno treba da sačekate nekoliko minuta da pristigne, pre nego što ponovo zatražite novi kôd.",
+       "confirmemail_send": "Pošalji potvrdni kôd",
        "confirmemail_sent": "Potvrdna poruka je poslata.",
-       "confirmemail_oncreate": "Poslat je potvrdni kod na vašu imejl adresu.\nOvaj kod nije potreban za prijavljivanje, ali vam treba da biste uključili mogućnosti imejla na vikiju.",
+       "confirmemail_oncreate": "Poslat je potvrdni kôd na vašu imejl adresu.\nOvaj kôd nije potreban za prijavljivanje, ali vam treba da biste uključili mogućnosti imejla na vikiju.",
        "confirmemail_sendfailed": "{{SITENAME}} ne može da pošalje imejl potvrdu.\nProverite da li je imejl adresa pravilno napisana.\n\nGreška: $1",
        "confirmemail_invalid": "Potvrdni kod je neispravan. Verovatno je istekao.",
        "confirmemail_needlogin": "Morate biti $1 da biste potvrdili imejl adresu.",
        "confirmemail_body_set": "Neko, verovatno vi, sa IP adrese $1,\npromenio je imejl adresu naloga „$2“ u ovu adresu na {{SITENAME}}.\n\nDa bismo potvrdili da ovaj nalog stvarno pripada vama i ponovo aktivirali\nmogućnosti imejla na {{SITENAME}}, otvorite sledeću vezu u pregledaču:\n\n$3\n\nAko nalog *ne* pripada vama, pratite sledeću vezu da otkažete potvrdu imejl adrese:\n\n$5\n\nOvaj potvrdni kod ističe $4.",
        "confirmemail_invalidated": "Potvrda imejl adrese je otkazana",
        "invalidateemail": "Otkazivanje potvrde imejla",
+       "notificationemail_body_changed": "Neko, verovatno Vi je promenio imejl adresu naloga iz $2“ u „$3“ sa IP adrese $1 na sajtu {{SITENAME}}.\n\nAko ovo niste bili Vi, odmah obavestite administratore sajta.",
+       "notificationemail_body_removed": "Neko, verovatno Vi sa IP adrese $1 je uklonio imejl adresu za nalog „$2“ na {{SITENAME}}.\n\n\nAko ovo niste bili Vi, odmah obavestite administratore sajta.",
        "scarytranscludedisabled": "[Međuviki uključivanje šablona je onemogućeno]",
        "scarytranscludefailed": "[Dobavljanje šablona za $1 nije uspelo]",
        "scarytranscludefailed-httpstatus": "[Ne mogu da preuzmem šablon $1: HTTP $2]",
        "confirmrecreate": "{{GENDER:$1|Korisnik|Korisnica}} [[User:$1|$1]] ([[User talk:$1|razgovor]]) je {{GENDER:$1|obrisao|obrisala}} ovu stranicu nakon što ste počeli da je uređujete iz sledećeg razloga:\n: <em>$2</em>\nPotvrdite da stvarno želite da napravite stranicu.",
        "confirmrecreate-noreason": "{{GENDER:$1|Korisnik|Korisnica}} [[User:$1|$1]] ([[User talk:$1|razgovor]]) je {{GENDER:$1|obrisao|obrisala}} ovu stranicu nakon što ste počeli da je uređujete. Potvrdite da stvarno želite da ponovo napravite ovu stranicu.",
        "recreate": "Ponovo napravi",
-       "unit-pixel": "px",
+       "unit-pixel": "p",
+       "confirm-purge-title": "Osveži ovu stranicu",
        "confirm_purge_button": "U redu",
        "confirm-purge-top": "Očistiti privremenu memoriju ove stranice?",
        "confirm-purge-bottom": "Ova radnja čisti privremenu memoriju i prikazuje najnoviju izmenu.",
        "confirm-watch-top": "Dodati ovu stranicu u spisak nadgledanja?",
        "confirm-unwatch-button": "U redu",
        "confirm-unwatch-top": "Ukloniti ovu stranicu sa spiska nadgledanja?",
+       "confirm-rollback-button": "U redu",
+       "confirm-rollback-top": "Vrati izmene na ovoj stranici?",
        "semicolon-separator": ";&#32;",
        "comma-separator": ",&#32;",
        "colon-separator": ":&#32;",
        "autosumm-blank": "Uklonjen celokupan sadržaj stranice",
        "autosumm-replace": "Zamenjen sadržaj stranice sa „$1“",
        "autoredircomment": "Preusmerenje na [[$1]]",
+       "autosumm-removed-redirect": "Uklonjeno preusmerenje ka [[$1]]",
+       "autosumm-changed-redirect-target": "Promenjena odredišna stranica u preusmerenju iz [[$1]] u [[$2]]",
        "autosumm-new": "Nova stranica: $1",
        "autosumm-newblank": "Napravljena prazna stranica",
        "size-bytes": "$1 {{PLURAL:$1|bajt|bajta|bajtova}}",
        "watchlistedit-clear-removed": "{{PLURAL:$1|1 naslov je uklonjen|$1 naslova su uklonjena|$1 naslova je uklonjeno}}:",
        "watchlistedit-too-many": "Ima previše stranica za prikaz ovde.",
        "watchlisttools-clear": "isprazni spisak nadgledanja",
-       "watchlisttools-view": "Prikaži srodne izmene",
+       "watchlisttools-view": "prikaži srodne izmene",
        "watchlisttools-edit": "prikaži i uredi spisak nadgledanja",
        "watchlisttools-raw": "izmeni sirov spisak nadgledanja",
        "iranian-calendar-m1": "Farvardin",
        "hebrew-calendar-m6": "Adar",
        "hebrew-calendar-m6a": "Adar I",
        "hebrew-calendar-m6b": "Adar II",
-       "hebrew-calendar-m7": "Nisane",
+       "hebrew-calendar-m7": "Nisan",
        "hebrew-calendar-m8": "Ijar",
        "hebrew-calendar-m9": "Sivan",
        "hebrew-calendar-m10": "Tamuz",
        "hebrew-calendar-m6-gen": "Adar",
        "hebrew-calendar-m6a-gen": "Adar I",
        "hebrew-calendar-m6b-gen": "Adar II",
-       "hebrew-calendar-m7-gen": "Nisane",
+       "hebrew-calendar-m7-gen": "Nisan",
        "hebrew-calendar-m8-gen": "Ijar",
        "hebrew-calendar-m9-gen": "Sivan",
        "hebrew-calendar-m10-gen": "Tamuz",
        "hebrew-calendar-m12-gen": "Elul",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|razgovor]])",
        "timezone-utc": "UTC",
+       "timezone-local": "Lokalno",
        "duplicate-defaultsort": "<strong>Upozorenje:</strong> Podrazumevani ključ svrstavanja „$2“ menja raniji podrazumevani ključ svrstavanja „$1“.",
        "duplicate-displaytitle": "<strong>Upozorenje:</strong> naslov za prikaz „$2“ zameniće postojeći „$1“.",
        "restricted-displaytitle": "<strong>Upozorenje:</strong> Naslov za prikaz „$1” je ignorisan pošto nije ekvivalentan stvarnom naslovu stranice.",
        "version-specialpages": "Posebne stranice",
        "version-parserhooks": "Kuke raščlanjivača",
        "version-variables": "Promenljive",
+       "version-editors": "Za uređivanje",
        "version-antispam": "Sprečavanje nepoželjnih poruka",
        "version-api": "API",
        "version-other": "Drugo",
        "version-ext-license": "Licenca",
        "version-ext-colheader-name": "Ekstenzija",
        "version-skin-colheader-name": "Tema",
-       "version-ext-colheader-version": "Verzija",
+       "version-ext-colheader-version": "Izdanje",
        "version-ext-colheader-license": "Licenca",
        "version-ext-colheader-description": "Opis",
        "version-ext-colheader-credits": "Autori",
        "version-license-title": "Licenca za $1",
+       "version-license-not-found": "Za ovu ekstenziju nije nađena informacija o licenci.",
+       "version-credits-title": "Zasluge za $1",
+       "version-credits-not-found": "Za ovu ekstenziju nije nađena informacija o zaslugama.",
        "version-poweredby-credits": "Ovaj viki pokreće '''[https://www.mediawiki.org/ Medijaviki]''', autorska prava © 2001-$1 $2.",
        "version-poweredby-others": "ostali",
        "version-poweredby-translators": "translatewiki.net prevodioci",
        "version-credits-summary": "Želeli bismo da zahvalimo sledećim ljudima na njihovom doprinosu [[Special:Version|Medijavikiji]].",
-       "version-license-info": "Medijaviki je slobodan softver možete ga redistribuirati i/ili modifikovati pod uslovima GNU-ove opšte javne licence verzija 2 ili svake sledeće koju objavi Zadužbina za slobodan softver.\n\nMedijaviki se redistribuira u nadi da će biti od koristi, ali BEZ IKAKVE GARANCIJE čak i bez PODRAZUMEVANE GARANCIJE FUNKCIONALNOSTI ili PRIKLADNOSTI ZA ODREĐENEU NAMENU. Pogledajte GNU-ovu opštu javnu licencu za više informacija.\n\nTrebalo bi da ste dobili [{{SERVER}}{{SCRIPTPATH}}/COPYING primerak GNU-ove opšte javne licence] zajedno sa ovim programom. Ako niste, pišite na Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA ili [//www.gnu.org/licenses/old-licenses/gpl-2.0.html pročitajte ovde].",
+       "version-license-info": "Medijaviki je slobodan softver možete ga redistribuirati i/ili modifikovati pod uslovima GNU-ove opšte javne licence verzija 2 ili svake sledeće koju objavi Zadužbina za slobodan softver.\n\nMedijaviki se redistribuira u nadi da će biti od koristi, ali <em>BEZ IKAKVE GARANCIJE</em> čak i bez <strong>PODRAZUMEVANE GARANCIJE FUNKCIONALNOSTI</strong> ili <strong>PRIKLADNOSTI ZA ODREĐENEU NAMENU</strong>. Pogledajte GNU-ovu opštu javnu licencu za više informacija.\n\nTrebalo bi da ste dobili [{{SERVER}}{{SCRIPTPATH}}/COPYING primerak GNU-ove opšte javne licence] zajedno sa ovim programom. Ako niste, pišite na Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA ili [//www.gnu.org/licenses/old-licenses/gpl-2.0.html pročitajte ovde].",
        "version-software": "Instalirani softver",
        "version-software-product": "Proizvod",
-       "version-software-version": "Verzija",
+       "version-software-version": "Izdanje",
        "version-entrypoints": "Adrese ulazne tačke",
        "version-entrypoints-header-entrypoint": "Ulazna tačka",
        "version-entrypoints-header-url": "Adresa",
        "version-libraries-license": "Licenca",
        "version-libraries-description": "Opis",
        "version-libraries-authors": "Autori",
-       "redirect": "Preusmerenje na datoteku, korisnika, stranicu ili izmenu",
+       "redirect": "Preusmerenje na datoteku, korisnika, stranicu, izmenu ili dnevnik (ID)",
+       "redirect-summary": "Ova posebna stranica preusmerava do datoteke (s datim imenom datoteke), stranice (s datim ID-om izmene ili ID-om stranice), korisničke stranice (s datim numeričkim korisničkim ID-om), ili unosa u dnevniku (s datim dnevničkim ID-om). Upotreba: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], or [[{{#Special:Redirect}}/logid/186]].",
        "redirect-submit": "Idi",
        "redirect-lookup": "Tip vrednosti:",
        "redirect-value": "Vrednost:",
        "redirect-user": "Korisnički ID",
        "redirect-page": "ID stranice",
-       "redirect-revision": "Verzija stranice",
+       "redirect-revision": "Izmena stranice",
        "redirect-file": "Naziv datoteke",
-       "redirect-not-exists": "Vrednost nije pronađen",
-       "fileduplicatesearch": "Pretraga duplikata",
+       "redirect-logid": "ID dnevnika",
+       "redirect-not-exists": "Vrednost nije pronađena",
+       "fileduplicatesearch": "Pretraži duplikate",
        "fileduplicatesearch-summary": "Pretraga dupliranih datoteka prema heš vrednosti.",
        "fileduplicatesearch-filename": "Naziv datoteke:",
        "fileduplicatesearch-submit": "Pretraži",
        "specialpages-group-highuse": "Najčešće korišćene stranice",
        "specialpages-group-pages": "Spiskovi stranica",
        "specialpages-group-pagetools": "Alatke",
-       "specialpages-group-wiki": "Podaci i alati",
+       "specialpages-group-wiki": "Podaci i alatke",
        "specialpages-group-redirects": "Preusmeravanje posebnih stranica",
        "specialpages-group-spam": "Alatke protiv nepoželjnih poruka",
-       "specialpages-group-developer": "Programerski alati",
+       "specialpages-group-developer": "Programerske alatke",
        "blankpage": "Prazna stranica",
        "intentionallyblankpage": "Ova stranica je namerno ostavljena praznom.",
        "external_image_whitelist": " #Ostavite ovaj red onakvim kakav jeste<pre>\n#Ispod dodajte odlomke regularnih izraza (samo deo koji se nalazi između //)\n#Oni će biti upoređeni s adresama spoljašnjih slika\n#One koje se poklapaju biće prikazane kao slike, a preostale kao veze do slika\n#Redovi koji počinju s tarabom se smatraju komentarima\n#Svi unosi su osetljivi na mala i velika slova\n\n#Dodajte sve odlomke regularnih izraza iznad ovog reda. Ovaj red ne dirajte</pre>",
        "tags": "Važeće oznake izmena",
        "tag-filter": "Filter za [[Special:Tags|oznake]]:",
        "tag-filter-submit": "Filtriraj",
-       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Oznaka|Oznake}}]]: $2)",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|oznaka|oznake}}]]: $2)",
+       "tag-mw-contentmodelchange": "promena modela sadržaja",
        "tag-mw-contentmodelchange-description": "Izmene koje menjaju model sadržaja stranice",
-       "tag-mw-rollback": "Vraćanje",
+       "tag-mw-new-redirect": "novo preusmerenje",
+       "tag-mw-new-redirect-description": "Izmene kojima je napravljeno novo preusmerenje ili je stranica izmenjena da bude preusmerenje",
+       "tag-mw-removed-redirect": "uklonjeno preusmerenje",
+       "tag-mw-removed-redirect-description": "Izmene koje menjaju postojeće preusmerenje u stranicu bez preusmerenja",
+       "tag-mw-changed-redirect-target": "promenjeno odredište preusmerenja",
+       "tag-mw-changed-redirect-target-description": "Izmene koje menjaju odredište preusmerenja",
+       "tag-mw-blank": "stranica ispražnjena",
+       "tag-mw-blank-description": "Izmene koje brišu čitav sadržaj stranice",
+       "tag-mw-replace": "uklonjena većina teksta",
+       "tag-mw-replace-description": "Izmene koje uklanjaju više od 90% sadržaja stranice",
+       "tag-mw-rollback": "vraćanje",
+       "tag-mw-rollback-description": "Izmene koje vraćaju stranicu na prethodne izmene",
+       "tag-mw-undo": "poništenje",
+       "tag-mw-undo-description": "Izmene koje poništavaju prethodne izmene",
        "tags-title": "Oznake",
        "tags-intro": "Na ovoj stranici je naveden spisak oznaka s kojima program može da označi izmene i njegovo značenje.",
        "tags-tag": "Naziv oznake",
        "tags-edit": "uredi",
        "tags-delete": "obriši",
        "tags-activate": "aktiviraj",
-       "tags-deactivate": "dekativiraj",
+       "tags-deactivate": "deaktiviraj",
        "tags-hitcount": "$1 {{PLURAL:$1|izmena|izmene|izmena}}",
        "tags-manage-no-permission": "Nemate dozvolu da menjate oznake.",
        "tags-create-heading": "Nova oznaka",
        "tags-delete-reason": "Razlog:",
        "tags-delete-submit": "Nepovratno obriši ovu oznaku",
        "tags-delete-not-found": "Oznaka „$1“ ne postoji.",
+       "tags-delete-too-many-uses": "Oznaka „$1” je primenjena na više od $2 {{PLURAL:$2|izmene|izmena}}, što znači da se ne može obrisati.",
+       "tags-delete-no-permission": "Nemate dozvolu da brišete oznake za izmenu.",
        "tags-activate-title": "Aktiviranje oznaka",
        "tags-activate-question": "Aktivirate oznaku „$1“.",
        "tags-activate-reason": "Razlog:",
        "tags-deactivate-reason": "Razlog:",
        "tags-deactivate-not-allowed": "Nije moguće deaktivirati oznaku „$1“.",
        "tags-deactivate-submit": "Dekativiraj",
+       "tags-update-no-permission": "Nemate dozvolu za dodavanje ili uklanjanje oznake izmena iz zasebnih izmena ili unosa u dnevniku.",
+       "tags-update-blocked": "Ne možete dodavati niti uklanjati oznake izmena dok {{GENDER:$1|ste}} blokirani.",
+       "tags-update-add-not-allowed-one": "Nije dozvoljeno da se oznaka „$1” dodaje ručno.",
        "tags-edit-title": "Uredi oznake",
        "tags-edit-manage-link": "Upravljaj oznakama",
        "tags-edit-existing-tags": "Postojeće oznake:",
+       "tags-edit-existing-tags-none": "<em>Nema</em>",
        "tags-edit-new-tags": "Nove oznake:",
+       "tags-edit-add": "Dodaj ove oznake:",
+       "tags-edit-remove": "Ukloni ove oznake:",
+       "tags-edit-remove-all-tags": "(ukloni sve oznake)",
+       "tags-edit-chosen-placeholder": "Izaberi neke oznake",
+       "tags-edit-chosen-no-results": "Odgovarajuće oznake nisu pronađene",
        "tags-edit-reason": "Razlog:",
+       "tags-edit-success": "Izmene su primenjene.",
+       "tags-edit-failure": "Ne mogu da primenim izmene:\n$1",
+       "tags-edit-nooldid-title": "Neispravna odredišna izmena",
+       "tags-edit-none-selected": "Izaberite bar jednu oznaku koju treba dodati ili ukloniti.",
        "comparepages": "Upoređivanje stranica",
        "compare-page1": "Stranica 1",
        "compare-page2": "Stranica 2",
        "compare-invalid-title": "Navedeni naslov je neispravan.",
        "compare-title-not-exists": "Navedeni naslov ne postoji.",
        "compare-revision-not-exists": "Navedena izmena ne postoji.",
-       "diff-form": "'''forma'''",
-       "permanentlink": "Stalna veza",
+       "diff-form": "Razlike",
+       "diff-form-oldid": "ID stare izmene (neobavezno)",
+       "diff-form-revid": "ID izmene ili razlike",
+       "diff-form-submit": "Prikaži razlike",
+       "permanentlink": "Trajna veza",
+       "permanentlink-revid": "ID izmene",
+       "permanentlink-submit": "Idi na izmenu",
        "dberr-problems": "Došlo je do tehničkih problema.",
        "dberr-again": "Sačekajte nekoliko minuta i ponovo učitajte stranicu.",
        "dberr-info": "(Ne mogu pristupiti bazi podataka: $1)",
        "htmlform-int-toolow": "Navedena vrednost je ispod minimuma od $1",
        "htmlform-int-toohigh": "Navedena vrednost je iznad maksimuma od $1",
        "htmlform-required": "Ova vrednost je obavezna.",
-       "htmlform-submit": "Pošalji",
+       "htmlform-submit": "Postavi",
        "htmlform-reset": "Vrati izmene",
        "htmlform-selectorother-other": "Drugo",
        "htmlform-no": "Ne",
        "htmlform-cloner-create": "Dodaj još",
        "htmlform-cloner-delete": "Ukloni",
        "htmlform-cloner-required": "Bar jedna vrednost je potrebna.",
+       "htmlform-date-placeholder": "GGGG-MM-DD",
+       "htmlform-time-placeholder": "ČČ:MM:SS",
+       "htmlform-datetime-placeholder": "GGGG-MM-DD ČČ:MM:SS",
        "htmlform-title-badnamespace": "[[:$1]] nije u imenskom prostoru „{{ns:$2}}“.",
+       "htmlform-title-not-creatable": "Stranica „$1“ se ne može napraviti",
        "htmlform-title-not-exists": "$1 ne postoji.",
        "htmlform-user-not-exists": "<strong>$1</strong> ne postoji.",
        "htmlform-user-not-valid": "<strong>$1</strong> nije ispravno korisničko ime.",
        "logentry-delete-delete": "$1 je {{GENDER:$2|obrisao|obrisala}} stranicu $3",
        "logentry-delete-delete_redir": "$1 je {{GENDER:$2|obrisao|obrisala}} preusmerenje $3 prepisivanjem",
-       "logentry-delete-restore": "$1 je {{GENDER:$2|vratio|vratila}} stranicu $3",
+       "logentry-delete-restore": "$1 je {{GENDER:$2|vratio|vratila}} stranicu $3 ($4)",
+       "logentry-delete-restore-nocount": "$1 je {{GENDER:$2|vratio|vratila}} stranicu $3",
+       "restore-count-revisions": "{{PLURAL:$1|1 izmena|$1 izmene|$1 izmena}}",
+       "restore-count-files": "{{PLURAL:$1|1 datoteka|$1 datoteke|$1 datoteka}}",
        "logentry-delete-event": "$1 je {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|1=događaja|$5 događaja}} u dnevniku $3: $4",
        "logentry-delete-revision": "$1 je {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|1=jedne izmene|$5 izmene|$5 izmena}} na stranici $3: $4",
        "logentry-delete-event-legacy": "$1 je {{GENDER:$2|promenio|promenila}} vidljivost događaja u dnevniku $3",
        "logentry-delete-revision-legacy": "$1 je {{GENDER:$2|promenio|promenila}} vidljivost izmena na stranici $3",
        "logentry-suppress-delete": "$1 je {{GENDER:$2|potisnuo|potisnula}} stranicu $3",
-       "logentry-suppress-event": "$1 je tajno {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|1=događaja|$5 događaja}} u dnevniku $3: $4",
+       "logentry-suppress-event": "$1 je tajno {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|događaja|$5 događaja}} u dnevniku $3: $4",
        "logentry-suppress-revision": "$1 je tajno {{GENDER:$2|promenio|promenila}} vidljivost {{PLURAL:$5|izmene|$5 izmena}} na stranici $3: $4",
-       "logentry-suppress-event-legacy": "$1 је tajno {{GENDER:$2|promenio|promenila}} vidljivost događaj u dnevniku $3",
+       "logentry-suppress-event-legacy": "$1 je potajno {{GENDER:$2|promenio|promenila}} vidljivost događaja u dnevniku $3",
        "logentry-suppress-revision-legacy": "$1 je tajno {{GENDER:$2|promenio|promenila}} vidljivost izmena na stranici $3",
        "revdelete-content-hid": "sadržaj je sakriven",
        "revdelete-summary-hid": "opis izmene je sakriven",
        "logentry-import-upload": "$1 je {{GENDER:$2|uvezao|uvezla}} $3 otpremanjem datoteke",
        "logentry-import-upload-details": "$1 je {{GENDER:$2|uvezao|uvezla}} $3 otpremanjem datoteke ($4 {{PLURAL:$4|izmena|izmene|izmena}})",
        "logentry-import-interwiki": "$1 je {{GENDER:$2|uvezao|uvezla}} $3 s drugog vikija",
-       "logentry-import-interwiki-details": "$1 је {{GENDER:$2|увезао|увезла}} $3 из $5 ($4 {{PLURAL:$4|1=измена|измене|измена}})",
+       "logentry-import-interwiki-details": "$1 je {{GENDER:$2|uvezao|uvezla}} $3 iz $5 ($4 {{PLURAL:$4|1=izmena|izmene|izmena}})",
        "logentry-merge-merge": "$1 je {{GENDER:$2|spojio|spojila}} $3 u $4 (sve do izmene $5)",
        "logentry-move-move": "$1 je {{GENDER:$2|premestio|premestila}} stranicu $3 na $4",
        "logentry-move-move-noredirect": "$1 je {{GENDER:$2|premestio|premestila}} stranicu $3 na $4 bez ostavljanja preusmerenja",
        "logentry-move-move_redir": "$1 je {{GENDER:$2|premestio|premestila}} stranicu $3 na $4 preko preusmerenja",
-       "logentry-move-move_redir-noredirect": "$1 je {{GENDER:|premestio|premestila}} stranicu $3 na $4 preko preusmerenja bez ostavljanja preusmerenja",
+       "logentry-move-move_redir-noredirect": "$1 je {{GENDER:$2|premestio|premestila}} stranicu $3 na $4 preko preusmerenja bez ostavljanja preusmerenja",
        "logentry-patrol-patrol": "$1 je {{GENDER:$2|označio|označila}} izmenu $4 stranice $3 kao patroliranu",
        "logentry-patrol-patrol-auto": "$1 je automatski {{GENDER:$2|označio|označila}} izmenu $4 stranice $3 kao patroliranu",
        "logentry-newusers-newusers": "$1 je {{GENDER:$2|otvorio|otvorila}} korisnički nalog",
        "logentry-newusers-create": "$1 je {{GENDER:$2|otvorio|otvorila}} korisnički nalog",
        "logentry-newusers-create2": "$1 je {{GENDER:$2|otvorio|otvorila}} korisnički nalog $3",
-       "logentry-newusers-byemail": "$1 je {{GENDER:$2|otvorio|otvorila}} korisnički nalog $3 i lozinka je poslata na imejl",
+       "logentry-newusers-byemail": "$1 je {{GENDER:$2|napravio|napravila}} korisnički nalog $3 i lozinka je poslata na imejl",
        "logentry-newusers-autocreate": "Korisnički nalog $1 je automatski {{GENDER:$2|otvoren}}",
-       "logentry-protect-move_prot": "$1 je {{GENDER:$2|premestio|premestila}} postavke zaštite sa $4 na $3",
+       "logentry-protect-move_prot": "$1 je {{GENDER:$2|premestio|premestila}} podešavanja zaštite sa $4 na $3",
        "logentry-protect-unprotect": "$1 je {{GENDER:$2|skinuo|skinula}} zaštitu sa stranice $3",
        "logentry-protect-protect": "$1 je {{GENDER:$2|zaštitio|zaštitila}} $3 $4",
        "logentry-protect-protect-cascade": "$1 je {{GENDER:$2|zaštitio|zaštitila}} $3 $4 [prenosiva zaštita]",
        "logentry-protect-modify-cascade": "$1 je {{GENDER:$2|promenio|promenila}} stepen zaštite za $3 $4 [prenosiva zaštita]",
        "logentry-rights-rights": "$1 je {{GENDER:$2|promenio|promenila}} članstvo grupe za {{GENDER:$6|$3}} iz $4 u $5",
        "logentry-rights-rights-legacy": "$1 je {{GENDER:$2|promenio|promenila}} članstvo grupe za $3",
-       "logentry-rights-autopromote": "$1 je automatski {{GENDER:$1|unapređen|unapređena}} iz $4 u $5",
+       "logentry-rights-autopromote": "$1 je automatski {{GENDER:$2|unapređen|unapređena}} iz $4 u $5",
        "logentry-upload-upload": "$1 je {{GENDER:$2|otpremio|otpremila}} $3",
        "logentry-upload-overwrite": "$1 je {{GENDER:$2|otpremio|otpremila}} novu verziju $3",
        "logentry-upload-revert": "$1 je {{GENDER:$2|otpremio|otpremila}} $3",
        "feedback-bugornote": "Ako ste spremni da detaljno opišete tehnički problem, onda [$1 prijavite grešku].\nU suprotnom, poslužite se jednostavnim obrascem ispod. Vaš komentar će stajati na stranici „[$3 $2]“, zajedno s korisničkim imenom i pregledačem koji koristite.",
        "feedback-cancel": "Otkaži",
        "feedback-close": "Urađeno",
-       "feedback-external-bug-report-button": "Prijavi bag",
+       "feedback-external-bug-report-button": "Prijavi grešku",
+       "feedback-dialog-title": "Slanje povratne informacije",
        "feedback-error1": "Greška: neprepoznat rezultat od API-ja",
        "feedback-error2": "Greška: uređivanje nije uspelo",
        "feedback-error3": "Greška: nema odgovora od API-ja",
        "feedback-termsofuse": "Prihvatam da pošaljem povratne informacije u skladu sa uslovima korišćenja.",
        "feedback-thanks": "Hvala! Vaša povratna informacija je postavljena na stranicu „[$2 $1]“.",
        "feedback-thanks-title": "Hvala vam!",
+       "feedback-useragent": "Korisnički agent:",
        "searchsuggest-search": "Pretraga",
        "searchsuggest-containing": "sadrži...",
        "api-error-badtoken": "Unutrašnja greška: neispravan žeton.",
        "api-error-emptypage": "Stvaranje novih praznih stranica nije dozvoljeno.",
        "api-error-publishfailed": "Unutrašnja greška: server nije uspeo da objavi privremenu datoteku.",
        "api-error-stashfailed": "Unutrašnja greška: server ne može da sačuva privremenu datoteku.",
-       "api-error-unknown-warning": "Nepoznato upozorenje: $1",
+       "api-error-unknown-warning": "Nepoznato upozorenje: „$1”.",
        "api-error-unknownerror": "Nepoznata greška: „$1“.",
        "duration-seconds": "$1 {{PLURAL:$1|sekund|sekunda|sekundi}}",
        "duration-minutes": "$1 {{PLURAL:$1|minut|minuta|minuta}}",
        "limitreport-expensivefunctioncount": "Broj „skupih” funkcija analizatora",
        "limitreport-unstrip-depth": "Unstrip dubina rekurzije",
        "limitreport-unstrip-size": "Unstrip veličina nakon proširenja",
+       "limitreport-unstrip-size-value": "$1/$2 {{PLURAL:$2|bajt|bajta|bajtova}}",
        "expandtemplates": "Zamena šablona",
-       "expand_templates_intro": "Ova posebna stranica uzima tekst i menja sve šablone u njemu rekurzivno.\nTakođe menja funkcije parsera kao što je <code><nowiki>{{</nowiki>#language:…}}</code> i promenljive kao što je <code><nowiki>{{</nowiki>CURRENTDAY}}</code>.\nZapravo praktično sve što se nalazi između vitičastih zagrada.",
+       "expand_templates_intro": "Ova posebna stranica uzima vikitekst i menja sve šablone u njemu rekurzivno.\nTakođe menja funkcije parsera kao što je <code><nowiki>{{</nowiki>#language:…}}</code> i promenljive kao što je <code><nowiki>{{</nowiki>CURRENTDAY}}</code>. \nZapravo praktično sve što se nalazi između vitičastih zagrada.",
        "expand_templates_title": "Naziv konteksta; za {{STRANICA}} itd.:",
-       "expand_templates_input": "Unos:",
+       "expand_templates_input": "Unos vikiteksta:",
        "expand_templates_output": "Rezultat",
        "expand_templates_xml_output": "XML izlaz",
        "expand_templates_html_output": "Sirov HTML izlaz",
        "expand_templates_generate_xml": "Prikaži XML stablo",
        "expand_templates_generate_rawhtml": "Prikaži sirov HTML",
        "expand_templates_preview": "Pretpregled",
+       "pagelanguage": "Promeni jezik stranice",
        "pagelang-name": "Stranica",
        "pagelang-language": "Jezik",
+       "pagelang-use-default": "Koristi podrazumevani jezik",
        "pagelang-select-lang": "Izaberi jezik",
+       "pagelang-reason": "Razlog",
        "pagelang-submit": "Pošalji",
+       "pagelang-nonexistent-page": "Stranica $1 ne postoji.",
+       "pagelang-unchanged-language": "Stranica $1  je već postavljena na jezik $2.",
+       "pagelang-db-failed": "Baza podataka nije uspela promeniti jezik stranice.",
        "right-pagelang": "menjanje jezika stranice",
        "action-pagelang": "promenu jezika stranice",
+       "log-name-pagelang": "Dnevnik promene jezika",
+       "log-description-pagelang": "Ovo je dnevnik izmena u jezicima stranica.",
        "logentry-pagelang-pagelang": "$1 je {{GENDER:$2|promenio|promenila}} jezik stranice $3 iz $4 u $5.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (omogućena)",
        "mediastatistics": "Statistika datoteka",
        "mediastatistics-summary": "Statistike o tipovima poslatih datoteka. Ovde su uračunate samo najnovije verzije datoteka. Stare ili obrisane verzije nisu uračunate.",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 bajt|$1 bajta|$1 bajtova}} ($2; $3%)",
+       "mediastatistics-bytespertype": "Ukupna veličina datoteke ovog odeljka: {{PLURAL:$1|$1 bajt|$1 bajta|$1 bajtova}} ($2; $3%).",
+       "mediastatistics-allbytes": "Ukupna veličina svih datoteka: {{PLURAL:$1|$1 bajt|$1 bajta|$1 bajtova}} ($2).",
        "mediastatistics-table-mimetype": "MIME tip",
        "mediastatistics-table-extensions": "Moguće ekstenzije",
        "mediastatistics-table-count": "Broj datoteka",
        "mediastatistics-header-executable": "Izvršne",
        "mediastatistics-header-archive": "Kompresovane",
        "mediastatistics-header-total": "Sve datoteke",
+       "json-warn-trailing-comma": "$1 {{PLURAL:$1|prateća tačka je uklonjena|prateće tačke su uklonjene|pratećih tački je uklonjeno}} iz JSON-a",
+       "json-error-unknown": "Dogodio se problem s JSON-om. Greška: $1",
+       "json-error-depth": "Prekoračena je najveća dubina",
+       "json-error-state-mismatch": "Nevalidan ili pokvareni JSON",
+       "json-error-ctrl-char": "Greška kontrolnog simbola, moguće je da je neispravno enkodiran",
        "json-error-syntax": "Greška u sintaksi",
+       "json-error-utf8": "Malformirani UTF-8 znaci, moguće je da su neispravno enkodirani",
+       "json-error-recursion": "Jedna ili više rekurzivnih referenci u vrednosti koju treba enkodirati.",
+       "json-error-inf-or-nan": "Jedna ili više NAN ili INF vrednosti u vrednosti koju treba enkodirati",
+       "json-error-unsupported-type": "Data je vrednos vrste koja se ne može enkodirati",
        "headline-anchor-title": "Veza do ovog odeljka",
        "special-characters-group-latin": "Latinica",
        "special-characters-group-latinextended": "Proširena latinica",
        "special-characters-group-thai": "Tajlandski",
        "special-characters-group-lao": "Laoski",
        "special-characters-group-khmer": "Kmerski",
+       "special-characters-group-canadianaboriginal": "Kanadski aboridžinski",
+       "special-characters-title-endash": "crtica",
+       "special-characters-title-emdash": "duga crtica",
+       "special-characters-title-minus": "minus",
        "mw-widgets-dateinput-no-date": "Datum nije izabran",
        "mw-widgets-dateinput-placeholder-day": "GGGG-MM-DD",
        "mw-widgets-dateinput-placeholder-month": "GGGG-MM",
+       "mw-widgets-mediasearch-input-placeholder": "Pretražite datoteke",
+       "mw-widgets-mediasearch-noresults": "Nema rezultata.",
        "mw-widgets-titleinput-description-new-page": "stranica još uvek ne postoji",
        "mw-widgets-titleinput-description-redirect": "preusmerava na $1",
+       "mw-widgets-categoryselector-add-category-placeholder": "Dodaj kategoriju...",
        "mw-widgets-usersmultiselect-placeholder": "Dodaj još...",
+       "date-range-from": "Od datuma:",
+       "date-range-to": "Do datuma:",
+       "sessionprovider-generic": "$1 sesije",
+       "sessionprovider-mediawiki-session-cookiesessionprovider": "sesije sa kolačićima",
+       "sessionprovider-nocookies": "Kolačići su možda onemogućeni. Uverite se da su kolačići omogućeni i počnite ponovo.",
        "randomrootpage": "Slučajna korenska stranica",
+       "log-action-filter-block": "Tip blokiranja:",
+       "log-action-filter-contentmodel": "Tip promene modela sadržaja:",
+       "log-action-filter-delete": "Tip brisanja:",
+       "log-action-filter-import": "Tip uvoza:",
+       "log-action-filter-managetags": "Tip uređivanja oznaka:",
+       "log-action-filter-move": "Tip premeštanja:",
+       "log-action-filter-newusers": "Tip novog naloga:",
+       "log-action-filter-patrol": "Tip patroliranja:",
+       "log-action-filter-protect": "Tip zaključavanja:",
+       "log-action-filter-rights": "Tip promene korisničkih prava:",
+       "log-action-filter-suppress": "Vrsta skrivanja:",
+       "log-action-filter-upload": "Tip otpremanja:",
        "log-action-filter-all": "Sve",
+       "log-action-filter-block-block": "blokiranje",
+       "log-action-filter-block-reblock": "izmena blokiranja",
+       "log-action-filter-block-unblock": "deblokiranje",
+       "log-action-filter-contentmodel-change": "Izmena modela sadržaja",
+       "log-action-filter-contentmodel-new": "Nova stranica s nestandardnim modelom sadržaja",
+       "log-action-filter-delete-delete": "brisanje stranice",
+       "log-action-filter-delete-delete_redir": "presnimavanje preusmerenja",
+       "log-action-filter-delete-restore": "vraćanje stranice",
+       "log-action-filter-delete-event": "brisanje unosa u dnevnicima",
+       "log-action-filter-delete-revision": "brisanje izmene",
+       "log-action-filter-import-interwiki": "Međuviki uvoz",
+       "log-action-filter-import-upload": "Uvoz postavljanjem XML-a",
+       "log-action-filter-managetags-create": "nova oznaka",
+       "log-action-filter-managetags-delete": "brisanje oznake",
+       "log-action-filter-managetags-activate": "aktiviranje oznake",
+       "log-action-filter-managetags-deactivate": "deaktiviranje oznake",
+       "log-action-filter-move-move": "premeštanje bez presnimavanja preusmerenja",
        "log-action-filter-move-move_redir": "premeštanje sa presnimavanjem preusmerenja",
+       "log-action-filter-newusers-create": "otvorio anoniman korisnik",
+       "log-action-filter-newusers-create2": "otvorio registrovan korisnik",
+       "log-action-filter-newusers-autocreate": "automatski otvoren",
+       "log-action-filter-patrol-patrol": "ručno",
+       "log-action-filter-patrol-autopatrol": "automatsko",
+       "log-action-filter-protect-protect": "zaključavanje",
+       "log-action-filter-protect-modify": "izmena zaključavanja",
+       "log-action-filter-protect-unprotect": "uklanjanje zaključavanja",
        "log-action-filter-protect-move_prot": "premeštanje zaštite",
+       "log-action-filter-rights-rights": "ručno",
+       "log-action-filter-rights-autopromote": "automatski",
+       "log-action-filter-suppress-event": "Skrivanje unosa u dnevniku",
+       "log-action-filter-suppress-revision": "Skrivanje izmene",
+       "log-action-filter-suppress-delete": "Skrivanje stranice",
+       "log-action-filter-suppress-block": "Skrivanje korisnika blokiranjem",
+       "log-action-filter-suppress-reblock": "Skrivanje korisnika ponovnim blokiranjem",
        "log-action-filter-upload-upload": "novo otpremanje",
+       "log-action-filter-upload-overwrite": "promena postojećeg",
+       "authmanager-authn-not-in-progress": "Autentifikacija nije u toku ili je došlo do gubitka podataka o sesiji. Počnite ispočetka.",
+       "authmanager-authn-no-primary": "Ne mogu da proverim pružene akreditive.",
+       "authmanager-authn-no-local-user": "Pruženi akreditivi nisu povezani ni sa jednim korisnikom na ovom vikiju.",
+       "authmanager-authn-no-local-user-link": "Pruženi su ispravni akreditivi, ali nisu povezani ni s jednim korisnikom na ovom vikiju. Prijavite se na neki drugi način ili napravite novi korisnički nalog, što će Vam dati mogućnost da povežete prethodne akreditive na novi nalog.",
+       "authmanager-authn-autocreate-failed": "Ne mogu da automatski napravim lokalni nalog: $1",
+       "authmanager-change-not-supported": "Ne mogu da promenim pružene akreditive jer ih ništa ne bi koristilo.",
+       "authmanager-create-disabled": "Onemogućeno pravljenje naloga.",
+       "authmanager-create-from-login": "Popunite polja da biste napravili nalog.",
+       "authmanager-create-not-in-progress": "Pravljenje naloga nije u toku ili su podaci o sesiji izgubljeni. Počnite ispočetka.",
+       "authmanager-create-no-primary": "Ne mogu da iskoristim pružene akreditive za pravljenje naloga.",
+       "authmanager-link-no-primary": "Ne mogu da iskoristim pružene akreditive za spajanje naloga.",
+       "authmanager-link-not-in-progress": "Spajanje naloga nije u toku ili je došlo do gubitka podataka o sesiji. Počnite ispočetka.",
+       "authmanager-authplugin-setpass-failed-title": "Neuspešna promena lozinke",
+       "authmanager-authplugin-setpass-failed-message": "Dodatak za autentifikaciju je odbio promenu lozinke.",
+       "authmanager-authplugin-create-fail": "Dodatak za autentifikaciju je odbio pravljenje naloga.",
+       "authmanager-authplugin-setpass-denied": "Dodatak za autentifikaciju ne dozvoljava menjanje loziku.",
+       "authmanager-authplugin-setpass-bad-domain": "Neispravan domen.",
+       "authmanager-autocreate-noperm": "Automatsko pravljenje naloga nije dozvoljeno.",
+       "authmanager-userdoesnotexist": "Korisnički nalog „$1“ nije otvoren.",
+       "authmanager-username-help": "Korisničko ime za autentifikaciju.",
+       "authmanager-password-help": "Lozinka za autentifikaciju.",
+       "authmanager-domain-help": "Domen za spoljašnju autentifikaciju.",
+       "authmanager-retype-help": "Ponovite lozinku da bi ste potvrdili.",
        "authmanager-email-label": "Imejl",
        "authmanager-email-help": "Imejl adresa",
-       "changecredentials": "Promjena akreditiva",
+       "authmanager-realname-label": "Pravo ime",
+       "authmanager-realname-help": "Pravo ime korisnika",
+       "authmanager-provider-password": "Autentifikacija lozinkom",
+       "authmanager-provider-password-domain": "Autentifikacija lozinkom i domenom",
+       "authmanager-provider-temporarypassword": "Privremena lozinka",
+       "authprovider-confirmlink-option": "$1 ($2)",
+       "authprovider-confirmlink-request-label": "Računi koji se trebaju povezati",
+       "authprovider-confirmlink-success-line": "$1: Uspešno povezano.",
+       "authprovider-confirmlink-failed": "Ne mogu da povežem nalog u potpunosti: $1",
+       "authprovider-confirmlink-ok-help": "Nastavite nakon prikazivanja poruka za neuspešno povezivanje.",
+       "authprovider-resetpass-skip-label": "Preskoči",
+       "authprovider-resetpass-skip-help": "Preskočite resetovanje lozinke.",
+       "authform-nosession-login": "Autentifikacija je uspela, ali Vaš pregledač ne može da „zapamti” da ste prijavljeni.\n\n$1",
+       "authform-nosession-signup": "Nalog je napravljen, ali Vaš pregledač ne može da „zapamti” da ste prijavljeni.\n\n$1",
+       "authform-newtoken": "Nedostaje žeton. $1",
+       "authform-notoken": "Nedostaje žeton",
+       "authform-wrongtoken": "Pogrešan žeton",
+       "specialpage-securitylevel-not-allowed-title": "Nije dozvoljeno",
+       "specialpage-securitylevel-not-allowed": "Žao nam je, nije Vam dozvoljeno da koristite ovu stranicu jer ne mogu da potvrdim Vaš identitet.",
+       "authpage-cannot-login": "Ne mogu započeti prijavu.",
+       "authpage-cannot-login-continue": "Ne mogu da nastavim prijavljivanje. Vaša sesija je najverovatnije istekla.",
+       "authpage-cannot-create": "Ne mogu započeti stvaranje naloga.",
+       "authpage-cannot-link": "Ne mogu započeti spajanje naloga.",
+       "cannotauth-not-allowed-title": "Pristup je odbijen",
+       "cannotauth-not-allowed": "Nije Vam dozvoljeno da koristite ovu stranicu",
+       "changecredentials": "Promena akreditiva",
+       "changecredentials-submit": "Promeni",
+       "changecredentials-invalidsubpage": "„$1“ nije ispravna vrsta akreditiva.",
+       "changecredentials-success": "Vaši akreditivi su promenjeni.",
        "removecredentials": "Uklanjanje akreditiva",
-       "gotointerwiki-external": "Upravo ćete da napustite projekat {{SITENAME}} da biste na zasebnom veb-sajtu posetili [[$2]].\n\n'''[$1 Produži na $1]'''"
+       "removecredentials-submit": "Uklanjanje akreditiva",
+       "removecredentials-invalidsubpage": "„$1“ nije ispravna vrsta akreditiva.",
+       "removecredentials-success": "Vaši akreditivi su uklonjeni.",
+       "credentialsform-provider": "Vrsta akreditiva:",
+       "credentialsform-account": "Naziv naloga:",
+       "cannotlink-no-provider-title": "Nema naloga za povezivanje",
+       "cannotlink-no-provider": "Nema naloga za povezivanje.",
+       "linkaccounts": "Poveži naloge",
+       "linkaccounts-success-text": "Nalog je povezan.",
+       "linkaccounts-submit": "Poveži naloge",
+       "unlinkaccounts": "Objedini naloge",
+       "unlinkaccounts-success": "Nalog je objedinjen.",
+       "userjsispublic": "Napomena: JavaScript podstranice ne bi trebale sadržavati poverljive informacije budući da su vidljive drugim korisnicima.",
+       "usercssispublic": "Napomena: CSS podstranice ne bi trebale sadržavati poverljive informacije budući da su vidljive drugim korisnicima.",
+       "restrictionsfield-badip": "Neispravna IP adresa ili opseg: $1",
+       "restrictionsfield-label": "Dozvoljeni IP-opsezi:",
+       "edit-error-short": "Greška: $1",
+       "edit-error-long": "Greške:\n\n$1",
+       "revid": "izmena $1",
+       "pageid": "ID stranice: $1",
+       "rawhtml-notallowed": "&lt;html&gt; tagovi ne mogu da se koriste van normalnih stranica.",
+       "gotointerwiki": "Napuštam projekat {{SITENAME}}",
+       "gotointerwiki-invalid": "Odabrani naslov je nevalidan.",
+       "gotointerwiki-external": "Upravo ćete da napustite projekat {{SITENAME}} da biste na zasebnom veb-sajtu posetili [[$2]].\n\n'''[$1 Produži na $1]'''",
+       "undelete-cantedit": "Ne možete povratiti ovu stranicu jer nemate dozvolu da je uređujete.",
+       "undelete-cantcreate": "Ne možete povratiti ovu stranicu jer nema postojeće stranice sa ovim imenom i nemate dozvolu da napravite ovu stranicu.",
+       "pagedata-title": "Podaci stranice",
+       "pagedata-not-acceptable": "Nije pronađen odgovarajući oblik. Podržane MIME-vrste: $1",
+       "pagedata-bad-title": "Nevalidan naslov: $1."
 }
index 726da33..9185b78 100644 (file)
        "speciallogtitlelabel": "Mål (titel eller {{ns:user}}:användarnamn för användare):",
        "log": "Loggar",
        "logeventslist-submit": "Visa",
+       "logeventslist-more-filters": "Fler filter:",
+       "logeventslist-patrol-log": "Patrulleringslogg",
+       "logeventslist-tag-log": "Märkeslogg",
        "all-logs-page": "Alla offentliga loggar",
        "alllogstext": "Kombinerad visning av alla tillgängliga loggar för {{SITENAME}}.\nDu kan avgränsa sökningen och få färre träffar genom att ange typ av logg, användarnamn (skiftlägeskänsligt), eller berörd sida (också skiftlägeskänsligt).",
        "logempty": "Inga matchande träffar i loggen.",
        "uctop": "(senaste)",
        "month": "Från månad (och tidigare):",
        "year": "Från år (och tidigare):",
+       "date": "Från datum (och tidigare):",
        "sp-contributions-newbies": "Visa endast bidrag från nya konton",
        "sp-contributions-newbies-sub": "Från nya konton",
        "sp-contributions-newbies-title": "Bidrag från nya konton",
index 52ad568..4b2080c 100644 (file)
        "speciallogtitlelabel": "Hedef (başlık ya da kullanıcı için {{ns:user}}:kullanıcıadı):",
        "log": "Günlükler",
        "logeventslist-submit": "Göster",
+       "logeventslist-more-filters": "Daha fazla süzgeç:",
        "all-logs-page": "Tüm genel günlükler",
        "alllogstext": "{{SITENAME}} için mevcut tüm günlüklerin birleşik gösterimi.\nGünlük tipini, kullanıcı adını (büyük-küçük harf duyarlı), ya da etkilenen sayfayı (yine büyük-küçük harf duyarlı) seçerek görünümü daraltabilirsiniz.",
        "logempty": "Kayıtlarda eşleşen bilgi yok.",
        "uctop": "(son)",
        "month": "Bu aya kadar (ve önceki aylar):",
        "year": "Bu yıla kadar (ve önceki yıllar):",
+       "date": "Şu tarihe kadar:",
        "sp-contributions-newbies": "Sadece yeni kullanıcıların katkılarını göster",
        "sp-contributions-newbies-sub": "Yeni kullanıcılar için",
        "sp-contributions-newbies-title": "Yeni hesaplar için kullanıcı katkıları",
index c181d27..e6fe0f2 100644 (file)
        "speciallogtitlelabel": "Ціль (назва сторінки або {{ns:user}}:Ім'я_користувача):",
        "log": "Журнали",
        "logeventslist-submit": "Показати",
+       "logeventslist-more-filters": "Більше фільтрів:",
+       "logeventslist-patrol-log": "Журнал патрулювання",
+       "logeventslist-tag-log": "Журнал міток",
        "all-logs-page": "Усі публічні журнали",
        "alllogstext": "Комбінований показ журналів {{grammar:genitive|{{SITENAME}}}}.\nВи можете відфільтрувати результати за типом журналу, іменем користувача (враховується регістр) або зазначеною сторінкою (також враховується регістр).",
        "logempty": "У журналі немає подібних записів.",
        "uctop": "(поточна)",
        "month": "До місяця (включно):",
        "year": "До року (включно):",
+       "date": "З дати (і раніше):",
        "sp-contributions-newbies": "Показати лише внесок з нових облікових записів",
        "sp-contributions-newbies-sub": "Внесок новачків",
        "sp-contributions-newbies-title": "Внесок з нових облікових записів",
index f84bf57..09f4088 100644 (file)
        "jumptonavigation": "رہنمائی",
        "jumptosearch": "تلاش کریں",
        "view-pool-error": "معذرت کے ساتھ، تمام معیلات پر اِس وقت اِضافی بوجھ ہے.\nبہت زیادہ صارفین اِس وقت یہ صفحہ ملاحظہ کرنے کی کوشش کررہے ہیں.\nبرائے مہربانی! صفحہ دیکھنے کیلئے دوبارہ کوشش کرنے سے پہلے ذرا انتظار فرمالیجئے.\n\n$1",
-       "generic-pool-error": "ہم معذرت خواہ ہیں! معیلات (سرورز) پر اِس وقت اِضافی بوجھ ہے.\nصارفین کی کثیر تعداد اِس وقت یہی صفحہ ملاحظہ کرنے کی کوشش کررہی ہے.\nبرائے مہربانی!دوبارہ کوشش کرنے سے پہلے ذرا انتظار فرمائیے.",
+       "generic-pool-error": "ہم معذرت خواہ ہیں، سرور پر اِس وقت اِضافی بوجھ ہے۔\nصارفین کی کثیر تعداد اِس وقت یہی صفحہ ملاحظہ کرنے کی کوشش کر رہی ہے۔\nبرائے مہربانی دوبارہ کوشش کرنے سے پہلے ذرا انتظار فرمائیے۔",
        "pool-timeout": "مقفل کرنے کے لیے انتظار کی مہلت ختم",
        "pool-queuefull": "قطار لگی ہوئی ہے",
        "pool-errorunknown": "نامعلوم خطا",
        "perfcachedts": "ذیل میں درج معلومات کیش (cache) شدہ ہے اور آخری بار اس کی تجدید $1 کو کی گئی تھی۔ کیش (cache) میں زیادہ سے زیادہ {{PLURAL:$4|ایک نتیجہ دستیاب ہے|$4 دستیاب ہیں}}۔",
        "querypage-no-updates": "اِس صفحہ کیلئے بتاریخات فی الحال ناقابل بنائی گئی ہیں.\nیہاں کا ڈیٹا ابھی تازہ نہیں کیا جائے گا.",
        "viewsource": "ماخذ دیکھیں",
-       "viewsource-title": "$1 کا مسودہ دیکھیں",
+       "viewsource-title": "$1 کا مسودہ",
        "actionthrottled": "Action throttled",
        "actionthrottledtext": "ایک ضد سپم معیار کے طور پر آپ کے لیے مختصر وقت میں متعدد دفعہ یہ اقدام کرنے کے لیے حد متعین کی گئی ہے، اور آپ یہ حد پار کرچکے ہیں.\nبراہِ کرم، کچھ منٹس بعد دوبارہ کوشش کریں۔",
        "protectedpagetext": "اس صفحہ کو تدوین سے محفوظ رکھنے کیلیے مقفل کر دیا گیا ہے۔",
        "viewsourcetext": "آپ صرف مسودہ دیکھ سکتے ہیں اور اسکی نقل اتار سکتے ہیں۔",
        "viewyourtext": "آپ اس مواد کو دیکھ سکتے ہیں اور اٹھا (کاپی) سکتے ہیں <strong>آپ کی ترامیم</strong> اس صفحہ پر۔",
-       "protectedinterface": "یہ صفحہ سافٹ ویئر کا انٹرفیس متن فراہم کرتا ہے اور غلط استعمال سے بچنے کے لیے اسے محفوظ رکھا گیا ہے۔\nتمام ویکیوں میں ترجمہ شامل کرنے یا اس میں تبدیلی کرنے کے لیے میڈیاویکی دار الترجمہ [https://translatewiki.net/ translatewiki.net]کو استعمال کریں۔",
+       "protectedinterface": "یہ صفحہ سافٹ ویئر کا انٹرفیس متن فراہم کرتا ہے اور غلط استعمال سے بچنے کے لیے اسے محفوظ رکھا گیا ہے۔\nتمام ویکیوں میں ترجمہ شامل کرنے یا اس میں تبدیلی کرنے کے لیے میڈیاویکی دار الترجمہ [https://translatewiki.net/ translatewiki.net] کو استعمال کریں۔",
        "editinginterface": "<strong>انتباہ:</strong> آپ ایک ایسے صفحے میں ترمیم کر رہے ہیں جو سافٹ ویئر کا انٹرفیس متن فراہم کرتا ہے۔ اس صفحہ میں کی جانے والی ترمیم، دیگر صارفین کے انٹرفیس کو تبدیل کردے گی۔",
        "translateinterface": "تمام ویکیوں میں تراجم کو تبدیل یا شامل کرنے کے لیے  میڈیاویکی کے دار الترجمہ [https://translatewiki.net/ translatewiki.net] کو استعمال کریں۔",
        "cascadeprotected": "درج ذیل محفوظ کردہ {{PLURAL:$1|صفحہ|صفحات}} کی «آبشاری» حفاظت میں شامل ہونے کی وجہ سے یہ صفحہ بھی محفوظ ہے:\n$2",
        "wrongpasswordempty": "کلمۂ شناخت ندارد۔ دوبارہ کوشش کریں۔",
        "passwordtooshort": "آپکا منتخب کردہ پارلفظ مختصر ہے. پارلفظ کم از کم {{PLURAL:$1|1 محرف|$1 محارف}} ہونا چاہئے.",
        "passwordtoolong": "خفیہ رمز (پاس ورڈ) {{PLURAL:$1|1 حرف|$1 حروف}} سے زیادہ طویل نہیں ہو سکتا۔",
-       "passwordtoopopular": "عام طور پر چنا جانے والا خفیہ رمز (پاسورڈ) استعمال نہیں کیا جا سکتا۔ براہ مہربانی آپ کوئی الگ خفیہ رمز استعمال کریں، تا کہ آپ کا کھاتہ محفوظ رہے۔",
+       "passwordtoopopular": "متداول پاس ورڈ استعمال نہیں کیا جا سکتا۔ براہ مہربانی آپ کوئی منفرد پاس ورڈ استعمال کریں تاکہ آپ کا کھاتہ محفوظ رہے۔",
        "password-name-match": "آپکا پارلفظ آپکے اسمِ صارف سے مختلف ہونا چاہئے.",
        "password-login-forbidden": "اس صارف نام یا کلمۂ شناخت (پاسورڈ) کا استعمال ممنوع ہے",
        "mailmypassword": "پاسورڈ تبدیل کریں",
        "passwordremindertitle": "نیا عارضی کلمۂ شناخت برائے {{SITENAME}}",
-       "passwordremindertext": "(IP Ù¾ØªÛ\81 $1 Ø³Û\92) Ú©Ø³Û\8c (Û\8cا Ø´Ø§Û\8cد Ø¢Ù¾) Ù\86Û\92 {{SITENAME}} ($4)\nÚ©Û\8cÙ\84ئÛ\92 Ù\86ئÛ\8c Ú©Ù\84Ù\85Û\82 Ø´Ù\86اخت Ú©Û\8cÙ\84ئÛ\92 Ø§Ù\84تÙ\85اس Ú©Û\8cا. Ø§Û\8cÚ© Ø¹Ø§Ø±Ø¶Û\8c Ú©Ù\84Ù\85Û\82 Ø´Ù\86اخت \"$3\"\nبرائÛ\92 ØµØ§Ø±Ù\81 \"$2\" ØªØ®Ù\84Û\8cÙ\82 Ú©Û\8cا Ú¯Û\8cا Û\81Û\92. Ø§Ú¯Ø± Û\8cÛ\81 Ø¢Ù¾ Ú©Ø§ Ø§Ø±Ø§Ø¯Û\81 ØªÚ¾Ø§Ø\8c ØªÙ\88 Ø¢Ù¾\nÚ©Ù\88 Ú\86اÛ\81ئÛ\92 Ú©Û\81 Ø¯Ø§Ø®Ù\84Ù\90 Ù\86Ù\88شتÛ\81 Û\81Ù\88Ù\86Û\92 Ú©Û\92 Ø¨Ø¹Ø¯ Ù\86ئÛ\92 Ú©Ù\84Ù\85Û\82 Ø´Ù\86اخت Ú©Ø§ Ø§Ù\86تخاب Ú©Ø±Û\8cÚº.\nآپ Ú©Ø§ Ú©Ù\84Ù\85Û\82 Ø´Ù\86اخت {{PLURAL:$5|اÛ\8cÚ© Ø¯Ù\90Ù\86|$5 Ø¯Ù\90Ù\86}} Ú©Û\92 Ø¨Ø¹Ø¯ Ù\86اکارÛ\81 Û\81Ù\88جائÛ\92 Ú¯Ø§.\n\nاگر Ú©Ø³Û\8c Ø§Ù\8eÙ\88ر Ù\86Û\92 Û\8cÛ\81 Ø§Ù\84تÙ\85اس Ú©Û\8cا Û\81Û\92Ø\8c Û\8cا Ø¢Ù¾ Ú©Ù\88 Ø§Ù¾Ù\86ا Ú©Ù\84Ù\85Û\82 Ø´Ù\86اخت Û\8cاد Ø¢Ú¯Û\8cا Û\81Û\92Ø\8c\nاÙ\88ر Ø¢Ù¾ Ø§Ø³Û\92 ØªØ¨Ø¯Û\8cÙ\84 Ù\86Û\81Û\8cÚº Ú©Ø±Ù\86ا Ú\86اÛ\81تÛ\92Ø\8c ØªÙ\88 Ø¢Ù¾ Û\8cÛ\81 Ù¾Û\8cغاÙ\85 Ù\86ظر Ø§Ù\86داز Ú©Ø±Ø³Ú©ØªÛ\92 Û\81Û\8cÚº Ø§Ù\88ر\nآپÙ\86ا Ù¾Ù\8fراÙ\86ا Ú©Ù\84Ù\85Û\82 Ø´Ù\86اخت Ú©Ø§ Ø§Ø³ØªØ¹Ù\85اÙ\84 Ø¬Ø§Ø±Û\8c Ø±Ú©Ú¾ Ø³Ú©ØªÛ\92 Û\81Û\8cÚº.",
+       "passwordremindertext": "(IP Ù¾ØªÛ\81 $1 Ø³Û\92) Ú©Ø³Û\8c (Û\8cا Ø´Ø§Û\8cد Ø¢Ù¾) Ù\86Û\92 {{SITENAME}} ($4)\nÚ©Û\92 Ù\84Û\8cÛ\92 Ù\86ئÛ\92 Ù¾Ø§Ø³ Ù\88رÚ\88 Ú©Û\8c Ø¯Ø±Ø®Ù\88است Ú©Û\8c Û\81Û\92Û\94 Ù\84Û\81ذا ØµØ§Ø±Ù\81 \"$2\" Ú©Û\92 Ù\84Û\8cÛ\92 Ø§Û\8cÚ© Ø¹Ø§Ø±Ø¶Û\8c Ù¾Ø§Ø³ Ù\88رÚ\88 \"$3\" Ø¨Ù\86ا Ø¯Û\8cا Ú¯Û\8cا Û\81Û\92Û\94\nاگر Û\8cÛ\81 Ø§Ù\82داÙ\85 Ø¨Ø§Ù\84ارادÛ\81 ØªÚ¾Ø§ ØªÙ\88 Ø§Ø¨ Ø¢Ù¾ Ù\84اگ Ø§Ù\86 Û\81Ù\88Ù\86Û\92 Ú©Û\92 Ø¨Ø¹Ø¯ Ù\86Û\8cا Ù¾Ø§Ø³ Ù\88رÚ\88 Ø±Ú©Ú¾Û\8cÚºÛ\94\nآپ Ú©Ø§ Ø¯Ø±Ø¬ Ø¨Ø§Ù\84ا Ø¹Ø§Ø±Ø¶Û\8c Ù¾Ø§Ø³ Ù\88رÚ\88 {{PLURAL:$5|اÛ\8cÚ© Ø¯Ù\90Ù\86|$5 Ø¯Ù\90Ù\86Ù\88Úº}} Ú©Û\92 Ø¨Ø¹Ø¯ Ù\86اکارÛ\81 Û\81Ù\88جائÛ\92 Ú¯Ø§Û\94\n\nاگر Ú©Ø³Û\8c Ø§Ù\8eÙ\88ر Ù\86Û\92 Û\8cÛ\81 Ø¯Ø±Ø®Ù\88است Ú©Û\8c Û\81Û\92Ø\8c Û\8cا Ø¢Ù¾ Ú©Ù\88 Ø§Ù¾Ù\86ا Ù¾Ø§Ø³ Ù\88رÚ\88 Û\8cاد Ø¢Ú¯Û\8cا Û\81Û\92 Ø§Ù\88ر Ø¢Ù¾ Ø§Ø³Û\92 ØªØ¨Ø¯Û\8cÙ\84 Ù\86Û\81Û\8cÚº Ú©Ø±Ù\86ا Ú\86اÛ\81تÛ\92 ØªÙ\88 Ø¢Ù¾ Û\8cÛ\81 Ù¾Û\8cغاÙ\85 Ù\86ظر Ø§Ù\86داز Ú©Ø±Ú©Û\92 Ø§Ù¾Ù\86Û\92 Ù¾Ø±Ø§Ù\86Û\92 Ù¾Ø§Ø³ Ù\88رÚ\88 Ú©Ø§ Ø§Ø³ØªØ¹Ù\85اÙ\84 Ø¬Ø§Ø±Û\8c Ø±Ú©Ú¾ Ø³Ú©ØªÛ\92 Û\81Û\8cÚºÛ\94",
        "noemail": "صارف \"$1\" کیلئے کوئی برقی پتہ درج نہیں کیا گیا.",
        "noemailcreate": "صحیح برقی پتہ مہیّا کریں",
        "passwordsent": "ایک نیا کلمۂ شناخت \"$1\" کے نام سے بننے والی برقی ڈاک کے پتے کیلیے بھیج دیا گیا ہے۔\nجب وہ موصول ہو جاۓ تو براہ کرم اسکے ذریعے دوبارہ داخل ہوں۔",
        "botpasswords-existing": "روبہ کے موجودہ پاس ورڈ",
        "botpasswords-createnew": "روبہ کا نیا پاس ورڈ بنائیں",
        "botpasswords-editexisting": "روبہ کے موجودہ پاس ورڈ میں ترمیم کریں",
+       "botpasswords-label-needsreset": "(پاسورڈ کی ترتیب نو درکار ہے)",
        "botpasswords-label-appid": "روبہ کا نام:",
        "botpasswords-label-create": "تخلیق کریں",
        "botpasswords-label-update": "تجدید کریں",
        "resetpass-submit-loggedin": "پارلفظ کی تبدیلی",
        "resetpass-submit-cancel": "منسوخ",
        "resetpass-wrong-oldpass": "عارضی یا موجودہ پاس ورڈ نادرست ہے۔\nشاید آپ نے پہلے ہی اپنا پاس ورڈ تبدیل کر لیا ہے یا نئے عارضی پاس ورڈ کی درخواست کر چکے ہیں۔",
-       "resetpass-recycled": "براہ کرم اپنے موجودہ کلمۂ شناخت (پاسورڈ) سے مختلف کلمۂ شناخت سے بازترتیب (ری‌سیٹ) کریں",
+       "resetpass-recycled": "براہ کرم اپنے موجودہ پاس ورڈ سے مختلف پاس ورڈ رکھیں۔",
        "resetpass-temp-emailed": "آپ عارضی برقی خط سے بھیجے گئے کوڈ سے لاگ ان ہیں\nمکمل طور پر لاگ ان ہونے کے لیے آپ کو نیا پاسورڈ سیٹ کرنا پڑے گا",
        "resetpass-temp-password": "عارضی پارلفظ:",
        "resetpass-abort-generic": "کسی توسیع نے پاس ورڈ کی تبدیلی کو منسوخ کر دیا ہے۔",
        "resetpass-expired": "آپ کے پاس ورد کی مدت ختم ہو چکی ہے۔ داخل ہونے کے لیے براہ کرم نیا پاس ورڈ بنائیں۔",
-       "resetpass-expired-soft": "آپ کے پاس ورڈ کی مدت ختم ہو چکی ہے، لہذا اسے دوبارہ بنانے کی ضرورت ہے۔\nبراہ کرم نیا پاس ورڈ بنائیں، تاہم اگر مستقبل میں اس کی ترتیب نو مقصود ہو تو «{{int:authprovider-resetpass-skip-label}}» پر کلک کریں۔",
-       "resetpass-validity-soft": "آپ کا پاس ورڈ درست نہیں: $1\n\nبراہ کرم نیا پاس ورڈ بنائیں، تاہم اگر مستقبل میں اس کی ترتیب نو مقصود ہو تو «{{int:authprovider-resetpass-skip-label}}» پر کلک کریں۔",
+       "resetpass-expired-soft": "آپ کے پاس ورڈ کی مدت ختم ہو چکی ہے، لہذا اسے دوبارہ بنانے کی ضرورت ہے۔\nبراہ کرم نیا پاس ورڈ بنائیں یا اگر مستقبل میں اس کی ترتیب نو مقصود ہو تو «{{int:authprovider-resetpass-skip-label}}» پر کلک کریں۔",
+       "resetpass-validity-soft": "آپ کا پاس ورڈ درست نہیں: $1\n\nبراہ کرم نیا پاس ورڈ بنائیں یا اگر مستقبل میں اس کی ترتیب نو مقصود ہو تو «{{int:authprovider-resetpass-skip-label}}» پر کلک کریں۔",
        "passwordreset": "پاس ورڈ کی ترتیب نو",
        "passwordreset-text-one": "برقی خط کے ذریعہ عارضی پاس ورڈ حاصل کرنے کے لیے اس فارم کو پُر کریں۔",
        "passwordreset-text-many": "{{PLURAL:$1|برقی خط کے ذریعہ عارضی پاس ورڈ حاصل کرنے کے لیے کسی ایک خانے کو پُر کریں۔}}",
        "subject-preview": "عنوان/شہ سرخی کی نمائش:",
        "previewerrortext": "آپ کی تبدیلیوں کی نمائش دکھانے کے دوران میں کوئی نقص واقع ہو گیا ہے۔",
        "blockedtitle": "صارف مسدود ہے",
-       "blockedtext": "'''آپکا اسمِ صارف یا آئی پی پتہ پر پابندی ہے.'''\n\n$1 نے پابندی لگائی تھی.\nوجہ یہ بتائی گئی کہ ''$2''.\n\n* پابندی کی ابتداء : $8\n* پابندی کا اختتام : $6\n* Intended blockee: $7\n\nآپ $1 یا کسی دوسرے [[{{MediaWiki:Grouppage-sysop}}|منتظم]] سے رابطہ کرکے پابندی پر بات چیت کرسکتے ہیں.\nآپ ‘صارف کو برقی خط ارسال کریں’ کی خاصیت اُس وقت تک استعمال نہیں کرسکتے جب تک آپ اپنے [[Special:Preferences|کھاتہ کے ترجیحات]] میں صحیح برقی پتہ معیّن نہ کریں، اور آپ کو اِسے استعمال کرنے سے پابند نہیں کیا گیا ہے.\nآپکا موجودہ آئی پی پتہ $3 ہے، اور پابندی کی شناخت #$5 ہے.\nبراہِ مہربانی کسی بھی قسم کے استفسار میں درج بالا تمام تفاصیل شامل کریں.",
-       "autoblockedtext": "آپ کے آئی پی پتے پر خودکارانہ طریقہ سے پابندی لگا دی گئی ہے کیونکہ یہ دوسرے صارف نے استعمال کی تھی، جس پر $1 نے پابندی لگائی ہوئی ہے۔\nوجہ یہ بتائی گئی کہ:\n<em>$2</em>\n\n*پابندی کی ابتدا: $8\n*پابندی کا اختتام: $6\n*Intended blockee: $7\n\nآپ $1 سے یا دوسرے [[{{MediaWiki:Grouppage-sysop}}|منتظمین]] سے رابطہ کر کے پابندی پر بات چیت کرسکتے ہیں۔\n\nیاد رکھیں کہ ”صارف کو برقی خط ارسال کریں“ کی خاصیت اُس وقت تک استعمال نہیں کرسکتے جب تک آپ اپنے [[Special:Preferences|کھاتے کی ترجیحات]] میں صحیح برقی پتہ معیّن نہ کریں، اور آپ کو اِسے استعمال کرنے سے پابند نہیں کیا گیا ہے۔\nآپ کا موجودہ آئی پی پتہ $3 ہے، اور پابندی کی شناخت #$5 ہے۔\nبراہِ مہربانی کسی بھی قسم کے استفسار میں درج بالا تمام تفصیل شامل کریں۔",
-       "systemblockedtext": "آپ Ú©Û\92 Ø§Ø³Ù\85 ØµØ§Ø±Ù\81 Û\8cا Ø¢Ø¦Û\8c Ù¾Û\8c Ù¾ØªÛ\92 Ù¾Ø± Ù\85Û\8cÚ\88Û\8cاÙ\88Û\8cÚ©Û\8c Ú©Û\8c Ø¬Ø§Ù\86ب Ø³Û\92 Ø®Ù\88دکاراÙ\86Û\81 Ø·Ø±Û\8cÙ\82Û\92 Ø³Û\92 Ù¾Ø§Ø¨Ù\86دÛ\8c Ù\84گا Ø¯Û\8c Ú¯Ø¦Û\8c Û\81Û\92Û\94\nاÙ\88ر Ù\88جÛ\81 Û\8cÛ\81 Ø¨ØªØ§Ø¦Û\8c Ú¯Ø¦Û\8c Û\81Û\92 Ú©Û\81:\n<em>$2</em>\n\n*پابÙ\86دÛ\8c Ú©Û\8c Ø§Ø¨ØªØ¯Ø§: $8\n*پابÙ\86دÛ\8c Ú©Ø§ Ø§Ø®ØªØªØ§Ù\85: $6\n*Intended blockee: $7\n\nآپ Ú©Ø§ Ù\85Ù\88جÙ\88دÛ\81 Ø¢Ø¦Û\8c Ù¾Û\8c Ù¾ØªÛ\81 $3 Û\81Û\92Û\94\nبراÛ\81Ù\90 Ù\85Û\81رباÙ\86Û\8c Ú©Ø³Û\8c Ø¨Ú¾Û\8c Ù\82سÙ\85 Ú©Û\92 Ø§Ø³ØªÙ\81سار Ù\85Û\8cÚº Ø¯Ø±Ø¬ Ø¨Ø§Ù\84ا ØªÙ\85اÙ\85 ØªÙ\81صÛ\8cÙ\84 شامل کریں۔",
+       "blockedtext": "<strong>آپ کے صارف نام یا آئی پی پتہ پر پابندی لگائی جا چکی ہے۔</strong>\n\n$1 نے پابندی عائد کی اور یہ وجہ درج کی: <em>$2</em>\n\n* پابندی کی ابتدا : $8\n* پابندی کا اختتام : $6\n* ممنوع صارف: $7\n\nآپ $1 یا کسی دوسرے [[{{MediaWiki:Grouppage-sysop}}|منتظم]] سے رابطہ کر کے اس پابندی پر گفت و شنید کر سکتے ہیں۔\nواضح رہے کہ آپ «{{int:emailuser}}» کی سہولت اُس وقت تک استعمال نہیں کر سکتے جب تک آپ اپنے [[Special:Preferences|کھاتہ کی ترجیحات]] میں درست برقی پتا درج نہ کریں اور آپ کو اِسے استعمال کرنے سے روک نہ دیا گیا ہو۔\nآپ کا موجودہ آئی پی پتہ $3 ہے اور پابندی کا شناختی نمبر #$5 ہے۔\nاگر آپ پابندی سے متعلق کہیں استفسار کریں تو براہِ مہربانی اس میں درج بالا تمام تفصیلات شامل کریں۔",
+       "autoblockedtext": "آپ کے آئی پی پتے پر خودکار طور پر پابندی لگا دی گئی ہے کیونکہ اسے ایک ایسے صارف نے استعمال کیا تھا جس پر $1 نے پابندی لگا رکھی ہے۔\nپابندی کی وجہ یہ درج کی گئی:\n\n:<em>$2</em>\n\n*پابندی کی ابتدا: $8\n*پابندی کا اختتام: $6\n*ممنوع صارف: $7\n\nآپ $1 سے یا دوسرے [[{{MediaWiki:Grouppage-sysop}}|منتظمین]] سے رابطہ کر کے اس پابندی پر گفت و شنید کر سکتے ہیں۔\n\nیاد رکھیں کہ «{{int:emailuser}}» کی خاصیت اُس وقت تک استعمال نہیں کرسکتے جب تک آپ اپنے [[Special:Preferences|کھاتے کی ترجیحات]] میں صحیح برقی پتہ درج نہ کریں اور آپ کو اِسے استعمال کرنے سے روک نہ دیا گیا ہو۔\n\nآپ کا موجودہ آئی پی پتہ $3 ہے، اور پابندی کی شناخت #$5 ہے۔\nبراہِ مہربانی کسی بھی قسم کے استفسار میں درج بالا تمام تفصیلات شامل کریں۔",
+       "systemblockedtext": "آپ Ú©Û\92 ØµØ§Ø±Ù\81 Ù\86اÙ\85 Û\8cا Ø¢Ø¦Û\8c Ù¾Û\8c Ù¾ØªÛ\92 Ù¾Ø± Ù\85Û\8cÚ\88Û\8cاÙ\88Û\8cÚ©Û\8c Ú©Û\8c Ø¬Ø§Ù\86ب Ø³Û\92 Ø®Ù\88دکار Ø·Ø±Û\8cÙ\82Û\92 Ø³Û\92 Ù¾Ø§Ø¨Ù\86دÛ\8c Ù\84گا Ø¯Û\8c Ú¯Ø¦Û\8c Û\81Û\92Û\94\nاÙ\88ر Ù\88جÛ\81 Û\8cÛ\81 Ø¯Ø±Ø¬ Ú©Û\8c Ú¯Ø¦Û\8c Û\81Û\92 Ú©Û\81:\n<em>$2</em>\n\n*پابÙ\86دÛ\8c Ú©Û\8c Ø§Ø¨ØªØ¯Ø§: $8\n*پابÙ\86دÛ\8c Ú©Ø§ Ø§Ø®ØªØªØ§Ù\85: $6\n*Ù\85Ù\85Ù\86Ù\88ع ØµØ§Ø±Ù\81: $7\n\nآپ Ú©Ø§ Ù\85Ù\88جÙ\88دÛ\81 Ø¢Ø¦Û\8c Ù¾Û\8c Ù¾ØªÛ\81 $3 Û\81Û\92Û\94\nبراÛ\81Ù\90 Ù\85Û\81رباÙ\86Û\8c Ú©Ø³Û\8c Ø¨Ú¾Û\8c Ù\82سÙ\85 Ú©Û\92 Ø§Ø³ØªÙ\81سار Ù\85Û\8cÚº Ø¯Ø±Ø¬ Ø¨Ø§Ù\84ا ØªÙ\85اÙ\85 ØªÙ\81صÛ\8cÙ\84ات شامل کریں۔",
        "blockednoreason": "کوئی وجہ نہیں دی گئی",
        "whitelistedittext": "ترمیم کیلئے $1 ضروری ہے.",
        "confirmedittext": "صفحات میں ترمیم کرنے سے پہلے آپ اپنے برقی پتہ کی تصدیق کریں.\nبرائے مہربانی! اپنی [[Special:Preferences|ترجیحات]] کے ذریعے اپنا برقی پتہ کا تعیّن اور تصدیق کیجئے.",
        "userjspreview": "<strong>یاد رہے کہ اس وقت آپ اپنی جاوا اسکرپٹ کی محض نمائش دیکھ/جانچ رہے ہیں، یہ اب تک محفوظ نہیں ہوئی ہے!</strong>",
        "sitecsspreview": "<strong>یاد رہے کہ اس وقت آپ اس سی ایس کی محض نمائش دیکھ رہے ہیں، یہ اب تک محفوظ نہیں ہوئی ہے!</strong>",
        "sitejspreview": "<strong>یاد رہے کہ اس وقت آپ اس جاوا اسکرپٹ کوڈ کی محض نمائش دیکھ رہے ہیں، یہ اب تک محفوظ نہیں ہوئی ہے!</strong>",
-       "userinvalidconfigtitle": "<strong>انتباہ:</strong> یہاں «$1» نام سے کوئی پوشاک موجود نہیں۔ شخصی .css اور .js کے صفحات اپنے عنوان میں چھوٹے حروف استعمال کرتے ہیں، مثلاً {{ns:user}}:Foo/Vector.css کی بجائے {{ns:user}}:Foo/vector.css",
+       "userinvalidconfigtitle": "<strong>انتباہ:</strong> یہاں «$1» نام سے کوئی پوشاک موجود نہیں۔ شخصی .css، .json اور .js کے صفحات اپنے عنوان میں چھوٹے حروف استعمال کرتے ہیں، مثلاً {{ns:user}}:Foo/Vector.css کی بجائے {{ns:user}}:Foo/vector.css",
        "updated": "(اپ ڈیٹڈ)",
        "note": "'''نوٹ:'''",
        "previewnote": "<strong>یاد رکھیں، یہ صرف نمائش ہے۔</strong>\nآپ کی ترامیم ابھی محفوظ نہیں کی گئیں!",
        "longpageerror": "<strong>خطا: آپ کا درج کردہ متن {{PLURAL:$1|ایک کلو بائٹ|$1 کلو بائٹز}} لمبا ہے، جو کم سے کم {{PLURAL:$2|ایک کلو بائٹ|$2 کلو بائٹز}} سے زیادہ ہے۔</strong>\nاسے محفوظ نہیں کیا جاسکتا۔",
        "readonlywarning": "<strong>انتباہ: انتظامی نگہداشت کی خاطر ڈیٹابیس کو مقفل کر دیا گیا ہے، لہذا اس وقت آپ اپنی ترامیم کو محفوظ نہیں کر سکتے۔</strong>\nآپ اپنی تحریر کو کسی ٹیکسٹ فائل میں محفوظ کر سکتے ہیں تاکہ وہ ضائع نہ ہو اور آئندہ اسے استعمال کیا جا سکے۔\n\nانتظامیہ کی جانب سے مقفل کرنے کی حسب ذیل وجہ بیان کی گئی ہے:\n\n$1",
        "protectedpagewarning": "<strong>انتباہ: اس صفحہ میں ترمیم کاری کو مقفل کر دیا گیا ہے اور محض انتظامی اختیارات کے حامل صارفین ہی اس میں ترمیم کر سکتے ہیں۔</strong>\nحوالہ کے لیے ذیل میں نوشتہ جاتی اندراج فراہم کیا گیا ہے:",
-       "semiprotectedpagewarning": "<strong>اطÙ\84اع:</strong> Ø§Ø³ ØµÙ\81Ø­Û\81 Ú©Ù\88 Ù\85Ø­Ù\81Ù\88ظ Ú©Ø± Ø¯Û\8cا Ú¯Û\8cا Û\81Û\92Ø\8c Ù\84Û\81ذا Ø§Ø¨ Ø§Ø³ Ù\85Û\8cÚº Ù\85حض Ø§Ù\86دراج شدہ صارفین ہی ترمیم کر سکتے ہیں۔\nحوالہ کے لیے ذیل میں نوشتہ کا تازہ ترین اندراج درج ہے:",
+       "semiprotectedpagewarning": "<strong>اطÙ\84اع:</strong> Ø§Ø³ ØµÙ\81Ø­Û\81 Ú©Ù\88 Ù\85Ø­Ù\81Ù\88ظ Ú©Ø± Ø¯Û\8cا Ú¯Û\8cا Û\81Û\92Ø\8c Ù\84Û\81ذا Ø§Ø¨ Ø§Ø³ Ù\85Û\8cÚº Ù\85حض Ø®Ù\88د ØªÙ\88Ø«Û\8cÙ\82 شدہ صارفین ہی ترمیم کر سکتے ہیں۔\nحوالہ کے لیے ذیل میں نوشتہ کا تازہ ترین اندراج درج ہے:",
        "cascadeprotectedwarning": "<strong>انتباہ:</strong> اس صفحہ میں ترمیم کاری کو محفوظ کر دیا گیا ہے اور محض [[Special:ListGroupRights|انتظامی اختیارات]] کے حامل صارفین ہی اس میں ترمیم کر سکتے ہیں۔ اسے محفوظ کرنے کی وجہ یہ ہے کہ پیش نظر صفحہ درج ذیل محفوظ {{PLURAL:$1|صفحہ|صفحات}} کی آبشاری حفاظت میں شامل ہے:",
        "titleprotectedwarning": "<strong>انتباہ: اس صفحہ کو محفوظ کر دیا گیا ہے، چنانچہ اسے تخلیق کرنے کے لیے [[Special:ListGroupRights|خصوصی اختیارات]] درکار ہونگے۔</strong>\nحوالہ کے لیے ذیل میں نوشتہ کا تازہ ترین اندراج موجود ہے:",
        "templatesused": "اِس صفحہ پر مستعمل {{PLURAL:$1|سانچہ|سانچے}}:",
        "stub-threshold-disabled": "غیر فعال",
        "recentchangesdays": "حالیہ تبدیلیوں میں دکھائے جانے والے ایّام:",
        "recentchangesdays-max": "زیادہ سے زیادہ $1 {{PLURAL:$1|دن}}",
-       "recentchangescount": "دکھائی جانے والی ترامیم کی تعداد:",
-       "prefs-help-recentchangescount": "اÙ\90س Ù\85Û\8cÚº Ø­Ø§Ù\84Û\8cÛ\81 ØªØ¨Ø¯Û\8cÙ\84Û\8cاںØ\8c ØªØ§Ø±Û\8cØ®Ú\86Û\92 Ø§Ù\88ر Ù\86Ù\88شتÛ\81 Ø¬Ø§Øª Ø´Ø§Ù\85Ù\84 Û\81Û\8cÚºÛ\94",
+       "recentchangescount": "حاÙ\84Û\8cÛ\81 ØªØ¨Ø¯Û\8cÙ\84Û\8cÙ\88ÚºØ\8c ØªØ§Ø±Û\8cØ®Ú\86Ù\88Úº Ø§Ù\88ر Ù\86Ù\88شتÙ\88Úº Ù\85Û\8cÚº Ø¯Ú©Ú¾Ø§Ø¦Û\8c Ø¬Ø§Ù\86Û\92 Ù\88اÙ\84Û\8c ØªØ±Ø§Ù\85Û\8cÙ\85 Ú©Û\8c ØªØ¹Ø¯Ø§Ø¯:",
+       "prefs-help-recentchangescount": "زÛ\8cادÛ\81 Ø³Û\92 Ø²Û\8cادÛ\81 ØªØ¹Ø¯Ø§Ø¯: 1000",
        "prefs-help-watchlist-token2": "یہ آپ کی زیر نظر فہرست کے ویب فیڈ کی خفیہ کلید ہے۔\nاسے خفیہ رکھیں، تاکہ کوئی دوسرا شخص آپ کی زیر نظر فہرست نہ دیکھ سکے۔\nاگر آپ کو کلید تبدیل کرنی ہو تو [[Special:ResetTokens|یہاں کلک کریں]]۔",
        "savedprefs": "آپ کی ترجیحات محفوظ ہوگئیں۔",
        "savedrights": "{{GENDER:$1|$1}} کے اختیارات محفوظ ہو گئے۔",
        "prefs-files": "فائلیں",
        "prefs-custom-css": "شخصی سی ایس ایس",
        "prefs-custom-js": "شخصی جاوا اسکرپٹ",
-       "prefs-common-config": "جملہ پوشاکوں کے لیے مشترکہ سی ایس ایس/جاوا اسکرپٹ:",
+       "prefs-common-config": "جملہ پوشاکوں کے لیے مشترکہ سی ایس ایس/جے سن/جاوا اسکرپٹ:",
        "prefs-reset-intro": "آپ اس صفحہ کے ذریعہ اپنی موجودہ ترجیحات کو سائٹ کی ابتدائی ترتیبات کے مطابق ڈھال سکتے ہیں۔\nلیکن اسے واپس نہیں پھیرا جا سکتا۔",
        "prefs-emailconfirm-label": "برقی خط کی تصدیق:",
        "youremail": "برقی خط:",
        "grant-createaccount": "کھاتہ سازی",
        "grant-createeditmovepage": "تخلیق، ترمیم و منتقلی صفحات",
        "grant-delete": "صفحات، اندراجات نوشتہ اور نسخوں کی حذف شدگی",
-       "grant-editinterface": "صارف کی سی ایس ایس/جاوا اسکرپٹ اور میڈیاویکی نام فضا میں ترمیم",
-       "grant-editmycssjs": "اپنی سی ایس ایس/جاوا اسکرپٹ میں ترمیم",
+       "grant-editinterface": "صارف کی سی ایس ایس/جے سن/جاوا اسکرپٹ اور میڈیاویکی نام فضا میں ترمیم",
+       "grant-editmycssjs": "اپنی سی ایس ایس/جے سن/جاوا اسکرپٹ میں ترمیم",
        "grant-editmyoptions": "اپنی ترجیحات میں ترمیم",
        "grant-editmywatchlist": "اپنی زیرنظر فہرست میں ترمیم",
        "grant-editpage": "موجودہ صفحات میں ترمیم",
        "rcfilters-other-review-tools": "نظرثانی کے دیگر آلات",
        "rcfilters-group-results-by-page": "نتائج گروہ بندی بلحاظ صفحہ",
        "rcfilters-activefilters": "فعال فلٹر",
+       "rcfilters-activefilters-hide": "چھپائیں",
+       "rcfilters-activefilters-show": "دکھائیں",
        "rcfilters-advancedfilters": "اضافی فلٹر",
        "rcfilters-limit-title": "نتائج کی تعداد",
        "rcfilters-limit-and-date-label": "$1 {{PLURAL:$1|تبدیلی|تبدیلیاں}}، $2",
        "rcfilters-savedqueries-rename": "نام کی تبدیلی",
        "rcfilters-savedqueries-setdefault": "طے شدہ طور پر محفوظ کریں",
        "rcfilters-savedqueries-unsetdefault": "طے شدہ طور پر ہٹائیں",
-       "rcfilters-savedqueries-remove": "ہٹائیں",
+       "rcfilters-savedqueries-remove": "حذف",
        "rcfilters-savedqueries-new-name-label": "نام",
        "rcfilters-savedqueries-new-name-placeholder": "فلٹر کا مقصد واضح کریں",
        "rcfilters-savedqueries-apply-label": "فلٹر بنائیں",
        "rcfilters-empty-filter": "کوئی فلٹر فعال نہیں ہے چنانچہ تمام شراکتیں دکھائی جا رہی ہیں۔",
        "rcfilters-filterlist-title": "فلٹروں کی فہرست",
        "rcfilters-filterlist-whatsthis": "یہ کام کیسے کرتے ہیں؟",
-       "rcfilters-filterlist-feedbacklink": "ان (نئے) فلٹر آلات کے متعلق ہمیں اپنے تاثرات سے آگاہ کریں",
+       "rcfilters-filterlist-feedbacklink": "ان فلٹر آلات کے متعلق ہمیں اپنے تاثرات سے آگاہ کریں",
        "rcfilters-highlightbutton-title": "نتائج کو نمایاں کریں",
        "rcfilters-highlightmenu-title": "رنگ پسند کریں",
        "rcfilters-highlightmenu-help": "اس خاصیت کو نمایاں کرنے کے لیے کوئی رنگ پسند کریں",
        "rcfilters-filter-humans-description": "ترامیم بدست انسانی",
        "rcfilters-filtergroup-reviewstatus": "نظر ثانی کی صورت حال",
        "rcfilters-filter-reviewstatus-unpatrolled-label": "غیر مراجعت شدہ",
+       "rcfilters-filter-reviewstatus-auto-label": "خودکار مراجعت شدہ",
        "rcfilters-filtergroup-significance": "اہمیت",
        "rcfilters-filter-minor-label": "معمولی ترامیم",
        "rcfilters-filter-minor-description": "ترامیم جنہیں صارفین نے معمولی قرار دیا",
        "rclinks": "آخری $2 روز میں ہونے والی $1 تبدیلیوں کا مشاہدہ کریں",
        "diff": "فرق",
        "hist": "تاریخچہ",
-       "hide": "Ú\86Ú¾Ù\80پائÛ\8cÚº",
+       "hide": "چھپائیں",
        "show": "دکھائیں",
        "minoreditletter": "م",
        "newpageletter": "نیا ..",
        "rollback-success": "{{GENDER:$3|$1}} کی ترامیم واپس پھیر دی گئیں؛\nصفحہ واپس {{GENDER:$4|$2}} کی آخری ترمیم کی جانب منتقل کر دیا گیا۔",
        "rollback-success-notify": "$1 کی ترامیم واپس پھیر دی گئیں؛\nصفحہ واپس $2 کی آخری ترمیم کی جانب منتقل کر دیا گیا۔ [$3 تبدیلیاں دکھائیں]",
        "sessionfailure-title": "نشست میں خامی",
+       "sessionfailure": "معلوم ہوتا ہے کہ آپ کی لاگ ان نشست میں کوئی مسئلہ درپیش ہے؛\nاس صورت میں نشست کے اغوا کا خدشہ ہوتا ہے، چنانچہ پیش بندی کے طور پر آپ کے اقدام کو مسترد کر دیا گیا ہے۔\nبراہ کرم دوبارہ کوشش کریں۔",
        "changecontentmodel": "صفحہ کے مواد کے ماڈل میں تبدیلی کریں",
        "changecontentmodel-legend": "مواد کے ماڈل کو تبدیل کریں",
        "changecontentmodel-title-label": "صفحہ کا عنوان",
        "protectedarticle": "\"[[$1]]\" کومحفوظ کردیا",
        "modifiedarticleprotection": "«[[$1]]» کا درجہ حفاظت تبدیل کیا",
        "unprotectedarticle": "«[[$1]]» کو غیر محفوظ کیا",
-       "movedarticleprotection": "نے \"[[$2]]\" کا درجہ حفاظت \"[[$1]]\" کی جانب منتقل کیا",
+       "movedarticleprotection": "نے «[[$2]]» کا درجہ حفاظت «[[$1]]» کی جانب منتقل کیا",
        "protectedarticle-comment": "«[[$1]]» کو {{GENDER:$2|محفوظ کیا}}",
        "modifiedarticleprotection-comment": "«[[$1]]» کا {{GENDER:$2|درجہ حفاظت تبدیل کیا}}",
        "unprotectedarticle-comment": "«[[$1]]» کو {{GENDER:$2|غیر محفوظ کیا}}",
        "fix-double-redirects": "اصل عنوان کی جانب موجود تمام رجوع مکررات کو بھی تازہ کریں",
        "move-leave-redirect": "پیچھے رجوع مکرر بنائیں",
        "protectedpagemovewarning": "<strong>انتباہ:</strong> اس صفحہ کو محفوظ کر دیا گیا ہے اور اب محض منتظمین ہی اسے منتقل کر سکتے ہیں۔\nحوالہ کے لیے نوشتہ کا جدید اندراج ذیل میں درج ہے:",
-       "semiprotectedpagemovewarning": "<strong>اطلاع:</strong> یہ صفحہ نیم محفوظ ہے اور اسے محض مندرج صارفین ہی منتقل کر سکتے ہیں۔\nذیل میں حوالہ کے لیے نوشتہ کا تازہ ترین اندراج موجود ہے:",
+       "semiprotectedpagemovewarning": "<strong>اطلاع:</strong> یہ صفحہ نیم محفوظ ہے اور اسے محض خود توثیق شدہ صارفین ہی منتقل کر سکتے ہیں۔\nذیل میں حوالہ کے لیے نوشتہ کا تازہ ترین اندراج موجود ہے:",
        "move-over-sharedrepo": "[[:$1]] ایک مشترکہ ذخیرے میں موجود ہے۔ چنانچہ اس عنوان کی جانب کسی فائل کو منتقل کرنے پر مشترکہ فائل منسوخ ہو جائے گی۔",
        "file-exists-sharedrepo": "فائل کا منتخب کردہ نام ایک مشترکہ ذخیرے میں پہلے ہی سے زیر استعمال ہے۔\nبراہ کرم کوئی دوسرا نام درج کریں۔",
        "export": "برآمد صفحات",
        "tooltip-recreate": "حذف شدہ صفحہ ہونے کے باوجود اسے دوبارہ تخلیق کریں",
        "tooltip-upload": "اپلوڈ کریں",
        "tooltip-rollback": "پچھلے صارف کی کی گئی اِس صفحے پر استرجع شدہ ترامیم کو ایک کلِک میں واپس کریں",
-       "tooltip-undo": "''استرجع'' اس ترمیم کو پچھلی ترمیم کے جانب واپس کردیگا اور نمائشی انداز میں خانہ ترمیم کھول دے گا۔ آپ مختصراً سبب بیان کرنے کے بھی مجاز ہونگے۔",
+       "tooltip-undo": "«استرجع» اس ترمیم کو پچھلی ترمیم کے جانب واپس کر دے گا اور نمائشی انداز میں خانہ ترمیم کھول دے گا۔ آپ مختصراً سبب بیان کرنے کے بھی مجاز ہوں گے۔",
        "tooltip-preferences-save": "ترجیحات محفوظ کریں",
        "tooltip-summary": "مختصر خلاصہ درج کریں",
        "common.css": "body,\ntextarea {\n    font-family: Amiri;\n}",
        "table_pager_limit_label": "فی صفحہ اندراج:",
        "table_pager_limit_submit": "چلیں",
        "table_pager_empty": "کوئی نتیجہ برآمد نہیں ہوا",
-       "autosumm-blank": "صفحہ خالی کیا",
+       "autosumm-blank": "صفحو خالي ڪيو",
        "autosumm-replace": "\"$1\" سے مواد کی تبدیلی",
        "autoredircomment": "[[$1]] سے رجوع مکرر",
        "autosumm-removed-redirect": "[[$1]] سے رجوع مکرر ہٹایا",
index 18e6d2e..b88ce6d 100644 (file)
        "resetpass-temp-password": "臨時密碼:",
        "resetpass-abort-generic": "改密碼嘅動作已經畀擴充套件停咗。",
        "resetpass-expired": "你個密碼經已過期。請設過個新密碼。",
-       "resetpass-expired-soft": "你個密碼經已過期要過。請揀個新密碼,或者去\"{{int:authprovider-resetpass-skip-label}}\" 轉頭再設過。",
+       "resetpass-expired-soft": "你個密碼經已過期要過。請揀個新密碼,或者去\"{{int:authprovider-resetpass-skip-label}}\" 轉頭再設過。",
        "resetpass-validity-soft": "你個密碼無效: $1\n\n請揀個新密碼,或者去\"{{int:authprovider-resetpass-skip-label}}\" 轉頭再設過。",
        "passwordreset": "密碼重設",
        "passwordreset-text-one": "填好呢份表格去申請將臨時密碼經電郵送畀你。",
        "rcfilters-savedqueries-rename": "改名",
        "rcfilters-savedqueries-setdefault": "設做預設",
        "rcfilters-savedqueries-unsetdefault": "唔再設做預設",
-       "rcfilters-savedqueries-remove": "拎走",
+       "rcfilters-savedqueries-remove": "",
        "rcfilters-savedqueries-new-name-label": "名",
        "rcfilters-savedqueries-new-name-placeholder": "形容篩選條件嘅用途",
        "rcfilters-savedqueries-apply-label": "開個新嘅篩選條件",
index 769519f..37c3285 100644 (file)
@@ -92,7 +92,9 @@
        "hidden-category-category": "ⵜⴰⴳⴳⴰⵢⵉⵏ ⵉⵜⵜⵓⵏⵜⴰⵍⵏ",
        "category-subcat-count": "{{PLURAL:$2|ⴰⵙⵎⵉⵍ ⴰⴷ ⴷⵉⴳⵙ ⵖⴰⵙ ⵉⴷⵓⵙⵎⵉⵍⵏ ⴰⴷ.|ⴰⵙⵎⵉⵍ ⴰⴷ ⴷⵉⴳⵙ {{PLURAL:$1|ⴰⴷⵓⵙⵎⵉⵍ ⴰⴷ |$1 ⵉⴷⵓⵙⵎⵉⵍⵏ ⴰⴷ}}, ⵙⴳ $2 ⴳ ⵓⵖⵔⵓⴷ.}}",
        "category-article-count": "{{PLURAL:$2|ⴰⵙⵎⵉⵍ ⴰⴷ ⵢⵓⵎⴰ ⵖⴰⵙ ⵜⴰⵙⵏⴰ ⴰⴷ {{PLURAL:$1|ⵜⴰⵙⵏⴰ ⴰⴷ ⵜⵍⵍⴰ|$1 ⵜⴰⵙⵏⵉⵡⵉⵏ ⴰⴷ ⵍⵍⴰⵏⵜ}} ⴳ ⵓⵙⵎⵉⵍ ⴰⴷ, ⵙⴳ $2 ⴳ ⵓⵖⵔⵓⴷ.}}",
+       "category-file-count": "{{PLURAL:$2|ⴰⵙⵎⵉⵍ ⴰⴷ ⵢⵓⵎⵢ ⵖⴰⵙ ⴰⴼⴰⵢⵍⵓ ⴰ.|{{PLURAL:$1|ⴰⴼⴰⵢⵍⵓ|$1 ⵏ ⵉⴼⵓⵢⵍⴰ}} ⴳ ⵓⵙⵎⵉⵍ ⴰ, ⵙⴳ $2 ⴰⵖⵔⵓⴷ.}}",
        "listingcontinuesabbrev": "ⴹⴼⵓⵔ",
+       "noindex-category": "ⵜⴰⵙⵏⵉⵡⵉⵏ ⵎⵉ ⵓⵔ ⵉⵜⵜⵓⴳⵉ ⵓⵙⴳⴱⵔ",
        "broken-file-category": "ⵜⴰⵙⵏⵉⵡⵉⵏ ⴳ ⵍⵍⴰⵏ ⵉⵙⵖⵏⴻⵏ ⵏ ⵉⴼⵓⵢⵍⴰ ⵕⵥⴰⵏⵉⵏ",
        "about": "ⵅⴼ",
        "article": "ⵜⴰⵙⵏⴰ ⵏ ⵜⵓⵎⴰⵢⵜ",
        "viewtalkpage": "ⵥⵔ ⴰⵎⵙⴳⴷⴰⵍ",
        "otherlanguages": "ⵙ ⵜⵓⵜⵍⴰⵢⵉⵏ ⵢⴰⴹⵏⵉⵏ",
        "redirectedfrom": "(ⵓⵖⵓⵍ ⵙⴳ $1)",
+       "redirectpagesub": "ⵜⴰⵙⵏⴰ ⵏ ⵓⵙⵡⴰⵍⴰ",
        "redirectto": "ⵙⵏⵉⵍ ⵖⵔ:",
        "lastmodifiedat": "ⵜⵏⵏⴼⵍ ⵜⴰⵙⵏⴰ ⴰ ⵉ ⵜⵉⴽⴽⵍⵜ ⵜⴰⵎⴳⴳⴰⵔⵓⵜ ⴳ $1, ⴳ $2.",
        "protectedpage": "ⵜⴰⵙⵏⴰ ⵉⵜⵜⵓⴼⵔⴰⴳⵏ",
        "ok": "ⵡⴰⵅⵅⴰ",
        "retrievedfrom": "ⵉⵜⵜⵓⵙⴰⵖⵓⵍ ⵙⴳ $1",
        "youhavenewmessages": "{{PLURAL:$3|ⵖⵓⵔⴽ}} $1 ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|ⵉⵍⵍⴰ ⴷⴰⵔⴽ}} $1 ⵙⴳ {{PLURAL:$3|ⵢⴰⵏ ⵓⵎⵙⵙⵎⵔⵙ ⵢⴰⴹⵏ|$3 ⵉⵎⵙⵙⵎⵔⵙⵏ}} ($2).",
        "youhavenewmessagesmanyusers": "ⴷⴰⵔⴽ $1 ⵙⴳ ⵎⵏⵏⴰⵡ ⵉⵎⵙⵙⵎⵔⵙⵏ ($2)",
        "newmessageslinkplural": "{{PLURAL:$1|ⵜⵓⵣⵉⵏⵜ ⵜⴰⵎⴰⵢⵏⵓⵜ|999=ⵜⵓⵣⵉⵏⵉⵏ ⵜⵉⵎⴰⵢⵏⵓⵜⵉⵏ}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|ⴰⵙⵏⴼⵍ ⴰⵎⴳⴳⴰⵔⵓ|999=ⵉⵙⵏⵉⴼⵍⵏ ⵉⵎⴳⴳⵓⵔⴰ}}",
        "youhavenewmessagesmulti": "ⵍⵍⴰⵏ ⵖⵓⵔⴽ ⵜⵓⵣⵉⵏⵉⵏ ⵜⵉⵎⴰⵢⵏⵓⵜⵉⵏ ⴳ $1",
        "editsection": "ⵙⵏⴼⵍ",
        "editold": "ⵙⵏⴼⵍ",
        "nstab-category": "ⴰⵙⵎⵉⵍ",
        "mainpage-nstab": "ⵜⴰⵙⵏⴰ ⵏ ⵓⵙⵏⵓⴱⴳ",
        "nosuchspecialpage": "ⴰⵡⴷ ⵢⴰⵜ ⵜⴰⵙⵏⴰ ⵉⵥⵍⵉⵏ.",
-       "nospecialpagetext": "<strong>âµ\9câ´»âµ\9câµ\9câµ\94â´· âµ¢â´°âµ\9c âµ\9câ´°âµ\99âµ\8fâ´° âµ\89âµ¥âµ\8dâµ\89âµ\8f âµ\93âµ\94 âµ\89âµ\85â´·âµ\89âµ\8eâµ\8f</strong>",
+       "nospecialpagetext": "<strong>âµ\9câ´»âµ\9câµ\9câµ\94â´· âµ¢â´°âµ\9c âµ\9câ´°âµ\99âµ\8fâ´° âµ\89âµ¥âµ\8dâµ\89âµ\8f âµ\93âµ\94 âµ\89â´±âµ\93âµ\8fâµ\89âµ\8f</strong>\n\nⵢⴰâµ\9c âµ\9câµ\8dⴳⴰâµ\8eâµ\9c âµ\8f âµ\9câ´°âµ\99âµ\8fâµ\89ⵡâµ\89âµ\8f âµ\89âµ¥âµ\8dâµ\89âµ\8f âµ\94â´°â´· âµ\9câµ\9c âµ\9cⴰⴼⴷ â´³ [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "ⵜⴰⵣⴳⵍⵜ",
        "databaseerror-error": "ⵜⴰⵣⴳⵍⵜ: $1",
        "badtitle": "ⴳⴰⵔ ⴰⵣⵡⵍ",
        "viewsource": "ⵙⴽⵏ ⴰⵙⴰⴳⵎ",
        "viewsource-title": "ⵥⵕ ⴰⵖⴱⴰⵍⵓ ⵉ $1",
        "viewsourcetext": "ⵜⵣⵎⵔⴷ ⴰⴷ ⵜⵥⵔⴷ ⴷ ⴰⴷ ⵜⵙⵙⵏⵖⵍⴷ ⴰⵙⴰⴳⵎ ⵏ ⵜⴰⵙⵏⴰ ⴰⴷ",
+       "exception-nologin": "ⵓⵔ ⵢⵓⴷⵉⴼ",
        "welcomeuser": "ⴰⵏⵙⵓⴼ, $1!",
        "yourname": "ⵉⵙⵎ ⵏ ⵓⵙⵎⵔⴰⵙ",
        "userlogin-yourname": "ⵉⵙⵎ ⵏ ⵓⵙⵎⵔⴰⵙ",
        "savechanges-start": "ⵃⴹⵓ ⵉⵙⵏⴼⵍⵏ",
        "publishpage-start": "ⴼⵙⵔ ⵜⴰⵙⵏⴰ...",
        "publishchanges-start": "ⴼⵙⵔ ⵉⵙⵏⴼⵓⵍⵏ...",
+       "preview": "ⴰⵣⵔⴰⵙⴽⴰⵏ",
        "showpreview": "ⵙⴽⵏ ⴰⴱⵔⵉⴼⵢⵓ",
        "showdiff": "ⵙⵎⴰⵍ ⵉⵙⵏⴼⵍⵏ",
+       "anoneditwarning": "<strong> ⴰⵡⵢ ⵉⵜⵏⴰⵏ:</strong> ⵓⵔ ⵜⵍⵍⵉⴷ ⴳ ⵓⵣⴷⴰⵢ. ⵜⴰⵏⵙⴰ ⵏⵏⴽ IP ⵔⴰⴷ ⵜⵓⵎⴰⵏ ⵉ ⵎⴷⴷⵏ ⴰⴽⴽ ⵎⴽ ⵜⵙⴽⵔⴷ ⴽⵔⴰ ⵏ ⵢⵉⵙⵏⵉⴼⵉⵍⵏ. ⵎⴽ <strong>[$1 ⵜⵍⵍⵉⴷ ⴳ ⵓⵣⴷⴰⵢ]</strong> ⵏⵖ <strong>[$2 ⵙⴽⵔⴰ ⵢⴰⵏ ⵓⵎⵉⴹⴰⵏ]</strong>, ⵔⴰⴷ ⵜⵜⵢⵉⵖⵉⵏⴻⵏ ⵉⵙⵏⵉⴼⵉⵍⵏ ⵏⵏⴽ ⴷ ⵢⵉⵙⵎ ⵏⵏⴽ(ⵎ) ⵏ ⵓⵏⵙⵙⵎⵔⵙ, ⵙ ⵎⴽⴰ ⵔⴰⴷ ⵖⵓⵔⴽ ⵉⵍⵉⵏ ⵉⴱⵖⵓⵔⵏ ⵢⴰⴹⵏ.",
+       "blockedtext": "<strong>ⵉⵜⵜⵓⴳⴷⴰⵍ ⵓⵎⵉⴹⴰⵏ ⵏⵏⴽ(ⵎ) ⵏⵖ ⴷ ⵜⴰⵏⵙⴰ ⵏⵏⴽ(ⵎ) IP.</strong>\n\nⴰⴳⴷⴷⵓⵍ ⴰⴷ ⵉⵙⴽⵔ ⵜ $1.\nⴰⵙⵔⴰⴳ ⵏ ⵓⴳⴷⴷⵓⵍ ⴷ ⵡⴰ : <em>$2</em>.\n\n* ⴰⵏⵜⵜⵉ ⵏ ⵓⴳⴷⴷⵓⵍ : $8\n* ⵔⴰⴷ ⵉⵇⵇⵉⵎ ⵓⴳⴷⴷⵓⵍ ⴰⴷ ⴰⵔ : $6\n* ⴰⵎⵉⴹⴰⵏ ⵉⵜⵜⵓⴳⴷⴰⵍⵏ : $7.\n\nⵜⵓⴼⵉⴷ ⴰⴷ ⵜⵎⵙⴰⵡⴰⴹⴷ ⴰⴽⴷ $1 ⵏⵖ ⵢⴰⵏ [[{{MediaWiki:Grouppage-sysop}}|administrateur]] ⵢⴰⴹ ⴼⴰⵔ ⴰⴷ ⵜⵎⵙⴳⴷⴰⵍⵎ ⵅⴼ ⵓⵢⴰ.\nⵓⵔ ⵜⵓⴼⵉⴷ ⴰⴷ ⵜⵙⵙⵎⵔⵙⴷ ⵜⴰⵙⵖⵏⵜ  « {{int:emailuser}} » ⵖⴰⵙ ⵎⴽ ⵜⴻⵜⵜⵓⵙⵜⴰⵢ ⵢⴰⵜ ⵜⴰⵙⵏⴰ ⵉⵙⵡⵓⵔⵉⵏ ⴳ [[Special:Preferences|préférences]] ⵏⵏⴽ(ⵎ) ⴷ ⵖⴰⵙ ⵎⴽ ⵓⵔ ⵉⵜⵜⵓⴳⴷⴰⵍ ⵓⵙⵡⵓⵔⵉ ⴰⴷ.\nⵜⴰⵏⵙⴰ ⵏⵏⴽ(ⵎ) IP ⵜⴰⵎⵉⵔⴰⵏⵜ ⵜⴳⴰ ⵜⵜ $3 ⴷ ⵓⵎⵙⵎⴰⴳⵉ ⵏⵏⴽ(ⵎ) ⵏ ⵓⴳⴷⴷⵓⵍ ⵉⴳⴰ ⵜ $5.\nⵎⴽ ⵜⵓⴼⵉⴷ, ⵙⴽⵛⵎ ⵉⵛⵎⵓⵎⵎⴰ ⴰⴽⴽ ⵏ ⵓⴼⵍⵍⴰ ⴳ ⴽⵓ ⵢⴰⵜ ⴳ ⵜⵓⵜⵜⵔⵉⵡⵉⵏ ⵏⵏⴰ ⵜⵙⴽⵔⴷ.",
        "loginreqlink": "ⴽⵛⵎ",
        "accmailtitle": "ⵜⴰⴳⵓⵔⵉ ⵓⵣⵔⴰⵢ ⵜⴻⵜⵜⵡⴰⵣⵏ",
        "newarticle": "(ⴰⵎⴰⵢⵏⵓ)",
        "noarticletext": "ⵓⵔ ⵉⵍⵍⵉ ⴽⵔⴰ ⵏ ⵓⴹⵔⵉⵙ ⴳ ⵜⴰⵙⵏⴰ ⴰⴷ ⵖⵉⵍⴰ. \nⵜⵣⵎⵔⴷ ⴰⴷ [[Special:Search/{{PAGENAME}}|ⵜⵔⵣⵓⴷ ⵖⴼ ⵓⵣⵡⵍ ⵏⵏⵙ]] ⴳ ⵜⴰⵙⵏⵉⵡⵉⵏ ⵢⴰⴹⵏ, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ⵔⵣⵓ ⵖⴼ logs ⵖⵔⵙ ⵉⵇⵇⵏⴻⵏ],\nⵏⵖ [{{fullurl:{{FULLPAGENAME}}|action=edit}} ⵙⵏⵓⵍⴼⵓ ⵜⴰⵙⵏⴰ]</span>.",
        "noarticletext-nopermission": "ⴷⵖⵉ ⵓⵔ ⵉⵍⵍⵉ ⴰⵡⴷ ⴽⵔⴰ ⵏ ⵓⴹⵔⵉⵚ ⴳ ⵜⴰⵙⵏⴰ ⴰ.\nⵜⵣⵎⵔⴷ ⴰⴷ [[Special:Search/{{PAGENAME}}|ⵜⵔⵣⵓⴷ ⵖⴼ ⵓⵣⵡⵍ ⵏⵏⵙ]] ⴳ ⵜⴰⵙⵏⵉⵡⵉⵏ ⵢⴰⴹⵏⵉⵏ, ⵏⵖ <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ⵔⵣⵓ ⵖⴼ ⵉⵣⵎⵎⴻⵎⵏ ⵉⵣⴷⵉⵏ]</span>, ⵎⴰⵛⴰ ⵓⵔ ⴷⴰⵔⴽ ⵜⵓⵔⴰⴳⵜ ⴰⴷ ⵜⵙⵏⵓⵍⴼⵓⴷ ⵜⴰⵙⵏⴰ ⴰ.",
        "userpage-userdoesnotexist-view": "ⴰⵎⵉⴹⴰⵏ ⵏ ⵓⵎⵙⵙⵎⵔⵙ $1 ⵓⵔ ⵉⵜⵜⵓⵣⵎⵎⴻⵎ.",
+       "previewnote": "<strong>ⴽⵜⵉ ⴷ ⵎⴰⵙ ⵓⵔ ⵜⴳⵉ ⵖⴰⵙ ⴰⵣⵔⵙⴽⴰⵏ.</strong>\nⵉⵙⵏⵉⴼⵉⵍⵏ ⵏⵏⴽ ⵓⵔ ⵜⴰ ⵜⵜⵓⵙⴽⵍⴰⵙⵏ!",
        "continue-editing": "ⴷⴷⵓ ⵙ ⴰⵏⵙⴰ ⵏ ⵓⵙⵏⴼⵍ",
        "editing": "ⴰⵙⵏⴼⵍ ⵏ $1",
        "creating": "ⴰⵙⵏⵓⵍⴼⵓ ⵏ $1",
        "editingsection": "ⵙⵏⴼⵍ ⴰⴳⵣⵣⵓⵎ $1",
        "yourtext": "ⴰⴹⵕⵉⵙ ⵏⵏⴽ/ⵎ",
        "templatesused": "{{PLURAL:$1|ⴰⵍⴱⵓⴹ|ⴰⵍⴱⵓⴹⵏ}} {{PLURAL:$1|ⵉⵜⵜⵓⵙⵎⵔⵙⵏ|ⵜⵜⵓⵙⵎⵔⵙⵏⵉⵏ}} ⴳ ⵜⴰⵙⵏⴰ ⴰⴷ:",
+       "templatesusedpreview": "{{PLURAL:$1|ⴰⵍⴱⵓⴹ|ⴰⵍⴱⵓⴹⵏ}} {{PLURAL:$1|ⵉⵜⵜⵓⵙⵎⵔⵙⵏ|ⵜⵜⵓⵙⵎⵔⵙⵏⵉⵏ}} ⴳ ⵜⴰⵙⵏⴰ ⴰⴷ:",
        "template-protected": "(ⵉⵜⵜⵢⴰⵔⴰⵢ)",
        "template-semiprotected": "(ⵜⵎⵃⴹⴰ ⵙ ⵓⴳⵣⵎⴰⵏ)",
        "hiddencategories": "ⵜⴰⵙⵏⴰ ⴰ ⴷ ⴰⴳⵎⴰⵎ ⵏ {{PLURAL:$1|1 ⵏⵜⵍ ⴰⵙⵎⵉⵍ|$1 ⵏⵜⵍ ⵉⵙⵎⵉⵍⵏ}}:",
+       "permissionserrors": "ⴰⵙⵙⵓⵔⴳ ⵉⵣⴳⵜ",
        "permissionserrorstext-withaction": "ⵓⵔ ⴷⴰⵔⴽ ⵜⵓⵔⴰⴳⵜ ⴰⴼⴰⴷ ⴰⴷ $2, ⵙ {{PLURAL:$1|reason|reasons}}:",
+       "moveddeleted-notice": "ⵜⴰⵙⵏⴰ ⴰⴷ ⵜⴻⵜⵜⵡⴰⴽⴽⵙ.\nⵜⵉⵎⵙⵙⴽⵜⵉⵜⵉⵏ ⵏ ⵜⵓⴽⴽⵙⵉⵡⵉⵏ, ⵉⴼⵔⴰⴳⵏ ⴷ ⵉⵙⵎⵓⵜⵜⵓⵢⵏ ⵉⵜⵜⵓⴳⴰⵏ ⵉ ⵜⴰⵙⵏⴰ ⵜⵜⵓⵙⴽⴰⵏⴻⵏ ⴳ ⵢⵉⵣⴷⴰⵔ ⴰⵎ ⵉⵙⴰⵖⵓⵍⵏ.",
        "content-model-wikitext": "wikitext",
        "content-model-javascript": "JavaScript",
+       "undo-failure": "ⴰⵙⵏⴼⵍ ⴰⴷ ⵓⵔ ⵢⴰⵍⵍⴼⵓⵙ ⴰⴷ ⴷ ⵉⵡⵔⵔⵉ ⵙ ⵓⵙⵔⴰⴳ ⵏ ⵓⵎⵎⵔⵡⴰⵢ ⴰⴽⴷ ⴽⵔ ⵏ ⵉⵙⵏⵉⴼⵉⵍⵏ ⵉⵎⵏⵏⵓⵎⵙⵏ.",
        "viewpagelogs": "ⵙⴽⵏ ⵉⵖⵎⵉⵙⵏ ⵏ ⵜⴰⵙⵏⴰ ⴰⴷ",
        "currentrev-asof": "ⴰⵣⵣⵔⴰⵢ ⴰⵎⴳⴳⴰⵔⵓ ⴳ $1",
        "revisionasof": "ⵜⵓⵏⵖⵉⵍⵜ ⵏ $1",
+       "revision-info": "ⴰⵣⵣⵔⴰⵢ ⵏ $1 ⵉⵙⴽⵔ {{GENDER:$6|$2}}$7",
        "previousrevision": "ⵜⵓⵏⵖⵉⵍⵜ ⵜⴰⵇⴱⵓⵔⵜ",
        "nextrevision": "ⴰⵣⵣⵔⴰⵢ ⴰⵎⴰⵢⵏⵓ",
        "currentrevisionlink": "ⴰⵣⵣⵔⴰⵢ ⴰⵎⴳⴳⴰⵔⵓ",
        "revdelete-show-file-submit": "ⵢⴰⵀ",
        "revdelete-log": "ⵜⴰⵎⵏⵜⵉⵍⵜ:",
        "mergehistory-reason": "ⵜⴰⵎⵏⵜⵉⵍⵜ:",
+       "mergelog": "ⵜⴰⵎⵙⵙⴽⵜⵉⵜ ⵏ ⵓⵙⵎⵔⴽⵙ",
        "history-title": "ⴰⵎⵣⵔⵓⵢ ⵏ ⵓⵣⵣⵔⴰⵢ ⵏ \"$1\"",
        "difference-title": "ⴰⵎⵣⴰⵔⴰⵢ ⴳⵔ ⵉⵣⵣⵔⴰⵢⵏ ⵏ $1",
        "lineno": "ⵉⵣⵔⵉⵔⵉ $1:",
        "compareselectedversions": "ⵙⵎⵣⴰⵣⴰⵍ ⵉⵣⵣⵔⴰⵢⵏ ⵉⵜⵜⵓⵙⵜⴰⵢⵏ",
        "editundo": "ⵙⵔ",
        "diff-empty": "(ⵓⵔ ⵉⵍⵍⵉ ⵓⵎⵣⴰⵔⴰⵢ)",
+       "diff-multi-sameuser": "({{PLURAL:$1|ⴽⵔⴰ ⵏ ⵓⵣⵣⵔⴰⵢ ⵉⵏⵏⵓⵎⵎⵙⵏ ⵉⵙⴽⵔ ⵓⵏⵙⵙⵎⵔⵙ ⵉⴳⴰⵏ ⵢⴰⵏ ⵓⵔ ⵜⴻⵜⵜⵓⵙⴽⴰⵏ|$1 ⴽⵔⴰ ⵏ ⵉⵣⵣⵔⴰⵢⵏ ⵉⵏⵏⵓⵎⵎⵙⵏ ⵉⵙⴽⵔ ⵓⵏⵙⵙⵎⵔⵙ ⵉⴳⴰⵏ ⵢⴰⵏ ⵓⵔ ⵜⵜⵓⵙⴽⴰⵏⴻⵏⵜ}})",
        "searchresults": "ⵜⵉⵢⴰⴼⵓⵜⵉⵏ ⵏ ⵓⵔⵣⵣⵓ",
        "searchresults-title": "ⵜⵉⵢⴰⴼⵓⵜⵉⵏ ⵏ ⵓⵔⵣⵣⵓ ⵖⴼ \"$1\"",
        "prevn": "{{PLURAL:$1|$1}} ⵉⵎⵣⵡⵓⵔⴰ",
        "nextn": "{{PLURAL:$1|$1}} ⴰⵎⴹⴼⵉⵔ",
+       "prevn-title": "$1 {{PLURAL:$1|ⵜⴰⵢⴰⴼⵓⵜ ⵉⵣⵔⵉⵏ|ⵜⵉⵢⴰⴼⵓⵜⵉⵏ ⵣⵔⵉⵏⵉⵏ}}",
        "nextn-title": "$1 ⵏ {{PLURAL:$1|ⵜⴰⵢⴼⵓⵜ|ⵜⵉⵢⴰⴼⵓⵜⵉⵏ}} ⵢⴰⴹⵏ",
        "shown-title": "ⵙⵎⴰⵍ $1 {{PLURAL:$1|ⵜⵢⴰⴼⵓⵜ|ⵜⵢⴰⴼⵓⵜⵉⵏ}} ⵉ ⵜⴰⵙⵏⴰ",
        "viewprevnext": "ⵥⵕ ($1 {{int:pipe-separator}} $2) ($3)",
        "searchprofile-everything-tooltip": "ⵔⵣⵓ ⴳ ⵜⵓⵎⴰⵢⵜ ⴰⴽⴽⵯ (ⵓⵍⴰ ⴳ ⵜⴰⵙⵏⵉⵡⵉⵏ ⵏ ⵓⵎⵙⴰⵡⴰⵍ)",
        "searchprofile-advanced-tooltip": "ⵔⵣⵓ ⴳ ⵜⵉⵔⵉⵡⵉⵏ ⵏ ⵉⵙⵎⴰⵡⵏ ⵉⵜⵡⴰⵏⵉⵎⴰⵏ",
        "search-result-size": "$1 ({{PLURAL:$2|1 ⵜⴳⵓⵔⵉ|$2 ⵜⴳⵓⵔⵉⵡⵉⵏ}})",
+       "search-result-category-size": "{{PLURAL:$1|ⵢⴰⵏ ⵓⴳⵎⴰⵎ|$1 ⵏ ⵉⴳⵎⴰⵎⵏ}} ({{PLURAL:$2|ⵢⴰⵏ ⵓⴷⵓⵙⵎⵉⵍ|$2 ⵏ ⵉⴷⵓⵙⵎⵉⵍⵏ}}, {{PLURAL:$3|ⵢⴰⵏ ⵓⴼⴰⵢⵍⵓ|$3 ⵏ ⵉⴼⵓⵢⵍⴰ}})",
        "search-redirect": "(ⵓⵖⵓⵍ ⵙⴳ $1)",
        "search-section": "(ⴰⵙⴱⴹⵓ $1)",
+       "search-file-match": "(ⵉⵎⵙⴰⵙⴰ ⴷ ⵜⵓⵎⴰⵢⵜ ⵏ ⵓⴼⴰⵢⵍⵓ)",
        "search-suggest": "ⵉⵙ ⵜⵅⵙⴷ ⴰⴷ ⵜⵉⵏⵉⴷ: $1",
        "search-interwiki-more": "(ⵓⴳⴳⴰⵔ)",
        "searchall": "ⵎⴰⵕⵕⴰ",
+       "search-showingresults": "{{PLURAL:$4|ⵜⴰⵢⴰⴼⵓⵜ <strong>$1</strong> ⵙⴳ <strong>$3</strong>|ⵜⵉⵢⴰⴼⵓⵜⵉⵏ <strong>$1 ⴳ $2</strong> ⵙⴳ <strong>$3</strong>}}",
        "search-nonefound": "ⵓⵔ ⵍⵍⵉⵏⵜ ⵜⵢⴰⴼⵓⵜⵉⵏ ⵉⵎⵙⴰⵙⴰⵏ ⴷ ⵓⵙⵓⵜⵔ.",
        "powersearch-toggleall": "ⵎⴰⵕⵕⴰ",
        "mypreferences": "ⵉⵙⵎⵏⵢⵉⴼⵏ",
        "email": "ⵉⵎⴰⵢⵍ",
        "prefs-signature": "ⴰⵙⴳⵎⴹ",
        "userrights-reason": "ⵜⴰⵎⵏⵜⵉⵍⵜ:",
+       "group-bot": "ⵉⵔⵓⴱⵓⵜⵏ",
        "group-sysop": "ⵉⵏⵎⵀⴰⵍⵏ",
        "group-all": "(ⵎⴰⵕⵕⴰ)",
+       "grouppage-bot": "{{ns:project}}:ⵉⵔⵓⴱⵓⵜⵏ",
        "grouppage-sysop": "{{ns:project}}:ⵉⵎⵙⵙⵓⴳⵓⵔⵏ",
        "right-edit": "ⵙⵏⴼⵍ ⵜⴰⵙⵏⵉⵡⵉⵏ",
        "right-upload": "ⵙⴽⵜⵔ ⵉⴼⴰⵢⵍⵓⵜⵏ",
        "right-writeapi": "ⴰⵙⵙⵎⵔⵙ ⵏ API ⵉ ⵜⵉⵔⵔⴰ",
        "right-delete": "ⴽⴽⵙ ⵜⴰⵙⵏⵉⵡⵉⵏ",
        "newuserlogpage": "ⴰⵔⵔⴰ ⵏ ⵉⵙⵏⴼⴰⵍⵏ ⵏ ⵉⵎⵉⴹⴰⵏⴻⵏ ⵏ ⵉⵙⵙⵎⵔⴰⵙⵏ",
+       "rightslog": "ⵜⴰⵎⵙⵙⴽⵜⵉⵜ ⵏ ⵢⵉⵣⵔⴼⴰⵏ ⵏ ⵢⵉⵏⵙⵙⵔⵎⴰⵙⵏ",
        "action-edit": "ⵙⵏⴼⵍ ⵜⴰⵙⵏⴰ ⴰ",
        "action-createpage": "ⵙⵏⵓⵍⴼⵓ ⵜⴰⵙⵏⴰ ⴰ",
        "action-createaccount": "ⵙⴽⵔ ⴰⵎⵉⴹⴰⵏ ⴰⴷ ⵏ ⵓⵏⵙⵙⵎⵔⵙ",
        "recentchanges-legend": "ⵜⵉⴷⵖⵔⵉⵏ ⵏ ⵉⵙⵏⴼⵍⵏ ⵉⵎⴳⴳⵓⵔⴰ",
        "recentchanges-summary": "ⴹⴼⵔ ⵉⵙⵏⵉⴼⵉⵍⵏ ⵉⵎⴳⴳⵓⵔⴰ ⴰⴽⴽ ⵖⴼ ⵓⵡⵉⴽⵉ ⴷⴳ ⵜⴰⵙⵏⴰ ⴰⴷ.",
        "recentchanges-noresult": "ⵓⵔ ⵍⵍⵉⵏ ⵉⵙⵏⵉⴼⵉⵍⵏ ⵉⵎⵙⴰⵙⴰⵏ ⴷ ⵉⵙⴼⵔⴰⵏⴻⵏ ⴳ ⵜⵉⵣⵉ ⵉⵜⵜⵓⴼⴽⴰⵏ.",
+       "recentchanges-feed-description": "ⴹⴼⵔ ⵉⵙⵏⵉⴼⵉⵍⵏ ⵉⵎⴳⴳⵓⵔⴰ ⴰⴽⴽ ⵖⴼ ⵓⵡⵉⴽⵉ ⴷⴳ ⵜⴰⵙⵏⴰ ⴰⴷ.",
        "recentchanges-label-newpage": "ⵉⵙⵏⴼⵍⵓⵍ ⵓⵙⵏⴼⵍ ⴰ ⵢⴰⵜ ⵜⴰⵙⵏⴰ ⵜⴰⵎⴰⵢⵏⵓⵜ",
        "recentchanges-label-minor": "ⵡⴰ ⴷ ⴰⵙⵏⴼⵍ ⵓⵎⵥⵉⵢ",
        "recentchanges-label-bot": "ⴰⵙⵏⴼⵍ ⴰⴷ ⵉⵜⵡⴰⵙⴽⴰⵔ ⵙ ⵓⴱⵓⵜ",
        "rcshowhideanons": "$1 ⵉⵏⵙⵙⵎⵔⵙⵏ ⵉⵔⵓⵙⵙⵉⵏⵏ",
        "rcshowhideanons-show": "ⵙⴽⵏ",
        "rcshowhideanons-hide": "ⵙⵙⵏⵜⵍ",
+       "rcshowhidepatr": "$1 ⵉⵙⵏⴼⵍⵏ ⵜⵜⵡⴰⵃⴹⴰⵏⵉⵏ",
        "rcshowhidemine": "$1 ⵉⵙⵏⴼⴰⵍ ⵉⵏⵓ",
        "rcshowhidemine-show": "ⵙⴽⵏ",
        "rcshowhidemine-hide": "ⵙⵙⵏⵜⵍ",
        "newpageletter": "ⵎⵢⵏ",
        "boteditletter": "ⴱⵓⵜ",
        "rc-change-size-new": "$1 {{PLURAL:$1|ⴱⴰⵢⵜ|ⵉⴷ ⴱⴰⵢⵜ}} ⴷⴼⴼⵉⵔ ⵏ ⵓⵙⵏⴼⵍ",
+       "rc-old-title": "ⵜⴻⵜⵜⵢⴰⵙⴽⴰⵔ ⵜⵉⵣⵡⵓⵔⵉ ⵙ ⵓⵣⵡⵍ $1",
        "recentchangeslinked": "ⵉⵙⵏⴼⴰⵍ ⵏⵏⴰ ⵖⵓⵔ ⴰⵙⵙⴰⵖ",
        "recentchangeslinked-feed": "ⵉⵙⵏⴼⵍⵏ ⵇⵇⵏⵏⵉⵏ",
        "recentchangeslinked-toolbox": "ⵉⵙⵏⴼⵍⵏ ⵇⵇⵏⵏⵉⵏ",
        "recentchangeslinked-title": "ⵉⵙⵏⴼⵍⵏ ⵇⵇⵏⵏⵉⵏ ⵙ $1",
-       "recentchangeslinked-summary": "âµ\99â´½âµ\9bâµ\8e âµ\89âµ\99âµ\8e âµ\8f âµ\9câ´°âµ\99âµ\8fâ´° âµ\83âµ\8eâ´° â´°â´· âµ\9câµ£âµ\94â´· âµ\89âµ\99âµ\8fⴼⴰâµ\8dâµ\8f âµ\89âµ\8eâ´°âµ¢âµ\8fâµ\93âµ\9câµ\8f â´³ âµ\9câ´°âµ\99âµ\8fâµ\89ⵡâµ\89âµ\8f âµ\99â´³ âµ\8fâµ\96 âµ\96âµ\94 âµ\9câ´°âµ\99âµ\8fâ´° â´°â´· (âµ\83âµ\8eâ´° â´°â´· âµ\9câµ£âµ\94â´· âµ\89â´³âµ\8eâ´°âµ\8eâµ\8f âµ\8f â´½âµ\94â´° âµ\8f âµ\93âµ\99âµ\8eâµ\89âµ\8d, âµ\99â´½âµ\9bâµ\8e â´°âµ\99âµ\8eâµ\89âµ\8d: âµ\89âµ\99âµ\8e âµ\8f âµ\93âµ\99âµ\8eâµ\89âµ\8d). âµ\89âµ\99âµ\8fâ´¼âµ\8dâµ\8f âµ\8f âµ\9câ´°âµ\99âµ\8fâµ\89ⵡâµ\89âµ\8f âµ\89âµ\8dâµ\8dâ´°âµ\8f â´³ [[Special:Watchlist|âµ\9câ´°âµ\8dⴳⴰâµ\8eâµ\9c âµ\8f âµ\93ⴹⴼⴼâµ\93âµ\94 ⵏⴽ]] ⵔⴰⴷ ⵜⵢⴰⵔⴰⵏ ⵙ <strong>ⵓⵣⵓⵔⴰⵔ</strong>",
+       "recentchangeslinked-summary": "âµ\99â´½âµ\9bâµ\8e âµ\89âµ\99âµ\8e âµ\8f âµ\9câ´°âµ\99âµ\8fâ´° âµ\83âµ\8eâ´° â´°â´· âµ\9câµ£âµ\94â´· âµ\89âµ\99âµ\8fâµ\89â´¼âµ\89âµ\8dâµ\8f âµ\89âµ\8eâ´°âµ¢âµ\8fâµ\93âµ\9câµ\8f â´³ âµ\9câ´°âµ\99âµ\8fâµ\89ⵡâµ\89âµ\8f âµ\89âµ\9câµ\9cⴰⵡâµ\89âµ\8f âµ\99â´³ âµ\8fâµ\96 âµ\96âµ\94 âµ\9câ´°âµ\99âµ\8fâ´° â´°â´· (ⴼⴰâµ\94 â´°â´· âµ\9câµ¥âµ\94â´· âµ\89â´³âµ\8eâ´°âµ\8eâµ\8f âµ\8f â´½âµ\94â´° âµ\8f âµ\93âµ\99âµ\8eâµ\89âµ\8d, âµ\99â´½âµ\9bâµ\8e â´°âµ\99âµ\8eâµ\89âµ\8d: âµ\89âµ\99âµ\8e âµ\8f âµ\93âµ\99âµ\8eâµ\89âµ\8d). âµ\89âµ\99âµ\8fâµ\89â´¼âµ\89âµ\8dâµ\8f âµ\8f âµ\9câ´°âµ\99âµ\8fâµ\89ⵡâµ\89âµ\8f âµ\89âµ\8dâµ\8dâ´°âµ\8f â´³ [[Special:Watchlist|âµ\9câ´°âµ\8dⴳⴰâµ\8eâµ\9c âµ\8f âµ\93ⴹⴼⴼâµ\93âµ\94 âµ\8fⵏⴽ]] ⵔⴰⴷ ⵜⵢⴰⵔⴰⵏ ⵙ <strong>ⵓⵣⵓⵔⴰⵔ</strong>",
        "recentchangeslinked-page": "ⵉⵙⵎ ⵏ ⵜⴰⵙⵏⴰ:",
        "recentchangeslinked-to": "ⵙⵎⴰⵍ ⵉⵙⵏⴼⵍⵏ ⵏ ⵜⴰⵙⵏⵉⵡⵉⵏ ⵉⵣⴷⵉⵏ ⴷ ⵜⴰⵙⵏⴰ ⵉⵜⵜⵓⴼⴽⴰⵏ ⴱⵍⴰ ⴰⴽⴽⵯ ⵎⴽ ⴰⴷ",
        "upload": "ⵙⴽⵜⵔ ⴰⴼⴰⵢⵍⵓ",
        "uploadbtn": "ⵙⴽⵜⵔ ⴰⴼⴰⵢⵍⵓ",
+       "uploadlogpage": "ⵜⵉⵎⵙⵙⴽⵜⵉⵏ ⵏ ⵓⵙⵙⴽⵜⵔ",
        "filedesc": "ⴰⵙⴳⵣⵍ",
        "upload-form-label-infoform-name": "ⵉⵙⵎ",
        "upload-form-label-usage-filename": "ⵉⵙⵎ ⵏ ⵓⴼⴰⵢⵍⵓ",
        "filehist-help": "ⴰⴷⵔ ⵖⴼ ⵓⵙⴰⴽⵓⴷ/ⴰⴽⵓⴷ ⵃⵎⴰ ⴰⴷ ⵜⵥⵔⴷ ⴰⵙⴷⴰⵡ ⵎⴰⵎⴽ ⵢⴰⴷⵍⵍⵉ ⵉⴳⴰ ⴰⵇⵓⴷ ⴰⵏ.",
        "filehist-deleteall": "ⴽⴽⵙ ⵎⴰⵕⵕⴰ",
        "filehist-deleteone": "ⴽⴽⵙ",
+       "filehist-revert": "ⵔⴰⵔ ⴷ",
        "filehist-current": "ⴰⵎⵉⵔⴰⵏ",
        "filehist-datetime": "ⴰⵙⴰⴽⵓⴷ/ⴰⴽⵓⴷ",
        "filehist-thumb": "ⵜⴰⵛⵏⵢⴰⵍⵜ",
        "filehist-thumbtext": "ⵜⴰⵛⵏⵢⴰⵍⵜ ⵏ ⵜⵓⵏⵖⵉⵍⵜ ⴳ $1",
+       "filehist-nothumb": "ⵓⵔ ⵉⵍⵍⵉ ⵓⵙⵎⵥⵉⵢ",
        "filehist-user": "ⴰⵙⵎⵔⴰⵙ",
        "filehist-dimensions": "ⵉⵎⵏⴰⴷⵏ",
        "filehist-comment": "ⴰⵖⴼⴰⵡⴰⵍ",
        "imagelinks": "ⴰⵙⵎⵔⵙ ⵏ ⵓⴼⴰⵢⵍⵓ",
        "linkstoimage": "{{PLURAL:$1|ⵉⵣⴷⴰⵢⵏ ⵏ ⵜⵙⵏⴰ|$1 ⴰⵣⴷⴰⵢ ⵏ ⵜⵙⵏⴰ}} ⵖⵔ ⵓⴼⴰⵢⵍⵓ ⴰⴷ:",
        "nolinkstoimage": "ⵓⵔ ⵍⵍⵉⵏⵜ ⵜⴰⵙⵏⵉⵡⵉⵏ ⵏⵏⴰ ⵉⵇⵇⵏⴻⵏ ⵖⵔ ⵓⴼⴰⵢⵍⵓ ⴰ.",
+       "linkstoimage-redirect": "$1 (ⴰⵙⵡⴰⵍⴰ ⵏ ⵓⴼⴰⵢⵍⵓ) $2",
        "sharedupload-desc-here": "ⴰⵙⴷⴰⵡ ⴰⴷ ⵙⴳ $1 ⵉⵥⴹⴰⵔ ⴰ ⵉⵜⵜⵡⴰⵙⵎⵔⵙ ⴳ ⵉⵙⵏⵜⴰⵢⵏ ⵢⴰⴹⵏ.\nⴰⵙⵏⵓⵎⵎⵍ ⵏⵙ ⴳ [$2 ⵜⴰⵙⵏⴰ ⵏⵙ ⵏ ⵓⵙⵏⵓⵎⵎⵍ] ⵜⵡⴰⵙⵎⴰⵍ ⵙⴰⴷⵓ.",
        "filepage-nofile": "ⵓⵔ ⵓⴼⴰⵢⵍⵓ ⵙ ⵢⵉⵙⵎ ⴰ.",
        "upload-disallowed-here": "ⵓⵔ ⵜⵓⴼⵉⵜ ⴰ ⵜⵙⵎⵎⵙⴽⵍⴷ ⴰⵙⴷⴰⵡ ⴰⴷ.",
        "statistics": "ⴰⵙⵏⵎⴽⵜⴰ",
        "statistics-pages": "ⵜⴰⵙⵏⵉⵡⵉⵏ",
        "pageswithprop-submit": "ⴷⴷⵓ",
+       "double-redirect-fixer": "ⴰⵎⵙⵙⵖⵜⵉ ⵏ ⵓⵎⵙⵡⴰⵍⴰ",
        "brokenredirects-edit": "ⵙⵏⴼⵍ",
        "brokenredirects-delete": "ⴽⴽⵙ",
        "withoutinterwiki-legend": "ⴰⵣⵡⵉⵔ",
        "newpages": "ⵜⴰⵙⵏⵉⵡⵉⵏ ⵜⵉⵎⴰⵢⵏⵓⵜⵉⵏ",
        "move": "ⵙⵎⵓⵜⵜⵉ",
        "pager-newer-n": "{{PLURAL:$1|1 ⴰⵎⴰⵢⵏⵓ ⴰⴽⴽ|$1 ⴰⵎⴰⵢⵏⵓ ⴰⴽⴽ}}",
+       "pager-older-n": "{{PLURAL:$1|1 ⴰⵣⴰⵢⴽⵓ ⴰⴽⴽ|$1 ⴰⵣⴰⵢⴽⵓ ⴰⴽⴽ}}",
        "apisandbox-examples": "ⵉⵎⴷⵢⴰⵜⵏ",
        "booksources": "ⵉⵙⵓⴳⴰⵎ ⵏ ⵓⴷⵍⵉⵙ",
        "booksources-search-legend": "ⵔⵣⵓ ⵅⴼ ⵉⴷⵍⵉⵙⵏ ⵏ ⵓⵙⴰⴳⵎ",
        "booksources-search": "ⵔⵣⵓ",
+       "specialloguserlabel": "ⴰⵎⵙⴽⴰⵔ:",
+       "speciallogtitlelabel": "ⴰⵙⴰⵖⴷ (ⴰⵣⵡⵍ ⵏⵖ {{ns:user}}:ⵉⵙⵎ ⵏ ⵓⵏⵙⵙⵔⵙ) :",
        "log": "ⵉⵣⵎⵎⴻⵎⵏ",
+       "all-logs-page": "ⵜⵉⵎⵙⵙⴽⵜⵉⵜⵉⵏ ⴰⴽⴽ ⵜⵉⵣⴰⵢⵣⵉⵏ",
+       "logempty": "ⵓⵔ ⵜⵍⵍⵉ ⴰⵡⴷ ⵢⴰⵜ ⵜⵎⵀⵍⵜ ⵉⵎⵙⴰⵙⴰⵏ ⴳ ⵜⵎⵙⵙⴽⵜⵉⵜⵉⵏ.",
        "checkbox-all": "ⵎⴰⵕⵕⴰ",
        "allpages": "ⵜⴰⵙⵏⵉⵡⵉⵏ ⴰⴽⴽ",
        "allarticles": "ⵜⴰⵙⵏⵉⵡⵉⵏ ⴰⴽⴽ",
        "mywatchlist": "ⵜⴰⵍⴳⴰⵎⵜ ⵏ ⵓⴹⴼⴼⵓⵔ",
        "watchlistfor2": "ⵉ $1 $2",
        "watch": "ⵥⵕ",
+       "unwatch": "ⴽⴽⵙ ⴰⴹⴼⴼⵓⵔ",
+       "watchlist-details": "{{PLURAL:$1|$1 ⵜⴰⵙⵏⴰ|$1 ⵏ ⵜⴰⵙⵏⵉⵡⵉⵏ}} ⴳ ⵜⵍⴳⴰⵎⵜ ⵏ ⵓⴹⴼⴼⵓⵔ ⵏⵏⴽ (ⴰⴽⴷ ⵜⴰⵙⵏⵉⵡⵉⵏ ⵏ ⵓⵎⵙⴰⵡⴰⵍ).",
+       "wlheader-showupdated": "ⵜⴰⵙⵏⵉⵡⵉⵏ ⵏⵏⴰ ⵉⵜⵜⵓⵙⵏⴼⵍⵏ ⵙⴳ ⵜⵔⵣⴼⵜ ⵏⵏⴳ ⵜⴰⵎⴳⴳⴰⵔⵓⵜ ⵜⵜⵓⵙⴽⴰⵏⴻⵏⵜ ⵙ  <strong>ⴰⵣⵓⵔⴰⵔ</strong>.",
        "wlshowlast": "ⵙⴽⵏ $1 ⵜⴰⵙⵔⴰⴳⵉⵏ $2 ⵓⵙⵙⴰⵏ ⵉⵎⴳⴳⵓⵔⴰ",
        "watchlist-options": "ⵜⵉⴷⵖⵔⵉⵏ ⵏ ⵜⵍⴳⴰⵎⵜ ⵏ ⵓⴹⴼⴼⵓⵔ",
        "enotif_reset": "ⴷⵔⵣ ⵜⴰⵙⵏⵉⵡⵉⵏ ⴰⴽⴽ ⵏⵏⴰ ⵜⵔⵣⴼⴷ",
        "deletepage": "ⴽⴽⵙ ⵜⴰⵙⵏⴰ",
        "delete-confirm": "ⴽⴽⵙ \"$1\"",
        "delete-legend": "ⴽⴽⵙ",
+       "dellogpage": "ⵜⴰⵎⵙⵙⴽⵜⵉⵜ ⵏ ⵜⵓⴽⴽⵙⴰ",
        "deletecomment": "ⵜⴰⵎⵏⵜⵉⵍⵜ:",
        "rollbacklink": "ⵔⴰⵔ",
+       "rollbacklinkcount": "ⵔⴰⵔ ⴷ $1 {{PLURAL:$1|ⴰⵙⵏⴼⵍ|ⵉⵙⵏⵉⴼⵉⵍⵏ}}",
        "changecontentmodel-reason-label": "ⵜⴰⵎⵏⵜⵉⵍⵜ:",
+       "protectlogpage": "ⵜⴰⵎⵙⵙⴽⵜⵉⵜ ⵏ ⵓⴼⵔⴰⴳ",
        "protectedarticle": "ⵉⵎⵃⴹⵉ \"[[$1]]\"",
+       "modifiedarticleprotection": "ⵉⵙⵏⴼⵍ ⴰⵙⵡⵉⵔ ⵏ ⵓⴼⵔⴰⴳ ⵉ \"[[$1]]\"",
        "protectcomment": "ⵜⴰⵎⵏⵜⵉⵍⵜ:",
        "protect-default": "ⴰⵊⵊ ⵉⵎⵙⵙⵎⵔⵙⵏ ⴰⴽⴽⵯ",
        "restriction-edit": "ⵙⵏⴼⵍ",
        "mycontris": "ⵜⵓⵎⵓⵜⵉⵏ",
        "anoncontribs": "ⵜⵓⵎⵓⵜⵉⵏ",
        "contribsub2": "ⵉ {{GENDER:$3|$1}} ($2)",
+       "nocontribs": "ⴰⵡⴷ ⵢⴰⵏ ⵓⵙⵏⴼⵍ ⵉⵎⵙⴰⵙⴰⵏ ⴷ ⵉⵙⴼⵔⴰⵏⴻⵏ ⴰⴷ ⵓⵔ ⵉⵜⵜⵢⴰⴼⴰ.",
        "uctop": "(ⴰⵎⵉⵔⴰⵏ)",
        "month": "ⵙⴳ ⵡⴰⵢⵢⵓⵔ (and earlier):",
        "year": "ⵙⴳ ⵓⵙⴳⴳⵯⴰⵙ (and earlier):",
        "sp-contributions-newbies": "ⵙⴽⵏ ⵜⵓⵎⵓⵜⵉⵏ ⵏ ⵉⵎⵉⴹⴰⵏ ⵉⵎⴰⵢⵏⵓⵜⵏ ⴽⴰⵏ",
+       "sp-contributions-blocklog": "ⵜⴰⵎⵙⵙⴽⵜⵉⵜ ⵏ ⵓⴳⴷⴷⵓⵍ",
        "sp-contributions-uploads": "ⵉⵙⴽⵜⴰⵔⵏ",
+       "sp-contributions-logs": "ⵜⵉⵎⵙⵙⴽⵜⵉⵢⵉⵏ",
        "sp-contributions-talk": "ⵎⵙⴰⵡⴰⵍ",
        "sp-contributions-search": "ⵔⵣⵓ ⵖⴼ ⵜⵓⵎⵓⵜⵉⵏ",
        "sp-contributions-username": "ⵜⴰⵏⵙⴰ ⵏ IP ⵏⵖ ⵉⵙⵎ ⵓⵎⵔⵉⵙ:",
        "isredirect": "ⵙⵡⴰⵍⴰ ⵜⴰⵙⵏⴰ",
        "istemplate": "ⴰⵙⵙⵓⵎⵢ",
        "isimage": "ⴰⵙⵖⵓⵏ ⵏ ⵓⴼⴰⵢⵍⵓ",
+       "whatlinkshere-prev": "{{PLURAL:$1|ⵜⵉⵎⵣⵔⴰⵢⵉⵏ|$1 ⵜⵉⵎⵣⵔⴰⵢⵉⵏ}}",
+       "whatlinkshere-next": "{{PLURAL:$1|ⵜⵉⵏⴹⴼⵔⵜ|$1 ⵜⵉⵏⴹⴼⴰⵔⵉⵏ}}",
        "whatlinkshere-links": "← ⵉⵙⵖⵓⵏⴻⵏ",
+       "whatlinkshere-hideredirs": "$1 ⵉⵙⵡⴰⵍⴰⵜⵏ",
        "whatlinkshere-hidetrans": "$1 ⵉⵙⵙⵓⵎⵢⵏ",
        "whatlinkshere-hidelinks": "$1 ⵉⵙⵖⵓⵏⴻⵏ",
        "whatlinkshere-hideimages": "$1 ⵉⵣⴷⴰⵢⵏ ⵖⵔ ⵓⴼⵉⵍⵢⵓ",
        "whatlinkshere-filters": "ⵜⵉⵙⵜⵜⴰⵢⵉⵏ",
        "whatlinkshere-submit": "ⴷⴷⵓ",
        "ipbreason": "ⵜⴰⵎⵏⵜⵉⵍⵜ:",
-       "ipboptions": "2 âµ\9câµ\99âµ\94â´°â´³âµ\89âµ\8f:2 âµ\9câµ\99âµ\94â´°â´³âµ\89âµ\8f,1 âµ¡â´°âµ\99âµ\99:1 âµ¡â´°âµ\99âµ\99,3 âµ¡âµ\93âµ\99âµ\99â´°âµ\8f:3 âµ¡âµ\93âµ\99âµ\99â´°âµ\8f,1 âµ\89âµ\8eâ´°âµ\8dâ´°âµ\99âµ\99:1 âµ\89âµ\8eâ´°âµ\8dâ´°âµ\99âµ\99,2 âµ\89âµ\8eâ´°âµ\8dâ´°âµ\99âµ\99âµ\8f:2 âµ\89âµ\8eâ´°âµ\8dâ´°âµ\99âµ\99âµ\8f,1 âµ¡â´°âµ¢âµ¢âµ\93âµ\94:1 âµ¡â´°âµ¢âµ¢âµ\93âµ\94,3 âµ\89ⵢⵢâµ\89âµ\94âµ\8f:3 âµ\89ⵢⵢâµ\89âµ\94âµ\8f,6 âµ\89ⵢⵢâµ\89âµ\94âµ\8f:6 âµ\89ⵢⵢâµ\89âµ\94âµ\8f,1 âµ\93âµ\99ⴳⴳⴰâµ\99:1 âµ\93âµ\99ⴳⴳⴰâµ\99,â´°âµ\94âµ\93âµ\99âµ\8eâµ\89âµ\8d:â´°âµ\94âµ\93âµ\99âµ\8eâµ\89âµ\8d",
+       "ipboptions": "2 âµ\8f âµ\9câµ\99âµ\94â´°â´³âµ\89âµ\8f:2 hours,1 âµ¡â´°âµ\99âµ\99:1 day,3 âµ\8f âµ¡âµ\93âµ\99âµ\99â´°âµ\8f:3 days,1 âµ\89âµ\8eâ´°âµ\8dâ´°âµ\99âµ\99:1 week,2 âµ\8f âµ\89âµ\8eâ´°âµ\8dâ´°âµ\99âµ\99âµ\8f:2 weeks,1 âµ¡â´°âµ¢âµ¢âµ\93âµ\94:1 month,3 âµ\8f âµ¡â´°âµ¢âµ¢âµ\93âµ\94âµ\8f:3 months,6 âµ\8f âµ¡â´°âµ¢âµ¢âµ\93âµ\94âµ\8f:6 months,1 âµ\93âµ\99ⴳⴳⵯⴰâµ\99:1 year,â´°âµ\94âµ\93âµ\8eâµ\8eâµ\89â´·:infinite",
        "blocklist-reason": "ⵜⴰⵎⵏⵜⵉⵍⵜ",
+       "infiniteblock": "ⴰⵔⵓⵎⵎⵉⴷ",
        "blocklink": "ⴳⴷⵍ",
        "contribslink": "ⵜⵓⵎⵓⵜⵉⵏ",
+       "blocklogpage": "ⵜⴰⵎⵙⵙⴽⵜⵉⵜ ⵏ ⵓⴳⴷⴷⵓⵍ",
+       "blocklogentry": "ⵉⴳⴷⵍ [[$1]] ⴰⵔ $2 $3",
+       "reblock-logentry": "ⵉⵙⵏⴼⵍ ⵜⵉⵙⵖⴰⵍ ⵏ ⵓⴳⴷⴷⵓⵍ ⵏ [[$1]] ⴷ ⵔⴰⴷ ⵉⵙⵔ ⴳ $2 $3",
+       "block-log-flags-nocreate": "ⴰⵙⵏⵓⵍⴼⵓ ⵏ ⵓⵎⵉⴹⴰⵏ ⵉⵜⵜⵡⴰⵙⴱⴷⴷ",
+       "proxyblocker": "ⴰⵎⴳⴷⴰⵍ ⵏ ⵓⴱⵔⵓⴽⵙⵉ",
+       "movelogpage": "ⵜⴰⵎⵙⵙⴽⵜⵉⵜ ⵏ ⵓⵙⵎⵓⵜⵜⵢ",
        "movereason": "ⵜⴰⵎⵏⵜⵉⵍⵜ:",
        "delete_and_move_confirm": "ⵢⴰⵀ, ⴽⴽⵙ ⵜⴰⵙⵏⴰ",
        "export": "ⵙⵙⵓⴼⵖ ⵜⴰⵙⵏⵉⵡⵉⵏ",
        "allmessages-language": "ⵜⵓⵜⵍⴰⵢⵜ:",
        "allmessages-filter-translate": "ⵙⵙⵓⵖⵍ",
        "thumbnail-more": "ⵙⵙⵉⵎⵖⵓⵔ",
+       "importlogpage": "ⵜⴰⵎⵙⵙⴽⵜⵉⵜ ⵏ ⵉⵙⴽⵛⵓⵎⵏ",
        "tooltip-pt-userpage": "ⵜⴰⵙⵏⴰ ⵏ ⵓⵙⵎⵔⴰⵙ {{GENDER:|ⵏⵏⴽ|ⵏⵏⵎ}}",
        "tooltip-pt-mytalk": "ⵜⴰⵙⵏⴰ {{GENDER:|ⵏⵏⴽ|ⵏⵏⵎ}} ⵏ ⵓⵎⵙⴰⵡⴰⵍ",
        "tooltip-pt-preferences": "ⵉⵙⵎⵏⵢⵉⴼⵏ {{GENDER:|ⵏⵏⴽ|ⵏⵏⵎ}}",
        "pageinfo-header-basic": "ⵉⵏⵖⵎⵉⵙⵏ ⵏ ⵜⵙⵉⵍⴰ",
        "pageinfo-header-edits": "ⵙⵏⴼⵍ ⴰⵎⵣⵔⵓⵢ",
        "pageinfo-header-restrictions": "ⴰⴼⵔⴰⴳ ⵏ ⵜⴰⵙⵏⴰ",
+       "pageinfo-header-properties": "ⵜⵉⵖⴰⵔⵉⵡⵉⵏ ⵏ ⵜⴰⵙⵏⴰ",
        "pageinfo-display-title": "ⵙⴽⵏ ⴰⵣⵡⵍ",
+       "pageinfo-default-sort": "ⵜⴰⵙⴰⵔⵓⵜ ⵏ ⵓⵏⵎⴰⵍⴰ ⵙ ⵓⵡⵏⵓⵍ",
+       "pageinfo-length": "ⵜⵉⴷⴷⵉ ⵏ ⵜⴰⵙⵏⴰ (ⵙ ⵓⴱⴰⵢⵜ)",
        "pageinfo-article-id": "ID ⵏ ⵜⴰⵙⵏⴰ",
        "pageinfo-language": "ⵜⵓⵜⵍⴰⵢⵜ ⵏ ⵜⵙⵏⴰ",
+       "pageinfo-content-model": "ⴰⵎⵓⴷⵎ ⵏ ⵜⵓⵎⴰⵢⵜ ⵏ ⵜⴰⵙⵏⴰ",
+       "pageinfo-robot-policy": "ⴰⵙⴳⴱⵔ ⵙ ⵉⵔⵓⴱⵓⵜⵏ",
        "pageinfo-robot-index": "ⵉⵜⵜⵓⴼⵔⴰⴳ",
        "pageinfo-robot-noindex": "ⵓⵔ ⵉⵜⵜⵓⴼⵔⴰⴳ",
        "pageinfo-watchers": "ⵓⵟⵟⵓⵏ ⵏ ⵉⵎⵥⵕⴰⵢⵏ ⵏ ⵜⴰⵙⵏⴰ",
        "pageinfo-few-watchers": "ⴷⵔⵓⵙ ⵅⴼ $1 {{PLURAL:$1|ⴰⵎⴰⵏⵏⴰⵢ|ⵉⵎⴰⵏⵏⴰⵢⵏ}}",
        "pageinfo-redirects-name": "ⵓⵟⵟⵓⵏ ⵏ ⵉⵙⵡⴰⵍⴰⵜⵏ ⵖⵔ ⵜⴰⵙⵏⴰ ⴰⴷ",
        "pageinfo-subpages-name": "ⵓⵟⵟⵓⵏ ⵏ ⵜⴷⵓⵙⵏⵉⵡⵉⵏ ⵏ ⵜⴰⵙⵏⴰ ⴰⴷ",
+       "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|ⴰⵙⵡⴰⵍⴰ|ⵉⵙⵡⴰⵍⴰⵜⵏ}}; $3 {{PLURAL:$3|ⴰⵔⵙⵡⴰⵍⴰ|ⵉⵔⵙⵡⴰⵍⴰⵜⵏ}})",
        "pageinfo-firstuser": "ⴰⵎⵙⵏⵓⵍⴼⵓ ⵏ ⵜⴰⵙⵏⴰ",
        "pageinfo-firsttime": "ⴰⵙⴰⴽⵓⴷ ⵏ ⵓⵙⵏⴼⵍⵓⵍ ⵏ ⵜⴰⵙⵏⴰ",
        "pageinfo-lastuser": "ⴰⵎⵙⵏⴼⵍ ⴰⵎⴳⴳⴰⵔⵓ",
        "pageinfo-lasttime": "ⴰⵙⴰⴽⵓⴷ ⵏ ⵓⵙⵏⴼⵍ ⴰⵎⴳⴳⴰⵔⵓ",
        "pageinfo-edits": "ⵎⴰⵕⵕⴰ ⵓⵟⵟⵓⵏ ⵏ ⵉⵙⵏⴼⴰⵍⵏ",
        "pageinfo-authors": "ⵓⵟⵟⵓⵏ ⴰⵎⵖⵔⵓⴷ ⵏ ⵉⵎⴰⵔⴰⵜⵏ ⵉⵎⵢⴰⵍⵍⴰⵏ",
+       "pageinfo-recent-edits": "ⵓⵟⵟⵓⵏ ⵏ ⵉⵙⵏⴼⵍⵏ ⵉⵏⴳⴳⵓⵔⴰ (ⴳ $1 ⴳⴳⵔⴰⵏⵉⵏ)",
+       "pageinfo-recent-authors": "ⵓⵟⵟⵓⵏ ⵏ ⵉⵎⴰⵔⴰⵜⵏ ⵉⵎⴳⴳⵓⵔⴰ ⵉⵎⵢⴰⵍⵍⴰⵏ",
        "pageinfo-magic-words": "ⵉⵎⴽⵓⵔⴰⵔⵏ {{PLURAL:$1|ⵜⴰⴳⵓⵔⵉ|ⵜⵉⴳⵓⵔⵉⵡⵉⵏ}} ($1)",
        "pageinfo-hidden-categories": "ⵏⵜⵍ {{PLURAL:$1|ⴰⵙⵎⵉⵍ|ⵉⵙⵎⵉⵍⵏ}}($1)",
        "pageinfo-toolboxlink": "ⴰⵏⵖⵎⵉⵙ ⵖⴼ ⵜⴰⵙⵏⴰ",
        "pageinfo-protect-cascading-yes": "ⵢⴰⵀ",
        "previousdiff": "ⴰⵙⵏⴼⵍ ⴰⵎⴳⴳⴰⵔⵓ",
        "nextdiff": "ⴰⵙⵏⴼⵍ ⴰⵎⴰⵢⵏⵓ",
+       "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|ⵜⴰⵙⵏⴰ|ⵜⴰⵙⵏⵉⵡⵉⵏ}}",
        "file-info-size": "$1 × $2 ⵉⴷ ⴱⵉⴽⵙⵍ, ⵜⵉⴷⴷⵉ ⵏ ⵓⴼⴰⵢⵍⵓ: $3, ⴰⵏⴰⵡ MIME: $4",
+       "file-info-size-pages": "$1 × $2 ⴱⵉⴽⵙⵉⵍ, ⵜⵉⴷⴷⵉ ⵏ ⵓⴼⴰⵢⵍⵓ: $3, ⴰⵏⴰⵡ ⵏ MIME: $4, $5 {{PLURAL:$5|ⵜⴰⵙⵏⴰ|ⵜⴰⵙⵏⵉⵡⵉⵏ}}",
        "file-nohires": "ⵓⵔ ⵜⵍⵍⵉ ⵜⵙⴷⴷⵉ ⵉⵎⵇⵇⵓⵔⵏ ⵓⴳⴳⴰⵔ",
        "svg-long-desc": "ⴰⴼⴰⵢⵍⵓ SVG, ⵙ $1 × $2 ⵉⴷ ⴱⵉⴽⵙⵍ, ⵜⵉⴷⴷⵉ ⵏ ⵓⴼⴰⵢⵍⵓ: $3",
        "show-big-image": "ⴰⴼⴰⵢⵍⵓ ⴰⵙⴰⵍⴰⵏ",
        "exif-make": "ⴰⵎⴽⵓⵏ ⵏ ⵜⵎⵙⵙⵓⵍⴰⴼⵜ",
        "exif-model": "ⴰⵏⴰⵡ ⵏ ⵜⵙⵡⵍⴰⴼⵜ",
        "exif-software": "ⴰⵙⵖⵥⴰⵏ ⵉⵜⵜⵓⵙⵎⵔⵙⵏ",
+       "exif-exifversion": "ⵜⴰⵎⵓⵖⵍⵉ Exif",
        "exif-colorspace": "ⵜⵉⵔⵉⵡⵜ ⵏ ⵓⴽⵍⵓ",
        "exif-datetimeoriginal": "ⴰⵙⴰⴽⵓⴷ ⴷ ⵜⵉⵣⵉ ⵏ ⵓⵙⴽⴽⵉⵔ ⵏ ⵉⵙⴼⴽⴰ",
        "exif-datetimedigitized": "ⴰⵙⴰⴽⵓⴷ ⴷ ⵜⵉⵣⵉ ⵏ ⵓⵙⵓⵟⵟⵏ",
        "watchlisttools-clear": "ⵙⴼⴹ ⵜⴰⵍⴳⴰⵎⵜ ⵏ ⵓⴹⴼⴼⵓⵔ",
        "watchlisttools-view": "ⵙⴽⵏ ⵉⵙⵏⵉⴼⵉⵍⵏ ⴷ ⵢⵓⵙⴰⵏ",
        "watchlisttools-edit": "ⵥⵕ ⴷ ⵜⵙⵏⴼⵍⴷ ⵜⴰⵍⴳⴰⵎⵜ ⵏ ⵓⴹⴼⴼⵓⵔ",
+       "watchlisttools-raw": "ⵙⵏⴼⵍ ⵜⴰⵍⴳⴰⵎⵜ ⵏ ⵓⵙⵎⵉⵜⵔ ⴰⵎⵙⴰⵔⵉ",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|ⴰⵎⵙⴰⵡⴰⵍ]])",
        "version-poweredby-translators": "ⵉⵎⵙⵖⵓⵍⵏ ⵏ translatewiki.net",
+       "redirect": "ⵙⵡⴰⵍⴰ ⵙ ID ⵏ ⵓⴼⴰⵢⵍⵓ, ⴰⵏⵙⵙⵎⵔⵙ, ⵜⴰⵙⵏⴰ, ⴰⵣⵣⵔⴰⵢ ⵏⵖ ⵜⴰⵎⵙⵙⴽⵜⵉⵜ",
+       "redirect-summary": "ⵜⴰⵙⵏⴰ ⴰⴷ ⵉⵥⵍⵉⵏ ⵜⵙⵡⴰⵍⴰ ⵖⵔ  ⵢⴰⵏ ⵓⴼⴰⵢⵍⵓ (ⵉⵜⵜⵓⴼⴽⴰ ⵢⵉⵙⵎ ⵏ ⴼⴰⵢⵍⵓ), ⵢⴰⵜ ⵜⴰⵙⵏⴰ (ID ⵏ ⵓⵣⵣⵔⴰⵢ ⵏⵖ ⵏ ⵜⴰⵙⵏⴰ ⵉⵜⵜⵓⴼⴽⴰⵏ), ⵢⴰⵜ ⵜⴰⵙⵏⴰ ⵏ ⵓⵏⵙⵙⵎⵔⵙ (ⴰⵎⵙⵎⴰⴳⵉ ⵓⵎⴹⵉⵏ ⵏ ⵓⵏⵙⵙⵎⵔⵙ ⵉⵜⵜⵓⴼⴽⴰ), ⵏⵖ ⵢⴰⵜ ⵜⵓⴷⵉⴼⵜ ⵏ ⵜⵎⵙⵙⴽⵜⵉⵜ  (ID ⵏ ⵜⵎⵙⵙⴽⵜⵉⵜ ⵉⵜⵜⵓⴼⴽⴰ). ⴰⵙⵙⵎⵔⵙ : [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], [[{{#Special:Redirect}}/user/101]], ⵏⵖ [[{{#Special:Redirect}}/logid/186]].",
        "redirect-submit": "ⴷⴷⵓ",
+       "redirect-lookup": "ⵔⵣⵓ ⴳ:",
        "redirect-value": "ⴰⵣⴰⵍ",
        "redirect-user": "ID ⵏ ⵓⵎⵙⵙⵎⵔⵙ",
        "redirect-page": "ID ⵏ ⵜⴰⵙⵏⴰ",
        "tags-active-no": "ⵓⵀⵓ",
        "tags-edit": "ⵙⵏⴼⵍ",
        "tags-delete": "ⴽⴽⵙ",
+       "tags-hitcount": "$1 {{PLURAL:$1|ⵓⵙⵏⴼⵍ|ⵉⵙⵏⴼⵉⵍⵏ}}",
        "tags-create-reason": "ⵜⴰⵎⵏⵜⵉⵍⵜ:",
        "tags-delete-reason": "ⵜⴰⵎⵏⵜⵉⵍⵜ:",
        "tags-activate-reason": "ⵜⴰⵎⵏⵜⵉⵍⵜ:",
        "htmlform-no": "ⵓⵀⵓ",
        "htmlform-yes": "ⵢⴰⵀ",
        "logentry-delete-delete": "$1 {{GENDER:$2|ⵉⴽⴽⵙ|ⵜⴽⴽⵙ}} ⵜⴰⵙⵏⴰ $3",
+       "logentry-delete-restore": "$1 {{GENDER:$2|ⵉⵔⵓⵔ ⴷ|ⵜⵔⵓⵔ ⴷ}} ⵜⴰⵙⵏⴰ $3 ($4)",
        "revdelete-content-hid": "ⵜⴻⵜⵜⵓⵏⵜⴰⵍ ⵜⵓⵎⴰⵢⵜ",
        "logentry-move-move": "$1 {{GENDER:$2|ⵉⵙⵎⵓⵜⵜⵉ|ⵜⵙⵎⵓⵜⵜⵉ}} ⵜⴰⵙⵏⴰ ⵙⴳ $3 ⵖⵔ $4",
        "logentry-move-move-noredirect": "{{GENDER:$2|ⵉⵙⵎⵓⵜⵜⵉ}} $1 ⵜⴰⵙⵏⴰ $3 ⵖⵔ $4 ⵎⵉⵏ ⴰⴷ ⵉⴼⵍ redirect",
+       "logentry-move-move_redir": "{{GENDER:$2|ⵉⵙⵎⵓⵜⵜⵉ|ⵜⵙⵎⵓⵜⵜⵉ}} $1 ⵜⴰⵙⵏⴰ $3 ⵖⵔ $4 ⵏⵏⵉⴳ ⵏ ⵓⵙⵡⴰⵍⴰ",
+       "logentry-patrol-patrol-auto": "$1 {{GENDER:$2 ⵉⵔⵛⵎ ⵜⵜ ⵙ ⵜⵡⵓⵔⵎⴰⵏⵜ}} ⴰⵣⵣⵔⴰⵢ $4 ⵏ ⵜⴰⵙⵏⴰ $3 ⵎⴰⵙ ⵜⴻⵜⵜⵓⵖⵔⴰ ⵉ ⵜⵉⴽⴽⵍⵜ ⵢⴰⴹⵏ",
        "logentry-newusers-create": "{{GENDER:$2|ⵉⵙⵏⴼⵍ ⵓⵏⵙⵙⵎⵔⵙ|ⵜⵙⵏⴼⵍ ⵜⵏⵙⵙⵎⵔⵙⵜ}} $1 ⴰⵎⵉⴹⴰⵏ ⵏⵙ",
+       "logentry-newusers-autocreate": "ⵉⵜⵜⵡⴰⵙⵏⵓⵍⴼⴰ ⵓⵎⵉⴹⴰⵏ ⵏ {{GENDER:$2|ⵓⵎⵙⵙⵎⵔⵙ|ⵜⵎⵙⵙⵎⵔⵙⵜ}} $1 ⵙ ⵓⵡⵔⵎⴰⵏ",
        "logentry-upload-upload": "{{GENDER:$2|ⵉⵙⴽⵜⵔ|ⵜⵙⴽⵜⵔ}} $1 $3",
+       "logentry-upload-overwrite": "{{GENDER:$2|ⵉⵙⴽⵜⵔ|ⵜⵙⴽⵜⵔ}} $1 ⵢⴰⵜ ⵜⵎⵓⵖⵍⵉ ⵜⴰⵎⴰⵢⵏⵓⵜ ⵏ $3",
        "rightsnone": "(ⵓⵍⴰ ⵢⴰⵏ)",
        "feedback-message": "ⵜⵓⵣⵉⵏⵜ:",
        "feedback-thanks-title": "ⵜⴰⵏⵎⵎⵉⵔⵜ!",
        "pagelang-language": "ⵜⵓⵜⵍⴰⵢⵜ",
        "right-pagelang": "ⵙⵏⴼⵍ ⵜⵓⵜⵍⴰⵢⵜ ⵏ ⵜⴰⵙⵏⴰ",
        "mediastatistics-header-total": "ⵎⴰⵕⵕⴰ ⵉⴼⵓⵍⵢⴰ",
+       "randomrootpage": "ⵜⴰⵙⵏⴰ ⴰⵥⵓⵔ ⵜⴰⵡⴳⴰⵛⵓⵔⵜ",
        "log-action-filter-all": "ⵎⴰⵕⵕⴰ",
        "authmanager-authplugin-setpass-denied": "ⵎⴰⵕⵕⴰ",
        "authmanager-email-label": "ⵉⵎⴰⵢⵍ",
index 30a5434..dfa8a60 100644 (file)
        "speciallogtitlelabel": "目标(标题,或对于用户使用{{ns:user}}:用户名):",
        "log": "日志",
        "logeventslist-submit": "显示",
+       "logeventslist-more-filters": "更多过滤器:",
+       "logeventslist-patrol-log": "巡查日志",
+       "logeventslist-tag-log": "标签日志",
        "all-logs-page": "所有公开日志",
        "alllogstext": "所有{{SITENAME}}公开日志的联合展示。您可以通过选择日志类型、输入用户名(区分大小写)或相关页面(区分大小写)筛选日志条目。",
        "logempty": "在日志中不存在匹配项。",
        "uctop": "(当前)",
        "month": "截止月份:",
        "year": "截止年份:",
+       "date": "起始日期(及更早):",
        "sp-contributions-newbies": "只显示新账户的贡献",
        "sp-contributions-newbies-sub": "新账户的贡献",
        "sp-contributions-newbies-title": "新账户的用户贡献",
index 21cfdcc..9970649 100644 (file)
        "speciallogtitlelabel": "目標 (標題或以 {{ns:user}}:使用者 表示使用者):",
        "log": "日誌",
        "logeventslist-submit": "顯示",
+       "logeventslist-more-filters": "更多篩選",
+       "logeventslist-patrol-log": "巡查日誌",
+       "logeventslist-tag-log": "標籤日誌",
        "all-logs-page": "所有公開日誌",
        "alllogstext": "合併顯示所有 {{SITENAME}} 中所有類型的日誌。\n您可以點選下拉式選單選擇日誌的類型,指定使用者名稱 (區分大小寫) 或影響的頁面 (區分大小寫)。",
        "logempty": "無符合條件的日誌。",
        "uctop": "(目前)",
        "month": "截止月份:",
        "year": "截止年份:",
+       "date": "開始日期(更早之前):",
        "sp-contributions-newbies": "僅顯示新帳號的貢獻",
        "sp-contributions-newbies-sub": "新帳號的貢獻",
        "sp-contributions-newbies-title": "新帳號的使用者貢獻",
diff --git a/languages/messages/MessagesSat.php b/languages/messages/MessagesSat.php
new file mode 100644 (file)
index 0000000..3f52c88
--- /dev/null
@@ -0,0 +1,31 @@
+<?php
+/** Santali (sat)
+ *
+ * To improve a translation please visit https://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ *
+ */
+
+$fallback = 'bn';
+
+$namespaceNames = [
+       NS_MEDIA            => 'ᱢᱤᱰᱤᱭᱟ',
+       NS_SPECIAL          => 'ᱟᱥᱚᱠᱟᱭ',
+       NS_MAIN             => 'ᱢᱩᱬᱩᱛ',
+       NS_TALK             => 'ᱜᱟᱞᱢᱟᱨᱟᱣ',
+       NS_USER             => 'ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ',
+       NS_USER_TALK        => 'ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ_ᱜᱟᱞᱢᱟᱨᱟᱣ',
+       NS_PROJECT_TALK     => '$1_ᱢᱤᱰᱤᱭᱟᱣᱤᱠᱤ',
+       NS_FILE             => 'ᱨᱮᱫ',
+       NS_FILE_TALK        => 'ᱨᱮᱫ_ᱜᱟᱞᱢᱟᱨᱟᱣ',
+       NS_MEDIAWIKI        => 'ᱢᱤᱰᱤᱭᱟᱣᱤᱠᱤ',
+       NS_MEDIAWIKI_TALK   => 'ᱢᱤᱰᱤᱭᱟᱣᱤᱠᱤ_ᱜᱟᱞᱢᱟᱨᱟᱣ',
+       NS_TEMPLATE         => 'ᱪᱷᱟᱸᱪ',
+       NS_TEMPLATE_TALK    => 'ᱪᱷᱟᱸᱪ_ᱜᱟᱞᱢᱟᱨᱟᱣ',
+       NS_HELP             => 'ᱜᱚᱸᱲᱚᱸ',
+       NS_HELP_TALK        => 'ᱜᱚᱸᱲᱚᱸ_ᱜᱟᱞᱢᱟᱨᱟᱣ',
+       NS_CATEGORY         => 'ᱛᱷᱚᱠ',
+       NS_CATEGORY_TALK    => 'ᱛᱷᱚᱠ_ᱜᱟᱞᱢᱟᱨᱟᱣ',
+];
index e066300..3fa30cb 100644 (file)
@@ -75,12 +75,12 @@ class RemoveUnusedAccounts extends Maintenance {
                        # group or if it's touched within the $touchedSeconds seconds.
                        $instance = User::newFromId( $row->user_id );
                        if ( count( array_intersect( $instance->getEffectiveGroups(), $excludedGroups ) ) == 0
-                               && $this->isInactiveAccount( $row->user_id, $row->actor_id, true )
+                               && $this->isInactiveAccount( $row->user_id, $row->actor_id ?? null, true )
                                && wfTimestamp( TS_UNIX, $row->user_touched ) < wfTimestamp( TS_UNIX, time() - $touchedSeconds )
                        ) {
                                # Inactive; print out the name and flag it
                                $delUser[] = $row->user_id;
-                               if ( $row->actor_id ) {
+                               if ( isset( $row->actor_id ) && $row->actor_id ) {
                                        $delActor[] = $row->actor_id;
                                }
                                $this->output( $row->user_name . "\n" );
@@ -138,7 +138,7 @@ class RemoveUnusedAccounts extends Maintenance {
         * (No edits, no deleted edits, no log entries, no current/old uploads)
         *
         * @param int $id User's ID
-        * @param int $actor User's actor ID
+        * @param int|null $actor User's actor ID
         * @param bool $master Perform checking on the master
         * @return bool
         */
index 34add28..83525f2 100644 (file)
@@ -37,6 +37,8 @@
                 *  - `pluralRules`
                 *  - `digitGroupingPattern`
                 *  - `fallbackLanguages`
+                *  - `bcp47Map`
+                *  - `languageNames`
                 *
                 * @property
                 */
index 45863a3..808f347 100644 (file)
                },
 
                /**
-                * Formats language tags according the BCP47 standard.
+                * Formats language tags according the BCP 47 standard.
                 * See LanguageCode::bcp47 for the PHP implementation.
                 *
                 * @param {string} languageTag Well-formed language tag
                 * @return {string}
                 */
                bcp47: function ( languageTag ) {
-                       var formatted,
+                       var bcp47Map,
+                               formatted,
+                               segments,
                                isFirstSegment = true,
-                               isPrivate = false,
-                               segments = languageTag.split( '-' );
+                               isPrivate = false;
 
+                       languageTag = languageTag.toLowerCase();
+
+                       bcp47Map = mw.language.getData( mw.config.get( 'wgUserLanguage' ), 'bcp47Map' );
+                       if ( bcp47Map && Object.prototype.hasOwnProperty.call( bcp47Map, languageTag ) ) {
+                               languageTag = bcp47Map[ languageTag ];
+                       }
+
+                       segments = languageTag.split( '-' );
                        formatted = segments.map( function ( segment ) {
                                var newSegment;
 
index 892f044..ff27c58 100644 (file)
         */
        function justify() {
                var lastTop,
-                       $img,
-                       imgWidth,
-                       imgHeight,
-                       captionWidth,
                        rows = [],
                        $gallery = $( this );
 
                $gallery.children( 'li.gallerybox' ).each( function () {
-                       // Math.floor to be paranoid if things are off by 0.00000000001
-                       var top = Math.floor( $( this ).position().top ),
+                       var $img, imgWidth, imgHeight, outerWidth, captionWidth,
+                               // Math.floor, to be paranoid if things are off by 0.00000000001
+                               top = Math.floor( $( this ).position().top ),
                                $this = $( this );
 
                        if ( top !== lastTop ) {
-                               rows[ rows.length ] = [];
+                               rows.push( [] );
                                lastTop = top;
                        }
 
                        }
 
                        captionWidth = $this.children().children( 'div.gallerytextwrapper' ).width();
-                       rows[ rows.length - 1 ][ rows[ rows.length - 1 ].length ] = {
+                       outerWidth = $this.outerWidth();
+                       rows[ rows.length - 1 ].push( {
                                $elm: $this,
-                               width: $this.outerWidth(),
+                               width: outerWidth,
                                imgWidth: imgWidth,
-                               // XXX: can divide by 0 ever happen?
+                               // FIXME: Deal with devision by 0.
                                aspect: imgWidth / imgHeight,
                                captionWidth: captionWidth,
                                height: imgHeight
-                       };
+                       } );
 
                        // Save all boundaries so we can restore them on window resize
                        $this.data( 'imgWidth', imgWidth );
                        $this.data( 'imgHeight', imgHeight );
-                       $this.data( 'width', $this.outerWidth() );
+                       $this.data( 'width', outerWidth );
                        $this.data( 'captionWidth', captionWidth );
                } );
 
                                        $innerDiv = $outerDiv.children( 'div' ).first();
                                        $imageDiv = $innerDiv.children( 'div.thumb' );
                                        $imageElm = $imageDiv.find( 'img' ).first();
-                                       imageElm = $imageElm.length ? $imageElm[ 0 ] : null;
                                        $caption = $outerDiv.find( 'div.gallerytextwrapper' );
 
                                        // Since we are going to re-adjust the height, the vertical
                                                $caption.width( curRow[ j ].captionWidth + ( newWidth - curRow[ j ].imgWidth ) );
                                        }
 
-                                       if ( imageElm ) {
-                                               // We don't always have an img, e.g. in the case of an invalid file.
+                                       // We don't always have an img, e.g. in the case of an invalid file.
+                                       if ( $imageElm[ 0 ] ) {
+                                               imageElm = $imageElm[ 0 ];
                                                imageElm.width = newWidth;
                                                imageElm.height = preferredHeight;
                                        } else {
                        $( this ).find( 'div.gallerytextwrapper' ).width( captionWidth );
 
                        $imageElm = $( this ).find( 'img' ).first();
-                       imageElm = $imageElm.length ? $imageElm[ 0 ] : null;
-                       if ( imageElm ) {
+                       if ( $imageElm[ 0 ] ) {
+                               imageElm = $imageElm[ 0 ];
                                imageElm.width = imgWidth;
                                imageElm.height = imgHeight;
                        } else {
index 72b40fe..ad0bc4a 100644 (file)
@@ -58,6 +58,7 @@
                .oo-ui-checkboxInputWidget {
                        // Workaround for IE11 rendering issues. T162098
                        display: block;
+                       padding-top: 1em;
                }
        }
 
index 0ae3f53..b151002 100644 (file)
@@ -1394,7 +1394,7 @@ Non-word characters don't terminate tag names (T19663, T42670, T54022)
 <s.foo> doesn't terminate </s.foo>
 
 <sub-ID#1>
-!! html
+!! html/php
 <p>&lt;blockquote|&gt;a&lt;/blockquote&gt;
 </p><p>&lt;b→&gt; doesn't terminate &lt;/b→&gt;
 </p><p>&lt;bä&gt; doesn't terminate &lt;/bä&gt;
@@ -1457,12 +1457,10 @@ parsoid=wt2html
 </b>
 
 <s.foo>s</s>
-!! html/php+tidy
+!! html+tidy
 <p class="mw-empty-elt">
 </p><p>&lt;s.foo&gt;s
 </p>
-!! html/parsoid
-<p>&lt;s.foo&gt;s</p>
 !! end
 
 ###
@@ -2021,22 +2019,18 @@ a <div>foo</div>
 </p>
 !! end
 
-# Remex wraps empty tag runs with p-tags.
-# Parsoid strips them out during p-wrapping.
 !! test
 No p-wrappable content
+!! options
+parsoid=wt2html,html2html
 !! wikitext
 <span><div>x</div></span>
 <span><s><div>x</div></s></span>
 <small><em></em></small><span><s><div>x</div></s></span>
-!! html/php+tidy
+!! html+tidy
 <span><div>x</div></span>
 <span><s><div>x</div></s></span>
 <p><small><em></em></small></p><span><s><div>x</div></s></span>
-!! html/parsoid
-<span><div>x</div></span>
-<span><s><div>x</div></s></span>
-<small><em></em></small><span><s><div>x</div></s></span>
 !! end
 
 # T177612: Parsoid-only test
@@ -2052,6 +2046,8 @@ x
 
 !! test
 Block tag on one line (<blockquote>)
+!! options
+parsoid=wt2html,html2html
 !! wikitext
 a <blockquote>foo</blockquote>
 
@@ -2083,6 +2079,8 @@ b </p><div>foo</div>
 
 !! test
 Block tag on both lines (<blockquote>)
+!! options
+parsoid=wt2html,html2html
 !! wikitext
 a <blockquote>foo</blockquote>
 
@@ -2122,12 +2120,6 @@ x </p><div>foo</div><p> z
 </p>
 !! end
 
-# The difference between Parsoid & Remex here
-# is because of Parsoid's Tidy-emulation code
-# for p-wrapping. We'll start work to remove this
-# emulation code in Parsoid sooner than later.
-# Remex wraps empty tag runs with p-tags.
-# Parsoid strips them out in a separate pass.
 !! test
 Empty lines between lines with block tags
 !! wikitext
@@ -2349,6 +2341,22 @@ hi
 </p>
 !! end
 
+!! test
+Dangling table row doesn't prevent p-wrapping
+!! options
+parsoid=wt2html,html2html
+!! wikitext
+{|
+| hi
+|-
+|} ho
+!! html/parsoid
+<table>
+<tbody><tr><td>hi</td></tr>
+<tr class="mw-empty-elt"></tr>
+</tbody></table><p> ho</p>
+!! end
+
 ###
 ### Preformatted text
 ###
@@ -2486,6 +2494,8 @@ Bar
 
 !! test
 T17491: <ins>/<del> in blockquote
+!! options
+parsoid=wt2html
 !! wikitext
 <blockquote>
 Foo <del>bar</del> <ins>baz</ins> quux
@@ -2496,10 +2506,17 @@ Foo <del>bar</del> <ins>baz</ins> quux
 </p>
 </blockquote>
 
+!! html+tidy
+<blockquote>
+<p>Foo <del>bar</del> <ins>baz</ins> quux
+</p>
+</blockquote>
 !! end
 
 !! test
 T17491: <ins>/<del> in blockquote (2)
+!! options
+parsoid=wt2html
 !! wikitext
 <blockquote>Foo <del>bar</del> <ins>baz</ins> quux
 </blockquote>
@@ -2508,7 +2525,7 @@ T17491: <ins>/<del> in blockquote (2)
 </blockquote>
 
 !! html+tidy
-<blockquote><p>Foo </p><del>bar</del> <ins>baz</ins><p> quux
+<blockquote><p>Foo <del>bar</del> <ins>baz</ins> quux
 </p></blockquote>
 !! end
 
@@ -2833,6 +2850,7 @@ Barack Obama <President> of the United States
 </p>
 !! end
 
+## Remex doesn't account for fostered content.
 !! test
 Handle broken pre-like tags (T66025)
 !! options
@@ -2851,7 +2869,7 @@ parsoid=wt2html
 !! html/parsoid
 <pre typeof="mw:Transclusion mw:Extension/pre" about="#mwt2" data-parsoid='{"stx":"html","a":{"&lt;pre":null},"sa":{"&lt;pre":""},"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;pre &lt;pre>x&lt;/pre>"}},"i":0}}]}'>x</pre>
 
-<span data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true}'>&lt;pre </span><table data-parsoid='{"stx":"html"}'></table>
+<p data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true}'>&lt;pre </p><table data-parsoid='{"stx":"html"}'></table>
 !! end
 
 !! test
@@ -3513,8 +3531,10 @@ parsoid=wt2html,html2html
 </td></tr></tbody></table>
 !! end
 
-!!test
+!! test
 3a. Indent-Pre and block tags (single-line html)
+!! options
+parsoid=wt2html,html2html
 !! wikitext
  a <p> foo </p>
  b <div> foo </div>
@@ -3526,18 +3546,17 @@ parsoid=wt2html,html2html
  c <blockquote> foo </blockquote>
 <pre><span> foo </span>
 </pre>
-!! html/parsoid
- <p>a </p><p data-parsoid='{"stx":"html"}'> foo </p>
- <p>b </p><div data-parsoid='{"stx":"html"}'> foo </div>
- <p>c </p><blockquote data-parsoid='{"stx":"html"}'> foo </blockquote>
-<pre><span> foo </span>
-</pre>
 !! html/php+tidy
 <p> a </p><p> foo </p><p>
  b </p><div> foo </div><p>
  c </p><blockquote><p> foo </p></blockquote>
 <pre><span> foo </span>
 </pre>
+!! html/parsoid
+<p> a </p><p data-parsoid='{"stx":"html"}'> foo </p><p>
+ b </p><div data-parsoid='{"stx":"html"}'> foo </div><p>
+ c </p><blockquote data-parsoid='{"stx":"html"}'><p> foo </p></blockquote>
+<pre><span data-parsoid='{"stx":"html"}'> foo </span></pre>
 !! end
 
 !! test
@@ -3625,17 +3644,17 @@ foo
 
 !! test
 4. Indent-Pre and extension tags
+!! options
+parsoid=wt2html,html2html
 !! wikitext
  a <tag />
-!! html/php
- a <pre>
-NULL
+!! html/php+tidy
+<p> a </p><pre>NULL
 array (
 )
 </pre>
-
 !! html/parsoid
- a <pre typeof="mw:Extension/tag" about="#mwt2" data-parsoid='{}' data-mw='{"name":"tag","attrs":{},"body":null}'></pre>
+<p> a </p><pre typeof="mw:Extension/tag" about="#mwt2" data-mw='{"name":"tag","attrs":{},"body":null}'></pre>
 !! end
 
 !! test
@@ -3957,7 +3976,7 @@ Simple definition
 !! wikitext
 ;name :Definition
 !! html
-<dl><dt>name&#160;</dt>
+<dl><dt>name</dt>
 <dd>Definition</dd></dl>
 
 !! end
@@ -3986,7 +4005,7 @@ Definition list with URL link
 !! wikitext
 ;http://example.com/ :definition
 !! html
-<dl><dt><a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a>&#160;</dt>
+<dl><dt><a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a></dt>
 <dd>definition</dd></dl>
 
 !! end
@@ -4017,7 +4036,7 @@ Definition list with news link containing colon
 !! wikitext
 ;news:alt.wikipedia.rox :This isn't even a real newsgroup!
 !! html/php
-<dl><dt><a rel="nofollow" class="external free" href="news:alt.wikipedia.rox">news:alt.wikipedia.rox</a>&#160;</dt>
+<dl><dt><a rel="nofollow" class="external free" href="news:alt.wikipedia.rox">news:alt.wikipedia.rox</a></dt>
 <dd>This isn't even a real newsgroup!</dd></dl>
 
 !! html/parsoid
@@ -4038,7 +4057,7 @@ Definition lists: colon in external link text
 !! wikitext
 ;[http://www.wikipedia2.org/ Wikipedia :The Next Generation] :OK, I made that up
 !! html
-<dl><dt><a rel="nofollow" class="external text" href="http://www.wikipedia2.org/">Wikipedia&#160;:The Next Generation</a>&#160;</dt>
+<dl><dt><a rel="nofollow" class="external text" href="http://www.wikipedia2.org/">Wikipedia :The Next Generation</a></dt>
 <dd>OK, I made that up</dd></dl>
 
 !! end
@@ -4057,7 +4076,7 @@ Definition lists: self-closed tag
 !! wikitext
 ;one<br/>two :two-line fun
 !! html
-<dl><dt>one<br />two&#160;</dt>
+<dl><dt>one<br />two</dt>
 <dd>two-line fun</dd></dl>
 
 !! end
@@ -4077,7 +4096,7 @@ Definition lists: excess closed tags
 !! wikitext
 ;one</b>two :bad tag fun
 !! html/php+tidy
-<dl><dt>onetwo&#160;</dt>
+<dl><dt>onetwo</dt>
 <dd>bad tag fun</dd></dl>
 !! html/parsoid
 <dl>
@@ -4114,7 +4133,7 @@ Definition and unordered list using wiki syntax nested in unordered list using h
 </li></ul>
 !! html
 <ul><li>
-<dl><dt>term&#160;</dt>
+<dl><dt>term</dt>
 <dd>description</dd></dl>
 <ul><li>unordered</li></ul>
 </li></ul>
@@ -4514,9 +4533,9 @@ Definition Lists: Mixed Lists: Test 4
 *;d1 :d2
 *;d3 :d4
 !! html
-<ul><li><dl><dt>d1&#160;</dt>
+<ul><li><dl><dt>d1</dt>
 <dd>d2</dd>
-<dt>d3&#160;</dt>
+<dt>d3</dt>
 <dd>d4</dd></dl></li></ul>
 
 !! end
@@ -4575,7 +4594,7 @@ Definition Lists: Mixed Lists: Test 9
 !! wikitext
 *;foo :bar
 !! html
-<ul><li><dl><dt>foo&#160;</dt>
+<ul><li><dl><dt>foo</dt>
 <dd>bar</dd></dl></li></ul>
 
 !! end
@@ -4586,7 +4605,7 @@ Definition Lists: Mixed Lists: Test 10
 !! wikitext
 *#;foo :bar
 !! html
-<ul><li><ol><li><dl><dt>foo&#160;</dt>
+<ul><li><ol><li><dl><dt>foo</dt>
 <dd>bar</dd></dl></li></ol></li></ul>
 
 !! end
@@ -4619,15 +4638,15 @@ Definition Lists: Mixed Lists: Test 12
 *#*#;*;;foo :bar
 *#*#;boo :baz
 !! html/php
-<ul><li><ol><li><ul><li><ol><li><dl><dt>foo&#160;</dt>
+<ul><li><ol><li><ul><li><ol><li><dl><dt>foo</dt>
 <dd><ul><li><dl><dt><dl><dt>bar</dt></dl></dd></dl></li></ul></dd></dl>
-<dl><dt>boo&#160;</dt>
+<dl><dt>boo</dt>
 <dd>baz</dd></dl></li></ol></li></ul></li></ol></li></ul>
 
 !! html/php+tidy
-<ul><li><ol><li><ul><li><ol><li><dl><dt>foo&#160;</dt>
+<ul><li><ol><li><ul><li><ol><li><dl><dt>foo</dt>
 <dd><ul><li><dl><dt><dl><dt>bar</dt></dl></dt></dl></li></ul></dd></dl></li></ol></li></ul>
-<dl><dt>boo&#160;</dt>
+<dl><dt>boo</dt>
 <dd>baz</dd></dl></li></ol></li></ul>
 !! html/parsoid
 <ul>
@@ -4645,12 +4664,12 @@ Definition Lists: Mixed Lists: Test 12
 <dl>
 <dt>
 <dl>
-<dt>foo<span typeof="mw:Placeholder" data-parsoid='{"src":" "}'>&nbsp;</span></dt>
+<dt>foo</dt>
 <dd data-parsoid='{"stx":"row"}'>bar</dd>
 </dl></dt>
 </dl></li>
 </ul></dt>
-<dt>boo<span typeof="mw:Placeholder" data-parsoid='{"src":" "}'>&nbsp;</span></dt>
+<dt>boo</dt>
 <dd data-parsoid='{"stx":"row"}'>baz</dd>
 </dl></li>
 </ol></li>
@@ -4659,6 +4678,18 @@ Definition Lists: Mixed Lists: Test 12
 </ul>
 !! end
 
+!! test
+Definition Lists: Mixed Lists: Test 13
+!! wikitext
+*#*#;*;;foo : bar
+*#*#;boo : baz
+!! html+tidy
+<ul><li><ol><li><ul><li><ol><li><dl><dt>foo&#160;</dt>
+<dd><ul><li><dl><dt><dl><dt>bar</dt></dl></dt></dl></li></ul></dd></dl></li></ol></li></ul>
+<dl><dt>boo&#160;</dt>
+<dd>baz</dd></dl></li></ol></li></ul>
+!! end
+
 # FIXME: Maybe get rid of this test?
 # From whitelist:
 # * The test is wrong, there are two colons where there should be :;
@@ -4668,7 +4699,7 @@ Definition Lists: Weird Ones: Test 1
 !! wikitext
 *#;*::;;foo :bar (who uses this?)
 !! html/php+tidy
-<ul><li><ol><li><dl><dt>foo&#160;</dt>
+<ul><li><ol><li><dl><dt>foo</dt>
 <dd><ul><li><dl><dd><dl><dd><dl><dt><dl><dt>bar (who uses this?)</dt></dl></dt></dl></dd></dl></dd></dl></li></ul></dd></dl></li></ol></li></ul>
 !! html/parsoid
 <ul>
@@ -4686,7 +4717,7 @@ Definition Lists: Weird Ones: Test 1
 <dl>
 <dt>
 <dl>
-<dt>foo<span typeof="mw:DisplaySpace mw:Placeholder" data-parsoid='{"src":" ","isDisplayHack":true}'> </span></dt>
+<dt>foo</dt>
 <dd data-parsoid='{"stx":"row"}'>bar (who uses this?)</dd>
 </dl></dt>
 </dl></dd>
@@ -6793,7 +6824,7 @@ Element attributes with double ! should not be broken up by <th>
 !! html/php
 <table>
 <tr>
-<td><div style="color: red&#32;!important;" data-contrived="put this here &#124;&#124;">hi</div>
+<td><div style="color: red !important;" data-contrived="put this here &#124;&#124;">hi</div>
 </td></tr></table>
 
 !! html/parsoid
@@ -6814,7 +6845,7 @@ parsoid=wt2html
 !! html/php
 <table>
 <tr>
-<td>style="color: red&#160;!important;" data-contrived="put this here</td>
+<td>style="color: red !important;" data-contrived="put this here</td>
 <td>foo
 </td></tr></table>
 
@@ -6834,7 +6865,7 @@ parsoid=wt2html,html2html
 <p>ho"&gt;ha&lt;/div&gt;
 </p>
 !! html/parsoid
-<span typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"ho\">ha&lt;/div>"}},"i":0}}]}'>ho">ha</span>
+<p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"ho\">ha&lt;/div>"}},"i":0}}]}'>ho">ha</p>
 !! end
 
 !! test
@@ -7296,10 +7327,11 @@ Wikitext table with html-syntax row
 <td>foo</td></tr></tbody></table>
 !! end
 
+## Remex doesn't account for fostered content.
 !! test
 Fostered content in tables: Plain text
 !! options
-parsoid=wt2html,html2html
+parsoid=wt2html
 !! wikitext
 {|
 |-
@@ -7317,9 +7349,9 @@ a
 a
 <table></table>
 !! html/parsoid
-<span data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true}'>
-a
-</span><table>
+<p data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true}'>
+a</p>
+<table>
 <tbody><tr class="mw-empty-elt" data-parsoid='{"startTagSrc":"|-"}'></tr></tbody></table>
 !! end
 
@@ -9927,7 +9959,7 @@ List interrupted by empty line or heading
 
 !!end
 
-!!test
+!! test
 Multiple list tags generated by templates
 !! wikitext
 {{echo|<li>}}a
@@ -9940,6 +9972,7 @@ Multiple list tags generated by templates
 </li>
 </li>
 
+
 !! html+tidy
 <li>a
 </li><li>b
@@ -9949,7 +9982,44 @@ Multiple list tags generated by templates
 <li about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"stx":"html","autoInsertedEnd":true,"dsr":[0,44,null,null],"pi":[[{"k":"1"}],[{"k":"1"}],[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;li>"}},"i":0}},"a\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;li>"}},"i":1}},"b\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;li>"}},"i":2}},"c"]}'>a
 </li><li about="#mwt1">b
 </li><li about="#mwt1" data-parsoid='{"stx":"html","autoInsertedEnd":true,"dsr":[null,44,null,0]}'>c</li>
-!!end
+!! end
+
+!! test
+Multiple newlines in between HTML list items don't induce paragraph wrapping
+!! wikitext
+<ul>
+<li>hi</li>
+
+
+
+
+<li>ho</li>
+</ul>
+
+<dl>
+<dt>hi</dt>
+<dd>ho<div>123</div>
+</dd>
+
+
+</dl>
+!! html/php+tidy
+<ul>
+<li>hi</li>
+
+
+
+
+<li>ho</li>
+</ul>
+<dl>
+<dt>hi</dt>
+<dd>ho<div>123</div>
+</dd>
+
+
+</dl>
+!! end
 
 !!test
 Single-comment whitespace lines dont break lists, and neither do multi-comment whitespace lines
@@ -10095,6 +10165,8 @@ Unbalanced closing block tags break a list
 
 !! test
 Unbalanced closing non-block tags don't break a list
+!! options
+parsoid=wt2html,html2html
 !! wikitext
 <span>
 *a</span><span>
@@ -10105,12 +10177,9 @@ Unbalanced closing non-block tags don't break a list
 <ul><li>a<span></span></li>
 <li>b</li></ul>
 !! html/parsoid
-<span>
-<ul>
-<li>a<span></span></li>
-<li>b</li>
-</ul>
-</span>
+<p><span data-parsoid='{"stx":"html","autoInsertedEnd":true}'></span></p>
+<ul><li>a<span data-parsoid='{"stx":"html","autoInsertedEnd":true}'></span></li>
+<li>b</li></ul>
 !! end
 
 # Parsoid does some post-dom-building cleanup
@@ -10131,14 +10200,7 @@ parsoid=wt2html,wt2wt,html2html
 !! end
 
 # Output is ugly because of all the misnested tag fixups.
-# Remex is wrapping p-tags around empty elements.
-# Parsoid has special-case handling of this pattern of
-# wrapping lists in formatting tags.
-# FIXME: Should we remove this code from Parsoid? Or add
-# special support in Remex? If the latter, maybe just wait
-# for Parsoid to become the default parser.
-# See T70395.
-!!test
+!! test
 1. List embedded in a formatting tag
 !! wikitext
 <small>
@@ -10149,17 +10211,13 @@ parsoid=wt2html,wt2wt,html2html
 </small></p><small><ul><li>foo</li></ul></small><small></small><p><small></small>
 </p>
 !! html/parsoid
-<small>
-<ul>
-<li>foo</li>
-</ul>
-</small>
-!!end
+<p><small data-parsoid='{"stx":"html","autoInsertedEnd":true}'></small></p><small data-parsoid='{"stx":"html","autoInsertedEnd":true,"autoInsertedStart":true}'>
+<ul><li data-parsoid='{}'>foo</li></ul></small>
+<p><small data-parsoid='{"stx":"html","autoInsertedStart":true}'></small></p>
+!! end
 
-# Output is ugly because of all the misnested tag fixups
-# Remex is wrapping p-tags around empty elements.
-# Parsoid has code that strips useless p-tags.
-!!test
+# Output is ugly because of all the misnested tag fixups.
+!! test
 2. List embedded in a formatting tag in a misnested way
 !! wikitext
 <small>
@@ -10170,13 +10228,10 @@ parsoid=wt2html,wt2wt,html2html
 </small></p><small></small><ul><small><li>a</li>
 </small><li><small>b</small></li></ul>
 !! html/parsoid
-<small></small>
-<ul><small>
-<li>a</li>
-</small>
-<li><small>b</small></li>
-</ul>
-!!end
+<p><small data-parsoid='{"stx":"html","autoInsertedEnd":true}'></small></p><p></p>
+<ul><small data-parsoid='{"stx":"html","autoInsertedEnd":true,"autoInsertedStart":true}'><li>a</li></small>
+<li><small data-parsoid='{"stx":"html","autoInsertedStart":true}'>b</small></li></ul>
+!! end
 
 ###
 ### Magic Words
@@ -12863,10 +12918,7 @@ Templates: Block Tags: 2. Back-to-back template uses
 
 !!end
 
-## This is an edge case relating to paragraph wrapping.
-## Note that Parsoid fails to match Remex because it's using the closing tag
-## as a heuristic to determine if it's in a block, rather than SAX based events.
-## And Parsoid drops empty elements in templates.
+## Parsoid drops empty elements in templates.
 !! test
 Templates: Correctly encapsulate templates producing </p> tag without a corresponding <p> tag
 !! wikitext
@@ -12878,7 +12930,7 @@ b</p>}}
 b</p><p class="mw-empty-elt"></p>
 !! html/parsoid
 <p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a\nb&lt;/p>"}},"i":0}}]}'>a</p><span about="#mwt1">
-</span><span about="#mwt1">b</span>
+</span><p about="#mwt1">b</p>
 !! end
 
 !!test
@@ -13248,6 +13300,7 @@ parsoid=wt2html,wt2wt
 <link rel="mw:PageProp/Category" href="./Category:Bar1"><link rel="mw:PageProp/Category" href="./Category:Bar2"><table><tbody><tr><td>foo</td></tr></tbody></table>
 !!end
 
+## Remex doesn't account for fostered content.
 !! test
 Templates: Wiki Tables: 1a. Fostering of entire template content
 !! wikitext
 a
 <table><tbody><tr><td></td></tr></tbody></table>
 !! html/parsoid
-<span about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"firstWikitextNode":"TABLE","pi":[[{"k":"1"}]]}' data-mw='{"parts":["{|\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a"}},"i":0}},"\n|}"]}'>a</span><table about="#mwt2">
+<p about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"firstWikitextNode":"TABLE","pi":[[{"k":"1"}]]}' data-mw='{"parts":["{|\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a"}},"i":0}},"\n|}"]}'>a</p><table about="#mwt2">
 
 </table>
 !! end
@@ -13300,6 +13353,7 @@ foo
 </table>
 !! end
 
+## Remex doesn't account for fostered content.
 !! test
 Templates: Wiki Tables: 2. Fostering of partial template content
 !! wikitext
 <div>b</div><table>
 <tbody><tr><td></td></tr></tbody></table>
 !! html/parsoid
-<span about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"firstWikitextNode":"TABLE","pi":[[{"k":"1"}]]}' data-mw='{"parts":["{|\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a\n&lt;div>b&lt;/div>"}},"i":0}},"\n|}"]}'>a</span><div about="#mwt2">b</div><table about="#mwt2">
+<p about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"firstWikitextNode":"TABLE","pi":[[{"k":"1"}]]}' data-mw='{"parts":["{|\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a\n&lt;div>b&lt;/div>"}},"i":0}},"\n|}"]}'>a</p><div about="#mwt2">b</div><table about="#mwt2">
 
 
 </table>
@@ -13383,20 +13437,20 @@ Templates: Wiki Tables: 6. Templated tags, templated td-tags
 ## a <meta> marker tag for <ref> tags and they are expanded
 ## much later. We are verifying that this <meta> tag usage
 ## doesn't prevent foster parenting.
-!!test
+!! test
 Templates: Wiki Tables: 7. Fosterable <ref>s should get fostered
-!!wikitext
+!! wikitext
 {{PartialTable}}<ref>foo</ref>
 |}
 
 <references />
-!!html/parsoid
-<sup about="#mwt2" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Transclusion  mw:Extension/ref" data-mw='{"parts":[{"template":{"target":{"wt":"PartialTable","href":"./Template:PartialTable"},"params":{},"i":0}},"&lt;ref>foo&lt;/ref>\n|}"]}'><a href="./Main_Page#cite_note-1"><span class="mw-reflink-text">[1]</span></a></sup><table about="#mwt2">
+!! html/parsoid
+<p about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"PartialTable","href":"./Template:PartialTable"},"params":{},"i":0}},"&lt;ref>foo&lt;/ref>\n|}"]}'><sup about="#mwt3" class="mw-ref" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="./Main_Page#cite_note-1" style="counter-reset: mw-Ref 1;"><span class="mw-reflink-text">[1]</span></a></sup></p><table about="#mwt2">
 <tbody>
 </tbody></table>
 
-<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li></ol>
-!!end
+<ol class="mw-references references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><a href="./Main_Page#cite_ref-1" rel="mw:referencedBy"><span class="mw-linkback-text">↑ </span></a> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li></ol>
+!! end
 
 !! test
 Templates: Wiki Tables: 8. Fosterable meta-tags should get fostered
@@ -14524,8 +14578,8 @@ thumbsize=220
 </p>
 !! html/parsoid
 <p>123<figure-inline class="mw-default-size" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure-inline>456</p>
-<p>123</p><figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure><p>456</p>
-<p>123</p><figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></figure><p>456</p>
+<p>123</p><figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a></figure><p>456
+123</p><figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a></figure><p>456</p>
 !! end
 
 !! test
@@ -16611,7 +16665,7 @@ Section headings with TOC
 Some text
 ===Another headline===
 !! html
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Headline_1"><span class="tocnumber">1</span> <span class="toctext">Headline 1</span></a>
 <ul>
@@ -16654,7 +16708,7 @@ __FORCETOC__
 ==Headline 2==
 ==Headline==
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Headline_2"><span class="tocnumber">1</span> <span class="toctext">Headline 2</span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#Headline"><span class="tocnumber">2</span> <span class="toctext">Headline</span></a></li>
@@ -16688,7 +16742,7 @@ parsoid=wt2html
 =========Level 9 Heading=========
 ==========Level 10 Heading==========
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Level_1_Heading"><span class="tocnumber">1</span> <span class="toctext">Level 1 Heading</span></a>
 <ul>
@@ -16752,7 +16806,7 @@ TOC regression (T11764)
 ==title 2==
 ===title 2.1===
 !! html
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
 <ul>
@@ -16787,7 +16841,7 @@ TOC for heading containing <span id="..."></span> (T96153)
 __FORCETOC__
 ==<span id="old-anchor"></span>New title==
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#New_title"><span class="tocnumber">1</span> <span class="toctext">New title</span></a></li>
 </ul>
@@ -16809,7 +16863,7 @@ wgMaxTocLevel=3
 ==title 2==
 ===title 2.1===
 !! html
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
 <ul>
@@ -16845,7 +16899,7 @@ wgMaxTocLevel=3
 ====Section 1.1.1.1====
 ==Section 2==
 !! html
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Section_1"><span class="tocnumber">1</span> <span class="toctext">Section 1</span></a>
 <ul>
@@ -16938,7 +16992,7 @@ __TOC__
 ===title 1.1===
 ==title 2==
 !! html
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#title_1"><span class="tocnumber">1</span> <span class="toctext">title 1</span></a>
 <ul>
@@ -17014,7 +17068,7 @@ section 5
 !! html/php
 <p>The tooltips shall not show entities to the user (ie. be double escaped)
 </p>
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#text_.3E_text"><span class="tocnumber">1</span> <span class="toctext">text &gt; text</span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#text_.3C_text"><span class="tocnumber">2</span> <span class="toctext">text &lt; text</span></a></li>
@@ -17090,7 +17144,7 @@ section 6
 !! html/php
 <p>Id should not contain + for spaces
 </p>
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Space_between_Text"><span class="tocnumber">1</span> <span class="toctext">Space between Text</span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#Space-Entity_between_Text"><span class="tocnumber">2</span> <span class="toctext">Space-Entity&#32;between&#32;Text</span></a></li>
@@ -17166,7 +17220,7 @@ parsoid=wt2html,wt2wt,html2html
 =''italic'' heading==
 ==''italic'' heading=
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#foo.3D"><span class="tocnumber">1</span> <span class="toctext">foo=</span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#.3Dfoo"><span class="tocnumber">2</span> <span class="toctext">=foo</span></a></li>
@@ -17201,7 +17255,7 @@ HTML headers vs TOC (T25393)
 ==Header 2.2==
 __NOEDITSECTION__
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1"><a href="#Header_1"><span class="tocnumber">1</span> <span class="toctext">Header 1</span></a>
 <ul>
@@ -17675,6 +17729,8 @@ Media link with text
 # Parsoid & Remex fix the p-wrapping since they operate on the DOM.
 !! test
 Media link with nasty text
+!! options
+parsoid=wt2html,html2html
 !! wikitext
 [[Media:Foobar.jpg|Safe Link<div style=display:none>" onmouseover="alert(document.cookie)" onfoo="</div>]]
 !! html/php
@@ -17683,8 +17739,7 @@ Media link with nasty text
 !! html/php+tidy
 <p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Safe Link</a></p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg"><div style="display:none">" onmouseover="alert(document.cookie)" onfoo="</div></a>
 !! html/parsoid
-<p><a rel="mw:MediaLink" href="//example.com/images/3/3a/Foobar.jpg" title="Foobar.jpg" data-parsoid='{"autoInsertedEnd":true}'>Safe Link</a></p><div style="display:none" data-parsoid='{"stx":"html"}'><a rel="mw:MediaLink" href="//example.com/images/3/3a/Foobar.jpg" title="Foobar.jpg" data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'>" onmouseover="alert(document.cookie)" onfoo="</a></div>
-
+<p><a rel="mw:MediaLink" href="//example.com/images/3/3a/Foobar.jpg" title="Foobar.jpg">Safe Link</a></p><a rel="mw:MediaLink" href="//example.com/images/3/3a/Foobar.jpg" title="Foobar.jpg"><div style="display:none" data-parsoid='{"stx":"html"}'>" onmouseover="alert(document.cookie)" onfoo="</div></a>
 !! end
 
 !! test
@@ -18398,6 +18453,8 @@ array (
 
 !! test
 Parser hook: nested tags
+!! options
+parsoid=wt2html
 !! wikitext
 <tag><tag></tag></tag>
 !! html/php
@@ -18407,8 +18464,14 @@ array (
 )
 </pre>&lt;/tag&gt;
 
+!! html/php+tidy
+<pre>'<tag>'
+array (
+)
+</tag></pre><p>&lt;/tag&gt;
+</p>
 !! html/parsoid
-<pre typeof="mw:Extension/tag" data-mw='{"name":"tag","attrs":{},"body":{"extsrc":"&lt;tag>"}}' data-parsoid='{}' about="#mwt2"></pre>&lt;/tag>
+<pre typeof="mw:Extension/tag" about="#mwt2" data-mw='{"name":"tag","attrs":{},"body":{"extsrc":"&lt;tag>"}}'></pre><p>&lt;/tag></p>
 !! end
 
 !! test
@@ -18484,7 +18547,7 @@ array (
 </pre>text
 
 !! html/parsoid
-<pre typeof="mw:Extension/tag" data-mw='{"name":"tag","attrs":{"foo":"bar"},"body":null}' data-parsoid='{}' about="#mwt2"></pre>text
+<pre typeof="mw:Extension/tag" about="#mwt2" data-mw='{"name":"tag","attrs":{"foo":"bar"},"body":null}'></pre><p>text</p>
 !! end
 
 ## </tag> should be output literally since there is no matching tag that begins it
@@ -18616,8 +18679,6 @@ Nested template calls
 ### Sanitizer
 ###
 
-# Remex wraps empty tag runs with p-tags.
-# Parsoid strips them out during p-wrapping.
 !! test
 Sanitizer: Closing of open tags
 !! wikitext
@@ -18625,7 +18686,7 @@ Sanitizer: Closing of open tags
 !! html/php+tidy
 <p><s></s></p><table></table>
 !! html/parsoid
-<s></s><table></table>
+<p><s data-parsoid='{"stx":"html"}'></s></p><table data-parsoid='{"stx":"html"}'></table>
 !! end
 
 !! test
@@ -18643,10 +18704,9 @@ Sanitizer: Closing of closed but not open tags
 parsoid=wt2html
 !! wikitext
 </s>
-!! html/php+tidy
+!! html+tidy
 <p class="mw-empty-elt">
 </p>
-!! html/parsoid
 !! end
 
 !! test
@@ -18842,7 +18902,7 @@ Punctuation: CSS !important (T13874)
 !! wikitext
 <div style="width:50% !important">important</div>
 !! html
-<div style="width:50%&#32;!important">important</div>
+<div style="width:50% !important">important</div>
 
 !!end
 
@@ -19127,7 +19187,7 @@ Fuzz testing: Parser14
 http://__TOC__
 !! html/php
 <h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: onmouseover=">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-http://<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+http://<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#onmouseover.3D"><span class="tocnumber">1</span> <span class="toctext">onmouseover=</span></a></li>
 </ul>
@@ -19136,7 +19196,7 @@ http://<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" c
 
 !! html/php+tidy
 <h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: onmouseover=">edit</a><span class="mw-editsection-bracket">]</span></span></h2><p>
-http://</p><div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+http://</p><div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#onmouseover.3D"><span class="tocnumber">1</span> <span class="toctext">onmouseover=</span></a></li>
 </ul>
@@ -19223,7 +19283,8 @@ http://===r:::https://b
 
 !! end
 
-# Known to produce bad XML for now
+## Remex doesn't account for fostered content.
+## Known to produce bad XML for now
 !! test
 Fuzz testing: Parser24
 !! options
@@ -19250,14 +19311,27 @@ MOVE YOUR MOUSE CURSOR OVER THIS TEXT
 </tr>
 </table>
 
-!! html/parsoid
-<p data-parsoid='{"fostered":true,"autoInsertedEnd":true}'>{{{|
-<u class="|" data-parsoid='{"stx":"html","a":{"{{{{SSSll!!!!!!!VVVV)]]][[Special:*xxxxxxx--":null},"sa":{"{{{{SSSll!!!!!!!VVVV)]]][[Special:*xxxxxxx--":""},"autoInsertedEnd":true}'><meta typeof="mw:Includes/NoInclude" data-parsoid='{"src":"&lt;noinclude>"}'/>}}}} >
-<br style="onmouseover='alert(document.cookie);' " data-parsoid='{"stx":"html","selfClose":true}'/></u></p><p data-parsoid='{"fostered":true,"autoInsertedEnd":true}'><u class="|" data-parsoid='{"stx":"html","a":{"{{{{SSSll!!!!!!!VVVV)]]][[Special:*xxxxxxx--":null},"sa":{"{{{{SSSll!!!!!!!VVVV)]]][[Special:*xxxxxxx--":""},"autoInsertedEnd":true,"autoInsertedStart":true}'>MOVE YOUR MOUSE CURSOR OVER THIS TEXT</u></p><table data-parsoid='{"autoInsertedEnd":true}'>
+!! html/php+tidy
 
+{{{|
+<u class="&#124;">}}}} &gt;
+<br style="onmouseover=&#39;alert(document.cookie);&#39;" />
 
+MOVE YOUR MOUSE CURSOR OVER THIS TEXT
+</u><table><tbody><tr>
+<td>
+</td>
+</tr>
+</tbody></table><p><u class="&#124;">
+</u></p>
+!! html/parsoid
+<p data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true}'>
+{{{|
+<u class="|" data-parsoid='{"stx":"html","a":{"{{{{SSSll!!!!!!!VVVV)]]][[Special:*xxxxxxx--":null},"sa":{"{{{{SSSll!!!!!!!VVVV)]]][[Special:*xxxxxxx--":""},"autoInsertedEnd":true}'><meta typeof="mw:Includes/NoInclude" data-parsoid='{"src":"&lt;noinclude>"}'/>}}}} >
+<br style="onmouseover='alert(document.cookie);' " data-parsoid='{"stx":"html","selfClose":true}'/>
 
-<tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td data-parsoid='{"autoInsertedEnd":true}'></td></tr></tbody></table>
+MOVE YOUR MOUSE CURSOR OVER THIS TEXT</u></p>
+<table data-parsoid='{"autoInsertedEnd":true}'><tbody><tr data-parsoid='{"autoInsertedStart":true}'><td></td></tr></tbody></table>
 !! end
 
 # Note: the current result listed for this is not what the original one was,
@@ -19449,6 +19523,10 @@ New wiki paragraph
 <p><b>Bold paragraph
 </p><p>New wiki paragraph</b>
 </p>
+!! html/php+tidy
+<p><b>Bold paragraph
+</b></p><p><b>New wiki paragraph
+</b></p>
 !! html/parsoid
 <p><b>Bold paragraph</b>
 </p><p>New wiki paragraph
@@ -20398,7 +20476,7 @@ parsoid=wt2html
 '''''
 !! html/php
 !! html/parsoid
-<b><i></i></b>
+<p><b><i></i></b></p>
 !! end
 
 # same html as previous, but wikitext adjusted to match parsoid html2wt
@@ -21620,16 +21698,16 @@ Definition list code coverage
 ;title :def
 ;title:def
 !! html/php
-<dl><dt>title  &#160;</dt>
+<dl><dt>title</dt>
 <dd>def</dd>
-<dt>title&#160;</dt>
+<dt>title</dt>
 <dd>def</dd>
 <dt>title</dt>
 <dd>def</dd></dl>
 
 !! html/parsoid
-<dl><dt>title  <span typeof="mw:Placeholder"> </span></dt><dd>def</dd>
-<dt>title<span typeof="mw:Placeholder"> </span></dt><dd>def</dd>
+<dl><dt>title   </dt><dd>def</dd>
+<dt>title </dt><dd>def</dd>
 <dt>title</dt><dd>def</dd></dl>
 !! end
 
@@ -21708,7 +21786,7 @@ Out-of-order TOC heading levels
 =====5=====
 ==2==
 !! html
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#2"><span class="tocnumber">1</span> <span class="toctext">2</span></a>
 <ul>
@@ -22752,11 +22830,11 @@ language=zh variant=zh-cn
 <span>ad
 </span></div></span></div></span>
 !! html/parsoid
-<p><span data-parsoid='{"stx":"html","autoInsertedEnd":true}'>a</span></p><div typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":"b&lt;div data-parsoid=&#39;{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[10,16,5,0]}&#39;>c&lt;/div>"}}'></div><p>d</p>
+<span data-parsoid='{"stx":"html","autoInsertedEnd":true}'>a<div typeof="mw:LanguageVariant" data-mw-variant='{"disabled":{"t":"b&lt;div data-parsoid=&apos;{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[10,16,5,0]}&apos;>c&lt;/div>"}}'></div>d
 
-<p><span data-parsoid='{"stx":"html","autoInsertedEnd":true}'>a</span></p><div typeof="mw:LanguageVariant" data-mw-variant='{"filter":{"l":["zh","zh-hans","zh-hant"],"t":"b&lt;div data-parsoid=&#39;{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[50,56,5,0]}&#39;>c&lt;/div>"}}'></div><p>d</p>
+<span data-parsoid='{"stx":"html","autoInsertedEnd":true}'>a<div typeof="mw:LanguageVariant" data-mw-variant='{"filter":{"l":["zh","zh-hans","zh-hant"],"t":"b&lt;div data-parsoid=&apos;{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[50,56,5,0]}&apos;>c&lt;/div>"}}'></div>d
 
-<p><span data-parsoid='{"stx":"html","autoInsertedEnd":true}'>a<meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"oneway":[{"f":"0","l":"zh-cn","t":"x&lt;span data-parsoid=&#39;{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[82,89,6,0]}&#39;>y&lt;/span>"},{"f":"0","l":"zh-tw","t":"b&lt;div data-parsoid=&#39;{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[100,106,5,0]}&#39;>c&lt;/div>"}]}'/>d</span></p>
+<p><span data-parsoid='{"stx":"html","autoInsertedEnd":true}'>a<meta typeof="mw:LanguageVariant" data-mw-variant='{"add":true,"oneway":[{"f":"0","l":"zh-cn","t":"x&lt;span data-parsoid=&apos;{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[82,89,6,0]}&apos;>y&lt;/span>"},{"f":"0","l":"zh-tw","t":"b&lt;div data-parsoid=&apos;{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[100,106,5,0]}&apos;>c&lt;/div>"}]}'/>d</span></p></span></span>
 !! end
 
 !! test
@@ -23040,10 +23118,8 @@ language=zh variant=zh-cn
 <dt>-{zh-cn:AAA</dt></b></dl><p><b>
 </b></p>
 !! html/parsoid
-<dl><dt data-parsoid='{"dsr":[0,11,1,0]}'><b data-parsoid='{"stx":"html","autoInsertedEnd":true}'>foo:bar</b></dt><b data-parsoid='{"stx":"html","autoInsertedEnd":true,"autoInsertedStart":true}'>
-<dt data-parsoid='{"dsr":[12,20,1,0]}'>-{zh-cn</dt>
-<dd data-parsoid='{"stx":"row","dsr":[20,24,1,0]}'>AAA</dd>
-</b></dl>
+<dl><dt data-parsoid='{}'><b data-parsoid='{"stx":"html","autoInsertedEnd":true}'>foo:bar</b></dt><b data-parsoid='{"stx":"html","autoInsertedEnd":true,"autoInsertedStart":true}'>
+<dt data-parsoid='{}'>-{zh-cn</dt><dd data-parsoid='{"stx":"row"}'>AAA</dd></b></dl>
 !! end
 
 !! test
@@ -23408,7 +23484,6 @@ Line two
 !! end
 
 # doBlockLevels screws up this output and Remex cleans up as much as it can.
-# Parsoid seems to do a better job here since its p-wrapper is probably smarter.
 !! test
 Nesting tags, paragraphs on lines which begin with <div>
 !! wikitext
@@ -23419,15 +23494,15 @@ B</strong>
 </strong></p><strong></strong><p><strong>B</strong>
 </p>
 !! html/parsoid
-<div></div>
-<p><strong>A
-B</strong>
-</p>
+<div data-parsoid='{"stx":"html"}'></div><p><strong data-parsoid='{"stx":"html","autoInsertedEnd":true}'>A</strong></p>
+<p><strong data-parsoid='{"stx":"html","autoInsertedStart":true}'>B</strong></p>
 !! end
 
 # T8200: <blockquote> should behave like <div> with respect to line breaks
 !! test
 T8200: paragraphs inside blockquotes (no extra line breaks)
+!! options
+parsoid=wt2html,html2html
 !! wikitext
 <blockquote>Line one
 
@@ -23443,6 +23518,8 @@ Line two</p></blockquote>
 
 !! test
 T8200: paragraphs inside blockquotes (extra line break on open)
+!! options
+parsoid=wt2html,html2html
 !! wikitext
 <blockquote>
 Line one
@@ -23461,9 +23538,10 @@ Line two</blockquote>
 Line two</p></blockquote>
 !! end
 
-# Parsoid's output is broken on this because of Tidy-compatibility cruft
 !! test
 T8200: paragraphs inside blockquotes (extra line break on close)
+!! options
+parsoid=wt2html,html2html
 !! wikitext
 <blockquote>Line one
 
@@ -24139,7 +24217,7 @@ Play a bit with r67090 and T5158
 <div style="width:50%&#160;!important">&nbsp;</div>
 <div style="border : solid;">&nbsp;</div>
 !! html/php
-<div style="width:50%&#32;!important">&#160;</div>
+<div style="width:50% !important">&#160;</div>
 <div style="width:50% !important">&#160;</div>
 <div style="width:50% !important">&#160;</div>
 <div style="border&#32;: solid;">&#160;</div>
@@ -24152,6 +24230,29 @@ Play a bit with r67090 and T5158
 
 !! end
 
+!! test
+French spaces in wikitext
+!! wikitext
+foo ! bar ? bat 50 % is less than 75 %.
+
+Hello : this ; is « something ‹ else › again »
+!! html
+<p>foo&#160;! bar&#160;? bat 50&#160;% is less than 75&#160;%.
+</p><p>Hello&#160;: this&#160;; is «&#160;something ‹&#160;else&#160;› again&#160;»
+</p>
+!! end
+
+# It would be reasonable for Parsoid and PHP to differ here.
+# The PHP behavior is arguably a bug.
+!! test
+Corner case: french spaces in definition list
+!! wikitext
+;foo : bar
+!! html+tidy
+<dl><dt>foo&#160;</dt>
+<dd>bar</dd></dl>
+!! end
+
 !! test
 T5158: Test for French spaces in attributes
 !! wikitext
@@ -24355,7 +24456,7 @@ title=[[Main Page]]
 __TOC__
 ==''Lost'' episodes==
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Lost_episodes"><span class="tocnumber">1</span> <span class="toctext"><i>Lost</i> episodes</span></a></li>
 </ul>
@@ -24376,7 +24477,7 @@ title=[[Main Page]]
 __TOC__
 =='''should be bold''' then normal text==
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#should_be_bold_then_normal_text"><span class="tocnumber">1</span> <span class="toctext"><b>should be bold</b> then normal text</span></a></li>
 </ul>
@@ -24397,7 +24498,7 @@ title=[[Main Page]]
 __TOC__
 ==Image [[Image:foobar.jpg]]==
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Image"><span class="tocnumber">1</span> <span class="toctext">Image</span></a></li>
 </ul>
@@ -24418,7 +24519,7 @@ title=[[Main Page]]
 __TOC__
 ==<blockquote>Quote</blockquote>==
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Quote"><span class="tocnumber">1</span> <span class="toctext">Quote</span></a></li>
 </ul>
@@ -24427,7 +24528,7 @@ __TOC__
 <h2><span class="mw-headline" id="Quote"><blockquote>Quote</blockquote></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Quote">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! html/php+tidy
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Quote"><span class="tocnumber">1</span> <span class="toctext">Quote</span></a></li>
 </ul>
@@ -24436,7 +24537,7 @@ __TOC__
 <h2><span class="mw-headline" id="Quote"><blockquote><p>Quote</p></blockquote></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Quote">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 !! html/parsoid
 <meta property="mw:PageProp/toc" data-parsoid='{}'/>
-<h2 id="Quote" data-parsoid='{}'><blockquote>Quote</blockquote></h2>
+<h2 id="Quote" data-parsoid='{}'><blockquote><p>Quote</p></blockquote></h2>
 !! end
 
 !! test
@@ -24451,7 +24552,7 @@ __TOC__
 <small>Hanc marginis exiguitas non caperet.</small>
 QED
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Proof:_2_&lt;_3"><span class="tocnumber">1</span> <span class="toctext">Proof: 2 &lt; 3</span></a></li>
 </ul>
@@ -24476,7 +24577,7 @@ __TOC__
 
 ==<i>Foo</i> <blockquote>Bar</blockquote>==
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Foo_Bar"><span class="tocnumber">1</span> <span class="toctext"><i>Foo</i> <b>Bar</b></span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#Foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext"><i>Foo</i> Bar</span></a></li>
@@ -24487,7 +24588,7 @@ __TOC__
 <h2><span class="mw-headline" id="Foo_Bar_2"><i>Foo</i> <blockquote>Bar</blockquote></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! html/php+tidy
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Foo_Bar"><span class="tocnumber">1</span> <span class="toctext"><i>Foo</i> <b>Bar</b></span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#Foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext"><i>Foo</i> Bar</span></a></li>
@@ -24500,7 +24601,7 @@ __TOC__
 <meta property="mw:PageProp/toc" data-parsoid='{}'/>
 <h2 id="Foo_Bar" data-parsoid='{}'><i data-parsoid='{"stx":"html"}'>Foo</i> <b data-parsoid='{"stx":"html"}'>Bar</b></h2>
 
-<h2 id="Foo_Bar_2" data-parsoid='{}'><i data-parsoid='{"stx":"html"}'>Foo</i> <blockquote>Bar</blockquote></h2>
+<h2 id="Foo_Bar_2" data-parsoid='{}'><i data-parsoid='{"stx":"html"}'>Foo</i> <blockquote><p>Bar</p></blockquote></h2>
 !! end
 
 # Don't expect Parsoid to roundtrip this until the php parser comes closer to
@@ -24515,7 +24616,7 @@ __TOC__
 
 ==<sup class="a > b">Evilbye</sup>==
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Hello"><span class="tocnumber">1</span> <span class="toctext"><sup>Hello</sup></span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#b.22.3EEvilbye"><span class="tocnumber">2</span> <span class="toctext"><sup> b"&gt;Evilbye</sup></span></a></li>
@@ -24546,7 +24647,7 @@ __TOC__
 
 ==<span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span>==
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#C.2B.2B"><span class="tocnumber">1</span> <span class="toctext"><span dir="ltr">C++</span></span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#.D7.96.D7.91.D7.A0.D7.92.21"><span class="tocnumber">2</span> <span class="toctext"><span dir="rtl">זבנג!</span></span></a></li>
@@ -24577,7 +24678,7 @@ T74884: bdi element in ToC
 __TOC__
 ==<bdi>test</bdi>==
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#test"><span class="tocnumber">1</span> <span class="toctext"><bdi>test</bdi></span></a></li>
 </ul>
@@ -24596,7 +24697,7 @@ T35715: s/strike element in ToC
 __TOC__
 ==<s>test</s> test <strike>test</strike>==
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#test_test_test"><span class="tocnumber">1</span> <span class="toctext"><s>test</s> test <strike>test</strike></span></a></li>
 </ul>
@@ -24609,13 +24710,34 @@ __TOC__
 <h2 id="test_test_test" data-parsoid='{}'><s>test</s> test <strike>test</strike></h2>
 !! end
 
+!! test
+T198618: style element in ToC
+!! options
+styletag=1
+!! wikitext
+__TOC__
+==<style>.foo {}</style>Style<style>.bar {}</style>==
+!! html/php
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<ul>
+<li class="toclevel-1 tocsection-1"><a href="#Style"><span class="tocnumber">1</span> <span class="toctext">Style</span></a></li>
+</ul>
+</div>
+
+<h2><span class="mw-headline" id="Style"><style>.foo {}</style>Style<style>.bar {}</style></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Style">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+
+!! html/parsoid
+<meta property="mw:PageProp/toc" data-parsoid='{}'/>
+<h2 id="Style" data-parsoid='{}'><style>.foo {}</style>Style<style>.bar {}</style></h2>
+!! end
+
 !! test
 Empty <p> tag in TOC, removed by Sanitizer (T92892)
 !! wikitext
 __TOC__
 ==x==
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#x"><span class="tocnumber">1</span> <span class="toctext">x</span></a></li>
 </ul>
@@ -24950,13 +25072,13 @@ parsoid=wt2html,wt2wt
 #### Parsoid-specific functionality tests
 #### -----------------------------------------------------------------
 
-# T65642/T68749: Formatting elt fixup around images is cleaned up.
+# T65642/T68749: Formatting elt fixup around images.
 # We know wt2wt will fail, but we expect selser to pass.
 # Due to the nature of our testing, wt2wt and selser tests will enter the
 # blacklist and we'll catch selser regressions based on changes to the
 # blacklist entries for selser tests.
 !! test
-1. Bad treebuilder fixup of formatting elt is cleaned up
+1. Treebuilder fixup of formatting elt
 !! options
 parsoid=wt2html,wt2wt
 !! wikitext
@@ -24966,50 +25088,63 @@ parsoid=wt2html,wt2wt
 [[Image:Foobar.jpg|right|Test]]
 </small>
 |}
+!! html/php+tidy
+<table>
+<tbody><tr>
+<td>
+<p><small>
+</small></p><small>
+<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Test"><img alt="Test" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
+</small><p><small></small>
+</p>
+</td></tr></tbody></table>
 !! html/parsoid
 <table>
 <tbody><tr><td>
-<small>
-<figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>Test</figcaption></figure>
-</small>
-</td></tr>
+<p><small data-parsoid='{"stx":"html","autoInsertedEnd":true}'></small></p><small data-parsoid='{"stx":"html","autoInsertedEnd":true,"autoInsertedStart":true}'>
+<figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="220" width="1941"/></a><figcaption>Test</figcaption></figure></small>
+<p><small data-parsoid='{"stx":"html","autoInsertedStart":true}'></small></p></td></tr>
 </tbody></table>
 !! end
 
 !! test
-2. Bad treebuilder fixup of formatting elt is cleaned up
+2. Treebuilder fixup of formatting elt
 !! options
 parsoid=wt2html,wt2wt
 !! wikitext
 '''foo[[File:Foobar.jpg|thumb|caption]]bar'''
 
 <small>[[Image:Foobar.jpg|right|300px]]</small>
+!! html/php+tidy
+<p><b>foo</b></p><b><div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div></b><p><b>bar</b>
+</p><small><div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" width="300" height="34" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/450px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/600px-Foobar.jpg 2x" /></a></div></small>
 !! html/parsoid
+<p><b>foo</b></p><b><figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>caption</figcaption></figure></b><p><b>bar</b></p>
 
-<p><b>foo</b></p>
-<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption><b>caption</b></figcaption></figure>
-<p><b>bar</b></p>
 <small><figure class="mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="34" width="300"/></a></figure></small>
 !! end
 
 !! test
-3. Bad treebuilder fixup of formatting elt is cleaned up
+3. Treebuilder fixup of formatting elt
 !! options
 parsoid=wt2html,wt2wt
 !! wikitext
 <small>'''foo[[File:Foobar.jpg|thumb|caption]]bar'''</small>
+!! html/php+tidy
+<p><small><b>foo</b></small></p><small><b><div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"></a></div>caption</div></div></div></b></small><p><small><b>bar</b></small>
+</p>
 !! html/parsoid
-<p><small><b>foo</b></small></p>
-<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption><small><b>caption</b></small></figcaption></figure>
-<p><small><b>bar</b></small></p>
+<p><small><b>foo</b></small></p><small><b><figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="25" width="220"/></a><figcaption>caption</figcaption></figure></b></small><p><small><b>bar</b></small></p>
 !! end
 
 !! test
-4. Bad treebuilder fixup of formatting elt is cleaned up: formatting tags around captionless images are ignored
+4. Treebuilder fixup of formatting elt: formatting tags around captionless images
 !! options
 parsoid=wt2html,wt2wt
 !! wikitext
 '''<small>[[Image:Foobar.jpg|right|300px]]</small>'''
+!! html/php+tidy
+<b><small><div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" width="300" height="34" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/450px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/600px-Foobar.jpg 2x" /></a></div></small></b>
 !! html/parsoid
 <b><small><figure class="mw-halign-right" typeof="mw:Image"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" data-file-width="1941" data-file-height="220" data-file-type="bitmap" height="34" width="300"/></a></figure></small></b>
 !! end
@@ -27355,16 +27490,17 @@ Encapsulate protected attributes from wt
 ## Currently the p-wrapper is fragile in how it adds / removes transformations.
 ## Having nested or stray pre tags results in the attempt to add duplicates,
 ## causing an assertion fail. This test tries to prevent that situation.
-!!test
+!! test
 Ensure ParagraphWrapper can deal with stray closing pre tags
-!!options
+!! options
 parsoid=wt2html
 !! wikitext
 plain text</pre>
 !! html/parsoid
-plain text
-!!end
+<p>plain text</p>
+!! end
 
+## Remex doesn't account for fostered content.
 !! test
 1. Ensure fostered text content is wrapped in element nodes
 !! options
@@ -27374,9 +27510,10 @@ parsoid=wt2html
 !! html/php+tidy
 hi<table></table>ho<table></table>
 !! html/parsoid
-<span data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true}'>hi</span><table data-parsoid='{"stx":"html"}'></table><span data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true}'>ho</span><table data-parsoid='{"stx":"html"}'></table>
+<p data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true}'>hi</p><table data-parsoid='{"stx":"html"}'></table><p data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true}'>ho</p><table data-parsoid='{"stx":"html"}'></table>
 !! end
 
+## Remex doesn't account for fostered content.
 !! test
 2. Ensure fostered text content is wrapped in element nodes (traps regressions around fostered marker on the element getting lost)
 !! options
@@ -27392,12 +27529,13 @@ parsoid=wt2html,wt2wt
 <tbody><tr><td> a
 </td></tr></tbody></table>
 !! html/parsoid
-<span data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true}'> || ||
-</span><table data-parsoid='{"stx":"html"}'>
+<p data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true}'> || ||</p>
+<table data-parsoid='{"stx":"html"}'>
 <tbody><tr data-parsoid='{"stx":"html","autoInsertedEnd":true}'><td data-parsoid='{"stx":"html","autoInsertedEnd":true}'> a
 </td></tr></tbody></table>
 !! end
 
+## Remex doesn't account for fostered content.
 !! test
 Encapsulation properly handles null DSR information from foster box
 !! options
@@ -27405,9 +27543,10 @@ parsoid=wt2html,wt2wt
 !! wikitext
 {{echo|<table>foo<tr><td>bar</td></tr></table>}}
 !! html/parsoid
-<span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;<table>foo<tr><td>bar</td></tr></table>&quot;}},&quot;i&quot;:0}}]}">foo</span><table><tbody><tr><td>bar</td></tr></tbody></table>
+<p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;table>foo&lt;tr>&lt;td>bar&lt;/td>&lt;/tr>&lt;/table>"}},"i":0}}]}'>foo</p><table about="#mwt1" data-parsoid='{"stx":"html"}'><tbody><tr><td>bar</td></tr></tbody></table>
 !! end
 
+## Remex doesn't account for fostered content.
 !! test
 1. Encapsulate foster-parented transclusion content
 !! options
@@ -27417,7 +27556,7 @@ parsoid=wt2wt,wt2html
 !! html/php+tidy
 foo<table><tbody><tr><td>bar</td></tr></tbody></table>
 !! html/parsoid
-<span about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"firstWikitextNode":"TABLE_html","pi":[[{"k":"1"}]]}' data-mw='{"parts":["&lt;table>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo&lt;tr>&lt;td>bar&lt;/td>&lt;/tr>"}},"i":0}},"&lt;/table>"]}'>foo</span><table about="#mwt2" data-parsoid='{"stx":"html}'><tbody><tr><td>bar</td></tr></tbody></table>
+<p about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"firstWikitextNode":"TABLE_html","pi":[[{"k":"1"}]]}' data-mw='{"parts":["&lt;table>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo&lt;tr>&lt;td>bar&lt;/td>&lt;/tr>"}},"i":0}},"&lt;/table>"]}'>foo</p><table about="#mwt2" data-parsoid='{"stx":"html"}'><tbody><tr><td>bar</td></tr></tbody></table>
 !! end
 
 !! test
@@ -27475,6 +27614,7 @@ parsoid=wt2wt,wt2html
 </table>
 !! end
 
+## Remex doesn't account for fostered content.
 !! test
 5. Encapsulate foster-parented transclusion content
 !!options
@@ -27484,9 +27624,10 @@ parsoid=wt2wt,wt2html
 !! html/php+tidy
 foo<table><tbody><tr><td><div><p>foo</p></div></td></tr></tbody></table>
 !! html/parsoid
-<span about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"firstWikitextNode":"TABLE_html","pi":[[{"k":"1"}]]}' data-mw='{"parts":["&lt;table>&lt;tr>&lt;td>&lt;div>&lt;p>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo&lt;/p>&lt;/div>&lt;/td>foo"}},"i":0}},"&lt;/tr>&lt;/table>"]}'>foo</span><table about="#mwt2" data-parsoid='{"stx":"html"}'><tbody><tr><td><div><p>foo</p></div></td></tr></tbody></table>
+<p about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"firstWikitextNode":"TABLE_html","pi":[[{"k":"1"}]]}' data-mw='{"parts":["&lt;table>&lt;tr>&lt;td>&lt;div>&lt;p>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo&lt;/p>&lt;/div>&lt;/td>foo"}},"i":0}},"&lt;/tr>&lt;/table>"]}'>foo</p><table about="#mwt2" data-parsoid='{"stx":"html"}'><tbody><tr><td><div><p>foo</p></div></td></tr></tbody></table>
 !! end
 
+## Remex doesn't account for fostered content.
 !! test
 6. Encapsulate foster-parented transclusion content
 !! options
@@ -27496,7 +27637,7 @@ parsoid=wt2wt,wt2html
 !! html/php+tidy
 foo<table><tbody><tr><td><div><p>foo</p></div></td></tr></tbody></table><p>ok</p>
 !! html/parsoid
-<span about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"firstWikitextNode":"TABLE_html","pi":[[{"k":"1"}]]}' data-mw='{"parts":["&lt;table>&lt;tr>&lt;td>&lt;div>&lt;p>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo&lt;/p>&lt;/div>&lt;/td>foo&lt;/tr>&lt;/table>"}},"i":0}}]}'>foo</span><table about="#mwt2" data-parsoid='{"stx":"html"}'><tbody><tr><td><div><p>foo</p></div></td></tr></tbody></table><p data-parsoid='{"stx":"html"}'>ok</p>
+<p about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"firstWikitextNode":"TABLE_html","pi":[[{"k":"1"}]]}' data-mw='{"parts":["&lt;table>&lt;tr>&lt;td>&lt;div>&lt;p>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo&lt;/p>&lt;/div>&lt;/td>foo&lt;/tr>&lt;/table>"}},"i":0}}]}'>foo</p><table about="#mwt2" data-parsoid='{"stx":"html"}'><tbody><tr><td><div><p>foo</p></div></td></tr></tbody></table><p data-parsoid='{"stx":"html"}'>ok</p>
 !! end
 
 !! test
@@ -27516,6 +27657,7 @@ parsoid=wt2wt,wt2html
 </table>
 !! end
 
+## Remex doesn't account for fostered content.
 # Note that the wt is broken on purpose: the = should be {{=}} if you
 # don't want it to be a template parameter key.
 !! test
@@ -27538,12 +27680,13 @@ parsoid=wt2wt,wt2html
 </td></tr></tbody></table>
 !! html/parsoid
 <p about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[{"k":"1"}]]}' data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a\n"}},"i":0}}]}'>a</p><span about="#mwt1">
-</span><span about="#mwt3" typeof="mw:Transclusion" data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"firstWikitextNode":"TABLE","pi":[[{"k":"style","named":true}]]}' data-mw='{"parts":["{|",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"style":{"wt":"&apos;color:red&apos;"}},"i":0}},"\n|-\n|b\n|}"]}'>{{{1}}}</span><table about="#mwt3">
+</span><p about="#mwt3" typeof="mw:Transclusion" data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"firstWikitextNode":"TABLE","pi":[[{"k":"style","named":true}]]}' data-mw='{"parts":["{|",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"style":{"wt":"&apos;color:red&apos;"}},"i":0}},"\n|-\n|b\n|}"]}'>{{{1}}}</p><table about="#mwt3">
 <tbody><tr>
 <td>b
 </td></tr></tbody></table>
 !! end
 
+## Remex doesn't account for fostered content.
 !! test
 9. Encapsulate foster-parented transclusion content
 !!options
@@ -27554,7 +27697,7 @@ parsoid=wt2wt,wt2html
 hi<table></table><p>hello
 </p>
 !! html/parsoid
-<span about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"firstWikitextNode":"TABLE_html","pi":[[{"k":"1"}]]}' data-mw='{"parts":["&lt;table>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"hi&lt;/table>hello"}},"i":0}}]}'>hi</span><table about="#mwt2"></table><p about="#mwt2">hello</p>
+<p about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"fostered":true,"autoInsertedEnd":true,"autoInsertedStart":true,"firstWikitextNode":"TABLE_html","pi":[[{"k":"1"}]]}' data-mw='{"parts":["&lt;table>",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"hi&lt;/table>hello"}},"i":0}}]}'>hi</p><table about="#mwt2"></table><p about="#mwt2">hello</p>
 !! end
 
 !! test
@@ -30537,7 +30680,7 @@ wgFragmentMode=[ 'html5', 'legacy' ]
 [[#啤酒]] [[#%E5%95%A4%E9%85%92]]
 
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Foo_bar"><span class="tocnumber">1</span> <span class="toctext">Foo bar</span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext">foo Bar</span></a></li>
@@ -30603,7 +30746,7 @@ wgFragmentMode=[ 'legacy', 'html5' ]
 [[#啤酒]] [[#%E5%95%A4%E9%85%92]]
 
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Foo_bar"><span class="tocnumber">1</span> <span class="toctext">Foo bar</span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext">foo Bar</span></a></li>
@@ -30651,7 +30794,7 @@ wgFragmentMode=[ 'html5' ]
 [[#啤酒]] [[#%E5%95%A4%E9%85%92]]
 
 !! html/php
-<div id="toc" class="toc"><input type="checkbox" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
+<div id="toc" class="toc"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none"/><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#Foo_bar"><span class="tocnumber">1</span> <span class="toctext">Foo bar</span></a></li>
 <li class="toclevel-1 tocsection-2"><a href="#foo_Bar_2"><span class="tocnumber">2</span> <span class="toctext">foo Bar</span></a></li>
@@ -31299,7 +31442,7 @@ __NOTOC__
 </tbody></table>
 <dl><dd><table>
   <tbody><tr><td><!--c1--><!--c2-->Table Cell 1<!--c3--><!--c4--></td><td>Table Cell 2<!--c5--></td></tr>
-  </tbody></table><p> foo   </p><!--c1--></dd></dl>
+  </tbody></table> foo<!--c1--></dd></dl>
 !! end
 
 # Looks like <caption> is not accepted in HTML
diff --git a/tests/phpunit/documentation/ReleaseNotesTest.php b/tests/phpunit/documentation/ReleaseNotesTest.php
new file mode 100644 (file)
index 0000000..4de071d
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * James doesn't like having to manually fix these things.
+ */
+class ReleaseNotesTest extends MediaWikiTestCase {
+       /**
+        * Verify that at least one Release Notes file exists, have content, and
+        * aren't overly long.
+        *
+        * @group documentation
+        * @coversNothing
+        */
+       public function testReleaseNotesFilesExistAndAreNotMalformed() {
+               global $wgVersion, $IP;
+
+               $notesFiles = glob( "$IP/RELEASE-NOTES-*" );
+
+               $this->assertGreaterThanOrEqual(
+                       1,
+                       count( $notesFiles ),
+                       'Repo has at least one Release Notes file.'
+               );
+
+               $versionParts = explode( '.', explode( '-', $wgVersion )[0] );
+               $this->assertContains(
+                       "$IP/RELEASE-NOTES-$versionParts[0].$versionParts[1]",
+                       $notesFiles,
+                       'Repo has a Release Notes file for the current $wgVersion.'
+               );
+
+               foreach ( $notesFiles as $index => $fileName ) {
+                       $file = file( $fileName, FILE_IGNORE_NEW_LINES );
+
+                       $this->assertFalse(
+                               !$file,
+                               "Release Notes file '$fileName' is inaccessible."
+                       );
+
+                       $lines = count( $file );
+
+                       for ( $i = 0; $i < $lines; $i++ ) {
+                               $line = $file[$i];
+
+                               $this->assertLessThanOrEqual(
+                                       // FILE_IGNORE_NEW_LINES drops the \n at the EOL, so max length is 80 not 81.
+                                       80,
+                                       strlen( $line ),
+                                       "Release notes file '$fileName' line $i is longer than 80 chars:\n\t'$line'"
+                               );
+                       }
+               }
+       }
+}
index fc6a70b..15c4791 100644 (file)
@@ -19,133 +19,243 @@ class PathRouterTest extends MediaWikiTestCase {
                $this->basicRouter = $router;
        }
 
-       /**
-        * Test basic path parsing
-        */
-       public function testBasic() {
-               $matches = $this->basicRouter->parse( "/wiki/Foo" );
-               $this->assertEquals( $matches, [ 'title' => "Foo" ] );
-       }
+       public static function provideParse() {
+               $tests = [
+                       // Basic path parsing
+                       'Basic path parsing' => [
+                               "/wiki/$1",
+                               "/wiki/Foo",
+                               [ 'title' => "Foo" ]
+                       ],
+                       //
+                       'Loose path auto-$1: /$1' => [
+                               "/",
+                               "/Foo",
+                               [ 'title' => "Foo" ]
+                       ],
+                       'Loose path auto-$1: /wiki' => [
+                               "/wiki",
+                               "/wiki/Foo",
+                               [ 'title' => "Foo" ]
+                       ],
+                       'Loose path auto-$1: /wiki/' => [
+                               "/wiki/",
+                               "/wiki/Foo",
+                               [ 'title' => "Foo" ]
+                       ],
+                       // Ensure that path is based on specificity, not order
+                       'Order, /$1 added first' => [
+                               [ "/$1", "/a/$1", "/b/$1" ],
+                               "/a/Foo",
+                               [ 'title' => "Foo" ]
+                       ],
+                       'Order, /$1 added last' => [
+                               [ "/b/$1", "/a/$1", "/$1" ],
+                               "/a/Foo",
+                               [ 'title' => "Foo" ]
+                       ],
+                       // Handling of key based arrays with a url parameter
+                       'Key based array' => [
+                               [ [
+                                       'path' => [ 'edit' => "/edit/$1" ],
+                                       'params' => [ 'action' => '$key' ],
+                               ] ],
+                               "/edit/Foo",
+                               [ 'title' => "Foo", 'action' => 'edit' ]
+                       ],
+                       // Additional parameter
+                       'Basic $2' => [
+                               [ [
+                                       'path' => '/$2/$1',
+                                       'params' => [ 'test' => '$2' ]
+                               ] ],
+                               "/asdf/Foo",
+                               [ 'title' => "Foo", 'test' => 'asdf' ]
+                       ],
+               ];
+               // Shared patterns for restricted value parameter tests
+               $restrictedPatterns = [
+                       [
+                               'path' => '/$2/$1',
+                               'params' => [ 'test' => '$2' ],
+                               'options' => [ '$2' => [ 'a', 'b' ] ]
+                       ],
+                       [
+                               'path' => '/$2/$1',
+                               'params' => [ 'test2' => '$2' ],
+                               'options' => [ '$2' => 'c' ]
+                       ],
+                       '/$1'
+               ];
+               $tests += [
+                       // Restricted value parameter tests
+                       'Restricted 1' => [
+                               $restrictedPatterns,
+                               "/asdf/Foo",
+                               [ 'title' => "asdf/Foo" ]
+                       ],
+                       'Restricted 2' => [
+                               $restrictedPatterns,
+                               "/a/Foo",
+                               [ 'title' => "Foo", 'test' => 'a' ]
+                       ],
+                       'Restricted 3' => [
+                               $restrictedPatterns,
+                               "/c/Foo",
+                               [ 'title' => "Foo", 'test2' => 'c' ]
+                       ],
 
-       /**
-        * Test loose path auto-$1
-        */
-       public function testLoose() {
-               $router = new PathRouter;
-               $router->add( "/" ); # Should be the same as "/$1"
-               $matches = $router->parse( "/Foo" );
-               $this->assertEquals( $matches, [ 'title' => "Foo" ] );
+                       // Callback test
+                       'Callback' => [
+                               [ [
+                                       'path' => "/$1",
+                                       'params' => [ 'a' => 'b', 'data:foo' => 'bar' ],
+                                       'options' => [ 'callback' => [ __CLASS__, 'callbackForTest' ] ]
+                               ] ],
+                               '/Foo',
+                               [
+                                       'title' => "Foo",
+                                       'x' => 'Foo',
+                                       'a' => 'b',
+                                       'foo' => 'bar'
+                               ]
+                       ],
 
-               $router = new PathRouter;
-               $router->add( "/wiki" ); # Should be the same as /wiki/$1
-               $matches = $router->parse( "/wiki/Foo" );
-               $this->assertEquals( $matches, [ 'title' => "Foo" ] );
+                       // Test to ensure that matches are not made if a parameter expects nonexistent input
+                       'Fail' => [
+                               [ [
+                                       'path' => "/wiki/$1",
+                                       'params' => [ 'title' => "$1$2" ],
+                               ] ],
+                               "/wiki/A",
+                               []
+                       ],
 
-               $router = new PathRouter;
-               $router->add( "/wiki/" ); # Should be the same as /wiki/$1
-               $matches = $router->parse( "/wiki/Foo" );
-               $this->assertEquals( $matches, [ 'title' => "Foo" ] );
-       }
+                       // Make sure the router handles titles like Special:Recentchanges correctly
+                       'Special title' => [
+                               "/wiki/$1",
+                               "/wiki/Special:Recentchanges",
+                               [ 'title' => "Special:Recentchanges" ]
+                       ],
 
-       /**
-        * Test to ensure that path is based on specifity, not order
-        */
-       public function testOrder() {
-               $router = new PathRouter;
-               $router->add( "/$1" );
-               $router->add( "/a/$1" );
-               $router->add( "/b/$1" );
-               $matches = $router->parse( "/a/Foo" );
-               $this->assertEquals( $matches, [ 'title' => "Foo" ] );
+                       // Make sure the router decodes urlencoding properly
+                       'URL encoding' => [
+                               "/wiki/$1",
+                               "/wiki/Title_With%20Space",
+                               [ 'title' => "Title_With Space" ]
+                       ],
 
-               $router = new PathRouter;
-               $router->add( "/b/$1" );
-               $router->add( "/a/$1" );
-               $router->add( "/$1" );
-               $matches = $router->parse( "/a/Foo" );
-               $this->assertEquals( $matches, [ 'title' => "Foo" ] );
-       }
+               ];
 
-       /**
-        * Test the handling of key based arrays with a url parameter
-        */
-       public function testKeyParameter() {
-               $router = new PathRouter;
-               $router->add( [ 'edit' => "/edit/$1" ], [ 'action' => '$key' ] );
-               $matches = $router->parse( "/edit/Foo" );
-               $this->assertEquals( $matches, [ 'title' => "Foo", 'action' => 'edit' ] );
-       }
+               // Make sure the router doesn't break on special characters like $ used in regexp replacements
+               foreach ( [ "$", "$1", "\\", "\\$1" ] as $char ) {
+                       $tests["Regexp character $char"] = [
+                               "/wiki/$1",
+                               "/wiki/$char",
+                               [ 'title' => "$char" ]
+                       ];
+               }
 
-       /**
-        * Test the handling of $2 inside paths
-        */
-       public function testAdditionalParameter() {
-               // Basic $2
-               $router = new PathRouter;
-               $router->add( '/$2/$1', [ 'test' => '$2' ] );
-               $matches = $router->parse( "/asdf/Foo" );
-               $this->assertEquals( $matches, [ 'title' => "Foo", 'test' => 'asdf' ] );
-       }
+               $tests += [
+                       // Make sure the router handles characters like +&() properly
+                       "Special characters" => [
+                               "/wiki/$1",
+                               "/wiki/Plus+And&Dollar\\Stuff();[]{}*",
+                               [ 'title' => "Plus+And&Dollar\\Stuff();[]{}*" ],
+                       ],
 
-       /**
-        * Test additional restricted value parameter
-        */
-       public function testRestrictedValue() {
-               $router = new PathRouter;
-               $router->add( '/$2/$1',
-                       [ 'test' => '$2' ],
-                       [ '$2' => [ 'a', 'b' ] ]
-               );
-               $router->add( '/$2/$1',
-                       [ 'test2' => '$2' ],
-                       [ '$2' => 'c' ]
-               );
-               $router->add( '/$1' );
+                       // Make sure the router handles unicode characters correctly
+                       "Unicode 1" => [
+                               "/wiki/$1",
+                               "/wiki/Spécial:Modifications_récentes" ,
+                               [ 'title' => "Spécial:Modifications_récentes" ],
+                       ],
 
-               $matches = $router->parse( "/asdf/Foo" );
-               $this->assertEquals( $matches, [ 'title' => "asdf/Foo" ] );
+                       "Unicode 2" => [
+                               "/wiki/$1",
+                               "/wiki/Sp%C3%A9cial:Modifications_r%C3%A9centes",
+                               [ 'title' => "Spécial:Modifications_récentes" ],
+                       ]
+               ];
 
-               $matches = $router->parse( "/a/Foo" );
-               $this->assertEquals( $matches, [ 'title' => "Foo", 'test' => 'a' ] );
+               // Ensure the router doesn't choke on long paths.
+               $lorem = "Lorem_ipsum_dolor_sit_amet,_consectetur_adipisicing_elit,_sed_do_eiusmod_" .
+                       "tempor_incididunt_ut_labore_et_dolore_magna_aliqua._Ut_enim_ad_minim_veniam,_quis_" .
+                        "nostrud_exercitation_ullamco_laboris_nisi_ut_aliquip_ex_ea_commodo_consequat._" .
+                        "Duis_aute_irure_dolor_in_reprehenderit_in_voluptate_velit_esse_cillum_dolore_" .
+                        "eu_fugiat_nulla_pariatur._Excepteur_sint_occaecat_cupidatat_non_proident,_sunt_" .
+                        "in_culpa_qui_officia_deserunt_mollit_anim_id_est_laborum.";
 
-               $matches = $router->parse( "/c/Foo" );
-               $this->assertEquals( $matches, [ 'title' => "Foo", 'test2' => 'c' ] );
-       }
+               $tests += [
+                       "Long path" => [
+                               "/wiki/$1",
+                               "/wiki/$lorem",
+                               [ 'title' => $lorem ]
+                       ],
 
-       public function callbackForTest( &$matches, $data ) {
-               $matches['x'] = $data['$1'];
-               $matches['foo'] = $data['foo'];
-       }
+                       // Ensure that the php passed site of parameter values are not urldecoded
+                       "Pattern urlencoding" => [
+                               [ [ 'path' => "/wiki/$1", 'params' => [ 'title' => '%20:$1' ] ] ],
+                               "/wiki/Foo",
+                               [ 'title' => '%20:Foo' ]
+                       ],
 
-       public function testCallback() {
-               $router = new PathRouter;
-               $router->add( "/$1",
-                       [ 'a' => 'b', 'data:foo' => 'bar' ],
-                       [ 'callback' => [ $this, 'callbackForTest' ] ]
-               );
-               $matches = $router->parse( '/Foo' );
-               $this->assertEquals( $matches, [
-                       'title' => "Foo",
-                       'x' => 'Foo',
-                       'a' => 'b',
-                       'foo' => 'bar'
-               ] );
+                       // Ensure that raw parameter values do not have any variable replacements or urldecoding
+                       "Raw param value" => [
+                               [ [ 'path' => "/wiki/$1", 'params' => [ 'title' => [ 'value' => 'bar%20$1' ] ] ] ],
+                               "/wiki/Foo",
+                               [ 'title' => 'bar%20$1' ]
+                       ]
+               ];
+
+               return $tests;
        }
 
        /**
-        * Test to ensure that matches are not made if a parameter expects nonexistent input
+        * Test path parsing
+        * @dataProvider provideParse
         */
-       public function testFail() {
+       public function testParse( $patterns, $path, $expected ) {
+               $patterns = (array)$patterns;
+
                $router = new PathRouter;
-               $router->add( "/wiki/$1", [ 'title' => "$1$2" ] );
-               $matches = $router->parse( "/wiki/A" );
-               $this->assertEquals( [], $matches );
+               foreach ( $patterns as $pattern ) {
+                       if ( is_array( $pattern ) ) {
+                               $router->add( $pattern['path'], $pattern['params'] ?? [],
+                                       $pattern['options'] ?? [] );
+                       } else {
+                               $router->add( $pattern );
+                       }
+               }
+               $matches = $router->parse( $path );
+               $this->assertEquals( $matches, $expected );
+       }
+
+       public static function callbackForTest( &$matches, $data ) {
+               $matches['x'] = $data['$1'];
+               $matches['foo'] = $data['foo'];
+       }
+
+       public static function provideWeight() {
+               return [
+                       [ '/Foo', [ 'title' => 'Foo' ] ],
+                       [ '/Bar', [ 'ping' => 'pong' ] ],
+                       [ '/Baz', [ 'marco' => 'polo' ] ],
+                       [ '/asdf-foo', [ 'title' => 'qwerty-foo' ] ],
+                       [ '/qwerty-bar', [ 'title' => 'asdf-bar' ] ],
+                       [ '/a/Foo', [ 'title' => 'Foo' ] ],
+                       [ '/asdf/Foo', [ 'title' => 'Foo' ] ],
+                       [ '/qwerty/Foo', [ 'title' => 'Foo', 'qwerty' => 'qwerty' ] ],
+                       [ '/baz/Foo', [ 'title' => 'Foo', 'unrestricted' => 'baz' ] ],
+                       [ '/y/Foo', [ 'title' => 'Foo', 'restricted-to-y' => 'y' ] ],
+               ];
        }
 
        /**
         * Test to ensure weight of paths is handled correctly
+        * @dataProvider provideWeight
         */
-       public function testWeight() {
+       public function testWeight( $path, $expected ) {
                $router = new PathRouter;
                $router->addStrict( "/Bar", [ 'ping' => 'pong' ] );
                $router->add( "/asdf-$1", [ 'title' => 'qwerty-$1' ] );
@@ -158,112 +268,6 @@ class PathRouterTest extends MediaWikiTestCase {
                $router->add( [ 'qwerty' => "/qwerty/$1" ], [ 'qwerty' => '$key' ] );
                $router->add( "/$2/$1", [ 'restricted-to-y' => '$2' ], [ '$2' => 'y' ] );
 
-               foreach (
-                       [
-                               '/Foo' => [ 'title' => 'Foo' ],
-                               '/Bar' => [ 'ping' => 'pong' ],
-                               '/Baz' => [ 'marco' => 'polo' ],
-                               '/asdf-foo' => [ 'title' => 'qwerty-foo' ],
-                               '/qwerty-bar' => [ 'title' => 'asdf-bar' ],
-                               '/a/Foo' => [ 'title' => 'Foo' ],
-                               '/asdf/Foo' => [ 'title' => 'Foo' ],
-                               '/qwerty/Foo' => [ 'title' => 'Foo', 'qwerty' => 'qwerty' ],
-                               '/baz/Foo' => [ 'title' => 'Foo', 'unrestricted' => 'baz' ],
-                               '/y/Foo' => [ 'title' => 'Foo', 'restricted-to-y' => 'y' ],
-                       ] as $path => $result
-               ) {
-                       $this->assertEquals( $router->parse( $path ), $result );
-               }
-       }
-
-       /**
-        * Make sure the router handles titles like Special:Recentchanges correctly
-        */
-       public function testSpecial() {
-               $matches = $this->basicRouter->parse( "/wiki/Special:Recentchanges" );
-               $this->assertEquals( $matches, [ 'title' => "Special:Recentchanges" ] );
-       }
-
-       /**
-        * Make sure the router decodes urlencoding properly
-        */
-       public function testUrlencoding() {
-               $matches = $this->basicRouter->parse( "/wiki/Title_With%20Space" );
-               $this->assertEquals( $matches, [ 'title' => "Title_With Space" ] );
-       }
-
-       public static function provideRegexpChars() {
-               return [
-                       [ "$" ],
-                       [ "$1" ],
-                       [ "\\" ],
-                       [ "\\$1" ],
-               ];
-       }
-
-       /**
-        * Make sure the router doesn't break on special characters like $ used in regexp replacements
-        * @dataProvider provideRegexpChars
-        */
-       public function testRegexpChars( $char ) {
-               $matches = $this->basicRouter->parse( "/wiki/$char" );
-               $this->assertEquals( $matches, [ 'title' => "$char" ] );
-       }
-
-       /**
-        * Make sure the router handles characters like +&() properly
-        */
-       public function testCharacters() {
-               $matches = $this->basicRouter->parse( "/wiki/Plus+And&Dollar\\Stuff();[]{}*" );
-               $this->assertEquals( $matches, [ 'title' => "Plus+And&Dollar\\Stuff();[]{}*" ] );
-       }
-
-       /**
-        * Make sure the router handles unicode characters correctly
-        * @depends testSpecial
-        * @depends testUrlencoding
-        * @depends testCharacters
-        */
-       public function testUnicode() {
-               $matches = $this->basicRouter->parse( "/wiki/Spécial:Modifications_récentes" );
-               $this->assertEquals( $matches, [ 'title' => "Spécial:Modifications_récentes" ] );
-
-               $matches = $this->basicRouter->parse( "/wiki/Sp%C3%A9cial:Modifications_r%C3%A9centes" );
-               $this->assertEquals( $matches, [ 'title' => "Spécial:Modifications_récentes" ] );
-       }
-
-       /**
-        * Ensure the router doesn't choke on long paths.
-        */
-       public function testLength() {
-               // phpcs:disable Generic.Files.LineLength
-               $matches = $this->basicRouter->parse(
-                       "/wiki/Lorem_ipsum_dolor_sit_amet,_consectetur_adipisicing_elit,_sed_do_eiusmod_tempor_incididunt_ut_labore_et_dolore_magna_aliqua._Ut_enim_ad_minim_veniam,_quis_nostrud_exercitation_ullamco_laboris_nisi_ut_aliquip_ex_ea_commodo_consequat._Duis_aute_irure_dolor_in_reprehenderit_in_voluptate_velit_esse_cillum_dolore_eu_fugiat_nulla_pariatur._Excepteur_sint_occaecat_cupidatat_non_proident,_sunt_in_culpa_qui_officia_deserunt_mollit_anim_id_est_laborum."
-               );
-               $this->assertEquals(
-                       $matches,
-                       [ 'title' => "Lorem_ipsum_dolor_sit_amet,_consectetur_adipisicing_elit,_sed_do_eiusmod_tempor_incididunt_ut_labore_et_dolore_magna_aliqua._Ut_enim_ad_minim_veniam,_quis_nostrud_exercitation_ullamco_laboris_nisi_ut_aliquip_ex_ea_commodo_consequat._Duis_aute_irure_dolor_in_reprehenderit_in_voluptate_velit_esse_cillum_dolore_eu_fugiat_nulla_pariatur._Excepteur_sint_occaecat_cupidatat_non_proident,_sunt_in_culpa_qui_officia_deserunt_mollit_anim_id_est_laborum." ]
-               );
-               // phpcs:enable
-       }
-
-       /**
-        * Ensure that the php passed site of parameter values are not urldecoded
-        */
-       public function testPatternUrlencoding() {
-               $router = new PathRouter;
-               $router->add( "/wiki/$1", [ 'title' => '%20:$1' ] );
-               $matches = $router->parse( "/wiki/Foo" );
-               $this->assertEquals( $matches, [ 'title' => '%20:Foo' ] );
-       }
-
-       /**
-        * Ensure that raw parameter values do not have any variable replacements or urldecoding
-        */
-       public function testRawParamValue() {
-               $router = new PathRouter;
-               $router->add( "/wiki/$1", [ 'title' => [ 'value' => 'bar%20$1' ] ] );
-               $matches = $router->parse( "/wiki/Foo" );
-               $this->assertEquals( $matches, [ 'title' => 'bar%20$1' ] );
+               $this->assertEquals( $router->parse( $path ), $expected );
        }
 }
index 9583921..07c307e 100644 (file)
@@ -123,7 +123,13 @@ class WebRequestTest extends MediaWikiTestCase {
                ];
        }
 
-       protected function mockWebRequest( $data = [] ) {
+       /**
+        * @param array $data Request data
+        * @param array $config
+        *  - float 'requestTime': Mock value for `$_SERVER['REQUEST_TIME_FLOAT']`.
+        * @return WebRequest
+        */
+       protected function mockWebRequest( array $data = [], array $config = [] ) {
                // Cannot use PHPUnit getMockBuilder() as it does not support
                // overriding protected properties afterwards
                $reflection = new ReflectionClass( WebRequest::class );
@@ -133,9 +139,11 @@ class WebRequestTest extends MediaWikiTestCase {
                $prop->setAccessible( true );
                $prop->setValue( $req, $data );
 
-               $prop = $reflection->getProperty( 'requestTime' );
-               $prop->setAccessible( true );
-               $prop->setValue( $req, microtime( true ) );
+               if ( isset( $config['requestTime'] ) ) {
+                       $prop = $reflection->getProperty( 'requestTime' );
+                       $prop->setAccessible( true );
+                       $prop->setValue( $req, $config['requestTime'] );
+               }
 
                return $req;
        }
@@ -144,9 +152,11 @@ class WebRequestTest extends MediaWikiTestCase {
         * @covers WebRequest::getElapsedTime
         */
        public function testGetElapsedTime() {
-               $req = $this->mockWebRequest();
-               $this->assertGreaterThanOrEqual( 0.0, $req->getElapsedTime() );
-               $this->assertEquals( 0.0, $req->getElapsedTime(), '', /*delta*/ 0.2 );
+               $now = microtime( true ) - 10.0;
+               $req = $this->mockWebRequest( [], [ 'requestTime' => $now ] );
+               $this->assertGreaterThanOrEqual( 10.0, $req->getElapsedTime() );
+               // Catch common errors, but don't fail on slow hardware or VMs (T199764).
+               $this->assertEquals( 10.0, $req->getElapsedTime(), '', 60.0 );
        }
 
        /**
index 1db6aab..c78bc5b 100644 (file)
@@ -377,7 +377,7 @@ just a test"
                $wikitext = false;
                $redirectTarget = false;
                $content = $this->newContent( 'hello world.' );
-               $options = $content->getContentHandler()->makeParserOptions( 'canonical' );
+               $options = ParserOptions::newCanonical( 'canonical' );
                $options->setRedirectTarget( $title );
                $content->getParserOutput( $title, null, $options );
                $this->assertEquals( 'hello world.', $wikitext,
@@ -394,7 +394,7 @@ just a test"
                $content = $this->newContent(
                        "#REDIRECT [[TestRedirectParserOption/redir]]\nhello redirect."
                );
-               $options = $content->getContentHandler()->makeParserOptions( 'canonical' );
+               $options = ParserOptions::newCanonical( 'canonical' );
                $content->getParserOutput( $title, null, $options );
                $this->assertEquals(
                        'hello redirect.',
index b6709a0..f0f55fb 100644 (file)
@@ -68,8 +68,11 @@ class BagOStuffTest extends MediaWikiTestCase {
         * @covers BagOStuff::mergeViaCas
         */
        public function testMerge() {
+               $calls = 0;
                $key = $this->cache->makeKey( self::TEST_KEY );
-               $callback = function ( BagOStuff $cache, $key, $oldVal ) {
+               $callback = function ( BagOStuff $cache, $key, $oldVal ) use ( &$calls ) {
+                       ++$calls;
+
                        return ( $oldVal === false ) ? 'merged' : $oldVal . 'merged';
                };
 
@@ -82,6 +85,12 @@ class BagOStuffTest extends MediaWikiTestCase {
                $merged = $this->cache->merge( $key, $callback, 5 );
                $this->assertTrue( $merged );
                $this->assertEquals( 'mergedmerged', $this->cache->get( $key ) );
+
+               $calls = 0;
+               $this->cache->lock( $key );
+               $this->assertFalse( $this->cache->merge( $key, $callback, 1 ), 'Non-blocking merge' );
+               $this->cache->unlock( $key );
+               $this->assertEquals( 0, $calls );
        }
 
        /**
@@ -305,4 +314,21 @@ class BagOStuffTest extends MediaWikiTestCase {
 
                DeferredUpdates::doUpdates();
        }
+
+       /**
+        * @covers BagOStuff::lock()
+        * @covers BagOStuff::unlock()
+        */
+       public function testLocking() {
+               $key = 'test';
+               $this->assertTrue( $this->cache->lock( $key ) );
+               $this->assertFalse( $this->cache->lock( $key ) );
+               $this->assertTrue( $this->cache->unlock( $key ) );
+
+               $key2 = 'test2';
+               $this->assertTrue( $this->cache->lock( $key2, 5, 5, 'rclass' ) );
+               $this->assertTrue( $this->cache->lock( $key2, 5, 5, 'rclass' ) );
+               $this->assertTrue( $this->cache->unlock( $key2 ) );
+               $this->assertTrue( $this->cache->unlock( $key2 ) );
+       }
 }
index 5a666a8..27e5861 100644 (file)
@@ -312,4 +312,58 @@ abstract class PageArchiveTestBase extends MediaWikiTestCase {
                $this->assertNull( $rev );
        }
 
+       /**
+        * @covers PageArchive::getPreviousRevision
+        */
+       public function testGetPreviousRevision() {
+               $rev = $this->archivedPage->getPreviousRevision( $this->ipRev->getTimestamp() );
+               $this->assertNotNull( $rev );
+               $this->assertSame( $this->firstRev->getId(), $rev->getId() );
+
+               $rev = $this->archivedPage->getPreviousRevision( $this->firstRev->getTimestamp() );
+               $this->assertNull( $rev );
+
+               // Re-create our dummy page
+               $title = Title::newFromText( 'PageArchiveTest_thePage' );
+               $page = new WikiPage( $title );
+               $content = ContentHandler::makeContent(
+                       'testing again',
+                       $page->getTitle(),
+                       CONTENT_MODEL_WIKITEXT
+               );
+
+               $user = $this->getTestUser()->getUser();
+               $status = $page->doEditContent( $content, 'testing', EDIT_NEW, false, $user );
+
+               /** @var Revision $newRev */
+               $newRev = $status->value['revision'];
+
+               // force the revision timestamp
+               $newTimestamp = wfTimestamp(
+                       TS_MW,
+                       wfTimestamp( TS_UNIX, $this->ipRev->getTimestamp() ) + 1
+               );
+
+               $this->db->update(
+                       'revision',
+                       [ 'rev_timestamp' => $this->db->timestamp( $newTimestamp ) ],
+                       [ 'rev_id' => $newRev->getId() ]
+               );
+
+               // check that we don't get the existing revision too soon.
+               $rev = $this->archivedPage->getPreviousRevision( $newTimestamp );
+               $this->assertNotNull( $rev );
+               $this->assertSame( $this->ipRev->getId(), $rev->getId() );
+
+               // check that we do get the existing revision when appropriate.
+               $afterNewTimestamp = wfTimestamp(
+                       TS_MW,
+                       wfTimestamp( TS_UNIX, $newTimestamp ) + 1
+               );
+
+               $rev = $this->archivedPage->getPreviousRevision( $afterNewTimestamp );
+               $this->assertNotNull( $rev );
+               $this->assertSame( $newRev->getId(), $rev->getId() );
+       }
+
 }
index 8c61b03..48205f4 100644 (file)
@@ -42,6 +42,68 @@ class ParserOptionsTest extends MediaWikiTestCase {
                parent::tearDown();
        }
 
+       public function testNewCanonical() {
+               $wgUser = $this->getMutableTestUser()->getUser();
+               $wgLang = Language::factory( 'fr' );
+               $wgContLang = Language::factory( 'qqx' );
+
+               $this->setMwGlobals( [
+                       'wgUser' => $wgUser,
+                       'wgLang' => $wgLang,
+                       'wgContLang' => $wgContLang,
+               ] );
+
+               $user = $this->getMutableTestUser()->getUser();
+               $lang = Language::factory( 'de' );
+               $lang2 = Language::factory( 'bug' );
+               $context = new DerivativeContext( RequestContext::getMain() );
+               $context->setUser( $user );
+               $context->setLanguage( $lang );
+
+               // No parameters picks up $wgUser and $wgLang
+               $popt = ParserOptions::newCanonical();
+               $this->assertSame( $wgUser, $popt->getUser() );
+               $this->assertSame( $wgLang, $popt->getUserLangObj() );
+
+               // Just a user uses $wgLang
+               $popt = ParserOptions::newCanonical( $user );
+               $this->assertSame( $user, $popt->getUser() );
+               $this->assertSame( $wgLang, $popt->getUserLangObj() );
+
+               // Just a language uses $wgUser
+               $popt = ParserOptions::newCanonical( null, $lang );
+               $this->assertSame( $wgUser, $popt->getUser() );
+               $this->assertSame( $lang, $popt->getUserLangObj() );
+
+               // Passing both works
+               $popt = ParserOptions::newCanonical( $user, $lang );
+               $this->assertSame( $user, $popt->getUser() );
+               $this->assertSame( $lang, $popt->getUserLangObj() );
+
+               // Passing 'canonical' uses an anon and $wgContLang, and ignores
+               // any passed $userLang
+               $popt = ParserOptions::newCanonical( 'canonical' );
+               $this->assertTrue( $popt->getUser()->isAnon() );
+               $this->assertSame( $wgContLang, $popt->getUserLangObj() );
+               $popt = ParserOptions::newCanonical( 'canonical', $lang2 );
+               $this->assertSame( $wgContLang, $popt->getUserLangObj() );
+
+               // Passing an IContextSource uses the user and lang from it, and ignores
+               // any passed $userLang
+               $popt = ParserOptions::newCanonical( $context );
+               $this->assertSame( $user, $popt->getUser() );
+               $this->assertSame( $lang, $popt->getUserLangObj() );
+               $popt = ParserOptions::newCanonical( $context, $lang2 );
+               $this->assertSame( $lang, $popt->getUserLangObj() );
+
+               // Passing something else raises an exception
+               try {
+                       $popt = ParserOptions::newCanonical( 'bogus' );
+                       $this->fail( 'Excpected exception not thrown' );
+               } catch ( InvalidArgumentException $ex ) {
+               }
+       }
+
        /**
         * @dataProvider provideIsSafeToCache
         * @param bool $expect Expected value
index 1f578ab..4978b72 100644 (file)
@@ -168,6 +168,7 @@ class PasswordResetTest extends MediaWikiTestCase {
                $performingUser = $this->getMockBuilder( User::class )->getMock();
                $performingUser->expects( $this->any() )->method( 'getRequest' )->willReturn( $request );
                $performingUser->expects( $this->any() )->method( 'isAllowed' )->willReturn( true );
+               $performingUser->expects( $this->any() )->method( 'getName' )->willReturn( 'Performer' );
 
                $targetUser1 = $this->getMockBuilder( User::class )->getMock();
                $targetUser2 = $this->getMockBuilder( User::class )->getMock();
index 544a063..f14d2ce 100644 (file)
@@ -54,14 +54,18 @@ class LanguageCodeTest extends PHPUnit\Framework\TestCase {
         * @dataProvider provideLanguageCodes()
         */
        public function testBcp47( $code, $expected ) {
+               $this->assertEquals( $expected, LanguageCode::bcp47( $code ),
+                       "Applying BCP 47 standard to '$code'"
+               );
+
                $code = strtolower( $code );
                $this->assertEquals( $expected, LanguageCode::bcp47( $code ),
-                       "Applying BCP47 standard to lower case '$code'"
+                       "Applying BCP 47 standard to lower case '$code'"
                );
 
                $code = strtoupper( $code );
                $this->assertEquals( $expected, LanguageCode::bcp47( $code ),
-                       "Applying BCP47 standard to upper case '$code'"
+                       "Applying BCP 47 standard to upper case '$code'"
                );
        }
 
@@ -155,6 +159,41 @@ class LanguageCodeTest extends PHPUnit\Framework\TestCase {
                        // de-419-DE
                        // a-DE
                        // ar-a-aaa-b-bbb-a-ccc
+
+                       # Non-standard and deprecated language codes used by MediaWiki
+                       [ 'als', 'gsw' ],
+                       [ 'bat-smg', 'sgs' ],
+                       [ 'be-x-old', 'be-tarask' ],
+                       [ 'fiu-vro', 'vro' ],
+                       [ 'roa-rup', 'rup' ],
+                       [ 'zh-classical', 'lzh' ],
+                       [ 'zh-min-nan', 'nan' ],
+                       [ 'zh-yue', 'yue' ],
+                       [ 'cbk-zam', 'cbk' ],
+                       [ 'de-formal', 'de-x-formal' ],
+                       [ 'eml', 'egl' ],
+                       [ 'en-rtl', 'en-x-rtl' ],
+                       [ 'es-formal', 'es-x-formal' ],
+                       [ 'hu-formal', 'hu-x-formal' ],
+                       [ 'kk-Arab', 'kk-Arab' ],
+                       [ 'kk-Cyrl', 'kk-Cyrl' ],
+                       [ 'kk-Latn', 'kk-Latn' ],
+                       [ 'map-bms', 'jv-x-bms' ],
+                       [ 'mo', 'ro-MD' ],
+                       [ 'nrm', 'nrf' ],
+                       [ 'nl-informal', 'nl-x-informal' ],
+                       [ 'roa-tara', 'nap-x-tara' ],
+                       [ 'simple', 'en-simple' ],
+                       [ 'sr-ec', 'sr-Cyrl' ],
+                       [ 'sr-el', 'sr-Latn' ],
+                       [ 'zh-cn', 'zh-Hans-CN' ],
+                       [ 'zh-sg', 'zh-Hans-SG' ],
+                       [ 'zh-my', 'zh-Hans-MY' ],
+                       [ 'zh-tw', 'zh-Hant-TW' ],
+                       [ 'zh-hk', 'zh-Hant-HK' ],
+                       [ 'zh-mo', 'zh-Hant-MO' ],
+                       [ 'zh-hans', 'zh-Hans' ],
+                       [ 'zh-hant', 'zh-Hant' ],
                ];
        }
 
index 82ab7de..b5db2ec 100644 (file)
@@ -20,7 +20,9 @@ class LanguageConverterTest extends MediaWikiLangTestCase {
                $this->lang = new LanguageToTest();
                $this->lc = new TestConverter(
                        $this->lang, 'tg',
-                       [ 'tg', 'tg-latn' ]
+                       # Adding 'sgs' as a variant to ensure we handle deprecated codes
+                       # adding 'simple' as a variant to ensure we handle non BCP 47 codes
+                       [ 'tg', 'tg-latn', 'sgs', 'simple' ]
                );
        }
 
@@ -38,6 +40,39 @@ class LanguageConverterTest extends MediaWikiLangTestCase {
                $this->assertEquals( 'tg', $this->lc->getPreferredVariant() );
        }
 
+       /**
+        * @covers LanguageConverter::getPreferredVariant
+        * @covers LanguageConverter::getURLVariant
+        */
+       public function testGetPreferredVariantUrl() {
+               global $wgRequest;
+               $wgRequest->setVal( 'variant', 'tg-latn' );
+
+               $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
+       }
+
+       /**
+        * @covers LanguageConverter::getPreferredVariant
+        * @covers LanguageConverter::getURLVariant
+        */
+       public function testGetPreferredVariantUrlDeprecated() {
+               global $wgRequest;
+               $wgRequest->setVal( 'variant', 'bat-smg' );
+
+               $this->assertEquals( 'sgs', $this->lc->getPreferredVariant() );
+       }
+
+       /**
+        * @covers LanguageConverter::getPreferredVariant
+        * @covers LanguageConverter::getURLVariant
+        */
+       public function testGetPreferredVariantUrlBCP47() {
+               global $wgRequest;
+               $wgRequest->setVal( 'variant', 'en-simple' );
+
+               $this->assertEquals( 'simple', $this->lc->getPreferredVariant() );
+       }
+
        /**
         * @covers LanguageConverter::getPreferredVariant
         * @covers LanguageConverter::getHeaderVariant
@@ -49,6 +84,17 @@ class LanguageConverterTest extends MediaWikiLangTestCase {
                $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
        }
 
+       /**
+        * @covers LanguageConverter::getPreferredVariant
+        * @covers LanguageConverter::getHeaderVariant
+        */
+       public function testGetPreferredVariantHeadersBCP47() {
+               global $wgRequest;
+               $wgRequest->setHeader( 'Accept-Language', 'en-simple' );
+
+               $this->assertEquals( 'simple', $this->lc->getPreferredVariant() );
+       }
+
        /**
         * @covers LanguageConverter::getPreferredVariant
         * @covers LanguageConverter::getHeaderVariant
@@ -98,6 +144,38 @@ class LanguageConverterTest extends MediaWikiLangTestCase {
                $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
        }
 
+       /**
+        * @covers LanguageConverter::getPreferredVariant
+        */
+       public function testGetPreferredVariantUserOptionDeprecated() {
+               global $wgUser;
+
+               $wgUser = new User;
+               $wgUser->load(); // from 'defaults'
+               $wgUser->mId = 1;
+               $wgUser->mDataLoaded = true;
+               $wgUser->mOptionsLoaded = true;
+               $wgUser->setOption( 'variant', 'bat-smg' );
+
+               $this->assertEquals( 'sgs', $this->lc->getPreferredVariant() );
+       }
+
+       /**
+        * @covers LanguageConverter::getPreferredVariant
+        */
+       public function testGetPreferredVariantUserOptionBCP47() {
+               global $wgUser;
+
+               $wgUser = new User;
+               $wgUser->load(); // from 'defaults'
+               $wgUser->mId = 1;
+               $wgUser->mDataLoaded = true;
+               $wgUser->mOptionsLoaded = true;
+               $wgUser->setOption( 'variant', 'en-simple' );
+
+               $this->assertEquals( 'simple', $this->lc->getPreferredVariant() );
+       }
+
        /**
         * @covers LanguageConverter::getPreferredVariant
         * @covers LanguageConverter::getUserVariant
@@ -116,6 +194,42 @@ class LanguageConverterTest extends MediaWikiLangTestCase {
                $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
        }
 
+       /**
+        * @covers LanguageConverter::getPreferredVariant
+        * @covers LanguageConverter::getUserVariant
+        */
+       public function testGetPreferredVariantUserOptionForForeignLanguageDeprecated() {
+               global $wgContLang, $wgUser;
+
+               $wgContLang = Language::factory( 'en' );
+               $wgUser = new User;
+               $wgUser->load(); // from 'defaults'
+               $wgUser->mId = 1;
+               $wgUser->mDataLoaded = true;
+               $wgUser->mOptionsLoaded = true;
+               $wgUser->setOption( 'variant-tg', 'bat-smg' );
+
+               $this->assertEquals( 'sgs', $this->lc->getPreferredVariant() );
+       }
+
+       /**
+        * @covers LanguageConverter::getPreferredVariant
+        * @covers LanguageConverter::getUserVariant
+        */
+       public function testGetPreferredVariantUserOptionForForeignLanguageBCP47() {
+               global $wgContLang, $wgUser;
+
+               $wgContLang = Language::factory( 'en' );
+               $wgUser = new User;
+               $wgUser->load(); // from 'defaults'
+               $wgUser->mId = 1;
+               $wgUser->mDataLoaded = true;
+               $wgUser->mOptionsLoaded = true;
+               $wgUser->setOption( 'variant-tg', 'en-simple' );
+
+               $this->assertEquals( 'simple', $this->lc->getPreferredVariant() );
+       }
+
        /**
         * @covers LanguageConverter::getPreferredVariant
         * @covers LanguageConverter::getUserVariant
@@ -145,6 +259,26 @@ class LanguageConverterTest extends MediaWikiLangTestCase {
                $this->assertEquals( 'tg-latn', $this->lc->getPreferredVariant() );
        }
 
+       /**
+        * @covers LanguageConverter::getPreferredVariant
+        */
+       public function testGetPreferredVariantDefaultLanguageVariantDeprecated() {
+               global $wgDefaultLanguageVariant;
+
+               $wgDefaultLanguageVariant = 'bat-smg';
+               $this->assertEquals( 'sgs', $this->lc->getPreferredVariant() );
+       }
+
+       /**
+        * @covers LanguageConverter::getPreferredVariant
+        */
+       public function testGetPreferredVariantDefaultLanguageVariantBCP47() {
+               global $wgDefaultLanguageVariant;
+
+               $wgDefaultLanguageVariant = 'en-simple';
+               $this->assertEquals( 'simple', $this->lc->getPreferredVariant() );
+       }
+
        /**
         * @covers LanguageConverter::getPreferredVariant
         * @covers LanguageConverter::getURLVariant
@@ -192,6 +326,8 @@ class TestConverter extends LanguageConverter {
 
        function loadDefaultTables() {
                $this->mTables = [
+                       'sgs' => new ReplacementArray(),
+                       'simple' => new ReplacementArray(),
                        'tg-latn' => new ReplacementArray( $this->table ),
                        'tg' => new ReplacementArray()
                ];
index e8256ef..e125b8a 100644 (file)
@@ -55,6 +55,9 @@
                        <file>suites/ExtensionsParserTestSuite.php</file>
                        <file>suites/LessTestSuite.php</file>
                </testsuite>
+               <testsuite name="documentation">
+                       <directory>documentation</directory>
+               </testsuite>
        </testsuites>
        <groups>
                <exclude>
index 9ea3c11..af5433a 100644 (file)
                // # Tags that use extensions
                [ 'en-us-u-islamcal', 'en-US-u-islamcal' ],
                [ 'zh-cn-a-myext-x-private', 'zh-CN-a-myext-x-private' ],
-               [ 'en-a-myext-b-another', 'en-a-myext-b-another' ]
+               [ 'en-a-myext-b-another', 'en-a-myext-b-another' ],
 
                // # Invalid:
                // de-419-DE
                // a-DE
                // ar-a-aaa-b-bbb-a-ccc
+
+               // Non-standard and deprecated language codes used by MediaWiki
+               [ 'als', 'gsw' ],
+               [ 'bat-smg', 'sgs' ],
+               [ 'be-x-old', 'be-tarask' ],
+               [ 'fiu-vro', 'vro' ],
+               [ 'roa-rup', 'rup' ],
+               [ 'zh-classical', 'lzh' ],
+               [ 'zh-min-nan', 'nan' ],
+               [ 'zh-yue', 'yue' ],
+               [ 'cbk-zam', 'cbk' ],
+               [ 'de-formal', 'de-x-formal' ],
+               [ 'eml', 'egl' ],
+               [ 'en-rtl', 'en-x-rtl' ],
+               [ 'es-formal', 'es-x-formal' ],
+               [ 'hu-formal', 'hu-x-formal' ],
+               [ 'kk-Arab', 'kk-Arab' ],
+               [ 'kk-Cyrl', 'kk-Cyrl' ],
+               [ 'kk-Latn', 'kk-Latn' ],
+               [ 'map-bms', 'jv-x-bms' ],
+               [ 'mo', 'ro-MD' ],
+               [ 'nrm', 'nrf' ],
+               [ 'nl-informal', 'nl-x-informal' ],
+               [ 'roa-tara', 'nap-x-tara' ],
+               [ 'simple', 'en-simple' ],
+               [ 'sr-ec', 'sr-Cyrl' ],
+               [ 'sr-el', 'sr-Latn' ],
+               [ 'zh-cn', 'zh-Hans-CN' ],
+               [ 'zh-sg', 'zh-Hans-SG' ],
+               [ 'zh-my', 'zh-Hans-MY' ],
+               [ 'zh-tw', 'zh-Hant-TW' ],
+               [ 'zh-hk', 'zh-Hant-HK' ],
+               [ 'zh-mo', 'zh-Hant-MO' ],
+               [ 'zh-hans', 'zh-Hans' ],
+               [ 'zh-hant', 'zh-Hant' ]
        ];
 
        QUnit.test( 'mw.language.bcp47', function ( assert ) {
+               mw.language.data = this.liveLangData;
                bcp47Tests.forEach( function ( data ) {
                        var input = data[ 0 ],
                                expected = data[ 1 ];
                        assert.strictEqual( mw.language.bcp47( input ), expected );
+                       assert.strictEqual( mw.language.bcp47( input.toLowerCase() ), expected );
+                       assert.strictEqual( mw.language.bcp47( input.toUpperCase() ), expected );
                } );
        } );
 }( mediaWiki, jQuery ) );
index 218e67a..4328d3f 100644 (file)
@@ -1,5 +1,5 @@
 const assert = require( 'assert' ),
-       Api = require( 'wdio-mediawiki/Api' ),
+       EditPage = require( '../pageobjects/edit.page' ),
        RecentChangesPage = require( '../pageobjects/recentchanges.page' ),
        Util = require( 'wdio-mediawiki/Util' );
 
@@ -13,11 +13,9 @@ describe( 'Special:RecentChanges', function () {
                name = Util.getTestString();
        } );
 
-       // Disabled because flaky (T198137)
+       // Skip due to failures on many repos (T199644)
        it.skip( 'shows page creation', function () {
-               browser.call( function () {
-                       return Api.edit( name, content );
-               } );
+               EditPage.edit( name, content );
 
                RecentChangesPage.open();