Merge "Fix separated login link so that create account and login are always next...
authorDemon <chadh@wikimedia.org>
Thu, 23 Aug 2012 20:34:35 +0000 (20:34 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Thu, 23 Aug 2012 20:34:35 +0000 (20:34 +0000)
376 files changed:
CREDITS
RELEASE-NOTES-1.20
docs/hooks.txt
docs/memcached.txt
docs/uidesign/mediawiki.action.history.diff.html
img_auth.php
includes/Action.php
includes/Article.php
includes/AutoLoader.php
includes/Block.php
includes/CategoryViewer.php
includes/ChangeTags.php
includes/ChangesFeed.php
includes/ChangesList.php
includes/DefaultSettings.php
includes/Defines.php
includes/EditPage.php
includes/Exception.php
includes/FeedUtils.php
includes/FileDeleteForm.php
includes/GlobalFunctions.php
includes/HTMLForm.php
includes/Html.php
includes/ImageGallery.php
includes/ImagePage.php
includes/Licenses.php
includes/Linker.php
includes/LocalisationCache.php
includes/MessageBlobStore.php
includes/Metadata.php
includes/OutputPage.php
includes/Pager.php
includes/ProtectionForm.php
includes/QueryPage.php
includes/Revision.php
includes/Skin.php
includes/SkinLegacy.php
includes/SkinTemplate.php
includes/SpecialPageFactory.php
includes/Status.php
includes/StreamFile.php
includes/Xml.php
includes/actions/HistoryAction.php
includes/actions/InfoAction.php
includes/api/ApiBase.php
includes/api/ApiEditPage.php
includes/api/ApiFeedContributions.php
includes/api/ApiFeedWatchlist.php
includes/api/ApiParse.php
includes/api/ApiQueryDuplicateFiles.php
includes/api/ApiQueryLogEvents.php
includes/api/ApiQueryProtectedTitles.php
includes/api/ApiQueryRecentChanges.php
includes/api/ApiQueryRevisions.php
includes/db/DatabaseError.php
includes/db/DatabaseMysql.php
includes/db/DatabasePostgres.php
includes/db/DatabaseSqlite.php
includes/db/LBFactory.php
includes/filebackend/FSFileBackend.php
includes/filebackend/FileBackendMultiWrite.php
includes/filebackend/SwiftFileBackend.php
includes/filebackend/TempFSFile.php
includes/filebackend/filejournal/FileJournal.php
includes/filerepo/FileRepo.php
includes/filerepo/file/File.php
includes/filerepo/file/LocalFile.php
includes/installer/CliInstaller.php
includes/installer/DatabaseInstaller.php
includes/installer/DatabaseUpdater.php
includes/installer/Ibm_db2Installer.php
includes/installer/Installer.i18n.php
includes/installer/Installer.php
includes/installer/MysqlInstaller.php
includes/installer/MysqlUpdater.php
includes/installer/OracleInstaller.php
includes/installer/OracleUpdater.php
includes/installer/PostgresInstaller.php
includes/installer/PostgresUpdater.php
includes/installer/SqliteUpdater.php
includes/installer/WebInstaller.php
includes/installer/WebInstallerOutput.php
includes/installer/WebInstallerPage.php
includes/job/DoubleRedirectJob.php
includes/job/UploadFromUrlJob.php
includes/logging/LogFormatter.php
includes/logging/LogPage.php
includes/media/Bitmap.php
includes/media/DjVu.php
includes/media/Exif.php
includes/media/FormatMetadata.php
includes/media/GIF.php
includes/media/ImageHandler.php
includes/media/MediaHandler.php
includes/media/MediaTransformOutput.php
includes/media/PNG.php
includes/media/SVG.php
includes/media/SVGMetadataExtractor.php
includes/media/XMP.php
includes/objectcache/SqlBagOStuff.php
includes/parser/CoreParserFunctions.php
includes/parser/Parser.php
includes/parser/StripState.php
includes/resourceloader/ResourceLoaderLanguageDataModule.php
includes/search/SearchEngine.php
includes/specials/SpecialEditWatchlist.php
includes/specials/SpecialEmailuser.php
includes/specials/SpecialMostinterwikis.php [new file with mode: 0644]
includes/specials/SpecialNewpages.php
includes/specials/SpecialPreferences.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialRecentchangeslinked.php
includes/specials/SpecialRevisiondelete.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialUpload.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialVersion.php
includes/templates/Usercreate.php
includes/templates/Userlogin.php
includes/tidy.conf
includes/upload/UploadBase.php
includes/upload/UploadFromUrl.php
languages/Language.php
languages/LanguageConverter.php
languages/classes/LanguageAm.php [deleted file]
languages/classes/LanguageAr.php
languages/classes/LanguageBe.php [deleted file]
languages/classes/LanguageBh.php [deleted file]
languages/classes/LanguageBs.php
languages/classes/LanguageCs.php [deleted file]
languages/classes/LanguageCu.php
languages/classes/LanguageCy.php [deleted file]
languages/classes/LanguageDsb.php
languages/classes/LanguageFr.php [deleted file]
languages/classes/LanguageGa.php
languages/classes/LanguageGd.php [deleted file]
languages/classes/LanguageHe.php
languages/data/plurals-mediawiki.xml [new file with mode: 0644]
languages/data/plurals.xml [new file with mode: 0644]
languages/messages/MessagesAce.php
languages/messages/MessagesAf.php
languages/messages/MessagesAln.php
languages/messages/MessagesAm.php
languages/messages/MessagesAn.php
languages/messages/MessagesAng.php
languages/messages/MessagesAr.php
languages/messages/MessagesArc.php
languages/messages/MessagesAry.php
languages/messages/MessagesArz.php
languages/messages/MessagesAs.php
languages/messages/MessagesAst.php
languages/messages/MessagesAvk.php
languages/messages/MessagesAz.php
languages/messages/MessagesBa.php
languages/messages/MessagesBar.php
languages/messages/MessagesBcc.php
languages/messages/MessagesBcl.php
languages/messages/MessagesBe.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBg.php
languages/messages/MessagesBjn.php
languages/messages/MessagesBn.php
languages/messages/MessagesBpy.php
languages/messages/MessagesBr.php
languages/messages/MessagesBs.php
languages/messages/MessagesCa.php
languages/messages/MessagesCdo.php
languages/messages/MessagesCkb.php
languages/messages/MessagesCrh_cyrl.php
languages/messages/MessagesCrh_latn.php
languages/messages/MessagesCs.php
languages/messages/MessagesCsb.php
languages/messages/MessagesCu.php
languages/messages/MessagesCy.php
languages/messages/MessagesDa.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesDsb.php
languages/messages/MessagesEgl.php
languages/messages/MessagesEl.php
languages/messages/MessagesEn.php
languages/messages/MessagesEo.php
languages/messages/MessagesEs.php
languages/messages/MessagesEt.php
languages/messages/MessagesEu.php
languages/messages/MessagesExt.php
languages/messages/MessagesFa.php
languages/messages/MessagesFi.php
languages/messages/MessagesFo.php
languages/messages/MessagesFr.php
languages/messages/MessagesFrp.php
languages/messages/MessagesFy.php
languages/messages/MessagesGa.php
languages/messages/MessagesGan_hans.php
languages/messages/MessagesGan_hant.php
languages/messages/MessagesGd.php
languages/messages/MessagesGl.php
languages/messages/MessagesGrc.php
languages/messages/MessagesGsw.php
languages/messages/MessagesGu.php
languages/messages/MessagesHak.php
languages/messages/MessagesHe.php
languages/messages/MessagesHi.php
languages/messages/MessagesHif_latn.php
languages/messages/MessagesHr.php
languages/messages/MessagesHsb.php
languages/messages/MessagesHu.php
languages/messages/MessagesHy.php
languages/messages/MessagesIa.php
languages/messages/MessagesId.php
languages/messages/MessagesIe.php
languages/messages/MessagesIlo.php
languages/messages/MessagesIo.php
languages/messages/MessagesIs.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesJut.php
languages/messages/MessagesJv.php
languages/messages/MessagesKa.php
languages/messages/MessagesKab.php
languages/messages/MessagesKk_arab.php
languages/messages/MessagesKk_cyrl.php
languages/messages/MessagesKk_latn.php
languages/messages/MessagesKm.php
languages/messages/MessagesKn.php
languages/messages/MessagesKo.php
languages/messages/MessagesKrc.php
languages/messages/MessagesKsh.php
languages/messages/MessagesKu_latn.php
languages/messages/MessagesLa.php
languages/messages/MessagesLb.php
languages/messages/MessagesLez.php
languages/messages/MessagesLi.php
languages/messages/MessagesLij.php
languages/messages/MessagesLt.php
languages/messages/MessagesLus.php
languages/messages/MessagesLv.php
languages/messages/MessagesLzh.php
languages/messages/MessagesMai.php
languages/messages/MessagesMdf.php
languages/messages/MessagesMg.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMn.php
languages/messages/MessagesMr.php
languages/messages/MessagesMs.php
languages/messages/MessagesMt.php
languages/messages/MessagesMyv.php
languages/messages/MessagesMzn.php
languages/messages/MessagesNah.php
languages/messages/MessagesNb.php
languages/messages/MessagesNds.php
languages/messages/MessagesNds_nl.php
languages/messages/MessagesNe.php
languages/messages/MessagesNl.php
languages/messages/MessagesNn.php
languages/messages/MessagesOc.php
languages/messages/MessagesOr.php
languages/messages/MessagesPa.php
languages/messages/MessagesPam.php
languages/messages/MessagesPdc.php
languages/messages/MessagesPl.php
languages/messages/MessagesPms.php
languages/messages/MessagesPnb.php
languages/messages/MessagesPrg.php
languages/messages/MessagesPs.php
languages/messages/MessagesPt.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQqq.php
languages/messages/MessagesQu.php
languages/messages/MessagesRm.php
languages/messages/MessagesRo.php
languages/messages/MessagesRoa_tara.php
languages/messages/MessagesRu.php
languages/messages/MessagesRue.php
languages/messages/MessagesSa.php
languages/messages/MessagesSah.php
languages/messages/MessagesSat.php
languages/messages/MessagesSc.php
languages/messages/MessagesScn.php
languages/messages/MessagesSco.php
languages/messages/MessagesSdc.php
languages/messages/MessagesSei.php
languages/messages/MessagesSgs.php
languages/messages/MessagesSh.php
languages/messages/MessagesSi.php
languages/messages/MessagesSk.php
languages/messages/MessagesSl.php
languages/messages/MessagesSli.php
languages/messages/MessagesSq.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSr_el.php
languages/messages/MessagesStq.php
languages/messages/MessagesSu.php
languages/messages/MessagesSv.php
languages/messages/MessagesSw.php
languages/messages/MessagesSzl.php
languages/messages/MessagesTa.php
languages/messages/MessagesTe.php
languages/messages/MessagesTet.php
languages/messages/MessagesTg_cyrl.php
languages/messages/MessagesTg_latn.php
languages/messages/MessagesTh.php
languages/messages/MessagesTk.php
languages/messages/MessagesTl.php
languages/messages/MessagesTly.php
languages/messages/MessagesTo.php
languages/messages/MessagesTpi.php
languages/messages/MessagesTr.php
languages/messages/MessagesTru.php
languages/messages/MessagesTt_cyrl.php
languages/messages/MessagesTt_latn.php
languages/messages/MessagesUg_arab.php
languages/messages/MessagesUk.php
languages/messages/MessagesUr.php
languages/messages/MessagesUz.php
languages/messages/MessagesVec.php
languages/messages/MessagesVep.php
languages/messages/MessagesVi.php
languages/messages/MessagesVo.php
languages/messages/MessagesVot.php
languages/messages/MessagesVro.php
languages/messages/MessagesWa.php
languages/messages/MessagesWar.php
languages/messages/MessagesWo.php
languages/messages/MessagesYi.php
languages/messages/MessagesYo.php
languages/messages/MessagesYue.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
languages/utils/CLDRPluralRuleEvaluator.php [new file with mode: 0644]
maintenance/backupTextPass.inc
maintenance/cleanupSpam.php
maintenance/fileOpPerfTest.php
maintenance/fuzz-tester.php
maintenance/importSiteScripts.php
maintenance/language/dumpMessages.php
maintenance/language/messageTypes.inc
maintenance/language/messages.inc
maintenance/moveBatch.php
maintenance/storage/orphanStats.php
opensearch_desc.php
resources/Resources.php
resources/jquery/jquery.form.js
resources/jquery/jquery.js
resources/mediawiki.language/languages/ar.js [deleted file]
resources/mediawiki.language/languages/he.js
resources/mediawiki.language/languages/hi.js [deleted file]
resources/mediawiki.language/mediawiki.cldr.js [new file with mode: 0644]
resources/mediawiki.language/mediawiki.language.js
resources/mediawiki.libs/CLDRPluralRuleParser.js [new file with mode: 0644]
resources/mediawiki/mediawiki.js
resources/mediawiki/mediawiki.util.js
skins/CologneBlue.php
skins/Nostalgia.php
skins/Standard.php
skins/common/upload.js
tests/jasmine/spec_makers/makeJqueryMsgSpec.php
tests/parser/parserTests.txt
tests/phpunit/data/media/exif-gps.jpg
tests/phpunit/data/xmp/gps.result.php [new file with mode: 0644]
tests/phpunit/data/xmp/gps.xmp [new file with mode: 0644]
tests/phpunit/includes/ArticleTablesTest.php
tests/phpunit/includes/ExtraParserTest.php
tests/phpunit/includes/RevisionStorageTest.php
tests/phpunit/includes/UserTest.php
tests/phpunit/includes/media/ExifTest.php
tests/phpunit/includes/media/XMPTest.php
tests/phpunit/includes/parser/NewParserTest.php
tests/phpunit/languages/LanguageHeTest.php
tests/phpunit/languages/utils/CLDRPluralRuleEvaluatorTest.php [new file with mode: 0644]
tests/phpunit/maintenance/DumpTestCase.php
tests/qunit/QUnitTestResources.php
tests/qunit/suites/resources/mediawiki/mediawiki.cldr.test.js [new file with mode: 0644]
tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js
thumb.php

diff --git a/CREDITS b/CREDITS
index aa55af9..5ceccc5 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -125,7 +125,7 @@ following names for their contribution to the product.
 * Jimmy Xu
 * Jonathan Wiltshire
 * John N
-* Karun Dambietz
+* Karun Dambiec
 * Kim Hyun-Joon
 * Krenair
 * Lee Worden
index 54554c9..fcab721 100644 (file)
@@ -25,6 +25,8 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * Removed f-prot support from $wgAntivirusSetup.
 * New variable $wgDBerrorLogTZ to provide dates in the error log in a
   different timezone than the wiki timezone set by $wgLocalTimezone.
+* New variables $wgDBssl and $wgDBcompress to enable SSL and compression for database
+  connections, if either are available for the selected DB type.
 
 === New features in 1.20 ===
 * Added TitleIsAlwaysKnown hook which gets called when determining if a page exists.
@@ -63,7 +65,7 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (bug 35685) api.php URL and other entry point URLs are now listed on
   Special:Version
 * Edit notices can now be translated.
-* jQuery upgraded to 1.8.
+* (bug 35680) jQuery upgraded to 1.7.2.
 * jQuery UI upgraded to 1.8.22.
 * (bug 35705) QUnit upgraded from v1.2.0 to v1.8.0.
 * (bug 37604) jquery.cookie upgraded to 2011 version.
@@ -123,6 +125,12 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * jsMessage: Redesigned in Vector/Monobook as floating bubble with auto-hide.
 * New hook 'ParserTestGlobals' allows to set globals before running parser tests.
 * Allow importing pages as subpage.
+* Add lang and hreflang attributes to language links on Login page.
+* (bug 22749) Create Special:MostInterwikis.
+* Show change tags when transclude Special:Recentchanges(linked) or Special:Newpages.
+* (bug 23226) Add |class= parameter to image links in order to add class(es) to HTML img tag.
+* (bug 39431) SVG animated status is now shown in long description
+* (bug 39376) jquery.form upgraded to 3.14
 
 === Bug fixes in 1.20 ===
 * (bug 30245) Use the correct way to construct a log page title.
@@ -205,6 +213,14 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
   are returned, like in previous versions.
 * (bug 36524) "Show" options on Special:RecentChanges and Special:RecentChangesLinked
   are now remembered between successive clicks.
+* (bug 26069) Page title is no longer "Error" for all error pages
+* (bug 39297) Show warning if thumbnail of animated image will not be animated.
+* (bug 38249) Parser will throw an exception instead of outputting gibberish if
+  PCRE is compiled without support for unicode properties.
+* (bug 30390) Suggested file name on Special:Upload should not contain
+  illegal characters.
+* (bug 27111) Cascading foreign file repos now fetch shared descriptions properly
+* EXIF below sea level GPS altitude data is now shown correctly
 
 === API changes in 1.20 ===
 * (bug 34316) Add ability to retrieve maximum upload size from MediaWiki API.
index 2862d1b..ca46578 100644 (file)
@@ -763,11 +763,11 @@ $title: Title object for the title being linked to (may not be the same as
   $wgTitle, if the section is included from a template)
 $section: The designation of the section being pointed to, to be included in
   the link, like "&section=$section"
-$tooltip: The default tooltip.  Escape with htmlspecialchars() before using.
+$tooltip: The default tooltip.  Escape before using.
   By default, this is wrapped in the 'editsectionhint' message.
 &$result: The HTML to return, prefilled with the default plus whatever other
   changes earlier hooks have made
-$lang: The language code to use for the link in the wfMsg* functions
+$lang: The language code to use for the link in the wfMessage function
 
 'EditFilter': Perform checks on an edit
 $editor: Edit form (see includes/EditPage.php)
@@ -868,7 +868,7 @@ $title: Title being linked to
 $section: Section to link to
 $link: Default link
 &$result: Result (alter this to override the generated links)
-$lang: The language code to use for the link in the wfMsg* functions
+$lang: The language code to use for the link in the wfMessage function
 
 'EmailConfirmed': When checking that the user's email address is "confirmed"
 $user: User being checked
@@ -1283,7 +1283,7 @@ $param: Associative Array with the following additional options:
  - lim Integer Limit of items to show, default is 50
  - conds Array Extra conditions for the query (e.g. "log_action != 'revision'")
  - showIfEmpty boolean Set to false if you don't want any output in case the loglist is empty if set to true (default), "No matching items in log" is displayed if loglist is empty
- - msgKey Array If you want a nice box with a message, set this to the key of the message. First element is the message key, additional optional elements are parameters for the key that are processed with wfMsgExt and option 'parse'
+ - msgKey Array If you want a nice box with a message, set this to the key of the message. First element is the message key, additional optional elements are parameters for the key that are processed with wfMessage()->params()->parseAsBlock()
  - offset Set to overwrite offset parameter in $wgRequest set to '' to unset offset
  - wrap String Wrap the message in html (usually something like "&lt;div ...>$1&lt;/div>").
  - flags Integer display flags (NO_ACTION_LINK,NO_EXTRA_USER_LINKS)
@@ -1592,7 +1592,7 @@ Return false and put the merged text into $text to override the default behavior
 'PreferencesGetLegend': Override the text used for the <legend> of a preferences section
 $form: the PreferencesForm object. This is a ContextSource as well
 $key: the section name
-&$legend: the legend text. Defaults to wfMsg( "prefs-$key" ) but may be overridden
+&$legend: the legend text. Defaults to wfMessage( "prefs-$key" )->text() but may be overridden
 
 'PrefixSearchBackend': Override the title prefix search used for OpenSearch and
 AJAX search suggestions. Put results into &$results outparam and return false.
index f5384f9..3872edc 100644 (file)
@@ -138,7 +138,7 @@ Message Cache:
        key: $wgDBname:messages, $wgDBname:messages-hash, $wgDBname:messages-status
        ex: wikidb:messages, wikidb:messages-hash, wikidb:messages-status
        stores: an array where the keys are DB keys and the values are messages
-       set in: wfMsg(), Article::editUpdates() and Title::moveTo()
+       set in: wfMessage(), Article::editUpdates() and Title::moveTo()
        expriy: $wgMsgCacheExpiry
        cleared by: nothing
 
index fdc54aa..7b8eb2a 100644 (file)
@@ -5,9 +5,9 @@
 </head>
 <body style="background-color: #C0C0C0;">
 <p>
-This show various styles for our diff action, the background being hardcoded to gray (<tt>#C0C0C0</tt>) The reference style sheet is:</p>
+This show various styles for our diff action, the background being hardcoded to gray (<code>#C0C0C0</code>) The reference style sheet is:</p>
 <p>
-<tt><a href="../../resources/mediawiki.action/mediawiki.action.history.diff.css">resources/mediawiki.action/mediawiki.action.history.diff.css</a></tt>.
+<code><a href="../../resources/mediawiki.action/mediawiki.action.history.diff.css">resources/mediawiki.action/mediawiki.action.history.diff.css</a></code>.
 </p>
 <p>
 This file might help us fix our diff colors which have been a recurring issues among the community for a loooong time.</p>
@@ -35,12 +35,12 @@ Below are some basic lines being applied one or two classes. Mainly for debuggin
 
        <tr><th>Diff</th></tr>
 
-       <tr><td class="diff-addedline"><tt>diff-addedline</tt>: added line</td></tr>
-       <tr><td class="diff-deletedline"><tt>diff-deletedline</tt>: deleted line</td></tr>
-       <tr><td class="diff-context"><tt>diff-context</tt>: context</td></tr>
+       <tr><td class="diff-addedline"><code>diff-addedline</code>: added line</td></tr>
+       <tr><td class="diff-deletedline"><code>diff-deletedline</code>: deleted line</td></tr>
+       <tr><td class="diff-context"><code>diff-context</code>: context</td></tr>
 
 
-       <tr><th>Same as above with a <tt>&lt;span&gt;</tt> child element having the <tt>diffchange</tt> class</th></tr>
+       <tr><th>Same as above with a <code>&lt;span&gt;</code> child element having the <code>diffchange</code> class</th></tr>
 
        <tr><td class="diffchange">Diffchange</td></tr>
        <tr><td class="diff-addedline">
index d712589..74602f2 100644 (file)
@@ -148,13 +148,13 @@ function wfForbidden( $msg1, $msg2 ) {
        array_shift( $args );
        array_shift( $args );
 
-       $msgHdr = htmlspecialchars( wfMsg( $msg1 ) );
+       $msgHdr = wfMessage( $msg1 )->escaped();
        $detailMsgKey = $wgImgAuthDetails ? $msg2 : 'badaccess-group0';
-       $detailMsg = htmlspecialchars( wfMsg( $detailMsgKey, $args ) );
+       $detailMsg = wfMessage( $detailMsgKey, $args )->escaped();
 
        wfDebugLog( 'img_auth',
-               "wfForbidden Hdr:" . wfMsgExt( $msg1, array( 'language' => 'en' ) ). " Msg: ".
-               wfMsgExt( $msg2, array( 'language' => 'en' ), $args )
+               "wfForbidden Hdr:" . wfMessage( $msg1 )->inLanguage( 'en' )->text() . " Msg: ".
+               wfMessage( $msg2, $args )->inLanguage( 'en' )->text()
        );
 
        header( 'HTTP/1.0 403 Forbidden' );
index f4343d1..5192225 100644 (file)
@@ -341,7 +341,7 @@ abstract class Action {
         * @return String
         */
        protected function getDescription() {
-               return wfMsgHtml( strtolower( $this->getName() ) );
+               return $this->msg( strtolower( $this->getName() ) )->escaped();
        }
 
        /**
index 237f0ce..a3fb747 100644 (file)
@@ -245,7 +245,8 @@ class Article extends Page {
                                        $text = '';
                                }
                        } else {
-                               $text = wfMsgExt( $this->getContext()->getUser()->isLoggedIn() ? 'noarticletext' : 'noarticletextanon', 'parsemag' );
+                               $message = $this->getContext()->getUser()->isLoggedIn() ? 'noarticletext' : 'noarticletextanon';
+                               $text = wfMessage( $message )->text();
                        }
                        wfProfileOut( __METHOD__ );
 
@@ -350,7 +351,7 @@ class Article extends Page {
 
                # Pre-fill content with error message so that if something
                # fails we'll have something telling us what we intended.
-               $this->mContent = wfMsgNoTrans( 'missing-revision', $oldid );
+               $this->mContent = wfMessage( 'missing-revision', $oldid )->plain();
 
                if ( $oldid ) {
                        # $this->mRevision might already be fetched by getOldIDFromRequest()
@@ -961,21 +962,20 @@ class Article extends Page {
                $token = $user->getEditToken( $rcid );
                $outputPage->preventClickjacking();
 
+               $link = Linker::linkKnown(
+                       $this->getTitle(),
+                       wfMessage( 'markaspatrolledtext' )->escaped(),
+                       array(),
+                       array(
+                               'action' => 'markpatrolled',
+                               'rcid' => $rcid,
+                               'token' => $token,
+                       )
+               );
+
                $outputPage->addHTML(
                        "<div class='patrollink'>" .
-                               wfMsgHtml(
-                                       'markaspatrolledlink',
-                                       Linker::linkKnown(
-                                               $this->getTitle(),
-                                               wfMsgHtml( 'markaspatrolledtext' ),
-                                               array(),
-                                               array(
-                                                       'action' => 'markpatrolled',
-                                                       'rcid' => $rcid,
-                                                       'token' => $token,
-                                               )
-                                       )
-                               ) .
+                               wfMessage( 'markaspatrolledlink' )->rawParams( $link )->escaped() .
                        '</div>'
                );
        }
@@ -1041,16 +1041,16 @@ class Article extends Page {
                # Show error message
                $oldid = $this->getOldID();
                if ( $oldid ) {
-                       $text = wfMsgNoTrans( 'missing-revision', $oldid );
+                       $text = wfMessage( 'missing-revision', $oldid )->plain();
                } elseif ( $this->getTitle()->getNamespace() === NS_MEDIAWIKI ) {
                        // Use the default message text
                        $text = $this->getTitle()->getDefaultMessageText();
                } elseif ( $this->getTitle()->quickUserCan( 'create', $this->getContext()->getUser() )
                        && $this->getTitle()->quickUserCan( 'edit', $this->getContext()->getUser() )
                ) {
-                       $text = wfMsgNoTrans( 'noarticletext' );
+                       $text = wfMessage( 'noarticletext' )->plain();
                } else {
-                       $text = wfMsgNoTrans( 'noarticletext-nopermission' );
+                       $text = wfMessage( 'noarticletext-nopermission' )->plain();
                }
                $text = "<div class='noarticletext'>\n$text\n</div>";
 
@@ -1148,18 +1148,18 @@ class Article extends Page {
                        $tdtime, $revision->getUser() )->parse() . "</div>" );
 
                $lnk = $current
-                       ? wfMsgHtml( 'currentrevisionlink' )
+                       ? wfMessage( 'currentrevisionlink' )->escaped()
                        : Linker::linkKnown(
                                $this->getTitle(),
-                               wfMsgHtml( 'currentrevisionlink' ),
+                               wfMessage( 'currentrevisionlink' )->escaped(),
                                array(),
                                $extraParams
                        );
                $curdiff = $current
-                       ? wfMsgHtml( 'diff' )
+                       ? wfMessage( 'diff' )->escaped()
                        : Linker::linkKnown(
                                $this->getTitle(),
-                               wfMsgHtml( 'diff' ),
+                               wfMessage( 'diff' )->escaped(),
                                array(),
                                array(
                                        'diff' => 'cur',
@@ -1170,30 +1170,30 @@ class Article extends Page {
                $prevlink = $prev
                        ? Linker::linkKnown(
                                $this->getTitle(),
-                               wfMsgHtml( 'previousrevision' ),
+                               wfMessage( 'previousrevision' )->escaped(),
                                array(),
                                array(
                                        'direction' => 'prev',
                                        'oldid' => $oldid
                                ) + $extraParams
                        )
-                       : wfMsgHtml( 'previousrevision' );
+                       : wfMessage( 'previousrevision' )->escaped();
                $prevdiff = $prev
                        ? Linker::linkKnown(
                                $this->getTitle(),
-                               wfMsgHtml( 'diff' ),
+                               wfMessage( 'diff' )->escaped(),
                                array(),
                                array(
                                        'diff' => 'prev',
                                        'oldid' => $oldid
                                ) + $extraParams
                        )
-                       : wfMsgHtml( 'diff' );
+                       : wfMessage( 'diff' )->escaped();
                $nextlink = $current
-                       ? wfMsgHtml( 'nextrevision' )
+                       ? wfMessage( 'nextrevision' )->escaped()
                        : Linker::linkKnown(
                                $this->getTitle(),
-                               wfMsgHtml( 'nextrevision' ),
+                               wfMessage( 'nextrevision' )->escaped(),
                                array(),
                                array(
                                        'direction' => 'next',
@@ -1201,10 +1201,10 @@ class Article extends Page {
                                ) + $extraParams
                        );
                $nextdiff = $current
-                       ? wfMsgHtml( 'diff' )
+                       ? wfMessage( 'diff' )->escaped()
                        : Linker::linkKnown(
                                $this->getTitle(),
-                               wfMsgHtml( 'diff' ),
+                               wfMessage( 'diff' )->escaped(),
                                array(),
                                array(
                                        'diff' => 'next',
@@ -1218,8 +1218,9 @@ class Article extends Page {
                }
 
                $outputPage->addSubtitle( "<div id=\"mw-revision-nav\">" . $cdel .
-                       wfMsgExt( 'revision-nav', array( 'escapenoentities', 'parsemag', 'replaceafter' ),
-                       $prevdiff, $prevlink, $lnk, $curdiff, $nextlink, $nextdiff ) . "</div>" );
+                       wfMessage( 'revision-nav' )->rawParams(
+                               $prevdiff, $prevlink, $lnk, $curdiff, $nextlink, $nextdiff
+                       )->escaped() . "</div>" );
        }
 
        /**
@@ -1241,7 +1242,8 @@ class Article extends Page {
                $imageDir = $lang->getDir();
 
                if ( $appendSubtitle ) {
-                       $this->getContext()->getOutput()->appendSubtitle( wfMsgHtml( 'redirectpagesub' ) );
+                       $out = $this->getContext()->getOutput();
+                       $out->appendSubtitle( wfMessage( 'redirectpagesub' )->escaped() );
                }
 
                // the loop prepends the arrow image before the link, so the first case needs to be outside
@@ -1347,7 +1349,8 @@ class Article extends Page {
                        $reason = $deleteReason;
                } elseif ( $deleteReason != '' ) {
                        // Entry from drop down menu + additional comment
-                       $reason = $deleteReasonList . wfMsgForContent( 'colon-separator' ) . $deleteReason;
+                       $colonseparator = wfMessage( 'colon-separator' )->inContentLanguage()->text();
+                       $reason = $deleteReasonList . $colonseparator . $deleteReason;
                } else {
                        $reason = $deleteReasonList;
                }
@@ -1382,9 +1385,9 @@ class Article extends Page {
                        $revisions = $this->mTitle->estimateRevisionCount();
                        // @todo FIXME: i18n issue/patchwork message
                        $this->getContext()->getOutput()->addHTML( '<strong class="mw-delete-warning-revisions">' .
-                               wfMsgExt( 'historywarning', array( 'parseinline' ), $this->getContext()->getLanguage()->formatNum( $revisions ) ) .
-                               wfMsgHtml( 'word-separator' ) . Linker::linkKnown( $title,
-                                       wfMsgHtml( 'history' ),
+                               wfMessage( 'historywarning' )->numParams( $revisions )->parse() .
+                               wfMessage( 'word-separator' )->plain() . Linker::linkKnown( $title,
+                                       wfMessage( 'history' )->escaped(),
                                        array( 'rel' => 'archives' ),
                                        array( 'action' => 'history' ) ) .
                                '</strong>'
@@ -1422,7 +1425,7 @@ class Article extends Page {
                        $suppress = "<tr id=\"wpDeleteSuppressRow\">
                                        <td></td>
                                        <td class='mw-input'><strong>" .
-                                               Xml::checkLabel( wfMsg( 'revdelete-suppress' ),
+                                               Xml::checkLabel( wfMessage( 'revdelete-suppress' )->text(),
                                                        'wpSuppress', 'wpSuppress', false, array( 'tabindex' => '4' ) ) .
                                        "</strong></td>
                                </tr>";
@@ -1434,21 +1437,21 @@ class Article extends Page {
                $form = Xml::openElement( 'form', array( 'method' => 'post',
                        'action' => $this->getTitle()->getLocalURL( 'action=delete' ), 'id' => 'deleteconfirm' ) ) .
                        Xml::openElement( 'fieldset', array( 'id' => 'mw-delete-table' ) ) .
-                       Xml::tags( 'legend', null, wfMsgExt( 'delete-legend', array( 'parsemag', 'escapenoentities' ) ) ) .
+                       Xml::tags( 'legend', null, wfMessage( 'delete-legend' )->escaped() ) .
                        Xml::openElement( 'table', array( 'id' => 'mw-deleteconfirm-table' ) ) .
                        "<tr id=\"wpDeleteReasonListRow\">
                                <td class='mw-label'>" .
-                                       Xml::label( wfMsg( 'deletecomment' ), 'wpDeleteReasonList' ) .
+                                       Xml::label( wfMessage( 'deletecomment' )->text(), 'wpDeleteReasonList' ) .
                                "</td>
                                <td class='mw-input'>" .
                                        Xml::listDropDown( 'wpDeleteReasonList',
-                                               wfMsgForContent( 'deletereason-dropdown' ),
-                                               wfMsgForContent( 'deletereasonotherlist' ), '', 'wpReasonDropDown', 1 ) .
+                                               wfMessage( 'deletereason-dropdown' )->inContentLanguage()->text(),
+                                               wfMessage( 'deletereasonotherlist' )->inContentLanguage()->text(), '', 'wpReasonDropDown', 1 ) .
                                "</td>
                        </tr>
                        <tr id=\"wpDeleteReasonRow\">
                                <td class='mw-label'>" .
-                                       Xml::label( wfMsg( 'deleteotherreason' ), 'wpReason' ) .
+                                       Xml::label( wfMessage( 'deleteotherreason' )->text(), 'wpReason' ) .
                                "</td>
                                <td class='mw-input'>" .
                                Html::input( 'wpReason', $reason, 'text', array(
@@ -1467,7 +1470,7 @@ class Article extends Page {
                        <tr>
                                <td></td>
                                <td class='mw-input'>" .
-                                       Xml::checkLabel( wfMsg( 'watchthis' ),
+                                       Xml::checkLabel( wfMessage( 'watchthis' )->text(),
                                                'wpWatch', 'wpWatch', $checkWatch, array( 'tabindex' => '3' ) ) .
                                "</td>
                        </tr>";
@@ -1478,7 +1481,7 @@ class Article extends Page {
                        <tr>
                                <td></td>
                                <td class='mw-submit'>" .
-                                       Xml::submitButton( wfMsg( 'deletepage' ),
+                                       Xml::submitButton( wfMessage( 'deletepage' )->text(),
                                                array( 'name' => 'wpConfirmB', 'id' => 'wpConfirmB', 'tabindex' => '5' ) ) .
                                "</td>
                        </tr>" .
@@ -1491,7 +1494,7 @@ class Article extends Page {
                                $title = Title::makeTitle( NS_MEDIAWIKI, 'Deletereason-dropdown' );
                                $link = Linker::link(
                                        $title,
-                                       wfMsgHtml( 'delete-edit-reasonlist' ),
+                                       wfMessage( 'delete-edit-reasonlist' )->escaped(),
                                        array(),
                                        array( 'action' => 'edit' )
                                );
@@ -1522,18 +1525,17 @@ class Article extends Page {
                        $outputPage->setPageTitle( wfMessage( 'actioncomplete' ) );
                        $outputPage->setRobotPolicy( 'noindex,nofollow' );
 
-                       $loglink = '[[Special:Log/delete|' . wfMsgNoTrans( 'deletionlog' ) . ']]';
+                       $loglink = '[[Special:Log/delete|' . wfMessage( 'deletionlog' )->text() . ']]';
 
                        $outputPage->addWikiMsg( 'deletedtext', wfEscapeWikiText( $deleted ), $loglink );
                        $outputPage->returnToMain( false );
                } else {
                        $outputPage->setPageTitle( wfMessage( 'cannotdelete-title', $this->getTitle()->getPrefixedText() ) );
                        if ( $error == '' ) {
-                               $errors = $status->getErrorsArray();
-                               $deleteLogPage = new LogPage( 'delete' );
-                               $outputPage->wrapWikiMsg( "<div class=\"error mw-error-cannotdelete\">\n$1\n</div>",
-                                       $errors[0]
+                               $outputPage->addWikiText(
+                                       "<div class=\"error mw-error-cannotdelete\">\n" . $status->getWikiText() . "\n</div>"
                                );
+                               $deleteLogPage = new LogPage( 'delete' );
                                $outputPage->addHTML( Xml::element( 'h2', null, $deleteLogPage->getName()->text() ) );
 
                                LogEventsList::showLogExtract(
index 752f09c..b299796 100644 (file)
@@ -892,6 +892,7 @@ $wgAutoloadLocalClasses = array(
        'MIMEsearchPage' => 'includes/specials/SpecialMIMEsearch.php',
        'MostcategoriesPage' => 'includes/specials/SpecialMostcategories.php',
        'MostimagesPage' => 'includes/specials/SpecialMostimages.php',
+       'MostinterwikisPage' => 'includes/specials/SpecialMostinterwikis.php',
        'MostlinkedCategoriesPage' => 'includes/specials/SpecialMostlinkedcategories.php',
        'MostlinkedPage' => 'includes/specials/SpecialMostlinked.php',
        'MostlinkedTemplatesPage' => 'includes/specials/SpecialMostlinkedtemplates.php',
@@ -1006,6 +1007,7 @@ $wgAutoloadLocalClasses = array(
        'FakeConverter' => 'languages/Language.php',
        'Language' => 'languages/Language.php',
        'LanguageConverter' => 'languages/LanguageConverter.php',
+       'CLDRPluralRuleEvaluator' => 'languages/utils/CLDRPluralRuleEvaluator.php',
 
        # maintenance
        'ConvertLinks' => 'maintenance/convertLinks.php',
index 301a45a..6e8f9f3 100644 (file)
@@ -613,7 +613,7 @@ class Block {
                $key = wfMemcKey( 'ipb', 'autoblock', 'whitelist' );
                $lines = $wgMemc->get( $key );
                if ( !$lines ) {
-                       $lines = explode( "\n", wfMsgForContentNoTrans( 'autoblock_whitelist' ) );
+                       $lines = explode( "\n", wfMessage( 'autoblock_whitelist' )->inContentLanguage()->plain() );
                        $wgMemc->set( $key, $lines, 3600 * 24 );
                }
 
@@ -687,7 +687,7 @@ class Block {
                wfDebug( "Autoblocking {$this->getTarget()}@" . $autoblockIP . "\n" );
                $autoblock->setTarget( $autoblockIP );
                $autoblock->setBlocker( $this->getBlocker() );
-               $autoblock->mReason = wfMsgForContent( 'autoblocker', $this->getTarget(), $this->mReason );
+               $autoblock->mReason = wfMessage( 'autoblocker', $this->getTarget(), $this->mReason )->inContentLanguage()->text();
                $timestamp = wfTimestampNow();
                $autoblock->mTimestamp = $timestamp;
                $autoblock->mAuto = 1;
@@ -1020,7 +1020,7 @@ class Block {
                        $keys = array( 'infiniteblock', 'expiringblock' );
 
                        foreach ( $keys as $key ) {
-                               $msg[$key] = wfMsgHtml( $key );
+                               $msg[$key] = wfMessage( $key )->escaped();
                        }
                }
 
index ddd01eb..4e4f311 100644 (file)
@@ -526,7 +526,7 @@ class CategoryViewer extends ContextSource {
                                if ( $first && $char === $prevchar ) {
                                        # We're continuing a previous chunk at the top of a new
                                        # column, so add " cont." after the letter.
-                                       $ret .= ' ' . wfMsgHtml( 'listingcontinuesabbrev' );
+                                       $ret .= ' ' . wfMessage( 'listingcontinuesabbrev' )->escaped();
                                }
                                $ret .= "</h3>\n";
 
index 34e9eba..0ebc926 100644 (file)
@@ -227,7 +227,7 @@ class ChangeTags {
                if ( !$wgUseTagFilter || !count( self::listDefinedTags() ) )
                        return $fullForm ? '' : array();
 
-               $data = array( Html::rawElement( 'label', array( 'for' => 'tagfilter' ), wfMsgExt( 'tag-filter', 'parseinline' ) ),
+               $data = array( Html::rawElement( 'label', array( 'for' => 'tagfilter' ), wfMessage( 'tag-filter' )->parse() ),
                        Xml::input( 'tagfilter', 20, $selected, array( 'class' => 'mw-tagfilter-input' ) ) );
 
                if ( !$fullForm ) {
@@ -235,7 +235,7 @@ class ChangeTags {
                }
 
                $html = implode( '&#160;', $data );
-               $html .= "\n" . Xml::element( 'input', array( 'type' => 'submit', 'value' => wfMsg( 'tag-filter-submit' ) ) );
+               $html .= "\n" . Xml::element( 'input', array( 'type' => 'submit', 'value' => wfMessage( 'tag-filter-submit' )->text() ) );
                $html .= "\n" . Html::hidden( 'title', $title->getPrefixedText() );
                $html = Xml::tags( 'form', array( 'action' => $title->getLocalURL(), 'class' => 'mw-tagfilter-form', 'method' => 'get' ), $html );
 
index 2954920..ee4c2d6 100644 (file)
@@ -206,7 +206,7 @@ class ChangesFeed {
                                FeedUtils::formatDiff( $obj ),
                                $url,
                                $obj->rc_timestamp,
-                               ($obj->rc_deleted & Revision::DELETED_USER) ? wfMsgHtml('rev-deleted-user') : $obj->rc_user_text,
+                               ( $obj->rc_deleted & Revision::DELETED_USER ) ? wfMessage( 'rev-deleted-user' )->escaped() : $obj->rc_user_text,
                                $talkpage
                        );
                        $feed->outItem( $item );
index 51a3718..8cca4bb 100644 (file)
@@ -163,8 +163,8 @@ class ChangesList extends ContextSource {
                                'unpatrolled' => array( 'unpatrolledletter', 'recentchanges-label-unpatrolled' ),
                        );
                        foreach( $messages as &$value ) {
-                               $value[0] = wfMsgExt( $value[0], 'escapenoentities' );
-                               $value[1] = wfMsgExt( $value[1], 'escapenoentities' );
+                               $value[0] = wfMessage( $value[0] )->escaped();
+                               $value[1] = wfMessage( $value[1] )->escaped();
                        }
                }
 
index a6244ed..3ea35d5 100644 (file)
@@ -385,7 +385,9 @@ $wgImgAuthPublicTest = true;
  *                      some remote repos.
  *   - thumbDir         The base thumbnail directory. Defaults to "<directory>/thumb".
  *   - thumbUrl         The base thumbnail URL. Defaults to "<url>/thumb".
- *
+ *   - isPrivate        Set this if measures should always be taken to keep the files private.
+ *                      One should not trust this to assure that the files are not web readable;
+ *                      the server configuration should be done manually depending on the backend.
  *
  * These settings describe a foreign MediaWiki installation. They are optional, and will be ignored
  * for local repositories:
@@ -1308,6 +1310,10 @@ $wgDBuser = 'wikiuser';
 $wgDBpassword = '';
 /** Database type */
 $wgDBtype = 'mysql';
+/** Whether to use SSL in DB connection. */
+$wgDBssl = false;
+/** Whether to use compression in DB connection. */
+$wgDBcompress = false;
 
 /** Separate username for maintenance tasks. Leave as null to use the default. */
 $wgDBadminuser = null;
@@ -1393,6 +1399,8 @@ $wgSharedTables = array( 'user', 'user_properties' );
  *                  - DBO_IGNORE -- ignore errors (not useful in LocalSettings.php)
  *                  - DBO_NOBUFFER -- turn off buffering (not useful in LocalSettings.php)
  *                  - DBO_PERSISTENT -- enables persistent database connections
+ *                  - DBO_SSL -- uses SSL/TLS encryption in database connections, if available
+ *                  - DBO_COMPRESS -- uses internal compression in database connections, if available
  *
  *   - max lag:     (optional) Maximum replication lag before a slave will taken out of rotation
  *   - max threads: (optional) Maximum number of running threads
@@ -2317,16 +2325,16 @@ $wgVariantArticlePath = false;
 $wgLoginLanguageSelector = false;
 
 /**
- * When translating messages with wfMsg(), it is not always clear what should
- * be considered UI messages and what should be content messages.
+ * When translating messages with wfMessage(), it is not always clear what
+ * should be considered UI messages and what should be content messages.
  *
  * For example, for the English Wikipedia, there should be only one 'mainpage',
  * so when getting the link for 'mainpage', we should treat it as site content
- * and call wfMsgForContent(), but for rendering the text of the link, we call
- * wfMsg(). The code behaves this way by default. However, sites like the
- * Wikimedia Commons do offer different versions of 'mainpage' and the like for
- * different languages. This array provides a way to override the default
- * behavior.
+ * and call ->inContentLanguage()->text(), but for rendering the text of the
+ * link, we call ->text(). The code behaves this way by default. However,
+ * sites like the Wikimedia Commons do offer different versions of 'mainpage'
+ * and the like for different languages. This array provides a way to override
+ * the default behavior.
  *
  * @par Example:
  * To allow language-specific main page and community
@@ -5657,6 +5665,7 @@ $wgSpecialPageGroups = array(
        'Mostlinkedtemplates'       => 'highuse',
        'Mostcategories'            => 'highuse',
        'Mostimages'                => 'highuse',
+       'Mostinterwikis'            => 'highuse',
        'Mostrevisions'             => 'highuse',
 
        'Allpages'                  => 'pages',
index 56218d6..55d9a7a 100644 (file)
@@ -44,6 +44,8 @@ define( 'DBO_DEFAULT', 16 );
 define( 'DBO_PERSISTENT', 32 );
 define( 'DBO_SYSDBA', 64 ); //for oracle maintenance
 define( 'DBO_DDLMODE', 128 ); // when using schema files: mostly for Oracle
+define( 'DBO_SSL', 256 );
+define( 'DBO_COMPRESS', 512 );
 /**@}*/
 
 /**@{
index 90135df..528b4a6 100644 (file)
@@ -836,11 +836,12 @@ class EditPage {
                                                        # If we just undid one rev, use an autosummary
                                                        $firstrev = $oldrev->getNext();
                                                        if ( $firstrev && $firstrev->getId() == $undo ) {
-                                                               $undoSummary = wfMsgForContent( 'undo-summary', $undo, $undorev->getUserText() );
+                                                               $undoSummary = wfMessage( 'undo-summary', $undo, $undorev->getUserText() )->inContentLanguage()->text();
                                                                if ( $this->summary === '' ) {
                                                                        $this->summary = $undoSummary;
                                                                } else {
-                                                                       $this->summary = $undoSummary . wfMsgForContent( 'colon-separator' ) . $this->summary;
+                                                                       $this->summary = $undoSummary . wfMessage( 'colon-separator' )
+                                                                               ->inContentLanguage()->text() . $this->summary;
                                                                }
                                                                $this->undidRev = $undo;
                                                        }
@@ -855,7 +856,7 @@ class EditPage {
 
                                        $class = ( $undoMsg == 'success' ? '' : 'error ' ) . "mw-undo-{$undoMsg}";
                                        $this->editFormPageTop .= $wgOut->parse( "<div class=\"{$class}\">" .
-                                               wfMsgNoTrans( 'undo-' . $undoMsg ) . '</div>', true, /* interface */true );
+                                               wfMessage( 'undo-' . $undoMsg )->plain() . '</div>', true, /* interface */true );
                                }
 
                                if ( $text === false ) {
@@ -1243,7 +1244,8 @@ class EditPage {
                        if ( $this->section == 'new' ) {
                                if ( $this->sectiontitle !== '' ) {
                                        // Insert the section title above the content.
-                                       $text = wfMsgForContent( 'newsectionheaderdefaultlevel', $this->sectiontitle ) . "\n\n" . $text;
+                                       $text = wfMessage( 'newsectionheaderdefaultlevel', $this->sectiontitle )
+                                               ->inContentLanguage()->text() . "\n\n" . $text;
 
                                        // Jump to the new section
                                        $result['sectionanchor'] = $wgParser->guessLegacySectionNameFromWikiText( $this->sectiontitle );
@@ -1253,18 +1255,21 @@ class EditPage {
                                        // passed.
                                        if ( $this->summary === '' ) {
                                                $cleanSectionTitle = $wgParser->stripSectionName( $this->sectiontitle );
-                                               $this->summary = wfMsgForContent( 'newsectionsummary', $cleanSectionTitle );
+                                               $this->summary = wfMessage( 'newsectionsummary', $cleanSectionTitle )
+                                                       ->inContentLanguage()->text();
                                        }
                                } elseif ( $this->summary !== '' ) {
                                        // Insert the section title above the content.
-                                       $text = wfMsgForContent( 'newsectionheaderdefaultlevel', $this->summary ) . "\n\n" . $text;
+                                       $text = wfMessage( 'newsectionheaderdefaultlevel', $this->summary )
+                                               ->inContentLanguage()->text() . "\n\n" . $text;
 
                                        // Jump to the new section
                                        $result['sectionanchor'] = $wgParser->guessLegacySectionNameFromWikiText( $this->summary );
 
                                        // Create a link to the new section from the edit summary.
                                        $cleanSummary = $wgParser->stripSectionName( $this->summary );
-                                       $this->summary = wfMsgForContent( 'newsectionsummary', $cleanSummary );
+                                       $this->summary = wfMessage( 'newsectionsummary', $cleanSummary )
+                                               ->inContentLanguage()->text();
                                }
                        }
 
@@ -1394,14 +1399,16 @@ class EditPage {
                                        // passed.
                                        if ( $this->summary === '' ) {
                                                $cleanSectionTitle = $wgParser->stripSectionName( $this->sectiontitle );
-                                               $this->summary = wfMsgForContent( 'newsectionsummary', $cleanSectionTitle );
+                                               $this->summary = wfMessage( 'newsectionsummary', $cleanSectionTitle )
+                                                       ->inContentLanguage()->text();
                                        }
                                } elseif ( $this->summary !== '' ) {
                                        $sectionanchor = $wgParser->guessLegacySectionNameFromWikiText( $this->summary );
                                        # This is a new section, so create a link to the new section
                                        # in the revision summary.
                                        $cleanSummary = $wgParser->stripSectionName( $this->summary );
-                                       $this->summary = wfMsgForContent( 'newsectionsummary', $cleanSummary );
+                                       $this->summary = wfMessage( 'newsectionsummary', $cleanSummary )
+                                               ->inContentLanguage()->text();
                                }
                        } elseif ( $this->section != '' ) {
                                # Try to get a section anchor from the section source, redirect to edited section if header found
@@ -1813,8 +1820,8 @@ class EditPage {
                                : 'confirmrecreate';
                        $wgOut->addHTML(
                                '<div class="mw-confirm-recreate">' .
-                               wfMsgExt( $key, 'parseinline', $username, "<nowiki>$comment</nowiki>" ) .
-                               Xml::checkLabel( wfMsg( 'recreate' ), 'wpRecreate', 'wpRecreate', false,
+                                       wfMessage( $key, $username, "<nowiki>$comment</nowiki>" )->parse() .
+                               Xml::checkLabel( wfMessage( 'recreate' )->text(), 'wpRecreate', 'wpRecreate', false,
                                        array( 'title' => Linker::titleAttrib( 'recreate' ), 'tabindex' => 1, 'id' => 'wpRecreate' )
                                ) .
                                '</div>'
@@ -2158,7 +2165,7 @@ class EditPage {
                        }
                }
                $summary = $wgContLang->recodeForEdit( $summary );
-               $labelText = wfMsgExt( $isSubjectPreview ? 'subject' : 'summary', 'parseinline' );
+               $labelText = wfMessage( $isSubjectPreview ? 'subject' : 'summary' )->parse();
                list( $label, $input ) = $this->getSummaryInput( $summary, $labelText, array( 'class' => $summaryClass ), array() );
                $wgOut->addHTML( "{$label} {$input}" );
        }
@@ -2177,11 +2184,12 @@ class EditPage {
                global $wgParser;
 
                if ( $isSubjectPreview )
-                       $summary = wfMsgForContent( 'newsectionsummary', $wgParser->stripSectionName( $summary ) );
+                       $summary = wfMessage( 'newsectionsummary', $wgParser->stripSectionName( $summary ) )
+                               ->inContentLanguage()->text();
 
                $message = $isSubjectPreview ? 'subject-preview' : 'summary-preview';
 
-               $summary = wfMsgExt( $message, 'parseinline' ) . Linker::commentBlock( $summary, $this->mTitle, $isSubjectPreview );
+               $summary = wfMessage( $message )->parse() . Linker::commentBlock( $summary, $this->mTitle, $isSubjectPreview );
                return Xml::tags( 'div', array( 'class' => 'mw-summary-preview' ), $summary );
        }
 
@@ -2377,8 +2385,8 @@ HTML
                $newtext = $wgParser->preSaveTransform( $newtext, $this->mTitle, $wgUser, $popts );
 
                if ( $oldtext !== false  || $newtext != '' ) {
-                       $oldtitle = wfMsgExt( $oldtitlemsg, array( 'parseinline' ) );
-                       $newtitle = wfMsgExt( 'yourtext', array( 'parseinline' ) );
+                       $oldtitle = wfMessage( $oldtitlemsg )->parse();
+                       $newtitle = wfMessage( 'yourtext' )->parse();
 
                        $de = new DifferenceEngine( $this->mArticle->getContext() );
                        $de->setText( $oldtext, $newtext );
@@ -2430,11 +2438,11 @@ HTML
                global $wgRightsText;
                if ( $wgRightsText ) {
                        $copywarnMsg = array( 'copyrightwarning',
-                               '[[' . wfMsgForContent( 'copyrightpage' ) . ']]',
+                               '[[' . wfMessage( 'copyrightpage' )->inContentLanguage()->text() . ']]',
                                $wgRightsText );
                } else {
                        $copywarnMsg = array( 'copyrightwarning2',
-                               '[[' . wfMsgForContent( 'copyrightpage' ) . ']]' );
+                               '[[' . wfMessage( 'copyrightpage' )->inContentLanguage()->text() . ']]' );
                }
                // Allow for site and per-namespace customization of contribution/copyright notice.
                wfRunHooks( 'EditPageCopyrightWarning', array( $title, &$copywarnMsg ) );
@@ -2460,12 +2468,12 @@ HTML
 
                $cancel = $this->getCancelLink();
                if ( $cancel !== '' ) {
-                       $cancel .= wfMsgExt( 'pipe-separator' , 'escapenoentities' );
+                       $cancel .= wfMessage( 'pipe-separator' )->text();
                }
-               $edithelpurl = Skin::makeInternalOrExternalUrl( wfMsgForContent( 'edithelppage' ) );
+               $edithelpurl = Skin::makeInternalOrExternalUrl( wfMessage( 'edithelppage' )->inContentLanguage()->text() );
                $edithelp = '<a target="helpwindow" href="' . $edithelpurl . '">' .
-                       htmlspecialchars( wfMsg( 'edithelp' ) ) . '</a> ' .
-                       htmlspecialchars( wfMsg( 'newwindow' ) );
+                       wfMessage( 'edithelp' )->escaped() . '</a> ' .
+                       wfMessage( 'newwindow' )->escaped();
                $wgOut->addHTML( "      <span class='editHelp'>{$cancel}{$edithelp}</span>\n" );
                $wgOut->addHTML( "</div><!-- editButtons -->\n</div><!-- editOptions -->\n" );
        }
@@ -2482,7 +2490,10 @@ HTML
 
                        $de = new DifferenceEngine( $this->mArticle->getContext() );
                        $de->setText( $this->textbox2, $this->textbox1 );
-                       $de->showDiff( wfMsgExt( 'yourtext', 'parseinline' ), wfMsg( 'storedversion' ) );
+                       $de->showDiff(
+                               wfMessage( 'yourtext' )->parse(),
+                               wfMessage( 'storedversion' )->text()
+                       );
 
                        $wgOut->wrapWikiMsg( '<h2>$1</h2>', "yourtext" );
                        $this->showTextbox2();
@@ -2500,7 +2511,7 @@ HTML
 
                return Linker::linkKnown(
                        $this->getContextTitle(),
-                       wfMsgExt( 'cancel', array( 'parseinline' ) ),
+                       wfMessage( 'cancel' )->parse(),
                        array( 'id' => 'mw-editform-cancel' ),
                        $cancelParams
                );
@@ -2570,9 +2581,9 @@ HTML
                // Quick paranoid permission checks...
                if ( is_object( $data ) ) {
                        if ( $data->log_deleted & LogPage::DELETED_USER )
-                               $data->user_name = wfMsgHtml( 'rev-deleted-user' );
+                               $data->user_name = wfMessage( 'rev-deleted-user' )->escaped();
                        if ( $data->log_deleted & LogPage::DELETED_COMMENT )
-                               $data->log_comment = wfMsgHtml( 'rev-deleted-comment' );
+                               $data->log_comment = wfMessage( 'rev-deleted-comment' )->escaped();
                }
                return $data;
        }
@@ -2595,7 +2606,7 @@ HTML
                                // string, which happens when you initially edit
                                // a category page, due to automatic preview-on-open.
                                $parsedNote = $wgOut->parse( "<div class='previewnote'>" .
-                                       wfMsg( 'session_fail_preview_html' ) . "</div>", true, /* interface */true );
+                                       wfMessage( 'session_fail_preview_html' )->text() . "</div>", true, /* interface */true );
                        }
                        wfProfileOut( __METHOD__ );
                        return $parsedNote;
@@ -2603,15 +2614,15 @@ HTML
 
                if ( $this->mTriedSave && !$this->mTokenOk ) {
                        if ( $this->mTokenOkExceptSuffix ) {
-                               $note = wfMsg( 'token_suffix_mismatch' );
+                               $note = wfMessage( 'token_suffix_mismatch' )->text();
                        } else {
-                               $note = wfMsg( 'session_fail_preview' );
+                               $note = wfMessage( 'session_fail_preview' )->text();
                        }
                } elseif ( $this->incompleteForm ) {
-                       $note = wfMsg( 'edit_form_incomplete' );
+                       $note = wfMessage( 'edit_form_incomplete' )->text();
                } else {
-                       $note = wfMsg( 'previewnote' ) .
-                               ' [[#' . self::EDITFORM_ID . '|' . $wgLang->getArrow() . ' ' . wfMsg( 'continue-editing' ) . ']]';
+                       $note = wfMessage( 'previewnote' )->plain() .
+                               ' [[#' . self::EDITFORM_ID . '|' . $wgLang->getArrow() . ' ' . wfMessage( 'continue-editing' )->text() . ']]';
                }
 
                $parserOptions = ParserOptions::newFromUser( $wgUser );
@@ -2635,10 +2646,10 @@ HTML
                        $class = 'mw-code';
                        if ( $level ) {
                                if ( preg_match( "/\\.css$/", $this->mTitle->getText() ) ) {
-                                       $previewtext = "<div id='mw-{$level}csspreview'>\n" . wfMsg( "{$level}csspreview" ) . "\n</div>";
+                                       $previewtext = "<div id='mw-{$level}csspreview'>\n" . wfMessage( "{$level}csspreview" )->text() . "\n</div>";
                                        $class .= " mw-css";
                                } elseif ( preg_match( "/\\.js$/", $this->mTitle->getText() ) ) {
-                                       $previewtext = "<div id='mw-{$level}jspreview'>\n" . wfMsg( "{$level}jspreview" ) . "\n</div>";
+                                       $previewtext = "<div id='mw-{$level}jspreview'>\n" . wfMessage( "{$level}jspreview" )->text() . "\n</div>";
                                        $class .= " mw-js";
                                } else {
                                        throw new MWException( 'A CSS/JS (sub)page but which is not css nor js!' );
@@ -2656,7 +2667,7 @@ HTML
                        # If we're adding a comment, we need to show the
                        # summary as the headline
                        if ( $this->section == "new" && $this->summary != "" ) {
-                               $toparse = wfMsgForContent( 'newsectionheaderdefaultlevel', $this->summary ) . "\n\n" . $toparse;
+                               $toparse = wfMessage( 'newsectionheaderdefaultlevel', $this->summary )->inContentLanguage()->text() . "\n\n" . $toparse;
                        }
 
                        wfRunHooks( 'EditPageGetPreviewText', array( $this, &$toparse ) );
@@ -2682,13 +2693,13 @@ HTML
                }
 
                if ( $this->isConflict ) {
-                       $conflict = '<h2 id="mw-previewconflict">' . htmlspecialchars( wfMsg( 'previewconflict' ) ) . "</h2>\n";
+                       $conflict = '<h2 id="mw-previewconflict">' . wfMessage( 'previewconflict' )->escaped() . "</h2>\n";
                } else {
                        $conflict = '<hr />';
                }
 
                $previewhead = "<div class='previewnote'>\n" .
-                       '<h2 id="mw-previewheader">' . htmlspecialchars( wfMsg( 'preview' ) ) . "</h2>" .
+                       '<h2 id="mw-previewheader">' . wfMessage( 'preview' )->escaped() . "</h2>" .
                        $wgOut->parse( $note, true, /* interface */true ) . $conflict . "</div>\n";
 
                $pageLang = $this->mTitle->getPageLanguage();
@@ -2752,8 +2763,8 @@ HTML
                                'id'     => 'mw-editbutton-bold',
                                'open'   => '\'\'\'',
                                'close'  => '\'\'\'',
-                               'sample' => wfMsg( 'bold_sample' ),
-                               'tip'    => wfMsg( 'bold_tip' ),
+                               'sample' => wfMessage( 'bold_sample' )->text(),
+                               'tip'    => wfMessage( 'bold_tip' )->text(),
                                'key'    => 'B'
                        ),
                        array(
@@ -2761,8 +2772,8 @@ HTML
                                'id'     => 'mw-editbutton-italic',
                                'open'   => '\'\'',
                                'close'  => '\'\'',
-                               'sample' => wfMsg( 'italic_sample' ),
-                               'tip'    => wfMsg( 'italic_tip' ),
+                               'sample' => wfMessage( 'italic_sample' )->text(),
+                               'tip'    => wfMessage( 'italic_tip' )->text(),
                                'key'    => 'I'
                        ),
                        array(
@@ -2770,8 +2781,8 @@ HTML
                                'id'     => 'mw-editbutton-link',
                                'open'   => '[[',
                                'close'  => ']]',
-                               'sample' => wfMsg( 'link_sample' ),
-                               'tip'    => wfMsg( 'link_tip' ),
+                               'sample' => wfMessage( 'link_sample' )->text(),
+                               'tip'    => wfMessage( 'link_tip' )->text(),
                                'key'    => 'L'
                        ),
                        array(
@@ -2779,8 +2790,8 @@ HTML
                                'id'     => 'mw-editbutton-extlink',
                                'open'   => '[',
                                'close'  => ']',
-                               'sample' => wfMsg( 'extlink_sample' ),
-                               'tip'    => wfMsg( 'extlink_tip' ),
+                               'sample' => wfMessage( 'extlink_sample' )->text(),
+                               'tip'    => wfMessage( 'extlink_tip' )->text(),
                                'key'    => 'X'
                        ),
                        array(
@@ -2788,8 +2799,8 @@ HTML
                                'id'     => 'mw-editbutton-headline',
                                'open'   => "\n== ",
                                'close'  => " ==\n",
-                               'sample' => wfMsg( 'headline_sample' ),
-                               'tip'    => wfMsg( 'headline_tip' ),
+                               'sample' => wfMessage( 'headline_sample' )->text(),
+                               'tip'    => wfMessage( 'headline_tip' )->text(),
                                'key'    => 'H'
                        ),
                        $imagesAvailable ? array(
@@ -2797,8 +2808,8 @@ HTML
                                'id'     => 'mw-editbutton-image',
                                'open'   => '[[' . $wgContLang->getNsText( NS_FILE ) . ':',
                                'close'  => ']]',
-                               'sample' => wfMsg( 'image_sample' ),
-                               'tip'    => wfMsg( 'image_tip' ),
+                               'sample' => wfMessage( 'image_sample' )->text(),
+                               'tip'    => wfMessage( 'image_tip' )->text(),
                                'key'    => 'D',
                        ) : false,
                        $imagesAvailable ? array(
@@ -2806,8 +2817,8 @@ HTML
                                'id'     => 'mw-editbutton-media',
                                'open'   => '[[' . $wgContLang->getNsText( NS_MEDIA ) . ':',
                                'close'  => ']]',
-                               'sample' => wfMsg( 'media_sample' ),
-                               'tip'    => wfMsg( 'media_tip' ),
+                               'sample' => wfMessage( 'media_sample' )->text(),
+                               'tip'    => wfMessage( 'media_tip' )->text(),
                                'key'    => 'M'
                        ) : false,
                        $wgUseTeX ? array(
@@ -2815,8 +2826,8 @@ HTML
                                'id'     => 'mw-editbutton-math',
                                'open'   => "<math>",
                                'close'  => "</math>",
-                               'sample' => wfMsg( 'math_sample' ),
-                               'tip'    => wfMsg( 'math_tip' ),
+                               'sample' => wfMessage( 'math_sample' )->text(),
+                               'tip'    => wfMessage( 'math_tip' )->text(),
                                'key'    => 'C'
                        ) : false,
                        array(
@@ -2824,8 +2835,8 @@ HTML
                                'id'     => 'mw-editbutton-nowiki',
                                'open'   => "<nowiki>",
                                'close'  => "</nowiki>",
-                               'sample' => wfMsg( 'nowiki_sample' ),
-                               'tip'    => wfMsg( 'nowiki_tip' ),
+                               'sample' => wfMessage( 'nowiki_sample' )->text(),
+                               'tip'    => wfMessage( 'nowiki_tip' )->text(),
                                'key'    => 'N'
                        ),
                        array(
@@ -2834,7 +2845,7 @@ HTML
                                'open'   => '--~~~~',
                                'close'  => '',
                                'sample' => '',
-                               'tip'    => wfMsg( 'sig_tip' ),
+                               'tip'    => wfMessage( 'sig_tip' )->text(),
                                'key'    => 'Y'
                        ),
                        array(
@@ -2843,7 +2854,7 @@ HTML
                                'open'   => "\n----\n",
                                'close'  => '',
                                'sample' => '',
-                               'tip'    => wfMsg( 'hr_tip' ),
+                               'tip'    => wfMessage( 'hr_tip' )->text(),
                                'key'    => 'R'
                        )
                );
@@ -2904,11 +2915,11 @@ HTML
                // don't show the minor edit checkbox if it's a new page or section
                if ( !$this->isNew ) {
                        $checkboxes['minor'] = '';
-                       $minorLabel = wfMsgExt( 'minoredit', array( 'parseinline' ) );
+                       $minorLabel = wfMessage( 'minoredit' )->parse();
                        if ( $wgUser->isAllowed( 'minoredit' ) ) {
                                $attribs = array(
                                        'tabindex'  => ++$tabindex,
-                                       'accesskey' => wfMsg( 'accesskey-minoredit' ),
+                                       'accesskey' => wfMessage( 'accesskey-minoredit' )->text(),
                                        'id'        => 'wpMinoredit',
                                );
                                $checkboxes['minor'] =
@@ -2919,12 +2930,12 @@ HTML
                        }
                }
 
-               $watchLabel = wfMsgExt( 'watchthis', array( 'parseinline' ) );
+               $watchLabel = wfMessage( 'watchthis' )->parse();
                $checkboxes['watch'] = '';
                if ( $wgUser->isLoggedIn() ) {
                        $attribs = array(
                                'tabindex'  => ++$tabindex,
-                               'accesskey' => wfMsg( 'accesskey-watch' ),
+                               'accesskey' => wfMessage( 'accesskey-watch' )->text(),
                                'id'        => 'wpWatchthis',
                        );
                        $checkboxes['watch'] =
@@ -2953,9 +2964,9 @@ HTML
                        'name'      => 'wpSave',
                        'type'      => 'submit',
                        'tabindex'  => ++$tabindex,
-                       'value'     => wfMsg( 'savearticle' ),
-                       'accesskey' => wfMsg( 'accesskey-save' ),
-                       'title'     => wfMsg( 'tooltip-save' ) . ' [' . wfMsg( 'accesskey-save' ) . ']',
+                       'value'     => wfMessage( 'savearticle' )->text(),
+                       'accesskey' => wfMessage( 'accesskey-save' )->text(),
+                       'title'     => wfMessage( 'tooltip-save' )->text() . ' [' . wfMessage( 'accesskey-save' )->text() . ']',
                );
                $buttons['save'] = Xml::element( 'input', $temp, '' );
 
@@ -2965,9 +2976,9 @@ HTML
                        'name'      => 'wpPreview',
                        'type'      => 'submit',
                        'tabindex'  => $tabindex,
-                       'value'     => wfMsg( 'showpreview' ),
-                       'accesskey' => wfMsg( 'accesskey-preview' ),
-                       'title'     => wfMsg( 'tooltip-preview' ) . ' [' . wfMsg( 'accesskey-preview' ) . ']',
+                       'value'     => wfMessage( 'showpreview' )->text(),
+                       'accesskey' => wfMessage( 'accesskey-preview' )->text(),
+                       'title'     => wfMessage( 'tooltip-preview' )->text() . ' [' . wfMessage( 'accesskey-preview' )->text() . ']',
                );
                $buttons['preview'] = Xml::element( 'input', $temp, '' );
                $buttons['live'] = '';
@@ -2977,9 +2988,9 @@ HTML
                        'name'      => 'wpDiff',
                        'type'      => 'submit',
                        'tabindex'  => ++$tabindex,
-                       'value'     => wfMsg( 'showdiff' ),
-                       'accesskey' => wfMsg( 'accesskey-diff' ),
-                       'title'     => wfMsg( 'tooltip-diff' ) . ' [' . wfMsg( 'accesskey-diff' ) . ']',
+                       'value'     => wfMessage( 'showdiff' )->text(),
+                       'accesskey' => wfMessage( 'accesskey-diff' )->text(),
+                       'title'     => wfMessage( 'tooltip-diff' )->text() . ' [' . wfMessage( 'accesskey-diff' )->text() . ']',
                );
                $buttons['diff'] = Xml::element( 'input', $temp, '' );
 
@@ -3060,7 +3071,7 @@ HTML
 
                $wgOut->prepareErrorPage( wfMessage( 'nosuchsectiontitle' ) );
 
-               $res = wfMsgExt( 'nosuchsectiontext', 'parse', $this->section );
+               $res = wfMessage( 'nosuchsectiontext', $this->section )->parseAsBlock();
                wfRunHooks( 'EditPageNoSuchSection', array( &$this, &$res ) );
                $wgOut->addHTML( $res );
 
index d5cf543..25f90e6 100644 (file)
@@ -45,7 +45,7 @@ class MWException extends Exception {
        }
 
        /**
-        * Can the extension use wfMsg() to get i18n messages?
+        * Can the extension use the Message class/wfMessage to get i18n-ed messages?
         *
         * @return bool
         */
@@ -109,7 +109,7 @@ class MWException extends Exception {
                $args = array_slice( func_get_args(), 2 );
 
                if ( $this->useMessageCache() ) {
-                       return wfMsgNoTrans( $key, $args );
+                       return wfMessage( $key, $args )->plain();
                } else {
                        return wfMsgReplaceArgs( $fallback, $args );
                }
@@ -325,7 +325,7 @@ class ErrorPageError extends MWException {
         *
         * @param $title A title
         * @param $msg String|Message . In string form, should be a message key
-        * @param $params Array Array to wfMsg()
+        * @param $params Array Array to wfMessage()
         */
        function __construct( $title, $msg, $params = null ) {
                $this->title = $title;
@@ -335,7 +335,7 @@ class ErrorPageError extends MWException {
                if( $msg instanceof Message ){
                        parent::__construct( $msg );
                } else {
-                       parent::__construct( wfMsg( $msg ) );
+                       parent::__construct( wfMessage( $msg )->text() );
                }
        }
 
@@ -359,7 +359,7 @@ class BadTitleError extends ErrorPageError {
 
        /**
         * @param $msg string A message key (default: 'badtitletext')
-        * @param $params Array parameter to wfMsg()
+        * @param $params Array parameter to wfMessage()
         */
        function __construct( $msg = 'badtitletext', $params = null ) {
                parent::__construct( 'badtitle', $msg, $params );
@@ -477,7 +477,7 @@ class UserBlockedError extends ErrorPageError {
 
                $reason = $block->mReason;
                if( $reason == '' ) {
-                       $reason = wfMsg( 'blockednoreason' );
+                       $reason = wfMessage( 'blockednoreason' )->text();
                }
 
                /* $ip returns who *is* being blocked, $intended contains who was meant to be blocked.
@@ -536,7 +536,7 @@ class UserNotLoggedIn extends ErrorPageError {
         *        Optional, default: 'exception-nologin-text'
         * @param $titleMsg A message key to set the page title.
         *        Optional, default: 'exception-nologin'
-        * @param $params Parameters to wfMsg().
+        * @param $params Parameters to wfMessage().
         *        Optiona, default: null
         */
        public function __construct(
index 1c5e777..11b2675 100644 (file)
@@ -85,7 +85,7 @@ class FeedUtils {
                        $row->rc_last_oldid, $row->rc_this_oldid,
                        $timestamp,
                        ($row->rc_deleted & Revision::DELETED_COMMENT)
-                               ? wfMsgHtml('rev-deleted-comment') 
+                               ? wfMessage('rev-deleted-comment')->escaped()
                                : $row->rc_comment,
                        $actiontext 
                );
@@ -129,22 +129,22 @@ class FeedUtils {
                if( $oldid ) {
                        wfProfileIn( __METHOD__."-dodiff" );
 
-                       #$diffText = $de->getDiff( wfMsg( 'revisionasof',
+                       #$diffText = $de->getDiff( wfMessage( 'revisionasof',
                        #       $wgLang->timeanddate( $timestamp ),
                        #       $wgLang->date( $timestamp ),
-                       #       $wgLang->time( $timestamp ) ),
-                       #       wfMsg( 'currentrev' ) );
+                       #       $wgLang->time( $timestamp ) )->text(),
+                       #       wfMessage( 'currentrev' )->text() );
 
                        $diffText = '';
                        // Don't bother generating the diff if we won't be able to show it
                        if ( $wgFeedDiffCutoff > 0 ) {
                                $de = new DifferenceEngine( $title, $oldid, $newid );
                                $diffText = $de->getDiff(
-                                       wfMsg( 'previousrevision' ), // hack
-                                       wfMsg( 'revisionasof',
+                                       wfMessage( 'previousrevision' )->text(), // hack
+                                       wfMessage( 'revisionasof',
                                        $wgLang->timeanddate( $timestamp ),
                                        $wgLang->date( $timestamp ),
-                                       $wgLang->time( $timestamp ) ) );
+                                       $wgLang->time( $timestamp ) )->text() );
                        }
 
                        if ( $wgFeedDiffCutoff <= 0 || ( strlen( $diffText ) > $wgFeedDiffCutoff ) ) {
@@ -170,7 +170,7 @@ class FeedUtils {
                                // Omit large new page diffs, bug 29110
                                $diffText = self::getDiffLink( $title, $newid );
                        } else {
-                               $diffText = '<p><b>' . wfMsg( 'newpage' ) . '</b></p>' .
+                               $diffText = '<p><b>' . wfMessage( 'newpage' )->text() . '</b></p>' .
                                        '<div>' . nl2br( htmlspecialchars( $newtext ) ) . '</div>';
                        }
                }
@@ -196,7 +196,7 @@ class FeedUtils {
                $diffUrl = $title->getFullUrl( $queryParameters );
 
                $diffLink = Html::element( 'a', array( 'href' => $diffUrl ),
-                       wfMsgForContent( 'showdiff' ) );
+                       wfMessage( 'showdiff' )->inContentLanguage()->text() );
 
                return $diffLink;
        }
index 1f0c195..e75ad72 100644 (file)
@@ -101,7 +101,8 @@ class FileDeleteForm {
                                $reason = $deleteReason;
                        } elseif ( $deleteReason != '' ) {
                                // Entry from drop down menu + additional comment
-                               $reason = $deleteReasonList . wfMsgForContent( 'colon-separator' ) . $deleteReason;
+                               $reason = $deleteReasonList . wfMessage( 'colon-separator' )
+                                       ->inContentLanguage()->text() . $deleteReason;
                        } else {
                                $reason = $deleteReasonList;
                        }
@@ -156,9 +157,10 @@ class FileDeleteForm {
                        $status = $file->deleteOld( $oldimage, $reason, $suppress );
                        if( $status->ok ) {
                                // Need to do a log item
-                               $logComment = wfMsgForContent( 'deletedrevision', $oldimage );
+                               $logComment = wfMessage( 'deletedrevision', $oldimage )->inContentLanguage()->text();
                                if( trim( $reason ) != '' ) {
-                                       $logComment .= wfMsgForContent( 'colon-separator' ) . $reason;
+                                       $logComment .= wfMessage( 'colon-separator' )
+                                               ->inContentLanguage()->text() . $reason;
                                }
 
                                $logtype = $suppress ? 'suppress' : 'delete';
@@ -214,7 +216,7 @@ class FileDeleteForm {
                        $suppress = "<tr id=\"wpDeleteSuppressRow\">
                                        <td></td>
                                        <td class='mw-input'><strong>" .
-                                               Xml::checkLabel( wfMsg( 'revdelete-suppress' ),
+                                               Xml::checkLabel( wfMessage( 'revdelete-suppress' )->text(),
                                                        'wpSuppress', 'wpSuppress', false, array( 'tabindex' => '3' ) ) .
                                        "</strong></td>
                                </tr>";
@@ -226,23 +228,28 @@ class FileDeleteForm {
                $form = Xml::openElement( 'form', array( 'method' => 'post', 'action' => $this->getAction(),
                        'id' => 'mw-img-deleteconfirm' ) ) .
                        Xml::openElement( 'fieldset' ) .
-                       Xml::element( 'legend', null, wfMsg( 'filedelete-legend' ) ) .
+                       Xml::element( 'legend', null, wfMessage( 'filedelete-legend' )->text() ) .
                        Html::hidden( 'wpEditToken', $wgUser->getEditToken( $this->oldimage ) ) .
                        $this->prepareMessage( 'filedelete-intro' ) .
                        Xml::openElement( 'table', array( 'id' => 'mw-img-deleteconfirm-table' ) ) .
                        "<tr>
                                <td class='mw-label'>" .
-                                       Xml::label( wfMsg( 'filedelete-comment' ), 'wpDeleteReasonList' ) .
+                                       Xml::label( wfMessage( 'filedelete-comment' )->text(), 'wpDeleteReasonList' ) .
                                "</td>
                                <td class='mw-input'>" .
-                                       Xml::listDropDown( 'wpDeleteReasonList',
-                                               wfMsgForContent( 'filedelete-reason-dropdown' ),
-                                               wfMsgForContent( 'filedelete-reason-otherlist' ), '', 'wpReasonDropDown', 1 ) .
+                                       Xml::listDropDown(
+                                               'wpDeleteReasonList',
+                                               wfMessage( 'filedelete-reason-dropdown' )->inContentLanguage()->text(),
+                                               wfMessage( 'filedelete-reason-otherlist' )->inContentLanguage()->text(),
+                                               '',
+                                               'wpReasonDropDown',
+                                               1
+                                       ) .
                                "</td>
                        </tr>
                        <tr>
                                <td class='mw-label'>" .
-                                       Xml::label( wfMsg( 'filedelete-otherreason' ), 'wpReason' ) .
+                                       Xml::label( wfMessage( 'filedelete-otherreason' )->text(), 'wpReason' ) .
                                "</td>
                                <td class='mw-input'>" .
                                        Xml::input( 'wpReason', 60, $wgRequest->getText( 'wpReason' ),
@@ -255,7 +262,7 @@ class FileDeleteForm {
                        <tr>
                                <td></td>
                                <td class='mw-input'>" .
-                                       Xml::checkLabel( wfMsg( 'watchthis' ),
+                                       Xml::checkLabel( wfMessage( 'watchthis' )->text(),
                                                'wpWatch', 'wpWatch', $checkWatch, array( 'tabindex' => '3' ) ) .
                                "</td>
                        </tr>";
@@ -264,7 +271,7 @@ class FileDeleteForm {
                        <tr>
                                <td></td>
                                <td class='mw-submit'>" .
-                                       Xml::submitButton( wfMsg( 'filedelete-submit' ),
+                                       Xml::submitButton( wfMessage( 'filedelete-submit' )->text(),
                                                array( 'name' => 'mw-filedelete-submit', 'id' => 'mw-filedelete-submit', 'tabindex' => '4' ) ) .
                                "</td>
                        </tr>" .
@@ -276,7 +283,7 @@ class FileDeleteForm {
                                $title = Title::makeTitle( NS_MEDIAWIKI, 'Filedelete-reason-dropdown' );
                                $link = Linker::link(
                                        $title,
-                                       wfMsgHtml( 'filedelete-edit-reasonlist' ),
+                                       wfMessage( 'filedelete-edit-reasonlist' )->escaped(),
                                        array(),
                                        array( 'action' => 'edit' )
                                );
@@ -307,19 +314,17 @@ class FileDeleteForm {
        private function prepareMessage( $message ) {
                global $wgLang;
                if( $this->oldimage ) {
-                       return wfMsgExt(
+                       return wfMessage(
                                "{$message}-old", # To ensure grep will find them: 'filedelete-intro-old', 'filedelete-nofile-old', 'filedelete-success-old'
-                               'parse',
                                wfEscapeWikiText( $this->title->getText() ),
                                $wgLang->date( $this->getTimestamp(), true ),
                                $wgLang->time( $this->getTimestamp(), true ),
-                               wfExpandUrl( $this->file->getArchiveUrl( $this->oldimage ), PROTO_CURRENT ) );
+                               wfExpandUrl( $this->file->getArchiveUrl( $this->oldimage ), PROTO_CURRENT ) )->parseAsBlock();
                } else {
-                       return wfMsgExt(
+                       return wfMessage(
                                $message,
-                               'parse',
                                wfEscapeWikiText( $this->title->getText() )
-                       );
+                       )->parseAsBlock();
                }
        }
 
index 308b711..35c7bbb 100644 (file)
@@ -476,7 +476,7 @@ function wfCgiToArray( $query ) {
  * Append a query string to an existing URL, which may or may not already
  * have query string parameters already. If so, they will be combined.
  *
- * @deprecated
+ * @deprecated in 1.20. Use Uri class.
  * @param $url String
  * @param $query Mixed: string or associative array
  * @return string
@@ -979,7 +979,13 @@ function wfLogDBError( $text ) {
                        $logDBErrorTimeZoneObject = new DateTimeZone( $wgDBerrorLogTZ );
                }
 
-               $d = date_create( "now",  $logDBErrorTimeZoneObject );
+               // Workaround for https://bugs.php.net/bug.php?id=52063
+               // Can be removed when min PHP > 5.3.2
+               if ( $logDBErrorTimeZoneObject === null ) {
+                       $d = date_create( "now" );
+               } else {
+                       $d = date_create( "now", $logDBErrorTimeZoneObject );
+               }
 
                $date = $d->format( 'D M j G:i:s T Y' );
 
@@ -1678,7 +1684,7 @@ function wfMsgExt( $key, $options ) {
  * looked up didn't exist but a XHTML string, this function checks for the
  * nonexistance of messages by checking the MessageCache::get() result directly.
  *
- * @deprecated since 1.18
+ * @deprecated since 1.18. Use Message::isDisabled().
  *
  * @param $key      String: the message key looked up
  * @return Boolean True if the message *doesn't* exist.
@@ -1906,13 +1912,7 @@ function wfFormatStackFrame( $frame ) {
  * @return String
  */
 function wfShowingResults( $offset, $limit ) {
-       global $wgLang;
-       return wfMsgExt(
-               'showingresults',
-               array( 'parseinline' ),
-               $wgLang->formatNum( $limit ),
-               $wgLang->formatNum( $offset + 1 )
-       );
+       return wfMessage( 'showingresults' )->numParams( $limit, $offset + 1 )->parse();
 }
 
 /**
@@ -2607,7 +2607,7 @@ function wfMkdirParents( $dir, $mode = null, $caller = null ) {
        global $wgDirectoryMode;
 
        if ( FileBackend::isStoragePath( $dir ) ) { // sanity
-               throw new MWException( __FUNCTION__ . " given storage path `$dir`.");
+               throw new MWException( __FUNCTION__ . " given storage path '$dir'." );
        }
 
        if ( !is_null( $caller ) ) {
@@ -3590,13 +3590,20 @@ function wfQueriesMustScale() {
 /**
  * Get the path to a specified script file, respecting file
  * extensions; this is a wrapper around $wgScriptExtension etc.
+ * except for 'index' and 'load' which use $wgScript/$wgLoadScript
  *
  * @param $script String: script filename, sans extension
  * @return String
  */
 function wfScript( $script = 'index' ) {
-       global $wgScriptPath, $wgScriptExtension;
-       return "{$wgScriptPath}/{$script}{$wgScriptExtension}";
+       global $wgScriptPath, $wgScriptExtension, $wgScript, $wgLoadScript;
+       if ( $script === 'index' ) {
+               return $wgScript;
+       } else if ( $script === 'load' ) {
+               return $wgLoadScript;
+       } else {
+               return "{$wgScriptPath}/{$script}{$wgScriptExtension}";
+       }
 }
 
 /**
@@ -3969,7 +3976,7 @@ function wfIsBadImage( $name, $contextTitle = false, $blacklist = null ) {
                $badImages = $badImageCache;
        } else { // cache miss
                if ( $blacklist === null ) {
-                       $blacklist = wfMsgForContentNoTrans( 'bad_image_list' ); // site list
+                       $blacklist = wfMessage( 'bad_image_list' )->inContentLanguage()->plain(); // site list
                }
                # Build the list now
                $badImages = array();
index e617f17..4fc4338 100644 (file)
@@ -424,7 +424,7 @@ class HTMLForm extends ContextSource {
 
        /**
         * Set a message to display on a validation error.
-        * @param $msg Mixed String or Array of valid inputs to wfMsgExt()
+        * @param $msg Mixed String or Array of valid inputs to wfMessage()
         *       (so each entry can be either a String or Array)
         * @return HTMLForm $this for chaining calls (since 1.20)
         */
@@ -700,7 +700,7 @@ class HTMLForm extends ContextSource {
                                'input',
                                array(
                                        'type' => 'reset',
-                                       'value' => wfMsg( 'htmlform-reset' )
+                                       'value' => $this->msg( 'htmlform-reset' )->text()
                                )
                        ) . "\n";
                }
@@ -776,7 +776,7 @@ class HTMLForm extends ContextSource {
                        $errorstr .= Html::rawElement(
                                'li',
                                array(),
-                               wfMsgExt( $msg, array( 'parseinline' ), $error )
+                               wfMessage( $msg, $error )->parse()
                        );
                }
 
@@ -813,7 +813,7 @@ class HTMLForm extends ContextSource {
        function getSubmitText() {
                return $this->mSubmitText
                        ? $this->mSubmitText
-                       : wfMsg( 'htmlform-submit' );
+                       : $this->msg( 'htmlform-submit' )->text();
        }
 
        /**
@@ -873,7 +873,7 @@ class HTMLForm extends ContextSource {
         * @return HTMLForm $this for chaining calls (since 1.20)
         */
        public function setWrapperLegendMsg( $msg ) {
-               $this->setWrapperLegend( $this->msg( $msg )->escaped() );
+               $this->setWrapperLegend( $this->msg( $msg )->text() );
                return $this;
        }
 
@@ -1051,7 +1051,7 @@ class HTMLForm extends ContextSource {
         * @return String
         */
        public function getLegend( $key ) {
-               return wfMsg( "{$this->mMessagePrefix}-$key" );
+               return $this->msg( "{$this->mMessagePrefix}-$key" )->text();
        }
 
        /**
@@ -1110,7 +1110,7 @@ abstract class HTMLFormField {
         */
        function validate( $value, $alldata ) {
                if ( isset( $this->mParams['required'] ) && $this->mParams['required'] !== false && $value === '' ) {
-                       return wfMsgExt( 'htmlform-required', 'parseinline' );
+                       return $this->mParent->msg( 'htmlform-required' )->parse();
                }
 
                if ( isset( $this->mValidationCallback ) ) {
@@ -1170,7 +1170,7 @@ abstract class HTMLFormField {
                                $msgInfo = array();
                        }
 
-                       $this->mLabel = wfMsgExt( $msg, 'parseinline', $msgInfo );
+                       $this->mLabel = wfMessage( $msg, $msgInfo )->parse();
                } elseif ( isset( $params['label'] ) ) {
                        $this->mLabel = $params['label'];
                }
@@ -1371,13 +1371,13 @@ abstract class HTMLFormField {
                if ( isset( $this->mParams['help-messages'] ) ) {
                        foreach ( $this->mParams['help-messages'] as $name ) {
                                $helpMessage = (array)$name;
-                               $msg = wfMessage( array_shift( $helpMessage ), $helpMessage );
+                               $msg = $this->mParent->msg( array_shift( $helpMessage ), $helpMessage );
 
                                if ( $msg->exists() ) {
                                        if ( is_null( $helptext ) ) {
                                                $helptext = '';
                                        } else {
-                                               $helptext .= wfMessage( 'word-separator' )->escaped(); // some space
+                                               $helptext .= $this->mParent->msg( 'word-separator' )->escaped(); // some space
                                        }
                                        $helptext .= $msg->parse(); // Append message
                                }
@@ -1527,18 +1527,15 @@ class HTMLTextField extends HTMLFormField {
                        $attribs['class'] = $this->mClass;
                }
 
-               if ( isset( $this->mParams['maxlength'] ) ) {
-                       $attribs['maxlength'] = $this->mParams['maxlength'];
-               }
-
                if ( !empty( $this->mParams['disabled'] ) ) {
                        $attribs['disabled'] = 'disabled';
                }
 
                # TODO: Enforce pattern, step, required, readonly on the server side as
                # well
-               foreach ( array( 'min', 'max', 'pattern', 'title', 'step',
-               'placeholder' ) as $param ) {
+               $allowedParams = array( 'min', 'max', 'pattern', 'title', 'step',
+                       'placeholder', 'list', 'maxlength' );
+               foreach ( $allowedParams as $param ) {
                        if ( isset( $this->mParams[$param] ) ) {
                                $attribs[$param] = $this->mParams[$param];
                        }
@@ -1645,7 +1642,7 @@ class HTMLFloatField extends HTMLTextField {
                # http://dev.w3.org/html5/spec/common-microsyntaxes.html#real-numbers
                # with the addition that a leading '+' sign is ok.
                if ( !preg_match( '/^((\+|\-)?\d+(\.\d+)?(E(\+|\-)?\d+)?)?$/i', $value ) ) {
-                       return wfMsgExt( 'htmlform-float-invalid', 'parse' );
+                       return $this->mParent->msg( 'htmlform-float-invalid' )->parseAsBlock();
                }
 
                # The "int" part of these message names is rather confusing.
@@ -1654,7 +1651,7 @@ class HTMLFloatField extends HTMLTextField {
                        $min = $this->mParams['min'];
 
                        if ( $min > $value ) {
-                               return wfMsgExt( 'htmlform-int-toolow', 'parse', array( $min ) );
+                               return $this->mParent->msg( 'htmlform-int-toolow', $min )->parseAsBlock();
                        }
                }
 
@@ -1662,7 +1659,7 @@ class HTMLFloatField extends HTMLTextField {
                        $max = $this->mParams['max'];
 
                        if ( $max < $value ) {
-                               return wfMsgExt( 'htmlform-int-toohigh', 'parse', array( $max ) );
+                               return $this->mParent->msg( 'htmlform-int-toohigh', $max )->parseAsBlock();
                        }
                }
 
@@ -1689,7 +1686,7 @@ class HTMLIntField extends HTMLFloatField {
                # value to, eg, save in the DB, clean it up with intval().
                if ( !preg_match( '/^((\+|\-)?\d+)?$/', trim( $value ) )
                ) {
-                       return wfMsgExt( 'htmlform-int-invalid', 'parse' );
+                       return $this->mParent->msg( 'htmlform-int-invalid' )->parseAsBlock();
                }
 
                return true;
@@ -1773,7 +1770,7 @@ class HTMLSelectField extends HTMLFormField {
                if ( in_array( $value, $validOptions ) )
                        return true;
                else
-                       return wfMsgExt( 'htmlform-select-badoption', 'parseinline' );
+                       return $this->mParent->msg( 'htmlform-select-badoption' )->parse();
        }
 
        function getInputHTML( $value ) {
@@ -1811,7 +1808,9 @@ class HTMLSelectOrOtherField extends HTMLTextField {
 
        function __construct( $params ) {
                if ( !in_array( 'other', $params['options'], true ) ) {
-                       $msg = isset( $params['other'] ) ? $params['other'] : wfMsg( 'htmlform-selectorother-other' );
+                       $msg = isset( $params['other'] ) ?
+                               $params['other'] :
+                               wfMessage( 'htmlform-selectorother-other' )->text();
                        $params['options'][$msg] = 'other';
                }
 
@@ -1915,7 +1914,7 @@ class HTMLMultiSelectField extends HTMLFormField {
                if ( count( $validValues ) == count( $value ) ) {
                        return true;
                } else {
-                       return wfMsgExt( 'htmlform-select-badoption', 'parseinline' );
+                       return $this->mParent->msg( 'htmlform-select-badoption' )->parse();
                }
        }
 
@@ -2117,7 +2116,7 @@ class HTMLSelectAndOtherField extends HTMLSelectField {
                        } elseif ( $text == '' ) {
                                $final = $list;
                        } else {
-                               $final = $list . wfMsgForContent( 'colon-separator' ) . $text;
+                               $final = $list . $this->mParent->msg( 'colon-separator' )->inContentLanguage()->text() . $text;
                        }
 
                } else {
@@ -2126,7 +2125,7 @@ class HTMLSelectAndOtherField extends HTMLSelectField {
                        $list = 'other';
                        $text = $final;
                        foreach ( $this->mFlatOptions as $option ) {
-                               $match = $option . wfMsgForContent( 'colon-separator' );
+                               $match = $option . $this->mParent->msg( 'colon-separator' )->inContentLanguage()->text();
                                if ( strpos( $text, $match ) === 0 ) {
                                        $list = $option;
                                        $text = substr( $text, strlen( $match ) );
@@ -2154,7 +2153,7 @@ class HTMLSelectAndOtherField extends HTMLSelectField {
                }
 
                if ( isset( $this->mParams['required'] ) && $this->mParams['required'] !== false && $value[1] === '' ) {
-                       return wfMsgExt( 'htmlform-required', 'parseinline' );
+                       return $this->mParent->msg( 'htmlform-required' )->parse();
                }
 
                return true;
@@ -2183,7 +2182,7 @@ class HTMLRadioField extends HTMLFormField {
                if ( in_array( $value, $validOptions ) ) {
                        return true;
                } else {
-                       return wfMsgExt( 'htmlform-select-badoption', 'parseinline' );
+                       return $this->mParent->msg( 'htmlform-select-badoption' )->parse();
                }
        }
 
@@ -2393,11 +2392,11 @@ class HTMLEditTools extends HTMLFormField {
 
        protected function formatMsg() {
                if ( empty( $this->mParams['message'] ) ) {
-                       $msg = wfMessage( 'edittools' );
+                       $msg = $this->mParent->msg( 'edittools' );
                } else {
-                       $msg = wfMessage( $this->mParams['message'] );
+                       $msg = $this->mParent->msg( $this->mParams['message'] );
                        if ( $msg->isDisabled() ) {
-                               $msg = wfMessage( 'edittools' );
+                               $msg = $this->mParent->msg( 'edittools' );
                        }
                }
                $msg->inContentLanguage();
index 7fa98e1..23fead7 100644 (file)
@@ -749,7 +749,7 @@ class Html {
                if ( isset( $params['all'] ) ) {
                        // add an option that would let the user select all namespaces.
                        // Value is provided by user, the name shown is localized for the user.
-                       $options[$params['all']] = wfMsg( 'namespacesall' );
+                       $options[$params['all']] = wfMessage( 'namespacesall' )->text();
                }
                // Add all namespaces as options (in the content langauge)
                $options += $wgContLang->getFormattedNamespaces();
@@ -763,7 +763,7 @@ class Html {
                        if ( $nsId === 0 ) {
                                // For other namespaces use use the namespace prefix as label, but for
                                // main we don't use "" but the user message descripting it (e.g. "(Main)" or "(Article)")
-                               $nsName = wfMsg( 'blanknamespace' );
+                               $nsName = wfMessage( 'blanknamespace' )->text();
                        }
                        $optionsHtml[] = Html::element(
                                'option', array(
@@ -859,7 +859,7 @@ class Html {
        /**
         * Get HTML for an info box with an icon.
         *
-        * @param $text String: wikitext, get this with wfMsgNoTrans()
+        * @param $text String: wikitext, get this with wfMessage()->plain()
         * @param $icon String: icon name, file in skins/common/images
         * @param $alt String: alternate text for the icon
         * @param $class String: additional class name to add to the wrapper div
index d391ead..91c3190 100644 (file)
@@ -339,7 +339,7 @@ class ImageGallery {
                                if( $img ) {
                                        $fileSize = htmlspecialchars( $wgLang->formatSize( $img->getSize() ) );
                                } else {
-                                       $fileSize = wfMsgHtml( 'filemissing' );
+                                       $fileSize = wfMessage( 'filemissing' )->escaped();
                                }
                                $fileSize = "$fileSize<br />\n";
                        } else {
index ab3e2e3..fdc2061 100644 (file)
@@ -94,10 +94,47 @@ class ImagePage extends Article {
        /**
         * Handler for action=render
         * Include body text only; none of the image extras
+        * However, also include the shared description text
+        * so that cascading ForeignAPIRepo's work.
+        *
+        * @note This uses a div with the class "mw-shared-image-desc"
+        *    as opposed to the id "mw-shared-image-desc" since the text
+        *    from here may be cascadingly transcluded to other shared
+        *    repos, and we want all ids to be unique. On normal
+        *    view, the outermost shared description will still have
+        *    the id.
+        *
+        * This also differs from normal view in that "shareddescriptionfollows"
+        * message is not shown. I was not sure if it was appropriate to
+        * add that message here.
         */
        public function render() {
-               $this->getContext()->getOutput()->setArticleBodyOnly( true );
-               parent::view();
+               $out = $this->getContext()->getOutput();
+                $this->loadFile();
+
+                $descText = $this->mPage->getFile()->getDescriptionText();
+
+               $out->setArticleBodyOnly( true );
+
+               if ( !$descText ) {
+                       // If no description text, just do standard action=render
+                       parent::view();
+               } else {
+                       if ( $this->mPage->getID() !== 0 ) {
+                               // Local description exists. We need to output both
+                               parent::view();
+                               $out->addHTML( '<div class="mw-shared-image-desc">' . $descText . "</div>\n" );
+                       } else {
+                               // We don't want to output both a "noarticletext" message and the shared
+                               // description, so don't call parent::view().
+                               $out->addHTML( '<div class="mw-shared-image-desc">' . $descText . "</div>\n" );
+                               // Since we did not call parent::view(), have to call some methods it
+                               // normally takes care of. (Not that it matters much since skin not displayed)
+                               $out->setArticleFlag( true );
+                               $out->setPageTitle( $this->getTitle()->getPrefixedText() );
+                               $this->mPage->doViewUpdates( $this->getContext()->getUser() );
+                       }
+               }
        }
 
        public function view() {
@@ -172,7 +209,7 @@ class ImagePage extends Article {
                        if ( !$fol->isDisabled() ) {
                                $out->addWikiText( $fol->plain() );
                        }
-                       $out->addHTML( '<div id="shared-image-desc">' . $this->mExtraDescription . "</div>\n" );
+                       $out->addHTML( '<div id="shared-image-desc" class="mw-shared-image-desc">' . $this->mExtraDescription . "</div>\n" );
                }
 
                $this->closeShowImage();
@@ -181,7 +218,7 @@ class ImagePage extends Article {
 
                $out->addHTML( Xml::element( 'h2',
                        array( 'id' => 'filelinks' ),
-                       wfMsg( 'imagelinks' ) ) . "\n" );
+                       wfMessage( 'imagelinks' )->text() ) . "\n" );
                $this->imageDupes();
                # @todo FIXME: For some freaky reason, we can't redirect to foreign images.
                # Yet we return metadata about the target. Definitely an issue in the FileRepo
@@ -195,7 +232,10 @@ class ImagePage extends Article {
                }
 
                if ( $showmeta ) {
-                       $out->addHTML( Xml::element( 'h2', array( 'id' => 'metadata' ), wfMsg( 'metadata' ) ) . "\n" );
+                       $out->addHTML( Xml::element(
+                               'h2',
+                               array( 'id' => 'metadata' ),
+                               wfMessage( 'metadata' )->text() ) . "\n" );
                        $out->addWikiText( $this->makeMetadataTable( $formattedMetadata ) );
                        $out->addModules( array( 'mediawiki.action.view.metadata' ) );
                }
@@ -227,12 +267,12 @@ class ImagePage extends Article {
         */
        protected function showTOC( $metadata ) {
                $r = array(
-                       '<li><a href="#file">' . wfMsgHtml( 'file-anchor-link' ) . '</a></li>',
-                       '<li><a href="#filehistory">' . wfMsgHtml( 'filehist' ) . '</a></li>',
-                       '<li><a href="#filelinks">' . wfMsgHtml( 'imagelinks' ) . '</a></li>',
+                       '<li><a href="#file">' . wfMessage( 'file-anchor-link' )->escaped() . '</a></li>',
+                       '<li><a href="#filehistory">' . wfMessage( 'filehist' )->escaped() . '</a></li>',
+                       '<li><a href="#filelinks">' . wfMessage( 'imagelinks' )->escaped() . '</a></li>',
                );
                if ( $metadata ) {
-                       $r[] = '<li><a href="#metadata">' . wfMsgHtml( 'metadata' ) . '</a></li>';
+                       $r[] = '<li><a href="#metadata">' . wfMessage( 'metadata' )->escaped() . '</a></li>';
                }
 
                wfRunHooks( 'ImagePageShowTOC', array( $this, &$r ) );
@@ -250,7 +290,7 @@ class ImagePage extends Article {
         */
        protected function makeMetadataTable( $metadata ) {
                $r = "<div class=\"mw-imagepage-section-metadata\">";
-               $r .= wfMsgNoTrans( 'metadata-help' );
+               $r .= wfMessage( 'metadata-help' )->plain();
                $r .= "<table id=\"mw_metadata\" class=\"mw_metadata\">\n";
                foreach ( $metadata as $type => $stuff ) {
                        foreach ( $stuff as $v ) {
@@ -322,7 +362,7 @@ class ImagePage extends Article {
                        $height_orig = $this->displayImg->getHeight( $page );
                        $height = $height_orig;
 
-                       $longDesc = wfMsg( 'parentheses', $this->displayImg->getLongDesc() );
+                       $longDesc = wfMessage( 'parentheses', $this->displayImg->getLongDesc() )->text();
 
                        wfRunHooks( 'ImageOpenShowImageInlineBefore', array( &$this, &$out ) );
 
@@ -330,7 +370,7 @@ class ImagePage extends Article {
                                # image
 
                                # "Download high res version" link below the image
-                               # $msgsize = wfMsgHtml( 'file-info-size', $width_orig, $height_orig, Linker::formatSize( $this->displayImg->getSize() ), $mime );
+                               # $msgsize = wfMessage( 'file-info-size', $width_orig, $height_orig, Linker::formatSize( $this->displayImg->getSize() ), $mime )->escaped();
                                # We'll show a thumbnail of this image
                                if ( $width > $maxWidth || $height > $maxHeight ) {
                                        # Calculate the thumbnail size.
@@ -346,7 +386,7 @@ class ImagePage extends Article {
                                                # Note that $height <= $maxHeight now, but might not be identical
                                                # because of rounding.
                                        }
-                                       $msgbig = wfMsgHtml( 'show-big-image' );
+                                       $msgbig = wfMessage( 'show-big-image' )->escaped();
                                        if ( $this->displayImg->getRepo()->canTransformVia404() ) {
                                                $thumbSizes = $wgImageLimits;
                                        } else {
@@ -411,7 +451,7 @@ class ImagePage extends Article {
                                        $count = $this->displayImg->pageCount();
 
                                        if ( $page > 1 ) {
-                                               $label = $out->parse( wfMsg( 'imgmultipageprev' ), false );
+                                               $label = $out->parse( wfMessage( 'imgmultipageprev' )->text(), false );
                                                $link = Linker::linkKnown(
                                                        $this->getTitle(),
                                                        $label,
@@ -425,7 +465,7 @@ class ImagePage extends Article {
                                        }
 
                                        if ( $page < $count ) {
-                                               $label = wfMsg( 'imgmultipagenext' );
+                                               $label = wfMessage( 'imgmultipagenext' )->text();
                                                $link = Linker::linkKnown(
                                                        $this->getTitle(),
                                                        $label,
@@ -457,8 +497,8 @@ class ImagePage extends Article {
                                                '</td><td><div class="multipageimagenavbox">' .
                                                Xml::openElement( 'form', $formParams ) .
                                                Html::hidden( 'title', $this->getTitle()->getPrefixedDBkey() ) .
-                                               wfMsgExt( 'imgmultigoto', array( 'parseinline', 'replaceafter' ), $select ) .
-                                               Xml::submitButton( wfMsg( 'imgmultigo' ) ) .
+                                                       wfMessage( 'imgmultigoto' )->rawParams( $select )->parse() .
+                                               Xml::submitButton( wfMessage( 'imgmultigo' )->text() ) .
                                                Xml::closeElement( 'form' ) .
                                                "<hr />$thumb1\n$thumb2<br style=\"clear: both\" /></div></td></tr></table>"
                                        );
@@ -485,7 +525,7 @@ class ImagePage extends Article {
                                $medialink = "[[Media:$filename|$linktext]]";
 
                                if ( !$this->displayImg->isSafeFile() ) {
-                                       $warning = wfMsgNoTrans( 'mediawarning' );
+                                       $warning = wfMessage( 'mediawarning' )->plain();
                                        // dirmark is needed here to separate the file name, which
                                        // most likely ends in Latin characters, from the description,
                                        // which may begin with the file type. In RTL environment
@@ -507,6 +547,25 @@ EOT
                                }
                        }
 
+                       // Add cannot animate thumbnail warning
+                       if ( !$this->displayImg->canAnimateThumbIfAppropriate() ) {
+                               // Include the extension so wiki admins can
+                               // customize it on a per file-type basis
+                               // (aka say things like use format X instead).
+                               // additionally have a specific message for
+                               // file-no-thumb-animation-gif
+                               $ext = $this->displayImg->getExtension();
+                               $noAnimMesg = wfMessageFallback(
+                                       'file-no-thumb-animation-' . $ext,
+                                       'file-no-thumb-animation'
+                               )->plain();
+
+                               $out->addWikiText( <<<EOT
+<div class="mw-noanimatethumb">{$noAnimMesg}</div>
+EOT
+                               );
+                       }
+
                        if ( !$this->displayImg->isLocal() ) {
                                $this->printSharedImageText();
                        }
@@ -593,9 +652,9 @@ EOT
                $wrap = "<div class=\"sharedUploadNotice\">\n$1\n</div>\n";
                $repo = $this->mPage->getFile()->getRepo()->getDisplayName();
 
-               if ( $descUrl && $descText && wfMsgNoTrans( 'sharedupload-desc-here' ) !== '-'  ) {
+               if ( $descUrl && $descText && wfMessage( 'sharedupload-desc-here' )->plain() !== '-'  ) {
                        $out->wrapWikiMsg( $wrap, array( 'sharedupload-desc-here', $repo, $descUrl ) );
-               } elseif ( $descUrl && wfMsgNoTrans( 'sharedupload-desc-there' ) !== '-' ) {
+               } elseif ( $descUrl && wfMessage( 'sharedupload-desc-there' )->plain() !== '-' ) {
                        $out->wrapWikiMsg( $wrap, array( 'sharedupload-desc-there', $repo, $descUrl ) );
                } else {
                        $out->wrapWikiMsg( $wrap, array( 'sharedupload', $repo ), ''/*BACKCOMPAT*/ );
@@ -632,19 +691,22 @@ EOT
                }
 
                $out = $this->getContext()->getOutput();
-               $out->addHTML( "<br /><ul>\n" );
+               $out->addHTML( "<ul>\n" );
 
                # "Upload a new version of this file" link
-               if ( UploadBase::userCanReUpload( $this->getContext()->getUser(), $this->mPage->getFile()->name ) ) {
-                       $ulink = Linker::makeExternalLink( $this->getUploadUrl(), wfMsg( 'uploadnewversion-linktext' ) );
+               $canUpload = $this->getTitle()->userCan( 'upload', $this->getContext()->getUser() );
+               if ( $canUpload && UploadBase::userCanReUpload( $this->getContext()->getUser(), $this->mPage->getFile()->name ) ) {
+                       $ulink = Linker::makeExternalLink( $this->getUploadUrl(), wfMessage( 'uploadnewversion-linktext' )->text() );
                        $out->addHTML( "<li id=\"mw-imagepage-reupload-link\"><div class=\"plainlinks\">{$ulink}</div></li>\n" );
+               } else {
+                       $out->addHTML( "<li id=\"mw-imagepage-upload-disallowed\">" . $this->getContext()->msg( 'upload-disallowed-here' )->escaped() . "</li>\n" );
                }
 
                # External editing link
                if ( $wgUseExternalEditor ) {
                        $elink = Linker::linkKnown(
                                $this->getTitle(),
-                               wfMsgHtml( 'edit-externally' ),
+                               wfMessage( 'edit-externally' )->escaped(),
                                array(),
                                array(
                                        'action' => 'edit',
@@ -654,8 +716,8 @@ EOT
                        );
                        $out->addHTML(
                                '<li id="mw-imagepage-edit-external">' . $elink . ' <small>' .
-                               wfMsgExt( 'edit-externally-help', array( 'parseinline' ) ) .
-                               "</small></li>\n"
+                                       wfMessage( 'edit-externally-help' )->parse() .
+                                       "</small></li>\n"
                        );
                }
 
@@ -829,7 +891,7 @@ EOT
                        } else {
                                $link = Linker::makeExternalLink( $file->getDescriptionUrl(),
                                        $file->getTitle()->getPrefixedText() );
-                               $fromSrc = wfMsg( 'shared-repo-from', $file->getRepo()->getDisplayName() );
+                               $fromSrc = wfMessage( 'shared-repo-from', $file->getRepo()->getDisplayName() )->text();
                        }
                        $out->addHTML( "<li>{$link} {$fromSrc}</li>\n" );
                }
index c498a57..0cfb047 100644 (file)
@@ -52,7 +52,7 @@ class Licenses extends HTMLFormField {
        public function __construct( $params ) {
                parent::__construct( $params );
 
-               $this->msg = empty( $params['licenses'] ) ? wfMsgForContent( 'licenses' ) : $params['licenses'];
+               $this->msg = empty( $params['licenses'] ) ? wfMessage( 'licenses' )->inContentLanguage()->plain() : $params['licenses'];
                $this->selected = null;
 
                $this->makeLicenses();
@@ -182,7 +182,7 @@ class Licenses extends HTMLFormField {
        public function getInputHTML( $value ) {
                $this->selected = $value;
 
-               $this->html = $this->outputOption( wfMsg( 'nolicense' ), '',
+               $this->html = $this->outputOption( wfMessage( 'nolicense' )->text(), '',
                        (bool)$this->selected ? null : array( 'selected' => 'selected' ) );
                $this->makeHtml( $this->getLicenses() );
 
index 3a4f7c3..0b2deef 100644 (file)
@@ -345,7 +345,7 @@ class Linker {
                } elseif ( in_array( 'known', $options ) ) {
                        $defaults['title'] = $target->getPrefixedText();
                } else {
-                       $defaults['title'] = wfMsg( 'red-link-title', $target->getPrefixedText() );
+                       $defaults['title'] = wfMessage( 'red-link-title', $target->getPrefixedText() )->text();
                }
 
                # Finally, merge the custom attribs with the default ones, and iterate
@@ -536,6 +536,7 @@ class Linker {
         *          valign          Vertical alignment (baseline, sub, super, top, text-top, middle,
         *                          bottom, text-bottom)
         *          alt             Alternate text for image (i.e. alt attribute). Plain text.
+        *          class           HTML for image classes. Plain text.
         *          caption         HTML for image caption.
         *          link-url        URL to link to
         *          link-title      Title object to link to
@@ -580,6 +581,9 @@ class Linker {
                if ( !isset( $fp['title'] ) ) {
                        $fp['title'] = '';
                }
+               if ( !isset( $fp['class'] ) ) {
+                       $fp['class'] = '';
+               }
 
                $prefix = $postfix = '';
 
@@ -663,8 +667,11 @@ class Linker {
                        $params = array(
                                'alt' => $fp['alt'],
                                'title' => $fp['title'],
-                               'valign' => isset( $fp['valign'] ) ? $fp['valign'] : false ,
-                               'img-class' => isset( $fp['border'] ) ? 'thumbborder' : false );
+                               'valign' => isset( $fp['valign'] ) ? $fp['valign'] : false,
+                               'img-class' => $fp['class'] );
+                       if ( isset( $fp['border'] ) ) {
+                               $params['img-class'] .= ( $params['img-class'] !== '' ) ? ' thumbborder' : 'thumbborder';
+                       }
                        $params = self::getImageLinkMTOParams( $fp, $query, $parser ) + $params;
 
                        $s = $thumb->toHtml( $params );
@@ -825,13 +832,14 @@ class Linker {
                        $s .= self::makeBrokenImageLinkObj( $title, $fp['title'], '', '', '', $time == true );
                        $zoomIcon = '';
                } elseif ( !$thumb ) {
-                       $s .= htmlspecialchars( wfMsg( 'thumbnail_error', '' ) );
+                       $s .= wfMessage( 'thumbnail_error', '' )->escaped();
                        $zoomIcon = '';
                } else {
                        $params = array(
                                'alt' => $fp['alt'],
                                'title' => $fp['title'],
-                               'img-class' => 'thumbimage' );
+                               'img-class' => ( isset( $fp['class'] ) && $fp['class'] !== '' ) ? $fp['class'] . ' thumbimage' : 'thumbimage'
+                       );
                        $params = self::getImageLinkMTOParams( $fp, $query ) + $params;
                        $s .= $thumb->toHtml( $params );
                        if ( isset( $fp['framed'] ) ) {
@@ -841,7 +849,7 @@ class Linker {
                                        Html::rawElement( 'a', array(
                                                'href' => $url,
                                                'class' => 'internal',
-                                               'title' => wfMsg( 'thumbnail-more' ) ),
+                                               'title' => wfMessage( 'thumbnail-more' )->text() ),
                                                Html::element( 'img', array(
                                                        'src' => $wgStylePath . '/common/images/magnify-clip' . ( $wgContLang->isRTL() ? '-rtl' : '' ) . '.png',
                                                        'width' => 15,
@@ -971,7 +979,7 @@ class Linker {
                        $key = strtolower( $name );
                }
 
-               return self::linkKnown( SpecialPage::getTitleFor( $name ) , wfMsg( $key ) );
+               return self::linkKnown( SpecialPage::getTitleFor( $name ) , wfMessage( $key )->text() );
        }
 
        /**
@@ -1063,7 +1071,7 @@ class Linker {
                        }
                        $contribsPage = SpecialPage::getTitleFor( 'Contributions', $userText );
 
-                       $items[] = self::link( $contribsPage, wfMsgHtml( 'contribslink' ), $attribs );
+                       $items[] = self::link( $contribsPage, wfMessage( 'contribslink' )->escaped(), $attribs );
                }
                if ( $blockable && $wgUser->isAllowed( 'block' ) ) {
                        $items[] = self::blockLink( $userId, $userText );
@@ -1104,7 +1112,7 @@ class Linker {
         */
        public static function userTalkLink( $userId, $userText ) {
                $userTalkPage = Title::makeTitle( NS_USER_TALK, $userText );
-               $userTalkLink = self::link( $userTalkPage, wfMsgHtml( 'talkpagelinktext' ) );
+               $userTalkLink = self::link( $userTalkPage, wfMessage( 'talkpagelinktext' )->escaped() );
                return $userTalkLink;
        }
 
@@ -1115,7 +1123,7 @@ class Linker {
         */
        public static function blockLink( $userId, $userText ) {
                $blockPage = SpecialPage::getTitleFor( 'Block', $userText );
-               $blockLink = self::link( $blockPage, wfMsgHtml( 'blocklink' ) );
+               $blockLink = self::link( $blockPage, wfMessage( 'blocklink' )->escaped() );
                return $blockLink;
        }
 
@@ -1126,7 +1134,7 @@ class Linker {
         */
        public static function emailLink( $userId, $userText ) {
                $emailPage = SpecialPage::getTitleFor( 'Emailuser', $userText );
-               $emailLink = self::link( $emailPage, wfMsgHtml( 'emaillink' ) );
+               $emailLink = self::link( $emailPage, wfMessage( 'emaillink' )->escaped() );
                return $emailLink;
        }
 
@@ -1138,12 +1146,12 @@ class Linker {
         */
        public static function revUserLink( $rev, $isPublic = false ) {
                if ( $rev->isDeleted( Revision::DELETED_USER ) && $isPublic ) {
-                       $link = wfMsgHtml( 'rev-deleted-user' );
+                       $link = wfMessage( 'rev-deleted-user' )->escaped();
                } elseif ( $rev->userCan( Revision::DELETED_USER ) ) {
                        $link = self::userLink( $rev->getUser( Revision::FOR_THIS_USER ),
                                $rev->getUserText( Revision::FOR_THIS_USER ) );
                } else {
-                       $link = wfMsgHtml( 'rev-deleted-user' );
+                       $link = wfMessage( 'rev-deleted-user' )->escaped();
                }
                if ( $rev->isDeleted( Revision::DELETED_USER ) ) {
                        return '<span class="history-deleted">' . $link . '</span>';
@@ -1159,7 +1167,7 @@ class Linker {
         */
        public static function revUserTools( $rev, $isPublic = false ) {
                if ( $rev->isDeleted( Revision::DELETED_USER ) && $isPublic ) {
-                       $link = wfMsgHtml( 'rev-deleted-user' );
+                       $link = wfMessage( 'rev-deleted-user' )->escaped();
                } elseif ( $rev->userCan( Revision::DELETED_USER ) ) {
                        $userId = $rev->getUser( Revision::FOR_THIS_USER );
                        $userText = $rev->getUserText( Revision::FOR_THIS_USER );
@@ -1167,7 +1175,7 @@ class Linker {
                                . wfMessage( 'word-separator' )->plain()
                                . self::userToolLinks( $userId, $userText );
                } else {
-                       $link = wfMsgHtml( 'rev-deleted-user' );
+                       $link = wfMessage( 'rev-deleted-user' )->escaped();
                }
                if ( $rev->isDeleted( Revision::DELETED_USER ) ) {
                        return ' <span class="history-deleted">' . $link . '</span>';
@@ -1281,11 +1289,11 @@ class Linker {
                        }
                        if ( $pre ) {
                                # written summary $presep autocomment (summary /* section */)
-                               $pre .= wfMsgExt( 'autocomment-prefix', array( 'escapenoentities', 'content' ) );
+                               $pre .= wfMessage( 'autocomment-prefix' )->inContentLanguage()->escaped();
                        }
                        if ( $post ) {
                                # autocomment $postsep written summary (/* section */ summary)
-                               $auto .= wfMsgExt( 'colon-separator', array( 'escapenoentities', 'content' ) );
+                               $auto .= wfMessage( 'colon-separator' )->inContentLanguage()->escaped();
                        }
                        $auto = '<span class="autocomment">' . $auto . '</span>';
                        $comment = $pre . $link . $wgLang->getDirMark() . '<span dir="auto">' . $auto . $post . '</span>';
@@ -1507,12 +1515,12 @@ class Linker {
                        return "";
                }
                if ( $rev->isDeleted( Revision::DELETED_COMMENT ) && $isPublic ) {
-                       $block = " <span class=\"comment\">" . wfMsgHtml( 'rev-deleted-comment' ) . "</span>";
+                       $block = " <span class=\"comment\">" . wfMessage( 'rev-deleted-comment' )->escaped() . "</span>";
                } elseif ( $rev->userCan( Revision::DELETED_COMMENT ) ) {
                        $block = self::commentBlock( $rev->getComment( Revision::FOR_THIS_USER ),
                                $rev->getTitle(), $local );
                } else {
-                       $block = " <span class=\"comment\">" . wfMsgHtml( 'rev-deleted-comment' ) . "</span>";
+                       $block = " <span class=\"comment\">" . wfMessage( 'rev-deleted-comment' )->escaped() . "</span>";
                }
                if ( $rev->isDeleted( Revision::DELETED_COMMENT ) ) {
                        return " <span class=\"history-deleted\">$block</span>";
@@ -1526,13 +1534,11 @@ class Linker {
         */
        public static function formatRevisionSize( $size ) {
                if ( $size == 0 ) {
-                       $stxt = wfMsgExt( 'historyempty', 'parsemag' );
+                       $stxt = wfMessage( 'historyempty' )->escaped();
                } else {
-                       global $wgLang;
-                       $stxt = wfMsgExt( 'nbytes', 'parsemag', $wgLang->formatNum( $size ) );
+                       $stxt = wfMessage( 'nbytes' )->numParams( $size )->escaped();
                        $stxt = wfMessage( 'parentheses' )->rawParams( $stxt )->escaped();
                }
-               $stxt = htmlspecialchars( $stxt );
                return "<span class=\"history-size\">$stxt</span>";
        }
 
@@ -1584,11 +1590,13 @@ class Linker {
         * Wraps the TOC in a table and provides the hide/collapse javascript.
         *
         * @param $toc String: html of the Table Of Contents
-        * @param $lang mixed: Language code for the toc title
+        * @param $lang String|Language|false: Language for the toc title, defaults to user language
         * @return String: full html of the TOC
         */
        public static function tocList( $toc, $lang = false ) {
-               $title = wfMsgExt( 'toc', array( 'language' => $lang, 'escape' ) );
+               $lang = wfGetLangObj( $lang );
+               $title = wfMessage( 'toc' )->inLanguage( $lang )->escaped();
+
                return
                   '<table id="toc" class="toc"><tr><td>'
                 . '<div id="toctitle"><h2>' . $title . "</h2></div>\n"
@@ -1803,11 +1811,14 @@ class Linker {
                        # Construct the HTML
                        $outText = '<div class="mw-templatesUsedExplanation">';
                        if ( $preview ) {
-                               $outText .= wfMsgExt( 'templatesusedpreview', array( 'parse' ), count( $templates ) );
+                               $outText .= wfMessage( 'templatesusedpreview' )->numParams( count( $templates ) )
+                                       ->parseAsBlock();
                        } elseif ( $section ) {
-                               $outText .= wfMsgExt( 'templatesusedsection', array( 'parse' ), count( $templates ) );
+                               $outText .= wfMessage( 'templatesusedsection' )->numParams( count( $templates ) )
+                                       ->parseAsBlock();
                        } else {
-                               $outText .= wfMsgExt( 'templatesused', array( 'parse' ), count( $templates ) );
+                               $outText .= wfMessage( 'templatesused' )->numParams( count( $templates ) )
+                                       ->parseAsBlock();
                        }
                        $outText .= "</div><ul>\n";
 
@@ -1815,23 +1826,23 @@ class Linker {
                        foreach ( $templates as $titleObj ) {
                                $r = $titleObj->getRestrictions( 'edit' );
                                if ( in_array( 'sysop', $r ) ) {
-                                       $protected = wfMsgExt( 'template-protected', array( 'parseinline' ) );
+                                       $protected = wfMessage( 'template-protected' )->parse();
                                } elseif ( in_array( 'autoconfirmed', $r ) ) {
-                                       $protected = wfMsgExt( 'template-semiprotected', array( 'parseinline' ) );
+                                       $protected = wfMessage( 'template-semiprotected' )->parse();
                                } else {
                                        $protected = '';
                                }
                                if ( $titleObj->quickUserCan( 'edit' ) ) {
                                        $editLink = self::link(
                                                $titleObj,
-                                               wfMsg( 'editlink' ),
+                                               wfMessage( 'editlink' )->text(),
                                                array(),
                                                array( 'action' => 'edit' )
                                        );
                                } else {
                                        $editLink = self::link(
                                                $titleObj,
-                                               wfMsg( 'viewsourcelink' ),
+                                               wfMessage( 'viewsourcelink' )->text(),
                                                array(),
                                                array( 'action' => 'edit' )
                                        );
@@ -1859,7 +1870,7 @@ class Linker {
                if ( count( $hiddencats ) > 0 ) {
                        # Construct the HTML
                        $outText = '<div class="mw-hiddenCategoriesExplanation">';
-                       $outText .= wfMsgExt( 'hiddencategories', array( 'parse' ), $wgLang->formatnum( count( $hiddencats ) ) );
+                       $outText .= wfMessage( 'hiddencategories' )->numParams( count( $hiddencats ) )->parseAsBlock();
                        $outText .= "</div><ul>\n";
 
                        foreach ( $hiddencats as $titleObj ) {
@@ -2019,7 +2030,8 @@ class Linker {
         */
        public static function revDeleteLink( $query = array(), $restricted = false, $delete = true ) {
                $sp = SpecialPage::getTitleFor( 'Revisiondelete' );
-               $html = $delete ? wfMsgHtml( 'rev-delundel' ) : wfMsgHtml( 'rev-showdeleted' );
+               $msgKey = $delete ? 'rev-delundel' : 'rev-showdeleted';
+               $html = wfMessage( $msgKey )->escaped();
                $tag = $restricted ? 'strong' : 'span';
                $link = self::link( $sp, $html, array(), $query, array( 'known', 'noclasses' ) );
                return Xml::tags( $tag, array( 'class' => 'mw-revdelundel-link' ), wfMessage( 'parentheses' )->rawParams( $link )->escaped() );
@@ -2034,8 +2046,10 @@ class Linker {
         * of appearance with CSS
         */
        public static function revDeleteLinkDisabled( $delete = true ) {
-               $html = $delete ? wfMsgHtml( 'rev-delundel' ) : wfMsgHtml( 'rev-showdeleted' );
-               return Xml::tags( 'span', array( 'class' => 'mw-revdelundel-link' ), wfMessage( 'parentheses' )->rawParams( $html )->escaped() );
+               $msgKey = $delete ? 'rev-delundel' : 'rev-showdeleted';
+               $html = wfMessage( $msgKey )->escaped();
+               $htmlParentheses = wfMessage( 'parentheses' )->rawParams( $html )->escaped();
+               return Xml::tags( 'span', array( 'class' => 'mw-revdelundel-link' ), $htmlParentheses );
        }
 
        /* Deprecated methods */
index 9ce26d0..c1ac848 100644 (file)
@@ -110,7 +110,7 @@ class LocalisationCache {
                'dateFormats', 'datePreferences', 'datePreferenceMigrationMap',
                'defaultDateFormat', 'extraUserToggles', 'specialPageAliases',
                'imageFiles', 'preloadedMessages', 'namespaceGenderAliases',
-               'digitGroupingPattern'
+               'digitGroupingPattern', 'pluralRules'
        );
 
        /**
@@ -118,7 +118,7 @@ class LocalisationCache {
         * by a fallback sequence.
         */
        static public $mergeableMapKeys = array( 'messages', 'namespaceNames',
-               'dateFormats', 'imageFiles', 'preloadedMessages',
+               'dateFormats', 'imageFiles', 'preloadedMessages', 'pluralRules'
        );
 
        /**
@@ -154,6 +154,12 @@ class LocalisationCache {
         */
        static public $preloadedKeys = array( 'dateFormats', 'namespaceNames' );
 
+       /**
+        * Associative array of cached plural rules. The key is the language code,
+        * the value is an array of plural rules for that language.
+        */
+       var $pluralRules = null;
+
        var $mergeableKeys = null;
 
        /**
@@ -234,9 +240,9 @@ class LocalisationCache {
         */
        public function getItem( $code, $key ) {
                if ( !isset( $this->loadedItems[$code][$key] ) ) {
-                       wfProfileIn( __METHOD__.'-load' );
+                       wfProfileIn( __METHOD__ . '-load' );
                        $this->loadItem( $code, $key );
-                       wfProfileOut( __METHOD__.'-load' );
+                       wfProfileOut( __METHOD__ . '-load' );
                }
 
                if ( $key === 'fallback' && isset( $this->shallowFallbacks[$code] ) ) {
@@ -256,9 +262,9 @@ class LocalisationCache {
        public function getSubitem( $code, $key, $subkey ) {
                if ( !isset( $this->loadedSubitems[$code][$key][$subkey] ) &&
                         !isset( $this->loadedItems[$code][$key] ) ) {
-                       wfProfileIn( __METHOD__.'-load' );
+                       wfProfileIn( __METHOD__ . '-load' );
                        $this->loadSubitem( $code, $key, $subkey );
-                       wfProfileOut( __METHOD__.'-load' );
+                       wfProfileOut( __METHOD__ . '-load' );
                }
 
                if ( isset( $this->data[$code][$key][$subkey] ) ) {
@@ -367,7 +373,7 @@ class LocalisationCache {
         */
        public function isExpired( $code ) {
                if ( $this->forceRecache && !isset( $this->recachedLangs[$code] ) ) {
-                       wfDebug( __METHOD__."($code): forced reload\n" );
+                       wfDebug( __METHOD__ . "($code): forced reload\n" );
                        return true;
                }
 
@@ -376,7 +382,7 @@ class LocalisationCache {
                $preload = $this->store->get( $code, 'preload' );
                // Different keys may expire separately, at least in LCStore_Accel
                if ( $deps === null || $keys === null || $preload === null ) {
-                       wfDebug( __METHOD__."($code): cache missing, need to make one\n" );
+                       wfDebug( __METHOD__ . "($code): cache missing, need to make one\n" );
                        return true;
                }
 
@@ -386,7 +392,7 @@ class LocalisationCache {
                        // anymore (e.g. uninstalled extensions)
                        // When this happens, always expire the cache
                        if ( !$dep instanceof CacheDependency || $dep->isExpired() ) {
-                               wfDebug( __METHOD__."($code): cache for $code expired due to " .
+                               wfDebug( __METHOD__ . "($code): cache for $code expired due to " .
                                        get_class( $dep ) . "\n" );
                                return true;
                        }
@@ -481,12 +487,70 @@ class LocalisationCache {
                } elseif ( $_fileType == 'aliases' ) {
                        $data = compact( 'aliases' );
                } else {
-                       throw new MWException( __METHOD__.": Invalid file type: $_fileType" );
+                       throw new MWException( __METHOD__ . ": Invalid file type: $_fileType" );
                }
-
                return $data;
        }
 
+       /**
+        * Get the compiled plural rules for a given language from the XML files.
+        * @since 1.20
+        */
+       public function getCompiledPluralRules( $code ) {
+               $rules = $this->getPluralRules( $code );
+               try {
+                       $compiledRules = CLDRPluralRuleEvaluator::compile( $rules );
+               } catch( CLDRPluralRuleError $e ) {
+                       wfDebugLog( 'l10n', $e->getMessage() . "\n" );
+                       return array();
+               }
+               return $compiledRules;
+       }
+
+       /**
+        * Get the plural rules for a given language from the XML files.
+        * Cached.
+        * @since 1.20
+        */
+       public function getPluralRules( $code ) {
+               if ( $this->pluralRules === null ) {
+                       $cldrPlural = __DIR__ . "/../languages/data/plurals.xml";
+                       $mwPlural = __DIR__ . "/../languages/data/plurals-mediawiki.xml";
+                       // Load CLDR plural rules
+                       $this->loadPluralFile( $cldrPlural );
+                       if ( file_exists( $mwPlural ) ) {
+                               // Override or extend
+                               $this->loadPluralFile( $mwPlural );
+                       }
+               }
+               if ( !isset( $this->pluralRules[$code] ) ) {
+                       return array();
+               } else {
+                       return $this->pluralRules[$code];
+               }
+       }
+
+       /**
+        * Load a plural XML file with the given filename, compile the relevant
+        * rules, and save the compiled rules in a process-local cache.
+        */
+       private function loadPluralFile( $fileName ) {
+               $doc = new DOMDocument;
+               $doc->load( $fileName );
+               $rulesets = $doc->getElementsByTagName( "pluralRules" );
+               foreach ( $rulesets as $ruleset ) {
+                       $codes = $ruleset->getAttribute( 'locales' );
+                       $rules = array();
+                       $ruleElements = $ruleset->getElementsByTagName( "pluralRule" );
+                       foreach ( $ruleElements as $elt ) {
+                               $rules[] = $elt->nodeValue;
+                       }
+                       foreach ( explode( ' ', $codes ) as $code ) {
+                               $this->pluralRules[$code] = $rules;
+                       }
+               }
+       }
+
        /**
         * Merge two localisation values, a primary and a fallback, overwriting the
         * primary value in place.
@@ -587,12 +651,12 @@ class LocalisationCache {
                # Load the primary localisation from the source file
                $fileName = Language::getMessagesFileName( $code );
                if ( !file_exists( $fileName ) ) {
-                       wfDebug( __METHOD__.": no localisation file for $code, using fallback to en\n" );
+                       wfDebug( __METHOD__ . ": no localisation file for $code, using fallback to en\n" );
                        $coreData['fallback'] = 'en';
                } else {
                        $deps[] = new FileDependency( $fileName );
                        $data = $this->readPHPFile( $fileName, 'core' );
-                       wfDebug( __METHOD__.": got localisation for $code from source\n" );
+                       wfDebug( __METHOD__ . ": got localisation for $code from source\n" );
 
                        # Merge primary localisation
                        foreach ( $data as $key => $value ) {
@@ -605,7 +669,6 @@ class LocalisationCache {
                if ( is_null( $coreData['fallback'] ) ) {
                        $coreData['fallback'] = $code === 'en' ? false : 'en';
                }
-
                if ( $coreData['fallback'] === false ) {
                        $coreData['fallbackSequence'] = array();
                } else {
@@ -654,7 +717,7 @@ class LocalisationCache {
                        $used = false;
 
                        foreach ( $data as $key => $item ) {
-                               if( $this->mergeExtensionItem( $codeSequence, $key, $allData[$key], $item ) ) {
+                               if ( $this->mergeExtensionItem( $codeSequence, $key, $allData[$key], $item ) ) {
                                        $used = true;
                                }
                        }
@@ -684,19 +747,22 @@ class LocalisationCache {
                        $page = str_replace( ' ', '_', $page );
                }
                # Decouple the reference to prevent accidental damage
-               unset($page);
+               unset( $page );
 
                # Set the list keys
                $allData['list'] = array();
                foreach ( self::$splitKeys as $key ) {
                        $allData['list'][$key] = array_keys( $allData[$key] );
                }
-
+               # Load CLDR plural rules for JavaScript
+               $allData['pluralRules'] = $this->getPluralRules( $code );
+               # And for PHP
+               $allData['compiledPluralRules'] = $this->getCompiledPluralRules( $code );
                # Run hooks
                wfRunHooks( 'LocalisationCacheRecache', array( $this, $code, &$allData ) );
 
                if ( is_null( $allData['namespaceNames'] ) ) {
-                       throw new MWException( __METHOD__.': Localisation data failed sanity check! ' .
+                       throw new MWException( __METHOD__ . ': Localisation data failed sanity check! ' .
                                'Check that your languages/messages/MessagesEn.php file is intact.' );
                }
 
@@ -924,7 +990,7 @@ class LCStore_DB implements LCStore {
                }
 
                if ( !$code ) {
-                       throw new MWException( __METHOD__.": Invalid language \"$code\"" );
+                       throw new MWException( __METHOD__ . ": Invalid language \"$code\"" );
                }
 
                $this->dbw = wfGetDB( DB_MASTER );
@@ -968,7 +1034,7 @@ class LCStore_DB implements LCStore {
                }
 
                if ( is_null( $this->currentLang ) ) {
-                       throw new MWException( __CLASS__.': must call startWrite() before calling set()' );
+                       throw new MWException( __CLASS__ . ': must call startWrite() before calling set()' );
                }
 
                $this->batch[] = array(
@@ -1040,7 +1106,7 @@ class LCStore_CDB implements LCStore {
                }
 
                // Close reader to stop permission errors on write
-               if( !empty($this->readers[$code]) ) {
+               if ( !empty( $this->readers[$code] ) ) {
                        $this->readers[$code]->close();
                }
 
@@ -1058,14 +1124,14 @@ class LCStore_CDB implements LCStore {
 
        public function set( $key, $value ) {
                if ( is_null( $this->writer ) ) {
-                       throw new MWException( __CLASS__.': must call startWrite() before calling set()' );
+                       throw new MWException( __CLASS__ . ': must call startWrite() before calling set()' );
                }
                $this->writer->set( $key, serialize( $value ) );
        }
 
        protected function getFileName( $code ) {
                if ( !$code || strpos( $code, '/' ) !== false ) {
-                       throw new MWException( __METHOD__.": Invalid language \"$code\"" );
+                       throw new MWException( __METHOD__ . ": Invalid language \"$code\"" );
                }
                return "{$this->directory}/l10n_cache-$code.cdb";
        }
@@ -1181,8 +1247,9 @@ class LocalisationCache_BulkLoad extends LocalisationCache {
                while ( count( $this->data ) > $this->maxLoadedLangs && count( $this->mruLangs ) ) {
                        reset( $this->mruLangs );
                        $code = key( $this->mruLangs );
-                       wfDebug( __METHOD__.": unloading $code\n" );
+                       wfDebug( __METHOD__ . ": unloading $code\n" );
                        $this->unload( $code );
                }
        }
+
 }
index 23955ae..d112b25 100644 (file)
@@ -299,7 +299,7 @@ class MessageBlobStore {
         */
        private static function reencodeBlob( $blob, $key, $lang ) {
                $decoded = FormatJson::decode( $blob, true );
-               $decoded[$key] = wfMsgExt( $key, array( 'language' => $lang ) );
+               $decoded[$key] = wfMessage( $key )->inLanguage( $lang )->text();
 
                return FormatJson::encode( (object)$decoded );
        }
@@ -353,7 +353,7 @@ class MessageBlobStore {
                $messages = array();
 
                foreach ( $module->getMessages() as $key ) {
-                       $messages[$key] = wfMsgExt( $key, array( 'language' => $lang ) );
+                       $messages[$key] = wfMessage( $key )->inLanguage( $lang )->text();
                }
 
                return FormatJson::encode( (object)$messages );
index 229856d..0ca1539 100644 (file)
@@ -60,7 +60,7 @@ abstract class RdfMetaData {
                global $wgLanguageCode, $wgSitename;
 
                $this->element( 'title', $this->mArticle->getTitle()->getText() );
-               $this->pageOrString( 'publisher', wfMsg( 'aboutpage' ), $wgSitename );
+               $this->pageOrString( 'publisher', wfMessage( 'aboutpage' )->text(), $wgSitename );
                $this->element( 'language', $wgLanguageCode );
                $this->element( 'type', 'Text' );
                $this->element( 'format', 'text/html' );
@@ -117,14 +117,18 @@ abstract class RdfMetaData {
 
        protected function person( $name, User $user ) {
                if( $user->isAnon() ){
-                       $this->element( $name, wfMsgExt( 'anonymous', array( 'parsemag' ), 1 ) );
+                       $this->element( $name, wfMessage( 'anonymous' )->numParams( 1 )->text() );
                } else {
                        $real = $user->getRealName();
                        if( $real ) {
                                $this->element( $name, $real );
                        } else {
                                $userName = $user->getName();
-                               $this->pageOrString( $name, $user->getUserPage(), wfMsgExt( 'siteuser', 'parsemag', $userName, $userName ) );
+                               $this->pageOrString(
+                                       $name,
+                                       $user->getUserPage(),
+                                       wfMessage( 'siteuser', $userName, $userName )->text()
+                               );
                        }
                }
        }
index a9c7d14..e9e2b6f 100644 (file)
@@ -2064,7 +2064,7 @@ class OutputPage extends ContextSource {
                        $title = $this->msg( $title );
                }
 
-               $this->prepareErrorPage( $title, $this->msg( 'errorpagetitle' ) );
+               $this->prepareErrorPage( $title );
 
                if ( $msg instanceof Message ){
                        $this->addHTML( $msg->parse() );
@@ -3521,7 +3521,7 @@ $templates
         * Add a wikitext-formatted message to the output.
         * This is equivalent to:
         *
-        *    $wgOut->addWikiText( wfMsgNoTrans( ... ) )
+        *    $wgOut->addWikiText( wfMessage( ... )->plain() )
         */
        public function addWikiMsg( /*...*/ ) {
                $args = func_get_args();
index bd6a7f0..96ba446 100644 (file)
@@ -927,7 +927,7 @@ abstract class TablePager extends IndexPager {
                $tableClass = htmlspecialchars( $this->getTableClass() );
                $sortClass = htmlspecialchars( $this->getSortHeaderClass() );
 
-               $s = "<table style='border:1;' class=\"mw-datatable $tableClass\"><thead><tr>\n";
+               $s = "<table style='border:1px;' class=\"mw-datatable $tableClass\"><thead><tr>\n";
                $fields = $this->getFieldNames();
 
                # Make table header
index caedb63..ce0e36b 100644 (file)
@@ -265,7 +265,7 @@ class ProtectionForm {
                $reasonstr = $this->mReasonSelection;
                if ( $reasonstr != 'other' && $this->mReason != '' ) {
                        // Entry from drop down menu + additional comment
-                       $reasonstr .= wfMsgForContent( 'colon-separator' ) . $this->mReason;
+                       $reasonstr .= wfMessage( 'colon-separator' )->text() . $this->mReason;
                } elseif ( $reasonstr == 'other' ) {
                        $reasonstr = $this->mReason;
                }
@@ -336,8 +336,14 @@ class ProtectionForm {
        function buildForm() {
                global $wgUser, $wgLang, $wgOut;
 
-               $mProtectreasonother = Xml::label( wfMsg( 'protectcomment' ), 'wpProtectReasonSelection' );
-               $mProtectreason = Xml::label( wfMsg( 'protect-otherreason' ), 'mwProtect-reason' );
+               $mProtectreasonother = Xml::label(
+                       wfMessage( 'protectcomment' )->text(),
+                       'wpProtectReasonSelection'
+               );
+               $mProtectreason = Xml::label(
+                       wfMessage( 'protect-otherreason' )->text(),
+                       'mwProtect-reason'
+               );
 
                $out = '';
                if( !$this->disabled ) {
@@ -348,7 +354,7 @@ class ProtectionForm {
                }
 
                $out .= Xml::openElement( 'fieldset' ) .
-                       Xml::element( 'legend', null, wfMsg( 'protect-legend' ) ) .
+                       Xml::element( 'legend', null, wfMessage( 'protect-legend' )->text() ) .
                        Xml::openElement( 'table', array( 'id' => 'mwProtectSet' ) ) .
                        Xml::openElement( 'tbody' );
 
@@ -362,16 +368,22 @@ class ProtectionForm {
                                "<tr><td>" . $this->buildSelector( $action, $selected ) . "</td></tr><tr><td>";
 
                        $reasonDropDown = Xml::listDropDown( 'wpProtectReasonSelection',
-                               wfMsgForContent( 'protect-dropdown' ),
-                               wfMsgForContent( 'protect-otherreason-op' ),
+                               wfMessage( 'protect-dropdown' )->inContentLanguage()->text(),
+                               wfMessage( 'protect-otherreason-op' )->inContentLanguage()->text(),
                                $this->mReasonSelection,
                                'mwProtect-reason', 4 );
-                       $scExpiryOptions = wfMsgForContent( 'protect-expiry-options' );
+                       $scExpiryOptions = wfMessage( 'protect-expiry-options' )->inContentLanguage()->text();
 
                        $showProtectOptions = ($scExpiryOptions !== '-' && !$this->disabled);
 
-                       $mProtectexpiry = Xml::label( wfMsg( 'protectexpiry' ), "mwProtectExpirySelection-$action" );
-                       $mProtectother = Xml::label( wfMsg( 'protect-othertime' ), "mwProtect-$action-expires" );
+                       $mProtectexpiry = Xml::label(
+                               wfMessage( 'protectexpiry' )->text(),
+                               "mwProtectExpirySelection-$action"
+                       );
+                       $mProtectother = Xml::label(
+                               wfMessage( 'protect-othertime' )->text(),
+                               "mwProtect-$action-expires"
+                       );
 
                        $expiryFormOptions = '';
                        if ( $this->mExistingExpiry[$action] && $this->mExistingExpiry[$action] != 'infinity' ) {
@@ -380,13 +392,16 @@ class ProtectionForm {
                                $t = $wgLang->time( $this->mExistingExpiry[$action], true );
                                $expiryFormOptions .=
                                        Xml::option(
-                                               wfMsg( 'protect-existing-expiry', $timestamp, $d, $t ),
+                                               wfMessage( 'protect-existing-expiry', $timestamp, $d, $t )->text(),
                                                'existing',
                                                $this->mExpirySelection[$action] == 'existing'
                                        ) . "\n";
                        }
 
-                       $expiryFormOptions .= Xml::option( wfMsg( 'protect-othertime-op' ), "othertime" ) . "\n";
+                       $expiryFormOptions .= Xml::option(
+                               wfMessage( 'protect-othertime-op' )->text(),
+                               "othertime"
+                       ) . "\n";
                        foreach( explode(',', $scExpiryOptions) as $option ) {
                                if ( strpos($option, ":") === false ) {
                                        $show = $value = $option;
@@ -444,8 +459,12 @@ class ProtectionForm {
                        $out .= '<tr>
                                        <td></td>
                                        <td class="mw-input">' .
-                                               Xml::checkLabel( wfMsg( 'protect-cascade' ), 'mwProtect-cascade', 'mwProtect-cascade',
-                                                       $this->mCascade, $this->disabledAttrib ) .
+                                               Xml::checkLabel(
+                                                       wfMessage( 'protect-cascade' )->text(),
+                                                       'mwProtect-cascade',
+                                                       'mwProtect-cascade',
+                                                       $this->mCascade, $this->disabledAttrib
+                                               ) .
                                        "</td>
                                </tr>\n";
                        $out .= Xml::closeElement( 'tbody' ) . Xml::closeElement( 'table' );
@@ -482,7 +501,7 @@ class ProtectionForm {
                                <tr>
                                        <td></td>
                                        <td class='mw-input'>" .
-                                               Xml::checkLabel( wfMsg( 'watchthis' ),
+                                               Xml::checkLabel( wfMessage( 'watchthis' )->text(),
                                                        'mwProtectWatch', 'mwProtectWatch',
                                                        $this->mTitle->userIsWatching() || $wgUser->getOption( 'watchdefault' ) ) .
                                        "</td>
@@ -492,7 +511,10 @@ class ProtectionForm {
                                <tr>
                                        <td></td>
                                        <td class='mw-submit'>" .
-                                               Xml::submitButton( wfMsg( 'confirm' ), array( 'id' => 'mw-Protect-submit' ) ) .
+                                               Xml::submitButton(
+                                                       wfMessage( 'confirm' )->text(),
+                                                       array( 'id' => 'mw-Protect-submit' )
+                                               ) .
                                        "</td>
                                </tr>\n";
                        $out .= Xml::closeElement( 'tbody' ) . Xml::closeElement( 'table' );
@@ -503,7 +525,7 @@ class ProtectionForm {
                        $title = Title::makeTitle( NS_MEDIAWIKI, 'Protect-dropdown' );
                        $link = Linker::link(
                                $title,
-                               wfMsgHtml( 'protect-edit-reasonlist' ),
+                               wfMessage( 'protect-edit-reasonlist' )->escaped(),
                                array(),
                                array( 'action' => 'edit' )
                        );
@@ -567,13 +589,13 @@ class ProtectionForm {
         */
        private function getOptionLabel( $permission ) {
                if( $permission == '' ) {
-                       return wfMsg( 'protect-default' );
+                       return wfMessage( 'protect-default' )->text();
                } else {
                        $msg = wfMessage( "protect-level-{$permission}" );
                        if( $msg->exists() ) {
                                return $msg->text();
                        }
-                       return wfMsg( 'protect-fallback', $permission );
+                       return wfMessage( 'protect-fallback', $permission )->text();
                }
        }
 
index 076b1b5..ac559dc 100644 (file)
@@ -45,6 +45,7 @@ $wgQueryPages = array(
        array( 'MIMEsearchPage',                'MIMEsearch'                    ),
        array( 'MostcategoriesPage',            'Mostcategories'                ),
        array( 'MostimagesPage',                'Mostimages'                    ),
+       array( 'MostinterwikisPage',            'Mostinterwikis'                ),
        array( 'MostlinkedCategoriesPage',      'Mostlinkedcategories'          ),
        array( 'MostlinkedtemplatesPage',       'Mostlinkedtemplates'           ),
        array( 'MostlinkedPage',                'Mostlinked'                    ),
@@ -526,7 +527,8 @@ abstract class QueryPage extends SpecialPage {
                        $out->addHTML( $this->getPageHeader() );
                        if ( $this->numRows > 0 ) {
                                $out->addHTML( $this->msg( 'showingresults' )->numParams(
-                                       $this->numRows, $this->offset + 1 )->parseAsBlock() );
+                                       min( $this->numRows, $this->limit ), # do not show the one extra row, if exist
+                                       $this->offset + 1 )->parseAsBlock() );
                                # Disable the "next" link when we reach the end
                                $paging = $this->getLanguage()->viewPrevNext( $this->getTitle( $par ), $this->offset,
                                        $this->limit, $this->linkParameters(), ( $this->numRows <= $this->limit ) );
@@ -557,7 +559,7 @@ abstract class QueryPage extends SpecialPage {
 
                $out->addHTML( Xml::closeElement( 'div' ) );
 
-               return $this->numRows;
+               return min( $this->numRows, $this->limit ); # do not return the one extra row, if exist
        }
 
        /**
index e7ddf3c..9da031e 100644 (file)
@@ -319,7 +319,7 @@ class Revision implements IDBAccessObject {
                        self::selectUserFields()
                );
                $options = array( 'LIMIT' => 1 );
-               if ( $flags & self::READ_LOCKING ) {
+               if ( ( $flags & self::READ_LOCKING ) == self::READ_LOCKING ) {
                        $options[] = 'FOR UPDATE';
                }
                return $db->select(
index 3db4cf9..5af6aec 100644 (file)
@@ -1103,7 +1103,7 @@ abstract class Skin extends ContextSource {
         * @return String
         */
        static function makeI18nUrl( $name, $urlaction = '' ) {
-               $title = Title::newFromText( wfMsgForContent( $name ) );
+               $title = Title::newFromText( wfMessage( $name )->inContentLanguage()->text() );
                self::checkTitle( $title, $name );
                return $title->getLocalURL( $urlaction );
        }
@@ -1235,7 +1235,7 @@ abstract class Skin extends ContextSource {
         * @param $message String
         */
        function addToSidebar( &$bar, $message ) {
-               $this->addToSidebarPlain( $bar, wfMsgForContentNoTrans( $message ) );
+               $this->addToSidebarPlain( $bar, wfMessage( $message )->inContentLanguage()->plain() );
        }
 
        /**
@@ -1361,8 +1361,8 @@ abstract class Skin extends ContextSource {
                                        $plural = true; // Default if we have a last seen revision: if unknown, use plural
                                        $latestRev = Revision::newFromTitle ($userTalkTitle);
                                        if ( $latestRev !== null ) {
-                                               // Singular if only 1 unseen revision, plural if several unseen revisions.\r
-                                               $plural = $latestRev->getParentId() !== $lastSeenRev->getId();\r
+                                               // Singular if only 1 unseen revision, plural if several unseen revisions.
+                                               $plural = $latestRev->getParentId() !== $lastSeenRev->getId();
                                                $nofAuthors = $userTalkTitle->countAuthorsBetween( $lastSeenRev, $latestRev, 10, 'include_new' );
                                        }
                                } else {
@@ -1547,13 +1547,17 @@ abstract class Skin extends ContextSource {
        public function doEditSectionLink( Title $nt, $section, $tooltip = null, $lang = false ) {
                // HTML generated here should probably have userlangattributes
                // added to it for LTR text on RTL pages
+
+               $lang = wfGetLangObj( $lang );
+
                $attribs = array();
                if ( !is_null( $tooltip ) ) {
                        # Bug 25462: undo double-escaping.
                        $tooltip = Sanitizer::decodeCharReferences( $tooltip );
-                       $attribs['title'] = wfMsgExt( 'editsectionhint', array( 'language' => $lang, 'parsemag', 'replaceafter' ), $tooltip );
+                       $attribs['title'] = wfMessage( 'editsectionhint' )->rawParams( $tooltip )
+                               ->inLanguage( $lang )->text();
                }
-               $link = Linker::link( $nt, wfMsgExt( 'editsection', array( 'language' => $lang ) ),
+               $link = Linker::link( $nt, wfMessage( 'editsection' )->inLanguage( $lang )->text(),
                        $attribs,
                        array( 'action' => 'edit', 'section' => $section ),
                        array( 'noclasses', 'known' )
@@ -1563,7 +1567,8 @@ abstract class Skin extends ContextSource {
                # we can rid of it someday.
                $attribs = '';
                if ( $tooltip ) {
-                       $attribs = wfMsgExt( 'editsectionhint', array( 'language' => $lang, 'parsemag', 'escape', 'replaceafter' ), $tooltip );
+                       $attribs = wfMessage( 'editsectionhint' )->rawParams( $tooltip )
+                               ->inLanguage( $lang )->escaped();
                        $attribs = " title=\"$attribs\"";
                }
                $result = null;
@@ -1573,13 +1578,15 @@ abstract class Skin extends ContextSource {
                        # run, and even add them to hook-provided text.  (This is the main
                        # reason that the EditSectionLink hook is deprecated in favor of
                        # DoEditSectionLink: it can't change the brackets or the span.)
-                       $result = wfMsgExt( 'editsection-brackets', array( 'escape', 'replaceafter', 'language' => $lang ), $result );
+                       $result = wfMessage( 'editsection-brackets' )->rawParams( $result )
+                               ->inLanguage( $lang )->escaped();
                        return "<span class=\"editsection\">$result</span>";
                }
 
                # Add the brackets and the span, and *then* run the nice new hook, with
                # clean and non-redundant arguments.
-               $result = wfMsgExt( 'editsection-brackets', array( 'escape', 'replaceafter', 'language' => $lang ), $link );
+               $result = wfMessage( 'editsection-brackets' )->rawParams( $link )
+                       ->inLanguage( $lang )->escaped();
                $result = "<span class=\"editsection\">$result</span>";
 
                wfRunHooks( 'DoEditSectionLink', array( $this, $nt, $section, $tooltip, &$result, $lang ) );
index 4a1c699..aa6b22a 100644 (file)
@@ -182,12 +182,12 @@ class LegacyTemplate extends BaseTemplate {
                  . $this->getSkin()->escapeSearchLink() . "\">\n"
                  . '<input type="text" id="searchInput' . $this->searchboxes . '" name="search" size="19" value="'
                  . htmlspecialchars( substr( $search, 0, 256 ) ) . "\" />\n"
-                 . '<input type="submit" name="go" value="' . wfMsg( 'searcharticle' ) . '" />';
+                 . '<input type="submit" name="go" value="' . wfMessage( 'searcharticle' )->text() . '" />';
 
                if ( $wgUseTwoButtonsSearchForm ) {
-                       $s .= '&#160;<input type="submit" name="fulltext" value="' . wfMsg( 'searchbutton' ) . "\" />\n";
+                       $s .= '&#160;<input type="submit" name="fulltext" value="' . wfMessage( 'searchbutton' )->text() . "\" />\n";
                } else {
-                       $s .= ' <a href="' . $this->getSkin()->escapeSearchLink() . '" rel="search">' . wfMsg( 'powersearch-legend' ) . "</a>\n";
+                       $s .= ' <a href="' . $this->getSkin()->escapeSearchLink() . '" rel="search">' . wfMessage( 'powersearch-legend' )->text() . "</a>\n";
                }
 
                $s .= '</form>';
@@ -236,7 +236,7 @@ class LegacyTemplate extends BaseTemplate {
                }
 
                // @todo FIXME: Is using Language::pipeList impossible here? Do not quite understand the use of the newline
-               return implode( $s, wfMsgExt( 'pipe-separator', 'escapenoentities' ) . "\n" );
+               return implode( $s, wfMessage( 'pipe-separator' )->escaped() . "\n" );
        }
 
        /**
@@ -292,7 +292,7 @@ class LegacyTemplate extends BaseTemplate {
                if ( count( $s ) ) {
                        global $wgLang;
 
-                       $out = wfMsgExt( 'pipe-separator' , 'escapenoentities' );
+                       $out = wfMessage( 'pipe-separator' )->escaped();
                        $out .= $wgLang->pipeList( $s );
                }
 
@@ -301,7 +301,7 @@ class LegacyTemplate extends BaseTemplate {
 
        function bottomLinks() {
                global $wgOut, $wgUser;
-               $sep = wfMsgExt( 'pipe-separator', 'escapenoentities' ) . "\n";
+               $sep = wfMessage( 'pipe-separator' )->escaped() . "\n";
 
                $s = '';
                if ( $wgOut->isArticleRelated() ) {
@@ -373,7 +373,7 @@ class LegacyTemplate extends BaseTemplate {
                        return '';
                }
 
-               $s = wfMsg( 'otherlanguages' ) . wfMsg( 'colon-separator' );
+               $s = wfMessage( 'otherlanguages' )->text() . wfMessage( 'colon-separator' )->text();
                $first = true;
 
                if ( $wgLang->isRTL() ) {
@@ -382,7 +382,7 @@ class LegacyTemplate extends BaseTemplate {
 
                foreach ( $a as $l ) {
                        if ( !$first ) {
-                               $s .= wfMsgExt( 'pipe-separator', 'escapenoentities' );
+                               $s .= wfMessage( 'pipe-separator' )->escaped();
                        }
 
                        $first = false;
@@ -417,8 +417,9 @@ class LegacyTemplate extends BaseTemplate {
                                $obj->getTitle()->getPrefixedDBkey() );
                }
 
-               return Html::rawElement( 'form', array( 'id' => 'specialpages', 'method' => 'get',
-                       'action' => $wgScript ), $select->getHTML() . Xml::submitButton( wfMsg( 'go' ) ) );
+               return Html::rawElement( 'form',
+                       array( 'id' => 'specialpages', 'method' => 'get', 'action' => $wgScript ),
+                       $select->getHTML() . Xml::submitButton( wfMessage( 'go' )->text() ) );
        }
 
        function pageTitleLinks() {
@@ -459,8 +460,8 @@ class LegacyTemplate extends BaseTemplate {
 
                if ( 'history' == $action || isset( $diff ) || isset( $oldid ) ) {
                        $s[] .= Linker::linkKnown(
-                                       $title,
-                                       wfMsg( 'currentrev' )
+                               $title,
+                               wfMessage( 'currentrev' )->text()
                        );
                }
 
@@ -470,18 +471,18 @@ class LegacyTemplate extends BaseTemplate {
                        if ( !$title->equals( $wgUser->getTalkPage() ) ) {
                                $tl = Linker::linkKnown(
                                        $wgUser->getTalkPage(),
-                                       wfMsgHtml( 'newmessageslink' ),
+                                       wfMessage( 'newmessageslink' )->escaped(),
                                        array(),
                                        array( 'redirect' => 'no' )
                                );
 
                                $dl = Linker::linkKnown(
                                        $wgUser->getTalkPage(),
-                                       wfMsgHtml( 'newmessagesdifflink' ),
+                                       wfMessage( 'newmessagesdifflink' )->escaped(),
                                        array(),
                                        array( 'diff' => 'cur' )
                                );
-                               $s[] = '<strong>' . wfMsg( 'youhavenewmessages', $tl, $dl ) . '</strong>';
+                               $s[] = '<strong>' . wfMessage( 'youhavenewmessages', $tl, $dl )->text() . '</strong>';
                                # disable caching
                                $wgOut->setSquidMaxage( 0 );
                                $wgOut->enableClientCache( false );
@@ -514,7 +515,7 @@ class LegacyTemplate extends BaseTemplate {
 
                if ( $sub == '' ) {
                        global $wgExtraSubtitle;
-                       $sub = wfMsgExt( 'tagline', 'parsemag' ) . $wgExtraSubtitle;
+                       $sub = wfMessage( 'tagline' )->parse() . $wgExtraSubtitle;
                }
 
                $subpages = $this->getSkin()->subPageSubtitle();
@@ -532,14 +533,15 @@ class LegacyTemplate extends BaseTemplate {
                if ( !$wgOut->isPrintable() ) {
                        $printurl = htmlspecialchars( $this->getSkin()->getTitle()->getLocalUrl(
                                $wgRequest->appendQueryValue( 'printable', 'yes', true ) ) );
-                       $s[] = "<a href=\"$printurl\" rel=\"alternate\">" . wfMsg( 'printableversion' ) . '</a>';
+                       $s[] = "<a href=\"$printurl\" rel=\"alternate\">"
+                               . wfMessage( 'printableversion' )->text() . '</a>';
                }
 
                if ( $wgOut->isSyndicated() ) {
                        foreach ( $wgOut->getSyndicationLinks() as $format => $link ) {
                                $feedurl = htmlspecialchars( $link );
                                $s[] = "<a href=\"$feedurl\" rel=\"alternate\" type=\"application/{$format}+xml\""
-                                               . " class=\"feedlink\">" . wfMsgHtml( "feed-$format" ) . "</a>";
+                                               . " class=\"feedlink\">" . wfMessage( "feed-$format" )->escaped() . "</a>";
                        }
                }
                return $wgLang->pipeList( $s );
@@ -558,15 +560,15 @@ class LegacyTemplate extends BaseTemplate {
                global $wgOut;
 
                if ( !$wgOut->isArticleRelated() ) {
-                       $s = wfMsg( 'protectedpage' );
+                       $s = wfMessage( 'protectedpage' )->text();
                } else {
                        $title = $this->getSkin()->getTitle();
                        if ( $title->quickUserCan( 'edit' ) && $title->exists() ) {
-                               $t = wfMsg( 'editthispage' );
+                               $t = wfMessage( 'editthispage' )->text();
                        } elseif ( $title->quickUserCan( 'create' ) && !$title->exists() ) {
-                               $t = wfMsg( 'create-this-page' );
+                               $t = wfMessage( 'create-this-page' )->text();
                        } else {
-                               $t = wfMsg( 'viewsource' );
+                               $t = wfMessage( 'viewsource' )->text();
                        }
 
                        $s = Linker::linkKnown(
@@ -587,7 +589,7 @@ class LegacyTemplate extends BaseTemplate {
                $title = $this->getSkin()->getTitle();
 
                if ( $title->getArticleID() && ( !$diff ) && $wgUser->isAllowed( 'delete' ) ) {
-                       $t = wfMsg( 'deletethispage' );
+                       $t = wfMessage( 'deletethispage' )->text();
 
                        $s = Linker::linkKnown(
                                $title,
@@ -610,10 +612,10 @@ class LegacyTemplate extends BaseTemplate {
 
                if ( $title->getArticleID() && ( ! $diff ) && $wgUser->isAllowed( 'protect' ) ) {
                        if ( $title->isProtected() ) {
-                               $text = wfMsg( 'unprotectthispage' );
+                               $text = wfMessage( 'unprotectthispage' )->text();
                                $query = array( 'action' => 'unprotect' );
                        } else {
-                               $text = wfMsg( 'protectthispage' );
+                               $text = wfMessage( 'protectthispage' )->text();
                                $query = array( 'action' => 'protect' );
                        }
 
@@ -639,14 +641,14 @@ class LegacyTemplate extends BaseTemplate {
 
                if ( $wgOut->isArticleRelated() ) {
                        if ( $wgUser->isWatched( $title ) ) {
-                               $text = wfMsg( 'unwatchthispage' );
+                               $text = wfMessage( 'unwatchthispage' )->text();
                                $query = array(
                                        'action' => 'unwatch',
                                        'token' => UnwatchAction::getUnwatchToken( $title, $wgUser ),
                                );
                                $id = 'mw-unwatch-link' . $this->mWatchLinkNum;
                        } else {
-                               $text = wfMsg( 'watchthispage' );
+                               $text = wfMessage( 'watchthispage' )->text();
                                $query = array(
                                        'action' => 'watch',
                                        'token' => WatchAction::getWatchToken( $title, $wgUser ),
@@ -661,7 +663,7 @@ class LegacyTemplate extends BaseTemplate {
                                $query
                        );
                } else {
-                       $s = wfMsg( 'notanarticle' );
+                       $s = wfMessage( 'notanarticle' )->text();
                }
 
                return $s;
@@ -671,7 +673,7 @@ class LegacyTemplate extends BaseTemplate {
                if ( $this->getSkin()->getTitle()->quickUserCan( 'move' ) ) {
                        return Linker::linkKnown(
                                SpecialPage::getTitleFor( 'Movepage' ),
-                               wfMsg( 'movethispage' ),
+                               wfMessage( 'movethispage' )->text(),
                                array(),
                                array( 'target' => $this->getSkin()->getTitle()->getPrefixedDBkey() )
                        );
@@ -684,7 +686,7 @@ class LegacyTemplate extends BaseTemplate {
        function historyLink() {
                return Linker::link(
                        $this->getSkin()->getTitle(),
-                       wfMsgHtml( 'history' ),
+                       wfMessage( 'history' )->escaped(),
                        array( 'rel' => 'archives' ),
                        array( 'action' => 'history' )
                );
@@ -693,21 +695,21 @@ class LegacyTemplate extends BaseTemplate {
        function whatLinksHere() {
                return Linker::linkKnown(
                        SpecialPage::getTitleFor( 'Whatlinkshere', $this->getSkin()->getTitle()->getPrefixedDBkey() ),
-                       wfMsgHtml( 'whatlinkshere' )
+                       wfMessage( 'whatlinkshere' )->escaped()
                );
        }
 
        function userContribsLink() {
                return Linker::linkKnown(
                        SpecialPage::getTitleFor( 'Contributions', $this->getSkin()->getTitle()->getDBkey() ),
-                       wfMsgHtml( 'contributions' )
+                       wfMessage( 'contributions' )->escaped()
                );
        }
 
        function emailUserLink() {
                return Linker::linkKnown(
                        SpecialPage::getTitleFor( 'Emailuser', $this->getSkin()->getTitle()->getDBkey() ),
-                       wfMsgHtml( 'emailuser' )
+                       wfMessage( 'emailuser' )->escaped()
                );
        }
 
@@ -719,7 +721,7 @@ class LegacyTemplate extends BaseTemplate {
                } else {
                        return Linker::linkKnown(
                                SpecialPage::getTitleFor( 'Recentchangeslinked', $this->getSkin()->getTitle()->getPrefixedDBkey() ),
-                               wfMsgHtml( 'recentchangeslinked-toolbox' )
+                               wfMessage( 'recentchangeslinked-toolbox' )->escaped()
                        );
                }
        }
@@ -737,41 +739,41 @@ class LegacyTemplate extends BaseTemplate {
                        $link = $title->getSubjectPage();
                        switch( $link->getNamespace() ) {
                                case NS_MAIN:
-                                       $text = wfMsg( 'articlepage' );
+                                       $text = wfMessage( 'articlepage' );
                                        break;
                                case NS_USER:
-                                       $text = wfMsg( 'userpage' );
+                                       $text = wfMessage( 'userpage' );
                                        break;
                                case NS_PROJECT:
-                                       $text = wfMsg( 'projectpage' );
+                                       $text = wfMessage( 'projectpage' );
                                        break;
                                case NS_FILE:
-                                       $text = wfMsg( 'imagepage' );
+                                       $text = wfMessage( 'imagepage' );
                                        # Make link known if image exists, even if the desc. page doesn't.
                                        if ( wfFindFile( $link ) )
                                                $linkOptions[] = 'known';
                                        break;
                                case NS_MEDIAWIKI:
-                                       $text = wfMsg( 'mediawikipage' );
+                                       $text = wfMessage( 'mediawikipage' );
                                        break;
                                case NS_TEMPLATE:
-                                       $text = wfMsg( 'templatepage' );
+                                       $text = wfMessage( 'templatepage' );
                                        break;
                                case NS_HELP:
-                                       $text = wfMsg( 'viewhelppage' );
+                                       $text = wfMessage( 'viewhelppage' );
                                        break;
                                case NS_CATEGORY:
-                                       $text = wfMsg( 'categorypage' );
+                                       $text = wfMessage( 'categorypage' );
                                        break;
                                default:
-                                       $text = wfMsg( 'articlepage' );
+                                       $text = wfMessage( 'articlepage' );
                        }
                } else {
                        $link = $title->getTalkPage();
-                       $text = wfMsg( 'talkpage' );
+                       $text = wfMessage( 'talkpage' );
                }
 
-               $s = Linker::link( $link, $text, array(), array(), $linkOptions );
+               $s = Linker::link( $link, $text->text(), array(), array(), $linkOptions );
 
                return $s;
        }
@@ -793,7 +795,7 @@ class LegacyTemplate extends BaseTemplate {
 
                return Linker::linkKnown(
                        $title,
-                       wfMsg( 'postcomment' ),
+                       wfMessage( 'postcomment' )->text(),
                        array(),
                        array(
                                'action' => 'edit',
@@ -807,11 +809,13 @@ class LegacyTemplate extends BaseTemplate {
 
                if ( $wgUploadNavigationUrl ) {
                        # Using an empty class attribute to avoid automatic setting of "external" class
-                       return Linker::makeExternalLink( $wgUploadNavigationUrl, wfMsgHtml( 'upload' ), false, null, array( 'class' => '' ) );
+                       return Linker::makeExternalLink( $wgUploadNavigationUrl,
+                               wfMessage( 'upload' )->escaped(),
+                               false, null, array( 'class' => '' ) );
                } else {
                        return Linker::linkKnown(
                                SpecialPage::getTitleFor( 'Upload' ),
-                               wfMsgHtml( 'upload' )
+                               wfMessage( 'upload' )->escaped()
                        );
                }
        }
@@ -832,7 +836,7 @@ class LegacyTemplate extends BaseTemplate {
 
                                $ret .= "$name $talkLink";
                        } else {
-                               $ret .= wfMsg( 'notloggedin' );
+                               $ret .= wfMessage( 'notloggedin' )->text();
                        }
 
                        $query = array();
@@ -846,7 +850,7 @@ class LegacyTemplate extends BaseTemplate {
                                : 'login';
                        $ret .= "\n<br />" . Linker::link(
                                SpecialPage::getTitleFor( 'Userlogin' ),
-                               wfMsg( $loginlink ), array(), $query
+                               wfMessage( $loginlink )->text(), array(), $query
                        );
                } else {
                        $talkLink = Linker::link( $wgUser->getTalkPage(),
@@ -858,7 +862,7 @@ class LegacyTemplate extends BaseTemplate {
                        $ret .= " $talkLink<br />";
                        $ret .= $wgLang->pipeList( array(
                                Linker::link(
-                                       SpecialPage::getTitleFor( 'Userlogout' ), wfMsg( 'logout' ),
+                                       SpecialPage::getTitleFor( 'Userlogout' ), wfMessage( 'logout' )->text(),
                                        array(), array( 'returnto' => $returnTo->getPrefixedDBkey() )
                                ),
                                Linker::specialLink( 'Preferences' ),
@@ -868,8 +872,8 @@ class LegacyTemplate extends BaseTemplate {
                $ret = $wgLang->pipeList( array(
                        $ret,
                        Linker::link(
-                               Title::newFromText( wfMsgForContent( 'helppage' ) ),
-                               wfMsg( 'help' )
+                               Title::newFromText( wfMessage( 'helppage' )->inContentLanguage()->text() ),
+                               wfMessage( 'help' )->text()
                        ),
                ) );
 
index 816a416..2c869db 100644 (file)
@@ -40,7 +40,7 @@ class MediaWiki_I18N {
                // Hack for i18n:attributes in PHPTAL 1.0.0 dev version as of 2004-10-23
                $value = preg_replace( '/^string:/', '', $value );
 
-               $value = wfMsg( $value );
+               $value = wfMessage( $value )->text();
                // interpolate variables
                $m = array();
                while( preg_match( '/\$([0-9]*?)/sm', $value, $m ) ) {
@@ -563,7 +563,8 @@ class SkinTemplate extends Skin {
                                'text' => $this->username,
                                'href' => &$this->userpageUrlDetails['href'],
                                'class' => $this->userpageUrlDetails['exists'] ? false : 'new',
-                               'active' => ( $this->userpageUrlDetails['href'] == $pageurl )
+                               'active' => ( $this->userpageUrlDetails['href'] == $pageurl ),
+                               'dir' => 'auto'
                        );
                        $usertalkUrlDetails = $this->makeTalkUrlDetails( $this->userpage );
                        $personal_urls['mytalk'] = array(
index 1d62e8b..95f75a8 100644 (file)
@@ -134,6 +134,7 @@ class SpecialPageFactory {
                // High use pages
                'Mostlinkedcategories'      => 'MostlinkedCategoriesPage',
                'Mostimages'                => 'MostimagesPage',
+               'Mostinterwikis'            => 'MostinterwikisPage',
                'Mostlinked'                => 'MostlinkedPage',
                'Mostlinkedtemplates'       => 'MostlinkedTemplatesPage',
                'Mostcategories'            => 'MostcategoriesPage',
index a2df380..10dfb51 100644 (file)
@@ -164,35 +164,6 @@ class Status {
                return $cleanParams;
        }
 
-       /**
-        * @param $item
-        * @return string
-        */
-       protected function getItemXML( $item ) {
-               $params = $this->cleanParams( $item['params'] );
-               $xml = "<{$item['type']}>\n" .
-                       Xml::element( 'message', null, $item['message'] ) . "\n" .
-                       Xml::element( 'text', null, wfMsg( $item['message'], $params ) ) ."\n";
-               foreach ( $params as $param ) {
-                       $xml .= Xml::element( 'param', null, $param );
-               }
-               $xml .= "</{$item['type']}>\n";
-               return $xml;
-       }
-
-       /**
-        * Get the error list as XML
-        * @return string
-        */
-       function getXML() {
-               $xml = "<errors>\n";
-               foreach ( $this->errors as $error ) {
-                       $xml .= $this->getItemXML( $error );
-               }
-               $xml .= "</errors>\n";
-               return $xml;
-       }
-
        /**
         * Get the error list as a wikitext formatted list
         *
@@ -214,17 +185,17 @@ class Status {
                if ( count( $this->errors ) == 1 ) {
                        $s = $this->getWikiTextForError( $this->errors[0], $this->errors[0]  );
                        if ( $shortContext ) {
-                               $s = wfMsgNoTrans( $shortContext, $s );
+                               $s = wfMessage( $shortContext, $s )->plain();
                        } elseif ( $longContext ) {
-                               $s = wfMsgNoTrans( $longContext, "* $s\n" );
+                               $s = wfMessage( $longContext, "* $s\n" )->plain();
                        }
                } else {
                        $s = '* '. implode("\n* ",
                                $this->getWikiTextArray( $this->errors ) ) . "\n";
                        if ( $longContext ) {
-                               $s = wfMsgNoTrans( $longContext, $s );
+                               $s = wfMessage( $longContext, $s )->plain();
                        } elseif ( $shortContext ) {
-                               $s = wfMsgNoTrans( $shortContext, "\n$s\n" );
+                               $s = wfMessage( $shortContext, "\n$s\n" )->plain();
                        }
                }
                return $s;
@@ -242,15 +213,15 @@ class Status {
        protected function getWikiTextForError( $error ) {
                if ( is_array( $error ) ) {
                        if ( isset( $error['message'] ) && isset( $error['params'] ) ) {
-                               return wfMsgNoTrans( $error['message'],
-                                       array_map( 'wfEscapeWikiText', $this->cleanParams( $error['params'] ) )  );
+                               return wfMessage( $error['message'],
+                                       array_map( 'wfEscapeWikiText', $this->cleanParams( $error['params'] ) )  )->plain();
                        } else {
                                $message = array_shift($error);
-                               return wfMsgNoTrans( $message,
-                                       array_map( 'wfEscapeWikiText', $this->cleanParams( $error ) ) );
+                               return wfMessage( $message,
+                                       array_map( 'wfEscapeWikiText', $this->cleanParams( $error ) ) )->plain();
                        }
                } else {
-                       return wfMsgNoTrans( $error );
+                       return wfMessage( $error )->plain();
                }
        }
 
index 6539e08..e7f7811 100644 (file)
@@ -31,7 +31,7 @@ class StreamFile {
         * Stream a file to the browser, adding all the headings and fun stuff.
         * Headers sent include: Content-type, Content-Length, Last-Modified,
         * and Content-Disposition.
-        * 
+        *
         * @param $fname string Full name and path of the file to stream
         * @param $headers array Any additional headers to send
         * @param $sendErrors bool Send error messages if errors occur (like 404)
@@ -40,6 +40,10 @@ class StreamFile {
        public static function stream( $fname, $headers = array(), $sendErrors = true ) {
                wfProfileIn( __METHOD__ );
 
+               if ( FileBackend::isStoragePath( $fname ) ) { // sanity
+                       throw new MWException( __FUNCTION__ . " given storage path '$fname'." );
+               }
+
                wfSuppressWarnings();
                $stat = stat( $fname );
                wfRestoreWarnings();
@@ -142,7 +146,7 @@ class StreamFile {
 
        /**
         * Determine the file type of a file based on the path
-        * 
+        *
         * @param $filename string Storage path or file system path
         * @param $safe bool Whether to do retroactive upload blacklist checks
         * @return null|string
index 505cb7f..120312d 100644 (file)
@@ -166,7 +166,7 @@ class Xml {
                if( is_null( $selected ) )
                        $selected = '';
                if( !is_null( $allmonths ) )
-                       $options[] = self::option( wfMsg( 'monthsall' ), $allmonths, $selected === $allmonths );
+                       $options[] = self::option( wfMessage( 'monthsall' )->text(), $allmonths, $selected === $allmonths );
                for( $i = 1; $i < 13; $i++ )
                        $options[] = self::option( $wgLang->getMonthName( $i ), $i, $selected === $i );
                return self::openElement( 'select', array( 'id' => $id, 'name' => 'month', 'class' => 'mw-month-selector' ) )
@@ -198,9 +198,9 @@ class Xml {
                } else {
                        $encYear = '';
                }
-               return Xml::label( wfMsg( 'year' ), 'year' ) . ' '.
+               return Xml::label( wfMessage( 'year' )->text(), 'year' ) . ' '.
                        Xml::input( 'year', 4, $encYear, array('id' => 'year', 'maxlength' => 4) ) . ' '.
-                       Xml::label( wfMsg( 'month' ), 'month' ) . ' '.
+                       Xml::label( wfMessage( 'month' )->text(), 'month' ) . ' '.
                        Xml::monthSelector( $encMonth, -1 );
        }
 
@@ -772,7 +772,7 @@ class Xml {
                foreach( $fields as $labelmsg => $input ) {
                        $id = "mw-$labelmsg";
                        $form .= Xml::openElement( 'tr', array( 'id' => $id ) );
-                       $form .= Xml::tags( 'td', array('class' => 'mw-label'), wfMsgExt( $labelmsg, array('parseinline') ) );
+                       $form .= Xml::tags( 'td', array('class' => 'mw-label'), wfMessage( $labelmsg )->parse() );
                        $form .= Xml::openElement( 'td', array( 'class' => 'mw-input' ) ) . $input . Xml::closeElement( 'td' );
                        $form .= Xml::closeElement( 'tr' );
                }
@@ -780,7 +780,7 @@ class Xml {
                if( $submitLabel ) {
                        $form .= Xml::openElement( 'tr' );
                        $form .= Xml::tags( 'td', array(), '' );
-                       $form .= Xml::openElement( 'td', array( 'class' => 'mw-submit' ) ) . Xml::submitButton( wfMsg( $submitLabel ) ) . Xml::closeElement( 'td' );
+                       $form .= Xml::openElement( 'td', array( 'class' => 'mw-submit' ) ) . Xml::submitButton( wfMessage( $submitLabel )->text() ) . Xml::closeElement( 'td' );
                        $form .= Xml::closeElement( 'tr' );
                }
 
index 1dacabc..1c57f25 100644 (file)
@@ -248,8 +248,8 @@ class HistoryAction extends FormlessAction {
 
                $feed = new $wgFeedClasses[$type](
                        $this->getTitle()->getPrefixedText() . ' - ' .
-                       wfMsgForContent( 'history-feed-title' ),
-                       wfMsgForContent( 'history-feed-description' ),
+                       $this->msg( 'history-feed-title' )->inContentLanguage()->text(),
+                       $this->msg( 'history-feed-description' )->inContentLanguage()->text(),
                        $this->getTitle()->getFullUrl( 'action=history' )
                );
 
@@ -275,8 +275,8 @@ class HistoryAction extends FormlessAction {
 
        function feedEmpty() {
                return new FeedItem(
-                       wfMsgForContent( 'nohistory' ),
-                       $this->getOutput()->parse( wfMsgForContent( 'history-feed-empty' ) ),
+                       $this->msg( 'nohistory' )->inContentLanguage()->text(),
+                       $this->msg( 'history-feed-empty' )->inContentLanguage()->parseAsBlock(),
                        $this->getTitle()->getFullUrl(),
                        wfTimestamp( TS_MW ),
                        '',
@@ -304,15 +304,14 @@ class HistoryAction extends FormlessAction {
                );
                if ( $rev->getComment() == '' ) {
                        global $wgContLang;
-                       $title = wfMsgForContent( 'history-feed-item-nocomment',
+                       $title = $this->msg( 'history-feed-item-nocomment',
                                $rev->getUserText(),
                                $wgContLang->timeanddate( $rev->getTimestamp() ),
                                $wgContLang->date( $rev->getTimestamp() ),
-                               $wgContLang->time( $rev->getTimestamp() )
-                       );
+                               $wgContLang->time( $rev->getTimestamp() ) )->inContentLanguage()->text();
                } else {
                        $title = $rev->getUserText() .
-                       wfMsgForContent( 'colon-separator' ) .
+                       $this->msg( 'colon-separator' )->inContentLanguage()->text() .
                        FeedItem::stripComment( $rev->getComment() );
                }
                return new FeedItem(
index f4813a4..19a0b06 100644 (file)
@@ -1,7 +1,6 @@
 <?php
 /**
- * Display informations about a page.
- * Very inefficient for the moment.
+ * Displays information about a page.
  *
  * Copyright © 2011 Alexandre Emsenhuber
  *
  */
 
 class InfoAction extends FormlessAction {
-
+       /**
+        * Returns the name of the action this object responds to.
+        *
+        * @return string lowercase
+        */
        public function getName() {
                return 'info';
        }
 
-       protected function getDescription() {
-               return '';
+       /**
+        * Whether this action can still be executed by a blocked user.
+        *
+        * @return bool
+        */
+       public function requiresUnblock() {
+               return false;
        }
 
+       /**
+        * Whether this action requires the wiki not to be locked.
+        *
+        * @return bool
+        */
        public function requiresWrite() {
                return false;
        }
 
-       public function requiresUnblock() {
-               return false;
-       }
+       /**
+        * Shows page information on GET request.
+        *
+        * @return string Page information that will be added to the output
+        */
+       public function onView() {
+               global $wgContLang, $wgDisableCounters, $wgRCMaxAge, $wgRestrictionTypes;
 
-       protected function getPageTitle() {
-               return $this->msg( 'pageinfo-title', $this->getTitle()->getSubjectPage()->getPrefixedText() )->text();
-       }
+               $user = $this->getUser();
+               $lang = $this->getLanguage();
+               $title = $this->getTitle();
+               $id = $title->getArticleID();
 
-       public function onView() {
-               global $wgDisableCounters;
+               // Get page information that would be too "expensive" to retrieve by normal means
+               $userCanViewUnwatchedPages = $user->isAllowed( 'unwatchedpages' );
+               $pageInfo = self::pageCountInfo( $title, $userCanViewUnwatchedPages, $wgDisableCounters );
 
-               $title = $this->getTitle()->getSubjectPage();
+               // Get page properties
+               $dbr = wfGetDB( DB_SLAVE );
+               $result = $dbr->select(
+                       'page_props',
+                       array( 'pp_propname', 'pp_value' ),
+                       array( 'pp_page' => $id ),
+                       __METHOD__
+               );
 
-               $userCanViewUnwatchedPages = $this->getUser()->isAllowed( 'unwatchedpages' );
+               $pageProperties = array();
+               foreach ( $result as $row ) {
+                       $pageProperties[$row->pp_propname] = $row->pp_value;
+               }
 
-               $pageInfo = self::pageCountInfo( $title, $userCanViewUnwatchedPages, $wgDisableCounters );
-               $talkInfo = self::pageCountInfo( $title->getTalkPage(), $userCanViewUnwatchedPages, $wgDisableCounters );
+               $content = '';
+               $table = '';
 
-               $lang = $this->getLanguage();
+               // Basic information
+               $content = $this->addHeader( $content, $this->msg( 'pageinfo-header-basic' )->text() );
+
+               // Display title
+               $displayTitle = $title->getPrefixedText();
+               if ( !empty( $pageProperties['displaytitle'] ) ) {
+                       $displayTitle = $pageProperties['displaytitle'];
+               }
+
+               $table = $this->addRow( $table,
+                       $this->msg( 'pageinfo-display-title' )->escaped(), $displayTitle );
+
+               // Default sort key
+               $sortKey = $title->getCategorySortKey();
+               if ( !empty( $pageProperties['defaultsort'] ) ) {
+                       $sortKey = $pageProperties['defaultsort'];
+               }
+
+               $table = $this->addRow( $table,
+                       $this->msg( 'pageinfo-default-sort' )->escaped(), $sortKey );
+
+               // Page length (in bytes)
+               $table = $this->addRow( $table,
+                       $this->msg( 'pageinfo-length' )->escaped(), $lang->formatNum( $title->getLength() ) );
 
-               $content =
-                       Html::rawElement( 'tr', array(),
-                               Html::element( 'th', array(), '' ) .
-                                       Html::element( 'th', array(), $this->msg( 'pageinfo-subjectpage' )->text() ) .
-                                       Html::element( 'th', array(), $this->msg( 'pageinfo-talkpage' )->text() )
-                       ) .
-                       Html::rawElement( 'tr', array(),
-                               Html::element( 'th', array( 'colspan' => 3 ), $this->msg( 'pageinfo-header-edits' )->text() )
-                       ) .
-                       Html::rawElement( 'tr', array(),
-                               Html::element( 'td', array(), $this->msg( 'pageinfo-edits' )->text() ) .
-                                       Html::element( 'td', array(), $lang->formatNum( $pageInfo['edits'] ) ) .
-                                       Html::element( 'td', array(), $lang->formatNum( $talkInfo['edits'] ) )
-                       ) .
-                       Html::rawElement( 'tr', array(),
-                               Html::element( 'td', array(), $this->msg( 'pageinfo-authors' )->text() ) .
-                                       Html::element( 'td', array(), $lang->formatNum( $pageInfo['authors'] ) ) .
-                                       Html::element( 'td', array(), $lang->formatNum( $talkInfo['authors'] ) )
+               // Page ID (number not localised, as it's a database ID.)
+               $table = $this->addRow( $table,
+                       $this->msg( 'pageinfo-article-id' )->escaped(), $id );
+
+               // Search engine status
+               $pOutput = new ParserOutput();
+               if ( isset( $pageProperties['noindex'] ) ) {
+                       $pOutput->setIndexPolicy( 'noindex' );
+               }
+
+               // Use robot policy logic
+               $policy = $this->page->getRobotPolicy( 'view', $pOutput );
+               $table = $this->addRow( $table,
+                       $this->msg( 'pageinfo-robot-policy' )->escaped(),
+                       $this->msg( "pageinfo-robot-${policy['index']}" )->escaped()
+               );
+
+               if ( !$wgDisableCounters ) {
+                       // Number of views
+                       $table = $this->addRow( $table,
+                               $this->msg( 'pageinfo-views' )->escaped(), $lang->formatNum( $pageInfo['views'] )
                        );
+               }
 
                if ( $userCanViewUnwatchedPages ) {
-                       $content .= Html::rawElement( 'tr', array(),
-                               Html::element( 'th', array( 'colspan' => 3 ), $this->msg( 'pageinfo-header-watchlist' )->text() )
-                       ) .
-                               Html::rawElement( 'tr', array(),
-                                       Html::element( 'td', array(), $this->msg( 'pageinfo-watchers' )->text() ) .
-                                               Html::element( 'td', array( 'colspan' => 2 ), $lang->formatNum( $pageInfo['watchers'] ) )
-                               );
+                       // Number of page watchers
+                       $table = $this->addRow( $table,
+                               $this->msg( 'pageinfo-watchers' )->escaped(), $lang->formatNum( $pageInfo['watchers'] ) );
                }
 
-               if ( !$wgDisableCounters ) {
-                       $content .= Html::rawElement( 'tr', array(),
-                               Html::element( 'th', array( 'colspan' => 3 ), $this->msg( 'pageinfo-header-views' )->text() )
-                       ) .
-                               Html::rawElement( 'tr', array(),
-                                       Html::element( 'td', array(), $this->msg( 'pageinfo-views' )->text() ) .
-                                               Html::element( 'td', array(), $lang->formatNum( $pageInfo['views'] ) ) .
-                                               Html::element( 'td', array(), $lang->formatNum( $talkInfo['views'] ) )
-                               ) .
-                               Html::rawElement( 'tr', array(),
-                                       Html::element( 'td', array(), $this->msg( 'pageinfo-viewsperedit' )->text() ) .
-                                               Html::element( 'td', array(), $lang->formatNum( sprintf( '%.2f', $pageInfo['edits'] ? $pageInfo['views'] / $pageInfo['edits'] : 0 ) ) ) .
-                                               Html::element( 'td', array(), $lang->formatNum( sprintf( '%.2f', $talkInfo['edits'] ? $talkInfo['views'] / $talkInfo['edits'] : 0 ) ) )
+               // Redirects to this page
+               $whatLinksHere = SpecialPage::getTitleFor( 'Whatlinkshere', $title->getPrefixedText() );
+               $table = $this->addRow( $table,
+                       Linker::link(
+                               $whatLinksHere,
+                               $this->msg( 'pageinfo-redirects-name' )->escaped(),
+                               array(),
+                               array( 'hidelinks' => 1, 'hidetrans' => 1 )
+                       ),
+                       $this->msg( 'pageinfo-redirects-value' )
+                               ->numParams( count( $title->getRedirectsHere() ) )->escaped()
+               );
+
+               // Subpages of this page
+               $prefixIndex = SpecialPage::getTitleFor( 'Prefixindex', $title->getPrefixedText() . '/' );
+               $table = $this->addRow( $table,
+                       Linker::link( $prefixIndex, $this->msg( 'pageinfo-subpages-name' )->escaped() ),
+                       $this->msg( 'pageinfo-subpages-value' )
+                               ->numParams(
+                                       $pageInfo['subpages']['total'],
+                                       $pageInfo['subpages']['redirects'],
+                                       $pageInfo['subpages']['nonredirects'] )->escaped()
+               );
+
+               // Page protection
+               $content = $this->addTable( $content, $table );
+               $content = $this->addHeader( $content, $this->msg( 'pageinfo-header-restrictions' )->text() );
+               $table = '';
+
+               // Page protection
+               foreach ( $wgRestrictionTypes as $restrictionType ) {
+                       $protectionLevel = implode( ', ', $title->getRestrictions( $restrictionType ) );
+                       if ( $protectionLevel == '' ) {
+                               // Allow all users
+                               $message = $this->msg( 'protect-default' )->escaped();
+                       } else {
+                               // Administrators only
+                               $message = $this->msg( "protect-level-$protectionLevel" );
+                               if ( $message->isDisabled() ) {
+                                       // Require "$1" permission
+                                       $message = $this->msg( "protect-fallback", $protectionLevel )->parse();
+                               } else {
+                                       $message = $message->escaped();
+                               }
+                       }
+
+                       $table = $this->addRow( $table,
+                               $this->msg( 'pageinfo-restriction',
+                                       $this->msg( "restriction-$restrictionType" )->plain()
+                               )->parse(), $message
+                       );
+               }
+
+               // Edit history
+               $content = $this->addTable( $content, $table );
+               $content = $this->addHeader( $content, $this->msg( 'pageinfo-header-edits' )->text() );
+               $table = '';
+
+               // Page creator
+               $table = $this->addRow( $table,
+                       $this->msg( 'pageinfo-firstuser' )->escaped(), $pageInfo['firstuser']
+               );
+
+               // Date of page creation
+               $table = $this->addRow( $table,
+                       $this->msg( 'pageinfo-firsttime' )->escaped(), $lang->userTimeAndDate( $pageInfo['firsttime'], $user )
+               );
+
+               // Latest editor
+               $table = $this->addRow( $table,
+                       $this->msg( 'pageinfo-lastuser' )->escaped(), $pageInfo['lastuser']
+               );
+
+               // Date of latest edit
+               $table = $this->addRow( $table,
+                       $this->msg( 'pageinfo-lasttime' )->escaped(), $lang->userTimeAndDate( $pageInfo['lasttime'], $user )
+               );
+
+               // Total number of edits
+               $table = $this->addRow( $table,
+                       $this->msg( 'pageinfo-edits' )->escaped(), $lang->formatNum( $pageInfo['edits'] )
+               );
+
+               // Total number of distinct authors
+               $table = $this->addRow( $table,
+                       $this->msg( 'pageinfo-authors' )->escaped(), $lang->formatNum( $pageInfo['authors'] )
+               );
+
+               // Recent number of edits (within past 30 days)
+               $table = $this->addRow( $table,
+                       $this->msg( 'pageinfo-recent-edits', $lang->formatDuration( $wgRCMaxAge ) )->escaped(),
+                       $lang->formatNum( $pageInfo['recent_edits'] )
+               );
+
+               // Recent number of distinct authors
+               $table = $this->addRow( $table,
+                       $this->msg( 'pageinfo-recent-authors' )->escaped(), $lang->formatNum( $pageInfo['recent_authors'] )
+               );
+
+               $content = $this->addTable( $content, $table );
+
+               // Array of MagicWord objects
+               $magicWords = MagicWord::getDoubleUnderscoreArray();
+
+               // Array of magic word IDs
+               $wordIDs = $magicWords->names;
+
+               // Array of IDs => localized magic words
+               $localizedWords = $wgContLang->getMagicWords();
+
+               $listItems = array();
+               foreach ( $pageProperties as $property => $value ) {
+                       if ( in_array( $property, $wordIDs ) ) {
+                               $listItems[] = Html::element( 'li', array(), $localizedWords[$property][1] );
+                       }
+               }
+
+               $localizedList = Html::rawElement( 'ul', array(), implode( '', $listItems ) );
+               $hiddenCategories = $this->page->getHiddenCategories();
+               $transcludedTemplates = $title->getTemplateLinksFrom();
+
+               if ( count( $listItems ) > 0
+                       || count( $hiddenCategories ) > 0
+                       || count( $transcludedTemplates ) > 0 ) {
+                       // Page properties
+                       $content = $this->addHeader( $content, $this->msg( 'pageinfo-header-properties' )->text() );
+                       $table = '';
+
+                       // Magic words
+                       if ( count( $listItems ) > 0 ) {
+                               $table = $this->addRow( $table,
+                                       $this->msg( 'pageinfo-magic-words' )->numParams( count( $listItems ) )->escaped(),
+                                       $localizedList
                                );
+                       }
+
+                       // Hide "This page is a member of # hidden categories explanation
+                       $content .= Html::element( 'style', array(),
+                               '.mw-hiddenCategoriesExplanation { display: none; }' );
+
+                       // Hidden categories
+                       if ( count( $hiddenCategories ) > 0 ) {
+                               $table = $this->addRow( $table,
+                                       $this->msg( 'pageinfo-hidden-categories' )
+                                               ->numParams( count( $hiddenCategories ) )->escaped(),
+                                       Linker::formatHiddenCategories( $hiddenCategories )
+                               );
+                       }
+
+                       // Hide "Templates used on this page:" explanation
+                       $content .= Html::element( 'style', array(),
+                               '.mw-templatesUsedExplanation { display: none; }' );
+
+                       // Transcluded templates
+                       if ( count( $transcludedTemplates ) > 0 ) {
+                               $table = $this->addRow( $table,
+                                       $this->msg( 'pageinfo-templates' )
+                                               ->numParams( count( $transcludedTemplates ) )->escaped(),
+                                       Linker::formatTemplates( $transcludedTemplates )
+                               );
+                       }
+
+                       $content = $this->addTable( $content, $table );
                }
-               return Html::rawElement( 'table', array( 'class' => 'wikitable mw-page-info' ), $content );
+
+               return $content;
        }
 
        /**
-        * Return the total number of edits and number of unique editors
-        * on a given page. If page does not exist, returns false.
+        * Returns page information that would be too "expensive" to retrieve by normal means.
         *
         * @param $title Title object
         * @param $canViewUnwatched bool
@@ -115,13 +316,28 @@ class InfoAction extends FormlessAction {
         * @return array
         */
        public static function pageCountInfo( $title, $canViewUnwatched, $disableCounter ) {
+               global $wgRCMaxAge;
+
                wfProfileIn( __METHOD__ );
                $id = $title->getArticleID();
-               $dbr = wfGetDB( DB_SLAVE );
 
+               $dbr = wfGetDB( DB_SLAVE );
                $result = array();
+
+               if ( !$disableCounter ) {
+                       // Number of views
+                       $views = (int) $dbr->selectField(
+                               'page',
+                               'page_counter',
+                               array( 'page_id' => $id ),
+                               __METHOD__
+                       );
+                       $result['views'] = $views;
+               }
+
                if ( $canViewUnwatched ) {
-                       $watchers = (int)$dbr->selectField(
+                       // Number of page watchers
+                       $watchers = (int) $dbr->selectField(
                                'watchlist',
                                'COUNT(*)',
                                array(
@@ -133,7 +349,8 @@ class InfoAction extends FormlessAction {
                        $result['watchers'] = $watchers;
                }
 
-               $edits = (int)$dbr->selectField(
+               // Total number of edits
+               $edits = (int) $dbr->selectField(
                        'revision',
                        'COUNT(rev_page)',
                        array( 'rev_page' => $id ),
@@ -141,7 +358,8 @@ class InfoAction extends FormlessAction {
                );
                $result['edits'] = $edits;
 
-               $authors = (int)$dbr->selectField(
+               // Total number of distinct authors
+               $authors = (int) $dbr->selectField(
                        'revision',
                        'COUNT(DISTINCT rev_user_text)',
                        array( 'rev_page' => $id ),
@@ -149,17 +367,139 @@ class InfoAction extends FormlessAction {
                );
                $result['authors'] = $authors;
 
-               if ( !$disableCounter ) {
-                       $views = (int)$dbr->selectField(
-                               'page',
-                               'page_counter',
-                               array( 'page_id' => $id ),
-                               __METHOD__
-                       );
-                       $result['views'] = $views;
-               }
+               // "Recent" threshold defined by $wgRCMaxAge
+               $threshold = $dbr->timestamp( time() - $wgRCMaxAge );
+
+               // Recent number of edits
+               $edits = (int) $dbr->selectField(
+                       'revision',
+                       'COUNT(rev_page)',
+                       array(
+                               'rev_page' => $id ,
+                               "rev_timestamp >= $threshold"
+                       ),
+                       __METHOD__
+               );
+               $result['recent_edits'] = $edits;
+
+               // Recent number of distinct authors
+               $authors = (int) $dbr->selectField(
+                       'revision',
+                       'COUNT(DISTINCT rev_user_text)',
+                       array(
+                               'rev_page' => $id,
+                               "rev_timestamp >= $threshold"
+                       ),
+                       __METHOD__
+               );
+               $result['recent_authors'] = $authors;
+
+               $conds = array( 'page_namespace' => $title->getNamespace(), 'page_is_redirect' => 1 );
+               $conds[] = 'page_title ' . $dbr->buildLike( $title->getDBkey() . '/', $dbr->anyString() );
+
+               // Subpages of this page (redirects)
+               $result['subpages']['redirects'] = (int) $dbr->selectField(
+                       'page',
+                       'COUNT(page_id)',
+                       $conds,
+                       __METHOD__ );
+
+               // Subpages of this page (non-redirects)
+               $conds['page_is_redirect'] = 0;
+               $result['subpages']['nonredirects'] = (int) $dbr->selectField(
+                       'page',
+                       'COUNT(page_id)',
+                       $conds,
+                       __METHOD__
+               );
+
+               // Subpages of this page (total)
+               $result['subpages']['total'] = $result['subpages']['redirects']
+                       + $result['subpages']['nonredirects'];
+
+               // Latest editor + date of latest edit
+               $options = array( 'ORDER BY' => 'rev_timestamp ASC', 'LIMIT' => 1 );
+               $row = $dbr->fetchRow( $dbr->select(
+                       'revision',
+                       array( 'rev_user_text', 'rev_timestamp' ),
+                       array( 'rev_page' => $id ),
+                       __METHOD__,
+                       $options
+               ) );
+
+               $result['firstuser'] = $row['rev_user_text'];
+               $result['firsttime'] = $row['rev_timestamp'];
+
+               // Latest editor + date of latest edit
+               $options['ORDER BY'] = 'rev_timestamp DESC';
+               $row = $dbr->fetchRow( $dbr->select(
+                       'revision',
+                       array( 'rev_user_text', 'rev_timestamp' ),
+                       array( 'rev_page' => $id ),
+                       __METHOD__,
+                       $options
+               ) );
+
+               $result['lastuser'] = $row['rev_user_text'];
+               $result['lasttime'] = $row['rev_timestamp'];
 
                wfProfileOut( __METHOD__ );
                return $result;
        }
+
+       /**
+        * Adds a header to the content that will be added to the output.
+        *
+        * @param $content string The content that will be added to the output
+        * @param $header string The value of the header
+        * @return string The content with the header added
+        */
+       protected function addHeader( $content, $header ) {
+               return $content . Html::element( 'h2', array(), $header );
+       }
+
+       /**
+        * Adds a row to a table that will be added to the content.
+        *
+        * @param $table string The table that will be added to the content
+        * @param $name string The name of the row
+        * @param $value string The value of the row
+        * @return string The table with the row added
+        */
+       protected function addRow( $table, $name, $value ) {
+               return $table . Html::rawElement( 'tr', array(),
+                       Html::rawElement( 'td', array(), $name ) .
+                       Html::rawElement( 'td', array(), $value )
+               );
+       }
+
+       /**
+        * Adds a table to the content that will be added to the output.
+        *
+        * @param $content string The content that will be added to the output
+        * @param $table string The table
+        * @return string The content with the table added
+        */
+       protected function addTable( $content, $table ) {
+               return $content . Html::rawElement( 'table', array( 'class' => 'wikitable mw-page-info' ),
+                       $table );
+       }
+
+       /**
+        * Returns the description that goes below the <h1> tag.
+        *
+        * @return string
+        */
+       protected function getDescription() {
+               return '';
+       }
+
+       /**
+        * Returns the name that goes in the <h1> page title.
+        *
+        * @return string
+        */
+       protected function getPageTitle() {
+               return $this->msg( 'pageinfo-title', $this->getTitle()->getPrefixedText() )->text();
+       }
 }
index ca9f738..1e62766 100644 (file)
@@ -697,14 +697,15 @@ abstract class ApiBase extends ContextSource {
        public function requireOnlyOneParameter( $params ) {
                $required = func_get_args();
                array_shift( $required );
+               $p = $this->getModulePrefix();
 
                $intersection = array_intersect( array_keys( array_filter( $params,
                        array( $this, "parameterNotEmpty" ) ) ), $required );
 
                if ( count( $intersection ) > 1 ) {
-                       $this->dieUsage( 'The parameters ' . implode( ', ', $intersection ) . ' can not be used together', 'invalidparammix' );
+                       $this->dieUsage( "The parameters {$p}" . implode( ", {$p}",  $intersection ) . ' can not be used together', "{$p}invalidparammix" );
                } elseif ( count( $intersection ) == 0 ) {
-                       $this->dieUsage( 'One of the parameters ' . implode( ', ', $required ) . ' is required', 'missingparam' );
+                       $this->dieUsage( "One of the parameters {$p}" . implode( ", {$p}", $required ) . ' is required', "{$p}missingparam" );
                }
        }
 
@@ -732,12 +733,13 @@ abstract class ApiBase extends ContextSource {
        public function requireMaxOneParameter( $params ) {
                $required = func_get_args();
                array_shift( $required );
+               $p = $this->getModulePrefix();
 
                $intersection = array_intersect( array_keys( array_filter( $params,
                        array( $this, "parameterNotEmpty" ) ) ), $required );
 
                if ( count( $intersection ) > 1 ) {
-                       $this->dieUsage( 'The parameters ' . implode( ', ', $intersection ) . ' can not be used together', 'invalidparammix' );
+                       $this->dieUsage( "The parameters {$p}" . implode( ", {$p}", $intersection ) . ' can not be used together', "{$p}invalidparammix" );
                }
        }
 
index e75c4ad..3be4b00 100644 (file)
@@ -162,7 +162,7 @@ class ApiEditPage extends ApiBase {
                        // If no summary was given and we only undid one rev,
                        // use an autosummary
                        if ( is_null( $params['summary'] ) && $titleObj->getNextRevisionID( $undoafterRev->getID() ) == $params['undo'] ) {
-                               $params['summary'] = wfMsgForContent( 'undo-summary', $params['undo'], $undoRev->getUserText() );
+                               $params['summary'] = wfMessage( 'undo-summary', $params['undo'], $undoRev->getUserText() )->inContentLanguage()->text();
                        }
                }
 
index d808075..1cf760a 100644 (file)
@@ -60,7 +60,7 @@ class ApiFeedContributions extends ApiBase {
                        $this->dieUsage( 'Size difference is disabled in Miser Mode', 'sizediffdisabled' );
                }
 
-               $msg = wfMsgForContent( 'Contributions' );
+               $msg = wfMessage( 'Contributions' )->inContentLanguage()->text();
                $feedTitle = $wgSitename . ' - ' . $msg . ' [' . $wgLanguageCode . ']';
                $feedUrl = SpecialPage::getTitleFor( 'Contributions', $params['user'] )->getFullURL();
 
@@ -129,7 +129,8 @@ class ApiFeedContributions extends ApiBase {
         */
        protected function feedItemDesc( $revision ) {
                if( $revision ) {
-                       return '<p>' . htmlspecialchars( $revision->getUserText() ) . wfMsgForContent( 'colon-separator' ) .
+                       $msg = wfMessage( 'colon-separator' )->inContentLanguage()->text();
+                       return '<p>' . htmlspecialchars( $revision->getUserText() ) . $msg .
                                htmlspecialchars( FeedItem::stripComment( $revision->getComment() ) ) .
                                "</p>\n<hr />\n<div>" .
                                nl2br( htmlspecialchars( $revision->getText() ) ) . "</div>";
index 7f79835..6ccb02f 100644 (file)
@@ -117,7 +117,7 @@ class ApiFeedWatchlist extends ApiBase {
                                $feedItems[] = $this->createFeedItem( $info );
                        }
 
-                       $msg = wfMsgForContent( 'watchlist' );
+                       $msg = wfMessage( 'watchlist' )->inContentLanguage()->text();
 
                        $feedTitle = $wgSitename . ' - ' . $msg . ' [' . $wgLanguageCode . ']';
                        $feedUrl = SpecialPage::getTitleFor( 'Watchlist' )->getFullURL();
@@ -131,11 +131,12 @@ class ApiFeedWatchlist extends ApiBase {
                        // Error results should not be cached
                        $this->getMain()->setCacheMaxAge( 0 );
 
-                       $feedTitle = $wgSitename . ' - Error - ' . wfMsgForContent( 'watchlist' ) . ' [' . $wgLanguageCode . ']';
+                       $feedTitle = $wgSitename . ' - Error - ' . wfMessage( 'watchlist' )->inContentLanguage()->text() . ' [' . $wgLanguageCode . ']';
                        $feedUrl = SpecialPage::getTitleFor( 'Watchlist' )->getFullURL();
 
                        $feedFormat = isset( $params['feedformat'] ) ? $params['feedformat'] : 'rss';
-                       $feed = new $wgFeedClasses[$feedFormat] ( $feedTitle, htmlspecialchars( wfMsgForContent( 'watchlist' ) ), $feedUrl );
+                       $msg = wfMessage( 'watchlist' )->inContentLanguage()->escaped();
+                       $feed = new $wgFeedClasses[$feedFormat] ( $feedTitle, $msg, $feedUrl );
 
                        if ( $e instanceof UsageException ) {
                                $errorCode = $e->getCodeString();
index f64b3e5..c63ae8a 100644 (file)
@@ -413,7 +413,7 @@ class ApiParse extends ApiBase {
                        return '';
                }
 
-               $s = htmlspecialchars( wfMsg( 'otherlanguages' ) . wfMsg( 'colon-separator' ) );
+               $s = htmlspecialchars( wfMessage( 'otherlanguages' )->text() . wfMessage( 'colon-separator' )->text() );
 
                $langs = array();
                foreach ( $languages as $l ) {
@@ -425,7 +425,7 @@ class ApiParse extends ApiBase {
                                $text == '' ? $l : $text );
                }
 
-               $s .= implode( htmlspecialchars( wfMsgExt( 'pipe-separator', 'escapenoentities' ) ), $langs );
+               $s .= implode( wfMessage( 'pipe-separator' )->escaped(), $langs );
 
                if ( $wgContLang->isRTL() ) {
                        $s = Html::rawElement( 'span', array( 'dir' => "LTR" ), $s );
index a4efc4c..8f0fd3b 100644 (file)
@@ -118,8 +118,8 @@ class ApiQueryDuplicateFiles extends ApiQueryGeneratorBase {
                        }
                        foreach ( $dupFiles as $dupFile ) {
                                $dupName = $dupFile->getName();
-                               if( $image == $dupName ) {
-                                       continue; //ignore the file itself
+                               if( $image == $dupName && $dupFile->isLocal() ) {
+                                       continue; //ignore the local file itself
                                }
                                if( $skipUntilThisDup !== false && $dupName < $skipUntilThisDup ) {
                                        continue; //skip to pos after the image from continue param
@@ -140,6 +140,9 @@ class ApiQueryDuplicateFiles extends ApiQueryGeneratorBase {
                                                'user' => $dupFile->getUser( 'text' ),
                                                'timestamp' => wfTimestamp( TS_ISO_8601, $dupFile->getTimestamp() )
                                        );
+                                       if( !$dupFile->isLocal() ) {
+                                               $r['shared'] = '';
+                                       }
                                        $fit = $this->addPageSubItem( $pageId, $r );
                                        if ( !$fit ) {
                                                $this->setContinueEnumParameter( 'continue', $image . '|' . $dupName );
@@ -191,7 +194,8 @@ class ApiQueryDuplicateFiles extends ApiQueryGeneratorBase {
                        '' => array(
                                'name' => 'string',
                                'user' => 'string',
-                               'timestamp' => 'timestamp'
+                               'timestamp' => 'timestamp',
+                               'shared' => 'boolean',
                        )
                );
        }
index bc514b3..f2fd425 100644 (file)
@@ -359,7 +359,7 @@ class ApiQueryLogEvents extends ApiQueryBase {
 
        public function getCacheMode( $params ) {
                if ( !is_null( $params['prop'] ) && in_array( 'parsedcomment', $params['prop'] ) ) {
-                       // formatComment() calls wfMsg() among other things
+                       // formatComment() calls wfMessage() among other things
                        return 'anon-public-user-private';
                } else {
                        return 'public';
index 5e270e0..14aed28 100644 (file)
@@ -139,7 +139,7 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
 
        public function getCacheMode( $params ) {
                if ( !is_null( $params['prop'] ) && in_array( 'parsedcomment', $params['prop'] ) ) {
-                       // formatComment() calls wfMsg() among other things
+                       // formatComment() calls wfMessage() among other things
                        return 'anon-public-user-private';
                } else {
                        return 'public';
index 7bb6bc5..7ae4f37 100644 (file)
@@ -503,7 +503,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                        return 'private';
                }
                if ( !is_null( $params['prop'] ) && in_array( 'parsedcomment', $params['prop'] ) ) {
-                       // formatComment() calls wfMsg() among other things
+                       // formatComment() calls wfMessage() among other things
                        return 'anon-public-user-private';
                }
                return 'public';
index 18a6cd4..b89a8ea 100644 (file)
@@ -548,7 +548,7 @@ class ApiQueryRevisions extends ApiQueryBase {
                        return 'private';
                }
                if ( !is_null( $params['prop'] ) && in_array( 'parsedcomment', $params['prop'] ) ) {
-                       // formatComment() calls wfMsg() among other things
+                       // formatComment() calls wfMessage() among other things
                        return 'anon-public-user-private';
                }
                return 'public';
index 53341c3..a53a674 100644 (file)
@@ -318,7 +318,7 @@ class DBQueryError extends DBError {
                                $fname = $this->fname;
                                $error = $this->error;
                        }
-                       return wfMsg( $msg, $sql, $fname, $this->errno, $error );
+                       return wfMessage( $msg )->rawParams( $sql, $fname, $this->errno, $error )->text();
                } else {
                        return parent::getContentMessage( $html );
                }
index e27d3db..4b34310 100644 (file)
@@ -83,6 +83,14 @@ class DatabaseMysql extends DatabaseBase {
                $this->mPassword = $password;
                $this->mDBname = $dbName;
 
+               $connFlags = 0;
+               if ( $this->mFlags & DBO_SSL ) {
+                       $connFlags |= MYSQL_CLIENT_SSL;
+               }
+               if ( $this->mFlags & DBO_COMPRESS ) {
+                       $connFlags |= MYSQL_CLIENT_COMPRESS;
+               }
+
                wfProfileIn("dbconnect-$server");
 
                # The kernel's default SYN retransmission period is far too slow for us,
@@ -100,10 +108,10 @@ class DatabaseMysql extends DatabaseBase {
                                usleep( 1000 );
                        }
                        if ( $this->mFlags & DBO_PERSISTENT ) {
-                               $this->mConn = mysql_pconnect( $realServer, $user, $password );
+                               $this->mConn = mysql_pconnect( $realServer, $user, $password, $connFlags );
                        } else {
                                # Create a new connection...
-                               $this->mConn = mysql_connect( $realServer, $user, $password, true );
+                               $this->mConn = mysql_connect( $realServer, $user, $password, true, $connFlags );
                        }
                        #if ( $this->mConn === false ) {
                                #$iplus = $i + 1;
index 3504892..8f8f5e8 100644 (file)
@@ -356,6 +356,10 @@ class DatabasePostgres extends DatabaseBase {
                if ( $port != false && $port != '' ) {
                        $connectVars['port'] = $port;
                }
+               if ( $this->mFlags & DBO_SSL ) {
+                       $connectVars['sslmode'] = 1;
+               }
+
                $this->connectString = $this->makeConnectionString( $connectVars, PGSQL_CONNECT_FORCE_NEW );
                $this->close();
                $this->installErrorHandler();
index 952b497..cb3da1e 100644 (file)
@@ -622,7 +622,7 @@ class DatabaseSqlite extends DatabaseBase {
         * @return string User-friendly database information
         */
        public function getServerInfo() {
-               return wfMsg( self::getFulltextSearchModule() ? 'sqlite-has-fts' : 'sqlite-no-fts', $this->getServerVersion() );
+               return wfMessage( self::getFulltextSearchModule() ? 'sqlite-has-fts' : 'sqlite-no-fts', $this->getServerVersion() )->text();
        }
 
        /**
index aaca12c..e82c54b 100644 (file)
@@ -191,6 +191,16 @@ class LBFactory_Simple extends LBFactory {
                        $servers = $wgDBservers;
                } else {
                        global $wgDBserver, $wgDBuser, $wgDBpassword, $wgDBname, $wgDBtype, $wgDebugDumpSql;
+                       global $wgDBssl, $wgDBcompress;
+
+                       $flags = ( $wgDebugDumpSql ? DBO_DEBUG : 0 ) | DBO_DEFAULT;
+                       if ( $wgDBssl ) {
+                               $flags |= DBO_SSL;
+                       }
+                       if ( $wgDBcompress ) {
+                               $flags |= DBO_COMPRESS;
+                       }
+
                        $servers = array(array(
                                'host' => $wgDBserver,
                                'user' => $wgDBuser,
@@ -198,7 +208,7 @@ class LBFactory_Simple extends LBFactory {
                                'dbname' => $wgDBname,
                                'type' => $wgDBtype,
                                'load' => 1,
-                               'flags' => ($wgDebugDumpSql ? DBO_DEBUG : 0) | DBO_DEFAULT
+                               'flags' => $flags
                        ));
                }
 
index c953d77..a0befd6 100644 (file)
@@ -43,6 +43,8 @@ class FSFileBackend extends FileBackendStore {
        /** @var Array Map of container names to root paths */
        protected $containerPaths = array(); // for custom container paths
        protected $fileMode; // integer; file permission mode
+       protected $fileOwner; // string; required OS username to own files
+       protected $currentUser; // string; OS username running this script
 
        protected $hadWarningErrors = array();
 
@@ -71,9 +73,12 @@ class FSFileBackend extends FileBackendStore {
                        }
                }
 
-               $this->fileMode = isset( $config['fileMode'] )
-                       ? $config['fileMode']
-                       : 0644;
+               $this->fileMode = isset( $config['fileMode'] ) ? $config['fileMode'] : 0644;
+               if ( isset( $config['fileOwner'] ) && function_exists( 'posix_getuid' ) ) {
+                       $this->fileOwner = $config['fileOwner'];
+                       $info = posix_getpwuid( posix_getuid() );
+                       $this->currentUser = $info['name']; // cache this, assuming it doesn't change
+               }
        }
 
        /**
@@ -164,6 +169,11 @@ class FSFileBackend extends FileBackendStore {
                        $ok = is_dir( $parentDir ) && is_writable( $parentDir );
                }
 
+               if ( $this->fileOwner !== null && $this->currentUser !== $this->fileOwner ) {
+                       $ok = false;
+                       trigger_error( __METHOD__ . ": PHP process owner is not '{$this->fileOwner}'." );
+               }
+
                return $ok;
        }
 
index e9136d5..0c8968a 100644 (file)
@@ -43,7 +43,10 @@ class FileBackendMultiWrite extends FileBackend {
        /** @var Array Prioritized list of FileBackendStore objects */
        protected $backends = array(); // array of (backend index => backends)
        protected $masterIndex = -1; // integer; index of master backend
-       protected $syncChecks = 0; // integer bitfield
+       protected $syncChecks = 0; // integer; bitfield
+       /** @var Array */
+       protected $noPushDirConts = array();
+       protected $noPushQuickOps = false; // boolean
 
        /* Possible internal backend consistency checks */
        const CHECK_SIZE = 1;
@@ -55,26 +58,38 @@ class FileBackendMultiWrite extends FileBackend {
         * Locking, journaling, and read-only checks are handled by the proxy backend.
         *
         * Additional $config params include:
-        *   - backends   : Array of backend config and multi-backend settings.
-        *                  Each value is the config used in the constructor of a
-        *                  FileBackendStore class, but with these additional settings:
-        *                    - class         : The name of the backend class
-        *                    - isMultiMaster : This must be set for one backend.
-        *                    - template:     : If given a backend name, this will use
-        *                                      the config of that backend as a template.
-        *                                      Values specified here take precedence.
-        *   - syncChecks : Integer bitfield of internal backend sync checks to perform.
-        *                  Possible bits include the FileBackendMultiWrite::CHECK_* constants.
-        *                  There are constants for SIZE, TIME, and SHA1.
-        *                  The checks are done before allowing any file operations.
+        *   - backends       : Array of backend config and multi-backend settings.
+        *                      Each value is the config used in the constructor of a
+        *                          FileBackendStore class, but with these additional settings:
+        *                        - class         : The name of the backend class
+        *                        - isMultiMaster : This must be set for one backend.
+        *                        - template:     : If given a backend name, this will use
+        *                                          the config of that backend as a template.
+        *                                          Values specified here take precedence.
+        *   - syncChecks     : Integer bitfield of internal backend sync checks to perform.
+        *                      Possible bits include the FileBackendMultiWrite::CHECK_* constants.
+        *                      There are constants for SIZE, TIME, and SHA1.
+        *                      The checks are done before allowing any file operations.
+        *   - noPushQuickOps : (hack) Only apply doQuickOperations() to the master backend.
+        *   - noPushDirConts : (hack) Only apply directory functions to the master backend.
+        *
         * @param $config Array
         * @throws MWException
         */
        public function __construct( array $config ) {
                parent::__construct( $config );
-               $namesUsed = array();
+               $this->syncChecks = isset( $config['syncChecks'] )
+                       ? $config['syncChecks']
+                       : self::CHECK_SIZE;
+               $this->noPushQuickOps = isset( $config['noPushQuickOps'] )
+                       ? $config['noPushQuickOps']
+                       : false;
+               $this->noPushDirConts = isset( $config['noPushDirConts'] )
+                       ? $config['noPushDirConts']
+                       : array();
                // Construct backends here rather than via registration
                // to keep these backends hidden from outside the proxy.
+               $namesUsed = array();
                foreach ( $config['backends'] as $index => $config ) {
                        if ( isset( $config['template'] ) ) {
                                // Config is just a modified version of a registered backend's.
@@ -108,9 +123,6 @@ class FileBackendMultiWrite extends FileBackend {
                if ( $this->masterIndex < 0 ) { // need backends and must have a master
                        throw new MWException( 'No master backend defined.' );
                }
-               $this->syncChecks = isset( $config['syncChecks'] )
-                       ? $config['syncChecks']
-                       : self::CHECK_SIZE;
        }
 
        /**
@@ -167,7 +179,7 @@ class FileBackendMultiWrite extends FileBackend {
        /**
         * Check that a set of files are consistent across all internal backends
         *
-        * @param $paths Array
+        * @param $paths Array List of storage paths
         * @return Status
         */
        public function consistencyCheck( array $paths ) {
@@ -183,7 +195,7 @@ class FileBackendMultiWrite extends FileBackend {
                        // Stat the file on the 'master' backend
                        $mStat = $mBackend->getFileStat( $mParams );
                        if ( $this->syncChecks & self::CHECK_SHA1 ) {
-                               $mSha1 = $mBackend->getFileSha1( $mParams );
+                               $mSha1 = $mBackend->getFileSha1Base36( $mParams );
                        } else {
                                $mSha1 = false;
                        }
@@ -215,7 +227,7 @@ class FileBackendMultiWrite extends FileBackend {
                                                }
                                        }
                                        if ( $this->syncChecks & self::CHECK_SHA1 ) {
-                                               if ( $cBackend->getFileSha1( $cParams ) !== $mSha1 ) { // wrong SHA1
+                                               if ( $cBackend->getFileSha1Base36( $cParams ) !== $mSha1 ) { // wrong SHA1
                                                        $status->fatal( 'backend-fail-synced', $path );
                                                        continue;
                                                }
@@ -234,6 +246,44 @@ class FileBackendMultiWrite extends FileBackend {
                return $status;
        }
 
+       /**
+        * Check that a set of files are consistent across all internal backends
+        * and re-synchronize those files againt the "multi master" if needed.
+        *
+        * @param $paths Array List of storage paths
+        * @return Status
+        */
+       public function resyncFiles( array $paths ) {
+               $status = Status::newGood();
+
+               $mBackend = $this->backends[$this->masterIndex];
+               foreach ( $paths as $path ) {
+                       $mPath  = $this->substPaths( $path, $mBackend );
+                       $mSha1  = $mBackend->getFileSha1Base36( array( 'src' => $mPath ) );
+                       $mExist = $mBackend->fileExists( array( 'src' => $mPath ) );
+                       // Check of all clone backends agree with the master...
+                       foreach ( $this->backends as $index => $cBackend ) {
+                               if ( $index === $this->masterIndex ) {
+                                       continue; // master
+                               }
+                               $cPath = $this->substPaths( $path, $cBackend );
+                               $cSha1 = $cBackend->getFileSha1Base36( array( 'src' => $cPath ) );
+                               if ( $mSha1 === $cSha1 ) {
+                                       // already synced; nothing to do
+                               } elseif ( $mSha1 ) { // file is in master
+                                       $fsFile = $mBackend->getLocalReference( array( 'src' => $mPath ) );
+                                       $status->merge( $cBackend->quickStore(
+                                               array( 'src' => $fsFile->getPath(), 'dst' => $cPath )
+                                       ) );
+                               } elseif ( $mExist === false ) { // file is not in master
+                                       $status->merge( $cBackend->quickDelete( array( 'src' => $cPath ) ) );
+                               }
+                       }
+               }
+
+               return $status;
+       }
+
        /**
         * Get a list of file storage paths to read or write for a list of operations
         *
@@ -330,10 +380,12 @@ class FileBackendMultiWrite extends FileBackend {
                $masterStatus = $this->backends[$this->masterIndex]->doQuickOperations( $realOps );
                $status->merge( $masterStatus );
                // Propagate the operations to the clone backends...
-               foreach ( $this->backends as $index => $backend ) {
-                       if ( $index !== $this->masterIndex ) { // not done already
-                               $realOps = $this->substOpBatchPaths( $ops, $backend );
-                               $status->merge( $backend->doQuickOperations( $realOps ) );
+               if ( !$this->noPushQuickOps ) {
+                       foreach ( $this->backends as $index => $backend ) {
+                               if ( $index !== $this->masterIndex ) { // not done already
+                                       $realOps = $this->substOpBatchPaths( $ops, $backend );
+                                       $status->merge( $backend->doQuickOperations( $realOps ) );
+                               }
                        }
                }
                // Make 'success', 'successCount', and 'failCount' fields reflect
@@ -345,15 +397,27 @@ class FileBackendMultiWrite extends FileBackend {
                return $status;
        }
 
+       /**
+        * @param $path string Storage path
+        * @return bool Path container should have dir changes pushed to all backends
+        */
+       protected function replicateContainerDirChanges( $path ) {
+               list( $b, $shortCont, $r ) = self::splitStoragePath( $path );
+               return !in_array( $shortCont, $this->noPushDirConts );
+       }
+
        /**
         * @see FileBackend::doPrepare()
         * @return Status
         */
        protected function doPrepare( array $params ) {
                $status = Status::newGood();
-               foreach ( $this->backends as $backend ) {
-                       $realParams = $this->substOpPaths( $params, $backend );
-                       $status->merge( $backend->doPrepare( $realParams ) );
+               $replicate = $this->replicateContainerDirChanges( $params['dir'] );
+               foreach ( $this->backends as $index => $backend ) {
+                       if ( $replicate || $index == $this->masterIndex ) {
+                               $realParams = $this->substOpPaths( $params, $backend );
+                               $status->merge( $backend->doPrepare( $realParams ) );
+                       }
                }
                return $status;
        }
@@ -365,9 +429,12 @@ class FileBackendMultiWrite extends FileBackend {
         */
        protected function doSecure( array $params ) {
                $status = Status::newGood();
-               foreach ( $this->backends as $backend ) {
-                       $realParams = $this->substOpPaths( $params, $backend );
-                       $status->merge( $backend->doSecure( $realParams ) );
+               $replicate = $this->replicateContainerDirChanges( $params['dir'] );
+               foreach ( $this->backends as $index => $backend ) {
+                       if ( $replicate || $index == $this->masterIndex ) {
+                               $realParams = $this->substOpPaths( $params, $backend );
+                               $status->merge( $backend->doSecure( $realParams ) );
+                       }
                }
                return $status;
        }
@@ -379,9 +446,12 @@ class FileBackendMultiWrite extends FileBackend {
         */
        protected function doPublish( array $params ) {
                $status = Status::newGood();
-               foreach ( $this->backends as $backend ) {
-                       $realParams = $this->substOpPaths( $params, $backend );
-                       $status->merge( $backend->doPublish( $realParams ) );
+               $replicate = $this->replicateContainerDirChanges( $params['dir'] );
+               foreach ( $this->backends as $index => $backend ) {
+                       if ( $replicate || $index == $this->masterIndex ) {
+                               $realParams = $this->substOpPaths( $params, $backend );
+                               $status->merge( $backend->doPublish( $realParams ) );
+                       }
                }
                return $status;
        }
@@ -393,9 +463,12 @@ class FileBackendMultiWrite extends FileBackend {
         */
        protected function doClean( array $params ) {
                $status = Status::newGood();
-               foreach ( $this->backends as $backend ) {
-                       $realParams = $this->substOpPaths( $params, $backend );
-                       $status->merge( $backend->doClean( $realParams ) );
+               $replicate = $this->replicateContainerDirChanges( $params['dir'] );
+               foreach ( $this->backends as $index => $backend ) {
+                       if ( $replicate || $index == $this->masterIndex ) {
+                               $realParams = $this->substOpPaths( $params, $backend );
+                               $status->merge( $backend->doClean( $realParams ) );
+                       }
                }
                return $status;
        }
index 5fe568a..f54f666 100644 (file)
@@ -45,13 +45,19 @@ class SwiftFileBackend extends FileBackendStore {
        protected $swiftCDNExpiry; // integer; how long to cache things in the CDN
        protected $swiftCDNPurgable; // boolean; whether object CDN purging is enabled
 
-       protected $maxContCacheSize = 300; // integer; max containers with entries
-
        /** @var CF_Connection */
        protected $conn; // Swift connection handle
-       protected $connStarted = 0; // integer UNIX timestamp
-       protected $connContainers = array(); // container object cache
-       protected $connException; // CloudFiles exception
+       protected $sessionStarted = 0; // integer UNIX timestamp
+
+       /** @var CloudFilesException */
+       protected $connException;
+       protected $connErrorTime = 0; // UNIX timestamp
+
+       /** @var BagOStuff */
+       protected $srvCache;
+
+       /** @var ProcessCacheLRU */
+       protected $connContainerCache; // container object cache
 
        /**
         * @see FileBackendStore::__construct()
@@ -75,6 +81,8 @@ class SwiftFileBackend extends FileBackendStore {
         *                             - levels : the number of hash levels (and digits)
         *                             - repeat : hash subdirectories are prefixed with all the
         *                                        parent hash directory names (e.g. "a/ab/abc")
+        *   - cacheAuthInfo      : Whether to cache authentication tokens in APC/XCache.
+        *                          This is probably insecure in shared hosting environments.
         */
        public function __construct( array $config ) {
                parent::__construct( $config );
@@ -107,8 +115,17 @@ class SwiftFileBackend extends FileBackendStore {
                $this->swiftCDNPurgable = isset( $config['swiftCDNPurgable'] )
                        ? $config['swiftCDNPurgable']
                        : true;
-               // Cache container info to mask latency
+               // Cache container information to mask latency
                $this->memCache = wfGetMainCache();
+               // Process cache for container info
+               $this->connContainerCache = new ProcessCacheLRU( 300 );
+               // Cache auth token information to avoid RTTs
+               if ( !empty( $config['cacheAuthInfo'] ) ) {
+                       try { // look for APC, XCache, WinCache, ect...
+                               $this->srvCache = ObjectCache::newAccelerator( array() );
+                       } catch ( Exception $e ) {}
+               }
+               $this->srvCache = $this->srvCache ? $this->srvCache : new EmptyBagOStuff();
        }
 
        /**
@@ -712,6 +729,7 @@ class SwiftFileBackend extends FileBackendStore {
                if ( isset( $obj->metadata['Sha1base36'] ) ) {
                        return true; // nothing to do
                }
+               wfProfileIn( __METHOD__ );
                $status = Status::newGood();
                $scopeLockS = $this->getScopedFileLocks( array( $path ), LockManager::LOCK_UW, $status );
                if ( $status->isOK() ) {
@@ -722,11 +740,13 @@ class SwiftFileBackend extends FileBackendStore {
                                if ( $hash !== false ) {
                                        $obj->metadata['Sha1base36'] = $hash;
                                        $obj->sync_metadata(); // save to Swift
+                                       wfProfileOut( __METHOD__ );
                                        return true; // success
                                }
                        }
                }
                $obj->metadata['Sha1base36'] = false;
+               wfProfileOut( __METHOD__ );
                return false; // failed
        }
 
@@ -1120,41 +1140,67 @@ class SwiftFileBackend extends FileBackendStore {
        }
 
        /**
-        * Get a connection to the Swift proxy
+        * Get an authenticated connection handle to the Swift proxy
         *
         * @return CF_Connection|bool False on failure
         * @throws CloudFilesException
         */
        protected function getConnection() {
-               if ( $this->connException instanceof Exception ) {
-                       throw $this->connException; // failed last attempt
+               if ( $this->connException instanceof CloudFilesException ) {
+                       if ( ( time() - $this->connErrorTime ) < 60 ) {
+                               throw $this->connException; // failed last attempt; don't bother
+                       } else { // actually retry this time
+                               $this->connException = null;
+                               $this->connErrorTime = 0;
+                       }
                }
                // Session keys expire after a while, so we renew them periodically
-               if ( $this->conn && ( time() - $this->connStarted ) > $this->authTTL ) {
-                       $this->conn->close(); // close active cURL connections
-                       $this->conn = null;
-               }
+               $reAuth = ( ( time() - $this->sessionStarted ) > $this->authTTL );
                // Authenticate with proxy and get a session key...
-               if ( !$this->conn ) {
-                       $this->connStarted = 0;
-                       $this->connContainers = array();
-                       try {
-                               $this->auth->authenticate();
-                               $this->conn = new CF_Connection( $this->auth );
-                               $this->connStarted = time();
-                       } catch ( CloudFilesException $e ) {
-                               $this->connException = $e; // don't keep re-trying
-                               throw $e; // throw it back
+               if ( !$this->conn || $reAuth ) {
+                       $this->sessionStarted = 0;
+                       $this->connContainerCache->clear();
+                       $cacheKey = $this->getCredsCacheKey( $this->auth->username );
+                       $creds = $this->srvCache->get( $cacheKey ); // credentials
+                       if ( is_array( $creds ) ) { // cache hit
+                               $this->auth->load_cached_credentials(
+                                       $creds['auth_token'], $creds['storage_url'], $creds['cdnm_url'] );
+                               $this->sessionStarted = time() - ceil( $this->authTTL/2 ); // skew for worst case
+                       } else { // cache miss
+                               try {
+                                       $this->auth->authenticate();
+                                       $creds = $this->auth->export_credentials();
+                                       $this->srvCache->add( $cacheKey, $creds, ceil( $this->authTTL/2 ) ); // cache
+                                       $this->sessionStarted = time();
+                               } catch ( CloudFilesException $e ) {
+                                       $this->connException = $e; // don't keep re-trying
+                                       $this->connErrorTime = time();
+                                       throw $e; // throw it back
+                               }
+                       }
+                       if ( $this->conn ) { // re-authorizing?
+                               $this->conn->close(); // close active cURL handles in CF_Http object
                        }
+                       $this->conn = new CF_Connection( $this->auth );
                }
                return $this->conn;
        }
 
+       /**
+        * Get the cache key for a container
+        *
+        * @param $username string
+        * @return string
+        */
+       private function getCredsCacheKey( $username ) {
+               return wfMemcKey( 'backend', $this->getName(), 'usercreds', $username );
+       }
+
        /**
         * @see FileBackendStore::doClearCache()
         */
        protected function doClearCache( array $paths = null ) {
-               $this->connContainers = array(); // clear container object cache
+               $this->connContainerCache->clear(); // clear container object cache
        }
 
        /**
@@ -1169,25 +1215,21 @@ class SwiftFileBackend extends FileBackendStore {
        protected function getContainer( $container, $bypassCache = false ) {
                $conn = $this->getConnection(); // Swift proxy connection
                if ( $bypassCache ) { // purge cache
-                       unset( $this->connContainers[$container] );
-               } elseif ( !isset( $this->connContainers[$container] ) ) {
+                       $this->connContainerCache->clear( $container );
+               } elseif ( !$this->connContainerCache->has( $container, 'obj' ) ) {
                        $this->primeContainerCache( array( $container ) ); // check persistent cache
                }
-               if ( !isset( $this->connContainers[$container] ) ) {
+               if ( !$this->connContainerCache->has( $container, 'obj' ) ) {
                        $contObj = $conn->get_container( $container );
                        // NoSuchContainerException not thrown: container must exist
-                       if ( count( $this->connContainers ) >= $this->maxContCacheSize ) { // trim cache?
-                               reset( $this->connContainers );
-                               unset( $this->connContainers[key( $this->connContainers )] );
-                       }
-                       $this->connContainers[$container] = $contObj; // cache it
+                       $this->connContainerCache->set( $container, 'obj', $contObj ); // cache it
                        if ( !$bypassCache ) {
                                $this->setContainerCache( $container, // update persistent cache
                                        array( 'bytes' => $contObj->bytes_used, 'count' => $contObj->object_count )
                                );
                        }
                }
-               return $this->connContainers[$container];
+               return $this->connContainerCache->get( $container, 'obj' );
        }
 
        /**
@@ -1200,7 +1242,7 @@ class SwiftFileBackend extends FileBackendStore {
        protected function createContainer( $container ) {
                $conn = $this->getConnection(); // Swift proxy connection
                $contObj = $conn->create_container( $container );
-               $this->connContainers[$container] = $contObj; // cache it
+               $this->connContainerCache->set( $container, 'obj', $contObj ); // cache
                return $contObj;
        }
 
@@ -1213,7 +1255,7 @@ class SwiftFileBackend extends FileBackendStore {
         */
        protected function deleteContainer( $container ) {
                $conn = $this->getConnection(); // Swift proxy connection
-               unset( $this->connContainers[$container] ); // purge cache
+               $this->connContainerCache->clear( $container ); // purge
                $conn->delete_container( $container );
        }
 
@@ -1225,13 +1267,9 @@ class SwiftFileBackend extends FileBackendStore {
                try {
                        $conn = $this->getConnection(); // Swift proxy connection
                        foreach ( $containerInfo as $container => $info ) {
-                               $this->connContainers[$container] = new CF_Container(
-                                       $conn->cfs_auth,
-                                       $conn->cfs_http,
-                                       $container,
-                                       $info['count'],
-                                       $info['bytes']
-                               );
+                               $contObj = new CF_Container( $conn->cfs_auth, $conn->cfs_http,
+                                       $container, $info['count'], $info['bytes'] );
+                               $this->connContainerCache->set( $container, 'obj', $contObj );
                        }
                } catch ( CloudFilesException $e ) { // some other exception?
                        $this->handleException( $e, null, __METHOD__, array() );
index ddc640a..ed6bf2f 100644 (file)
@@ -36,12 +36,13 @@ class TempFSFile extends FSFile {
        /**
         * Make a new temporary file on the file system.
         * Temporary files may be purged when the file object falls out of scope.
-        * 
+        *
         * @param $prefix string
         * @param $extension string
-        * @return TempFSFile|null 
+        * @return TempFSFile|null
         */
        public static function factory( $prefix, $extension = '' ) {
+               wfProfileIn( __METHOD__ );
                $base = wfTempDir() . '/' . $prefix . dechex( mt_rand( 0, 99999999 ) );
                $ext = ( $extension != '' ) ? ".{$extension}" : "";
                for ( $attempt = 1; true; $attempt++ ) {
@@ -54,17 +55,19 @@ class TempFSFile extends FSFile {
                                break; // got it
                        }
                        if ( $attempt >= 15 ) {
+                               wfProfileOut( __METHOD__ );
                                return null; // give up
                        }
                }
                $tmpFile = new self( $path );
                $tmpFile->canDelete = true; // safely instantiated
+               wfProfileOut( __METHOD__ );
                return $tmpFile;
        }
 
        /**
         * Purge this file off the file system
-        * 
+        *
         * @return bool Success
         */
        public function purge() {
@@ -96,6 +99,15 @@ class TempFSFile extends FSFile {
                $this->canDelete = false;
        }
 
+       /**
+        * Set flag clean up after the temporary file
+        *
+        * @return void
+        */
+       public function autocollect() {
+               $this->canDelete = true;
+       }
+
        /**
         * Cleans up after the temporary file by deleting it
         */
index 234788b..ce029bb 100644 (file)
@@ -43,7 +43,7 @@ abstract class FileJournal {
         * Construct a new instance from configuration.
         * $config includes:
         *     'ttlDays' : days to keep log entries around (false means "forever")
-        * 
+        *
         * @param $config Array
         */
        protected function __construct( array $config ) {
@@ -70,7 +70,7 @@ abstract class FileJournal {
 
        /**
         * Get a statistically unique ID string
-        * 
+        *
         * @return string <9 char TS_MW timestamp in base 36><22 random base 36 chars>
         */
        final public function getTimestampedUUID() {
@@ -89,7 +89,7 @@ abstract class FileJournal {
         *     path    : The storage path of the file
         *     newSha1 : The final base 36 SHA-1 of the file
         * Note that 'false' should be used as the SHA-1 for non-existing files.
-        * 
+        *
         * @param $entries Array List of file operations (each an array of parameters)
         * @param $batchId string UUID string that identifies the operation batch
         * @return Status
@@ -103,7 +103,7 @@ abstract class FileJournal {
 
        /**
         * @see FileJournal::logChangeBatch()
-        * 
+        *
         * @param $entries Array List of file operations (each an array of parameters)
         * @param $batchId string UUID string that identifies the operation batch
         * @return Status
@@ -118,9 +118,9 @@ abstract class FileJournal {
         *     id         : unique, monotonic, ID for this change
         *     batch_uuid : UUID for an operation batch
         *     backend    : the backend name
-        *     op         : primitive operation (create,update,delete)
+        *     op         : primitive operation (create,update,delete,null)
         *     path       : affected storage path
-        *     path_sha1  : base 36 sha1 of the affected storage path
+        *     new_sha1   : base 36 sha1 of the new file had the operation succeeded
         *     timestamp  : TS_MW timestamp of the batch change
 
         * Also, $next is updated to the ID of the next entry.
index 32ef5a9..3159077 100644 (file)
@@ -113,10 +113,9 @@ class FileRepo {
                        ? $info['deletedHashLevels']
                        : $this->hashLevels;
                $this->transformVia404 = !empty( $info['transformVia404'] );
-               $this->zones = isset( $info['zones'] )
-                       ? $info['zones']
-                       : array();
+               $this->isPrivate = !empty( $info['isPrivate'] );
                // Give defaults for the basic zones...
+               $this->zones = isset( $info['zones'] ) ? $info['zones'] : array();
                foreach ( array( 'public', 'thumb', 'temp', 'deleted' ) as $zone ) {
                        if ( !isset( $this->zones[$zone]['container'] ) ) {
                                $this->zones[$zone]['container'] = "{$this->name}-{$zone}";
@@ -1163,7 +1162,7 @@ class FileRepo {
                list( $b, $container, $r ) = FileBackend::splitStoragePath( $path );
 
                $params = array( 'dir' => $path );
-               if ( $container === $this->zones['deleted']['container'] ) {
+               if ( $this->isPrivate || $container === $this->zones['deleted']['container'] ) {
                        # Take all available measures to prevent web accessibility of new deleted
                        # directories, in case the user has not configured offline storage
                        $params = array( 'noAccess' => true, 'noListing' => true ) + $params;
@@ -1388,18 +1387,14 @@ class FileRepo {
        }
 
        /**
-        * Get the sha1 of a file with a given virtual URL/storage path
+        * Get the sha1 (base 36) of a file with a given virtual URL/storage path
         *
         * @param $virtualUrl string
         * @return string|bool
         */
        public function getFileSha1( $virtualUrl ) {
                $path = $this->resolveToStoragePath( $virtualUrl );
-               $tmpFile = $this->backend->getLocalReference( array( 'src' => $path ) );
-               if ( !$tmpFile ) {
-                       return false;
-               }
-               return $tmpFile->getSha1Base36();
+               return $this->backend->getFileSha1Base36( array( 'src' => $path ) );
        }
 
        /**
index 7489862..dd54455 100644 (file)
@@ -464,6 +464,39 @@ abstract class File {
                }
        }
 
+       /**
+        * Will the thumbnail be animated if one would expect it to be.
+        *
+        * Currently used to add a warning to the image description page
+        *
+        * @return bool false if the main image is both animated
+        *   and the thumbnail is not. In all other cases must return
+        *   true. If image is not renderable whatsoever, should
+        *   return true.
+        */
+       public function canAnimateThumbIfAppropriate() {
+               $handler = $this->getHandler();
+               if ( !$handler ) {
+                       // We cannot handle image whatsoever, thus
+                       // one would not expect it to be animated
+                       // so true.
+                       return true;
+               } else {
+                       if ( $this->allowInlineDisplay()
+                               && $handler->isAnimatedImage( $this )
+                               && !$handler->canAnimateThumbnail( $this )
+                       ) {
+                               // Image is animated, but thumbnail isn't.
+                               // This is unexpected to the user.
+                               return false;
+                       } else {
+                               // Image is not animated, so one would
+                               // not expect thumb to be
+                               return true;
+                       }
+               }
+       }
+
        /**
         * Get handler-specific metadata
         * Overridden by LocalFile, UnregisteredLocalFile
@@ -804,7 +837,7 @@ abstract class File {
                        return $this->handler->getTransform( $this, $thumbPath, $thumbUrl, $params );
                } else {
                        return new MediaTransformError( 'thumbnail_error',
-                               $params['width'], 0, wfMsg( 'thumbnail-dest-create' ) );
+                               $params['width'], 0, wfMessage( 'thumbnail-dest-create' )->text() );
                }
        }
 
@@ -894,7 +927,9 @@ abstract class File {
                        $tmpThumbPath = $tmpFile->getPath(); // path of 0-byte temp file
 
                        // Actually render the thumbnail...
+                       wfProfileIn( __METHOD__ . '-doTransform' );
                        $thumb = $this->handler->doTransform( $this, $tmpThumbPath, $thumbUrl, $params );
+                       wfProfileOut( __METHOD__ . '-doTransform' );
                        $tmpFile->bind( $thumb ); // keep alive with $thumb
 
                        if ( !$thumb ) { // bad params?
index 1a86e71..e849c8e 100644 (file)
@@ -1043,7 +1043,7 @@ class LocalFile extends File {
                if ( !$props ) {
                        wfProfileIn( __METHOD__ . '-getProps' );
                        $props = $this->repo->getFileProps( $this->getVirtualUrl() );
-                       wfProfileOut( __METHOD__ . -'getProps' );
+                       wfProfileOut( __METHOD__ . '-getProps' );
                }
 
                if ( $timestamp === false ) {
index 28b34a8..38b4a82 100644 (file)
@@ -163,7 +163,7 @@ class CliInstaller extends Installer {
        protected function getMessageText( $params ) {
                $msg = array_shift( $params );
 
-               $text = wfMsgExt( $msg, array( 'parseinline' ), $params );
+               $text = wfMessage( $msg, $params )->parse();
 
                $text = preg_replace( '/<a href="(.*?)".*?>(.*?)<\/a>/', '$2 &lt;$1&gt;', $text );
                return html_entity_decode( strip_tags( $text ), ENT_QUOTES );
index 0beedfa..de59b2d 100644 (file)
@@ -334,7 +334,7 @@ abstract class DatabaseInstaller {
         * @return String
         */
        public function getReadableName() {
-               return wfMsg( 'config-type-' . $this->getName() );
+               return wfMessage( 'config-type-' . $this->getName() )->text();
        }
 
        /**
@@ -509,7 +509,7 @@ abstract class DatabaseInstaller {
        public function getInstallUserBox() {
                return
                        Html::openElement( 'fieldset' ) .
-                       Html::element( 'legend', array(), wfMsg( 'config-db-install-account' ) ) .
+                       Html::element( 'legend', array(), wfMessage( 'config-db-install-account' )->text() ) .
                        $this->getTextBox( '_InstallUser', 'config-db-username', array( 'dir' => 'ltr' ), $this->parent->getHelpBox( 'config-db-install-username' ) ) .
                        $this->getPasswordBox( '_InstallPassword', 'config-db-password', array( 'dir' => 'ltr' ), $this->parent->getHelpBox( 'config-db-install-password' ) ) .
                        Html::closeElement( 'fieldset' );
@@ -534,7 +534,7 @@ abstract class DatabaseInstaller {
        public function getWebUserBox( $noCreateMsg = false ) {
                $wrapperStyle = $this->getVar( '_SameAccount' ) ? 'display: none' : '';
                $s = Html::openElement( 'fieldset' ) .
-                       Html::element( 'legend', array(), wfMsg( 'config-db-web-account' ) ) .
+                       Html::element( 'legend', array(), wfMessage( 'config-db-web-account' )->text() ) .
                        $this->getCheckBox(
                                '_SameAccount', 'config-db-web-account-same',
                                array( 'class' => 'hideShowRadio', 'rel' => 'dbOtherAccount' )
@@ -544,7 +544,7 @@ abstract class DatabaseInstaller {
                        $this->getPasswordBox( 'wgDBpassword', 'config-db-password' ) .
                        $this->parent->getHelpBox( 'config-db-web-help' );
                if ( $noCreateMsg ) {
-                       $s .= $this->parent->getWarningBox( wfMsgNoTrans( $noCreateMsg ) );
+                       $s .= $this->parent->getWarningBox( wfMessage( $noCreateMsg )->plain() );
                } else {
                        $s .= $this->getCheckBox( '_CreateDBAccount', 'config-db-web-create' );
                }
index 6483c4e..d411a27 100644 (file)
@@ -253,9 +253,9 @@ abstract class DatabaseUpdater {
 
        /**
         * Add a maintenance script to be run after the database updates are complete.
-        * 
+        *
         * @since 1.19
-        * 
+        *
         * @param $class string Name of a Maintenance subclass
         */
        public function addPostDatabaseUpdateMaintenance( $class ) {
@@ -273,7 +273,7 @@ abstract class DatabaseUpdater {
 
        /**
         * @since 1.17
-        * 
+        *
         * @return array
         */
        public function getPostDatabaseUpdateMaintenance() {
@@ -463,13 +463,20 @@ abstract class DatabaseUpdater {
         * Applies a SQL patch
         * @param $path String Path to the patch file
         * @param $isFullPath Boolean Whether to treat $path as a relative or not
+        * @param $msg String Description of the patch
         */
-       protected function applyPatch( $path, $isFullPath = false ) {
-               if ( $isFullPath ) {
-                       $this->db->sourceFile( $path );
-               } else {
-                       $this->db->sourceFile( $this->db->patchPath( $path ) );
+       protected function applyPatch( $path, $isFullPath = false, $msg = null ) {
+               if ( $msg === null ) {
+                       $msg = "Applying $path patch";
                }
+
+               if ( !$isFullPath ) {
+                       $path = $this->db->patchPath( $path );
+               }
+
+               $this->output( "$msg ..." );
+               $this->db->sourceFile( $path );
+               $this->output( "done.\n" );
        }
 
        /**
@@ -482,9 +489,7 @@ abstract class DatabaseUpdater {
                if ( $this->db->tableExists( $name, __METHOD__ ) ) {
                        $this->output( "...$name table already exists.\n" );
                } else {
-                       $this->output( "Creating $name table..." );
-                       $this->applyPatch( $patch, $fullpath );
-                       $this->output( "done.\n" );
+                       $this->applyPatch( $patch, $fullpath, "Creating $name table" );
                }
        }
 
@@ -501,9 +506,7 @@ abstract class DatabaseUpdater {
                } elseif ( $this->db->fieldExists( $table, $field, __METHOD__ ) ) {
                        $this->output( "...have $field field in $table table.\n" );
                } else {
-                       $this->output( "Adding $field field to table $table..." );
-                       $this->applyPatch( $patch, $fullpath );
-                       $this->output( "done.\n" );
+                       $this->applyPatch( $patch, $fullpath, "Adding $field field to table $table" );
                }
        }
 
@@ -518,9 +521,7 @@ abstract class DatabaseUpdater {
                if ( $this->db->indexExists( $table, $index, __METHOD__ ) ) {
                        $this->output( "...index $index already set on $table table.\n" );
                } else {
-                       $this->output( "Adding index $index to table $table... " );
-                       $this->applyPatch( $patch, $fullpath );
-                       $this->output( "done.\n" );
+                       $this->applyPatch( $patch, $fullpath, "Adding index $index to table $table" );
                }
        }
 
@@ -534,9 +535,7 @@ abstract class DatabaseUpdater {
         */
        protected function dropField( $table, $field, $patch, $fullpath = false ) {
                if ( $this->db->fieldExists( $table, $field, __METHOD__ ) ) {
-                       $this->output( "Table $table contains $field field. Dropping... " );
-                       $this->applyPatch( $patch, $fullpath );
-                       $this->output( "done.\n" );
+                       $this->applyPatch( $patch, $fullpath, "Table $table contains $field field. Dropping" );
                } else {
                        $this->output( "...$table table does not contain $field field.\n" );
                }
@@ -552,9 +551,7 @@ abstract class DatabaseUpdater {
         */
        protected function dropIndex( $table, $index, $patch, $fullpath = false ) {
                if ( $this->db->indexExists( $table, $index, __METHOD__ ) ) {
-                       $this->output( "Dropping $index index from table $table... " );
-                       $this->applyPatch( $patch, $fullpath );
-                       $this->output( "done.\n" );
+                       $this->applyPatch( $patch, $fullpath, "Dropping $index index from table $table" );
                } else {
                        $this->output( "...$index key doesn't exist.\n" );
                }
@@ -567,9 +564,7 @@ abstract class DatabaseUpdater {
         */
        protected function dropTable( $table, $patch, $fullpath = false ) {
                if ( $this->db->tableExists( $table, __METHOD__ ) ) {
-                       $this->output( "Dropping table $table... " );
-                       $this->applyPatch( $patch, $fullpath );
-                       $this->output( "done.\n" );
+                       $this->applyPatch( $patch, $fullpath, "Dropping table $table" );
                } else {
                        $this->output( "...$table doesn't exist.\n" );
                }
@@ -592,10 +587,8 @@ abstract class DatabaseUpdater {
                } elseif( $this->updateRowExists( $updateKey ) ) {
                        $this->output( "...$field in table $table already modified by patch $patch.\n" );
                } else {
-                       $this->output( "Modifying $field field of table $table..." );
-                       $this->applyPatch( $patch, $fullpath );
+                       $this->applyPatch( $patch, $fullpath, "Modifying $field field of table $table" );
                        $this->insertUpdateRow( $updateKey );
-                       $this->output( "done.\n" );
                }
        }
 
@@ -688,9 +681,7 @@ abstract class DatabaseUpdater {
                        return;
                }
 
-               $this->output( "Converting tc_time from UNIX epoch to MediaWiki timestamp... " );
-               $this->applyPatch( 'patch-tc-timestamp.sql' );
-               $this->output( "done.\n" );
+               $this->applyPatch( 'patch-tc-timestamp.sql', false, "Converting tc_time from UNIX epoch to MediaWiki timestamp" );
        }
 
        /**
index 76df7af..ca9bdf4 100644 (file)
@@ -68,7 +68,7 @@ class Ibm_db2Installer extends DatabaseInstaller {
                        $this->getTextBox( 'wgDBserver', 'config-db-host', array(), $this->parent->getHelpBox( 'config-db-host-help' ) ) .
                        $this->getTextBox( 'wgDBport', 'config-db-port', array(), $this->parent->getHelpBox( 'config-db-port' ) ) .
                        Html::openElement( 'fieldset' ) .
-                       Html::element( 'legend', array(), wfMsg( 'config-db-wiki-settings' ) ) .
+                       Html::element( 'legend', array(), wfMessage( 'config-db-wiki-settings' )->text() ) .
                        $this->getTextBox( 'wgDBname', 'config-db-name', array(), $this->parent->getHelpBox( 'config-db-name-help' ) ) .
                        $this->getTextBox( 'wgDBmwschema', 'config-db-schema', array(), $this->parent->getHelpBox( 'config-db-schema-help' ) ) .
                        Html::closeElement( 'fieldset' ) .
index a107cec..8849ac0 100644 (file)
@@ -2914,8 +2914,12 @@ Ovo '''nije preporučeno''' osim ako nemate problema s vašom wiki.",
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista E-Mail adresa MediaWiki]',
 );
 
-/** Catalan (català) */
+/** Catalan (català)
+ * @author පසිඳු කාවින්ද
+ */
 $messages['ca'] = array(
+       'config-page-language' => 'Llengua',
+       'config-page-name' => 'Nom',
        'mainpagetext' => "'''El programari del MediaWiki s'ha instaŀlat correctament.'''",
        'mainpagedocfooter' => "Consulteu la [//meta.wikimedia.org/wiki/Help:Contents Guia d'Usuari] per a més informació sobre com utilitzar-lo.
 
@@ -4153,10 +4157,53 @@ $messages['de-formal'] = array(
 );
 
 /** Zazaki (Zazaki)
+ * @author Erdemaslancan
  * @author Mirzali
  */
 $messages['diq'] = array(
+       'config-your-language' => 'Zıwanê şıma:',
+       'config-wiki-language' => 'Wiki zıwan:',
+       'config-back' => '← Peyd',
+       'config-continue' => 'Dewam ke',
+       'config-page-language' => 'Zıwan',
+       'config-page-welcome' => 'Şıma xeyr ameyê MediaWiki!',
+       'config-page-dbconnect' => 'Database rê grêdey',
        'config-page-name' => 'Name',
+       'config-page-options' => 'Weçinegi',
+       'config-page-install' => 'Barine',
+       'config-page-readme' => 'Mı bıwane',
+       'config-restart' => 'E, fına dest pekê',
+       'config-sidebar' => "* [//www.mediawiki.org MediaWiki keye]
+* [//www.mediawiki.org/wiki/Help:Contents User's Şınasiye]
+* [//www.mediawiki.org/wiki/Manual:Contents Xizmetkara şınasiye]
+* [//www.mediawiki.org/wiki/Manual:FAQ Peşti]
+----
+* <doclink href=Readme>Mı buwanê</doclink>
+* <doclink href=ReleaseNotes>Notê elekeyıni</doclink>
+* <doclink href=Copying>Telifiye</doclink>
+* <doclink href=UpgradeDoc>Weşkerdış</doclink>",
+       'config-env-php' => 'PHP $1 i biyo saz.',
+       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 dılet',
+       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
+       'config-db-port' => 'Portê database:',
+       'config-type-ibm_db2' => 'IBM DB2',
+       'config-header-mysql' => 'Sazkardışê MySQL',
+       'config-mysql-innodb' => 'InnoDB',
+       'config-mysql-myisam' => 'MyISAM',
+       'config-mysql-binary' => 'Dılet',
+       'config-mysql-utf8' => 'UTF-8',
+       'config-site-name' => 'Namey wiki:',
+       'config-ns-generic' => 'Proce',
+       'config-ns-other' => 'Zewbi (keyfiyo)',
+       'config-ns-other-default' => 'MyWiki',
+       'config-admin-box' => 'Hesabê Administratori',
+       'config-admin-name' => 'Namey şıma:',
+       'config-admin-password' => 'Parola:',
+       'config-admin-password-confirm' => 'Fına parola:',
+       'config-license-cc-by-sa' => 'Creative Commons Attribution Share Alike',
+       'config-license-cc-by' => 'Creative Commons Attribution',
+       'config-license-cc-by-nc-sa' => 'Creative Commons Attribution Non-Commercial Share Alike',
+       'config-license-pd' => 'Malê Şari',
        'mainpagetext' => "'''MediaWiki vıst ra ser, vıraziya.'''",
        'mainpagedocfooter' => 'Seba gurenayış u eyarkerdışê Wiki-Softwarey [//meta.wikimedia.org/wiki/Help:Contents İdarê karberi] de mıracaet ke.
 
@@ -4774,8 +4821,25 @@ Cuando lo haya hecho, usted puede '''[$2  entrar en su wiki]'''.",
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo de anuncios de distribución de MediaWiki]',
 );
 
-/** Estonian (eesti) */
+/** Estonian (eesti)
+ * @author Avjoska
+ */
 $messages['et'] = array(
+       'config-back' => '← Tagasi',
+       'config-continue' => 'Jätka →',
+       'config-page-language' => 'Keel',
+       'config-page-welcome' => 'Tere tulemast MediaWikisse!',
+       'config-page-name' => 'Nimi',
+       'config-page-options' => 'Seaded',
+       'config-page-install' => 'Paigaldamine',
+       'config-page-complete' => 'Valmis!',
+       'config-db-name' => 'Andmebaasi nimi:',
+       'config-db-username' => 'Andmebaasi kasutajanimi:',
+       'config-db-password' => 'Andmebaasi parool:',
+       'config-admin-email' => 'E-posti aadress:',
+       'config-optional-continue' => 'Küsi minult veel küsimusi.',
+       'config-install-step-done' => 'valmis',
+       'config-install-step-failed' => 'ebaõnnestus',
        'mainpagetext' => "'''MediaWiki tarkvara on edukalt paigaldatud.'''",
        'mainpagedocfooter' => 'Juhiste saamiseks kasutamise ning konfigureerimise kohta vaata palun inglisekeelset [//meta.wikimedia.org/wiki/MediaWiki_localisation dokumentatsiooni liidese kohaldamisest]
 ning [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide kasutusjuhendit].',
@@ -4783,6 +4847,7 @@ ning [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide kasutusjuhendit].',
 
 /** Basque (euskara)
  * @author An13sa
+ * @author පසිඳු කාවින්ද
  */
 $messages['eu'] = array(
        'config-desc' => 'MediaWiki instalatzailea',
@@ -4856,7 +4921,9 @@ $messages['eu'] = array(
        'config-license-pd' => 'Domeinu Askea',
        'config-email-settings' => 'E-posta hobespenak',
        'config-logo' => 'Logo URL:',
+       'config-extensions' => 'Luzapenak',
        'config-install-step-done' => 'egina',
+       'config-help' => 'Laguntza',
        'mainpagetext' => "'''MediaWiki arrakastaz instalatu da.'''",
        'mainpagedocfooter' => 'Ikus [//meta.wikimedia.org/wiki/Help:Contents Erabiltzaile Gida] wiki softwarea erabiltzen hasteko informazio gehiagorako.
 
@@ -4930,6 +4997,7 @@ $messages['fa'] = array(
 );
 
 /** Finnish (suomi)
+ * @author Beluga
  * @author Centerlink
  * @author Crt
  * @author Nike
@@ -5080,6 +5148,7 @@ Voit ohittaa jäljellä olevat määritykset ja asentaa wikin juuri nyt.',
        'config-profile-wiki' => 'Perinteinen wiki',
        'config-profile-no-anon' => 'Tunnuksen luonti vaaditaan',
        'config-profile-private' => 'Yksityinen wiki',
+       'config-license' => 'Tekijänoikeus ja lisenssi:',
        'config-license-pd' => 'Public domain',
        'config-email-settings' => 'Sähköpostiasetukset',
        'config-logo' => 'Logon URL-osoite',
@@ -5733,6 +5802,7 @@ Portant, MediaWiki at fôta de PHP $2 ou ben ples hôt.',
        'config-mysql-old' => 'MySQL $1 ou ben ples novél est nècèssèro, vos avéd $2.',
        'config-db-port' => 'Pôrt de la bâsa de balyês :',
        'config-db-schema' => 'Plan por MediaWiki',
+       'config-pg-test-error' => "Empossiblo de sè branchiér a la bâsa de donâs '''$1''' : $2",
        'config-sqlite-dir' => 'Dossiér de les balyês SQLite :',
        'config-oracle-def-ts' => "Èspâço de stocâjo (''tablespace'') per dèfôt :",
        'config-oracle-temp-ts' => "Èspâço de stocâjo (''tablespace'') temporèro :",
@@ -5870,8 +5940,14 @@ $messages['fy'] = array(
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglist foar oankundigings fan nije ferzjes]",
 );
 
-/** Irish (Gaeilge) */
+/** Irish (Gaeilge)
+ * @author පසිඳු කාවින්ද
+ */
 $messages['ga'] = array(
+       'config-page-language' => 'Teanga',
+       'config-page-name' => 'Ainm',
+       'config-admin-password' => "D'fhocal faire:",
+       'config-help' => 'Cuidiú',
        'mainpagetext' => "'''D'éirigh le suiteáil MediaWiki.'''",
        'mainpagedocfooter' => 'Féach ar [//meta.wikimedia.org/wiki/MediaWiki_localisation doiciméid um conas an chomhéadán a athrú]
 agus an [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Lámhleabhar úsáideora] chun cabhair úsáide agus fíoraíochta a fháil.',
@@ -9233,6 +9309,8 @@ $messages['is'] = array(
 
 /** Italian (italiano)
  * @author Beta16
+ * @author Darth Kule
+ * @author F. Cosoleto
  * @author Karika
  */
 $messages['it'] = array(
@@ -9295,12 +9373,51 @@ Non è possibile installare MediaWiki.",
        'config-env-php' => 'PHP $1 è installato.',
        'config-env-php-toolow' => 'PHP $1 è installato.
 Tuttavia, MediaWiki richiede PHP $2 o superiore.',
+       '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-xml-bad' => 'Il modulo XML di PHP è mancante.
+MediaWIki necessita di funzioni presenti in questo modulo e non funzionerà con la configurazione corrente.
+Se si sta eseguendo Mandrake, installare il paccketto php-xml.',
+       'config-pcre' => 'Il modulo per il supporto PCRE sembra essere mancante.
+MediaWiki necessita di questo modulo per funzinare, che fornisce funzioni per le espressioni regolari Perl-compatibili.',
+       'config-pcre-no-utf8' => "'''Errore''': Il modulo PCRE di PHP sembra essere stato compilato senza il supporto PCRE_UTF8, ma MediaWiki lo richiede per funzionare correttamente.",
+       'config-memory-raised' => 'Il valore <code>memory_limit</code> di PHP è $1, aumentato a $2.',
+       'config-memory-bad' => "''Attenzione:''' Il valore di <code>memory_limit</code> di PHP è $1.
+Probabilmente è troppo basso.
+L'installazione potrebbe non riuscire!",
+       'config-ctype' => "'''Errore''': PHP deve essere compilato con il supporto per la [http://www.php.net/manual/en/ctype.installation.php estensione Ctype].",
        'config-xcache' => '[http://xcache.lighttpd.net/ XCache] è installato',
        'config-apc' => '[http://www.php.net/apc APC] è installato',
        'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] è installato',
+       'config-no-cache' => "'''Attenzione:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache] non sono stati trovati.
+La caching degli oggetti non è attivata.",
        'config-diff3-bad' => 'GNU diff3 non trovato.',
+       'config-imagemagick' => 'Trovato ImageMagick: <code>$1</code>.
+Le miniature delle immagini saranno presenti se gli upload vengono abilitati.',
+       'config-gd' => 'Trovata la GD Graphics Library built-in.
+Le miniature delle immagini saranno presenti se gli upload vengono abilitati.',
+       'config-no-scaling' => 'La GD library o ImageMagick non sono state trovate.
+Le miniature delle immagini saranno disabilitate.',
+       'config-no-uri' => "'''Errore:''' Impossibile determinare l'URI attuale.
+Installazione interrotta.",
+       'config-no-cli-uri' => "'''Attenzione''': --scriptpath non specificato, si utilizza il valore predefinito: <code>$1</code>.",
+       'config-using-server' => 'Nome server in uso "<nowiki>$1</nowiki>".',
+       'config-using-uri' => 'URL del server in uso "<nowiki>$1$2</nowiki>".',
        'config-db-type' => 'Tipo di database:',
+       'config-db-name' => 'Nome del database:',
+       'config-db-password-empty' => 'Inserire una password per il nuovo utente del database: $1.
+Anche se può essere possibile creare utenti senza password, questo non è sicuro.',
+       'config-db-install-help' => "Inserire il nome utente e la password che verranno usate per la connessione al database durante il processo d'installazione.",
+       'config-db-charset' => 'Set di caratteri del database',
+       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
+       'config-charset-mysql4' => 'MySQL 4.0 con compatibilità UTF-8',
+       'config-mysql-old' => 'MySQL $1 o una versione successiva è necessaria, rilevata la $2.',
+       'config-db-port' => 'Porta del database:',
+       'config-db-schema' => 'Schema per MediaWiki:',
+       'config-db-schema-help' => 'Questo schema in genere andrà bene.
+Da cambiare solamente se si è sicuri di averne bisogno.',
        'config-pg-test-error' => "Impossibile connettersi al database '''$1''': $2",
+       'config-sqlite-dir' => 'Directory data di SQLite:',
        'config-type-ibm_db2' => 'IBM DB2',
        'config-header-mysql' => 'Impostazioni MySQL',
        'config-header-postgres' => 'Impostazioni PostgreSQL',
@@ -9308,8 +9425,13 @@ Tuttavia, MediaWiki richiede PHP $2 o superiore.',
        'config-header-oracle' => 'Impostazioni Oracle',
        'config-header-ibm_db2' => 'Impostazioni IBM DB2',
        'config-invalid-db-type' => 'Tipo di database non valido',
+       'config-db-web-create' => "Crea l'account se non esiste già",
+       'config-mysql-engine' => 'Storage engine:',
        'config-mysql-innodb' => 'InnoDB',
+       'config-mysql-myisam' => 'MyISAM',
+       'config-mysql-charset' => 'Set di caratteri del database:',
        'config-mysql-utf8' => 'UTF-8',
+       'config-ibm_db2-low-db-pagesize' => "Il database DB2 in uso ha una tablespace predefinita con un insufficiente pagesize, che dovrebbe essere '''32K''' o maggiore.",
        'config-ns-generic' => 'Progetto',
        'config-ns-site-name' => 'Stesso nome wiki: $1',
        'config-admin-box' => 'Account amministratore',
@@ -9325,6 +9447,14 @@ Specificare un nome utente diverso.',
        'config-admin-password-same' => 'La password non deve essere uguale al nome utente.',
        'config-admin-password-mismatch' => 'Le password inserite non coincidono tra loro.',
        'config-admin-email' => 'Indirizzo e-mail:',
+       'config-admin-error-bademail' => 'È stato inserito un indirizzo email non valido.',
+       'config-subscribe-help' => 'Si tratta di una mailing list a basso traffico dedicata agli annunci di nuove versioni, compresi importanti segnalazioni riguardanti la sicurezza.
+È consigliato iscriversi e aggiornare la proprio installazione di MediaWiki quando una nuova versione viene resa pubblica.',
+       'config-subscribe-noemail' => "Hai provato ad iscriverti alla mailing list dedicata agli annunci delle nuove versioni senza fornire un indirizzo email.
+Inserire un indirizzo email se si desidera effettuare l'iscrizione alla mailing list.",
+       'config-almost-done' => 'Hai quasi finito!
+Adesso puoi saltare la rimanente parte della configurazione e semplicemente installare la wiki.',
+       'config-license' => 'Copyright e licenza:',
        'config-license-cc-by-sa' => 'Creative Commons Attribuzione-Condividi allo stesso modo',
        'config-license-cc-by' => 'Creative Commons Attribuzione',
        'config-license-cc-by-nc-sa' => 'Creative Commons Attribuzione-Non commerciale-Condividi allo stesso modo',
@@ -9332,6 +9462,18 @@ Specificare un nome utente diverso.',
        'config-license-gfdl' => 'GNU Free Documentation License 1.3 o versioni successive',
        'config-license-pd' => 'Pubblico dominio',
        'config-email-settings' => 'Impostazioni email',
+       'config-email-auth' => 'Abilita autenticazione via email',
+       'config-upload-deleted' => 'Directory per i file cancellati:',
+       'config-logo' => 'URL del logo:',
+       'config-cc-again' => 'Seleziona di nuovo...',
+       'config-cc-not-chosen' => 'Scegliere quale licenza Creative Commons si desidera e cliccare su "procedi".',
+       'config-advanced-settings' => 'Configurazione avanzata',
+       'config-memcache-badip' => 'È stato inserito un indirizzo IP non valido per Memcached: $1.',
+       'config-extensions' => 'Estensioni',
+       'config-install-user-alreadyexists' => 'L\'utente "$1" è già presente',
+       'config-install-user-create-failed' => 'Creazione dell\'utente "$1" non riuscita: $2',
+       'config-install-user-missing' => 'L\'utente indicato "$1" non esiste.',
+       'config-install-tables-failed' => "'''Errore''': La creazione della tabella non è riuscita: $1",
        'config-install-interwiki-list' => 'Impossibile leggere il file <code>interwiki.list</code>.',
        'config-install-stats' => 'Inizializzazione delle statistiche',
        'config-install-keys' => 'Generazione delle chiavi segrete',
@@ -9341,6 +9483,8 @@ Specificare un nome utente diverso.',
        'config-install-mainpage' => 'Creazione della pagina principale con contenuto predefinito',
        'config-install-mainpage-failed' => 'Impossibile inserire la pagina principale: $1',
        'config-download-localsettings' => 'Scarica LocalSettings.php',
+       'config-help' => 'aiuto',
+       'config-nofile' => 'Il file "$1" non può essere trovato. È stato eliminato?',
        'mainpagetext' => "'''Installazione di MediaWiki completata correttamente.'''",
        'mainpagedocfooter' => "Consultare la [//meta.wikimedia.org/wiki/Aiuto:Sommario Guida utente] per maggiori informazioni sull'uso di questo software wiki.
 
@@ -9391,7 +9535,7 @@ php.iniを確認し、<code>session.save_path</code>が適切なディレクト
        'config-wiki-language' => 'ウィキの言語:',
        'config-wiki-language-help' => 'ウィキで主に書き込まれる言語を選択してください。',
        'config-back' => '←戻る',
-       'config-continue' => '続行→',
+       'config-continue' => '続行 →',
        'config-page-language' => '言語',
        'config-page-welcome' => 'MediaWikiへようこそ!',
        'config-page-dbconnect' => 'データベースに接続',
@@ -15384,6 +15528,12 @@ $messages['ro'] = array(
  * @author Joetaras
  */
 $messages['roa-tara'] = array(
+       'config-db-charset' => "'Nzieme de carattere d'u database",
+       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binary',
+       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
+       'config-charset-mysql4' => 'MySQL 4.0 backwards-compatible UTF-8',
+       'config-install-step-done' => 'fatte',
+       'config-install-step-failed' => 'fallite',
        'config-help' => 'ajute',
        'mainpagetext' => "'''MediaUicchi ha state 'nstallete.'''",
        'mainpagedocfooter' => "Vè vide [//meta.wikimedia.org/wiki/Help:Contents User's Guide] pe l'mbormaziune sus a cumme s'ause 'u softuer wiki.
@@ -16056,8 +16206,58 @@ $messages['shi'] = array(
 
 /** Sinhala (සිංහල)
  * @author Singhalawap
+ * @author පසිඳු කාවින්ද
  */
 $messages['si'] = array(
+       'config-information' => 'තොරතුරු',
+       'config-your-language' => 'ඔබේ භාෂාව:',
+       'config-wiki-language' => 'විකි භාෂාව:',
+       'config-back' => '← ආපසු',
+       'config-continue' => 'ඉදිරියට →',
+       'config-page-language' => 'භාෂාව',
+       'config-page-welcome' => 'මාධ්‍යවිකි වෙත පිළිගනිමු!',
+       'config-page-dbsettings' => 'දත්ත සංචිත සැකසුම්',
+       'config-page-name' => 'නම',
+       'config-page-options' => 'විකල්ප',
+       'config-page-install' => 'ස්ථාපනය',
+       'config-page-complete' => 'සම්පූර්ණයි!',
+       'config-page-readme' => 'මාව කියවන්න',
+       'config-page-releasenotes' => 'නිකුතු සටහන්',
+       'config-page-copying' => 'පිටපත් කරමින්',
+       'config-db-name' => 'දත්ත සංචිතයේ නම:',
+       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
+       'config-db-port' => 'දත්ත සංචිතයේ කවුළුව:',
+       'config-type-ibm_db2' => 'IBM DB2',
+       'config-header-mysql' => 'MySQL සැකසුම්',
+       'config-header-postgres' => 'PostgreSQL සැකසුම්',
+       'config-header-sqlite' => 'SQLite සැකසුම්',
+       'config-header-oracle' => 'ඔරකල් සැකසුම්',
+       'config-header-ibm_db2' => 'IBM DB2 සැකසුම්',
+       'config-mysql-innodb' => 'InnoDB',
+       'config-mysql-myisam' => 'MyISAM',
+       'config-mysql-binary' => 'ද්විමය',
+       'config-mysql-utf8' => 'UTF-8',
+       'config-site-name-blank' => 'අඩවි නාමයක් යොදන්න.',
+       'config-project-namespace' => 'ව්‍යාපෘතියේ නාමඅවකාශය:',
+       'config-ns-generic' => 'ව්‍යාපෘතිය',
+       'config-ns-other' => 'වෙනත් (විශේෂණය කරන්න)',
+       'config-ns-other-default' => 'මගේවිකිය',
+       'config-admin-box' => 'පරිපාලක ගිණුම',
+       'config-admin-name' => 'ඔබේ නම:',
+       'config-admin-password' => 'මුරපදය:',
+       'config-admin-password-confirm' => 'මුරපදය නැවතත්:',
+       'config-admin-email' => 'විද්‍යුත්-තැපැල් ලිපිනය:',
+       'config-profile-wiki' => 'සාම්ප්‍රදායික විකිය',
+       'config-profile-no-anon' => 'ගිණුම් තැනීම අවශ්‍යයි',
+       'config-profile-private' => 'පුද්ගලික විකිය',
+       'config-license-pd' => 'පොදු වසම',
+       'config-email-settings' => 'විද්‍යුත්-තැපැල් සැකසුම්',
+       'config-upload-deleted' => 'මැකූ ගොනු සඳහා නාමාවලිය:',
+       'config-extensions' => 'විස්තීර්ණ',
+       'config-install-step-done' => 'සිදුකලා',
+       'config-install-step-failed' => 'අසාර්ථකයි',
+       'config-install-tables' => 'වගු තනමින්',
+       'config-help' => 'උදව්',
        'mainpagetext' => "'''මීඩියාවිකි සාර්ථක ලෙස ස්ථාපනය කරන ලදි.'''",
        'mainpagedocfooter' => 'විකි මෘදුකාංග භාවිතා කිරීම පිළිබඳ තොරතුරු සඳහා  [//meta.wikimedia.org/wiki/Help:Contents පරිශීලකයන් සඳහා නියමුව] හදාරන්න.
 
@@ -16456,6 +16656,8 @@ MediaWiki kräver PHP $2 eller högre.',
        'config-using-uri' => 'Använder server-URL "<nowiki>$1$2</nowiki>".',
        'config-db-wiki-settings' => 'Identifiera denna wiki',
        'config-db-name' => 'Databasnamn:',
+       'config-db-name-oracle' => 'Databasschema:',
+       'config-db-install-account' => 'Användarkonto för installation',
        'config-db-username' => 'Databas-användarnamn:',
        'config-db-password' => 'Databas-lösenord:',
        'config-db-schema' => 'Schema för MediaWiki',
@@ -16475,6 +16677,8 @@ Använd bara ASCII-bokstäver (a-z, A-Z), siffror (0-9), understreck (_) och bin
 Kontrollera värden, användarnamnet och lösenordet nedan och försök igen',
        'config-invalid-schema' => '"$1" är ett ogiltigt schema för MediaWiki.
 Använd bara ASCII-bokstäver (a-z, A-Z), siffror (0-9), understreck (_) och bindestreck (-).',
+       'config-db-sys-user-exists-oracle' => 'Användarkontot "$1" finns redan. SYSDBA kan endast användas för att skapa ett nytt konto!',
+       'config-postgres-old' => 'PostgreSQL $1 eller senare krävs, du har $2.',
        'config-upgrade-done' => "Uppgraderingen slutfördes.
 
 Du kan nu [$1 börja använda din wiki].
@@ -16488,6 +16692,27 @@ Du kan nu [$1 börja använda din wiki].',
        'config-site-name' => 'Namnet på wikin:',
        'config-site-name-blank' => 'Ange ett sidnamn.',
        'config-ns-generic' => 'Projekt',
+       'config-admin-name' => 'Ditt namn:',
+       'config-admin-password' => 'Lösenord:',
+       'config-admin-password-confirm' => 'Lösenord igen:',
+       'config-admin-help' => 'Skriv in ditt föredragna användarnamn här, t.ex. "Joe Bloggs".
+Detta är namnet du kommer att använda för att logga in på wikin.',
+       'config-admin-name-blank' => 'Ange ett användarnamn för administratörskontot.',
+       'config-admin-name-invalid' => 'Det angivna användarnamnet "<nowiki>$1</nowiki>" är ogiltigt.
+Ange ett annat användarnamn.',
+       'config-admin-password-blank' => 'Ange ett lösenord för administratörskontot.',
+       'config-admin-email' => 'E-postadress:',
+       'config-admin-error-bademail' => 'Du har angivit en felaktigt e-postadress.',
+       'config-optional-continue' => 'Ställ fler frågor till mig.',
+       'config-profile-private' => 'Privat wiki',
+       'config-license' => 'Upphovsrätt och licens:',
+       'config-license-pd' => 'Allmän egendom',
+       'config-email-settings' => 'E-postinställningar',
+       'config-install-step-done' => 'klar',
+       'config-install-step-failed' => 'misslyckades',
+       'config-insecure-keys' => "'''Varning:''' {{PLURAL:$2|En säkerhetsnyckel|Säkerhetsnycklar}} ($1) som generades under installationen är inte helt {{PLURAL:$2|säker|säkra}} . Överväg att ändra {{PLURAL:$2|den|dem}} manuellt.",
+       'config-download-localsettings' => 'Ladda ned LocalSettings.php',
+       'config-help' => 'hjälp',
        'mainpagetext' => "'''MediaWiki har installerats utan problem.'''",
        'mainpagedocfooter' => 'Information om hur wiki-programvaran används finns i [//meta.wikimedia.org/wiki/Help:Contents användarguiden].
 
@@ -16525,16 +16750,99 @@ $messages['szl'] = array(
 );
 
 /** Tamil (தமிழ்)
+ * @author Karthi.dr
  * @author TRYPPN
+ * @author மதனாஹரன்
  */
 $messages['ta'] = array(
+       'config-title' => 'மீடியாவிக்கி $1 நிறுவுதல்',
        'config-information' => 'தகவல்',
+       'config-localsettings-key' => 'தரமுயர்த்தல் குறியீடு:',
+       'config-localsettings-badkey' => 'நீங்கள் தந்த குறியீடு தவறானது.',
        'config-your-language' => 'தங்களது மொழி:',
+       'config-your-language-help' => 'நிறுவல் செயன்முறையின்போது பயன்படுத்துவதற்கு ஒரு மொழியைத் தெரிவு செய்யவும்.',
+       'config-wiki-language' => 'விக்கி மொழி:',
        'config-back' => '← முந்தைய',
        'config-continue' => 'தொடரவும் →',
        'config-page-language' => 'மொழி',
+       'config-page-welcome' => 'மீடியாவிக்கிக்கு வருக !',
+       'config-page-dbconnect' => 'தரவுத் தளத்துடன் தொடர்பு கொள்ளவும்',
+       'config-page-dbsettings' => 'தரவுத் தள அமைப்புகள்',
        'config-page-name' => 'பெயர்',
        'config-page-options' => 'விருப்பத்தேர்வுகள்',
+       'config-page-install' => 'நிறுவு',
+       'config-page-complete' => 'நிறைவு!',
+       'config-page-restart' => 'நிறுவலை மீண்டும் தொடங்கவும்',
+       'config-page-readme' => 'இதைப் படி',
+       'config-page-releasenotes' => 'வெளியீட்டு குறிப்புகள்',
+       'config-page-copying' => 'நகலெடுக்கப்படுகிறது',
+       'config-page-upgradedoc' => 'தரமுயர்த்தப்படுகிறது',
+       'config-page-existingwiki' => 'இருக்கின்ற விக்கி',
+       'config-restart' => 'ஆம், மறுமுறை துவங்கு',
+       'config-sidebar' => '* [//www.mediawiki.org மீடியாவிக்கி முகப்பு]
+* [//www.mediawiki.org/wiki/Help:Contents பயனரின் கையேடு]
+* [//www.mediawiki.org/wiki/Manual:Contents மேலாளரின் கையேடு]
+* [//www.mediawiki.org/wiki/Manual:FAQ அகேகே]
+----
+* <doclink href=Readme>என்னை வாசிக்கவும்</doclink>
+* <doclink href=ReleaseNotes>வெளியீட்டுக் குறிப்புகள்</doclink>
+* <doclink href=Copying>படியெடுத்தல்</doclink>
+* <doclink href=UpgradeDoc>நிகழ்நிலைப்படுத்தல்</doclink>',
+       'config-db-type' => 'தரவுத்தள வகை:',
+       'config-db-wiki-settings' => 'இந்த விக்கியைக் கண்டுபிடி',
+       'config-db-name' => 'தரவுதளப் பெயர்:',
+       'config-db-install-account' => 'நிறுவலுக்கான பயனர் கணக்கு',
+       'config-db-username' => 'தரவுத்தள பயனர்பெயர்:',
+       'config-db-password' => 'தரவுத்தள கடவுச்சொல்:',
+       'config-db-prefix' => 'தரவுத் தள வரிசைப் பட்டியல் முன்னொட்டு:',
+       'config-db-charset' => 'தரவுத் தள வரியுருத் தொகுதி',
+       'config-invalid-db-type' => 'செல்லாத தரவுத்தள வகை',
+       'config-upgrade-done-no-regenerate' => 'தரமுயர்த்தல் முழுமையடைந்தது.
+நீங்கள் தற்போது [$1 உங்கள் விக்கியைப் பயன்படுத்தத் துவங்கலாம்].',
+       'config-db-web-account' => 'வலை அணுகலுக்கான தரவுத் தளக் கணக்கு',
+       'config-mysql-engine' => 'சேமிப்பு இயந்திரம்:',
+       'config-mysql-charset' => 'தரவுத் தள வரியுருத் தொகுதி:',
+       'config-mysql-utf8' => 'UTF-8',
+       'config-site-name' => 'விக்கியின் பெயர்:',
+       'config-site-name-blank' => 'ஒரு தளத்தின் பெயரை உள்ளிடுக.',
+       'config-ns-generic' => 'திட்டம்',
+       'config-ns-other' => 'ஏனையவை (குறிப்பிடவும்)',
+       'config-admin-box' => 'நிருவாகி கணக்கு',
+       'config-admin-name' => 'தங்களது பெயர்:',
+       'config-admin-password' => 'கடவுச்சொல்:',
+       'config-admin-password-confirm' => 'கடவுச்சொல் மறுமுறையும்:',
+       'config-admin-name-blank' => 'நிருவாக அணுக்கம் உள்ள பயனர் பெயரை இடுக.',
+       'config-admin-password-blank' => 'நிருவாகி கணக்குக்கு கடவுச்சொல் ஒன்றை உள்ளிடவும்.',
+       'config-admin-password-same' => 'பயனர் பெயரையே கடவுச்சொல்லாக வைத்துக் கொள்ள முடியாது.',
+       'config-admin-password-mismatch' => 'நீங்கள் பதிந்த கடவுச்சொற்கள் ஒன்றுக்கொன்று பொருந்தவில்லை.',
+       'config-admin-email' => 'மின்னஞ்சல் முகவரி:',
+       'config-admin-error-bademail' => 'நீங்கள் செல்லாத ஒரு மின்னஞ்சல் முகவரியைத் தந்துள்ளீர்கள்.',
+       'config-optional-continue' => 'என்னை இன்னும் அதிகமாக வினவு.',
+       'config-optional-skip' => 'நான் ஏற்கனவே சோர்வடைந்துள்ளேன், விக்கியை மட்டும் உருவாக்கு.',
+       'config-profile' => 'பயனர் உரிமைகள் சுயவிவரம்:',
+       'config-profile-wiki' => 'பாரம்பரிய விக்கி',
+       'config-profile-no-anon' => 'கணக்கு உருவாக்குதல் அவசியம்',
+       'config-profile-private' => 'தனியார் விக்கி',
+       'config-license' => 'பதிப்புரிமை மற்றும் உரிமம்:',
+       'config-license-pd' => 'பொதுக்களம்',
+       'config-email-settings' => 'மின்னஞ்சல் அமைப்புகள்',
+       'config-email-user' => 'பயனர்-பயனர் மின்னஞ்சலைச் செயற்படுத்தவும்',
+       'config-email-usertalk' => 'பயனர் பேச்சுப் பக்க அறிவிப்பைச் செயற்படுத்தவும்',
+       'config-email-watchlist' => 'கவனிப்புப் பட்டியல் அறிவிப்பைச் செயற்படுத்தவும்',
+       'config-upload-settings' => 'படிமம் மற்றும் கோப்பு பதிவேற்றங்கள்',
+       'config-upload-enable' => 'கோப்புப் பதிவேற்றங்களைச் செயற்படுத்தவும்',
+       'config-upload-deleted' => 'அழித்த கோப்புகளுக்கான அடைவு:',
+       'config-logo' => 'அடையாளச் சின்ன உரலி:',
+       'config-extensions' => 'நீட்சிகள்',
+       'config-install-step-done' => 'முடிந்தது',
+       'config-install-step-failed' => 'தோல்வியுற்றது',
+       'config-install-user' => 'தரவுத் தளப் பயனரை உருவாக்குகிறது',
+       'config-install-user-alreadyexists' => 'பயனர் "$1" ஏற்கனவே உள்ளது',
+       'config-install-tables' => 'வரிசைப் பட்டியல்களை உருவாக்குகிறது',
+       'config-install-mainpage' => 'இயல்புநிலை உள்ளடக்கத்துடன் முதற்பக்கத்தை உருவாக்குகிறது',
+       'config-install-extension-tables' => 'செயற்படுத்தப்பட்ட நீட்சிகளுக்கு வரிசைப் பட்டியல்களை உருவாக்குகிறது',
+       'config-download-localsettings' => 'LocalSettings.phpஐத் தரவிறக்கவும்',
+       'config-help' => 'உதவி',
        'mainpagetext' => "'''விக்கி மென்பொருள் வெற்றிகரமாக உள்ளிடப்பட்டது.'''",
        'mainpagedocfooter' => 'விக்கி மென்பொருளைப் பயன்படுத்துவது தொடர்பாக [//meta.wikimedia.org/wiki/Help:Contents பயனர் வழிகாட்டியைப்] பார்க்க.
 
@@ -17032,6 +17340,7 @@ $messages['ug-arab'] = array(
 );
 
 /** Ukrainian (українська)
+ * @author AS
  * @author Ahonc
  * @author Alex Khimich
  * @author Diemon.ukr
@@ -17044,6 +17353,13 @@ $messages['uk'] = array(
        'config-localsettings-upgrade' => "'''Увага''': було виявлено файл <code>LocalSettings.php</code>.
 Ваше програмне забезпечення може бути оновлено.
 Будь-ласка, перемістіть файл <code>LocalSettings.php</code> в іншу безпечну директорію, а потім знову запустіть програму установки.",
+       'config-localsettings-cli-upgrade' => 'Виявлено файл LocalSettings.php.
+Щоб оновити наявну установку, запустіть update.php',
+       'config-localsettings-key' => 'Ключ оновлення:',
+       'config-localsettings-badkey' => 'Ви вказали неправильний ключ.',
+       'config-upgrade-key-missing' => 'Виявлено наявну установку MediaWiki.
+Для оновлення цієї установки, будь ласка, вставте такий рядок в кінець вашого LocalSettings.php:
+$1',
        'config-session-error' => 'Помилка початку сесії: $1',
        'config-your-language' => 'Ваша мова:',
        'config-your-language-help' => 'Оберіть мову для використання в процесі установки.',
@@ -17134,8 +17450,32 @@ $messages['uk'] = array(
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Розсилка повідомлень про появу нових версій MediaWiki].',
 );
 
-/** Urdu (اردو) */
+/** Urdu (اردو)
+ * @author පසිඳු කාවින්ද
+ */
 $messages['ur'] = array(
+       'config-information' => 'معلومات',
+       'config-profile-fishbowl' => 'صرف مجاز ایڈیٹرز',
+       'config-license-pd' => 'پبلک ڈومین',
+       'config-email-settings' => 'ای میل کی ترتیبات',
+       'config-email-user-help' => 'تمام صارفین ای میل بھیجنے کیلئے ایک دوسرے اگر وہ یہ ان کی ترجیحات میں فعال ہے کی اجازت دیتے ہیں.',
+       'config-email-usertalk' => 'صارف بات صفحہ کی اطلاع فعال',
+       'config-email-usertalk-help' => 'اگر وہ یہ ان کی ترجیحات میں فعال ہے صارف بات صفحہ تبدیلی پر اطلاعات حاصل کرنے کے لئے صارفین کی اجازت دیں.',
+       'config-email-watchlist' => 'دیکھنی والی فہرست کی اطلاع فعال',
+       'config-email-auth' => 'فعال ای میل کی تصدیق',
+       'config-email-sender' => 'ای میل ایڈریس پر واپس:',
+       'config-upload-deleted' => 'ڈائرکٹری خارج کردہ فائلوں کے لیے:',
+       'config-advanced-settings' => 'اعلی درجے کی ترتیب',
+       'config-cache-options' => 'اعتراض کیش کے لئے ترتیب دینا:',
+       'config-extensions' => 'ملانے',
+       'config-install-step-done' => 'کیا کیا',
+       'config-install-step-failed' => 'میں ناکام رہے',
+       'config-install-extensions' => 'سمیت ملانے',
+       'config-install-database' => 'ڈیٹا بیس کی ترتیب',
+       'config-install-pg-commit' => 'تبدیلیوں کے ارتکاب',
+       'config-install-keys' => 'خفیہ چابیاں پیدا',
+       'config-install-sysop' => 'منتظم کے صارف کے اکاؤنٹ کی تشکیل',
+       'config-install-mainpage' => 'پہلے سے طے شدہ مواد کے ساتھ سب سے کامیاب کی تشکیل',
        'mainpagetext' => "'''میڈیاوکی کو کامیابی سے چالو کردیا گیا ہے۔.'''",
 );
 
@@ -17180,8 +17520,18 @@ $messages['vep'] = array(
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce počtnimikirjutez]',
 );
 
-/** Vietnamese (Tiếng Việt) */
+/** Vietnamese (Tiếng Việt)
+ * @author පසිඳු කාවින්ද
+ */
 $messages['vi'] = array(
+       'config-information' => 'Thông tin',
+       'config-page-language' => 'Ngôn ngữ',
+       'config-page-name' => 'Tên',
+       'config-page-options' => 'Tùy chọn',
+       'config-ns-generic' => 'Dự án',
+       'config-admin-password' => 'Mật khẩu:',
+       'config-admin-email' => 'Địa chỉ thư điện tử:',
+       'config-help' => 'Trợ giúp',
        'mainpagetext' => "'''MediaWiki đã được cài đặt thành công.'''",
        'mainpagedocfooter' => 'Xin đọc [//meta.wikimedia.org/wiki/Help:Contents Hướng dẫn sử dụng] để biết thêm thông tin về cách sử dụng phần mềm wiki.
 
@@ -17274,11 +17624,16 @@ $messages['xal'] = array(
 
 /** Yiddish (ייִדיש)
  * @author פוילישער
+ * @author පසිඳු කාවින්ද
  */
 $messages['yi'] = array(
        'config-back' => '→ צוריק',
        'config-page-language' => 'שפראַך',
+       'config-page-name' => 'נאָמען',
+       'config-page-options' => 'ברירות',
        'config-admin-name' => 'אײַער נאָמען:',
+       'config-admin-password' => 'פאַסווארט:',
+       'config-admin-email' => 'בליצפּאָסט אַדרעס:',
        'config-help' => 'הילף',
        'mainpagetext' => "'''מעדיעוויקי אינסטאלירט מיט דערפאלג.'''",
        'mainpagedocfooter' => "גיט זיך אן עצה מיט [//meta.wikimedia.org/wiki/Help:Contents באניצער'ס וועגווײַזער] פֿאר אינפֿארמאציע וויאזוי זיך באנוצן מיט וויקי ווייכוואַרג.
index d87f294..caf7b69 100644 (file)
@@ -308,7 +308,7 @@ abstract class Installer {
 
        /**
         * UI interface for displaying a short message
-        * The parameters are like parameters to wfMsg().
+        * The parameters are like parameters to wfMessage().
         * The messages will be in wikitext format, which will be converted to an
         * output format such as HTML or text before being sent to the user.
         * @param $msg
@@ -645,7 +645,7 @@ abstract class Installer {
                $allNames = array();
 
                foreach ( self::getDBTypes() as $name ) {
-                       $allNames[] = wfMsg( "config-type-$name" );
+                       $allNames[] = wfMessage( "config-type-$name" )->text();
                }
 
                // cache initially available databases to make sure that everything will be displayed correctly
@@ -788,6 +788,10 @@ abstract class Installer {
 
        /**
         * Environment check for the PCRE module.
+        *
+        * @note If this check were to fail, the parser would
+        *   probably throw an exception before the result
+        *   of this check is shown to the user.
         * @return bool
         */
        protected function envCheckPCRE() {
@@ -797,8 +801,13 @@ abstract class Installer {
                }
                wfSuppressWarnings();
                $regexd = preg_replace( '/[\x{0430}-\x{04FF}]/iu', '', '-АБВГД-' );
+               // Need to check for \p support too, as PCRE can be compiled
+               // with utf8 support, but not unicode property support.
+               // check that \p{Zs} (space separators) matches
+               // U+3000 (Ideographic space)
+               $regexprop = preg_replace( '/\p{Zs}/u', '', "-\xE3\x80\x80-" );
                wfRestoreWarnings();
-               if ( $regexd != '--' ) {
+               if ( $regexd != '--' || $regexprop != '--' ) {
                        $this->showError( 'config-pcre-no-utf8' );
                        return false;
                }
@@ -1585,12 +1594,13 @@ abstract class Installer {
                $status = Status::newGood();
                try {
                        $page = WikiPage::factory( Title::newMainPage() );
-                       $page->doEdit( wfMsgForContent( 'mainpagetext' ) . "\n\n" .
-                                                       wfMsgForContent( 'mainpagedocfooter' ),
-                                                       '',
-                                                       EDIT_NEW,
-                                                       false,
-                                                       User::newFromName( 'MediaWiki default' ) );
+                       $page->doEdit( wfMessage( 'mainpagetext' )->inContentLanguage()->text() . "\n\n" .
+                                       wfMessage( 'mainpagedocfooter' )->inContentLanguage()->text(),
+                                       '',
+                                       EDIT_NEW,
+                                       false,
+                                       User::newFromName( 'MediaWiki default' )
+                       );
                } catch (MWException $e) {
                        //using raw, because $wgShowExceptionDetails can not be set yet
                        $status->fatal( 'config-install-mainpage-failed', $e->getMessage() );
index 5230c81..f66f15f 100644 (file)
@@ -89,7 +89,7 @@ class MysqlInstaller extends DatabaseInstaller {
                return
                        $this->getTextBox( 'wgDBserver', 'config-db-host', array(), $this->parent->getHelpBox( 'config-db-host-help' ) ) .
                        Html::openElement( 'fieldset' ) .
-                       Html::element( 'legend', array(), wfMsg( 'config-db-wiki-settings' ) ) .
+                       Html::element( 'legend', array(), wfMessage( 'config-db-wiki-settings' )->text() ) .
                        $this->getTextBox( 'wgDBname', 'config-db-name', array( 'dir' => 'ltr' ), $this->parent->getHelpBox( 'config-db-name-help' ) ) .
                        $this->getTextBox( 'wgDBprefix', 'config-db-prefix', array( 'dir' => 'ltr' ), $this->parent->getHelpBox( 'config-db-prefix-help' ) ) .
                        Html::closeElement( 'fieldset' ) .
@@ -351,7 +351,7 @@ class MysqlInstaller extends DatabaseInstaller {
                $s .= Xml::openElement( 'div', array(
                        'id' => 'dbMyisamWarning'
                ));
-               $s .= $this->parent->getWarningBox( wfMsg( 'config-mysql-myisam-dep' ) );
+               $s .= $this->parent->getWarningBox( wfMessage( 'config-mysql-myisam-dep' )->text() );
                $s .= Xml::closeElement( 'div' );
 
                if( $this->getVar( '_MysqlEngine' ) != 'MyISAM' ) {
index e453b01..d93dba6 100644 (file)
@@ -232,9 +232,7 @@ class MysqlUpdater extends DatabaseUpdater {
                if ( in_array( 'binary', $flags ) ) {
                        $this->output( "...$table table has correct $field encoding.\n" );
                } else {
-                       $this->output( "Fixing $field encoding on $table table... " );
-                       $this->applyPatch( $patchFile );
-                       $this->output( "done.\n" );
+                       $this->applyPatch( $patchFile, false, "Fixing $field encoding on $table table" );
                }
        }
 
@@ -271,12 +269,8 @@ class MysqlUpdater extends DatabaseUpdater {
                        return;
                }
 
-               $this->output( 'Creating interwiki table...' );
-               $this->applyPatch( 'patch-interwiki.sql' );
-               $this->output( "done.\n" );
-               $this->output( 'Adding default interwiki definitions...' );
-               $this->applyPatch( "$IP/maintenance/interwiki.sql", true );
-               $this->output( "done.\n" );
+               $this->applyPatch( 'patch-interwiki.sql', false, 'Creating interwiki table' );
+               $this->applyPatch( "$IP/maintenance/interwiki.sql", true, 'Adding default interwiki definitions' );
        }
 
        /**
@@ -292,9 +286,7 @@ class MysqlUpdater extends DatabaseUpdater {
                        return;
                }
 
-               $this->output( "Updating indexes to 20031107..." );
-               $this->applyPatch( 'patch-indexes.sql', true );
-               $this->output( "done.\n" );
+               $this->applyPatch( 'patch-indexes.sql', true, "Updating indexes to 20031107" );
        }
 
        protected function doOldLinksUpdate() {
@@ -309,10 +301,9 @@ class MysqlUpdater extends DatabaseUpdater {
                        return;
                }
 
-               $this->output( "Fixing ancient broken imagelinks table.\n" );
-               $this->output( "NOTE: you will have to run maintenance/refreshLinks.php after this.\n" );
-               $this->applyPatch( 'patch-fix-il_from.sql' );
-               $this->output( "done.\n" );
+               if( $this->applyPatch( 'patch-fix-il_from.sql', false, "Fixing ancient broken imagelinks table." ) ) {
+                       $this->output("NOTE: you will have to run maintenance/refreshLinks.php after this." );
+               }
        }
 
        /**
@@ -534,9 +525,7 @@ class MysqlUpdater extends DatabaseUpdater {
                        return;
                }
 
-               $this->output( "Converting links and brokenlinks tables to pagelinks... " );
-               $this->applyPatch( 'patch-pagelinks.sql' );
-               $this->output( "done.\n" );
+               $this->applyPatch( 'patch-pagelinks.sql', false, "Converting links and brokenlinks tables to pagelinks" );
 
                global $wgContLang;
                foreach ( MWNamespace::getCanonicalNamespaces() as $ns => $name ) {
@@ -572,9 +561,7 @@ class MysqlUpdater extends DatabaseUpdater {
                if ( !$duper->clearDupes() ) {
                        $this->output( "WARNING: This next step will probably fail due to unfixed duplicates...\n" );
                }
-               $this->output( "Adding unique index on user_name... " );
-               $this->applyPatch( 'patch-user_nameindex.sql' );
-               $this->output( "done.\n" );
+               $this->applyPatch( 'patch-user_nameindex.sql', false, "Adding unique index on user_name" );
        }
 
        protected function doUserGroupsUpdate() {
@@ -587,9 +574,7 @@ class MysqlUpdater extends DatabaseUpdater {
                                $this->db->query( "ALTER TABLE $oldug RENAME TO $newug", __METHOD__ );
                                $this->output( "done.\n" );
 
-                               $this->output( "Re-adding fresh user_groups table... " );
-                               $this->applyPatch( 'patch-user_groups.sql' );
-                               $this->output( "done.\n" );
+                               $this->applyPatch( 'patch-user_groups.sql', false, "Re-adding fresh user_groups table" );
 
                                $this->output( "***\n" );
                                $this->output( "*** WARNING: You will need to manually fix up user permissions in the user_groups\n" );
@@ -601,15 +586,11 @@ class MysqlUpdater extends DatabaseUpdater {
                        return;
                }
 
-               $this->output( "Adding user_groups table... " );
-               $this->applyPatch( 'patch-user_groups.sql' );
-               $this->output( "done.\n" );
+               $this->applyPatch( 'patch-user_groups.sql', false, "Adding user_groups table" );
 
                if ( !$this->db->tableExists( 'user_rights', __METHOD__ ) ) {
                        if ( $this->db->fieldExists( 'user', 'user_rights', __METHOD__ ) ) {
-                               $this->output( "Upgrading from a 1.3 or older database? Breaking out user_rights for conversion..." );
-                               $this->db->applyPatch( 'patch-user_rights.sql' );
-                               $this->output( "done.\n" );
+                               $this->db->applyPatch( 'patch-user_rights.sql', false, "Upgrading from a 1.3 or older database? Breaking out user_rights for conversion" );
                        } else {
                                $this->output( "*** WARNING: couldn't locate user_rights table or field for upgrade.\n" );
                                $this->output( "*** You may need to manually configure some sysops by manipulating\n" );
@@ -651,9 +632,7 @@ class MysqlUpdater extends DatabaseUpdater {
                        return;
                }
 
-               $this->output( "Making wl_notificationtimestamp nullable... " );
-               $this->applyPatch( 'patch-watchlist-null.sql' );
-               $this->output( "done.\n" );
+               $this->applyPatch( 'patch-watchlist-null.sql', false, "Making wl_notificationtimestamp nullable" );
        }
 
        /**
@@ -679,8 +658,8 @@ class MysqlUpdater extends DatabaseUpdater {
                        return;
                }
 
-               $this->output( "Creating templatelinks table...\n" );
-               $this->applyPatch( 'patch-templatelinks.sql' );
+               $this->applyPatch( 'patch-templatelinks.sql', false, "Creating templatelinks table" );
+
                $this->output( "Populating...\n" );
                if ( wfGetLB()->getServerCount() > 1 ) {
                        // Slow, replication-friendly update
@@ -721,8 +700,7 @@ class MysqlUpdater extends DatabaseUpdater {
                        !$this->indexHasField( 'templatelinks', 'tl_namespace', 'tl_from' ) ||
                        !$this->indexHasField( 'imagelinks', 'il_to', 'il_from' ) )
                {
-                       $this->applyPatch( 'patch-backlinkindexes.sql' );
-                       $this->output( "...backlinking indices updated\n" );
+                       $this->applyPatch( 'patch-backlinkindexes.sql', false, "Updating backlinking indices" );
                }
        }
 
@@ -737,9 +715,8 @@ class MysqlUpdater extends DatabaseUpdater {
                        return;
                }
 
-               $this->output( "Creating page_restrictions table..." );
-               $this->applyPatch( 'patch-page_restrictions.sql' );
-               $this->applyPatch( 'patch-page_restrictions_sortkey.sql' );
+               $this->applyPatch( 'patch-page_restrictions.sql', false, "Creating page_restrictions table (1/2)" );
+               $this->applyPatch( 'patch-page_restrictions_sortkey.sql', false, "Creating page_restrictions table (2/2)" );
                $this->output( "done.\n" );
 
                $this->output( "Migrating old restrictions to new table...\n" );
@@ -749,8 +726,7 @@ class MysqlUpdater extends DatabaseUpdater {
 
        protected function doCategorylinksIndicesUpdate() {
                if ( !$this->indexHasField( 'categorylinks', 'cl_sortkey', 'cl_from' ) ) {
-                       $this->applyPatch( 'patch-categorylinksindex.sql' );
-                       $this->output( "...categorylinks indices updated\n" );
+                       $this->applyPatch( 'patch-categorylinksindex.sql', false, "Updating categorylinks Indices" );
                }
        }
 
@@ -789,18 +765,14 @@ class MysqlUpdater extends DatabaseUpdater {
                } elseif ( $this->db->fieldExists( 'profiling', 'pf_memory', __METHOD__ ) ) {
                        $this->output( "...profiling table has pf_memory field.\n" );
                } else {
-                       $this->output( "Adding pf_memory field to table profiling..." );
-                       $this->applyPatch( 'patch-profiling-memory.sql' );
-                       $this->output( "done.\n" );
+                       $this->applyPatch( 'patch-profiling-memory.sql', false, "Adding pf_memory field to table profiling" );
                }
        }
 
        protected function doFilearchiveIndicesUpdate() {
                $info = $this->db->indexInfo( 'filearchive', 'fa_user_timestamp', __METHOD__ );
                if ( !$info ) {
-                       $this->output( "Updating filearchive indices..." );
-                       $this->applyPatch( 'patch-filearchive-user-index.sql' );
-                       $this->output( "done.\n" );
+                       $this->applyPatch( 'patch-filearchive-user-index.sql', false, "Updating filearchive indices" );
                }
        }
 
@@ -811,9 +783,7 @@ class MysqlUpdater extends DatabaseUpdater {
                        return;
                }
 
-               $this->output( "Making pl_namespace, tl_namespace and il_to indices UNIQUE... " );
-               $this->applyPatch( 'patch-pl-tl-il-unique.sql' );
-               $this->output( "done.\n" );
+               $this->applyPatch( 'patch-pl-tl-il-unique.sql', false, "Making pl_namespace, tl_namespace and il_to indices UNIQUE" );
        }
 
        protected function renameEuWikiId() {
@@ -822,9 +792,7 @@ class MysqlUpdater extends DatabaseUpdater {
                        return;
                }
 
-               $this->output( "Renaming eu_wiki_id -> eu_local_id... " );
-               $this->applyPatch( 'patch-eu_local_id.sql' );
-               $this->output( "done.\n" );
+               $this->applyPatch( 'patch-eu_local_id.sql', false, "Renaming eu_wiki_id -> eu_local_id" );
        }
 
        protected function doUpdateMimeMinorField() {
@@ -833,9 +801,7 @@ class MysqlUpdater extends DatabaseUpdater {
                        return;
                }
 
-               $this->output( "Altering all *_mime_minor fields to 100 bytes in size ... " );
-               $this->applyPatch( 'patch-mime_minor_length.sql' );
-               $this->output( "done.\n" );
+               $this->applyPatch( 'patch-mime_minor_length.sql', false, "Altering all *_mime_minor fields to 100 bytes in size" );
        }
 
        protected function doClFieldsUpdate() {
@@ -844,9 +810,7 @@ class MysqlUpdater extends DatabaseUpdater {
                        return;
                }
 
-               $this->output( 'Updating categorylinks (again)...' );
-               $this->applyPatch( 'patch-categorylinks-better-collation2.sql' );
-               $this->output( "done.\n" );
+               $this->applyPatch( 'patch-categorylinks-better-collation2.sql', false, 'Updating categorylinks (again)' );
        }
 
        protected function doLangLinksLengthUpdate() {
@@ -855,9 +819,7 @@ class MysqlUpdater extends DatabaseUpdater {
                $row = $this->db->fetchObject( $res );
 
                if ( $row && $row->Type == "varbinary(10)" ) {
-                       $this->output( 'Updating length of ll_lang in langlinks...' );
-                       $this->applyPatch( 'patch-langlinks-ll_lang-20.sql' );
-                       $this->output( "done.\n" );
+                       $this->applyPatch( 'patch-langlinks-ll_lang-20.sql', false, 'Updating length of ll_lang in langlinks' );
                } else {
                        $this->output( "...ll_lang is up-to-date.\n" );
                }
@@ -870,8 +832,6 @@ class MysqlUpdater extends DatabaseUpdater {
                        return;
                }
 
-               $this->output( "Making user_last_timestamp nullable... " );
-               $this->applyPatch( 'patch-user-newtalk-timestamp-null.sql' );
-               $this->output( "done.\n" );
+               $this->applyPatch( 'patch-user-newtalk-timestamp-null.sql', false, "Making user_last_timestamp nullable" );
        }
 }
index 863a625..72ec800 100644 (file)
@@ -62,12 +62,12 @@ class OracleInstaller extends DatabaseInstaller {
                return
                        $this->getTextBox( 'wgDBserver', 'config-db-host-oracle', array(), $this->parent->getHelpBox( 'config-db-host-oracle-help' ) ) .
                        Html::openElement( 'fieldset' ) .
-                       Html::element( 'legend', array(), wfMsg( 'config-db-wiki-settings' ) ) .
+                       Html::element( 'legend', array(), wfMessage( 'config-db-wiki-settings' )->text() ) .
                        $this->getTextBox( 'wgDBprefix', 'config-db-prefix' ) .
                        $this->getTextBox( '_OracleDefTS', 'config-oracle-def-ts' ) .
                        $this->getTextBox( '_OracleTempTS', 'config-oracle-temp-ts', array(), $this->parent->getHelpBox( 'config-db-oracle-help' ) ) .
                        Html::closeElement( 'fieldset' ) .
-                       $this->parent->getWarningBox( wfMsg( 'config-db-account-oracle-warn' ) ).
+                       $this->parent->getWarningBox( wfMessage( 'config-db-account-oracle-warn' )->text() ).
                        $this->getInstallUserBox().
                        $this->getWebUserBox();
        }
index 8a93b45..a741f26 100644 (file)
@@ -83,40 +83,32 @@ class OracleUpdater extends DatabaseUpdater {
         * Oracle inserts NULL, so namespace fields should have a default value
         */
        protected function doNamespaceDefaults() {
-               $this->output( "Altering namespace fields with default value ... " );
                $meta = $this->db->fieldInfo( 'page', 'page_namespace' );
                if ( $meta->defaultValue() != null ) {
-                       $this->output( "defaults seem to present on namespace fields\n" );
                        return;
                }
 
-               $this->applyPatch( 'patch_namespace_defaults.sql', false );
-               $this->output( "ok\n" );
+               $this->applyPatch( 'patch_namespace_defaults.sql', false, "Altering namespace fields with default value" );
        }
 
        /**
         * Uniform FK names + deferrable state
         */
        protected function doFKRenameDeferr() {
-               $this->output( "Altering foreign keys ... " );
                $meta = $this->db->query( 'SELECT COUNT(*) cnt FROM user_constraints WHERE constraint_type = \'R\' AND deferrable = \'DEFERRABLE\'' );
                $row = $meta->fetchRow();
                if ( $row && $row['cnt'] > 0 ) {
-                       $this->output( "at least one FK is deferrable, considering up to date\n" );
                        return;
                }
 
-               $this->applyPatch( 'patch_fk_rename_deferred.sql', false );
-               $this->output( "ok\n" );
+               $this->applyPatch( 'patch_fk_rename_deferred.sql', false, "Altering foreign keys ... " );
        }
 
        /**
         * Recreate functions to 17 schema layout
         */
        protected function doFunctions17() {
-               $this->output( "Recreating functions ... " );
-               $this->applyPatch( 'patch_create_17_functions.sql', false );
-               $this->output( "ok\n" );
+               $this->applyPatch( 'patch_create_17_functions.sql', false, "Recreating functions" );
        }
 
        /**
@@ -124,14 +116,11 @@ class OracleUpdater extends DatabaseUpdater {
         * there are no incremental patches prior to this
         */
        protected function doSchemaUpgrade17() {
-               $this->output( "Updating schema to 17 ... " );
                // check if iwlinks table exists which was added in 1.17
                if ( $this->db->tableExists( 'iwlinks' ) ) {
-                       $this->output( "schema seem to be up to date.\n" );
                        return;
                }
-               $this->applyPatch( 'patch_16_17_schema_changes.sql', false );
-               $this->output( "ok\n" );
+               $this->applyPatch( 'patch_16_17_schema_changes.sql', false, "Updating schema to 17" );
        }
 
        /**
@@ -160,24 +149,19 @@ class OracleUpdater extends DatabaseUpdater {
         * converted to NULL in Oracle
         */
        protected function doRemoveNotNullEmptyDefaults() {
-               $this->output( "Removing not null empty constraints ... " );
                $meta = $this->db->fieldInfo( 'categorylinks' , 'cl_sortkey_prefix' );
                if ( $meta->isNullable() ) {
-                       $this->output( "constraints seem to be removed\n" );
                        return;
                }
-               $this->applyPatch( 'patch_remove_not_null_empty_defs.sql', false );
-               $this->output( "ok\n" );
+               $this->applyPatch( 'patch_remove_not_null_empty_defs.sql', false, "Removing not null empty constraints" );
        }
+
        protected function doRemoveNotNullEmptyDefaults2() {
-               $this->output( "Removing not null empty constraints ... " );
                $meta = $this->db->fieldInfo( 'ipblocks' , 'ipb_by_text' );
                if ( $meta->isNullable() ) {
-                       $this->output( "constraints seem to be removed\n" );
                        return;
                }
-               $this->applyPatch( 'patch_remove_not_null_empty_defs2.sql', false );
-               $this->output( "ok\n" );
+               $this->applyPatch( 'patch_remove_not_null_empty_defs2.sql', false, "Removing not null empty constraints" );
        }
 
        /**
@@ -185,17 +169,13 @@ class OracleUpdater extends DatabaseUpdater {
         * cascading taken in account in the deleting function
         */
        protected function doRecentchangesFK2Cascade() {
-               $this->output( "Altering RECENTCHANGES_FK2 ... " );
-
                $meta = $this->db->query( 'SELECT 1 FROM all_constraints WHERE owner = \''.strtoupper($this->db->getDBname()).'\' AND constraint_name = \''.$this->db->tablePrefix().'RECENTCHANGES_FK2\' AND delete_rule = \'CASCADE\'' );
                $row = $meta->fetchRow();
                if ( $row ) {
-                       $this->output( "FK up to date\n" );
                        return;
                }
 
-               $this->applyPatch( 'patch_recentchanges_fk2_cascade.sql', false );
-               $this->output( "ok\n" );
+               $this->applyPatch( 'patch_recentchanges_fk2_cascade.sql', false, "Altering RECENTCHANGES_FK2" );
        }
 
        /**
@@ -219,9 +199,7 @@ class OracleUpdater extends DatabaseUpdater {
         * rebuilding of the function that duplicates tables for tests
         */
        protected function doRebuildDuplicateFunction() {
-               $this->output( "Rebuilding duplicate function ... " );
-               $this->applyPatch( 'patch_rebuild_dupfunc.sql', false );
-               $this->output( "ok\n" );
+               $this->applyPatch( 'patch_rebuild_dupfunc.sql', false, "Rebuilding duplicate function" );
        }
 
        /**
index 641f6e3..3ac2b3a 100644 (file)
@@ -60,7 +60,7 @@ class PostgresInstaller extends DatabaseInstaller {
                        $this->getTextBox( 'wgDBserver', 'config-db-host', array(), $this->parent->getHelpBox( 'config-db-host-help' ) ) .
                        $this->getTextBox( 'wgDBport', 'config-db-port' ) .
                        Html::openElement( 'fieldset' ) .
-                       Html::element( 'legend', array(), wfMsg( 'config-db-wiki-settings' ) ) .
+                       Html::element( 'legend', array(), wfMessage( 'config-db-wiki-settings' )->text() ) .
                        $this->getTextBox( 'wgDBname', 'config-db-name', array(), $this->parent->getHelpBox( 'config-db-name-help' ) ) .
                        $this->getTextBox( 'wgDBmwschema', 'config-db-schema', array(), $this->parent->getHelpBox( 'config-db-schema-help' ) ) .
                        Html::closeElement( 'fieldset' ) .
index 9aa1a13..499a2d6 100644 (file)
@@ -613,11 +613,11 @@ END;
                if ( $this->db->indexExists( $table, $index ) ) {
                        $this->output( "...index '$index' on table '$table' already exists\n" );
                } else {
-                       $this->output( "Creating index '$index' on table '$table'\n" );
                        if ( preg_match( '/^\(/', $type ) ) {
+                               $this->output( "Creating index '$index' on table '$table'\n" );
                                $this->db->query( "CREATE INDEX $index ON $table $type" );
                        } else {
-                               $this->applyPatch( $type, true );
+                               $this->applyPatch( $type, true, "Creating index '$index' on table '$table'" );
                        }
                }
        }
@@ -647,7 +647,6 @@ END;
 
        protected function convertArchive2() {
                if ( $this->db->tableExists( "archive2" ) ) {
-                       $this->output( "Converting 'archive2' back to normal archive table\n" );
                        if ( $this->db->ruleExists( 'archive', 'archive_insert' ) ) {
                                $this->output( "Dropping rule 'archive_insert'\n" );
                                $this->db->query( 'DROP RULE archive_insert ON archive' );
@@ -656,7 +655,7 @@ END;
                                $this->output( "Dropping rule 'archive_delete'\n" );
                                $this->db->query( 'DROP RULE archive_delete ON archive' );
                        }
-                       $this->applyPatch( 'patch-remove-archive2.sql' );
+                       $this->applyPatch( 'patch-remove-archive2.sql', false, "Converting 'archive2' back to normal archive table" );
                } else {
                        $this->output( "...obsolete table 'archive2' does not exist\n" );
                }
@@ -691,8 +690,7 @@ END;
 
        protected function checkPageDeletedTrigger() {
                if ( !$this->db->triggerExists( 'page', 'page_deleted' ) ) {
-                       $this->output( "Adding function and trigger 'page_deleted' to table 'page'\n" );
-                       $this->applyPatch( 'patch-page_deleted.sql' );
+                       $this->applyPatch( 'patch-page_deleted.sql', false, "Adding function and trigger 'page_deleted' to table 'page'" );
                } else {
                        $this->output( "...table 'page' has 'page_deleted' trigger\n" );
                }
@@ -727,35 +725,30 @@ END;
                if ( $this->fkeyDeltype( 'revision_rev_user_fkey' ) == 'r' ) {
                        $this->output( "...constraint 'revision_rev_user_fkey' is ON DELETE RESTRICT\n" );
                } else {
-                       $this->output( "Changing constraint 'revision_rev_user_fkey' to ON DELETE RESTRICT\n" );
-                       $this->applyPatch( 'patch-revision_rev_user_fkey.sql' );
+                       $this->applyPatch( 'patch-revision_rev_user_fkey.sql', false, "Changing constraint 'revision_rev_user_fkey' to ON DELETE RESTRICT" );
                }
        }
 
        protected function checkIwlPrefix() {
                if ( $this->db->indexExists( 'iwlinks', 'iwl_prefix' ) ) {
-                       $this->output( "Replacing index 'iwl_prefix' with 'iwl_prefix_from_title'...\n" );
-                       $this->applyPatch( 'patch-rename-iwl_prefix.sql' );
+                       $this->applyPatch( 'patch-rename-iwl_prefix.sql', false, "Replacing index 'iwl_prefix' with 'iwl_prefix_from_title'" );
                }
        }
 
        protected function addInterwikiType() {
-               $this->output( "Refreshing add_interwiki()...\n" );
-               $this->applyPatch( 'patch-add_interwiki.sql' );
+               $this->applyPatch( 'patch-add_interwiki.sql', false, "Refreshing add_interwiki()" );
        }
 
        protected function tsearchFixes() {
                # Tweak the page_title tsearch2 trigger to filter out slashes
                # This is create or replace, so harmless to call if not needed
-               $this->output( "Refreshing ts2_page_title()...\n" );
-               $this->applyPatch( 'patch-ts2pagetitle.sql' );
+               $this->applyPatch( 'patch-ts2pagetitle.sql', false, "Refreshing ts2_page_title()" );
 
                # If the server is 8.3 or higher, rewrite the tsearch2 triggers
                # in case they have the old 'default' versions
                # Gather version numbers in case we need them
                if ( $this->db->getServerVersion() >= 8.3 ) {
-                       $this->output( "Rewriting tsearch2 triggers...\n" );
-                       $this->applyPatch( 'patch-tsearch2funcs.sql' );
+                       $this->applyPatch( 'patch-tsearch2funcs.sql', false, "Rewriting tsearch2 triggers" );
                }
        }
 }
index 8146274..9ba9eab 100644 (file)
@@ -101,22 +101,16 @@ class SqliteUpdater extends DatabaseUpdater {
                        $this->output( "...have initial indexes\n" );
                        return;
                }
-               $this->output( "Adding initial indexes..." );
-               $this->applyPatch( 'initial-indexes.sql' );
-               $this->output( "done\n" );
+               $this->applyPatch( 'initial-indexes.sql', false, "Adding initial indexes" );
        }
 
        protected function sqliteSetupSearchindex() {
                $module = DatabaseSqlite::getFulltextSearchModule();
                $fts3tTable = $this->updateRowExists( 'fts3' );
                if ( $fts3tTable &&  !$module ) {
-                       $this->output( '...PHP is missing FTS3 support, downgrading tables...' );
-                       $this->applyPatch( 'searchindex-no-fts.sql' );
-                       $this->output( "done\n" );
+                       $this->applyPatch( 'searchindex-no-fts.sql', false, 'PHP is missing FTS3 support, downgrading tables' );
                } elseif ( !$fts3tTable && $module == 'FTS3' ) {
-                       $this->output( '...adding FTS3 search capabilities...' );
-                       $this->applyPatch( 'searchindex-fts3.sql' );
-                       $this->output( "done\n" );
+                       $this->applyPatch( 'searchindex-fts3.sql', false, "Adding FTS3 search capabilities" );
                } else {
                        $this->output( "...fulltext search table appears to be in order.\n" );
                }
index 4f31195..e1c5c29 100644 (file)
@@ -369,7 +369,7 @@ class WebInstaller extends Installer {
        }
 
        /**
-        * Show an error message in a box. Parameters are like wfMsg().
+        * Show an error message in a box. Parameters are like wfMessage().
         * @param $msg
         */
        public function showError( $msg /*...*/ ) {
@@ -540,7 +540,7 @@ class WebInstaller extends Installer {
                $s .= $this->getPageListItem( 'Restart', true, $currentPageName );
                $s .= "</ul></div>\n"; // end list pane
                $s .= Html::element( 'h2', array(),
-                               wfMsg( 'config-page-' . strtolower( $currentPageName ) ) );
+                       wfMessage( 'config-page-' . strtolower( $currentPageName ) )->text() );
 
                $this->output->addHTMLNoFlush( $s );
        }
@@ -556,7 +556,7 @@ class WebInstaller extends Installer {
         */
        private function getPageListItem( $pageName, $enabled, $currentPageName ) {
                $s = "<li class=\"config-page-list-item\">";
-               $name = wfMsg( 'config-page-' . strtolower( $pageName ) );
+               $name = wfMessage( 'config-page-' . strtolower( $pageName ) )->text();
 
                if ( $enabled ) {
                        $query = array( 'page' => $pageName );
@@ -609,7 +609,7 @@ class WebInstaller extends Installer {
        /**
         * Get HTML for an error box with an icon.
         *
-        * @param $text String: wikitext, get this with wfMsgNoTrans()
+        * @param $text String: wikitext, get this with wfMessage()->plain()
         *
         * @return string
         */
@@ -620,7 +620,7 @@ class WebInstaller extends Installer {
        /**
         * Get HTML for a warning box with an icon.
         *
-        * @param $text String: wikitext, get this with wfMsgNoTrans()
+        * @param $text String: wikitext, get this with wfMessage()->plain()
         *
         * @return string
         */
@@ -631,7 +631,7 @@ class WebInstaller extends Installer {
        /**
         * Get HTML for an info box with an icon.
         *
-        * @param $text String: wikitext, get this with wfMsgNoTrans()
+        * @param $text String: wikitext, get this with wfMessage()->plain()
         * @param $icon String: icon name, file in skins/common/images
         * @param $class String: additional class name to add to the wrapper div
         *
@@ -640,13 +640,13 @@ class WebInstaller extends Installer {
        public function getInfoBox( $text, $icon = false, $class = false ) {
                $text = $this->parse( $text, true );
                $icon = ( $icon == false ) ? '../skins/common/images/info-32.png' : '../skins/common/images/'.$icon;
-               $alt = wfMsg( 'config-information' );
+               $alt = wfMessage( 'config-information' )->text();
                return Html::infoBox( $text, $icon, $alt, $class, false );
        }
 
        /**
         * Get small text indented help for a preceding form field.
-        * Parameters like wfMsg().
+        * Parameters like wfMessage().
         *
         * @param $msg
         * @return string
@@ -659,14 +659,15 @@ class WebInstaller extends Installer {
                $html = $this->parse( $text, true );
 
                return "<div class=\"mw-help-field-container\">\n" .
-                       "<span class=\"mw-help-field-hint\">" . wfMsgHtml( 'config-help' ) . "</span>\n" .
+                       "<span class=\"mw-help-field-hint\">" . wfMessage( 'config-help' )->escaped() .
+                       "</span>\n" .
                        "<span class=\"mw-help-field-data\">" . $html . "</span>\n" .
                        "</div>\n";
        }
 
        /**
         * Output a help box.
-        * @param $msg String key for wfMsg()
+        * @param $msg String key for wfMessage()
         */
        public function showHelpBox( $msg /*, ... */ ) {
                $args = func_get_args();
@@ -713,7 +714,7 @@ class WebInstaller extends Installer {
                if ( strval( $msg ) == '' ) {
                        $labelText = '&#160;';
                } else {
-                       $labelText = wfMsgHtml( $msg );
+                       $labelText = wfMessage( $msg )->escaped();
                }
 
                $attributes = array( 'class' => 'config-label' );
@@ -893,7 +894,7 @@ class WebInstaller extends Installer {
                if( isset( $params['rawtext'] ) ) {
                        $labelText = $params['rawtext'];
                } else {
-                       $labelText = $this->parse( wfMsg( $params['label'] ) );
+                       $labelText = $this->parse( wfMessage( $params['label'] )->text() );
                }
 
                return
@@ -969,7 +970,7 @@ class WebInstaller extends Installer {
                                Xml::radio( $params['controlName'], $value, $checked, $itemAttribs ) .
                                '&#160;' .
                                Xml::tags( 'label', array( 'for' => $id ), $this->parse(
-                                       wfMsgNoTrans( $params['itemLabelPrefix'] . strtolower( $value ) )
+                                       wfMessage( $params['itemLabelPrefix'] . strtolower( $value ) )->plain()
                                ) ) .
                                "</li>\n";
                }
@@ -1077,7 +1078,7 @@ class WebInstaller extends Installer {
                ) );
                $anchor = Html::rawElement( 'a',
                        array( 'href' => $this->getURL( array( 'localsettings' => 1 ) ) ),
-                       $img . ' ' . wfMsgHtml( 'config-download-localsettings' ) );
+                       $img . ' ' . wfMessage( 'config-download-localsettings' )->escaped() );
                return Html::rawElement( 'div', array( 'class' => 'config-download-link' ), $anchor );
        }
 
index 84d115b..9a516a6 100644 (file)
@@ -273,7 +273,7 @@ class WebInstallerOutput {
        </div>
        <div class="portal"><div class="body">
 <?php
-       echo $this->parent->parse( wfMsgNoTrans( 'config-sidebar' ), true );
+       echo $this->parent->parse( wfMessage( 'config-sidebar' )->plain(), true );
 ?>
        </div></div>
 </div>
@@ -301,7 +301,7 @@ class WebInstallerOutput {
 
        public function outputTitle() {
                global $wgVersion;
-               echo htmlspecialchars( wfMsg( 'config-title', $wgVersion ) );
+               echo wfMessage( 'config-title', $wgVersion )->escaped();
        }
 
        public function getJQuery() {
index 917a59a..a7ec2df 100644 (file)
@@ -84,13 +84,13 @@ abstract class WebInstallerPage {
 
                if ( $continue ) {
                        // Fake submit button for enter keypress (bug 26267)
-                       $s .= Xml::submitButton( wfMsg( "config-$continue" ),
+                       $s .= Xml::submitButton( wfMessage( "config-$continue" )->text(),
                                array( 'name' => "enter-$continue", 'style' =>
                                        'visibility:hidden;overflow:hidden;width:1px;margin:0' ) ) . "\n";
                }
 
                if ( $back ) {
-                       $s .= Xml::submitButton( wfMsg( "config-$back" ),
+                       $s .= Xml::submitButton( wfMessage( "config-$back" )->text(),
                                array(
                                        'name' => "submit-$back",
                                        'tabindex' => $this->parent->nextTabIndex()
@@ -98,7 +98,7 @@ abstract class WebInstallerPage {
                }
 
                if ( $continue ) {
-                       $s .= Xml::submitButton( wfMsg( "config-$continue" ),
+                       $s .= Xml::submitButton( wfMessage( "config-$continue" )->text(),
                                array(
                                        'name' => "submit-$continue",
                                        'tabindex' => $this->parent->nextTabIndex(),
@@ -133,7 +133,7 @@ abstract class WebInstallerPage {
         * @return string
         */
        protected function getFieldsetStart( $legend ) {
-               return "\n<fieldset><legend>" . wfMsgHtml( $legend ) . "</legend>\n";
+               return "\n<fieldset><legend>" . wfMessage( $legend )->escaped() . "</legend>\n";
        }
 
        /**
@@ -295,8 +295,8 @@ class WebInstaller_ExistingWiki extends WebInstallerPage {
                        }
                        $this->startForm();
                        $this->addHTML( $this->parent->getInfoBox(
-                               wfMsgNoTrans( 'config-upgrade-key-missing',
-                                       "<pre dir=\"ltr\">\$wgUpgradeKey = '" . $this->getVar( 'wgUpgradeKey' ) . "';</pre>" )
+                               wfMessage( 'config-upgrade-key-missing', "<pre dir=\"ltr\">\$wgUpgradeKey = '" .
+                                       $this->getVar( 'wgUpgradeKey' ) . "';</pre>" )->plain()
                        ) );
                        $this->endForm( 'continue' );
                        return 'output';
@@ -333,7 +333,7 @@ class WebInstaller_ExistingWiki extends WebInstallerPage {
        protected function showKeyForm() {
                $this->startForm();
                $this->addHTML(
-                       $this->parent->getInfoBox( wfMsgNoTrans( 'config-localsettings-upgrade' ) ).
+                       $this->parent->getInfoBox( wfMessage( 'config-localsettings-upgrade' )->plain() ).
                        '<br />' .
                        $this->parent->getTextBox( array(
                                'var' => 'wgUpgradeKey',
@@ -410,13 +410,13 @@ class WebInstaller_Welcome extends WebInstallerPage {
                                return 'continue';
                        }
                }
-               $this->parent->output->addWikiText( wfMsgNoTrans( 'config-welcome' ) );
+               $this->parent->output->addWikiText( wfMessage( 'config-welcome' )->plain() );
                $status = $this->parent->doEnvironmentChecks();
                if ( $status->isGood() ) {
                        $this->parent->output->addHTML( '<span class="success-message">' .
-                               wfMsgHtml( 'config-env-good' ) . '</span>' );
-                       $this->parent->output->addWikiText( wfMsgNoTrans( 'config-copyright',
-                               SpecialVersion::getCopyrightAndAuthorList() ) );
+                               wfMessage( 'config-env-good' )->escaped() . '</span>' );
+                       $this->parent->output->addWikiText( wfMessage( 'config-copyright',
+                               SpecialVersion::getCopyrightAndAuthorList() )->plain() );
                        $this->startForm();
                        $this->endForm();
                } else {
@@ -454,10 +454,10 @@ class WebInstaller_DBConnect extends WebInstallerPage {
                $dbSupport = '';
                foreach( $this->parent->getDBTypes() as $type ) {
                        $link = DatabaseBase::factory( $type )->getSoftwareLink();
-                       $dbSupport .= wfMsgNoTrans( "config-support-$type", $link ) . "\n";
+                       $dbSupport .= wfMessage( "config-support-$type", $link )->plain() . "\n";
                }
                $this->addHTML( $this->parent->getInfoBox(
-                       wfMsg( 'config-support-info', trim( $dbSupport ) ) ) );
+                       wfMessage( 'config-support-info', trim( $dbSupport ) )->text() ) );
 
                foreach ( $this->parent->getVar( '_CompiledDBs' ) as $type ) {
                        $installer = $this->parent->getDBInstaller( $type );
@@ -476,7 +476,7 @@ class WebInstaller_DBConnect extends WebInstallerPage {
                        $settings .=
                                Html::openElement( 'div', array( 'id' => 'DB_wrapper_' . $type,
                                                'class' => 'dbWrapper' ) ) .
-                               Html::element( 'h3', array(), wfMsg( 'config-header-' . $type ) ) .
+                               Html::element( 'h3', array(), wfMessage( 'config-header-' . $type )->text() ) .
                                $installer->getConnectForm() .
                                "</div>\n";
                }
@@ -555,7 +555,7 @@ class WebInstaller_Upgrade extends WebInstallerPage {
 
                $this->startForm();
                $this->addHTML( $this->parent->getInfoBox(
-                       wfMsgNoTrans( 'config-can-upgrade', $GLOBALS['wgVersion'] ) ) );
+                       wfMessage( 'config-can-upgrade', $GLOBALS['wgVersion'] )->plain() ) );
                $this->endForm();
        }
 
@@ -570,11 +570,11 @@ class WebInstaller_Upgrade extends WebInstallerPage {
                $this->parent->disableLinkPopups();
                $this->addHTML(
                        $this->parent->getInfoBox(
-                               wfMsgNoTrans( $msg,
+                               wfMessage( $msg,
                                        $this->getVar( 'wgServer' ) .
                                                $this->getVar( 'wgScriptPath' ) . '/index' .
                                                $this->getVar( 'wgScriptExtension' )
-                               ), 'tick-32.png'
+                               )->plain(), 'tick-32.png'
                        )
                );
                $this->parent->restoreLinkPopups();
@@ -635,7 +635,10 @@ class WebInstaller_Name extends WebInstallerPage {
                // Set wgMetaNamespace to something valid before we show the form.
                // $wgMetaNamespace defaults to $wgSiteName which is 'MediaWiki'
                $metaNS = $this->getVar( 'wgMetaNamespace' );
-               $this->setVar( 'wgMetaNamespace', wfMsgForContent( 'config-ns-other-default' ) );
+               $this->setVar(
+                       'wgMetaNamespace',
+                       wfMessage( 'config-ns-other-default' )->inContentLanguage()->text()
+               );
 
                $this->addHTML(
                        $this->parent->getTextBox( array(
@@ -683,7 +686,7 @@ class WebInstaller_Name extends WebInstallerPage {
                                'help' => $this->parent->getHelpBox( 'config-subscribe-help' )
                        ) ) .
                        $this->getFieldSetEnd() .
-                       $this->parent->getInfoBox( wfMsg( 'config-almost-done' ) ) .
+                       $this->parent->getInfoBox( wfMessage( 'config-almost-done' )->text() ) .
                        $this->parent->getRadioSet( array(
                                'var' => '_SkipOptional',
                                'itemLabelPrefix' => 'config-optional-',
@@ -721,7 +724,7 @@ class WebInstaller_Name extends WebInstallerPage {
                        $name = preg_replace( '/__+/', '_', $name );
                        $name = ucfirst( trim( $name, '_' ) );
                } elseif ( $nsType == 'generic' ) {
-                       $name = wfMsg( 'config-ns-generic' );
+                       $name = wfMessage( 'config-ns-generic' )->text();
                } else { // other
                        $name = $this->getVar( 'wgMetaNamespace' );
                }
@@ -833,7 +836,7 @@ class WebInstaller_Options extends WebInstallerPage {
                                'itemLabelPrefix' => 'config-profile-',
                                'values' => array_keys( $this->parent->rightsProfiles ),
                        ) ) .
-                       $this->parent->getInfoBox( wfMsgNoTrans( 'config-profile-help' ) ) .
+                       $this->parent->getInfoBox( wfMessage( 'config-profile-help' )->plain() ) .
 
                        # Licensing
                        $this->parent->getRadioSet( array(
@@ -1046,7 +1049,7 @@ class WebInstaller_Options extends WebInstallerPage {
                                        'href' => $this->getCCPartnerUrl(),
                                        'onclick' => $expandJs,
                                ),
-                               wfMsg( 'config-cc-again' )
+                               wfMessage( 'config-cc-again' )->text()
                        ) .
                        "</p>\n" .
                        "<script type=\"text/javascript\">\n" .
@@ -1092,7 +1095,7 @@ class WebInstaller_Options extends WebInstallerPage {
                        if ( isset( $entry['text'] ) ) {
                                $this->setVar( 'wgRightsText', $entry['text'] );
                        } else {
-                               $this->setVar( 'wgRightsText', wfMsg( 'config-license-' . $code ) );
+                               $this->setVar( 'wgRightsText', wfMessage( 'config-license-' . $code )->text() );
                        }
                        $this->setVar( 'wgRightsUrl', $entry['url'] );
                        $this->setVar( 'wgRightsIcon', $entry['icon'] );
@@ -1165,14 +1168,14 @@ class WebInstaller_Install extends WebInstallerPage {
                        $this->endForm( $continue, $back );
                } else {
                        $this->startForm();
-                       $this->addHTML( $this->parent->getInfoBox( wfMsgNoTrans( 'config-install-begin' ) ) );
+                       $this->addHTML( $this->parent->getInfoBox( wfMessage( 'config-install-begin' )->plain() ) );
                        $this->endForm();
                }
                return true;
        }
 
        public function startStage( $step ) {
-               $this->addHTML( "<li>" . wfMsgHtml( "config-install-$step" ) . wfMsg( 'ellipsis') );
+               $this->addHTML( "<li>" . wfMessage( "config-install-$step" )->escaped() . wfMessage( 'ellipsis')->escaped() );
                if ( $step == 'extension-tables' ) {
                        $this->startLiveBox();
                }
@@ -1187,7 +1190,7 @@ class WebInstaller_Install extends WebInstallerPage {
                        $this->endLiveBox();
                }
                $msg = $status->isOk() ? 'config-install-step-done' : 'config-install-step-failed';
-               $html = wfMsgHtml( 'word-separator' ) . wfMsgHtml( $msg );
+               $html = wfMessage( 'word-separator' )->escaped() . wfMessage( $msg )->escaped();
                if ( !$status->isOk() ) {
                        $html = "<span class=\"error\">$html</span>";
                }
@@ -1219,13 +1222,13 @@ class WebInstaller_Complete extends WebInstallerPage {
                $this->parent->disableLinkPopups();
                $this->addHTML(
                        $this->parent->getInfoBox(
-                               wfMsgNoTrans( 'config-install-done',
+                               wfMessage( 'config-install-done',
                                        $lsUrl,
                                        $this->getVar( 'wgServer' ) .
                                                $this->getVar( 'wgScriptPath' ) . '/index' .
                                                $this->getVar( 'wgScriptExtension' ),
                                        '<downloadlink/>'
-                               ), 'tick-32.png'
+                               )->plain(), 'tick-32.png'
                        )
                );
                $this->parent->restoreLinkPopups();
@@ -1246,7 +1249,7 @@ class WebInstaller_Restart extends WebInstallerPage {
                }
 
                $this->startForm();
-               $s = $this->parent->getWarningBox( wfMsgNoTrans( 'config-help-restart' ) );
+               $s = $this->parent->getWarningBox( wfMessage( 'config-help-restart' )->plain() );
                $this->addHTML( $s );
                $this->endForm( 'restart' );
        }
@@ -1268,7 +1271,7 @@ abstract class WebInstaller_Document extends WebInstallerPage {
        public function getFileContents() {
                $file = dirname( __FILE__ ) . '/../../' . $this->getFileName();
                if( ! file_exists( $file ) ) {
-                       return wfMsgNoTrans( 'config-nofile', $file );
+                       return wfMessage( 'config-nofile', $file )->plain();
                }
                return file_get_contents( $file );
        }
index b6f54ea..5b86a90 100644 (file)
@@ -141,8 +141,9 @@ class DoubleRedirectJob extends Job {
                $oldUser = $wgUser;
                $wgUser = $this->getUser();
                $article = WikiPage::factory( $this->title );
-               $reason = wfMsgForContent( 'double-redirect-fixed-' . $this->reason,
-                       $this->redirTitle->getPrefixedText(), $newTitle->getPrefixedText() );
+               $reason = wfMessage( 'double-redirect-fixed-' . $this->reason,
+                       $this->redirTitle->getPrefixedText(), $newTitle->getPrefixedText()
+               )->inContentLanguage()->text();
                $article->doEdit( $newText, $reason, EDIT_UPDATE | EDIT_SUPPRESS_RC, false, $this->getUser() );
                $wgUser = $oldUser;
 
@@ -194,7 +195,7 @@ class DoubleRedirectJob extends Job {
         */
        function getUser() {
                if ( !self::$user ) {
-                       self::$user = User::newFromName( wfMsgForContent( 'double-redirect-fixer' ), false );
+                       self::$user = User::newFromName( wfMessage( 'double-redirect-fixer' )->inContentLanguage()->text(), false );
                        # FIXME: newFromName could return false on a badly configured wiki.
                        if ( !self::$user->isLoggedIn() ) {
                                self::$user->addToDatabase();
index 55ccc27..e06f68e 100644 (file)
@@ -82,10 +82,10 @@ class UploadFromUrlJob extends Job {
 
                                if ( $this->params['leaveMessage'] ) {
                                        $this->user->leaveUserMessage(
-                                               wfMsg( 'upload-warning-subj' ),
-                                               wfMsg( 'upload-warning-msg',
+                                               wfMessage( 'upload-warning-subj' )->text(),
+                                               wfMessage( 'upload-warning-msg',
                                                        $key,
-                                                       $this->params['url'] )
+                                                       $this->params['url'] )->text()
                                        );
                                } else {
                                        wfSetupSession( $this->params['sessionId'] );
@@ -119,17 +119,17 @@ class UploadFromUrlJob extends Job {
        protected function leaveMessage( $status ) {
                if ( $this->params['leaveMessage'] ) {
                        if ( $status->isGood() ) {
-                               $this->user->leaveUserMessage( wfMsg( 'upload-success-subj' ),
-                                       wfMsg( 'upload-success-msg',
+                               $this->user->leaveUserMessage( wfMessage( 'upload-success-subj' )->text(),
+                                       wfMessage( 'upload-success-msg',
                                                $this->upload->getTitle()->getText(),
                                                $this->params['url']
-                                       ) );
+                                       )->text() );
                        } else {
-                               $this->user->leaveUserMessage( wfMsg( 'upload-failure-subj' ),
-                                       wfMsg( 'upload-failure-msg',
+                               $this->user->leaveUserMessage( wfMessage( 'upload-failure-subj' )->text(),
+                                       wfMessage( 'upload-failure-msg',
                                                $status->getWikiText(),
                                                $this->params['url']
-                                       ) );
+                                       )->text() );
                        }
                } else {
                        wfSetupSession( $this->params['sessionId'] );
index 8d2219a..7586bb6 100644 (file)
@@ -171,7 +171,7 @@ class LogFormatter {
                        if ( $actionComment == '' ) {
                                $actionComment = $comment;
                        } else {
-                               $actionComment .= wfMsgForContent( 'colon-separator' ) . $comment;
+                               $actionComment .= wfMessage( 'colon-separator' )->inContentLanguage()->text() . $comment;
                        }
                }
 
@@ -191,7 +191,6 @@ class LogFormatter {
                $entry = $this->entry;
                $parameters = $entry->getParameters();
                // @see LogPage::actionText()
-               $msgOpts = array( 'parsemag', 'escape', 'replaceafter', 'content' );
                // Text of title the action is aimed at.
                $target = $entry->getTarget()->getPrefixedText() ;
                $text = null;
@@ -200,11 +199,13 @@ class LogFormatter {
                                switch( $entry->getSubtype() ) {
                                        case 'move':
                                                $movesource =  $parameters['4::target'];
-                                               $text = wfMsgExt( '1movedto2', $msgOpts, $target, $movesource );
+                                               $text = wfMessage( '1movedto2' )
+                                                       ->rawParams( $target, $movesource )->inContentLanguage()->escaped();
                                                break;
                                        case 'move_redir':
                                                $movesource =  $parameters['4::target'];
-                                               $text = wfMsgExt( '1movedto2_redir', $msgOpts, $target, $movesource );
+                                               $text = wfMessage( '1movedto2_redir' )
+                                                       ->rawParams( $target, $movesource )->inContentLanguage()->escaped();
                                                break;
                                        case 'move-noredirect':
                                                break;
@@ -216,10 +217,12 @@ class LogFormatter {
                        case 'delete':
                                switch( $entry->getSubtype() ) {
                                        case 'delete':
-                                               $text = wfMsgExt( 'deletedarticle', $msgOpts, $target );
+                                               $text = wfMessage( 'deletedarticle' )
+                                                       ->rawParams( $target )->inContentLanguage()->escaped();
                                                break;
                                        case 'restore':
-                                               $text = wfMsgExt( 'undeletedarticle', $msgOpts, $target );
+                                               $text = wfMessage( 'undeletedarticle' )
+                                                       ->rawParams( $target )->inContentLanguage()->escaped();
                                                break;
                                        //case 'revision': // Revision deletion
                                        //case 'event': // Log deletion
@@ -233,8 +236,10 @@ class LogFormatter {
                                // Create a diff link to the patrolled revision
                                if ( $entry->getSubtype() === 'patrol' ) {
                                        $diffLink = htmlspecialchars(
-                                               wfMsgForContent( 'patrol-log-diff', $parameters['4::curid'] ) );
-                                       $text = wfMsgForContent( 'patrol-log-line', $diffLink, "[[$target]]", "" );
+                                               wfMessage( 'patrol-log-diff', $parameters['4::curid'] )
+                                                       ->inContentLanguage()->text() );
+                                       $text = wfMessage( 'patrol-log-line', $diffLink, "[[$target]]", "" )
+                                               ->inContentLanguage()->text();
                                } else {
                                        // broken??
                                }
@@ -243,14 +248,17 @@ class LogFormatter {
                        case 'protect':
                                switch( $entry->getSubtype() ) {
                                case 'protect':
-                                       $text = wfMsgExt( 'protectedarticle', $msgOpts, $target . ' ' . $parameters[0] );
-                                               break;
+                                       $text = wfMessage( 'protectedarticle' )
+                                               ->rawParams( $target . ' ' . $parameters[0] )->inContentLanguage()->escaped();
+                                       break;
                                case 'unprotect':
-                                       $text = wfMsgExt( 'unprotectedarticle', $msgOpts, $target );
-                                               break;
+                                       $text = wfMessage( 'unprotectedarticle' )
+                                               ->rawParams( $target )->inContentLanguage()->escaped();
+                                       break;
                                case 'modify':
-                                       $text = wfMsgExt( 'modifiedarticleprotection', $msgOpts, $target . ' ' . $parameters[0] );
-                                               break;
+                                       $text = wfMessage( 'modifiedarticleprotection' )
+                                               ->rawParams( $target . ' ' . $parameters[0] )->inContentLanguage()->escaped();
+                                       break;
                                }
                                break;
 
@@ -258,13 +266,16 @@ class LogFormatter {
                                switch( $entry->getSubtype() ) {
                                        case 'newusers':
                                        case 'create':
-                                               $text = wfMsgExt( 'newuserlog-create-entry', $msgOpts /* no params */ );
+                                               $text = wfMessage( 'newuserlog-create-entry' )
+                                                       ->inContentLanguage()->escaped();
                                                break;
                                        case 'create2':
-                                               $text = wfMsgExt( 'newuserlog-create2-entry', $msgOpts, $target );
+                                               $text = wfMessage( 'newuserlog-create2-entry' )
+                                                       ->rawParams( $target )->inContentLanguage()->escaped();
                                                break;
                                        case 'autocreate':
-                                               $text = wfMsgExt( 'newuserlog-autocreate-entry', $msgOpts /* no params */ );
+                                               $text = wfMessage( 'newuserlog-autocreate-entry' )
+                                                       ->inContentLanguage()->escaped();
                                                break;
                                }
                                break;
@@ -272,10 +283,12 @@ class LogFormatter {
                        case 'upload':
                                switch( $entry->getSubtype() ) {
                                        case 'upload':
-                                               $text = wfMsgExt( 'uploadedimage', $msgOpts, $target );
+                                               $text = wfMessage( 'uploadedimage' )
+                                                       ->rawParams( $target )->inContentLanguage()->escaped();
                                                break;
                                        case 'overwrite':
-                                               $text = wfMsgExt( 'overwroteimage', $msgOpts, $target );
+                                               $text = wfMessage( 'overwroteimage' )
+                                                       ->rawParams( $target )->inContentLanguage()->escaped();
                                                break;
                                }
                                break;
index 2521ae8..d96a5ea 100644 (file)
@@ -133,7 +133,8 @@ class LogPage {
                        if ( $rcComment == '' ) {
                                $rcComment = $this->comment;
                        } else {
-                               $rcComment .= wfMsgForContent( 'colon-separator' ) . $this->comment;
+                               $rcComment .= wfMessage( 'colon-separator' )->inContentLanguage()->text() .
+                                       $this->comment;
                        }
                }
 
@@ -152,7 +153,8 @@ class LogPage {
                        if ( $rcComment == '' ) {
                                $rcComment = $this->comment;
                        } else {
-                               $rcComment .= wfMsgForContent( 'colon-separator' ) . $this->comment;
+                               $rcComment .= wfMessage( 'colon-separator' )->inContentLanguage()->text() .
+                                       $this->comment;
                        }
                }
 
@@ -197,7 +199,7 @@ class LogPage {
                global $wgLogNames;
 
                if( isset( $wgLogNames[$type] ) ) {
-                       return str_replace( '_', ' ', wfMsg( $wgLogNames[$type] ) );
+                       return str_replace( '_', ' ', wfMessage( $wgLogNames[$type] )->text() );
                } else {
                        // Bogus log types? Perhaps an extension was removed.
                        return $type;
@@ -214,7 +216,7 @@ class LogPage {
         */
        public static function logHeader( $type ) {
                global $wgLogHeaders;
-               return wfMsgExt( $wgLogHeaders[$type], array( 'parseinline' ) );
+               return wfMessage( $wgLogHeaders[$type] )->parse();
        }
 
        /**
@@ -247,12 +249,12 @@ class LogPage {
 
                if( isset( $wgLogActions[$key] ) ) {
                        if( is_null( $title ) ) {
-                               $rv = wfMsgExt( $wgLogActions[$key], array( 'parsemag', 'escape', 'language' => $langObj ) );
+                               $rv = wfMessage( $wgLogActions[$key] )->inLanguage( $langObj )->escaped();
                        } else {
                                $titleLink = self::getTitleLink( $type, $langObjOrNull, $title, $params );
 
                                if( preg_match( '/^rights\/(rights|autopromote)/', $key ) ) {
-                                       $rightsnone = wfMsgExt( 'rightsnone', array( 'parsemag', 'language' => $langObj ) );
+                                       $rightsnone = wfMessage( 'rightsnone' )->inLanguage( $langObj )->text();
 
                                        if( $skin ) {
                                                $username = $title->getText();
@@ -275,7 +277,7 @@ class LogPage {
                                }
 
                                if( count( $params ) == 0 ) {
-                                       $rv = wfMsgExt( $wgLogActions[$key], array( 'parsemag', 'escape', 'replaceafter', 'language' => $langObj ), $titleLink );
+                                       $rv = wfMessage( $wgLogActions[$key] )->rawParams( $titleLink )->inLanguage( $langObj )->escaped();
                                } else {
                                        $details = '';
                                        array_unshift( $params, $titleLink );
@@ -302,11 +304,11 @@ class LogPage {
 
                                                // Cascading flag...
                                                if( $params[2] ) {
-                                                       $details .= ' [' . wfMsgExt( 'protect-summary-cascade', array( 'parsemag', 'language' => $langObj ) ) . ']';
+                                                       $details .= ' [' . wfMessage( 'protect-summary-cascade' )->inLanguage( $langObj )->text() . ']';
                                                }
                                        }
 
-                                       $rv = wfMsgExt( $wgLogActions[$key], array( 'parsemag', 'escape', 'replaceafter', 'language' => $langObj ), $params ) . $details;
+                                       $rv = wfMessage( $wgLogActions[$key] )->rawParams( $params )->inLanguage( $langObj )->escaped() . $details;
                                }
                        }
                } else {
@@ -442,7 +444,7 @@ class LogPage {
         * @param $action String: one of '', 'block', 'protect', 'rights', 'delete', 'upload', 'move', 'move_redir'
         * @param $target Title object
         * @param $comment String: description associated
-        * @param $params Array: parameters passed later to wfMsg.* functions
+        * @param $params Array: parameters passed later to wfMessage function
         * @param $doer User object: the user doing the action
         *
         * @return int log_id of the inserted log entry
index 0f30c6f..8a4b943 100644 (file)
@@ -524,7 +524,7 @@ class BitmapHandler extends ImageHandler {
                if ( !isset( $typemap[$params['mimeType']] ) ) {
                        $err = 'Image type not supported';
                        wfDebug( "$err\n" );
-                       $errMsg = wfMsg( 'thumbnail_image-type' );
+                       $errMsg = wfMessage( 'thumbnail_image-type' )->text();
                        return $this->getMediaTransformError( $params, $errMsg );
                }
                list( $loader, $colorStyle, $saveType ) = $typemap[$params['mimeType']];
@@ -532,14 +532,14 @@ class BitmapHandler extends ImageHandler {
                if ( !function_exists( $loader ) ) {
                        $err = "Incomplete GD library configuration: missing function $loader";
                        wfDebug( "$err\n" );
-                       $errMsg = wfMsg( 'thumbnail_gd-library', $loader );
+                       $errMsg = wfMessage( 'thumbnail_gd-library', $loader )->text();
                        return $this->getMediaTransformError( $params, $errMsg );
                }
 
                if ( !file_exists( $params['srcPath'] ) ) {
                        $err = "File seems to be missing: {$params['srcPath']}";
                        wfDebug( "$err\n" );
-                       $errMsg = wfMsg( 'thumbnail_image-missing', $params['srcPath'] );
+                       $errMsg = wfMessage( 'thumbnail_image-missing', $params['srcPath'] )->text();
                        return $this->getMediaTransformError( $params, $errMsg );
                }
 
index ed38bd1..ea4888a 100644 (file)
@@ -138,7 +138,7 @@ class DjVuHandler extends ImageHandler {
                        $width = isset( $params['width'] ) ? $params['width'] : 0;
                        $height = isset( $params['height'] ) ? $params['height'] : 0;
                        return new MediaTransformError( 'thumbnail_error', $width, $height,
-                               wfMsg( 'djvu_no_xml' ) );
+                               wfMessage( 'djvu_no_xml' )->text() );
                }
 
                if ( !$this->normaliseParams( $image, $params ) ) {
@@ -146,10 +146,14 @@ class DjVuHandler extends ImageHandler {
                }
                $width = $params['width'];
                $height = $params['height'];
-               $srcPath = $image->getLocalRefPath();
                $page = $params['page'];
                if ( $page > $this->pageCount( $image ) ) {
-                       return new MediaTransformError( 'thumbnail_error', $width, $height, wfMsg( 'djvu_page_error' ) );
+                       return new MediaTransformError(
+                               'thumbnail_error',
+                               $width,
+                               $height,
+                               wfMessage( 'djvu_page_error' )->text()
+                       );
                }
 
                if ( $flags & self::TRANSFORM_LATER ) {
@@ -157,9 +161,15 @@ class DjVuHandler extends ImageHandler {
                }
 
                if ( !wfMkdirParents( dirname( $dstPath ), null, __METHOD__ ) ) {
-                       return new MediaTransformError( 'thumbnail_error', $width, $height, wfMsg( 'thumbnail_dest_directory' ) );
+                       return new MediaTransformError(
+                               'thumbnail_error',
+                               $width,
+                               $height,
+                               wfMessage( 'thumbnail_dest_directory' )->text()
+                       );
                }
 
+               $srcPath = $image->getLocalRefPath();
                # Use a subshell (brackets) to aggregate stderr from both pipeline commands
                # before redirecting it to the overall stdout. This works in both Linux and Windows XP.
                $cmd = '(' . wfEscapeShellArg( $wgDjvuRenderer ) . " -format=ppm -page={$page}" .
index f5dc020..784a601 100644 (file)
@@ -370,6 +370,12 @@ class Exif {
                $this->exifGPStoNumber( 'GPSDestLongitude' );
 
                if ( isset( $this->mFilteredExifData['GPSAltitude'] ) && isset( $this->mFilteredExifData['GPSAltitudeRef'] ) ) {
+
+                       // We know altitude data is a <num>/<denom> from the validation functions ran earlier.
+                       // But multiplying such a string by -1 doesn't work well, so convert.
+                       list( $num, $denom ) = explode( '/', $this->mFilteredExifData['GPSAltitude'] );
+                       $this->mFilteredExifData['GPSAltitude'] = $num / $denom;
+
                        if ( $this->mFilteredExifData['GPSAltitudeRef'] === "\1" ) {
                                $this->mFilteredExifData['GPSAltitude'] *= - 1;
                        }
index 0ae9a05..35305d1 100644 (file)
@@ -233,7 +233,7 @@ class FormatMetadata {
                                case 'dc-date':
                                case 'DateTimeMetadata':
                                        if ( $val == '0000:00:00 00:00:00' || $val == '    :  :     :  :  ' ) {
-                                               $val = wfMsg( 'exif-unknowndate' );
+                                               $val = wfMessage( 'exif-unknowndate' )->text();
                                        } elseif ( preg_match( '/^(?:\d{4}):(?:\d\d):(?:\d\d) (?:\d\d):(?:\d\d):(?:\d\d)$/D', $val ) ) {
                                                // Full date.
                                                $time = wfTimestamp( TS_MW, $val );
@@ -591,7 +591,7 @@ class FormatMetadata {
                                case 'Software':
                                        if ( is_array( $val ) ) {
                                                //if its a software, version array.
-                                               $val = wfMsg( 'exif-software-version-value', $val[0], $val[1] );
+                                               $val = wfMessage( 'exif-software-version-value', $val[0], $val[1] )->text();
                                        } else {
                                                $val = self::msg( $tag, '', $val );
                                        }
@@ -599,8 +599,8 @@ class FormatMetadata {
 
                                case 'ExposureTime':
                                        // Show the pretty fraction as well as decimal version
-                                       $val = wfMsg( 'exif-exposuretime-format',
-                                               self::formatFraction( $val ), self::formatNum( $val ) );
+                                       $val = wfMessage( 'exif-exposuretime-format',
+                                               self::formatFraction( $val ), self::formatNum( $val ) )->text();
                                        break;
                                case 'ISOSpeedRatings':
                                        // If its = 65535 that means its at the
@@ -613,13 +613,13 @@ class FormatMetadata {
                                        }
                                        break;
                                case 'FNumber':
-                                       $val = wfMsg( 'exif-fnumber-format',
-                                               self::formatNum( $val ) );
+                                       $val = wfMessage( 'exif-fnumber-format',
+                                               self::formatNum( $val ) )->text();
                                        break;
 
                                case 'FocalLength': case 'FocalLengthIn35mmFilm':
-                                       $val = wfMsg( 'exif-focallength-format',
-                                               self::formatNum( $val ) );
+                                       $val = wfMessage( 'exif-focallength-format',
+                                               self::formatNum( $val ) )->text();
                                        break;
 
                                case 'MaxApertureValue':
@@ -633,10 +633,10 @@ class FormatMetadata {
                                        if ( is_numeric( $val ) ) {
                                                $fNumber = pow( 2, $val / 2 );
                                                if ( $fNumber !== false ) {
-                                                       $val = wfMsg( 'exif-maxaperturevalue-value',
+                                                       $val = wfMessage( 'exif-maxaperturevalue-value',
                                                                self::formatNum( $val ),
                                                                self::formatNum( $fNumber, 2 )
-                                                       );
+                                                       )->text();
                                                }
                                        }
                                        break;
@@ -696,7 +696,7 @@ class FormatMetadata {
                                case 'PixelYDimension':
                                case 'ImageWidth':
                                case 'ImageLength':
-                                       $val = self::formatNum( $val ) . ' ' . wfMsg( 'unit-pixel' );
+                                       $val = self::formatNum( $val ) . ' ' . wfMessage( 'unit-pixel' )->text();
                                        break;
 
                                // Do not transform fields with pure text.
@@ -958,12 +958,12 @@ class FormatMetadata {
 
                if ( $lang === false ) {
                        if ( $noHtml ) {
-                               return wfMsg( 'metadata-langitem-default',
-                                       $wrappedValue ) . "\n\n";
+                               return wfMessage( 'metadata-langitem-default',
+                                       $wrappedValue )->text() . "\n\n";
                        } /* else */
                        return '<li class="mw-metadata-lang-default">'
-                               . wfMsg( 'metadata-langitem-default',
-                                       $wrappedValue )
+                               . wfMessage( 'metadata-langitem-default',
+                                       $wrappedValue )->text()
                                . "</li>\n";
                }
 
@@ -981,8 +981,8 @@ class FormatMetadata {
                // else we have a language specified
 
                if ( $noHtml ) {
-                       return '*' . wfMsg( 'metadata-langitem',
-                               $wrappedValue, $langName, $lang );
+                       return '*' . wfMessage( 'metadata-langitem',
+                               $wrappedValue, $langName, $lang )->text();
                } /* else: */
 
                $item = '<li class="mw-metadata-lang-code-'
@@ -991,8 +991,8 @@ class FormatMetadata {
                        $item .= ' mw-metadata-lang-default';
                }
                $item .= '" lang="' . $lang . '">';
-               $item .= wfMsg( 'metadata-langitem',
-                       $wrappedValue, $langName, $lang );
+               $item .= wfMessage( 'metadata-langitem',
+                       $wrappedValue, $langName, $lang )->text();
                $item .= "</li>\n";
                return $item;
        }
@@ -1006,14 +1006,14 @@ class FormatMetadata {
         * @param $val String: the value of the tag
         * @param $arg String: an argument to pass ($1)
         * @param $arg2 String: a 2nd argument to pass ($2)
-        * @return string A wfMsg of "exif-$tag-$val" in lower case
+        * @return string A wfMessage of "exif-$tag-$val" in lower case
         */
        static function msg( $tag, $val, $arg = null, $arg2 = null ) {
                global $wgContLang;
 
                if ($val === '')
                        $val = 'value';
-               return wfMsg( $wgContLang->lc( "exif-$tag-$val" ), $arg, $arg2 );
+               return wfMessage( $wgContLang->lc( "exif-$tag-$val" ), $arg, $arg2 )->text();
        }
 
        /**
@@ -1214,7 +1214,7 @@ class FormatMetadata {
                $min = self::formatNum( $min );
                $sec = self::formatNum( $sec );
 
-               return wfMsg( 'exif-coordinate-format', $deg, $min, $sec, $ref, $coord );
+               return wfMessage( 'exif-coordinate-format', $deg, $min, $sec, $ref, $coord )->text();
        }
 
        /**
@@ -1335,9 +1335,9 @@ class FormatMetadata {
                                        . htmlspecialchars( $vals['CiUrlWork'] )
                                        . '</span>';
                        }
-                       return wfMsg( 'exif-contact-value', $email, $url,
+                       return wfMessage( 'exif-contact-value', $email, $url,
                                $street, $city, $region, $postal, $country,
-                               $tel );
+                               $tel )->text();
                }
        }
 }
index 2ec523d..84b9b8c 100644 (file)
@@ -93,6 +93,17 @@ class GIFHandler extends BitmapHandler {
                return false;
        }
 
+       /**
+        * We cannot animate thumbnails that are bigger than a particular size
+        * @param File $file
+        * @return bool
+        */
+       function canAnimateThumbnail( $file ) {
+               global $wgMaxAnimatedGifArea;
+               $answer = $this->getImageArea( $file ) <= $wgMaxAnimatedGifArea;
+               return $answer;
+       }
+
        function getMetadataType( $image ) {
                return 'parsed-gif';
        }
@@ -142,11 +153,11 @@ class GIFHandler extends BitmapHandler {
                $info[] = $original;
                
                if ( $metadata['looped'] ) {
-                       $info[] = wfMsgExt( 'file-info-gif-looped', 'parseinline' );
+                       $info[] = wfMessage( 'file-info-gif-looped' )->parse();
                }
                
                if ( $metadata['frameCount'] > 1 ) {
-                       $info[] = wfMsgExt( 'file-info-gif-frames', 'parseinline', $metadata['frameCount'] );
+                       $info[] = wfMessage( 'file-info-gif-frames' )->numParams( $metadata['frameCount'] )->parse();
                }
                
                if ( $metadata['duration'] ) {
index 69f51be..65757c9 100644 (file)
@@ -204,10 +204,6 @@ abstract class ImageHandler extends MediaHandler {
                return $gis;
        }
 
-       function isAnimatedImage( $image ) {
-               return false;
-       }
-
        /**
         * @param $file File
         * @return string
index e883b7f..965099f 100644 (file)
@@ -269,6 +269,19 @@ abstract class MediaHandler {
         * @return bool
         */
        function isVectorized( $file ) { return false; }
+       /**
+        * The material is an image, and is animated.
+        * In particular, video material need not return true.
+        * @note Before 1.20, this was a method of ImageHandler only
+        * @return bool
+        */
+       function isAnimatedImage( $file ) { return false; }
+       /**
+        * If the material is animated, we can animate the thumbnail
+        * @since 1.20
+        * @return bool If material is not animated, handler may return any value.
+        */
+       function canAnimateThumbnail( $file ) { return true; }
        /**
         * False if the handler is disabled for all files
         * @return bool
@@ -372,7 +385,7 @@ abstract class MediaHandler {
         */
        function visibleMetadataFields() {
                $fields = array();
-               $lines = explode( "\n", wfMsgForContent( 'metadata-fields' ) );
+               $lines = explode( "\n", wfMessage( 'metadata-fields' )->inContentLanguage()->text() );
                foreach( $lines as $line ) {
                        $matches = array();
                        if( preg_match( '/^\\*\s*(.*?)\s*$/', $line, $matches ) ) {
index 00d12bb..cee5bbf 100644 (file)
@@ -157,7 +157,14 @@ abstract class MediaTransformOutput {
         * @return Bool success
         */
        public function streamFile( $headers = array() ) {
-               return $this->path && StreamFile::stream( $this->getLocalCopyPath(), $headers );
+               if ( !$this->path ) {
+                       return false;
+               } elseif ( FileBackend::isStoragePath( $this->path ) ) {
+                       $be = $this->file->getRepo()->getBackend();
+                       return $be->streamFile( array( 'src' => $this->path, 'headers' => $headers ) )->isOK();
+               } else { // FS-file
+                       return StreamFile::stream( $this->getLocalCopyPath(), $headers );
+               }
        }
 
        /**
@@ -359,6 +366,6 @@ class TransformParameterError extends MediaTransformError {
                parent::__construct( 'thumbnail_error',
                        max( isset( $params['width']  ) ? $params['width']  : 0, 120 ),
                        max( isset( $params['height'] ) ? $params['height'] : 0, 120 ),
-                       wfMsg( 'thumbnail_invalid_params' ) );
+                       wfMessage( 'thumbnail_invalid_params' )->text() );
        }
 }
index afc7d6a..1b329e5 100644 (file)
@@ -80,6 +80,14 @@ class PNGHandler extends BitmapHandler {
                }
                return false;
        }
+       /**
+        * We do not support making APNG thumbnails, so always false
+        * @param $image File
+        * @return bool false
+        */
+       function canAnimateThumbnail( $image ) {
+               return false;
+       }
        
        function getMetadataType( $image ) {
                return 'parsed-png';
@@ -128,13 +136,13 @@ class PNGHandler extends BitmapHandler {
                $info[] = $original;
                
                if ( $metadata['loopCount'] == 0 ) {
-                       $info[] = wfMsgExt( 'file-info-png-looped', 'parseinline' );
+                       $info[] = wfMessage( 'file-info-png-looped' )->parse();
                } elseif ( $metadata['loopCount'] > 1 ) {
-                       $info[] = wfMsgExt( 'file-info-png-repeat', 'parseinline', $metadata['loopCount'] );
+                       $info[] = wfMessage( 'file-info-png-repeat' )->numParams( $metadata['loopCount'] )->parse();
                }
                
                if ( $metadata['frameCount'] > 0 ) {
-                       $info[] = wfMsgExt( 'file-info-png-frames', 'parseinline', $metadata['frameCount'] );
+                       $info[] = wfMessage( 'file-info-png-frames' )->numParams( $metadata['frameCount'] )->parse();
                }
                
                if ( $metadata['duration'] ) {
index 9c8fc5e..a5ce1fa 100644 (file)
@@ -63,6 +63,13 @@ class SvgHandler extends ImageHandler {
                return false;
        }
 
+       /**
+        * We do not support making animated svg thumbnails
+        */
+       function canAnimateThumb( $file ) {
+               return false;
+       }
+
        /**
         * @param $image File
         * @param  $params
@@ -108,7 +115,6 @@ class SvgHandler extends ImageHandler {
                $clientHeight = $params['height'];
                $physicalWidth = $params['physicalWidth'];
                $physicalHeight = $params['physicalHeight'];
-               $srcPath = $image->getLocalRefPath();
 
                if ( $flags & self::TRANSFORM_LATER ) {
                        return new ThumbnailImage( $image, $dstUrl, $clientWidth, $clientHeight, $dstPath );
@@ -116,9 +122,10 @@ class SvgHandler extends ImageHandler {
 
                if ( !wfMkdirParents( dirname( $dstPath ), null, __METHOD__ ) ) {
                        return new MediaTransformError( 'thumbnail_error', $clientWidth, $clientHeight,
-                               wfMsg( 'thumbnail_dest_directory' ) );
+                               wfMessage( 'thumbnail_dest_directory' )->text() );
                }
 
+               $srcPath = $image->getLocalRefPath();
                $status = $this->rasterize( $srcPath, $dstPath, $physicalWidth, $physicalHeight );
                if( $status === true ) {
                        return new ThumbnailImage( $image, $dstUrl, $clientWidth, $clientHeight, $dstPath );
@@ -214,15 +221,30 @@ class SvgHandler extends ImageHandler {
        }
 
        /**
+        * Subtitle for the image. Different from the base
+        * class so it can be denoted that SVG's have
+        * a "nominal" resolution, and not a fixed one,
+        * as well as so animation can be denoted.
+        *
         * @param $file File
         * @return string
         */
        function getLongDesc( $file ) {
                global $wgLang;
-               return wfMsgExt( 'svg-long-desc', 'parseinline',
-                       $wgLang->formatNum( $file->getWidth() ),
-                       $wgLang->formatNum( $file->getHeight() ),
-                       $wgLang->formatSize( $file->getSize() ) );
+               $size = $wgLang->formatSize( $file->getSize() );
+
+               if ( $this->isAnimatedImage( $file ) ) {
+                       $msg = wfMessage( 'svg-long-desc-animated' );
+               } else {
+                       $msg = wfMessage( 'svg-long-desc' );
+               }
+
+               $msg->numParams(
+                       $file->getWidth(),
+                       $file->getHeight()
+               );
+               $msg->Params( $size );
+               return $msg->parse();
        }
 
        function getMetadata( $file, $filename ) {
@@ -257,7 +279,7 @@ class SvgHandler extends ImageHandler {
        }
 
        function visibleMetadataFields() {
-               $fields = array( 'title', 'description', 'animated' );
+               $fields = array( 'objectname', 'imagedescription' );
                return $fields;
        }
 
@@ -278,8 +300,6 @@ class SvgHandler extends ImageHandler {
                if ( !$metadata ) {
                        return false;
                }
-               unset( $metadata['version'] );
-               unset( $metadata['metadata'] ); /* non-formatted XML */
 
                /* TODO: add a formatter
                $format = new FormatSVG( $metadata );
@@ -290,8 +310,9 @@ class SvgHandler extends ImageHandler {
                $visibleFields = $this->visibleMetadataFields();
 
                // Rename fields to be compatible with exif, so that
-               // the labels for these fields work.
-               $conversion = array( 'width' => 'imagewidth',
+               // the labels for these fields work and reuse existing messages.
+               $conversion = array(
+                       'width' => 'imagewidth',
                        'height' => 'imagelength',
                        'description' => 'imagedescription',
                        'title' => 'objectname',
@@ -300,6 +321,9 @@ class SvgHandler extends ImageHandler {
                        $tag = strtolower( $name );
                        if ( isset( $conversion[$tag] ) ) {
                                $tag = $conversion[$tag];
+                       } else {
+                               // Do not output other metadata not in list
+                               continue;
                        }
                        self::addMeta( $result,
                                in_array( $tag, $visibleFields ) ? 'visible' : 'collapsed',
index 83f531c..89e1e0c 100644 (file)
@@ -139,6 +139,11 @@ class SVGReader {
                                $this->readField( $tag, 'description' );
                        } elseif ( $isSVG && $tag == 'metadata' && $type == XmlReader::ELEMENT ) {
                                $this->readXml( $tag, 'metadata' );
+                       } elseif ( $isSVG && $tag == 'script' ) {
+                               // We normally do not allow scripted svgs.
+                               // However its possible to configure MW to let them
+                               // in, and such files should be considered animated.
+                               $this->metadata['animated'] = true;
                        } elseif ( $tag !== '#text' ) {
                                $this->debug( "Unhandled top-level XML tag $tag" );
 
@@ -219,6 +224,11 @@ class SVGReader {
                                break;
                        } elseif ( $this->reader->namespaceURI == self::NS_SVG && $this->reader->nodeType == XmlReader::ELEMENT ) {
                                switch( $this->reader->localName ) {
+                                       case 'script':
+                                               // Normally we disallow files with
+                                               // <script>, but its possible
+                                               // to configure MW to disable
+                                               // such checks.
                                        case 'animate':
                                        case 'set':
                                        case 'animateMotion':
index 75fdd96..36660b3 100644 (file)
@@ -213,10 +213,16 @@ class XMPReader {
                unset( $data['xmp-special'] );
 
                // Convert GPSAltitude to negative if below sea level.
-               if ( isset( $data['xmp-exif']['GPSAltitudeRef'] ) ) {
-                       if ( $data['xmp-exif']['GPSAltitudeRef'] == '1'
-                               && isset( $data['xmp-exif']['GPSAltitude'] )
-                       ) {
+               if ( isset( $data['xmp-exif']['GPSAltitudeRef'] )
+                       && isset( $data['xmp-exif']['GPSAltitude'] )
+               ) {
+
+                       // Must convert to a real before multiplying by -1
+                       // XMPValidate guarantees there will always be a '/' in this value.
+                       list( $nom, $denom ) = explode( '/', $data['xmp-exif']['GPSAltitude'] );
+                       $data['xmp-exif']['GPSAltitude'] = $nom / $denom;
+
+                       if ( $data['xmp-exif']['GPSAltitudeRef'] == '1' ) {
                                $data['xmp-exif']['GPSAltitude'] *= -1;
                        }
                        unset( $data['xmp-exif']['GPSAltitudeRef'] );
index 5ad7020..a3d2d89 100644 (file)
@@ -27,7 +27,6 @@
  * @ingroup Cache
  */
 class SqlBagOStuff extends BagOStuff {
-
        /**
         * @var LoadBalancer
         */
@@ -43,6 +42,9 @@ class SqlBagOStuff extends BagOStuff {
        var $shards = 1;
        var $tableName = 'objectcache';
 
+       protected $connFailureTime = 0; // UNIX timestamp
+       protected $connFailureError; // exception
+
        /**
         * Constructor. Parameters are:
         *   - server:   A server info structure in the format required by each
@@ -88,6 +90,12 @@ class SqlBagOStuff extends BagOStuff {
         */
        protected function getDB() {
                global $wgDebugDBTransactions;
+
+               # Don't keep timing out trying to connect for each call if the DB is down
+               if ( $this->connFailureError && ( time() - $this->connFailureTime ) < 60 ) {
+                       throw $this->connFailureError;
+               }
+
                if ( !isset( $this->db ) ) {
                        # If server connection info was given, use that
                        if ( $this->serverInfo ) {
@@ -107,7 +115,7 @@ class SqlBagOStuff extends BagOStuff {
                                if ( wfGetDB( DB_MASTER )->getType() == 'mysql' ) {
                                        $this->lb = wfGetLBFactory()->newMainLB();
                                        $this->db = $this->lb->getConnection( DB_MASTER );
-                                       $this->db->clearFlag( DBO_TRX );
+                                       $this->db->clearFlag( DBO_TRX ); // auto-commit mode
                                } else {
                                        $this->db = wfGetDB( DB_MASTER );
                                }
@@ -165,55 +173,59 @@ class SqlBagOStuff extends BagOStuff {
        public function getMulti( array $keys ) {
                $values = array(); // array of (key => value)
 
-               $keysByTableName = array();
-               foreach ( $keys as $key ) {
-                       $tableName = $this->getTableByKey( $key );
-                       if ( !isset( $keysByTableName[$tableName] ) ) {
-                               $keysByTableName[$tableName] = array();
+               try {
+                       $db = $this->getDB();
+                       $keysByTableName = array();
+                       foreach ( $keys as $key ) {
+                               $tableName = $this->getTableByKey( $key );
+                               if ( !isset( $keysByTableName[$tableName] ) ) {
+                                       $keysByTableName[$tableName] = array();
+                               }
+                               $keysByTableName[$tableName][] = $key;
                        }
-                       $keysByTableName[$tableName][] = $key;
-               }
 
-               $db = $this->getDB();
-               $this->garbageCollect(); // expire old entries if any
+                       $this->garbageCollect(); // expire old entries if any
 
-               $dataRows = array();
-               foreach ( $keysByTableName as $tableName => $tableKeys ) {
-                       $res = $db->select( $tableName,
-                               array( 'keyname', 'value', 'exptime' ),
-                               array( 'keyname' => $tableKeys ),
-                               __METHOD__ );
-                       foreach ( $res as $row ) {
-                               $dataRows[$row->keyname] = $row;
+                       $dataRows = array();
+                       foreach ( $keysByTableName as $tableName => $tableKeys ) {
+                               $res = $db->select( $tableName,
+                                       array( 'keyname', 'value', 'exptime' ),
+                                       array( 'keyname' => $tableKeys ),
+                                       __METHOD__ );
+                               foreach ( $res as $row ) {
+                                       $dataRows[$row->keyname] = $row;
+                               }
                        }
-               }
 
-               foreach ( $keys as $key ) {
-                       if ( isset( $dataRows[$key] ) ) { // HIT?
-                               $row = $dataRows[$key];
-                               $this->debug( "get: retrieved data; expiry time is " . $row->exptime );
-                               if ( $this->isExpired( $row->exptime ) ) { // MISS
-                                       $this->debug( "get: key has expired, deleting" );
-                                       try {
-                                               $db->begin( __METHOD__ );
-                                               # Put the expiry time in the WHERE condition to avoid deleting a
-                                               # newly-inserted value
-                                               $db->delete( $this->getTableByKey( $key ),
-                                                       array( 'keyname' => $key, 'exptime' => $row->exptime ),
-                                                       __METHOD__ );
-                                               $db->commit( __METHOD__ );
-                                       } catch ( DBQueryError $e ) {
-                                               $this->handleWriteError( $e );
+                       foreach ( $keys as $key ) {
+                               if ( isset( $dataRows[$key] ) ) { // HIT?
+                                       $row = $dataRows[$key];
+                                       $this->debug( "get: retrieved data; expiry time is " . $row->exptime );
+                                       if ( $this->isExpired( $row->exptime ) ) { // MISS
+                                               $this->debug( "get: key has expired, deleting" );
+                                               try {
+                                                       $db->begin( __METHOD__ );
+                                                       # Put the expiry time in the WHERE condition to avoid deleting a
+                                                       # newly-inserted value
+                                                       $db->delete( $this->getTableByKey( $key ),
+                                                               array( 'keyname' => $key, 'exptime' => $row->exptime ),
+                                                               __METHOD__ );
+                                                       $db->commit( __METHOD__ );
+                                               } catch ( DBQueryError $e ) {
+                                                       $this->handleWriteError( $e );
+                                               }
+                                               $values[$key] = false;
+                                       } else { // HIT
+                                               $values[$key] = $this->unserialize( $db->decodeBlob( $row->value ) );
                                        }
+                               } else { // MISS
                                        $values[$key] = false;
-                               } else { // HIT
-                                       $values[$key] = $this->unserialize( $db->decodeBlob( $row->value ) );
+                                       $this->debug( 'get: no matching rows' );
                                }
-                       } else { // MISS
-                               $values[$key] = false;
-                               $this->debug( 'get: no matching rows' );
                        }
-               }
+               } catch ( DBError $e ) {
+                       $this->handleReadError( $e );
+               };
 
                return $values;
        }
@@ -225,23 +237,23 @@ class SqlBagOStuff extends BagOStuff {
         * @return bool
         */
        public function set( $key, $value, $exptime = 0 ) {
-               $db = $this->getDB();
-               $exptime = intval( $exptime );
-
-               if ( $exptime < 0 ) {
-                       $exptime = 0;
-               }
+               try {
+                       $db = $this->getDB();
+                       $exptime = intval( $exptime );
 
-               if ( $exptime == 0 ) {
-                       $encExpiry = $this->getMaxDateTime();
-               } else {
-                       if ( $exptime < 3.16e8 ) { # ~10 years
-                               $exptime += time();
+                       if ( $exptime < 0 ) {
+                               $exptime = 0;
                        }
 
-                       $encExpiry = $db->timestamp( $exptime );
-               }
-               try {
+                       if ( $exptime == 0 ) {
+                               $encExpiry = $this->getMaxDateTime();
+                       } else {
+                               if ( $exptime < 3.16e8 ) { # ~10 years
+                                       $exptime += time();
+                               }
+
+                               $encExpiry = $db->timestamp( $exptime );
+                       }
                        $db->begin( __METHOD__ );
                        // (bug 24425) use a replace if the db supports it instead of
                        // delete/insert to avoid clashes with conflicting keynames
@@ -254,9 +266,8 @@ class SqlBagOStuff extends BagOStuff {
                                        'exptime' => $encExpiry
                                ), __METHOD__ );
                        $db->commit( __METHOD__ );
-               } catch ( DBQueryError $e ) {
+               } catch ( DBError $e ) {
                        $this->handleWriteError( $e );
-
                        return false;
                }
 
@@ -269,18 +280,16 @@ class SqlBagOStuff extends BagOStuff {
         * @return bool
         */
        public function delete( $key, $time = 0 ) {
-               $db = $this->getDB();
-
                try {
+                       $db = $this->getDB();
                        $db->begin( __METHOD__ );
                        $db->delete(
                                $this->getTableByKey( $key ),
                                array( 'keyname' => $key ),
                                __METHOD__ );
                        $db->commit( __METHOD__ );
-               } catch ( DBQueryError $e ) {
+               } catch ( DBError $e ) {
                        $this->handleWriteError( $e );
-
                        return false;
                }
 
@@ -293,11 +302,10 @@ class SqlBagOStuff extends BagOStuff {
         * @return int|null
         */
        public function incr( $key, $step = 1 ) {
-               $db = $this->getDB();
-               $tableName = $this->getTableByKey( $key );
-               $step = intval( $step );
-
                try {
+                       $db = $this->getDB();
+                       $tableName = $this->getTableByKey( $key );
+                       $step = intval( $step );
                        $db->begin( __METHOD__ );
                        $row = $db->selectRow(
                                $tableName,
@@ -333,9 +341,8 @@ class SqlBagOStuff extends BagOStuff {
                                $newValue = null;
                        }
                        $db->commit( __METHOD__ );
-               } catch ( DBQueryError $e ) {
+               } catch ( DBError $e ) {
                        $this->handleWriteError( $e );
-
                        return null;
                }
 
@@ -346,15 +353,19 @@ class SqlBagOStuff extends BagOStuff {
         * @return Array
         */
        public function keys() {
-               $db = $this->getDB();
                $result = array();
 
-               for ( $i = 0; $i < $this->shards; $i++ ) {
-                       $res = $db->select( $this->getTableByShard( $i ),
-                               array( 'keyname' ), false, __METHOD__ );
-                       foreach ( $res as $row ) {
-                               $result[] = $row->keyname;
+               try {
+                       $db = $this->getDB();
+                       for ( $i = 0; $i < $this->shards; $i++ ) {
+                               $res = $db->select( $this->getTableByShard( $i ),
+                                       array( 'keyname' ), false, __METHOD__ );
+                               foreach ( $res as $row ) {
+                                       $result[] = $row->keyname;
+                               }
                        }
+               } catch ( DBError $e ) {
+                       $this->handleReadError( $e );
                }
 
                return $result;
@@ -407,12 +418,11 @@ class SqlBagOStuff extends BagOStuff {
         * @return bool
         */
        public function deleteObjectsExpiringBefore( $timestamp, $progressCallback = false ) {
-               $db = $this->getDB();
-               $dbTimestamp = $db->timestamp( $timestamp );
-               $totalSeconds = false;
-               $baseConds = array( 'exptime < ' . $db->addQuotes( $dbTimestamp ) );
-
                try {
+                       $db = $this->getDB();
+                       $dbTimestamp = $db->timestamp( $timestamp );
+                       $totalSeconds = false;
+                       $baseConds = array( 'exptime < ' . $db->addQuotes( $dbTimestamp ) );
                        for ( $i = 0; $i < $this->shards; $i++ ) {
                                $maxExpTime = false;
                                while ( true ) {
@@ -468,24 +478,28 @@ class SqlBagOStuff extends BagOStuff {
                                        }
                                }
                        }
-               } catch ( DBQueryError $e ) {
+               } catch ( DBError $e ) {
                        $this->handleWriteError( $e );
+                       return false;
                }
+
                return true;
        }
 
        public function deleteAll() {
-               $db = $this->getDB();
-
                try {
+                       $db = $this->getDB();
                        for ( $i = 0; $i < $this->shards; $i++ ) {
                                $db->begin( __METHOD__ );
                                $db->delete( $this->getTableByShard( $i ), '*', __METHOD__ );
                                $db->commit( __METHOD__ );
                        }
-               } catch ( DBQueryError $e ) {
+               } catch ( DBError $e ) {
                        $this->handleWriteError( $e );
+                       return false;
                }
+
+               return true;
        }
 
        /**
@@ -528,23 +542,40 @@ class SqlBagOStuff extends BagOStuff {
        }
 
        /**
-        * Handle a DBQueryError which occurred during a write operation.
-        * Ignore errors which are due to a read-only database, rethrow others.
+        * Handle a DBError which occurred during a read operation.
         */
-       protected function handleWriteError( $exception ) {
-               $db = $this->getDB();
-
-               if ( !$db->wasReadOnlyError() ) {
-                       throw $exception;
+       protected function handleReadError( DBError $exception ) {
+               if ( $exception instanceof DBConnectionError ) {
+                       $this->connFailureTime  = time();
+                       $this->connFailureError = $exception;
                }
-
-               try {
-                       $db->rollback( __METHOD__ );
-               } catch ( DBQueryError $e ) {
+               wfDebugLog( 'SQLBagOStuff', "DBError: {$exception->getMessage()}" );
+               if ( $this->db ) {
+                       wfDebug( __METHOD__ . ": ignoring query error\n" );
+               } else {
+                       wfDebug( __METHOD__ . ": ignoring connection error\n" );
                }
+       }
 
-               wfDebug( __METHOD__ . ": ignoring query error\n" );
-               $db->ignoreErrors( false );
+       /**
+        * Handle a DBQueryError which occurred during a write operation.
+        */
+       protected function handleWriteError( DBError $exception ) {
+               if ( $exception instanceof DBConnectionError ) {
+                       $this->connFailureTime  = time();
+                       $this->connFailureError = $exception;
+               }
+               if ( $this->db && $this->db->wasReadOnlyError() ) {
+                       try {
+                               $this->db->rollback( __METHOD__ );
+                       } catch ( DBError $e ) {}
+               }
+               wfDebugLog( 'SQLBagOStuff', "DBError: {$exception->getMessage()}" );
+               if ( $this->db ) {
+                       wfDebug( __METHOD__ . ": ignoring query error\n" );
+               } else {
+                       wfDebug( __METHOD__ . ": ignoring connection error\n" );
+               }
        }
 
        /**
index 8db5ac9..4c6a22f 100644 (file)
@@ -747,7 +747,7 @@ class CoreParserFunctions {
                        $title = SpecialPage::getTitleFor( $page, $subpage );
                        return $title->getPrefixedText();
                } else {
-                       return wfMsgForContent( 'nosuchspecialpage' );
+                       return wfMessage( 'nosuchspecialpage' )->inContentLanguage()->text();
                }
        }
 
@@ -782,9 +782,7 @@ class CoreParserFunctions {
                        return '';
                } else {
                        return( '<span class="error">' .
-                               wfMsgForContent( 'duplicate-defaultsort',
-                                                htmlspecialchars( $old ),
-                                                htmlspecialchars( $text ) ) .
+                               wfMessage( 'duplicate-defaultsort', $old, $text )->inContentLanguage()->escaped() .
                                '</span>' );
                }
        }
@@ -844,7 +842,7 @@ class CoreParserFunctions {
                $stripList = $parser->getStripList();
                if ( !in_array( $tagName, $stripList ) ) {
                        return '<span class="error">' .
-                               wfMsgForContent( 'unknown_extension_tag', $tagName ) .
+                               wfMessage( 'unknown_extension_tag', $tagName )->inContentLanguage()->text() .
                                '</span>';
                }
 
index b351290..489451a 100644 (file)
@@ -1230,7 +1230,7 @@ class Parser {
                                throw new MWException( __METHOD__.': unrecognised match type "' .
                                        substr( $m[0], 0, 20 ) . '"' );
                        }
-                       $url = wfMsgForContent( $urlmsg, $id );
+                       $url = wfMessage( $urlmsg, $id )->inContentLanguage()->text();
                        return Linker::makeExternalLink( $url, "{$keyword} {$id}", true, $CssClass );
                } elseif ( isset( $m[5] ) && $m[5] !== '' ) {
                        # ISBN
@@ -1522,6 +1522,9 @@ class Parser {
                wfProfileIn( __METHOD__ );
 
                $bits = preg_split( $this->mExtLinkBracketedRegex, $text, -1, PREG_SPLIT_DELIM_CAPTURE );
+               if ( $bits === false ) {
+                       throw new MWException( "PCRE needs to be compiled with --enable-unicode-properties in order for MediaWiki to function" );
+               }
                $s = array_shift( $bits );
 
                $i = 0;
@@ -1684,7 +1687,7 @@ class Parser {
                }
                if ( !$text && $this->mOptions->getEnableImageWhitelist()
                         && preg_match( self::EXT_IMAGE_REGEX, $url ) ) {
-                       $whitelist = explode( "\n", wfMsgForContent( 'external_image_whitelist' ) );
+                       $whitelist = explode( "\n", wfMessage( 'external_image_whitelist' )->inContentLanguage()->text() );
                        foreach ( $whitelist as $entry ) {
                                # Sanitize the regex fragment, make it case-insensitive, ignore blank entries/comments
                                if ( strpos( $entry, '#' ) === 0 || $entry === '' ) {
@@ -1749,7 +1752,7 @@ class Parser {
                if ( $useLinkPrefixExtension ) {
                        # Match the end of a line for a word that's not followed by whitespace,
                        # e.g. in the case of 'The Arab al[[Razi]]', 'al' will be matched
-                       $e2 = wfMsgForContent( 'linkprefix' );
+                       $e2 = wfMessage( 'linkprefix' )->inContentLanguage()->text();
                }
 
                if ( is_null( $this->mTitle ) ) {
@@ -3085,7 +3088,8 @@ class Parser {
         */
        function limitationWarn( $limitationType, $current = null, $max = null) {
                # does no harm if $current and $max are present but are unnecessary for the message
-               $warning = wfMsgExt( "$limitationType-warning", array( 'parsemag', 'escape' ), $current, $max );
+               $warning = wfMessage( "$limitationType-warning" )->numParams( $current, $max )
+                       ->inContentLanguage()->escaped();
                $this->mOutput->addWarning( $warning );
                $this->addTrackingCategory( "$limitationType-category" );
        }
@@ -3290,7 +3294,8 @@ class Parser {
                                if ( $frame->depth >= $limit ) {
                                        $found = true;
                                        $text = '<span class="error">'
-                                               . wfMsgForContent( 'parser-template-recursion-depth-warning', $limit )
+                                               . wfMessage( 'parser-template-recursion-depth-warning' )
+                                                       ->numParams( $limit )->inContentLanguage()->text()
                                                . '</span>';
                                }
                        }
@@ -3370,7 +3375,9 @@ class Parser {
                        # This has to be done after redirect resolution to avoid infinite loops via redirects
                        if ( !$frame->loopCheck( $title ) ) {
                                $found = true;
-                               $text = '<span class="error">' . wfMsgForContent( 'parser-template-loop-warning', $titleText ) . '</span>';
+                               $text = '<span class="error">'
+                                       . wfMessage( 'parser-template-loop-warning', $titleText )->inContentLanguage()->text()
+                                       . '</span>';
                                wfDebug( __METHOD__.": template loop broken at '$titleText'\n" );
                        }
                        wfProfileOut( __METHOD__ . '-loadtpl' );
@@ -3660,13 +3667,13 @@ class Parser {
                global $wgEnableScaryTranscluding;
 
                if ( !$wgEnableScaryTranscluding ) {
-                       return wfMsgForContent('scarytranscludedisabled');
+                       return wfMessage('scarytranscludedisabled')->inContentLanguage()->text();
                }
 
                $url = $title->getFullUrl( "action=$action" );
 
                if ( strlen( $url ) > 255 ) {
-                       return wfMsgForContent( 'scarytranscludetoolong' );
+                       return wfMessage( 'scarytranscludetoolong' )->inContentLanguage()->text();
                }
                return $this->fetchScaryTemplateMaybeFromCache( $url );
        }
@@ -3687,7 +3694,7 @@ class Parser {
 
                $text = Http::get( $url );
                if ( !$text ) {
-                       return wfMsgForContent( 'scarytranscludefailed', $url );
+                       return wfMessage( 'scarytranscludefailed', $url )->inContentLanguage()->text();
                }
 
                $dbw = wfGetDB( DB_MASTER );
@@ -4412,7 +4419,7 @@ class Parser {
                $text = $this->replaceVariables( $text );
 
                # This works almost by chance, as the replaceVariables are done before the getUserSig(),
-               # which may corrupt this parser instance via its wfMsgExt( parsemag ) call-
+               # which may corrupt this parser instance via its wfMessage()->text() call-
 
                # Signatures
                $sigText = $this->getUserSig( $user );
@@ -4955,7 +4962,7 @@ class Parser {
                                'vertAlign' => array( 'baseline', 'sub', 'super', 'top', 'text-top', 'middle',
                                        'bottom', 'text-bottom' ),
                                'frame' => array( 'thumbnail', 'manualthumb', 'framed', 'frameless',
-                                       'upright', 'border', 'link', 'alt' ),
+                                       'upright', 'border', 'link', 'alt', 'class' ),
                        );
                        static $internalParamMap;
                        if ( !$internalParamMap ) {
@@ -5005,6 +5012,7 @@ class Parser {
                #  * upright    reduce width for upright images, rounded to full __0 px
                #  * border     draw a 1px border around the image
                #  * alt        Text for HTML alt attribute (defaults to empty)
+               #  * class      Set a class for img node
                #  * link       Set the target of the image link. Can be external, interwiki, or local
                # vertical-align values (no % or length right now):
                #  * baseline
@@ -5073,6 +5081,7 @@ class Parser {
                                                switch( $paramName ) {
                                                case 'manualthumb':
                                                case 'alt':
+                                               case 'class':
                                                        # @todo FIXME: Possibly check validity here for
                                                        # manualthumb? downstream behavior seems odd with
                                                        # missing manual thumbs.
index b08aa14..ad95d5f 100644 (file)
@@ -134,11 +134,14 @@ class StripState {
                $marker = $m[1];
                if ( isset( $this->data[$this->tempType][$marker] ) ) {
                        if ( isset( $this->circularRefGuard[$marker] ) ) {
-                               return '<span class="error">' . wfMsgForContent( 'parser-unstrip-loop-warning' ) . '</span>';
+                               return '<span class="error">'
+                                       . wfMessage( 'parser-unstrip-loop-warning' )->inContentLanguage()->text()
+                                       . '</span>';
                        }
                        if ( $this->recursionLevel >= self::UNSTRIP_RECURSION_LIMIT ) {
                                return '<span class="error">' . 
-                                       wfMsgForContent( 'parser-unstrip-recursion-limit', self::UNSTRIP_RECURSION_LIMIT ) . 
+                                       wfMessage( 'parser-unstrip-recursion-limit' )
+                                               ->numParams( self::UNSTRIP_RECURSION_LIMIT )->inContentLanguage()->text() .
                                        '</span>';
                        }
                        $this->circularRefGuard[$marker] = true;
index a36aaec..c916c4a 100644 (file)
@@ -29,7 +29,7 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
 
        protected $language;
        /**
-        * Get the grammer forms for the site content language.
+        * Get the grammar forms for the site content language.
         *
         * @return array
         */
@@ -37,6 +37,15 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
                return $this->language->getGrammarForms();
        }
 
+       /**
+        * Get the plural forms for the site content language.
+        *
+        * @return array
+        */
+       protected function getPluralRules() {
+               return $this->language->getPluralRules();
+       }
+
        /**
         * Get the digit transform table for the content language
         * Seperator transform table also required here to convert
@@ -61,17 +70,19 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
         * @return array
         */
        protected function getData() {
-               return array( 'grammarForms' => $this->getSiteLangGrammarForms(),
-                               'digitTransformTable' => $this->getDigitTransformTable()
-                       );
+               return array(
+                       'digitTransformTable' => $this->getDigitTransformTable(),
+                       'grammarForms' => $this->getSiteLangGrammarForms(),
+                       'pluralRules' => $this->getPluralRules(),
+               );
        }
 
        /**
         * @param $context ResourceLoaderContext
-        * @return string: Javascript code
+        * @return string: JavaScript code
         */
        public function getScript( ResourceLoaderContext $context ) {
-               $this->language = Language::factory( $context ->getLanguage() );
+               $this->language = Language::factory( $context->getLanguage() );
                return Xml::encodeJsCall( 'mw.language.setData', array(
                        $this->language->getCode(),
                        $this->getData()
index b95499f..b505592 100644 (file)
@@ -315,7 +315,7 @@ class SearchEngine {
                        return $parsed;
                }
 
-               $allkeyword = wfMsgForContent( 'searchall' ) . ":";
+               $allkeyword = wfMessage( 'searchall' )->inContentLanguage()->text() . ":";
                if ( strncmp( $query, $allkeyword, strlen( $allkeyword ) ) == 0 ) {
                        $this->namespaces = null;
                        $parsed = substr( $query, strlen( $allkeyword ) );
@@ -417,7 +417,7 @@ class SearchEngine {
                $formatted = array_map( array( $wgContLang, 'getFormattedNsText' ), $namespaces );
                foreach ( $formatted as $key => $ns ) {
                        if ( empty( $ns ) )
-                               $formatted[$key] = wfMsg( 'blanknamespace' );
+                               $formatted[$key] = wfMessage( 'blanknamespace' )->text();
                }
                return $formatted;
        }
index b20348d..2bea3a3 100644 (file)
@@ -103,7 +103,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
                                $form = $this->getRawForm();
                                if( $form->show() ){
                                        $out->addHTML( $this->successMessage );
-                                       $out->returnToMain();
+                                       $out->addReturnTo( SpecialPage::getTitleFor( 'Watchlist' ) );
                                }
                                break;
 
@@ -113,7 +113,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
                                $form = $this->getNormalForm();
                                if( $form->show() ){
                                        $out->addHTML( $this->successMessage );
-                                       $out->returnToMain();
+                                       $out->addReturnTo( SpecialPage::getTitleFor( 'Watchlist' ) );
                                } elseif ( $this->toc !== false ) {
                                        $out->prependHTML( $this->toc );
                                }
@@ -510,7 +510,7 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
                                $this->toc .= Linker::tocLine( "editwatchlist-{$data['section']}", $nsText,
                                        $this->getLanguage()->formatNum( ++$tocLength ), 1 ) . Linker::tocLineEnd();
                        }
-                       $this->toc = Linker::tocList( $this->toc );
+                       $this->toc = Linker::tocList( $this->toc, $this->getLanguage()->getCode() );
                } else {
                        $this->toc = false;
                }
@@ -632,12 +632,12 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
                        // can use messages 'watchlisttools-view', 'watchlisttools-edit', 'watchlisttools-raw'
                        $tools[] = Linker::linkKnown(
                                SpecialPage::getTitleFor( $arr[0], $arr[1] ),
-                               wfMsgHtml( "watchlisttools-{$mode}" )
+                               wfMessage( "watchlisttools-{$mode}" )->escaped()
                        );
                }
                return Html::rawElement( 'span',
                                        array( 'class' => 'mw-watchlist-toollinks' ),
-                                       wfMsg( 'parentheses', $wgLang->pipeList( $tools ) ) );
+                                       wfMessage( 'parentheses', $wgLang->pipeList( $tools ) )->text() );
        }
 }
 
index 3d6033e..4d875e6 100644 (file)
@@ -33,6 +33,15 @@ class SpecialEmailUser extends UnlistedSpecialPage {
                parent::__construct( 'Emailuser' );
        }
 
+       public function getDescription() {
+               $target = self::getTarget( $this->mTarget );
+               if( !$target instanceof User ) {
+                       return $this->msg( 'emailuser-title-notarget' )->text();
+               }
+
+               return $this->msg( 'emailuser-title-target', $target->getName() )->text();
+       }
+
        protected function getFormFields() {
                return array(
                        'From' => array(
@@ -84,13 +93,18 @@ class SpecialEmailUser extends UnlistedSpecialPage {
        }
 
        public function execute( $par ) {
-               $this->setHeaders();
-               $this->outputHeader();
                $out = $this->getOutput();
                $out->addModuleStyles( 'mediawiki.special' );
+
                $this->mTarget = is_null( $par )
                        ? $this->getRequest()->getVal( 'wpTarget', $this->getRequest()->getVal( 'target', '' ) )
                        : $par;
+
+               // This needs to be below assignment of $this->mTarget because
+               // getDescription() needs it to determine the correct page title.
+               $this->setHeaders();
+               $this->outputHeader();
+
                // error out if sending user cannot do this
                $error = self::getPermissionsError( $this->getUser(), $this->getRequest()->getVal( 'wpEditToken' ) );
                switch ( $error ) {
@@ -136,7 +150,6 @@ class SpecialEmailUser extends UnlistedSpecialPage {
                        return false;
                }
 
-               $out->setPageTitle( $this->msg( 'emailpage' ) );
                $result = $form->show();
 
                if( $result === true || ( $result instanceof Status && $result->isGood() ) ) {
diff --git a/includes/specials/SpecialMostinterwikis.php b/includes/specials/SpecialMostinterwikis.php
new file mode 100644 (file)
index 0000000..894d697
--- /dev/null
@@ -0,0 +1,112 @@
+<?php
+/**
+ * Implements Special:Mostinterwikis
+ *
+ * Copyright © 2012 Umherirrender
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup SpecialPage
+ * @author Umherirrender
+ */
+
+/**
+ * A special page that listed pages that have highest interwiki count
+ *
+ * @ingroup SpecialPage
+ */
+class MostinterwikisPage extends QueryPage {
+
+       function __construct( $name = 'Mostinterwikis' ) {
+               parent::__construct( $name );
+       }
+
+       function isExpensive() { return true; }
+       function isSyndicated() { return false; }
+
+       function getQueryInfo() {
+               return array (
+                       'tables' => array (
+                               'langlinks',
+                               'page'
+                       ), 'fields' => array (
+                               'namespace' => 'page_namespace',
+                               'title' => 'page_title',
+                               'value' => 'COUNT(*)'
+                       ), 'conds' => array (
+                               'page_namespace' => MWNamespace::getContentNamespaces()
+                       ), 'options' => array (
+                               'HAVING' => 'COUNT(*) > 1',
+                               'GROUP BY' => array (
+                                       'page_namespace',
+                                       'page_title'
+                               )
+                       ), 'join_conds' => array (
+                               'page' => array (
+                                       'LEFT JOIN',
+                                       'page_id = ll_from'
+                               )
+                       )
+               );
+       }
+
+       /**
+        * Pre-fill the link cache
+        *
+        * @param $db DatabaseBase
+        * @param $res
+        */
+       function preprocessResults( $db, $res ) {
+               # There's no point doing a batch check if we aren't caching results;
+               # the page must exist for it to have been pulled out of the table
+               if ( !$this->isCached() || !$res->numRows() ) {
+                       return;
+               }
+
+               $batch = new LinkBatch;
+               foreach ( $res as $row ) {
+                       $batch->add( $row->namespace, $row->title );
+               }
+               $batch->execute();
+
+               // Back to start for display
+               $res->seek( 0 );
+       }
+
+       /**
+        * @param $skin Skin
+        * @param $result
+        * @return string
+        */
+       function formatResult( $skin, $result ) {
+               $title = Title::makeTitleSafe( $result->namespace, $result->title );
+               if ( !$title ) {
+                       return Html::element( 'span', array( 'class' => 'mw-invalidtitle' ),
+                               Linker::getInvalidTitleDescription( $this->getContext(), $result->namespace, $result->title ) );
+               }
+
+               if ( $this->isCached() ) {
+                       $link = Linker::link( $title );
+               } else {
+                       $link = Linker::linkKnown( $title );
+               }
+
+               $count = $this->msg( 'ninterwikis' )->numParams( $result->value )->escaped();
+
+               return $this->getLanguage()->specialList( $link, $count );
+       }
+}
index 19ea171..8e15d55 100644 (file)
@@ -360,8 +360,8 @@ class SpecialNewpages extends IncludableSpecialPage {
                        $classes[] = 'mw-newpages-zero-byte-page';
                }
 
-               # Tags, if any. check for including due to bug 23293
-               if ( !$this->including() ) {
+               # Tags, if any.
+               if( isset( $result->ts_tags ) ) {
                        list( $tagDisplay, $newClasses ) = ChangeTags::formatSummaryRow( $result->ts_tags, 'newpages' );
                        $classes = array_merge( $classes, $newClasses );
                } else {
@@ -530,7 +530,7 @@ class NewPagesPager extends ReverseChronologicalPager {
                $fields = array(
                        'rc_namespace', 'rc_title', 'rc_cur_id', 'rc_user', 'rc_user_text',
                        'rc_comment', 'rc_timestamp', 'rc_patrolled','rc_id', 'rc_deleted',
-                       'length' => 'page_len', 'rev_id' => 'page_latest', 'ts_tags', 'rc_this_oldid',
+                       'length' => 'page_len', 'rev_id' => 'page_latest', 'rc_this_oldid',
                        'page_namespace', 'page_title'
                );
                $join_conds = array( 'page' => array( 'INNER JOIN', 'page_id=rc_cur_id' ) );
@@ -546,13 +546,10 @@ class NewPagesPager extends ReverseChronologicalPager {
                        'join_conds' => $join_conds
                );
 
-               // Empty array for fields, it'll be set by us anyway.
-               $fields = array();
-
                // Modify query for tags
                ChangeTags::modifyDisplayQuery(
                        $info['tables'],
-                       $fields,
+                       $info['fields'],
                        $info['conds'],
                        $info['join_conds'],
                        $info['options'],
index b69354c..c6b2bb6 100644 (file)
@@ -39,8 +39,7 @@ class SpecialPreferences extends SpecialPage {
 
                $user = $this->getUser();
                if ( $user->isAnon() ) {
-                       $out->showErrorPage( 'prefsnologin', 'prefsnologintext', array( $this->getTitle()->getPrefixedDBkey() ) );
-                       return;
+                       throw new ErrorPageError( 'prefsnologin', 'prefsnologintext', array( $this->getTitle()->getPrefixedDBkey() ) );
                }
                $this->checkReadOnly();
 
index ec8f93b..2bd8b0a 100644 (file)
@@ -396,14 +396,15 @@ class SpecialRecentChanges extends IncludableSpecialPage {
                        $fields[] = 'page_latest';
                        $join_conds['page'] = array('LEFT JOIN', 'rc_cur_id=page_id');
                }
-               if ( !$this->including() ) {
-                       // Tag stuff.
-                       // Doesn't work when transcluding. See bug 23293
-                       ChangeTags::modifyDisplayQuery(
-                               $tables, $fields, $conds, $join_conds, $query_options,
-                               $opts['tagfilter']
-                       );
-               }
+               // Tag stuff.
+               ChangeTags::modifyDisplayQuery(
+                       $tables,
+                       $fields,
+                       $conds,
+                       $join_conds,
+                       $query_options,
+                       $opts['tagfilter']
+               );
 
                if ( !wfRunHooks( 'SpecialRecentChangesQuery',
                        array( &$conds, &$tables, &$join_conds, $opts, &$query_options, &$fields ) ) )
index 9010e10..862736d 100644 (file)
@@ -110,10 +110,14 @@ class SpecialRecentchangeslinked extends SpecialRecentChanges {
                        $join_conds['page'] = array('LEFT JOIN', 'rc_cur_id=page_id');
                        $select[] = 'page_latest';
                }
-               if ( !$this->including() ) { // bug 23293
-                       ChangeTags::modifyDisplayQuery( $tables, $select, $conds, $join_conds,
-                               $query_options, $opts['tagfilter'] );
-               }
+               ChangeTags::modifyDisplayQuery(
+                       $tables,
+                       $select,
+                       $conds,
+                       $join_conds,
+                       $query_options,
+                       $opts['tagfilter']
+               );
 
                if ( !wfRunHooks( 'SpecialRecentChangesQuery', array( &$conds, &$tables, &$join_conds, $opts, &$query_options, &$select ) ) ) {
                        return false;
index 4e1bbc2..089f967 100644 (file)
@@ -163,8 +163,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
 
                # No targets?
                if( !isset( self::$allowedTypes[$this->typeName] ) || count( $this->ids ) == 0 ) {
-                       $output->showErrorPage( 'revdelete-nooldid-title', 'revdelete-nooldid-text' );
-                       return;
+                       throw new ErrorPageError( 'revdelete-nooldid-title', 'revdelete-nooldid-text' );
                }
                $this->typeInfo = self::$allowedTypes[$this->typeName];
                $this->mIsAllowed = $user->isAllowed( $this->typeInfo['permission'] );
@@ -286,11 +285,10 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                $user = $this->getUser();
                if( !$oimage->userCan( File::DELETED_FILE, $user ) ) {
                        if( $oimage->isDeleted( File::DELETED_RESTRICTED ) ) {
-                               $this->getOutput()->permissionRequired( 'suppressrevision' );
+                               throw new PermissionsError( 'suppressrevision' );
                        } else {
-                               $this->getOutput()->permissionRequired( 'deletedtext' );
+                               throw new PermissionsError( 'deletedtext' );
                        }
-                       return;
                }
                if ( !$user->matchEditToken( $this->token, $archiveName ) ) {
                        $lang = $this->getLanguage();
@@ -360,8 +358,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                        $item = $list->current();
                        if ( !$item->canView() ) {
                                if( !$this->submitClicked ) {
-                                       $this->getOutput()->permissionRequired( 'suppressrevision' );
-                                       return;
+                                       throw new PermissionsError( 'suppressrevision' );
                                }
                                $UserAllowed = false;
                        }
@@ -370,8 +367,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                }
 
                if( !$numRevisions ) {
-                       $this->getOutput()->showErrorPage( 'revdelete-nooldid-title', 'revdelete-nooldid-text' );
-                       return;
+                       throw new ErrorPageError( 'revdelete-nooldid-title', 'revdelete-nooldid-text' );
                }
 
                $this->getOutput()->addHTML( "</ul>" );
@@ -528,8 +524,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                }
                # Can the user set this field?
                if( $bitParams[Revision::DELETED_RESTRICTED]==1 && !$this->getUser()->isAllowed('suppressrevision') ) {
-                       $this->getOutput()->permissionRequired( 'suppressrevision' );
-                       return false;
+                       throw new PermissionsError( 'suppressrevision' );
                }
                # If the save went through, go to success message...
                $status = $this->save( $bitParams, $comment, $this->targetObj );
index 578a940..b1555c6 100644 (file)
@@ -359,22 +359,21 @@ class PageArchive {
                // Touch the log!
 
                if( $textRestored && $filesRestored ) {
-                       $reason = wfMsgExt( 'undeletedrevisions-files', array( 'content', 'parsemag' ),
-                               $wgContLang->formatNum( $textRestored ),
-                               $wgContLang->formatNum( $filesRestored ) );
+                       $reason = wfMessage( 'undeletedrevisions-files' )
+                               ->numParams( $textRestored, $filesRestored )->inContentLanguage()->text();
                } elseif( $textRestored ) {
-                       $reason = wfMsgExt( 'undeletedrevisions', array( 'content', 'parsemag' ),
-                               $wgContLang->formatNum( $textRestored ) );
+                       $reason = wfMessage( 'undeletedrevisions' )->numParams( $textRestored )
+                               ->inContentLanguage()->text();
                } elseif( $filesRestored ) {
-                       $reason = wfMsgExt( 'undeletedfiles', array( 'content', 'parsemag' ),
-                               $wgContLang->formatNum( $filesRestored ) );
+                       $reason = wfMessage( 'undeletedfiles' )->numParams( $filesRestored )
+                               ->inContentLanguage()->text();
                } else {
                        wfDebug( "Undelete: nothing undeleted...\n" );
                        return false;
                }
 
                if( trim( $comment ) != '' ) {
-                       $reason .= wfMsgForContent( 'colon-separator' ) . $comment;
+                       $reason .= wfMessage( 'colon-separator' )->inContentLanguage()->text() . $comment;
                }
 
                if ( $user === null ) {
index 3072408..d1a9b16 100644 (file)
@@ -235,7 +235,7 @@ class SpecialUpload extends SpecialPage {
                        !$this->mTokenOk && !$this->mCancelUpload &&
                        ( $this->mUpload && $this->mUploadClicked )
                ) {
-                       $form->addPreText( wfMsgExt( 'session_fail_preview', 'parseinline' ) );
+                       $form->addPreText( $this->msg( 'session_fail_preview' )->parse() );
                }
 
                # Give a notice if the user is uploading a file that has been deleted or moved
@@ -255,16 +255,16 @@ class SpecialUpload extends SpecialPage {
 
                # Add text to form
                $form->addPreText( '<div id="uploadtext">' .
-                       wfMsgExt( 'uploadtext', 'parse', array( $this->mDesiredDestName ) ) .
+                       $this->msg( 'uploadtext', array( $this->mDesiredDestName ) )->parseAsBlock() .
                        '</div>' );
                # Add upload error message
                $form->addPreText( $message );
 
                # Add footer to form
-               $uploadFooter = wfMessage( 'uploadfooter' );
+               $uploadFooter = $this->msg( 'uploadfooter' );
                if ( !$uploadFooter->isDisabled() ) {
                        $form->addPostText( '<div id="mw-upload-footer-message">'
-                               . $this->getOutput()->parse( $uploadFooter->plain() ) . "</div>\n" );
+                               . $uploadFooter->parseAsBlock() . "</div>\n" );
                }
 
                return $form;
@@ -280,14 +280,12 @@ class SpecialUpload extends SpecialPage {
                if( $title instanceof Title ) {
                        $count = $title->isDeleted();
                        if ( $count > 0 && $user->isAllowed( 'deletedhistory' ) ) {
-                               $link = wfMsgExt(
-                                       $user->isAllowed( 'delete' ) ? 'thisisdeleted' : 'viewdeleted',
-                                       array( 'parse', 'replaceafter' ),
-                                       Linker::linkKnown(
-                                               SpecialPage::getTitleFor( 'Undelete', $title->getPrefixedText() ),
-                                               wfMsgExt( 'restorelink', array( 'parsemag', 'escape' ), $count )
-                                       )
+                               $restorelink = Linker::linkKnown(
+                                       SpecialPage::getTitleFor( 'Undelete', $title->getPrefixedText() ),
+                                       $this->msg( 'restorelink' )->numParams( $count )->escaped()
                                );
+                               $link = $this->msg( $user->isAllowed( 'delete' ) ? 'thisisdeleted' : 'viewdeleted' )
+                                       ->rawParams( $restorelink )->parseAsBlock();
                                $this->getOutput()->addHTML( "<div id=\"contentSub2\">{$link}</div>" );
                        }
                }
@@ -306,11 +304,11 @@ class SpecialUpload extends SpecialPage {
         */
        protected function showRecoverableUploadError( $message ) {
                $sessionKey = $this->mUpload->stashSession();
-               $message = '<h2>' . wfMsgHtml( 'uploaderror' ) . "</h2>\n" .
+               $message = '<h2>' . $this->msg( 'uploaderror' )->escaped() . "</h2>\n" .
                        '<div class="error">' . $message . "</div>\n";
 
                $form = $this->getUploadForm( $message, $sessionKey );
-               $form->setSubmitText( wfMsg( 'upload-tryagain' ) );
+               $form->setSubmitText( $this->msg( 'upload-tryagain' )->escaped() );
                $this->showUploadForm( $form );
        }
        /**
@@ -335,7 +333,7 @@ class SpecialUpload extends SpecialPage {
 
                $sessionKey = $this->mUpload->stashSession();
 
-               $warningHtml = '<h2>' . wfMsgHtml( 'uploadwarning' ) . "</h2>\n"
+               $warningHtml = '<h2>' . $this->msg( 'uploadwarning' )->escaped() . "</h2>\n"
                        . '<ul class="warning">';
                foreach( $warnings as $warning => $args ) {
                        if( $warning == 'exists' ) {
@@ -343,8 +341,8 @@ class SpecialUpload extends SpecialPage {
                        } elseif( $warning == 'duplicate' ) {
                                $msg = self::getDupeWarning( $args );
                        } elseif( $warning == 'duplicate-archive' ) {
-                               $msg = "\t<li>" . wfMsgExt( 'file-deleted-duplicate', 'parseinline',
-                                               array( Title::makeTitle( NS_FILE, $args )->getPrefixedText() ) )
+                               $msg = "\t<li>" . $this->msg( 'file-deleted-duplicate',
+                                               Title::makeTitle( NS_FILE, $args )->getPrefixedText() )->parse()
                                        . "</li>\n";
                        } else {
                                if ( $args === true ) {
@@ -352,17 +350,17 @@ class SpecialUpload extends SpecialPage {
                                } elseif ( !is_array( $args ) ) {
                                        $args = array( $args );
                                }
-                               $msg = "\t<li>" . wfMsgExt( $warning, 'parseinline', $args ) . "</li>\n";
+                               $msg = "\t<li>" . $this->msg( $warning, $args )->parse() . "</li>\n";
                        }
                        $warningHtml .= $msg;
                }
                $warningHtml .= "</ul>\n";
-               $warningHtml .= wfMsgExt( 'uploadwarning-text', 'parse' );
+               $warningHtml .= $this->msg( 'uploadwarning-text' )->parseAsBlock();
 
                $form = $this->getUploadForm( $warningHtml, $sessionKey, /* $hideIgnoreWarning */ true );
-               $form->setSubmitText( wfMsg( 'upload-tryagain' ) );
-               $form->addButton( 'wpUploadIgnoreWarning', wfMsg( 'ignorewarning' ) );
-               $form->addButton( 'wpCancelUpload', wfMsg( 'reuploaddesc' ) );
+               $form->setSubmitText( $this->msg( 'upload-tryagain' )->text() );
+               $form->addButton( 'wpUploadIgnoreWarning', $this->msg( 'ignorewarning' )->text() );
+               $form->addButton( 'wpCancelUpload', $this->msg( 'reuploaddesc' )->text() );
 
                $this->showUploadForm( $form );
 
@@ -376,7 +374,7 @@ class SpecialUpload extends SpecialPage {
         * @param $message string HTML string
         */
        protected function showUploadError( $message ) {
-               $message = '<h2>' . wfMsgHtml( 'uploadwarning' ) . "</h2>\n" .
+               $message = '<h2>' . $this->msg( 'uploadwarning' )->escaped() . "</h2>\n" .
                        '<div class="error">' . $message . "</div>\n";
                $this->showUploadForm( $this->getUploadForm( $message ) );
        }
@@ -414,8 +412,7 @@ class SpecialUpload extends SpecialPage {
                $permErrors = $this->mUpload->verifyTitlePermissions( $this->getUser() );
                if( $permErrors !== true ) {
                        $code = array_shift( $permErrors[0] );
-                       $this->showRecoverableUploadError( wfMsgExt( $code,
-                                       'parseinline', $permErrors[0] ) );
+                       $this->showRecoverableUploadError( $this->msg( $code, $permErrors[0] )->parse() );
                        return;
                }
 
@@ -469,7 +466,7 @@ class SpecialUpload extends SpecialPage {
                        if ( in_array( $msgName, $wgForceUIMsgAsContentMsg ) ) {
                                $msg[$msgName] = "{{int:$msgName}}";
                        } else {
-                               $msg[$msgName] = wfMsgForContent( $msgName );
+                               $msg[$msgName] = wfMessage( $msgName )->inContentLanguage()->text();
                        }
                }
 
@@ -536,33 +533,31 @@ class SpecialUpload extends SpecialPage {
 
                        /** Statuses that only require name changing **/
                        case UploadBase::MIN_LENGTH_PARTNAME:
-                               $this->showRecoverableUploadError( wfMsgHtml( 'minlength1' ) );
+                               $this->showRecoverableUploadError( $this->msg( 'minlength1' )->escaped() );
                                break;
                        case UploadBase::ILLEGAL_FILENAME:
-                               $this->showRecoverableUploadError( wfMsgExt( 'illegalfilename',
-                                       'parseinline', $details['filtered'] ) );
+                               $this->showRecoverableUploadError( $this->msg( 'illegalfilename',
+                                       $details['filtered'] )->parse() );
                                break;
                        case UploadBase::FILENAME_TOO_LONG:
-                               $this->showRecoverableUploadError( wfMsgHtml( 'filename-toolong' ) );
+                               $this->showRecoverableUploadError( $this->msg( 'filename-toolong' )->escaped() );
                                break;
                        case UploadBase::FILETYPE_MISSING:
-                               $this->showRecoverableUploadError( wfMsgExt( 'filetype-missing',
-                                       'parseinline' ) );
+                               $this->showRecoverableUploadError( $this->msg( 'filetype-missing' )->parse() );
                                break;
                        case UploadBase::WINDOWS_NONASCII_FILENAME:
-                               $this->showRecoverableUploadError( wfMsgExt( 'windows-nonascii-filename',
-                                       'parseinline' ) );
+                               $this->showRecoverableUploadError( $this->msg( 'windows-nonascii-filename' )->parse() );
                                break;
 
                        /** Statuses that require reuploading **/
                        case UploadBase::EMPTY_FILE:
-                               $this->showUploadError( wfMsgHtml( 'emptyfile' ) );
+                               $this->showUploadError( $this->msg( 'emptyfile' )->escaped() );
                                break;
                        case UploadBase::FILE_TOO_LARGE:
-                               $this->showUploadError( wfMsgHtml( 'largefileserver' ) );
+                               $this->showUploadError( $this->msg( 'largefileserver' )->escaped() );
                                break;
                        case UploadBase::FILETYPE_BADTYPE:
-                               $msg = wfMessage( 'filetype-banned-type' );
+                               $msg = $this->msg( 'filetype-banned-type' );
                                if ( isset( $details['blacklistedExt'] ) ) {
                                        $msg->params( $this->getLanguage()->commaList( $details['blacklistedExt'] ) );
                                } else {
@@ -585,7 +580,7 @@ class SpecialUpload extends SpecialPage {
                        case UploadBase::VERIFICATION_ERROR:
                                unset( $details['status'] );
                                $code = array_shift( $details['details'] );
-                               $this->showUploadError( wfMsgExt( $code, 'parseinline', $details['details'] ) );
+                               $this->showUploadError( $this->msg( $code, $details['details'] )->parse() );
                                break;
                        case UploadBase::HOOK_ABORTED:
                                if ( is_array( $details['error'] ) ) { # allow hooks to return error details in an array
@@ -596,7 +591,7 @@ class SpecialUpload extends SpecialPage {
                                        $args = null;
                                }
 
-                               $this->showUploadError( wfMsgExt( $error, 'parseinline', $args ) );
+                               $this->showUploadError( $this->msg( $error, $args )->parse() );
                                break;
                        default:
                                throw new MWException( __METHOD__ . ": Unknown value `{$details['status']}`" );
@@ -641,37 +636,37 @@ class SpecialUpload extends SpecialPage {
 
                if( $exists['warning'] == 'exists' ) {
                        // Exact match
-                       $warning = wfMsgExt( 'fileexists', 'parseinline', $filename );
+                       $warning = wfMessage( 'fileexists', $filename )->parse();
                } elseif( $exists['warning'] == 'page-exists' ) {
                        // Page exists but file does not
-                       $warning = wfMsgExt( 'filepageexists', 'parseinline', $filename );
+                       $warning = wfMessage( 'filepageexists', $filename )->parse();
                } elseif ( $exists['warning'] == 'exists-normalized' ) {
-                       $warning = wfMsgExt( 'fileexists-extension', 'parseinline', $filename,
-                               $exists['normalizedFile']->getTitle()->getPrefixedText() );
+                       $warning = wfMessage( 'fileexists-extension', $filename,
+                               $exists['normalizedFile']->getTitle()->getPrefixedText() )->parse();
                } elseif ( $exists['warning'] == 'thumb' ) {
                        // Swapped argument order compared with other messages for backwards compatibility
-                       $warning = wfMsgExt( 'fileexists-thumbnail-yes', 'parseinline',
-                               $exists['thumbFile']->getTitle()->getPrefixedText(), $filename );
+                       $warning = wfMessage( 'fileexists-thumbnail-yes', 
+                               $exists['thumbFile']->getTitle()->getPrefixedText(), $filename )->parse();
                } elseif ( $exists['warning'] == 'thumb-name' ) {
                        // Image w/o '180px-' does not exists, but we do not like these filenames
                        $name = $file->getName();
                        $badPart = substr( $name, 0, strpos( $name, '-' ) + 1 );
-                       $warning = wfMsgExt( 'file-thumbnail-no', 'parseinline', $badPart );
+                       $warning = wfMessage( 'file-thumbnail-no', $badPart )->parse();
                } elseif ( $exists['warning'] == 'bad-prefix' ) {
-                       $warning = wfMsgExt( 'filename-bad-prefix', 'parseinline', $exists['prefix'] );
+                       $warning = wfMessage( 'filename-bad-prefix', $exists['prefix'] )->parse();
                } elseif ( $exists['warning'] == 'was-deleted' ) {
                        # If the file existed before and was deleted, warn the user of this
                        $ltitle = SpecialPage::getTitleFor( 'Log' );
                        $llink = Linker::linkKnown(
                                $ltitle,
-                               wfMsgHtml( 'deletionlog' ),
+                               wfMessage( 'deletionlog' )->escaped(),
                                array(),
                                array(
                                        'type' => 'delete',
                                        'page' => $filename
                                )
                        );
-                       $warning = wfMsgExt( 'filewasdeleted', array( 'parse', 'replaceafter' ), $llink );
+                       $warning = wfMessage( 'filewasdeleted' )->rawParams( $llink )->parseAsBlock();
                }
 
                return $warning;
@@ -717,9 +712,8 @@ class SpecialUpload extends SpecialPage {
                        }
                        $msg .= '</gallery>';
                        return '<li>' .
-                               wfMsgExt( 'file-exists-duplicate', array( 'parse' ), count( $dupes ) ) .
-                               $wgOut->parse( $msg ) .
-                               "</li>\n";
+                               wfMessage( 'file-exists-duplicate' )->numParams( count( $dupes ) )->parse() .
+                               $wgOut->parse( $msg ) . "</li>\n";
                } else {
                        return '';
                }
@@ -775,7 +769,7 @@ class UploadForm extends HTMLForm {
                parent::__construct( $descriptor, $context, 'upload' );
 
                # Set some form properties
-               $this->setSubmitText( wfMsg( 'uploadbtn' ) );
+               $this->setSubmitText( $this->msg( 'uploadbtn' )->text() );
                $this->setSubmitName( 'wpUpload' );
                # Used message keys: 'accesskey-upload', 'tooltip-upload'
                $this->setSubmitTooltip( 'upload' );
@@ -843,10 +837,9 @@ class UploadForm extends HTMLForm {
                        'label-message' => 'sourcefilename',
                        'upload-type' => 'File',
                        'radio' => &$radio,
-                       'help' => wfMsgExt( 'upload-maxfilesize',
-                                       array( 'parseinline', 'escapenoentities' ),
+                       'help' => $this->msg( 'upload-maxfilesize',
                                        $this->getContext()->getLanguage()->formatSize( $this->mMaxUploadSize['file'] )
-                               ) . ' ' . wfMsgHtml( 'upload_source_file' ),
+                               )->parse() . ' ' . $this->msg( 'upload_source_file' )->escaped(),
                        'checked' => $selectedSourceType == 'file',
                );
                if ( $canUploadByUrl ) {
@@ -858,10 +851,9 @@ class UploadForm extends HTMLForm {
                                'label-message' => 'sourceurl',
                                'upload-type' => 'url',
                                'radio' => &$radio,
-                               'help' => wfMsgExt( 'upload-maxfilesize',
-                                               array( 'parseinline', 'escapenoentities' ),
+                               'help' => $this->msg( 'upload-maxfilesize',
                                                $this->getContext()->getLanguage()->formatSize( $this->mMaxUploadSize['url'] )
-                                       ) . ' ' . wfMsgHtml( 'upload_source_url' ),
+                                       )->parse() . ' ' . $this->msg( 'upload_source_url' )->escaped(),
                                'checked' => $selectedSourceType == 'url',
                        );
                }
@@ -892,16 +884,16 @@ class UploadForm extends HTMLForm {
                                # Everything not permitted is banned
                                $extensionsList =
                                        '<div id="mw-upload-permitted">' .
-                                       wfMsgExt( 'upload-permitted', 'parse', $this->getContext()->getLanguage()->commaList( $wgFileExtensions ) ) .
+                                       $this->msg( 'upload-permitted', $this->getContext()->getLanguage()->commaList( $wgFileExtensions ) )->parseAsBlock() .
                                        "</div>\n";
                        } else {
                                # We have to list both preferred and prohibited
                                $extensionsList =
                                        '<div id="mw-upload-preferred">' .
-                                       wfMsgExt( 'upload-preferred', 'parse', $this->getContext()->getLanguage()->commaList( $wgFileExtensions ) ) .
+                                               $this->msg( 'upload-preferred', $this->getContext()->getLanguage()->commaList( $wgFileExtensions ) )->parseAsBlock() .
                                        "</div>\n" .
                                        '<div id="mw-upload-prohibited">' .
-                                       wfMsgExt( 'upload-prohibited', 'parse', $this->getContext()->getLanguage()->commaList( $wgFileBlacklist ) ) .
+                                               $this->msg( 'upload-prohibited', $this->getContext()->getLanguage()->commaList( $wgFileBlacklist ) )->parseAsBlock() .
                                        "</div>\n";
                        }
                } else {
index f0b15db..c101897 100644 (file)
@@ -74,7 +74,7 @@ class LoginForm extends SpecialPage {
         * Loader
         */
        function load() {
-               global $wgAuth, $wgHiddenPrefs, $wgEnableEmail, $wgRedirectOnLogin;
+               global $wgAuth, $wgHiddenPrefs, $wgEnableEmail;
 
                if ( $this->mLoaded ) {
                        return;
@@ -105,14 +105,8 @@ class LoginForm extends SpecialPage {
                $this->mLanguage = $request->getText( 'uselang' );
                $this->mSkipCookieCheck = $request->getCheck( 'wpSkipCookieCheck' );
                $this->mToken = ( $this->mType == 'signup' ) ? $request->getVal( 'wpCreateaccountToken' ) : $request->getVal( 'wpLoginToken' );
-
-               if ( $wgRedirectOnLogin ) {
-                       $this->mReturnTo = $wgRedirectOnLogin;
-                       $this->mReturnToQuery = '';
-               } else {
-                       $this->mReturnTo = $request->getVal( 'returnto', '' );
-                       $this->mReturnToQuery = $request->getVal( 'returntoquery', '' );
-               }
+               $this->mReturnTo = $request->getVal( 'returnto', '' );
+               $this->mReturnToQuery = $request->getVal( 'returntoquery', '' );
 
                if( $wgEnableEmail ) {
                        $this->mEmail = $request->getText( 'wpEmail' );
@@ -207,7 +201,7 @@ class LoginForm extends SpecialPage {
                        $this->mainLoginForm( $this->msg( 'mailerror', $result->getWikiText() )->text() );
                } else {
                        $out->addWikiMsg( 'accmailtext', $u->getName(), $u->getEmail() );
-                       $out->returnToMain( false );
+                       $this->executeReturnTo( 'success' );
                }
        }
 
@@ -266,7 +260,7 @@ class LoginForm extends SpecialPage {
                        # Confirm that the account was created
                        $out->setPageTitle( $this->msg( 'accountcreated' ) );
                        $out->addWikiMsg( 'accountcreatedtext', $u->getName() );
-                       $out->returnToMain( false, $this->getTitle() );
+                       $out->addReturnTo( $this->getTitle() );
                        wfRunHooks( 'AddNewAccount', array( $u, false ) );
                        $u->addNewUserLogEntry( false, $this->mReason );
                }
@@ -866,16 +860,7 @@ class LoginForm extends SpecialPage {
                if( $injected_html !== '' ) {
                        $this->displaySuccessfulLogin( 'loginsuccess', $injected_html );
                } else {
-                       $titleObj = Title::newFromText( $this->mReturnTo );
-                       if ( !$titleObj instanceof Title ) {
-                               $titleObj = Title::newMainPage();
-                       }
-                       $redirectUrl = $titleObj->getFullURL( $this->mReturnToQuery );
-                       global $wgSecureLogin;
-                       if( $wgSecureLogin && !$this->mStickHTTPS ) {
-                               $redirectUrl = preg_replace( '/^https:/', 'http:', $redirectUrl );
-                       }
-                       $this->getOutput()->redirect( $redirectUrl );
+                       $this->executeReturnTo( 'successredirect' );
                }
        }
 
@@ -917,11 +902,7 @@ class LoginForm extends SpecialPage {
 
                $out->addHTML( $injected_html );
 
-               if ( $this->mReturnTo !== '' ) {
-                       $out->returnToMain( null, $this->mReturnTo, $this->mReturnToQuery );
-               } else {
-                       $out->returnToMain( null );
-               }
+               $this->executeReturnTo( 'success' );
        }
 
        /**
@@ -955,7 +936,42 @@ class LoginForm extends SpecialPage {
                        $block->getByName()
                );
 
-               $out->returnToMain( false );
+               $this->executeReturnTo( 'error' );
+       }
+
+       /**
+        * Add a "return to" link or redirect to it.
+        *
+        * @param $type string, one of the following:
+        *    - error: display a return to link ignoring $wgRedirectOnLogin
+        *    - success: display a return to link using $wgRedirectOnLogin if needed
+        *    - successredirect: send an HTTP redirect using $wgRedirectOnLogin if needed
+        */
+       private function executeReturnTo( $type ) {
+               global $wgRedirectOnLogin, $wgSecureLogin;
+
+               if ( $type != 'error' && $wgRedirectOnLogin !== null ) {
+                       $returnTo = $wgRedirectOnLogin;
+                       $returnToQuery = array();
+               } else {
+                       $returnTo = $this->mReturnTo;
+                       $returnToQuery = wfCgiToArray( $this->mReturnToQuery );
+               }
+
+               $returnToTitle = Title::newFromText( $returnTo );
+               if ( !$returnToTitle ) {
+                       $returnToTitle = Title::newMainPage();
+               }
+
+               if ( $type == 'successredirect' ) {
+                       $redirectUrl = $returnToTitle->getFullURL( $returnToQuery );
+                       if( $wgSecureLogin && !$this->mStickHTTPS ) {
+                               $redirectUrl = preg_replace( '/^https:/', 'http:', $redirectUrl );
+                       }
+                       $this->getOutput()->redirect( $redirectUrl );
+               } else {
+                       $this->getOutput()->addReturnTo( $returnToTitle, $returnToQuery );
+               }
        }
 
        /**
@@ -1269,19 +1285,24 @@ class LoginForm extends SpecialPage {
                        // no link for currently used language
                        return htmlspecialchars( $text );
                }
-               $attr = array( 'uselang' => $lang );
+               $query = array( 'uselang' => $lang );
                if( $this->mType == 'signup' ) {
-                       $attr['type'] = 'signup';
+                       $query['type'] = 'signup';
                }
                if( $this->mReturnTo !== '' ) {
-                       $attr['returnto'] = $this->mReturnTo;
-                       $attr['returntoquery'] = $this->mReturnToQuery;
+                       $query['returnto'] = $this->mReturnTo;
+                       $query['returntoquery'] = $this->mReturnToQuery;
                }
+
+               $attr = array();
+               $targetLanguage = Language::factory( $lang );
+               $attr['lang'] = $attr['hreflang'] = $targetLanguage->getHtmlCode();
+
                return Linker::linkKnown(
                        $this->getTitle(),
                        htmlspecialchars( $text ),
-                       array(),
-                       $attr
+                       $attr,
+                       $query
                );
        }
 }
index a1cda0d..fbc2c93 100644 (file)
@@ -80,13 +80,13 @@ class SpecialVersion extends SpecialPage {
         * @return string
         */
        private static function getMediaWikiCredits() {
-               $ret = Xml::element( 'h2', array( 'id' => 'mw-version-license' ), wfMsg( 'version-license' ) );
+               $ret = Xml::element( 'h2', array( 'id' => 'mw-version-license' ), wfMessage( 'version-license' )->text() );
 
                // This text is always left-to-right.
                $ret .= '<div>';
                $ret .= "__NOTOC__
                " . self::getCopyrightAndAuthorList() . "\n
-               " . wfMsg( 'version-license-info' );
+               " . wfMessage( 'version-license-info' )->text();
                $ret .= '</div>';
 
                return str_replace( "\t\t", '', $ret ) . "\n";
@@ -109,11 +109,11 @@ class SpecialVersion extends SpecialPage {
                        'Roan Kattouw', 'Trevor Parscal', 'Bryan Tong Minh', 'Sam Reed',
                        'Victor Vasiliev', 'Rotem Liss', 'Platonides', 'Antoine Musso',
                        'Timo Tijhof',
-                       wfMsg( 'version-poweredby-others' )
+                       wfMessage( 'version-poweredby-others' )->text()
                );
 
-               return wfMsg( 'version-poweredby-credits', date( 'Y' ),
-                       $wgLang->listToText( $authorList ) );
+               return wfMessage( 'version-poweredby-credits', date( 'Y' ),
+                       $wgLang->listToText( $authorList ) )->text();
        }
 
        /**
@@ -125,8 +125,8 @@ class SpecialVersion extends SpecialPage {
                $dbr = wfGetDB( DB_SLAVE );
 
                // Put the software in an array of form 'name' => 'version'. All messages should
-               // be loaded here, so feel free to use wfMsg*() in the 'name'. Raw HTML or wikimarkup
-               // can be used.
+               // be loaded here, so feel free to use wfMessage in the 'name'. Raw HTML or
+               // wikimarkup can be used.
                $software = array();
                $software['[https://www.mediawiki.org/ MediaWiki]'] = self::getVersionLinked();
                $software['[http://www.php.net/ PHP]'] = phpversion() . " (" . php_sapi_name() . ")";
@@ -135,11 +135,11 @@ class SpecialVersion extends SpecialPage {
                // Allow a hook to add/remove items.
                wfRunHooks( 'SoftwareInfo', array( &$software ) );
 
-               $out = Xml::element( 'h2', array( 'id' => 'mw-version-software' ), wfMsg( 'version-software' ) ) .
+               $out = Xml::element( 'h2', array( 'id' => 'mw-version-software' ), wfMessage( 'version-software' )->text() ) .
                           Xml::openElement( 'table', array( 'class' => 'wikitable', 'id' => 'sv-software' ) ) .
                                "<tr>
-                                       <th>" . wfMsg( 'version-software-product' ) . "</th>
-                                       <th>" . wfMsg( 'version-software-version' ) . "</th>
+                                       <th>" . wfMessage( 'version-software-product' )->text() . "</th>
+                                       <th>" . wfMessage( 'version-software-version' )->text() . "</th>
                                </tr>\n";
 
                foreach( $software as $name => $version ) {
@@ -177,11 +177,11 @@ class SpecialVersion extends SpecialPage {
                        $version = "$wgVersion (r{$svnInfo['checkout-rev']})";
                } else {
                        $version = $wgVersion . ' ' .
-                               wfMsg(
+                               wfMessage(
                                        'version-svn-revision',
                                        isset( $info['directory-rev'] ) ? $info['directory-rev'] : '',
                                        $info['checkout-rev']
-                               );
+                               )->text();
                }
 
                wfProfileOut( __METHOD__ );
@@ -227,11 +227,11 @@ class SpecialVersion extends SpecialPage {
                        return false;
                }
 
-               $linkText = wfMsg(
+               $linkText = wfMessage(
                        'version-svn-revision',
                        isset( $info['directory-rev'] ) ? $info['directory-rev'] : '',
                        $info['checkout-rev']
-               );
+               )->text();
 
                if ( isset( $info['viewvc-url'] ) ) {
                        $version = "$wgVersion [{$info['viewvc-url']} $linkText]";
@@ -277,14 +277,14 @@ class SpecialVersion extends SpecialPage {
        public static function getExtensionTypes() {
                if ( self::$extensionTypes === false ) {
                        self::$extensionTypes = array(
-                               'specialpage' => wfMsg( 'version-specialpages' ),
-                               'parserhook' => wfMsg( 'version-parserhooks' ),
-                               'variable' => wfMsg( 'version-variables' ),
-                               'media' => wfMsg( 'version-mediahandlers' ),
-                               'antispam' => wfMsg( 'version-antispam' ),
-                               'skin' => wfMsg( 'version-skins' ),
-                               'api' => wfMsg( 'version-api' ),
-                               'other' => wfMsg( 'version-other' ),
+                               'specialpage' => wfMessage( 'version-specialpages' )->text(),
+                               'parserhook' => wfMessage( 'version-parserhooks' )->text(),
+                               'variable' => wfMessage( 'version-variables' )->text(),
+                               'media' => wfMessage( 'version-mediahandlers' )->text(),
+                               'antispam' => wfMessage( 'version-antispam' )->text(),
+                               'skin' => wfMessage( 'version-skins' )->text(),
+                               'api' => wfMessage( 'version-api' )->text(),
+                               'other' => wfMessage( 'version-other' )->text(),
                        );
 
                        wfRunHooks( 'ExtensionTypes', array( &self::$extensionTypes ) );
@@ -326,7 +326,7 @@ class SpecialVersion extends SpecialPage {
                 */
                wfRunHooks( 'SpecialVersionExtensionTypes', array( &$this, &$extensionTypes ) );
 
-               $out = Xml::element( 'h2', array( 'id' => 'mw-version-ext' ), wfMsg( 'version-extensions' ) ) .
+               $out = Xml::element( 'h2', array( 'id' => 'mw-version-ext' ), $this->msg( 'version-extensions' )->text() ) .
                        Xml::openElement( 'table', array( 'class' => 'wikitable', 'id' => 'sv-ext' ) );
 
                // Make sure the 'other' type is set to an array.
@@ -352,7 +352,7 @@ class SpecialVersion extends SpecialPage {
                $out .= $this->getExtensionCategory( 'other', $extensionTypes['other'] );
 
                if ( count( $wgExtensionFunctions ) ) {
-                       $out .= $this->openExtType( wfMsg( 'version-extension-functions' ), 'extension-functions' );
+                       $out .= $this->openExtType( $this->msg( 'version-extension-functions' )->text(), 'extension-functions' );
                        $out .= '<tr><td colspan="4">' . $this->listToText( $wgExtensionFunctions ) . "</td></tr>\n";
                }
 
@@ -363,13 +363,13 @@ class SpecialVersion extends SpecialPage {
                        for ( $i = 0; $i < $cnt; ++$i ) {
                                $tags[$i] = "&lt;{$tags[$i]}&gt;";
                        }
-                       $out .= $this->openExtType( wfMsg( 'version-parser-extensiontags' ), 'parser-tags' );
+                       $out .= $this->openExtType( $this->msg( 'version-parser-extensiontags' )->text(), 'parser-tags' );
                        $out .= '<tr><td colspan="4">' . $this->listToText( $tags ). "</td></tr>\n";
                }
 
                $fhooks = $wgParser->getFunctionHooks();
                if( count( $fhooks ) ) {
-                       $out .= $this->openExtType( wfMsg( 'version-parser-function-hooks' ), 'parser-function-hooks' );
+                       $out .= $this->openExtType( $this->msg( 'version-parser-function-hooks' )->text(), 'parser-function-hooks' );
                        $out .= '<tr><td colspan="4">' . $this->listToText( $fhooks ) . "</td></tr>\n";
                }
 
@@ -448,7 +448,7 @@ class SpecialVersion extends SpecialPage {
                                # Make subversion text/link.
                                if ( $svnInfo !== false ) {
                                        $directoryRev = isset( $svnInfo['directory-rev'] ) ? $svnInfo['directory-rev'] : null;
-                                       $vcsText = wfMsg( 'version-svn-revision', $directoryRev, $svnInfo['checkout-rev'] );
+                                       $vcsText = $this->msg( 'version-svn-revision', $directoryRev, $svnInfo['checkout-rev'] )->text();
                                        $vcsText = isset( $svnInfo['viewvc-url'] ) ? '[' . $svnInfo['viewvc-url'] . " $vcsText]" : $vcsText;
                                }
                        }
@@ -463,7 +463,7 @@ class SpecialVersion extends SpecialPage {
 
                if ( isset( $extension['version'] ) ) {
                        $versionText = '<span class="mw-version-ext-version">' .
-                               wfMsg( 'version-version', $extension['version'] ) .
+                               $this->msg( 'version-version', $extension['version'] )->text() .
                                '</span>';
                } else {
                        $versionText = '';
@@ -480,9 +480,9 @@ class SpecialVersion extends SpecialPage {
                                $descriptionMsgKey = $descriptionMsg[0]; // Get the message key
                                array_shift( $descriptionMsg ); // Shift out the message key to get the parameters only
                                array_map( "htmlspecialchars", $descriptionMsg ); // For sanity
-                               $description = wfMsg( $descriptionMsgKey, $descriptionMsg );
+                               $description = $this->msg( $descriptionMsgKey, $descriptionMsg )->text();
                        } else {
-                               $description = wfMsg( $descriptionMsg );
+                               $description = $this->msg( $descriptionMsg )->text();
                        }
                }
 
@@ -515,11 +515,11 @@ class SpecialVersion extends SpecialPage {
                        $myWgHooks = $wgHooks;
                        ksort( $myWgHooks );
 
-                       $ret = Xml::element( 'h2', array( 'id' => 'mw-version-hooks' ), wfMsg( 'version-hooks' ) ) .
+                       $ret = Xml::element( 'h2', array( 'id' => 'mw-version-hooks' ), $this->msg( 'version-hooks' )->text() ) .
                                Xml::openElement( 'table', array( 'class' => 'wikitable', 'id' => 'sv-hooks' ) ) .
                                "<tr>
-                                       <th>" . wfMsg( 'version-hook-name' ) . "</th>
-                                       <th>" . wfMsg( 'version-hook-subscribedby' ) . "</th>
+                                       <th>" . $this->msg( 'version-hook-name' )->text() . "</th>
+                                       <th>" . $this->msg( 'version-hook-subscribedby' )->text() . "</th>
                                </tr>\n";
 
                        foreach ( $myWgHooks as $hook => $hooks ) {
@@ -575,7 +575,7 @@ class SpecialVersion extends SpecialPage {
                $list = array();
                foreach( (array)$authors as $item ) {
                        if( $item == '...' ) {
-                               $list[] = wfMsg( 'version-poweredby-others' );
+                               $list[] = $this->msg( 'version-poweredby-others' )->text();
                        } else {
                                $list[] = $item;
                        }
@@ -759,11 +759,11 @@ class SpecialVersion extends SpecialPage {
                        'version-entrypoints-load-php' => wfScript( 'load' ),
                );
 
-               $out = Html::element( 'h2', array( 'id' => 'mw-version-entrypoints' ), wfMsg( 'version-entrypoints' ) ) .
+               $out = Html::element( 'h2', array( 'id' => 'mw-version-entrypoints' ), $this->msg( 'version-entrypoints' )->text() ) .
                        Html::openElement( 'table', array( 'class' => 'wikitable', 'id' => 'mw-version-entrypoints-table' ) ) .
                        Html::openElement( 'tr' ) .
-                       Html::element( 'th', array(), wfMessage( 'version-entrypoints-header-entrypoint' )->text() ) .
-                       Html::element( 'th', array(), wfMessage( 'version-entrypoints-header-url' )->text() ) .
+                       Html::element( 'th', array(), $this->msg( 'version-entrypoints-header-entrypoint' )->text() ) .
+                       Html::element( 'th', array(), $this->msg( 'version-entrypoints-header-url' )->text() ) .
                        Html::closeElement( 'tr' );
 
                foreach ( $entryPoints as $message => $value ) {
@@ -771,7 +771,7 @@ class SpecialVersion extends SpecialPage {
                        $out .= Html::openElement( 'tr' ) .
                                // ->text() looks like it should be ->parse(), but this function
                                // returns wikitext, not HTML, boo
-                               Html::rawElement( 'td', array(), wfMessage( $message )->text() ) .
+                               Html::rawElement( 'td', array(), $this->msg( $message )->text() ) .
                                Html::rawElement( 'td', array(), Html::rawElement( 'code', array(), "[$url $value]" ) ) .
                                Html::closeElement( 'tr' );
                }
index b22c144..98727f1 100644 (file)
@@ -169,9 +169,10 @@ class UsercreateTemplate extends QuickTemplate {
                        <td></td>
                        <td class="mw-input">
                                <?php
-                               global $wgCookieExpiration, $wgLang;
+                               global $wgCookieExpiration;
+                               $expirationDays = ceil( $wgCookieExpiration / ( 3600 * 24 ) );
                                echo Xml::checkLabel(
-                                       wfMsgExt( 'remembermypassword', 'parsemag', $wgLang->formatNum( ceil( $wgCookieExpiration / ( 3600 * 24 ) ) ) ),
+                                       wfMessage( 'remembermypassword' )->numParams( $expirationDays )->text(),
                                        'wpRemember',
                                        'wpRemember',
                                        $this->data['remember'],
index 5a2c633..a3f6a38 100644 (file)
@@ -108,9 +108,10 @@ class UserloginTemplate extends QuickTemplate {
                        <td></td>
                        <td class="mw-input">
                                <?php
-                               global $wgCookieExpiration, $wgLang;
+                               global $wgCookieExpiration;
+                               $expirationDays = ceil( $wgCookieExpiration / ( 3600 * 24 ) );
                                echo Xml::checkLabel(
-                                       wfMsgExt( 'remembermypassword', 'parsemag', $wgLang->formatNum( ceil( $wgCookieExpiration / ( 3600 * 24 ) ) ) ),
+                                       wfMessage( 'remembermypassword' )->numParams( $expirationDays )->text(),
                                        'wpRemember',
                                        'wpRemember',
                                        $this->data['remember'],
@@ -126,7 +127,7 @@ class UserloginTemplate extends QuickTemplate {
                        <td class="mw-input">
                        <?php
                        echo Xml::checkLabel(
-                               wfMsg( 'securelogin-stick-https' ),
+                               wfMessage( 'securelogin-stick-https' )->text(),
                                'wpStickHTTPS',
                                'wpStickHTTPS',
                                $this->data['stickHTTPS'],
@@ -140,7 +141,7 @@ class UserloginTemplate extends QuickTemplate {
                        <td></td>
                        <td class="mw-submit">
                                <?php
-               echo Html::input( 'wpLoginAttempt', wfMsg( 'login' ), 'submit', array(
+               echo Html::input( 'wpLoginAttempt', wfMessage( 'login' )->text(), 'submit', array(
                        'id' => 'wpLoginAttempt',
                        'tabindex' => '9'
                ) );
@@ -153,10 +154,14 @@ class UserloginTemplate extends QuickTemplate {
                                );
                        } elseif( $this->data['resetlink'] === null ) {
                                echo '&#160;';
-                               echo Html::input( 'wpMailmypassword', wfMsg( 'mailmypassword' ), 'submit', array(
-                                       'id' => 'wpMailmypassword',
-                                       'tabindex' => '10'
-                               ) );
+                               echo Html::input(
+                                       'wpMailmypassword',
+                                       wfMessage( 'mailmypassword' )->text(),
+                                       'submit', array(
+                                               'id' => 'wpMailmypassword',
+                                               'tabindex' => '10'
+                                       )
+                               );
                        }
                } ?>
 
index 479083e..aa333fc 100644 (file)
@@ -16,4 +16,4 @@ quiet: yes
 quote-nbsp: yes
 fix-backslash: no
 fix-uri: no
-new-inline-tags: video,audio,source,track
+new-inline-tags: video,audio,source,track,bdi
index ba3a05c..d40b53d 100644 (file)
@@ -1184,7 +1184,7 @@ abstract class UploadBase {
                        $wgOut->wrapWikiMsg( "<div class=\"error\">\n$1\n</div>",
                                array( 'virus-badscanner', $wgAntivirus ) );
                        wfProfileOut( __METHOD__ );
-                       return wfMsg( 'virus-unknownscanner' ) . " $wgAntivirus";
+                       return wfMessage( 'virus-unknownscanner' )->text() . " $wgAntivirus";
                }
 
                # look up scanner configuration
@@ -1227,7 +1227,7 @@ abstract class UploadBase {
 
                        if ( $wgAntivirusRequired ) {
                                wfProfileOut( __METHOD__ );
-                               return wfMsg( 'virus-scanfailed', array( $exitCode ) );
+                               return wfMessage( 'virus-scanfailed', array( $exitCode ) )->text();
                        } else {
                                wfProfileOut( __METHOD__ );
                                return null;
index c11d719..fdd2b1a 100644 (file)
@@ -70,13 +70,14 @@ class UploadFromUrl extends UploadBase {
                if ( !count( $wgCopyUploadsDomains ) ) {
                        return true;
                }
-               $parsedUrl = wfParseUrl( $url );
-               if ( !$parsedUrl ) {
+               $uri = new Uri( $url );
+               $parsedDomain = $uri->getHost();
+               if ( $parsedDomain === null ) {
                        return false;
                }
                $valid = false;
                foreach( $wgCopyUploadsDomains as $domain ) {
-                       if ( $parsedUrl['host'] === $domain ) {
+                       if ( $parsedDomain === $domain ) {
                                $valid = true;
                                break;
                        }
index 320cdf2..69a72eb 100644 (file)
@@ -266,9 +266,9 @@ class Language {
         */
        public static function isValidBuiltInCode( $code ) {
 
-               if( !is_string($code) ) {
+               if ( !is_string( $code ) ) {
                        $type = gettype( $code );
-                       if( $type === 'object' ) {
+                       if ( $type === 'object' ) {
                                $addmsg = " of class " . get_class( $code );
                        } else {
                                $addmsg = '';
@@ -742,7 +742,7 @@ class Language {
 
                $names = array();
 
-               if( $inLanguage ) {
+               if ( $inLanguage ) {
                        # TODO: also include when $inLanguage is null, when this code is more efficient
                        wfRunHooks( 'LanguageGetTranslatedLanguageNames', array( &$names, $inLanguage ) );
                }
@@ -762,11 +762,11 @@ class Language {
 
                $returnMw = array();
                $coreCodes = array_keys( $mwNames );
-               foreach( $coreCodes as $coreCode ) {
+               foreach ( $coreCodes as $coreCode ) {
                        $returnMw[$coreCode] = $names[$coreCode];
                }
 
-               if( $include === 'mwfile' ) {
+               if ( $include === 'mwfile' ) {
                        $namesMwFile = array();
                        # We do this using a foreach over the codes instead of a directory
                        # loop so that messages files in extensions will work correctly.
@@ -800,7 +800,7 @@ class Language {
         * @return string
         */
        function getMessageFromDB( $msg ) {
-               return wfMsgExt( $msg, array( 'parsemag', 'language' => $this ) );
+               return wfMessage( $msg )->inLanguage( $this )->text();
        }
 
        /**
@@ -2865,7 +2865,7 @@ class Language {
          *
          * An example of this function being called:
          * <code>
-         * wfMsg( 'message', $wgLang->formatNum( $num ) )
+         * wfMessage( 'message' )->numParams( $num )->text()
          * </code>
          *
          * See LanguageGu.php for the Gujarati implementation and
@@ -3032,10 +3032,7 @@ class Language {
         */
        function commaList( array $list ) {
                return implode(
-                       wfMsgExt(
-                               'comma-separator',
-                               array( 'parsemag', 'escapenoentities', 'language' => $this )
-                       ),
+                       wfMessage( 'comma-separator' )->inLanguage( $this )->escaped(),
                        $list
                );
        }
@@ -3048,10 +3045,7 @@ class Language {
         */
        function semicolonList( array $list ) {
                return implode(
-                       wfMsgExt(
-                               'semicolon-separator',
-                               array( 'parsemag', 'escapenoentities', 'language' => $this )
-                       ),
+                       wfMessage( 'semicolon-separator' )->inLanguage( $this )->escaped(),
                        $list
                );
        }
@@ -3063,10 +3057,7 @@ class Language {
         */
        function pipeList( array $list ) {
                return implode(
-                       wfMsgExt(
-                               'pipe-separator',
-                               array( 'escapenoentities', 'language' => $this )
-                       ),
+                       wfMessage( 'pipe-separator' )->inLanguage( $this )->escaped(),
                        $list
                );
        }
@@ -3091,7 +3082,7 @@ class Language {
        function truncate( $string, $length, $ellipsis = '...', $adjustLength = true ) {
                # Use the localized ellipsis character
                if ( $ellipsis == '...' ) {
-                       $ellipsis = wfMsgExt( 'ellipsis', array( 'escapenoentities', 'language' => $this ) );
+                       $ellipsis = wfMessage( 'ellipsis' )->inLanguage( $this )->escaped();
                }
                # Check if there is no need to truncate
                if ( $length == 0 ) {
@@ -3189,7 +3180,7 @@ class Language {
        function truncateHtml( $text, $length, $ellipsis = '...' ) {
                # Use the localized ellipsis character
                if ( $ellipsis == '...' ) {
-                       $ellipsis = wfMsgExt( 'ellipsis', array( 'escapenoentities', 'language' => $this ) );
+                       $ellipsis = wfMessage( 'ellipsis' )->inLanguage( $this )->escaped();
                }
                # Check if there is clearly no need to truncate
                if ( $length <= 0 ) {
@@ -3418,9 +3409,9 @@ class Language {
                if ( !count( $forms ) ) {
                        return '';
                }
-               $forms = $this->preConvertPlural( $forms, 2 );
-
-               return ( $count == 1 ) ? $forms[0] : $forms[1];
+               $pluralForm = $this->getPluralForm( $count );
+               $pluralForm = min( $pluralForm, count( $forms ) - 1 );
+               return $forms[$pluralForm];
        }
 
        /**
@@ -4116,7 +4107,7 @@ class Language {
                $dirmark = ( $oppositedm ? $this->getDirMark( true ) : '' ) .
                        $this->getDirMark();
                $details = $details ? $dirmark . $this->getMessageFromDB( 'word-separator' ) .
-                       wfMsgExt( 'parentheses', array( 'escape', 'replaceafter', 'language' => $this ), $details ) : '';
+                       wfMessage( 'parentheses' )->rawParams( $details )->inLanguage( $this )->escaped() : '';
                return $page . $details;
        }
 
@@ -4189,4 +4180,34 @@ class Language {
        public function getConvRuleTitle() {
                return $this->mConverter->getConvRuleTitle();
        }
+
+       /**
+        * Get the compiled plural rules for the language
+        * @since 1.20
+        * @return array Associative array with plural form, and plural rule as key-value pairs
+        */
+       public function getCompiledPluralRules() {
+               return self::$dataCache->getItem( strtolower( $this->mCode ), 'compiledPluralRules' );
+       }
+
+       /**
+        * Get the plural rules for the language
+        * @since 1.20
+        * @return array Associative array with plural form, and plural rule as key-value pairs
+        */
+       public function getPluralRules() {
+               return self::$dataCache->getItem( strtolower( $this->mCode ), 'pluralRules' );
+       }
+
+       /**
+        * Find the plural form matching to the given number
+        * It return the form index.
+        * @return int The index of the plural form
+        */
+       private function getPluralForm( $number ) {
+               $pluralRules = $this->getCompiledPluralRules();
+               $form = CLDRPluralRuleEvaluator::evaluateCompiled( $number, $pluralRules );
+               return $form;
+       }
+
 }
index edc4822..cbd5d9a 100644 (file)
@@ -687,8 +687,8 @@ class LanguageConverter {
                                                $inner .= '-{';
                                                if ( !$warningDone ) {
                                                        $inner .= '<span class="error">' .
-                                                               wfMsgForContent( 'language-converter-depth-warning',
-                                                                       $this->mMaxDepth ) .
+                                                               wfMessage( 'language-converter-depth-warning' )
+                                                                       ->numParams( $this->mMaxDepth )->inContentLanguage()->text() .
                                                                '</span>';
                                                        $warningDone = true;
                                                }
diff --git a/languages/classes/LanguageAm.php b/languages/classes/LanguageAm.php
deleted file mode 100644 (file)
index 4c39c26..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * Amharic (አማርኛ) specific code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Language
- */
-
-/**
- * Amharic (አማርኛ)
- *
- * @ingroup Language
- */
-class LanguageAm extends Language {
-       /**
-        * Use singular form for zero
-        *
-        * @param $count int
-        * @param $forms array
-        *
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) { return ''; }
-               $forms = $this->preConvertPlural( $forms, 2 );
-
-               return ( $count <= 1 ) ? $forms[0] : $forms[1];
-       }
-}
index cc6b85c..553ff07 100644 (file)
  */
 class LanguageAr extends Language {
 
-       /**
-        * @param $count int
-        * @param $forms array
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) { return ''; }
-               $forms = $this->preConvertPlural( $forms, 6 );
-
-               if ( $count == 0 ) {
-                       $index = 0;
-               } elseif ( $count == 1 ) {
-                       $index = 1;
-               } elseif ( $count == 2 ) {
-                       $index = 2;
-               } elseif ( $count % 100 >= 3 && $count % 100 <= 10 ) {
-                       $index = 3;
-               } elseif ( $count % 100 >= 11 && $count % 100 <= 99 ) {
-                       $index = 4;
-               } else {
-                       $index = 5;
-               }
-               return $forms[$index];
-       }
-
        /**
         * Temporary hack for bug 9413: replace Arabic presentation forms with their
         * standard equivalents.
diff --git a/languages/classes/LanguageBe.php b/languages/classes/LanguageBe.php
deleted file mode 100644 (file)
index b5b5966..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-/**
- * Belarusian normative (Беларуская мова) specific code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
- * @license http://www.gnu.org/copyleft/fdl.html GNU Free Documentation License
- * @ingroup Language
- */
-
-/**
- * Belarusian normative (Беларуская мова)
- *
- * This is still the version from Be-x-old, only duplicated for consistency of
- * plural and grammar functions. If there are errors please send a patch.
- *
- * @ingroup Language
- * @see http://be.wikipedia.org/wiki/Talk:LanguageBe.php
- */
-class LanguageBe extends Language {
-
-       /**
-        * @param $count int
-        * @param $forms array
-        *
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) { return ''; }
-               // @todo FIXME: CLDR defines 4 plural forms instead of 3
-               //        http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html
-               $forms = $this->preConvertPlural( $forms, 3 );
-
-               if ( $count > 10 && floor( ( $count % 100 ) / 10 ) == 1 ) {
-                       return $forms[2];
-               } else {
-                       switch ( $count % 10 ) {
-                               case 1:  return $forms[0];
-                               case 2:
-                               case 3:
-                               case 4:  return $forms[1];
-                               default: return $forms[2];
-                       }
-               }
-       }
-}
diff --git a/languages/classes/LanguageBh.php b/languages/classes/LanguageBh.php
deleted file mode 100644 (file)
index 0eaf2ff..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * Bihari (भोजपुरी) specific code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Language
- */
-
-/**
- * Bihari (भोजपुरी)
- *
- * @ingroup Language
- */
-class LanguageBh extends Language {
-       /**
-        * Use singular form for zero
-        *
-        * @param $count int
-        * @param $forms array
-        *
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) { return ''; }
-               $forms = $this->preConvertPlural( $forms, 2 );
-
-               return ( $count <= 1 ) ? $forms[0] : $forms[1];
-       }
-}
index 0929641..3da7711 100644 (file)
  */
 class LanguageBs extends Language {
 
-       /**
-        * @param $count int
-        * @param $forms array
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) { return ''; }
-               $forms = $this->preConvertPlural( $forms, 3 );
-
-               // @todo FIXME: CLDR defines 4 plural forms instead of 3. Plural for decimals is missing.
-               //        http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html
-               if ( $count > 10 && floor( ( $count % 100 ) / 10 ) == 1 ) {
-                       return $forms[2];
-               } else {
-                       switch ( $count % 10 ) {
-                               case 1:  return $forms[0];
-                               case 2:
-                               case 3:
-                               case 4:  return $forms[1];
-                               default: return $forms[2];
-                       }
-               }
-       }
 
        /**
         * Convert from the nominative form of a noun to some other case
diff --git a/languages/classes/LanguageCs.php b/languages/classes/LanguageCs.php
deleted file mode 100644 (file)
index 49c4756..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-/**
- * Czech (čeština [subst.], český [adj.], česky [adv.]) specific code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Language
- */
-
-/**
- * Czech (čeština [subst.], český [adj.], česky [adv.])
- *
- * @ingroup Language
- */
-class LanguageCs extends Language {
-
-       /**
-        * Plural transformations
-        * Invoked by putting
-        * {{plural:count|form1|form2-4|form0,5+}} for two forms plurals
-        * {{plural:count|form1|form0,2+}} for single form plurals
-        * in a message
-        * @param $count int
-        * @param $forms array
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) { return ''; }
-               $forms = $this->preConvertPlural( $forms, 3 );
-
-               switch ( $count ) {
-                       case 1:
-                               return $forms[0];
-                       case 2:
-                       case 3:
-                       case 4:
-                               return $forms[1];
-                       default:
-                               return $forms[2];
-               }
-       }
-}
index bfa95cf..2016a43 100644 (file)
@@ -20,7 +20,7 @@
  * @file
  * @ingroup Language
  */
+
 /**
  * Old Church Slavonic (Ѩзыкъ словѣньскъ)
  *
diff --git a/languages/classes/LanguageCy.php b/languages/classes/LanguageCy.php
deleted file mode 100644 (file)
index 9c28279..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-/**
- * Welsh (Cymraeg) specific code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Niklas Laxström
- * @ingroup Language
- */
-
-/**
- * Welsh (Cymraeg)
- *
- * @ingroup Language
- */
-class LanguageCy extends Language {
-
-       /**
-        * @param $count int
-        * @param $forms array
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) { return ''; }
-
-               $forms = $this->preConvertPlural( $forms, 6 );
-               $count = abs( $count );
-               if ( $count >= 0 && $count <= 3 ) {
-                       return $forms[$count];
-               } elseif ( $count == 6 ) {
-                       return $forms[4];
-               } else {
-                       return $forms[5];
-               }
-       }
-}
index b8ed7fc..975157f 100644 (file)
@@ -54,21 +54,4 @@ class LanguageDsb extends Language {
                return $word; # this will return the original value for 'nominatiw' (nominativ) and all undefined case values
        }
 
-       /**
-        * @param $count int
-        * @param $forms array
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) { return ''; }
-               $forms = $this->preConvertPlural( $forms, 4 );
-
-               switch ( abs( $count ) % 100 ) {
-                       case 1:  return $forms[0]; // singular
-                       case 2:  return $forms[1]; // dual
-                       case 3:
-                       case 4:  return $forms[2]; // plural
-                       default: return $forms[3]; // pluralgen
-               }
-       }
 }
diff --git a/languages/classes/LanguageFr.php b/languages/classes/LanguageFr.php
deleted file mode 100644 (file)
index edbe1fb..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * French (Français) specific code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup Language
- */
-
-/**
- * French (Français)
- *
- * @ingroup Language
- */
-class LanguageFr extends Language {
-       /**
-        * Use singular form for zero (see bug 7309)
-        *
-        * @param $count int
-        * @param $forms array
-        *
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) { return ''; }
-               $forms = $this->preConvertPlural( $forms, 2 );
-
-               return ( $count <= 1 ) ? $forms[0] : $forms[1];
-       }
-}
index cb9fa04..2f58384 100644 (file)
@@ -64,24 +64,4 @@ class LanguageGa extends Language {
                return $word;
        }
 
-       /**
-        * @param $count int
-        * @param $forms array
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) { return ''; }
-
-               // plural forms per http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html#ga
-               $forms = $this->preConvertPlural( $forms, 3 );
-
-               if ( $count == 1 ) {
-                       $index = 0;
-               } elseif ( $count == 2 ) {
-                       $index = 1;
-               } else {
-                       $index = 2;
-               }
-               return $forms[$index];
-       }
 }
diff --git a/languages/classes/LanguageGd.php b/languages/classes/LanguageGd.php
deleted file mode 100644 (file)
index f042b02..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-/**
- * Scots Gaelic (Gàidhlig) specific code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Raimond Spekking
- * @author Niklas Laxström
- * @ingroup Language
- */
-
-/**
- * Scots Gaelic (Gàidhlig)
- *
- * @ingroup Language
- */
-class LanguageGd extends Language {
-
-       /**
-        * Plural form transformations
-        * Based on this discussion: http://translatewiki.net/wiki/Thread:Support/New_plural_rules_for_Scots_Gaelic_(gd)
-        *
-        * $forms[0] - 1
-        * $forms[1] - 2
-        * $forms[2] - 11
-        * $forms[3] - 12
-        * $forms[4] - 3-10, 13-19
-        * $forms[5] - 0, 20, rest
-        *
-        * @param $count int
-        * @param $forms array
-        *
-        * @return string
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) { return ''; }
-               $forms = $this->preConvertPlural( $forms, 6 );
-
-               $count = abs( $count );
-               if ( $count == 1 ) {
-                       return $forms[0];
-               } elseif ( $count == 2 ) {
-                       return $forms[1];
-               } elseif ( $count == 11 ) {
-                       return $forms[2];
-               } elseif ( $count == 12 ) {
-                       return $forms[3];
-               } elseif ( ($count >= 3 && $count <= 10) || ($count >= 13 && $count <= 19) ) {
-                       return $forms[4];
-               } else {
-                       return $forms[5];
-               }
-       }
-}
index 22be1de..48c0c05 100644 (file)
@@ -68,23 +68,4 @@ class LanguageHe extends Language {
                return $word;
        }
 
-       /**
-        * Gets a number and uses the suited form of the word.
-        *
-        * @param $count Integer: the number of items
-        * @param $forms Array with 3 items: the three plural forms
-        * @return String: the suited form of word
-        */
-       function convertPlural( $count, $forms ) {
-               if ( !count( $forms ) ) { return ''; }
-               $forms = $this->preConvertPlural( $forms, 3 );
-
-               if ( $count == 1 ) {
-                       return $forms[0]; // Singular
-               } elseif ( $count == 2 ) {
-                       return $forms[2]; // Dual or plural if dual is not provided (filled in preConvertPlural)
-               } else {
-                       return $forms[1]; // Plural
-               }
-       }
 }
diff --git a/languages/data/plurals-mediawiki.xml b/languages/data/plurals-mediawiki.xml
new file mode 100644 (file)
index 0000000..fe9e031
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd">
+<supplementalData>
+       <plurals>
+               <pluralRules locales="he">
+                       <pluralRule count="one">n is 1</pluralRule>
+                       <pluralRule count="two">n is 2</pluralRule>
+               </pluralRules>
+       </plurals>
+       <pluralRules locales="dsb">
+               <pluralRule count="one">n mod 100 is 1</pluralRule>
+               <pluralRule count="two">n mod 100 is 2</pluralRule>
+               <pluralRule count="few">n mod 100 in 3..4</pluralRule>
+       </pluralRules>
+       <pluralRules locales="cu">
+               <pluralRule count="one">n mod 10 is 1</pluralRule>
+               <pluralRule count="two">n mod 10 is 2</pluralRule>
+               <pluralRule count="few">n mod 10 in 3..4</pluralRule>
+       </pluralRules>
+       <!-- Plural form transformations
+       Based on this discussion: http://translatewiki.net/wiki/Thread:Support/New_plural_rules_for_Scots_Gaelic_(gd)
+       $forms[0] - 1
+       $forms[1] - 2
+       $forms[2] - 11
+       $forms[3] - 12
+       $forms[4] - 3-10, 13-19
+       $forms[5] - 0, 20, rest -->
+       <pluralRules locales="gd">
+               <pluralRule count="one">n is 1</pluralRule>
+               <pluralRule count="two">n is 2</pluralRule>
+               <pluralRule count="elevan">n is 11</pluralRule>
+               <pluralRule count="twelve">n is 12</pluralRule>
+               <pluralRule count="few">n in 3..10 or n in 13..19</pluralRule>
+       </pluralRules>
+</supplementalData>
diff --git a/languages/data/plurals.xml b/languages/data/plurals.xml
new file mode 100644 (file)
index 0000000..8432df4
--- /dev/null
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd">
+<supplementalData>
+    <version number="$Revision: 6155 $"/>
+    <generation date="$Date: 2011-09-21 23:51:12 +0530 (ബു, 21 സെപ് 2011) $"/>
+    <plurals>
+        <!-- if locale is known to have no plurals, there are no rules -->
+        <pluralRules locales="az bm bo dz fa id ig ii hu ja jv ka kde kea km kn ko lo ms my sah ses sg th to tr vi wo yo zh"/>
+        <pluralRules locales="ar">
+            <pluralRule count="zero">n is 0</pluralRule>
+            <pluralRule count="one">n is 1</pluralRule>
+            <pluralRule count="two">n is 2</pluralRule>
+            <pluralRule count="few">n mod 100 in 3..10</pluralRule>
+            <pluralRule count="many">n mod 100 in 11..99</pluralRule>
+        </pluralRules>
+        <pluralRules locales="asa af bem bez bg bn brx ca cgg chr da de dv ee el en eo es et eu fi fo fur fy gl gsw gu ha haw he is it jmc kaj kcg kk kl ksb ku lb lg mas ml mn mr nah nb nd ne nl nn no nr ny nyn om or pa pap ps pt rof rm rwk saq seh sn so sq ss ssy st sv sw syr ta te teo tig tk tn ts ur wae ve vun xh xog zu">
+            <pluralRule count="one">n is 1</pluralRule>
+        </pluralRules>
+        <pluralRules locales="ak am bh fil tl guw hi ln mg nso ti wa">
+            <pluralRule count="one">n in 0..1</pluralRule>
+        </pluralRules>
+        <pluralRules locales="ff fr kab">
+            <pluralRule count="one">n within 0..2 and n is not 2</pluralRule>
+        </pluralRules>
+        <pluralRules locales="lv">
+            <pluralRule count="zero">n is 0</pluralRule>
+            <pluralRule count="one">n mod 10 is 1 and n mod 100 is not 11</pluralRule>
+        </pluralRules>
+        <pluralRules locales="iu kw naq se sma smi smj smn sms">
+            <pluralRule count="one">n is 1</pluralRule>
+            <pluralRule count="two">n is 2</pluralRule>
+        </pluralRules>
+        <pluralRules locales="ga"> <!-- http://unicode.org/cldr/trac/ticket/3915 -->
+            <pluralRule count="one">n is 1</pluralRule>
+            <pluralRule count="two">n is 2</pluralRule>
+            <pluralRule count="few">n in 3..6</pluralRule>
+            <pluralRule count="many">n in 7..10</pluralRule>
+        </pluralRules>
+        <pluralRules locales="ro mo">
+            <pluralRule count="one">n is 1</pluralRule>
+            <pluralRule count="few">n is 0 OR n is not 1 AND n mod 100 in 1..19</pluralRule>
+        </pluralRules>
+        <pluralRules locales="lt">
+            <pluralRule count="one">n mod 10 is 1 and n mod 100 not in 11..19</pluralRule>
+            <pluralRule count="few">n mod 10 in 2..9 and n mod 100 not in 11..19</pluralRule>
+        </pluralRules>
+        <pluralRules locales="be bs hr ru sh sr uk">
+            <pluralRule count="one">n mod 10 is 1 and n mod 100 is not 11</pluralRule>
+            <pluralRule count="few">n mod 10 in 2..4 and n mod 100 not in 12..14</pluralRule>
+            <pluralRule count="many">n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14</pluralRule>
+            <!-- others are fractions -->
+        </pluralRules>
+        <pluralRules locales="cs sk">
+            <pluralRule count="one">n is 1</pluralRule>
+            <pluralRule count="few">n in 2..4</pluralRule>
+        </pluralRules>
+        <pluralRules locales="pl">
+            <pluralRule count="one">n is 1</pluralRule>
+            <pluralRule count="few">n mod 10 in 2..4 and n mod 100 not in 12..14</pluralRule>
+            <pluralRule count="many">n is not 1 and n mod 10 in 0..1 or n mod 10 in 5..9 or n mod 100 in 12..14</pluralRule>
+            <!-- others are fractions -->
+            <!-- and n mod 100 not in 22..24 from Tamplin -->
+        </pluralRules>
+        <pluralRules locales="sl">
+            <pluralRule count="one">n mod 100 is 1</pluralRule>
+            <pluralRule count="two">n mod 100 is 2</pluralRule>
+            <pluralRule count="few">n mod 100 in 3..4</pluralRule>
+        </pluralRules>
+        <pluralRules locales="mt"> <!-- from Tamplin's data -->
+            <pluralRule count="one">n is 1</pluralRule>
+            <pluralRule count="few">n is 0 or n mod 100 in 2..10</pluralRule>
+            <pluralRule count="many">n mod 100 in 11..19</pluralRule>
+        </pluralRules>
+        <pluralRules locales="mk"> <!-- from Tamplin's data -->
+            <pluralRule count="one">n mod 10 is 1 and n is not 11</pluralRule>
+        </pluralRules>
+        <pluralRules locales="cy"> <!-- from http://www.saltcymru.org/wordpress/?p=99&lang=en -->
+            <pluralRule count="zero">n is 0</pluralRule>
+            <pluralRule count="one">n is 1</pluralRule>
+            <pluralRule count="two">n is 2</pluralRule>
+            <pluralRule count="few">n is 3</pluralRule>
+            <pluralRule count="many">n is 6</pluralRule>
+        </pluralRules>
+        <pluralRules locales="lag">
+            <pluralRule count="zero">n is 0</pluralRule>
+            <pluralRule count="one">n within 0..2 and n is not 0 and n is not 2</pluralRule>
+        </pluralRules>
+        <pluralRules locales="shi">
+            <pluralRule count="one">n within 0..1</pluralRule>
+            <pluralRule count="few">n in 2..10</pluralRule>
+        </pluralRules>
+        <pluralRules locales="br"> <!-- from http://unicode.org/cldr/trac/ticket/2886 -->
+            <pluralRule count="one">n mod 10 is 1 and n mod 100 not in 11,71,91</pluralRule>
+            <pluralRule count="two">n mod 10 is 2 and n mod 100 not in 12,72,92</pluralRule>
+            <pluralRule count="few">n mod 10 in 3..4,9 and n mod 100 not in 10..19,70..79,90..99</pluralRule>
+            <pluralRule count="many">n mod 1000000 is 0 and n is not 0</pluralRule>
+        </pluralRules>
+        <pluralRules locales="ksh">
+            <pluralRule count="zero">n is 0</pluralRule>
+            <pluralRule count="one">n is 1</pluralRule>
+        </pluralRules>
+        <pluralRules locales="tzm">
+            <pluralRule count="one">n in 0..1 or n in 11..99</pluralRule>
+        </pluralRules>
+        <pluralRules locales="gv">
+            <pluralRule count="one">n mod 10 in 1..2 or n mod 20 is 0</pluralRule>
+        </pluralRules>
+        <pluralRules locales="gd">
+            <pluralRule count="one">n in 1,11</pluralRule>
+            <pluralRule count="two">n in 2,12</pluralRule>
+            <pluralRule count="few">n in 3..10,13..19</pluralRule>
+        </pluralRules>
+    </plurals>
+</supplementalData>
index ed1f7d3..7803258 100644 (file)
@@ -164,7 +164,7 @@ $messages = array(
 'tog-usenewrc' => 'Nguy neuleumah neuubah barô tingkat lanjut (peureulèë JavaScript)',
 'tog-numberheadings' => 'Bôh numbô nan keudroë',
 'tog-showtoolbar' => 'Peuleumah <em>toolbar</em> (bateuëng alat) andam',
-'tog-editondblclick' => 'Andam ôn deungon duagoe klik',
+'tog-editondblclick' => 'Andam ôn ngon duwa go teugon',
 'tog-editsection' => 'Peujeuet andam bideueng rot hubong [andam]',
 'tog-editsectiononrightclick' => 'Peujeuet andam bideueng ngon teugon blah uneun bak nan bideueng (peureulee JavaScript)',
 'tog-showtoc' => 'Peuleumah dapeuta asoe (keu on-on nyang na leubeh nibak 3 boh aneuk ulee)',
@@ -279,8 +279,11 @@ $messages = array(
 'category-article-count' => '{{PLURAL:$2|Kawan nyoë cit na saboh ôn nyoë.|Kawan nyoë na  {{PLURAL:$1|ôn|$1 ôn }}, dari ban dum $2.}}',
 'category-article-count-limited' => 'Kawan nyoe na {{PLURAL:$1|saboh halaman|$1 halaman}} lagee di yup.',
 'category-file-count' => '{{PLURAL:$2|Kawan nyoe cit na beureukaih nyoe sagay.|{{PLURAL:$1|beureukaih|$1 beureukaih}} nyoe na lam kawan nyoe, nibak ban dum $2.}}',
+'category-file-count-limited' => 'Kawan nyoe na {{PLURAL:$1|beureukaih|$1 beureukaih}} lagee di yup.',
 'listingcontinuesabbrev' => 'samb.',
+'index-category' => 'On nyang geuindex',
 'noindex-category' => 'On nyang hana geuindex',
+'broken-file-category' => 'On ngon gamba reuloh',
 
 'about' => 'Bhah',
 'article' => 'Teunuléh',
@@ -331,9 +334,11 @@ $messages = array(
 'searcharticle' => 'Jak u',
 'history' => 'Atra u likot',
 'history_short' => 'Atra u likôt',
+'updatedmarker' => 'geuubah yoh seunaweue keuneulheueh lon phon kon',
 'printableversion' => 'Seunalén citak',
 'permalink' => 'Hubông teutap',
 'print' => 'Rakam',
+'view' => 'Beuet',
 'edit' => 'Andam',
 'create' => 'Peugöt',
 'editthispage' => 'Andam ôn nyoë',
@@ -341,6 +346,7 @@ $messages = array(
 'delete' => 'Sampôh',
 'deletethispage' => 'Sampôh ôn nyoe',
 'undelete_short' => 'Bateuë sampôh {{PLURAL:$1|one edit|$1 edits}}',
+'viewdeleted_short' => 'Eu {{PLURAL:$1|saboh neuandam|$1 neuandam}} nyang geusampoh',
 'protect' => 'Peulindông',
 'protect_change' => 'ubah',
 'protectthispage' => 'Peulindong on nyoe',
@@ -356,17 +362,30 @@ $messages = array(
 'talk' => 'Peugah haba',
 'views' => 'Leumah',
 'toolbox' => 'Plôk alat',
+'userpage' => 'Eu on ureueng nguy',
+'projectpage' => 'Eu ôn buët',
+'imagepage' => 'Eu on beureukaih',
+'mediawikipage' => 'Eu on peusan sistem',
+'templatepage' => 'Eu on seunaleuek',
+'viewhelppage' => 'Eu on beunantu',
+'categorypage' => 'Eu ôn kawan',
+'viewtalkpage' => 'Eu on marit',
 'otherlanguages' => 'Bahsa la’én',
 'redirectedfrom' => '(Geupeupinah nibak $1)',
-'redirectpagesub' => 'Ôn peupinah',
+'redirectpagesub' => 'Ôn peuninah',
 'lastmodifiedat' => 'Ôn nyoë keuneulheuëh geu’ubah bak $2, $1.',
+'viewcount' => 'On nyoe ka geusaweue {{PLURAL:$1|sigo|$sigo}}.<br />',
+'protectedpage' => 'Ôn teupeulindông',
 'jumpto' => 'Langsông u:',
 'jumptonavigation' => 'navigasi',
 'jumptosearch' => 'mita',
+'pool-timeout' => 'Liwat watee preh gunci',
+'pool-queuefull' => 'Seunapat neupreh peunoh',
+'pool-errorunknown' => 'Salah hana meukon',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
-'aboutsite' => 'Bhah {{SITENAME}}',
-'aboutpage' => 'Project:Bhah Ôn',
+'aboutsite' => 'Bhaih {{SITENAME}}',
+'aboutpage' => 'Project:Bhaih',
 'copyright' => 'Asoë nyang na seusuai ngön $1.',
 'copyrightpage' => '{{ns:project}}:Hak karang',
 'currentevents' => 'Haba barô',
@@ -378,12 +397,16 @@ $messages = array(
 'helppage' => 'Help:Asoë',
 'mainpage' => 'Ôn Keuë',
 'mainpage-description' => 'Ôn Keuë',
+'policy-url' => 'Project:Neuatô',
 'portal' => 'Meusapat',
 'portal-url' => 'Project:Meusapat',
 'privacy' => 'Jaga rahsia',
 'privacypage' => 'Project:Jaga rahsia',
 
 'badaccess' => 'Salah khut/hak tamöng',
+'badaccess-group0' => 'Droeneuh hana geupeuidin keu neupeulaku buet nyang neulakee',
+
+'versionrequired' => 'Peureulee MediaWiki versi $1',
 
 'retrievedfrom' => 'Meurumpok nibak "$1"',
 'youhavenewmessages' => 'Droëneuh   na $1 ($2).',
@@ -495,7 +518,7 @@ Droëneuh geupeusaran keu neutamong sigra, lheuëh nyan neugantoë lageuëm rahs
 'hr_tip' => 'Garéh data',
 
 # Edit pages
-'summary' => 'Reuningkah:',
+'summary' => 'Ehtisa:',
 'subject' => 'Bhah/nan:',
 'minoredit' => 'Nyoë lôn andam bacut',
 'watchthis' => 'Kalön ôn nyoë',
@@ -567,7 +590,7 @@ Alasan-alasan nyan hana geupeureumeuen.",
 'last' => 'akhé',
 'page_first' => 'phôn',
 'page_last' => 'keuneulheuëh',
-'histlegend' => "Piléh duwa teuneugön radiô, lheuëh nyan teugön teuneugön ''peubandéng'' keu peubandéng seunalén. Teugön saboh tanggay keu eu seunalén ôn bak tanggay nyan.<br />(skr) = bida ngön seunalén jinoë, (akhé) = bida ngön seunalén sigohlomjih. '''b''' = andam bacut, '''b''' = andam bot, → = andam bideuëng, ← = reuningkah keudroë",
+'histlegend' => "Piléh duwa teuneugön radiô, lheuëh nyan teugön teuneugön ''peubandéng'' keu peubandéng seunalén. Teugön saboh tanggay keu eu seunalén ôn bak tanggay nyan.<br />(skr) = bida ngön seunalén jinoë, (akhé) = bida ngön seunalén sigohlomjih. '''u''' = andam ubeut, '''b''' = andam bot, → = andam bideuëng, ← = ehtisa keudroë",
 'history-fieldset-title' => 'Jeulajah riwayat away',
 'history-show-deleted' => 'Nyang geusampoh mantong',
 'histfirst' => 'Paléng trép',
@@ -669,6 +692,9 @@ Surat-e droeneuh h'an geupeugah keu ureueng nyan.",
 'nchanges' => '$1 {{PLURAL:$1|neu’ubah|neu’ubah}}',
 'recentchanges' => 'Neuubah barô',
 'recentchanges-legend' => 'Peuniléh neuubah paléng barô',
+'recentchanges-summary' => "Di yup nyoë nakeuh neuubah barô nyang na bak Wikipèdia nyoë.
+Ceunatat: (bida) = neuubah, (riwayat) = riwayat teumuléh, '''B''' = ôn barô, '''u''' = neuandam ubeut, '''b''' = neuandam bot, (± ''bit'') = jumeulah asoë meutamah/meukureuëng, → = neuandam beunagi, ← = mohtasa otomatis.
+----",
 'recentchanges-feed-description' => 'Peutumèë neu’ubah paléng barô lam wiki bak eumpeuën nyoë.',
 'recentchanges-label-newpage' => 'Neuandam nyoe jipeugot on baro',
 'recentchanges-label-minor' => 'Nyoe neuandam ubeut',
@@ -1057,7 +1083,7 @@ Hubông teutap keu revisi ôn nyoë',
 'tooltip-compareselectedversions' => 'Ngiëng bida antara duwa curak ôn nyang jipilèh.',
 'tooltip-watch' => 'Peutamah ôn nyoë u dapeuta keunalön Droëneuh',
 'tooltip-rollback' => 'Peuriwang neu’andam-neu’andam bak ôn nyoë u nyang tuléh keuneulheuëh lam sigo teugön',
-'tooltip-undo' => 'Peuriwang geunantoë nyoë ngön peuhah plôk neu’andam ngön cara eu dilèë. Choë jeuët geupeutamah bak plôk reuningkah.',
+'tooltip-undo' => 'Peuriwang geunantoë nyoë ngön peuhah plôk neu’andam ngön cara eu dilèë. Choë jeuët geupeutamah bak plôk ehtisa.',
 'tooltip-summary' => 'Pasoe ehtisa paneuk',
 
 # Browsing diffs
index 6fd1f41..fbb4d25 100644 (file)
@@ -1657,21 +1657,21 @@ die lêer is $2.',
 'largefileserver' => 'Hierdie lêer is groter as wat die bediener se opstelling toelaat.',
 'emptyfile' => "Die lêer wat u probeer oplaai het blyk leeg te wees. Dit mag wees omdat u 'n tikfout in die lêernaam gemaak het. Gaan asseblief na en probeer weer.",
 'windows-nonascii-filename' => 'Hierdie wiki ondersteun nie lêername met spesiale karakters nie.',
-'fileexists' => "'n Lêer met die naam bestaan reeds, kyk na '''<tt>[[:$1]]</tt>''' as u nie seker is dat u dit wil wysig nie.
+'fileexists' => "'n Lêer met die naam bestaan reeds, kyk na <strong>[[:$1]]</strong> as u nie seker is dat u dit wil wysig nie.
 [[$1|thumb]]",
-'filepageexists' => "Die beskrywingsbladsy vir hierdie lêer bestaan reeds by '''<tt>[[:$1]]</tt>''', maar daar is nie 'n lêer met hierdie naam nie.
+'filepageexists' => "Die beskrywingsbladsy vir hierdie lêer bestaan reeds by <strong>[[:$1]]</strong>, maar daar is nie 'n lêer met hierdie naam nie.
 Die opsomming wat u verskaf het sal nie op die beskrywingsblad geplaas word nie.
 Wysig asseblief die bladsy handmatig om u beskrywing by te werk.
 [[$1|duimnael]]",
 'fileexists-extension' => "'n Lêer met hierdie naam bestaan al reeds: [[$2|thumb]]
-* Naam van die opgelaaide lêer: '''<tt>[[:$1]]</tt>'''
-* Naam van die bestaande lêer: '''<tt>[[:$2]]</tt>'''
+* Naam van die opgelaaide lêer: <strong>[[:$1]]</strong>
+* Naam van die bestaande lêer: <strong>[[:$2]]</strong>
 Kies asseblief 'n ander naam.",
 'fileexists-thumbnail-yes' => "Die lêer lyk na 'n verkleinde weergawe ''(duimnael)''.
 [[$1|thumb]]
-Kontroleer asseblief die lêer '''<tt>[[:$1]]</tt>'''.
+Kontroleer asseblief die lêer <strong>[[:$1]]</strong>.
 As die gekontroleerde lêer dieselfde beeld van oorspronklike grootte is, is dit nie nodig om 'n ekstra miniatuurafbeelding daarvan op te laai nie.",
-'file-thumbnail-no' => "Die lêernaam begin met '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Die lêernaam begin met <strong>$1</strong>.
 Dit lyk na 'n verkleinde beeld ''(duimnael)''.
 As u hierdie beeld in volle resolusie het, laai dit asseblief op.
 Indien nie, verander asseblief die lêernaam.",
@@ -1928,7 +1928,7 @@ Miskien wil u eerder die beskrywing daar op die [$2 lêerbeskrywing] bywerk.',
 
 # MIME search
 'mimesearch' => 'MIME-soek',
-'mimesearch-summary' => 'Hierdie bladsy maak dit moontlik om lêers te filtreer volgens hulle MIME-tipe. Invoer: inhoudtipe/subtipe, byvoorbeeld <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Hierdie bladsy maak dit moontlik om lêers te filtreer volgens hulle MIME-tipe. Invoer: inhoudtipe/subtipe, byvoorbeeld <code>image/jpeg</code>.',
 'mimetype' => 'MIME-tipe:',
 'download' => 'laai af',
 
@@ -2130,7 +2130,7 @@ Sie ook [[Special:WantedCategories|nie-bestaande kategorieë met verwysings]].',
 'linksearch-ok' => 'Soek',
 'linksearch-text' => 'Patrone soos "*.wikipedia.org" kan gebruik word.<br />
 Benodig ten minste een topvlakdomein, soos byvoorbeeld "*.org".<br />
-Ondersteunde protokolle: <tt>$1</tt> (moenie hierdie in u soektog gebruik nie)',
+Ondersteunde protokolle: <code>$1</code> (moenie hierdie in u soektog gebruik nie)',
 'linksearch-line' => '$1 geskakel vanaf $2',
 'linksearch-error' => 'Patrone kan slegs aan die begin van die rekenaarnaam geplaas word.',
 
@@ -2977,15 +2977,10 @@ Hierdie situasie was waarskynlik deur 'n skakel na 'n eksterne webtuiste op ons
 # Info page
 'pageinfo-title' => 'Inligting oor "$1"',
 'pageinfo-header-edits' => 'Wysigings',
-'pageinfo-header-watchlist' => 'Dophoulys',
-'pageinfo-header-views' => 'Kere gewys',
-'pageinfo-subjectpage' => 'Bladsy',
-'pageinfo-talkpage' => 'Besprekingsblad',
+'pageinfo-views' => 'Aantal kere gewys',
 'pageinfo-watchers' => 'Aantal dophouers',
 'pageinfo-edits' => 'Aantal wysigings',
 'pageinfo-authors' => 'Aantal verskillende outeurs',
-'pageinfo-views' => 'Aantal kere gewys',
-'pageinfo-viewsperedit' => 'Kere gewys per wysiging',
 
 # Skin names
 'skinname-standard' => 'Standaard',
index 44d6642..688a179 100644 (file)
@@ -108,7 +108,6 @@ $messages = array(
 'tog-watchlisthideliu' => "Mshef redaktimet e përdoruesve t'kyçun prej listës së vrojtimit",
 'tog-watchlisthideanons' => 'Mshef redaktimet e anonimëve prej listës së vrojtimit',
 'tog-watchlisthidepatrolled' => 'Mshef redaktimet e mbikëqyruna prej listës së vrojtimit',
-'tog-nolangconversion' => 'Mos lejo konvertimin e variantëve',
 'tog-ccmeonemails' => 'Më ço kopje të mesazheve qi ua dërgoj të tjerëve',
 'tog-diffonly' => 'Mos e trego përmbajtjen e faqes nën ndryshimin',
 'tog-showhiddencats' => 'Trego kategoritë e mshefta',
index 9d536ea..22468f8 100644 (file)
@@ -1017,17 +1017,17 @@ $1ን ወይም ማንም ሌላ [[{{MediaWiki:Grouppage-sysop}}|መጋቢ]] ስ
 'large-file' => 'የፋይል መጠን ከ$1 በላይ እንዳይሆን ይመከራል፤ የዚህ ፋይል መጠን $2 ነው።',
 'largefileserver' => 'ይህ ፋይል ሰርቨሩ ከሚችለው መጠን በላይ ነው።',
 'emptyfile' => 'የላኩት ፋይል ባዶ እንደ ሆነ ይመስላል። ይህ ምናልባት በፋይሉ ስም አንድ ግድፋት ስላለ ይሆናል። እባክዎ ይህን ፋይል በውኑ መላክ እንደ ፈለጉ ያረጋግጡ።',
-'fileexists' => "ይህ ስም ያለው ፋይል አሁን ይኖራል፤ እባክዎ እሱም ለመቀየር እንደፈለጉ እርግጥኛ ካልሆኑ '''<tt>[[:$1]]</tt>''' ይመለከቱ።
-[[$1|thumb]]",
-'filepageexists' => "የዚሁ ፋኡል መግለጫ ገጽ ከዚህ በፊት በ'''<tt>[[:$1]]</tt>''' ተፈጥሯል፤ ነገር ግን ይህ ስም ያለበት ፋይል አሁን አይኖርም። ስለዚህ ያቀረቡት ማጠቃለያ በመግለጫው ገጽ አይታይም። መግለጫዎ በዚያ እንዲታይ በእጅ ማስገባት ይኖርብዎታል።",
-'fileexists-extension' => "ተመሳሳይ ስም ያለበት ፋይል ይኖራል፦[[$2|thumb]]
-* የሚላክ ፋይል ስም፦ '''<tt>[[:$1]]</tt>'''
-* የሚኖር (የቆየው) ፋይል ስም፦ '''<tt>[[:$2]]</tt>'''
-እባክዎ ሌላ ስም ይምረጡ።",
+'fileexists' => 'ይህ ስም ያለው ፋይል አሁን ይኖራል፤ እባክዎ እሱም ለመቀየር እንደፈለጉ እርግጥኛ ካልሆኑ <strong>[[:$1]]</strong> ይመለከቱ።
+[[$1|thumb]]',
+'filepageexists' => 'የዚሁ ፋኡል መግለጫ ገጽ ከዚህ በፊት በ<strong>[[:$1]]</strong> ተፈጥሯል፤ ነገር ግን ይህ ስም ያለበት ፋይል አሁን አይኖርም። ስለዚህ ያቀረቡት ማጠቃለያ በመግለጫው ገጽ አይታይም። መግለጫዎ በዚያ እንዲታይ በእጅ ማስገባት ይኖርብዎታል።',
+'fileexists-extension' => 'ተመሳሳይ ስም ያለበት ፋይል ይኖራል፦[[$2|thumb]]
+* የሚላክ ፋይል ስም፦ <strong>[[:$1]]</strong>
+* የሚኖር (የቆየው) ፋይል ስም፦ <strong>[[:$2]]</strong>
+እባክዎ ሌላ ስም ይምረጡ።',
 'fileexists-thumbnail-yes' => "ፋይሉ የተቀነሰ መጠን ያለበት ስዕል ''(ናሙና)'' እንደ ሆነ ይመስላል። [[$1|thumb]]
-እባክዎ ፋይሉን '''<tt>[[:$1]]</tt>''' ይመለከቱ።
+እባክዎ ፋይሉን <strong>[[:$1]]</strong> ይመለከቱ።
 ያው ፋይል ለዚሁ ፋይል አንድ አይነት በኦሪጂናሉ መጠን ቢሆን ኖሮ፣ ተጨማሪ ናሙና መላክ አያስፈልግም።",
-'file-thumbnail-no' => "የፋይሉ ስም በ'''<tt>$1</tt>''' ይጀመራል። የተቀነሰ መጠን ያለበት ስዕል ''(ናሙና)'' እንደ ሆነ ይመስላል። ይህን ስዕል በሙሉ ማጉላት ካለዎ፣ ይህን ይላኩ፤ አለዚያ እባክዎ የፋይሉን ስም ይቀይሩ።",
+'file-thumbnail-no' => "የፋይሉ ስም በ<strong>$1</strong> ይጀመራል። የተቀነሰ መጠን ያለበት ስዕል ''(ናሙና)'' እንደ ሆነ ይመስላል። ይህን ስዕል በሙሉ ማጉላት ካለዎ፣ ይህን ይላኩ፤ አለዚያ እባክዎ የፋይሉን ስም ይቀይሩ።",
 'fileexists-forbidden' => 'በዚህ ስም የሚኖር ፋይል ገና አለ፤ እባክዎ ተመልሰው ይህን ፋይል በአዲስ ስም ስር ይልኩት። [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'ይህ ስም ያለበት ፋይል አሁን በጋራ ፋይል ምንጭ ይኖራል፤ እባክዎ ተመልሰው ፋይሉን በሌላ ስም ስር ይላኩት። [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'ይህ ፋይል {{PLURAL:$1|የሚከተለው ፋኡል|የሚከተሉት ፋይሎች}} ቅጂ ነው፦',
index ac1f1d8..ad39818 100644 (file)
@@ -1451,9 +1451,9 @@ T'a suya conveniencia s'su conveniencia se muestra aquí el registro de supresio
 Ta veyer u mirar fichers cargatas denantes vaiga t'a [[Special:FileList|lista de fichers cargatos]]. As cargas y recargas tamién se rechistran en o [[Special:Log/upload|rechistro de cargas]], y os borraus en o [[Special:Log/delete|rechistro de borraus]].
 
 Ta incluyir un fichero en una pachina, emplegue un vinclo d'una d'istas trazas
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fichero.jpg]]</nowiki></tt>''' ta fer servir a version completa d'o fichero,
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fichero.png|200px|thumb|left|texto alternativo]]</nowiki></tt>''' ta fer serivr una versión de 200 píxels d'amplaria en una caixa a la marguin cucha con 'texto alternativo' como descripción
-*'''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fichero.ogg]]</nowiki></tt>''' ta fer un vinclo dreitament ta o fichero sin amostrar-lo.",
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fichero.jpg]]</nowiki></code>''' ta fer servir a version completa d'o fichero,
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fichero.png|200px|thumb|left|texto alternativo]]</nowiki></code>''' ta fer serivr una versión de 200 píxels d'amplaria en una caixa a la marguin cucha con 'texto alternativo' como descripción
+*'''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fichero.ogg]]</nowiki></code>''' ta fer un vinclo dreitament ta o fichero sin amostrar-lo.",
 'upload-permitted' => 'Tipos de fichero premititos: $1.',
 'upload-preferred' => 'Tipos de fichero preferitos: $1.',
 'upload-prohibited' => 'Tipos de fichero vedatos: $1.',
@@ -1494,20 +1494,20 @@ Ta incluyir un fichero en una pachina, emplegue un vinclo d'una d'istas trazas
 'largefileserver' => "A grandaria d'iste fichero ye mayor d'a que a confeguración d'iste servidor premite.",
 'emptyfile' => 'Parixe que o fichero que se miraba de cargar ye buedo; por favor, comprebe que ixe ye reyalment o fichero que quereba cargar.',
 'windows-nonascii-filename' => 'Iste wiki no admite nombres de fichero con caracters especials.',
-'fileexists' => "Ya bi ha un fichero con ixe nombre.
-Por favor, Por favor mire-se o fichero existent '''<tt>[[:$1]]</tt>''' si no ye seguro de querer sustituyir-lo.
-[[$1|thumb]]",
-'filepageexists' => "A pachina de descripción d'iste fichero ya s'ha creyau en '''<tt>[[:$1]]</tt>''', pero no i hai garra fichero con iste nombre. O resumen que escriba no amaneixerá en a pachina de descripción.
+'fileexists' => 'Ya bi ha un fichero con ixe nombre.
+Por favor, Por favor mire-se o fichero existent <strong>[[:$1]]</strong> si no ye seguro de querer sustituyir-lo.
+[[$1|thumb]]',
+'filepageexists' => "A pachina de descripción d'iste fichero ya s'ha creyau en <strong>[[:$1]]</strong>, pero no i hai garra fichero con iste nombre. O resumen que escriba no amaneixerá en a pachina de descripción.
 Si quiere que o suyo resumen amaneixca aquí, habrá d'editar-lo manualment.
 [[$1|thumb]]",
 'fileexists-extension' => "Ya bi ha un fichero con un nombre pareixiu: [[$2|thumb]]
-* Nombre d'o fichero que ye cargando: '''<tt>[[:$1]]</tt>'''
-* Nombre d'o fichero ya existent: '''<tt>[[:$2]]</tt>'''
+* Nombre d'o fichero que ye cargando: <strong>[[:$1]]</strong>
+* Nombre d'o fichero ya existent: <strong>[[:$2]]</strong>
 Por favor, trigue un nombre diferent.",
 'fileexists-thumbnail-yes' => "Pareix que o fichero ye una imachen chicota ''(miniatura)''. [[$1|thumb]]
-Comprebe por favor o fichero '''<tt>[[:$1]]</tt>'''.
+Comprebe por favor o fichero <strong>[[:$1]]</strong>.
 Si o fichero comprebato ye a mesma imachen en tamanyo orichinal no cal cargar una nueva miniatura.",
-'file-thumbnail-no' => "O nombre d'o fichero prencipia con '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "O nombre d'o fichero prencipia con <strong>$1</strong>.
 Pareix que estase una imachen achiquida ''(thumbnail)''.
 Si tiene ista imachen a toda resolución, cargue-la, si no, por favor, cambee o nombre d'o fichero.",
 'fileexists-forbidden' => 'Ya bi ha un fichero con iste nombre, y no se puet sobrescribir.
@@ -1752,7 +1752,7 @@ Debaixo s'amuestra a descripción d'a suya [$2 pachina de descripción].",
 
 # MIME search
 'mimesearch' => 'Mirar por tipo MIME',
-'mimesearch-summary' => 'Ista pachina premite filtrar fichers seguntes o suyo tipo MIME. Escribir: tipodeconteniu/subtipo, por exemplo <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Ista pachina premite filtrar fichers seguntes o suyo tipo MIME. Escribir: tipodeconteniu/subtipo, por exemplo <code>image/jpeg</code>.',
 'mimetype' => 'Tipo MIME:',
 'download' => 'descargar',
 
@@ -1944,7 +1944,7 @@ Se veigan tamién as [[Special:WantedCategories|categorías requiestas]].",
 'linksearch-ok' => 'Mirar',
 'linksearch-text' => 'Pueden usar-se carácters comodín como "*.wikipedia.org".
 A lo menos aprecisa un dominio de maximo libel, como "*.org".<br />
-Protocolos suportados: <tt>$1</tt> (no los adhiba en a suya busca).',
+Protocolos suportados: <code>$1</code> (no los adhiba en a suya busca).',
 'linksearch-line' => '$1 tiene un vinclo dende $2',
 'linksearch-error' => "Os carácters comodín nomás pueden apareixer en o prencipio d'o nombre d'o sitio.",
 
@@ -2791,15 +2791,10 @@ Puede veyer-ne, manimenos, o codigo fuent.',
 # Info page
 'pageinfo-title' => 'Información ta «$1»',
 'pageinfo-header-edits' => 'Edicions',
-'pageinfo-header-watchlist' => 'Lista de seguimiento',
-'pageinfo-header-views' => 'Vistas',
-'pageinfo-subjectpage' => 'Pachina',
-'pageinfo-talkpage' => 'Pachina de descusión',
+'pageinfo-views' => 'Numero de vistas',
 'pageinfo-watchers' => "Numero d'usuarios que la cosiran",
 'pageinfo-edits' => "Numero d'edicions",
 'pageinfo-authors' => "Numero d'autors diferents",
-'pageinfo-views' => 'Numero de vistas',
-'pageinfo-viewsperedit' => 'Vistas por edición',
 
 # Skin names
 'skinname-standard' => 'Clasica (Classic)',
index dab4c9b..6c4919e 100644 (file)
@@ -70,7 +70,6 @@ $messages = array(
 'tog-watchlisthideliu' => 'Ādihtas bȳ inmeldedum brūcendum hȳdan ƿiþ þā ƿæccȝetale',
 'tog-watchlisthideanons' => 'Hȳd ādihtas fram uncūðum brūcendum ƿiþ þæt ƿæccȝetæl',
 'tog-watchlisthidepatrolled' => 'Hȳd ƿeardode ādihtas ƿiþ þæt ƿæccȝetæl',
-'tog-nolangconversion' => 'Ne lǣt missenlicnessa æfter āwendungum',
 'tog-ccmeonemails' => 'Send mē ȝelīcnessa þāra spearcræftiȝena ǣrenda þe ic ōðrum brūcendum sende',
 'tog-diffonly' => 'Ne ēoƿa sīdan innunȝe under scādunȝum',
 'tog-showhiddencats' => 'Ēoƿa ȝehȳdede floccas',
index 69faf87..c470710 100644 (file)
@@ -741,7 +741,7 @@ $1',
 'collapsible-expand' => 'وسع',
 'thisisdeleted' => 'أأعرض أو أسترجع $1؟',
 'viewdeleted' => 'أأعرض $1؟',
-'restorelink' => '{{PLURAL:$1|$1 تعديل محذوف|تعديلاً واحداً محذوفاً|تعديلين محذوفين|$1 تعديلات محذوفة|$1 تعديلاً محذوفاً|$1 تعديل محذوف}}',
+'restorelink' => '{{PLURAL:$1|$1 تعديل محذوف|تعديلا واحدا محذوفا|تعديلين محذوفين|$1 تعديلات محذوفة|$1 تعديلا محذوفا|$1 تعديل محذوف}}',
 'feedlinks' => 'التغذية:',
 'feed-invalid' => 'نوع اشتراك التلقيم غير صحيح.',
 'feed-unavailable' => 'التلقيمات غير متوفرة',
@@ -780,12 +780,12 @@ $1',
 # General errors
 'error' => 'خطأ',
 'databaseerror' => 'خطأ في قاعدة البيانات',
-'dberrortext' => 'حدث Ø®Ø·Ø£ Ù\81Ù\8a ØµÙ\8aغة Ø§ستعلام قاعدة البيانات.
-ربما يكون هذا عيب بالبرنامج.
-آخر Ø§Ø³ØªØ¹Ù\84اÙ\85 Ø·Ù\84ب Ù\85Ù\86 Ù\82اعدة Ø§Ù\84بÙ\8aاÙ\86ات Ù\83اÙ\86:
+'dberrortext' => 'حدث Ø®Ø·Ø£ Ù\81Ù\8a ØµÙ\8aغة Ø£ستعلام قاعدة البيانات.
+قد يدل هذا الخطأ على عيب في البرنامج.
+آخر Ø£Ø³ØªØ¹Ù\84اÙ\85 ØªÙ\85 Ø·Ù\84بÙ\87 Ù\85Ù\86 Ù\82اعدة Ø§Ù\84بÙ\8aاÙ\86ات Ù\83اÙ\86 :
 <blockquote><tt>$1</tt></blockquote>
 من داخل الدالة "<tt>$2</tt>".
£Ø±Ø¬Ø¹Øª Ù\82اعدة Ø§Ù\84بÙ\8aاÙ\86ات Ø§Ù\84خطأ "<tt>$3: $4</tt>".',
­Ø¯Ø¯Øª Ù\82اعدة Ø§Ù\84بÙ\8aاÙ\86ات Ø§Ù\84خطأ  "<tt>$3: $4</tt>".',
 'dberrortextcl' => 'حدث خطأ في صيغة استعلام قاعدة البيانات.
 آخر استعلام طلب من قاعدة البيانات كان:
 "$1"
@@ -1143,8 +1143,8 @@ $2
 'userpage-userdoesnotexist-view' => 'حساب المستخدم "$1" غير مسجل.',
 'blocked-notice-logextract' => 'هذا المستخدم ممنوع حاليا.
 آخر مدخلة في سجل المنع موفرة بالأسفل كمرجع:',
-'clearyourcache' => "'''ملاحظة:''' بعد الحفظ, أنت ربما تحتاج إلى إفراغ كاش متصفحك لرؤية التغييرات.
-* '''فيرفكس / سفاري:''' اضغط ''Shift'' أثناء ضغط ''Reload'', أو اضغط أيا من ''Ctrl-F5'' أو ''Ctrl-R'' (''⌘-R'' على ماك)
+'clearyourcache' => "'''ملاحظة:''' بعد الحفظ، قد تحتاج إلى إفراغ كاش متصفحك لرؤية التغييرات.
+* '''فايرفوكس / سفاري:''' اضغط ''Shift'' أثناء ضغط ''Reload''، أو اضغط أيا من ''Ctrl-F5'' أو ''Ctrl-R'' (''⌘-R'' على ماك)
 * '''جوجل كروم:''' اضغط ''Ctrl-Shift-R'' (''⌘-Shift-R'' على ماك)
 * '''إنترنت إكسبلورر:''' اضغط ''Ctrl'' أثناء ضغط ''Refresh''، أو اضغط ''Ctrl-F5''
 * '''كنكرر:''' اضغط ''Reload'' أو اضغط ''F5''
@@ -1234,7 +1234,7 @@ $2
 'permissionserrors' => 'أخطاء السماحات',
 'permissionserrorstext' => 'لا تمتلك الصلاحية لفعل هذا، {{PLURAL:$1||للسبب التالي|للسببين التاليين|للأسباب التالية}}:',
 'permissionserrorstext-withaction' => 'لا تملك الصلاحيات ل$2، لل{{PLURAL:$1||سبب التالي|سببين التاليين|أسباب التالية}}:',
-'recreate-moveddeleted-warn' => "'''تحذير: أنت تقوم بإعادة إنشاء صفحة سبق حذفها.'''
+'recreate-moveddeleted-warn' => "'''تحذير: أنت تعيد إنشاء صفحة سبق حذفها.'''
 
 يجب عليك التيقن من أن الاستمرار بتحرير هذه الصفحة ملائم.
 سجلا الحذف والنقل لهذه الصفحة معروضان هنا للتيسير:",
@@ -1275,7 +1275,7 @@ $2
 
 # "Undo" feature
 'undo-success' => 'يمكن استرجاع التعديل.
-من فضلك تحقق من المقارنة بالأسفل للتأكد من أن هذا هو ما تريد أن تفعله، وبعد ذلك احفظ التغييرات بالأسفل للانتهاء من استرجاع التعديل.',
+تحقق من المقارنة بالأسفل للتأكد من أن هذا هو ما تريد أن تفعله، ثم احفظ التغييرات بالأسفل للانتهاء من استرجاع التعديل.',
 'undo-failure' => 'لم يمكن استرجاع التعديل بسبب تعديلات متعارضة تمت على الصفحة.',
 'undo-norev' => 'فشل في الرجوع عن التعديل حيث أنه غير موجود أو تم حذفه.',
 'undo-summary' => 'الرجوع عن التعديل $1 بواسطة [[Special:Contributions/$2|$2]] ([[User talk:$2|نقاش]])',
@@ -1760,7 +1760,7 @@ $1",
 'right-noratelimit' => 'غير متأثر بحدود المعدل',
 'right-import' => 'استيراد الصفحات من ويكيات أخرى',
 'right-importupload' => 'استيراد الصفحات من ملف مرفوع',
-'right-patrol' => 'اÙ\84تعÙ\84Ù\8aÙ\85 Ø¹Ù\84Ù\89 ØªØ¹Ø¯Ù\8aÙ\84ات Ø§Ù\84آخرÙ\8aÙ\86 Ù\83مراجعة',
+'right-patrol' => 'تعÙ\84Ù\8aÙ\85 ØªØ¹Ø¯Ù\8aÙ\84ات Ø§Ù\84آخرÙ\8aÙ\86 Ø¨Ø¹Ù\84اÙ\85Ø© Ø§Ù\84مراجعة',
 'right-autopatrol' => 'علم تعديلات المستخدم مراجعة تلقائيا',
 'right-patrolmarks' => 'رؤية علامات المراجعة في أحدث التغييرات',
 'right-unwatchedpages' => 'رؤية قائمة بالصفحات غير المراقبة',
@@ -1807,7 +1807,7 @@ $1",
 'action-rollback' => 'استرجاع تعديلات آخر مستخدم عدل صفحة معينة سريعا',
 'action-import' => 'استيراد هذه الصفحة من ويكي آخر',
 'action-importupload' => 'استيراد هذه الصفحة من ملف مرفوع',
-'action-patrol' => 'اÙ\84تعÙ\84Ù\8aÙ\85 Ø¹Ù\84Ù\89 ØªØ¹Ø¯Ù\8aÙ\84ات Ø§Ù\84آخرÙ\8aÙ\86 Ù\83مراجعة',
+'action-patrol' => 'تعÙ\84Ù\8aÙ\85 ØªØ¹Ø¯Ù\8aÙ\84ات Ø§Ù\84آخرÙ\8aÙ\86 Ø¨Ø¹Ù\84اÙ\85Ø© Ø§Ù\84مراجعة',
 'action-autopatrol' => 'جعل تعديلك معلم عليه كمراجع',
 'action-unwatchedpages' => 'رؤية قائمة الصفحات غير المراقبة',
 'action-mergehistory' => 'دمج تاريخ هذه الصفحة',
@@ -1880,9 +1880,9 @@ $1",
 لرؤية أو البحث في الملفات المرفوعة سابقا، راجع [[Special:FileList|قائمة الملفات المرفوعة]]، عمليات الرفع (وإعادة الرفع) مسجلة في [[Special:Log/upload|سجل الرفع]] وعمليات الحذف في [[Special:Log/delete|سجل الحذف]].
 
 لإدراج صورة في صفحة، استخدم الوصلات في الصيغ التالية:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' لاستخدام النسخة الكاملة لملف
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|نص بديل]]</nowiki></tt>''' لاستخدام صورة عرضها 200 بكسل في صندوق في الجانب الأيسر مع 'نص بديل' كوصف
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' للوصل للملف مباشرة بدون عرض الملف.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' لاستخدام النسخة الكاملة لملف
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|نص بديل]]</nowiki></code>''' لاستخدام صورة عرضها 200 بكسل في صندوق في الجانب الأيسر مع 'نص بديل' كوصف
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' للوصل للملف مباشرة بدون عرض الملف.",
 'upload-permitted' => 'أنواع الملفات المسموحة: $1.',
 'upload-preferred' => 'أنواع الملفات المفضلة: $1.',
 'upload-prohibited' => 'أنواع الملفات الممنوعة: $1.',
@@ -1929,20 +1929,20 @@ $1",
 قد يكون سبب ذلك خطأ في كتابة الاسم.
 من فضلك تأكد من أنك تريد فعلا رفع هذا الملف.',
 'windows-nonascii-filename' => 'هذا ويكي لا يعتمد أسماء الملفات مع الأحرف الخاصة.',
-'fileexists' => "هناك ملف موجود يحمل نفس هذا الاسم الرجاء التأكد من هذا الملف باتباع الوصلة التالية '''<tt>[[:$1]]</tt>''' قبل القيام بتغييره.
-[[$1|thumb]]",
-'filepageexists' => "أنشئت صفحة وصف هذا الملف في '''<tt>[[:$1]]</tt>'''، لكن لا يوجد ملف بهذا الاسم حالياً.
+'fileexists' => 'هناك ملف موجود يحمل نفس هذا الاسم الرجاء التأكد من هذا الملف باتباع الوصلة التالية <strong>[[:$1]]</strong> قبل القيام بتغييره.
+[[$1|thumb]]',
+'filepageexists' => 'أنشئت صفحة وصف هذا الملف في <strong>[[:$1]]</strong>، لكن لا يوجد ملف بهذا الاسم حالياً.
 لن يظهر الملخص الذي تدخله على صفحة الوصف.
 لجعل ملخصك يظهر هناك، ستحتاج إلى تعديله يدوياً.
-[[$1|thumb]]",
-'fileexists-extension' => "يوجد ملف باسم مشابه: [[$2|thumb]]
-* اسم الملف المراد رفعه: '''<tt>[[:$1]]</tt>'''
-* اسم الملف الموجود: '''<tt>[[:$2]]</tt>'''
-من فضلك اختر اسماً مختلفاً.",
+[[$1|thumb]]',
+'fileexists-extension' => 'يوجد ملف باسم مشابه: [[$2|thumb]]
+* اسم الملف المراد رفعه: <strong>[[:$1]]</strong>
+* اسم الملف الموجود: <strong>[[:$2]]</strong>
+من فضلك اختر اسماً مختلفاً.',
 'fileexists-thumbnail-yes' => "يبدو أن الملف مصغرا لحجم أعلى ''(تصغير)''. [[$1|thumb]]
-من فضلك افحص الملف '''<tt>[[:$1]]</tt>'''.
+من فضلك افحص الملف <strong>[[:$1]]</strong>.
 إن كان هو نفس الملف بالحجم الأصلي فلا داعي لرفع تصغير إضافي.",
-'file-thumbnail-no' => "يبدأ الملف ب '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "يبدأ الملف ب <strong>$1</strong>.
 يبدو أن الملف مصغرا لحجم أعلى ''(تصغير)''.
 إذا كانت لديك الصورة في درجة دقة كاملة قم برفعها، أو قم بتغيير اسم الملف من فضلك.",
 'fileexists-forbidden' => 'هناك ملف موجود بهذا الاسم بالفعل، ولا يمكن إعادة الكتابة عليه.
@@ -2177,6 +2177,7 @@ $1',
 'shared-repo' => 'مستودع مشترك',
 'shared-repo-name-wikimediacommons' => 'ويكيميديا كومنز',
 'filepage.css' => '/* CSS المعروض هنا سيضمن في صفحات وصف الملفات، أيضا على الويكيات الأجنبية */',
+'upload-disallowed-here' => 'لأسف لا يمكنك تعديل هذه الصورة.',
 
 # File reversion
 'filerevert' => 'استرجع $1',
@@ -2211,7 +2212,7 @@ $1',
 # MIME search
 'mimesearch' => 'بحث MIME',
 'mimesearch-summary' => 'تمكنك هذه الصفحة من ترشيح الملفات وفق نوع MIME الخاص بها.
-المدخل: نوع المحتوى/النوع الفرعي، كمثال <tt>image/jpeg</tt>.',
+المدخل: نوع المحتوى/النوع الفرعي، كمثال <code>image/jpeg</code>.',
 'mimetype' => 'نوع الملف:',
 'download' => 'تنزيل',
 
@@ -2285,6 +2286,7 @@ $1',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|بايت|بايت}}',
 'ncategories' => '$1 {{PLURAL:$1|تصنيف واحد|تصنيفان|تصنيفات|تصنيف|تصنيفا}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwikis}}',
 'nlinks' => '{{PLURAL:$1|لا وصلات|وصلة واحدة|وصلتان|$1 وصلات|$1 وصلة}}',
 'nmembers' => '{{PLURAL:$1|لا أعضاء|عضو واحد|عضوان|$1 أعضاء|$1 عضوا|$1 عضو}}',
 'nrevisions' => '{{PLURAL:$1|لا مراجعات|مراجعة واحدة|مراجعتان|$1 مراجعات|$1 مراجعة}}',
@@ -2313,6 +2315,7 @@ $1',
 'mostlinkedtemplates' => 'أكثر القوالب وصلا',
 'mostcategories' => 'أكثر الصفحات تصنيفا',
 'mostimages' => 'أكثر الملفات ارتباطا',
+'mostinterwikis' => 'الصفحات التي تحتوي على أغلب وصلات الإنترويكي',
 'mostrevisions' => 'أكثر الصفحات تعديلا',
 'prefixindex' => 'كل الصفحات بالبادئة',
 'prefixindex-namespace' => 'كل الصفحات مع بادئة ($1 مساحة الأسم)',
@@ -2414,7 +2417,7 @@ $1',
 'linksearch-ok' => 'بحث',
 'linksearch-text' => 'Wildcards مثل "*.wikipedia.org" يمكن استخدامها.
 تحتاج على الأقل إلى نطاق ذو مستوى أعلى، كمثال "*.org".<br />
-البروتوكولات المدعومة: <tt>$1</tt> (لا تقم بإضافة أي من هذه إلى بحثك).',
+البروتوكولات المدعومة: <code>$1</code> (لا تقم بإضافة أي من هذه إلى بحثك).',
 'linksearch-line' => '$1 موصولة من $2',
 'linksearch-error' => 'الكروت الخاصة يمكن أن تظهر فقط في بداية اسم المضيف.',
 
@@ -2427,7 +2430,7 @@ $1',
 # Special:ActiveUsers
 'activeusers' => 'قائمة المستخدمين النشطين',
 'activeusers-intro' => 'هذه قائمة بالمستخدمين الذين مارسوا نوعاً من النشاط خلال {{PLURAL:$1||اليوم الماضي|اليومين الماضيين|ال$1 أيام الماضية|ال$1 يوماً ماضياً|ال$1 يوم ماضي}}.',
-'activeusers-count' => '{{PLURAL:$1|Ù\84ا ØªØ¹Ø¯Ù\8aÙ\84ات Ø­Ø¯Ù\8aثة|تعدÙ\8aÙ\84 Ø­Ø¯Ù\8aØ« Ù\88احد|تعدÙ\8aÙ\84اÙ\86 Ø­Ø¯Ù\8aثاÙ\86|$1 ØªØ¹Ø¯Ù\8aÙ\84ات Ø­Ø¯Ù\8aثة|$1 ØªØ¹Ø¯Ù\8aÙ\84اÙ\8b Ø­Ø¯Ù\8aثاÙ\8b|$1 ØªØ¹Ø¯Ù\8aÙ\84 Ø­Ø¯Ù\8aØ«}} Ø®Ù\84اÙ\84 {{PLURAL:$3||اÙ\84Ù\8aÙ\88Ù\85 Ø§Ù\84Ù\85اضÙ\8a|اÙ\84Ù\8aÙ\88Ù\85Ù\8aÙ\86 Ø§Ù\84Ù\85اضÙ\8aÙ\8aÙ\86|$3 Ø£Ù\8aاÙ\85 Ù\85اضÙ\8aØ©|$3 Ù\8aÙ\88Ù\85اÙ\8b Ù\85اضÙ\8aØ©|اÙ\84$1 Ù\8aÙ\88Ù\85 Ù\85اضÙ\8a}}',
+'activeusers-count' => '{{PLURAL:$1|Ù\85ا Ù\85Ù\86 ØªØ¹Ø¯Ù\8aÙ\84ات|تعدÙ\8aÙ\84 Ø­Ø¯Ù\8aØ« Ù\88احد|تعدÙ\8aÙ\84اÙ\86 Ø­Ø¯Ù\8aثاÙ\86|$1 ØªØ¹Ø¯Ù\8aÙ\84ات Ø­Ø¯Ù\8aثة|$1 ØªØ¹Ø¯Ù\8aÙ\84ا Ø­Ø¯Ù\8aثا|$1 ØªØ¹Ø¯Ù\8aÙ\84 Ø­Ø¯Ù\8aØ«}} Ù\85Ù\86Ø° {{PLURAL:$3||Ù\8aÙ\88Ù\85\8aÙ\88Ù\85Ù\8aÙ\86|$3 Ø£Ù\8aاÙ\85|$3 Ù\8aÙ\88Ù\85ا|$1 Ù\8aÙ\88Ù\85}}',
 'activeusers-from' => 'اعرض المستخدمين بدءاً من:',
 'activeusers-hidebots' => 'أخف البوتات',
 'activeusers-hidesysops' => 'أخف الإداريين',
@@ -2460,6 +2463,8 @@ $1',
 'mailnologin' => 'لا يوجد عنوان للإرسال',
 'mailnologintext' => 'يجب أن تقوم [[Special:UserLogin|بتسجيل الدخول]] وإدخال بريد إلكتروني صالح في صفحة [[Special:Preferences|التفضيلات]] لتتمكن من إرسال الرسائل لمستخدمين آخرين.',
 'emailuser' => 'إرسال رسالة لهذا المستخدم',
+'emailuser-title-target' => 'راسل بالبريد الإلكتروني هذا  {{GENDER:$1| المستخدم}}',
+'emailuser-title-notarget' => 'مراسلة المستخدم',
 'emailpage' => 'إرسال رسالة للمستخدم',
 'emailpagetext' => 'يمكنك استخدام الاستمارة بالأسفل لإرسال رسالة بريد إلكتروني إلى هذا المستخدم.
 سيظهر عنوان البريد الإلكتروني الذي أدخلته في [[Special:Preferences|تفضيلاتك]] كعنوان المرسل في البريد الإلكتروني، كي يستطيع المتلقي الرد عليك مباشرة.',
@@ -2602,7 +2607,7 @@ $UNWATCHURL
 'rollback' => 'استرجاع التعديلات',
 'rollback_short' => 'استرجع',
 'rollbacklink' => 'استرجع',
-'rollbacklinkcount' => 'استرجع {{PLURAL:$1|لا تعديلات|تعديلاً واحداً|تعديلين|$1 تعديلات|$1 تعديل}}',
+'rollbacklinkcount' => 'استرجع {{PLURAL:$1|لا تعديلات|تعديلا واحدا|تعديلين|$1 تعديلات|$1 تعديل}}',
 'rollbacklinkcount-morethan' => 'استرجاع أكثر من $1 {{PLURAL:$1|تعديل|تعديلات}}',
 'rollbackfailed' => 'لم ينجح الاسترجاع',
 'cantrollback' => 'لم يمكن استرجاع التعديل؛
@@ -2880,7 +2885,7 @@ $1',
 'unblocklink' => 'ارفع المنع',
 'change-blocklink' => 'تغيير المنع',
 'contribslink' => 'مساهمات',
-'emaillink' => 'أرسل بريدًا إلكترونيًا',
+'emaillink' => 'أرسل بريدا إلكترونيا',
 'autoblocker' => 'تم منعك تلقائياً لأن الأيبي الخاص بك تم استخدامه مؤخراً بواسطة «[[User:$1|$1]]».
 السبب المعطى لمنع $1 هو: «$2»',
 'blocklogpage' => 'سجل المنع',
@@ -3111,6 +3116,7 @@ $1',
 'import-interwiki-templates' => 'ضمن كل القوالب',
 'import-interwiki-submit' => 'استيراد',
 'import-interwiki-namespace' => 'النطاق الهدف:',
+'import-interwiki-rootpage' => 'صفحة الجذر الهدف (اختياري) :',
 'import-upload-filename' => 'اسم الملف:',
 'import-comment' => 'تعليق:',
 'importtext' => 'من فضلك صدر الملف من الويكي المصدر باستخدام [[Special:Export|أداة التصدير]].
@@ -3145,6 +3151,9 @@ $1',
 'import-error-interwiki' => 'تعذر أستيراد الصفحة "$1" بسبب أن إسمها محجوز للربط الخارجي (interwiki).',
 'import-error-special' => 'تعذر أستيراد الصفحة "$1" لأنها تنتمي إلى مساحة إسم خاصة تمنع الصفحات.',
 'import-error-invalid' => 'تعذر أستيراد الصفحة "$1" بسبب أن إسمها غير صحيح.',
+'import-options-wrong' => 'خطأ {{PLURAL:$2|خيار|خيارات}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'إن عنوان الصفحة الجذر المعطاة هي ذات عنوان غير صالح.',
+'import-rootpage-nosubpage' => 'إن النطاق "$1" لصفحة الجذر لا يسمح بصفحات فرعية.',
 
 # Import log
 'importlogpage' => 'سجل الاستيراد',
@@ -3298,16 +3307,32 @@ $1',
 
 # Info page
 'pageinfo-title' => 'المعلومات ل"$1"',
+'pageinfo-header-basic' => 'المعلومات الأساسية',
 'pageinfo-header-edits' => 'التعديلات',
-'pageinfo-header-watchlist' => 'قائمة المراقبة',
-'pageinfo-header-views' => 'مشاهدات',
-'pageinfo-subjectpage' => 'الصفحة',
-'pageinfo-talkpage' => 'صفحة نقاش',
+'pageinfo-header-restrictions' => 'حماية الصفحة',
+'pageinfo-header-properties' => 'خصائص الصفحة',
+'pageinfo-display-title' => 'عرض العنوان',
+'pageinfo-default-sort' => 'مفتاح الترتيب الافتراضي',
+'pageinfo-length' => 'حجم الصفحة (بالبايت)',
+'pageinfo-article-id' => 'معرف الصفحة (ID)',
+'pageinfo-robot-policy' => 'الصفة في محرك البحث',
+'pageinfo-robot-index' => 'قابلة للفهرسة',
+'pageinfo-robot-noindex' => 'غير قابلة للفهرسة',
+'pageinfo-views' => 'عدد المشاهدات',
 'pageinfo-watchers' => 'عدد المراقبين',
+'pageinfo-redirects-name' => 'التوجيهات نحو هذه الصفحة',
+'pageinfo-subpages-name' => 'الصفحات الفرعية لهذه الصفحة',
+'pageinfo-firstuser' => 'منشئ الصفحة',
+'pageinfo-firsttime' => 'تاريخ إنشاء الصفحة',
+'pageinfo-lastuser' => 'آخر محرر',
+'pageinfo-lasttime' => 'تاريخ آخر تعديل',
 'pageinfo-edits' => 'عدد التعديلات',
 'pageinfo-authors' => 'عدد المؤلفين المختلفين',
-'pageinfo-views' => 'عدد المشاهدات',
-'pageinfo-viewsperedit' => 'المشاهدات لكل تعديل',
+'pageinfo-recent-edits' => 'عدد التعديلات الأخيرة (خلال  $1 يوم/أيام)',
+'pageinfo-recent-authors' => 'عدد المؤلفين المختلفين الأخيرين',
+'pageinfo-restriction' => 'حماية الصفحة (<code>$1</code>)',
+'pageinfo-hidden-categories' => 'خفية   ( $1 )',
+'pageinfo-templates' => 'مضمنة  ( $1 )',
 
 # Skin names
 'skinname-standard' => 'كلاسيك',
@@ -3321,15 +3346,15 @@ $1',
 'skinname-vector' => 'فكتور',
 
 # Patrolling
-'markaspatrolleddiff' => 'علم كمراجعة',
-'markaspatrolledtext' => 'علم على هذه الصفحة كمراجعة',
-'markedaspatrolled' => 'تÙ\85 Ø§Ù\84تعÙ\84Ù\8aÙ\85 Ù\83مراجعة',
-'markedaspatrolledtext' => 'اÙ\84Ù\85راجعة Ø§Ù\84Ù\85ختارة Ù\85Ù\86 [[:$1]] ØªÙ\85 Ø§Ù\84تعÙ\84Ù\8aÙ\85 Ø¹Ù\84Ù\8aÙ\87ا Ù\83مراجعة.',
+'markaspatrolleddiff' => 'علم بعلامة المراجعة',
+'markaspatrolledtext' => 'علم هذه الصفحة بعلامة المراجعة',
+'markedaspatrolled' => 'عÙ\84Ù\85ت Ø¨Ø¹Ù\84اÙ\85Ø© Ø§Ù\84مراجعة',
+'markedaspatrolledtext' => 'اÙ\84Ù\85راجعة Ø§Ù\84Ù\85ختارة Ù\85Ù\86 [[:$1]] Ø¹Ù\84Ù\85ت Ø¨Ø¹Ù\84اÙ\85Ø© Ø§Ù\84مراجعة.',
 'rcpatroldisabled' => 'مراجعة أحدث التغييرات معطلة',
 'rcpatroldisabledtext' => 'خاصية مراجعة أحدث التغييرات معطلة حاليا',
 'markedaspatrollederror' => 'لا يمكن التعليم بالمراجعة',
 'markedaspatrollederrortext' => 'يجب عليك اختيار المراجعة التي تريد أن تشير أنها مراجعة',
-'markedaspatrollederror-noautopatrol' => 'Ù\85Ù\86 ØºÙ\8aر Ø§Ù\84Ù\85سÙ\85Ù\88Ø­ Ù\84Ù\83 Ø§Ù\84تعÙ\84Ù\8aÙ\85 Ø¹Ù\84Ù\89 ØªØºÙ\8aÙ\8aراتÙ\83 Ø§Ù\84شخصÙ\8aØ© Ù\83مراجعة.',
+'markedaspatrollederror-noautopatrol' => 'Ù\84ا Ù\8aجÙ\88ز Ù\84Ù\83 ØªØ¹Ù\84Ù\8aÙ\85 ØªØºÙ\8aÙ\8aراتÙ\83 Ø§Ù\84شخصÙ\8aØ© Ø¨Ø¹Ù\84اÙ\85Ø© Ø§Ù\84مراجعة.',
 
 # Patrol log
 'patrol-log-page' => 'سجل الخفر',
@@ -3361,6 +3386,7 @@ $1',
 'file-info-size-pages' => '$1 × $2 بكسل, حجم الملف  : $3 ، نوع الملف : $4 ، $5 {{PLURAL:$5| صفحة | صفحات}}',
 'file-nohires' => 'لا توجد دقة أعلى متوفرة.',
 'svg-long-desc' => 'ملف SVG، أبعاده $1 × $2 بكسل، حجم الملف: $3',
+'svg-long-desc-animated' => 'ملف SVG متحرك، بمقاسات  $1  ×  $2  بكسل، حجم الملف: $3',
 'show-big-image' => 'دقة كاملة',
 'show-big-image-preview' => 'حجم هذه المعاينة: $1.',
 'show-big-image-other' => '{{PLURAL:$2||البعد الآخر|البعدان الآخران|الأبعاد الأخرى}}: $1.',
@@ -3370,6 +3396,8 @@ $1',
 'file-info-png-looped' => 'ملفوف',
 'file-info-png-repeat' => 'عرضت {{PLURAL:$1||مرة واحدة|مرتين|$1 مرات|$1 مرة}}',
 'file-info-png-frames' => '{{PLURAL:$1||إطار واحد|إطاران|$1 إطارات|$1 إطارًا|$1 إطار}}',
+'file-no-thumb-animation' => "'' 'ملاحظة: نظراً للقيود التقنية، فإن الصورة المصغرة لهذا الملف ستكون غير متحركة. '''",
+'file-no-thumb-animation-gif' => "'' 'ملاحظة: نظراً للقيود التقنية، فإن الصورة المصغرة لهذا الملف GIF عالي الدقة ستكون غير متحركة. '''",
 
 # Special:NewFiles
 'newimages' => 'معرض الملفات الجديدة',
index be1c304..d020c8e 100644 (file)
@@ -370,7 +370,7 @@ $1',
 'actionthrottled' => 'ܠܐ ܡܬܡܨܝܢܬܐ ܐܝܬܝܗܝ ܠܡܥܒܕ ܝܬܝܪ ܡܢ ܗܢܐ ܥܒܕܐ',
 'viewsourcetext' => 'ܡܨܐ ܐܢܬ ܕܢܚܙܐ ܘܢܣܚܐ ܠܡܒܘ̈ܥܐ ܕܗܕܐ ܦܐܬܐ:',
 'protectedinterface' => 'ܗܕܐ ܦܐܬܐ ܡܘܬܪܐ ܟܬܝܒܬܐ ܕܦܐܬܐ ܠܚܘܪܙܐ, ܘܐܝܬܝܗܝ ܢܛܪܬܐ ܠܡܘܢܥ ܚܘܒܠܐ.',
-'editinginterface' => "'''Ü\99Ü\98Ü\97ܪÜ\90:''' Ü\90ܢܬ Ü«Ü\9aܠܦܬ Ü¦Ü\90ܬÜ\90 Ü\95ܡܬܦܠÜ\9aܬ Ü\92Ü\9aÜ\99Ü\9dÜ\90 Ü\9fܬÜ\9dÜ\92Ü\9dÜ\90 Ü\95Ü\9aÜ\98ܪÜ\99ܐ.
+'editinginterface' => "'''Ü\99Ü\98Ü\97ܪÜ\90:''' Ü\90ܢܬ Ü«Ü\9aܠܦܬ Ü¦Ü\90ܬÜ\90 Ü\95ܡܬܦܠÜ\9aܬ Ü\92Ü\9aÜ\99Ü\9dÜ\90 Ü\9fܬÜ\9dÜ\92Ü\9dÜ\90 Ü\95ܬÜ\9aܪÜ\99ܬܐ.
 ܟܠ ܫܘܚܠܦܐ ܒܦܐܬܐ ܗܕܐ ܢܗܘܐ ܠܗ ܡܥܒܕܢܘܬܐ ܥܠ ܐܣܟܡܐ ܕܦܐܬܐ ܕܡܦܠܚܢܐ ܕܡܦܠܚܢ̈ܐ ܐܚܪ̈ܢܐ.
 ܠܬܘܪ̈ܓܡܐ، ܐܦܠܚ ܬܪܡܝܬܐ ܕܬܘܪܓܡܐ ܕܡܝܕܝܐܘܝܩܝ [//translatewiki.net/wiki/Main_Page?setlang=ar translatewiki.net].",
 'sqlhidden' => '(ܒܘܬܬܐ SQL ܛܫܝܐ)',
@@ -802,9 +802,11 @@ $1',
 'recentchanges' => 'ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ',
 'recentchanges-legend' => 'ܓܒܝܬ̈ܐ ܕܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ',
 'recentchanges-summary' => 'ܥܩܒ ܫܘܚܠܦ̈ܐ ܚܕܬ ܡܢ ܟܠ ܕܘܝܩܝ ܒܦܐܬܐ ܗܕܐ.',
+'recentchanges-feed-description' => 'ܥܩܒ ܫܘܚܠܦ̈ܐ ܚܕܬ ܡܢ ܟܠ ܕܘܝܩܝ ܒܝܕ ܗܕܐ ܬܪܣܝܬܐ.',
 'recentchanges-label-newpage' => 'ܫܘܚܠܦܐ ܗܢܐ ܐܬܬܣܝܡ ܦܐܬܐ ܚܕܬܐ',
 'recentchanges-label-minor' => 'ܗܢܘ ܫܘܚܠܦܐ ܙܥܘܪܐ',
 'recentchanges-label-bot' => 'ܒܘܬ (bot) ܥܒܕ ܗܢܐ ܫܘܚܠܦܐ',
+'rcnotefrom' => "ܠܬܚܬ ܫܘܚܠܦ̈ܐ ܕܡܢ '''$2''' (ܥܕ '''$1''' ܡܬܚܙܝܢ̈ܐ).",
 'rclistfrom' => 'ܚܘܝ ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ ܡܢ $1',
 'rcshowhideminor' => '$1 ܫܘܚܠܦ̈ܐ ܙܥܘܪ̈ܐ',
 'rcshowhidebots' => '$1 ܒܘܬ̈ܐ (Bots)',
@@ -895,6 +897,7 @@ $1',
 'filehist' => 'ܬܫܥܝܬܐ ܕܠܦܦܐ',
 'filehist-deleteall' => 'ܫܘܦ ܟܠ',
 'filehist-deleteone' => 'ܫܘܦ',
+'filehist-revert' => 'ܐܦܢܝ',
 'filehist-current' => 'ܗܫܝܐ',
 'filehist-datetime' => 'ܣܝܩܘܡܐ/ܙܒܢܐ',
 'filehist-thumb' => 'ܨܘܪܬܐ ܙܥܘܪܬܐ',
@@ -1072,6 +1075,7 @@ $1',
 'linksearch-pat' => 'ܙܢܐ ܕܒܨܝܐ:',
 'linksearch-ns' => 'ܚܩܠܐ:',
 'linksearch-ok' => 'ܒܨܝ',
+'linksearch-line' => '$1 ܝܨܝܪܐ ܡܢ $2',
 
 # Special:ListUsers
 'listusersfrom' => 'ܚܘܝ ܡܦܠܚܢ̈ܐ ܕܫܪܝܢ ܒ:',
@@ -1295,10 +1299,14 @@ $1',
 'whatlinkshere-filters' => 'ܡܨܦܝܢܝܬ̈ܐ',
 
 # Block/unblock
+'autoblockid' => 'ܚܪܡܐ ܝܬܢܝܐ #$1',
+'block' => 'ܚܪܘܡ ܡܦܠܚܢܐ',
+'unblock' => 'ܫܩܘܠ ܚܪܡܐ ܡܢ ܡܦܠܚܢܐ',
 'blockip' => 'ܚܪܘܡ ܡܦܠܚܢܐ',
 'blockip-title' => 'ܚܪܘܡ ܡܦܠܚܢܐ',
 'blockip-legend' => 'ܚܪܘܡ ܡܦܠܚܢܐ',
 'ipadressorusername' => 'ܐܝ ܦܝ (IP) ܐܘ ܫܡܐ ܕܡܦܠܚܢܐ:',
+'ipbexpiry' => 'ܡܬܚܐ ܕܚܪܡܐ:',
 'ipbreason' => 'ܥܠܬܐ:',
 'ipbreasonotherlist' => 'ܥܠܬܐ ܐܚܪܬܐ',
 'ipbsubmit' => 'ܚܪܘܡ ܡܦܠܚܢܐ ܗܢܐ',
@@ -1332,6 +1340,7 @@ $1',
 'blocklogentry' => 'ܚܪܡ [[$1]] ܠܡܬܚܐ ܕ $2 $3',
 'unblocklogentry' => 'ܫܩܠ ܚܪܡܐ ܡܢ $1',
 'block-log-flags-anononly' => 'ܡܦܠܚܢ̈ܐ ܠܐ ܝܕ̈ܝܥܐ ܒܠܚܘܕ',
+'block-log-flags-nocreate' => 'ܒܪܝܬܐ ܕܚܘܫܒ̈ܢܐ ܠܐ ܗܝ ܡܬܩܒܠܢܬܐ',
 'block-log-flags-hiddenname' => 'ܫܡܐ ܕܡܦܠܚܢܐ ܛܘܫܝܐ',
 'ipb_already_blocked' => '"$1" ܡܚܪܡܐ ܗܘ ܡܢ ܟܕܘ',
 'ipb-needreblock' => '"$1" ܡܚܪܡܐ ܗܘ ܡܢ ܟܕܘ
@@ -1403,6 +1412,7 @@ Do you want to change the settings?',
 'tooltip-pt-userpage' => 'ܦܐܬܐ ܕܡܦܠܚܢܐ ܕܝܠܟ',
 'tooltip-pt-mytalk' => 'ܦܐܬܐ ܕܡܡܠܘܟ',
 'tooltip-pt-preferences' => 'Your preferences',
+'tooltip-pt-watchlist' => 'ܡܟܬܒܢܘܬܐ ܕܦܐܬܬ̈ܐ ܕܒܪܗܝܬ ܐܢܬ ܫܘܚܠܦ̈ܐ ܕܬܗܘܐ ܒܗܘܢ',
 'tooltip-pt-login' => 'ܢܠܒܒ ܠܟ ܕܣܓܠ ܐܢܬ ܥܠܠܐ ܕܝܠܟ، ܐܠܐ ܗܢܐ ܠܐ ܐܝܬܝܗܝ ܐܠܨܝܐ',
 'tooltip-pt-logout' => 'ܦܠܛܐ',
 'tooltip-ca-talk' => 'ܡܡܠܠܐ ܥܠ ܚܒܝܫܬܐ ܕܦܐܬܐ',
@@ -1412,15 +1422,21 @@ Do you want to change the settings?',
 'tooltip-ca-protect' => 'ܢܛܘܪ ܗܕܐ ܦܐܬܐ',
 'tooltip-ca-delete' => 'ܫܘܦ ܦܐܬܐ ܗܕܐ',
 'tooltip-search' => 'ܒܨܝ ܒܓܘ {{SITENAME}}',
+'tooltip-search-fulltext' => 'ܒܨܝ ܒܓܘ ܦܐܬܬ̈ܐ ܥܠ ܗܢܐ ܟܬܝܒܬܐ',
 'tooltip-p-logo' => 'ܦܐܬܐ ܪܝܫܝܬܐ',
+'tooltip-n-mainpage-description' => 'ܬܪܘܩܬܐ ܕܦܐܬܐ ܪܝܫܝܬܐ',
 'tooltip-n-portal' => 'ܚܕܪ ܬܪܡܝܬܐ، ܡܢܐ ܡܫܟܚ ܐܢܬ ܠܥܒܕܐ، ܐܝܟܐ ܬܚܙܝ ܟܠ ܡܐ ܕܣܢܝܩ ܐܢܬ ܠܗ',
 'tooltip-n-recentchanges' => 'ܡܟܬܒܢܘܬܐ ܒܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ ܒܓܘ ܘܝܩܝ.',
 'tooltip-n-randompage' => 'ܦܬܘܟ ܡܓܠܬܐ ܚܘܝܚܬܐ',
 'tooltip-n-help' => 'ܕܘܟܐ ܠܥܘܕܪܢܐ',
+'tooltip-feed-atom' => 'ܬܪܣܝܬܐ ܕAtom ܠܗܢܐ ܦܐܬܬܐ',
 'tooltip-t-contributions' => 'ܡܟܬܒܢܘܬܐ ܒܫܘܬܦ̈ܐ ܕܗܢܐ ܡܦܠܚܢܐ',
 'tooltip-t-emailuser' => 'ܫܕܪ ܐܓܪܬܐ ܠܗܢܐ ܡܦܠܚܢܐ',
+'tooltip-t-upload' => 'ܐܣܩ ܠܦܦ̈ܐ',
 'tooltip-t-specialpages' => 'ܡܟܬܒܢܘܬܐ ܒܟܠ ܦܐܬܬ̈ܐ ܕ̈ܝܠܢܝܬܐ',
+'tooltip-ca-nstab-main' => 'ܚܘܝ ܦܐܬܬܐ ܕܚܒ̈ܝܫܬܐ',
 'tooltip-ca-nstab-user' => 'ܚܘܝ ܦܐܬܐ ܕܡܦܠܚܢܐ',
+'tooltip-ca-nstab-image' => 'ܚܘܝ ܦܐܬܐ ܕܠܦܦܐ',
 'tooltip-save' => 'ܠܒܘܟ ܫܘܚܠܦܟ',
 
 # Attribution
index c774771..e5397fa 100644 (file)
@@ -2128,15 +2128,10 @@ Imken lek ṫċof l-ĝin dyalha.',
 # Info page
 'pageinfo-title' => 'mĝlomaṫ l-"$1"',
 'pageinfo-header-edits' => 'ṫĝdilaṫ',
-'pageinfo-header-watchlist' => "qa'imaṫ l-ṃoṛaqaba",
-'pageinfo-header-views' => 'moċahadaṫ',
-'pageinfo-subjectpage' => 'ṣfḫa',
-'pageinfo-talkpage' => 'ṣfḫṫ n-niqaċ',
+'pageinfo-views' => 'ĝadad l-moċahadaṫ',
 'pageinfo-watchers' => 'ĝadad l-moraqibin',
 'pageinfo-edits' => 'ĝadad ṫ-ṫĝdilaṫ',
 'pageinfo-authors' => "ĝadad l-mo'llifin l-mĥṫalfin",
-'pageinfo-views' => 'ĝadad l-moċahadaṫ',
-'pageinfo-viewsperedit' => 'l-moċahadaĝ l-koll ṫĝdil',
 
 # Patrolling
 'markaspatrolleddiff' => 'marki kamorajaaa',
index 227276a..8fe762b 100644 (file)
@@ -1580,9 +1580,9 @@ $1",
 لعرض أو البحث ف الملفات المتحملة سابقا، راجع عمليات المسح [[Special:Log/delete|deletion log]] [[Special:FileList|لستة الملفات المتحملة]]، عمليات التحميل  موجودة فى [[Special:Log/upload|سجل التحميل]].
 
 علشان تحط صورة فى صفحة، استخدم الوصلات فى الصيغ التالية:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' علشان استخدام النسخة الكاملة لملف
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|نص بديل]]</nowiki></tt>''' لاستخدام صورة عرضها 200 بكسل فى صندوق فى الجانب الأيسر مع 'نص بديل' كوصف
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' للوصل للملف مباشرة بدون عرض الملف.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' علشان استخدام النسخة الكاملة لملف
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|نص بديل]]</nowiki></code>''' لاستخدام صورة عرضها 200 بكسل فى صندوق فى الجانب الأيسر مع 'نص بديل' كوصف
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' للوصل للملف مباشرة بدون عرض الملف.",
 'upload-permitted' => 'أنواع الملفات المسموحة: $1.',
 'upload-preferred' => 'أنواع الملفات المفضلة: $1.',
 'upload-prohibited' => 'أنواع الملفات الممنوعة: $1.',
@@ -1617,20 +1617,20 @@ $1",
 'emptyfile' => 'الظاهر ان الملف اللى انت حملته طلع فاضي.
 يمكن يكون السبب هوه كتابة الاسم غلط.
 لو سمحت تتاكد من إنك فعلا عايز تحمل الملف دا..',
-'fileexists' => "فيه  ملف موجود بالاسم ده  الرجاء التأكد من الملف ده باتباع الوصلة التالية '''<tt>[[:$1]]</tt>''' قبل ما تغيره.
-[[$1|thumb]]",
-'filepageexists' => "صفحة الوصف بتاعة المف دا خلاص اتعملها انشاء فى '''<tt>[[:$1]]</tt>'''، بس مافيش ملف بالاسم دا دلوقتى.
+'fileexists' => 'فيه  ملف موجود بالاسم ده  الرجاء التأكد من الملف ده باتباع الوصلة التالية <strong>[[:$1]]</strong> قبل ما تغيره.
+[[$1|thumb]]',
+'filepageexists' => 'صفحة الوصف بتاعة المف دا خلاص اتعملها انشاء فى <strong>[[:$1]]</strong>، بس مافيش ملف بالاسم دا دلوقتى.
 الملخص اللى ح تكتبه  مش ح يظهر على صفحة الوصف.
 علشان تخلى الملف يظهر هناك، ح تحتاج تعدله يدوي.
-[[$1|thumb]]",
-'fileexists-extension' => "فى ملف موجود باسم قريب: [[$2|thumb]]
-* اسم الملف اللى انت عايز تحمله: '''<tt>[[:$1]]</tt>'''
-* اسم الملف الموجود: '''<tt>[[:$2]]</tt>'''
-لو سمحت تختار اسم تاني.",
+[[$1|thumb]]',
+'fileexists-extension' => 'فى ملف موجود باسم قريب: [[$2|thumb]]
+* اسم الملف اللى انت عايز تحمله: <strong>[[:$1]]</strong>
+* اسم الملف الموجود: <strong>[[:$2]]</strong>
+لو سمحت تختار اسم تاني.',
 'fileexists-thumbnail-yes' => "الظاهر ان الملف دا عبارة عن صورة متصغرة ''(تصغير)''. [[$1|thumb]]
-لو سمحت تشيك على الملف '''<tt>[[:$1]]</tt>'''.
+لو سمحت تشيك على الملف <strong>[[:$1]]</strong>.
 لو كان الملف هو نفس الصورة بالحجم الاصلي، ف مافيش داعى تحمله مرة تانية",
-'file-thumbnail-no' => "يبدأ الملف ب '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "يبدأ الملف ب <strong>$1</strong>.
 يبدو أن الملف مصتغر لحجم أعلى ''(تصغير)''.
 إذا كان عندك الصورة فى درجة دقة كامله حملها، أو غير اسم الملف من فضلك.",
 'fileexists-forbidden' => 'فى ملف بنفس الاسم موجود, و ماينفعش يتكتب عليه.
@@ -1821,7 +1821,7 @@ PICT # misc.
 'mimesearch' => 'تدوير MIME',
 'mimesearch-summary' => 'الصفحة دى مهمتها فلترة الملفات على حسب نوعها.
 المدخل: نوع المحتوى/النوع الفرعي، يعنى مثلا
-<tt>image/jpeg</tt>.',
+<code>image/jpeg</code>.',
 'mimetype' => 'نوع الملف:',
 'download' => 'تنزيل',
 
@@ -2007,7 +2007,7 @@ PICT # misc.
 'linksearch-ns' => 'النطاق:',
 'linksearch-ok' => 'تدوير',
 'linksearch-text' => 'الكروت الخاصة زى "*.wikipedia.org" ممكن تستعمل.<br />
-البروتوكولات المدعومة: <tt>$1</tt>',
+البروتوكولات المدعومة: <code>$1</code>',
 'linksearch-line' => '$1 موصوله من $2',
 'linksearch-error' => 'الكروت الخاصة ممكن تبان بس  فى بداية اسم المضيف',
 
index 19294d0..fea431a 100644 (file)
@@ -1503,9 +1503,9 @@ $1",
 'uploadtext' => "ফাইল আপল’ড কৰাৰ বাবে তলৰ প্ৰপত্ৰ ব্যৱহাৰ কৰক। পূৰ্বে আপল’ড কৰা ফাইল চাবলৈ বা অনুসন্ধান কৰিবলৈ [[Special:FileList|আপল’ড কৰা ফাইলৰ তালিকা]] লৈ যাওক । (পুনঃ) আপল’ড কৰা ফাইলৰ নাম [[Special:Log/upload|আপল’ড অভিলেখত]] ভৰ্তি হয়, বিলোপ কৰা ফাইলৰ নাম [[Special:Log/delete|অৱলুপ্তি অভিলেখত]] পাব ।
 
 কোনো পৃষ্ঠাত চিত্ৰ বা ফাইল সন্নিবিষ্ট কৰিবৰ বাবে তলৰ প্ৰপত্ৰসমূহত থকা সংযোগ ব্যৱহাৰ কৰক: 
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''',
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' অথবা
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''',
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' অথবা
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''",
 'upload-permitted' => 'অনুমোদিত ফাইল ধৰণ: $1',
 'upload-preferred' => 'বাঞ্ছিত ফাইল ধৰণ: $1',
 'upload-prohibited' => 'বঞ্চিত ফাইল ধৰণ: $1',
@@ -1553,21 +1553,21 @@ $1",
 ফাইলৰ নাম টাইপিঙত ভুলৰ বাবে এনে হ’ব পাৰে ।
 আপুনি সঁচাকৈ এই ফাইল আপল'ড কৰিব বিচাৰিছেনে পৰীক্ষা কৰক ।",
 'windows-nonascii-filename' => 'বিশেষ চিহ্ন থকা ফাইলৰ নাম এই ৱিকিয়ে সমৰ্থন নকৰে ।',
-'fileexists' => "এই নামৰ এটা ফাইল ইতিমধ্যেই আছে । আপুনি ইয়াক সলাব বিচৰাটো নিশ্চিত নহ’লে অনুগ্ৰহ কৰি '''<tt>[[:$1]]</tt>''' পৰীক্ষা কৰি চাওক ।
-[[$1|thumb]]",
-'filepageexists' => "এই ফাইলৰ বিৱৰণী পৃষ্ঠা '''<tt>[[:$1]]</tt>''' ত ইতিমধ্যেই তৈয়াৰ কৰা হৈছে, কিন্তু সদ্যহতে এই নামৰ কোনো ফাইল নাই ।
+'fileexists' => 'এই নামৰ এটা ফাইল ইতিমধ্যেই আছে । আপুনি ইয়াক সলাব বিচৰাটো নিশ্চিত নহ’লে অনুগ্ৰহ কৰি <strong>[[:$1]]</strong> পৰীক্ষা কৰি চাওক ।
+[[$1|thumb]]',
+'filepageexists' => 'এই ফাইলৰ বিৱৰণী পৃষ্ঠা <strong>[[:$1]]</strong> ত ইতিমধ্যেই তৈয়াৰ কৰা হৈছে, কিন্তু সদ্যহতে এই নামৰ কোনো ফাইল নাই ।
 আপুনি দাখিল কৰা সাৰাংশ বিৱৰণী পৃষ্ঠাত দেখা নাযাব ।
 আপোনাৰ সাৰাংশ তাত দেখা পোৱা যাবলৈ ইয়াক আপুনি হাতেৰে সম্পাদনা কৰিব লাগিব ।
-[[$1|thumb]]",
-'fileexists-extension' => "একে নামৰ ফাইল ইতিমধ্যে আছে: [[$2|thumb]] 
-* আপলোড কৰা ফাইলৰ নাম: '''<tt>[[:$1]]</tt>''' 
-* বৰ্তমানে থকা ফাইলৰ নাম: '''<tt>[[:$2]]</tt>''' 
-অনুগ্ৰহ কৰি আন এটা নাম বাছি লওক ।",
+[[$1|thumb]]',
+'fileexists-extension' => 'একে নামৰ ফাইল ইতিমধ্যে আছে: [[$2|thumb]] 
+* আপলোড কৰা ফাইলৰ নাম: <strong>[[:$1]]</strong> 
+* বৰ্তমানে থকা ফাইলৰ নাম: <strong>[[:$2]]</strong> 
+অনুগ্ৰহ কৰি আন এটা নাম বাছি লওক ।',
 'fileexists-thumbnail-yes' => "এই ফাইলটো সম্ভৱত: সংক্ষিপ্ত আকাৰৰ ''(থাম্বনেইল)'' চিত্ৰ ।
 [[$1|thumb]]
-অনুগ্ৰহ কৰি '''<tt>[[:$1]]</tt>''' ফাইলটো পৰীক্ষা কৰি চাওক ।
+অনুগ্ৰহ কৰি <strong>[[:$1]]</strong> ফাইলটো পৰীক্ষা কৰি চাওক ।
 যদি পৰীক্ষা কৰা ফাইলটো একেই চিত্ৰৰ মূল আকাৰ হয় তেন্তে এটা অতিৰিক্ত থাম্বনেইল আপলোড কৰাৰ প্ৰয়োজন নাই ।",
-'file-thumbnail-no' => "এই ফাইলনামটো '''<tt>$1</tt>''' ৰে আৰম্ভ হৈছে ।
+'file-thumbnail-no' => "এই ফাইলনামটো <strong>$1</strong> ৰে আৰম্ভ হৈছে ।
 এইখন সম্ভৱত: সংক্ষিপ্ত আকাৰৰ ''(থাম্বনেইল)'' চিত্ৰ ।
 আপোনাৰ ওচৰত যদি পূৰ্ণ ৰিজ’লিউচনৰ চিত্ৰখন আছে সেইখন আপল’ড কৰক, নাইবা ফাইলৰ নামটো সলাওক ।",
 'fileexists-forbidden' => 'এই নামৰ এটা ফাইল ইতিমধ্যেই আছে আৰু তাৰ ওপৰত লিখা নাযাব ।
@@ -1824,7 +1824,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 # MIME search
 'mimesearch' => 'MIME অনুসন্ধান',
 'mimesearch-summary' => 'এই পৃষ্ঠাৰ জৰিয়তে ফাইলসমূহক MIME প্ৰকাৰ অনুসৰি চেকিব পৰা যায় ।
-ইনপুট: contenttype/subtype, যেনে- <tt>image/jpeg</tt> ।',
+ইনপুট: contenttype/subtype, যেনে- <code>image/jpeg</code> ।',
 'mimetype' => 'MIME প্ৰকাৰ:',
 'download' => 'ডাউনল’ড কৰক',
 
@@ -2026,7 +2026,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'linksearch-ok' => 'অনুসন্ধান',
 'linksearch-text' => 'ৱাইল্ডকাৰ্ডসমূহ যেনে "*.wikipedia.org" ব্যৱহাৰ কৰিব পাৰি।
 অন্তত এটা উচ্চ-স্তৰৰ ডমেইনৰ প্ৰয়োজন, উদাহৰণস্বৰূপ "*.org"। <br />
-সমৰ্থিত প্ৰটোকলসমূহ: <tt>$1</tt> (ইয়াৰ এটাকো নিজৰ সন্ধান যোগ নকৰিব)।',
+সমৰ্থিত প্ৰটোকলসমূহ: <code>$1</code> (ইয়াৰ এটাকো নিজৰ সন্ধান যোগ নকৰিব)।',
 'linksearch-line' => '$2 পৰা $1 সংযোগ কৰা হৈছে',
 'linksearch-error' => "ৱাইল্ডকাৰ্ড কেৱল হ'ষ্টনামৰ আৰম্ভণিতহে দেখা যাব ।",
 
@@ -2877,15 +2877,10 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 # Info page
 'pageinfo-title' => '"$1" ৰ তথ্য',
 'pageinfo-header-edits' => 'সম্পাদনাসমূহ',
-'pageinfo-header-watchlist' => 'লক্ষ্যতালিকা',
-'pageinfo-header-views' => 'দৰ্শন',
-'pageinfo-subjectpage' => 'পৃষ্ঠা',
-'pageinfo-talkpage' => 'আলোচনা পৃষ্ঠা',
+'pageinfo-views' => 'দৰ্শনৰ সংখ্যা',
 'pageinfo-watchers' => 'নিৰীক্ষকৰ সংখ্যা',
 'pageinfo-edits' => 'সম্পাদনাৰ সংখ্যা',
 'pageinfo-authors' => 'মুখ্য লেখকৰ সংখ্যা',
-'pageinfo-views' => 'দৰ্শনৰ সংখ্যা',
-'pageinfo-viewsperedit' => 'প্ৰতি সম্পাদনাৰ দৰ্শন',
 
 # Patrolling
 'markaspatrolleddiff' => 'নিৰীক্ষিত বুলি চিহ্নিত কৰক',
index 6f687dd..20630b6 100644 (file)
@@ -322,6 +322,10 @@ $1',
 'youhavenewmessages' => 'Tienes $1 ($2).',
 'newmessageslink' => 'mensaxes nuevos',
 'newmessagesdifflink' => 'cambéu postreru',
+'youhavenewmessagesfromusers' => "Tienes $1 {{PLURAL:$3|d'otru usuariu|de $3 usuarios}} ($2).",
+'youhavenewmessagesmanyusers' => 'Tienes $1 de munchos usuarios ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|un mensaxe nuevu|$1 mensaxes nuevos}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|cambéu postreru|cambeos postreros}}',
 'youhavenewmessagesmulti' => 'Tienes mensaxes nuevos en $1',
 'editsection' => 'editar',
 'editold' => 'editar',
@@ -374,11 +378,11 @@ Pues atopar una llista de les páxines especiales válides en [[Special:SpecialP
 'error' => 'Fallu',
 'databaseerror' => 'Fallu na base de datos',
 'dberrortext' => "Hebo un fallu de sintaxis nuna consulta a la base de datos.
-Esti fallu puede ser por un problema del software.
+Esti fallu pue ser por un problema del software.
 La postrer consulta a la base de datos que s'intentó foi:
-<blockquote><tt>$1</tt></blockquote>
-dende la función «<tt>$2</tt>».
-La base datos dio'l fallu «<tt>$3: $4</tt>».",
+<blockquote><code>$1</code></blockquote>
+dende la función «<code>$2</code>».
+La base datos dio'l fallu «<samp>$3: $4</samp>».",
 'dberrortextcl' => "Hebo un fallu de sintaxis nuna consulta a la base de datos.
 La postrer consulta de la base de datos que s'intentó foi:
 «$1»
@@ -758,7 +762,6 @@ La postrer entrada del rexistru de bloqueos úfrese darréu pa referencia:',
 *'''Firefox / Safari:''' Caltén ''Mayús'' mentes calques en ''Recargar'', o calca ''Ctrl-F5'' o ''Ctrl-R'' (''⌘-R'' nun Mac)
 * '''Google Chrome:''' Calca ''Ctrl-Mayús-R'' (''⌘-Mayús-R'' nun Mac)
 * '''Internet Explorer:''' Caltén ''Ctrl'' mentes calques ''Refrescar'', o calca ''Ctrl-F5''
-* '''Konqueror:''' Calca en ''Recargar'', o calca ''F5''
 * '''Opera:''' llimpia la caché en ''Ferramientes → Preferencies''",
 'usercssyoucanpreview' => "'''Conseyu:''' Usa'l botón \"{{int:showpreview}}\" pa probar el to CSS nuevu enantes de guardalu.",
 'userjsyoucanpreview' => "'''Conseyu:''' Usa'l botón \"{{int:showpreview}}\" pa probar el to JavaScript nuevu enantes de guardalu.",
@@ -876,6 +879,7 @@ Estos parámetros s'omitieron.",
 'expansion-depth-exceeded-warning' => "La páxina pasó la fondura d'espansión",
 'parser-unstrip-loop-warning' => 'Deteutóse un bucle "unstrip"',
 'parser-unstrip-recursion-limit' => 'Superóse\'l llímite de recursión d\'"unstrip" ($1)',
+'converter-manual-rule-error' => 'Detectóse un error na regla de conversión manual de llingua',
 
 # "Undo" feature
 'undo-success' => "La edición se pue esfacer.
@@ -1477,9 +1481,9 @@ Equí s'ufre'l rexistru de desaniciu y treslláu d'esta páxina por comodidá:",
 Pa ver o buscar archivos xubíos previamente, vete a la [[Special:FileList|llista d'archivos xubíos]]. Les xubíes tamién queden conseñaos nel [[Special:Log/upload|rexistru de xubíes]], y los esborraos nel [[Special:Log/delete|rexistru d'esborraos]].
 
 P'amiestar un archivu nuna páxina, usa un enllaz con ún de los siguientes formatos:
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Archivu.jpg]]</nowiki></tt>''' pa usar la versión completa del archivu
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Archivu.png|200px|thumb|left|testu alternativu]]</nowiki></tt>''' pa usar un renderizáu de 200 píxeles d'anchu nun caxellu al marxe esquierdu con 'testu alternativu' como la so descripción
-*'''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Archivu.ogg]]</nowiki></tt>''' pa enllazar direutamente al archivu ensin amosar l'archivu",
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Archivu.jpg]]</nowiki></code>''' pa usar la versión completa del archivu
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Archivu.png|200px|thumb|left|testu alternativu]]</nowiki></code>''' pa usar un renderizáu de 200 píxeles d'anchu nun caxellu al marxe esquierdu con 'testu alternativu' como la so descripción
+*'''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Archivu.ogg]]</nowiki></code>''' pa enllazar direutamente al archivu ensin amosar l'archivu",
 'upload-permitted' => "Menes d'archivu permitíes: $1.",
 'upload-preferred' => "Menes d'archivu preferíes: $1.",
 'upload-prohibited' => "Menes d'archivu prohibíes: $1.",
@@ -1526,21 +1530,21 @@ esti ficheru tien $2.',
 Esto podría ser pola mor d'un enquivocu nel nome del ficheru.
 Por favor, camienta si daveres quies xubir esti archivu.",
 'windows-nonascii-filename' => 'Esta wiki nun permite nomes de ficheru con caráuteres especiales.',
-'fileexists' => "Yá esiste un ficheru con esti nome, por favor comprueba '''<tt>[[:$1]]</tt>''' si nun tas seguru de querer camudalu.
-[[$1|thumb]]",
-'filepageexists' => "La páxina de descripción d'esti ficheru yá se creó en '''<tt>[[:$1]]</tt>''', pero anguaño nun esiste nengún ficheru con esti nome.
+'fileexists' => 'Yá esiste un ficheru con esti nome, por favor comprueba <strong>[[:$1]]</strong> si nun tas seguru de querer camudalu.
+[[$1|thumb]]',
+'filepageexists' => "La páxina de descripción d'esti ficheru yá se creó en <strong>[[:$1]]</strong>, pero anguaño nun esiste nengún ficheru con esti nome.
 El resume que pongas nun va apaecer na páxina de descripción.
 Pa facer que'l to resume apaeza, vas tener que lu editar manualmente.
 [[$1|thumb]]",
-'fileexists-extension' => "Yá esiste un ficheru con un nome asemeyáu: [[$2|thumb]]
-* Nome del ficheru que se quier xubir: '''<tt>[[:$1]]</tt>'''
-* Nome del ficheru esistente: '''<tt>[[:$2]]</tt>'''
-Por favor escueyi un nome diferente.",
+'fileexists-extension' => 'Yá esiste un ficheru con un nome asemeyáu: [[$2|thumb]]
+* Nome del ficheru que se quier xubir: <strong>[[:$1]]</strong>
+* Nome del ficheru esistente: <strong>[[:$2]]</strong>
+Por favor escueyi un nome diferente.',
 'fileexists-thumbnail-yes' => "El ficheru paez ser una imaxe de tamañu menguáu ''(miniatura)''.
  [[$1|thumb]]
-Por favor comprueba el ficheru '''<tt>[[:$1]]</tt>'''.
+Por favor comprueba el ficheru <strong>[[:$1]]</strong>.
 Si'l ficheru comprobáu tien el mesmu tamañu que la imaxe orixinal, nun ye necesario xubir una miniatura estra.",
-'file-thumbnail-no' => "El ficheru entama con '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "El ficheru entama con <strong>$1</strong>.
 Paez ser una imaxe de tamañu menguáu ''(miniatura)''.
 Si tienes esta imaxe a resolución completa xúbila; si non, por favor camuda'l nome del ficheru.",
 'fileexists-forbidden' => 'Yá esiste un ficheru con esti nome, y nun se pue renomar.
@@ -1807,7 +1811,7 @@ Seique quieras camudar la descripción de la so [páxina de descripción de fich
 
 # MIME search
 'mimesearch' => 'Busca MIME',
-'mimesearch-summary' => "Esta páxina activa'l filtráu d'archivos en función de la so triba MIME. Entrada: contenttype/subtype, p.ex. <tt>image/jpeg</tt>.",
+'mimesearch-summary' => "Esta páxina activa'l filtráu d'archivos en función de la so triba MIME. Entrada: contenttype/subtype, p.ex. <code>image/jpeg</code>.",
 'mimetype' => 'Triba MIME:',
 'download' => 'descargar',
 
@@ -1880,6 +1884,7 @@ Les entraes <del>tachaes</del> tan resueltes.',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}',
 'ncategories' => '$1 {{PLURAL:$1|categoría|categoríes}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwikis}}',
 'nlinks' => '$1 {{PLURAL:$1|enllaz|enllaces}}',
 'nmembers' => '$1 {{PLURAL:$1|miembru|miembros}}',
 'nrevisions' => '$1 {{PLURAL:$1|revisión|revisiones}}',
@@ -1908,6 +1913,7 @@ Les entraes <del>tachaes</del> tan resueltes.',
 'mostlinkedtemplates' => 'Plantíes más enllaciaes',
 'mostcategories' => 'Páxines con más categoríes',
 'mostimages' => 'Archivos más enllaciaos',
+'mostinterwikis' => 'Páxines con más interwikis',
 'mostrevisions' => 'Páxines con más revisiones',
 'prefixindex' => 'Toles páxines col prefixu',
 'prefixindex-namespace' => 'Toles páxines col prefixu (espaciu de nomes $1)',
@@ -2007,7 +2013,7 @@ Ver tamién les [[Special:WantedCategories|categoríes más buscaes]].",
 'linksearch-ok' => 'Guetar',
 'linksearch-text' => 'Se puen usar comodinos como "*.wikipedia.org".
 Necesita polo menos un dominiu de primer nivel, como "*.org".<br />
-Protocolos almitíos: <tt>$1</tt> (nun amiestes dengún d\'estos na to gueta).',
+Protocolos almitíos: <code>$1</code> (nun amiestes dengún d\'estos na to gueta).',
 'linksearch-line' => '$1 enllaciáu dende $2',
 'linksearch-error' => 'Los comodinos namái puen apaecer al entamu del nome del güéspede.',
 
@@ -2696,6 +2702,7 @@ Toles aiciones d'importación treswiki queden rexistraes nel [[Special:Log/impor
 'import-interwiki-templates' => 'Incluyir toles plantíes',
 'import-interwiki-submit' => 'Importar',
 'import-interwiki-namespace' => 'Espaciu de nomes de destín:',
+'import-interwiki-rootpage' => 'Páxina raíz de destín (opcional):',
 'import-upload-filename' => 'Nome del ficheru:',
 'import-comment' => 'Comentariu:',
 'importtext' => "Por favor, esporta'l ficheru dende la wiki d'orixe usando la [[Special:Export|ferramienta d'esportación]].
@@ -2728,6 +2735,9 @@ Guárdalu nel ordenador y xúbilu equí.",
 'import-error-interwiki' => "La páxina «$1» nun s'importó porque'l so nome ta acutáu pa enllaces esternos (interwiki).",
 'import-error-special' => "La páxina «$1» nun s'importó porque pertenez a un espaciu de nomes especial que nun permite les páxines.",
 'import-error-invalid' => "La páxina «$1» nun s'importó porque tien un nome inválidu.",
+'import-options-wrong' => '{{PLURAL:$2|Opción enquivocada|Opciones enquivocaes}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'La páxina raíz dada ye un títulu inválidu.',
+'import-rootpage-nosubpage' => 'L\'espaciu de nomes "$1" de la páxina raíz nun permite subpáxines.',
 
 # Import log
 'importlogpage' => "Rexistru d'importaciones",
@@ -2881,15 +2891,10 @@ Probablemente tea causao por un enllaz a un sitiu esternu de la llista prieta.',
 # Info page
 'pageinfo-title' => 'Información sobro "$1"',
 'pageinfo-header-edits' => 'Ediciones',
-'pageinfo-header-watchlist' => 'Llista de vixilancia',
-'pageinfo-header-views' => 'Vistes',
-'pageinfo-subjectpage' => 'Páxina',
-'pageinfo-talkpage' => "Páxina d'alderique",
+'pageinfo-views' => 'Númberu de visites',
 'pageinfo-watchers' => 'Númberu de vixilantes',
 'pageinfo-edits' => "Númberu d'ediciones",
 'pageinfo-authors' => "Númberu d'autores distintos",
-'pageinfo-views' => 'Númberu de visites',
-'pageinfo-viewsperedit' => 'Visites por edición',
 
 # Skin names
 'skinname-standard' => 'Clásicu',
@@ -3622,7 +3627,7 @@ Les imáxenes amuésense a resolución completa; les demás tribes d'archivu exe
 * <span class="mw-specialpagecached">Páxines especiales en caché (seique nun tean actualizaes).</span>',
 'specialpages-group-maintenance' => 'Informes de mantenimientu',
 'specialpages-group-other' => 'Otres páxines especiales',
-'specialpages-group-login' => 'Entrar / Crear cuenta',
+'specialpages-group-login' => 'Identificase / crear cuenta',
 'specialpages-group-changes' => 'Cambeos recientes y rexistros',
 'specialpages-group-media' => 'Informes multimedia y xubíes',
 'specialpages-group-users' => 'Usuarios y drechos',
index 0cc9e11..15cdabe 100644 (file)
@@ -1147,16 +1147,16 @@ Ta kobura va iyeltak, koe tazukasiki va gluyasiki favel
 'large-file' => 'Lokiewafa da lum ke man iyeltak tir lepinaf dam $1; bat iyeltak tir $2.',
 'largefileserver' => 'Bat iyeltak tir pwertarsaf gu gotune ke zanisiko.',
 'emptyfile' => 'Kalvajan iyeltak nuvelar vlardaf. Lanon golde sutejen iyeltakyolt. Vay ageltal ede va bat iyeltak en djukalvajal !',
-'fileexists' => "Iyeltak dem man bat yolt ixam krulder.
-Vay, ageltal va '''<tt>[[:$1]]</tt>'''.
-Til lanaf da va bat iyeltak djubetal ? [[$1|thumb]]",
-'filepageexists' => "Pimtarabu ke bat iyeltak ixam al zo redur ko '''<tt>[[:$1]]</tt>''', vexe mek iyeltak dem man yolt ixam tir. Vildeks rinon suten moe pimtarabu me awitir. Ede djumel da in batlize co-awir, nubedon co-gobetal.",
-'fileexists-extension' => "Iyeltak dem nuxaf yolt tir : [[$2|thumb]]
-* Yolt ke kalvajayan iyeltak : '''<tt>[[:$1]]</tt>'''
-* Yolt ke tis iyeltak : '''<tt>[[:$2]]</tt>'''
-Va amidaf yolt vay kiblal !",
+'fileexists' => 'Iyeltak dem man bat yolt ixam krulder.
+Vay, ageltal va <strong>[[:$1]]</strong>.
+Til lanaf da va bat iyeltak djubetal ? [[$1|thumb]]',
+'filepageexists' => 'Pimtarabu ke bat iyeltak ixam al zo redur ko <strong>[[:$1]]</strong>, vexe mek iyeltak dem man yolt ixam tir. Vildeks rinon suten moe pimtarabu me awitir. Ede djumel da in batlize co-awir, nubedon co-gobetal.',
+'fileexists-extension' => 'Iyeltak dem nuxaf yolt tir : [[$2|thumb]]
+* Yolt ke kalvajayan iyeltak : <strong>[[:$1]]</strong>
+* Yolt ke tis iyeltak : <strong>[[:$2]]</strong>
+Va amidaf yolt vay kiblal !',
 'fileexists-thumbnail-yes' => "Iyeltak nuvelar da tir lumamafa ewava ''(aluk)''. [[$1|thumb]]
-Vay va '''<tt>[[:$1]]</tt>''' iyeltak stujel.
+Vay va <strong>[[:$1]]</strong> iyeltak stujel.
 Ede stujen iyeltak tir mila lumanhafa ewava, va aptaf aluk me kalvajal !",
 'fileexists-forbidden' => 'Milyoltaf iyeltak ixam krulder nume me zo robetar.
 Ede va man iyeltak soe co-djukalvajal, vay dimpil ise va warzaf yolt favel.
index 44c684a..6ad1280 100644 (file)
@@ -1275,9 +1275,9 @@ Bu səhifənin silinmə və addəyişmə jurnalı aşağıda göstərilmişdir:"
 Əvvəllər yüklənmiş fayllara baxmaq üçün [[Special:FileList|yüklənmiş fayllar siyahısına]] keçin, həmçinin (təkrar) yüklənmiş fayllara [[Special:Log/upload|yükləmə jurnalında]], silinmiş fayllara [[Special:Log/delete|silinmə jurnalında]] baxa bilərsiniz.
 
 Məqaləyə fayl yerləşdirmək üçün aşağıdaki formalardan birini istifadə edin:
-* Faylın tam versiyasını yerləşdirmək üçün: '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''';
-* Faylın 200 pikselədək kiçildilmiş versiyasını mətndən solda, altında izahla yerləşdirmək üçün: '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|təsvir]]</nowiki></tt>''';
-* Səhifədə faylın özünü göstərmədən ona birbaşa keçid yerləşdirmək üçün: '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''.",
+* Faylın tam versiyasını yerləşdirmək üçün: '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''';
+* Faylın 200 pikselədək kiçildilmiş versiyasını mətndən solda, altında izahla yerləşdirmək üçün: '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|təsvir]]</nowiki></code>''';
+* Səhifədə faylın özünü göstərmədən ona birbaşa keçid yerləşdirmək üçün: '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''.",
 'upload-permitted' => 'İcazə verilən fayl tipləri: $1.',
 'upload-preferred' => 'İcazə verilən fayl tipləri: $1.',
 'upload-prohibited' => 'İcazə verilməyən fayl tipləri: $1.',
@@ -1311,9 +1311,9 @@ Məqaləyə fayl yerləşdirmək üçün aşağıdaki formalardan birini istifad
 'tmp-write-error' => 'Müvəqqəti fayl yazılarkən xəta.',
 'largefileserver' => 'Faylın ölçüsü yol verilən həddi aşır.',
 'emptyfile' => 'Yüklədiyiniz fayl boşdur. Bu faylın adında olan hərf səhvi ilə bağlı ola bilər. Xahiş olunur ki, doğurdan da bu faylı yükləmək istədiyinizi yoxlayasınız.',
-'fileexists' => "Yükləmək istədiyiniz adda fayl mövcuddur.
-Lütfən '''<tt>[[:$1]]</tt>''' keçidini yoxlayın və bu faylı yükləmək istədiyinizdən əmin olun.
-[[$1|thumb]]",
+'fileexists' => 'Yükləmək istədiyiniz adda fayl mövcuddur.
+Lütfən <strong>[[:$1]]</strong> keçidini yoxlayın və bu faylı yükləmək istədiyinizdən əmin olun.
+[[$1|thumb]]',
 'uploadwarning' => 'Yükləmə xəbərdarlığı',
 'savefile' => 'Faylı qeyd et',
 'uploadedimage' => 'yükləndi "[[$1]]"',
@@ -1460,7 +1460,8 @@ $1',
 ** İstifadəsiz fayl
 ** Qeyri-ensiklopedik şəxs
 ** Lisenziyasız fayl
-** Azad şəkillə əvəz olundu',
+** Azad şəkillə əvəz olundu
+** Müəllif istəyi',
 'filedelete-edit-reasonlist' => 'Silmə səbəblərini redaktə et',
 
 # MIME search
@@ -1662,8 +1663,8 @@ Fərdi hüquqlar haqqında əlavə məlumatı [[{{MediaWiki:Listgrouprights-help
 'listgrouprights-rights' => 'Hüquqlar',
 'listgrouprights-helppage' => 'Help:Qrup hüquqları',
 'listgrouprights-members' => '(üzvləri)',
-'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <tt>($2)</tt></span>',
-'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <tt>($2)</tt></span>',
+'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <code>($2)</code></span>',
+'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <code>($2)</code></span>',
 'listgrouprights-addgroup' => '{{PLURAL:$2|Qrupu}} əlavə et: $1',
 'listgrouprights-removegroup' => '{{PLURAL:$2|Qrupu}} sil: $1',
 'listgrouprights-addgroup-all' => 'Bütün qrupları əlavə et',
@@ -2327,15 +2328,10 @@ Zəhmət olmasa başqa ad seçin.',
 # Info page
 'pageinfo-title' => '"$1" üçün məlumat',
 'pageinfo-header-edits' => 'Redaktələr',
-'pageinfo-header-watchlist' => 'İzləmə siyahısı',
-'pageinfo-header-views' => 'Görünüş',
-'pageinfo-subjectpage' => 'Səhifə',
-'pageinfo-talkpage' => 'Müzakirə səhifəsi',
+'pageinfo-views' => 'Göstərmə səhifəsi',
 'pageinfo-watchers' => 'Baxış sayı',
 'pageinfo-edits' => 'Redaktələrin sayı',
 'pageinfo-authors' => 'Fərqli müəlliflərin sayı',
-'pageinfo-views' => 'Göstərmə səhifəsi',
-'pageinfo-viewsperedit' => 'Redaktə başına göstərmə',
 
 # Skin names
 'skinname-standard' => 'Classic',
index 0d30ab6..3ec45e1 100644 (file)
@@ -1449,9 +1449,9 @@ $1",
 Элек тейәлгән файлдарҙы байҡар өсөн [[Special:FileList|тейәлгән файлдар исемлеген]] ҡарағыҙ. Файл тейәүҙәр шулай уҡ [[Special:Log/upload|тейәү яҙмаларына]], юйыуҙар иһә [[Special:Log/delete|юйыу яҙмаларына]] яҙылып баралар.
 
 Файлды мәҡәләгә өҫтәү өсөн киләһе юлдарҙы ҡуллана алаһығыҙ:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' — файлдың тулы өлгөһөн ҡуйыр өсөн;
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|тасуирлама]]</nowiki></tt>''' — файлдың киңлек буйынса 200 нөктәгә тиклем бәләкәсәйтелгән, һулға тигеҙләнгән һәм аҫтында тасуирламаһы булған өлгөһөн ҡуйыр өсөн;
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' — эстәлеген биттә күрһәтмәйенсә файлға һылтанма ҡуйыу өсөн.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' — файлдың тулы өлгөһөн ҡуйыр өсөн;
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|тасуирлама]]</nowiki></code>''' — файлдың киңлек буйынса 200 нөктәгә тиклем бәләкәсәйтелгән, һулға тигеҙләнгән һәм аҫтында тасуирламаһы булған өлгөһөн ҡуйыр өсөн;
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' — эстәлеген биттә күрһәтмәйенсә файлға һылтанма ҡуйыу өсөн.",
 'upload-permitted' => 'Рөхсәт ителгән файл типтары: $1.',
 'upload-preferred' => 'Уңайлы файл типтары: $1.',
 'upload-prohibited' => 'Тыйылған файл типтары: $1.',
@@ -1498,21 +1498,21 @@ $1",
 Был файлдың исемен кереткән ваҡытта ебәрелгән хата арҡаһында булыуы мөмкин.
 Зинһар, һеҙ ысынлап та был файлды теләргә теләйһегеҙме икәнен тикшерегеҙ.',
 'windows-nonascii-filename' => 'Был вики махсус символ булған файл исемдәрен терәкләмәй.',
-'fileexists' => "Бындай исемле файл бар инде, зинһар, уны алыштырырға теләүегеҙҙә шикләнһәгеҙ,  '''<tt>[[:$1]]</tt>'''тикшерегеҙ.
-[[$1|thumb]]",
-'filepageexists' => "Был файлдың тасуирламаһы бите булдырылған инде: '''<tt>[[:$1]]</tt>''', әммә бындай исемле файл юҡ.
+'fileexists' => 'Бындай исемле файл бар инде, зинһар, уны алыштырырға теләүегеҙҙә шикләнһәгеҙ,  <strong>[[:$1]]</strong>тикшерегеҙ.
+[[$1|thumb]]',
+'filepageexists' => 'Был файлдың тасуирламаһы бите булдырылған инде: <strong>[[:$1]]</strong>, әммә бындай исемле файл юҡ.
 Керетелгән тасуирлама файлдың тасуирламаһы битендә сыҡмаясаҡ.
 Яңы тасуирлама өҫтәр өсөн, һеҙгә уны ҡул менән үҙгәртергә тура киләсәк.
-[[$1|thumb]]",
-'fileexists-extension' => "Оҡшаш исемле файл бар: [[$2|thumb]]
-* Тейәлгән файлдың исеме: '''<tt>[[:$1]]</tt>'''
-* Булған файлдың исеме: '''<tt>[[:$2]]</tt>'''
-Зинһар, башҡа исем һайлағыҙ.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Оҡшаш исемле файл бар: [[$2|thumb]]
+* Тейәлгән файлдың исеме: <strong>[[:$1]]</strong>
+* Булған файлдың исеме: <strong>[[:$2]]</strong>
+Зинһар, башҡа исем һайлағыҙ.',
 'fileexists-thumbnail-yes' => "Файл бәләкәйтелгән өлгө ''(шартлы рәсем)'' булырға тейеш.
 [[$1|thumb]]
-Зинһар, '''<tt>[[:$1]]</tt>''' файлын тикшерегеҙ.
+Зинһар, <strong>[[:$1]]</strong> файлын тикшерегеҙ.
 Әгәр ул ошо уҡ файлдың төп өлгөһө булһа, уның бәләкәйтелгән өлгөһөн айырым тейәүҙең кәрәге юҡ.",
-'file-thumbnail-no' => "Файлдың исеме '''<tt>$1</tt>''' менән башлана.
+'file-thumbnail-no' => "Файлдың исеме <strong>$1</strong> менән башлана.
 Бәлки, ул рәсемдең бәләкәйтелгән өлгөһөлөр ''(шартлы рәсем)''.
 Әгәр һеҙҙә был рәсемдең ҙур өлгөһө булһа, зинһар, уны керетегеҙ йәки файлдың исемен үҙгәртегеҙ.",
 'fileexists-forbidden' => 'Бындай исемле файл бар инде һәм ул үҙгәртелә алмай.
@@ -1765,7 +1765,7 @@ $1',
 # MIME search
 'mimesearch' => 'MIME буйынса эҙләү',
 'mimesearch-summary' => 'Был бит файлдарҙы MIME-төрҙәре аша һайларға мөмкинлек бирә.
-Эҙләү форматы: эстәлек_төрө/икенсе_быуын_төрө, мәҫәлән, <tt>image/jpeg</tt>',
+Эҙләү форматы: эстәлек_төрө/икенсе_быуын_төрө, мәҫәлән, <code>image/jpeg</code>',
 'mimetype' => 'MIME-төр:',
 'download' => 'күсереп яҙырға',
 
@@ -1967,7 +1967,7 @@ $1',
 'linksearch-ok' => 'Эҙләү',
 'linksearch-text' => '<code>*.wikipedia.org</code> һымаҡ төркөм билдәләрен ҡулланырға була.
 Кәмендә, өҫкө кимәл домен кәрәк. Мәҫәлән, <code>*.org</code><br />
-Терәкләнгән протоколдар: <tt>$1</tt> (эҙләүегеҙҙә булғандарҙың береһен дә өҫтәмәгеҙ)',
+Терәкләнгән протоколдар: <code>$1</code> (эҙләүегеҙҙә булғандарҙың береһен дә өҫтәмәгеҙ)',
 'linksearch-line' => '$1 адресына $2 битенән һылтанма яһалған',
 'linksearch-error' => 'Төркөм билдәләре URL адрестың башында ғына ҡулланыла ала.',
 
@@ -2814,15 +2814,10 @@ The wiki server cannot provide data in a format your client can read.',
 # Info page
 'pageinfo-title' => '«$1» буйынса мәғлүмәт',
 'pageinfo-header-edits' => 'Үҙгәртеүҙәр',
-'pageinfo-header-watchlist' => 'Күҙәтеү исемлеге',
-'pageinfo-header-views' => 'Ҡарау',
-'pageinfo-subjectpage' => 'Бит',
-'pageinfo-talkpage' => 'Фекер алышыу бите',
+'pageinfo-views' => 'Ҡарау һаны',
 'pageinfo-watchers' => 'Күҙәтеүселәр һаны',
 'pageinfo-edits' => 'Төҙәтеү һаны',
 'pageinfo-authors' => 'Төрлө авторҙар һаны',
-'pageinfo-views' => 'Ҡарау һаны',
-'pageinfo-viewsperedit' => 'Бер үҙгәртеүгә ҡарау һаны',
 
 # Skin names
 'skinname-standard' => 'Классик',
index 16c81f5..c6f313c 100644 (file)
@@ -914,7 +914,7 @@ A [[Special:WhatLinksHere/$2|voiständige Listn]] gibt's aa.",
 'filedelete-intro' => "Du léschst dé Daatei '''„[[Media:$1|$1]]“'''.",
 
 # MIME search
-'mimesearch-summary' => 'Auf dieser Spezialseite können die Dateien nach dem MIME-Typ gefiltert werden. Die Eingabe muss immer den Medien- und Subtyp beinhalten: <tt>image/jpeg</tt> (siehe Bildbeschreibungsseite).',
+'mimesearch-summary' => 'Auf dieser Spezialseite können die Dateien nach dem MIME-Typ gefiltert werden. Die Eingabe muss immer den Medien- und Subtyp beinhalten: <code>image/jpeg</code> (siehe Bildbeschreibungsseite).',
 'download' => 'Owerlooden',
 
 # Unused templates
@@ -1039,7 +1039,7 @@ Links as Naumensraim wern do néd afglistt.",
 'linksearch-pat' => 'Suachmuster:',
 'linksearch-ns' => 'Nåmensraum:',
 'linksearch-ok' => 'Suacher',
-'linksearch-text' => "Dé Speziaalseiten do daméglicht d' Suach noch Seiten, in dénen bstimmte Weblinks enthoiden san. Dodabei kennern Blootzhoiter wia beispüsweis  <tt>*.beispü.at</tt> hergnummer wern. Es muass mindastens a Top-Level-Domain, z. Bsp. „*.org“. auhgeem wern. <br />Unterstytzde Protokói: <tt>$1</tt> (Dé bittscheh bei da Suachauhgob auhgeem.)",
+'linksearch-text' => "Dé Speziaalseiten do daméglicht d' Suach noch Seiten, in dénen bstimmte Weblinks enthoiden san. Dodabei kennern Blootzhoiter wia beispüsweis  <code>*.beispü.at</code> hergnummer wern. Es muass mindastens a Top-Level-Domain, z. Bsp. „*.org“. auhgeem wern. <br />Unterstytzde Protokói: <code>$1</code> (Dé bittscheh bei da Suachauhgob auhgeem.)",
 'linksearch-line' => '$1 is valinkt voh $2',
 
 # Special:ListUsers
@@ -1494,9 +1494,6 @@ Bsuach bittschee de Saiten [//www.mediawiki.org/wiki/Localisation MediaWiki-Loka
 'othercontribs' => 'Basiard auf da Orweid voh $1',
 'creditspage' => 'Seiteninformaziónen',
 
-# Info page
-'pageinfo-subjectpage' => 'Seiten',
-
 # Patrolling
 'markedaspatrollederrortext' => 'Du muasst a Seitenänderrung auswön',
 
index c2600e5..1fd41c0 100644 (file)
@@ -1312,9 +1312,9 @@ $1",
 په دیستن یا گشتن پیشگین آپلودی فایلان برو  [[Special:FileList|لیست فایلان آپلودی]], آپلودان و حذفیات هنچو هستن ته [[Special:Log/upload|آمار آپلود]].
 
 په وارد کتن فایل ته یک صفحه ای، چه لینک ته فرم استفاده کن
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' په استفاده چه نسخه کامل فایل
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' په استفاده چه ۲۰۰ پیکسل پهنات ته یک جعبه ته چپ
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''  په مسیری لینک دهگ په فایل بی پیش دارگ فایل",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' په استفاده چه نسخه کامل فایل
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' په استفاده چه ۲۰۰ پیکسل پهنات ته یک جعبه ته چپ
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''  په مسیری لینک دهگ په فایل بی پیش دارگ فایل",
 'upload-permitted' => 'مجازین نوع فایل:  $1.',
 'upload-preferred' => 'ترجیحی نوع فایل:  $1.',
 'upload-prohibited' => 'غیرمجازین نوع فایل:  $1.',
@@ -1346,19 +1346,19 @@ $1",
 'largefileserver' => 'ای فایل مزنتر چه حدی انت که سرور تنظیم بوتت په اجازه دهگ.',
 'emptyfile' => 'فایلی که شما آپلود کتت هالیک انت. شاید شی په خاطر اشتباه نه نام فایل بیت.
 لطفا کتنرل کنیت که آیا واقعا شما لوٹیت ای فایلء آپلود کنیت.',
-'fileexists' => "یک فایل گون ای نام هستنت،لطفا کنترل کن '''<tt>[[:$1]]</tt>''' اگه شما مطمین نهیت اگه لوٹیت نامی آیء عوض کنیت.
-[[$1|thumb]]",
-'filepageexists' => "صفحه توضیح په ای فایل پیشتر شر بوتت ته '''<tt>[[:$1]]</tt>''', بله هچ فایلی گون ای نام هنو نیست.
+'fileexists' => 'یک فایل گون ای نام هستنت،لطفا کنترل کن <strong>[[:$1]]</strong> اگه شما مطمین نهیت اگه لوٹیت نامی آیء عوض کنیت.
+[[$1|thumb]]',
+'filepageexists' => 'صفحه توضیح په ای فایل پیشتر شر بوتت ته <strong>[[:$1]]</strong>, بله هچ فایلی گون ای نام هنو نیست.
 خلاصه ای که شما وارد کت ته صفحه توضیح ظاهر نه بیت.
-په ظاهر کتن خلاصه ادان شما لازمنت آیء دستی اصلاح کنیت.",
-'fileexists-extension' => "یک فایلی گون یک دابی نام هستن: [[$2|thumb]]
-* نام فایلی که آپلود بیت: '''<tt>[[:$1]]</tt>'''
-* نام هستین فایل:'''<tt>[[:$2]]</tt>'''
-لطفا دگه نامی بزوریت.",
+په ظاهر کتن خلاصه ادان شما لازمنت آیء دستی اصلاح کنیت.',
+'fileexists-extension' => 'یک فایلی گون یک دابی نام هستن: [[$2|thumb]]
+* نام فایلی که آپلود بیت: <strong>[[:$1]]</strong>
+* نام هستین فایل:<strong>[[:$2]]</strong>
+لطفا دگه نامی بزوریت.',
 'fileexists-thumbnail-yes' => "فایل به نظر رسیت که یک عکس هورد بوتگین اندازه انت. ''(پنچی انگشت)''. [[$1|thumb]]
-لطفا فایل کنترل کن '''<tt>[[:$1]]</tt>'''.
+لطفا فایل کنترل کن <strong>[[:$1]]</strong>.
 اگر فایل کنترلی هما عکسنت گون اصلی اندازه لازم نهنت یک پنچ انگشتی گیشین آپلود کنیت.",
-'file-thumbnail-no' => "نام فایل شروع بیت گون '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "نام فایل شروع بیت گون <strong>$1</strong>.
 جاه کیت که یک هور بوتگین اندازه عکس ایت.''(پینچ انگشت)''.
 اگر شما را ای عکس ته وضوح کامل هست ایء آپلود کنیت یا که نام فایل عوض کنیت لطفا",
 'fileexists-forbidden' => 'فایل گو ای نام الان هستنت؛و نه توینت سری نویسگ بیتن.
@@ -1510,7 +1510,7 @@ PICT # misc.
 # MIME search
 'mimesearch' => 'گردگ په مایم',
 'mimesearch-summary' => 'ای صفحه فیلتر کتن فایلان په اساس نوع مایم اش فعال کنت.
-ورودی:متحوانوع/زیرنوع،مثل<tt>image/jpeg</tt>.',
+ورودی:متحوانوع/زیرنوع،مثل<code>image/jpeg</code>.',
 'mimetype' => 'نوع مایم:',
 'download' => 'آیرگیزگ',
 
@@ -1693,7 +1693,7 @@ PICT # misc.
 'linksearch-ns' => 'نام فضا:',
 'linksearch-ok' => 'گردگ',
 'linksearch-text' => 'تقریبانی په داب "*.wikipedia.org" شاید استفاده بیت.<br />
-داشتگین پروتوکل: <tt>$1</tt>',
+داشتگین پروتوکل: <code>$1</code>',
 'linksearch-line' => '$1 لینک بوتت چه $2',
 'linksearch-error' => 'تقریبیان شاید فقط ته اول نام هاست جاه کاینت.',
 
index 874090e..20254b3 100644 (file)
@@ -1185,6 +1185,7 @@ Ini dae tabi matitingkog.',
 'prefs-help-realname' => 'Opsyonal an totoong pangaran asin kun itatao mo ini, gagamiton ini yangarig an mga sinurat mo maatribuir saimo.',
 'prefs-help-email' => 'Opsyonal an e-koreo, alagad pwede ka na masosog kan iba sa paagi kan saimong pahina o pahina nin olay na dai kinakaipuhan na ipabisto an identidad mo.',
 'prefs-help-email-required' => 'Kaipuhan an e-koreo.',
+'prefs-advancedrc' => 'Pangenot na mga pagpipilian',
 'prefs-advancedrendering' => 'Abantidong mga pagpipilian',
 'prefs-advancedsearchoptions' => 'Abantidong mga pagpipilian',
 'prefs-advancedwatchlist' => 'Abantidong mga pagpipilian',
@@ -1414,9 +1415,9 @@ An talaan kan pagkapura asin pagkabalyo para sa pahinang ini yaon digde para sa
 Para hilngon o hanapon an dati nang pinagkargang mga sagunson, magduman tabi sa [[Special:FileList|listahan kan pinagkargang mga sagunson]], mga pagkarga asin pagkarga otro pinagtala man sa [[Special:Log/upload|talaan nin pagkakarga]], mga pinagpura na yaon sa [[Special:Log/delete|talaan nin pagkapura]].
 
 Sa pagbali nin sarong sagunson sa sarong pahina, gamita tabi an takod kan saro sa mga minasunod na mga porma:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' sa paggamit kan bilog na bersyon kan sagunson
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' sa paggamit kan 200 pixel na lawig kan pagkakua sa sarong kahon na yaon sa parteng wala nin gaygayan na yaon an 'alt text' bilang deskripsyon
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' para sa direktang nakakatakod sa sagunson na dae pinagpapahiling na sarong sagunson",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' sa paggamit kan bilog na bersyon kan sagunson
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' sa paggamit kan 200 pixel na lawig kan pagkakua sa sarong kahon na yaon sa parteng wala nin gaygayan na yaon an 'alt text' bilang deskripsyon
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' para sa direktang nakakatakod sa sagunson na dae pinagpapahiling na sarong sagunson",
 'upload-permitted' => 'Pinagtutugutang mga tipo nin sagunson: $1',
 'upload-preferred' => 'Pinagpapaurog na mga tipo nin sagunson: $1',
 'upload-prohibited' => 'Pinagbabawal na mga tipo nin sagunson: $1.',
@@ -1460,20 +1461,20 @@ An pinagtutugutan na {{PLURAL:$3|tipo nin sagunson|mga tipo nin mga sagunson}} $
 'largefileserver' => "Mas dakula an ''file'' sa pigtotogotan na sokol kan ''server''.",
 'emptyfile' => "Garo mayong laog an ''file'' na kinarga mo. Pwede ser na salâ ining tipo nin ''filename''. Isegurado tabî kun talagang boot mong ikarga ining ''file''.",
 'windows-nonascii-filename' => 'Ining wiki dae tabi nagsusuporta kan mga pangaran kan sagunson na igwang espesyal na mga karakter.',
-'fileexists' => "Igwa nang ''file'' na may parehong pangaran sa ini, sosogon tabî an '''<tt>[[:$1]]</tt>''' kun dai ka seguradong ribayan ini.
+'fileexists' => "Igwa nang ''file'' na may parehong pangaran sa ini, sosogon tabî an <strong>[[:$1]]</strong> kun dai ka seguradong ribayan ini.
 [[$1|thumb]]",
-'filepageexists' => "An pahinang pandeskripsyon kaining sagunson pinagmukna na tabi sa '''<tt>[[:$1]]</tt>''', alagad mayong sagunson na igwa kaining pangaran sa ngunyan nag-eeksister.
+'filepageexists' => 'An pahinang pandeskripsyon kaining sagunson pinagmukna na tabi sa <strong>[[:$1]]</strong>, alagad mayong sagunson na igwa kaining pangaran sa ngunyan nag-eeksister.
 An sumaryong na saimong ipinaglaog dae minaluwas sa pahina kan deskription.
 Tanganing gibohon na an saimong sumaryo magluwas duman, kaipohan mong manwal na pagliliwat kaini.
-[[$1|thumb]]",
+[[$1|thumb]]',
 'fileexists-extension' => "May ''file'' na may parehong pangaran: [[$2|thumb]]
-* Pangaran kan pigkakargang ''file'': '''<tt>[[:$1]]</tt>'''
-* Pangaran kan yaon nang ''file'': '''<tt>[[:$2]]</tt>'''
+* Pangaran kan pigkakargang ''file'': <strong>[[:$1]]</strong>
+* Pangaran kan yaon nang ''file'': <strong>[[:$2]]</strong>
 Magpili tabî nin ibang pangaran.",
 'fileexists-thumbnail-yes' => "An ''file'' garo ladawan kan pinasadit ''(thumbnail)''. [[$1|thumb]]
-Sosogon tabî an ''file'' '''<tt>[[:$1]]</tt>'''.
+Sosogon tabî an ''file'' <strong>[[:$1]]</strong>.
 Kun an sinosog na ''file'' iyo an parehong ladawan na nasa dating sokol, dai na kaipuhan magkarga nin iba pang retratito.",
-'file-thumbnail-no' => "An sagunson minapoon sa '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "An sagunson minapoon sa <strong>$1</strong>.
 Garo baga ini sarong imaheng pinasadit an sukol ''(thumbnail)''.
 Kun igwa ka kaining imahe sa kabilogang resolusyon ikarga ini, kun laen pakiribayi an ngaran kan sagunson.",
 'fileexists-forbidden' => 'May sagunson na sa arog kaining ngaran, asin dae puwedeng mapapatungan.
@@ -1494,8 +1495,13 @@ Kaipuhan mong aramon an historiya kan pagpura bago ka man magpadagos sa pagkarga
 'copyuploaddisabled' => 'An pagkarga sa paagi kan kilyawan pinagpondo.',
 'uploadfromurl-queued' => 'An saimong pagkarga pinagpahalat.',
 'uploaddisabledtext' => 'An pagkarga kan mga sagunson pinagpondo tabi.',
+'php-uploaddisabledtext' => 'An pagkarga kan mga sagunson pinagpundo nguna sa PHP.
+Pakihilnga man tabi an panuytuyan kan pagkarga nin mga sagunson.',
 'uploadscripted' => "Ining ''file'' igwang HTML o kodang eskritura na pwede ser na salang mainterpretar kan ''browser''.",
 'uploadvirus' => "May virus an ''file''! Mga detalye: $1",
+'uploadjava' => 'An sagunson yaon sa ZIP an porma na igwang Java .class na sagunson.
+Pagkakarga na mga Java an mga sagunson dae pinagtutugutan, nin huli ta sinda minakausa nin mga restriksyon sa seguridad na lagpason.',
+'upload-source' => 'Gikanang sagunson',
 'sourcefilename' => 'Ginikanan kan pangaran nin sagunson:',
 'sourceurl' => 'Ginikanan kan kilyawan:',
 'destfilename' => 'Destinasyon kan pangaran nin sagunson:',
@@ -1545,14 +1551,76 @@ Kun an problema yaon pa, pakikontak tabi nin sarong [[Special:ListUsers/sysop|ad
 'backend-fail-read' => 'Dae makakabasa nin sagunson $1.',
 'backend-fail-create' => 'Dae makakapagsurat nin sagunson $1.',
 'backend-fail-maxsize' => 'Dae makakapagsuat nin sagunson $1 nin huli ta ini grabe kadakula nin {{PLURAL:$2|sarong byte|$2 bytes}}.',
+'backend-fail-readonly' => 'An sarayan na panampad "$1" yaon sa estado na basahon-sana. An rason na pinagtao iyo na: "\'\'$2\'\'"',
+'backend-fail-synced' => 'An sagunson "$1" yaon sa estado na bakong konsistido sa laog kan mga panampad na sarayan',
+'backend-fail-connect' => 'Dae nakakapagsugpon sa panampad na sarayan "$1".',
+'backend-fail-internal' => 'Sarong bakong bistadong kasalaan an nangyari sa panampad na sarayan "$1".',
+'backend-fail-contenttype' => 'Dae makapagdeterminar sa tipo kan laog kan sagunson na magsaray sa "$1".',
+'backend-fail-batchsize' => 'An panampad na sarayan pinagtao nin sarong batch kan sagunson sa $1 {{PLURAL:$1|operasyon|mga operasyon}}; an limit $2 {{PLURAL:$2|operasyon|mga operasyon}}.',
 'backend-fail-usable' => 'Dae makakapagsurat nin sagunson $1 sa dahilan na kulang an permiso o nawawara an mga direktoryo/kaaganan.',
 
+# File journal errors
+'filejournal-fail-dbconnect' => 'Dae makakasugpon sa datos-sarayan kan dyornal para sa panampad na sarayan "$1".',
+'filejournal-fail-dbquery' => 'Dae makakasumpay sa datos-sarayan kan dyornal para sa panampad na sarayan "$1".',
+
+# Lock manager
+'lockmanager-notlocked' => 'Dae makakabukas kan "$1"; dae po ini nakakandado.',
+'lockmanager-fail-closelock' => 'Dae makakasara sa nakakandadong sagunson para sa "$1".',
+'lockmanager-fail-deletelock' => 'Dae makakapura sa nakakandadong sagunson para sa "$1".',
+'lockmanager-fail-acquirelock' => 'Dae makakakua nin kandado para sa "$1".',
+'lockmanager-fail-openlock' => 'Dae makakabukas nin nakakandadong sagunson para sa "$1".',
+'lockmanager-fail-releaselock' => 'Dae makakabuhi sa kandado para sa "$1".',
+'lockmanager-fail-db-bucket' => 'Dae makakakontak awad-awad na kandado kan mga datos-sarayan na yaon sa tipunan na $1.',
+'lockmanager-fail-db-release' => 'Dae makakabuhi nin mga kandado sa datos-sarayan na $1.',
+'lockmanager-fail-svr-acquire' => 'Dae makakakua nin mga kandado sa serbidor na $1.',
+'lockmanager-fail-svr-release' => 'Dae makakabuhi nin mga kandado sa serbidor na $1.',
+
+# ZipDirectoryReader
+'zip-file-open-error' => 'Sarong kasalaan an nanagboan kunsoarin binubuksan an sagunson para sa ZIP na binansayan.',
+'zip-wrong-format' => 'An sinambit na sagunson bakong yaon sa ZIP an porma.',
+'zip-bad' => 'An sagunson sarong korapto o baya dae nababasang ZIP na sagunson.
+Ini dae nababansayang gayo para sa seguridad.',
+'zip-unsupported' => 'An sagunson yaon sa porma nin ZIP na minagamit kan itsura nin ZIP na bakong suportado kan MediaWiki.
+Ini dae nababansayang gayo para sa seguridad.',
+
+# Special:UploadStash
+'uploadstash' => 'Ikarga an makantidad na tago',
+'uploadstash-summary' => 'An pahinang ini minatao nin agihan pasiring sa mga sagunson na ikinarga na (o baya yaon pa sa proseso nin pagkakarga) alagad dae pa naipublisa sa wiki. An mga sagunson na ini bakong hiling sa kiisay man kundi sa paragamit na nagkarga kan mga ini.',
+'uploadstash-clear' => 'Pinaglinigan na makantidad na mga sagunson',
+'uploadstash-nofiles' => 'Ika mayo nin mahalagang mga sagunson.',
+'uploadstash-badtoken' => 'An paggibo kan aksyon na yan bakong matrayumpo, baka nin huli ta an saimong kredensiyal sa pagliliwat nagpaso na.',
+'uploadstash-errclear' => 'An paglilinig kan mga sagunson bakong matrayumpo.',
+'uploadstash-refresh' => 'Papreskoha otro an listahan kan mga sagunson',
+'invalid-chunk-offset' => 'Imbalidong tagpas na pampahale',
+
 # img_auth script messages
 'img-auth-accessdenied' => 'Paggamit dae pinagtugot',
+'img-auth-nopathinfo' => 'Nawawara an PATH_INFO.
+An saimong serbidor dae naipamugtak tanganing makapasa kaining impormasyon.
+Ini mapuwedeng yaon nakabase sa CGI asin dae makakasuporta sa img_auth.
+Hilnga an https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'img-auth-notindir' => 'An hinahagad na agihan bakong naka-akma sa pankargang direktoryo.',
 'img-auth-badtitle' => 'Dae nakakapaggibo in sarong balidong titulog gikan sa "$1".',
 'img-auth-nologinnWL' => 'Dae ka nakalaog asin "$1" mayo sa aprubadong listahan.',
 'img-auth-nofile' => 'An sagunson "$1" bakong eksistido.',
+'img-auth-isdir' => 'Ika naghingohang makalaog sa direktoryo "$1".
+Makakalaog ka sana sa sagunson na tinugot.',
+'img-auth-streaming' => 'Nagsusughay na "$1".',
+'img-auth-public' => 'An punksyon kan img_autho.php iyo an magpaluwas nin mga sagunson gikan sa pribadong wiki.
+Ining wiki pinagbago bilang sarong pampublikong wiki.
+Para sa pinakamakusog na seguridad, img_auth.php nganay pinagpundo.',
+'img-auth-noread' => 'An paragamit mayo nin kakusgan na magbasa sa "$1".',
+'img-auth-bad-query-string' => 'An kilyawan igwa nin bakong imbalidong pasurunod na kahaputan.',
+
+# HTTP errors
+'http-invalid-url' => 'Imbalidong kilwayan: $1',
+'http-invalid-scheme' => 'Mga kilyawan na igwang "$1" eskima bako tabing suportado.',
+'http-request-error' => 'HTTP kahagadan nagpalya nin huli sa dae pa aram na kasalaan.',
+'http-read-error' => 'HTTP na pagbabasa nasasala.',
+'http-timed-out' => 'HTTP na kahagadan naubos na an oras.',
+'http-curl-error' => 'An kasalaan nagsusungko sa kilyawan: $1',
+'http-host-unreachable' => 'Dae nakakaabot sa kilyawan.',
+'http-bad-status' => 'Igwa nin sarong problema habang yaon sa HTTP na kahagadan: $1 $2',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'Dai naabot an URL',
@@ -1560,41 +1628,67 @@ Kun an problema yaon pa, pakikontak tabi nin sarong [[Special:ListUsers/sysop|ad
 'upload-curl-error28' => 'sobra na an pagkalawig kan pagkarga',
 'upload-curl-error28-text' => 'Sobrang haloy an pagsimbag kan sitio. Susugon tabi na nagaandar an sitio, maghalat nin muna asin iprobar giraray. Tibaad moot mong magprobar sa panahon na bako masiadong okupado.',
 
-'license' => 'Paglilisensya',
-'license-header' => 'Paglilisensya',
+'license' => 'An Paglilisensya:',
+'license-header' => 'Paglisensiya',
 'nolicense' => 'Mayong pigpilî',
 'license-nopreview' => '(Mayong patânaw)',
 'upload_source_url' => ' (sarong tama, na bukas sa publikong URL)',
 'upload_source_file' => " (sarong ''file'' sa kompyuter mo)",
 
 # Special:ListFiles
+'listfiles-summary' => 'Ining espesyal na pahina nagpapahiling kan gabos na pinagkargang mga sagunson.
+Kunsoarin na pinagsara nin paragamit, an mga sagunson sana kun saen an pinagkarga nin paragamit na iyo an pinakahuring bersyon an ipagpapahiling.',
 'listfiles_search_for' => 'Hanápon an pangaran kan retrato:',
 'imgfile' => 'dokumento',
 'listfiles' => 'Lista kan dokumento',
+'listfiles_thumb' => 'Imaheng sadit',
 'listfiles_date' => 'Petsa',
 'listfiles_name' => 'Pangaran',
 'listfiles_user' => 'Parágamit',
 'listfiles_size' => 'Sukol',
 'listfiles_description' => 'Deskripsión',
+'listfiles_count' => 'Mga Bersyon',
 
 # File description page
 'file-anchor-link' => 'File',
 'filehist' => 'Uusipón nin file',
 'filehist-help' => 'Magpindot kan petsa/oras para mahiling an hitsura kan file sa piniling oras.',
 'filehist-deleteall' => 'parâon gabos',
-'filehist-deleteone' => 'parâon ini',
+'filehist-deleteone' => 'puraon',
 'filehist-revert' => 'ibalik',
 'filehist-current' => 'ngonyan',
 'filehist-datetime' => 'Petsa/Oras',
+'filehist-thumb' => 'Imaheng sadit',
+'filehist-thumbtext' => 'Imaheng sadit para sa bersyon kan nakaaging $1',
+'filehist-nothumb' => 'Mayo nin imaheng sadit',
 'filehist-user' => 'Paragamít',
 'filehist-dimensions' => 'Mga dimensyón',
 'filehist-filesize' => 'Sokol nin file',
 'filehist-comment' => 'Komento',
-'imagelinks' => 'Mga takód',
-'linkstoimage' => 'An mga minasunod na pahina nakatakod sa dokumentong ini:',
+'filehist-missing' => 'Nawawarang sagunson',
+'imagelinks' => 'Sagunsong naggagamit',
+'linkstoimage' => 'An minasunod na {{PLURAL:$1|mga takod nin pahina|$1 mga pahinang nakatakod}} kaining sagunson:',
+'linkstoimage-more' => 'Sobra sa $1 {{PLURAL:$1|mga takod nin pahina|$1 mga pahinang nakatakod}} kaining sagunson.
+An minasunod na lista nagpapahiling kan {{PLURAL:$1|enot na pahinang takod|enot na $1 pahinang nakatakod}} kaining sagunson sana.
+Sarong [[Special:WhatLinksHere/$2|bilog na lista]] an maantabayan.',
 'nolinkstoimage' => 'Mayong mga pahinang nakatakod sa dokumentong ini.',
-'sharedupload' => "Ining ''file'' sarong bakas na pagkarga asin pwede ser na gamiton kan ibang mga proyekto.",
+'morelinkstoimage' => 'Hilngon an [[Special:WhatLinksHere/$1|kadagdagang mga takod]] kaining sagunson.',
+'linkstoimage-redirect' => '$1 (sagunson na panukdong otro) $2',
+'duplicatesoffile' => 'An minasunod na {{PLURAL:$1|sagunson sarong duplikado|$1 mga sagunsong duplikado}} kaining sagunson ([[Special:FileDuplicateSearch/$2|kadagdagang mga detalye]]):',
+'sharedupload' => 'Ining sagunson naggikan sa $1 asin mapuwedeng gamiton kan ibang mga proyekto.',
+'sharedupload-desc-there' => 'Ining sagunson naggikan sa $1 asin mapuwedeng gamiton kan ibang mga proyekto.
+Pakihiling tabi sa [$2 sagunsong deskripsyon kan pahina] para sa mga kadagdagang impormasyon.',
+'sharedupload-desc-here' => 'Ining sagunson naggikan sa $1 asin mapuwedeng gamiton kan ibang mga proyekto.
+An deskripsyon na yaon sa [$2 sagunsong deskripsyon kan pahina] ipinapahiling tabi sa ibaba.',
+'sharedupload-desc-edit' => 'Ining sagunson naggikan sa $1 asin mapuwedeng gamiton kan ibang mga proyekto.
+Mapuwede gayod na magusto kang liwaton an deskripsyon na yaon sa [$2 sagunsong deskripsyon kan pahina] kaini.',
+'sharedupload-desc-create' => 'Ining sagunson naggikan sa $1 asin mapuwedeng gamiton kan ibang mga proyekto.
+Mapuwede gayod na ika magustong liwatong an deskripsyon na yaon sa [$2 sagunsong deskripsyon kan pahina] kaini.',
+'filepage-nofile' => 'Mayong sagunson sa arog kaining ngaran an yaon.',
+'filepage-nofile-link' => 'Mayong sagunson sa arog kaining ngaran an yaon, alagad ika puwedeng [$1 magkarga kaini].',
 'uploadnewversion-linktext' => 'Magkarga nin bàgong bersyon kaining file',
+'shared-repo-from' => 'gikan sa $1',
+'shared-repo' => 'sarong pinagheras na repositoryo',
 
 # File reversion
 'filerevert' => 'Ibalik an $1',
@@ -1609,18 +1703,26 @@ Kun an problema yaon pa, pakikontak tabi nin sarong [[Special:ListUsers/sysop|ad
 # File deletion
 'filedelete' => 'Parâon an $1',
 'filedelete-legend' => 'Parâon an dokumento',
-'filedelete-intro' => "Pigpaparâ mo an '''[[Media:$1|$1]]'''.",
+'filedelete-intro' => "Saimong pagpupuraon an sagunson '''[[Media:$1|$1]]''' kaiba an gabos kaining historiya.",
 'filedelete-intro-old' => "Pigpaparâ mo an bersyon kan '''[[Media:$1|$1]]''' sa ngonyan [$4 $3, $2].",
 'filedelete-comment' => 'Rason:',
 'filedelete-submit' => 'Parâon',
 'filedelete-success' => "An '''$1''' pinarâ na.",
-'filedelete-success-old' => '<span class="plainlinks">An bersyón kan \'\'\'[[Media:$1|$1]]\'\'\' na ngonyan na $3, pigparâ na an $2.</span>',
-'filedelete-nofile' => "Mayo man an '''$1''' sa ining sitio.",
+'filedelete-success-old' => "An bersyon kan '''[[Media:$1|$1]]''' magpoon kan $3, $2 pinagpura na tabi.",
+'filedelete-nofile' => "'''$1''' bakong eksistido.",
 'filedelete-nofile-old' => "Mayong bersyón na nakaarchibo kan '''$1''' na igwang kan mga piniling ''character''.",
+'filedelete-otherreason' => 'An iba pa/kadugangang rason:',
+'filedelete-reason-otherlist' => 'Ibang dahilan',
+'filedelete-reason-dropdown' => '*Kumon na mga rason nin pagpura
+** Copyright na paglapas
+** Duplikadong sagunson',
+'filedelete-edit-reasonlist' => 'Liwaton an mga rason nin pagpura',
+'filedelete-maintenance' => 'Pagpupura asin restorasyon nin mga sagunson temporaryong pinagpupundo sa panahon nin pagpapakarhay.',
+'filedelete-maintenance-title' => 'Dae makapagpura nin sagunson',
 
 # MIME search
 'mimesearch' => 'Paghanap kan MIME',
-'mimesearch-summary' => "An gamit kaining páhina sa pagsasarâ kan mga ''file'' segun sa mga tipo nin MIME. Input: contenttype/subtype, e.g. <tt>image/jpeg</tt>.",
+'mimesearch-summary' => "An gamit kaining páhina sa pagsasarâ kan mga ''file'' segun sa mga tipo nin MIME. Input: contenttype/subtype, e.g. <code>image/jpeg</code>.",
 'mimetype' => 'tipo nin MIME:',
 'download' => 'ideskarga',
 
@@ -1632,20 +1734,28 @@ Kun an problema yaon pa, pakikontak tabi nin sarong [[Special:ListUsers/sysop|ad
 
 # Unused templates
 'unusedtemplates' => 'Mga templatong dai ginamit',
-'unusedtemplatestext' => 'Piglilista kaining páhina an gabos na mga páhina sa templatong ngaran-espacio na dai nakakaag sa ibang páhina. Giromdomon tabî na sosogon an ibang mga takod sa mga templato bâgo parâon iyan.',
+'unusedtemplatestext' => 'Ining pahina minalista kan gabos na mga pahina sa {{ns:template}} ngarang-espasyo na bakong kabali sa ibang pahina.
+Giromdoma baya na mag-tsek para sa iba pang kasugpon sa mga templato bago mo pagpuraon sinda.',
 'unusedtemplateswlh' => 'ibang mga takod',
 
 # Random page
 'randompage' => 'Arín man na pahina',
-'randompage-nopages' => 'Mayong páhina an ngaran-espacio.',
+'randompage-nopages' => 'Dae tabi nin mga pahina sa minasunod na {{PLURAL:$2|espasyong-ngaran|mga espasyong-ngaran}}: $1.',
 
 # Random redirect
 'randomredirect' => 'Random na pagredirekta',
-'randomredirect-nopages' => 'Mayong paglikay (redirects) didgi sa ngaran-espacio.',
+'randomredirect-nopages' => 'Mayo nin panukdo-liwat sa espasyong-ngaran na "$1".',
 
 # Statistics
 'statistics' => 'Mga Estadistiko',
+'statistics-header-pages' => 'Estadistikong pahina',
+'statistics-header-edits' => 'Estadistiko nin pagliwat',
+'statistics-header-views' => 'Estadistiko nin pagmansay',
 'statistics-header-users' => 'Mga estadistiko nin parágamit',
+'statistics-header-hooks' => 'Iba pang estadistiko',
+'statistics-articles' => 'Laman na mga pahina',
+'statistics-pages' => 'Mga Pahina',
+'statistics-pages-desc' => 'Gabos na mga pahina sa laog kan wiki, kabali an pahina nin orolay, mga panukdo-liwat, ibp.',
 'statistics-files' => 'Pinagkargang mga sagunson',
 'statistics-edits' => 'Mga pagliwat sa pahina magpoon pa na an {{SITENAME}} pinagmukna.',
 'statistics-edits-average' => 'Katahaw kan mga pagliliwat sa kada pahina',
@@ -1654,24 +1764,32 @@ Kun an problema yaon pa, pakikontak tabi nin sarong [[Special:ListUsers/sysop|ad
 'statistics-views-peredit' => 'Mga kamansayan kada pagliwat',
 'statistics-users' => 'Rehistrado [[Special:ListUsers|users]]',
 'statistics-users-active' => 'Mga Aktibong Paragamit',
+'statistics-users-active-desc' => 'Mga paragamit na may ginibong aksyon sa nakaaging {{PLURAL:$1|aldaw|$1 mga aldaw}}',
 'statistics-mostpopular' => 'mga pinaka pighiling na pahina',
 
-'disambiguations' => 'Mga pahinang klaripikasyon',
+'disambiguations' => 'Mga pahinang minatulay pasiring sa pampalinaw na mga pahina',
 'disambiguationspage' => 'Template:clarip',
-'disambiguations-text' => "An mga nasunod na páhina nakatakod sa sarong '''páhina nin klaripikasyon'''.
-Imbis, kaipuhan na nakatakod sinda sa maninigong tema.<br />
-An páhina pigkokonsiderar na páhina nin klaripikasyon kun naggagamit ini nin templatong nakatakod sa [[MediaWiki:Disambiguationspage]]",
+'disambiguations-text' => "An mga minasunod na mga pahina igwang laog nin kisera sarong tulay pasiring sa '''pampalinaw na pahina'''.
+Sinda mapuwedeng makipagsugpon pasiring sa sarong mas manigong pahina nanggad.<br />
+An sarong pahina tratado bilang pampalinaw na pahina kun ini minagamit nin sarong templato na nakasugpon gikan sa [[MediaWiki:Disambiguationspage]].",
 
 'doubleredirects' => 'Dobleng mga redirekta',
-'doubleredirectstext' => 'Piglilista kaining pahina an mga pahinang minalikay sa ibang pahinang paralikay. Kada raya may mga takod sa primero asin segundang likay, buda an destino kan segundong likay, na puro-pirme sarong "tunay " na pahinang destino, na dapat duman nakaturo an primerong likay.',
+'doubleredirectstext' => 'Ining pahina minalista nin mga pahina na minatukdo liwat pasiring sa pinagtukdong-liwat na mga pahina.
+Kada palunpon igwang laog na minasugpon pasiring sa enot asin ikaduwang pagtukdo-liwat, siring man sa target kan ikaduwang pagtukdo-liwat, na pirme nanggad an "tunay" na pahinang target, na an enot na pagtukdong-liwat dapat na iyo an pagtutukdoon.
+<del>Pinagpura</del> na mga entrada naresolberan na.',
+'double-redirect-fixed-move' => '[[$1]] pinagbalyo tabi.
+Ini ngunyan minatukdo-liwat pasiring sa [[$2]].',
+'double-redirect-fixed-maintenance' => 'Pinapakarhay na dobleng panukdo-liwat magpoon sa [[$1]] pasiring sa [[$2]].',
+'double-redirect-fixer' => 'Parapakarhay kan panukdo-liwat',
 
 'brokenredirects' => 'Putol na mga paglikay',
-'brokenredirectstext' => 'An nagsusunod naglilikay kan takod sa mga pahinang mayo man:',
+'brokenredirectstext' => 'An mga minasunod na panukdo-liwat nakasugpon pasiring sa busyaw na mga pahina:',
 'brokenredirects-edit' => 'hirahón',
 'brokenredirects-delete' => 'parâon',
 
 'withoutinterwiki' => 'Mga pahinang dai nin mga takod sa ibang tataramon',
 'withoutinterwiki-summary' => 'An mga nagsusunod na páhina dai nakatakód sa mga bersión na ibang tataramón:',
+'withoutinterwiki-legend' => 'Enotang panigmit',
 'withoutinterwiki-submit' => 'Ipahiling',
 
 'fewestrevisions' => 'Mga artikulong may pinakadikit na pagpakarháy',
@@ -1683,57 +1801,84 @@ An páhina pigkokonsiderar na páhina nin klaripikasyon kun naggagamit ini nin t
 'nmembers' => '$1 {{PLURAL:$1|myembro|mga myembro}}',
 'nrevisions' => '$1 {{PLURAL:$1|pagpakarhay|mga pagpakarhay}}',
 'nviews' => '$1 {{PLURAL:$1|hiling|mga hiling}}',
+'nimagelinks' => 'Ginamit sa $1 {{PLURAL:$1|pahina|mga pahina}}',
+'ntransclusions' => 'ginamit sa $1 {{PLURAL:$1|pahina|mga pahina}}',
 'specialpage-empty' => 'Mayong mga resulta para sa report na ini.',
 'lonelypages' => 'Mga solong pahina',
-'lonelypagestext' => 'An mga minasunod na mga páhina dai nakatakod sa ibang mga páhina sa wiki na ini.',
+'lonelypagestext' => 'An minasunod na mga pahina dae nakatakod gikan o balyong-kabali sa laog kan ibang mga phina nin {{SITENAME}}.',
 'uncategorizedpages' => 'Mga dai nakakategoryang páhina',
 'uncategorizedcategories' => 'Mga dai nakakategoryang kategorya',
-'uncategorizedimages' => 'Mga dai nakakategoryang retrato',
+'uncategorizedimages' => 'Mayong kategoryang mga sagunson',
 'uncategorizedtemplates' => 'Mga templatong mayong kategorya',
 'unusedcategories' => 'Dai gamit na mga kategorya',
 'unusedimages' => 'Mga dokumentong dai nagamit',
 'popularpages' => 'Mga popular na páhina',
 'wantedcategories' => 'Mga hinahanap na kategorya',
 'wantedpages' => 'Mga hinahanap na pahina',
+'wantedpages-badtitle' => 'Imbalidong titulo sa resultang kinaag: $1',
+'wantedfiles' => 'Kinakaipong mga sagunson',
+'wantedfiletext-cat' => 'An minasunod na mga sagunson ginagamit alagad bakong eksistido. Mga sagunson na gikan sa luwas kan mga repositoryo mapuwedeng listahon dawa bakong eksistido. An arinman na mga palsong positibo <del>paghahaleon sa agi nin linya</del>. Bilang kadagdagan, an mga pahina na minapadukot nin mga sagunson na bako man eksistido yaon nakalista sa [[:$1]].',
+'wantedfiletext-nocat' => 'An minasunod na mga sagunson ginagamit alagad bakong eksistido. Mga sagunson na gikan sa luwas kan mga repositoryo mapuwedeng listahon dawa eksistido na. An arinman na mga palsong positibo <del>paghahaleon sa agi nin linya</del>.',
+'wantedtemplates' => 'Kinakaipong mga templato',
 'mostlinked' => 'Pinakapigtatakodan na mga pahina',
 'mostlinkedcategories' => 'Pinakapigtatakodan na mga kategorya',
 'mostlinkedtemplates' => 'An mga pinakanatakodan na templato',
 'mostcategories' => 'Mga artikulong may pinaka dakol na kategorya',
-'mostimages' => 'Pinakapigtatakodan na files',
+'mostimages' => 'An pinakapakisugpunan na mga sagunson',
 'mostrevisions' => 'Mga artikulong may pinakadakol na pagpakarháy',
-'prefixindex' => 'Gabós na pahinang igwáng katakód',
+'prefixindex' => 'Gabos na mga pahina na igwa nin enotang panigmit',
+'prefixindex-namespace' => 'Gabos na mga pahina na igwa nin enotang panigmit ($1 espasyong ngaran)',
 'shortpages' => 'Haralìpot na pahina',
 'longpages' => 'Mga halabang pahina',
 'deadendpages' => 'Mga pahinang mayong luwasan',
-'deadendpagestext' => 'An mga nagsusunod na pahina dai nakatakod sa mga ibang pahina sa ining wiki.',
+'deadendpagestext' => 'An mga minasunod na mga phina dae nakatakod sa ibang mga pahina sa {{SITENAME}}.',
 'protectedpages' => 'Mga protektadong pahina',
+'protectedpages-indef' => 'Daeng sagkod na proteksyon sana',
+'protectedpages-cascade' => 'Mga pasurunod na proteksyon sana',
 'protectedpagestext' => 'An mga minasunod na pahina protektado na ibalyó o hirahón',
 'protectedpagesempty' => 'Mayong pang páhina an napoprotehiran kaining mga parametros.',
+'protectedtitles' => 'Protektadong mga titulo',
+'protectedtitlestext' => 'An minasunod na mga titulo pinagprotektaran magpoon na muknaon',
+'protectedtitlesempty' => 'Mayong mga titulo sa presente an protektado kaining mga parametro.',
 'listusers' => 'Lista nin paragamit',
+'listusers-editsonly' => 'Ipahiling sana an mga paragamit na igwang mga pinagliwat',
+'listusers-creationsort' => 'Salansanon sa paagi kan petsa nin pagmukna',
+'usereditcount' => '$1 {{PLURAL:$1|pigliwat|mga pigliwat}}',
+'usercreated' => '{{GENDER:$3|Minukna}} kan $1 sa $2',
 'newpages' => 'Mga bàgong pahina',
 'newpages-username' => 'Pangaran kan parágamit:',
 'ancientpages' => 'Mga pinakalumang pahina',
 'move' => 'Ibalyó',
 'movethispage' => 'Ibalyó ining pahina',
-'unusedimagestext' => "Giromdomon tabî na an mga ibang ''site'' pwedeng nakatakod sa ladawan na may direktong URL, pues pwede ser na nakalista pa digdi a pesar na ini piggagamit pa.",
+'unusedimagestext' => 'An minasunod na mga sagunson eksistido alagad dae nakadukot sa arinman na pahina.
+Pakigiromdom tabi na sa ibang websityo mapuwedeng nakatakod sa sarong sagunson na igwang direktang kilyawan, asin kaya mapuwedeng nakalista digde dawa ngani ini aktibong ginagamit.',
 'unusedcategoriestext' => 'Igwa ining mga pahinang kategoria maski mayo man na iba pang pahina o kategoria an naggagamit kaiyan.',
 'notargettitle' => 'Mayong target',
 'notargettext' => 'Dai ka pa nagpili nin pahina o paragamit na muya mong gibohon an accion na ini.',
+'nopagetitle' => 'Mayo kaiyang target na pahina',
+'nopagetext' => 'An target na pahina na saimong pinagsambit bako tabing eksistido.',
+'pager-newer-n' => '{{PLURAL:$1|baguhon 1|baguhon na $1}}',
+'pager-older-n' => '{{PLURAL:$1|luma na nin 1|luma na nin $1}}',
+'suppress' => 'Tagapagmansay',
+'querypage-disabled' => 'Ining espesyal na pahina pinagpundo nin huli sa kaggibohang mga rason.',
 
 # Book sources
 'booksources' => 'Ginikanang libro',
 'booksources-search-legend' => 'Maghanap nin mga ginikanang libro',
 'booksources-go' => 'Dumanán',
 'booksources-text' => "Mahihiling sa babâ an lista kan mga takod sa ibang ''site'' na nagbenbenta nin mga bâgo asin nagamit nang libro, asin pwede ser na igwa pang mga ibang impormasyon manonongod sa mga librong pighahanap mo:",
+'booksources-invalid-isbn' => 'An pinagtaong ISBN dae minaluwas na balido; paki-tsek tabi nin mga sala sa pagkopya gikan sa orihinal na piggikanan.',
 
 # Special:Log
-'specialloguserlabel' => 'Paragamit:',
-'speciallogtitlelabel' => 'Titulo:',
+'specialloguserlabel' => 'Paragibo:',
+'speciallogtitlelabel' => 'Target (titulo o paragamit):',
 'log' => 'Mga usip',
-'all-logs-page' => 'Gabos na usip',
-'alllogstext' => 'Sinalak na hihilngon kan gabos na historial na igwa sa {{SITENAME}}. Kun boot mong pasaditon an seleksyon magpili tabî nin klase kan historial, ngaran nin parágamit, o páhinang naapektaran.',
+'all-logs-page' => 'Gabos na pampublikong mga talaan',
+'alllogstext' => 'Kumbinadong pagpapahiling kan gabos na yaong mga talaan sa {{SITENAME}}.
+Saimong mapasadit an patanaw sa paagi nin pagpipili nin sarong tipo nin talaan, an ngaran nin paragamit (sensitibo sa pindutan), o an apektadong pahina (sensitibo sa pindutan man).',
 'logempty' => 'Mayong angay na bagay sa historial.',
 'log-title-wildcard' => 'Hanapon an mga titulong napopoon sa tekstong ini',
+'showhideselectedlogentries' => 'Ipahiling/itago an pinagpiling mga entrada sa talaan',
 
 # Special:AllPages
 'allpages' => 'Gabos na pahina',
@@ -1741,6 +1886,7 @@ An páhina pigkokonsiderar na páhina nin klaripikasyon kun naggagamit ini nin t
 'nextpage' => 'Sunod na pahina ($1)',
 'prevpage' => 'Nakaaging pahina ($1)',
 'allpagesfrom' => 'Ipahiling an mga páhina poon sa:',
+'allpagesto' => 'Ipahiling an mga pahina na may tapos na:',
 'allarticles' => 'Gabos na mga artikulo',
 'allinnamespace' => 'Gabos na mga páhina ($1 ngaran-espacio)',
 'allnotinnamespace' => 'Gabos na mga páhina (na wara sa $1 ngaran-espacio)',
@@ -1750,31 +1896,75 @@ An páhina pigkokonsiderar na páhina nin klaripikasyon kun naggagamit ini nin t
 'allpagesprefix' => 'Ipahiling an mga pahinang may prefiho:',
 'allpagesbadtitle' => "Dai pwede an tinaong titulo kan páhina o may prefihong para sa ibang tataramon o ibang wiki. Pwede ser na igwa ining sarô o iba pang mga ''character'' na dai pwedeng gamiton sa mga titulo.",
 'allpages-bad-ns' => 'An {{SITENAME}} mayo man na ngaran-espacio na "$1".',
+'allpages-hide-redirects' => 'Itago an mga panukdong otro',
+
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'Ika nakahiling sa sarong pinagsaray na bersyon kaining pahina, na puwedeng minaabot na sa $1 nang haloy.',
+'cachedspecial-viewing-cached-ts' => 'Ika nakahiling sa sarong pinagsaray na bersyon kaining pahina, na mapuwedeng bakong aktuwal na kumpleto talaga.',
+'cachedspecial-refresh-now' => 'Hilngon an pinakahuri.',
 
 # Special:Categories
 'categories' => 'Mga Kategorya',
-'categoriespagetext' => 'Igwa nin laog ang mga minasunod na kategorya.
-[[Special:UnusedCategories|Unused categories]] are not shown here.
-Also see [[Special:WantedCategories|wanted categories]].',
+'categoriespagetext' => 'An minasunod {{PLURAL:$1|kategorya na may laog na|mga kategorya na may laog na}} mga pahina o midya.
+[[Special:UnusedCategories|Dae ginamit na mga kategorya]] dae ipinapahiling digde.
+Asin man hilnga an [[Special:WantedCategories|kinakaipong mga kategorya]].',
+'categoriesfrom' => 'Pahilnga an mga kategorya magpoon sa:',
+'special-categories-sort-count' => 'salansana sa paagi nin bilang',
+'special-categories-sort-abc' => 'salansana sa paagi nin alpabetiko',
 
 # Special:DeletedContributions
 'deletedcontributions' => 'Parâon an mga kontribusyon kan parágamit',
 'deletedcontributions-title' => 'Parâon an mga kontribusyon kan parágamit',
+'sp-deletedcontributions-contribs' => 'mga kontribusyon',
 
 # Special:LinkSearch
-'linksearch' => 'Mga panluwas na takod',
+'linksearch' => 'Panluwas na mga takod sa paghahanap',
+'linksearch-pat' => 'Pangarugan sa paghahanap:',
+'linksearch-ns' => 'Espasyong-ngaran:',
 'linksearch-ok' => 'Hanápon',
+'linksearch-text' => 'Mga pantsambang baraha arog baka kan "*.wikipedia.org" mapuwedeng gamiton.
+Minakaipo kisera sarong halangkaw na mugtak nin kinasakupan, halimbawa "*.org".<br />
+Suportadong mga panundan: <code>$1</code> (dae magdagdag arinman kaini sa saimong paghahanap).',
 'linksearch-line' => '$1 an nakatakod sa $2',
+'linksearch-error' => 'Mga pantsambang baraha mapuwedeng magluwas sana sa poon kan hostname.',
 
 # Special:ListUsers
 'listusersfrom' => 'Ipahiling an mga paragamit poon sa:',
 'listusers-submit' => 'Ipahiling',
 'listusers-noresult' => 'Mayong nakuang parágamit.',
+'listusers-blocked' => '(pinagbarado)',
+
+# Special:ActiveUsers
+'activeusers' => 'Listahan kan aktibong paragamit',
+'activeusers-intro' => 'Iyo in an listahan kan mga paragamit na nagkaigwa nin mga ginibo sa laog kan nakaaging $1 {{PLURAL:$1|aldaw|mga aldaw}}.',
+'activeusers-count' => '$1 {{PLURAL:$1|pigliwat|mga pigliwat}} sa nakaaging {{PLURAL:$3|aldaw|$3 mga aldaw}}',
+'activeusers-from' => 'Ipahiling an mga paragamit magpoon sa:',
+'activeusers-hidebots' => 'Itago an mga panalnga',
+'activeusers-hidesysops' => 'Itago an mga administrador',
+'activeusers-noresult' => 'Mayong mga paragamit na nanagboan.',
+
+# Special:Log/newusers
+'newuserlogpage' => 'Paragamit na talaan nin pagmukna',
+'newuserlogpagetext' => 'Ini an talaan kan mga pagmukna nin paragamit.',
 
 # Special:ListGroupRights
+'listgrouprights' => 'Mga karapatan kan grupo nin paragamit',
+'listgrouprights-summary' => 'An minasunod iyo an listahan kan mga grupo nin paragamit na pinaghunsay kaining wiki, kaiba an saindang asosyadong mga karapatan nin paggamit.
+Puwedeng magkakaigwa nin [[{{MediaWiki:Listgrouprights-helppage}}|kadagdagang impormasyon]] mapanungod sa indibidwal na mga karapatan.',
+'listgrouprights-key' => '* <span class="listgrouprights-granted">Pinagbanhag na Karapatan</span>
+* <span class="listgrouprights-revoked">Pinagbawi na Karapatan</span>',
 'listgrouprights-group' => 'Grupo',
 'listgrouprights-rights' => 'Derechos',
+'listgrouprights-helppage' => 'Help:Pangrupong mga karapatan',
 'listgrouprights-members' => '(lista kan mga kaapíl)',
+'listgrouprights-addgroup' => 'Dagdag {{PLURAL:$2|grupo|mga grupo}}: $1',
+'listgrouprights-removegroup' => 'Halia an {{PLURAL:$2|grupo|mga grupo}}: $1',
+'listgrouprights-addgroup-all' => 'Idagdag an gabos na mga grupo',
+'listgrouprights-removegroup-all' => 'Haleon an gabos na mga grupo',
+'listgrouprights-addgroup-self' => 'Dagdag {{PLURAL:$2|grupo|mga grupo}} tanganing magkaigwa nin panindog: $1',
+'listgrouprights-removegroup-self' => 'Halia {{PLURAL:$2|grupo|mga grupo}} gikan sa sadireng panindog: $1',
+'listgrouprights-addgroup-self-all' => 'Idagdag an gabos na mga grupo tanganing magkaigwa nin sadireng panindog',
+'listgrouprights-removegroup-self-all' => 'Halion an gabos na mga grupo gikan sa sadireng panindog',
 
 # E-mail user
 'mailnologin' => 'Mayong direksyón nin destino',
@@ -1783,55 +1973,74 @@ asin may marhay na ''e''-surat sa saimong [[Special:Preferences|Mga kabôtan]]
 para makapadara nin ''e''-surat sa ibang parágamit.",
 'emailuser' => 'E-koreohan ining paragamit',
 'emailpage' => 'E-suratan an parágamit',
-'emailpagetext' => "Kun ining páragamit nagkaag nin marhay ''e''-surat sa saiyang mga kabôtan, an pormulario sa babâ mapadara nin sarong mensahe.
-An kinaag mong ''e''-surat sa saimong mga kabôtan nin paragamit mahihiling bilang na \"Hali ki\" kan ''e''-surat, para an recipiente pwedeng makasimbag.",
+'emailpagetext' => 'Ika makakagamit kan porma na yaon sa ibaba tanganing magpadara nin e-surat na mensahe sa paragamit na ini.
+An e-surat na adres na saimong ilalaog sa [[Special:Preferences|saimong paragamit kagustuhan]] magluluwas bilang iyo an "Gikan ki" adres kan e-surat, kaya an sinuratan makakapagsimbag direkta mismo saimo.',
 'usermailererror' => 'Error manonongod sa korreong binalik:',
-'defemailsubject' => '{{SITENAME}} e-surat',
+'defemailsubject' => '{{SITENAME}} e-surat gikan sa paragamit "$1"',
+'usermaildisabled' => 'Paragamit na e-surat pinagpundo',
+'usermaildisabledtext' => 'Ika dae makakapagpadara nin e-surat sa ibang mga paragamit kaining wiki',
 'noemailtitle' => "Mayô nin ''e''-surat",
-'noemailtext' => 'Dai nagpili nin tama na direccion nin e-surat an paragamit,
-o habo magresibo nin e-surat sa ibang paragamit.',
-'emailfrom' => 'Poon',
+'noemailtext' => 'Ining paragamit dae nagkaag nin sarong balidong e-surat na adres.',
+'nowikiemailtitle' => 'Mayong e-surat na pinagtutugutan',
+'nowikiemailtext' => 'Ining paragamit nagpili na mayong mareresibeng e-surat gikan sa ibang mga paragamit.',
+'emailnotarget' => 'Bakong eksistido o imbalido an ngaran nin paragamit para sa sinuratan.',
+'emailtarget' => 'Paki-entra an ngaran kan paragamit na sinuratan',
+'emailusername' => 'Ngaran nin Paragamit:',
+'emailusernamesubmit' => 'Isumite',
+'email-legend' => 'Magpadara nin sarong e-surat sa ibang {{SITENAME}} na paragamit',
+'emailfrom' => 'Gikan ki:',
 'emailto' => 'Hasta:',
-'emailsubject' => 'Tema',
-'emailmessage' => 'Mensahe',
+'emailsubject' => 'Subheto:',
+'emailmessage' => 'Mensahe:',
 'emailsend' => 'Ipadara',
 'emailccme' => 'E-suratan ako nin kopya kan mga mensahe ko.',
 'emailccsubject' => 'Kopya kan saimong mensahe sa $1: $2',
 'emailsent' => 'Naipadará na an e-surat',
 'emailsenttext' => 'Naipadará na su e-surat mo.',
+'emailuserfooter' => 'Ining e-surat ipinadara sa paagi nin $1 pasiring ki $2 kan "E-surat na paragamit" na punksyon kan {{SITENAME}}.',
+
+# User Messenger
+'usermessage-summary' => 'Magwawalat nin pansistemang mensahe.',
+'usermessage-editor' => 'Pansistemang mensahero',
 
 # Watchlist
 'watchlist' => 'Pigbabantayan ko',
 'mywatchlist' => 'Babantáyan ko',
+'watchlistfor2' => 'Para ki $1 $2',
 'nowatchlist' => 'Mayo ka man na mga bagay saimong lista nin pigbabantayan.',
 'watchlistanontext' => 'Mag $1 tabi para mahiling o maghira nin mga bagay saimong lista nin mga pigbabantayan.',
 'watchnologin' => 'Mayô sa laog',
 'watchnologintext' => 'Dapat ika si [[Special:UserLogin|nakalaog]] para puede kang magribay kan saimong lista nin mga pigbabantayán.',
+'addwatch' => 'Idagdag sa bantay-listahan',
 'addedwatchtext' => "Ining pahina \"[[:\$1]]\" dinugang sa saimong mga [[Special:Watchlist|Pigbabantayan]].
 An mga pagbabâgo sa páhinang ini asin sa mga páhinang olay na kapadis kaini ililista digdi,
 asin an páhina isusurat nin '''mahîbog''' sa [[Special:RecentChanges|lista nin mga kaaagi pa sanang pagbabâgo]] para madalî ining mahiling.
 
 Kun boot mong halîon an páhina sa pigbabantayan mo sa maabot na panahon, pindoton an \"Pabayaan\" ''side bar''.",
-'removedwatchtext' => 'An pahinang "[[:$1]]" pigtanggal sa saimong pigbabantayan.',
+'removewatch' => 'Halion gikan sa bantay-listahan',
+'removedwatchtext' => 'An pahina "[[:$1]]" pinaghale gikan sa [[Special:Watchlist|saimong bantay-listahan]].',
 'watch' => 'Bantayán',
 'watchthispage' => 'Bantayan ining pahina',
 'unwatch' => 'Dai pagbantayan',
 'unwatchthispage' => 'Pondohon an pagbantay',
 'notanarticle' => 'Bakong páhina nin laog',
+'notvisiblerev' => 'An huring rebisyon kan ibang paragamit pinagpura na',
 'watchnochange' => 'Mayo sa saimong mga pigbabantayan an nahira sa laog nin pinahiling na pagkalawig.',
-'watchlist-details' => '{{PLURAL:$1|$1 pahina|$1 mga pahina}} sa babantáyan mo an daí kabáli an mga olay na pahina.',
+'watchlist-details' => '{{PLURAL:$1|$1 pahina|$1 mga pahina}} sa saimong bantay-listahan, dae binibilang an mga pahina nin orolayan.',
 'wlheader-enotif' => "* Nakaandar an paising ''e''-surat.",
 'wlheader-showupdated' => "* An mga páhinang pigbâgo poon kan huri mong bisita nakasurat nin '''mahîbog'''",
 'watchmethod-recent' => 'Pigsososog an mga kaaagi pa sanang hirá sa mga pigbabantayan na páhina',
 'watchmethod-list' => 'Pigsososog an mga pigbabantayan na páhina para mahiling an mga kaaagi pa sanan paghirá',
 'watchlistcontains' => 'An saimong lista nin pigbabantayan igwang $1 na {{PLURAL:$1|páhina|mga páhina}}.',
 'iteminvalidname' => "May problema sa bagay na '$1', salâ an pangaran...",
-'wlnote' => "Mahihiling sa babâ an {{PLURAL:$1|huring pagriribay|mga huring'''$1''' pagriribay}} sa ultimong {{PLURAL:$2|oras|'''$2''' mga oras}}.",
+'wlnote' => "Sa ibaba an {{PLURAL:$1|huring pagbabago|mga huring '''$1''' pagbabago}} sa nakaaging {{PLURAL:$2|oras|'''$2''' mga oras}}, magpoon pa kan $3, $4.",
 'wlshowlast' => 'Ipahilíng an ultimong $1 na oras $2 na aldaw $3',
+'watchlist-options' => 'Bantay-listahan na mga pagpipilian',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'Pigbabantayan...',
 'unwatching' => 'Dai pigbabantayan...',
+'watcherrortext' => 'Sarong kasalaan an nangyari habang binabago an saimong bantay-listahan na panuytoy para sa "$1".',
 
 'enotif_mailer' => '{{SITENAME}} Kartero nin isi',
 'enotif_reset' => 'Markahan an gabos na mga binisitang pahina',
@@ -1843,28 +2052,34 @@ Kun boot mong halîon an páhina sa pigbabantayan mo sa maabot na panahon, pindo
 'enotif_lastvisited' => 'Hilingón an $1 para sa gabos na mga pagbâgo poon kan huring bisita.',
 'enotif_lastdiff' => 'Hilingón an $1 tangarig mahiling an pagbâgong ini.',
 'enotif_anon_editor' => 'dai bistong parágamit $1',
-'enotif_body' => 'Namómòtan na $WATCHINGUSERNAME,
-
+'enotif_body' => 'Namomotang $WATCHINGUSERNAME,
 
-An páhinang {{SITENAME}} na $PAGETITLE binâgo $CHANGEDORCREATED sa $PAGEEDITDATE ni $PAGEEDITOR, hilingón an $PAGETITLE_URL para sa presenteng bersyón.
+An {{SITENAME}} pahina $PAGETITLE pinagmukna $CHANGEDORCREATED kan $PAGEEDITDATE ni $PAGEEDITOR, hilngon sa $PAGETITLE_URL para sa presenteng rebisyon.
 
 $NEWPAGE
 
-Sumáda kan editor: $PAGESUMMARY $PAGEMINOREDIT
+Sumaryo kan paraliwat: $PAGESUMMARY $PAGEMINOREDIT
 
-Apodon an editor:
-\'\'e\'\'-surat: $PAGEEDITOR_EMAIL
+Kontaka an paraliwat:
+e-surat: $PAGEEDITOR_EMAIL
 wiki: $PAGEEDITOR_WIKI
 
-Mayô nang iba pang paisi na ipapadara dapit sa iba pang mga pagbabâgo kun dai mo bibisitahon giraray ining páhina. Pwede mo man na ipwesto giraray an mga patanid para sa saimong mga páhinang pigbabantayan duman sa saimong lista nin pigbabantayan.
+Dae na magkakaigwa pa nin ibang pagpapaisi sa kaso na may kadagdagan pang mga pagbabago laen lang kun ika magbisita sa pahinang ini.
+Ika mapuwede man na makapagbago kan bandera nin pagpapaisi para sa gabos mong pinagbabantayan na mga pahina na yaon sa saimong bantay-listahan.
 
-             An maboot na sistema nin paisi kan {{SITENAME}}
+An saimong mainamigong {{SITENAME}} sistema nin pagpapaisi
 
 --
-Para bâgohon an pagpwesto kan saimong mga pigbabantayan, bisitahon an
+Sa pagbabago kan saimong e-surat na pagpapaising panuytoy, magbisita sa
+{{canonicalurl:{{#special:Mga Kagustuhan}}}}
+
+Sa pagbabago kan saimong bantay-listahang panuytoy, magbisita sa
 {{canonicalurl:{{#special:EditWatchlist}}}}
 
-Komentaryo asin iba pang tabang:
+Sa pagpura ka pahina gikan sa saimong bantay-listahan, magbisita sa
+$UNWATCHURL
+
+Balik-simbag asin kadagdagang asistensiya:
 {{canonicalurl:{{MediaWiki:Helppage}}}}',
 
 # Delete
@@ -1874,12 +2089,14 @@ Komentaryo asin iba pang tabang:
 'excontentauthor' => "ini an dating laog: '$1' (asin an unikong kontribuidor si '[[Special:Contributions/$2|$2]]')",
 'exbeforeblank' => "Ini an dating laog bagô blinankohán: '$1'",
 'exblank' => 'mayong laog an páhina',
+'delete-confirm' => 'Puraon "$1"',
 'delete-legend' => 'Paraon',
-'historywarning' => 'Patanid: An pahinang paparaon mo igwa nin uusipón:',
+'historywarning' => "'''Patanid tabi:''' An pahina na saimong pagpupuraon may historiya na igwa nin haros $1 {{PLURAL:$1|rebisyon|mga rebisyon}}:",
 'confirmdeletetext' => 'Paparaon mo sa base nin datos ining pahina kasabay an gabos na mga uusipón kaini.
 Konpirmaron tabì na talagang boot mong gibohon ini, nasasabotan mo an mga resulta, asin an piggigibo mo ini konporme sa
 [[{{MediaWiki:Policy-url}}]].',
 'actioncomplete' => 'Nagibo na',
+'actionfailed' => 'An aksyon nagpalya',
 'deletedtext' => 'Pigparà na an "$1" .
 Hilingón tabì an $2 para mahiling an lista nin mga kaaagi pa sanang pagparà.',
 'dellogpage' => 'Usip nin pagparà',
@@ -1889,39 +2106,58 @@ Hilingón tabì an $2 para mahiling an lista nin mga kaaagi pa sanang pagparà.'
 'deletecomment' => 'Rason:',
 'deleteotherreason' => 'Iba/dugang na rason:',
 'deletereasonotherlist' => 'Ibang rason',
+'deletereason-dropdown' => '*Pirmehang rason nin pagpupura
+** Kahagadan nin Awtor/Parasurat
+** Kalapasan sa Copyright
+** Bandalismo',
+'delete-edit-reasonlist' => 'Pagliwat kan mga rason nin pagpupura',
+'delete-toobig' => 'Ining pahina igwa nin dakulaong historiya sa pagliwat, minasobrang $1 {{PLURAL:$1|rebisyon|mga rebisyon}}.
+An pagpupura kan nasambit na mga pahina dae pinagtutugot tanganing maiwasan an aksidenteng pagka-antala kan {{SITENAME}}.',
+'delete-warning-toobig' => 'Ining pahina igwa nin dakulaong historiya sa pagliwat, minasobrang $1 {{PLURAL:$1|rebisyon|mga rebisyon}}.
+An pagpupura kaini mapuwedeng makapag-antala sa mga operasyon kan datos-sarayan kan {{SITENAME}}; magpadagos tabi na igwang pag-iingat.',
 
 # Rollback
 'rollback' => 'Mga paghihira na pabalík',
 'rollback_short' => 'pabalík',
 'rollbacklink' => 'pabalikón',
+'rollbacklinkcount' => 'ibalik $1 {{PLURAL:$1|pagliwat|mga pagliwat}}',
+'rollbacklinkcount-morethan' => 'ibalik an sobrang $1  {{PLURAL:$1|pagliwat|mga pagliwat}}',
 'rollbackfailed' => 'Prakaso an pagbalík',
 'cantrollback' => 'Dai pwedeng bawîon an hirá; an huring kontribuidor iyo an unikong parásurat kan páhina.',
-'alreadyrolled' => 'Dai pwedeng ibalik an huring hirá kan [[:$1]]
-ni [[User:$2|$2]] ([[User talk:$2|Olay]]); may ibang parágamit na naghirá na o nagbalik na kaini.
+'alreadyrolled' => 'Dae maibalik an huring pagliwat kan [[:$1]] ni [[User:$2|$2]] ([[User talk:$2|olay]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);
+may iba na tabing nagliwat o nagbalik kan pahina.
 
-Huring hirá ni [[User:$3|$3]] ([[User talk:$3|Olay]]).',
-'editcomment' => "Ini an nakakaag na komentaryo sa paghirá: \"''\$1''\".",
-'revertpage' => 'Binawî na mga paghirá kan [[Special:Contributions/$2|$2]] ([[User talk:$2|Magtaram]]); pigbalik sa dating bersyón ni [[User:$1|$1]]',
+An huring pagliwat sa pahina ginibo ni [[User:$3|$3]] ([[User talk:$3|olay]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
+'editcomment' => "An sumaryo kan pagliwat: \"''\$1''\".",
+'revertpage' => 'Ibinalik na mga pagliwat ni [[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) sagkod sa huring rebisyon ni [[User:$1|$1]]',
+'revertpage-nouser' => 'Ibinalik na mga pagliwat ni (ngaran nin paragamit pinaghali) sagkod sa huring rebisyon ni [[User:$1|$1]]',
 'rollback-success' => 'Binawî na mga paghirá ni $1; pigbalik sa dating bersyón ni $2.',
 
 # Edit tokens
+'sessionfailure-title' => 'Nagpalyang sesyon',
 'sessionfailure' => "Garo may problema sa paglaog mo;
 kinanselár ining aksyón bilang sarong paglikay kontra sa ''session hijacking''.
 Pindotón tabî an \"back\" asin ikarga giraray an páhinang ginikanan mo, dangan probarán giraray.",
 
 # Protect
 'protectlogpage' => 'Usip nin pagsagáng',
-'protectlogtext' => 'May lista sa baba nin mga kandado asin panbawi kan kandado kan mga páhina. Hilingon an [[Special:ProtectedPages|lista kan mga pigproprotektarán na mga páhina]] para mahiling an lista kan mga proteksión nin mga páhina sa ngunyan na nakabuká.',
+'protectlogtext' => 'Sa ibaba iyo an sarong listahan kan mga pagbabago sa mga proteksyon kan pahina.
+Hilnga tabi an [[Special:ProtectedPages|listahan kan protektadong mga pahina]] para sa listahan kan presenteng naggaganang mga proteksyon nin pahina.',
 'protectedarticle' => 'protektado "[[$1]]"',
 'modifiedarticleprotection' => 'binago an nibel nin proteksión para sa "[[$1]]"',
-'unprotectedarticle' => 'Warang proteksión an "[[$1]]"',
+'unprotectedarticle' => 'pinaghaleng proteksyon gikan sa "[[$1]]"',
+'movedarticleprotection' => 'pinaglipat an panuytoy kan proteksyon gikan sa "[[$2]]" sagkod "[[$1]]"',
 'protect-title' => 'Pigpupuesta an nibel nin proteksión sa "$1"',
+'protect-title-notallowed' => 'Hilnga na lebel nin proteksyon kan "$1"',
 'prot_1movedto2' => '[[$1]] piglipat sa [[$2]]',
+'protect-badnamespace-title' => 'Dae maprotektaran na espasyong-ngaran',
+'protect-badnamespace-text' => 'Mga pahina kaining espasyong-ngaran dae tabi protektado.',
 'protect-legend' => 'Kompermaron an proteksyon',
 'protectcomment' => 'Rason:',
 'protectexpiry' => 'Mápasó:',
 'protect_expiry_invalid' => 'Dai pwede ining pahanon nin pagpasó.',
 'protect_expiry_old' => 'Nakalihis na an panahon nin pagpasó.',
+'protect-unchain-permissions' => 'Bukasi an kadagdagang pagpipilian kan proteksyon',
 'protect-text' => "Pwede mong hilingón asin bàgohon an tangga nin proteksyon digdi para sa pahina '''$1'''.",
 'protect-locked-blocked' => "Dai mo pwedeng bâgohon an mga tangga kan proteksyon mientras na ika nababágat. Ini an mga presenteng pwesto kan páhina '''$1''':",
 'protect-locked-dblock' => "Dai puedeng ibalyo an mga nibel kan proteksión ta may actibong kandado sa base nin datos.
@@ -1929,14 +2165,27 @@ Ini an mga puesta sa ngunyan kaining páhina '''$1''':",
 'protect-locked-access' => "Mayong permiso an account mo na magbàgo kan tangga nin proteksyon.
 Uya an ngonyan na mga pwesto kan pahinang '''$1''':",
 'protect-cascadeon' => 'Pigproprotektaran ining pahina sa ngonyan ta sabay ini sa mga nasunod na {{PLURAL:$1|pahina, na may|mga pahina, na may}} proteksyong katarata na nakaandar. Pwede mong bàgohon an tangga nin proteksyon kaining pahina, pero mayò ning epekto sa proteksyong katarata.',
-'protect-default' => '(normal)',
+'protect-default' => 'Tuguti an gabos na mga paragamit',
 'protect-fallback' => 'Mangipo kan "$1" na permiso',
-'protect-level-autoconfirmed' => 'Bagáton an mga paragamit na dai nakarehistro',
+'protect-level-autoconfirmed' => 'Kubkubon an baguhan asin bakong rehistradong mga paragamit',
 'protect-level-sysop' => 'Para sa mga sysop sana',
 'protect-summary-cascade' => 'katarata',
 'protect-expiring' => 'mápasó sa $1 (UTC)',
+'protect-expiring-local' => 'mapalso sa $1',
+'protect-expiry-indefinite' => 'daeng sagkodan',
 'protect-cascade' => 'Protektarán an mga pahinang nakaiba sa pahinang ini (proteksyon katarata)',
 'protect-cantedit' => 'Dai mo mariribayan an mga tanggá kan proteksyon kaining pahina huli ta mayò ka nin permiso na ligwatón ini.',
+'protect-othertime' => 'Ibang panahon:',
+'protect-othertime-op' => 'laeng oras',
+'protect-existing-expiry' => 'Eksistidong oras nin pagpalso: $3, $2',
+'protect-otherreason' => 'Laen/kadagdagang rason:',
+'protect-otherreason-op' => 'Laeng rason',
+'protect-dropdown' => '*Pirmehang mga rason nin proteksyon
+** Sobrahon na bandalismo
+** Sobrahon na pag-espam
+** Kontra-produktibong iwalan sa pagliwat
+** Halangkaw na trapiko kan pahina',
+'protect-edit-reasonlist' => 'Liwaton an mga rason nin proteksyon',
 'protect-expiry-options' => '1ng ora:1 hour,1ng aldaw:1 day,1ng semana:1 week,2ng semana:2 weeks,1ng bulan:1 month,3ng bulan:3 months,6 na bulan:6 months,1ng taon:1 year,daing kasagkoran:infinite',
 'restriction-type' => 'Permiso:',
 'restriction-level' => 'Tanggá nin restriksyon:',
@@ -1958,30 +2207,38 @@ Uya an ngonyan na mga pwesto kan pahinang '''$1''':",
 # Undelete
 'undelete' => 'Hilingón ang mga pinarang pahina',
 'undeletepage' => 'Hilingón asin ibalik an mga pinarang pahina',
+'undeletepagetitle' => "'''An minasunod konsistido nin pinagpurang mga rebisyon kan [[:$1|$1]]'''.",
 'viewdeletedpage' => 'Hilingón an mga pinarang pahina',
-'undeletepagetext' => 'An mga minasunod na páhina pigparâ na alagad yaon pa sa archibo asin pwedeng ibalik. Dapat limpiahan an archibo kada periodo.',
-'undeleteextrahelp' => "Kun boot mong ibalik an enterong páhina, dai markahan an gabos na mga kahon asin pindoton an '''''Restore'''''. Para magpili nin ibábalik, markahan an mga kahon na boot mong ibalik, asin pindoton an '''''Restore'''''. An pagpindot kan '''''Reset''''' makakalimpya nin kampo kan mga kommento
-asin an gabos na mga kahon-marka.",
+'undeletepagetext' => 'An minasunod na {{PLURAL:$1|pahina pinagpura na alagad yaon|$1 mga pahina pinagpura na alagad yaraon }} pa man sa arkibo asin puwedeng maipagbalik.
+An arkibo mapupuwedeng peryodikal na paglilinigan.',
+'undelete-fieldset-title' => 'Ibalik an mga rebisyon',
+'undeleteextrahelp' => "Tanganing maibalik an enterong historiya kan pahina, pabayae na an gabos na mga kahon nin tsek dae pagkaagan asin i-klik mo an '''''{{int:undeletebtn}}'''''.
+Tanganing gibohon an piniling restorasyon, i-tsek mo an mga kahon na kinatangudan kan mga rebisyon na ipagbabalik, asin i-klik an '''''{{int:undeletebtn}}'''''.",
 'undeleterevisions' => '$1 {{PLURAL:$1|na pagriribay|na mga pagriribay}} na nakaarchibo',
-'undeletehistory' => "Kun ibabalik mo an páhinang ini, an gabos na mga pagribay mabalik sa historial.
-Kun igwang piggibong sarong bâgong páhinang may parehong pangaran antes ka pagparâ, an presenteng pagribay maluwas sa historial, asin an presenteng pagribay kan tunay na páhina dai enseguidang mariribayan. Giromdomon man tabî na an mga restriksyon sa mga pagriribay nin ''file'' mawawarâ sa pagbalik.",
-'undeleterevdel' => "Dai madadagos an pagbalik kan pagparâ kun an resulta kaini mapaparâ kan pagribay an nasa páhinang pinaka itaas.
-Sa mga kasong ini, dapat halîon an mga marka o dai itâgo an mga pinaka bâgong pigparâ na mga pagribay. Dai ibabalik an mga pagribay kan mga ''file'' na mayo kan permisong hilingon.",
+'undeletehistory' => 'Kun saimong ipagbalik an pahina, an gabos nga mga rebisyon ipagbabalik sa historiya.
+Kun an baguhon na pahina na igwang kaparehas na ngaran naimukna na poon kan puraon, an ipinagbalik na mga rebisyon minaluwas sa nakaagi nang historiya.',
+'undeleterevdel' => 'An dae pagpupura dae paggigibohon kun ini magreresulta sa kaibabawan kan pahina o rebisyon kan sagunson bilang parsiyal na pinagpura.
+Sa arog na mga kaso, kaipuhan mong haleon an tsek o tagoon an pinakabaguhon na pinagpurang rebisyon.',
 'undeletehistorynoadmin' => 'Pigparâ na ining péhina. Mahihiling an rason sa epitome sa babâ, kasabay sa mga detalye kan mga parágamit na naghira kaining páhina bago pigparâ. Sa mga administrador sana maipapahiling an mga pagribay sa mismong tekstong ini.',
-'undelete-revision' => 'Pigparâng pagribay ni $3 kan $1 (sa $2):',
+'undelete-revision' => 'Pinagpurang rebisyon kan $1 (poon kan $4, sa oras na $5) ni $3:',
 'undeleterevision-missing' => 'Dai pwede o nawawarang pagribay. Pwede ser na salâ an takod, o
 binalik an na pagribay o hinalî sa archibo.',
+'undelete-nodiff' => 'Mayo nin dating rebisyon an nanagboan.',
 'undeletebtn' => 'Ibalik',
+'undeletelink' => 'hilngon/ibalik',
+'undeleteviewlink' => 'hilngon',
 'undeletereset' => 'Ipwesto giraray',
-'undeletecomment' => 'Komento:',
-'undeletedrevisions' => '$1 na (mga) pagriribay an binalík',
-'undeletedrevisions-files' => "$1 na (mga) pagribay asin $2 na (mga) binalik na ''file''",
-'undeletedfiles' => "$1 (mga) ''file'' an binalik",
+'undeleteinvert' => 'Baliktada an pinilian',
+'undeletecomment' => 'An rason:',
+'undeletedrevisions' => '{{PLURAL:$1|1 rebisyon|$1 mga rebisyon}} ipinagbalik',
+'undeletedrevisions-files' => '{{PLURAL:$1|1 rebisyon|$1 mga rebisyon}} asin {{PLURAL:$2|1 sagunson|$2 mga sagunson}} ipinagbalik',
+'undeletedfiles' => '{{PLURAL:$1|1 sagunson|$1 mga sagunson}} ipinagbalik',
 'cannotundelete' => 'Naprakaso an pagbalik kan pigparâ; pwede ser an binawi an pagparâ kan páhina kan ibang parágamit.',
 'undeletedpage' => "'''binalik na an $1 '''
 
 Ikonsultar an [[Special:Log/delete|historial nin pagparâ]] para mahiling an lista nin mga kaaaging pagparâ asin pagbalik.",
 'undelete-header' => 'Hilingon an [[Special:Log/delete|historial kan pagparâ]] kan mga kaaagi pa sanang pinarang páhina.',
+'undelete-search-title' => 'Hanapa an pinagpurang mga pahina',
 'undelete-search-box' => 'Hanapón an mga pinarang pahina',
 'undelete-search-prefix' => 'Hilingón an mga pahinang nagpopoon sa:',
 'undelete-search-submit' => 'Hanápon',
@@ -1990,18 +2247,25 @@ Ikonsultar an [[Special:Log/delete|historial nin pagparâ]] para mahiling an lis
 'undelete-bad-store-key' => "Dai pwedeng bawîon an pagparâ nin ''file'' na pagpakarhay na may taták nin oras na $1: nawara an ''file'' bago an pagparâ.",
 'undelete-cleanup-error' => "May salâ pagparâ kan ''file'' na archibong \"\$1\".",
 'undelete-missing-filearchive' => "Dai maibalik an archibo kan ''file'' may na  ID $1 ta mayô ini sa base nin datos. Pwede ser na pigparâ na ini.",
+'undelete-error' => 'Kasalaan sa dae pinagpupurang pahina',
 'undelete-error-short' => "May salâ sa pagbalik kan pigparang ''file'': $1",
 'undelete-error-long' => "May mga salâ na nasabat mientras sa pigbabalik an pigparang ''file'':
 
 $1",
+'undelete-show-file-confirm' => 'Segurado ka na gusto mong hilngon an pinagpurang rebisyon kan sagunson "<nowiki>$1</nowiki>" poon kan $2 oras na $3?',
+'undelete-show-file-submit' => 'Iyo po',
 
 # Namespace form on various pages
 'namespace' => 'Liang-liang:',
 'invert' => 'Pabaliktadón an pinili',
+'tooltip-invert' => 'I-tsek ining kahon tanganing tagoon an mga pagbabago sa mga pahina na yaon sa laog kan pinagpiling espasyong-ngaran (asin an asosyado na espasyong-ngaran kun may tsek)',
+'namespace_association' => 'Asosyado na espasyong-ngaran',
+'tooltip-namespace_association' => 'I-tsek ining kahon tangani man ibali an olay o subheto na espasyong-ngaran na asosyado sa pinagpili na espasyong-ngaran',
 'blanknamespace' => '(Principal)',
 
 # Contributions
 'contributions' => 'Mga kontribusyon kan parágamit',
+'contributions-title' => 'Mga kontribusyon kan paragamit para sa $1',
 'mycontris' => 'Mga ambág ko',
 'contribsub2' => 'Para sa $1 ($2)',
 'nocontribs' => 'Mayong mga pagbabago na nahanap na kapadis sa ining mga criteria.',
@@ -2011,30 +2275,48 @@ $1",
 
 'sp-contributions-newbies' => 'Ipahiling an mga kontribusión kan mga bagong kuenta sana',
 'sp-contributions-newbies-sub' => 'Para sa mga bàgong account',
+'sp-contributions-newbies-title' => 'Mga kontribusyon kan paragamit para sa baguhon an mga panindog',
 'sp-contributions-blocklog' => 'Bagáton an usip',
-'sp-contributions-deleted' => 'Paráon an mga ambág kan paragamít',
-'sp-contributions-talk' => 'Pag-oláyan',
-'sp-contributions-userrights' => 'Pagmaneho kan mga derecho nin paragamit',
+'sp-contributions-deleted' => 'pinagpurang mga kontribusyon kan paragamit',
+'sp-contributions-uploads' => 'mga ikinarga',
+'sp-contributions-logs' => 'mga tinalaan',
+'sp-contributions-talk' => 'olayan',
+'sp-contributions-userrights' => 'manihamento sa mga karapatan kan paragamit',
+'sp-contributions-blocked-notice' => 'Ining paragamit sa presente pinagbarahan.
+An pinakahuring entrada sa talaan nin pagbara nakahaya sa ibaba bilang reperensiya:',
+'sp-contributions-blocked-notice-anon' => 'Ining IP adres sa presente pinagbarahan.
+An pinakahuring entrada sa talaan nin pagbara nakahaya sa ibaba bilang reperensiya:',
 'sp-contributions-search' => 'Maghanap nin mga kontribusyon',
 'sp-contributions-username' => 'IP o ngaran kan parágamit:',
+'sp-contributions-toponly' => 'Minapahiling sana nin mga pagliwat na pinakahurihang mga rebisyon',
 'sp-contributions-submit' => 'Hanápon',
 
 # What links here
 'whatlinkshere' => 'An nakatakód digdí',
-'whatlinkshere-title' => 'Mga pahinang nakatakód sa $1',
+'whatlinkshere-title' => 'Mga pahina na nakasugpon sa "$1"',
 'whatlinkshere-page' => 'Pahina:',
 'linkshere' => "An mga minasunod na pahina nakatakod sa '''[[:$1]]''':",
 'nolinkshere' => "Mayong pahinang nakatakod sa '''[[:$1]]'''.",
 'nolinkshere-ns' => "Mayong pahina na nakatakod sa '''[[:$1]]''' sa piniling ngaran-espacio.",
 'isredirect' => 'ilikay an pahina',
 'istemplate' => 'kabali',
+'isimage' => 'kasugpon nin sagunson',
 'whatlinkshere-prev' => '{{PLURAL:$1|nakaagi|nakaaging $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|sunod|sunod na $1}}',
 'whatlinkshere-links' => '← mga takod',
+'whatlinkshere-hideredirs' => '$1 mga panukdong otro',
+'whatlinkshere-hidetrans' => '$1 kabaling-binalyuhan',
+'whatlinkshere-hidelinks' => '$1 mga kasugpon',
+'whatlinkshere-hideimages' => '$1 mga kasugpon kan imahe',
 'whatlinkshere-filters' => 'Mga pansarà',
 
 # Block/unblock
+'autoblockid' => 'Awtomatikong-kabarahan #$1',
+'block' => 'Barahon an paragamit',
+'unblock' => 'Haleon an bara kan paragamit',
 'blockip' => 'Bagáton an paragamit',
+'blockip-title' => 'Barahon an paragamit',
+'blockip-legend' => 'Kubkuba an paragamit',
 'blockiptext' => 'Gamiton an pormularyo sa babâ para bagaton an pagsurat kan sarong espesipikong IP o ngaran nin parágamit.
 Dapat gibohon sana ini para maibitaran vandalismo, asin kompirmi sa [[{{MediaWiki:Policy-url}}|palakaw]].
 Magkaag nin espisipikong rason (halimbawa, magtao nin ehemplo kan mga páhinang rinaot).',
@@ -2050,6 +2332,7 @@ Magkaag nin espisipikong rason (halimbawa, magtao nin ehemplo kan mga páhinang
 ** Gawî-gawing makatakót/makauyám
 ** Nag-aabuso nin mga lain-lain na ''account''
 ** Dai akong ngaran nin parágamit",
+'ipb-hardblock' => 'Pugulan an yaon sa laog na mga paragamit na magliliwat gikan kaining IP adres',
 'ipbcreateaccount' => 'Pugulon an pagibo nin kuenta.',
 'ipbemailban' => 'Pugolan ining paragamit na magpadara nin e-surat',
 'ipbenableautoblock' => 'Enseguidang bagaton an huring direccion nin  IP na ginamit kaining paragamit, asin kon ano pang ibang IP na proprobaran nindang gamiton',
@@ -2058,37 +2341,62 @@ Magkaag nin espisipikong rason (halimbawa, magtao nin ehemplo kan mga páhinang
 'ipboptions' => '2ng oras:2 hours,1ng aldaw:1 day,3ng aldaw:3 days,1ng semana:1 week,2ng semana:2 weeks,1ng bulan:1 month,3ng bulan:3 months,6 na bulan:6 months,1ng taon:1 year,daing kasagkoran:infinite',
 'ipbotheroption' => 'iba',
 'ipbotherreason' => 'Iba/dugang na rasón:',
-'ipbhidename' => 'Itago an ngaran in paragamit para dai mahiling sa historial nin pagbagat, nakaandar na lista nin binagat asin lista nin paragamit',
+'ipbhidename' => 'Tagoon an ngaran nin paragamit gikan sa mga pagliliwat asin mga listahan',
+'ipbwatchuser' => 'Bantayi ining gamit kan paragamit asin mga pahina nin olayan',
+'ipb-disableusertalk' => 'Pugulan ining paragamit na magliliwat kan saiyang sadireng pahina nin olayan habang ini barado',
+'ipb-change-block' => 'Barahan-otro an paragamit na igwa kaining mga panuytoy',
+'ipb-confirm' => 'Kumpirmaron an pagbara',
 'badipaddress' => 'Dai pwede ining IP',
 'blockipsuccesssub' => 'Nagibo na an pagbagát',
-'blockipsuccesstext' => 'Binagat si [[Special:Contributions/$1|$1]].
-<br />Hilingon an [[Special:BlockList|lista nin mga binagat na IP]] para marepaso an mga binagat.',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] pinagbarahan.<br />
+Hilngon an [[Special:BlockList|listahan kan binarahan]] tanganing repasohon an mga binara.',
+'ipb-blockingself' => 'Pagbabarahon mo an sadire mo! Segurado ka daw na saimong kagustuhan an gibohon ini?',
+'ipb-confirmhideuser' => 'Ika magbabara nin sarong paragamit na igwang "tagoon an paragamit" na nakagana. Ini magtatago kan ngaran nin paragamit sa gabos na mga listahan asin mga entrada sa talaan. Segurado ka daw na saimong kagustuhan an gibohon ini?',
 'ipb-edit-dropdown' => 'Hirahón an mga rasón sa pagbabagát',
 'ipb-unblock-addr' => 'Paagihon $1',
 'ipb-unblock' => 'Bawion an pagbagat nin ngaran nin paragamit o direccion nin IP',
 'ipb-blocklist' => 'Hilingon an mga presenteng binagat',
+'ipb-blocklist-contribs' => 'Mga kontribusyon para sa $1',
 'unblockip' => 'Paagihon an parâgamit',
 'unblockiptext' => 'Gamiton an pormulario sa baba para puede giraray suratan an dating binagat na direccion nin IP address o ngaran nin paragamit.',
-'ipusubmit' => 'Bawion an pagbagat kaining direccíón',
+'ipusubmit' => 'Haleon ining bara',
 'unblocked' => 'Binawi na an pagbagat ki [[User:$1|$1]]',
+'unblocked-range' => '$1 pinaghale na an bara',
 'unblocked-id' => 'Hinali na an bagat na $1',
-'ipblocklist' => 'Lista nin mga direksyon nin IP asin ngaran nin paragamit na binagat',
+'blocklist' => 'Pinagbarang na mga paragamit',
+'ipblocklist' => 'Baradong mga paragamit',
 'ipblocklist-legend' => 'Hanapon an sarong binagát na paragamit',
+'blocklist-userblocks' => 'Tagoon an mga bara sa panindog',
+'blocklist-tempblocks' => 'Tagoon an temporaryong mga pambara',
+'blocklist-addressblocks' => 'Tagoon an solong pambara kan IP',
+'blocklist-rangeblocks' => 'Tagoon an mahiwason na mga pambara',
+'blocklist-timestamp' => 'pandukot-oras',
+'blocklist-target' => 'Target',
+'blocklist-expiry' => 'Mapasohon',
+'blocklist-by' => 'Admin sa pagbabara',
+'blocklist-params' => 'Mga parametro nin pagbabara',
+'blocklist-reason' => 'Kausa',
 'ipblocklist-submit' => 'Hanápon',
+'ipblocklist-localblock' => 'Pambara sa lokal',
+'ipblocklist-otherblocks' => 'Ibang {{PLURAL:$1|pambara|mga pambara}}',
 'infiniteblock' => 'daing siring',
-'expiringblock' => 'minapasó $1 $2',
+'expiringblock' => 'mapaso sa $1 sa oras na $2',
 'anononlyblock' => 'anon. sana',
 'noautoblockblock' => 'pigpopondo an enseguidang pagbagat',
 'createaccountblock' => 'binagat an paggibo nin kuenta',
 'emailblock' => 'binagát an e-surat',
+'blocklist-nousertalk' => 'dae makakaliwat kan sadireng pahina nin olayan',
 'ipblocklist-empty' => 'Mayong laog an lista nin mga binagat.',
 'ipblocklist-no-results' => 'Dai nabagat an hinagad na direccion nin IP o ngaran nin paragamit.',
 'blocklink' => 'bagáton',
 'unblocklink' => 'paagihon',
 'change-blocklink' => 'sanglián an pagbagat',
 'contribslink' => 'mga ambág',
+'emaillink' => 'ipadara an e-surat',
 'autoblocker' => 'Enseguidang binagat an saimong direccion nin IP ta kaaaging ginamit ini ni "[[User:$1|$1]]". An rason nin pagbagat ni $1: "$2"',
 'blocklogpage' => 'Usip nin pagbagat',
+'blocklog-showlog' => 'Ining paragamit dati nang pinagbarahan.
+An talaan nin pagbara nakahaya sa ibaba bilang reperensiya:',
 'blocklogentry' => 'binagat na [[$1]] na may oras nin pagpaso na $2 $3',
 'blocklogtext' => 'Ini an historial kan pagbagat asin pagbawi sa pagbagat nin mga paragamit. An mga enseguidang binagat na direccion nin
 IP dai nakalista digdi. Hilingon an [[Special:BlockList|IP lista nin mga binagat]] para sa lista nin mga nakaandar na mga pagpangalad buda mga pagbagat.',
@@ -2218,31 +2526,53 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'importnotext' => 'Mayong laog o mayong teksto',
 'importsuccess' => 'Matriumpo an pagpadara!',
 'importnofile' => "Mayong ipinadarang ''file'' an naikarga.",
+'import-invalid-interwiki' => 'Dae makakapag-importa gikan sa pinagsambit na wiki.',
+'import-error-edit' => 'An pahina "$1" bakong importado nin huli ta ika dae tinutugutan na magliliwat kaini.',
+'import-error-create' => 'An pahina "$1" bakong importado nin huli ta ika dae tinutugutan na magmumukna kaini.',
+'import-error-interwiki' => 'An pahina "$!" bakong importado nin huli ta an ngaran kaini reserbado para sa panluwas na kasugponan (interwiki).',
+'import-error-special' => 'An pahina "$1" bakong importado nin huli ta ini kabali sa espesyal an espasyong-ngaran na dae nagtutugot nin mga pahina.',
+'import-error-invalid' => 'An pahina "$1" bakong importado nin huli ta an ngaran kaini imbalido.',
+'import-options-wrong' => 'Salang {{PLURAL:$2|pagpipilian|mga pagpipilian}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'An pinagtaong ugat na pahina sarong imbalidong titulo.',
+'import-rootpage-nosubpage' => 'Espasyong-ngaran "$1" kan ugat na pahina dae minatugot nin pan-irarom na mga pahina.',
 
 # Import log
 'importlogpage' => 'Usip nin pagpalaog',
+'importlogpagetext' => 'Administratibong mga importadong pahina na igwang historiya nin pagliliwat gikan sa ibang wikis.',
 'import-logentry-upload' => "pigpadara an [[$1]] kan pagkarga nin ''file''",
-'import-logentry-upload-detail' => '$1 mga pagpakarháy',
+'import-logentry-upload-detail' => '$1 {{PLURAL:$1|rebisyon|mga rebisyon}}',
 'import-logentry-interwiki' => 'na-transwiki an $1',
-'import-logentry-interwiki-detail' => '$1 mga pagpakarháy halì sa $2',
+'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|rebisyon|mga rebisyon}} gikan sa $2',
+
+# JavaScriptTest
+'javascripttest' => 'Testing sa JavaScript',
+'javascripttest-disabled' => 'Ining punksyon dae pinagpagana sa wiki na ini.',
+'javascripttest-title' => 'Pinapadalagan na $1 na mga pagtesting',
+'javascripttest-pagetext-noframework' => 'An pahinang ini reserbado para sa pagpapadalagan kan mga pagtesting sa JavaScript.',
+'javascripttest-pagetext-unknownframework' => 'Bakong bistadong modelo para sa pagtesting kan "$1".',
+'javascripttest-pagetext-frameworks' => 'Pakipili tabi nin saro sa minasunod na mga modelo sa pagtesting: $1',
+'javascripttest-pagetext-skins' => 'Magpili nin sarong kublit tanganing padalaganon an mga pagtesting sa:',
+'javascripttest-qunit-intro' => 'Hilngon [$1 dokumentasyon sa pagtesting] sa mediawiki.org.',
+'javascripttest-qunit-heading' => 'MediaWiki JavaScript QUnit kuwarto nin pagtesting',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'An sakóng pahina',
+'tooltip-pt-userpage' => 'An saimong paragamit na pahina',
 'tooltip-pt-anonuserpage' => 'An páhina nin páragamit para sa ip na pighihira mo bilang',
-'tooltip-pt-mytalk' => 'Pahina nin sakóng olay',
+'tooltip-pt-mytalk' => 'An saimong pahina sa olayan',
 'tooltip-pt-anontalk' => 'Mga olay manonongod sa mga hira halî sa ip na ini',
 'tooltip-pt-preferences' => 'Mga kabòtan ko',
 'tooltip-pt-watchlist' => 'Lista nin mga pahina na pigbabantayan an mga pagbabàgo',
-'tooltip-pt-mycontris' => 'Taytáy kan mga kabòtan ko',
+'tooltip-pt-mycontris' => 'Sarong listahan kan saimong mga kontribusyon',
 'tooltip-pt-login' => 'Pigaagda kang maglaog, alagad, bako man ining piriritan.',
 'tooltip-pt-anonlogin' => 'Pig-aagda kang maglaog, alagad, bakô man ining piriritan.',
 'tooltip-pt-logout' => 'Magluwas',
 'tooltip-ca-talk' => 'Olay sa pahina nin laog',
 'tooltip-ca-edit' => 'Pwede mong hirahón ining pahina. Gamiton tabi an patànaw na butones bago an pagtagama.',
-'tooltip-ca-addsection' => 'Magdugang nin komento sa urulay na iní.',
+'tooltip-ca-addsection' => 'Magpoon nin sarong baguhon na seksyon',
 'tooltip-ca-viewsource' => 'Sinagangán ining pahina. Mahihilíng mo an ginikanan.',
 'tooltip-ca-history' => 'Mga nakaaging bersyon kaining pahina',
 'tooltip-ca-protect' => 'Protektahán ining pahina',
+'tooltip-ca-unprotect' => 'Magribay nin proteksyon kaining pahina',
 'tooltip-ca-delete' => 'Paraon an pahinang ini',
 'tooltip-ca-undelete' => 'Bawîon an mga hirá na piggibo sa páhinang ini bâgo ini pigparâ',
 'tooltip-ca-move' => 'Ibalyó an pahinang iní',
@@ -2265,7 +2595,7 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'tooltip-feed-atom' => 'Hungit na atomo sa pahinang iní',
 'tooltip-t-contributions' => 'Hilingón an lista kan mga kontribusyon kaining paragamit',
 'tooltip-t-emailuser' => 'Padarahan nin e-koreo an paragamit na ini',
-'tooltip-t-upload' => 'Ikargá an mga ladawan o media files',
+'tooltip-t-upload' => 'Ikarga an mga sagunson',
 'tooltip-t-specialpages' => 'Lista kan gabos na mga espesyal na pahina',
 'tooltip-t-print' => 'Naipiprint na bersyon kaining pahina',
 'tooltip-t-permalink' => 'Permanenteng takod sa bersyon kaining páhina',
@@ -2274,7 +2604,7 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'tooltip-ca-nstab-media' => "Hilingón an pahina kan ''media''",
 'tooltip-ca-nstab-special' => 'Pahinang espesyal ini, dai mo ini pwedeng hirahón',
 'tooltip-ca-nstab-project' => 'Hilingón an pahina kan proyekto',
-'tooltip-ca-nstab-image' => 'Hilingón an pahina kan retrato',
+'tooltip-ca-nstab-image' => 'Hilnga an pahina kan sagunson',
 'tooltip-ca-nstab-mediawiki' => "Hilingón an ''system message''",
 'tooltip-ca-nstab-template' => 'Hilingón an templato',
 'tooltip-ca-nstab-help' => 'Hilingón an pahina nin tabang',
@@ -2285,8 +2615,14 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'tooltip-diff' => 'Ipahilíng an mga pagbabàgong ginibo mo sa teksto.',
 'tooltip-compareselectedversions' => 'Hilingón an mga kaibhán sa duwáng piníling bersyon kainíng pahina.',
 'tooltip-watch' => 'Idugang ining pahina sa pigbabantayan mo',
+'tooltip-watchlistedit-normal-submit' => 'Haleon an mga titulo',
+'tooltip-watchlistedit-raw-submit' => 'Magdugang kan bantay-listahan',
 'tooltip-recreate' => 'Gibohon giraray an páhina maski na naparâ na ini',
 'tooltip-upload' => 'Pônan an pagkarga',
+'tooltip-rollback' => '"Balikon" an mga pinagbagong pagliliwat sa pahinang ini kan pinakahuring kontributor sa paagi nin sarong klik',
+'tooltip-undo' => '"Gibohang ibalik" an mga pinagbagong pagliliwat asin bukasi an porma nin pagliliwat sa modong patanaw. Ini minatugot na magdadagdag nin rason sa sumaryo.',
+'tooltip-preferences-save' => 'Itagama an mga kagustuhan',
+'tooltip-summary' => 'Magkaag nin sarong halipot na sumaryo',
 
 # Stylesheets
 'common.css' => '/** an CSS na pigbugtak digdi maiaaplikar sa gabos na mga skin */',
@@ -2300,22 +2636,34 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'notacceptable' => "Dai pwedeng magtao nin datos an ''wiki server'' sa ''format'' na pwedeng basahon kan kompyuter mo.",
 
 # Attribution
-'anonymous' => '(Mga)paragamit na anónimo kan {{SITENAME}}',
+'anonymous' => 'Bako-bistadong {{PLURAL:$1|paragamit|mga paragamit}} kan {{SITENAME}}',
 'siteuser' => 'Paragamit kan {{SITENAME}} na si $1',
+'anonuser' => '{{SITENAME}} bako-bistadong paragamit $1',
 'lastmodifiedatby' => 'Ining páhina huring binago sa $2, $1 ni $3.',
 'othercontribs' => 'Binase ini sa trabaho ni $1.',
 'others' => 'iba pa',
-'siteusers' => '(Mga)paragamit kan {{SITENAME}} na si $1',
+'siteusers' => '{{SITENAME}} {{PLURAL:$2|paragamit|mga paragamit}} $1',
+'anonusers' => '{{SITENAME}} bako-bistadong {{PLURAL:$2|paragamit|mga paragamit}} $1',
 'creditspage' => 'Mga krédito nin páhina',
 'nocredits' => 'Mayong talastas kan kredito para sa ining pahina.',
 
 # Spam protection
 'spamprotectiontitle' => "Proteksyon kan ''spam filter''",
-'spamprotectiontext' => "An páhinang gusto mong itagama pigbagat kan ''spam filter''. Kawsa gayod ini kan sarong takod sa sarong panluwas na 'site'.",
+'spamprotectiontext' => 'An teksto na saimong kinakaipong ipagtagama pinagbarahan kan saraan nin spam.
+Ini hurot na pinagkausa nin sarong sugpunan pasiring sa sarong pinagbawal na panluwas na sityo.',
 'spamprotectionmatch' => "An minasunod na teksto iyo an nagbukas kan ''spam filter'' mi: $1",
 'spambot_username' => 'paglimpya nin spam sa MediaWiki',
 'spam_reverting' => 'Mabalik sa huring bersion na mayong takod sa $1',
 'spam_blanking' => 'An gabos na mga pahirá na may takod sa $1, pigblablanko',
+'spam_deleting' => 'An gabos na mga rebisyon na igwang mga kasugpunan sa $1, pinupura',
+
+# Info page
+'pageinfo-title' => 'Impormasyon para sa "$1"',
+'pageinfo-header-edits' => 'Mga pagliliwat',
+'pageinfo-views' => 'Numero kan mga patanaw',
+'pageinfo-watchers' => 'Numero kan mga parabantay',
+'pageinfo-edits' => 'Numero kan mga pagliliwat',
+'pageinfo-authors' => 'Numero kan bantog na mga awtor',
 
 # Skin names
 'skinname-standard' => 'Klasiko',
@@ -2326,7 +2674,7 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 'markaspatrolleddiff' => 'Markahan bilang pigpapatrolya',
 'markaspatrolledtext' => 'Markahan iníng pahina na pigpapatrolya',
 'markedaspatrolled' => 'Minarkahan na pigpapatrolya',
-'markedaspatrolledtext' => 'Minarkahan bilang pigpapatrolya an piníling pagpakarháy.',
+'markedaspatrolledtext' => 'An pinagpiling rebisyon kan [[:$1]] pinagmarkahan bilang patrolyado.',
 'rcpatroldisabled' => 'Pigpopogólan an mga Pagpatrolya kan mga Nakakaági pa sanáng Pagbabàgo',
 'rcpatroldisabledtext' => 'Pigpopogólan ngùna an Pagpatrolya kan mga Nakakaági pa sanáng Pagbabàgo.',
 'markedaspatrollederror' => 'Dai mamamarkahan bilang pigpapatrolya',
@@ -2335,6 +2683,8 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 
 # Patrol log
 'patrol-log-page' => 'Laóg kan Pigpapatrolya',
+'patrol-log-header' => 'Ini an sarong talaan kan patrolyadong mga rebisyon.',
+'log-show-hide-patrol' => '$1 talaan sa patrolya',
 
 # Image deletion
 'deletedrevision' => 'Pigparâ an lumang pagribay na $1.',
@@ -2348,45 +2698,101 @@ $1",
 'filedelete-archive-read-only' => 'An direktoryong archibo na "$1" dai nasusuratan kan webserver.',
 
 # Browsing diffs
-'previousdiff' => '← Nakaaging kaibhán',
-'nextdiff' => 'Kaibhán pa→',
+'previousdiff' => '← Lumaong pagliliwat',
+'nextdiff' => 'Baguhong pagliliwat →',
 
 # Media information
-'mediawarning' => "'''Patanid''': May ''malicious code'' sa ''file'' na ini, kun gigibohon ini pwede ser na maraot an saimong ''system''.",
-'imagemaxsize' => 'Limitaran an mga ladawan sa mga páhinang deskripsyon kan ladawan sa:',
+'mediawarning' => "'''Patanid tabi''': Ining tipo nin sagunson mapuwedeng may laog nin malisyosong koda.
+Sa pagpapa-andar kaini, an saimong sistema mapupuwedeng makompromiso.",
+'imagemaxsize' => "Limit sa sukol kan imahe:<br />''(para sa deskripsyon kan mga pahina nin sagunson)''",
 'thumbsize' => 'Sokol nin retratito:',
-'widthheightpage' => '$1 × $2, $3 mga pahina',
+'widthheightpage' => '$1 x $2, $3 {{PLURAL:$3|pahina|mga pahina}}',
 'file-info' => "sokol kan ''file'': $1, tipo nin MIME: $2",
 'file-info-size' => "$1 × $2 na pixel, sokol kan ''file'': $3, tipo nin MIME: $4",
+'file-info-size-pages' => '$1 × $2 piksel, sukol kan sagunson: $3, MIME na tipo: $4, $5 {{PLURAL:$5|pahina|mga pahina}}',
 'file-nohires' => 'Mayong mas halangkáw na resolusyon.',
 'svg-long-desc' => 'file na SVG, haros $1 × $2 pixels, sokol kan file: $3',
 'show-big-image' => 'Todong resolusyon',
+'show-big-image-preview' => 'Sukol kaining patanaw: $1.',
+'show-big-image-other' => 'Ibang {{PLURAL:$2|resolusyon|mga resoluyon}}: $1.',
+'show-big-image-size' => '$1 × $2 piksel',
+'file-info-gif-looped' => 'pinag-otro',
+'file-info-gif-frames' => '$1 {{PLURAL:$1|prema|mga prema}}',
+'file-info-png-looped' => 'inotrohan',
+'file-info-png-repeat' => 'pinagkawat $1 {{PLURAL:$1|bes|beses}}',
+'file-info-png-frames' => '$1 {{PLURAL:$1|prema|mga prema}}',
 
 # Special:NewFiles
 'newimages' => 'Galeria nin mga bàgong file',
 'imagelisttext' => "Mahihiling sa baba an lista nin mga  '''$1''' {{PLURAL:$1|file|files}} na linain $2.",
+'newimages-summary' => 'Ining espesyal na pahina minaphiling kan huring pinagkargang mga sagunson.',
+'newimages-legend' => 'An saraan',
+'newimages-label' => 'Ngaran nin sagunson (o sarong parte kaini):',
 'showhidebots' => '($1 na bots)',
 'noimages' => 'Mayong mahihilíng.',
 'ilsubmit' => 'Hanápon',
 'bydate' => 'sa petsa',
-'sp-newimages-showfrom' => 'Hilingón an mga retratong nagpopoon sa $1',
+'sp-newimages-showfrom' => 'Ipahiling an baguhon na mga sagunson na nagpopoon gikan sa oras na $2, $1',
+
+# Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'seconds' => '{{PLURAL:$1|$1 segundo|$1 segundos}}',
+'minutes' => '{{PLURAL:$1|$1 minuto|$1 minutos}}',
+'hours' => '{{PLURAL:$1|$1 oras|$1 oras}}',
+'days' => '{{PLURAL:$1|$1 aldaw|$1 mga aldaw}}',
+'ago' => '$1 nakaagi',
 
 # Bad image list
-'bad_image_list' => 'An husay iyó an minasunód:
+'bad_image_list' => 'An pormat iyo ining minasunod:
 
-An mga nakataytáy saná (mga taytáy na nagpopoón sa *) iyó an kaayon.
-An inot na takód sa taytáy kaipohan na saróng takód sa saróng saláng file.
-Anó man na minasunód na takód sa ginikanan na taytáy iyó an kaayon sa mga paglain, i.e. mga pahina na may file na maluwás sa laog kan taytáy.',
+Listahan kan mga aytem sana (mga linyang nagpopoon sa *) an mga pinagkokonsidera.
+An enot na kasugponan sa sarong linya kaipuhan na sarong sugpon pasiringon sa maraot na sagunson.
+An arinman na nagsurunod na mga kasugponan sa kaparehong linya an mga pinagkokonsidera na magin mga palaen, i.e. mga pahina na kun saen an sagunson mapuwedeng mangyari sa laog kan linya.',
 
 # Metadata
 'metadata' => 'Metadatos',
-'metadata-help' => 'Igwang dugang na impormasyon ining file na pwedeng idinugang hali sa digital camera o scanner na piggamit tangarig magibo ini. Kun namodipikar na file hali sa orihinal nyang kamogtakan, an ibang mga detalye pwedeng dai mahiling sa minodipikar na ladawan.',
+'metadata-help' => 'Ining sagunson may laog na kadagdagang impormasyon, puwedeng pinagdagdag gikan sa kamerang digital o tagakopyang ginamit sa pagmukna o pagpasadit kaini.
+Kun an sagunson pinagbago gikan sa orihinal kaining estado, an ibang mga detalye mapuwedeng dae bilog na minapahiling kan pinagbagong sagunson.',
 'metadata-expand' => 'Ipahilíng an gabós na detalye',
 'metadata-collapse' => 'Itagò an gabós na detalye',
+'metadata-fields' => 'Mga kinaagan kan imaheng metadata na nakalista sa mensaheng ipinagdadagdag sa pahina kan patanaw nin imahe kunsoaring na an lamesa kan metadata pinagpasadit.
+An mga iba pagtatagoon sa paagi nin pirmehan.
+* gibo
+* modelo
+* petsaorasorihinal
+* kinaluwasangoras
+* fnumero
+* isobilismarka
+* pokalkalawigan
+* artista
+* copyright
+* imahedeskripsyon
+* gpspabalagbag
+* gpspalaba
+* gpspalangkaw',
 
 # EXIF tags
 'exif-imagewidth' => 'Lakbáng',
 'exif-imagelength' => 'Langkáw',
+'exif-bitspersample' => 'Panaradit kada komponente',
+'exif-compression' => 'Eskima sa kompresyon',
+'exif-photometricinterpretation' => 'Komposisyon sa piksel',
+'exif-orientation' => 'Oryentasyon',
+'exif-samplesperpixel' => 'Numero kan mga komponente',
+'exif-planarconfiguration' => 'Kahusayan kan datos',
+'exif-ycbcrsubsampling' => 'Pan-irarom na sampol na rasyo kan Y sagkod C',
+'exif-ycbcrpositioning' => 'Y asin C na pagpoposisyon',
+'exif-xresolution' => 'Pahigdang resolusyon',
+'exif-yresolution' => 'Patindog na resolusyon',
+'exif-stripoffsets' => 'Lokasyon kan datos nin imahe',
+'exif-rowsperstrip' => 'Numero kan mga row sa kada ginupit',
+'exif-stripbytecounts' => 'Panadakol sa kada kompresadong ginupit',
+'exif-jpeginterchangeformat' => 'Ipagpantay sa JPEG SOI',
+'exif-jpeginterchangeformatlength' => 'Panadakol kan datos sa JPEG',
+'exif-whitepoint' => 'Puti na puntong kromatiko',
+'exif-primarychromaticities' => 'Kromatisidad kan mga primarisidad',
+'exif-ycbcrcoefficients' => 'Kulay kan espasyong transpormasyon sa matrisang mga koepisiyente',
+'exif-referenceblackwhite' => 'Padis kan itom asin puting bilang sa reperensiya',
+'exif-datetime' => 'Pansagunsong pagbabago sa petsa asin oras',
 'exif-imagedescription' => 'Titulo kan retrato',
 'exif-make' => 'Tagagibo nin kamera',
 'exif-model' => 'Modelo nin kamera',
@@ -2401,13 +2807,75 @@ Anó man na minasunód na takód sa ginikanan na taytáy iyó an kaayon sa mga p
 'exif-contrast' => 'Kontraste',
 'exif-imageuniqueid' => 'Unikong ID kan ladawan',
 'exif-gpstrack' => 'Direksyon kan paghirô',
+'exif-gpsimgdirectionref' => 'Reperensiya para sa direksyon kan imahe',
 'exif-gpsimgdirection' => 'Direksyon kan ladáwan',
+'exif-gpsmapdatum' => 'Heodetikong surbey an datos na pinaggamit',
+'exif-gpsdestlatituderef' => 'Reperensiya para sa panlatitud na destinasyon',
+'exif-gpsdestlatitude' => 'Panlatitud na destinasyon',
+'exif-gpsdestlongituderef' => 'Reperensiya para sa panlongitud na destination',
+'exif-gpsdestlongitude' => 'Panlongitud na destinasyon',
+'exif-gpsdestbearingref' => 'Reperensiya para sa pandireksyon na destinasyon',
+'exif-gpsdestbearing' => 'Pandireksyon na destinasyon',
+'exif-gpsdestdistanceref' => 'Reperensiya para sa pandistansiya na destinasyon',
 'exif-gpsdestdistance' => 'Distansya sa destinasyon',
+'exif-gpsprocessingmethod' => 'Ngaran kan GPS na pamprosesong kapaagihan',
+'exif-gpsareainformation' => 'Ngaran nin lugar kan GPS',
+'exif-gpsdatestamp' => 'Petsa kan GPS',
+'exif-gpsdifferential' => 'Diperensiyal na koreksyon kan GPS',
+'exif-jpegfilecomment' => 'Komentaryo sa JPEG na sagunson',
+'exif-keywords' => 'Mga Susing taramon',
+'exif-worldregioncreated' => 'Rehiyon kan kinaban na pinagkuanan kan litrato',
+'exif-countrycreated' => 'Nasyon na pinagkuanan kan litrato',
+'exif-countrycodecreated' => 'Koda para sa nasyon na pinagkuanan kan litrato',
+'exif-provinceorstatecreated' => 'Probinsiya o estado na pinagkuanan kan litratro',
+'exif-citycreated' => 'Siyudad na pinagkuanan kan litrato',
+'exif-sublocationcreated' => 'Sublokasyon kan siyudad na pinagkuanan kan litrato',
+'exif-worldregiondest' => 'Rehiyon kan kinaban pinapahiling',
+'exif-countrydest' => 'Nasyon ipinapahiling',
+'exif-countrycodedest' => 'Koda para sa nasyon na ipinahiling',
+'exif-provinceorstatedest' => 'Probinsiya o estadong ipinapahiling',
+'exif-citydest' => 'Siyudad ipinahiling',
+'exif-sublocationdest' => '
+Sublokas kan siyudad na ipinahiling',
+'exif-objectname' => 'Halipot na titulo',
+'exif-specialinstructions' => 'Espesyal na mga instruksyon',
+'exif-headline' => 'Pamayuhang-linya',
+'exif-credit' => 'Pautang/Tagapagtao',
+'exif-source' => 'Pinaggikanan',
+'exif-editstatus' => 'Editoryal na kamugtakan kan imahe',
+'exif-urgency' => 'Kahidalian',
+'exif-fixtureidentifier' => 'Ngaran kan agwerto',
+'exif-locationdest' => 'Lokasyon pinagbiklad',
+'exif-locationdestcode' => 'Koda kan lokasyon pinagbiklad',
+'exif-objectcycle' => 'Oras kan aldaw na an midya pinagtuyuhan',
+'exif-contact' => 'Impormasyon kan kontak',
+'exif-writer' => 'Parasurat',
+'exif-languagecode' => 'Lengguwahe',
+'exif-iimversion' => 'IIM bersyon',
+'exif-iimcategory' => 'Kategoriya',
+'exif-iimsupplementalcategory' => 'Pansuplementong mga kategoriya',
+'exif-datetimeexpires' => 'Dae gamiton pagkatapos',
+'exif-datetimereleased' => 'Pinaluwas kan',
+'exif-originaltransmissionref' => 'Orihinal na transmisyon sa koda nin lokasyon',
+'exif-identifier' => 'Tagapagpamidbid',
+'exif-lens' => 'Lenteng pinaggamit',
+'exif-serialnumber' => 'Seryal na numero kan kamera',
+'exif-cameraownername' => 'Kagsadire kan kamera',
+'exif-label' => 'Tatak',
+'exif-datetimemetadata' => 'Petsa kan metadata na huring pinagbago',
+'exif-nickname' => 'Impormal na ngaran kan imahe',
 
 'exif-unknowndate' => 'Daí aram an petsa',
 
 'exif-componentsconfiguration-0' => 'mayô man ini',
 
+'exif-exposureprogram-0' => 'Mayong pinagkahulugan',
+'exif-exposureprogram-1' => 'Manwal',
+'exif-exposureprogram-2' => 'Normal na programa',
+'exif-exposureprogram-3' => 'Apertoryong Prayoridad',
+'exif-exposureprogram-4' => 'Panseradong Prayoridad',
+'exif-exposureprogram-5' => 'Pangmuknaon na programa (minapabor sa hararomon na kinasakupan)',
+
 'exif-subjectdistance-value' => '$1 metros',
 
 'exif-meteringmode-0' => 'Dai aram',
@@ -2419,6 +2887,8 @@ Anó man na minasunód na takód sa ginikanan na taytáy iyó an kaayon sa mga p
 
 'exif-focalplaneresolutionunit-2' => 'pulgada',
 
+'exif-sensingmethod-1' => 'Mayong pakahulugan',
+
 'exif-scenetype-1' => 'Direktong naretratong ladawan',
 
 'exif-scenecapturetype-2' => 'Retrato',
index 5f7bd4a..9064910 100644 (file)
@@ -1416,9 +1416,9 @@ $1",
 Прагляд або пошук раней укладзенага [[Special:FileList|робіцца тут]]; апроч таго, усе ўкладанні і сціранні адзначаюцца ў журналах [[Special:Log/upload|укладання]] і [[Special:Log/delete|сцірання]], адпаведна.
 
 Каб уставіць файл ў старонку, ужываецца спасылка, зробленая адным з наступных спосабаў:
-* '''<tt><nowiki>[[</nowiki>image<nowiki>:File.jpg]]</nowiki></tt>''' паказвае файл у поўным памеры
-*  '''<tt><nowiki>[[</nowiki>image<nowiki>:File.png|200px|thumb|left|тлумачальны тэкст]]</nowiki></tt>''' паказвае файл, маштабаваны да шырыні 200 кропак, у рамцы, змешчанай злева, і з 'тлумачальным тэкстам' у якасці подпісу
-* '''<tt><nowiki>[[</nowiki>media<nowiki>:File.ogg]]</nowiki></tt>''' не паказвае самога файла, а толькі спасылку на яго",
+* '''<code><nowiki>[[</nowiki>image<nowiki>:File.jpg]]</nowiki></code>''' паказвае файл у поўным памеры
+*  '''<code><nowiki>[[</nowiki>image<nowiki>:File.png|200px|thumb|left|тлумачальны тэкст]]</nowiki></code>''' паказвае файл, маштабаваны да шырыні 200 кропак, у рамцы, змешчанай злева, і з 'тлумачальным тэкстам' у якасці подпісу
+* '''<code><nowiki>[[</nowiki>media<nowiki>:File.ogg]]</nowiki></code>''' не паказвае самога файла, а толькі спасылку на яго",
 'upload-permitted' => 'Дазволеныя тыпы файлаў: $1.',
 'upload-preferred' => 'Больш прыймальныя тыпы файлаў: $1.',
 'upload-prohibited' => 'Забароненыя тыпы файлаў: $1.',
@@ -1460,19 +1460,19 @@ $1",
 'largefileserver' => "Гэты файл большага аб'ёму, чым дазваляе канфігурацыя сервера.",
 'emptyfile' => 'Здаецца, што файл, укладзены вамі, пусты. Магчыма, здарылася памылка ў назве файла? Праверце, ці вы сапраўды хацелі ўкласці менавіта гэты файл.',
 'windows-nonascii-filename' => 'Дадзеная вікі не падтрымлівае імёны файлаў са спецыяльнымі знакамі.',
-'fileexists' => "Ужо існуе файл з такою назвай, праверце '''<tt>[[:$1]]</tt>''', калі не ўпэўнены, што жадаеце мяняць яго змесціва.
-[[$1|thumb]]",
-'filepageexists' => "Для файла з такой назвай існуе старонка апісання '''<tt>[[:$1]]</tt>''', але сам файл зараз не існуе.
+'fileexists' => 'Ужо існуе файл з такою назвай, праверце <strong>[[:$1]]</strong>, калі не ўпэўнены, што жадаеце мяняць яго змесціва.
+[[$1|thumb]]',
+'filepageexists' => "Для файла з такой назвай існуе старонка апісання <strong>[[:$1]]</strong>, але сам файл зараз не існуе.
 Таму вашае апісанне не з'явіцца на адпаведнай старонцы, пакуль вы самастойна яе не паправіце.
 [[$1|thumb]]",
-'fileexists-extension' => "Ужо ёсць файл з падобнай назвай: [[$2|thumb]]
-* Назва ўкладанага файла: '''<tt>[[:$1]]</tt>'''
-* Назва наяўнага файла: '''<tt>[[:$2]]</tt>'''
-Выберыце іншую назву.",
+'fileexists-extension' => 'Ужо ёсць файл з падобнай назвай: [[$2|thumb]]
+* Назва ўкладанага файла: <strong>[[:$1]]</strong>
+* Назва наяўнага файла: <strong>[[:$2]]</strong>
+Выберыце іншую назву.',
 'fileexists-thumbnail-yes' => "Файл падобны на выяву скарочанага памеру ''(драбніца)''. [[$1|thumb]]
-Праверце файл '''<tt>[[:$1]]</tt>'''.
+Праверце файл <strong>[[:$1]]</strong>.
 Калі правераны файл мае змест і памеры, аднолькавыя з гэтым, то дадатковае ўкладанне драбніцы непатрэбнае.",
-'file-thumbnail-no' => "Назва файла пачынаецца з '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Назва файла пачынаецца з <strong>$1</strong>.
 Так можа называцца выява зменшанага памеру ''(драбніца)''.
 Калі гэтая выява сапраўды запісаная ў найлепшым разрозненні, якое ёсць, то ўкладайце яе, а іначай лепей памяняць назву файла.",
 'fileexists-forbidden' => 'Файл з такой назвай ужо ёсць, і нельга запісаць паўзверх яго. Калі вы жадаеце абавязкова ўкласці свой файл, то выберыце новую назву. [[File:$1|thumb|center|$1]]',
@@ -1697,7 +1697,7 @@ $1',
 
 # MIME search
 'mimesearch' => 'Пошук паводле зместу файла',
-'mimesearch-summary' => 'Старонка дазваляе прасейваць файлы ў залежнасці ад іх тыпаў MIME. Фармат уводу: contenttype/subtype, напр., <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Старонка дазваляе прасейваць файлы ў залежнасці ад іх тыпаў MIME. Фармат уводу: contenttype/subtype, напр., <code>image/jpeg</code>.',
 'mimetype' => 'Тып MIME:',
 'download' => 'узяць сабе',
 
@@ -1890,7 +1890,7 @@ $1',
 'linksearch-ok' => 'Знайсці',
 'linksearch-text' => 'Можна выкарыстоўваць падстаноўныя сімвалы, напрыклад, <code>*.wikipedia.org</code>.
 Неабходзен прынамсі дамен верхняга ўзроўня, напрыклад <code>*.org</code><br />
-Пратаколы, якія падтрымліваюцца: <tt>$1</tt> (не дадаваць любы з іх у вашым пошуку)',
+Пратаколы, якія падтрымліваюцца: <code>$1</code> (не дадаваць любы з іх у вашым пошуку)',
 'linksearch-line' => '$1, на які спасылаецца $2',
 'linksearch-error' => 'Узоры можна ставіць толькі ў пачатак адрасу.',
 
@@ -2717,15 +2717,10 @@ $1',
 # Info page
 'pageinfo-title' => 'Інфармацыя для "$1"',
 'pageinfo-header-edits' => 'Змены',
-'pageinfo-header-watchlist' => 'Спіс назіранага',
-'pageinfo-header-views' => 'Прагляды',
-'pageinfo-subjectpage' => 'Старонка',
-'pageinfo-talkpage' => 'Старонка размоў',
+'pageinfo-views' => 'Колькасць праглядаў',
 'pageinfo-watchers' => 'Колькасць назіральнікаў',
 'pageinfo-edits' => 'Колькасць правак:',
 'pageinfo-authors' => 'Колькасць розных аўтараў',
-'pageinfo-views' => 'Колькасць праглядаў',
-'pageinfo-viewsperedit' => 'Колькасць паказаў на 1 праўку',
 
 # Skin names
 'skinname-standard' => 'Класіка',
index 0aea522..35efe99 100644 (file)
@@ -577,9 +577,9 @@ $1',
 'dberrortext' => 'Выяўленая памылка сынтаксісу ў звароце да базы зьвестак.
 Магчыма, гэта памылка праграмнага забесьпячэньня.
 Апошні запыт да базы:
-<blockquote><tt>$1</tt></blockquote>
-адбыўся з функцыі «<tt>$2</tt>».
-База зьвестак вярнула памылку «<tt>$3: $4</tt>».',
+<blockquote><code>$1</code></blockquote>
+адбыўся з функцыі «<code>$2</code>».
+База зьвестак вярнула памылку «<samp>$3: $4</samp>».',
 'dberrortextcl' => 'Выяўлена памылка сынтаксісу ў звароце да базы зьвестак.
 Апошні запыт да базы:
 «$1»
@@ -926,7 +926,6 @@ $2
 * '''Firefox / Safari:''' Трымайце ''Shift'' і націсьніце ''Reload'', ці націсьніце ''Ctrl-F5'' ці ''Ctrl-R'' (''⌘-R'' на Mac)
 * '''Google Chrome:''' Націсьніце ''Ctrl-Shift-R'' (''⌘-Shift-R'' на Mac)
 * '''Internet Explorer:''' Трымайце ''Ctrl'' і націсьніце ''Refresh'', ці націсьніце ''Ctrl-F5''
-* '''Konqueror:''' Націсьніце кнопку ''Reload'' ці ''F5''
 * '''Opera:''' Ачысьціце кэш праз ''Tools → Preferences''",
 'usercssyoucanpreview' => "'''Падказка:''' выкарыстоўвайце кнопку «{{int:showpreview}}», каб паспрабаваць новы код CSS перад тым як яго запісаць.",
 'userjsyoucanpreview' => "'''Падказка:''' выкарыстоўвайце кнопку «{{int:showpreview}}», каб паспрабаваць новы код JavaScript перад тым, як яго запісаць.",
@@ -1647,9 +1646,9 @@ $1",
 Каб паглядзець ці адшукаць раней загружаныя файлы, глядзіце [[Special:FileList|сьпіс загружаных файлаў]], загрузкі таксама запісваюцца ў [[Special:Log/upload|журнал загрузак]], а выдаленьні — у [[Special:Log/delete|журнал выдаленьняў]].
 
 Каб улучыць файл у старонку, ужывайце адзін з наступных варыянтаў:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' для поўнай вэрсіі файла
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|Подпіс да выявы]]</nowiki></tt>''' для выявы шырынёй 200 піксэляў у рамцы і тэкстам «Подпіс да выявы» ў якасьці подпісу
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' для простай спасылкі на файл безь яго адлюстраваньня.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' для поўнай вэрсіі файла
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|Подпіс да выявы]]</nowiki></code>''' для выявы шырынёй 200 піксэляў у рамцы і тэкстам «Подпіс да выявы» ў якасьці подпісу
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' для простай спасылкі на файл безь яго адлюстраваньня.",
 'upload-permitted' => 'Дазволеныя тыпы файлаў: $1.',
 'upload-preferred' => 'Пажаданыя тыпы файлаў: $1.',
 'upload-prohibited' => 'Забароненыя тыпы файлаў: $1.',
@@ -1694,21 +1693,21 @@ $1",
 'emptyfile' => 'Загружаны файл, здаецца, пусты. Магчыма гэты адбылося з-за памылкі ў назьве файла.
 Удакладніце, ці Вы сапраўды жадаеце загрузіць гэты файл.',
 'windows-nonascii-filename' => '{{SITENAME}} не падтрымлівае назвы файлаў з спэцыяльнымі сымбалямі.',
-'fileexists' => "Файл з такой назвай ужо існуе.
-Калі ласка, праверце '''<tt>[[:$1]]</tt>''', калі Вы ня ўпэўненыя, што жадаеце яго замяніць.
-[[$1|thumb]]",
-'filepageexists' => "Старонка апісаньня для гэтага файла ўжо існуе як '''<tt>[[:$1]]</tt>''', але файла з такой назвай няма.
+'fileexists' => 'Файл з такой назвай ужо існуе.
+Калі ласка, праверце <strong>[[:$1]]</strong>, калі Вы ня ўпэўненыя, што жадаеце яго замяніць.
+[[$1|thumb]]',
+'filepageexists' => 'Старонка апісаньня для гэтага файла ўжо існуе як <strong>[[:$1]]</strong>, але файла з такой назвай няма.
 Апісаньне якое Вы дадалі ня зьявіцца на старонцы апісаньня.
 Каб яно там зьявілася, Вам трэба рэдагаваць яе самастойна.
-[[$1|thumb]]",
-'fileexists-extension' => "Файл з падобнай назвай ужо існуе: [[$2|thumb]]
-* Назва загружанага файла: '''<tt>[[:$1]]</tt>'''
-* Назва існуючага файла: '''<tt>[[:$2]]</tt>'''
-Калі ласка, выбярыце іншую назву.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Файл з падобнай назвай ужо існуе: [[$2|thumb]]
+* Назва загружанага файла: <strong>[[:$1]]</strong>
+* Назва існуючага файла: <strong>[[:$2]]</strong>
+Калі ласка, выбярыце іншую назву.',
 'fileexists-thumbnail-yes' => "Верагодна файл зьяўляецца паменшанай копіяй ''(мініятурай)''. [[$1|thumb]]
-Калі ласка, праверце файл '''<tt>[[:$1]]</tt>'''.
+Калі ласка, праверце файл <strong>[[:$1]]</strong>.
 Калі правераны файл зьяўляецца той жа выявай, то загрузка мініятуры ня мае сэнсу.",
-'file-thumbnail-no' => "Назва файла пачынаецца з '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Назва файла пачынаецца з <strong>$1</strong>.
 Верагодна гэта паменшаная копія выявы ''(мініятура)''.
 Калі Вы маеце гэтую выяву ў поўным памеры, загрузіце яе, альбо зьмяніце назву файла.",
 'fileexists-forbidden' => 'Файл з такой назвай ужо існуе і ня можа быць перапісаны.
@@ -1925,6 +1924,7 @@ $1',
 'shared-repo-from' => '$1',
 'shared-repo' => 'агульнага сховішча',
 'shared-repo-name-wikimediacommons' => 'Вікісховішча',
+'upload-disallowed-here' => 'На жаль Вы ня можаце перазапісаць гэтую выяву.',
 
 # File reversion
 'filerevert' => 'Вярнуць $1',
@@ -1959,7 +1959,7 @@ $1',
 # MIME search
 'mimesearch' => 'Пошук па MIME',
 'mimesearch-summary' => 'Гэта старонка дазваляе адбор файлаў па іх MIME-тыпе.
-Фармат уводу: тып_зьместу/падтып, напрыклад, <tt>image/jpeg</tt>.',
+Фармат уводу: тып_зьместу/падтып, напрыклад, <code>image/jpeg</code>.',
 'mimetype' => 'Тып MIME:',
 'download' => 'загрузіць',
 
@@ -2032,6 +2032,7 @@ $1',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|байт|байты|байтаў}}',
 'ncategories' => '$1 {{PLURAL:$1|катэгорыя|катэгорыі|катэгорыяў}}',
+'ninterwikis' => '$1 {{PLURAL:$1|інтэрвікі|інтэрвікі}}',
 'nlinks' => '$1 {{PLURAL:$1|спасылка|спасылкі|спасылак}}',
 'nmembers' => '$1 {{PLURAL:$1|элемэнт|элемэнты|элемэнтаў}}',
 'nrevisions' => '$1 {{PLURAL:$1|вэрсія|вэрсіі|вэрсіяў}}',
@@ -2060,6 +2061,7 @@ $1',
 'mostlinkedtemplates' => 'Шаблёны, якія найчасьцей выкарыстоўваюцца',
 'mostcategories' => 'Старонкі з найбольшай колькасьцю катэгорыяў',
 'mostimages' => 'Файлы, на якія найчасьцей спасылаюцца',
+'mostinterwikis' => 'Старонкі з найбольшай колькасьцю інтэрвікі',
 'mostrevisions' => 'Старонкі з найбольшай колькасьцю рэдагаваньняў',
 'prefixindex' => 'Усе старонкі з пачаткам назваў',
 'prefixindex-namespace' => 'Усе старонкі з прэфіксам (прастора назваў $1)',
@@ -2160,7 +2162,7 @@ $1',
 'linksearch-ok' => 'Шукаць',
 'linksearch-text' => 'Можна ўжываць сымбалі падстаноўкі, напрыклад, «*.wikipedia.org».<br />
 Неабходны дамэн першага ўзроўню, напрыклад, «*.org».<br />
-Пратаколы, якія падтрымліваюцца: <tt>$1</tt> (не дадавайце іх у Ваш пошук).',
+Пратаколы, якія падтрымліваюцца: <code>$1</code> (не дадавайце іх у Ваш пошук).',
 'linksearch-line' => 'Спасылка на $1 з $2',
 'linksearch-error' => 'Сымбалі падстаноўкі могуць ужывацца толькі ў пачатку адрасоў.',
 
@@ -2206,6 +2208,8 @@ $1',
 'mailnologin' => 'Няма адрасу атрымальніка',
 'mailnologintext' => 'Вам неабходна [[Special:UserLogin|ўвайсьці ў сыстэму]] і мець пацьверджаны адрас электроннай пошты ў Вашых [[Special:Preferences|наладах]], каб дасылаць лісты іншым удзельнікам.',
 'emailuser' => 'Даслаць ліст',
+'emailuser-title-target' => 'Адправіць гэта па электроннай пошце  {{GENDER:$1|гэтаму ўдзельніку|гэтай удзельніцы}}',
+'emailuser-title-notarget' => 'Даслаць ліст ўдзельніку ці ўдзельніцы па электроннай пошце',
 'emailpage' => 'Даслаць ліст ўдзельніку ці ўдзельніцы па электроннай пошце',
 'emailpagetext' => 'Вы можаце выкарыстоўваць форму ніжэй, каб даслаць гэтаму ўдзельніку ліст па электроннай пошце.
 Адрас электроннай пошты, які Вы пазначалі ў [[Special:Preferences|сваіх наладах]], будзе пазначаны ў полі ліста «Ад», і ўдзельнік зможа даслаць на гэты адрас адказ.',
@@ -2848,6 +2852,7 @@ $1',
 'import-interwiki-templates' => 'Уключыць усе шаблёны',
 'import-interwiki-submit' => 'Імпартаваць',
 'import-interwiki-namespace' => 'Мэтавая прастора назваў:',
+'import-interwiki-rootpage' => 'Мэтавая карнявая старонка (неабавязкова):',
 'import-upload-filename' => 'Назва файла:',
 'import-comment' => 'Камэнтар:',
 'importtext' => 'Калі ласка, экспартуйце файл з крынічнай вікі з дапамогай [[Special:Export|прылады экспарту]].
@@ -2883,6 +2888,9 @@ $1',
 'import-error-interwiki' => 'Старонка «$1» не была імпартаваная, таму што гэтая назва зарэзэрваваная для інтэрвікі.',
 'import-error-special' => 'Старонка «$1» не была імпартаваная, таму што яна належыць да спэцыяльнай прасторы назваў, старонкі ў якой не дазволеныя.',
 'import-error-invalid' => 'Старонка «$1» не была імпартаваная з-за няслушнасьці назвы.',
+'import-options-wrong' => '{{PLURAL:$2|Няслушная налада|Няслушныя налады}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Пазначаная назва карнявой старонкі няслушная.',
+'import-rootpage-nosubpage' => 'Падстаронкі ў прасторы назваў «$1» карнявой старонкі не дазволеныя.',
 
 # Import log
 'importlogpage' => 'Журнал імпартаваньняў',
@@ -3001,16 +3009,13 @@ $1',
 
 # Info page
 'pageinfo-title' => 'Інфармацыя пра «$1»',
+'pageinfo-header-basic' => 'Асноўныя зьвесткі',
 'pageinfo-header-edits' => 'Рэдагаваньні',
-'pageinfo-header-watchlist' => 'Сьпіс назіраньня',
-'pageinfo-header-views' => 'Прагляды',
-'pageinfo-subjectpage' => 'Старонка',
-'pageinfo-talkpage' => 'Старонка абмеркаваньня',
+'pageinfo-header-restrictions' => 'Абарона старонкі',
+'pageinfo-views' => 'Колькасьць праглядаў',
 'pageinfo-watchers' => 'Колькасьць назіральнікаў і назіральніц',
 'pageinfo-edits' => 'Колькасьць рэдагаваньняў',
 'pageinfo-authors' => 'Колькасьць аўтараў',
-'pageinfo-views' => 'Колькасьць праглядаў',
-'pageinfo-viewsperedit' => 'Колькасьць праглядаў на рэдагаваньне',
 
 # Skin names
 'skinname-standard' => 'Клясычнае',
index 63ff8d4..123ba4c 100644 (file)
@@ -254,13 +254,13 @@ $messages = array(
 'tog-rememberpassword' => 'Запомяне на паролата ми в този браузър (за не повече от $1 {{PLURAL:$1|ден|дни}})',
 'tog-watchcreations' => 'Добавяне на създадените от мен страници и качените от мен файлове към списъка ми за наблюдение',
 'tog-watchdefault' => 'Добавяне на страниците, които редактирам, в списъка ми за наблюдение',
-'tog-watchmoves' => 'Добавяне на преместените от мен страници към списъка ми за наблюдение',
-'tog-watchdeletion' => 'Добавяне на изтритите от мен страници към списъка ми за наблюдение',
+'tog-watchmoves' => 'Ð\94обавÑ\8fне Ð½Ð° Ð¿Ñ\80емеÑ\81Ñ\82ениÑ\82е Ð¾Ñ\82 Ð¼ÐµÐ½ Ñ\81Ñ\82Ñ\80аниÑ\86и Ð¸ Ñ\84айлове ÐºÑ\8aм Ñ\81пиÑ\81Ñ\8aка Ð¼Ð¸ Ð·Ð° Ð½Ð°Ð±Ð»Ñ\8eдение',
+'tog-watchdeletion' => 'Ð\94обавÑ\8fне Ð½Ð° Ð¸Ð·Ñ\82Ñ\80иÑ\82иÑ\82е Ð¾Ñ\82 Ð¼ÐµÐ½ Ñ\81Ñ\82Ñ\80аниÑ\86и Ð¸ Ñ\84айлове ÐºÑ\8aм Ñ\81пиÑ\81Ñ\8aка Ð¼Ð¸ Ð·Ð° Ð½Ð°Ð±Ð»Ñ\8eдение',
 'tog-minordefault' => 'Отбелязване на всички промени като малки по подразбиране',
 'tog-previewontop' => 'Показване на предварителния преглед преди текстовата кутия',
 'tog-previewonfirst' => 'Показване на предварителен преглед при първа редакция',
 'tog-nocache' => 'Спиране на складирането на страниците от браузъра',
-'tog-enotifwatchlistpages' => 'Уведомяване по е-пощата при промяна на страница от списъка ми за наблюдение',
+'tog-enotifwatchlistpages' => 'УведомÑ\8fване Ð¿Ð¾ Ðµ-поÑ\89аÑ\82а Ð¿Ñ\80и Ð¿Ñ\80омÑ\8fна Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¸Ð»Ð¸ Ñ\84айл Ð¾Ñ\82 Ñ\81пиÑ\81Ñ\8aка Ð¼Ð¸ Ð·Ð° Ð½Ð°Ð±Ð»Ñ\8eдение',
 'tog-enotifusertalkpages' => 'Уведомяване по е-пощата при промяна на беседата ми',
 'tog-enotifminoredits' => 'Уведомяване по е-пощата даже при малки промени на страници или файлове',
 'tog-enotifrevealaddr' => 'Показване на електронния ми адрес в известяващите писма',
@@ -503,6 +503,7 @@ $1',
 'youhavenewmessages' => 'Имате $1 ($2).',
 'newmessageslink' => 'нови съобщения',
 'newmessagesdifflink' => 'разлика с предишната версия',
+'newmessageslinkplural' => '{{PLURAL:$1|ново съобщение|нови съобщения}}',
 'youhavenewmessagesmulti' => 'Имате нови съобщения в $1',
 'editsection' => 'редактиране',
 'editold' => 'редактиране',
@@ -646,6 +647,7 @@ $2',
 'remembermypassword' => 'Запомняне на паролата на този компютър (най-много за $1 {{PLURAL:$1|ден|дни}})',
 'securelogin-stick-https' => 'Запазване на връзката през HTTPS след влизане',
 'yourdomainname' => 'Домейн:',
+'password-change-forbidden' => 'Не можете да променяте пароли в това уики.',
 'externaldberror' => 'Или е станала грешка в базата от данни при външното удостоверяване, или не ви е позволено да обновявате външната си сметка.',
 'login' => 'Влизане',
 'nav-login-createaccount' => 'Регистриране или влизане',
@@ -713,6 +715,7 @@ $2',
 'emailconfirmlink' => 'Потвърждаване на адреса за електронна поща',
 'invalidemailaddress' => 'Въведеният адрес не може да бъде приет, тъй като не съответства на формата на адрес за електронна поща. Въведете коректен адрес или оставете полето празно.',
 'cannotchangeemail' => 'Адресите за електронна поща на сметките не могат да бъдат променяни в това уики.',
+'emaildisabled' => 'Този сайт не може да изпраща е-поща.',
 'accountcreated' => 'Потребителската сметка беше създадена',
 'accountcreatedtext' => 'Потребителската сметка за $1 беше създадена.',
 'createaccount-title' => 'Създаване на сметка за {{SITENAME}}',
@@ -890,11 +893,10 @@ $2
 'userpage-userdoesnotexist-view' => 'Не е регистрирана потребителска сметка на име „$1“.',
 'blocked-notice-logextract' => 'В момента този потребител е блокиран.
 По-долу за справка е показан последният запис от Дневника на блокиранията:',
-'clearyourcache' => "'''Забележка:''' За да се видят промените след съхранението е необходимо кешът на браузъра да бъде изтрит:
-* '''Firefox / Safari:''' Ð½Ð°Ñ\82иÑ\81неÑ\82е Ð±Ñ\83Ñ\82она ''Shift'' Ð¸ Ñ\89Ñ\80акнеÑ\82е Ð²Ñ\8aÑ\80Ñ\85Ñ\83 ''Ð\9fÑ\80езаÑ\80еждане'' (''Reload''), Ð¸Ð»Ð¸ Ð¸Ð·Ð±ÐµÑ\80еÑ\82е клавишната комбинация ''Ctrl-Shift-R'' (''⌘-Shift-R'' за Mac);
+'clearyourcache' => "'''Забележка:''' За да се видят промените, необходимо е след съхраняване на страницата, кешът на браузъра да бъде изтрит.
+* '''Firefox / Safari:''' Ð\97адÑ\8aÑ\80жа Ñ\81е ÐºÐ»Ð°Ð²Ð¸Ñ\88 ''Shift'' Ð¸ Ñ\81е Ñ\89Ñ\80аква Ð²Ñ\8aÑ\80Ñ\85Ñ\83 ''Ð\9fÑ\80езаÑ\80еждане'' (''Reload'') Ð¸Ð»Ð¸ Ñ\87Ñ\80ез клавишната комбинация ''Ctrl-Shift-R'' (''⌘-Shift-R'' за Mac);
 * '''Google Chrome:''' клавишна комбинация ''Ctrl-Shift-R'' (''⌘-Shift-R'' за Mac)
-* '''Internet Explorer:''' натиснете ''Ctrl'' и щракнете върху ''Refresh'', или клавишната комбинация ''CTRL-F5'';
-* '''Konqueror:''' щракнете върху ''Презареждане'' или натиснете ''F5'';
+* '''Internet Explorer:''' Задържа се клавиш ''Ctrl'' и се щраква върху ''Refresh'' или чрез клавишната комбинация ''CTRL-F5'';
 * '''Opera:''' кешът се изчиства през менюто ''Tools → Preferences''.",
 'usercssyoucanpreview' => "'''Съвет:''' Използвайте бутона „{{int:showpreview}}“, за да изпробвате новия код на CSS преди съхранението.",
 'userjsyoucanpreview' => "'''Съвет:''' Използвайте бутона „{{int:showpreview}}“, за да изпробвате новия код на Джаваскрипт преди съхранението.",
@@ -1597,9 +1599,9 @@ $1",
 За преглеждане и търсене на вече качените файлове, може да се използва [[Special:FileList|списъка с качени файлове]]. Качванията се записват в [[Special:Log/upload|дневника на качванията]], а изтриванията &mdash; в [[Special:Log/delete|дневник на изтриванията]].
 
 За включване на файл в страница, може да се използва една от следния синтаксис: 
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' за използване пълната версия на файла
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' за определяне на широчина от 200 пиксела, ляво позициониране и 'alt text' за описание
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' за директна препратка, без файлът да бъде показван",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' за използване пълната версия на файла
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' за определяне на широчина от 200 пиксела, ляво позициониране и 'alt text' за описание
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' за директна препратка, без файлът да бъде показван",
 'upload-permitted' => 'Разрешени файлови формати: $1.',
 'upload-preferred' => 'Предпочитани файлови формати: $1.',
 'upload-prohibited' => 'Непозволени файлови формати: $1.',
@@ -1640,18 +1642,18 @@ $1",
 'largefileserver' => 'Файлът е по-голям от допустимия от сървъра размер.',
 'emptyfile' => 'Каченият от вас файл е празен. Това може да е предизвикано от грешка в името на файла. Уверете се дали наистина желаете да го качите.',
 'windows-nonascii-filename' => 'Уикито не поддържа имена на файлове със специални знаци.',
-'fileexists' => "Вече съществува файл с това име! Прегледайте '''<tt>[[:$1]]</tt>''', ако не сте сигурни, че желаете да го промените.
-[[$1|thumb]]",
-'filepageexists' => "Описателната страница за този файл вече е създадена на '''<tt>[[:$1]]</tt>''', въпреки че файл с това име в момента не съществува. Въведеното от вас резюме няма да се появи на описателната страница. За целта, страницата трябва да бъде редактирана ръчно.
-[[$1|thumb]]",
-'fileexists-extension' => "Съществува файл със сходно име: [[$2|thumb]]
-* Име на файла за качване: '''<tt>[[:$1]]</tt>'''
-* Име на съществуващия файл: '''<tt>[[:$2]]</tt>'''
-Моля, изберете друго име на файла за качване.",
+'fileexists' => 'Вече съществува файл с това име! Прегледайте <strong>[[:$1]]</strong>, ако не сте сигурни, че желаете да го промените.
+[[$1|thumb]]',
+'filepageexists' => 'Описателната страница за този файл вече е създадена на <strong>[[:$1]]</strong>, въпреки че файл с това име в момента не съществува. Въведеното от вас резюме няма да се появи на описателната страница. За целта, страницата трябва да бъде редактирана ръчно.
+[[$1|thumb]]',
+'fileexists-extension' => 'Съществува файл със сходно име: [[$2|thumb]]
+* Име на файла за качване: <strong>[[:$1]]</strong>
+* Име на съществуващия файл: <strong>[[:$2]]</strong>
+Моля, изберете друго име на файла за качване.',
 'fileexists-thumbnail-yes' => "Изглежда, че файлът е картинка с намален размер ''(миникартинка)''. [[$1|thumb]]
-Проверете файла '''<tt>[[:$1]]</tt>'''.
+Проверете файла <strong>[[:$1]]</strong>.
 Ако съществуващият файл представлява оригиналната версия на картинката, няма нужда да се качва неин умален вариант.",
-'file-thumbnail-no' => "Файловото име започва с '''<tt>$1</tt>'''. Изглежда, че е картинка с намален размер ''(миникартинка)''.
+'file-thumbnail-no' => "Файловото име започва с <strong>$1</strong>. Изглежда, че е картинка с намален размер ''(миникартинка)''.
 Ако разполагате с версия в пълна разделителна способност, качете нея. В противен случай сменете името на този файл.",
 'fileexists-forbidden' => 'Вече съществува файл с това име, който не може да бъде презаписан!
 Ако желаете да качите вашия файл, върнете се и го качете с ново име. [[File:$1|thumb|center|$1]]',
@@ -1853,7 +1855,7 @@ $1',
 
 # MIME search
 'mimesearch' => 'MIME-търсене',
-'mimesearch-summary' => 'На тази страница можете да филтрирате файловете по техния MIME-тип. Заявката трябва да се състои от медиен тип и подтип, разделени с наклонена черта (слеш), напр. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'На тази страница можете да филтрирате файловете по техния MIME-тип. Заявката трябва да се състои от медиен тип и подтип, разделени с наклонена черта (слеш), напр. <code>image/jpeg</code>.',
 'mimetype' => 'MIME-тип:',
 'download' => 'сваляне',
 
@@ -1924,6 +1926,7 @@ $1',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|байт|байта}}',
 'ncategories' => '$1 {{PLURAL:$1|категория|категории}}',
+'ninterwikis' => '$1 {{PLURAL:$1|междууики|междууикита}}',
 'nlinks' => '$1 {{PLURAL:$1|препратка|препратки}}',
 'nmembers' => '$1 {{PLURAL:$1|член|члена}}',
 'nrevisions' => '$1 {{PLURAL:$1|версия|версии}}',
@@ -1950,6 +1953,7 @@ $1',
 'mostlinkedtemplates' => 'Най-препращани шаблони',
 'mostcategories' => 'Страници с най-много категории',
 'mostimages' => 'Най-препращани картинки',
+'mostinterwikis' => 'Страници с най-много междууикита',
 'mostrevisions' => 'Страници с най-много версии',
 'prefixindex' => 'Всички страници с представка',
 'prefixindex-namespace' => 'Всички страници с представка (именно пространство $1)',
@@ -2041,7 +2045,7 @@ $1',
 'linksearch-pat' => 'Търсене по:',
 'linksearch-ns' => 'Именно пространство:',
 'linksearch-ok' => 'Търсене',
-'linksearch-text' => 'Възможна е употребата на заместващи знаци като: „*.wikipedia.org“.<br />Поддържани протоколи: <tt>$1</tt>',
+'linksearch-text' => 'Възможна е употребата на заместващи знаци като: „*.wikipedia.org“.<br />Поддържани протоколи: <code>$1</code>',
 'linksearch-line' => '$1 с препратка от $2',
 'linksearch-error' => 'Заместващите знаци могат да стоят само в началото на името на хоста.',
 
@@ -2498,7 +2502,7 @@ $1',
 За справка по-долу е дадено извлечение от дневника на прикриванията:',
 'blocklogentry' => 'блокира [[$1]] със срок на изтичане $2 $3',
 'reblock-logentry' => 'промени параметрите на блокирането на [[$1]] със срок на изтричане $2 $3',
-'blocklogtext' => 'Тази страница съдържа дневник на блокиранията и отблокиранията, извършени от този потребител.
+'blocklogtext' => 'Тази страница съдържа дневник на блокиранията и отблокиранията.
 Автоматично блокираните IP-адреси не са показани.
 Вижте [[Special:BlockList|списъка на блокираните IP-адреси]] за текущото състояние на блокиранията.',
 'unblocklogentry' => 'отблокира $1',
@@ -2653,6 +2657,7 @@ $1',
 'exportcuronly' => 'Включване само на текущата версия, а не на цялата история',
 'exportnohistory' => "----
 '''Важно:''' Изнасянето на пълната история на страниците е забранено, защото много забавя уикито.",
+'exportlistauthors' => 'Добавяне на пълен списък на редакторите за всяка страница',
 'export-submit' => 'Изнасяне',
 'export-addcattext' => 'Добавяне на страници от категория:',
 'export-addcat' => 'Добавяне',
@@ -2733,6 +2738,7 @@ $1',
 'import-error-interwiki' => 'Страницата „$1“ не беше внесена, тъй като името ѝ е запазено за външно свързване (междууики).',
 'import-error-special' => 'Страницата „$1“ не беше внесена, тъй като принадлежи към специално именно пространство, което не позволява страници.',
 'import-error-invalid' => 'Страницата „$1“ не беше внесена, тъй като името ѝ е невалидно.',
+'import-rootpage-nosubpage' => 'Именното пространство „$1“ на основната страница не позволява създаването на подстраници.',
 
 # Import log
 'importlogpage' => 'Дневник на внасянията',
@@ -2849,16 +2855,16 @@ $1',
 
 # Info page
 'pageinfo-title' => 'Информация за "$1"',
+'pageinfo-header-basic' => 'Основна информация',
 'pageinfo-header-edits' => 'Редакции',
-'pageinfo-header-watchlist' => 'Списък за наблюдение',
-'pageinfo-header-views' => 'Прегледи',
-'pageinfo-subjectpage' => 'Страница',
-'pageinfo-talkpage' => 'Дискусионна страница',
+'pageinfo-views' => 'Брой прегледи',
 'pageinfo-watchers' => 'Брой наблюдабащи',
-'pageinfo-edits' => 'Брой редакции',
+'pageinfo-subpages-name' => 'Подстраници на тази страница',
+'pageinfo-lastuser' => 'Последeн редактор',
+'pageinfo-lasttime' => 'Дата на последнoто редактиране',
+'pageinfo-edits' => 'Общ брой редакции',
 'pageinfo-authors' => 'Брой на отделни автори',
-'pageinfo-views' => 'Брой прегледи',
-'pageinfo-viewsperedit' => 'Прегледи на редакция',
+'pageinfo-magic-words' => 'Вълшебни думички ($1)',
 
 # Skin names
 'skinname-standard' => 'Класика',
@@ -3642,6 +3648,8 @@ MediaWiki се разпространява с надеждата, че ще б
 'api-error-empty-file' => 'Заявеният за качване файл беше празен.',
 'api-error-emptypage' => 'Създаването на нови, празени страници, не е разрешено.',
 'api-error-fetchfileerror' => 'Вътрешна грешка: Нещо се обърка при извличане на файла.',
+'api-error-fileexists-forbidden' => 'Вече съществува файл с име „$1“ и той не може да бъде заменен.',
+'api-error-fileexists-shared-forbidden' => 'В споделеното хранилище вече съществува файл с име „$1“ и той не може да бъде заменен.',
 'api-error-file-too-large' => 'Заявеният за качване файл беше твърде голям.',
 'api-error-filename-tooshort' => 'Името на файла е твърде кратко.',
 'api-error-filetype-banned' => 'Този файлов тип не е позволен за качване.',
index eec4ffc..ef3492e 100644 (file)
@@ -1516,9 +1516,9 @@ Log pahapusan wan pamindahan hagan tungkarran ngini adalah sawagai barikut:",
 Gasan manampaiakan atawa manggagai barakas nang sabalumnya dimuat, puruk [[Special:FileList|daptar barakas]]. Pahunggahan (lagi) jua tacatat dalam [[Special:Log/upload|log pahunggahan]], samantara pahapusan tacatat dalam [[Special:Log/delete|log pahapusan]].
 
 Gasan manampaiakn atawa maumpatakan barakas di dalam suatu tungkaran, puruk tautan lawan salah asa purmat di bawah ngini:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Barakas.jpg]]</nowiki></tt>''' hagan manampaiakan barakas dalam takaran aslinya
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Barakas.png|200px|thumb|left|naskah alternatip]]</nowiki></tt>''' hagan manampaiakan barakas lawan libar 200px dalam sabuah kutak di kiwa tungkaran lawan 'naskah alternatip' sawagai katarangan gambar
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Barakas.ogg]]</nowiki></tt>''' sawagai tautan langsung ka barakas nang dimaksud kada batampaiakan barakas ngitu lung wiki",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Barakas.jpg]]</nowiki></code>''' hagan manampaiakan barakas dalam takaran aslinya
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Barakas.png|200px|thumb|left|naskah alternatip]]</nowiki></code>''' hagan manampaiakan barakas lawan libar 200px dalam sabuah kutak di kiwa tungkaran lawan 'naskah alternatip' sawagai katarangan gambar
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Barakas.ogg]]</nowiki></code>''' sawagai tautan langsung ka barakas nang dimaksud kada batampaiakan barakas ngitu lung wiki",
 'upload-permitted' => 'Macam barakas nang diijinakan: $1.',
 'upload-preferred' => 'Macam barakas nang dikatujui: $1.',
 'upload-prohibited' => 'Macam barakas nang ditangati: $1.',
@@ -1566,21 +1566,21 @@ barakas ngini $2.',
 Ngini pinanya ada salah katik ngaran barakas.
 Muhun pariksa apa bubujuran Pian handak mahunggah barakas ngini.',
 'windows-nonascii-filename' => 'Wiki ngini kada manyukung ngaranbarakas awan karaktir isitimiwa.',
-'fileexists' => "Sabuah barakas bangaran ngin sudah ada, muhun pariksa '''<tt>[[:$1]]</tt>''' amun Pian kada musti amun Pian handak mangganti ngini.
-[[$1|thumb]]",
-'filepageexists' => "Tungkaran diskripsi gasan barakas ngini suda diulah di '''<tt>[[:$1]]</tt>''', tagal kadada barakas bangaran ngini tasadia.
+'fileexists' => 'Sabuah barakas bangaran ngin sudah ada, muhun pariksa <strong>[[:$1]]</strong> amun Pian kada musti amun Pian handak mangganti ngini.
+[[$1|thumb]]',
+'filepageexists' => 'Tungkaran diskripsi gasan barakas ngini suda diulah di <strong>[[:$1]]</strong>, tagal kadada barakas bangaran ngini tasadia.
 Kasimpulan nang Pian masukakan kada ham cungul pada tungkran diskripsi.
 Hagan maulah kasimpulan Pian cungul di sana, Pian musti mambabaknya manual.
-[[$1|thumb]]",
-'fileexists-extension' => "Sabuah barakas bangaran sama sudah tasadia: [[$2|thumb]]
-*Ngaran barakas hunggahan: '''<tt>[[:$1]]</tt>'''
-* Ngaran barakas sudah tasadia: '''<tt>[[:$2]]</tt>'''
-Muhun pilihi sabuah ngaran babida.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Sabuah barakas bangaran sama sudah tasadia: [[$2|thumb]]
+*Ngaran barakas hunggahan: <strong>[[:$1]]</strong>
+* Ngaran barakas sudah tasadia: <strong>[[:$2]]</strong>
+Muhun pilihi sabuah ngaran babida.',
 'fileexists-thumbnail-yes' => "Barakas ngini kajanakannya sabuah pancitraan nang dihalusi takarannya ''(thumbnail)''.
 [[$1|thumb]]
-Muhun pariksa barakas '''<tt>[[:$1]]</tt>'''.
+Muhun pariksa barakas <strong>[[:$1]]</strong>.
 Amun barakas dipariksa sama awan pancitraan takaran aslinya kada parlu mahunggah sabuah tambahan thumbnail.",
-'file-thumbnail-no' => "Ngaran barakas bamula awan '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Ngaran barakas bamula awan <strong>$1</strong>.
 Ngini kajanakannya sabuah pancitraan nang dihalusi takaran ''(thumbnail)''.
 Amun Pian baisi pancitraan ngini barisulusi hibak hunggah nang ngini, amun kada muhun ubah ngaran barakas.",
 'fileexists-forbidden' => 'Sabuah barakas bangaran sama sudah tasadia, wan kada kawa ditindihtulis.
@@ -1820,7 +1820,7 @@ Diskripsi ngini [$2 tungkaran diskripsi barakas] ditampaiakan di bawah.',
 # MIME search
 'mimesearch' => 'Panggagaian MIME',
 'mimesearch-summary' => 'Tungkaran ngini kawa manyaring babarakas bamacam MIME.
-Buati: contenttype/subtype, misal <tt>image/jpeg</tt>.',
+Buati: contenttype/subtype, misal <code>image/jpeg</code>.',
 'mimetype' => 'Macam MIME',
 'download' => 'hunduh',
 
@@ -2020,7 +2020,7 @@ Janaki jua [[Special:WantedCategories|tutumbung nang dihandaki]].',
 'linksearch-ok' => 'Gagai',
 'linksearch-text' => 'Kartu liar nangkaya "*.wikipedia.org" hingkat diguna\'akan.
 Mamarlukan sadikitnya asa ranah tingkat atas, misalnya "*.org".<br />
-Protokol nang didukung: <tt>$1</tt> (jangan tambahakan dalam panggagaian Pian)',
+Protokol nang didukung: <code>$1</code> (jangan tambahakan dalam panggagaian Pian)',
 'linksearch-line' => '$1 ditautakan matan $2',
 'linksearch-error' => 'Kartu-liar mancungul pintang awalan matan ngaranhost.',
 
@@ -2844,15 +2844,10 @@ Ngini pinanya dikaranakan ulih sabuah tautan ka sabuah situs daptar-hirang luar.
 # Info page
 'pageinfo-title' => "Panjalasan gasan ''$1''",
 'pageinfo-header-edits' => 'Babakan',
-'pageinfo-header-watchlist' => 'Paitihan',
-'pageinfo-header-views' => 'Titiringan',
-'pageinfo-subjectpage' => 'Tungkaran',
-'pageinfo-talkpage' => 'Tungkaran pamandiran',
+'pageinfo-views' => 'Rikinan titiringan',
 'pageinfo-watchers' => 'Jumlah papaitih',
 'pageinfo-edits' => 'Rikinan babakan',
 'pageinfo-authors' => 'Rikinan panulis balain',
-'pageinfo-views' => 'Rikinan titiringan',
-'pageinfo-viewsperedit' => 'Titiringan par babakan',
 
 # Patrolling
 'markaspatrolleddiff' => 'Ciri-i sawagai ta-awasi',
index 467e047..fd22a46 100644 (file)
@@ -1381,9 +1381,9 @@ $1",
 পূর্বে আপলোড করা ফাইল দেখতে বা অনুসন্ধানে [[Special:FileList|পূর্বে আপলোড করা ফাইলের তালিকা]] দেখুন। (পুনঃ)আপলোড করা ফাইল এর নাম  [[Special:Log/upload|আপলোড লগে]] যোগ হয়, অপসারিত ফাইলের নাম [[Special:Log/delete|অপসারণ লগে]] রয়েছে।
 
 কোনো নিবন্ধে ছবি যোগ করতে হলে নিচের উদাহরণ অনুযায়ী সংযোগ দিন:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''',
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' অথবা
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''',
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' অথবা
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''",
 'upload-permitted' => 'যেসব ফাইলের ধরন অনুমোদিত: $1।',
 'upload-preferred' => 'যেসব ফাইলের ধরন পছন্দনীয়: $1।',
 'upload-prohibited' => 'যেসব ফাইলের ধরন নিষিদ্ধ: $1।',
@@ -1422,15 +1422,15 @@ $1",
 'largefileserver' => 'সার্ভারে যতখানি অনুমোদিত তার চেয়ে এই ফাইলের আকার বড়।',
 'emptyfile' => 'আপনি যে ফাইলটি আপলোড করেছেন, তা খালি মনে হচ্ছে। ফাইলের নামে টাইপিং ত্রুটির কারণে এরকম হতে পারে। অনুগ্রহ করে পরীক্ষা করে দেখুন আপনি আসলেই এই ফাইলটি আপলোড করতে চান কি না।',
 'windows-nonascii-filename' => 'এই উইকি বিশেষ ক্যারেক্টারসমৃদ্ধ ফাইলের নাম সমর্থন করে না।',
-'fileexists' => "এই নামের একটি ফাইল ইতিমধ্যেই বিদ্যমান। অনুগ্রহ করে '''<tt>[[:$1]]</tt>''' পরীক্ষা করে দেখুন, যদি আপনি এটি পরিবর্তনের ব্যাপারে নিশ্চিত না হন। [[$1|thumb]]",
-'fileexists-extension' => "একই নামের আরেকটি ফাইল আছে: [[$2|thumb]]
-* আপলোড করা ফাইলের নাম: '''<tt>[[:$1]]</tt>'''
-* একই নামে বর্তমান ফাইলের নাম: '''<tt>[[:$2]]</tt>'''
-অনুগ্রহ করে একটি ভিন্ন নাম পছন্দ করুন।",
+'fileexists' => 'এই নামের একটি ফাইল ইতিমধ্যেই বিদ্যমান। অনুগ্রহ করে <strong>[[:$1]]</strong> পরীক্ষা করে দেখুন, যদি আপনি এটি পরিবর্তনের ব্যাপারে নিশ্চিত না হন। [[$1|thumb]]',
+'fileexists-extension' => 'একই নামের আরেকটি ফাইল আছে: [[$2|thumb]]
+* আপলোড করা ফাইলের নাম: <strong>[[:$1]]</strong>
+* একই নামে বর্তমান ফাইলের নাম: <strong>[[:$2]]</strong>
+অনুগ্রহ করে একটি ভিন্ন নাম পছন্দ করুন।',
 'fileexists-thumbnail-yes' => "ফাইলটি একটি সংক্ষেপিত আকারের ছবি ''(থাম্বনেইল)'' বলে মনে হচ্ছে। [[$1|thumb]]
-অনুগ্রহ করে '''<tt>[[:$1]]</tt>''' ফাইলটি পরীক্ষা করে দেখুন।
+অনুগ্রহ করে <strong>[[:$1]]</strong> ফাইলটি পরীক্ষা করে দেখুন।
 যদি পরীক্ষাকৃত ফাইলটি একই ছবির মূল আকার হয়, তবে একটি অতিরিক্ত থাম্বনেইল আপলোড করার প্রয়োজন নেই।",
-'file-thumbnail-no' => "ফাইলের নামটি '''<tt>$1</tt>''' দিয়ে শুরু হয়েছে।
+'file-thumbnail-no' => "ফাইলের নামটি <strong>$1</strong> দিয়ে শুরু হয়েছে।
 মনে হচ্ছে এটি একটি সংকুচিত আকারের ছবি  ''(থাম্বনেইল)''।
 আপনার কাছে যদি পূর্ণ রেজোলিউশনের ছবিটি থাকে, তবে সেটি আপলোড করুন, নতুবা অনুগ্রহ করে ফাইলের নামটি পরিবর্তন করুন।",
 'fileexists-forbidden' => 'এই নামের একটি ফাইল ইতিমধ্যেই বিদ্যমান, এবং এটি প্রতিস্থাপনযোগ্য নয়।
@@ -1600,7 +1600,7 @@ $1",
 
 # MIME search
 'mimesearch' => 'MIME অনুসন্ধান',
-'mimesearch-summary' => 'এই পাতার মাধ্যমে MIME-ধরন অনুসারে ফাইলগুলিকে ফিল্টার করা যায়। ইনপুট: contenttype/subtype, যেমন <tt>image/jpeg</tt>।',
+'mimesearch-summary' => 'এই পাতার মাধ্যমে MIME-ধরন অনুসারে ফাইলগুলিকে ফিল্টার করা যায়। ইনপুট: contenttype/subtype, যেমন <code>image/jpeg</code>।',
 'mimetype' => 'MIME ধরন:',
 'download' => 'ডাউনলোড',
 
@@ -2510,13 +2510,9 @@ $1',
 
 # Info page
 'pageinfo-header-edits' => 'সম্পাদনা',
-'pageinfo-header-watchlist' => 'নজরতালিকা',
-'pageinfo-header-views' => 'দৃষ্টিকোণ',
-'pageinfo-subjectpage' => 'পাতা',
-'pageinfo-talkpage' => 'আলাপ পাতা',
+'pageinfo-views' => 'পরিদর্শন সংখ্যা',
 'pageinfo-edits' => 'সম্পাদনা সংখ্যা',
 'pageinfo-authors' => 'সতন্ত্র সম্পাদকের সংখ্যা',
-'pageinfo-views' => 'পরিদর্শন সংখ্যা',
 
 # Patrolling
 'markaspatrolleddiff' => 'পরীক্ষিত বলে চিহ্নিত করুন',
index bbe83ce..65e0217 100644 (file)
@@ -1036,9 +1036,9 @@ $2',
 আগেদে কাকরিসি ফাইল বিসারা [[Special:FileList|কাকরিসি ফাইলর লাতঙগ]], [[Special:Log/upload|আরাকমু কাকরিসি]] ফাইলর ইতিহাসহান, [[Special:Log/delete|পুসিসি]] ফাইলর ইতিহাসহান।
 
 পাতাহাত ছবি আগ বরানি মনেইলে, তলর উদাহরণর অসারে ইকর:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' ফাইলর আস্তা ভার্সনহান ব্যবহারর কা
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|সারুক ৱাহি]]</nowiki></tt>''' ২০০ পিক্সল চেপ্টা বাক্সগর বিঙেদে বদাগ দেনা বারো থাকরানির নিঙে 'সারুকে ৱাহি' বরানির কা
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' ফাইল নাদেখাদিয়া চুমেসত মিলাপর কা",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' ফাইলর আস্তা ভার্সনহান ব্যবহারর কা
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|সারুক ৱাহি]]</nowiki></code>''' ২০০ পিক্সল চেপ্টা বাক্সগর বিঙেদে বদাগ দেনা বারো থাকরানির নিঙে 'সারুকে ৱাহি' বরানির কা
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' ফাইল নাদেখাদিয়া চুমেসত মিলাপর কা",
 'upload-permitted' => 'যে জাতর ফাইল কাকরানি(আপলোড) করানি থা: $1।',
 'upload-preferred' => 'যে জাতর ফাইল থা: $1।',
 'upload-prohibited' => 'যে জাতর ফাইল থা নেই: $1।',
index 95d9320..04fcaed 100644 (file)
@@ -1592,20 +1592,20 @@ S.o [[Special:NewFiles|rann ar skeudennoù nevez]] evit kaout ur sell gwiroc'h",
 'emptyfile' => "Evit doare eo goullo ar restr bet karget ganeoc'h. Moarvat eo abalamour d'an tipo en anv ar restr. Gwiriit mat e fell deoc'h pellgargañ ar restr-mañ.",
 'windows-nonascii-filename' => "N'eo ket skoret anvioù ar restroù enno arouezennoù dibar gant ar wiki-mañ.",
 'fileexists' => "Ur restr all gant an anv-se zo c'hoazh.
-Trugarez da wiriañ '''<tt>[[:$1]]</tt>''' ma n'oc'h ket sur e fell deoc'h kemmañ anezhi.
+Trugarez da wiriañ <strong>[[:$1]]</strong> ma n'oc'h ket sur e fell deoc'h kemmañ anezhi.
 [[$1|thumb]]",
-'filepageexists' => "Amañ '''<tt>[[:$1]]</tt>''' eo bet krouet ar bajenn zeskrivañ evit ar restr-mañ, padal n'eus restr ebet dezhi an anv-se evit c'hoazh.
+'filepageexists' => "Amañ <strong>[[:$1]]</strong> eo bet krouet ar bajenn zeskrivañ evit ar restr-mañ, padal n'eus restr ebet dezhi an anv-se evit c'hoazh.
 An diverradenn skrivet ganeoc'h ne vo ket gwelet war ar bajenn zeskrivañ.
 Mar fell deoc'h e teufe ho tiverradenn war wel eno eo ret deoc'h-c'hwi kemmañ anezhi hoc'h-unan.
 [[$1|thumb]]",
 'fileexists-extension' => "Bez' ez eus dija ur restr gant an anv-se war-bouez nebeut : [[$2|thumb]]
-* Anv ar restr emeur oc'h enporzhiañ : '''<tt>[[:$1]]</tt>'''
-* Anv ar restr zo anezhi dija : '''<tt>[[:$2]]</tt>'''
+* Anv ar restr emeur oc'h enporzhiañ : <strong>[[:$1]]</strong>
+* Anv ar restr zo anezhi dija : <strong>[[:$2]]</strong>
 Dibabit un anv all mar plij.",
 'fileexists-thumbnail-yes' => "Evit doare ez eus ur skeudenn krennet he ment eus ar restr ''(thumbnail)''. [[$1|thumb]]
-Gwiriit ar restr '''<tt>[[:$1]]</tt>'''.
+Gwiriit ar restr <strong>[[:$1]]</strong>.
 Mard eo an hevelep skeudenn ha hini ar restr orin, ha heñvel he ment, n'eo ket dav pellgargañ ur stumm krennet ouzhpenn.",
-'file-thumbnail-no' => "Kregiñ a ra anv ar restr gant '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Kregiñ a ra anv ar restr gant <strong>$1</strong>.
 Evit doare eo ur skeudenn krennet he ment ''(thumbnail)''.
 Ma'z eus ganeoc'h ur skeudenn uhel he fizhder, pellgargit anezhi; a-hend-all cheñchit anv ar restr.",
 'fileexists-forbidden' => "Ur restr all gant an anv-se zo c'hoazh ha n'hall ket bezan diverket.
@@ -1864,7 +1864,7 @@ Marteze a-walc'h e fell deoc'h kemmañ an deskrivadur anezhi war ar [$2 bajenn d
 
 # MIME search
 'mimesearch' => 'Klask MIME',
-'mimesearch-summary' => 'Aotren a ra ar bajenn-mañ ar silañ restroù evit ar seurt restroù MIME. Enmont : seurt/isseurt, evel <tt>skeudenn/jpeg</tt>.',
+'mimesearch-summary' => 'Aotren a ra ar bajenn-mañ ar silañ restroù evit ar seurt restroù MIME. Enmont : seurt/isseurt, evel <code>skeudenn/jpeg</code>.',
 'mimetype' => 'Seurt MIME :',
 'download' => 'pellgargañ',
 
@@ -2066,7 +2066,7 @@ Gwelet ivez ar [[Special:WantedCategories|rummadoù goulennet a vank]].',
 'linksearch-ok' => 'Klask',
 'linksearch-text' => 'Gallout a reer implijout arouezennoù "joker" evel, da skouer, "*.wikipedia.org".
 Rekis eo dezho un domani a-us da nebeutañ evel, da skouer, "*.org".<br />
-Protokoloù skoret : <tt>$1</tt> (na lakait hini ebet eus ar re-se en ho klask)',
+Protokoloù skoret : <code>$1</code> (na lakait hini ebet eus ar re-se en ho klask)',
 'linksearch-line' => '$1 gant ul liamm adal $2',
 'linksearch-error' => "N'hall an arouezennoù joker bezañ implijet nemet e deroù anv domani an ostiz.",
 
@@ -2922,15 +2922,10 @@ Sur a-walc'h abalamour d'ul liamm enni a gas d'ul lec'hienn ziavaez berzet.",
 # Info page
 'pageinfo-title' => 'Titouroù evit "$1"',
 'pageinfo-header-edits' => 'Kemmoù',
-'pageinfo-header-watchlist' => 'Roll evezhiañ',
-'pageinfo-header-views' => 'Gweladennoù',
-'pageinfo-subjectpage' => 'Pajenn',
-'pageinfo-talkpage' => 'Pajenn gaozeal',
+'pageinfo-views' => 'Niver a weladennoù',
 'pageinfo-watchers' => 'Niver a dud o heuliañ',
 'pageinfo-edits' => 'Niver a gemmoù',
 'pageinfo-authors' => 'Niver a aozerien disheñvel',
-'pageinfo-views' => 'Niver a weladennoù',
-'pageinfo-viewsperedit' => 'Gweladenoù dre gemmoù',
 
 # Skin names
 'skinname-standard' => 'Standard',
@@ -3675,7 +3670,7 @@ Diskouezet eo ar skeudennoù gant ur pizhder uhel, erounit a ra ar restroù all
 * <span class="mw-specialpagecached">Pajennoù dibar krubuilhet hepken (a c\'hellfe bezañ re gozh).</span>',
 'specialpages-group-maintenance' => "Rentaoù-kont trezalc'h",
 'specialpages-group-other' => 'Pajennoù dibar all',
-'specialpages-group-login' => 'Kevreañ / en em enrollañ',
+'specialpages-group-login' => 'Kevreañ / krouiñ ur gont',
 'specialpages-group-changes' => 'Kemmoù diwezhañ ha marilhoù',
 'specialpages-group-media' => 'Danevelloù ar restroù media hag an enporzhiadennoù',
 'specialpages-group-users' => 'An implijerien hag o gwirioù',
index fc1763b..cc8bc90 100644 (file)
@@ -1668,9 +1668,9 @@ Zapisnik brisanja i pomjeranja za ovu stranicu je dostupan ovdje na uvid:",
 Da bi ste vidjeli ili pretražili ranije postavljene datoteke, pogledajte [[Special:FileList|spisak postavljenih datoteka]], ponovna postavljanja su također zapisana u [[Special:Log/upload|zapisnik postavljanja]], a brisanja u [[Special:Log/delete|zapisnik brisanja]].
 
 Da bi ste prikazali datoteku na stranici, koristite link na jedan od slijedećih načina:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg]]</nowiki></tt>''' da upotrijebite potpunu veziju datoteke
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.png|200px|thumb|lijevo|opis slike]]</nowiki></tt>''' da upotrijebite smanjeni prikaz širine 200 piksela unutar okvira, s lijevim poravnanjem i ''opisom slike''.
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></tt>''' za direkno povezivanje datoteke bez njenog prikazivanja",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg]]</nowiki></code>''' da upotrijebite potpunu veziju datoteke
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.png|200px|thumb|lijevo|opis slike]]</nowiki></code>''' da upotrijebite smanjeni prikaz širine 200 piksela unutar okvira, s lijevim poravnanjem i ''opisom slike''.
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></code>''' za direkno povezivanje datoteke bez njenog prikazivanja",
 'upload-permitted' => 'Podržane vrste datoteka: $1.',
 'upload-preferred' => 'Preferirane vrste datoteka: $1.',
 'upload-prohibited' => 'Zabranjene vrste datoteka: $1.',
@@ -1715,21 +1715,21 @@ Ova datoteka je velika $2.',
 'largefileserver' => 'Ova datoteka je veća nego što server dopušta.',
 'emptyfile' => 'Datoteka koju ste poslali je prazna. Ovo je moguće zbog greške u imenu datoteke. Molimo Vas da provjerite da li stvarno želite da pošaljete ovu datoteku.',
 'windows-nonascii-filename' => 'Ova wiki ne podržava imena datoteka sa posebnim znacima.',
-'fileexists' => "Datoteka sa ovim imenom već postoji.
-Molimo Vas da provjerite '''<tt>[[:$1]]</tt>''' ako niste sigurni da li želite da je promjenite.
-[[$1|thumb]]",
-'filepageexists' => "Opis stranice za ovu datoteku je već napravljen ovdje '''<tt>[[:$1]]</tt>''', ali datoteka sa ovim nazivom trenutno ne postoji.
+'fileexists' => 'Datoteka sa ovim imenom već postoji.
+Molimo Vas da provjerite <strong>[[:$1]]</strong> ako niste sigurni da li želite da je promjenite.
+[[$1|thumb]]',
+'filepageexists' => 'Opis stranice za ovu datoteku je već napravljen ovdje <strong>[[:$1]]</strong>, ali datoteka sa ovim nazivom trenutno ne postoji.
 Sažetak koji ste naveli neće se pojaviti na stranici opisa.
 Da bi se Vaš opis ovdje našao, potrebno je da ga ručno uredite.
-[[$1|thumb]]",
-'fileexists-extension' => "Datoteka sa sličnim nazivom postoji: [[$2|thumb]]
-* Naziv datoteke koja se postavlja: '''<tt>[[:$1]]</tt>'''
-* Naziv postojeće datoteke: '''<tt>[[:$2]]</tt>'''
-Molimo Vas da izaberete drugačiji naziv.",
-'fileexists-thumbnail-yes' => "Izgleda da je datoteka slika smanjene veličine ''(\"thumbnail\")''. [[\$1|thumb]]
-Molimo provjerite datoteku '''<tt>[[:\$1]]</tt>'''.
-Ako je provjerena datoteka ista slika originalne veličine, nije potrebno postavljati dodatnu sliku.",
-'file-thumbnail-no' => "Naziv datoteke počinje sa '''<tt>\$1</tt>'''.
+[[$1|thumb]]',
+'fileexists-extension' => 'Datoteka sa sličnim nazivom postoji: [[$2|thumb]]
+* Naziv datoteke koja se postavlja: <strong>[[:$1]]</strong>
+* Naziv postojeće datoteke: <strong>[[:$2]]</strong>
+Molimo Vas da izaberete drugačiji naziv.',
+'fileexists-thumbnail-yes' => 'Izgleda da je datoteka slika smanjene veličine \'\'("thumbnail")\'\'. [[$1|thumb]]
+Molimo provjerite datoteku <strong>[[:$1]]</strong>.
+Ako je provjerena datoteka ista slika originalne veličine, nije potrebno postavljati dodatnu sliku.',
+'file-thumbnail-no' => "Naziv datoteke počinje sa <strong>\$1</strong>.
 Izgleda da se radi o smanjenoj slici ''(\"thumbnail\")''.
 Ako imate ovu sliku u punoj rezoluciji, postavite nju; ili promijenite naslov ove datoteke.",
 'fileexists-forbidden' => 'Datoteka sa ovim imenom već postoji i ne može biti prepisana.
@@ -1962,7 +1962,7 @@ Opis sa njene [$2 stranice opisa datoteke] je prikazan ispod.',
 # MIME search
 'mimesearch' => 'MIME pretraga',
 'mimesearch-summary' => 'Ova stranica omogućava filtriranje datoteka prema njihovoj MIME vrsti.
-Ulazni podaci: vrstasadržaja/subvrsta, npr. <tt>image/jpeg</tt>.',
+Ulazni podaci: vrstasadržaja/subvrsta, npr. <code>image/jpeg</code>.',
 'mimetype' => 'MIME tip:',
 'download' => 'učitaj',
 
@@ -2157,7 +2157,7 @@ Vidi također [[Special:WantedCategories|zatražene kategorije]].',
 'linksearch-ok' => 'Traži',
 'linksearch-text' => 'Mogu se koristiti općeniti izrazi poput "*.wikipedia.org"
 Potrebna je najmanje osnovna domena, naprimjer "*.org."<br />
-Podržani protokoli: <tt>$1</tt> (ne dodavajte bilo koji od ovih u vašu pretragu).',
+Podržani protokoli: <code>$1</code> (ne dodavajte bilo koji od ovih u vašu pretragu).',
 'linksearch-line' => '$1 je povezan od $2',
 'linksearch-error' => 'Džokeri se mogu pojavljivati samo na početku naziva servera.',
 
@@ -3022,15 +3022,10 @@ Ovo je vjerovatno izazvao vezom ka vanjskoj nepoželjnoj stranici.',
 # Info page
 'pageinfo-title' => 'Informacije za "$1"',
 'pageinfo-header-edits' => 'Izmjene',
-'pageinfo-header-watchlist' => 'Praćeni članci',
-'pageinfo-header-views' => 'Pregledi',
-'pageinfo-subjectpage' => 'Stranica',
-'pageinfo-talkpage' => 'Stranica za razgovor',
+'pageinfo-views' => 'Broj pogleda',
 'pageinfo-watchers' => 'Broj onih koji pregledaju',
 'pageinfo-edits' => 'Broj izmjena',
 'pageinfo-authors' => 'Broj različitih autora',
-'pageinfo-views' => 'Broj pogleda',
-'pageinfo-viewsperedit' => 'Pogleda po izmjeni',
 
 # Skin names
 'skinname-standard' => 'Klasično',
index 32f11b9..f9eba2d 100644 (file)
@@ -15,6 +15,7 @@
  * @author Davidpar
  * @author El libre
  * @author Gemmaa
+ * @author Grondin
  * @author Iradigalesc
  * @author Jordi Roqué
  * @author Juanpabl
@@ -516,9 +517,9 @@ Vegeu la llista de pàgines especials a [[Special:SpecialPages]].',
 'dberrortext' => "S'ha produït un error de sintaxi en una consulta a la base de dades.
 Açò podria indicar un error en el programari.
 La darrera consulta que s'ha intentat fer ha estat:
-<blockquote><tt>$1</tt></blockquote>
-des de la funció «<tt>$2</tt>».
-L'error de retorn ha estat «<tt>$3: $4</tt>».",
+<blockquote><code>$1</code></blockquote>
+des de la funció «<code>$2</code>».
+L'error de retorn ha estat «<samp>$3: $4</samp>».",
 'dberrortextcl' => "S'ha produït un error de sintaxi en una consulta a la base de dades.
 La darrera consulta que s'ha intentat fer ha estat:
 <blockquote><tt>$1</tt></blockquote>
@@ -1576,9 +1577,9 @@ A continuació es mostren els registres de supressió i reanomenament d'aquesta
 Per a visualitzar o cercar fitxers que s'hagen carregat prèviament, aneu a la [[Special:FileList|llista de fitxers carregats]]. Les càrregues es registren en el [[Special:Log/upload|registre de càrregues]] i els fitxers esborrats en el [[Special:Log/delete|registre d'esborrats]].
 
 Per a incloure una imatge en una pàgina, feu un enllaç en una de les formes següents:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fitxer.jpg]]</nowiki></tt>''' per a usar la versió completa del fitxer;
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fitxer.png|200px|thumb|esquerra|text alternatiu]]</nowiki></tt>''' per una presentació de 200 píxels d'amplada en un requadre justificat a l'esquerra amb «text alternatiu» com a descripció;
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fitxer.ogg]]</nowiki></tt>''' per a enllaçar directament amb un fitxer de so.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fitxer.jpg]]</nowiki></code>''' per a usar la versió completa del fitxer;
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fitxer.png|200px|thumb|esquerra|text alternatiu]]</nowiki></code>''' per una presentació de 200 píxels d'amplada en un requadre justificat a l'esquerra amb «text alternatiu» com a descripció;
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fitxer.ogg]]</nowiki></code>''' per a enllaçar directament amb un fitxer de so.",
 'upload-permitted' => 'Tipus de fitxer permesos: $1.',
 'upload-preferred' => 'Tipus de fitxer preferits: $1.',
 'upload-prohibited' => 'Tipus de fitxer prohibits: $1.',
@@ -1622,18 +1623,18 @@ Vegeu la [[Special:NewFiles|galeria de nous fitxers]] per a una presentació mé
 Açò por ser degut a un mal caràcter en el nom del fitxer.
 Comproveu si realment voleu carregar aquest fitxer.',
 'windows-nonascii-filename' => 'Aquest wiki no permet noms de fitxer amb caràcters especials.',
-'fileexists' => "Ja hi existeix un fitxer amb aquest nom, si us plau, verifiqueu '''<tt>[[:$1]]</tt>''' si no esteu segurs de voler substituir-lo.
+'fileexists' => 'Ja hi existeix un fitxer amb aquest nom, si us plau, verifiqueu <strong>[[:$1]]</strong> si no esteu segurs de voler substituir-lo.
+[[$1|thumb]]',
+'filepageexists' => "La pàgina de descripció d'aquest fitxer ja ha estat creada (<strong>[[:$1]]</strong>), però de moment no hi ha cap fitxer amb aquest nom. La descripció que heu posat no apareixerà a la pàgina de descripció. Si voleu que hi aparegui haureu d'editar-la manualment.
 [[$1|thumb]]",
-'filepageexists' => "La pàgina de descripció d'aquest fitxer ja ha estat creada ('''<tt>[[:$1]]</tt>'''), però de moment no hi ha cap fitxer amb aquest nom. La descripció que heu posat no apareixerà a la pàgina de descripció. Si voleu que hi aparegui haureu d'editar-la manualment.
-[[$1|thumb]]",
-'fileexists-extension' => "Ja existeix un fitxer amb un nom semblant: [[$2|thumb]]
-* Nom del fitxer que es puja: '''<tt>[[:$1]]</tt>'''
-* Nom del fitxer existent: '''<tt>[[:$2]]</tt>'''
-Si us plau, trieu un nom diferent.",
-'fileexists-thumbnail-yes' => "Aquest fitxer sembla ser una imatge en mida reduïda (<em>miniatura</em>). [[$1|thumb]]
-Comproveu si us plau el fitxer '''<tt>[[:$1]]</tt>'''.
-Si el fitxer és la mateixa imatge a mida original, no cal carregar cap miniatura més.",
-'file-thumbnail-no' => "El nom del fitxer comença per '''<tt>$1</tt>'''.
+'fileexists-extension' => 'Ja existeix un fitxer amb un nom semblant: [[$2|thumb]]
+* Nom del fitxer que es puja: <strong>[[:$1]]</strong>
+* Nom del fitxer existent: <strong>[[:$2]]</strong>
+Si us plau, trieu un nom diferent.',
+'fileexists-thumbnail-yes' => 'Aquest fitxer sembla ser una imatge en mida reduïda (<em>miniatura</em>). [[$1|thumb]]
+Comproveu si us plau el fitxer <strong>[[:$1]]</strong>.
+Si el fitxer és la mateixa imatge a mida original, no cal carregar cap miniatura més.',
+'file-thumbnail-no' => "El nom del fitxer comença per <strong>$1</strong>.
 Sembla ser una imatge de mida reduïda ''(miniatura)''.
 Si teniu la imatge en resolució completa, pugeu-la, sinó mireu de canviar-li el nom, si us plau.",
 'fileexists-forbidden' => 'Ja hi existeix un fitxer amb aquest nom i no es pot sobreescriure.
@@ -1873,7 +1874,7 @@ Potser voleu modificar-ne la descripció en la seva [$2 pàgina de descripció].
 
 # MIME search
 'mimesearch' => 'Cerca per MIME',
-'mimesearch-summary' => 'Aquesta pàgina habilita el filtratge de fitxers per llur tipus MIME. Contingut: contenttype/subtype, ex. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Aquesta pàgina habilita el filtratge de fitxers per llur tipus MIME. Contingut: contenttype/subtype, ex. <code>image/jpeg</code>.',
 'mimetype' => 'Tipus MIME:',
 'download' => 'baixada',
 
@@ -2073,7 +2074,7 @@ Vegeu també [[Special:WantedCategories|les categories soŀlicitades]].",
 'linksearch-ok' => 'Cerca',
 'linksearch-text' => 'Podeu fer servir caràcters comodí com "*.wikipedia.org".
 Necessita com a mínim un domini de primer nivell, per exemple "*.org".<br />
-Protocols admesos: <tt> $1 </tt> (no els afegiu en la vostra recerca).',
+Protocols admesos: <code> $1 </code> (no els afegiu en la vostra recerca).',
 'linksearch-line' => '$1 enllaçat a $2',
 'linksearch-error' => "Els caràcters comodí només poden aparèixer a l'inici de l'url.",
 
@@ -2762,6 +2763,7 @@ Totes les accions d'importació interwiki es conserven al [[Special:Log/import|r
 'import-interwiki-templates' => 'Inclou totes les plantilles',
 'import-interwiki-submit' => 'Importa',
 'import-interwiki-namespace' => 'Espai de noms de destinació:',
+'import-interwiki-rootpage' => 'Pàgina arrel de destí (opcional):',
 'import-upload-filename' => 'Nom de fitxer:',
 'import-comment' => 'Comentari:',
 'importtext' => "Exporteu el fitxer des del wiki d'origen utilitzant l'[[Special:Export|eina d'exportació]].
@@ -2794,6 +2796,9 @@ Deseu-lo al vostre ordinador i carregueu-ne una còpia ací.",
 'import-error-interwiki' => "No s'importa la pàgina «$1» perquè el seu nom està reservat a l'enllaçament extern (interwiki).",
 'import-error-special' => "No s'importa la pàgina «$1» perquè el seu nom pertany a l'espai de noms especial que no permet pàgines.",
 'import-error-invalid' => "No s'importa la pàgina «$1» perquè el seu nom no és vàlid.",
+'import-options-wrong' => '{{PLURAL:$2|Opció equivocada|Opcions equivocades}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'La pàgina arrel donada és un títol no vàlid.',
+'import-rootpage-nosubpage' => 'L\'espai de noms "$1" de la pàgina arrel no permet subpàgines.',
 
 # Import log
 'importlogpage' => "Registre d'importació",
@@ -2919,15 +2924,10 @@ Això deu ser degut per un enllaç a un lloc extern inclòs a la llista negra.',
 # Info page
 'pageinfo-title' => 'Informació de «$1»',
 'pageinfo-header-edits' => 'Modificacions',
-'pageinfo-header-watchlist' => 'Llista de seguiment',
-'pageinfo-header-views' => 'Visites',
-'pageinfo-subjectpage' => 'Pàgina',
-'pageinfo-talkpage' => 'Pàgina de discussió',
+'pageinfo-views' => 'Número de visites',
 'pageinfo-watchers' => "Número d'usuaris que l'estan vigilant",
 'pageinfo-edits' => "Número d'edicions",
 'pageinfo-authors' => "Número d'autors diferents",
-'pageinfo-views' => 'Número de visites',
-'pageinfo-viewsperedit' => 'Visites per edició',
 
 # Skin names
 'skinname-standard' => 'Clàssic',
@@ -3654,7 +3654,7 @@ Les imatges es mostren en plena resolució; altres tipus de fitxer s'inicien dir
 * <span class="mw-specialpagecached">Pàgines especials en memòria cau (poden ser obsoletes).</span>',
 'specialpages-group-maintenance' => 'Informes de manteniment',
 'specialpages-group-other' => 'Altres pàgines especials',
-'specialpages-group-login' => 'Inici de sessió / Registre',
+'specialpages-group-login' => 'Iniciar sessió / Crear un compte',
 'specialpages-group-changes' => 'Canvis recents i registres',
 'specialpages-group-media' => 'Informes multimèdia i càrregues',
 'specialpages-group-users' => 'Usuaris i drets',
index d2b0477..4f15b3f 100644 (file)
@@ -453,8 +453,8 @@ Siók-mìng: (dāng) = gâe̤ng dék sĭng bēng-buōng bī-piâng, (sèng) = g
 'uploadedfiles' => 'Siông-duòng ùng-giông',
 'ignorewarning' => 'Mò̤ sê̤ṳ gīng-gó̤ bō̤-còng ùng-giông.',
 'ignorewarnings' => 'Mò̤ sê̤ṳ gīng-gó̤',
-'fileexists' => "Ī-gĭng ô siŏh bĭk dè̤ng miàng ùng-giông, nṳ̄ nâ mâ̤ káuk-dêng nṳ̄ sê-ng-sê dŏng-cĭng páh-sáung gāi-biéng ĭ, chiāng giēng-chă '''<tt>[[:$1]]</tt>'''.
-[[$1|thumb]]",
+'fileexists' => 'Ī-gĭng ô siŏh bĭk dè̤ng miàng ùng-giông, nṳ̄ nâ mâ̤ káuk-dêng nṳ̄ sê-ng-sê dŏng-cĭng páh-sáung gāi-biéng ĭ, chiāng giēng-chă <strong>[[:$1]]</strong>.
+[[$1|thumb]]',
 'uploadwarning' => 'Siông-duòng gīng-gó̤',
 'savefile' => 'Bō̤-còng ùng-giông',
 'uploadedimage' => 'siông-duòng "[[$1]]"',
index 338fd12..c921623 100644 (file)
@@ -15,6 +15,7 @@
  * @author Diyar se
  * @author Haval
  * @author Marmzok
+ * @author Muhammed taha
  * @author رزگار
  */
 
@@ -526,6 +527,7 @@ $2',
 'ns-specialprotected' => 'تۆ ناتوانی لاپەڕە تایبەتەکان دەستکاریی بکەی.',
 'titleprotected' => 'ئەم سەرناوە پارێزراوە لە دروستکران لە لایەن [[User:$1|$1]].
 ھۆکاری ئەمە بریتیە لە "\'\'$2\'\'".',
+'exception-nologin' => 'لەژوورەوە نیت',
 
 # Virus scanner
 'virus-badscanner' => "پێکەربەندیی نابەجێ: ڤایرس سکەنێری نەناسراو: ''$1''",
@@ -676,6 +678,7 @@ $2
 # Special:ChangeEmail
 'changeemail' => 'ئەدرەسی ئیمەیڵ بگۆڕە',
 'changeemail-header' => 'ئەدرەسی ئیمەیلی ھەژمار بگۆڕە',
+'changeemail-no-info' => 'بۆ گەیشتنی راستەوخۆ بەم پەڕە دەبێت بچیتە ژوورەوە.',
 'changeemail-oldemail' => 'ئەدرەسی ئیمەیڵی ئێستا:',
 'changeemail-newemail' => 'ئەدرەسی ئیمەیڵی نوێ:',
 'changeemail-none' => '(ھیچ)',
@@ -964,7 +967,7 @@ $3 هۆکاری "$2" خستوەتەڕوو',
 ھێشتا دەتوانیت [$1 ئەم جیاوازییە ببینیت] ئەگەر بتەوێ.",
 'rev-delundel' => 'نیشانبدە/بشارەوە',
 'rev-showdeleted' => 'نیشان بدە',
-'revisiondelete' => 'سڕینەوە\\هاوردنەوەی پێداچوونەوەکان',
+'revisiondelete' => 'سڕینەوە/ھێنانەوەی پێداچوونەوەکان',
 'revdelete-nooldid-title' => 'مەبەستی پێداچوونەوەی نادیار',
 'revdelete-nooldid-text' => 'پێداچوەنەوەی مەبەستت ڕاچاو نەکردە بۆ ئەنجامی ئەم فەنکشێنە یان ئەو پێداچوونەوەی ڕاچاوت کردە بوونی نیە، یا خەریکی هەوڵی داشاردنی پێداچوونەوهی ئێستا‌ ئەدەی.',
 'revdelete-nologtype-title' => 'جۆری لۆگ ڕاچاو نەکراوە',
@@ -983,12 +986,12 @@ $3 هۆکاری "$2" خستوەتەڕوو',
 * سووکایەتیکردن بە کەسایەتییەک<br />
 * بڵاوکردنەوەی زانیاریی تاکەکەسی نەگونجاو<br />
 *: '' ناونیشانی ماڵ یا ژمارە تەلەفۆن و وەک ئەمانە.''<br />",
-'revdelete-legend' => 'داÙ\86اÙ\86Û\8c Ø¨Û\95ربÛ\95ستÛ\95کاÙ\86Û\8c Ø¨Û\95رÚ\86اÙ\88کەوتن',
-'revdelete-hide-text' => 'داشاردÙ\86ی دەقی پێداچوونەوە',
+'revdelete-legend' => 'سÙ\86Ù\88Ù\88ردارکردÙ\86Û\8c Ø¯Û\95رکەوتن',
+'revdelete-hide-text' => 'شاردÙ\86Û\95Ù\88Û\95ی دەقی پێداچوونەوە',
 'revdelete-hide-image' => 'ناوەڕۆکی پەڕگە بشارەوە',
 'revdelete-hide-name' => 'داشاردنی مەبەست و کردەوە',
-'revdelete-hide-comment' => 'داشاردÙ\86Û\8c Ù¾Ù\88Ø®تەی دەستکاری',
-'revdelete-hide-user' => 'شاردنەوەی ناوی بەکارهێنەری\\ئای-‌پی دەستکاریکەر',
+'revdelete-hide-comment' => 'شاردÙ\86Û\95Ù\88Û\95Û\8c Ú©Ù\88رتەی دەستکاری',
+'revdelete-hide-user' => 'شاردنەوەی ناوی بەکارھێنەری/ئای-‌پی دەستکاریکەر',
 'revdelete-hide-restricted' => 'بەرگری دراوە لە بەڕێوبەران هەر وەک ئەوانی دیکە',
 'revdelete-radio-same' => '(مەیگۆڕە)',
 'revdelete-radio-set' => 'بەڵێ',
@@ -1023,9 +1026,9 @@ $1",
 ** لادان لە مافی لەبەرگرتنەوە
 ** زانیارە تاکەکەسییە نابەجێیەکان
 ** Potentially libelous information',
-'revdelete-otherreason' => 'هۆکاری دیکە/زیادی:',
+'revdelete-otherreason' => 'ھۆکاری تر/زیاتر:',
 'revdelete-reasonotherlist' => 'هۆکاری دیکە',
-'revdelete-edit-reasonlist' => 'دەستکاری هۆکارەکانی سڕینەوە',
+'revdelete-edit-reasonlist' => 'دەستکاریی ھۆکارەکانی سڕینەوە',
 'revdelete-offender' => 'نووسەری پیاچوونەوە:',
 
 # Suppression log
@@ -1474,9 +1477,9 @@ $1",
 بۆ بینینی و گەڕان لەو پەڕگانەی پێشتر بار کراون، بڕۆ بۆ [[Special:FileList|لیستی پەڕگە بارکراوەکان]]، ھەروەھا [[Special:Log/upload|ڕەشنووسی بارکردنەکان]] و [[Special:Log/delete|ڕەشنووسی سڕینەوەکان]].
 
 بۆ بەکارھێنانی پەڕگەیەک لە پەڕەیەکدا، بەستەرێک بە یەکێک لەم شێوازانەی خوارەوە بە کار بێنە:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' بۆ بەکارهێنانی وەشانی تەواوی پەڕگە
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|دەقی جێگر]]</nowiki></tt>''' بۆ بەکارهێنانی نمایشێکی بە پانتایی ٢٠٠ پیکسەڵ لە چوارچێوەیەک لە لای چەپەوە بە «دەقی جێگر» وەک شرۆڤە
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' بۆ بەستەرپێدان بە پەڕگەکە بێ نیشاندانی خودی پەڕگەکە",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' بۆ بەکارهێنانی وەشانی تەواوی پەڕگە
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|دەقی جێگر]]</nowiki></code>''' بۆ بەکارهێنانی نمایشێکی بە پانتایی ٢٠٠ پیکسەڵ لە چوارچێوەیەک لە لای چەپەوە بە «دەقی جێگر» وەک شرۆڤە
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' بۆ بەستەرپێدان بە پەڕگەکە بێ نیشاندانی خودی پەڕگەکە",
 'upload-permitted' => 'جۆرە پەڕگە ڕێگەپێدراوەکان: $1.',
 'upload-preferred' => 'جۆرە پەڕگانەی بە باشتر دەزانرێن: $1.',
 'upload-prohibited' => 'جۆرە پەڕگانەی قەدەغە کراون: $1.',
@@ -1508,26 +1511,27 @@ $2، ئەو جۆرە {{PLURAL:$3|پەڕگەیە کە ڕێگەی|پەڕگانەی
 'file-too-large' => 'ئەو پەڕگەیە ناردووتە زۆر گەورەیە.',
 'filename-tooshort' => 'ناوی پەڕگە زۆر کورتە.',
 'filetype-banned' => 'ئەم جۆرە پەڕگەیە قەدەغەیە.',
+'unknown-error' => 'ھەڵەیەکی نەزانراو ڕوویداوە.',
 'large-file' => 'پێشنیار دەکرێت قەبارەی پەڕگەکان زیاتر لە $1 نەبێت؛
 قەبارەی ئەم پەڕگە $2.',
 'largefileserver' => 'ئەم پەڕگە گەورەتر لەوەیە کە ڕاژەکار ڕێگەدەدات.',
 'emptyfile' => 'ئەو پەڕگەی بارت‌کرد لەوەدەچێ بەتاڵ و خاڵی بێت.
 شایەد ئەوە جۆرە هەڵەیەک لە ناوی لاپەڕەکە بێت.
 گەر بە ڕاستی دەتەوێ ئەو پەڕگە باربکەی جارێکی‌کە چاوی لێ‌بکەوە.',
-'fileexists' => "پەڕگەیەک هەر بەو ناوە‌ لە پێش‌دا هەیە، تکایە گەر ئەرخەیان نیت بۆ گۆڕینی، چاوێک لە '''<tt>[[:$1]]</tt>''' بکە.
-[[$1|thumb]]",
-'filepageexists' => "پەڕەی ناساندن بۆ ئەم پەڕگە پێشتر لە '''<tt>[[:$1]]</tt>''' درووستکراوە، بەڵام پەڕگەیەک بەو ناوەوە ئێستا نادۆزرێتەوە.
+'fileexists' => 'پەڕگەیەک هەر بەو ناوە‌ لە پێش‌دا هەیە، تکایە گەر ئەرخەیان نیت بۆ گۆڕینی، چاوێک لە <strong>[[:$1]]</strong> بکە.
+[[$1|thumb]]',
+'filepageexists' => 'پەڕەی ناساندن بۆ ئەم پەڕگە پێشتر لە <strong>[[:$1]]</strong> درووستکراوە، بەڵام پەڕگەیەک بەو ناوەوە ئێستا نادۆزرێتەوە.
 ئەو پوختەی کە نووسیوتە لە پەڕەی ناساندن بەرچاو ناکەوێت.
 گەر دەتەوێ پوختەکەت بەرچاو کەوێت دەبێ خۆت دەستی دەستکاری بکەی.
-[[$1|thumb]]",
-'fileexists-extension' => "پەڕگەیەک هەر بەو ناوە هەیە: [[$2|thumb]]
-* ناوی ئەو پەڕگەی باری ئەکەی:'''<tt>[[:$1]]</tt>'''
-* ناوی ئەو پەڕگەی ئێستا هەیە:'''<tt>[[:$2]]</tt>'''
-تکایە ناوێکی دیکە هەڵبژێرە.",
+[[$1|thumb]]',
+'fileexists-extension' => 'پەڕگەیەک هەر بەو ناوە هەیە: [[$2|thumb]]
+* ناوی ئەو پەڕگەی باری ئەکەی:<strong>[[:$1]]</strong>
+* ناوی ئەو پەڕگەی ئێستا هەیە:<strong>[[:$2]]</strong>
+تکایە ناوێکی دیکە هەڵبژێرە.',
 'fileexists-thumbnail-yes' => "لەوە دەچێ ئەم پەڕگە وێنەیەکی بچووک‌کراوە بێت ''(هێما)''. [[$1|thumb]]
-تکایە چاو لە پەڕگەی '''<tt>[[:$1]]</tt>''' بکه.‌
+تکایە چاو لە پەڕگەی <strong>[[:$1]]</strong> بکه.‌
 گەر ئەوەی چاوت لێ‌کرد قەبارەی ڕەسەنی هەر ئەو وێنەیە، پێویست ناکات دیسان هێماکەی باربکەی.",
-'file-thumbnail-no' => "دەستپێکی ناوی ئەم پەڕگە ئەوەیە: '''<tt>$1</tt>'''
+'file-thumbnail-no' => "دەستپێکی ناوی ئەم پەڕگە ئەوەیە: <strong>$1</strong>
 لەوە دەچێ ئەم پەڕگە وێنەیەکی بچووک‌کراوە بێت ''(هێما)''.
 گەر ئەو وێنەت لە قەبارەی ڕەسەنی‌ خۆی‌دا هەیه،‌ تکایە ئەوە بار بکه،‌ دەنا ناوی پەڕگەکە بگۆڕە.",
 'fileexists-forbidden' => 'پەڕگەیەک بەو ناوە لە پێش‌دا هەیە و سەرنووسین ناکرێت.
@@ -1553,10 +1557,10 @@ $2، ئەو جۆرە {{PLURAL:$3|پەڕگەیە کە ڕێگەی|پەڕگانەی
 'sourcefilename' => 'ناوی پەڕگەی سەرچاوە:',
 'sourceurl' => 'URLی سەرچاوە:',
 'destfilename' => 'ناوی مەبەست:',
-'upload-maxfilesize' => 'ئەو پەری قەبارەی فایل: $1',
+'upload-maxfilesize' => 'ئەوپەڕی قەبارەی پەڕگە: $1',
 'upload-description' => 'پێناسەی پەڕگە',
 'upload-options' => 'ھەڵبژاردەکانی  بارکردن',
-'watchthisupload' => 'چاودێریی ئەم پەڕگە بکە',
+'watchthisupload' => 'چاودێریی ئەم پەڕگەیە بکە',
 'filewasdeleted' => 'پەڕگەیەک بەم ناوە لەم دواییانەدا بارکرا و بە خێرایی سڕایەوە.
 باشتر وایە پێش هەوڵی دووبارە بۆ بارکردن سەرنجی $1 بدەی.',
 'filename-bad-prefix' => "دەستپێکی ناوی ئەو پەڕگەی باری دەکەی '''\"\$1\"'''، کە ناوێکی ناسێنەر نیە؛ ئەو جۆرە ناوە زۆربەی کات کامێرا دیجیتاڵەکان خۆکار بەکاری‌دەبەن.
@@ -1593,6 +1597,9 @@ $1',
 'img-auth-nofile' => 'فایلی "$1" بوونی نیه‌',
 'img-auth-isdir' => 'هه‌وڵ ده‌ده‌ی بۆ کردنه‌وه‌ی بوخچه‌ی "$1" له‌ کاتێکدا ته‌نیا کردنه‌وه‌ی فایل رێپێدراوه‌',
 
+# HTTP errors
+'http-host-unreachable' => 'توانای دەست‌پێ‌گەیشتنی URL نیە',
+
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'توانای دەست‌پێ‌گەیشتنی URL نیە',
 'upload-curl-error6-text' => 'ئەو URL کە ڕاچاوت کردووە توانای دەست‌پێ‌گەیشتنی نییە.
@@ -1602,9 +1609,9 @@ $1',
 تکایە ئەرخەیان بە کە ماڵپەڕ بەردەوامە لە کارکردن، نەختێک ڕاوەستە و دیسان تاقی کەوە.
 لەوانەیە لە کاتێ کە کەمتر سەرقاڵ بێت تاقی بکەیتەوە باشتر بێت.',
 
-'license' => 'ئیجازەنامە:',
-'license-header' => 'ئیجازەنامە',
-'nolicense' => 'هیچ‌کام هەڵنەبژاردراوە',
+'license' => 'مۆڵەتنامە:',
+'license-header' => 'مۆڵەتنامە',
+'nolicense' => 'ھیچ ھەڵنەبژێردراوە',
 'license-nopreview' => '(پێشبینین ئامادەی کەڵک وەرگرتن نییە)',
 'upload_source_url' => ' (URLـی بەکار، بۆ دەست‌پێگەیشتنی  گشتی)',
 'upload_source_file' => ' (پەڕگەیەک لەسەر کۆمپیوتەرەکەت)',
@@ -1690,7 +1697,7 @@ $1',
 # MIME search
 'mimesearch' => 'گەڕانی MIME',
 'mimesearch-summary' => 'ئەم لاپەڕە پاڵێوتنی هەیە بۆ جۆرەکانی MIME.
-ناودراو: جۆرەی ناوەڕۆک\\ژێرجۆرە، وەک <tt>image/jpeg</tt>.',
+ناودراو: جۆرەی ناوەڕۆک\\ژێرجۆرە، وەک <code>image/jpeg</code>.',
 'mimetype' => 'جۆرەی MIME:',
 'download' => 'داگرتن',
 
@@ -1859,6 +1866,7 @@ $1',
 'allpagesbadtitle' => 'سەردێڕی لاپەڕە گونجاو نەبوو یان پێشگڕێکی بەینی‌زمانی یان بەینی‌ویکی هەبوو.
 لەوانەیە یەک یان زیاتر پیتی نەگونجاو بۆ سەردێڕی لەخۆ گرتبێ.',
 'allpages-bad-ns' => '{{SITENAME}} ناوبۆشایی نیە "$1".',
+'allpages-hide-redirects' => 'ڕەوانەکراوەکان بشارەوە',
 
 # Special:Categories
 'categories' => 'پۆلەكان',
@@ -1881,7 +1889,7 @@ $1',
 'linksearch-ok' => 'گەڕان',
 'linksearch-text' => 'Wildcardی وەک "*.wikipedia.org" بەکاردێت.
 لانی کەم پێویستی بە پاوانێکی ئاست-بان ھەیە، بۆ نموونە «*.org» .<br />
-پرۆتۆکۆلە پشتیوانی لێکراوەکان: <tt>$1</tt> (ھیچ کام لەمانە بە گەڕانەکەت زێدە مەکە).',
+پرۆتۆکۆلە پشتیوانی لێکراوەکان: <code>$1</code> (ھیچ کام لەمانە بە گەڕانەکەت زێدە مەکە).',
 'linksearch-line' => '$1 بەستەرپێ‌دراو لە $2',
 
 # Special:ListUsers
@@ -1926,6 +1934,7 @@ $1',
 'mailnologin' => 'ناونیشان بۆ ناردن نییه‌',
 'mailnologintext' => 'ده‌بێ له‌ [[Special:UserLogin|ژووره‌وه‌]] بیت و ناونیشانێکی بڕواپێ‌کراوی ئی‌مه‌یلت له‌ ناو [[Special:Preferences|هه‌ڵبژارده‌کان]] دیاری کردبێت تا بتوانی ئی‌مه‌یل بنێریت بۆ به‌کارهێنه‌رانی دیکه‌.',
 'emailuser' => 'ئیمەیل بنێرە بۆ ئەم بەکارھێنەرە',
+'emailuser-title-notarget' => 'ئیمەیل بۆ بەکارھێنەر',
 'emailpage' => 'ئیمەیل بۆ بەکارھێنەر',
 'emailpagetext' => 'دەتوانی لەم فۆرمەی خوارەوە کەڵک وەربگریت بۆ ناردنی پەیامێکی ئیمەیل بۆ ئەم بەکارھێنەرە.
 ئەو ئەدرەسی ئیمەیلە لە [[Special:Preferences|ھەڵبژاردەکانی بەکارھێنەر‌یتدا]] نووسیوتە، بۆ ئەدرەسی «لەلایەن» (From) لە ئیمەیلدا نیشان دەدرێت، کە وایە بەکارھێنەری وەرگر دەتوانێ ڕاستەوخۆ وەڵامت بداتەوە.',
@@ -1951,10 +1960,11 @@ $1',
 
 # User Messenger
 'usermessage-summary' => 'بەجێھێشتنی پەیامی سیستەم',
+'usermessage-editor' => 'پەیامنێری سیستەم',
 
 # Watchlist
 'watchlist' => 'لیستی چاودێرییەکانم',
-'mywatchlist' => 'Ù\84Û\8cستی چاودێرییەکانم',
+'mywatchlist' => 'Ù¾Û\8eرستی چاودێرییەکانم',
 'watchlistfor2' => 'بۆ $1 $2',
 'nowatchlist' => 'لە لیستی چاودێڕییەکانتدا ھیچ نیە.',
 'watchlistanontext' => 'تکایە بۆ دیتن و دەستکاری بابەتەکانی لە ناو لیستی چاودێریەکەت‌دا $1.',
@@ -2177,6 +2187,7 @@ $UNWATCHURL
 
 بۆ دیتنی پێشینەی دوایین سڕینەوەکان و هێنانەوەکان سەرنجی [[Special:Log/delete|لۆگی سڕینەوە]] بدە.",
 'undelete-header' => 'بۆ دیتنی ئەو لاپەڕانەی لەم داییانەدا سڕاونەتەوە چاو لە [[Special:Log/delete|لۆگی سڕینەوە]] بکە.',
+'undelete-search-title' => 'گەڕان بۆ لاپەڕە سڕاوەکان',
 'undelete-search-box' => 'گەڕان بۆ لاپەڕە سڕاوەکان',
 'undelete-search-prefix' => 'نیشان‌دانی ئەو لاپەڕانەی دەستپێکیان ئەمەیە:',
 'undelete-search-submit' => 'گەڕان',
@@ -2194,7 +2205,7 @@ $1',
 # Namespace form on various pages
 'namespace' => 'بۆشاییی ناو:',
 'invert' => 'ھەڵبژاردەکان پێچەوانە بکە',
-'namespace_association' => 'بۆشایی ناوی پەیوەندیدار',
+'namespace_association' => 'بۆشاییی ناوی پەیوەندیدار',
 'blanknamespace' => '(سەرەکی)',
 
 # Contributions
@@ -2241,7 +2252,10 @@ $1',
 'whatlinkshere-filters' => 'پاڵێوکەکان',
 
 # Block/unblock
+'block' => 'بەربەستکردنی بەکارهێنەر',
+'unblock' => 'لە بەربەست‌دەرهێنانی بەکارهێنەر',
 'blockip' => 'بەربەستنی بەکارھێنەر',
+'blockip-title' => 'بەربەستکردنی بەکارهێنەر',
 'blockip-legend' => 'بەربەست‌کردنی بەکارهێنەر',
 'blockiptext' => 'لەم فۆرمەی خوارەوە دەتوانی بۆ بەربەست‌کردنی دەست‌پێ‌گەیشتنی نووسین لە ناونیشانێکی ئای‌پی تایبەت یا ناوی بەکارهێنەریەک، کەڵک وەرگریت.
 ئەمە تەنها دەبێ بۆ بەرگری لە خراپکاری بەکاربێت و ڕێکەوتنی هەبێ دەگەڵ [[{{MediaWiki:Policy-url}}|سیاسەتەکان]].
@@ -2283,9 +2297,11 @@ $1',
 'ipusubmit' => 'لابردنی ئەم بەربەستە',
 'unblocked' => '[[User:$1|$1]] لە بەربەست دەرهێنرا',
 'unblocked-id' => 'بەربەستی $1 لابرا',
+'blocklist' => 'بەکارھێنەر بەربەستکراوەکان',
 'ipblocklist' => 'بەکارھێنەر بەربەستنکراوەکان',
 'ipblocklist-legend' => 'دۆزینەوەی بەکارهێنەرێکی بەربەست‌کراو',
 'blocklist-target' => 'مەبەست',
+'blocklist-expiry' => 'ھەتا:',
 'blocklist-reason' => 'ھۆکار',
 'ipblocklist-submit' => 'گەڕان',
 'infiniteblock' => 'بێکۆتایی',
@@ -2301,6 +2317,7 @@ $1',
 'unblocklink' => 'بەربەستن لابە',
 'change-blocklink' => 'بەربەستن بگۆڕە',
 'contribslink' => 'بەشدارییەکان',
+'emaillink' => 'ناردنی ئیمەیل',
 'autoblocker' => 'خۆکار بەربەست‌کراوە لەبەر ئەوەی ناونیشانی ئای‌پی تۆ لەم دواییانەدا لە لایەن "[[User:$1|$1]]" بەکار هاتووە.
 هۆکاری بەربەست‌کرانی $1 ئەمەیە: "$2"',
 'blocklogpage' => 'لۆگی بەربەستن',
@@ -2413,7 +2430,7 @@ $1',
 تکایە بە دەستی تێکەڵیان بکە.'''",
 'movedto' => 'گواسترایەوە بۆ',
 'movetalk' => 'پەڕەی وتووێژی پەیوەندیدار بگوازەوە',
-'move-subpages' => 'ژێرپەڕەکانی بگۆزەرەوە (بە ئەندازەی $1)',
+'move-subpages' => 'ژێرپەڕەکانی بگوازەوە (ھەتا $1 پەڕە)',
 'move-talk-subpages' => 'ژێرپەڕەکانی پەڕەی وتووێژی بگۆزەرەوە (ھەتاکوو $1)',
 'movepage-page-exists' => 'پەڕەی $1 هەیە و ناتوانرێت خۆکار بخرێتە جێی.',
 'movepage-page-moved' => 'پەڕەی $1 گۆزرایەوە بۆ $2.',
@@ -2440,6 +2457,7 @@ $1',
 'immobile-source-page' => 'ئەمە لاپەڕە بۆ گواستنەوە نابێت.',
 'immobile-target-page' => 'بۆ ئەم سەردێڕی ئامانجە جێگۆڕ ناکرێ.',
 'imagenocrossnamespace' => 'گواستنەوەی پەڕگە بۆ بۆشایی‌نوێکی غەیری پەڕگە گونجاو نیە.',
+'nonfile-cannot-move-to-file' => 'گواستنەوەی پەڕگە بۆ بۆشایی‌نوێکی غەیری پەڕگە گونجاو نیە.',
 'imagetypemismatch' => 'پاشگری ئەو پەڕگە نوێیە هاوتای جۆری پەڕگەکە نیە.',
 'imageinvalidfilename' => 'ناوی پەڕگەی ئامانج گونجاو نیە',
 'fix-double-redirects' => 'نوێ‌کەردنەوەی هەموو ڕەوانکەرەکان وا ئاماژە بە سەردێڕە سەرەکیەکە دەکەن',
@@ -2553,7 +2571,7 @@ $1',
 'tooltip-pt-mytalk' => 'پەڕەی وتوبێژی تۆ',
 'tooltip-pt-anontalk' => 'لێدوان لەسەر دەستکارییەکان لەم ئایپی ئەدرەسەوە',
 'tooltip-pt-preferences' => 'بژاردەکانت',
-'tooltip-pt-watchlist' => 'Ù\84Û\8cستÛ\8c Ø¦Û\95Ù\88 Ù¾Û\95Ú\95اÙ\86Û\95 Ú©Û\95 Ú\86اÙ\88دÛ\8eری گۆڕانکارییەکانیانی دەکەی',
+'tooltip-pt-watchlist' => 'Ù¾Û\8eرستÛ\8c Ø¦Û\95Ù\88 Ù¾Û\95Ú\95اÙ\86Û\95 Ú©Û\95 Ú\86اÙ\88دÛ\8eرÛ\8cی گۆڕانکارییەکانیانی دەکەی',
 'tooltip-pt-mycontris' => 'لیستی بەشدارییەکانت',
 'tooltip-pt-login' => 'پێشنیارت پێدەکرێ بچیتە ژوورەوە؛ ھەرچەندە زۆرت لێناکرێ',
 'tooltip-pt-anonlogin' => 'پێشنیار دەکەین بڕۆیتەژوورەوە، ئەگەرچی ئەوە زۆرەملیی نیە',
@@ -2565,6 +2583,7 @@ $1',
 ئەتوانی سەرچاوەکەی ببینیت',
 'tooltip-ca-history' => 'وەشانەکانی پێشووی ئەم پەڕەیە',
 'tooltip-ca-protect' => 'ئەم پەڕەیە بپارێزە',
+'tooltip-ca-unprotect' => 'پاراستنی ئەم پەڕەیە بگۆڕە',
 'tooltip-ca-delete' => 'ئەم پەڕەیە بسڕەوە',
 'tooltip-ca-undelete' => 'هێنانەوەی دەستکاریەکانی پیش سڕینەوە وا لەسەر ئەم لاپەڕە ڕووی‌داوە',
 'tooltip-ca-move' => 'ئەم پەڕەیە بگوازەوە',
@@ -2607,6 +2626,8 @@ $1',
 'tooltip-diff' => 'نیشان دانی گۆڕانکارییەکانت لە دەقەکەدا',
 'tooltip-compareselectedversions' => 'جیاوازییەکانی دوو وەشانە دیاریکراوەی ئەم پەڕە ببینە.',
 'tooltip-watch' => 'ئەم پەڕە بخە سەر لیستی چاودێریت',
+'tooltip-watchlistedit-normal-submit' => 'ناونیشانەکان لاببە',
+'tooltip-watchlistedit-raw-submit' => 'نوێکردنەوەی لیستی چاودێری',
 'tooltip-recreate' => 'درووست‌کردنەوەی لاپەڕە ئەگەرچی سڕاوەتەوە',
 'tooltip-upload' => 'دەستپێکردنی بارکردن',
 'tooltip-rollback' => "''گەڕاندنەوە'' بە یەک کلیک گۆڕانکاری (گۆڕانکارییەکانی) ئەم پەڕە ئەباتەوە بۆ ھی دواین بەشدار",
@@ -2639,13 +2660,9 @@ $1',
 # Info page
 'pageinfo-title' => 'زانیاری بۆ «$1»',
 'pageinfo-header-edits' => 'دەستکاریەکان',
-'pageinfo-header-watchlist' => 'لیستی چاودێری',
-'pageinfo-header-views' => 'بینینەکان',
-'pageinfo-subjectpage' => 'پەڕە',
-'pageinfo-talkpage' => 'پەڕەی وتووێژ',
+'pageinfo-views' => 'ژمارەی بینینەکان',
 'pageinfo-watchers' => 'ژمارەی چاودێران',
 'pageinfo-edits' => 'ژمارەی دەستکارییەکان',
-'pageinfo-views' => 'ژمارەی بینینەکان',
 
 # Skin names
 'skinname-standard' => 'کلاسیک',
@@ -3197,6 +3214,8 @@ $5
 # New logging system
 'logentry-delete-delete' => '$1 پەڕەی $3ی سڕییەوە',
 'logentry-delete-restore' => '$1 پەڕەی $3ی ھێنایەوە',
+'logentry-delete-revision' => '$1 دەرکەوتنی {{PLURAL:$5|پێداچوونەوەیکی|$5 پێداچوونەوەی}} پەڕەی $3 گۆڕیی: $4',
+'revdelete-content-hid' => 'شاردنەوەی ناوەرۆک',
 'revdelete-restricted' => 'ئەو سنووری بەرگریانەی خستراوەتە سەر بەڕێوبەران',
 'revdelete-unrestricted' => 'ئەو سنووری بەرگریانەی لابردراوە لە سەر بەڕێوبەران',
 'logentry-move-move' => '$1 پەڕەی $3ی گواستەوە بۆ $4',
index 3f0d6d3..92cc193 100644 (file)
@@ -714,7 +714,7 @@ $2 къулланыджысына вакътынджа <code>$3</code> паро
 'copyrightwarning' => "'''Лютфен, дикъкъат:''' {{SITENAME}} сайтына къошулгъан бутюн исселер <i>$2</i> мукъавелеси даиресиндедир (тафсилят ичюн $1 саифесине бакъынъыз).
 Къошкъан иссенъизнинъ башкъа инсанлар тарафындан аджымасызджа денъиштирильмесини я да азат тарзда ве сынъырсызджа башкъа ерлерге дагъытылмасыны истемесенъиз, иссе къошманъыз.<br />
 Айрыджа, мында иссе къошып, бу иссенинъ озюнъиз тарафындан язылгъанына, я да джемааткъа ачыкъ бир менбадан я да башкъа бир азат менбадан копиялангъанына гарантия берген оласынъыз.<br />
-'''<center>МУЭЛЛИФЛИК АКЪКЪЫНЕН КЪОРЧАЛАНГЪАН ИЧ БИР МЕТИННИ МЫНДА РУХСЕТСИЗ КЪОШМАНЪЫЗ!</center>'''",
+'''МУЭЛЛИФЛИК АКЪКЪЫНЕН КЪОРЧАЛАНГЪАН ИЧ БИР МЕТИННИ МЫНДА РУХСЕТСИЗ КЪОШМАНЪЫЗ!'''",
 'copyrightwarning2' => "'''Лютфен, дикъкъат:''' {{SITENAME}} сайтына сиз къошкъан бутюн исселер башкъа бир къулланыджы тарафындан денъиштирилип я да ёкъ этилип олур. Къошкъан иссенъизнинъ башкъа инсанлар тарафындан аджымасызджа денъиштирильмесини я да азат тарзда ве сынъырсызджа башкъа ерлерге дагъытылмасыны истемесенъиз, иссе къошманъыз.<br />
 Айрыджа, мында иссе къошып, бу иссенинъ озюнъиз тарафындан язылгъанына, я да джемааткъа ачыкъ бир менбадан я да башкъа бир азат менбадан копиялангъанына гарантия берген оласынъыз ($1 бакъынъыз).<br />
 '''МУЭЛЛИФЛИК АКЪКЪЫНЕН КЪОРЧАЛАНГЪАН ИЧ БИР МЕТИННИ МЫНДА РУХСЕТСИЗ КЪОШМАНЪЫЗ!'''",
@@ -1094,9 +1094,9 @@ $3 мына бу себепни бильдирди: ''$2''",
 Эвельдже юкленген ресим тапмакъ я да бакъмакъ ичюн [[Special:FileList|юкленген файллар джедвелине]] кечинъиз, бундан гъайры файл юкленюв ве ёкъ этилюв къайдларыны [[Special:Log/upload|юкленюв журналында]] ве [[Special:Log/delete|ёкъ этилюв журналында]] тапып оласынъыз.
 
 Саифеде ресим къулланмакъ ичюн бойле шекилли багълантылар къулланынъыз:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' файлнынъ там версиясыны къулланмакъ ичюн,
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|tarif]]</nowiki></tt>''' бир тариф иле 200 пиксель бир ресим къулланмакъ ичюн,
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' файлгъа вастасыз багъланты ичюн.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' файлнынъ там версиясыны къулланмакъ ичюн,
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|tarif]]</nowiki></code>''' бир тариф иле 200 пиксель бир ресим къулланмакъ ичюн,
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' файлгъа вастасыз багъланты ичюн.",
 'upload-permitted' => 'Изинли файл чешитлери: $1.',
 'upload-preferred' => 'Истенильген файл чешитлери: $1.',
 'upload-prohibited' => 'Ясакълы файл чешитлери: $1.',
@@ -1128,21 +1128,21 @@ $3 мына бу себепни бильдирди: ''$2''",
 'emptyfile' => 'Ихтимал ки, юкленген файл бош.
 Ихтималлы себеп - файл адландырув хатасыдыр.
 Лютфен, тамам бу файлны юклемеге истейджек экенинъизни тешкеринъиз.',
-'fileexists' => "Бу исимде бир файл энди бар.
-Лютфен, эгер сиз денъиштирмектен эмин олмасанъыз башта '''<tt>[[:$1]]</tt>''' файлына козь ташланъыз.
-[[$1|thumb]]",
-'filepageexists' => "Бу файл ичюн тасвир саифеси энди япылгъан ('''<tt>[[:$1]]</tt>'''), лякин бу адда бир файл ёкътыр.
+'fileexists' => 'Бу исимде бир файл энди бар.
+Лютфен, эгер сиз денъиштирмектен эмин олмасанъыз башта <strong>[[:$1]]</strong> файлына козь ташланъыз.
+[[$1|thumb]]',
+'filepageexists' => 'Бу файл ичюн тасвир саифеси энди япылгъан (<strong>[[:$1]]</strong>), лякин бу адда бир файл ёкътыр.
 Язылгъан тасвиринъиз файл саифесинде косьтерильмейджек.
 Тасвиринъиз анда косьтериледжеги ичюн, буны къолнен денъиштирмек керексинъиз.
-[[$1|thumb]]",
-'fileexists-extension' => "Бунъа ошагъан адда бир файл бар: [[$2|thumb]]
-* Юкленген файлнынъ ады: '''<tt>[[:$1]]</tt>'''
-* Мевджут олгъан файлнынъ ады: '''<tt>[[:$2]]</tt>'''
-Лютфен, башкъа бир ад сайлап язынъыз.",
-'fileexists-thumbnail-yes' => "Бельки де бу файл бир уфакълаштырылгъан копиядыр (thumbnail). [[$1|thumb]]
-Лютфен, '''<tt>[[:$1]]</tt>''' файлыны тешкеринъиз.
-Эгер шу файл айны шу ресим олса, онынъ уфакълаштырылгъан копиясыны айры оларакъ юклемек аджети ёкътыр.",
-'file-thumbnail-no' => "Файлнынъ ады '''<tt>$1</tt>'''нен башлана. Бельки де бу ресимнинъ уфакълаштырылгъан бир копиясыдыр ''(thumbnail)''.
+[[$1|thumb]]',
+'fileexists-extension' => 'Бунъа ошагъан адда бир файл бар: [[$2|thumb]]
+* Юкленген файлнынъ ады: <strong>[[:$1]]</strong>
+* Мевджут олгъан файлнынъ ады: <strong>[[:$2]]</strong>
+Лютфен, башкъа бир ад сайлап язынъыз.',
+'fileexists-thumbnail-yes' => 'Бельки де бу файл бир уфакълаштырылгъан копиядыр (thumbnail). [[$1|thumb]]
+Лютфен, <strong>[[:$1]]</strong> файлыны тешкеринъиз.
+Эгер шу файл айны шу ресим олса, онынъ уфакълаштырылгъан копиясыны айры оларакъ юклемек аджети ёкътыр.',
+'file-thumbnail-no' => "Файлнынъ ады <strong>$1</strong>нен башлана. Бельки де бу ресимнинъ уфакълаштырылгъан бир копиясыдыр ''(thumbnail)''.
 Эгер сизде бу ресим там буюклигинде бар олса, лютфен, оны юкленъинъиз я да файлнынъ адыны денъиштиринъиз.",
 'fileexists-forbidden' => 'Бу исимде бир файл энди бар, ве узерине языламай.
 Файлынъызны янъыдан юклемеге истесенъиз, лютфен, кери къайтып янъы бир исим къулланынъыз.
index cf1790c..02d032d 100644 (file)
@@ -708,10 +708,10 @@ Siziñ deñişmeleriñiz astında kösterildi. Şimdi yapqan deñişmeleriñizni
 'editingold' => "'''DİQQAT: Saifeniñ eski bir versiyasını deñiştireyatasız.
 Saifeni saqlağanıñızdan soñ bu tarihlı versiyadan künümizge qadar olğan deñişmeler yoq olacaq.'''",
 'yourdiff' => 'Farqlar',
-'copyrightwarning' => "'''Lütfen, diqqat:''' {{SITENAME}} saytına qoşulğan bütün isseler <i>$2</i> muqavelesi dairesindedir (tafsilât içün $1 saifesine baqıñız).
+'copyrightwarning' => "'''Lütfen, diqqat:''' {{SITENAME}} saytına qoşulğan bütün isseler $2 muqavelesi dairesindedir (tafsilât içün $1 saifesine baqıñız).
 Qoşqan isseñizniñ başqa insanlar tarafından acımasızca deñiştirilmesini ya da azat tarzda ve sıñırsızca başqa yerlerge dağıtılmasını istemeseñiz, isse qoşmañız.<br />
 Ayrıca, mında isse qoşıp, bu isseniñ özüñiz tarafından yazılğanına, ya da cemaatqa açıq bir menbadan ya da başqa bir azat menbadan kopiyalanğanına garantiya bergen olasıñız.<br />
-'''<center>MÜELLİFLİK AQQINEN QORÇALANĞAN İÇ BİR METİNNİ MINDA RUHSETSİZ QOŞMAÑIZ!</center>'''",
+'''MÜELLİFLİK AQQINEN QORÇALANĞAN İÇ BİR METİNNİ MINDA RUHSETSİZ QOŞMAÑIZ!'''",
 'copyrightwarning2' => "'''Lütfen, diqqat:''' {{SITENAME}} saytına siz qoşqan bütün isseler başqa bir qullanıcı tarafından deñiştirilip ya da yoq etilip olur. Qoşqan isseñizniñ başqa insanlar tarafından acımasızca deñiştirilmesini ya da azat tarzda ve sıñırsızca başqa yerlerge dağıtılmasını istemeseñiz, isse qoşmañız.<br />
 Ayrıca, mında isse qoşıp, bu isseniñ özüñiz tarafından yazılğanına, ya da cemaatqa açıq bir menbadan ya da başqa bir azat menbadan kopiyalanğanına garantiya bergen olasıñız ($1 baqıñız).<br />
 '''MÜELLİFLİK AQQINEN QORÇALANĞAN İÇ BİR METİNNİ MINDA RUHSETSİZ QOŞMAÑIZ!'''",
@@ -1091,9 +1091,9 @@ Eger bildirseñiz, saifelerdeki deñişmelerni kimniñ yapqanını köstermek i
 Evelce yüklengen resim tapmaq ya da baqmaq içün [[Special:FileList|yüklengen fayllar cedveline]] keçiñiz, bundan ğayrı fayl yüklenüv ve yoq etilüv qaydlarını [[Special:Log/upload|yüklenüv jurnalında]] ve [[Special:Log/delete|yoq etilüv jurnalında]] tapıp olasıñız.
 
 Saifede resim qullanmaq içün böyle şekilli bağlantılar qullanıñız:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' faylnıñ tam versiyasını qullanmaq içün,
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|tarif]]</nowiki></tt>''' bir tarif ile 200 piksel bir resim qullanmaq içün,
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' faylğa vastasız bağlantı içün.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' faylnıñ tam versiyasını qullanmaq içün,
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|tarif]]</nowiki></code>''' bir tarif ile 200 piksel bir resim qullanmaq içün,
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' faylğa vastasız bağlantı içün.",
 'upload-permitted' => 'İzinli fayl çeşitleri: $1.',
 'upload-preferred' => 'İstenilgen fayl çeşitleri: $1.',
 'upload-prohibited' => 'Yasaqlı fayl çeşitleri: $1.',
@@ -1124,21 +1124,21 @@ Daa körgezmeli körüniş içün [[Special:NewFiles|yañı fayllar galereyasın
 'largefileserver' => 'Bu faylnıñ uzunlığı serverde izin berilgenden büyükçedir.',
 'emptyfile' => 'İhtimal ki, yüklengen fayl boş. İhtimallı sebep - fayl adlandıruv
 hatasıdır. Lütfen, tamam bu faylnı yüklemege isteycek ekeniñizni teşkeriñiz.',
-'fileexists' => "Bu isimde bir fayl endi bar.
-Lütfen, eger siz deñiştirmekten emin olmasañız başta '''<tt>[[:$1]]</tt>''' faylına köz taşlañız.
-[[$1|thumb]]",
-'filepageexists' => "Bu fayl içün tasvir saifesi endi yapılğan ('''<tt>[[:$1]]</tt>'''), lâkin bu adda bir fayl yoqtır.
+'fileexists' => 'Bu isimde bir fayl endi bar.
+Lütfen, eger siz deñiştirmekten emin olmasañız başta <strong>[[:$1]]</strong> faylına köz taşlañız.
+[[$1|thumb]]',
+'filepageexists' => 'Bu fayl içün tasvir saifesi endi yapılğan (<strong>[[:$1]]</strong>), lâkin bu adda bir fayl yoqtır.
 Yazılğan tasviriñiz fayl saifesinde kösterilmeycek.
 Tasviriñiz anda kösterilecegi içün, bunı qolnen deñiştirmek kereksiñiz.
-[[$1|thumb]]",
-'fileexists-extension' => "Buña oşağan adda bir fayl bar: [[$2|thumb]]
-* Yüklengen faylnıñ adı: '''<tt>[[:$1]]</tt>'''
-* Mevcut olğan faylnıñ adı: '''<tt>[[:$2]]</tt>'''
-Lütfen, başqa bir ad saylap yazıñız.",
-'fileexists-thumbnail-yes' => "Belki de bu fayl bir ufaqlaştırılğan kopiyadır (thumbnail). [[$1|thumb]]
-Lütfen, '''<tt>[[:$1]]</tt>''' faylını teşkeriñiz.
-Eger şu fayl aynı şu resim olsa, onıñ ufaqlaştırılğan kopiyasını ayrı olaraq yüklemek aceti yoqtır.",
-'file-thumbnail-no' => "Faylnıñ adı '''<tt>$1</tt>'''nen başlana. Belki de bu resimniñ ufaqlaştırılğan bir kopiyasıdır ''(thumbnail)''.
+[[$1|thumb]]',
+'fileexists-extension' => 'Buña oşağan adda bir fayl bar: [[$2|thumb]]
+* Yüklengen faylnıñ adı: <strong>[[:$1]]</strong>
+* Mevcut olğan faylnıñ adı: <strong>[[:$2]]</strong>
+Lütfen, başqa bir ad saylap yazıñız.',
+'fileexists-thumbnail-yes' => 'Belki de bu fayl bir ufaqlaştırılğan kopiyadır (thumbnail). [[$1|thumb]]
+Lütfen, <strong>[[:$1]]</strong> faylını teşkeriñiz.
+Eger şu fayl aynı şu resim olsa, onıñ ufaqlaştırılğan kopiyasını ayrı olaraq yüklemek aceti yoqtır.',
+'file-thumbnail-no' => "Faylnıñ adı <strong>$1</strong>nen başlana. Belki de bu resimniñ ufaqlaştırılğan bir kopiyasıdır ''(thumbnail)''.
 Eger sizde bu resim tam büyükliginde bar olsa, lütfen, onı yükleñiñiz ya da faylnıñ adını deñiştiriñiz.",
 'fileexists-forbidden' => 'Bu isimde bir fayl endi bar, ve üzerine yazılamay.
 Faylıñıznı yañıdan yüklemege isteseñiz, lütfen, keri qaytıp yañı bir isim qullanıñız.
index ed5f68d..ac1df15 100644 (file)
@@ -679,9 +679,9 @@ Zkuste se podívat na [[Special:SpecialPages|seznam všech existujících speci
 'dberrortext' => 'Při dotazu do databáze došlo k syntaktické chybě.
 Příčinou může být chyba v programu.
 Poslední dotaz byl:
-<blockquote><tt>$1</tt></blockquote>
-z funkce „<tt>$2</tt>“.
-Databáze vrátila chybu „<tt>$3: $4</tt>“.',
+<blockquote><code>$1</code></blockquote>
+z funkce „<code>$2</code>“.
+Databáze vrátila chybu „<samp>$3: $4</samp>“.',
 'dberrortextcl' => 'Při dotazu do databáze došlo k syntaktické chybě.
 Poslední dotaz byl:
 „$1“
@@ -1022,7 +1022,6 @@ Zde je pro přehled zobrazen nejnovější záznam z knihy zablokování:',
 * '''Firefox / Safari:''' Při kliknutí na ''Aktualizovat'' držte ''Shift'' nebo stiskněte ''Ctrl-F5'' nebo ''Ctrl-R'' (na Macu ''⌘-R'').
 * '''Google Chrome:''' Stiskněte ''Ctrl-Shift-R'' (na Macu ''⌘-Shift-R'').
 * '''Internet Explorer:''' Při kliknutí na ''Aktualizovat'' držte ''Ctrl'' nebo stiskněte ''Ctrl-F5''.
-* '''Konqueror:''' Klikněte na ''Aktualizovat'' nebo stiskněte ''F5''.
 * '''Opera:''' Smažte obsah cache v menu ''Nástroje → Nastavení''.",
 'usercssyoucanpreview' => "'''Tip:''' Použijte tlačítko „{{int:showpreview}}“ k testování vašeho nového CSS před uložením.",
 'userjsyoucanpreview' => "'''Tip:''' Použijte tlačítko „{{int:showpreview}}“ k testování vašeho nového JavaScriptu před uložením.",
@@ -1346,7 +1345,7 @@ Podrobnosti mohou být uvedeny v [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'shown-title' => 'Zobrazit $1 {{PLURAL:$1|výsledek|výsledky|výsledků}} na stránku',
 'viewprevnext' => 'Ukázat ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-legend' => 'Možnosti hledání',
-'searchmenu-exists' => "*Stránka '''[[$1]]'''",
+'searchmenu-exists' => "'''Na této wiki existuje stránka nazvaná „[[:$1]]“.'''",
 'searchmenu-new' => "'''Vytvořte na této wiki stránku „[[:$1]]“!'''",
 'searchhelp-url' => 'Help:Obsah',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Zobrazit stránky, jejichž název začíná „$1“]]',
@@ -1780,19 +1779,19 @@ Pro vložení obrázku do stránky použijte jeden z následujících způsobů
 'largefileserver' => 'Velikost tohoto souboru překračuje limit nastavený na serveru.',
 'emptyfile' => 'Soubor, který jste vložili, se zdá být prázdný. Mohl to způsobit překlep v názvu souboru. Prosím zkontrolujte, zda jste opravdu chtěli vložit tento soubor.',
 'windows-nonascii-filename' => 'Tato wiki nepodporuje názvy souborů obsahující zvláštní znaky.',
-'fileexists' => "Soubor s tímto jménem již existuje, prosím podívejte se na '''<tt>[[:$1]]</tt>''', pokud nevíte jistě, zda chcete tento soubor nahradit.
-[[$1|thumb]]",
-'filepageexists' => "Popisná stránka pro soubor s tímto jménem již byla na '''<tt>[[:$1]]</tt>''' založena, avšak odpovídající soubor dosud neexistuje.
+'fileexists' => 'Soubor s tímto jménem již existuje, prosím podívejte se na <strong>[[:$1]]</strong>, pokud nevíte jistě, zda chcete tento soubor nahradit.
+[[$1|thumb]]',
+'filepageexists' => 'Popisná stránka pro soubor s tímto jménem již byla na <strong>[[:$1]]</strong> založena, avšak odpovídající soubor dosud neexistuje.
 Shrnutí, které zde uvedete, se na popisné stránce nezobrazí.
-Pokud tam chcete své shrnutí zobrazit, budete muset příslušnou stránku editovat ručně. [[$1|thumb]]",
-'fileexists-extension' => "Již existuje soubor s podobným jménem: [[$2|thumb]]
-* Jméno načítaného souboru: '''<tt>[[:$1]]</tt>'''
-* Jméno existujícího souboru: '''<tt>[[:$2]]</tt>'''
-Vyberte jiné jméno.",
+Pokud tam chcete své shrnutí zobrazit, budete muset příslušnou stránku editovat ručně. [[$1|thumb]]',
+'fileexists-extension' => 'Již existuje soubor s podobným jménem: [[$2|thumb]]
+* Jméno načítaného souboru: <strong>[[:$1]]</strong>
+* Jméno existujícího souboru: <strong>[[:$2]]</strong>
+Vyberte jiné jméno.',
 'fileexists-thumbnail-yes' => "Tento soubor je zřejmě obrázek ve zmenšené velikosti ''(náhled)''. [[$1|thumb]]
-Zkontrolujte soubor '''<tt>[[:$1]]</tt>'''.
+Zkontrolujte soubor <strong>[[:$1]]</strong>.
 Pokud je zmiňovaný soubor větší, ale jinak stejný, není potřeba zvlášť načítat jeho zmenšenou verzi.",
-'file-thumbnail-no' => "Jméno souboru začíná na '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Jméno souboru začíná na <strong>$1</strong>.
 Možná to je obrázek ve zmenšené velikosti ''(náhled)''.
 Načtěte soubor v plném rozlišením, pokud je k dispozici, nebo změňte jméno souboru.",
 'fileexists-forbidden' => 'Soubor s tímto názvem již existuje a není dovoleno ho přepsat.
@@ -2017,6 +2016,7 @@ Možná spíše chcete upravit [$2 tamější stránku s popisem souboru].',
 'shared-repo-from' => 'z {{grammar:2sg|$1}}',
 'shared-repo' => 'sdíleného úložiště',
 'filepage.css' => '/* Zde uvedené CSS se vkládá na stránky s popisem souboru, včetně cizích klientských wiki */',
+'upload-disallowed-here' => 'Tento soubor bohužel nemůžete přepsat.',
 
 # File reversion
 'filerevert' => 'Vrátit zpět $1',
@@ -2124,6 +2124,7 @@ Každý řádek obsahuje odkaz na první a druhé přesměrování a k tomu cíl
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|bajt|bajty|bajtů}}',
 'ncategories' => '$1 {{PLURAL:$1|kategorie|kategorie|kategorií}}',
+'ninterwikis' => '$1 {{PLURAL:$1|mezijazykový odkaz|mezijazykové odkazy|mezijazykových odkazů}}',
 'nlinks' => '$1 {{PLURAL:$1|odkaz|odkazy|odkazů}}',
 'nmembers' => '$1 {{PLURAL:$1|stránka|stránky|stránek}}',
 'nrevisions' => '$1 {{PLURAL:$1|revize|revize|revizí}}',
@@ -2152,6 +2153,7 @@ Každý řádek obsahuje odkaz na první a druhé přesměrování a k tomu cíl
 'mostlinkedtemplates' => 'Nejvkládanější šablony',
 'mostcategories' => 'Stránky s nejvyšším počtem kategorií',
 'mostimages' => 'Nejpoužívanější soubory',
+'mostinterwikis' => 'Stránky s nejvyšším počtem mezijazykových odkazů',
 'mostrevisions' => 'Stránky s nejvíce revizemi',
 'prefixindex' => 'Seznam stránek dle začátku názvu',
 'prefixindex-namespace' => 'Seznam stránek dle začátku názvu (jmenný prostor $1)',
@@ -2251,7 +2253,7 @@ Podívejte se také na [[Special:WantedCategories|žádané kategorie]].',
 'linksearch-ok' => 'Hledat',
 'linksearch-text' => 'Lze používat zástupné znaky, např. „*.wikipedia.org“.
 Povinná je přinejmenším doména nejvyššího řádu, např. „*.org“.<br />
-Podporované protokoly: <tt>$1</tt> (nepřidávejte je do hledání).',
+Podporované protokoly: <code>$1</code> (nepřidávejte je do hledání).',
 'linksearch-line' => '$2 odkazuje na $1',
 'linksearch-error' => 'Zástupné znaky lze použít jen na začátku doménového jména.',
 
@@ -2298,6 +2300,8 @@ Podporované protokoly: <tt>$1</tt> (nepřidávejte je do hledání).',
 'mailnologin' => 'Bez odesílací adresy',
 'mailnologintext' => 'Pokud chcete posílat e-maily jiným uživatelům, musíte se [[Special:UserLogin|přihlásit]] a mít platnou e-mailovou adresu ve svém [[Special:Preferences|nastavení]].',
 'emailuser' => 'Poslat e-mail',
+'emailuser-title-target' => 'Poslat e-mail {{GENDER:$1|tomuto uživateli|této uživatelce}}',
+'emailuser-title-notarget' => 'Poslat e-mail uživateli',
 'emailpage' => 'Poslat e-mail',
 'emailpagetext' => 'Pomocí níže zobrazeného formuláře můžete tomuto uživateli poslat zprávu e-mailem.
 E-mailová adresa, kterou máte uvedenu v [[Special:Preferences|nastavení]], se objeví jako adresa odesílatele pošty, aby vám adresát mohl odpovědět přímo.',
@@ -2510,10 +2514,10 @@ Současné nastavení pro tuto stránku je: '''$1''':",
 'pagesize' => '(bajtů)',
 
 # Restrictions (nouns)
-'restriction-edit' => 'editace',
-'restriction-move' => 'přesunutí',
-'restriction-create' => 'vytvoření',
-'restriction-upload' => 'Nahrávání souborů',
+'restriction-edit' => 'Editace',
+'restriction-move' => 'Přesunutí',
+'restriction-create' => 'Vytvoření',
+'restriction-upload' => 'Načtení souboru',
 
 # Restriction levels
 'restriction-level-sysop' => 'zamčeno',
@@ -2948,6 +2952,7 @@ Uložte jej na svůj disk a nahrajte ho sem.',
 'import-error-interwiki' => 'Stránka „$1“ se neimportuje, protože její název je vyhrazen pro externí odkazy (interwiki).',
 'import-error-special' => 'Stránka „$1“ se neimportuje, protože patří do speciálního jmenného prostoru, do kterého stránky nepatří.',
 'import-error-invalid' => 'Stránka „$1“ se neimportuje, protože její název je neplatný.',
+'import-rootpage-nosubpage' => 'Ve jmenném prostoru „$1“ kořenové stránky nejsou dovoleny podstránky.',
 
 # Import log
 'importlogpage' => 'Kniha importů',
@@ -3097,17 +3102,35 @@ Uložte jej na svůj disk a nahrajte ho sem.',
 'spam_deleting' => 'Všechny verze obsahovaly odkazy na $1, smazáno',
 
 # Info page
-'pageinfo-title' => 'Informace o "$1"',
-'pageinfo-header-edits' => 'Editace',
-'pageinfo-header-watchlist' => 'Sledované stránky',
-'pageinfo-header-views' => 'Zobrazení',
-'pageinfo-subjectpage' => 'Stránka',
-'pageinfo-talkpage' => 'Diskusní stránka',
-'pageinfo-watchers' => 'Počet sledujících',
-'pageinfo-edits' => 'Počet editací',
-'pageinfo-authors' => 'Počet různých autorů',
+'pageinfo-title' => 'Informace o stránce „$1“',
+'pageinfo-header-basic' => 'Základní údaje',
+'pageinfo-header-edits' => 'Historie editací',
+'pageinfo-header-restrictions' => 'Zámek stránky',
+'pageinfo-header-properties' => 'Vlastnosti stránky',
+'pageinfo-display-title' => 'Zobrazovaný název',
+'pageinfo-default-sort' => 'Výchozí klíč řazení',
+'pageinfo-length' => 'Velikost stránky (v bajtech)',
+'pageinfo-article-id' => 'ID stránky',
+'pageinfo-robot-policy' => 'Nastavení pro vyhledávače',
+'pageinfo-robot-index' => 'Indexovatelná',
+'pageinfo-robot-noindex' => 'Neindexovatelná',
 'pageinfo-views' => 'Počet zobrazení',
-'pageinfo-viewsperedit' => 'Počet zobrazení na editaci',
+'pageinfo-watchers' => 'Počet sledujících',
+'pageinfo-redirects-name' => 'Přesměrování na tuto stránku',
+'pageinfo-subpages-name' => 'Podstránky této stránky',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|přesměrování}}; $3 {{PLURAL:$3|nepřesměrování}})',
+'pageinfo-firstuser' => 'Zakladatel stránky',
+'pageinfo-firsttime' => 'Datum založení stránky',
+'pageinfo-lastuser' => 'Nejnovější editor',
+'pageinfo-lasttime' => 'Datum nejnovější editace',
+'pageinfo-edits' => 'Celkový počet editací',
+'pageinfo-authors' => 'Celkový počet různých autorů',
+'pageinfo-recent-edits' => 'Počet nedávných ($1) editací',
+'pageinfo-recent-authors' => 'Nedávný počet různých autorů',
+'pageinfo-restriction' => 'Zámek stránky (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Kouzelné slovo|Kouzelná slova}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Skrytá|Skryté}} kategorie ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Použitá šablona|Použité šablony}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Klasický',
@@ -3161,7 +3184,8 @@ Otevřením souboru můžete ohrozit svůj počítač.",
 'file-info-size' => '$1 × $2 pixelů, velikost souboru: $3, MIME typ: $4',
 'file-info-size-pages' => '$1 × $2 pixelů, velikost souboru: $3, MIME typ: $4, $5 {{PLURAL:$5|stránka|stránky|stránek}}',
 'file-nohires' => 'Větší rozlišení není k dispozici.',
-'svg-long-desc' => 'soubor SVG, nominální rozměr: $1 × $2 pixelů, velikost souboru: $3',
+'svg-long-desc' => 'Soubor SVG, nominální rozměr: $1 × $2 pixelů, velikost souboru: $3',
+'svg-long-desc-animated' => 'Animovaný soubor SVG, nominální rozměr: $1 × $2 pixelů, velikost souboru: $3',
 'show-big-image' => 'Obrázek ve vyšším rozlišení',
 'show-big-image-preview' => 'Velikost tohoto náhledu: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Jiné|Jiná}} rozlišení: $1.',
@@ -3171,6 +3195,8 @@ Otevřením souboru můžete ohrozit svůj počítač.",
 'file-info-png-looped' => 've smyčce',
 'file-info-png-repeat' => 'opakováno $1{{PLURAL:$1|krát|krát}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|snímek|snímky|snímků}}',
+'file-no-thumb-animation' => "'''Poznámka: Kvůli technickým omezením nebudou náhledy tohoto souboru animované.'''",
+'file-no-thumb-animation-gif' => "'''Poznámka: Kvůli technickým omezením nebudou náhledy obrázků GIF ve vysokém rozlišení, jako je tento, animované.'''",
 
 # Special:NewFiles
 'newimages' => 'Galerie nových souborů',
index 61de1fb..d6b834d 100644 (file)
@@ -79,7 +79,6 @@ $messages = array(
 'tog-watchlisthideliu' => 'Zatacë edicëje wlogòwónych brëkòwników na lësce ùzérónych artiklów',
 'tog-watchlisthideanons' => 'Zatacë edicëje anonimòwich brëkòwników na lësce ùzérónych artiklów',
 'tog-watchlisthidepatrolled' => 'Zatacë sprôwdzoné edicëje z lëstë ùzérónych artiklów',
-'tog-nolangconversion' => 'Wëłączë kònwersëjã wariantów',
 'tog-ccmeonemails' => 'Sélôj do mie kòpije e-mailów, chtërné sélóm do jinych brëkòwników',
 'tog-diffonly' => 'Nie wëskrzëniôj zamkłoscë starnë niżi przërónaniô zjinaków',
 'tog-showhiddencats' => 'Wëskrzëni zataconé kategòrëje',
@@ -768,9 +767,9 @@ Starnë z [[Special:Watchlist|lëstë ùzérónëch artiklów]] są '''pògrëbi
 Jeżlë chcesz przezdrzec abò szëkac w dotenczas wladowónëch lopkach, biéj do [[Special:FileList|lësta lopków]]. Kòżdi wladënk je registrowóny w [[Special:Log/upload|registrze wladënkù]], a rëmniãcé w [[Special:Log/delete|registrze rëmaniô]].
 
 Abë dodac lopk do starnë, ùżëjë ùniższegò lënka wedle nôslédnëch mùstrów:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Lopk.jpg]]</nowiki></tt>''' wëskrzëni całi lopk
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Lopk.png|200px|thumb|left|pòdpisënk òbrôzka]]</nowiki></tt>''' wëskrzëni z lewi starnë, przë ùbrzégù, miniaturkã w szérzë 200 pikslów w ramie, z nôdpisã 'pòdpisënk òbrôzka'
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Lopk.ogg]]</nowiki></tt>''' òtemknie prosti lënk do lopka bez wëskrzënianiô sómegò lopka",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Lopk.jpg]]</nowiki></code>''' wëskrzëni całi lopk
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Lopk.png|200px|thumb|left|pòdpisënk òbrôzka]]</nowiki></code>''' wëskrzëni z lewi starnë, przë ùbrzégù, miniaturkã w szérzë 200 pikslów w ramie, z nôdpisã 'pòdpisënk òbrôzka'
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Lopk.ogg]]</nowiki></code>''' òtemknie prosti lënk do lopka bez wëskrzënianiô sómegò lopka",
 'uploadlog' => 'Lësta wladënków',
 'uploadlogpage' => 'Dołączoné',
 'uploadlogpagetext' => 'Hewò je lësta slédno wladowónëch lopków.
index 0ee7fe9..c750c19 100644 (file)
@@ -734,11 +734,6 @@ $messages = array(
 'tooltip-ca-nstab-special' => 'си нарочьна страница ѥстъ · ѥѩжє иꙁмѣнꙗти нє можєши',
 'tooltip-watch' => 'си страницѧ блюдєниѥ',
 
-# Info page
-'pageinfo-header-watchlist' => 'блюдєниꙗ',
-'pageinfo-subjectpage' => 'страница',
-'pageinfo-talkpage' => 'бєсѣда',
-
 # Media information
 'file-info-size' => '$1 × $2 п҃ѯ · дѣла мѣра : $3 · MIME тѷпъ : $4',
 'svg-long-desc' => 'дѣло SVG · обꙑчьнъ обраꙁъ : $1 × $2 п҃ѯ · дѣла мѣра : $3',
index f0e56a8..e45ad2b 100644 (file)
@@ -435,12 +435,12 @@ Mae rhestr o'r tudalennau arbennig dilys i'w gael [[Special:SpecialPages|yma]]."
 # General errors
 'error' => 'Gwall',
 'databaseerror' => 'Gwall databas',
-'dberrortext' => 'Mae gwall cystrawen wedi taro\'r databas.
+'dberrortext' => 'Mae gwall cystrawen ymholi wedi taro\'r gronfa ddata.
 Efallai fod gwall yn y meddalwedd.
-Y gofyniad olaf y trïodd y databas oedd:
-<blockquote><tt>$1</tt></blockquote>
-o\'r ffwythiant "<tt>$2</tt>".
-Rhoddwyd y côd gwall "<tt>$3: $4</tt>".',
+Y gofyniad diwethaf a ofynwyd i\'r gronfa ddata oedd:
+<blockquote><code>$1</code></blockquote>
+o\'r ffwythiant "<code>$2</code>".
+Rhoddwyd y côd gwall "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Mae gwall cystrawen wedi taro\'r databas.
 Y gofyniad olaf y trïodd y databas oedd:
 "$1"
@@ -1489,9 +1489,9 @@ Dyma'r lòg dileu a symud ar gyfer y dudalen hon, er gwybodaeth:",
 I weld a chwilio am ffeiliau sydd eisoes wedi eu huwchlwytho, ewch at y [[Special:FileList|rhestr o'r ffeiliau sydd wedi eu huwchlwytho]]. I weld cofnodion uwchlwytho a dileu ffeiliau, ewch at y [[Special:Log/upload|lòg uwchlwytho]] neu'r [[Special:Log/delete|lòg dileu]].
 
 I osod ffeil mewn tudalen, defnyddiwch gyswllt wici ar un o'r ffurfiau canlynol:
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Ffeil.jpg]]</nowiki></tt>''', er mwyn defnyddio fersiwn llawn y ffeil
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Ffeil.png|200px|bawd|chwith|testun amgen]]</nowiki></tt>''' a wnaiff dangos llun 200 picsel o led mewn blwch ar yr ochr chwith, a'r testun 'testun amgen' wrth ei odre
-*'''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Ffeil.ogg]]</nowiki></tt>''' a fydd yn arwain yn syth at y ffeil heb arddangos y ffeil.",
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Ffeil.jpg]]</nowiki></code>''', er mwyn defnyddio fersiwn llawn y ffeil
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Ffeil.png|200px|bawd|chwith|testun amgen]]</nowiki></code>''' a wnaiff dangos llun 200 picsel o led mewn blwch ar yr ochr chwith, a'r testun 'testun amgen' wrth ei odre
+*'''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Ffeil.ogg]]</nowiki></code>''' a fydd yn arwain yn syth at y ffeil heb arddangos y ffeil.",
 'upload-permitted' => 'Mathau o ffeiliau a ganiateir: $1',
 'upload-preferred' => 'Mathau ffeil dewisol: $1.',
 'upload-prohibited' => 'Mathau o ffeiliau a waherddir: $1.',
@@ -1533,20 +1533,20 @@ Gweler [[Special:NewFiles|oriel y ffeiliau newydd]] i fwrw golwg drostynt.",
 'largefileserver' => "Mae'r ffeil yn fwy na'r hyn mae'r gweinydd yn ei ganiatau.",
 'emptyfile' => "Ymddengys fod y ffeil a uwchlwythwyd yn wag. Efallai bod gwall teipio yn enw'r ffeil. Sicrhewch eich bod wir am uwchlwytho'r ffeil.",
 'windows-nonascii-filename' => "Nid yw'r wici hwn yn cynnal enwau ffeiliau sy'n cynnwys nodau arbennig.",
-'fileexists' => "Mae ffeil gyda'r enw hwn eisoes yn bodoli; gwiriwch '''<tt>[[:$1]]</tt>''' os nad ydych yn sicr bod angen ei newid.
+'fileexists' => "Mae ffeil gyda'r enw hwn eisoes yn bodoli; gwiriwch <strong>[[:$1]]</strong> os nad ydych yn sicr bod angen ei newid.
 [[$1|thumb]]",
-'filepageexists' => "Mae tudalen ddisgrifiad ar gyfer y ffeil hon eisoes ar gael ar '''<tt>[[:$1]]</tt>''', ond nid oes ffeil o'r enw hwn ar gael ar hyn o bryd.
+'filepageexists' => "Mae tudalen ddisgrifiad ar gyfer y ffeil hon eisoes ar gael ar <strong>[[:$1]]</strong>, ond nid oes ffeil o'r enw hwn ar gael ar hyn o bryd.
 Ni fydd crynodeb a osodir wrth uwchlwytho yn ymddangos ar y dudalen ddisgrifiad.
 Er mwyn gwneud i'r crynodeb ymddangos yno, bydd raid i chi olygu'r dudalen ddisgrifiad yn unswydd.
 [[$1|thumb]]",
 'fileexists-extension' => "Mae ffeil ag enw tebyg eisoes yn bod: [[$2|thumb]]
-* Enw'r ffeil ar fin ei uwchlwytho: '''<tt>[[:$1]]</tt>'''
-* Enw'r ffeil sydd eisoes yn bod: '''<tt>[[:$2]]</tt>'''
+* Enw'r ffeil ar fin ei uwchlwytho: <strong>[[:$1]]</strong>
+* Enw'r ffeil sydd eisoes yn bod: <strong>[[:$2]]</strong>
 Dewiswch enw arall os gwelwch yn dda.",
 'fileexists-thumbnail-yes' => "Ymddengys bod delwedd wedi ei leihau ''(bawd)'' ar y ffeil. [[$1|thumb]]
-Cymharwch gyda'r ffeil '''<tt>[[:$1]]</tt>'''.
+Cymharwch gyda'r ffeil <strong>[[:$1]]</strong>.
 Os mai'r un un llun ar ei lawn faint sydd ar yr ail ffeil yna does dim angen uwchlwytho llun ychwanegol o faint bawd.",
-'file-thumbnail-no' => "Mae '''<tt>$1</tt>''' ar ddechrau enw'r ffeil.
+'file-thumbnail-no' => "Mae <strong>$1</strong> ar ddechrau enw'r ffeil.
 Mae'n ymddangos felly bod y ddelwedd wedi ei leihau ''(maint bawd)''.
 Os yw'r ddelwedd ar ei lawn faint gallwch barhau i'w uwchlwytho. Os na, newidiwch enw'r ffeil, os gwelwch yn dda.",
 'fileexists-forbidden' => "Mae ffeil gyda'r enw hwn eisoes ar gael, ac ni ellir ei throsysgrifo.
@@ -1799,8 +1799,8 @@ Mae modd golygu'r disgrifiad ohoni ar ei [$2 thudalen disgrifio] fan honno.",
 
 # MIME search
 'mimesearch' => 'Chwiliad MIME',
-'mimesearch-summary' => "Fe allwch ddefnyddio'r dudalen hon i hidlo'r ffeiliau yn ôl math MIME.
-Mewnbwn: contenttype/subtype, e.e. <tt>image/jpeg</tt>.",
+'mimesearch-summary' => "Fe allwch ddefnyddio'r dudalen hon i hidlo'r ffeiliau yn ôl eu math MIME.
+Mewnbwn: contenttype/subtype, e.e. <code>image/jpeg</code>.",
 'mimetype' => 'Ffurf MIME:',
 'download' => 'islwytho',
 
@@ -2000,7 +2000,7 @@ Gweler hefyd [[Special:WantedCategories|categorïau sydd eu hangen]].",
 'linksearch-ok' => 'Chwilio',
 'linksearch-text' => 'Gellir defnyddio cardiau gwyllt megis "*.wikipedia.org".
 Mae angen parth lefel-uchaf o leiaf, er enghraifft "*.org".<br />
-Protocoliau sy\'n cael eu cynnal: <tt>$1</tt> (peidiwch ag ychwanegu\'r rhain wrth ysgrifennu\'r ymholiad).',
+Protocoliau sy\'n cael eu cynnal: <code>$1</code> (peidiwch ag ychwanegu\'r rhain wrth ysgrifennu\'r ymholiad).',
 'linksearch-line' => 'Mae cysylltiad i gael i $1 oddi wrth $2',
 'linksearch-error' => "Dim ond ar ddechrau enw'r gwesteiwr y gallwch osod cardiau gwyllt.",
 
@@ -2723,6 +2723,8 @@ Mae ffolder dros dro yn eisiau.',
 'import-error-interwiki' => 'Ni fewnforwyd y dudalen "$1" oherwydd bod yr enw arni wedi ei neilltuo at ddiben cysylltu\'n allanol (rhyngwici).',
 'import-error-special' => 'Ni fewnforiwyd y dudalen "$1" oherwydd ei bod yn perthyn i barth arbennig lle nad oes tudalennau i\'w cael.',
 'import-error-invalid' => 'Ni fewnforwyd y dudalen "$1" oherwydd bod yr enw arni yn annilys.',
+'import-options-wrong' => '{{PLURAL:$2|Dewis|Dewis|Dewisiadau}} annilys: <nowiki>$1</nowiki>',
+'import-rootpage-nosubpage' => 'Nid yw\'r parth "$1", sef parth y wraidd-dudalen, yn caniatau is-dudalennau.',
 
 # Import log
 'importlogpage' => 'Lòg mewnforio',
@@ -2841,15 +2843,10 @@ Achos hyn yn fwy na thebyg yw presenoldeb cysylltiad i wefan ar y rhestr wahardd
 # Info page
 'pageinfo-title' => 'Manylion "$1"',
 'pageinfo-header-edits' => 'Golygiadau',
-'pageinfo-header-watchlist' => 'Rhestr wylio',
-'pageinfo-header-views' => 'Ymweliadau',
-'pageinfo-subjectpage' => 'Tudalen',
-'pageinfo-talkpage' => 'Tudalen sgwrs',
+'pageinfo-views' => 'Nifer yr ymweliadau',
 'pageinfo-watchers' => 'Nifer y gwylwyr',
 'pageinfo-edits' => 'Nifer y golygiadau',
 'pageinfo-authors' => 'Nifer yr awduron gwahanol',
-'pageinfo-views' => 'Nifer yr ymweliadau',
-'pageinfo-viewsperedit' => 'Ymweliadau wrth y golygiad',
 
 # Skin names
 'skinname-standard' => 'Safonol',
index e1f5e6f..e039978 100644 (file)
@@ -348,7 +348,7 @@ $messages = array(
 'vector-view-create' => 'Opret',
 'vector-view-edit' => 'Redigér',
 'vector-view-history' => 'Se historik',
-'vector-view-view' => 'Vis',
+'vector-view-view' => 's',
 'vector-view-viewsource' => 'Se kilden',
 'actions' => 'Handlinger',
 'namespaces' => 'Navnerum',
@@ -375,7 +375,7 @@ $messages = array(
 'create-this-page' => 'Opret denne side',
 'delete' => 'Slet',
 'deletethispage' => 'Slet side',
-'undelete_short' => 'Fortryd sletning af {{PLURAL:$1|$1 version|$1 versioner}}',
+'undelete_short' => 'Fortryd sletning af {{PLURAL:$1|én version|$1 versioner}}',
 'viewdeleted_short' => 'Vis {{PLURAL:$1|en slettet redigering|$1 slettede redigeringer}}',
 'protect' => 'Beskyt',
 'protect_change' => 'ændr',
@@ -403,8 +403,8 @@ $messages = array(
 'otherlanguages' => 'Andre sprog',
 'redirectedfrom' => '(Omdirigeret fra $1)',
 'redirectpagesub' => 'Omdirigering',
-'lastmodifiedat' => 'Denne side blev senest ændret $1 $2.',
-'viewcount' => 'Siden er vist i alt $1 {{PLURAL:$1|gang|gange}}.',
+'lastmodifiedat' => 'Denne side blev senest ændret $1 kl. $2.',
+'viewcount' => 'Siden er vist i {{PLURAL:$1|en gang|$1 gange}}.',
 'protectedpage' => 'Beskyttet side',
 'jumpto' => 'Skift til:',
 'jumptonavigation' => 'Navigation',
@@ -507,9 +507,9 @@ En liste over gyldige specialsider findes på [[Special:SpecialPages|{{int:speci
 'dberrortext' => 'Der er opstået en syntaksfejl i en databaseforespørgsel.
 Det kan tyde på en fejl i softwaren.
 Den sidst forsøgte databaseforespørgsel var:
-<blockquote><tt>$1</tt></blockquote>
-fra funktionen "<tt>$2</tt>".
-Databasen returnerede fejlen "<tt>$3: $4</tt>".',
+<blockquote><code>$1</code></blockquote>
+fra funktionen "<code>$2</code>".
+Databasen returnerede fejlen "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Der er opstået en syntaksfejl i en databaseforespørgsel.
 Den seneste forsøgte databaseforespørgsel var:
 "$1"
@@ -549,10 +549,11 @@ Den kan være blevet slettet af en anden.',
 'delete-hook-aborted' => 'Sletningen blev afbrudt af en programfunktion.
 Der var ikke nogen forklaring.',
 'badtitle' => 'Forkert titel',
-'badtitletext' => 'Den ønskede sides titel var ikke tilladt, tom eller siden er forkert henvist fra en {{SITENAME}} på et andet sprog.',
+'badtitletext' => 'Den ønskede sides titel var ikke tilladt, tom eller siden er forkert henvist fra en {{SITENAME}} på et andet sprog.
+Den kan indeholde et eller flere tegn, som ikke kan anvendes i titler.',
 'perfcached' => 'Følgende data er gemt i cachen, der muligvis ikke er helt opdateret. Der gemmes højst {{PLURAL:$1|ét resultat|$1 resultater}} i cachen.',
 'perfcachedts' => 'Disse data stammer fra cachen, som senest blev opdateret $1. Der gemmes højst {{PLURAL:$4|ét resultat|$4 resultater}} i cachen.',
-'querypage-no-updates' => "'''Aktualiseringsfunktionen for denne side er pt. deaktiveret. Dataene bliver indtil videre ikke fornyet.'''",
+'querypage-no-updates' => "'''Opdateringer til denne side er deaktiveret for øjeblikket. Dataene bliver indtil videre ikke fornyet.'''",
 'wrong_wfQuery_params' => 'Ugyldig parameter til wfQuery()<br />
 Funktion: $1<br />
 Forespørgsel: $2',
@@ -1567,9 +1568,9 @@ Sletnings- og flytnings-loggen for denne side leveres her for nemheds skyld:",
 Gå til [[Special:FileList|listen over filer]] for at se eller søge i eksisterende filer. (Gen-)oplægnigner logges i [[Special:Log/upload|oplægningsloggen]], sletninger i [[Special:Log/delete|sletteloggen]].
 
 Brug en henvisning af en de følgende typer for at bruge en fil på en side:
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}:Filnavn.jpg<nowiki>]]</nowiki></tt>''' for at bruge den fulde version af et bilede
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}:Filnavn.png|200px|thumb|left|Alternativ tekst<nowiki>]]</nowiki></tt>''' for at bruge billedet med en bredde på 200&nbsp;pixel i en ramme til venstre med \"Alternativ tekst\" som beskrivelse
-*'''<tt><nowiki>[[</nowiki>{{ns:media}}:Filnavn.ogg<nowiki>]]</nowiki></tt>''' for at henvise direkte til filen uden at vise den",
+*'''<code><nowiki>[[</nowiki>{{ns:file}}:Filnavn.jpg<nowiki>]]</nowiki></code>''' for at bruge den fulde version af et bilede
+*'''<code><nowiki>[[</nowiki>{{ns:file}}:Filnavn.png|200px|thumb|left|Alternativ tekst<nowiki>]]</nowiki></code>''' for at bruge billedet med en bredde på 200&nbsp;pixel i en ramme til venstre med \"Alternativ tekst\" som beskrivelse
+*'''<code><nowiki>[[</nowiki>{{ns:media}}:Filnavn.ogg<nowiki>]]</nowiki></code>''' for at henvise direkte til filen uden at vise den",
 'upload-permitted' => 'Tilladte filtyper: $1.',
 'upload-preferred' => 'Foretrukne filtyper: $1.',
 'upload-prohibited' => 'Uønskede filtyper: $1.',
@@ -1612,18 +1613,18 @@ Brug en henvisning af en de følgende typer for at bruge en fil på en side:
 'windows-nonascii-filename' => 'Denne wiki understøtter ikke filnavne, der indeholder specialtegn.',
 'fileexists' => 'En fil med det navn findes allerede, tjek venligst [[:$1]] om du er sikker på du vil ændre den.
 [[$1|thumb]]',
-'filepageexists' => "Siden med beskrivelse af denne fil er allerede oprettet på '''<tt>[[:$1]]</tt>''', men der eksisterer ikke en fil med dette navn.
+'filepageexists' => 'Siden med beskrivelse af denne fil er allerede oprettet på <strong>[[:$1]]</strong>, men der eksisterer ikke en fil med dette navn.
 Den beskrivelse du kan angive nedenfor vil derfor ikke blive brugt.
 For at få din beskrivelse vist, skal du selv redigere beskrivelsessiden.
-[[$1|thumb]]",
-'fileexists-extension' => "En fil med lignende navn findes allerede: [[$2|thumb]]
-* Navnet på den valgte fil: '''<tt>[[:$1]]</tt>'''
-* Navnet på den eksisterende fil: '''<tt>[[:$2]]</tt>'''
-Vælg venligst et andet navn.",
+[[$1|thumb]]',
+'fileexists-extension' => 'En fil med lignende navn findes allerede: [[$2|thumb]]
+* Navnet på den valgte fil: <strong>[[:$1]]</strong>
+* Navnet på den eksisterende fil: <strong>[[:$2]]</strong>
+Vælg venligst et andet navn.',
 'fileexists-thumbnail-yes' => "Det ser ud som om filen indeholder et billede i reduceret størrelse ''(thumbnail)''. [[$1|thumb]]
-Kontroller filen '''<tt>[[:$1]]</tt>'''.
+Kontroller filen <strong>[[:$1]]</strong>.
 Hvis det er billedet i original størrelse, er det ikke nødvendigt at uploade et separat forhåndsvisningsbillede.",
-'file-thumbnail-no' => "Filnavnet begynder med '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Filnavnet begynder med <strong>$1</strong>.
 Det tyder på et billede i reduceret format ''(thumbnail)''.
 Hvis du har billedet i fuld størrelse, så brug det i stedet. Ellers bedes du venligst ændre filnavnet.",
 'fileexists-forbidden' => 'En fil med dette navn findes allerede, og den kan ikke overskrives.
@@ -1869,7 +1870,7 @@ Måske vil du redigere beskrivelsen på dens [$2 filbeskrivelsesside] der.',
 
 # MIME search
 'mimesearch' => 'Søge efter MIME-type',
-'mimesearch-summary' => 'På denne specialside kan filerne filtreres efter MIME-typen. Indtastningen skal altid indeholde medie- og undertypen: <tt>image/jpeg</tt> (se billedbeskrivelsessiden).',
+'mimesearch-summary' => 'På denne specialside kan filerne filtreres efter MIME-typen. Indtastningen skal altid indeholde medie- og undertypen: <code>image/jpeg</code> (se billedbeskrivelsessiden).',
 'mimetype' => 'MIME-type:',
 'download' => 'DownloadHerunterladen',
 
@@ -2070,7 +2071,7 @@ Se også [[Special:WantedCategories|ønskede kategorier]].',
 'linksearch-ok' => 'Søg',
 'linksearch-text' => 'Wildcards som "*.wikipedia.org" kan benyttes.
 Der skal som minimum angives et topniveau-domæne som f. eks. "*.org".<br />
-Understøttede protokoller: <tt>$1</tt> (tilføj ikke protokollerne til din søgning).',
+Understøttede protokoller: <code>$1</code> (tilføj ikke protokollerne til din søgning).',
 'linksearch-line' => '$2 linker til $1',
 'linksearch-error' => 'Wildcards må kun benyttes i starten af hostnavnet.',
 
@@ -2766,6 +2767,8 @@ Alle Transwiki import-aktioner protokolleres i [[Special:Log/import|import-logge
 'import-error-interwiki' => 'Siden "$1" importeres ikke, da dens navn er reserveret for eksterne henvisninger (interwiki).',
 'import-error-special' => 'Siden "$1" importeres ikke, da den tilhører et særligt navnerum, der ikke tillader sider.',
 'import-error-invalid' => 'Siden "$1" importeres ikke, da dens navn er ugyldigt.',
+'import-rootpage-invalid' => 'Den rodside der er angivet har en ugyldig titel.',
+'import-rootpage-nosubpage' => 'Navnerummet "$1" tillader ikke undersider af rodsiderne.',
 
 # Import log
 'importlogpage' => 'Importlog',
@@ -2893,15 +2896,10 @@ Dette skyldes sandsynligvis en henvisning til et sortlistet eksternt websted.',
 # Info page
 'pageinfo-title' => 'Information om "$1"',
 'pageinfo-header-edits' => 'Redigeringer',
-'pageinfo-header-watchlist' => 'Overvågningsliste',
-'pageinfo-header-views' => 'Visninger',
-'pageinfo-subjectpage' => 'Side',
-'pageinfo-talkpage' => 'Diskussionsside',
+'pageinfo-views' => 'Antal visninger',
 'pageinfo-watchers' => 'Antal brugere, der overvåger siden',
 'pageinfo-edits' => 'Antal redigeringer',
 'pageinfo-authors' => 'Antal forskellige forfattere',
-'pageinfo-views' => 'Antal visninger',
-'pageinfo-viewsperedit' => 'Visninger per redigering',
 
 # Skin names
 'skinname-standard' => 'Klassik',
@@ -3619,7 +3617,7 @@ Billeder vises i fuld opløsning, og andre mediatyper vil blive aktiveret med de
 * <span class="mw-specialpagerestricted">Specialsider med begrænset adgang.</span>',
 'specialpages-group-maintenance' => 'Vedligeholdelsesside',
 'specialpages-group-other' => 'Andre specialsider',
-'specialpages-group-login' => 'Opret bruger / logon',
+'specialpages-group-login' => 'Log på / opret bruger',
 'specialpages-group-changes' => 'Seneste ændringer og loglister',
 'specialpages-group-media' => 'Mediafiler og oplægning',
 'specialpages-group-users' => 'Brugere og rettigheder',
index 77f64dc..87a94c5 100644 (file)
@@ -721,9 +721,9 @@ Alle verfügbaren Spezialseiten sind in der [[Special:SpecialPages|Liste der Spe
 'dberrortext' => 'Es ist ein Datenbankfehler aufgetreten.
 Der Grund kann ein Programmierfehler sein.
 Die letzte Datenbankabfrage lautete:
-<blockquote><tt>$1</tt></blockquote>
-aus der Funktion „<tt>$2</tt>“.
-Die Datenbank meldete den Fehler „<tt>$3: $4</tt>“.',
+<blockquote><code>$1</code></blockquote>
+aus der Funktion „<code>$2</code>“.
+Die Datenbank meldete den Fehler „<samp>$3: $4</samp>“.',
 'dberrortextcl' => 'Es gab einen Syntaxfehler in der Datenbankabfrage.
 Die letzte Datenbankabfrage lautete: „$1“ aus der Funktion „<tt>$2</tt>“.
 Die Datenbank meldete den Fehler: „<tt>$3: $4</tt>“.',
@@ -1065,8 +1065,7 @@ Zur Information folgt ein aktueller Auszug aus dem Benutzersperr-Logbuch:',
 * '''Firefox/Safari:''' ''Umschalttaste'' drücken und gleichzeitig ''Aktualisieren'' anklicken oder entweder ''Strg+F5'' oder ''Strg+R'' (''⌘+R'' auf dem Mac) drücken
 * '''Google Chrome:''' ''Umschalttaste+Strg+R'' (''⌘+Umschalttaste+R'' auf dem Mac) drücken
 * '''Internet Explorer:''' ''Strg+F5'' drücken oder ''Strg'' drücken und gleichzeitig ''Aktualisieren'' anklicken
-* '''Opera:''' ''Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen''
-* '''Konqueror:''' ''Aktualisieren'' anklicken oder ''F5'' drücken",
+* '''Opera:''' ''Extras → Internetspuren löschen … → Individuelle Auswahl → Den kompletten Cache löschen''",
 'usercssyoucanpreview' => "'''Tipp:''' Benutze den „{{int:showpreview}}“-Button, um dein neues CSS vor dem Speichern zu testen.",
 'userjsyoucanpreview' => "'''Tipp:''' Benutze den „{{int:showpreview}}“-Button, um dein neues JavaScript vor dem Speichern zu testen.",
 'usercsspreview' => "'''Beachte, dass du nur eine Vorschau deines Benutzer-CSS betrachtest.'''
@@ -1782,9 +1781,9 @@ Es folgt ein Auszug aus dem Lösch- und Verschiebungs-Logbuch dieser Datei.",
 Gehe zu der [[Special:FileList|Liste hochgeladener Dateien]], um vorhandene Dateien zu suchen und anzuzeigen. Siehe auch das [[Special:Log/upload|Datei-]] und [[Special:Log/delete|Lösch-Logbuch]].
 
 Um ein '''Bild''' in einer Seite zu verwenden, nutze einen Link in der folgenden Form:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.jpg]]</nowiki></tt>''' – für ein Vollbild
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.png|200px|thumb|left|Alternativer Text]]</nowiki></tt>''' – für ein 200px breites Bild innerhalb einer Box, mit „Alternativer Text“ als Bildbeschreibung
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datei.ogg]]</nowiki></tt>''' – für einen direkten Link auf die Datei, ohne Darstellung der Datei",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.jpg]]</nowiki></code>''' – für ein Vollbild
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datei.png|200px|thumb|left|Alternativer Text]]</nowiki></code>''' – für ein 200px breites Bild innerhalb einer Box, mit „Alternativer Text“ als Bildbeschreibung
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datei.ogg]]</nowiki></code>''' – für einen direkten Link auf die Datei, ohne Darstellung der Datei",
 'upload-permitted' => 'Erlaubte Dateitypen: $1.',
 'upload-preferred' => 'Bevorzugte Dateitypen: $1.',
 'upload-prohibited' => 'Nicht erlaubte Dateitypen: $1.',
@@ -1826,20 +1825,20 @@ Um ein '''Bild''' in einer Seite zu verwenden, nutze einen Link in der folgenden
 'largefileserver' => 'Die Datei ist größer als die vom Server eingestellte Maximalgröße.',
 'emptyfile' => 'Die hochgeladene Datei ist leer. Der Grund kann ein Tippfehler im Dateinamen sein. Bitte kontrolliere, ob du die Datei wirklich hochladen willst.',
 'windows-nonascii-filename' => 'Dieses Wiki unterstützt keine Dateinamen die Sonderzeichen enthalten.',
-'fileexists' => "Eine Datei dieses Namens ist bereits vorhanden. Bitte prüfe '''<tt>[[:$1]]</tt>''', sofern du dir nicht sicher bist, ob du sie ändern möchtest.
-[[$1|thumb]]",
-'filepageexists' => "Eine Beschreibungsseite wurde bereits als '''<tt>[[:$1]]</tt>''' erstellt, es ist aber keine Datei mit diesem Namen vorhanden.
+'fileexists' => 'Eine Datei dieses Namens ist bereits vorhanden. Bitte prüfe <strong>[[:$1]]</strong>, sofern du dir nicht sicher bist, ob du sie ändern möchtest.
+[[$1|thumb]]',
+'filepageexists' => 'Eine Beschreibungsseite wurde bereits als <strong>[[:$1]]</strong> erstellt, es ist aber keine Datei mit diesem Namen vorhanden.
 Die eingegebene Beschreibung wird nicht auf die Beschreibungsseite übernommen.
 Die Beschreibungsseite musst du nach dem Hochladen der Datei noch manuell bearbeiten.
-[[$1|thumb]]",
-'fileexists-extension' => "Eine Datei mit ähnlichem Namen existiert bereits: [[$2|thumb]]
-* Name der hochzuladenden Datei: '''<tt>[[:$1]]</tt>'''
-* Name der vorhandenen Datei: '''<tt>[[:$2]]</tt>'''
-Bitte wähle einen anderen Namen.",
-'fileexists-thumbnail-yes' => "Bei der Datei scheint es sich um ein Bild verringerter Größe ''(thumbnail)'' zu handeln. [[$1|thumb]]
-Bitte prüfe die Datei '''<tt>[[:$1]]</tt>'''.
+[[$1|thumb]]',
+'fileexists-extension' => 'Eine Datei ähnlichen Namens ist bereits vorhanden: [[$2|thumb]]
+* Name der hochzuladenden Datei: <strong>[[:$1]]</strong>
+* Name der vorhandenen Datei: <strong>[[:$2]]</strong>
+Bitte wähle einen anderen Namen.',
+'fileexists-thumbnail-yes' => "Bei der Datei scheint es sich um ein Bild verringerter Größe ''(Miniatur)'' zu handeln. [[$1|thumb]]
+Bitte prüfe die Datei <strong>[[:$1]]</strong>.
 Wenn es sich um das Bild in Originalgröße handelt, so braucht kein separates Vorschaubild hochgeladen zu werden.",
-'file-thumbnail-no' => "Der Dateiname beginnt mit '''<tt>$1</tt>'''. Dies deutet auf ein Bild verringerter Größe ''(thumbnail)'' hin.
+'file-thumbnail-no' => "Der Dateiname beginnt mit <strong>$1</strong>. Dies deutet auf ein Bild verringerter Größe ''(Minitatur)'' hin.
 Bitte prüfe, ob du das Bild in voller Auflösung vorliegen hast und lade dieses unter dem Originalnamen hoch.",
 'fileexists-forbidden' => 'Unter diesem Namen existiert bereits eine Datei und sie kann nicht überschrieben werden. Bitte gehe zurück und lade die Datei unter einem anderen Namen hoch. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'Unter diesem Namen existiert bereits eine Datei im zentralen Medienarchiv.
@@ -2065,6 +2064,7 @@ Vielleicht möchtest du die Beschreibung auf der dortigen [$2 Dateibeschreibungs
 'shared-repo-from' => 'aus $1',
 'shared-repo' => 'einem gemeinsam genutzten Medienarchiv',
 'filepage.css' => '/* Das folgende CSS wird auf Dateibeschreibungsseiten, auch auf fremden Client-Wikis, geladen. */',
+'upload-disallowed-here' => 'Leider kannst du dieses Bild nicht überschreiben.',
 
 # File reversion
 'filerevert' => 'Zurücksetzen von „$1“',
@@ -2098,7 +2098,7 @@ Vielleicht möchtest du die Beschreibung auf der dortigen [$2 Dateibeschreibungs
 
 # MIME search
 'mimesearch' => 'Suche nach MIME-Typ',
-'mimesearch-summary' => 'Auf dieser Spezialseite können die Dateien nach dem MIME-Typ gefiltert werden. Die Eingabe muss immer den Medien- und Subtyp beinhalten: <tt>image/jpeg</tt> (siehe Dateibeschreibungsseite).',
+'mimesearch-summary' => 'Auf dieser Spezialseite können die Dateien nach dem MIME-Typ gefiltert werden. Die Eingabe muss immer den Medien- und Subtyp beinhalten: <code>image/jpeg</code> (siehe Dateibeschreibungsseite).',
 'mimetype' => 'MIME-Typ:',
 'download' => 'Herunterladen',
 
@@ -2145,9 +2145,9 @@ Vielleicht möchtest du die Beschreibung auf der dortigen [$2 Dateibeschreibungs
 
 'disambiguations' => 'Seiten die auf Begriffsklärungsseiten verlinken',
 'disambiguationspage' => 'Template:Begriffsklärung',
-'disambiguations-text' => "Die folgenden Seiten enthalten mindestens einen Link zur einer '''Begriffsklärungsseite'''. Sie sollten möglicherweise auf die eigentlich gemeinte Seite verlinken.
+'disambiguations-text' => "Die folgenden Seiten enthalten mindestens einen Link zur einer '''Begriffsklärungsseite'''. Stattdessen sollten sie möglicherweise auf die eigentlich gemeinte Seite verlinken.
 
-Eine Seite gilt als Begriffsklärungsseite, wenn sie mindestens eine der auf [[MediaWiki:Disambiguationspage]] aufgeführten Vorlagen enthält.",
+Eine Seite gilt als Begriffsklärungsseite, wenn sie mindestens eine der auf der Seite [[MediaWiki:Disambiguationspage|Disambiguationspage]] aufgeführten Vorlagen enthält.",
 
 'doubleredirects' => 'Doppelte Weiterleitungen',
 'doubleredirectstext' => 'Diese Liste enthält Weiterleitungen, die auf Weiterleitungen verlinken.
@@ -2172,13 +2172,14 @@ Jede Zeile enthält Links zur ersten und zweiten Weiterleitung sowie dem Ziel de
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|Byte|Byte}}',
 'ncategories' => '$1 {{PLURAL:$1|Kategorie|Kategorien}}',
+'ninterwikis' => '{{PLURAL:$1|Ein Interwikilink|$1 Interwikilinks}}',
 'nlinks' => '{{PLURAL:$1|1 Link|$1 Links}}',
 'nmembers' => '{{PLURAL:$1|1 Eintrag|$1 Einträge}}',
 'nrevisions' => '{{PLURAL:$1|1 Bearbeitung|$1 Bearbeitungen}}',
 'nviews' => '{{PLURAL:$1|1 Abfrage|$1 Abfragen}}',
 'nimagelinks' => 'Verwendet auf {{PLURAL:$1|einer Seite|$1 Seiten}}',
 'ntransclusions' => 'verwendet auf {{PLURAL:$1|einer Seite|$1 Seiten}}',
-'specialpage-empty' => 'Die Seite enthält aktuell keine Einträge.',
+'specialpage-empty' => 'Es sind aktuell keine zutreffenden Einträge vorhanden.',
 'lonelypages' => 'Verwaiste Seiten',
 'lonelypagestext' => 'Die folgenden Seiten werden nicht eingebunden oder es wird nicht auf sie in {{SITENAME}} verwiesen.',
 'uncategorizedpages' => 'Nicht kategorisierte Seiten',
@@ -2195,11 +2196,12 @@ Jede Zeile enthält Links zur ersten und zweiten Weiterleitung sowie dem Ziel de
 'wantedfiletext-cat' => 'Die folgenden Dateien werden verwendet, sind jedoch nicht vorhanden. Vorhandene Dateien aus fremden Repositorien können dennoch hier aufgelistet sein und werden <del>durchgestrichen</del> dargestellt. Zusätzlich werden Seiten, die nicht vorhandene Dateien enthalten, in die [[:$1]] eingeordnet.',
 'wantedfiletext-nocat' => 'Die folgenden Dateien werden verwendet, sind jedoch nicht vorhanden. Vorhandene Dateien aus fremden Repositorien können dennoch hier aufgelistet sein und werden <del>durchgestrichen</del> dargestellt.',
 'wantedtemplates' => 'Gewünschte Vorlagen',
-'mostlinked' => 'Meistverlinkte Seiten',
+'mostlinked' => 'Seiten mit den meisten Links',
 'mostlinkedcategories' => 'Meistbenutzte Kategorien',
 'mostlinkedtemplates' => 'Meistbenutzte Vorlagen',
 'mostcategories' => 'Seiten mit den meisten Kategorien',
 'mostimages' => 'Meistbenutzte Dateien',
+'mostinterwikis' => 'Seiten mit den meisten Interwikilinks',
 'mostrevisions' => 'Seiten mit den meisten Versionen',
 'prefixindex' => 'Alle Seiten (mit Präfix)',
 'prefixindex-namespace' => 'Alle Seiten mit Präfix (Namensraum $1)',
@@ -2297,7 +2299,7 @@ Siehe auch die Liste der [[Special:WantedCategories|gewünschten Kategorien]].',
 'linksearch-pat' => 'Suchmuster:',
 'linksearch-ns' => 'Namensraum:',
 'linksearch-ok' => 'Suchen',
-'linksearch-text' => 'Diese Spezialseite ermöglicht die Suche nach Seiten, in denen bestimmte Weblinks enthalten sind. Dabei können Platzhalter wie beispielsweise <tt>*.beispiel.de</tt> benutzt werden. Es muss mindestens eine Top-Level-Domain, z. B. „*.org“. angegeben werden. <br />Unterstützte Protokolle: <tt>$1</tt> (Diese bitte nicht bei der Suchanfrage angeben.)',
+'linksearch-text' => 'Diese Spezialseite ermöglicht die Suche nach Seiten, in denen bestimmte Weblinks enthalten sind. Dabei können Platzhalter wie beispielsweise <code>*.beispiel.de</code> benutzt werden. Es muss mindestens eine Top-Level-Domain, z. B. „*.org“. angegeben werden. <br />Unterstützte Protokolle: <code>$1</code> (Diese bitte nicht bei der Suchanfrage angeben.)',
 'linksearch-line' => '$1 ist verlinkt von $2',
 'linksearch-error' => 'Wildcards können nur am Anfang der URL verwendet werden.',
 
@@ -2343,6 +2345,8 @@ Zusätzliche Informationen über einzelne Rechte können [[{{MediaWiki:Listgroup
 'mailnologin' => 'Fehler beim E-Mail-Versand',
 'mailnologintext' => 'Du musst [[Special:UserLogin|angemeldet sein]] und eine bestätigte E-Mail-Adresse in deinen [[Special:Preferences|Einstellungen]] eingetragen haben, um anderen Benutzern E-Mails schicken zu können.',
 'emailuser' => 'E-Mail an diesen Benutzer',
+'emailuser-title-target' => 'E-Mail an {{GENDER:$1|diesen Benutzer|diese Benutzerin}} senden',
+'emailuser-title-notarget' => 'E-Mail an Benutzer',
 'emailpage' => 'E-Mail an Benutzer',
 'emailpagetext' => 'Du kannst dem Benutzer mit dem unten stehenden Formular eine E-Mail senden.
 Als Absender wird die E-Mail-Adresse aus deinen [[Special:Preferences|Einstellungen]] eingetragen, damit der Benutzer dir antworten kann.',
@@ -2969,6 +2973,7 @@ Alle Transwiki-Import-Aktionen werden im [[Special:Log/import|Import-Logbuch]] p
 'import-interwiki-templates' => 'Alle Vorlagen einschließen',
 'import-interwiki-submit' => 'Import',
 'import-interwiki-namespace' => 'Zielnamensraum:',
+'import-interwiki-rootpage' => 'Zielstammseite (optional):',
 'import-upload-filename' => 'Dateiname:',
 'import-comment' => 'Grund:',
 'importtext' => 'Bitte die Datei über die Spezialseite [[Special:Export|Exportfunktion]] aus dem Quellwiki exportieren.
@@ -3001,6 +3006,9 @@ Diese auf dem lokalen Rechner speichern und danach hier hochladen.',
 'import-error-interwiki' => 'Die Seite „$1“ wurde nicht importiert, da deren Name für externe Links (Interwiki) reserviert ist.',
 'import-error-special' => 'Die Seite „$1“ wurde nicht importiert, da sie zu einem besonderen Namensraum gehört, in dem keine Seiten möglich sind.',
 'import-error-invalid' => 'Seite „$1“ wurde nicht importiert, da deren Name ungültig ist.',
+'import-options-wrong' => 'Falsche {{PLURAL:$2|Option|Optionen}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Der angegebene Stammseitenname ist ungültig.',
+'import-rootpage-nosubpage' => 'Im Namensraum „$1“ der Stammseite sind keine Unterseiten erlaubt.',
 
 # Import log
 'importlogpage' => 'Import-Logbuch',
@@ -3152,16 +3160,35 @@ Das liegt wahrscheinlich an einem Link auf eine externe Seite.',
 
 # Info page
 'pageinfo-title' => 'Informationen zu „$1“',
-'pageinfo-header-edits' => 'Bearbeitungen',
-'pageinfo-header-watchlist' => 'Beobachtungsliste',
-'pageinfo-header-views' => 'Seitenaufrufe',
-'pageinfo-subjectpage' => 'Seite',
-'pageinfo-talkpage' => 'Diskussionsseite',
-'pageinfo-watchers' => 'Anzahl der Beobachter',
-'pageinfo-edits' => 'Anzahl der Bearbeitungen',
-'pageinfo-authors' => 'Anzahl unterschiedlicher Autoren',
+'pageinfo-header-basic' => 'Basisinformationen',
+'pageinfo-header-edits' => 'Bearbeitungsgeschichte',
+'pageinfo-header-restrictions' => 'Seitenschutz',
+'pageinfo-header-properties' => 'Seiteneigenschaften',
+'pageinfo-display-title' => 'Anzeigetitel',
+'pageinfo-default-sort' => 'Standardsortierkriterium',
+'pageinfo-length' => 'Seitenlänge (in Byte)',
+'pageinfo-article-id' => 'Seitenkennnummer',
+'pageinfo-robot-policy' => 'Suchmaschinenstatus',
+'pageinfo-robot-index' => 'Indizierbar',
+'pageinfo-robot-noindex' => 'Nicht indizierbar',
 'pageinfo-views' => 'Anzahl der Seitenaufrufe',
-'pageinfo-viewsperedit' => 'Seitenaufrufe pro Bearbeitung',
+'pageinfo-watchers' => 'Anzahl der Beobachter der Seite',
+'pageinfo-redirects-name' => 'Weiterleitungen zu dieser Seite',
+'pageinfo-redirects-value' => '$1',
+'pageinfo-subpages-name' => 'Unterseiten dieser Seite',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|Weiterleitung|Weiterleitungen}}; $3 {{PLURAL:$3|Unterseite|Unterseiten}})',
+'pageinfo-firstuser' => 'Seitenersteller',
+'pageinfo-firsttime' => 'Datum der Seitenerstellung',
+'pageinfo-lastuser' => 'Letzter Bearbeiter',
+'pageinfo-lasttime' => 'Datum der letzten Bearbeitung',
+'pageinfo-edits' => 'Gesamtzahl der Bearbeitungen',
+'pageinfo-authors' => 'Gesamtzahl unterschiedlicher Autoren',
+'pageinfo-recent-edits' => 'Anzahl der kürzlich erfolgten Bearbeitungen (innerhalb von $1)',
+'pageinfo-recent-authors' => 'Anzahl der unterschiedlichen Autoren',
+'pageinfo-restriction' => 'Seitenschutz (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Magisches Wort|Magische Wörter}} ($1)',
+'pageinfo-hidden-categories' => 'Versteckte {{PLURAL:$1|Kategorie|Kategorien}} ($1)',
+'pageinfo-templates' => 'Eingebundene {{PLURAL:$1|Vorlage|Vorlagen}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Klassik',
@@ -3216,6 +3243,7 @@ Durch das Herunterladen und Öffnen der Datei kann dein Computer beschädigt wer
 'file-info-size-pages' => '$1 × $2 Pixel, Dateigröße: $3, MIME-Typ: $4, $5 {{PLURAL:$5|Seite| Seiten}}',
 'file-nohires' => 'Keine höhere Auflösung vorhanden.',
 'svg-long-desc' => 'SVG-Datei, Basisgröße: $1 × $2 Pixel, Dateigröße: $3',
+'svg-long-desc-animated' => 'Animierte SVG-Datei, Basisgröße $1 × $2 Pixel, Dateigröße: $3',
 'show-big-image' => 'Volle Auflösung',
 'show-big-image-preview' => 'Größe dieser Vorschau: $1.',
 'show-big-image-other' => 'Weitere {{PLURAL:$2|Auflösung|Auflösungen}}: $1.',
@@ -3225,6 +3253,8 @@ Durch das Herunterladen und Öffnen der Datei kann dein Computer beschädigt wer
 'file-info-png-looped' => 'Endlosschleife',
 'file-info-png-repeat' => '$1-{{PLURAL:$1|mal|mal}} abgespielt',
 'file-info-png-frames' => '$1 {{PLURAL:$1|Bild|Bilder}}',
+'file-no-thumb-animation' => "'''Hinweis: Aufgrund technischer Beschränkungen werden Vorschaubilder dieser Datei nicht animiert.'''",
+'file-no-thumb-animation-gif' => "'''Hinweis: Aufgrund technischer Beschränkungen werden Vorschaubilder hochauflösender GIF-Dateien wie dieser nicht animiert.'''",
 
 # Special:NewFiles
 'newimages' => 'Neue Dateien',
@@ -4083,6 +4113,4 @@ Anderenfalls kannst du auch das untenstehende einfache Formular nutzen. Dein Kom
 'duration-centuries' => '$1 {{PLURAL:$1|Jahrhundert|Jahrhunderte}}',
 'duration-millennia' => '$1 {{PLURAL:$1|Jahrtausend|Jahrtausende}}',
 
-# Unknown messages
-'import-options-wrong' => 'Falsche {{PLURAL:$2|Option|Optionen}}: <nowiki>$1</nowiki>',
 );
index b31ddc5..9718162 100644 (file)
@@ -599,11 +599,11 @@ Seba lista pelanê xasanê vêrdeyan reca kena: [[Special:SpecialPages|{{int:spe
 # General errors
 'error' => 'Xırab',
 'databaseerror' => 'Xeta serveri',
-'dberrortext' => 'Rêzê vateyê database de xeta bı.
+'dberrortext' => 'Rêzê vateyê malumati de xeta bı.
 No xeta belka software ra yo.
-"<tt>$2</tt>" ra pers kerdışê peyin:
-<blockquote><tt>$1</tt></blockquote>.
-Database yo ke xeta dayo "<tt>$3: $4</tt>".',
+"<blockquote><tt>$1</tt></blockquote>.
+<tt>$2</tt>" ra pers kerdışê peyin:
+Malumatê yo ke xeta dayo "<tt>$3: $4</tt>".',
 'dberrortextcl' => 'Persê rêzê vateyê database de xeta bı.
 Persê databaseyê peyin:
 "$1"
@@ -946,8 +946,9 @@ Kerem ke, tı ke wazenay na pele bafernê/bıvurnê, qontrol ke.',
 'blocked-notice-logextract' => 'No karber/na karbere emanet blokekerdeyo/blokekediya.
 Cıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:',
 'clearyourcache' => "'''Not:''' Bahde sazkerdışi, gani hafızayê cı gerayoğ pak bıbo.
-*'''Mozilla / Firefox / Safari:''' ''Shift'' ri gıştê şıma ser nayi pel newe ra bar kere yana zi ''Ctrl-Shift-R'' bıkere u (qey Apple Mac ''Cmd-Shift-R'');,
-*'''IE:''' ''Ctrl-F5'', '''Konqueror:''' tena tuşê pelaya newi ra bar kere cı sernê.",
+*'''Mozilla / Firefox / Safari:''' ''Shift'' ri gıştê şıma ser nayi pel newe ra bar kere yana zi''Ctrl-Shift-R'' bıkere u (qey Apple Mac ''Cmd-Shift-R'');,
+*'''IE:''' ''Ctrl-F5' piya pıploxnê ke wa newe bo', 
+* '''Operar:'''hacetan ra şı rê →tercihan ra bıvurnen",
 'usercssyoucanpreview' => "'''Yardim:''' Ser \"{{int:showpreview}}\" sima eskeni CSSe newe test bikeri.",
 'userjsyoucanpreview' => "'''Yardim:''' Ser \"{{int:showpreview}}\" sima eskeni CSSe newe test bikeri.",
 'usercsspreview' => "'''şıma tena verqaydê dosyayê CSS vineni.''' '''Dosyayê Karberi CSS hema qayd nebiyo!'''",
@@ -1310,13 +1311,13 @@ Pe verbendi ''all:'', vaceyê xo bıvurni ki contenti hemi cıgeyro (pelanê mı
 'powersearch-field' => 'Seba cı seyr ke',
 'powersearch-togglelabel' => 'Qontrol ke:',
 'powersearch-toggleall' => 'Pêro',
-'powersearch-togglenone' => 'Çıno',
+'powersearch-togglenone' => 'Çıniyo',
 'search-external' => 'Cıgeyrayışê teberi',
 'searchdisabled' => '{{SITENAME}} no keyepel de cıgerayiş muweqqet bıryayo. no benatê de şıma pê Google eşkeni zerreyê {{SITENAME}} de cıgerayiş bıkeri.',
 
 # Quickbar
 'qbsettings' => 'Çûwo pêt',
-'qbsettings-none' => 'Çıno',
+'qbsettings-none' => 'Çıniyo',
 'qbsettings-fixedleft' => 'Rêcaene çhep',
 'qbsettings-fixedright' => 'Rêcaene raşt',
 'qbsettings-floatingleft' => 'rêcaene çhep',
@@ -1667,9 +1668,9 @@ Logê wedariyayiş u berdişi seba ena pele a ti ra xezir kerda:",
 Dosyayê ke vera cû bar biyê eke şima qayîl e ney dosyayan bivînê ya zî bigerî biewnê[[Special:FileList|listeyê dosyayê bar bîyaye]] (tekrar) bar bîyaye [[Special:Log/upload|rocaneyê barkerdişî]] de, hewn a şîyaye zî tîya de [[Special:Log/delete|rocaneyê hewn a kerdişî]] pawiyene.
 
 wexta şima qayîl e yew peli re dosya bierzî, formanê cêrinan ra yewi bişuxulne;
-* Qey xebitnayişê dosyayî: '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dosya.jpg]]</nowiki></tt>'''
-*Heto çep de zerreyê yew qutî de, qey xebitnayişi 'nuşteyê binîn' û 200 pikseli: '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dosya.png|200px|thumb|left|alt metin]]</nowiki></tt>'''
-* Dosya memocın, dosya te direk gırey bıerz: '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Dosya.ogg]]</nowiki></tt>'''",
+* Qey xebitnayişê dosyayî: '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dosya.jpg]]</nowiki></code>'''
+*Heto çep de zerreyê yew qutî de, qey xebitnayişi 'nuşteyê binîn' û 200 pikseli: '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dosya.png|200px|thumb|left|alt metin]]</nowiki></code>'''
+* Dosya memocın, dosya te direk gırey bıerz: '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Dosya.ogg]]</nowiki></code>'''",
 'upload-permitted' => 'Tipanê dosyayi ke izin ey estê: $1.',
 'upload-preferred' => 'Tipanê dosyayi ke tercihe ey estê: $1',
 'upload-prohibited' => 'Babetê dosyayanê tometebiyayeyan: $1.',
@@ -1711,19 +1712,19 @@ gırdîyê na dosyayi $2.',
 'largefileserver' => 'Ena dosya zaf girde ke server kebul nikeno.',
 'emptyfile' => 'dosya ya ke şıma bar kerda veng asena, nameyê dosyayi şaş nusyaya belka.',
 'windows-nonascii-filename' => 'Na wiki namen de dosyayan de xısusi karaxtera karkerdışa peşti nêdana.',
-'fileexists' => "no name de yew dosya ca ra esta.
-Eke şıma emin niyê bıvurni bıewne na dosya'''<tt>[[:$1]]</tt>'''
-[[$1|thumb]]",
-'filepageexists' => "qey na dosya pelê eşkera kerdışi '''<tt>[[:$1]]</tt>''' na adresi de ca ra vıraziyayo labele no name de yew dosya nêasena.
+'fileexists' => 'no name de yew dosya ca ra esta.
+Eke şıma emin niyê bıvurni bıewne na dosya<strong>[[:$1]]</strong>
+[[$1|thumb]]',
+'filepageexists' => 'qey na dosya pelê eşkera kerdışi <strong>[[:$1]]</strong> na adresi de ca ra vıraziyayo labele no name de yew dosya nêasena.
 kılmnuşteyê şıma nêasena eke şıma qayili bıvini gani şıma pê dest bıvurni
-[[$1|resimo qıc]]",
-'fileexists-extension' => "zey no nameyê dosyayi yewna nameyê dosyayi esta: [[$2|thumb]]
-* dosyaya ke bar biya: '''<tt>[[:$1]]</tt>'''
-* dosyaya ke ca ra esta: '''<tt>[[:$2]]</tt>'''
-kerem kere yewna name bıvıcinê",
+[[$1|resimo qıc]]',
+'fileexists-extension' => 'zey no nameyê dosyayi yewna nameyê dosyayi esta: [[$2|thumb]]
+* dosyaya ke bar biya: <strong>[[:$1]]</strong>
+* dosyaya ke ca ra esta: <strong>[[:$2]]</strong>
+kerem kere yewna name bıvıcinê',
 'fileexists-thumbnail-yes' => "na dosya wina asena ke versiyona yew resmê qıc biyayeya ''(thumbnail)''. [[$1|thumb]]
-kerem kerê '''<tt>[[:$1]]</tt>''' na dosya konrol bıkerê .",
-'file-thumbnail-no' => "nameyê na dosyayi pê ney '''<tt>$1</tt>''' dest keno pê.
+kerem kerê <strong>[[:$1]]</strong> na dosya konrol bıkerê .",
+'file-thumbnail-no' => "nameyê na dosyayi pê ney <strong>$1</strong> dest keno pê.
 na manena ke versiyona yew resmê qıc biyaye ya ''(thumbnail)''",
 'fileexists-forbidden' => 'no name de yew dosya ca ra esta u ser nuştış nêbeno.
 eke şıma qayile dosyaya xo bar keri tepiya agerê u yew nameyo newe bınusi. [[File:$1|thumb|center|$1]]',
@@ -1906,7 +1907,7 @@ keyepel nıka zaf meşğulo yew dema herayi de newe ra tesel bıkerê.',
 'listfiles_name' => 'Name',
 'listfiles_user' => 'Karber',
 'listfiles_size' => 'Gırdiye',
-'listfiles_description' => 'Vatiş/deskripsiyon',
+'listfiles_description' => 'Şınasiyen',
 'listfiles_count' => 'Versiyoni',
 
 # File description page
@@ -1982,7 +1983,7 @@ listeya ke ha ver a têna na {{PLURAL:$1|dosyaya ewwili|dosyaya $1 ewwili}} mocn
 
 # MIME search
 'mimesearch' => 'MIME bigêre',
-'mimesearch-summary' => 'no pel, no tewır dosyayan MIME kontrol kena. kewteye: tipa zerreyi/tipa bıni, e.g. <tt>resim/jpeg</tt>.',
+'mimesearch-summary' => 'no pel, no tewır dosyayan MIME kontrol kena. kewteye: tipa zerreyi/tipa bıni, e.g. <code>resim/jpeg</code>.',
 'mimetype' => 'Babetê NIME',
 'download' => 'bar ke',
 
@@ -2053,6 +2054,7 @@ gıreyê her satıri de gıreyi; raş motışê yewın u dıyıni esto.
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|bayt|bayti}}',
 'ncategories' => '$1 {{PLURAL:$1|Kategoriye|Kategoriy}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwikiy}}',
 'nlinks' => '$1 {{PLURAL:$1|link|linkî}}',
 'nmembers' => '$1 {{PLURAL:$1|eza|ezayan}}',
 'nrevisions' => '$1 {{PLURAL:$1|revizyon|revizyonî}}',
@@ -2081,6 +2083,7 @@ gıreyê her satıri de gıreyi; raş motışê yewın u dıyıni esto.
 'mostlinkedtemplates' => 'Şablonê ke tewr zafî pela re gıre bîye.',
 'mostcategories' => 'Pelan ke tewr zaf kategorî estê.',
 'mostimages' => 'Dosyayan ke tewr zaf link estê.',
+'mostinterwikis' => 'Pelan ke tewr zaf interwiki biyê.',
 'mostrevisions' => 'Pelan ke tewr zaf revizyonî biyê.',
 'prefixindex' => 'Veroleya peley pêro',
 'prefixindex-namespace' => 'Peleyê Veroleyıni ($1 cay nami)',
@@ -2180,7 +2183,7 @@ hem zi bıewnê [[Special:WantedCategories|kategori yê ke waziyeni]].',
 'linksearch-ns' => 'Cayênameyî:',
 'linksearch-ok' => 'Cı geyre',
 'linksearch-text' => 'joker ê zey "*.wikipedia.org"i karneno.<br />
-qaydeyê destek biyayeyi: <tt>$1</tt>',
+qaydeyê destek biyayeyi: <code>$1</code>',
 'linksearch-line' => '$1, $2 ra link biya',
 'linksearch-error' => 'jokeri têna nameyê makina ya serekini de aseni/eseni.',
 
@@ -2213,8 +2216,8 @@ qey heqê şexsi de [[{{MediaWiki:Listgrouprights-helppage}}|hema malumato ziyed
 'listgrouprights-rights' => 'Heqqî',
 'listgrouprights-helppage' => 'Help:Heqqanê gruban',
 'listgrouprights-members' => '(lista ezayan)',
-'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <tt>($2)</tt></span>',
-'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <tt>($2)</tt></span>',
+'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <code>($2)</code></span>',
+'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <code>($2)</code></span>',
 'listgrouprights-addgroup' => 'şıma eşkenî hesabê xo re {{PLURAL:$2|grub|gruban}} têare kerî: $1',
 'listgrouprights-removegroup' => 'şıma eşkenî hesabê xo ra {{PLURAL:$2|grub|gruban}} bıvecî: $1',
 'listgrouprights-addgroup-all' => 'şıma hesabê xo re heme gruban eşkeni têare bıkeri',
@@ -2228,6 +2231,8 @@ qey heqê şexsi de [[{{MediaWiki:Listgrouprights-helppage}}|hema malumato ziyed
 'mailnologin' => 'adresa erşawıtışi/ruşnayişi çina.',
 'mailnologintext' => 'qey karberanê binan re e-posta erşawıtış de gani şıma [[Special:UserLogin|hesab aker]]ê [[Special:Preferences|pelê tercihani]] de gani yew e-postayo meqbul bıbo.',
 'emailuser' => 'Ena karberi rê mesac bırse',
+'emailuser-title-target' => 'Na E-postaya {{GENDER:$1|karberi}}ya',
+'emailuser-title-notarget' => 'E-postaya karberi',
 'emailpage' => 'karberi re e-mail bışaw',
 'emailpagetext' => 'no/na karberi re e-posta erşawıtışi de şıma pê forma cêrıni eşkeni kar bıkerî.
 [[Special:Preferences|tercihanê şıma ye karberi]] de adresa e-posta ya ke şıma dayo, na adres qısmê adresa e-postayi de "From (kam ra)" asena, no sebebi ra gırewtox/e eşkeno/a direk cewab bıdo şıma.',
@@ -2626,7 +2631,7 @@ Cıkewtışo tewr peyêno ke bloke biyo, cêr seba referansi belikerdeyo:',
 'blocklist-expiry' => 'Wahdey qedyayışi',
 'blocklist-by' => 'hizmetdarê blokê',
 'blocklist-params' => 'Parametreyê wedernayışi',
-'blocklist-reason' => 'Sebeb:',
+'blocklist-reason' => 'Sebeb',
 'ipblocklist-submit' => 'Cı geyre',
 'ipblocklist-localblock' => 'blokê mehelli',
 'ipblocklist-otherblocks' => '{{PLURAL:$1|blokê|blokê}} bini',
@@ -2868,6 +2873,7 @@ karê zerredayişê benateyê wikiyani[[Special:Log/import|zerreyê rocaneyê k
 'import-interwiki-templates' => 'Şablonê hemî dehil bike',
 'import-interwiki-submit' => 'Azare de',
 'import-interwiki-namespace' => 'Destinasyonê canameyî:',
+'import-interwiki-rootpage' => 'Hedef pelaya reçi (opsiyonel):',
 'import-upload-filename' => 'Nameyê dosyayi:',
 'import-comment' => 'Vatış:',
 'importtext' => 'Kerem ke dosyay, çımeyê wiki ra pê [[Special:Export|kırıştışê teberdayişi]] bıdê teber, Komputerê xo de qeyd kerê u bar kerê tiya.',
@@ -2902,6 +2908,9 @@ dosyaya emaneti vindbiyo',
 'import-error-interwiki' => 'Pela " $1 " qandê name dayışi aya nêgêrêna çıkı namey cı (interwiki) sero cırê ca abıryayo.',
 'import-error-special' => 'Pela " $1 " qandê vıraştışi aya nêgêrêna çıkı namay cı nameyo do xısusiyo u na pela rê no name nêgêrêno.',
 'import-error-invalid' => 'Pela "$1" nêdebyê de çıkı namey cı çınyo.',
+'import-options-wrong' => '{{PLURAL:$2|Weçenego|Weçenego}} xerpiyaye: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Sernuştey ena pela reçey cı raverde niyo.',
+'import-rootpage-nosubpage' => 'Qan de bınnaman reçe de "$1" re mısade nedano.',
 
 # Import log
 'importlogpage' => 'Logê împortî',
@@ -3021,16 +3030,34 @@ Tı eşkeno yew sebeb bınus.',
 
 # Info page
 'pageinfo-title' => 'Heq tê "$1"\'i',
-'pageinfo-header-edits' => 'Vurnayışi',
-'pageinfo-header-watchlist' => 'Listey temaşi',
-'pageinfo-header-views' => 'Bıvin',
-'pageinfo-subjectpage' => 'Pele',
-'pageinfo-talkpage' => 'Pelay qıse',
-'pageinfo-watchers' => 'Amariya serykeran',
-'pageinfo-edits' => 'Amarina vurnayışan',
-'pageinfo-authors' => 'Amarina nuştekaran',
+'pageinfo-header-basic' => 'Seron zanayış',
+'pageinfo-header-edits' => 'Vurnayışi verêni',
+'pageinfo-header-restrictions' => 'Xısusiyetê pela',
+'pageinfo-header-properties' => 'Xısusiyetê pela',
+'pageinfo-display-title' => 'Asenge sernuşte',
+'pageinfo-default-sort' => 'Hesıbyaye mırfeyo kılm',
+'pageinfo-length' => 'Derdeya pela (bayti heta)',
+'pageinfo-article-id' => 'Nımrey pela',
+'pageinfo-robot-policy' => 'Weziyetê motor de cıgeyrayışi',
+'pageinfo-robot-index' => 'İIndeksbiyayen',
+'pageinfo-robot-noindex' => 'İndeksnêbiyayen',
 'pageinfo-views' => 'Amarina mocnayışan',
-'pageinfo-viewsperedit' => 'Vurnayışi sero vurnayışa bımocnêyış',
+'pageinfo-watchers' => 'Amariya pela serykeran',
+'pageinfo-redirects-name' => 'Hetenayışê na pela',
+'pageinfo-subpages-name' => 'Bınpelê na pela',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|hetenayış|hetenayışi}}; $3 {{PLURAL:$3|raykerdışt|raykerdışi}})',
+'pageinfo-firstuser' => 'Pela vıraşter',
+'pageinfo-firsttime' => 'Demê pela vıraştışi',
+'pageinfo-lastuser' => 'Vurnayeno peyên',
+'pageinfo-lasttime' => 'Deme u vurnayışo peyên',
+'pageinfo-edits' => 'Amarina vurnayışan pêro',
+'pageinfo-authors' => 'Amarina nuştekaran pêro',
+'pageinfo-recent-edits' => 'Amariya vurnayışan ($1 ra nata)',
+'pageinfo-recent-authors' => 'Amarina nuştekaran pêro',
+'pageinfo-restriction' => 'Xısusiyetê pela da  (<code>$1</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Çekuya|Çekuyê}} ($1) sihırini',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Kategoriye|Kategoriyan}} ($1) bınımne',
+'pageinfo-templates' => '{{PLURAL:$1|Şablon|Şabloni}} ($1) açarneyayê',
 
 # Skin names
 'skinname-standard' => 'Klasik',
@@ -3413,7 +3440,7 @@ $8',
 'exif-compression-34712' => 'JPEG2000',
 
 'exif-copyrighted-true' => 'Heqê telifiye',
-'exif-copyrighted-false' => 'Malê umumiye',
+'exif-copyrighted-false' => 'Malê Şari',
 
 'exif-photometricinterpretation-2' => 'RGB',
 'exif-photometricinterpretation-6' => 'YCbCr',
@@ -3530,7 +3557,7 @@ $8',
 'exif-scenecapturetype-2' => 'Portre',
 'exif-scenecapturetype-3' => 'şew-antış',
 
-'exif-gaincontrol-0' => 'çino',
+'exif-gaincontrol-0' => 'Ã\87ıniyo',
 'exif-gaincontrol-1' => 'Low gain up',
 'exif-gaincontrol-2' => 'High gain up',
 'exif-gaincontrol-3' => 'Low gain down',
index 63bfc50..1caeafa 100644 (file)
@@ -480,9 +480,9 @@ Płaśece specialne boki namakaju se pód [[Special:SpecialPages|lisćinu specia
 'dberrortext' => 'Syntaktiska zmólka pśi wótpšašowanju datoweje banki nastata.
 To by mógło zmólki w softwarje byś.
 Slědne wótpšašowanje jo było:
-<blockquote><tt>$1</tt></blockquote>
-z funkcije "<tt>$2</tt>".
-Datowa banka jo zmólku "<tt>$3: $4</tt>" wrośiła.',
+<blockquote><code>$1</code></blockquote>
+z funkcije "<code>$2</code>".
+Datowa banka jo zmólku "<samp>$3: $4</samp>" wrośiła.',
 'dberrortextcl' => 'Syntaktiska zmólka pśi wótpšašowanju datoweje banki nastata.
 Slědne wopytane wótpšašowanje jo było:
 "$1"
@@ -810,7 +810,6 @@ Nejnowšy zapisk blokěrowańskego protokola pódawa se dołojce ako referenca:'
 * '''Firefox/Safari:''' Źarź ''Umsch'' tłocony, mjaztym až kliknjoš na ''Znowego'' abo tłoc pak ''Strg-F5'' pak ''Strg-R'' (''⌘-R'' na Makintošu)
 * '''Google Chrome:''' Tłoc na ''Strg-Umsch-R'' ('⌘-Umsch-R'' na Makintošu)
 * '''Internet Explorer:''' Źarź ''Strg'' tłocony, mjaztym až kliknjoš na ''Aktualisieren'' abo tłoc ''Strg-F5''
-* '''Konqueror:''' Klikni na ''Aktualisieren'' abo tłoc ''F5''
 * '''Opera:''' Wuprozni cache w ''Extras → Einstellungen''",
 'usercssyoucanpreview' => "'''Pokazka:''' Wužywaj tłocašk '{{int:showpreview}}', aby swój nowy css testował, nježli až jen składujoš.",
 'userjsyoucanpreview' => "'''Pokazka:''' Wužywaj tłocašk \"{{int:showpreview}}\", aby swój nowy JavaScript testował, nježli až jen składujoš.",
@@ -1516,9 +1515,9 @@ Protokola wulašowanjow a pśesunjenjow za toś ten bok stej how k twójej dispo
 Źi na [[Special:FileList|lisćinu nagratych datajow]], aby mógł južo nagrate dataje se wobglědaś abo pytaś, nagraśa protokolěruju se w [[Special:Log/upload|protokolu nagraśow]], wulašowanja w [[Special:Log/delete|protokolu wulašowanjow]].
 
 Aby dataju do boka zapśimjeł, wužyj wótkaz slědujuceje formy
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dataja.jpg]]</nowiki></tt>''', aby wužywał połnu wersiju dataje
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dataja.png|200px|thumb|left|alternatiwny tekst]]</nowiki></tt>''', aby wužywał wobraz we wjelikosću 200 pikselow w kašćiku na lěwej kšomje z alternatiwnym tekstom ako wopisanje
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Dataja.ogg]]</nowiki></tt>''', aby direktnje na dataju wótkazował, bźez togo až dataja se zwobraznijo.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dataja.jpg]]</nowiki></code>''', aby wužywał połnu wersiju dataje
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dataja.png|200px|thumb|left|alternatiwny tekst]]</nowiki></code>''', aby wužywał wobraz we wjelikosću 200 pikselow w kašćiku na lěwej kšomje z alternatiwnym tekstom ako wopisanje
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Dataja.ogg]]</nowiki></code>''', aby direktnje na dataju wótkazował, bźez togo až dataja se zwobraznijo.",
 'upload-permitted' => 'Dowolone datajowe typy: $1.',
 'upload-preferred' => 'Preferěrowane datajowe typy: $1.',
 'upload-prohibited' => 'Njedowolone datajowe typy: $1.',
@@ -1562,20 +1561,20 @@ Glědaj [[Special:NewFiles|galeriju nowych datajow]] za wizuelny pśeglěd.',
 'largefileserver' => 'Dataja jo wětša ako serwer dopušćijo.',
 'emptyfile' => 'Dataja, kótaruž sy nagrał, jo prozna. Pśicyna móžo byś zmólka w mjenju dataje. Kontrolěruj pšosym, lěc coš dataju napšawdu nagraś.',
 'windows-nonascii-filename' => 'Toś ten wiki njepódpěra datajowe mjenja z wósebnymi znamuškami.',
-'fileexists' => "Dataja z toś tym mjenim južo eksistěrujo.
-Tłocyš-lic na \"Dataju składowaś\", ga se dataja pśepišo.
-Pšosym kontrolěruj '''<tt>[[:\$1]]</tt>''', gaž njejsy se kradu wěsty.
-[[\$1|thumb]]",
-'filepageexists' => "Wopisański bok za toś tu dataju bu južo na '''<tt>[[:$1]]</tt>''' napórany, ale dataja z toś tym mjenim tuchylu njeeksistěrujo. Zespominanje, kótarež zapódawaš, njezjawijo se na wopisańskem boku. Aby se twóje zespominanje tam zjawiło, dejš jen manuelnje wobźěłaś.
-[[$1|thumb]]",
-'fileexists-extension' => "Eksistěrujo južo dataja z pódobnym mjenim: [[$2|thumb]]
-* Mě dataje, kótaraž dej se nagraś: '''<tt>[[:$1]]</tt>'''
-* Mě eksistěrujuceje dataje: '''<tt>[[:$2]]</tt>'''
-Pšosym wubjeŕ druge mě.",
+'fileexists' => 'Dataja z toś tym mjenim južo eksistěrujo.
+Tłocyš-lic na "Dataju składowaś", ga se dataja pśepišo.
+Pšosym kontrolěruj <strong>[[:$1]]</strong>, gaž njejsy se kradu wěsty.
+[[$1|thumb]]',
+'filepageexists' => 'Wopisański bok za toś tu dataju bu južo na <strong>[[:$1]]</strong> napórany, ale dataja z toś tym mjenim tuchylu njeeksistěrujo. Zespominanje, kótarež zapódawaš, njezjawijo se na wopisańskem boku. Aby se twóje zespominanje tam zjawiło, dejš jen manuelnje wobźěłaś.
+[[$1|thumb]]',
+'fileexists-extension' => 'Eksistěrujo južo dataja z pódobnym mjenim: [[$2|thumb]]
+* Mě dataje, kótaraž dej se nagraś: <strong>[[:$1]]</strong>
+* Mě eksistěrujuceje dataje: <strong>[[:$2]]</strong>
+Pšosym wubjeŕ druge mě.',
 'fileexists-thumbnail-yes' => "Zazdaśim ma dataja reducěrowanu wjelikosć ''(thumbnail)''. [[$1|thumb]]
-Kontrolěruj pšosym dataju '''<tt>[[:$1]]</tt>'''.
+Kontrolěruj pšosym dataju <strong>[[:$1]]</strong>.
 Jolic skontrolěrowana dataja jo ten samy wobraz w originalnej wjelikosći, pón njejo notne, separatny pśeglědowy wobraz nagraś.",
-'file-thumbnail-no' => "Mě dataje zachopijo z '''<tt>$1</tt>'''. Zda se, až to jo wobraz z reducěrowaneju wjelikosću. ''(thumbnail)''.
+'file-thumbnail-no' => "Mě dataje zachopijo z <strong>$1</strong>. Zda se, až to jo wobraz z reducěrowaneju wjelikosću. ''(thumbnail)''.
 Jolic maš toś ten wobraz w połnem rozeznaśu, nagraj jen, howac změń pšosym mě dataje.",
 'fileexists-forbidden' => 'Dataja z toś tym mjenim južo eksistěrujo a njedajo se pśepisaś. Jolic coš hyšći swóju dataju nagraś, źi pšosym slědk a wuž nowe mě. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'Dataja z toś tym mjenim južo eksistěrujo w zgromadnej chowarni. Jolic hyšći coš nagraś swóju dataju, źi pšosym slědk a wužyj nowe mě.
@@ -1794,6 +1793,7 @@ Snaź coš wopisanje na jeje [$2 boku datajowego wopisanja] wobźěłaś.',
 'uploadnewversion-linktext' => 'Nowu wersiju toś teje dataje nagraś',
 'shared-repo-from' => 'z $1',
 'shared-repo' => 'zgromadny repozitorium',
+'upload-disallowed-here' => 'Bóžko njamóžoš toś ten wobraz pśepisaś.',
 
 # File reversion
 'filerevert' => 'Slědk wześ $1',
@@ -1827,7 +1827,7 @@ Snaź coš wopisanje na jeje [$2 boku datajowego wopisanja] wobźěłaś.',
 
 # MIME search
 'mimesearch' => 'MIME-typ pytaś',
-'mimesearch-summary' => 'Na toś tom specialnem boku mógu se dataje pó MIME-typu filtrowaś. Zapódaśe dej wopśimjeś stawnje typ medija a subtyp: <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Na toś tom specialnem boku mógu se dataje pó MIME-typu filtrowaś. Zapódaśe dej wopśimjeś stawnje typ medija a subtyp: <code>image/jpeg</code>.',
 'mimetype' => 'Typ MIME:',
 'download' => 'Ześěgnuś',
 
@@ -1898,6 +1898,7 @@ Kužda smužka wopśimjejo wótkaze na prědne a druge dalejpósrědnjenje a tek
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|byta|byty}}',
 'ncategories' => '$1 {{PLURAL:$1|kategorija|kategoriji|kategorije}}',
+'ninterwikis' => '$1 {{PLURAL:$1|mjazyrěcny wótkaz|mjazyrěcnej wótkaza|mjazyrěcne wótkaze|mjazyrěcnych wótkazow}}',
 'nlinks' => '$1 {{PLURAL:$1|wótkaz|wótkaza|wótkaze}}',
 'nmembers' => '$1 {{PLURAL:$1|zapis|zapisa|zapise}}',
 'nrevisions' => '$1 {{PLURAL:$1|wobźěłanje|wobźěłani|wobźěłanja}}',
@@ -1927,6 +1928,7 @@ Kužda smužka wopśimjejo wótkaze na prědne a druge dalejpósrědnjenje a tek
 'mostlinkedtemplates' => 'Nejcesćej wužywane psedłogi',
 'mostcategories' => 'Boki z nejwěcej kategorijami',
 'mostimages' => 'Nejcesćej wótkazane dataje',
+'mostinterwikis' => 'Boki z nejwěcej mjazyrěcnymi wótkazami',
 'mostrevisions' => 'Boki z nejwěcej wersijami',
 'prefixindex' => 'Wšykne boki z prefiksom',
 'prefixindex-namespace' => 'Wšykne boki z prefiksom (mjenjowy rum $1)',
@@ -2025,7 +2027,7 @@ Glědaj teke [[Special:WantedCategories|póžedane kategorije]].',
 'linksearch-ok' => 'Pytaś',
 'linksearch-text' => 'Jo móžno zastupne znamuška kaž "*.wikipedia.org" wužywaś. 
 Jo nanejmjenjej głowna domena trěbna, na pśikład "*.org"<br />
-Pódpěrane protokole: <tt>$1</tt> (pšosym njepódaj je w swójom pytanju).',
+Pódpěrane protokole: <code>$1</code> (pšosym njepódaj je w swójom pytanju).',
 'linksearch-line' => '$1 wótkazany z $2',
 'linksearch-error' => 'Zasupne znamješko daju se jano na zachopjeńku URL wužywaś.',
 
@@ -2070,6 +2072,8 @@ Pódpěrane protokole: <tt>$1</tt> (pšosym njepódaj je w swójom pytanju).',
 'mailnologin' => 'Njejo móžno e-mailku pósłaś.',
 'mailnologintext' => 'Dejš [[Special:UserLogin|pśizjawjony]] byś a płaśiwu e-mailowu adresu w swójich [[Special:Preferences|nastajenjach]] měś, aby drugim wužywarjam e-mail pósłał.',
 'emailuser' => 'Toś tomu wužywarjeju e-mail pósłaś',
+'emailuser-title-target' => 'E-mail na {{GENDER:$1|toś tomu wužywarjeju|toś tej wužywarce}} pósłaś',
+'emailuser-title-notarget' => 'E-mail wužywarjeju',
 'emailpage' => 'E-mail wužywarjeju',
 'emailpagetext' => 'Móžoš slědujucy formular wužywaś, aby toś tomu wužywarjeju e-mail pósłał.
 E-mailowa adresa, kótaruž sy zapódał w [[Special:Preferences|swójich wužywarskich nastajenjach]], zjawi se ako adresa w pólu "Wót" e-maile, aby dostawaŕ móžo śi direktnje wótegroniś.',
@@ -2686,6 +2690,7 @@ Wšykne transwiki-importowe akcije protokolěruju se w [[Special:Log/import|log-
 'import-interwiki-templates' => 'Wše pśedłogi zapśěgnuś',
 'import-interwiki-submit' => 'Importěrowaś',
 'import-interwiki-namespace' => 'Celowy mjenjowy rum:',
+'import-interwiki-rootpage' => 'Celowy kórjenjowy bok (opcionalny):',
 'import-upload-filename' => 'Datajowe mě:',
 'import-comment' => 'Komentar:',
 'importtext' => 'Eksportěruj pšosym dataju ze žredlowego wikija z pomocu [[Special:Export|eksporteje funkcije]]. Składuj ju na swójom licadle a nagraj ju sem.',
@@ -2717,6 +2722,9 @@ Wšykne transwiki-importowe akcije protokolěruju se w [[Special:Log/import|log-
 'import-error-interwiki' => 'Bok "$1" se njeimportěrujo, dokulaž jogo mě jo za eksterne wótkazowanje (interwiki) wuměnjone.',
 'import-error-special' => 'Bok "$1" se njeimportěrujo, dokulaž słuša k wósebnemu mjenjowemu rumoju, kótaryž njedowólujo boki.',
 'import-error-invalid' => 'Bok "$1" se njeimportěrujo, dokulaž jogo mě jo njepłaśiwe.',
+'import-options-wrong' => '{{PLURAL:$2|Wopacna opcija|Wopacnej opciji|Wopacne opcije|Wopacne opcije}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Pódany kórjenjowy bok jo njepłaśiwy.',
+'import-rootpage-nosubpage' => 'Mjenjowy rum "$1" kórjenjowego boka njedowólujo pódboki.',
 
 # Import log
 'importlogpage' => 'Log-lisćinu importěrowaś',
@@ -2841,16 +2849,35 @@ W zespominanju dajo se pśicyna pódaś.',
 
 # Info page
 'pageinfo-title' => 'Informacije za bok "$1"',
-'pageinfo-header-edits' => 'Změny',
-'pageinfo-header-watchlist' => 'Wobglědowańka',
-'pageinfo-header-views' => 'Zwobraznjenja',
-'pageinfo-subjectpage' => 'Bok',
-'pageinfo-talkpage' => 'Diskusijny bok',
-'pageinfo-watchers' => 'Licba  wobglědowarjow',
-'pageinfo-edits' => 'Licba wobźěłanjow:',
-'pageinfo-authors' => 'Licba wšakich awtorow',
+'pageinfo-header-basic' => 'Zakładne informacije',
+'pageinfo-header-edits' => 'Historiju wobźěłaś',
+'pageinfo-header-restrictions' => 'Šćit boka',
+'pageinfo-header-properties' => 'Kakosći boka',
+'pageinfo-display-title' => 'Zwobraznjeński titel',
+'pageinfo-default-sort' => 'Standardny sortěrowański kluc',
+'pageinfo-length' => 'Dłujkosć boka (w bajtach)',
+'pageinfo-article-id' => 'ID boka',
+'pageinfo-robot-policy' => 'Status pytawy',
+'pageinfo-robot-index' => 'Indeksěrujobny',
+'pageinfo-robot-noindex' => 'Njeindeksěrujobny',
 'pageinfo-views' => 'Licba zwobraznjenjow',
-'pageinfo-viewsperedit' => 'Zwobraznjenja na změnu',
+'pageinfo-watchers' => 'Licba  wobglědowarjow boka',
+'pageinfo-redirects-name' => 'Dalejpósrědnjenja k toś tomu bokoju',
+'pageinfo-redirects-value' => '$1',
+'pageinfo-subpages-name' => 'Pódboki toś togo boka',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|dalejpósrědnjenja|dalejpósrědnjeni|dalejpósrědnjenja|dalejpósrědnjenjow}}; $3 {{PLURAL:$3|njedalejpósrědnjenja|njedalejpósrědnjeni|njedalejpósrědnjenja|njedalejpósrědnjenjow}})',
+'pageinfo-firstuser' => 'Awtor boka',
+'pageinfo-firsttime' => 'Datum napóranja boka',
+'pageinfo-lastuser' => 'Slědny wobźěłaŕ',
+'pageinfo-lasttime' => 'Datum slědneje změny',
+'pageinfo-edits' => 'Cełkowna licba změnow:',
+'pageinfo-authors' => 'Cełkowna licba wšakich awtorow',
+'pageinfo-recent-edits' => 'Licba nejnowšych změnow (za zachadnych $1)',
+'pageinfo-recent-authors' => 'Nejnowša licba rozdźělnych awtorow',
+'pageinfo-restriction' => 'Šćit boka (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Magiske słowo|Magiskej słowje|Magiske słowa|Magiske słowa}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Schowana kategorija|Schowanej kategoriji|Schowane kategorije|Schowane kategorije}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Zapśěgnjona pśedłoga|Zapśěgnjonej pśedłoze|Zapśěgnjone pśedłogi|Zapśěgnjone pśedłogi}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Klasiski',
@@ -2903,6 +2930,7 @@ $1',
 'file-info-size-pages' => '$1 × $2 pikselow, wjelikosć dataje: $3, MIME-typ: $4, $5 {{PLURAL:$5|bok|boka|boki|bokow}}',
 'file-nohires' => 'Wuše wótgranicowanje njeeksistěrujo.',
 'svg-long-desc' => 'dataja SVG, nominalnje: $1 × $2 piksele, wjelikosć dataje: $3',
+'svg-long-desc-animated' => 'Animěrowana SVG-dataja, zakładnej wótměra $1 × $2 pikselow, datajowa wjelikosć: $3',
 'show-big-image' => 'Połne optiske wótgranicowanje.',
 'show-big-image-preview' => 'Wjelikosć toś togo pśeglěda: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Druge rozeznaśe||Drugej rozeznaśi|Druge rozeznaśa|Druge rozeznaśa}}: $1.',
@@ -2912,6 +2940,8 @@ $1',
 'file-info-png-looped' => 'šlejfa',
 'file-info-png-repeat' => '{{PLURAL:$1|$1 raz|dwójcy|$1 raze|$1 razow}} wótegrata',
 'file-info-png-frames' => '$1 {{PLURAL:$1|wobłuk|wobłuka|wobłuki|wobłukow}}',
+'file-no-thumb-animation' => "'''Glědaj: Techniskich wobgranicowanjow dla pśeglědne wobrazki toś teje dataje se njeaniměruju.'''",
+'file-no-thumb-animation-gif' => "'''Glědaj: Techniskich wobgranicowanjow dla pśeglědne wobrazki wusokego rozeznaśa GIF-wobrazow ako toś togo njebudu se animěrowaś.'''",
 
 # Special:NewFiles
 'newimages' => 'Nowe dataje',
index cb1e053..9b0552e 100644 (file)
@@ -588,14 +588,10 @@ Vadä la pàgina dal file',
 
 # Info page
 'pageinfo-header-edits' => 'Mudifich',
-'pageinfo-header-views' => 'Visit',
-'pageinfo-subjectpage' => 'Pàgina',
-'pageinfo-talkpage' => 'Pàgina ad discüssion',
+'pageinfo-views' => 'Nümar ad visit',
 'pageinfo-watchers' => 'Numar ad visitador',
 'pageinfo-edits' => 'Nümar ad mudifich',
 'pageinfo-authors' => 'Nümar ad devers autor',
-'pageinfo-views' => 'Nümar ad visit',
-'pageinfo-viewsperedit' => 'Visit par mudifich',
 
 # Browsing diffs
 'previousdiff' => "← Mudifich piö vecc'",
index 9ef29a6..5ee9f93 100644 (file)
@@ -11,6 +11,7 @@
  * @author Assassingr
  * @author Azimout
  * @author Badseed
+ * @author Chomwitt
  * @author Consta
  * @author Crazymadlover
  * @author Dada
@@ -1126,7 +1127,7 @@ $2
 'currentrevisionlink' => 'εμφάνιση της τρέχουσας αναθεώρησης',
 'cur' => 'τρέχουσα',
 'next' => 'επόμενη',
-'last' => 'Ï\84ελεÏ\85Ï\84αία',
+'last' => 'Ï\80Ï\81οηγοÏ\8dμενη',
 'page_first' => 'πρώτη',
 'page_last' => 'τελευταία',
 'histlegend' => "Σύγκριση διαφορών: σημάνετε τα κουτάκια επιλογής των εκδόσεων που θέλετε να συγκρίνετε και πατήστε το πλήκτρο enter ή κάντε κλικ στο κουμπί στην κάτω μεριά.<br />
@@ -1692,9 +1693,9 @@ $1",
 'uploadtext' => "Μπορείτε να χρησιμοποιήσετε την παρακάτω φόρμα για να επιφορτώσετε αρχεία. Για να δείτε ήδη επιφορτωμένα αρχεία, πηγαίνετε στη [[Special:FileList|λίστα επιφορτωμένων αρχείων]] ή στο [[Special:Log/upload|ιστορικό επιφορτώσεων]]. Οι διαγραφές έχουν καταγραφεί στη σελίδα [[Special:Log/delete|αρχείο διαγραφών]].
 
 Για να συμπεριληφθεί μια εικόνα σε μια σελίδα, χρησιμοποιήστε συνδέσμους της μορφής:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' (χρήση της πλήρους εκδοχής του αρχείου)
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' (χρήση μίας εκδοχής 200 pixel σε πλάτος σε ένα κουτάκι στο αριστερό περιθώριο με περιγραφή 'alt text')
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' (άμεση σύνδεση με το αρχείο χωρίς εμφάνιση του ίδιου του αρχείου)",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' (χρήση της πλήρους εκδοχής του αρχείου)
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' (χρήση μίας εκδοχής 200 pixel σε πλάτος σε ένα κουτάκι στο αριστερό περιθώριο με περιγραφή 'alt text')
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' (άμεση σύνδεση με το αρχείο χωρίς εμφάνιση του ίδιου του αρχείου)",
 'upload-permitted' => 'Επιτρεπτοί τύποι αρχείων: $1.',
 'upload-preferred' => 'Τύποι αρχείων που προτιμούνται: $1.',
 'upload-prohibited' => 'Απαγορευμένοι τύποι αρχείου: $1.',
@@ -1737,20 +1738,20 @@ $1",
 'largefileserver' => 'Το μέγεθος αυτού του αρχείο είναι μεγαλύτερο από το μέγιστο μέγεθος που ο εξυπηρετητής είναι ρυθμισμένος να επιτρέπει.',
 'emptyfile' => 'Το αρχείο που φορτώσατε φαίνεται να είναι κενό. Αυτό μπορεί να οφείλεται σε λάθος πληκτρολόγησης του ονόματος του αρχείου. Παρακαλούμε ελέγξτε εαν αυτό είναι πραγματικά το αρχείο που θέλετε να φορτώσετε.',
 'windows-nonascii-filename' => 'Αυτό το wiki δεν υποστηρίζει ονόματα αρχείων με ειδικούς χαρακτήρες.',
-'fileexists' => "Υπάρχει ήδη αρχείο με αυτό το όνομα -παρακαλούμε ελέγξτε στο '''<tt>[[:$1]]</tt>'''.
-Είστε βέβαιος (-η) πως θέλετε να αλλάξετε το όνομα του αρχείου; [[$1|thumb]]",
-'filepageexists' => "Η σελίδα περιγραφής για αυτό το αρχείο δημιουργήθηκε ήδη στο '''<tt>[[:$1]]</tt>''', αλλά κανένα αρχείο με αυτό το όνομα δεν υπάρχει αυτή τη στιγμή.
+'fileexists' => 'Υπάρχει ήδη αρχείο με αυτό το όνομα -παρακαλούμε ελέγξτε στο <strong>[[:$1]]</strong>.
+Είστε βέβαιος (-η) πως θέλετε να αλλάξετε το όνομα του αρχείου; [[$1|thumb]]',
+'filepageexists' => 'Η σελίδα περιγραφής για αυτό το αρχείο δημιουργήθηκε ήδη στο <strong>[[:$1]]</strong>, αλλά κανένα αρχείο με αυτό το όνομα δεν υπάρχει αυτή τη στιγμή.
 Η περιγραφἠ που θα εισάγετε δεν θα εμφανιστεί στη σελίδα περιγραφής.
 Για να εμφανιστεί η περιγραφή σας εκεί, θα πρέπει να την επεξεργαστείτε χειροκίνητα.
-[[$1|thumb]]",
-'fileexists-extension' => "Ένα αρχείο με παρόμοιο όνομα υπάρχει: [[$2|thumb]]
-* Όνομα του προς επιφόρτωση αρχείου: '''<tt>[[:$1]]</tt>'''
-* Όνομα υπάρχοντος αρχείου: '''<tt>[[:$2]]</tt>'''
-Παρακαλώ διαλέξτε ένα διαφορετικό όνομα.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Ένα αρχείο με παρόμοιο όνομα υπάρχει: [[$2|thumb]]
+* Όνομα του προς επιφόρτωση αρχείου: <strong>[[:$1]]</strong>
+* Όνομα υπάρχοντος αρχείου: <strong>[[:$2]]</strong>
+Παρακαλώ διαλέξτε ένα διαφορετικό όνομα.',
 'fileexists-thumbnail-yes' => "Το αρχείο φαίνεται ότι είναι μια εικόνα μειωμένου μεγέθους ''(μικρογραφία)''. [[$1|thumb]]
-Παρακαλώ ελέγξτε το αρχείο '''<tt>[[:$1]]</tt>'''.
+Παρακαλώ ελέγξτε το αρχείο <strong>[[:$1]]</strong>.
 Αν το ελεγμένο αρχείο είναι η ίδια εικόνα στο αρχικό μέγεθος δεν είναι απαραίτητο να επιφορτώσετε μια επιπλέον μικρογραφία.",
-'file-thumbnail-no' => "Το όνομα αρχείου αρχίζει με '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Το όνομα αρχείου αρχίζει με <strong>$1</strong>.
 Φαίνεται πως είναι μια εικόνα μειωμένου μεγέθους ''(μικρογραφία)''.
 Αν έχετε αυτή την εικόνα σε πλήρη ανάλυση, επιφορτώστε τη, αλλιώς αλλάξτε παρακαλώ το όνομα του αρχείου.",
 'fileexists-forbidden' => 'Ένα αρχείο με αυτό το όνομα υπάρχει ήδη˙ εάν ακόμη θέλετε να επιφορτώσωτε αυτό το αρχείο παρακαλώ πηγαίνετε πίσω και επιφορτώστε το υπό ένα νέο όνομα. [[File:$1|thumb|center|$1]]',
@@ -1993,7 +1994,7 @@ $1',
 
 # MIME search
 'mimesearch' => 'Αναζήτηση MIME',
-'mimesearch-summary' => 'Αυτή η σελίδα ενεργοποιεί το φιλτράρισμα αρχείων σύμφωνα με τον τύπο MIME τους. Είσοδος: contenttype/subtype, π.χ. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Αυτή η σελίδα ενεργοποιεί το φιλτράρισμα αρχείων σύμφωνα με τον τύπο MIME τους. Είσοδος: contenttype/subtype, π.χ. <code>image/jpeg</code>.',
 'mimetype' => 'Τύπος MIME:',
 'download' => 'λήψη',
 
@@ -2190,7 +2191,7 @@ $1',
 'linksearch-ok' => 'Αναζήτηση',
 'linksearch-text' => 'Χαρακτήρες όπως "*.wikipedia.org" μπορούν να χρησιμοποιηθούν. 
 Χρειάζεται τουλάχιστον ένα domain ανώτατου επιπέδου, για παράδειγμα "*.org".<br />
-Υποστηριζόμενα πρωτόκολλα: <tt> $1 </tt> (μην προσθέτετε οποιαδήποτε από αυτές στην αναζήτησή σας).',
+Υποστηριζόμενα πρωτόκολλα: <code> $1 </code> (μην προσθέτετε οποιαδήποτε από αυτές στην αναζήτησή σας).',
 'linksearch-line' => 'Η $1 συνδεδεμένη από την $2',
 'linksearch-error' => 'Λέξεις-μπαλαντέρ μπορεί να εμφανιστούν μόνο στην αρχή τού ονόματος ιστοτόπου (hostname).',
 
@@ -3044,15 +3045,10 @@ $1',
 # Info page
 'pageinfo-title' => 'Πληροφορίες για "$1"',
 'pageinfo-header-edits' => 'Επεξεργασίες',
-'pageinfo-header-watchlist' => 'Λίστα παρακολούθησης',
-'pageinfo-header-views' => 'Προβολές',
-'pageinfo-subjectpage' => 'Σελίδα',
-'pageinfo-talkpage' => 'Σελίδα συζήτησης',
+'pageinfo-views' => 'Αριθμός προβολών',
 'pageinfo-watchers' => 'Αριθμός παρατηρητών',
 'pageinfo-edits' => 'Αριθμός επεξεργασιών',
 'pageinfo-authors' => 'Αριθμός ξεχωριστών συγγραφέων',
-'pageinfo-views' => 'Αριθμός προβολών',
-'pageinfo-viewsperedit' => 'Προβολές ανά επεξεργασία',
 
 # Skin names
 'skinname-standard' => 'Κλασσικό',
index bf253ae..0828bbe 100644 (file)
@@ -282,6 +282,7 @@ $magicWords = array(
        'img_text_bottom'         => array( 1,    'text-bottom' ),
        'img_link'                => array( 1,    'link=$1' ),
        'img_alt'                 => array( 1,    'alt=$1' ),
+       'img_class'               => array( 1,    'class=$1' ),
        'int'                     => array( 0,    'INT:' ),
        'sitename'                => array( 1,    'SITENAME' ),
        'ns'                      => array( 0,    'NS:' ),
@@ -417,6 +418,7 @@ $specialPageAliases = array(
        'MIMEsearch'                => array( 'MIMESearch' ),
        'Mostcategories'            => array( 'MostCategories' ),
        'Mostimages'                => array( 'MostLinkedFiles', 'MostFiles', 'MostImages' ),
+       'Mostinterwikis'            => array( 'MostInterwikis' ),
        'Mostlinked'                => array( 'MostLinkedPages', 'MostLinked' ),
        'Mostlinkedcategories'      => array( 'MostLinkedCategories', 'MostUsedCategories' ),
        'Mostlinkedtemplates'       => array( 'MostLinkedTemplates', 'MostUsedTemplates' ),
@@ -976,9 +978,9 @@ A list of valid special pages can be found at [[Special:SpecialPages|{{int:speci
 'dberrortext'                   => 'A database query syntax error has occurred.
 This may indicate a bug in the software.
 The last attempted database query was:
-<blockquote><tt>$1</tt></blockquote>
-from within function "<tt>$2</tt>".
-Database returned error "<tt>$3: $4</tt>".',
+<blockquote><code>$1</code></blockquote>
+from within function "<code>$2</code>".
+Database returned error "<samp>$3: $4</samp>".',
 'dberrortextcl'                 => 'A database query syntax error has occurred.
 The last attempted database query was:
 "$1"
@@ -1376,7 +1378,6 @@ The latest block log entry is provided below for reference:',
 * '''Firefox / Safari:''' Hold ''Shift'' while clicking ''Reload'', or press either ''Ctrl-F5'' or ''Ctrl-R'' (''⌘-R'' on a Mac)
 * '''Google Chrome:''' Press ''Ctrl-Shift-R'' (''⌘-Shift-R'' on a Mac)
 * '''Internet Explorer:''' Hold ''Ctrl'' while clicking ''Refresh'', or press ''Ctrl-F5''
-* '''Konqueror:''' Click ''Reload'' or press ''F5''
 * '''Opera:''' Clear the cache in ''Tools → Preferences''",
 'usercssyoucanpreview'             => "'''Tip:''' Use the \"{{int:showpreview}}\" button to test your new CSS before saving.",
 'userjsyoucanpreview'              => "'''Tip:''' Use the \"{{int:showpreview}}\" button to test your new JavaScript before saving.",
@@ -2153,9 +2154,9 @@ The deletion and move log for this page are provided here for convenience:",
 To view or search previously uploaded files go to the [[Special:FileList|list of uploaded files]], (re)uploads are also logged in the [[Special:Log/upload|upload log]], deletions in the [[Special:Log/delete|deletion log]].
 
 To include a file in a page, use a link in one of the following forms:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' to use the full version of the file
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' to use a 200 pixel wide rendition in a box in the left margin with 'alt text' as description
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' for directly linking to the file without displaying the file",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' to use the full version of the file
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' to use a 200 pixel wide rendition in a box in the left margin with 'alt text' as description
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' for directly linking to the file without displaying the file",
 'upload-permitted'            => 'Permitted file types: $1.',
 'upload-preferred'            => 'Preferred file types: $1.',
 'upload-prohibited'           => 'Prohibited file types: $1.',
@@ -2204,21 +2205,21 @@ this file is $2.',
 This might be due to a typo in the filename.
 Please check whether you really want to upload this file.',
 'windows-nonascii-filename'   => 'This wiki does not support filenames with special characters.',
-'fileexists'                  => "A file with this name exists already, please check '''<tt>[[:$1]]</tt>''' if you are not sure if you want to change it.
+'fileexists'                  => "A file with this name exists already, please check <strong>[[:$1]]</strong> if you are not sure if you want to change it.
 [[$1|thumb]]",
-'filepageexists'              => "The description page for this file has already been created at '''<tt>[[:$1]]</tt>''', but no file with this name currently exists.
+'filepageexists'              => "The description page for this file has already been created at <strong>[[:$1]]</strong>, but no file with this name currently exists.
 The summary you enter will not appear on the description page.
 To make your summary appear there, you will need to manually edit it.
 [[$1|thumb]]",
 'fileexists-extension'        => "A file with a similar name exists: [[$2|thumb]]
-* Name of the uploading file: '''<tt>[[:$1]]</tt>'''
-* Name of the existing file: '''<tt>[[:$2]]</tt>'''
+* Name of the uploading file: <strong>[[:$1]]</strong>
+* Name of the existing file: <strong>[[:$2]]</strong>
 Please choose a different name.",
 'fileexists-thumbnail-yes'    => "The file seems to be an image of reduced size ''(thumbnail)''.
 [[$1|thumb]]
-Please check the file '''<tt>[[:$1]]</tt>'''.
+Please check the file <strong>[[:$1]]</strong>.
 If the checked file is the same image of original size it is not necessary to upload an extra thumbnail.",
-'file-thumbnail-no'           => "The filename begins with '''<tt>$1</tt>'''.
+'file-thumbnail-no'           => "The filename begins with <strong>$1</strong>.
 It seems to be an image of reduced size ''(thumbnail)''.
 If you have this image in full resolution upload this one, otherwise change the filename please.",
 'fileexists-forbidden'        => 'A file with this name already exists, and cannot be overwritten.
@@ -2458,6 +2459,7 @@ Maybe you want to edit the description on its [$2 file description page] there.'
 'shared-repo'                       => 'a shared repository',
 'shared-repo-name-wikimediacommons' => 'Wikimedia Commons', # only translate this message to other languages if you have to change it
 'filepage.css'                      => '/* CSS placed here is included on the file description page, also included on foreign client wikis */', # only translate this message to other languages if you have to change it
+'upload-disallowed-here'            => 'Unfortunately you cannot overwrite this image.',
 
 # File reversion
 'filerevert'                => 'Revert $1',
@@ -2492,7 +2494,7 @@ Maybe you want to edit the description on its [$2 file description page] there.'
 # MIME search
 'mimesearch'         => 'MIME search',
 'mimesearch-summary' => 'This page enables the filtering of files for their MIME type.
-Input: contenttype/subtype, e.g. <tt>image/jpeg</tt>.',
+Input: contenttype/subtype, e.g. <code>image/jpeg</code>.',
 'mimetype'           => 'MIME type:',
 'download'           => 'download',
 
@@ -2577,6 +2579,7 @@ It now redirects to [[$2]].',
 # Miscellaneous special pages
 'nbytes'                          => '$1 {{PLURAL:$1|byte|bytes}}',
 'ncategories'                     => '$1 {{PLURAL:$1|category|categories}}',
+'ninterwikis'                     => '$1 {{PLURAL:$1|interwiki|interwikis}}',
 'nlinks'                          => '$1 {{PLURAL:$1|link|links}}',
 'nmembers'                        => '$1 {{PLURAL:$1|member|members}}',
 'nrevisions'                      => '$1 {{PLURAL:$1|revision|revisions}}',
@@ -2622,6 +2625,8 @@ It now redirects to [[$2]].',
 'mostcategories-summary'          => '', # do not translate or duplicate this message to other languages
 'mostimages'                      => 'Most linked-to files',
 'mostimages-summary'              => '', # do not translate or duplicate this message to other languages
+'mostinterwikis'                  => 'Pages with the most interwikis',
+'mostinterwikis-summary'          => '', # do not translate or duplicate this message to other languages
 'mostrevisions'                   => 'Pages with the most revisions',
 'mostrevisions-summary'           => '', # do not translate or duplicate this message to other languages
 'prefixindex'                     => 'All pages with prefix',
@@ -2742,7 +2747,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'linksearch-ok'      => 'Search',
 'linksearch-text'    => 'Wildcards such as "*.wikipedia.org" may be used.
 Needs at least a top-level domain, for example "*.org".<br />
-Supported protocols: <tt>$1</tt> (do not add any of these in your search).',
+Supported protocols: <code>$1</code> (do not add any of these in your search).',
 'linksearch-line'    => '$1 is linked from $2',
 'linksearch-error'   => 'Wildcards may appear only at the start of the hostname.',
 
@@ -2776,8 +2781,8 @@ There may be [[{{MediaWiki:Listgrouprights-helppage}}|additional information]] a
 'listgrouprights-rights'               => 'Rights',
 'listgrouprights-helppage'             => 'Help:Group rights',
 'listgrouprights-members'              => '(list of members)',
-'listgrouprights-right-display'        => '<span class="listgrouprights-granted">$1 <tt>($2)</tt></span>', # only translate this message to other languages if you have to change it
-'listgrouprights-right-revoked'        => '<span class="listgrouprights-revoked">$1 <tt>($2)</tt></span>', # only translate this message to other languages if you have to change it
+'listgrouprights-right-display'        => '<span class="listgrouprights-granted">$1 <code>($2)</code></span>', # only translate this message to other languages if you have to change it
+'listgrouprights-right-revoked'        => '<span class="listgrouprights-revoked">$1 <code>($2)</code></span>', # only translate this message to other languages if you have to change it
 'listgrouprights-addgroup'             => 'Add {{PLURAL:$2|group|groups}}: $1',
 'listgrouprights-removegroup'          => 'Remove {{PLURAL:$2|group|groups}}: $1',
 'listgrouprights-addgroup-all'         => 'Add all groups',
@@ -2791,6 +2796,8 @@ There may be [[{{MediaWiki:Listgrouprights-helppage}}|additional information]] a
 'mailnologin'          => 'No send address',
 'mailnologintext'      => 'You must be [[Special:UserLogin|logged in]] and have a valid e-mail address in your [[Special:Preferences|preferences]] to send e-mail to other users.',
 'emailuser'            => 'E-mail this user',
+'emailuser-title-target' => 'E-mail this {{GENDER:$1|user}}',
+'emailuser-title-notarget' => 'E-mail user',
 'emailuser-summary'    => '', # do not translate or duplicate this message to other languages
 'emailpage'            => 'E-mail user',
 'emailpagetext'        => 'You can use the form below to send an e-mail message to this user.
@@ -3727,17 +3734,36 @@ This is probably caused by a link to a blacklisted external site.',
 'spam_deleting'       => 'All revisions contained links to $1, deleting',
 
 # Info page
-'pageinfo-title'            => 'Information for "$1"',
-'pageinfo-header-edits'     => 'Edits',
-'pageinfo-header-watchlist' => 'Watchlist',
-'pageinfo-header-views'     => 'Views',
-'pageinfo-subjectpage'      => 'Page',
-'pageinfo-talkpage'         => 'Talk page',
-'pageinfo-watchers'         => 'Number of watchers',
-'pageinfo-edits'            => 'Number of edits',
-'pageinfo-authors'          => 'Number of distinct authors',
-'pageinfo-views'            => 'Number of views',
-'pageinfo-viewsperedit'     => 'Views per edit',
+'pageinfo-title'               => 'Information for "$1"',
+'pageinfo-header-basic'        => 'Basic information',
+'pageinfo-header-edits'        => 'Edit history',
+'pageinfo-header-restrictions' => 'Page protection',
+'pageinfo-header-properties'   => 'Page properties',
+'pageinfo-display-title'       => 'Display title',
+'pageinfo-default-sort'        => 'Default sort key',
+'pageinfo-length'              => 'Page length (in bytes)',
+'pageinfo-article-id'          => 'Page ID',
+'pageinfo-robot-policy'        => 'Search engine status',
+'pageinfo-robot-index'         => 'Indexable',
+'pageinfo-robot-noindex'       => 'Not indexable',
+'pageinfo-views'               => 'Number of views',
+'pageinfo-watchers'            => 'Number of page watchers',
+'pageinfo-redirects-name'      => 'Redirects to this page',
+'pageinfo-redirects-value'     => '$1',
+'pageinfo-subpages-name'       => 'Subpages of this page',
+'pageinfo-subpages-value'      => '$1 ($2 {{PLURAL:$2|redirect|redirects}}; $3 {{PLURAL:$3|non-redirect|non-redirects}})',
+'pageinfo-firstuser'           => 'Page creator',
+'pageinfo-firsttime'           => 'Date of page creation',
+'pageinfo-lastuser'            => 'Latest editor',
+'pageinfo-lasttime'            => 'Date of latest edit',
+'pageinfo-edits'               => 'Total number of edits',
+'pageinfo-authors'             => 'Total number of distinct authors',
+'pageinfo-recent-edits'        => 'Recent number of edits (within past $1)',
+'pageinfo-recent-authors'      => 'Recent number of distinct authors',
+'pageinfo-restriction'         => 'Page protection (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words'         => 'Magic {{PLURAL:$1|word|words}} ($1)',
+'pageinfo-hidden-categories'   => 'Hidden {{PLURAL:$1|category|categories}} ($1)',
+'pageinfo-templates'           => 'Transcluded {{PLURAL:$1|template|templates}} ($1)',
 
 # Skin names
 'skinname-standard'    => 'Classic', # only translate this message to other languages if you have to change it
@@ -3794,6 +3820,7 @@ By executing it, your system may be compromised.",
 'file-info-size-pages'   => '$1 × $2 pixels, file size: $3, MIME type: $4, $5 {{PLURAL:$5|page|pages}}',
 'file-nohires'           => 'No higher resolution available.',
 'svg-long-desc'          => 'SVG file, nominally $1 × $2 pixels, file size: $3',
+'svg-long-desc-animated' => 'Animated SVG file, nominally $1 × $2 pixels, file size: $3',
 'show-big-image'         => 'Full resolution',
 'show-big-image-preview' => 'Size of this preview: $1.',
 'show-big-image-other'   => 'Other {{PLURAL:$2|resolution|resolutions}}: $1.',
@@ -3803,6 +3830,8 @@ By executing it, your system may be compromised.",
 'file-info-png-looped'   => 'looped',
 'file-info-png-repeat'   => 'played $1 {{PLURAL:$1|time|times}}',
 'file-info-png-frames'   => '$1 {{PLURAL:$1|frame|frames}}',
+'file-no-thumb-animation'=> '\'\'\'Note: Due to technical limitations, thumbnails of this file will not be animated.\'\'\'',
+'file-no-thumb-animation-gif' => '\'\'\'Note: Due to technical limitations, thumbnails of high resolution GIF images such as this one will not be animated.\'\'\'',
 
 # Special:NewFiles
 'newimages'             => 'Gallery of new files',
index d546ffe..dc36986 100644 (file)
@@ -384,30 +384,30 @@ $messages = array(
 'thu' => 'Ĵaŭ',
 'fri' => 'Ven',
 'sat' => 'Sab',
-'january' => 'Januaro',
-'february' => 'Februaro',
-'march' => 'Marto',
-'april' => 'Aprilo',
-'may_long' => 'Majo',
-'june' => 'Junio',
-'july' => 'Julio',
-'august' => 'Aŭgusto',
-'september' => 'Septembro',
-'october' => 'Oktobro',
-'november' => 'Novembro',
-'december' => 'Decembro',
+'january' => 'januaro',
+'february' => 'februaro',
+'march' => 'marto',
+'april' => 'aprilo',
+'may_long' => 'majo',
+'june' => 'junio',
+'july' => 'julio',
+'august' => 'aŭgusto',
+'september' => 'septembro',
+'october' => 'oktobro',
+'november' => 'novembro',
+'december' => 'decembro',
 'january-gen' => 'januaro',
 'february-gen' => 'februaro',
 'march-gen' => 'marto',
-'april-gen' => 'Aprilo',
-'may-gen' => 'Majo',
-'june-gen' => 'Junio',
-'july-gen' => 'Julio',
-'august-gen' => 'Aŭgusto',
-'september-gen' => 'Septembro',
+'april-gen' => 'aprilo',
+'may-gen' => 'majo',
+'june-gen' => 'junio',
+'july-gen' => 'julio',
+'august-gen' => 'aŭgusto',
+'september-gen' => 'septembro',
 'october-gen' => 'oktobro',
-'november-gen' => 'Novembro',
-'december-gen' => 'Decembro',
+'november-gen' => 'novembro',
+'december-gen' => 'decembro',
 'jan' => 'Jan',
 'feb' => 'Feb',
 'mar' => 'Mar',
@@ -1762,21 +1762,21 @@ tiu ĉi tiu dosiero pezas $2 bitokojn.',
 'largefileserver' => 'Ĉi tiu dosiero estas pli granda ol permesas la servilaj preferoj.',
 'emptyfile' => 'La dosiero kiun vi alŝutis ŝajnas malplena. Tio povas esti kaŭzita sde tajperaro en la titolo. Bonvolu kontroli ĉu vi vere volas alŝuti tiun dosieron.',
 'windows-nonascii-filename' => 'Ĉi tiu vikio ne subtenas dosiernomoj kun specialaj signoj.',
-'fileexists' => "Dosiero kun tia ĉi nomo jam ekzistas.
-Bonvolu kontroli '''<tt>[[:$1]]</tt>''' krom se vi certas ke vi konscie volas ŝanĝi ĝuste tiun.
-[[$1|thumb]]",
-'filepageexists' => "La priskriba paĝo por ĉi tiu dosiero jam estis kreita ĉe '''<tt>[[:$1]]</tt>''', sed neniu dosiero kun ĉi tiu nomo nune ekzistas.
+'fileexists' => 'Dosiero kun tia ĉi nomo jam ekzistas.
+Bonvolu kontroli <strong>[[:$1]]</strong> krom se vi certas ke vi konscie volas ŝanĝi ĝuste tiun.
+[[$1|thumb]]',
+'filepageexists' => 'La priskriba paĝo por ĉi tiu dosiero jam estis kreita ĉe <strong>[[:$1]]</strong>, sed neniu dosiero kun ĉi tiu nomo nune ekzistas.
 La resumo kiun vi entajpos ne aperos en la priskribo-paĝo.
 Por aperigi vian resumon, vi devos permane redakti ĝin.
-[[$1|thumb]]",
-'fileexists-extension' => "Dosiero kun simila nomo ekzistas: [[$2|thumb]]
-* Nomo de la alŝuta dosiero: '''<tt>[[:$1]]</tt>'''
-* Nomo de la ekzistanta dosiero: '''<tt>[[:$2]]</tt>'''
-Bonvolu elekti malsaman nomon.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Dosiero kun simila nomo ekzistas: [[$2|thumb]]
+* Nomo de la alŝuta dosiero: <strong>[[:$1]]</strong>
+* Nomo de la ekzistanta dosiero: <strong>[[:$2]]</strong>
+Bonvolu elekti malsaman nomon.',
 'fileexists-thumbnail-yes' => "Ĉi tiu dosiero ŝajnas kiel bildo de malkreskigita grandeco ''(bildeto)''. [[$1|thumb]]
-Bonvolu kontroli la dosieron '''<tt>[[:$1]]</tt>'''.
+Bonvolu kontroli la dosieron <strong>[[:$1]]</strong>.
 Se la kontrolita dosiero estas la sama bildo kiel la originala grandeco, ĝi ne nepras alŝuti plian bideton.",
-'file-thumbnail-no' => "La dosiernomo komencas kun '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "La dosiernomo komencas kun <strong>$1</strong>.
 Ĝi ŝajnas kiel bildo de malgrandigita grandeco ''(thumbnail)''.
 Se vi havas ĉi tiun bildon en plena distingivo, alŝutu ĉi tiun, alikaze bonvolu ŝanĝi la dosieran nomon.",
 'fileexists-forbidden' => 'Dosiero kun ĉi tiu nomo jam ekzistas kaj ne povas anstataŭigi ĝin.
@@ -2021,7 +2021,7 @@ Eble vi volas redakti la priskribon ĉe ties [$2 dosier-priskriba paĝo].',
 
 # MIME search
 'mimesearch' => 'MIME-serĉilo',
-'mimesearch-summary' => 'Ĉi tiu paĝo ebligas la filtradon de dosieroj por ties MIME-tipo. Enigu: enhavo-tipo/subtipo, ekz. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Ĉi tiu paĝo ebligas la filtradon de dosieroj por ties MIME-tipo. Enigu: enhavo-tipo/subtipo, ekz. <code>image/jpeg</code>.',
 'mimetype' => 'MIME-tipo:',
 'download' => 'elŝuti',
 
@@ -2224,7 +2224,7 @@ Vidu ankaŭ [[Special:WantedCategories|Dezirataj kategorioj]].',
 'linksearch-ns' => 'Nomspaco:',
 'linksearch-ok' => 'Serĉi',
 'linksearch-text' => 'Regulesprimoj kiel "*.wikipedia.org" povas esti uzataj. Nepre havi almenaŭ plej altan domajnon, ekz-e "*.org".<br />
-Subtenataj protokoloj: <tt>$1</tt> (ne aldonu ĉi tiujn ajn en via serĉo-mendo).',
+Subtenataj protokoloj: <code>$1</code> (ne aldonu ĉi tiujn ajn en via serĉo-mendo).',
 'linksearch-line' => '$1 ligita de $2',
 'linksearch-error' => 'Regulesprimoj povas aperi nur ĉe la komenco de la retnoda nomo.',
 
@@ -2907,6 +2907,7 @@ Datoj de versioj kaj nomoj de redaktantoj estos preservitaj.
 'import-interwiki-templates' => 'Inkluzivi ĉiujn ŝablonojn',
 'import-interwiki-submit' => 'Importi',
 'import-interwiki-namespace' => 'Cela nomspaco:',
+'import-interwiki-rootpage' => 'Ircela radikopaĝo (laŭvola):',
 'import-upload-filename' => 'Dosiernomo:',
 'import-comment' => 'Komento:',
 'importtext' => 'Bonvolu eksporti la dosieron el la fonta vikio per la [[Special:Export|eksportilo]]. Konservu ĝin sur via persona komputilo kaj poste alŝutu ĝin tien ĉi.',
@@ -2938,6 +2939,9 @@ Datoj de versioj kaj nomoj de redaktantoj estos preservitaj.
 'import-error-interwiki' => 'Paĝo "$1" ne estis importita pro sia nomo estas deklarita por ekstera ligado (intervikia).',
 'import-error-special' => 'Paĝo "$1" ne estas importata, ĉar ĝi apartenas al speciala nomspaco, kiu ne permesas paĝojn.',
 'import-error-invalid' => 'Paĝo "$1" ne estas importata, ĉar ĝia nomo estas malvalida.',
+'import-options-wrong' => '{{PLURAL:$2|Erara elekto|Eraraj elektoj}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'La provizita paĝo havas nevalidan titolon.',
+'import-rootpage-nosubpage' => 'La nomspaco "$1" de la radikopaĝo ne permesas subpaĝoj.',
 
 # Import log
 'importlogpage' => 'Protokolo de importaĵoj',
@@ -3090,15 +3094,10 @@ Datoj de versioj kaj nomoj de redaktantoj estos preservitaj.
 # Info page
 'pageinfo-title' => 'Informoj por "$1"',
 'pageinfo-header-edits' => 'Redaktoj',
-'pageinfo-header-watchlist' => 'Atentaro',
-'pageinfo-header-views' => 'Rigardoj',
-'pageinfo-subjectpage' => 'Paĝo',
-'pageinfo-talkpage' => 'Diskuto-paĝo',
+'pageinfo-views' => 'Nombro de rigardoj',
 'pageinfo-watchers' => 'Nombro de atentantoj',
 'pageinfo-edits' => 'Nombro de redaktoj',
 'pageinfo-authors' => 'Nombro de distingaj aŭtoroj',
-'pageinfo-views' => 'Nombro de rigardoj',
-'pageinfo-viewsperedit' => 'Po rigardoj por redakto',
 
 # Skin names
 'skinname-standard' => 'Klasiko',
index 91725d7..b81b012 100644 (file)
@@ -70,6 +70,7 @@
  * @author Richard Wolf VI
  * @author Sanbec
  * @author Savh
+ * @author Shirayuki
  * @author Spacebirdy
  * @author Technorum
  * @author The Evil IP address
@@ -612,6 +613,8 @@ $1',
 'youhavenewmessages' => 'Tienes $1 ($2).',
 'newmessageslink' => 'mensajes nuevos',
 'newmessagesdifflink' => 'última modificación',
+'youhavenewmessagesfromusers' => 'Tienes $1 de {{PLURAL:$3|otro usuario|$3 usuarios}} ($2).',
+'youhavenewmessagesmanyusers' => 'Tienes $1 de muchos usuarios ($2).',
 'newmessageslinkplural' => '{{PLURAL:$1|un nuevo mensaje|mensajes nuevos}}',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|última modificación|últimos cambios}}',
 'youhavenewmessagesmulti' => 'Tienes nuevos mensajes en $1',
@@ -667,9 +670,9 @@ Puedes ver una lista de las páginas especiales en [[Special:SpecialPages|{{int:
 'dberrortext' => 'Ha ocurrido un error de sintaxis en una consulta a la base de datos.
 Esto puede indicar un error en el software.
 La última consulta a la base de datos que se intentó fue:
-<blockquote><tt>$1</tt></blockquote>
-dentro de la función «<tt>$2</tt>».
-La base de datos devolvió el error «<tt>$3: $4</tt>».',
+<blockquote><code>$1</code></blockquote>
+dentro de la función "<code>$2</code>".
+La base de datos devolvió el error "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Ha ocurrido un error de sintaxis en una consulta a la base de datos.
 La última consulta a la base de datos que se intentó fue:
 «$1»
@@ -1024,7 +1027,6 @@ La última entrada del registro de bloqueos se proporciona debajo para mayor ref
 * '''Firefox / Safari:''' Mantén presionada ''Mayús'' mientras pulsas el botón ''Actualizar'', o presiona ''Ctrl+F5'' o ''Ctrl+R'' (''⌘+R'' en Mac)
 * '''Google Chrome:''' presiona ''Ctrl+Shift+R'' (''⌘+Mayús+R'' en Mac)
 * '''Internet Explorer:''' mantén presionada ''Ctrl'' mientras pulsas ''Actualizar'', o presiona ''Ctrl+F5''
-* '''Konqueror:''' pulsa ''Recargar'' o presiona ''F5''
 * '''Opera:''' vacía la caché en ''Herramientas → Preferencias''",
 'usercssyoucanpreview' => "'''Consejo:''' Usa el botón «{{int:showpreview}}» para probar el nuevo CSS antes de guardarlo.",
 'userjsyoucanpreview' => "'''Consejo:''' Usa el botón «{{int:showpreview}}» para probar el nuevo JS antes de guardarlo.",
@@ -1743,9 +1745,9 @@ Para ver o buscar archivos subidos con anterioridad, ve a la [[Special:FileList|
 Los archivos subidos quedarán registrados además en el [[Special:Log/upload|registro de archivos subidos]] y los borrados en el [[Special:Log/delete|registro de borrados]].
 
 Para incluir un archivo en una página, usa un enlace como los mostrados a continuación:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' para usar el fichero en tamaño completo
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|texto descriptivo]]</nowiki></tt>''' para una versión de 200 píxeles de ancho en una caja en el margen izquierdo con 'texto descriptivo' como descripción
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' para enlazar directamente al fichero sin mostrarlo.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' para usar el fichero en tamaño completo
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|texto descriptivo]]</nowiki></code>''' para una versión de 200 píxeles de ancho en una caja en el margen izquierdo con 'texto descriptivo' como descripción
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' para enlazar directamente al fichero sin mostrarlo.",
 'upload-permitted' => 'Tipos de archivo permitidos: $1.',
 'upload-preferred' => 'Tipos de archivo preferidos: $1.',
 'upload-prohibited' => 'Tipos de archivo prohibidos: $1.',
@@ -1789,19 +1791,19 @@ Mira la [[Special:NewFiles|galería de archivos nuevos]] para una descripción v
 'largefileserver' => 'El tamaño de este archivo es mayor del que este servidor admite por configuración.',
 'emptyfile' => 'El archivo que has intentado subir parece estar vacío; por favor, verifica que realmente se trate del archivo que intentabas subir.',
 'windows-nonascii-filename' => 'Este wiki no admite nombres de archivo con caracteres especiales.',
-'fileexists' => "Ya existe un archivo con este nombre, por favor comprueba '''<tt>[[:$1]]</tt>''' si no estás seguro de querer cambiarlo.
-[[$1|thumb]]",
-'filepageexists' => "La página de descripción de este archivo ya ha sido creada en '''<tt>[[:$1]]</tt>''', pero no existe actualmente ningún fichero con este nombre.
+'fileexists' => 'Ya existe un archivo con este nombre, por favor comprueba <strong>[[:$1]]</strong> si no estás seguro de querer cambiarlo.
+[[$1|thumb]]',
+'filepageexists' => 'La página de descripción de este archivo ya ha sido creada en <strong>[[:$1]]</strong>, pero no existe actualmente ningún fichero con este nombre.
 El resumen que ha ingresado no aparecerá en la página de descripción. Para que el sumario aparezca, deberá editarlo manualmente.
-[[$1|thumb]]",
-'fileexists-extension' => "Existe un archivo con un nombre similar: [[$2|thumb]]
-* Nombre del archivo que se está subiendo: '''<tt>[[:$1]]</tt>'''
-* Nombre del archivo ya existente: '''<tt>[[:$2]]</tt>'''
-Por favor, elige un nombre diferente.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Existe un archivo con un nombre similar: [[$2|thumb]]
+* Nombre del archivo que se está subiendo: <strong>[[:$1]]</strong>
+* Nombre del archivo ya existente: <strong>[[:$2]]</strong>
+Por favor, elige un nombre diferente.',
 'fileexists-thumbnail-yes' => "El archivo parece ser una imagen de tamaño reducido ''(thumbnail)''. [[$1|thumb]]
-Por favor comprueba el archivo '''<tt>[[:$1]]</tt>'''.
+Por favor comprueba el archivo <strong>[[:$1]]</strong>.
 Si el archivo comprobado es la misma imagen a tamaño original no es necesario subir un thumbnail más.",
-'file-thumbnail-no' => "El nombre del archivo comienza con '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "El nombre del archivo comienza con <strong>$1</strong>.
 Parece ser una imagen de tamaño reducido ''(thumbnail)''.
 Si tiene esta imagen a toda resolución súbala, si no, por favor cambie el nombre del archivo.",
 'fileexists-forbidden' => 'Ya existe un archivo con este nombre, y no puede ser grabado encima de otro. Si quiere subir su archivo de todos modos, por favor vuelva atrás y utilice otro nombre. [[File:$1|thumb|center|$1]]',
@@ -2029,6 +2031,7 @@ Tal vez desee editar la descripción de su [$2 página de descripción del archi
 'shared-repo-from' => 'de $1',
 'shared-repo' => 'un repositorio compartido',
 'filepage.css' => '/* Los estilos CSS colocados aquí se incluirán en las páginas de descripción de archivos, incluso en los wikis externos que incluyan estas páginas */',
+'upload-disallowed-here' => 'Lamentablemente no puedes sobrescribir esta imagen.',
 
 # File reversion
 'filerevert' => 'Revertir $1',
@@ -2063,7 +2066,7 @@ Tal vez desee editar la descripción de su [$2 página de descripción del archi
 # MIME search
 'mimesearch' => 'Búsqueda MIME',
 'mimesearch-summary' => 'Esta página permite el filtrado de ficheros por su tipo MIME.
-Entrada: contenttype/subtype, p. ej. <tt>image/jpeg</tt>.',
+Entrada: contenttype/subtype, p. ej. <code>image/jpeg</code>.',
 'mimetype' => 'Tipo MIME:',
 'download' => 'descargar',
 
@@ -2136,6 +2139,7 @@ Las entradas <del>tachadas</del> han sido resueltas.',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}',
 'ncategories' => '$1 {{PLURAL:$1|categoría|categorías}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwikis}}',
 'nlinks' => '$1 {{PLURAL:$1|enlace|enlaces}}',
 'nmembers' => '$1 {{PLURAL:$1|artículo|artículos}}',
 'nrevisions' => '$1 {{PLURAL:$1|revisión|revisiones}}',
@@ -2164,6 +2168,7 @@ Las entradas <del>tachadas</del> han sido resueltas.',
 'mostlinkedtemplates' => 'Plantillas más enlazadas',
 'mostcategories' => 'Páginas con más categorías',
 'mostimages' => 'Imágenes más usadas',
+'mostinterwikis' => 'Páginas con más interwikis',
 'mostrevisions' => 'Artículos con más ediciones',
 'prefixindex' => 'Todas las páginas con prefijo',
 'prefixindex-namespace' => 'Todas las páginas con el prefijo (espacio de nombres $1)',
@@ -2263,7 +2268,7 @@ Véase también las [[Special:WantedCategories|categorías requeridas]].',
 'linksearch-ok' => 'Buscar',
 'linksearch-text' => 'Se pueden usar caracteres comodín como "*.wikipedia.org".
 Es necesario, por lo menos, un dominio de nivel, por ejemplo "*.org".<br />
-Protocolos soportados: <tt>$1</tt> (no añada ninguno de estos en su búsqueda).',
+Protocolos soportados: <code>$1</code> (no añada ninguno de estos en su búsqueda).',
 'linksearch-line' => '$1 enlazado desde $2',
 'linksearch-error' => 'Los comodines sólo pueden aparecer al principio del nombre de sitio.',
 
@@ -2309,6 +2314,8 @@ Puede haber información adicional sobre privilegios individuales en [[{{MediaWi
 'mailnologin' => 'Ninguna dirección de envio',
 'mailnologintext' => 'Debes [[Special:UserLogin|iniciar sesión]] y tener una dirección electrónica válida en tus [[Special:Preferences|preferencias]] para enviar un correo electrónico a otros usuarios.',
 'emailuser' => 'Enviar correo electrónico a este usuario',
+'emailuser-title-target' => 'Enviar un correo electrónico a {{GENDER:$1|este usuario|esta usuaria}}',
+'emailuser-title-notarget' => 'Enviar un correo electrónico al usuario',
 'emailpage' => 'Correo electrónico a usuario',
 'emailpagetext' => 'Puedes usar el formulario de abajo para enviar un correo electrónico a este usuario.
 La dirección electrónica que indicaste en [[Special:Preferences|tus preferencias de usuario]] aparecerá en el remitente para que el destinatario pueda responderte.',
@@ -2940,6 +2947,7 @@ Todas las importaciones transwiki se registran en el [[Special:Log/import|regist
 'import-interwiki-templates' => 'Incluir todas las plantillas',
 'import-interwiki-submit' => 'Importar',
 'import-interwiki-namespace' => 'Espacio de nombres de destino:',
+'import-interwiki-rootpage' => 'Página raíz del destino (opcional):',
 'import-upload-filename' => 'Nombre de archivo:',
 'import-comment' => 'Comentario:',
 'importtext' => 'Por favor, exporta el archivo desde el wiki de origen usando la [[Special:Export|herramienta de exportación]], guárdalo en tu disco y súbelo aquí.',
@@ -2974,6 +2982,9 @@ No hay un directorio temporal.',
 'import-error-interwiki' => 'La página "$1" no se ha importado porque su nombre está reservado para la vinculación externa (interwikis).',
 'import-error-special' => 'La página "$1" no se ha importado porque pertenece a un espacio de nombres especial que no admite páginas.',
 'import-error-invalid' => 'La página "$1" no se ha importado porque su nombre no es válido.',
+'import-options-wrong' => '{{PLURAL:$2|Opción errónea|Opciones erróneas}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'La página raíz dada es un título inválido.',
+'import-rootpage-nosubpage' => 'El espacio de nombres "$1" de la página raíz no permite subpáginas.',
 
 # Import log
 'importlogpage' => 'Registro de importaciones',
@@ -3127,16 +3138,35 @@ Esto podría estar causado por un enlace a un sitio externo incluido en la lista
 
 # Info page
 'pageinfo-title' => 'Información para «$1»',
-'pageinfo-header-edits' => 'Ediciones',
-'pageinfo-header-watchlist' => 'Lista de seguimiento',
-'pageinfo-header-views' => 'Vistas',
-'pageinfo-subjectpage' => 'Página',
-'pageinfo-talkpage' => 'Página de discusión',
-'pageinfo-watchers' => 'Número de usuarios vigilándola',
-'pageinfo-edits' => 'Número de ediciones',
-'pageinfo-authors' => 'Número de autores distintos',
+'pageinfo-header-basic' => 'Información básica',
+'pageinfo-header-edits' => 'Historial de ediciones',
+'pageinfo-header-restrictions' => 'Protección de página',
+'pageinfo-header-properties' => 'Propiedades de página',
+'pageinfo-display-title' => 'Visualizar el título',
+'pageinfo-default-sort' => 'Criterio de ordenación predeterminado',
+'pageinfo-length' => 'Longitud de la página (en bytes)',
+'pageinfo-article-id' => 'Identificador ID de la página',
+'pageinfo-robot-policy' => 'Estado del motor de búsqueda',
+'pageinfo-robot-index' => 'Indexable',
+'pageinfo-robot-noindex' => 'No indexable',
 'pageinfo-views' => 'Número de vistas',
-'pageinfo-viewsperedit' => 'Vistas por edición',
+'pageinfo-watchers' => 'Número de usuarios que vigilan la página',
+'pageinfo-redirects-name' => 'Redirecciones a esta página',
+'pageinfo-redirects-value' => '$1',
+'pageinfo-subpages-name' => 'Subpáginas de esta página',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|redirección|redirecciones}}; $3 {{PLURAL:$3|no-redirección|no-redirecciones}})',
+'pageinfo-firstuser' => 'Creador de la página',
+'pageinfo-firsttime' => 'Fecha de creación de la página',
+'pageinfo-lastuser' => 'Último editor',
+'pageinfo-lasttime' => 'Fecha de la última edición',
+'pageinfo-edits' => 'Número total de ediciones',
+'pageinfo-authors' => 'Número total de autores distintos',
+'pageinfo-recent-edits' => 'Número de ediciones recientes (en los últimos $1)',
+'pageinfo-recent-authors' => 'Número de autores distintos recientes',
+'pageinfo-restriction' => 'Protección de la página (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Palabra mágica|Palabras mágicas}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoría oculta|Categorías ocultas}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|plantilla incluida|plantillas incluidas}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Estándar',
@@ -3192,6 +3222,7 @@ Ejecutarlo podría comprometer la seguridad de su equipo.",
 'file-info-size-pages' => '$1 × $2 píxeles, tamaño de archivo: $3, tipo MIME: $4, $5 {{PLURAL:$5|página|páginas}}',
 'file-nohires' => 'No disponible a mayor resolución.',
 'svg-long-desc' => 'archivo SVG, nominalmente $1 × $2 píxeles, tamaño de archivo: $3',
+'svg-long-desc-animated' => 'Archivo SVG animado, nominalmente de $1 × $2 píxeles, tamaño del archivo: $3',
 'show-big-image' => 'Resolución original',
 'show-big-image-preview' => 'Tamaño de esta previsualización: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Otra resolución|Otras resoluciones}}: $1.',
@@ -3201,6 +3232,8 @@ Ejecutarlo podría comprometer la seguridad de su equipo.",
 'file-info-png-looped' => 'bucleado',
 'file-info-png-repeat' => 'reproducido $1 {{PLURAL:$1|vez|veces}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|marco|marcos}}',
+'file-no-thumb-animation' => "'''Nota: debido a limitaciones técnicas, las miniaturas de este archivo no están animadas.'''",
+'file-no-thumb-animation-gif' => "'''Nota: Debido a limitaciones técnicas, las miniaturas de imágenes GIF de alta resolución como esta no están animadas.'''",
 
 # Special:NewFiles
 'newimages' => 'Galería de imágenes nuevas',
index 06306e6..8047b55 100644 (file)
@@ -299,8 +299,8 @@ $messages = array(
 'tog-numberheadings' => 'Pealkirjade automaatnummerdus',
 'tog-showtoolbar' => 'Redigeerimise tööriistariba näitamine',
 'tog-editondblclick' => 'Artiklite redigeerimine topeltklõpsu peale (JavaScript)',
-'tog-editsection' => '[redigeeri] lingid peatükkide muutmiseks',
-'tog-editsectiononrightclick' => 'Peatükkide redigeerimine paremklõpsuga alampealkirjadel (JavaScript)',
+'tog-editsection' => 'Näita alaosade redigeerimise linke',
+'tog-editsectiononrightclick' => 'Alusta alaosa redigeerimist paremklõpsuga alaosa pealkirjal (vaja JavaScripti)',
 'tog-showtoc' => 'Näita sisukorda (lehtedel, millel on rohkem kui 3 pealkirja)',
 'tog-rememberpassword' => 'Parooli meeldejätmine tulevasteks seanssideks (kuni $1 {{PLURAL:$1|päevaks|päevaks}})',
 'tog-watchcreations' => 'Lisa jälgimisloendisse minu alustatud leheküljed ja minu üles laaditud failid',
@@ -496,7 +496,7 @@ $messages = array(
 'userpage' => 'Kasutajalehekülg',
 'projectpage' => 'Vaata projektilehekülge',
 'imagepage' => 'Vaata faililehekülge',
-'mediawikipage' => 'Vaata sõnumite lehekülge',
+'mediawikipage' => 'Vaata sõnumi lehekülge',
 'templatepage' => 'Mallilehekülg',
 'viewhelppage' => 'Vaata abilehekülge',
 'categorypage' => 'Kategoorialehekülg',
@@ -538,7 +538,7 @@ $1',
 'privacypage' => 'Project:Privaatsus',
 
 'badaccess' => 'Õigus puudub',
-'badaccess-group0' => 'Sul ei ole õigust läbi viia toimingut, mida üritasid.',
+'badaccess-group0' => 'Sul pole õigust sooritada toimingut, mida üritasid.',
 'badaccess-groups' => 'Tegevus, mida üritasid, on piiratud kasutajatele {{PLURAL:$2|rühmas|ühes neist rühmadest}}: $1.',
 
 'versionrequired' => 'Nõutav MediaWiki versioon $1',
@@ -610,9 +610,9 @@ Käibel olevad erileheküljed on loetletud leheküljel [[Special:SpecialPages|{{
 'dberrortext' => 'Andmebaasipäringus oli süntaksiviga.
 Selle võis tingida tarkvaraviga.
 Viimane andmebaasipäring oli:
-<blockquote><tt>$1</tt></blockquote>
-ja see kutsuti funktsioonist "<tt>$2</tt>".
-Andmebaas tagastas veateate "<tt>$3: $4</tt>".',
+<blockquote><code>$1</code></blockquote>
+ja see ilmnes funktsiooniga "<code>$2</code>".
+Andmebaas tagastas veateate "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Andmebaasipäringus oli süntaksiviga.
 Viimane andmebaasipäring oli:
 "$1"
@@ -640,7 +640,7 @@ Sellisel juhul tuleks teavitada [[Special:ListUsers/sysop|administraatorit]], ed
 'filecopyerror' => 'Ei saanud faili "$1" kopeerida nimega "$2".',
 'filerenameerror' => 'Ei saanud faili "$1" failiks "$2" ümber nimetada.',
 'filedeleteerror' => 'Faili nimega "$1" ei ole võimalik kustutada.',
-'directorycreateerror' => 'Ei suuda luua kausta "$1".',
+'directorycreateerror' => 'Kataloogi "$1" ei saanud luua.',
 'filenotfound' => 'Faili nimega "$1" ei leitud.',
 'fileexistserror' => 'Kirjutamine faili "$1" ebaõnnestus: fail on juba olemas',
 'unexpected' => 'Ootamatu väärtus: "$1"="$2".',
@@ -671,7 +671,7 @@ Palun proovi mõne minuti pärast uuesti.',
 'sqlhidden' => '(SQL päring peidetud)',
 'cascadeprotected' => 'See lehekülg on muutmise eest kaitstud, sest see on osa {{PLURAL:$1|järgmisest leheküljest|järgmistest lehekülgedest}}, mis on kaskaadkaitse all:
 $2',
-'namespaceprotected' => "Teil ei ole õigusi redigeerida lehekülgi '''$1''' nimeruumis.",
+'namespaceprotected' => "Sul pole õigust redigeerida lehekülgi nimeruumis '''$1'''.",
 'customcssprotected' => 'Sul pole õigust seda CSS-lehekülge redigeerida, sest see sisaldab teise kasutaja isiklikke sätteid.',
 'customjsprotected' => 'Sul pole õigust seda JavaScripti lehekülge redigeerida, sest see sisaldab teise kasutaja isiklikke sätteid.',
 'ns-specialprotected' => 'Erilehekülgi ei saa redigeerida.',
@@ -742,8 +742,7 @@ Kontrollige kirjapilti või [[Special:UserLogin/signup|looge uus kasutajakonto]]
 'login-userblocked' => 'See kasutaja on blokeeritud. Sisselogimine pole lubatud.',
 'wrongpassword' => 'Vale parool. Proovige uuesti.',
 'wrongpasswordempty' => 'Parool jäi sisestamata. Palun proovi uuesti.',
-'passwordtooshort' => 'Parool on liiga lühike.
-See peab koosnema vähemalt {{PLURAL:$1|ühest|$1}} tähemärgist.',
+'passwordtooshort' => 'Parool peab koosnema vähemalt {{PLURAL:$1|ühest|$1}} tähemärgist.',
 'password-name-match' => 'Parool peab kasutajanimest erinema.',
 'password-login-forbidden' => 'Selle kasutajanime ja parooli kasutamine on keelatud.',
 'mailmypassword' => 'Saada e-posti teel uus parool',
@@ -767,8 +766,8 @@ Seetõttu ei saa seda IP-aadressi kasutades hetkel rohkem kontosid luua.',
 'emailnotauthenticated' => 'Sinu e-posti aadress <strong>pole veel kinnitatud</strong>. Järgnevate funktsioonidega seotud e-kirju kinnitamata aadressile ei saadeta.',
 'noemailprefs' => 'Järgnevate võimaluste toimimiseks on vaja sisestada e-posti aadress.',
 'emailconfirmlink' => 'Kinnita oma e-posti aadress',
-'invalidemailaddress' => 'E-aadress ei ole aktsepteeritav, sest see on vigaselt kirjutatud.
-Ole hea ja anna õige e-aadress või jäta lahter tühjaks.',
+'invalidemailaddress' => 'E-posti aadress ei ole aktsepteeritav, sest see on vigaselt kirjutatud.
+Ole hea ja sisesta õige e-posti aadress või jäta väli tühjaks.',
 'cannotchangeemail' => 'Selles vikis ei saa konto e-posti aadressi muuta.',
 'emaildisabled' => 'Selle võrgukoha kaudu ei saa e-kirju saata.',
 'accountcreated' => 'Konto loodud',
@@ -955,7 +954,6 @@ Allpool on toodud viimane blokeerimislogi sissekanne:',
 * '''Firefox / Safari:''' Hoia all ''Shift''-klahvi ja klõpsa ''Laadi uuesti'' või vajuta kas ''Ctrl-F5'' või ''Ctrl-R'' (Macis ''⌘-R'').
 * '''Google Chrome:''' Vajuta ''Ctrl-Shift-R'' (Macis ''⌘-Shift-R'').
 * '''Internet Explorer:''' Hoia all ''Ctrl''-klahvi ja klõpsa ''Värskenda'' või vajuta ''Ctrl-F5''.
-* '''Konqueror:''' Klõpsa ''Reload'' või vajuta ''F5''.
 * '''Opera:''' Tühjenda puhver asukohas ''Seaded → Eelistused''.",
 'usercssyoucanpreview' => "'''Vihje:''' Enne salvestamist kasuta oma uue CSSi proovimiseks nuppu \"{{int:showpreview}}\".",
 'userjsyoucanpreview' => "'''Vihje:''' Enne salvestamist kasuta oma uue JavaScripti proovimiseks nuppu \"{{int:showpreview}}\".",
@@ -998,8 +996,8 @@ Sul tuleb need viimasesse versiooni üle viia.
 Kui klõpsad nupule \"{{int:savearticle}}\", salvestub '''ainult''' ülemises toimetamiskastis olev tekst.",
 'yourtext' => 'Sinu tekst',
 'storedversion' => 'Salvestatud redaktsioon',
-'nonunicodebrowser' => "'''HOIATUS: Sinu brauser ei toeta unikoodi.'''
-Probleemist möödahiilimiseks, selleks et saaksid lehekülgi turvaliselt redigeerida, näidatakse mitte-ASCII sümboleid toimetuskastis kuueteistkümnendsüsteemi koodidena.",
+'nonunicodebrowser' => "'''Hoiatus: Sinu brauser ei toeta Unicode'i.'''
+Probleemist möödahiilimiseks, selleks et saaksid lehekülgi turvaliselt redigeerida, näidatakse mitte-ASCII märke toimetuskastis kuueteistkümnendsüsteemi koodidena.",
 'editingold' => "'''Ettevaatust: Redigeerid praegu selle lehekülje vana redaktsiooni.'''
 Kui selle salvestad, lähevad kõik vahepealsed muudatused kaduma.",
 'yourdiff' => 'Erinevused',
@@ -1104,7 +1102,7 @@ Legend: (viim) = erinevused võrreldes viimase redaktsiooniga,
 # Revision feed
 'history-feed-title' => 'Redigeerimiste ajalugu',
 'history-feed-description' => 'Selle lehekülje redigeerimiste ajalugu',
-'history-feed-item-nocomment' => '$1 - $2',
+'history-feed-item-nocomment' => '$1  $2',
 'history-feed-empty' => 'Soovitud lehekülge ei ole olemas.
 See võib olla vikist kustutatud või ümber nimetatud.
 Ürita [[Special:Search|vikist otsida]] teemakohaseid lehekülgi.',
@@ -1143,7 +1141,7 @@ Saad seda muudatust vaadata. [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAG
 'rev-showdeleted' => 'näita',
 'revisiondelete' => 'Redaktsioonide kustutamine või taastamine',
 'revdelete-nooldid-title' => 'Sellist redaktsiooni pole.',
-'revdelete-nooldid-text' => 'Sa pole valinud redaktsiooni, valitud redaktsioon puudub või Sa püüad peita viimast redaktsiooni.',
+'revdelete-nooldid-text' => 'Sa pole valinud redaktsiooni, valitud redaktsioon puudub või sa püüad peita viimast redaktsiooni.',
 'revdelete-nologtype-title' => 'Logi tüüpi ei antud',
 'revdelete-nologtype-text' => 'Sa ei ole selle toimingu sooritamiseks logi tüüpi täpsustanud.',
 'revdelete-nologid-title' => 'Vigane logikirje',
@@ -1155,7 +1153,7 @@ Saad seda muudatust vaadata. [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAG
 'logdelete-selected' => "'''Valitud {{PLURAL:$1|logisissekanne|logisissekanded}}:'''",
 'revdelete-text' => "'''Kustutatud redaktsioonid kajastuvad endiselt lehe ajaloos ja logides, kuid osa nende sisust pole tavakasutajatele nähtav.'''
 {{GRAMMAR:genitive|{{SITENAME}}}} administraatorid saavad varjatud sisu siiski vaadata ning seda vajadusel taastada, kui see pole just täiendavalt ära keelatud.",
-'revdelete-confirm' => 'Kinnita, et Sa tõesti soovid seda teha ning et Sa saad aru tagajärgedest ja et tegevus on kooskõlas [[{{MediaWiki:Policy-url}}|siinse sisekorraga]].',
+'revdelete-confirm' => 'Kinnita, et soovid tõesti seda teha ning et saad aru tagajärgedest ja tegevus on kooskõlas [[{{MediaWiki:Policy-url}}|siinsete kokkulepetega]].',
 'revdelete-suppress-text' => "Andmed tuleks varjata '''ainult''' järgnevatel juhtudel:
 * Sobimatu isiklik teave
 *: ''kodune aadress ja telefoninumber, sotsiaalhoolekandenumber jne''",
@@ -1179,7 +1177,7 @@ $1",
 'logdelete-success' => "'''Logi nähtavus edukalt muudetud.'''",
 'logdelete-failure' => "'''Logi nähtavust ei saanud paika:'''
 $1",
-'revdel-restore' => 'Muuda nähtavust',
+'revdel-restore' => 'muuda nähtavust',
 'revdel-restore-deleted' => 'kustutatud redaktsioonid',
 'revdel-restore-visible' => 'nähtavad redaktsioonid',
 'pagehist' => 'Lehekülje ajalugu',
@@ -1194,7 +1192,7 @@ Sul ei ole sellele ligipääsu.',
 'revdelete-no-change' => "'''Hoiatus:''' Üksusel kuupäevaga $2, kell $1 olid juba soovitud nähtavussätted.",
 'revdelete-concurrent-change' => 'Tõrge üksuse kuupäevaga $2, kell $1 muutmisel: paistab, et keegi teine on selle olekut sel ajal muutnud, kui sina seda muuta üritasid.
 Palun vaata logisid.',
-'revdelete-only-restricted' => 'Ei õnnestu varjata elementi $2, $1 kuupäevaga: Sa ei saa seda elementi administraatorite eest peita, kui Sa ei märgi ka ühte muudest nähtavussätetest.',
+'revdelete-only-restricted' => 'Ei õnnestu varjata üksust seisuga $1, kell $2: Seda üksust ei saa administraatorite eest varjata, valimata seejuures ka ühte muudest nähtavussuvanditest.',
 'revdelete-reason-dropdown' => '*Tavalised kustutamise põhjused
 ** Autoriõiguste rikkumine
 ** Kohatud eraelulised andmed',
@@ -1216,9 +1214,9 @@ Veendu, et selle muudatusega jääb lehekülje redigeerimislugu ajaliselt katkem
 'mergehistory-from' => 'Lehekülje allikas:',
 'mergehistory-into' => 'Sihtlehekülg:',
 'mergehistory-list' => 'Ühendatav redigeerimise ajalugu',
-'mergehistory-merge' => 'Järgmised [[:$1]] redaktsioonid võib liita lehe [[:$2]] muudatuste ajalooga.
-Kasuta raadionuppe valimaks kindlat redaktsioonide vahemikku.
-Navigeerimislinkide kasutamine tühistab redaktsioonide valiku.',
+'mergehistory-merge' => 'Järgmised lehekülje [[:$1]] redaktsioonid saab liita leheküljega [[:$2]].
+Kasuta raadionuppe, et valida ainult redaktsioonid, mis on loodud valitud ajal või varem.
+Pane tähele, et navigeerimislinkide kasutamine lähtestab redaktsioonide valiku.',
 'mergehistory-go' => 'Näita ühendatavaid muudatusi',
 'mergehistory-submit' => 'Ühenda redaktsioonid',
 'mergehistory-empty' => 'Ühendatavaid redaktsioone ei ole.',
@@ -1303,7 +1301,7 @@ Harilikult tähendab see seda, et sind siia juhatanud link on vananenud ja siin
 'searcheverything-enable' => 'Otsi kõigist nimeruumidest',
 'searchrelated' => 'seotud',
 'searchall' => 'kõik',
-'showingresults' => "Allpool näitame {{PLURAL:$1|'''ühte''' tulemit|'''$1''' tulemit}} alates tulemist #'''$2'''.",
+'showingresults' => "Allpool näidatakse '''{{PLURAL:$1|ühte|$1}}''' tulemust alates '''$2'''. tulemusest.",
 'showingresultsnum' => "Allpool näitame {{PLURAL:$3|'''ühte''' tulemit|'''$3''' tulemit}} alates tulemist #'''$2'''.",
 'showingresultsheader' => "{{PLURAL:$5|'''$1''' '''$3'''-st vastest|Vasted '''$1–$2''' '''$3'''-st}} päringule '''$4'''",
 'nonefound' => "'''Märkus''': Otsing hõlmab vaikimisi vaid osasid nimeruume.
@@ -1422,8 +1420,8 @@ Toimingut ei saa hiljem tühistada.',
 'prefs-help-signature' => 'Kommentaarile tuleks aruteluleheküljel alla kirjutada märkidega <nowiki>~~~~</nowiki>, mis muutuvad sinu allkirjaks ja ajatempliks.',
 'badsig' => 'Sobimatu allkiri.
 Palun kontrolli HTML koodi.',
-'badsiglength' => 'Sinu signatuur on liiga pikk.
-See ei tohi olla pikem kui $1 {{PLURAL:$1|sümbol|sümbolit}}.',
+'badsiglength' => 'Sinu allkiri on liiga pikk.
+See ei tohi olla pikem kui {{PLURAL:$1|üks märk|$1 märki}}.',
 'yourgender' => 'Sugu:',
 'gender-unknown' => 'Määramata',
 'gender-male' => 'Mees',
@@ -1502,10 +1500,10 @@ See ei tohi olla pikem kui $1 {{PLURAL:$1|sümbol|sümbolit}}.',
 # Rights
 'right-read' => 'Lugeda lehekülgi',
 'right-edit' => 'Redigeerida lehekülje sisu',
-'right-createpage' => 'Luua lehekülgi (mis pole arutelu leheküljed)',
+'right-createpage' => 'Luua lehekülgi (mis pole aruteluleheküljed)',
 'right-createtalk' => 'Luua arutelulehekülgi',
 'right-createaccount' => 'Luua uusi kasutajakontosid',
-'right-minoredit' => 'Märkida muudatusi pisimuudatustena',
+'right-minoredit' => 'Märkida muudatusi pisimuudatusteks',
 'right-move' => 'Teisaldada lehekülgi',
 'right-move-subpages' => 'Teisaldada lehekülgi koos nende alamlehtedega',
 'right-move-rootuserpages' => 'Teisaldada kasutajalehekülgi',
@@ -1593,7 +1591,7 @@ See ei tohi olla pikem kui $1 {{PLURAL:$1|sümbol|sümbolit}}.',
 'action-suppressionlog' => 'seda eralogi vaadata',
 'action-block' => 'selle kasutaja redigeerimisõigust blokeerida',
 'action-protect' => 'selle lehekülje kaitsetasemeid muuta',
-'action-rollback' => 'lehekülge viimati redigeeriund kasutaja muudatusi koheselt tühistada',
+'action-rollback' => 'tühistada otsekohe lehekülge viimati redigeerinud kasutaja muudatusi',
 'action-import' => 'seda lehekülge teisest vikist importida',
 'action-importupload' => 'seda lehekülge faili üleslaadimise abil importida',
 'action-patrol' => 'teiste muudatusi kontrollituks märkida',
@@ -1615,7 +1613,7 @@ See ei tohi olla pikem kui $1 {{PLURAL:$1|sümbol|sümbolit}}.',
 'recentchanges-label-minor' => 'See on pisiparandus',
 'recentchanges-label-bot' => 'Selle muudatuse sooritas robot',
 'recentchanges-label-unpatrolled' => 'Seda muudatust ei ole veel kontrollitud',
-'rcnote' => "Allpool on esitatud {{PLURAL:$1|'''1''' muudatus|viimased '''$1''' muudatust}} viimase {{PLURAL:$2|päeva|'''$2''' päeva}} jooksul, seisuga $4, kell $5.",
+'rcnote' => "Allpool on esitatud {{PLURAL:$1|'''1''' muudatus|viimased '''$1''' muudatust}} viimase {{PLURAL:$2|päeva|'''$2''' päeva}} jooksul seisuga $4, kell $5.",
 'rcnotefrom' => "Allpool on toodud muudatused alates: '''$2''' (näidatakse kuni '''$1''' muudatust)",
 'rclistfrom' => 'Näita muudatusi alates: $1',
 'rcshowhideminor' => '$1 pisiparandused',
@@ -1636,7 +1634,7 @@ See ei tohi olla pikem kui $1 {{PLURAL:$1|sümbol|sümbolit}}.',
 'rc_categories' => 'Ainult kategooriatest (eraldajaks "|")',
 'rc_categories_any' => 'Mistahes',
 'rc-change-size-new' => '$1 {{PLURAL:$1|bait|baiti}} pärast muudatust',
-'newsectionsummary' => '/* $1 */ uus alajaotus',
+'newsectionsummary' => '/* $1 */ uus alaosa',
 'rc-enhanced-expand' => 'Näita üksikasju (nõuab JavaScripti)',
 'rc-enhanced-hide' => 'Peida üksikasjad',
 'rc-old-title' => 'alustatud pealkirja "$1" all',
@@ -1670,9 +1668,9 @@ Et näha või leida eelnevalt üles laaditud faile vaata [[Special:FileList|fail
 Üleslaadimiste ajalugu saab uurida [[Special:Log/upload|üleslaadimislogist]], kustutamiste ajalugu [[Special:Log/delete|kustutamislogist]].
 
 Faili lisamiseks artiklile kasuta linki ühel kujul järgnevatest.
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.jpg]]</nowiki></tt>''', et lisada täissuuruses pilt.
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.png|200px|thumb|left|kirjeldus]]</nowiki></tt>''', et lisada lehekülje vasakusse serva raamiga 200 piksli laiune pisipilt koos pildiallkirjaga (''kirjeldus'').
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fail.ogg]]</nowiki></tt>''', et linkida otse failile ilma seda kuvamata.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.jpg]]</nowiki></code>''', et lisada täissuuruses pilt.
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.png|200px|thumb|left|kirjeldus]]</nowiki></code>''', et lisada lehekülje vasakusse serva raamiga 200 piksli laiune pisipilt koos pildiallkirjaga (''kirjeldus'').
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fail.ogg]]</nowiki></code>''', et linkida otse failile ilma seda kuvamata.",
 'upload-permitted' => 'Lubatud failitüübid: $1.',
 'upload-preferred' => 'Eelistatud failitüübid: $1.',
 'upload-prohibited' => 'Keelatud failitüübid: $1.',
@@ -1716,20 +1714,20 @@ Eelistatud {{PLURAL:\$3|failitüüp on|failitüübid on}} \$2.",
 See võib olla tingitud vigasest failinimest.
 Palun veendu, et soovid tõesti seda faili üles laadida.',
 'windows-nonascii-filename' => 'Sellel vikil puudub erimärkidega failinimede tugi.',
-'fileexists' => "Sellise nimega fail on juba olemas. Palun vaata lehekülge '''<tt>[[:$1]]</tt>''', kui sa pole kindel, kas soovid seda muuta.
-[[$1|thumb]]",
-'filepageexists' => "Selle faili kirjelduslehekülg '''<tt>[[:$1]]</tt>''' on juba loodud, aga selle nimega faili hetkel pole.
+'fileexists' => 'Sellise nimega fail on juba olemas. Palun vaata lehekülge <strong>[[:$1]]</strong>, kui sa pole kindel, kas soovid seda muuta.
+[[$1|thumb]]',
+'filepageexists' => 'Selle faili kirjelduslehekülg <strong>[[:$1]]</strong> on juba loodud, aga selle nimega faili hetkel pole.
 Sinu sisestatud kokkuvõtet ei kuvata kirjeldusleheküljel.
 Sinu kokkuvõtte kuvamiseks tuleb kirjelduslehekülge eraldi redigeerida.
-[[$1|thumb]]",
-'fileexists-extension' => "Sarnase nimega fail on olemas: [[$2|thumb]]
-* Üleslaetava faili nimi: '''<tt>[[:$1]]</tt>'''
-* Olemasoleva faili nimi: '''<tt>[[:$2]]</tt>'''
-Palun vali teistsugune nimi.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Sarnase nimega fail on olemas: [[$2|thumb]]
+* Üleslaetava faili nimi: <strong>[[:$1]]</strong>
+* Olemasoleva faili nimi: <strong>[[:$2]]</strong>
+Palun vali teistsugune nimi.',
 'fileexists-thumbnail-yes' => "See paistab olevat vähendatud suurusega pilt (''pisipilt''). [[$1|thumb]]
-Palun vaata faili '''<tt>[[:$1]]</tt>'''.
+Palun vaata faili <strong>[[:$1]]</strong>.
 Kui vaadatud fail on sama pilt algupärases suuruses, pole vaja täiendavat pisipilti üles laadida.",
-'file-thumbnail-no' => "Failinimi algab eesliitega '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Failinimi algab eesliitega <strong>$1</strong>.
 See paistab vähendatud suurusega pilt (''pisipilt'') olevat.
 Kui sul on ka selle pildi täislahutusega versioon, laadi palun hoopis see üles, vastasel korral muuda palun faili nime.",
 'fileexists-forbidden' => 'Sellise nimega fail on juba olemas, seda ei saa üle kirjutada.
@@ -1931,16 +1929,17 @@ Võib-olla tahad redigeerida selle faili [$2 sealset kirjelduslehekülge].',
 'uploadnewversion-linktext' => 'Laadi üles selle faili uus versioon',
 'shared-repo-from' => 'varamust $1',
 'shared-repo' => 'jagatud varamu',
+'upload-disallowed-here' => 'Paraku ei saa sa seda pilti üle kirjutada.',
 
 # File reversion
 'filerevert' => 'Taasta $1',
 'filerevert-legend' => 'Faili taastamine',
 'filerevert-intro' => "Sa taastad faili '''[[Media:$1|$1]]''' seisuga [$4 $3, $2] kasutusel olnud versiooni.",
 'filerevert-comment' => 'Põhjus:',
-'filerevert-defaultcomment' => 'Naaseti redaktsiooni juurde, mis loodi $1 kell $2',
+'filerevert-defaultcomment' => 'Ennistati versioon seisuga $1, kell $2',
 'filerevert-submit' => 'Taasta',
 'filerevert-success' => "Faili '''[[Media:$1|$1]]''' seisuga [$4 $3, $2 kasutusel olnud versioon] on taastatud.",
-'filerevert-badversion' => 'Failist ei ole kohalikku versiooni tagatud ajamarkeeringuga.',
+'filerevert-badversion' => 'Ette antud ajatempliga kohalik versioon sellest failist puudub.',
 
 # File deletion
 'filedelete' => 'Kustuta $1',
@@ -1965,7 +1964,7 @@ Võib-olla tahad redigeerida selle faili [$2 sealset kirjelduslehekülge].',
 # MIME search
 'mimesearch' => 'MIME otsing',
 'mimesearch-summary' => 'Selle leheküljega saab faile otsida MIME tüübi järgi.
-Sisesta kujul tüüp/alamtüüp, näiteks <tt>image/jpeg</tt>.',
+Sisesta kujul tüüp/alamtüüp, näiteks <code>image/jpeg</code>.',
 'mimetype' => 'MIME tüüp:',
 'download' => 'laadi alla',
 
@@ -2009,7 +2008,7 @@ Sisesta kujul tüüp/alamtüüp, näiteks <tt>image/jpeg</tt>.',
 'statistics-users-active-desc' => 'Kasutajad, kes on viimase {{PLURAL:$1|päeva|$1 päeva}} jooksul tegutsenud',
 'statistics-mostpopular' => 'Enim vaadatud leheküljed',
 
-'disambiguations' => 'Leheküljed, mis lingivad täpsustuslehekülgedele',
+'disambiguations' => 'Täpsustuslehekülgedele linkivad leheküljed',
 'disambiguationspage' => 'Template:Täpsustuslehekülg',
 'disambiguations-text' => "Järgmised leheküljed sisaldavad vähemalt üht linki '''täpsustusleheküljele'''.
 Võimalik, et sellised lingid peaks viitama sobivamatele lehekülgedele.
@@ -2033,11 +2032,12 @@ Igal real on ära toodud esimene ja teine ümbersuunamisleht ning samuti teise 
 'withoutinterwiki-legend' => 'Eesliide',
 'withoutinterwiki-submit' => 'Näita',
 
-'fewestrevisions' => 'Leheküljed, kus on kõige vähem muudatusi tehtud',
+'fewestrevisions' => 'Vähima redaktsioonide arvuga leheküljed',
 
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|bait|baiti}}',
 'ncategories' => '$1 {{PLURAL:$1|kategooria|kategooriat}}',
+'ninterwikis' => '{{PLURAL:$1|üks intervikilink|$1 intervikilinki}}',
 'nlinks' => '$1 {{PLURAL:$1|link|linki}}',
 'nmembers' => '$1 {{PLURAL:$1|liige|liiget}}',
 'nrevisions' => '$1 {{PLURAL:$1|redaktsioon|redaktsiooni}}',
@@ -2046,7 +2046,7 @@ Igal real on ära toodud esimene ja teine ümbersuunamisleht ning samuti teise 
 'ntransclusions' => 'kasutuses {{PLURAL:$1|ühel leheküljel|$1 leheküljel}}',
 'specialpage-empty' => 'Vasteid ei leidu.',
 'lonelypages' => 'Viitamata leheküljed',
-'lonelypagestext' => 'Järgmistele lehekülgedele ei ole linki ühelgi Viki leheküljel, samuti ei ole nad kasutusel teiste lehekülgede osana.',
+'lonelypagestext' => 'Järgmistele lehekülgedele ei lingita ühelgi viki leheküljel, samuti ei ole nad kasutusel teiste lehekülgede osana.',
 'uncategorizedpages' => 'Kategoriseerimata leheküljed',
 'uncategorizedcategories' => 'Kategoriseerimata kategooriad',
 'uncategorizedimages' => 'Kategoriseerimata failid',
@@ -2066,6 +2066,7 @@ Igal real on ära toodud esimene ja teine ümbersuunamisleht ning samuti teise 
 'mostlinkedtemplates' => 'Kõige viidatumad mallid',
 'mostcategories' => 'Enim kategoriseeritud leheküljed',
 'mostimages' => 'Kõige kasutatumad failid',
+'mostinterwikis' => 'Suurima keelelinkide arvuga leheküljed',
 'mostrevisions' => 'Kõige pikema redigeerimislooga leheküljed',
 'prefixindex' => 'Kõik pealkirjad eesliitega',
 'prefixindex-namespace' => 'Kõik pealkirjad eesliitega (nimeruumis $1)',
@@ -2166,12 +2167,12 @@ Vaata ka [[Special:WantedCategories|puuduvaid kategooriaid]].',
 'linksearch-ok' => 'Otsi',
 'linksearch-text' => 'Metamärgina võib kasutada tärni, näiteks "*.wikipedia.org".
 Otsingus peab olema vähemalt tipptaseme domeen, näiteks "*.org".<br />
-Toetatud protokollid: <tt>$1</tt> (otsingus ära neid kasuta).',
+Toetatud protokollid: <code>$1</code> (otsingus ära neid kasuta).',
 'linksearch-line' => '$1 on lingitud leheküljelt $2',
 'linksearch-error' => 'Metamärk võib olla ainult internetiaadressi alguses.',
 
 # Special:ListUsers
-'listusersfrom' => 'Näita kasutajaid alustades:',
+'listusersfrom' => 'Näita kasutajaid alates:',
 'listusers-submit' => 'Näita',
 'listusers-noresult' => 'Kasutajat ei leitud.',
 'listusers-blocked' => '(blokeeritud)',
@@ -2212,6 +2213,8 @@ Toetatud protokollid: <tt>$1</tt> (otsingus ära neid kasuta).',
 'mailnologin' => 'Saatja aadress puudub',
 'mailnologintext' => 'Pead olema [[Special:UserLogin|sisse logitud]] ja sul peab [[Special:Preferences|eelistustes]] olema kehtiv e-posti aadress, et saata teistele kasutajatele e-kirju.',
 'emailuser' => 'Saada sellele kasutajale e-kiri',
+'emailuser-title-target' => 'Sellele {{GENDER:$1|kasutajale}} e-kirja saatmine',
+'emailuser-title-notarget' => 'Kasutajale e-kirja saatmine',
 'emailpage' => 'Saada kasutajale e-kiri',
 'emailpagetext' => 'Kui see kasutaja on oma eelistuste lehel sisestanud e-posti aadressi, saad alloleva vormi kaudu talle kirja saata. Et kasutaja saaks vastata, täidetakse kirja saatja väli "Kellelt" e-posti aadressiga, mille oled sisestanud [[Special:Preferences|oma eelistuste lehel]].',
 'usermailererror' => 'Saatmise viga:',
@@ -2420,9 +2423,9 @@ Sa saad muuta selle lehekülje kaitse staatust, kuid see ei mõjuta kaskaadkaits
 'protect-otherreason-op' => 'Muu põhjus',
 'protect-dropdown' => '*Tavalised kaitsmise põhjused
 ** Liigne vandalism
-** Liigne spämmimine
-** Counter-productive edit warring
-** Kõrge liiklusega lehekülg',
+** Liigne rämpspostitamine
+** Redigeerimissõja pidamine
+** Suure liiklusega lehekülg',
 'protect-edit-reasonlist' => 'Muudatuste eest kaitsmise põhjused',
 'protect-expiry-options' => '1 tund:1 hour,1 päev:1 day,1 nädal:1 week,2 nädalat: 2 weeks,1 kuu:1 month,3 kuud:3 months,6 kuud:6 months,1 aasta:1 year,igavene:infinite',
 'restriction-type' => 'Lubatud:',
@@ -2467,7 +2470,7 @@ Link võib olla kõlbmatu või redaktsioon võib olla taastatud või arhiivist e
 'undeletelink' => 'vaata/taasta',
 'undeleteviewlink' => 'vaata',
 'undeletereset' => 'Tühjenda',
-'undeleteinvert' => 'Pööra valim teistpidi',
+'undeleteinvert' => 'Pööra valik teistpidi',
 'undeletecomment' => 'Põhjus:',
 'undeletedrevisions' => '$1 {{PLURAL:$1|redaktsioon|redaktsiooni}} taastatud',
 'undeletedrevisions-files' => '{{PLURAL:$1|1 redaktsioon|$1 redaktsiooni}} ja {{PLURAL:$2|1 fail|$2 faili}} taastatud',
@@ -2492,7 +2495,7 @@ Võimalik, et see on juba taastatud.',
 'undelete-error-long' => 'Faili taastamine ebaõnnestus:
 
 $1',
-'undelete-show-file-confirm' => 'Kas oled kindel, et soovid näha kustutatud versiooni failist <nowiki>$1</nowiki>, mis salvestati $2 kell $3?',
+'undelete-show-file-confirm' => 'Kas oled kindel, et soovid näha kustutatud versiooni failist <nowiki>$1</nowiki> seisuga $2, kell $3?',
 'undelete-show-file-submit' => 'Jah',
 
 # Namespace form on various pages
@@ -2564,12 +2567,13 @@ Täida ka põhjuse väli, näiteks viidates lehekülgedele, mis rikuti.',
 'ipbreason' => 'Põhjus:',
 'ipbreasonotherlist' => 'Muul põhjusel',
 'ipbreason-dropdown' => '*Tavalised blokeerimise põhjused
-** Lehtedelt sisu kustutamine
+** Valeandmete lisamine
+** Lehekülgedelt sisu kustutamine
+** Välislinkide rämpspostitus
 ** Sodimine
-** Taunitav käitumine, isiklikud rünnakud
-** Mittesobiv kasutajanimi
-** Spämmi levitamine
-** Vale info levitamine',
+** Hirmutav käitumine/ahistamine
+** Mitme konto väärkasutus
+** Lubamatu kasutajanimi',
 'ipb-hardblock' => 'Keela sellelt IP-aadressilt sisseloginud kasutajatel redigeerida',
 'ipbcreateaccount' => 'Takista konto loomist',
 'ipbemailban' => 'Takista kasutajal e-kirjade saatmine',
@@ -2591,12 +2595,12 @@ Kehtivaid blokeeringuid vaata [[Special:BlockList|blokeerimisnimekirjast]].',
 'ipb-blockingself' => 'Sa blokeerid iseenda! Kas tahad tõesti seda teha?',
 'ipb-confirmhideuser' => 'Avaldasid soovi kasutaja blokeerida ja peita. Kasutaja nimi peidetakse kõigist loenditest ja logisissekannetest. Kas oled kindel, et soovid seda teha?',
 'ipb-edit-dropdown' => 'Muuda blokeeringu põhjuseid',
-'ipb-unblock-addr' => 'Kustuta $1 blokeering',
+'ipb-unblock-addr' => 'Tühista kasutaja $1 blokeering',
 'ipb-unblock' => 'Kasutaja või IP-aadressi vabastamine blokeerimisest',
-'ipb-blocklist' => 'Vaata kehtivaid keelde',
+'ipb-blocklist' => 'Vaata kehtivaid blokeeringuid',
 'ipb-blocklist-contribs' => 'Kasutaja $1 kaastöö',
 'unblockip' => 'Blokeerimise eemaldamine',
-'unblockiptext' => 'Kasutage allpool olevat vormi redigeerimisõiguste taastamiseks varem blokeeritud IP aadressile.',
+'unblockiptext' => 'Kasuta allpool olevat vormi varem blokeeritud IP-aadressi või kasutaja redigeerimisõiguse taastamiseks.',
 'ipusubmit' => 'Eemalda see blokeering',
 'unblocked' => 'Kasutaja [[User:$1|$1]] blokeering on eemaldatud',
 'unblocked-range' => 'Vahemiku $1 blokeering on eemaldatud',
@@ -2791,13 +2795,14 @@ Palun kasuta mõnda teist nime.',
 
 # Export
 'export' => 'Lehekülgede eksport',
-'exporttext' => 'Sa saad siin eksportida kindla lehekülje või nende kogumi, tekstid, koos kogu nende muudatuste ajalooga, XML kujule viiduna. Seda saad sa vajadusel kasutada teksti ülekandmiseks teise vikisse, kasutades selleks MediaWiki [[Special:Import|impordi lehekülge]].
+'exporttext' => 'Saad eksportida kindla leheküljel või lehekülgede kogumi teksti ja redigeerimisloo XML-kujule viiduna.
+Seda saab teise vikisse importida, kasutades selleks MediaWiki [[Special:Import|impordi lehekülge]].
 
-Et eksportida lehekülgi, sisesta nende pealkirjad all olevasse teksti kasti, iga pealkiri ise reale, ning vali kas sa soovid saada leheküljest kõiki selle vanemaid versioone (muudatusi) või soovid sa saada leheküljest vaid hetke versiooni.
+Et eksportida lehekülgi, sisesta nende pealkirjad allolevasse tekstikasti, iga pealkiri ise reale ja vali, kas soovid viimast redaktsiooni ja kõiki vanemaid redaktsioone ühes redigeerimislooga või viimast redaktsiooni ühes andmetega viimase redigeerimise kohta.
 
-Viimasel juhul võid sa näiteks "[[{{MediaWiki:Mainpage}}]]" lehekülje, jaoks kasutada samuti linki kujul:  [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]].',
+Viimasel juhul saab kasutada ka linki, näiteks lehekülje "[[{{MediaWiki:Mainpage}}]]" jaoks [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]].',
 'exportall' => 'Ekspordi kõik leheküljed',
-'exportcuronly' => 'Lisa vaid viimane versioon lehest, ning mitte kogu ajalugu',
+'exportcuronly' => 'Lisa vaid viimane redaktsioon, mitte kogu ajalugu',
 'exportnohistory' => "----
 '''Märkus:''' Lehekülgede täieliku ajaloo eksportimine on siin leheküljel jõudluse tagamiseks blokeeritud.",
 'exportlistauthors' => 'Lisa kõigile lehekülgedele kogu kaastööliste nimekiri',
@@ -2852,23 +2857,23 @@ Kõik vikidevahelised toimingud on [[Special:Log/import|impordilogis]].',
 'import-interwiki-templates' => 'Liida kõik mallid',
 'import-interwiki-submit' => 'Impordi',
 'import-interwiki-namespace' => 'Sihtkoha nimeruum:',
+'import-interwiki-rootpage' => 'Sihtkoha juurlehekülg (valikuline):',
 'import-upload-filename' => 'Failinimi:',
 'import-comment' => 'Kommentaar:',
 'importtext' => 'Palun kasuta faili allikvikist eksportimiseks [[Special:Export|ekspordivahendit]].
 Salvesta see oma arvutisse ja laadi siia üles.',
-'importstart' => 'Impordin lehekülgi...',
+'importstart' => 'Lehekülgede importimine...',
 'import-revision-count' => '$1 {{PLURAL:$1|versioon|versiooni}}',
 'importnopages' => 'Ei olnud imporditavaid lehekülgi.',
 'imported-log-entries' => 'Imporditi $1 {{PLURAL:$1|logisissekanne|logisissekannet}}.',
 'importfailed' => 'Importimine ebaõnnestus: <nowiki>$1</nowiki>',
-'importunknownsource' => 'Unknown import source type
-Tundmatu tüüpi algallikas',
+'importunknownsource' => 'Tundmatut tüüpi impordiallikas',
 'importcantopen' => 'Ei saa imporditavat faili avada',
 'importbadinterwiki' => 'Vigane vikidevaheline link',
 'importnotext' => 'Tühi või ilma tekstita',
 'importsuccess' => 'Importimine edukalt lõpetatud!',
 'importhistoryconflict' => 'Konfliktne muudatuste ajalugu (võimalik, et seda lehekülge juba varem imporditud)',
-'importnosources' => 'Ühtegi transwiki impordiallikat ei ole defineeritud ning ajaloo otseimpordi funktsioon on välja lülitatud.',
+'importnosources' => 'Ühtegi vikidevahelist impordiallikat pole määratletud ja otsene ajaloo üleslaadimine on keelatud.',
 'importnofile' => 'Ühtegi imporditavat faili ei laaditud üles.',
 'importuploaderrorsize' => 'Üleslaaditava faili import ebaõnnestus.
 Fail on lubatust suurem.',
@@ -2889,6 +2894,9 @@ Palun ürita uuesti.',
 'import-error-interwiki' => 'Lehekülge "$1" ei impordita, sest selle pealkirja hoitakse välislinkide (interviki) jaoks.',
 'import-error-special' => 'Lehekülge "$1" ei impordita, sest see kuulub erinimeruumi, kus pole leheküljed lubatud.',
 'import-error-invalid' => 'Lehekülge "$1" ei impordita, sest selle pealkiri on vigane.',
+'import-options-wrong' => '{{PLURAL:$2|Vale valik|Valed valikud}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Etteantud juurlehekülje pealkiri on vigane.',
+'import-rootpage-nosubpage' => 'Juurlehekülje nimeruumis "$1" pole alamleheküljed lubatud.',
 
 # Import log
 'importlogpage' => 'Impordilogi',
@@ -2911,9 +2919,9 @@ Palun ürita uuesti.',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Sinu kasutajaleht',
-'tooltip-pt-anonuserpage' => 'Selle IP aadressi kasutajaleht',
+'tooltip-pt-anonuserpage' => 'Sinu IP-aadressi kasutajalehekülg',
 'tooltip-pt-mytalk' => 'Minu aruteluleht',
-'tooltip-pt-anontalk' => 'Arutelu sellelt IP aadressilt tehtud muudatuste kohta',
+'tooltip-pt-anontalk' => 'Arutelu sellelt IP-aadressilt tehtud muudatuste kohta',
 'tooltip-pt-preferences' => 'Minu eelistused',
 'tooltip-pt-watchlist' => 'Lehekülgede loend, mida jälgid muudatuste osas',
 'tooltip-pt-mycontris' => 'Sinu kaastööde loend',
@@ -2925,13 +2933,13 @@ Palun ürita uuesti.',
 'tooltip-ca-addsection' => 'Lisa uus alaosa',
 'tooltip-ca-viewsource' => 'See lehekülg on kaitstud.
 Saad vaadata selle lähteteksti.',
-'tooltip-ca-history' => 'Selle lehekülje varasemad versioonid.',
+'tooltip-ca-history' => 'Selle lehekülje varasemad redaktsioonid',
 'tooltip-ca-protect' => 'Kaitse seda lehekülge',
 'tooltip-ca-unprotect' => 'Muuda selle lehekülje kaitset',
 'tooltip-ca-delete' => 'Kustuta see lehekülg',
 'tooltip-ca-undelete' => 'Taasta enne lehekülje kustutamist tehtud muudatused',
 'tooltip-ca-move' => 'Teisalda see lehekülg teise nime alla.',
-'tooltip-ca-watch' => 'Lisa see lehekülg oma jälgimisloendile',
+'tooltip-ca-watch' => 'Lisa see lehekülg oma jälgimisloendisse',
 'tooltip-ca-unwatch' => 'Eemalda see lehekülg oma jälgimisloendist',
 'tooltip-search' => 'Otsi vikist',
 'tooltip-search-go' => 'Siirdutakse täpselt sellist pealkirja kandvale lehele (kui selline on olemas)',
@@ -2953,7 +2961,7 @@ Saad vaadata selle lähteteksti.',
 'tooltip-t-upload' => 'Laadi faile üles',
 'tooltip-t-specialpages' => 'Erilehekülgede loend',
 'tooltip-t-print' => 'Selle lehe trükiversioon',
-'tooltip-t-permalink' => 'Püsilink lehe sellele versioonile',
+'tooltip-t-permalink' => 'Püsilink lehekülje sellele redaktsioonile',
 'tooltip-ca-nstab-main' => 'Näita artiklit',
 'tooltip-ca-nstab-user' => 'Näita kasutaja lehte',
 'tooltip-ca-nstab-media' => 'Näita pildi lehte',
@@ -2964,12 +2972,12 @@ Saad vaadata selle lähteteksti.',
 'tooltip-ca-nstab-template' => 'Näita malli',
 'tooltip-ca-nstab-help' => 'Näita abilehte',
 'tooltip-ca-nstab-category' => 'Näita kategooria lehte',
-'tooltip-minoredit' => 'Märgista see pisiparandusena',
+'tooltip-minoredit' => 'Märgi see pisiparanduseks',
 'tooltip-save' => 'Salvesta muudatused',
 'tooltip-preview' => 'Näita tehtavaid muudatusi. Palun kasutage seda enne salvestamist!',
 'tooltip-diff' => 'Näita tehtavaid muudatusi.',
 'tooltip-compareselectedversions' => 'Näita erinevusi kahe selle lehe valitud versiooni vahel.',
-'tooltip-watch' => 'Lisa see lehekülg oma jälgimisloendile',
+'tooltip-watch' => 'Lisa see lehekülg oma jälgimisloendisse',
 'tooltip-watchlistedit-normal-submit' => 'Eemalda leheküljed',
 'tooltip-watchlistedit-raw-submit' => 'Uuenda jälgimisloendit',
 'tooltip-recreate' => 'Taasta kustutatud lehekülg',
@@ -3014,16 +3022,34 @@ See on ilmselt põhjustatud linkimisest mustas nimekirjas olevasse välisvõrguk
 
 # Info page
 'pageinfo-title' => 'Teave lehekülje "$1" kohta',
-'pageinfo-header-edits' => 'Muudatusi',
-'pageinfo-header-watchlist' => 'Jälgimisloend',
-'pageinfo-header-views' => 'Vaatamisi',
-'pageinfo-subjectpage' => 'Lehekülg',
-'pageinfo-talkpage' => 'Arutelulehekülg',
-'pageinfo-watchers' => 'Jälgijate arv',
-'pageinfo-edits' => 'Redaktsioonide arv',
-'pageinfo-authors' => 'Eri autorite arv',
+'pageinfo-header-basic' => 'Põhiteave',
+'pageinfo-header-edits' => 'Redigeerimislugu',
+'pageinfo-header-restrictions' => 'Lehekülje kaitse',
+'pageinfo-header-properties' => 'Lehekülje atribuudid',
+'pageinfo-display-title' => 'Kuvatav pealkiri',
+'pageinfo-default-sort' => 'Vaikejärjestusvõti',
+'pageinfo-length' => 'Lehekülje pikkus (baitides)',
+'pageinfo-article-id' => 'Lehekülje identifikaator',
+'pageinfo-robot-policy' => 'Otsimootori olek',
+'pageinfo-robot-index' => 'Indekseeritav',
+'pageinfo-robot-noindex' => 'Indekseerimatu',
 'pageinfo-views' => 'Vaatamiste arv',
-'pageinfo-viewsperedit' => 'Vaatamisi redaktsiooni kohta',
+'pageinfo-watchers' => 'Lehekülje jälgijate arv',
+'pageinfo-redirects-name' => 'Ümbersuunamisi sellele leheküljele',
+'pageinfo-subpages-name' => 'Selle lehekülje alamlehekülgi',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|ümbersuunamine|ümbersuunamist}}; $3 {{PLURAL:$3|mitteümbersuunamine|mitteümbersuunamist}})',
+'pageinfo-firstuser' => 'Lehekülje alustaja',
+'pageinfo-firsttime' => 'Lehekülje alustusaeg',
+'pageinfo-lastuser' => 'Viimane toimetaja',
+'pageinfo-lasttime' => 'Viimase redigeerimise aeg',
+'pageinfo-edits' => 'Redaktsioonide koguarv',
+'pageinfo-authors' => 'Erinevate autorite koguarv',
+'pageinfo-recent-edits' => 'Viimaste redigeerimiste arv (viimase $1 jooksul)',
+'pageinfo-recent-authors' => 'Erinevate viimaste toimetajate arv',
+'pageinfo-restriction' => 'Lehekülje kaitse (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Võlusõna|Võlusõnad}} ($1)',
+'pageinfo-hidden-categories' => 'Peidetud {{PLURAL:$1|kategooria|kategooriad}} ($1)',
+'pageinfo-templates' => 'Kasutatud {{PLURAL:$1|mall|mallid}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Algeline',
@@ -3077,7 +3103,8 @@ Selle avamine võib su arvutit kahjustada.",
 'file-info-size' => '$1 × $2 pikslit, faili suurus: $3, MIME tüüp: $4',
 'file-info-size-pages' => '$1 × $2 pikslit, faili suurus: $3 , MIME tüüp: $4, $5 {{PLURAL:$5|lehekülg|lehekülge}}',
 'file-nohires' => 'Sellest suuremat pilti pole.',
-'svg-long-desc' => 'SVG fail, algsuurus $1 × $2 pikslit, faili suurus: $3',
+'svg-long-desc' => 'SVG-fail, algsuurus $1 × $2 pikslit, faili suurus: $3',
+'svg-long-desc-animated' => 'Animeeritud SVG-fail,  algsuurus $1 × $2 pikslit, faili suurus: $3',
 'show-big-image' => 'Originaalsuurus',
 'show-big-image-preview' => 'Selle eelvaate suurus: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Teine eraldusvõime|Teised eraldusvõimed}}: $1.',
@@ -3087,6 +3114,8 @@ Selle avamine võib su arvutit kahjustada.",
 'file-info-png-looped' => 'korduv',
 'file-info-png-repeat' => 'mängitud $1 {{PLURAL:$1|korra|korda}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|kaader|kaadrit}}',
+'file-no-thumb-animation' => "'''Märkus: Tehniliste piirangute tõttu on selle faili pisipildid animeerimata.'''",
+'file-no-thumb-animation-gif' => "'''Märkus: Tehniliste piirangute tõttu on nii suure eraldusega GIF-piltide pisipildid animeerimata.'''",
 
 # Special:NewFiles
 'newimages' => 'Uute meediafailide galerii',
@@ -3099,7 +3128,7 @@ Järgnevas loendis, mis on sorteeritud $2, on '''$1''' {{PLURAL:$1|fail|faili}}.
 'noimages' => 'Uusi pilte ei ole.',
 'ilsubmit' => 'Otsi',
 'bydate' => 'kuupäeva järgi',
-'sp-newimages-showfrom' => 'Näita uusi faile alates $2 $1',
+'sp-newimages-showfrom' => 'Näita uusi faile alates kuupäevast $2, kell $1',
 
 # Video information, used by Language::formatTimePeriod() to format lengths in the above messages
 'seconds' => '{{PLURAL:$1|üks sekund|$1 sekundit}}',
@@ -3158,7 +3187,7 @@ Kui faili on rakendustarkvaraga töödeldud, võib osa andmeid olla muudetud võ
 'exif-stripbytecounts' => 'Baitide hulk kokkusurutud riba kohta',
 'exif-jpeginterchangeformat' => 'Kaugus JPEG SOI-ni',
 'exif-jpeginterchangeformatlength' => 'JPEG-andmete suurus baitides',
-'exif-whitepoint' => 'Valge punkti heledus',
+'exif-whitepoint' => 'Valgepunkti värvsus',
 'exif-primarychromaticities' => 'Põhivärvide värvsus',
 'exif-ycbcrcoefficients' => 'Värviruumi ümberkujundamise maatriksi koefitsiendid',
 'exif-referenceblackwhite' => 'Musta ja valge kontrollväärtused',
@@ -3216,7 +3245,7 @@ Kui faili on rakendustarkvaraga töödeldud, võib osa andmeid olla muudetud võ
 'exif-sharpness' => 'Teravus',
 'exif-devicesettingdescription' => 'Seadme seadistuste kirjeldus',
 'exif-imageuniqueid' => 'Üksiku pildi ID',
-'exif-gpsversionid' => 'GPS tähise versioon',
+'exif-gpsversionid' => 'GPS-tähise versioon',
 'exif-gpslatituderef' => 'Põhja- või lõunalaius',
 'exif-gpslatitude' => 'Laius',
 'exif-gpslongituderef' => 'Ida- või läänepikkus',
@@ -3345,20 +3374,20 @@ Kui faili on rakendustarkvaraga töödeldud, võib osa andmeid olla muudetud võ
 
 'exif-lightsource-0' => 'Teadmata',
 'exif-lightsource-1' => 'Päevavalgus',
-'exif-lightsource-2' => 'Helendav',
+'exif-lightsource-2' => 'Fluorestsentsvalgus',
 'exif-lightsource-3' => 'Hõõglambi valgus',
 'exif-lightsource-4' => 'Välk',
 'exif-lightsource-9' => 'Hea ilm',
 'exif-lightsource-10' => 'Pilvine ilm',
 'exif-lightsource-11' => 'Varjus',
-'exif-lightsource-12' => 'Luminofoor päevavalgus (D 5700 - 7100K)',
-'exif-lightsource-13' => 'Luminofoor päevavalgus (N 4600 - 5400K)',
-'exif-lightsource-14' => 'Luminofoor külm valgus (W 3900 - 4500K)',
-'exif-lightsource-15' => 'Luminofoor valge (WW 3200 - 3700K)',
+'exif-lightsource-12' => 'Päevane fluorestsentsvalgus (D 5700 – 7100K)',
+'exif-lightsource-13' => 'Päevavalge fluorestsentsvalgus (N 4600 – 5400K)',
+'exif-lightsource-14' => 'Külmvalge fluorestsentsvalgus (W 3900 – 4500K)',
+'exif-lightsource-15' => 'Valge fluorestsentsvalgus (WW 3200 – 3700K)',
 'exif-lightsource-17' => 'Standardne valgus A',
 'exif-lightsource-18' => 'Standardne valgus B',
 'exif-lightsource-19' => 'Standardne valgus C',
-'exif-lightsource-24' => 'stuudio hõõglambid (ISO)',
+'exif-lightsource-24' => 'Stuudio hõõglamp (ISO)',
 'exif-lightsource-255' => 'Muu valgusallikas',
 
 # Flash modes
@@ -3513,7 +3542,7 @@ Kui faili on rakendustarkvaraga töödeldud, võib osa andmeid olla muudetud võ
 
 # E-mail address confirmation
 'confirmemail' => 'E-posti aadressi kinnitamine',
-'confirmemail_noemail' => 'Sul ei ole e-aadress määratud [[Special:Preferences|eelistustes]].',
+'confirmemail_noemail' => 'Sul pole [[Special:Preferences|eelistuste leheküljel]] e-posti aadressi määranud.',
 'confirmemail_text' => 'Enne kui saad e-postiga seotud teenuseid kasutada, pead oma e-posti aadressi õigsust kinnitama. Allpool olevat nuppu klõpsates saadetakse sulle e-posti teel kinnituskood. Aadressi kinnitamiseks klõpsa e-kirjas olevat linki.',
 'confirmemail_pending' => 'Kinnituskood on juba saadetud. Kui tegid konto hiljuti, oota palun mõni minut selle saabumist, enne kui üritad uuesti.',
 'confirmemail_send' => 'Saada kinnituskood',
@@ -3615,7 +3644,7 @@ Palun kinnita, et soovid tõesti selle lehekülje taasluua.",
 'autosumm-new' => "Uus lehekülg: '$1'",
 
 # Live preview
-'livepreview-loading' => 'Laen...',
+'livepreview-loading' => 'Laadimine...',
 'livepreview-ready' => 'Laadimisel... Valmis!',
 'livepreview-failed' => 'Elav eelvaade ebaõnnestus! Proovi normaalset eelvaadet.',
 'livepreview-error' => 'Ühendus ebaõnnestus: $1 "$2".
@@ -3662,7 +3691,7 @@ Sa võid [[Special:EditWatchlist|kasutada ka harilikku tekstiredaktorit]].',
 'version' => 'Versioon',
 'version-extensions' => 'Paigaldatud lisad',
 'version-specialpages' => 'Erileheküljed',
-'version-parserhooks' => 'Süntaksianalüsaatori lisad (Parser hooks)',
+'version-parserhooks' => 'Parserihaagid',
 'version-variables' => 'Muutujad',
 'version-antispam' => 'Rämpsposti tõkestus',
 'version-skins' => 'Kujundused',
index c8ffb9b..64086e9 100644 (file)
@@ -20,6 +20,7 @@
  * @author Urhixidur
  * @author Xabier Armendaritz
  * @author לערי ריינהארט
+ * @author පසිඳු කාවින්ද
  */
 
 $namespaceNames = array(
@@ -131,7 +132,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Ezkutatu patruilatutako aldaketa azken aldaketetan',
 'tog-newpageshidepatrolled' => 'Ezkutatu patruilatutako orriak, orri-zerrenda berritik',
 'tog-extendwatchlist' => 'Jarraipen-zerrenda zabaldu aldaketa guztiak ikusteko, ez bakarrik azken aldaketak',
-'tog-usenewrc' => 'Hobetutako azken aldaketak (JavaScript behar da)',
+'tog-usenewrc' => 'Azken aldaketetan eta jarraipen-zerrendan aldaketak orrialdearen arabera taldekatu (JavaScript behar da)',
 'tog-numberheadings' => 'Goiburukoak automatikoki zenbakitu',
 'tog-showtoolbar' => 'Aldaketen tresna-barra erakutsi (JavaScript)',
 'tog-editondblclick' => 'Klik bikoitzaren bitartez orrialdeak aldatu (JavaScript)',
@@ -139,17 +140,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Atalen izenburuetan klik eginez atala<br />aldatzea gaitu (JavaScript)',
 'tog-showtoc' => 'Edukien taula erakutsi (3 goiburukotik gorako orrialdeentzako)',
 'tog-rememberpassword' => 'Nire saioa ordenagailu honetan gorde ({{PLURAL:$1|egun baterako| $1 egunerako}} gehienez)',
-'tog-watchcreations' => 'Sortzen ditudan orrialdeak nire segimendu zerrendara gehitu',
-'tog-watchdefault' => 'Aldatzen ditudan orrialdeak nire segimendu zerrendara gehitu',
-'tog-watchmoves' => 'Izena aldatutako orrialdeak segimendu zerrendan erakutsi',
-'tog-watchdeletion' => 'Ezabatzen ditudan orrialdeak nire segimendu zerrendara gehitu',
+'tog-watchcreations' => 'Sortzen ditudan orrialdeak eta fitxategiak nire jarraipen-zerrendara gehitu',
+'tog-watchdefault' => 'Aldatzen ditudan orrialdeak eta fitxategiak nire jarraipen-zerrendara gehitu',
+'tog-watchmoves' => 'Izena aldatutako orrialdeak eta fitxategiak jarraipen-zerrendara gehitu',
+'tog-watchdeletion' => 'Ezabatzen ditudan orrialdeak eta fitxategiak nire jarraipen-zerrendara gehitu',
 'tog-minordefault' => 'Lehenetsi bezala aldaketa txiki bezala markatu guztiak',
 'tog-previewontop' => 'Aurrebista aldaketa koadroaren aurretik erakutsi',
 'tog-previewonfirst' => 'Lehen aldaketan aurrebista erakutsi',
 'tog-nocache' => 'Orrialdeen katxea ezgaitu',
-'tog-enotifwatchlistpages' => 'Bidal iezadazue e-postako mezua, jarraitzen ari naizen orri bat aldatzen denean',
+'tog-enotifwatchlistpages' => 'Bidal iezadazue e-posta bat, jarraitzen ari naizen orrialde edo fitxategi bat aldatzen denean',
 'tog-enotifusertalkpages' => 'Nire eztabaida orrialdea aldatzen denean e-posta jaso',
-'tog-enotifminoredits' => 'Aldaketa txikiak direnean ere e-posta jaso',
+'tog-enotifminoredits' => 'Orrialde edo fitxategietan aldaketak txikiak direnean ere e-posta jaso',
 'tog-enotifrevealaddr' => 'Jakinarazpen mezuetan nire e-posta helbidea erakutsi',
 'tog-shownumberswatching' => 'Jarraitzen duen erabiltzaile kopurua erakutsi',
 'tog-oldsig' => 'Egungo sinadura:',
@@ -386,6 +387,7 @@ $1',
 'youhavenewmessages' => '$1 dauzkazu ($2).',
 'newmessageslink' => 'Mezu berriak',
 'newmessagesdifflink' => 'azken aldaketa ikusi',
+'newmessagesdifflinkplural' => 'azken {{PLURAL:$1|aldaketa|aldaketak}}',
 'youhavenewmessagesmulti' => 'Mezu berriak dituzu $1(e)n',
 'editsection' => 'aldatu',
 'editold' => 'aldatu',
@@ -435,10 +437,12 @@ Existitzen direnen zerrenda ikus dezakezu  [[Special:SpecialPages|{{int:specialp
 # General errors
 'error' => 'Errorea',
 'databaseerror' => 'Datu-base errorea',
-'dberrortext' => 'Datu-basean kontsulta egiterakoan sintaxi errore bat gertatu da. Baliteke softwareak bug bat izatea. Datu-basean egindako azken kontsulta:
-<blockquote><tt>$1</tt></blockquote>
-funtzio honekin: "<tt>$2</tt>".
-Datu-baseak emandako errore informazioa: "<tt>$3: $4</tt>".',
+'dberrortext' => 'Datu-basean kontsulta egiterakoan sintaxi errore bat gertatu da. 
+Baliteke softwareak bug bat izatea. 
+Datu-basean egindako azken kontsulta:
+<blockquote><code>$1</code></blockquote>
+funtzio honekin: "<code>$2</code>".
+Datu-baseak emandako errorea: "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Datu-basean kontsulta egiterakoan sintaxi errore bat gertatu da.
 Datu-basean egindako azken kontsulta:
 "$1"
@@ -474,15 +478,17 @@ Mesedez, bidali gertakar hau administradore bati, URLaren izena jarriz.',
 'badarticleerror' => 'Ezin da ekintza hau orrialde honetan burutu.',
 'cannotdelete' => 'Ezin izan da "$1" orrialde edo fitxategia ezabatu.
 Baliteke beste norbaitek ezabatu izana.',
+'cannotdelete-title' => 'Ezin da "$1" orrialdea ezabatu',
 'badtitle' => 'Izenburu ezegokia',
 'badtitletext' => 'Eskatutako orrialde izenburua ez da baliozkoa, hutsik dago, edo gaizki lotutako hizkuntzen arteko lotura da. Baliteke izenburuetan erabili ezin den karaktereren bat izatea.',
 'perfcached' => 'Hurrengo datuak katxean gordeta daude eta litekeena da guztiz eguneratuta ez egotea. Gehienez {{PLURAL:$1|emaitza 1 dago|$1 emaitza daude}} eskuragarri katxean.',
-'perfcachedts' => 'Hurrengo datuak katxean daude, $1 eguneratu zen azkenekoz. {{PLURAL:$1|emaitza 1 dago|$1 emaitza daude}} eskuragarri katxean.',
+'perfcachedts' => 'Hurrengo datuak katxean daude, $1 eguneratu zen azkenekoz. {{PLURAL:$4|emaitza 1 dago|$4 emaitza daude}} eskuragarri katxean.',
 'querypage-no-updates' => 'Orrialde honen berritzeak ez dira baimentzen. Hemen dagoen data ez da zuzenean berrituko.',
 'wrong_wfQuery_params' => 'Baliogabeko parametroak eman zaizkio wfQuery() funtzioari<br />
 Funtzioa: $1<br />
 Kontsulta: $2',
 'viewsource' => 'Kodea ikusi',
+'viewsource-title' => '$1-en iturria ikusi',
 'actionthrottled' => 'Ekintzaren gainetik pasa da',
 'actionthrottledtext' => 'Spamaren aurkako neurri gisa ekintza hau denbora tarte laburrean aldi askotan egiteko mugapena duzu, eta muga hori zeharkatu duzu.
 Saia zaitez berriro minutu batzuen buruan, mesedez.',
@@ -734,12 +740,11 @@ edo <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}
 'userpage-userdoesnotexist-view' => '"$1" erabiltzaile-kontua ez dago erregistraturik.',
 'blocked-notice-logextract' => 'Erabiltzaile hau blokeatuta dago une honetan.
 Azken blokeoaren erregistroa ageri da behean, erreferentzia gisa:',
-'clearyourcache' => "'''Oharra:''' Gorde ondoren zure nabigatzailearen katxea ekidin beharko duzu aldaketak ikusteko.
-* '''Firefox / Safari:''' ''Shift'' tekla sakatu birkargatzeko momentuan, edo ''Ctrl-Shift-R'' sakatu (''⌘-R''' Mac baten)
-* '''Google Chrome:''' ''Ctrl-Shift-R'' sakatu (''⌘-R'' Mac batean)
+'clearyourcache' => "'''Oharra:''' Gorde ondoren, zure nabigatzailearen katxea ekidin beharko duzu aldaketak ikusteko.
+* '''Firefox / Safari:''' ''Shift'' tekla sakatu birkargatzeko momentuan, edo ''Ctrl-Shift-R'' edo ''Crtl-F5'' sakatu (''⌘-R''' Mac batean)
+* '''Google Chrome:''' ''Ctrl-Shift-R'' sakatu (''⌘-Shift-R'' Mac batean)
 * '''Internet Explorer:''' ''Ctrl'' tekla sakatu birkargatzeko momentuan, edo ''Ctrl-F5'' sakatu
-* '''Konqueror:''': Birkargatzeko klik egin, edo F5 sakatu, besterik ez
-* '''Opera''' erabiltzaileek ''Tresnak → Hobespenak'' atalera jo eta katxea garbitzeko aukera hautatu",
+* '''Opera''' erabiltzaileek ''Tresnak → Hobespenak'' atalera joan eta katxea garbitzeko aukera hautatu",
 'usercssyoucanpreview' => "'''Laguntza:''' Zure CSS berria gorde aurretik probatzeko \"{{int:showpreview}}\" botoia erabili.",
 'userjsyoucanpreview' => "'''Laguntza:''' Zure JS berria gorde aurretik probatzeko \"{{int:showpreview}}\" botoia erabili.",
 'usercsspreview' => "'''Ez ahaztu zure CSS kodea aurreikusten zabiltzala.'''
@@ -754,6 +759,7 @@ Azken blokeoaren erregistroa ageri da behean, erreferentzia gisa:',
 'note' => "'''Oharra:'''",
 'previewnote' => "'''Gogoratu hau aurrikuspen bat dela.'''
 Zure aldaketak ez dira oraindik gorde!",
+'continue-editing' => 'Aldatzen jarraitu',
 'previewconflict' => 'Aurreikuspenak aldaketen koadroan idatzitako testua erakusten du, gorde ondoren agertuko den bezala.',
 'session_fail_preview' => "'''Sentitzen dugu! Ezin izan da zure aldaketa prozesatu, saioko datu batzuen galera dela-eta. Mesedez, saiatu berriz. Arazoak jarraitzen badu, saiatu saioa amaitu eta berriz hasten.'''",
 'session_fail_preview_html' => "'''Sentitzen dugu! Ezin izan dugu zure aldaketa burutu, saio datu galera bat medio.'''
@@ -765,6 +771,7 @@ Zure aldaketak ez dira oraindik gorde!",
 Aldaketa ezeztatua izan da testuaren galtzea galarazteko.
 Hau batzuetan gertatzen da buggyan oinarritutako web proxy zerbitzua erabiltzean.'''",
 'editing' => '$1 aldatzen',
+'creating' => '$1 sortzen',
 'editingsection' => '$1 aldatzen (atala)',
 'editingcomment' => '$1 aldatzen (atal berria)',
 'editconflict' => 'Aldaketa gatazka: $1',
@@ -905,9 +912,9 @@ Administratzaile bezala ikus dezakezu; xehetasun gehiagorako [{{fullurl:{{#Speci
 'rev-deleted-no-diff' => "Ezin duzu ezberdintasun hau ikusi, berrikuspenetako bat '''ezabatua''' izan delako.
 Xehetasunak [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ezabaketa erregistroan] aurki ditzakezu.",
 'rev-suppressed-no-diff' => "Ezin duzu ezberdintasunik ikusi berrikuspenen bat '''ezabatua''' izan delako.",
-'rev-deleted-unhide-diff' => "diff honen bertsioetako bat '''ezabatu''' da.
+'rev-deleted-unhide-diff' => "aldaketa honen bertsioetako bat '''ezabatu''' da.
 Xehetasunak ikusgai daude [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ezabatze erregistroan].
-Administratzailea zarenez, oraindik [$1 diff hau ikus dezakezu], nahi izanez gero.",
+Oraindik [$1 aldaketa hau ikus dezakezu], nahi izanez gero.",
 'rev-suppressed-unhide-diff' => "diff honen bertsioetako bat '''ezeztatu''' da.
 Xehetasunak ikusgai daude [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} ezeztatze erregistroan].
 Administratzailea zarenez, oraindik [$1 diff hau ikus dezakezu], nahi izanez gero.",
@@ -982,7 +989,7 @@ Begira itzazu erregistroak.',
 # Suppression log
 'suppressionlog' => 'Ezabatze loga',
 'suppressionlogtext' => 'Azpian administratzaileek ezkutatutako edukia duten ezabaketa eta blokeoen zerrenda dago.
-Ikusi [[Special:BlockList|IP blokeoen zerrenda]] orain dauden blokeoak ikusi ahal izateko.',
+Ikusi [[Special:BlockList|blokeoen zerrenda]] orain dauden blokeoak eta debekuak ikusi ahal izateko.',
 
 # History merging
 'mergehistory' => 'Orrialdeen historiak bateratu',
@@ -1017,6 +1024,7 @@ Kontura zaitez nabigazio loturek, zutabea ezabatu dezakela.',
 
 # Diffs
 'history-title' => '"$1" orrialdearen historia berrikuspena',
+'difference-title' => '"$1"-en berrikuspenen arteko aldaketa',
 'difference-multipage' => '(Orrialdeen arteko ezberdintasunak)',
 'lineno' => '$1. lerroa:',
 'compareselectedversions' => 'Hautatutako bertsioak alderatu',
@@ -1241,7 +1249,7 @@ $1 {{PLURAL:$1|karakteretik|karakteretik}} behera izan behar ditu.',
 'group-all' => '(guztiak)',
 
 'group-user-member' => '{{GENDER:$1|lankidea}}',
-'group-autoconfirmed-member' => '{{GENDER:$1|baieztatutako erabiltzailea}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|baieztatutako lankidea}}',
 'group-bot-member' => '{{GENDER:$1|bot-a}}',
 'group-sysop-member' => '{{GENDER:$1|administratzailea}}',
 'group-bureaucrat-member' => '{{GENDER:$1|burokrata}}',
@@ -1414,8 +1422,8 @@ $1 {{PLURAL:$1|karakteretik|karakteretik}} behera izan behar ditu.',
 Aurretik igotako irudiak ikusi edo bilatzeko [[Special:FileList|igotako fitxategien zerrendara]] jo. Igoerak [[Special:Log/upload|igoera erregistroan]] ikus daitezke eta ezabatutakoak [[Special:Log/delete|ezabaketa erregistroan]] zerrendatzen dira.
 
 Orrialde baten irudi bat txertatzeko, erabili kode hauetako bat:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''',
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' * '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' irudia zuzenean erabiltzeko.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''',
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' * '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' irudia zuzenean erabiltzeko.",
 'upload-permitted' => 'Baimendutako fitxategi motak: $1.',
 'upload-preferred' => 'Fitxategi mota hobetsiak: $1.',
 'upload-prohibited' => 'Debekatutako fitxategi motak: $1.',
@@ -1453,20 +1461,20 @@ Baimendutako fitxategi {{PLURAL:$3|mota $2 da|motak $2 dira}}.',
 'large-file' => 'Ez da gomendagarria fitxategiak $1 baino handiagoak izatea; fitxategi honen tamaina: $2.',
 'largefileserver' => 'Fitxategi hau zerbitzariak baimentzen duena baino handiagoa da.',
 'emptyfile' => 'Badirudi igotzen ari zaren fitxategia hutsik dagoela. Mesedez, egiaztatu fitxategi hori dela igo nahi duzuna.',
-'fileexists' => "Badago izen hori daukan fitxategi bat; mesedez, ikusi existitzen den '''<tt>[[:$1]]</tt>''' fitxategia aldatu nahi duzun egiaztatzeko.
-[[$1|thumb]]",
-'filepageexists' => "Fitxategi honen deskribapen orria dagoeneko sortuta dago '''<tt>[[:$1]]</tt>'''-en, baina, ez da existitzen izen hori duen fitxategirik.
+'fileexists' => 'Badago izen hori daukan fitxategi bat; mesedez, ikusi existitzen den <strong>[[:$1]]</strong> fitxategia aldatu nahi duzun egiaztatzeko.
+[[$1|thumb]]',
+'filepageexists' => 'Fitxategi honen deskribapen orria dagoeneko sortuta dago <strong>[[:$1]]</strong>-en, baina, ez da existitzen izen hori duen fitxategirik.
 Idazten duzun laburpena ez da deskribapen orrian agertuko.
 Zure laburpena agertzeko, eskuz aldatu beharko duzu.
-[[$1|thumb]]",
-'fileexists-extension' => "Badago antzeko izena duen fitxategi bat: [[$2|thumb]]
-* Igotako fitxategiaren izena: '''<tt>[[:$1]]</tt>'''
-* Aurretik dagoen fitxategiaren izena: '''<tt>[[:$2]]</tt>'''
-Hautatu beste izen bat.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Badago antzeko izena duen fitxategi bat: [[$2|thumb]]
+* Igotako fitxategiaren izena: <strong>[[:$1]]</strong>
+* Aurretik dagoen fitxategiaren izena: <strong>[[:$2]]</strong>
+Hautatu beste izen bat.',
 'fileexists-thumbnail-yes' => "Badirudi neurri txikiko irudia dela ''(irudi txikia)''. [[$1|thumb]]
-Egiaztatu '''<tt>[[:$1]]</tt>''' fitxategia.
+Egiaztatu <strong>[[:$1]]</strong> fitxategia.
 Egiaztatutako fitxategia eta jatorrizkoa berdinak badira ez dago irudi txikia igo beharrik.",
-'file-thumbnail-no' => "Fitxategiaren izena '''<tt>$1</tt>'''-(r)ekin hasten da.
+'file-thumbnail-no' => "Fitxategiaren izena <strong>$1</strong>-(r)ekin hasten da.
 Badirudi tamaina txikiko irudia ''(thumbnail)'' dela.
 Irudi hau bereizmen handiagoan izango bazenu igo ezazu, bestela, fitxategiaren izena aldatu mesedez.",
 'fileexists-forbidden' => 'Badago izen hori daukan fitxategia, eta ezin da gainidatzi.
@@ -1527,7 +1535,7 @@ $1',
 'img-auth-nopathinfo' => 'PATH_INFO falta da.
 Zure zerbitzaria ez dago informazio hau pasatzeko konfiguratuta.
 CGI-oinarriduna izan daiteke, img_auth onartzen ez duena.
-[https://www.mediawiki.org/wiki/Manual:Image_Authorization Ikusi irudi-baimenak.]',
+Ikusi https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'img-auth-notindir' => 'Eskatutako bidea ez dago kofiguratutako igoera-direktorioan.',
 'img-auth-badtitle' => 'Ezin izan da baleko izenbururik eraiki "$1" izenetik abiatuta',
 'img-auth-nologinnWL' => 'Ez duzu saioa hasi eta "$1" ez dago zerrenda zurian.',
@@ -1636,7 +1644,7 @@ Bere [$2 fitxategiaren deskribapen orrialdea] behean dago.',
 
 # MIME search
 'mimesearch' => 'MIME bilaketa',
-'mimesearch-summary' => 'Orrialde honek fitxategiak bere MIME motaren arabera iragaztea ahalbidetzen du. Iragazkia: eduki-mota/azpi-mota, adib. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Orrialde honek fitxategiak bere MIME motaren arabera iragaztea ahalbidetzen du. Iragazkia: eduki-mota/azpi-mota, adib. <code>image/jpeg</code>.',
 'mimetype' => 'MIME mota:',
 'download' => 'jaitsi',
 
@@ -1681,7 +1689,9 @@ Bere [$2 fitxategiaren deskribapen orrialdea] behean dago.',
 
 'disambiguations' => 'Argipen orrietara lotzen duten orriak',
 'disambiguationspage' => 'Template:argipen',
-'disambiguations-text' => "Jarraian azaltzen diren orrialdeek '''argipen orrialde''' baterako lotura dute. Kasu bakoitzean dagokion artikulu zuzenarekin izan beharko lukete lotura.<br />Orrialde bat argipen motakoa dela antzeman ohi da [[MediaWiki:Disambiguationspage]] orrialdean agertzen den txantiloietako bat duenean.",
+'disambiguations-text' => "Jarraian azaltzen diren orrialdeek '''argipen orrialde''' baterako lotura dute. 
+Kasu bakoitzean dagokion artikulu zuzenarekin izan beharko lukete lotura.<br />
+Orrialde bat argipen motakoa dela antzeman ohi da [[MediaWiki:Disambiguationspage]] orrialdean agertzen den txantiloietako bat duenean.",
 
 'doubleredirects' => 'Birzuzenketa bikoitzak',
 'doubleredirectstext' => 'Lerro bakoitzean lehen eta bigarren birzuzenketetarako loturak ikus daitezke, eta baita edukia daukan edo eduki beharko lukeen orrialderako lotura ere. Lehen birzuzenketak azken honetara <del>zuzendu</del> beharko luke.',
@@ -1818,7 +1828,7 @@ Ikus, gainera [[Special:WantedCategories|kategoriarik eskatuenak]].',
 'linksearch-ok' => 'Bilatu',
 'linksearch-text' => '"*.wikipedia.org" bezalako izartxoak erabil daitezke.
 Gutxienez goi mailako domeinua behar du, adibidez "*.org".<br />
-Baimendutako protokoloak: <tt>$1</tt> (zure bilaketan hauek ez gehitu).',
+Baimendutako protokoloak: <code>$1</code> (zure bilaketan hauek ez gehitu).',
 'linksearch-line' => '$1, $2(e)tik lotuta',
 'linksearch-error' => 'Komodinak izenaren hasieran bakarrik agertu beharko lirateke.',
 
@@ -2213,8 +2223,8 @@ Blokeo erregistroa azken sarrera ematen da azpian erreferentziarako:',
 'ipb-confirm' => 'Blokeoa baieztatu',
 'badipaddress' => 'Baliogabeko IP helbidea',
 'blockipsuccesssub' => 'Blokeoa burutu da',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] erabiltzaileari blokeoa ezarri zaio.<br />
-Ikus [[Special:BlockList|IP blokeoen zerrenda]] blokeoak aztertzeko.',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] blokeatua izan da.<br />
+Ikus [[Special:BlockList|blokeoen zerrenda]] blokeoak aztertzeko.',
 'ipb-edit-dropdown' => 'Blokeatzeko arrazoiak aldatu',
 'ipb-unblock-addr' => '$1 lankide edo IP helbideari blokeoa baliogabetu',
 'ipb-unblock' => 'Erabiltzaile izen edo IP helbide bati blokeoa kendu',
@@ -2254,7 +2264,9 @@ Blokeo erregistroa ematen da azpian erreferentziarako:',
 Erregistroa ematen da azpian erreferentziarako:',
 'blocklogentry' => '"[[$1]]" wikilariari blokeoa ezarri zaio. Blokeoaldia: $2 $3',
 'reblock-logentry' => '[[$1]] wikilariari blokeoaldia aldatu diogu. Blokeoaldi berria: $2 $3',
-'blocklogtext' => 'Erabiltzaileen blokeoen ezarpen eta ezabaketen erregistroa da hau. Ez dira automatikoki blokeatutako IP helbideak zerrendatzen. Ikus [[Special:BlockList|IP blokeoen zerrenda]] aktibo dauden blokeoak aztertzeko.',
+'blocklogtext' => 'Erabiltzaileen blokeoen ezarpen eta ezabaketen erregistroa da hau. 
+Automatikoki blokeatutako IP helbideak ez dira zerrendatzen. 
+Ikus [[Special:BlockList|blokeoen zerrenda]] aktibo dauden blokeoak eta debekuak aztertzeko.',
 'unblocklogentry' => '$1 desblokeatu da',
 'block-log-flags-anononly' => 'erabiltzaile anonimoak bakarrik',
 'block-log-flags-nocreate' => 'kontuak sortzea ezgaituta',
@@ -2361,7 +2373,7 @@ Kasu horietan orrialdea eskuz mugitu edo bestearekin bateratu beharko duzu.",
 
 "[[:$1]]" helburua existitzen da. Lekua egiteko ezabatu nahi al duzu?',
 'delete_and_move_confirm' => 'Bai, orrialdea ezabatu',
-'delete_and_move_reason' => 'Lekua egiteko ezabatu da',
+'delete_and_move_reason' => '[[$1]] mugitzeko ezabatu da',
 'selfmove' => 'Helburu izenburua berdina da; ezin da orrialde bat bere gainera mugitu.',
 'immobile-source-namespace' => '"$1" motako orrialdeak ezin dira mugitu',
 'immobile-target-namespace' => 'Orrialdeak ezin dira "$1" motara mugitu',
@@ -2572,12 +2584,9 @@ Baliteke zerrenda beltzean dagoen kanpo lotura batek sortzea arazo hori.',
 'spam_blanking' => 'Berrikuspen guztiek $1(e)rako lotura zeukaten, husten',
 
 # Info page
-'pageinfo-header-edits' => 'Aldaketak',
-'pageinfo-header-views' => 'Ikustaldiak',
-'pageinfo-subjectpage' => 'Orrialdea',
-'pageinfo-talkpage' => 'Eztabaida-orria',
-'pageinfo-edits' => 'Aldaketa kopurua',
+'pageinfo-header-edits' => 'Aldaketen historia',
 'pageinfo-views' => 'Bistaratze-kopurua',
+'pageinfo-edits' => 'Aldaketa kopuru totala',
 
 # Skin names
 'skinname-standard' => 'Lehenetsia',
@@ -3162,6 +3171,7 @@ Halaber [[Special:EditWatchlist|aldatzaile estandarra]] erabil dezakezu.',
 'version-software' => 'Instalatutako softwarea',
 'version-software-product' => 'Produktua',
 'version-software-version' => 'Bertsioa',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Fitxategi bidea',
@@ -3187,7 +3197,7 @@ Irudiak bereizmen handienean daude, bestelako fitxategi motak beraiei esleitutak
 * <strong class="mw-specialpagerestricted">Mugatutako orrialde bereziak.</strong>',
 'specialpages-group-maintenance' => 'Mantentze-oharrak',
 'specialpages-group-other' => 'Beste orrialde berezi batzuk',
-'specialpages-group-login' => 'Sartu / Izena eman',
+'specialpages-group-login' => 'Saioa hasi / kontua sortu',
 'specialpages-group-changes' => 'Aldaketa berriak eta erregistroak',
 'specialpages-group-media' => 'Artxiboen orriak',
 'specialpages-group-users' => 'Erabiltzaileak eta eskumenak',
index 4543b73..533c28c 100644 (file)
@@ -1062,18 +1062,18 @@ Vai al [[Special:NewFiles|correol de nuevus archivus]] pa echali una guipaina de
 'large-file' => 'Es recomendabri que los archivus nu seyan mayoris de $1; esti archivu ocupa $2.',
 'largefileserver' => 'Esti archivu es mas grandi que lo premitiu pol el sirviol.',
 'emptyfile' => "El archivu qu'as ententau empuntal paci estal vaciu; pol favol, compreba que realmenti se trata el archivu que querias empuntal.",
-'fileexists' => "Ya desisti un archivu con esi nombri.
-Pol favol, compreba que realmenti quieis chambal el archivu '''<tt>[[:$1]]</tt>'''.
-[[$1|thumb]]",
-'filepageexists' => "Ya desisti un artículu con esi nombri, pol favol, compreba '''<tt>[[:$1]]</tt>''' si nu estás siguru e querel chambalu.",
-'fileexists-extension' => "Ya desisti un archivu con un nombri paiciu: [[$2|thumb]]
-* Nombri el archivu empuntau: '''<tt>[[:$1]]</tt>'''
-* Nombri el archivu ya desistenti: '''<tt>[[:$2]]</tt>'''
-Pol favol, lihi un nombri deferenti.",
+'fileexists' => 'Ya desisti un archivu con esi nombri.
+Pol favol, compreba que realmenti quieis chambal el archivu <strong>[[:$1]]</strong>.
+[[$1|thumb]]',
+'filepageexists' => 'Ya desisti un artículu con esi nombri, pol favol, compreba <strong>[[:$1]]</strong> si nu estás siguru e querel chambalu.',
+'fileexists-extension' => 'Ya desisti un archivu con un nombri paiciu: [[$2|thumb]]
+* Nombri el archivu empuntau: <strong>[[:$1]]</strong>
+* Nombri el archivu ya desistenti: <strong>[[:$2]]</strong>
+Pol favol, lihi un nombri deferenti.',
 'fileexists-thumbnail-yes' => "El archivu paci sel una imahin chiquenina ''(cuairu)''. [[$1|thumb]]
-Pol favol, compreba qu'el archivu '''<tt>[[:$1]]</tt>''' nu es la mesma imahin.
+Pol favol, compreba qu'el archivu <strong>[[:$1]]</strong> nu es la mesma imahin.
 Nel chascu en que huera la mesm imahin (inque seya en grandi) nu es mestel qu'empuntis el tu archivu.",
-'file-thumbnail-no' => "El nombri el archivu esmiença pol '''<tt>$1</tt>'''. Paci sel una imahin pequeña ''(cuairu)''.
+'file-thumbnail-no' => "El nombri el archivu esmiença pol <strong>$1</strong>. Paci sel una imahin pequeña ''(cuairu)''.
 Si tiinis la imahin cola resolución orihinal, empúntala, si nu, pol favol, chamba el nombri del archivu.",
 'fileexists-forbidden' => 'Ya dessisti un archivu con esti nombri, i nu es possibri sobriescribilu.
 Si entovia quieris empuntal el archivu, pol favol, güervi atrás i empuntalu con otru nombri. [[File:$1|thumb|center|$1]]',
@@ -1189,7 +1189,7 @@ Pursa nel entítulu la coluna pa chambal el ordin.',
 
 # MIME search
 'mimesearch' => 'Landeu MIME',
-'mimesearch-summary' => "Esta páhina ativa el filtrau d'archivus en hunción la su crasi MIME. Entrá: contenttype/subtype, p.sab. <tt>image/jpeg</tt>.",
+'mimesearch-summary' => "Esta páhina ativa el filtrau d'archivus en hunción la su crasi MIME. Entrá: contenttype/subtype, p.sab. <code>image/jpeg</code>.",
 'mimetype' => 'Tipu MIME:',
 'download' => 'descargal',
 
index b55bc7c..5a968c8 100644 (file)
@@ -1845,9 +1845,9 @@ $1",
 برای دیدن پرونده‌هایی که قبلاً بارگذاری شده‌اند به [[Special:FileList|فهرست پرونده‌ها]] بروید. بارگذاری نیز مجدد در [[Special:Log/upload|سیاههٔ بارگذاری‌ها]] و حذف پرونده‌ها در [[Special:Log/delete|deletion log]] ثبت می‌شود.
 
 بعد از این که پرونده‌ای را بارگذاری کردید، به این سه شکل می‌توانید آن را در صفحه‌ها استفاده کنید:
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' برای استفاده از نسخه کامل پرونده
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' برای استفاده از یک نسخه ۲۰۰ پیکسلی از پرونده درون یک جعبه در سمت چپ متن که عبارت alt text در آن به عنوان توضیح استفاده شده
-*'''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' برای ایجاد یک پیونده مستقیم به پرونده بدون نمایش پرونده",
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' برای استفاده از نسخه کامل پرونده
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' برای استفاده از یک نسخه ۲۰۰ پیکسلی از پرونده درون یک جعبه در سمت چپ متن که عبارت alt text در آن به عنوان توضیح استفاده شده
+*'''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' برای ایجاد یک پیونده مستقیم به پرونده بدون نمایش پرونده",
 'upload-permitted' => 'انواع مجاز پرونده‌ها: $1.',
 'upload-preferred' => 'انواع ترجیح‌داده شده پرونده‌ها: $1.',
 'upload-prohibited' => 'انواع غیرمجاز پرونده‌ها: $1.',
@@ -1895,21 +1895,21 @@ $1",
 این مشکل ممکن است به علت خطای تایپی در نام پرونده باشد.
 لطفاً تأیید کنید که می‌خواهید این پرونده را با همین شرایط بارگذاری کنید.',
 'windows-nonascii-filename' => 'این ویکی از نام پرونده با نویسه‌های خاص پشتیبانی نمی‌کند.',
-'fileexists' => "پرونده‌ای با همین نام از قبل موجود است، اگر مطمئن نیستید که می‌خواهید آن پرونده را تغییر دهید، لطفاً '''<tt>[[:$1]]</tt>''' را بررسی کنید.
-[[$1|thumb]]",
-'filepageexists' => "صفحهٔ توضیح برای این پرونده از قبل در '''<tt>[[:$1]]</tt>''' ایجاد شده‌است، اما پرونده‌ای با این نام وجود ندارد.
+'fileexists' => 'پرونده‌ای با همین نام از قبل موجود است، اگر مطمئن نیستید که می‌خواهید آن پرونده را تغییر دهید، لطفاً <strong>[[:$1]]</strong> را بررسی کنید.
+[[$1|thumb]]',
+'filepageexists' => 'صفحهٔ توضیح برای این پرونده از قبل در <strong>[[:$1]]</strong> ایجاد شده‌است، اما پرونده‌ای با این نام وجود ندارد.
 خلاصه‌ای که وارد می‌کنید در صفحهٔ توضیح نمایش نخواهد یافت.
 برای آن که خلاصه شما نمایش یابد، باید آن را به صورت دستی ویرایش کنید.
-[[$1|thumb]]",
-'fileexists-extension' => "پرونده‌ای با نام مشابه وجود دارد: [[$2|thumb]]
-* نام پرونده‌ای که بارگذاری کردید این بود:'''<tt>[[:$1]]</tt>'''
-* نام پرونده‌ای که از قبل موجود است این است:'''<tt>[[:$2]]</tt>'''
-لطفاً یک نام دیگر انتخاب کنید.",
+[[$1|thumb]]',
+'fileexists-extension' => 'پرونده‌ای با نام مشابه وجود دارد: [[$2|thumb]]
+* نام پرونده‌ای که بارگذاری کردید این بود:<strong>[[:$1]]</strong>
+* نام پرونده‌ای که از قبل موجود است این است:<strong>[[:$2]]</strong>
+لطفاً یک نام دیگر انتخاب کنید.',
 'fileexists-thumbnail-yes' => "به نظر می‌رسد که این پرونده، یک تصویر کوچک شده (''بندانگشتی'' یا ''thumbnail'') باشد.
 [[$1|thumb]]
-لطفاً پروندهٔ '''<tt>[[:$1]]</tt>''' را بررسی کنید.
+لطفاً پروندهٔ <strong>[[:$1]]</strong> را بررسی کنید.
 اگر پرونده‌ای که بررسی کردید، همین تصویر در اندازهٔ اصلی‌اش است، نیازی به بارگذاری یک نسخهٔ بندانگشتی اضافه نیست.",
-'file-thumbnail-no' => "نام پرونده با '''<tt>$1</tt>''' آغاز می‌شود.
+'file-thumbnail-no' => "نام پرونده با <strong>$1</strong> آغاز می‌شود.
 به نظر می‌رسد که این پرونده، یک تصویر ''بندانگشتی'' ''(thumbnail)'' از تصویر بزرگتر اصلی باشد.
 اگر تصویر با اندازهٔ اصلی را دارید، آن را بارگذاری کنید؛ در غیر این صورت، نام پرونده را تغییر دهید.",
 'fileexists-forbidden' => 'در حال حاضر، پرونده‌ای به همین نام وجود دارد، و قابل رونویسی نیست.
@@ -2166,7 +2166,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization را ببینید.',
 # MIME search
 'mimesearch' => 'جستجوی بر اساس MIME',
 'mimesearch-summary' => 'با کمک این صفحه شما می‌توانید پرونده‌هایی که یک نوع MIME به خصوص دارند را پیدا کنید.
-ورودی: به صورت contenttype/subtype ، نظیر <tt>image/jpeg</tt>.',
+ورودی: به صورت contenttype/subtype ، نظیر <code>image/jpeg</code>.',
 'mimetype' => 'نوع MIME:',
 'download' => 'بارگیری',
 
@@ -2368,7 +2368,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization را ببینید.',
 'linksearch-ok' => 'جستجو',
 'linksearch-text' => 'نشانه‌هایی مانند «‎*.wikipedia.org» را می‌توان استفاده کرد.
 حداقل یک دامنه سطح بالا ، به عنوان مثال "*.org" نیاز دارد.<br />
-پروتکل‌های پشتیبانی‌شده: <tt>$1</tt> (هیچ یک از این موارد را در جستجوی خود نیافزایید)',
+پروتکل‌های پشتیبانی‌شده: <code>$1</code> (هیچ یک از این موارد را در جستجوی خود نیافزایید)',
 'linksearch-line' => '$1 از $2 پیوند دارد',
 'linksearch-error' => 'نشانه‌ها فقط در ابتدای نام میزبان اینترنتی می‌توانند استفاده شوند.',
 
@@ -3222,15 +3222,10 @@ $1',
 # Info page
 'pageinfo-title' => 'اطلاعات در مورد «$1»',
 'pageinfo-header-edits' => 'ویرایش',
-'pageinfo-header-watchlist' => 'فهرست پی‌گیری‌ها',
-'pageinfo-header-views' => 'بازدیدها',
-'pageinfo-subjectpage' => 'صفحه',
-'pageinfo-talkpage' => 'صفحه بحث',
+'pageinfo-views' => 'شمار بازدیدها',
 'pageinfo-watchers' => 'شمار پی‌گیری‌کنندگان',
 'pageinfo-edits' => 'شمار ویرایش‌ها',
 'pageinfo-authors' => 'شمار نویسندگان یکتا',
-'pageinfo-views' => 'شمار بازدیدها',
-'pageinfo-viewsperedit' => 'تعداد بازدید به ازای هر ویرایش',
 
 # Skin names
 'skinname-standard' => 'کلاسیک',
index e4d5da3..ce09c1f 100644 (file)
@@ -634,10 +634,10 @@ Luettelo toimintosivuista löytyy sivulta [[Special:SpecialPages|{{int:specialpa
 'databaseerror' => 'Tietokantavirhe',
 'dberrortext' => 'Tietokantakyselyssä oli syntaksivirhe.
 Se saattaa johtua ohjelmointivirheestä.
-Viimeinen tietokantakysely, jota yritettiin, oli:
-<blockquote><tt>$1</tt></blockquote>.
-Se tehtiin funktiosta ”<tt>$2</tt>”.
-Tietokanta palautti virheen ”<tt>$3: $4</tt>”.',
+Viimeinen tietokantakysely:
+<blockquote><code>$1</code></blockquote>
+Se tehtiin funktiosta <code>$2</code>.
+Tietokanta palautti virheen <samp>$3: $4</samp>.',
 'dberrortextcl' => 'Tietokantakyselyssä oli syntaksivirhe. Viimeinen tietokantakysely, jota yritettiin, oli: ”$1”. Se tehtiin funktiosta ”$2”. Tietokanta palautti virheen ”$3: $4”.',
 'laggedslavemode' => "'''Varoitus:''' Sivu ei välttämättä sisällä viimeisimpiä muutoksia.",
 'readonly' => 'Tietokanta on lukittu',
@@ -1664,9 +1664,9 @@ Poisto- ja siirtoloki tälle sivulle näkyy alla:",
 'uploadtext' => "Voit tallentaa tiedostoja alla olevalla lomakkeella. [[Special:FileList|Tiedostoluettelo]] sisältää listan tallennetuista tiedostoista. Tallennukset kirjataan myös [[Special:Log/upload|tallennuslokiin]], ja poistot [[Special:Log/delete|poistolokiin]].
 
 Voit käyttää tiedostoja wikisivuilla seuraavilla tavoilla:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Tiedosto.jpg]]</nowiki></tt>''', käyttääksesi tiedoston täyttä versiota.
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Tiedosto.png|200px|thumb|left|Kuvausteksti]]</nowiki></tt>''', käyttääksesi tiedostoa sovitettuna 200 kuvapistettä leveään laatikkoon kuvaustekstillä.
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Tiedosto.ogg]]</nowiki></tt>''', jos haluat suoran linkin tiedostoon.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Tiedosto.jpg]]</nowiki></code>''', käyttääksesi tiedoston täyttä versiota.
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Tiedosto.png|200px|thumb|left|Kuvausteksti]]</nowiki></code>''', käyttääksesi tiedostoa sovitettuna 200 kuvapistettä leveään laatikkoon kuvaustekstillä.
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Tiedosto.ogg]]</nowiki></code>''', jos haluat suoran linkin tiedostoon.",
 'upload-permitted' => 'Sallitut tiedostomuodot: $1.',
 'upload-preferred' => 'Suositellut tiedostomuodot: $1.',
 'upload-prohibited' => 'Kielletyt tiedostomuodot: $1.',
@@ -1707,22 +1707,22 @@ Voit käyttää tiedostoja wikisivuilla seuraavilla tavoilla:
 'largefileserver' => 'Tämä tiedosto on suurempi kuin mitä palvelin sallii.',
 'emptyfile' => 'Tiedosto, jota yritit lähettää, näyttää olevan tyhjä. Tarkista, että kirjoitit polun ja nimen oikein ja että se ei ole liian suuri kohdepalvelimelle.',
 'windows-nonascii-filename' => 'Tämä wiki ei tue tiedostonimiä, joissa on erikoismerkkejä.',
-'fileexists' => "Samanniminen tiedosto on jo olemassa.
-Katso tiedoston sivu '''<tt>[[:$1]]</tt>''', jos et ole varma, haluatko muuttaa sitä.
-[[$1|thumb]]",
-'filepageexists' => "Kuvaussivu on jo olemassa tällä nimellä '''<tt>[[:$1]]</tt>''', mutta ei tiedostoa tällä nimellä.
-Kirjoittamasi yhteenveto ei ilmesty kuvaussivulle.
-Muuttaaksesi uuden yhteenvedon kuvaussivulle, sinun täytyy manuaalisesti muokata sitä.
-[[$1|thumb]]",
-'fileexists-extension' => "Tiedosto, jolla on samankaltainen nimi, on jo olemassa: [[$2|thumb]]
-* Tallennetun tiedoston nimi: '''<tt>[[:$1]]</tt>'''
-* Olemassa olevan tiedoston nimi: '''<tt>[[:$2]]</tt>'''
-Valitse toinen tiedostonimi.",
+'fileexists' => 'Samanniminen tiedosto on jo olemassa.
+Katso tiedoston sivu <strong>[[:$1]]</strong>, jos et ole varma, haluatko muuttaa sitä.
+[[$1|thumb]]',
+'filepageexists' => 'Kuvaussivu <strong>[[:$1]]</strong> on ho olemassa, mutta vastaavaa tiedostoa ei ole olemassa.
+Kirjoittamasi yhteenveto ei ilmesty kuvaussivulle,
+ellet lisää sitä muokkaamalla sivua manuaalisesti.
+[[$1|thumb]]',
+'fileexists-extension' => 'Tiedosto, jolla on samankaltainen nimi, on jo olemassa: [[$2|thumb]]
+* Tallennetun tiedoston nimi: <strong>[[:$1]]</strong>
+* Olemassa olevan tiedoston nimi: <strong>[[:$2]]</strong>
+Valitse toinen tiedostonimi.',
 'fileexists-thumbnail-yes' => "Tiedosto näyttäisi olevan pienennetty kuva ''(pienoiskuva)''. [[$1|thumb]]
-Tarkista tiedosto '''<tt>[[:$1]]</tt>'''.
+Tarkista tiedosto <strong>[[:$1]]</strong>.
 Jos yllä oleva tiedosto on alkuperäisversio samasta kuvasta, ei sille tarvitse tallentaa pienoiskuvaa.",
-'file-thumbnail-no' => "Tiedostonimi alkaa merkkijonolla '''<tt>$1</tt>'''. Tiedosto näyttäisi olevan pienennetty kuva ''(pienoiskuva)''.
-Jos sinulla on tämän kuvan alkuperäinen versio, tallenna se. Muussa tapauksessa nimeä tiedosto uudelleen.",
+'file-thumbnail-no' => 'Tiedostonimi alkaa merkkijonolla <strong>$1</strong>. Tiedosto näyttäisi olevan pienennetty kuva.
+Jos sinulla on tämän kuvan alkuperäinen versio, tallenna se. Muussa tapauksessa nimeä tiedosto uudelleen.',
 'fileexists-forbidden' => 'Samanniminen tiedosto on jo olemassa, eikä sitä voi korvata. Tallenna tiedosto jollakin toisella nimellä. Nykyinen tiedosto: [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'Samanniminen tiedosto on jo olemassa jaetussa mediavarastossa. Tallenna tiedosto jollakin toisella nimellä. [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'Tämä tiedosto on kaksoiskappale {{PLURAL:$1|seuraavasta tiedostosta|seuraavista tiedostoista}}:',
@@ -1970,7 +1970,8 @@ Voit tarvittaessa muokata [$2 tiedoston kuvaussivua] kohteessa.',
 
 # MIME search
 'mimesearch' => 'MIME-haku',
-'mimesearch-summary' => 'Tällä sivulla voit etsiä tiedostoja niiden MIME-tyypin perusteella. Syöte: sisältötyyppi/alatyyppi, esimerkiksi <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Tällä sivulla voit etsiä tiedostoja niiden MIME-tyypin perusteella.
+Syöte: sisältötyyppi/alatyyppi, esimerkiksi <code>image/jpeg</code>.',
 'mimetype' => 'MIME-tyyppi',
 'download' => 'lataa',
 
@@ -2171,7 +2172,7 @@ Katso myös [[Special:WantedCategories|halutut luokat]].',
 'linksearch-ok' => 'Etsi',
 'linksearch-text' => 'Tähteä (*) voi käyttää jokerimerkkinä, esimerkiksi ”*.wikipedia.org”.
 Vähintään ylätason verkkotunnus, esimerkiksi "*.org", tarvitaan.<br />
-Tuetut protokollat: <tt>$1</tt> (älä lisää näitä hakuusi).',
+Tuetut protokollat: <code>$1</code> (älä lisää näitä hakuusi).',
 'linksearch-line' => '$1 on linkitetty sivulta $2',
 'linksearch-error' => 'Jokerimerkkiä voi käyttää ainoastaan osoitteen alussa.',
 
@@ -2355,8 +2356,8 @@ Sivulla $2 on lista viimeaikaisista poistoista.',
 'rollback' => 'palauta aiempaan versioon',
 'rollback_short' => 'Palautus',
 'rollbacklink' => 'palauta',
-'rollbacklinkcount' => 'kumoa {{PLURAL:$1|muokkaus|$1 muokkausta}}',
-'rollbacklinkcount-morethan' => 'kumoa yli $1 {{PLURAL:$1|muutos|muutosta}}',
+'rollbacklinkcount' => 'palauta {{PLURAL:$1|muokkaus|$1 muokkausta}}',
+'rollbacklinkcount-morethan' => 'palauta yli $1 {{PLURAL:$1|muutos|muutosta}}',
 'rollbackfailed' => 'Palautus epäonnistui',
 'cantrollback' => 'Aiempaan versioon ei voi palauttaa, koska viimeisin kirjoittaja on sivun ainoa tekijä.',
 'alreadyrolled' => 'Käyttäjän [[User:$2|$2]] ([[User talk:$2|keskustelu]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) tekemiä muutoksia sivuun [[:$1]] ei voi kumota, koska joku muu on muuttanut sivua.
@@ -3007,15 +3008,10 @@ Tallenna tiedot koneellesi ja tuo ne tällä sivulla.',
 # Info page
 'pageinfo-title' => 'Tietoja sivusta $1',
 'pageinfo-header-edits' => 'Muokkaukset',
-'pageinfo-header-watchlist' => 'Tarkkailulista',
-'pageinfo-header-views' => 'Näyttökerrat',
-'pageinfo-subjectpage' => 'Sivu',
-'pageinfo-talkpage' => 'Keskustelusivu',
+'pageinfo-views' => 'Katselukertojen määrä',
 'pageinfo-watchers' => 'Tarkkailijoiden lukumäärä',
 'pageinfo-edits' => 'Muokkausten lukumäärä',
 'pageinfo-authors' => 'Eri tekijöiden lukumäärä',
-'pageinfo-views' => 'Katselukertojen määrä',
-'pageinfo-viewsperedit' => 'Katseluita per muokkaus',
 
 # Skin names
 'skinname-standard' => 'Perus',
index 56eeebd..fbab491 100644 (file)
@@ -864,6 +864,8 @@ Tann seinasti posturin í loggfíluni er vístur niðanfyri fyri kelduávísing:
 'template-semiprotected' => '(lutvíst vardar)',
 'hiddencategories' => 'Henda síðan er í {{PLURAL:$1|1 fjaldum bólki|$1 fjaldum bólkum}}:',
 'nocreatetitle' => 'Upprættan av síðu er avmarkað',
+'nocreatetext' => '{{SITENAME}} hevur noktað fyri møguleikanum at upprætta nýggjar síður.
+Tú kanst fara aftur og rætta eina síðu sum longu er til, ella [[Special:UserLogin|rita teg inn ella få tær eina konto]].',
 'nocreate-loggedin' => 'Tú hevur ikki loyvi til at upprætta nýggjar síður.',
 'sectioneditnotsupported-title' => 'Tað ber ikki til at rætta brot',
 'sectioneditnotsupported-text' => 'Tað ber ikki til at rætta brot á hesi síðu.',
@@ -877,6 +879,8 @@ Strikingar og flytingar loggurin (søgan) fyri hesa síðuna eru at finna her fy
 'moveddeleted-notice' => 'Henda síðan er blivin strikað.
 Strikingar og flytingar loggurin (søgan) fyri hesa síðuna eru at finna her niðanfyri.',
 'log-fulllog' => 'Vís allan gerðalistan (loggin)',
+'edit-hook-aborted' => 'Rættingin bleiv avbrotin av einum programmfeili. 
+Ongin frágreiðing finst.',
 'edit-gone-missing' => 'Tað var ikki møguligt at dagføra síðuna.
 Tað sær út til at hon er blivin strikað.',
 'edit-conflict' => 'Rættingar trupulleiki (konflikt).',
@@ -1271,6 +1275,7 @@ Tín t-post adressa verður ikki avdúkað, tá aðrir brúkarir seta seg í sam
 'right-browsearchive' => 'Leita í strikaðum síðum',
 'right-undelete' => 'Endurstovnað eina síðu',
 'right-block' => 'Nokta øðrum brúkarum at rætta (blokka)',
+'right-blockemail' => 'Nokta einum brúkara at senda teldupost',
 'right-hideuser' => 'Sperra eitt brúkaranavn og goyma tað burtur fyri almenninginum',
 'right-unblockself' => 'Taka burtur sperring av sær sjálvum',
 'right-protect' => 'Broyt verjustøður og rætta vardar síður',
@@ -1373,6 +1378,16 @@ Síður á [[Special:Watchlist|tínum eftiransingarlista]] eru skrivaðar við '
 'uploadnologin' => 'Ikki ritað inn',
 'uploadnologintext' => 'Tú mást hava [[Special:UserLogin|ritað inn]]
 fyri at leggja fílur upp.',
+'upload-recreate-warning' => "'''Ávaring: Ein fíla við hasum navninum er blivin strikað ella flutt.'''
+
+Strikingar og flytingar loggurin (søgan) fyri ta síðuna verður vístur her niðanfyri fyri at gera tað lættari hjá tær:",
+'uploadtext' => "Brúka formularin her niðanfyri tá tú skalt leggja fílur út.
+Fyri at síggja ella leita eftir fílur sum longu eru lagdar út, kanst tú fara til [[Special:FileList|lista við upploadaðum fílum]], (endur)uploads eru eisini goymd í [[Special:Log/upload|upload logginum]], strikingar í [[Special:Log/delete|strikingarlogginum]].
+
+Fyri at taka eina fílu við á eina síðu, brúka so eina leinkju í ein av hesum formunum:
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' fyri at brúka fulla versjón av fíluni
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' fyri at brúka eina 200 pixel breiða endurgeving í vinstra bredda við 'alt text' sum frágreiðing
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' fyri at leinkja beinleiðis til fíluna uttan at vísa fíluna",
 'upload-permitted' => 'Loyvd fílu sløg: $1.',
 'upload-preferred' => 'Best umtóktu fílu sløg: $1.',
 'upload-prohibited' => 'Ikki loyvd fílu sløg: $1.',
@@ -2072,14 +2087,10 @@ Vinarliga vitja [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] o
 # Info page
 'pageinfo-title' => 'Kunning um "$1"',
 'pageinfo-header-edits' => 'Rættingar',
-'pageinfo-header-watchlist' => 'Eftirlits listi',
-'pageinfo-header-views' => 'Skoðanir',
-'pageinfo-subjectpage' => 'Síða',
-'pageinfo-talkpage' => 'Kjak síða',
+'pageinfo-views' => 'Tal av skoðanum',
 'pageinfo-watchers' => 'Tal av fólkum sum hava eftirlit',
 'pageinfo-edits' => 'Tal av rættingum',
 'pageinfo-authors' => 'Tal av ymiskum høvundum',
-'pageinfo-views' => 'Tal av skoðanum',
 
 # Skin names
 'skinname-standard' => 'Standardur',
index cda6f64..8a07381 100644 (file)
@@ -65,6 +65,7 @@
  * @author Sandji
  * @author Seb35
  * @author Sherbrooke
+ * @author Shirayuki
  * @author Skalman
  * @author The Evil IP address
  * @author Tititou36
@@ -692,9 +693,9 @@ Une liste des pages spéciales valides se trouve sur [[Special:SpecialPages|{{in
 'dberrortext' => 'Une erreur de syntaxe de la requête dans la base de données est survenue.
 Ceci peut indiquer un bogue dans le logiciel.
 La dernière requête traitée par la base de données était :
-<blockquote><tt>$1</tt></blockquote>
-depuis la fonction « <tt>$2</tt> ».
-La base de données a renvoyé l’erreur « <tt>$3 : $4</tt> ».',
+<blockquote><code>$1</code></blockquote>
+depuis la fonction « <code>$2</code> ».
+La base de données a renvoyé l’erreur « <samp>$3 : $4</samp> ».',
 'dberrortextcl' => 'Une requête dans la base de données comporte une erreur de syntaxe.
 La dernière requête émise était :
 « $1 »
@@ -1038,7 +1039,6 @@ La dernière entrée du registre des blocages est indiquée ci-dessous à titre
 * '''Firefox / Safari :''' Maintenez la touche ''Maj'' (''Shift'') en cliquant sur le bouton ''Actualiser'' ou pressez ''Ctrl-F5'' ou ''Ctrl-R'' (''⌘-R'' sur un Mac) ;
 * '''Google Chrome :''' Appuyez sur ''Ctrl-Maj-R'' (''⌘-Shift-R'' sur un Mac) ;
 * '''Internet Explorer :''' Maintenez la touche ''Ctrl'' en cliquant sur le bouton ''Actualiser'' ou pressez ''Ctrl-F5'' ;
-* '''Konqueror :''' Cliquez sur ''Actualiser'' ou pressez ''F5'' ;
 * '''Opera :''' Videz le cache dans ''Outils → Préférences''.",
 'usercssyoucanpreview' => "'''Astuce :''' utilisez le bouton « {{int:showpreview}} » pour tester votre nouvelle feuille CSS avant de l’enregistrer.",
 'userjsyoucanpreview' => "'''Astuce :''' utilisez le bouton « {{int:showpreview}} » pour tester votre nouvelle feuille JavaScript avant de l’enregistrer.",
@@ -1417,7 +1417,7 @@ Essayez en utilisant le préfixe ''all:'' pour rechercher dans tout le contenu (
 
 # Preferences page
 'preferences' => 'Préférences',
-'mypreferences' => 'Mes préférences',
+'mypreferences' => 'Préférences',
 'prefs-edits' => 'Nombre de modifications :',
 'prefsnologin' => 'Non connecté',
 'prefsnologintext' => 'Vous devez être <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} connecté]</span> pour modifier vos préférences d’utilisateur.',
@@ -1498,7 +1498,7 @@ Voici une valeur générée aléatoirement que vous pouvez utiliser : $1',
 'prefs-registration' => 'Date d’inscription :',
 'yourrealname' => 'Nom réel :',
 'yourlanguage' => 'Langue :',
-'yourvariant' => 'Variante de la langue du contenu:',
+'yourvariant' => 'Variante de la langue du contenu :',
 'prefs-help-variant' => 'Votre variante ou orthographe préféré dans lequel afficher les pages de contenu de ce wiki.',
 'yournick' => 'Signature pour les discussions :',
 'prefs-help-signature' => 'Les commentaires sur les pages de discussion doivent être signés avec « <nowiki>~~~~</nowiki> », qui sera converti par votre signature et un horodatage.',
@@ -1798,20 +1798,20 @@ Voyez la [[Special:NewFiles|galerie des nouvelles images]] pour une présentatio
 Ceci peut être dû à une erreur dans le nom du fichier.
 Veuillez vérifier que vous désirez vraiment importer ce fichier.',
 'windows-nonascii-filename' => 'Ce wiki ne supporte pas les noms de fichiers avec des caractères spéciaux.',
-'fileexists' => "Un fichier existe déjà sous ce nom.
-Merci de vérifier '''<tt>[[:$1]]</tt>''' si vous n’êtes pas certain{{GENDER:||e|}} de vouloir le modifier.
-[[$1|thumb]]",
-'filepageexists' => "La page de description pour ce fichier a déjà été créée ici '''<tt>[[:$1]]</tt>''', mais aucun fichier n’existe actuellement sous ce nom.
+'fileexists' => 'Un fichier existe déjà sous ce nom.
+Merci de vérifier <strong>[[:$1]]</strong> si vous n’êtes pas certain{{GENDER:||e|}} de vouloir le modifier.
+[[$1|thumb]]',
+'filepageexists' => 'La page de description pour ce fichier a déjà été créée ici <strong>[[:$1]]</strong>, mais aucun fichier n’existe actuellement sous ce nom.
 Le résumé que vous allez spécifier n’apparaîtra pas sur la page de description.
-Pour que ce soit le cas, vous devrez modifier manuellement la page. [[$1|thumb]]",
-'fileexists-extension' => "Un fichier existe avec un nom proche : [[$2|thumb]]
-* Nom du fichier à importer : '''<tt>[[:$1]]</tt>'''
-* Nom du fichier existant : '''<tt>[[:$2]]</tt>'''
-Veuillez choisir un autre nom.",
+Pour que ce soit le cas, vous devrez modifier manuellement la page. [[$1|thumb]]',
+'fileexists-extension' => 'Un fichier existe avec un nom proche : [[$2|thumb]]
+* Nom du fichier à importer : <strong>[[:$1]]</strong>
+* Nom du fichier existant : <strong>[[:$2]]</strong>
+Veuillez choisir un autre nom.',
 'fileexists-thumbnail-yes' => "Le fichier semble être une image en taille réduite ''(vignette)''. [[$1|thumb]]
-Veuillez vérifier le fichier '''<tt>[[:$1]]</tt>'''.
+Veuillez vérifier le fichier <strong>[[:$1]]</strong>.
 Si le fichier vérifié est la même image avec la taille initiale, il n’y a pas besoin d’importer une version réduite.",
-'file-thumbnail-no' => "Le nom du fichier commence par '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Le nom du fichier commence par <strong>$1</strong>.
 Il est possible qu’il s’agisse d’une version réduite ''(vignette)''.
 Si vous disposez du fichier en haute résolution, importez-le, sinon veuillez modifier son nom.",
 'fileexists-forbidden' => 'Un fichier avec ce nom existe déjà et ne peut pas être écrasé.
@@ -1925,12 +1925,12 @@ Si le problème persiste, contactez un [[Special:ListUsers/sysop|administrateur]
 'lockmanager-fail-svr-release' => 'Impossible de relâcher les verrous sur le serveur $1.',
 
 # ZipDirectoryReader
-'zip-file-open-error' => "Une erreur s'est produite lors de l'ouverture du fichier ZIP pour contrôle.",
-'zip-wrong-format' => "Le fichier spécifié n'est pas un fichier ZIP.",
-'zip-bad' => 'Le fichier est un fichier ZIP corrompu ou illisible.
+'zip-file-open-error' => 'Une erreur s’est produite lors de l’ouverture du fichier ZIP pour contrôle.',
+'zip-wrong-format' => 'Le fichier spécifié n’est pas une archive ZIP.',
+'zip-bad' => 'Le fichier est une archive ZIP corrompue ou illisible.
 Il ne peut pas être correctement vérifié pour la sécurité.',
-'zip-unsupported' => 'Le fichier est un fichier ZIP qui utilise ZIP non supportées par MediaWiki. 
-Il ne peut pas être correctement vérifé pour la sécurité.',
+'zip-unsupported' => 'Le fichier est une archive ZIP qui utilise des caractéristiques non supportées par MediaWiki. 
+Sa sécurité ne peut pas être correctement vérifiée.',
 
 # Special:UploadStash
 'uploadstash' => "Cache d'import",
@@ -2040,6 +2040,7 @@ Vous voulez peut-être modifier la description sur sa [$2 page de description].'
 'shared-repo' => 'un dépôt partagé',
 'shared-repo-name-wikimediacommons' => 'Wikimédia Commons',
 'filepage.css' => '/* Les styles CSS placés ici sont inclus dans la page de description du fichier, également incluse sur les clients wikis étrangers */',
+'upload-disallowed-here' => 'Malheureusement, vous ne peut pas remplacer cette image.',
 
 # File reversion
 'filerevert' => 'Rétablir $1',
@@ -2074,7 +2075,7 @@ Vous voulez peut-être modifier la description sur sa [$2 page de description].'
 # MIME search
 'mimesearch' => 'Recherche par type de contenu MIME',
 'mimesearch-summary' => "Cette page vous permet de lister les fichiers accessibles par ce wiki en fonction de leur type de contenu MIME.
-Entrée : ''typedecontenu''/''sous-type'', par exemple <tt>image/jpeg</tt>.",
+Entrée : ''typedecontenu''/''sous-type'', par exemple <code>image/jpeg</code>.",
 'mimetype' => 'Type MIME :',
 'download' => 'télécharger',
 
@@ -2148,6 +2149,7 @@ Les entrées <del>barrées</del> ont été résolues.',
 # Miscellaneous special pages
 'nbytes' => '$1 octet{{PLURAL:$1||s}}',
 'ncategories' => '$1 catégorie{{PLURAL:$1||s}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwikis}}',
 'nlinks' => '$1 {{PLURAL:$1|page liée|pages liées}}',
 'nmembers' => '$1 membre{{PLURAL:$1||s}}',
 'nrevisions' => '$1 version{{PLURAL:$1||s}}',
@@ -2176,6 +2178,7 @@ Les entrées <del>barrées</del> ont été résolues.',
 'mostlinkedtemplates' => 'Modèles les plus utilisés',
 'mostcategories' => 'Pages utilisant le plus de catégories',
 'mostimages' => 'Fichiers les plus utilisés',
+'mostinterwikis' => "Pages avec le plus d'interwikis",
 'mostrevisions' => 'Pages les plus modifiées',
 'prefixindex' => 'Toutes les pages commençant par…',
 'prefixindex-namespace' => 'Toutes les pages avec préfixe (espace de noms $1)',
@@ -2276,7 +2279,7 @@ Voyez aussi [[Special:WantedCategories|les catégories demandées]].',
 'linksearch-ok' => 'Rechercher',
 'linksearch-text' => 'Des caractères jokers comme « *.wikipedia.org » peuvent être utilisés.
 Ils nécessitent au moins un domaine de niveau supérieur, par exemple « *.org ».<br />
-Protocoles reconnus : <tt>$1</tt> (n’ajoutez aucun de ceux-ci dans votre recherche).',
+Protocoles reconnus : <code>$1</code> (n’ajoutez aucun de ceux-ci dans votre recherche).',
 'linksearch-line' => '$1 est lié depuis $2',
 'linksearch-error' => 'Les caractères jokers ne peuvent être utilisés qu’au début du nom de domaine de l’hôte.',
 
@@ -2322,6 +2325,8 @@ Des [[{{MediaWiki:Listgrouprights-helppage}}|informations additionnelles]] peuve
 'mailnologin' => 'Pas d’adresse d’expéditeur',
 'mailnologintext' => 'Vous devez être [[Special:UserLogin|identifié]] et avoir indiqué une adresse électronique valide dans vos [[Special:Preferences|préférences]] pour pouvoir envoyer des courriels à d’autres utilisateurs.',
 'emailuser' => 'Lui envoyer un courriel',
+'emailuser-title-target' => 'Envoyer un courriel à {{GENDER:$1|cet utilisateur|cette utilisatrice}}',
+'emailuser-title-notarget' => 'Envoyer un courriel à l’utilisateur',
 'emailpage' => 'Envoyer un courriel à l’utilisateur',
 'emailpagetext' => 'Vous pouvez utiliser le formulaire ci-dessous pour envoyer un courriel à cet utilisateur.
 L’adresse électronique que vous avez indiquée dans [[Special:Preferences|vos préférences]] apparaîtra dans le champ « Expéditeur » de votre message ; ainsi, le destinataire pourra vous répondre directement.',
@@ -2678,7 +2683,7 @@ Donnez ci-dessous un motif précis (par exemple en citant les pages qui ont ét
 'ipbreason-dropdown' => '* Motifs de blocage les plus fréquents
 ** Insertion de fausses informations
 ** Suppression injustifiée de contenu des pages
-** Insertion répétée de liens externes publicitaires (spam)
+** Insertion répétée de liens externes publicitaires (pollupostage)
 ** Insertion de contenu sans aucun sens et de déchets dans les pages
 ** Tentative d’intimidation ou harcèlement
 ** Abus d’utilisation de comptes multiples
@@ -2960,6 +2965,7 @@ Toutes les actions d’importation inter-wiki sont consignées dans l’[[Specia
 'import-interwiki-templates' => 'Inclure tous les modèles',
 'import-interwiki-submit' => 'Importer',
 'import-interwiki-namespace' => 'Espace de noms de destination :',
+'import-interwiki-rootpage' => 'Page racine de destination (optionnelle):',
 'import-upload-filename' => 'Nom du fichier :',
 'import-comment' => 'Commentaire :',
 'importtext' => 'Veuillez exporter le fichier depuis le wiki d’origine en utilisant son [[Special:Export|outil d’exportation]].
@@ -2995,6 +3001,9 @@ Un dossier temporaire est manquant.",
 'import-error-interwiki' => "La page « $1 » n'est pas importée parce que son nom est réservé pour un lien externe (interwiki).",
 'import-error-special' => 'La page " $1 " n\'est pas importée parce qu\'elle appartient à un espace de noms special qui n’en autorise aucune.',
 'import-error-invalid' => 'Page « $1 » n’est pas importée parce que son nom n’est pas valide.',
+'import-options-wrong' => '{{PLURAL:$2|Mauvaise option|Mauvaises options}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'La page racine fournie est un titre non valide.',
+'import-rootpage-nosubpage' => 'L\'espace de noms "$1" de la page racine n\'autorise pas les sous-pages.',
 
 # Import log
 'importlogpage' => 'Journal des importations',
@@ -3148,16 +3157,34 @@ Permet de rétablir la version précédente et d’ajouter un motif dans la boî
 
 # Info page
 'pageinfo-title' => 'Informations pour « $1 »',
-'pageinfo-header-edits' => 'Modifications',
-'pageinfo-header-watchlist' => 'Liste de suivi',
-'pageinfo-header-views' => 'Vues',
-'pageinfo-subjectpage' => 'Page',
-'pageinfo-talkpage' => 'Page de discussion',
-'pageinfo-watchers' => 'Nombre de contributeurs ayant la page dans leur liste de suivi',
-'pageinfo-edits' => 'Nombre de modifications',
-'pageinfo-authors' => "Nombre d'auteurs distincts",
+'pageinfo-header-basic' => 'Informations de base',
+'pageinfo-header-edits' => 'Historique des modifications',
+'pageinfo-header-restrictions' => 'Protection de la page',
+'pageinfo-header-properties' => 'Propriétés de la page',
+'pageinfo-display-title' => 'Titre affiché',
+'pageinfo-default-sort' => 'Clé de tri par défaut',
+'pageinfo-length' => 'Taille de la page (en octets)',
+'pageinfo-article-id' => 'Numéro de la page',
+'pageinfo-robot-policy' => 'Statut de moteur de recherche',
+'pageinfo-robot-index' => 'Indexable',
+'pageinfo-robot-noindex' => 'Non indexable',
 'pageinfo-views' => 'Nombre de vues',
-'pageinfo-viewsperedit' => 'Visites par modification',
+'pageinfo-watchers' => 'Nombre de contributeurs ayant la page dans leur liste de suivi',
+'pageinfo-redirects-name' => 'Redirections vers cette page',
+'pageinfo-subpages-name' => 'Sous-pages de cette page',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|redirection|redirections}}; $3 {{PLURAL:$3|non-redirection|non-redirections}})',
+'pageinfo-firstuser' => 'Créateur de la page',
+'pageinfo-firsttime' => 'Date de création de la page',
+'pageinfo-lastuser' => 'Dernier contributeur',
+'pageinfo-lasttime' => 'Date de la dernière modification',
+'pageinfo-edits' => 'Nombre total de modifications',
+'pageinfo-authors' => "Nombre total d'auteurs distincts",
+'pageinfo-recent-edits' => 'Nombre de modifications récentes (dans les derniers $1)',
+'pageinfo-recent-authors' => "Nombre d'auteurs distincts récents",
+'pageinfo-restriction' => 'Protection de la page (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Mot magique|Mots magiques}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Catégorie cachée|Catégories cachées}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Modèle inclu|Modèles inclus}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Standard',
@@ -3212,6 +3239,7 @@ Si vous l’exécutez, votre système peut être compromis.",
 'file-info-size-pages' => '$1 × $2 pixels, taille de fichier: $3, type MIME: $4, $5 {{PLURAL:$5|page|pages}}',
 'file-nohires' => 'Pas de plus haute résolution disponible.',
 'svg-long-desc' => 'Fichier SVG, résolution de $1 × $2 pixels, taille : $3',
+'svg-long-desc-animated' => 'Fichier SVG animé, taille $1 x $2 pixels, taille du fichier: $3',
 'show-big-image' => 'Image en plus haute résolution',
 'show-big-image-preview' => 'Taille de cet aperçu : $1.',
 'show-big-image-other' => '{{PLURAL:$2|Autre résolution|Autres résolutions}} : $1.',
@@ -3221,6 +3249,8 @@ Si vous l’exécutez, votre système peut être compromis.",
 'file-info-png-looped' => 'en boucle',
 'file-info-png-repeat' => 'joué $1 {{PLURAL:$1|fois|fois}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|image|images}}',
+'file-no-thumb-animation' => "'''Remarque: En raison de limitations techniques, les vignettes de ce fichier ne seront pas animées.'''",
+'file-no-thumb-animation-gif' => "'''Remarque: En raison de limitations techniques, les vignettes d'images GIF en haute résolution telles que celle-ci ne seront pas animées.'''",
 
 # Special:NewFiles
 'newimages' => 'Galerie des nouveaux fichiers',
@@ -3838,11 +3868,59 @@ Vous pouvez aussi [[Special:EditWatchlist|utiliser l’éditeur normal]].',
 'watchlisttools-edit' => 'Voir et modifier la liste de suivi',
 'watchlisttools-raw' => 'Modifier la liste de suivi en mode brut',
 
+# Iranian month names
+'iranian-calendar-m1' => 'Farvardin',
+'iranian-calendar-m2' => 'Ordibehesht',
+'iranian-calendar-m3' => 'Khordâd',
+'iranian-calendar-m4' => 'Tir',
+'iranian-calendar-m5' => 'Mordâd',
+'iranian-calendar-m6' => 'Shahrivar',
+'iranian-calendar-m7' => 'Mehr',
+'iranian-calendar-m8' => 'Âbân',
+'iranian-calendar-m9' => 'Âzar',
+'iranian-calendar-m10' => 'Dey',
+'iranian-calendar-m11' => 'Bahman',
+'iranian-calendar-m12' => 'Esfand',
+
 # Hijri month names
-'hijri-calendar-m3' => 'Rabi’ al-awwal',
-'hijri-calendar-m4' => 'Rabi’ al-thani',
-'hijri-calendar-m8' => 'Sha’aban',
-'hijri-calendar-m11' => 'Dhu al-Qi’dah',
+'hijri-calendar-m1' => 'Mouharram',
+'hijri-calendar-m2' => 'Safar',
+'hijri-calendar-m3' => 'Rabia al awal',
+'hijri-calendar-m4' => 'Rabia ath-thani',
+'hijri-calendar-m5' => 'Joumada al oula',
+'hijri-calendar-m6' => 'Joumada ath-thania',
+'hijri-calendar-m7' => 'Rajab',
+'hijri-calendar-m8' => 'Chaabane',
+'hijri-calendar-m9' => 'Ramadan',
+'hijri-calendar-m10' => 'Chawwal',
+'hijri-calendar-m11' => 'Dhou al qi’da',
+'hijri-calendar-m12' => 'Dhou al-hijja',
+
+# Hebrew month names
+'hebrew-calendar-m1' => 'Tichri',
+'hebrew-calendar-m2' => 'Hèchvane',
+'hebrew-calendar-m3' => 'Kislev',
+'hebrew-calendar-m4' => 'Téveth',
+'hebrew-calendar-m5' => 'Schébat',
+'hebrew-calendar-m6' => 'Adar',
+'hebrew-calendar-m7' => 'Nissane',
+'hebrew-calendar-m8' => 'Iyar',
+'hebrew-calendar-m9' => 'Sivane',
+'hebrew-calendar-m10' => 'Tamouz',
+'hebrew-calendar-m11' => 'Av',
+'hebrew-calendar-m12' => 'Éloul',
+'hebrew-calendar-m1-gen' => 'Tichri',
+'hebrew-calendar-m2-gen' => 'Hèchvane',
+'hebrew-calendar-m3-gen' => 'Kislev',
+'hebrew-calendar-m4-gen' => 'Téveth',
+'hebrew-calendar-m5-gen' => 'Schébat',
+'hebrew-calendar-m6-gen' => 'Adar',
+'hebrew-calendar-m7-gen' => 'Nissane',
+'hebrew-calendar-m8-gen' => 'Iyar',
+'hebrew-calendar-m9-gen' => 'Sivane',
+'hebrew-calendar-m10-gen' => 'Tamouz',
+'hebrew-calendar-m11-gen' => 'Av',
+'hebrew-calendar-m12-gen' => 'Éloul',
 
 # Signatures
 'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discussion]])',
index 9a35ce9..7e02042 100644 (file)
@@ -314,7 +314,7 @@ $messages = array(
 'tog-justify' => 'Justifiar los paragrafos',
 'tog-hideminor' => 'Cachiér los petiôts changements dedens los dèrriérs changements',
 'tog-hidepatrolled' => 'Cachiér los changements survelyês dedens los dèrriérs changements',
-'tog-newpageshidepatrolled' => 'Cachiér les pâges survelyêyes entre-mié les pâges novèles',
+'tog-newpageshidepatrolled' => 'Cachiér les pâges survelyêyes entre-mié la lista de les pâges novèles',
 'tog-extendwatchlist' => 'Ètendre la lista de survelyence por fâre vêre tôs los changements et pas solament los ples novéls',
 'tog-usenewrc' => 'Rassemblar los changements per pâge dedens los dèrriérs changements et la lista de survelyence (at fôta de JavaScript)',
 'tog-numberheadings' => 'Numerotar ôtomaticament los titros de sèccion',
@@ -323,7 +323,7 @@ $messages = array(
 'tog-editsection' => 'Activar lo changement de sèccions avouéc los lims « [changiér] »',
 'tog-editsectiononrightclick' => 'Activar lo changement de sèccions per clic drêt sur lors titros (at fôta de JavaScript)',
 'tog-showtoc' => 'Fâre vêre la trâbla de les matiéres (por les pâges qu’ont més de 3 sèccions)',
-'tog-rememberpassword' => 'Sè rapelar de mon contresegno sur cél navigator (por lo més $1 jorn{{PLURAL:$1||s}})',
+'tog-rememberpassword' => 'Sè rapelar de mon contresegno sur ceti navigator (por lo més $1 jorn{{PLURAL:$1||s}})',
 'tog-watchcreations' => 'Apondre les pâges que fé et pués los fichiérs que tèlècharjo a ma lista de survelyence',
 'tog-watchdefault' => 'Apondre les pâges et los fichiérs que chanjo a ma lista de survelyence',
 'tog-watchmoves' => 'Apondre les pâges et los fichiérs que renomo a ma lista de survelyence',
@@ -427,11 +427,11 @@ $messages = array(
 'category-empty' => "''Ora cela catègorie contint gins de pâge ou de fichiér mèdia.''",
 'hidden-categories' => '{{PLURAL:$1|Catègorie cachiêye|Catègories cachiêyes}}',
 'hidden-category-category' => 'Catègories cachiêyes',
-'category-subcat-count' => 'Cela catègorie-que at {{PLURAL:$2|ren que ceta sot-catègorie.|{{PLURAL:$1|ceta sot-catègorie|cetes $1 sot-catègories}}, sur na soma de $2.}}',
+'category-subcat-count' => 'Cela catègorie-que at {{PLURAL:$2|solament ceta sot-catègorie.|{{PLURAL:$1|ceta sot-catègorie|cetes $1 sot-catègories}}, sur na soma de $2.}}',
 'category-subcat-count-limited' => 'Cela catègorie-que at {{PLURAL:$1|ceta sot-catègorie|cetes $1 sot-catègories}}.',
-'category-article-count' => '{{PLURAL:$2|Cela catègorie-que contint ren que ceta pâge.|{{PLURAL:$1|Ceta pâge figure|Cetes $1 pâges figuront}} dedens cela catègorie-que, sur na soma de $2.}}',
+'category-article-count' => '{{PLURAL:$2|Cela catègorie-que contint solament ceta pâge.|{{PLURAL:$1|Ceta pâge figure|Cetes $1 pâges figuront}} dedens cela catègorie-que, sur na soma de $2.}}',
 'category-article-count-limited' => '{{PLURAL:$1|Ceta pâge figure|Cetes $1 pâges figuront}} dedens la presenta catègorie.',
-'category-file-count' => '{{PLURAL:$2|Cela catègorie-que contint ren que ceti fichiér.|{{PLURAL:$1|Ceti fichiér figure|Cetos $1 fichiérs figuront}} dedens cela catègorie-que, sur na soma de $2.}}',
+'category-file-count' => '{{PLURAL:$2|Cela catègorie-que contint solament ceti fichiér.|{{PLURAL:$1|Ceti fichiér figure|Cetos $1 fichiérs figuront}} dedens cela catègorie-que, sur na soma de $2.}}',
 'category-file-count-limited' => '{{PLURAL:$1|Ceti fichiér figure|Cetos $1 fichiérs figuront}} dedens la presenta catègorie.',
 'listingcontinuesabbrev' => '(suita)',
 'index-category' => 'Pâges endèxâyes',
@@ -450,7 +450,7 @@ $messages = array(
 'and' => '&#32;et',
 
 # Cologne Blue skin
-'qbfind' => 'Rechèrchiér',
+'qbfind' => 'Trovar',
 'qbbrowse' => 'Fâre dèfelar',
 'qbedit' => 'Changiér',
 'qbpageoptions' => 'Ceta pâge',
@@ -487,7 +487,7 @@ $messages = array(
 'searcharticle' => 'Liére',
 'history' => 'Historico de la pâge',
 'history_short' => 'Historico',
-'updatedmarker' => 'betâye a jorn dês ma dèrriére visita',
+'updatedmarker' => 'betâye a jorn dês la mina dèrriére visita',
 'printableversion' => 'Vèrsion emprimâbla',
 'permalink' => 'Lim fixo',
 'print' => 'Emprimar',
@@ -524,7 +524,7 @@ $messages = array(
 'categorypage' => 'Vêde la pâge de catègorie',
 'viewtalkpage' => 'Vêde la pâge de discussion',
 'otherlanguages' => 'Ôtres lengoues',
-'redirectedfrom' => '(Redirigiê dês $1)',
+'redirectedfrom' => '(Redirigiêye dês $1)',
 'redirectpagesub' => 'Pâge de redirèccion',
 'lastmodifiedat' => 'Dèrriér changement de ceta pâge lo $1 a $2.',
 'viewcount' => 'Ceta pâge est étâye vua {{PLURAL:$1|yon côp|$1 côps}}.',
@@ -581,9 +581,9 @@ Vêde la [[Special:Version|pâge de les vèrsions]].',
 'youhavenewmessagesmulti' => 'Vos avéd de mèssâjos novéls sur $1',
 'editsection' => 'changiér',
 'editold' => 'changiér',
-'viewsourceold' => 'vêre lo tèxto sôrsa',
+'viewsourceold' => 'fâre vêre lo tèxto sôrsa',
 'editlink' => 'changiér',
-'viewsourcelink' => 'vêre lo tèxto sôrsa',
+'viewsourcelink' => 'fâre vêre lo tèxto sôrsa',
 'editsectionhint' => 'Changiér la sèccion : $1',
 'toc' => 'Somèro',
 'showtoc' => 'fâre vêre',
@@ -594,7 +594,7 @@ Vêde la [[Special:Version|pâge de les vèrsions]].',
 'viewdeleted' => 'Fâre vêre $1 ?',
 'restorelink' => '{{PLURAL:$1|yon changement suprimâ|$1 changements suprimâs}}',
 'feedlinks' => 'Flux :',
-'feed-invalid' => 'Tipo de flux envalido.',
+'feed-invalid' => 'Tipo d’abonement du flux envalido.',
 'feed-unavailable' => 'Los flux de sindicacion sont pas disponiblos',
 'site-rss-feed' => 'Flux RSS de $1',
 'site-atom-feed' => 'Flux Atom de $1',
@@ -609,7 +609,7 @@ Vêde la [[Special:Version|pâge de les vèrsions]].',
 'nstab-user' => 'Pâge utilisator',
 'nstab-media' => 'Fichiér mèdia',
 'nstab-special' => 'Pâge spèciâla',
-'nstab-project' => 'Pâge du projèt',
+'nstab-project' => 'Pâge projèt',
 'nstab-image' => 'Fichiér',
 'nstab-mediawiki' => 'Mèssâjo',
 'nstab-template' => 'Modèlo',
@@ -619,7 +619,7 @@ Vêde la [[Special:Version|pâge de les vèrsions]].',
 # Main script and global functions
 'nosuchaction' => 'Accion encognua',
 'nosuchactiontext' => 'L’accion spècifiâye dens l’URL est envalida.
-Vos éd pôt-étre mâl-buchiê l’URL ou ben siuvu un lim fôx.
+Pôt-étre vos éd mâl-buchiê l’URL ou ben siuvu un lim fôx.
 Pôt asse-ben étre quèstion d’una cofierie dedens la programeria empleyêye per {{SITENAME}}.',
 'nosuchspecialpage' => 'Pâge spèciâla pas ègzistenta',
 'nospecialpagetext' => '<strong>Vos éd demandâ na pâge spèciâla qu’ègziste pas.</strong>
@@ -629,14 +629,14 @@ Na lista de les pâges spèciâles valides sè trove dessus [[Special:SpecialPag
 # General errors
 'error' => 'Fôta',
 'databaseerror' => 'Fôta de la bâsa de donâs',
-'dberrortext' => 'Na fôta de sintaxa de la requéta dens la bâsa de donâs est arrevâye.
+'dberrortext' => 'Na fôta de sintaxa de la demanda dens la bâsa de donâs est arrevâye.
 Cen pôt endicar na cofierie dedens la programeria.
-La dèrriére requéta trètâye per la bâsa de donâs ére :
-<blockquote><tt>$1</tt></blockquote>
-dês la fonccion « <tt>$2</tt> ».
-La bâsa de donâs at retornâ la fôta « <tt>$3 : $4</tt> ».',
-'dberrortextcl' => 'Na fôta de sintaxa de la requéta dens la bâsa de donâs est arrevâye.
-La dèrriére requéta trètâye per la bâsa de donâs ére :
+La dèrriére demanda trètâye per la bâsa de donâs ére :
+<blockquote><code>$1</code></blockquote>
+dês la fonccion « <code>$2</code> ».
+La bâsa de donâs at retornâ la fôta « <samp>$3 : $4</samp> ».',
+'dberrortextcl' => 'Na fôta de sintaxa de la demanda dens la bâsa de donâs est arrevâye.
+La dèrriére demanda trètâye per la bâsa de donâs ére :
 « $1 »
 dês la fonccion « $2 ».
 La bâsa de donâs at retornâ la fôta « $3 : $4 ».',
@@ -648,7 +648,7 @@ La bâsa de donâs at retornâ la fôta « $3 : $4 ».',
 L’administrator que l’at vèrrolyê at balyê cet’èxplicacion : $1',
 'missing-article' => 'La bâsa de donâs at pas trovâ lo tèxto d’una pâge qu’el arêt diu trovar, avouéc lo titro « $1 » $2.
 
-En g·ènèral, cen arreve en siuvent un lim de vers un dif dèpassâ ou ben de vers l’historico d’una pâge suprimâye.
+En g·ènèral cen arreve en siuvent un lim de vers un dif dèpassâ ou ben de vers l’historico d’una pâge suprimâye.
 
 S’o est pas lo câs, pôt étre quèstion d’una cofierie dedens la programeria.
 La volyéd signalar a un [[Special:ListUsers/sysop|administrator]] sen oubliar de lui endicar l’URL du lim.',
@@ -680,8 +680,8 @@ Contint sûrament yon ou ben un mouél de caractèros que pôvont pas étre empl
 Les donâs ce-desot sont pas betâyes a jorn.',
 'wrong_wfQuery_params' => 'Paramètros fôx dessus wfQuery()<br />
 Fonccion : $1<br />
-Requéta : $2',
-'viewsource' => 'Vêre lo tèxto sôrsa',
+Demanda : $2',
+'viewsource' => 'Fâre vêre lo tèxto sôrsa',
 'viewsource-title' => 'Vêre lo tèxto sôrsa de $1',
 'actionthrottled' => 'Accion limitâye',
 'actionthrottledtext' => 'Por combatre lo spame, l’usâjo de cel’accion est limitâ a doux-três côps dens un moment prod côrt. S’acomplét que vos éd dèpassâ ceta limita.
@@ -693,7 +693,7 @@ Volyéd tornar èprovar dens un tôrn.',
 'editinginterface' => "'''Atencion :''' vos éte aprés changiér na pâge empleyêye por fâre lo tèxto d’entèrface de la programeria.
 Los changements sè cognetront sur totes ou ben doux-três pâges visibles per los ôtros utilisators.
 Por les traduccions, nos vos envitens a empleyér [//translatewiki.net/wiki/Main_Page?setlang=frp translatewiki.net], lo projèt de localisacion de MediaWiki.",
-'sqlhidden' => '(Requéta SQL cachiêye)',
+'sqlhidden' => '(Demanda SQL cachiêye)',
 'cascadeprotected' => 'Cela pâge-que est protègiêye perce qu’el est encllua dedens {{PLURAL:$1|ceta pâge, qu’est étâye protègiêye|cetes pâges, que sont étâyes protègiêyes}} avouéc lo chouèx « protèccion en cascâda » activâ :
 $2',
 'namespaceprotected' => "Vos avéd pas la pèrmission de changiér les pâges de l’èspâço de noms « '''$1''' ».",
@@ -715,12 +715,12 @@ La rêson balyêye est « ''$2'' ».",
 Vos pouede continuar a empleyér {{SITENAME}} de façon anonima ou ben [[Special:UserLogin|vos tornar branchiér]] desot lo mémo nom ou un ôtro.
 Notâd qu’y at des pâges que pôvont étre oncor fêtes vêre coment se vos érâd adés branchiê{{GENDER:||ye|(ye)}}, tant que vos èfaciéd lo cacho de voutron navigator.",
 'welcomecreation' => '== Benvegnua, $1 ! ==
-Voutron compto utilisator est étâ fêt.
+Voutron compto est étâ fêt.
 Oubliâd pas de pèrsonalisar voutres [[Special:Preferences|prèferences dessus {{SITENAME}}]].',
 'yourname' => 'Nom d’utilisator :',
 'yourpassword' => 'Contresegno :',
 'yourpasswordagain' => 'Confirmâd lo contresegno :',
-'remembermypassword' => 'Sè rapelar de mon contresegno sur cél navigator (por lo més $1 jorn{{PLURAL:$1||s}})',
+'remembermypassword' => 'Sè rapelar de mon contresegno sur ceti navigator (por lo més $1 jorn{{PLURAL:$1||s}})',
 'securelogin-stick-https' => 'Réstar branchiê en HTTPS aprés lo branchement',
 'yourdomainname' => 'Voutron domêno :',
 'password-change-forbidden' => 'Vos pouede pas changiér los contresegnos sur ceti vouiqui.',
@@ -733,10 +733,10 @@ Oubliâd pas de pèrsonalisar voutres [[Special:Preferences|prèferences dessus
 'logout' => 'Sè dèbranchiér',
 'userlogout' => 'Dèbranchement',
 'notloggedin' => 'Pas branchiê',
-'nologin' => "Vos avéd p’oncor un compto utilisator ? '''$1.'''",
+'nologin' => "Vos avéd p’oncor un compto ? '''$1.'''",
 'nologinlink' => 'Féte un compto',
 'createaccount' => 'Fâre un compto',
-'gotaccount' => "Vos avéd ja un compto utilisator ? '''$1.'''",
+'gotaccount' => "Vos avéd ja un compto ? '''$1.'''",
 'gotaccountlink' => 'Branchiéd-vos',
 'userlogin-resetlink' => 'Vos éd oubliâ voutros dètalys de branchement ?',
 'createaccountmail' => 'per mèssageria èlèctronica',
@@ -745,7 +745,7 @@ Oubliâd pas de pèrsonalisar voutres [[Special:Preferences|prèferences dessus
 'userexists' => 'Lo nom d’utilisator buchiê est ja empleyê.
 Nen volyéd chouèsir un ôtro.',
 'loginerror' => 'Fôta de branchement',
-'createaccounterror' => 'Empossiblo de fâre lo compto utilisator : $1',
+'createaccounterror' => 'Empossiblo de fâre lo compto : $1',
 'nocookiesnew' => "Lo compto utilisator est étâ fêt, mas vos éte pas branchiê{{GENDER:||ye|(ye)}}.
 {{SITENAME}} empleye des tèmouens (''cookies'') por lo branchement mas vos los éd dèsactivâs.
 Los volyéd activar et pués vos tornar branchiér avouéc lo mémo nom et lo mémo contresegno.",
@@ -781,7 +781,7 @@ Voutron contresegno temporèro èxpirerat dens $5 jorn{{PLURAL:$5||s}}.
 Se cela demanda vint pas de vos ou ben se vos vos rapelâd ora
 de voutron contresegno et que vos souhètâd pas més nen changiér, vos
 pouede ignorar ceti mèssâjo et continuar a empleyér voutron viely contresegno.',
-'noemail' => 'Niona adrèce èlèctronica est étâye enregistrâye por l’utilisator « $1 ».',
+'noemail' => 'Niona adrèce èlèctronica est étâye encartâye por l’utilisator « $1 ».',
 'noemailcreate' => 'Vos dête balyér n’adrèce èlèctronica valida',
 'passwordsent' => 'Un contresegno novél est étâ mandâ a l’adrèce èlèctronica de l’utilisator « $1 ».
 Vos volyéd tornar branchiér aprés l’avêr reçu.',
@@ -792,11 +792,11 @@ Devant qu’un ôtro mèssâjo seye mandâ a ceti compto, vos devréd siuvre les
 Por èvitar los abus, solament yon mèssâjo de rapèl serat mandâ per {{PLURAL:$1|hora|entèrvalo de $1 hores}}.',
 'mailerror' => 'Fôta pendent l’èxpèdicion du mèssâjo : $1',
 'acct_creation_throttle_hit' => 'Quârqu’un qu’empleye voutron adrèce IP at fêt {{PLURAL:$1|yon compto|$1 comptos}} pendent les 24 hores passâyes, cen qu’est la limita ôtorisâye dens ceti temps.
-Du côp, la crèacion de compto est étâye dèsactivâye temporèrament por cel’adrèce IP.',
+Du côp la crèacion de compto est étâye dèsactivâye temporèrament por cel’adrèce IP.',
 'emailauthenticated' => 'Voutron adrèce èlèctronica est étâye ôtentifiâye lo $2 a $3.',
 'emailnotauthenticated' => 'Voutron adrèce èlèctronica est p’oncor ôtentifiâye.
 Nion mèssâjo serat mandâ por châcuna de cetes fonccions.',
-'noemailprefs' => 'Endicâd n’adrèce èlèctronica dens voutres prèferences por empleyér cetes fonccions.',
+'noemailprefs' => 'Spècifiâd n’adrèce èlèctronica dens voutres prèferences por empleyér cetes fonccions.',
 'emailconfirmlink' => 'Confirmâd voutron adrèce èlèctronica',
 'invalidemailaddress' => 'Cet’adrèce èlèctronica pôt pas étre accèptâye perce que semble avêr un format fôx.
 Volyéd buchiér n’adrèce bien formatâye ou ben lèssiér cél champ vouedo.',
@@ -805,20 +805,20 @@ Volyéd buchiér n’adrèce bien formatâye ou ben lèssiér cél champ vouedo.
 'accountcreated' => 'Compto fêt',
 'accountcreatedtext' => 'Lo compto utilisator por $1 est étâ fêt.',
 'createaccount-title' => 'Crèacion d’un compto por {{SITENAME}}',
-'createaccount-text' => 'Quârqu’un at fêt un compto utilisator por voutron adrèce èlèctronica dessus {{SITENAME}} ($4) avouéc lo titro « $2 » et lo contresegno « $3 ».
+'createaccount-text' => 'Quârqu’un at fêt un compto por voutron adrèce èlèctronica dessus {{SITENAME}} ($4) avouéc lo titro « $2 » et lo contresegno « $3 ».
 Vos vos devriâd branchiér et pués changiér dês ora voutron contresegno.
 
-Ignorâd ceti mèssâjo se cél compto utilisator est étâ fêt per fôta.',
-'usernamehasherror' => 'Lo nom d’usanciér pôt pas contegnir des caractèros de chaplâjo',
+Ignorâd ceti mèssâjo se cél compto est étâ fêt per fôta.',
+'usernamehasherror' => 'Lo nom d’utilisator pôt pas contegnir des caractèros de chaplâjo',
 'login-throttled' => 'Vos éd tentâ dèrriérement un trop grant nombro de branchements.
 Volyéd atendre devant que tornar èprovar.',
-'login-abort-generic' => 'Voutra tentativa de branchement at pas reussia - Anulâ',
+'login-abort-generic' => 'Voutra tentativa de branchement at pas reussi - Anulâye',
 'loginlanguagelabel' => 'Lengoua : $1',
-'suspicious-userlogout' => "Voutra demanda de dèbranchement at étâ refusâ perce que semble qu’el at étâ mandâ per un navigator câsso ou ben la misa en cache d’un sèrvor mandatèro (''proxy'').",
+'suspicious-userlogout' => 'Voutra demanda de dèbranchement est étâye refusâye perce que semble qu’el est étâye mandâye per un navigator câsso ou ben la misa en cacho d’un proxy.',
 
 # E-mail sending
-'php-mail-error-unknown' => 'Èrror encognua dens la fonccion mail() de PHP.',
-'user-mail-no-addy' => 'Tâchiê de mandar un mèssâjo sen adrèce èlèctronica',
+'php-mail-error-unknown' => 'Fôta encognua dens la fonccion mail() de PHP.',
+'user-mail-no-addy' => 'Tâchiê de mandar un mèssâjo sen adrèce èlèctronica.',
 
 # Change password dialog
 'resetpass' => 'Changiér lo contresegno',
@@ -1770,22 +1770,22 @@ cél fichiér fât $2.',
 Cen pôt étre diu a una èrror dedens lo nom du fichiér.
 Volyéd controlar que vos voléd franc tèlèchargiér cél fichiér.',
 'windows-nonascii-filename' => 'Ceti vouiqui recognêt pas los noms de fichiérs avouéc des caractèros spèciâls.',
-'fileexists' => "Un fichiér avouéc cél nom ègziste ja.
-Volyéd controlar '''<tt>[[:$1]]</tt>'''.
-Éte-vos de sûr de lo volêr changiér ? [[$1|thumb]]",
-'filepageexists' => "La pâge de dèscripcion por cél fichiér at ja étâ fêta ique '''<tt>[[:$1]]</tt>''', mas nion fichiér de cél nom ègziste ora.
+'fileexists' => 'Un fichiér avouéc cél nom ègziste ja.
+Volyéd controlar <strong>[[:$1]]</strong>.
+Éte-vos de sûr de lo volêr changiér ? [[$1|thumb]]',
+'filepageexists' => 'La pâge de dèscripcion por cél fichiér at ja étâ fêta ique <strong>[[:$1]]</strong>, mas nion fichiér de cél nom ègziste ora.
 Lo rèsumâ que vos voléd buchiér aparêtrat pas sur la pâge de dèscripcion.
 Por cen fâre vos devréd changiér la pâge a la man.
-[[$1|thumb]]",
-'fileexists-extension' => "Un fichiér avouéc un nom d’ense ègziste ja : [[$2|thumb]]
-* Nom du fichiér a tèlèchargiér : '''<tt>[[:$1]]</tt>'''
-* Nom du fichiér ègzistent : '''<tt>[[:$2]]</tt>'''
-Volyéd chouèsir un ôtro nom.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Un fichiér avouéc un nom d’ense ègziste ja : [[$2|thumb]]
+* Nom du fichiér a tèlèchargiér : <strong>[[:$1]]</strong>
+* Nom du fichiér ègzistent : <strong>[[:$2]]</strong>
+Volyéd chouèsir un ôtro nom.',
 'fileexists-thumbnail-yes' => "Lo fichiér semble étre una émâge en talye rèduita ''(figura)''.
 [[$1|thumb]]
-Volyéd controlar lo fichiér '''<tt>[[:$1]]</tt>'''.
+Volyéd controlar lo fichiér <strong>[[:$1]]</strong>.
 Se lo fichiér controlâ est la méma émâge avouéc la talye originèla, y at pas fôta de tèlèchargiér una vèrsion rèduita.",
-'file-thumbnail-no' => "Lo nom du fichiér comence per '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Lo nom du fichiér comence per <strong>$1</strong>.
 O est possiblo que seye una vèrsion rèduita ''(figura)''.
 Se vos avéd lo fichiér en rèsolucion ples hôta, tèlèchargiéd-lo, ôtrament volyéd changiér son nom.",
 'fileexists-forbidden' => 'Un fichiér avouéc cél nom ègziste ja et pôt pas étre ècllafâ.
@@ -2037,7 +2037,7 @@ La dèscripcion de sa [$2 pâge de dèscripcion] est montrâ ce-desot.',
 # MIME search
 'mimesearch' => 'Rechèrche per tipo de contegnu MIME',
 'mimesearch-summary' => "Ceta pâge vos pèrmèt de listar los fichiérs accèssiblos per ceti vouiqui d’aprés lor tipo de contegnu MIME.
-Entrâ : ''tipo de contegnu''/''sot-tipo'', per ègzemplo <tt>image/jpeg</tt>.",
+Entrâ : ''tipo de contegnu''/''sot-tipo'', per ègzemplo <code>image/jpeg</code>.",
 'mimetype' => 'Tipo MIME :',
 'download' => 'Tèlèchargiér',
 
@@ -2238,7 +2238,7 @@ Vêde asse-ben les [[Special:WantedCategories|catègories les ples demandâs]].'
 'linksearch-ok' => 'Rechèrchiér',
 'linksearch-text' => 'Des caractèros j·oquères coment « *.wikipedia.org » pôvont étre utilisâs.
 Ils ont fôta d’u muens un domêno de nivél supèrior, per ègzemplo « *.org ».<br />
-Protocolos recognus : <tt>$1</tt> (apondéd gins de cetos dedens voutra rechèrche).',
+Protocolos recognus : <code>$1</code> (apondéd gins de cetos dedens voutra rechèrche).',
 'linksearch-line' => '$1 est liyê dês $2',
 'linksearch-error' => 'Los caractèros j·oquères pôvont étre utilisâs ren qu’u comencement du nom de domêno de l’hôto.',
 
@@ -3126,15 +3126,10 @@ O est probâblament diu a un lim de vers un seto de defôr qu’aparêt sur la l
 # Info page
 'pageinfo-title' => 'Enformacions por « $1 »',
 'pageinfo-header-edits' => 'Changements',
-'pageinfo-header-watchlist' => 'Lista de survelyence',
-'pageinfo-header-views' => 'Visualisacions',
-'pageinfo-subjectpage' => 'Pâge',
-'pageinfo-talkpage' => 'Pâge de discussion',
+'pageinfo-views' => 'Nombro de visualisacions',
 'pageinfo-watchers' => 'Nombro de contributors qu’ont la pâge dens lor lista de survelyence',
 'pageinfo-edits' => 'Nombro de changements',
 'pageinfo-authors' => 'Nombro d’ôtors difèrents',
-'pageinfo-views' => 'Nombro de visualisacions',
-'pageinfo-viewsperedit' => 'Visualisacions per changement',
 
 # Skin names
 'skinname-standard' => 'Estandârd',
index d71d003..ee72895 100644 (file)
@@ -1258,9 +1258,9 @@ Jo kinne ek oaren de mûglikheid jaan kontakt mei jo op te nimmen troch in ferwi
 Wat oanbean en wat wiske wurdt, wurdt delskreaun yn it [[Special:Log/upload|lochboek]].
 
 Om de triem yn in side op te nimmen, meitsje jo dêr sa'n keppeling:
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:jo_foto.jpg]]</nowiki></tt>''', foar grutte ferzje,
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:jo_logo.png|omskriuwing]]</nowiki></tt>''' foar 200 in piksel ferzje, mei 'alternative tekst' as beskriuwing, of
-*'''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:jo_lûd.ogg]]</nowiki></tt>''', foar direkt keppeling nei de triem (sûnder byld).",
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:jo_foto.jpg]]</nowiki></code>''', foar grutte ferzje,
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:jo_logo.png|omskriuwing]]</nowiki></code>''' foar 200 in piksel ferzje, mei 'alternative tekst' as beskriuwing, of
+*'''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:jo_lûd.ogg]]</nowiki></code>''', foar direkt keppeling nei de triem (sûnder byld).",
 'upload-permitted' => 'Talitten triemtypen: $1.',
 'upload-preferred' => 'Oanwiisde triemtypen: $1.',
 'upload-prohibited' => 'Ferbeane triemtypen: $1.',
@@ -1292,20 +1292,20 @@ Jou de triem in oare namme en besykje him dan op\'e nij heech te laden.',
 'emptyfile' => "De triem dy jo heechladen hawwe liket leech te wêzen.
 Dat soe komme kinne fan in typflater yn 'e triemnamme.
 Gean nei oft jo dizze triem wier bedoelden heech te laden.",
-'fileexists' => "Der bestiet al in triem mei dizze namme.
-Kontrolearje '''<tt>[[:$1]]</tt>''' as jo net wis binne oft jo de besteande triem oerskriuwe wolle.
-[[$1|thumb]]",
-'filepageexists' => "De beskriuwingsside foar dizze triem bestiet al op '''<tt>[[:$1]]</tt>''', mar der bestiet gjin triem mei dizze namme.
+'fileexists' => 'Der bestiet al in triem mei dizze namme.
+Kontrolearje <strong>[[:$1]]</strong> as jo net wis binne oft jo de besteande triem oerskriuwe wolle.
+[[$1|thumb]]',
+'filepageexists' => "De beskriuwingsside foar dizze triem bestiet al op <strong>[[:$1]]</strong>, mar der bestiet gjin triem mei dizze namme.
 De gearfetting dy't jo opjûn hawwe sil net op 'e beskriuwingsside ferskine.
 Bewurkje de side mei de hân om de beskriuwing dêr wer te jaan.",
 'fileexists-extension' => "In triem mei deselde namme bestiet al: [[$2|thumb]]
-* Namme fan 'e heechladene triem: '''<tt>[[:$1]]</tt>'''
-* Namme fan 'e besteande triem: '''<tt>[[:$2]]</tt>'''
+* Namme fan 'e heechladene triem: <strong>[[:$1]]</strong>
+* Namme fan 'e besteande triem: <strong>[[:$2]]</strong>
 Kies in oare namme.",
 'fileexists-thumbnail-yes' => "De triem liket in ferlytse ferzje te wêzen ''(miniatuerôfbylding)''. [[$1|thumb]]
-Kontrolearje de triem '''<tt>[[:$1]]</tt>'''.
+Kontrolearje de triem <strong>[[:$1]]</strong>.
 As de kontrolearre triem deselde ôfbylding fan deselde grutte is, dan hoecht net in ekstra miniatuerôfbylding oanbean te wurden.",
-'file-thumbnail-no' => "De triemnamme begjint mei '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "De triemnamme begjint mei <strong>$1</strong>.
 It liket in ferlytse ôfbylding te wêzen ''(miniatuerôfbylding)''.
 As jo dy ôfbylding yn folsleine resolúsje hawwe, bied him dan oan.
 Feroarje oars de triemnamme.",
@@ -1454,7 +1454,7 @@ Der is ek in [[Special:WhatLinksHere/$2|folsleine list]].',
 # MIME search
 'mimesearch' => 'Sykje op MIME-type',
 'mimesearch-summary' => 'Dizze side makket it filterjen mûglik fan triemmen foar it MIME-type.
-Ynfier: contenttype/subtype, bygelyks <tt>image/jpeg</tt>.',
+Ynfier: contenttype/subtype, bygelyks <code>image/jpeg</code>.',
 'mimetype' => 'MIME-type:',
 'download' => 'oanbiede',
 
@@ -1635,7 +1635,7 @@ Sjuch ek [[Special:WantedCategories|net-besteande kategoryen mei ferwizings]].',
 'linksearch-ns' => 'Nammerûmte:',
 'linksearch-ok' => 'Sykje',
 'linksearch-text' => 'Wildcards lykas "*.wikipedia.org" of "*.org" binne tastien.<br />
-Stipe protokollen: <tt>$1</tt>',
+Stipe protokollen: <code>$1</code>',
 'linksearch-line' => '$1 hat in ferwizing yn $2',
 'linksearch-error' => 'Wildcards binne allinne tastien oan it begjin fan in hostnamme.',
 
index 3e333dc..df96f18 100644 (file)
@@ -20,6 +20,7 @@
  * @author Tameamseo
  * @author Urhixidur
  * @author לערי ריינהארט
+ * @author පසිඳු කාවින්ද
  */
 
 $magicWords = array(
@@ -578,6 +579,12 @@ Chun d'iarratas logáil isteach a chríochnú, caithfidh tú focal faire nua a r
 'resetpass-submit-cancel' => 'Cealaigh',
 'resetpass-temp-password' => 'Focal faire sealadach:',
 
+# Special:PasswordReset
+'passwordreset-username' => 'Ainm úsáideora:',
+
+# Special:ChangeEmail
+'changeemail-cancel' => 'Cealaigh',
+
 # Edit page toolbar
 'bold_sample' => 'Cló trom',
 'bold_tip' => 'Cló trom',
@@ -739,6 +746,7 @@ Treoir: (rth) = difríocht ón leagan reatha, (rmh) = difríocht ón leagan roim
 # Revision deletion
 'rev-deleted-user' => '(ainm úsáideora dealaithe)',
 'rev-delundel' => 'taispeáin/folaigh',
+'rev-showdeleted' => 'taispeáin',
 'revisiondelete' => 'Scrios/díscrios leagain',
 'revdelete-show-file-confirm' => 'An bhfuil tú cinnte gur mhaith leat féach ar leasú scriosta don chomhad "<nowiki>$1</nowiki>" ó $2 ag $3?',
 'revdelete-show-file-submit' => 'Tá',
@@ -746,6 +754,7 @@ Treoir: (rth) = difríocht ón leagan reatha, (rmh) = difríocht ón leagan roim
 'logdelete-selected' => "'''{{PLURAL:$1|Teagmhas log roghnaithe|Teagmhais log roghnaithe}}:'''",
 'revdelete-hide-text' => 'Folaigh leagan téacs',
 'revdelete-radio-same' => 'ná hathraigh',
+'revdelete-radio-unset' => 'Ní',
 'revdel-restore' => 'athraigh infheictheacht',
 'pagehist' => 'Stair leathanach',
 'deletedhist' => 'Stair scriosta',
@@ -810,6 +819,7 @@ Bain triail as ''all:'' a chur roimh d'iarratas chun an t-inneachar ar fad (leat
 'powersearch-redir' => 'Liosta athsheoltaí',
 'powersearch-field' => 'Cuardaigh le',
 'powersearch-toggleall' => 'Uile',
+'powersearch-togglenone' => 'Tada',
 'searchdisabled' => "Tá brón orainn! Mhíchumasaíodh an cuardach téacs iomlán go sealadach chun luas an tsuímh a chosaint. Idir an dá linn, is féidir leat an cuardach Google anseo thíos a úsáid - b'fhéidir go bhfuil sé as dáta.",
 
 # Quickbar
@@ -1003,9 +1013,9 @@ Tá na leathanaigh ar do [[Special:Watchlist|liosta faire]] i '''gcló trom'''."
 Chun comhaid atá ann cheana a fheiceáil nó a chuardach téigh chuig an [[Special:FileList|liosta comhad uaslódáilte]]. Gheobhaidh tú liosta de chomhaid uaslódáilte sa [[Special:Log/upload|loga uaslódála]] agus liosta de chomhaid scriosta sa [[Special:Log/delete|loga scriosta]] freisin.
 
 Chun comhad a úsáid ar leathanach, cuir isteach nasc mar seo:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:comhad.jpg]]</nowiki></tt>''' chun leagan iomlán an chomhad a úsáid
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:comhad.png|200px|thumb|left|téacs eile]]</nowiki></tt>''' chun comhad le 200 picteillín ar leithead i mbosca san imeall clé le 'téacs eile' mar tuairisc
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:comhad.ogg]]</nowiki></tt>''' más comhad fuaime atá i gceist",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:comhad.jpg]]</nowiki></code>''' chun leagan iomlán an chomhad a úsáid
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:comhad.png|200px|thumb|left|téacs eile]]</nowiki></code>''' chun comhad le 200 picteillín ar leithead i mbosca san imeall clé le 'téacs eile' mar tuairisc
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:comhad.ogg]]</nowiki></code>''' más comhad fuaime atá i gceist",
 'upload-permitted' => 'Cineálacha comhaid ceadaithe: $1.',
 'uploadlog' => 'Stair uaslódála',
 'uploadlogpage' => 'Stair_uaslódála',
@@ -1255,6 +1265,7 @@ Beidh do seoladh ríomhphoist a d\'iontráil tú i [[Special:Preferences|do chui
 'defemailsubject' => 'Ríomhphost {{GRAMMAR:genitive|{{SITENAME}}}}',
 'noemailtitle' => 'Níl aon seoladh ríomhphoist ann',
 'noemailtext' => 'Níor thug an úsáideoir seo seoladh ríomhphoist bhailí.',
+'emailusername' => 'Ainm úsáideora:',
 'emailfrom' => 'Seoltóir:',
 'emailto' => 'Chuig:',
 'emailsubject' => 'Ábhar:',
@@ -1409,6 +1420,7 @@ Is féidir an leibhéal glasála a athrú, ach ní féidir cur isteach ar an ghl
 'pagesize' => '(bearta)',
 
 # Restrictions (nouns)
+'restriction-edit' => 'Cuir in eagar',
 'restriction-create' => 'Cruthaigh',
 'restriction-upload' => 'Uaslódaigh',
 
@@ -1431,6 +1443,7 @@ Is an téacs as na leagan scriosta seo ar fáil do riarthóirí amháin.',
 'undelete-revision' => 'Leagan scriosta $1 (ó $4, ar $5) le $3:',
 'undeletebtn' => 'Díscrios!',
 'undeletelink' => 'féach/díscrios',
+'undeleteviewlink' => 'Amharc',
 'undeletereset' => 'Athshocraigh',
 'undeleteinvert' => 'Cuir an roghnú bun os cionn',
 'undeletecomment' => 'Tuairisc:',
@@ -1644,6 +1657,9 @@ Sa dara cás, is féidir leat nasc a úsáid, mar shampla [[{{#Special:Export}}/
 'allmessagestext' => 'Is liosta é seo de theachtaireachtaí córais atá le fáil san ainmspás MediaWiki.
 Tabhair cuairt ar [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] agus [//translatewiki.net translatewiki.net] le do thoil más mian leat cur leis an logánú ginearálta MediaWiki.',
 'allmessagesnotsupportedDB' => "Ní féidir an leathanach seo a úsáid dá bharr gur díchumasaíodh '''\$wgUseDatabaseMessages'''.",
+'allmessages-filter-all' => 'Uile',
+'allmessages-language' => 'Teanga:',
+'allmessages-filter-submit' => 'Gabh',
 
 # Thumbnails
 'thumbnail-more' => 'Méadaigh',
@@ -1654,6 +1670,7 @@ Tabhair cuairt ar [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation]
 'import' => 'Iompórtáil leathanaigh',
 'importinterwiki' => 'Iompórtáil trasna vicithe',
 'import-interwiki-submit' => 'iompórtáil',
+'import-comment' => 'Nóta tráchta:',
 'importtext' => 'Easportáil an comhad ón vici-fhoinse (le húsáid na [[Special:Export|tréithe easportáil]]), sábháil ar do dhíosca é agus uaslódáil anseo é.',
 'import-revision-count' => '{{PLURAL:$1|Leagan amháin|$1 leagain}}',
 'importnopages' => 'Níl aon leathanaigh chun iompórtáil',
@@ -1950,6 +1967,9 @@ Beidh na cinn eile ceilte de réir réamhshocraithe.
 'exif-gpsareainformation' => 'Ainm an cheantair GPS',
 'exif-gpsdatestamp' => 'Dáta GPS',
 'exif-gpsdifferential' => 'Ceartú difreálach GPS',
+'exif-source' => 'Foinse',
+'exif-languagecode' => 'Teanga',
+'exif-iimcategory' => 'Catagóir',
 
 # EXIF attributes
 'exif-compression-1' => 'Neamh-chomhbhrúite',
@@ -2092,6 +2112,7 @@ cúlra i bhfócas)',
 'watchlistall2' => 'an t-iomlán',
 'namespacesall' => 'iad uile',
 'monthsall' => 'gach mí',
+'limitall' => 'iad uile',
 
 # E-mail address confirmation
 'confirmemail' => 'Deimhnigh do ríomhsheoladh',
@@ -2145,6 +2166,7 @@ Rachaidh an cód deimhnithe seo as feidhm ag $4.',
 'table_pager_prev' => 'Leathanach roimhe',
 'table_pager_first' => 'Céad leathanach',
 'table_pager_last' => 'Deireadh leathanach',
+'table_pager_limit_submit' => 'Gabh',
 'table_pager_empty' => 'Folamh',
 
 # Auto-summaries
@@ -2179,6 +2201,7 @@ Rachaidh an cód deimhnithe seo as feidhm ag $4.',
 'version-license' => 'Ceadúnas',
 'version-software' => 'Bogearraí suiteáilte',
 'version-software-version' => 'Leagan',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Cosán comhaid',
@@ -2204,4 +2227,11 @@ Rachaidh an cód deimhnithe seo as feidhm ag $4.',
 # Special:BlankPage
 'blankpage' => 'Leathanach bán',
 
+# HTML forms
+'htmlform-selectorother-other' => 'Eile',
+
+# Feedback
+'feedback-message' => 'Teachtaireacht:',
+'feedback-cancel' => 'Cealaigh',
+
 );
index f9ea105..6187ec1 100644 (file)
@@ -74,7 +74,6 @@ $messages = array(
 'tog-watchlisthideliu' => '到监视清单里头弆到登入用户',
 'tog-watchlisthideanons' => '到监视清单里头弆到匿名用户',
 'tog-watchlisthidepatrolled' => '到监视清单里头弆到巡查过𠮶编辑',
-'tog-nolangconversion' => '嫑字转换',
 'tog-ccmeonemails' => '偶发email到人家时也发封副本到偶',
 'tog-diffonly' => '比较两只版本差异𠮶时间伓显示文章𠮶内容',
 'tog-showhiddencats' => '显示弆到𠮶分类',
@@ -941,9 +940,9 @@ $2',
 要眵或要寻先前上传𠮶图像请去[[Special:FileList|图像列表]],上传同删除会记到[[Special:Log/upload|上传日志]]里度。
 
 要系想扻文件到页面,用得正下底𠮶方式链接:
-'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''',
-'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|alt text]]</nowiki></tt>''' 或
-'''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' 直接连接到个只文件。",
+'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''',
+'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|alt text]]</nowiki></code>''' 或
+'''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' 直接连接到个只文件。",
 'upload-permitted' => '容许𠮶文件类型:$1。',
 'upload-preferred' => '优先𠮶文件类型:$1。',
 'upload-prohibited' => '禁止𠮶文件类型:$1。',
@@ -966,15 +965,15 @@ $2',
 'large-file' => '建议档案𠮶大小伓要超吥$1;本档案大小系$2。',
 'largefileserver' => '个只档案要大过服务器配置容允𠮶大小。',
 'emptyfile' => '倷上传𠮶档案伓存在。个可能系因为档案名按错嘞。请检查倷系否真𠮶要上传个只档案。',
-'fileexists' => "个只档案名已存在。如果倷确定伓正倷系否要改佢,请检查'''<tt>[[:$1]]</tt>'''。 [[$1|thumb]]",
-'fileexists-extension' => "有嘞只飞像𠮶档名: [[$2|thumb]]
-* 上载文档𠮶档名: '''<tt>[[:$1]]</tt>'''
-* 目前档𠮶档名: '''<tt>[[:$2]]</tt>'''
-请拣只伓同𠮶名字。",
+'fileexists' => '个只档案名已存在。如果倷确定伓正倷系否要改佢,请检查<strong>[[:$1]]</strong>。 [[$1|thumb]]',
+'fileexists-extension' => '有嘞只飞像𠮶档名: [[$2|thumb]]
+* 上载文档𠮶档名: <strong>[[:$1]]</strong>
+* 目前档𠮶档名: <strong>[[:$2]]</strong>
+请拣只伓同𠮶名字。',
 'fileexists-thumbnail-yes' => "个只档案好像系一只图像𠮶缩小版''(缩图)''。 [[$1|thumb]]
-请检查清楚个只档案'''<tt>[[:$1]]</tt>'''
+请检查清楚个只档案<strong>[[:$1]]</strong>
 如果检查后𠮶档同原先图像𠮶大小系一样𠮶话,就嫑再上传多一只缩图。",
-'file-thumbnail-no' => "个只档案名系以'''<tt>$1</tt>'''开头。佢好像一只图像𠮶缩小版''(缩图)''。如果倷有个只图像𠮶完整版,伓然请再改过只档名。",
+'file-thumbnail-no' => "个只档案名系以<strong>$1</strong>开头。佢好像一只图像𠮶缩小版''(缩图)''。如果倷有个只图像𠮶完整版,伓然请再改过只档名。",
 'fileexists-forbidden' => '个只档案名已存在;请回头并换过只新𠮶名称来上传个只档案。[[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => '到共用档案库里度有嘞同名𠮶档案;请回头并换过只新𠮶名称来上传个只档案。[[File:$1|thumb|center|$1]]',
 'uploadwarning' => '上传警告',
@@ -1076,7 +1075,7 @@ $2',
 
 # MIME search
 'mimesearch' => 'MIME搜索',
-'mimesearch-summary' => '个只页面启用档案MIME类型筛检程式。输入:内容类型/子类型,像 <tt>image/jpeg</tt>。',
+'mimesearch-summary' => '个只页面启用档案MIME类型筛检程式。输入:内容类型/子类型,像 <code>image/jpeg</code>。',
 'mimetype' => 'MIME 类型:',
 'download' => '下载',
 
index c50da29..bf73fb7 100644 (file)
@@ -96,7 +96,6 @@ $messages = array(
 'tog-watchlisthideliu' => '到監視清單裡頭弆到登入用戶',
 'tog-watchlisthideanons' => '到監視清單裡頭弆到匿名用戶',
 'tog-watchlisthidepatrolled' => '到監視清單裡頭弆到巡查過嗰編輯',
-'tog-nolangconversion' => '嫑字轉換',
 'tog-ccmeonemails' => '我發email到人家時也發封副本到我',
 'tog-diffonly' => '比較兩隻版本差異嗰時間伓顯示文章嗰內容',
 'tog-showhiddencats' => '顯示弆到嗰分類',
@@ -988,15 +987,15 @@ $2',
 'large-file' => '建議檔案嗰大小伓要超吥$1;本檔案大小係$2。',
 'largefileserver' => '箇隻檔案要大過服務器配置容允嗰大小。',
 'emptyfile' => '倷上傳嗰檔案伓存在。箇可能係因為檔案名按錯嘞。請檢查倷係否真嗰要上傳箇隻檔案。',
-'fileexists' => "箇隻檔案名已存在。如果倷確定伓正倷係否要改佢,請檢查'''<tt>[[:$1]]</tt>'''。 [[$1|thumb]]",
-'fileexists-extension' => "有嘞隻飛像嗰檔名: [[$2|thumb]]
-* 上載文檔嗰檔名: '''<tt>[[:$1]]</tt>'''
-* 目前檔嗰檔名: '''<tt>[[:$2]]</tt>'''
-請揀隻伓同嗰名字。",
+'fileexists' => '箇隻檔案名已存在。如果倷確定伓正倷係否要改佢,請檢查<strong>[[:$1]]</strong>。 [[$1|thumb]]',
+'fileexists-extension' => '有嘞隻飛像嗰檔名: [[$2|thumb]]
+* 上載文檔嗰檔名: <strong>[[:$1]]</strong>
+* 目前檔嗰檔名: <strong>[[:$2]]</strong>
+請揀隻伓同嗰名字。',
 'fileexists-thumbnail-yes' => "箇隻檔案好像係一隻圖像嗰縮小版''(縮圖)''。 [[$1|thumb]]
-請檢查清楚箇隻檔案'''<tt>[[:$1]]</tt>'''
+請檢查清楚箇隻檔案<strong>[[:$1]]</strong>
 如果檢查後嗰檔同原先圖像嗰大小係一樣嗰話,就嫑再上傳多一隻縮圖。",
-'file-thumbnail-no' => "箇隻檔案名係以'''<tt>$1</tt>'''開頭。佢好像一隻圖像嗰縮小版''(縮圖)''。如果倷有箇隻圖像嗰完整版,伓然請再改過隻檔名。",
+'file-thumbnail-no' => "箇隻檔案名係以<strong>$1</strong>開頭。佢好像一隻圖像嗰縮小版''(縮圖)''。如果倷有箇隻圖像嗰完整版,伓然請再改過隻檔名。",
 'fileexists-forbidden' => '箇隻檔案名已存在;請回頭並換過隻新嗰名稱來上傳箇隻檔案。[[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => '到共用檔案庫裡度有嘞同名嗰檔案;請回頭並換過隻新嗰名稱來上傳箇隻檔案。[[File:$1|thumb|center|$1]]',
 'uploadwarning' => '上傳警告',
@@ -1098,7 +1097,7 @@ $2',
 
 # MIME search
 'mimesearch' => 'MIME 搜尋',
-'mimesearch-summary' => '箇隻頁面啟用檔案MIME類型篩檢程式。輸入:內容類型/子類型,像 <tt>image/jpeg</tt>。',
+'mimesearch-summary' => '箇隻頁面啟用檔案MIME類型篩檢程式。輸入:內容類型/子類型,像 <code>image/jpeg</code>。',
 'mimetype' => 'MIME 類型:',
 'download' => '下載',
 
index 68a5ba7..c27cc54 100644 (file)
@@ -667,7 +667,15 @@ Dh'fhaoidte nach urrainn dhut am feart \"Cuir post-d dhan chleachdaiche seo\" a
 'S e \$3 an seòladh IP làithreach agus agus 's e #\$5 ID a' bhacaidh.
 Thoir iomradh air a' mhion-fhiosrachadh gu h-àrd ma chuireas tu ceist sam bith mu dhèidhinn.",
 'blockednoreason' => 'cha deach adhbhar a shònrachadh',
+'whitelistedittext' => 'Feumaidh tu $1 mus urrainn dhut duilleagan a dheasachadh.',
+'confirmedittext' => "Feumaidh tu am post-d agad a dhearbhadh mus urrainn dhut duilleagan a dheasachadh.
+Suidhich is dearbhaich am post-d agad ann an [[Special:Preferences|roghainnean a' chleachdaiche]]",
+'nosuchsectiontitle' => 'Cha ghabh an earrann a lorg',
+'nosuchsectiontext' => "Dh'fheuch thu ri earrann a dheasachadh nach eil ann.
+Dh'fhaoidte gun deach a ghluasad no a sguabadh às fhad 's a bha thu a' coimhead air an duilleag.",
+'loginreqtitle' => 'Feumaidh tu clàradh a-steach',
 'loginreqlink' => 'log a-steach',
+'loginreqpagetext' => 'Feumaidh tu $1 mus urrainn dhut coimhead air duilleagan eile.',
 'accmailtitle' => 'Facal-faire air a chur.',
 'accmailtext' => "Chaidh facal-faire a chruthachadh air thuaiream airson [[User talk:$1|$1]] 's a chur gu $2.
 
@@ -676,6 +684,10 @@ Gabhaidh am facal-faire airson a' chunntais ùir seo atharrachadh air an fo ''[[
 'newarticletext' => "Lean thu ri ceangal gu duilleag nach eil ann fhathast.
 Cuir teacs sa bhogsa gu h-ìosal gus an duilleag seo a chruthachadh (seall air [[{{MediaWiki:Helppage}}|duilleag na cobharach]] airson barrachd fiosrachaidh).
 Mura robh dùil agad ris an duilleag seo a ruigsinn, briog air a' phutan '''air ais''' 'nad bhrabhsair.",
+'anontalkpagetext' => "----''Seo an duilleag deasbaireachd aig cleachdaiche gun urra nach do chruthaich cunntas fhathast no nach eil 'ga chleachdadh.
+Feumaidh sinn an àireamh IP aca a chleachdadh air sgàth sin.
+Faodadh grunn chleachdaichean seòladh IP mar a chleachdadh còmhla.
+Mas e cleachdaiche gun urra a tha annad 's ma tha thu dhen bheachd nach eil na beachdan seo a' buntainn riut, nach [[Special:UserLogin/signup|clàraich thu]] no [[Special:UserLogin|clàraich a-steach]] gus bùrach mar seo a sheachnadh san àm ri teachd?''",
 'noarticletext' => 'Chan eil teacsa sam bith anns an duilleag seo an-dràsta.
 \'S urrainn dhut [[Special:Search/{{PAGENAME}}|an tiotal seo a lorg]] ann an duilleagan eile,
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} na logaichean co-cheangailte a rannsachadh],
@@ -683,6 +695,27 @@ no [{{fullurl:{{FULLPAGENAME}}|action=edit}} an duilleag seo a dheasachadh]</spa
 'noarticletext-nopermission' => 'Chan eil teacsa sam bith anns an duilleag seo an-dràsta.
 \'S urrainn dhut [[Special:Search/{{PAGENAME}}|an tiotal seo a lorg]] ann an duilleagan eile,
 no <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} na logaichean co-cheangailte a rannsachadh]</span>.',
+'userpage-userdoesnotexist' => 'Chan e cunntas clàraichte a tha ann an "$1".
+Dèan cinnteach gu bheil thu airson an duilleag seo a chruthachadh/dheasachadh.',
+'userpage-userdoesnotexist-view' => 'Cha deach an cunntas cleachdaiche "$1" a chlàradh.',
+'blocked-notice-logextract' => "Tha an cleachdaiche seo air a bhacadh an-dràsta fhèin.
+Chì thu loga a' bhacaidh mu dheireadh gu h-ìosal mar fhiosrachadh dhut:",
+'clearyourcache' => "''An aire:''' As dèidh dhut sàbhaladh, 's mathaid gum bi agad tasgadan a' bhrabhsair agad a chur air gleus mus fhaic thu na dh'atharraich thu.
+* '''Firefox / Safari:''' Cum 'shìos 'Shift'' is briog air ''Ath-luchdaich' no brùth ''Ctrl-F5'' no ''Ctrl-R'' (''⌘-R'' air Mac)
+* '''Google Chrome:''' Brùth ''Ctrl-Shift-R'' (''⌘-Shift-R'' air Mac)
+* '''Internet Explorer:''' Cum shìos ''Ctrl'' is briog air ''Ath-nuadhaich'' no brùth ''Ctrl-F5''
+* '''Konqueror:''' Briog air ''Reload'' no brùth ''F5''
+* '''Opera:''' Falamhaich an tasgadan ann an ''Innealan → Roghainnean''",
+'usercssyoucanpreview' => "'''Gliocas:''' Cleachd am putan \"{{int:showpreview}}\" airson an CSS agad a chur fo dheuchainn mus sàbhail thu e.",
+'userjsyoucanpreview' => "'''Gliocas:''' Cleachd am putan \"{{int:showpreview}}\" gus an JavaScript ùr agad a chur fo dheuchainn mus sàbhail thu e.",
+'usercsspreview' => "'''Cuimhnich nach e seo ach ro-shealladh air a' CSS chleachdaiche agad.'''
+'''Cha deach a shàbhaladh fhathast!''''",
+'userjspreview' => "'''Cuimhnich nach e seo ach ro-shealladh/deuchainn air a' JavaScript agad.'''
+'''Cha deach a shàbhaladh fhathast!''''",
+'sitecsspreview' => "'''Cuimhnich nach e seo ach ro-shealladh air a' CSS agad.'''
+'''Cha deach a shàbhaladh fhathast!''''",
+'sitejspreview' => "'''Cuimhnich nach e seo ach ro-shealladh air còd a' JavaScript agad.'''
+'''Cha deach a shàbhaladh fhathast!''''",
 'updated' => '(Air ùrachadh)',
 'previewnote' => "'''Cuimhnich nach eil ann ach ro-shealladh.'''
 Cha deach na mùthaidhean agad a shàbhaladh fhathast!",
@@ -908,8 +941,8 @@ Tha duilleagan air [[Special:Watchlist|do chlàr-faire]] ann an litrichean '''tr
 'filestatus' => 'Cor dlighe-sgrìobhaidh:',
 'ignorewarning' => 'Leig seachad an rabhadh agus sàbhail am faidhle co-dhiù',
 'badfilename' => 'Ainm ìomhaigh air atharrachadh ri "$1".',
-'fileexists' => "Tha faidhle ann mu thràth air a bheil an t-ainm seo, cuir sùil air '''<tt>[[:$1]]</tt>''' mur eil thu buileach cinntach a bheil thu airson atharrachadh.
-[[$1|thumb]]",
+'fileexists' => 'Tha faidhle ann mu thràth air a bheil an t-ainm seo, cuir sùil air <strong>[[:$1]]</strong> mur eil thu buileach cinntach a bheil thu airson atharrachadh.
+[[$1|thumb]]',
 'savefile' => 'Sàbhail faidhle',
 'uploadedimage' => 'a luchdaich suas "[[$1]]"',
 
index 36f856d..13b4fac 100644 (file)
@@ -542,11 +542,11 @@ Pode atopar unha lista coas páxinas especiais válidas en [[Special:SpecialPage
 'error' => 'Erro',
 'databaseerror' => 'Erro na base de datos',
 'dberrortext' => 'Ocorreu un erro de sintaxe na consulta á base de datos.
-Isto pódese deber a un erro no programa.
+Isto pódese deber a un erro no software.
 A última consulta á base de datos foi:
-<blockquote><tt>$1</tt></blockquote>
-desde a función "<tt>$2</tt>".
-A base de datos devolveu o erro "<tt>$3: $4</tt>".',
+<blockquote><code>$1</code></blockquote>
+desde a función "<code>$2</code>".
+A base de datos devolveu o erro "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Ocorreu un erro de sintaxe na consulta.
 A última consulta á base de datos foi:
 "$1"
@@ -913,7 +913,6 @@ Velaquí está a última entrada do rexistro de bloqueos, por se quere consultal
 * '''Firefox / Safari:''' Prema ''Maiúsculas'' á vez que en ''Recargar'', ou prema en ''Ctrl-F5'' ou ''Ctrl-R'' (''⌘-R'' nos Mac)
 * '''Google Chrome:''' Prema en ''Ctrl-Shift-R'' (''⌘-Shift-R'' nos Mac)
 * '''Internet Explorer:''' Prema ''Ctrl'' ao tempo que fai clic en ''Refrescar'', ou prema en ''Ctrl-F5''
-* '''Konqueror:''' Prema en ''Recargar'' ou prema en ''F5''
 * '''Opera:''' Limpe a súa memoria caché en ''Ferramentas → Preferencias''",
 'usercssyoucanpreview' => "'''Nota:''' Use o botón \"{{int:showpreview}}\" para verificar o novo CSS antes de gardalo.",
 'userjsyoucanpreview' => "'''Nota:''' Use o botón \"{{int:showpreview}}\" para verificar o novo JS antes de gardalo.",
@@ -1233,7 +1232,7 @@ O [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rexistro de borrad
 'searchsubtitle' => 'A súa busca de "\'\'\'[[:$1]]\'\'\'" ([[Special:Prefixindex/$1|todas as páxinas que comezan por "$1"]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|todas as páxinas que ligan con "$1"]])',
 'searchsubtitleinvalid' => "A súa busca de \"'''\$1'''\"",
 'toomanymatches' => 'Devolvéronse demasiadas coincidencias; inténteo cunha consulta diferente',
-'titlematches' => 'O título do artigo coincide',
+'titlematches' => 'O título da páxina coincide',
 'notitlematches' => 'Non coincide ningún título de páxina',
 'textmatches' => 'O texto da páxina coincide',
 'notextmatches' => 'Non se atopou o texto en ningunha páxina',
@@ -1638,9 +1637,9 @@ Velaquí están o rexistro de borrados e mais o de traslados desta páxina, por
 Para ver ou procurar imaxes subidas con anterioridade vaia á [[Special:FileList|lista de imaxes]]; os envíos tamén se rexistran no [[Special:Log/upload|rexistro de cargas]] e as eliminacións no [[Special:Log/delete|rexistro de borrados]].
 
 Para incluír un ficheiro nunha páxina, use unha ligazón do seguinte xeito:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' para usar a versión completa do ficheiro
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|texto alternativo]]</nowiki></tt>''' para usar unha resolución de 200 píxeles de ancho nunha caixa na marxe esquerda cunha descrición (\"texto alternativo\")
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' para ligar directamente co ficheiro sen que este saia na páxina",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' para usar a versión completa do ficheiro
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|texto alternativo]]</nowiki></code>''' para usar unha resolución de 200 píxeles de ancho nunha caixa na marxe esquerda cunha descrición (\"texto alternativo\")
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' para ligar directamente co ficheiro sen que este saia na páxina",
 'upload-permitted' => 'Tipos de ficheiro permitidos: $1.',
 'upload-preferred' => 'Tipos de arquivos preferidos: $1.',
 'upload-prohibited' => 'Tipos de arquivos prohibidos: $1.',
@@ -1687,23 +1686,23 @@ Por favor, cambie o nome do ficheiro e intente cargalo de novo.',
 Isto pode deberse a un erro ortográfico no seu nome.
 Por favor, verifique se realmente quere cargar este ficheiro.',
 'windows-nonascii-filename' => 'Este wiki non soporta os nomes de ficheiros con caracteres especiais.',
-'fileexists' => "Xa existe un ficheiro con ese nome. Por favor, comprobe '''<tt>[[:$1]]</tt>''' se non está seguro de querer cambialo.
-[[$1|thumb]]",
-'filepageexists' => "A páxina de descrición deste ficheiro xa foi creada en '''<tt>[[:$1]]</tt>''', pero polo de agora non existe ningún ficheiro con este nome.
+'fileexists' => 'Xa existe un ficheiro con ese nome. Por favor, comprobe <strong>[[:$1]]</strong> se non está seguro de querer cambialo.
+[[$1|thumb]]',
+'filepageexists' => 'A páxina de descrición deste ficheiro xa foi creada en <strong>[[:$1]]</strong>, pero polo de agora non existe ningún ficheiro con este nome.
 O resumo que escribiu non aparecerá na páxina de descrición.
 Para facer que o resumo apareza alí, necesitará editar a páxina manualmente.
-[[$1|miniatura]]",
-'fileexists-extension' => "Xa existe un ficheiro cun nome semellante: [[$2|thumb]]
-* Nome do ficheiro que intenta cargar: '''<tt>[[:$1]]</tt>'''
-* Nome de ficheiro existente: '''<tt>[[:$2]]</tt>'''
-Por favor, escolla un nome diferente.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Xa existe un ficheiro cun nome semellante: [[$2|thumb]]
+* Nome do ficheiro que intenta cargar: <strong>[[:$1]]</strong>
+* Nome de ficheiro existente: <strong>[[:$2]]</strong>
+Por favor, escolla un nome diferente.',
 'fileexists-thumbnail-yes' => "Semella que o ficheiro é unha imaxe de tamaño reducido ''(miniatura)''.
 [[$1|thumb]]
-Por favor, comprobe o ficheiro '''<tt>[[:$1]]</tt>'''.
+Por favor, comprobe o ficheiro <strong>[[:$1]]</strong>.
 Se o ficheiro seleccionado é a mesma imaxe en tamaño orixinal non é preciso enviar unha miniatura adicional.",
-'file-thumbnail-no' => "O nome do ficheiro comeza por '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "O nome do ficheiro comeza por <strong>$1</strong>.
 Parece tratarse dunha imaxe de tamaño reducido ''(miniatura)''.
-Se dispón dunha versión desta imaxe de maior resolución, se non, múdelle o nome ao ficheiro.",
+Se dispón dunha versión desta imaxe de maior resolución cárguea; se non, múdelle o nome ao ficheiro.",
 'fileexists-forbidden' => 'Xa existe un ficheiro co mesmo nome e este non pode ser sobrescrito.
 Se aínda quere cargar o seu ficheiro, por favor, retroceda e use un novo nome. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'Xa existe un ficheiro con este nome no repositorio de ficheiros compartidos.
@@ -1933,6 +1932,7 @@ Poida que queira editar a descrición da [$2 páxina de descrición do ficheiro]
 'shared-repo-from' => 'de $1',
 'shared-repo' => 'repositorio compartido',
 'filepage.css' => '/** O CSS que se coloque aquí será incluído na páxina de descrición do ficheiro, así como nos wikis de clientes estranxeiros */',
+'upload-disallowed-here' => 'Por desgraza, non pode sobrescribir esta imaxe.',
 
 # File reversion
 'filerevert' => 'Reverter $1',
@@ -1967,7 +1967,7 @@ Poida que queira editar a descrición da [$2 páxina de descrición do ficheiro]
 # MIME search
 'mimesearch' => 'Busca MIME',
 'mimesearch-summary' => 'Esta páxina permite filtrar os ficheiros segundo o seu tipo MIME.
-Entrada: tipodecontido/subtipo, p.ex. <tt>image/jpeg</tt>.',
+Entrada: tipodecontido/subtipo, por exemplo <code>image/jpeg</code>.',
 'mimetype' => 'Tipo MIME:',
 'download' => 'descargar',
 
@@ -2036,11 +2036,12 @@ As entradas <del>riscadas</del> xa foron resoltas.',
 'withoutinterwiki-legend' => 'Prefixo',
 'withoutinterwiki-submit' => 'Mostrar',
 
-'fewestrevisions' => 'Artigos con menos revisións',
+'fewestrevisions' => 'Páxinas con menos revisións',
 
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}',
 'ncategories' => '$1 {{PLURAL:$1|categoría|categorías}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwikis}}',
 'nlinks' => '$1 {{PLURAL:$1|ligazón|ligazóns}}',
 'nmembers' => '$1 {{PLURAL:$1|páxina|páxinas}}',
 'nrevisions' => '$1 {{PLURAL:$1|revisión|revisións}}',
@@ -2067,9 +2068,10 @@ As entradas <del>riscadas</del> xa foron resoltas.',
 'mostlinked' => 'Páxinas máis ligadas',
 'mostlinkedcategories' => 'Categorías máis ligadas',
 'mostlinkedtemplates' => 'Modelos máis enlazados',
-'mostcategories' => 'Artigos con máis categorías',
+'mostcategories' => 'Páxinas con máis categorías',
 'mostimages' => 'Ficheiros máis usados',
-'mostrevisions' => 'Artigos con máis revisións',
+'mostinterwikis' => 'Páxinas con máis interwikis',
+'mostrevisions' => 'Páxinas con máis revisións',
 'prefixindex' => 'Todas as páxinas coas iniciais',
 'prefixindex-namespace' => 'Todas as páxinas con prefixo (espazo de nomes $1)',
 'shortpages' => 'Páxinas curtas',
@@ -2091,7 +2093,7 @@ As entradas <del>riscadas</del> xa foron resoltas.',
 'usercreated' => '{{GENDER:$3|Creado|Creada}} o $1 ás $2',
 'newpages' => 'Páxinas novas',
 'newpages-username' => 'Nome de usuario:',
-'ancientpages' => 'Artigos máis antigos',
+'ancientpages' => 'Páxinas máis antigas',
 'move' => 'Mover',
 'movethispage' => 'Mover esta páxina',
 'unusedimagestext' => 'Os seguintes ficheiros existen pero aínda non se incluíron en ningunha páxina.
@@ -2168,7 +2170,7 @@ Olle tamén as [[Special:WantedCategories|categorías requiridas]].',
 'linksearch-ok' => 'Procurar',
 'linksearch-text' => 'Pódense usar caracteres comodín como "*.wikipedia.org".
 Cómpre, polo menos, un dominio de nivel superior, por exemplo "*.org".<br />
-Protocolos soportados: <tt>$1</tt> (non engada ningún destes na súa procura).',
+Protocolos soportados: <code>$1</code> (non engada ningún destes na súa procura).',
 'linksearch-line' => '$1 está ligado desde a páxina "$2"',
 'linksearch-error' => 'Os caracteres comodín só poden aparecer ao principio do nome do servidor.',
 
@@ -2214,6 +2216,8 @@ Se quere máis información acerca dos dereitos individuais, pode atopala [[{{Me
 'mailnologin' => 'Non existe enderezo para o envío',
 'mailnologintext' => 'Debe [[Special:UserLogin|acceder ao sistema]] e ter rexistrado un enderezo de correo electrónico válido nas súas [[Special:Preferences|preferencias]] para enviar correos electrónicos a outros usuarios.',
 'emailuser' => 'Enviar un correo electrónico a {{GENDER:{{BASEPAGENAME}}|este usuario|esta usuaria}}',
+'emailuser-title-target' => 'Enviar un correo electrónico a {{GENDER:$1|este usuario|esta usuaria}}',
+'emailuser-title-notarget' => 'Enviar un correo electrónico a un usuario',
 'emailpage' => 'Enviar un correo electrónico a un usuario',
 'emailpagetext' => 'Pode usar o formulario de embaixo para enviar unha mensaxe de correo electrónico a este usuario.
 O correo electrónico que inseriu [[Special:Preferences|nas súas preferencias]] aparecerá no campo "De:" do correo, polo que o receptor da mensaxe poderalle responder.',
@@ -2266,7 +2270,7 @@ Os cambios futuros nesta páxina e na súa páxina de conversa asociada serán l
 'notvisiblerev' => 'A revisión foi borrada',
 'watchnochange' => 'Ningún dos elementos baixo vixilancia foi editado no período de tempo indicado.',
 'watchlist-details' => 'Hai {{PLURAL:$1|unha páxina|$1 páxinas}} na súa lista de vixilancia, sen contar as de conversa.',
-'wlheader-enotif' => '* Está dispoñible a notificación por correo electrónico.',
+'wlheader-enotif' => '* A notificación por correo electrónico está activada.',
 'wlheader-showupdated' => "* As páxinas que cambiaron desde a súa última visita móstranse en '''negra'''",
 'watchmethod-recent' => 'comprobando as edicións recentes na procura de páxinas vixiadas',
 'watchmethod-list' => 'comprobando as páxinas vixiadas na procura de edicións recentes',
@@ -2857,6 +2861,7 @@ Todas as accións relacionadas coa importación entre wikis poden verse no [[Spe
 'import-interwiki-templates' => 'Incluír todos os modelos',
 'import-interwiki-submit' => 'Importar',
 'import-interwiki-namespace' => 'Espazo de nomes de destino:',
+'import-interwiki-rootpage' => 'Páxina raíz de destino (opcional):',
 'import-upload-filename' => 'Nome do ficheiro:',
 'import-comment' => 'Comentario:',
 'importtext' => 'Por favor, exporte o ficheiro do wiki de orixe usando a [[Special:Export|ferramenta de exportación]].
@@ -2889,6 +2894,9 @@ Gárdeo no seu disco duro e cárgueo aquí.',
 'import-error-interwiki' => 'Non se pode importar a páxina "$1" porque o seu nome está reservado para unha ligazón externa (interwiki).',
 'import-error-special' => 'Non se pode importar a páxina "$1" porque pertence a un espazo de nomes especial que non o permite.',
 'import-error-invalid' => 'Non se pode importar a páxina "$1" porque o seu nome non é válido.',
+'import-options-wrong' => '{{PLURAL:$2|Opción incorrecta|Opcións incorrectas}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'A páxina raíz dada é un título non válido.',
+'import-rootpage-nosubpage' => 'O espazo de nomes "$1" da páxina raíz non permite as subpáxinas.',
 
 # Import log
 'importlogpage' => 'Rexistro de importacións',
@@ -3041,16 +3049,34 @@ Isto, probabelmente, se debe a unha ligazón cara a un sitio externo que está n
 
 # Info page
 'pageinfo-title' => 'Información sobre "$1"',
-'pageinfo-header-edits' => 'Edicións',
-'pageinfo-header-watchlist' => 'Lista de vixilancia',
-'pageinfo-header-views' => 'Visitas',
-'pageinfo-subjectpage' => 'Páxina',
-'pageinfo-talkpage' => 'Páxina de conversa',
-'pageinfo-watchers' => 'Número de vixiantes',
-'pageinfo-edits' => 'Número de edicións',
-'pageinfo-authors' => 'Número de autores distintos',
+'pageinfo-header-basic' => 'Información básica',
+'pageinfo-header-edits' => 'Historial de edicións',
+'pageinfo-header-restrictions' => 'Protección da páxina',
+'pageinfo-header-properties' => 'Propiedades da páxina',
+'pageinfo-display-title' => 'Título mostrado',
+'pageinfo-default-sort' => 'Clave de ordenación por defecto',
+'pageinfo-length' => 'Lonxitude da páxina (en bytes)',
+'pageinfo-article-id' => 'ID da páxina',
+'pageinfo-robot-policy' => 'Estado do motor de procuras',
+'pageinfo-robot-index' => 'Indexable',
+'pageinfo-robot-noindex' => 'Non indexable',
 'pageinfo-views' => 'Número de visitas',
-'pageinfo-viewsperedit' => 'Visitas por edición',
+'pageinfo-watchers' => 'Número de vixiantes da páxina',
+'pageinfo-redirects-name' => 'Redireccións cara a esta páxina',
+'pageinfo-subpages-name' => 'Subpáxinas desta páxina',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|redirección|redireccións}}; $3 {{PLURAL:$3|non-redirección|non-redireccións}})',
+'pageinfo-firstuser' => 'Creador da páxina',
+'pageinfo-firsttime' => 'Data de creación da páxina',
+'pageinfo-lastuser' => 'Último editor',
+'pageinfo-lasttime' => 'Data da última edición',
+'pageinfo-edits' => 'Número total de edicións',
+'pageinfo-authors' => 'Número total de autores distintos',
+'pageinfo-recent-edits' => 'Número de edicións recentes (durante os últimos $1)',
+'pageinfo-recent-authors' => 'Número de autores distintos recentes',
+'pageinfo-restriction' => 'Protección da páxina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Palabra máxica|Palabras máxicas}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoría agochada|Categorías agochadas}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Modelo incluído|Modelos incluídos}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Clásica',
@@ -3099,11 +3125,12 @@ O seu sistema pode quedar comprometido se o executa.",
 'imagemaxsize' => "Límite de tamaño das imaxes:<br />''(nas páxinas de descrición de ficheiros)''",
 'thumbsize' => 'Tamaño da miniatura:',
 'widthheightpage' => '$1 × $2, $3 {{PLURAL:$3|páxina|páxinas}}',
-'file-info' => 'Tamaño do ficheiro: $1, tipo MIME: $2',
-'file-info-size' => '$1 × $2 píxeles, tamaño do ficheiro: $3, tipo MIME: $4',
-'file-info-size-pages' => '$1 × $2 píxeles, tamaño do ficheiro: $3, tipo MIME: $4, $5 {{PLURAL:$5|páxina|páxinas}}',
+'file-info' => 'tamaño do ficheiro: $1; tipo MIME: $2',
+'file-info-size' => '$1 × $2 píxeles; tamaño do ficheiro: $3; tipo MIME: $4',
+'file-info-size-pages' => '$1 × $2 píxeles; tamaño do ficheiro: $3; tipo MIME: $4; $5 {{PLURAL:$5|páxina|páxinas}}',
 'file-nohires' => 'Non se dispón dunha resolución máis grande.',
-'svg-long-desc' => 'ficheiro SVG, nominalmente $1 × $2 píxeles, tamaño do ficheiro: $3',
+'svg-long-desc' => 'ficheiro SVG; resolución de $1 × $2 píxeles; tamaño do ficheiro: $3',
+'svg-long-desc-animated' => 'ficheiro SVG animado; resolución de $1 × $2 píxeles; tamaño do ficheiro: $3',
 'show-big-image' => 'Imaxe na máxima resolución',
 'show-big-image-preview' => 'Tamaño desta vista previa: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Outra resolución|Outras resolucións}}: $1.',
@@ -3113,6 +3140,8 @@ O seu sistema pode quedar comprometido se o executa.",
 'file-info-png-looped' => 'en bucle',
 'file-info-png-repeat' => 'reproducido $1 {{PLURAL:$1|vez|veces}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|fotograma|fotogramas}}',
+'file-no-thumb-animation' => "'''Nota: Debido a algunhas limitacións técnicas, non se ve a animación das miniaturas deste ficheiro.'''",
+'file-no-thumb-animation-gif' => "'''Nota: Debido a algunhas limitacións técnicas, non se ve a animación das miniaturas das imaxes GIF de alta resolución como este ficheiro.'''",
 
 # Special:NewFiles
 'newimages' => 'Galería de imaxes novas',
@@ -3637,7 +3666,7 @@ O código de confirmación caduca o $6 ás $7.',
 
 # Delete conflict
 'deletedwhileediting' => "'''Aviso:''' Esta páxina foi borrada despois de que comezase a editala!",
-'confirmrecreate' => "O usuario [[User:$1|$1]] ([[User talk:$1|conversa]]) borrou este artigo despois de que vostede comezara a editalo, dando o seguinte motivo:
+'confirmrecreate' => "O usuario [[User:$1|$1]] ([[User talk:$1|conversa]]) borrou esta páxina despois de que vostede comezara a editala, dando o seguinte motivo:
 : ''$2''
 Por favor, confirme que realmente quere recrear esta páxina.",
 'confirmrecreate-noreason' => 'O usuario [[User:$1|$1]] ([[User talk:$1|conversa]]) borrou esta páxina despois de que vostede comezara a editala. Por favor, confirme que realmente quere recrear esta páxina.',
index 8abcd89..868dd32 100644 (file)
@@ -1148,9 +1148,9 @@ $1",
 'uploadtext' => "Ἔξεστί σοι χρῆσθαι τῷδε τῷ τύπῳ πρὸς ἐπιφόρτισιν ἀρχείων. Τὰ ἤδη ἐπιπεφορτισμένα ἀρχεῖα ἐν τῷ [[Special:FileList|καταλόγῳ ἐπιπεφορτισμένων ἀρχείων]] ή τῷ [[Special:Log/upload|καταλόγῳ ἐπιφορτίσεων]] εἰσί. Αἱ διαγραφαὶ καταγεγραμμέναι ἐν τῷ [[Special:Log/delete|καταλόγῳ διαγραφῶν]] εἰσί.
 
 Ἵνα συμπεριληφθῇ εἰκών τις ἐν δέλτῳ τινί, ἔξεστί σοι χρῆσθαι τοῖς συνδέσμοις:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' (χρῆσις τῆς πλήρους ἐκδόσεως τοῦ ἀρχείου)
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' (χρῆσις ἐκδόσεως τινὸς πλάτους 200 είκονοστοιχείων ἐν τῷ κυτίῳ ἐξ ἀριστερῶν τοῦ ὁρίου, ἔχουσα περιγραφὴν 'alt text')
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' (ἄμεσος σύζευξις μετὰ τοῦ αρχείου μέν, ἄνευ ἐμφανίσεως τοῦ ἀρχείου δέ)",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' (χρῆσις τῆς πλήρους ἐκδόσεως τοῦ ἀρχείου)
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' (χρῆσις ἐκδόσεως τινὸς πλάτους 200 είκονοστοιχείων ἐν τῷ κυτίῳ ἐξ ἀριστερῶν τοῦ ὁρίου, ἔχουσα περιγραφὴν 'alt text')
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' (ἄμεσος σύζευξις μετὰ τοῦ αρχείου μέν, ἄνευ ἐμφανίσεως τοῦ ἀρχείου δέ)",
 'upload-permitted' => 'Ἐπιτρεπόμενοι τύποι ἀρχείων: $1.',
 'upload-preferred' => 'Προκρινόμενοι τύποι ἀρχείων: $1.',
 'upload-prohibited' => 'Ἀπηγορευμένοι τύποι ἀρχείων: $1.',
@@ -1176,12 +1176,12 @@ $1",
 'large-file' => 'Τὸ προτεινόμενον μέγεθος τῶν ἀρχείων οὔκ ἐστι μεγαλύτερον τοῦ $1·
 τοῦδε τοῦ ἀρχείου ἐστὶ $2.',
 'largefileserver' => 'Τόδε τὸ ἀρχεῖον ἐστὶ μεῖζον τοῦ ἐπιτρεπτοῦ ὁρίου βάσει τῆς διαμορφώσεως τῆς ἐξυπηρετητικῆς μηχανῆς.',
-'fileexists' => "Ἀρχεῖόν τι ἔχον τόδε τὸ ὄνομα ἤδη ὑπαρκτὸν ἐστίν· ἔλεγξον τὸ '''<tt>[[:$1]]</tt>''' ἂν μὴ ᾖ βέβαιος περὶ το ἀλλάττειν αὐτό.
-[[$1|thumb]]",
-'fileexists-extension' => "Ἀρχεῖόν τι παρομοίως ὠνομασμένον ὑπάρχει: [[$2|thumb]]
-* Ὄνομα τοῦ πρὸς ἐπιφόρτισιν ἀρχείου: '''<tt>[[:$1]]</tt>'''
-* Ὄνομα ὑπάρχοντος ἀρχείου: '''<tt>[[:$2]]</tt>'''
-Ἐπίλεξον διάφορον ὄνομά τι.",
+'fileexists' => 'Ἀρχεῖόν τι ἔχον τόδε τὸ ὄνομα ἤδη ὑπαρκτὸν ἐστίν· ἔλεγξον τὸ <strong>[[:$1]]</strong> ἂν μὴ ᾖ βέβαιος περὶ το ἀλλάττειν αὐτό.
+[[$1|thumb]]',
+'fileexists-extension' => 'Ἀρχεῖόν τι παρομοίως ὠνομασμένον ὑπάρχει: [[$2|thumb]]
+* Ὄνομα τοῦ πρὸς ἐπιφόρτισιν ἀρχείου: <strong>[[:$1]]</strong>
+* Ὄνομα ὑπάρχοντος ἀρχείου: <strong>[[:$2]]</strong>
+Ἐπίλεξον διάφορον ὄνομά τι.',
 'file-exists-duplicate' => 'Τὸ ἀρχεῖον ἐστὶ διπλότυπον τοῦ/τῶν ἑξῆς {{PLURAL:$1|ἀρχείου|ἀρχείων}}:',
 'uploadwarning' => 'Προμήνυσις ἐπιφορτίσεως',
 'savefile' => 'Σῴζειν ἀρχεῖον',
@@ -1473,7 +1473,7 @@ $1",
 'linksearch-ns' => 'Ὀνοματεῖον:',
 'linksearch-ok' => 'Ζητεῖν',
 'linksearch-text' => 'Ἔξεστί σοι χρῆσθαι ὑποκαταστασίμοις φράσεσιν ὅπως "*.wikipedia.org".<br />
-Ὑποστηριζόμενα πρωτόκολλα: <tt>$1</tt>',
+Ὑποστηριζόμενα πρωτόκολλα: <code>$1</code>',
 'linksearch-line' => '$1 συνδεόμενον τῷ $2',
 
 # Special:ListUsers
@@ -2122,13 +2122,8 @@ $1',
 # Info page
 'pageinfo-title' => 'Πύστις περὶ "$1"',
 'pageinfo-header-edits' => 'Μεταγραφαί',
-'pageinfo-header-watchlist' => 'Τὰ ἐφορώμενα',
-'pageinfo-header-views' => 'Προβολαί',
-'pageinfo-subjectpage' => 'Δέλτος',
-'pageinfo-talkpage' => 'Δέλτος διαλέξεως',
-'pageinfo-edits' => 'Ἀριθμὸς μεταγραφῶν',
 'pageinfo-views' => 'Ἀριθμὸς προβολῶν',
-'pageinfo-viewsperedit' => 'Προβολαὶ ἀνὰ μεταγραφήν',
+'pageinfo-edits' => 'Ἀριθμὸς μεταγραφῶν',
 
 # Patrolling
 'markaspatrolleddiff' => 'Σεσημασμένη ὡς φρουρουμένη',
index 1fc40e8..3644766 100644 (file)
@@ -1497,7 +1497,7 @@ Weli Dateie uffeglade sin, sihsch im [[Special:Log/upload|Logbuech vu dr uffegla
 Zum e Datei oder e Bild in ere Syte yyzböue, schryybsch eifach:
 * '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:file.jpg]]</nowiki>''' fir di voll Version vu dr Datei
 * '''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:file.png|al text]]</nowiki>''' fir e 200 Pixel grossi Version im e Chaschte mit 'alt text' as Bschrybig
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' fir e diräkt Link zuer dr Datei ohni ass si aazeigt wird",
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' fir e diräkt Link zuer dr Datei ohni ass si aazeigt wird",
 'upload-permitted' => 'Dateitype, wu erlaubt sin: $1.',
 'upload-preferred' => 'Dateitype, wu bevorzugt sin: $1.',
 'upload-prohibited' => 'Dateitype, wu nit erlaubt sin: $1.',
@@ -1540,22 +1540,22 @@ Lueg au d [[Special:NewFiles|Galerii vu neije Dateie]] fir e visuälle Iberblick
 'largefileserver' => 'Die Datei isch gresser wie die vum Server yygstellti Maximalgressi.',
 'emptyfile' => 'Di uffeglade Datei isch schyyns läär. Dr Grund cha ne Tippfähler im Dateiname syy. Bitte iberprief, eb du die Datei wirkli wit uffelade.',
 'windows-nonascii-filename' => 'Des Wiki unterstitzt kei Dateinäme mit Sonderzeiche.',
-'fileexists' => "S git scho ne Datei mit däm Name.
-Wänn Du uf \"Datei spichere\" drucksch, no wird die Datei iberschribe.
-Bitte prief '''<tt>[[:\$1]]</tt>''', wänn Der nit sicher bisch.
-[[\$1|thumb]]",
-'filepageexists' => "E Bschryybigssyte isch scho as '''<tt>[[:$1]]</tt>''' aagleit wore, s git aber kei Datei mit däm Name.
+'fileexists' => 'S git scho ne Datei mit däm Name.
+Wänn Du uf "Datei spichere" drucksch, no wird die Datei iberschribe.
+Bitte prief <strong>[[:$1]]</strong>, wänn Der nit sicher bisch.
+[[$1|thumb]]',
+'filepageexists' => 'E Bschryybigssyte isch scho as <strong>[[:$1]]</strong> aagleit wore, s git aber kei Datei mit däm Name.
 Die Zämmefassig, wu Du yygee hesch, wird nit uf d Bschryybigssyte ibernuh.
 Du muesch d Bschryybigssyte noch em Uffelade vu dr Datei no manuäll bearbeite.
-[[$1|thumb]]",
-'fileexists-extension' => "S git scho ne Datei mit eme ähnlige Name: [[$2|thumb]]
-* Name vu Datei, wu soll uffeglade were: '''<tt>[[:$1]]</tt>'''
-* Name vu dr Datei, wu s scho git: '''<tt>[[:$2]]</tt>'''
-Bitte wehl e andre Name.",
+[[$1|thumb]]',
+'fileexists-extension' => 'S git scho ne Datei mit eme ähnlige Name: [[$2|thumb]]
+* Name vu Datei, wu soll uffeglade were: <strong>[[:$1]]</strong>
+* Name vu dr Datei, wu s scho git: <strong>[[:$2]]</strong>
+Bitte wehl e andre Name.',
 'fileexists-thumbnail-yes' => "Die Datei isch schyyns e Bild mit ere verringerte Gressi ''(thumbnail)''. [[$1|thumb]]
-Bitte prief d Datei '''<tt>[[:$1]]</tt>'''.
+Bitte prief d Datei <strong>[[:$1]]</strong>.
 Wänn s Bild in dr Originalgressi isch, no isch s nit netig, ass e extra Vorschaubild uffeglade wird.",
-'file-thumbnail-no' => "Dr Dateiname fangt mit '''<tt>$1</tt>''' aa. Des wyyst uf e Bild mit ere verringerte Gressi ''(thumbnail)'' hi.
+'file-thumbnail-no' => "Dr Dateiname fangt mit <strong>$1</strong> aa. Des wyyst uf e Bild mit ere verringerte Gressi ''(thumbnail)'' hi.
 Bitte prief, eb D s Bild in voller Uflesig vorlige hesch un lad derno des unter em Originalname uffe.",
 'fileexists-forbidden' => 'S git scho ne Datei mit däm Name. Si cha nit iberschribe wäre. Bitte gang zruck un lad die Datei unter eme andere Name uffe. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'S git scho ne Datei mit däm Name im Zentrale Mediearchiv.
@@ -1796,7 +1796,7 @@ Villicht witt d Bschryybig uf dr dertige [$2 Dateibschryybigssyte] bearbeite.',
 
 # MIME search
 'mimesearch' => 'MIME-Suechi',
-'mimesearch-summary' => 'Uf däre Spezialsyte chenne d Dateie noch em MIME-Typ gfilteret wäre. In dr Yygob muess es alliwyl dr Medie- un Subtyp din haa: <tt>image/jpeg</tt> (lueg Bildbschryybigssyte).',
+'mimesearch-summary' => 'Uf däre Spezialsyte chenne d Dateie noch em MIME-Typ gfilteret wäre. In dr Yygob muess es alliwyl dr Medie- un Subtyp din haa: <code>image/jpeg</code> (lueg Bildbschryybigssyte).',
 'mimetype' => 'MIME-Typ:',
 'download' => 'Abelade',
 
@@ -1992,7 +1992,7 @@ Lueg au d Lischt vu dr [[Special:WantedCategories|gwinschte Kategorie]].',
 'linksearch-pat' => 'Suechmuschter:',
 'linksearch-ns' => 'Namensruum:',
 'linksearch-ok' => 'Sueche',
-'linksearch-text' => 'Die Spezialsyte macht d Suechi no Syte megli, wu s bstimmti Weblink din het. Doderby chenne Platzhalter wie zem Byschpel <tt>*.byschpel.de</tt> brucht wäre. S mueß zmindecht ei Top-Level-Domain, z. B. „*.org“. aagee wäre. <br />Unterstitzti Protokoll: <tt>$1</tt> (Die bitte nit bi dr Suechaafrog aagee.)',
+'linksearch-text' => 'Die Spezialsyte macht d Suechi no Syte megli, wu s bstimmti Weblink din het. Doderby chenne Platzhalter wie zem Byschpel <code>*.byschpel.de</code> brucht wäre. S mueß zmindecht ei Top-Level-Domain, z. B. „*.org“. aagee wäre. <br />Unterstitzti Protokoll: <code>$1</code> (Die bitte nit bi dr Suechaafrog aagee.)',
 'linksearch-line' => '$1 isch vo $2 verknüpft',
 'linksearch-error' => 'Platzhalter chönne numme am Aafang verwändet werre.',
 
@@ -2792,15 +2792,10 @@ Die uf em lokale Rächner spychere un derno do uffelade.',
 # Info page
 'pageinfo-title' => 'Informatione zue „$1“',
 'pageinfo-header-edits' => 'Bearbeitunge',
-'pageinfo-header-watchlist' => 'Beobachtigslischte',
-'pageinfo-header-views' => 'Ufruef',
-'pageinfo-subjectpage' => 'Syte',
-'pageinfo-talkpage' => 'Diskussionssyte',
+'pageinfo-views' => 'Aazahl Sytenufruef',
 'pageinfo-watchers' => 'Aazahl vu Beobachter',
 'pageinfo-edits' => 'Aazahl Bearbeitige',
 'pageinfo-authors' => 'Aazahl vu unterschidlige Autore',
-'pageinfo-views' => 'Aazahl Sytenufruef',
-'pageinfo-viewsperedit' => 'Sytenufruef pro Bearbeitig',
 
 # Patrolling
 'markaspatrolleddiff' => 'Als patrulyrt markyre',
index 1887575..ab1b0be 100644 (file)
@@ -1548,9 +1548,9 @@ HTML નાકું ચકાસો',
 પહેલા ચડાવાયેલી ફાઇલ અહીં જુઓ કે શોધો  [[Special:FileList|list of uploaded files]], (પુનઃ) ચડાવેલી ફાઇલ પણ લોગમાં અહીં દર્શાવાઇ છે.  [[Special:Log/upload|upload log]], હટાવાયેલી ફાઇલોની યાદિ  [[Special:Log/delete|deletion log]].
 
 કોઇ ફાઇલને પાનામાં ઉમેરવા માટે, નીચેની કોઇ એક કડી પર ક્લિક કરો:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' ફાઇલની પૂર્ણ આવૃત્તિ વાપરવા 
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' to use a ડાબા હાંસિયા નજીક ચોકઠામાં 200 પિક્સેલ પહોળી ફાઇલ   'alt text' સાથે વર્ણન સહીત ચડાવવા 
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' ફાઇલના દર્શન કર્યા સિવાય સીધી ફાઇલ જોડવા માટે",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' ફાઇલની પૂર્ણ આવૃત્તિ વાપરવા 
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' to use a ડાબા હાંસિયા નજીક ચોકઠામાં 200 પિક્સેલ પહોળી ફાઇલ   'alt text' સાથે વર્ણન સહીત ચડાવવા 
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' ફાઇલના દર્શન કર્યા સિવાય સીધી ફાઇલ જોડવા માટે",
 'upload-permitted' => 'રજામંદ ફાઈલ પ્રકારો: $1.',
 'upload-preferred' => 'ઈચ્છીત ફાઈલ પ્રકારો: $1.',
 'upload-prohibited' => 'પ્રતિબંધીત ફાઈલ પ્રકારો: $1.',
@@ -1598,20 +1598,20 @@ HTML નાકું ચકાસો',
 કદાચ તે તેમાં રહેલ લાહિતીના પ્રકારને લીધે હશે.
 કૃપયા ખાત્રી કરો શું તમે ખરેખર આ ફાઇલ ચડાવવા માંગો છો.',
 'windows-nonascii-filename' => 'આ વીકી ફાઇલનામો મા વિશિષ્ટ અક્ષરો સાથે આધાર આપતું નથી.',
-'fileexists' => "આ નામે એક ફાઇલ પહેલેથી અસ્તિત્વમાં છે, કૃપયા  જો તમને ખાત્રી ન હોય તો અથવા બદલવા માંગતા હોય તો  '''<tt>[[:$1]]</tt>''' ચકાસો [[$1|thumb]]",
-'filepageexists' => "આ ફાઇલનું માહિતી પત્રક  '''<tt>[[:$1]]</tt>'''પર પહેલેથી અસ્તિત્વમાં છે, પણ તેનામે કોઇ ફાઇલ અસ્તિત્વમાં નથી.
+'fileexists' => 'આ નામે એક ફાઇલ પહેલેથી અસ્તિત્વમાં છે, કૃપયા  જો તમને ખાત્રી ન હોય તો અથવા બદલવા માંગતા હોય તો  <strong>[[:$1]]</strong> ચકાસો [[$1|thumb]]',
+'filepageexists' => 'આ ફાઇલનું માહિતી પત્રક  <strong>[[:$1]]</strong>પર પહેલેથી અસ્તિત્વમાં છે, પણ તેનામે કોઇ ફાઇલ અસ્તિત્વમાં નથી.
 તમે લખેલ સારાંશએ વર્ણનમાં નહીં દેખાય.
 તમે જો ઇચ્છો કે તમારો સારાંશ આમાં દેખાય તો, તે માટે તમારે જાતે તેમાં ફેરેફાર કરવો પડશે. 
-[[$1|thumb]]",
-'fileexists-extension' => "આ જ નામે ફાઇલ પહેલેથી અસ્તિત્વ માં છે: [[$2|thumb]]
-* ચડાવાતી ફાઇલનું નામ છે: '''<tt>[[:$1]]</tt>'''
-* ઓઅહેલેથી વિહરમાન ફાઇલનું નામ : '''<tt>[[:$2]]</tt>'''
-કૃપયા અન્ય નામ આપો.",
-'fileexists-thumbnail-yes' => "આ ફાઇલ સંકોચેલી ફાઇલનું લઘુ ચિત્ર છે.
+[[$1|thumb]]',
+'fileexists-extension' => 'આ જ નામે ફાઇલ પહેલેથી અસ્તિત્વ માં છે: [[$2|thumb]]
+* ચડાવાતી ફાઇલનું નામ છે: <strong>[[:$1]]</strong>
+* ઓઅહેલેથી વિહરમાન ફાઇલનું નામ : <strong>[[:$2]]</strong>
+કૃપયા અન્ય નામ આપો.',
+'fileexists-thumbnail-yes' => 'આ ફાઇલ સંકોચેલી ફાઇલનું લઘુ ચિત્ર છે.
 [[$1|thumb]]
-કૃપયા ફાઇલ તપાસો  '''<tt>[[:$1]]</tt>'''.
-જો તપાસેલી ફાઇલ તેની મૂળ પ્રતની આકૃતિ હોય તો વધારાની લઘુચિત્ર ચડાવવાની જરૂર નથી.",
-'file-thumbnail-no' => "ફાઇલનું નામ '''<tt>$1</tt>'''થી શરૂ થાય છે.
+કૃપયા ફાઇલ તપાસો  <strong>[[:$1]]</strong>.
+જો તપાસેલી ફાઇલ તેની મૂળ પ્રતની આકૃતિ હોય તો વધારાની લઘુચિત્ર ચડાવવાની જરૂર નથી.',
+'file-thumbnail-no' => "ફાઇલનું નામ <strong>$1</strong>થી શરૂ થાય છે.
 લાગે છે કે આ ઘટાડેલા કદનું ચિત્ર  ''(thumbnail)'' છે..
 જો તમારી સાથે પૂર્ણ ઘનત્વ ધરાવતી ચિત્રની ફાઇલ હોય તો જ આ ફાઇલ ચડાવશો, અન્યથા ફાઇલનું નામ બદલશો.",
 'fileexists-forbidden' => 'આ નામની ફાઇલ પહેલેથી મોજુદ છે અને તેના ઉપર લેખન કરી શકાશે નહી.
@@ -1856,7 +1856,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 # MIME search
 'mimesearch' => 'MIME શોધ',
 'mimesearch-summary' => 'આ પાનાનો ઉપયોગ MIME-પ્રકાર અનુસાર ફીલ્ટર કરવા માટે ઉપયોગ થાય છે.  ફાThis page enables the filtering of files for its MIME-type.
-ઇનપુટ: પ્રકાર, e.g. <tt>image/jpeg</tt>.',
+ઇનપુટ: પ્રકાર, e.g. <code>image/jpeg</code>.',
 'mimetype' => 'MIME પ્રકાર:',
 'download' => 'ડાઉનલોડ',
 
@@ -2057,7 +2057,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'linksearch-ok' => 'શોધ',
 'linksearch-text' => '"*.wikipedia.org" જેવા વાઈલ્ડાકાર્ડ અહીં વાપર્યા હોઈ શકે છે.
 ઓછામાં ઓછું ઉચ્ચસ્તરનું ડોમેઇન જરૂરી છે, દા.ત. \'\'*.org".<br />
-માન્ય પ્રોટોકોલ : <tt>$1</tt> (આમાનું એકેય તમારી શોધમાં ના ઉમેરશો).',
+માન્ય પ્રોટોકોલ : <code>$1</code> (આમાનું એકેય તમારી શોધમાં ના ઉમેરશો).',
 'linksearch-line' => '$1 એ $2થી જોડાયેલ છે',
 'linksearch-error' => 'યજમાન નામની શરૂઆતમાં જ વાઈલ્ડકાર્ડ પ્રકટ થશે',
 
@@ -2916,15 +2916,10 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 # Info page
 'pageinfo-title' => ' $1 પાના ની માહિતી નૂ મથાડૂ',
 'pageinfo-header-edits' => 'કરેલા ફેરફાર',
-'pageinfo-header-watchlist' => 'ધ્યાનસૂચિ',
-'pageinfo-header-views' => 'દ્રશ્ય',
-'pageinfo-subjectpage' => 'પૃષ્ઠ',
-'pageinfo-talkpage' => 'ચર્ચા પત્ર',
+'pageinfo-views' => 'જોનારાની સંખ્યા',
 'pageinfo-watchers' => 'નીરીક્ષકોની સંખ્યા',
 'pageinfo-edits' => 'સંપાદનોની સંખ્યા',
 'pageinfo-authors' => 'ક્ષેત્રના લેખકોની સંખ્યા',
-'pageinfo-views' => 'જોનારાની સંખ્યા',
-'pageinfo-viewsperedit' => 'પ્રતિ ફેરફાર ના દ્રશ્યો',
 
 # Patrolling
 'markaspatrolleddiff' => 'નિરીક્ષીત અંકિત કરો',
index a48bd4f..de9ed56 100644 (file)
@@ -47,7 +47,6 @@ $messages = array(
 'tog-watchlisthideown' => 'Kam-sṳ lie̍t-péu chûng yún-chhòng ngô-ke phiên-cho',
 'tog-watchlisthidebots' => 'Kam-sṳ lie̍t-péu chûng yún-chhòng kî-hi-ngìn ke phiên-chho',
 'tog-watchlisthideminor' => 'Kam-sṳ lie̍t-péu chûng yún-chhòng séu-siû-kói',
-'tog-nolangconversion' => 'Put-yeu chin-hàng ngî-ngièn chón-von',
 'tog-ccmeonemails' => 'Tông ngô-ki email pûn khì-thâ yung-fu sṳ̀, ya-ki yit-fun fuk-pún to ngô-ke sin-siông.',
 'tog-diffonly' => 'Chhai pí-káu lióng-ke siû-thin pán-pún chhâ-yi sṳ̀ put hién-sṳ vùn-chông nui-yùng.',
 
@@ -797,16 +796,16 @@ Chhai [[Special:Watchlist|ngì-ke kam-sṳ lie̍t-péu]] chûng ke ya̍p fi hié
 'large-file' => 'Kien-ngi tóng-on thai-séu put-nèn chhêu-ko $1; pún tóng-on thai-séu he $2.',
 'largefileserver' => 'Liá-ke tóng-on ke thai-séu fu̍k-chhiùng-hi fûn-phi yún-chún ke thai-séu hàn-yeu thai.',
 'emptyfile' => 'Ngì só song-chhòn ke tóng-on put chhùn-chhai. Liá khó-nèn he chhut-yì tóng-on miàng chho-ngu. Chhiáng kiám-chhà ngì he-feu chṳ̂n yeu song-chhòn chhṳ́ tóng-on.',
-'fileexists' => "Yí-kîn chhùn-chhai siông-thùng miàng-chhṳ̂n ke tóng-on, kó-yèn ngì mò-fap khok-thin ngì he-feu yeu kói-pien kì, chhiáng kiám-chhà '''<tt>[[:$1]]</tt>'''.
-[[$1|thumb]]",
-'fileexists-extension' => "Yit-ke siông-sṳ tóng-miàng ke tóng-on yí-kîn chhùn-chhai: [[$2|thumb]]
-* Song-chhòn tóng-on ke tóng-miàng: '''<tt>[[:$1]]</tt>'''
-* Hien-chhai yû tóng-on ke tóng-miàng: '''<tt>[[:$2]]</tt>'''
-Chhiáng sién-chet yit-ke put-thùng ke miàng-sṳ.",
+'fileexists' => 'Yí-kîn chhùn-chhai siông-thùng miàng-chhṳ̂n ke tóng-on, kó-yèn ngì mò-fap khok-thin ngì he-feu yeu kói-pien kì, chhiáng kiám-chhà <strong>[[:$1]]</strong>.
+[[$1|thumb]]',
+'fileexists-extension' => 'Yit-ke siông-sṳ tóng-miàng ke tóng-on yí-kîn chhùn-chhai: [[$2|thumb]]
+* Song-chhòn tóng-on ke tóng-miàng: <strong>[[:$1]]</strong>
+* Hien-chhai yû tóng-on ke tóng-miàng: <strong>[[:$2]]</strong>
+Chhiáng sién-chet yit-ke put-thùng ke miàng-sṳ.',
 'fileexists-thumbnail-yes' => "Liá-ke tóng-on chhin-chhiong he yit-pu thù-hìn ke suk-thù pán-pún ''(suk-thù)''. [[$1|thumb]]
-Chhiáng kiám-chhà chhîn-chhú ke tóng-on '''<tt>[[:$1]]</tt>'''.
+Chhiáng kiám-chhà chhîn-chhú ke tóng-on <strong>[[:$1]]</strong>.
 Kó-yèn kiám-chhà heu ke tóng-on he khiung-thùng ngièn-pún thù-hiong ke thai-séu he yit-yong, chhiu put-yung song-chhòn tô yit-puk suk-thù.",
-'file-thumbnail-no' => "Ke tóng-on he yî '''<tt>$1</tt>''' khôi-sṳ́.
+'file-thumbnail-no' => "Ke tóng-on he yî <strong>$1</strong> khôi-sṳ́.
 Hó-chhiong yit-puk thù-hìn ke suk-thù pán-pún ''(thù-hìn)''.
 Kó-yèn ngì yû liá-ke thù-hìn ke vàn-cháng thai-séu.",
 'fileexists-forbidden' => 'Yí-kîn chhùn-chhai ke siông-thùng miàng-chhṳ̂n ke tóng-on; chhiáng fì-chón pin yung yit-ke sîn-ke  miàng-chhṳ̂n lòi song-chhòn chhṳ́ tóng-on.[[File:$1|thumb|center|$1]]',
@@ -876,7 +875,7 @@ Kó-yèn ngì yû liá-ke thù-hìn ke vàn-cháng thai-séu.",
 
 # MIME search
 'mimesearch' => 'MIME chhà-chhìm',
-'mimesearch-summary' => 'Pún vùn-chông sṳ-yung tóng-on MIME lui-hìn ko-li-hi. Sû-ngi̍p: nui-yùng lui-hìn yì-yi <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Pún vùn-chông sṳ-yung tóng-on MIME lui-hìn ko-li-hi. Sû-ngi̍p: nui-yùng lui-hìn yì-yi <code>image/jpeg</code>.',
 'mimetype' => 'MIME lui-hìn:',
 'download' => 'hâ-chai',
 
index 084e434..d13d169 100644 (file)
@@ -675,10 +675,10 @@ $1',
 'databaseerror' => 'שגיאת בסיס נתונים',
 'dberrortext' => 'אירעה שגיאת תחביר בשאילתה לבסיס הנתונים.
 שגיאה זו עלולה להעיד על באג בתוכנה.
\94ש×\90×\99×\9cת×\94 ×\94×\90×\97ר×\95× ×\94 ×©×\91×\95צע×\94 ×\9c×\91ס×\99ס ×\94נת×\95× ×\99×\9d הייתה:
-<blockquote><tt>$1</tt></blockquote>
-מתוך הפונקציה "<tt>$2</tt>".
-בסיס הנתונים החזיר את השגיאה "<tt>$3: $4</tt>".',
\94ש×\90×\99×\9cת×\94 ×\94×\90×\97ר×\95× ×\94 ×\9c×\91ס×\99ס ×\94נת×\95× ×\99×\9d ×©×\94ת×\95×\9b× ×\94 × ×\99סת×\94 ×\9c×\94ר×\99×¥ הייתה:
+<blockquote lang="en" dir="ltr"><code>$1</code></blockquote>
+מתוך הפונקציה "<code lang="en" dir="ltr">$2</code>".
+בסיס הנתונים החזיר את השגיאה הבאה: "<samp lang="en" dir="ltr">$3: $4</samp>".',
 'dberrortextcl' => 'אירעה שגיאת תחביר בשאילתה לבסיס הנתונים.
 השאילתה האחרונה שבוצעה לבסיס הנתונים הייתה:
 "$1"
@@ -1033,11 +1033,10 @@ $2
 'userpage-userdoesnotexist-view' => 'חשבון המשתמש "$1" אינו רשום.',
 'blocked-notice-logextract' => 'משתמש זה חסום כרגע.
 פעולת יומן החסימות האחרונה מוצגת להלן:',
-'clearyourcache' => "'''הערה:''' לאחר השמירה, עליכם לנקות את זיכרון המטמון (Cache) של הדפדפן כדי להבחין בשינויים.
+'clearyourcache' => "'''הערה:''' לאחר השמירה, עליכם לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
 * '''פיירפוקס / ספארי:''' לחצו על Shift בעת לחיצתכם על '''העלה מחדש''' (Reload), או הקישו על ''Ctrl-F5'' או על ''Ctrl-R'' (או על ''<span dir=\"ltr\">⌘-R</span>'' במחשב מק)
-* '''Google Chrome:''' לחצו על ''Ctrl-Shift-R'' (או על ''<span dir=\"ltr\">⌘-Shift-R</span>'' במק)
+* '''גוגל כרום:''' לחצו על ''Ctrl-Shift-R'' (או על ''<span dir=\"ltr\">⌘-Shift-R</span>'' במק)
 * '''אינטרנט אקספלורר:''' לחצו על Ctrl בעת לחיצתכם על '''רענן''' (Refresh), או הקישו על ''Ctrl-F5''
-* '''Konqueror:''' לחצו על '''טען מחדש''' (Reload) או הקישו על ''F5''
 * '''אופרה''': נקו את המטמון ב־''Tools‏ ← Preferences''",
 'usercssyoucanpreview' => "'''עצה:''' השתמשו בלחצן \"{{int:showpreview}}\" כדי לבחון את גיליון ה־CSS החדש שלכם לפני השמירה.",
 'userjsyoucanpreview' => "'''עצה:''' השתמשו בלחצן \"{{int:showpreview}}\" כדי לבחון את סקריפט ה־JavaScript החדש שלכם לפני השמירה.",
@@ -1760,9 +1759,9 @@ $1",
 כדי לראות או לחפש קבצים שהועלו בעבר אנא פנו ל[[Special:FileList|רשימת הקבצים שהועלו]], וכמו כן, העלאות (כולל העלאות של גרסה חדשה) מוצגות ב[[Special:Log/upload|יומן ההעלאות]], ומחיקות ב[[Special:Log/delete|יומן המחיקות]].
 
 כדי לכלול קובץ בדף, השתמשו בקישור באחת הצורות הבאות:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' לשימוש בגרסה המלאה של הקובץ
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|טקסט תיאור]]</nowiki></tt>''' לשימוש בגרסה מוקטנת ברוחב 200 פיקסלים בתיבה בצד שמאל של הדף, עם 'טקסט תיאור' כתיאור
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' לקישור ישיר לקובץ בלי להציגו",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' לשימוש בגרסה המלאה של הקובץ
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|טקסט תיאור]]</nowiki></code>''' לשימוש בגרסה מוקטנת ברוחב 200 פיקסלים בתיבה בצד שמאל של הדף, עם 'טקסט תיאור' כתיאור
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' לקישור ישיר לקובץ בלי להציגו",
 'upload-permitted' => 'סוגי קבצים מותרים: $1.',
 'upload-preferred' => 'סוגי קבצים מומלצים: $1.',
 'upload-prohibited' => 'סוגי קבצים אסורים: $1.',
@@ -1807,20 +1806,20 @@ $1",
 'largefileserver' => 'גודל הקובץ שהעליתם חורג ממגבלת השרת.',
 'emptyfile' => 'נראה שהקובץ שהעליתם ריק. ייתכן שהסיבה לכך היא שגיאת הקלדה בשם הקובץ. אנא ודאו שזהו הקובץ שברצונכם להעלות.',
 'windows-nonascii-filename' => 'אתר ויקי זה אינו תומך בשמות קבצים עם תווים מיוחדים או תווים שאינם באנגלית.',
-'fileexists' => "קובץ בשם זה כבר קיים, אנא בדקו את '''<tt>[[:$1]]</tt>''' אם אינכם בטוחים שברצונכם להחליף אותו.
-[[$1|thumb]]",
-'filepageexists' => "דף תיאור הקובץ עבור קובץ זה כבר נוצר ב'''<tt>[[:$1]]</tt>''', אך לא קיים קובץ בשם זה.
+'fileexists' => 'קובץ בשם זה כבר קיים, אנא בדקו את <strong>[[:$1]]</strong> אם אינכם בטוחים שברצונכם להחליף אותו.
+[[$1|thumb]]',
+'filepageexists' => 'דף תיאור הקובץ עבור קובץ זה כבר נוצר ב<strong>[[:$1]]</strong>, אך לא קיים קובץ בשם זה.
 תיאור הקובץ שתכתבו לא יופיע בדף תיאור הקובץ.
-כדי לגרום לו להופיע שם, יהיה עליכם לערוך אותו ידנית. [[$1|thumb]]",
-'fileexists-extension' => "קובץ עם שם דומה כבר קיים: [[$2|thumb]]
-* שם הקובץ המועלה: '''<tt>[[:$1]]</tt>'''
-* שם הקובץ הקיים: '''<tt>[[:$2]]</tt>'''
-אנא בחרו שם אחר.",
-'fileexists-thumbnail-yes' => "הקובץ הוא כנראה תמונה מוקטנת (ממוזערת). [[$1|thumb]]
-אנא בדקו את הקובץ '''<tt>[[:$1]]</tt>'''.
-אם הקובץ שבדקתם הוא אותה התמונה בגודל מקורי, אין זה הכרחי להעלות גם תמונה ממוזערת.",
-'file-thumbnail-no' => "שם הקובץ מתחיל עם '''<tt>$1</tt>'''. נראה שזוהי תמונה מוקטנת (ממוזערת).
-אם התמונה בגודל מלא מצויה ברשותכם, אנא העלו אותה ולא את התמונה הממוזערת; אחרת, אנא שנו את שם הקובץ.",
+כדי לגרום לו להופיע שם, יהיה עליכם לערוך אותו ידנית. [[$1|thumb]]',
+'fileexists-extension' => 'קובץ עם שם דומה כבר קיים: [[$2|thumb]]
+* שם הקובץ המועלה: <strong>[[:$1]]</strong>
+* שם הקובץ הקיים: <strong>[[:$2]]</strong>
+אנא בחרו שם אחר.',
+'fileexists-thumbnail-yes' => 'הקובץ הוא כנראה תמונה מוקטנת (ממוזערת). [[$1|thumb]]
+אנא בדקו את הקובץ <strong>[[:$1]]</strong>.
+אם הקובץ שבדקתם הוא אותה התמונה בגודל מקורי, אין זה הכרחי להעלות גם תמונה ממוזערת.',
+'file-thumbnail-no' => 'שם הקובץ מתחיל עם <strong>$1</strong>. נראה שזוהי תמונה מוקטנת (ממוזערת).
+אם התמונה בגודל מלא מצויה ברשותכם, אנא העלו אותה ולא את התמונה הממוזערת; אחרת, אנא שנו את שם הקובץ.',
 'fileexists-forbidden' => 'קובץ בשם זה כבר קיים, ואינכם יכולים להחליף אותו.
 אם אתם עדיין מעוניינים להעלות קובץ זה, אנא חזרו לדף הקודם והעלו את הקובץ תחת שם חדש.
 [[File:$1|thumb|center|$1]]',
@@ -2051,6 +2050,7 @@ $1',
 'shared-repo' => 'מקום איחסון משותף',
 'shared-repo-name-wikimediacommons' => 'ויקישיתוף',
 'filepage.css' => '/* הסגנונות הנכתבים כאן יוכללו בדף תיאור הקובץ, כולל באתרי ויקי זרים */',
+'upload-disallowed-here' => 'למרבה הצער, אין לך הרשאה להעלות גרסה אחרת של התמונה הזאת.',
 
 # File reversion
 'filerevert' => 'שחזור $1',
@@ -2085,7 +2085,7 @@ $1',
 # MIME search
 'mimesearch' => 'חיפוש MIME',
 'mimesearch-summary' => 'דף זה מאפשר את סינון הקבצים לפי סוג ה־MIME שלהם.
-סוג ה־MIME בנוי בצורה "סוג תוכן/סוג משני", לדוגמה <tt>image/jpeg</tt>.',
+סוג ה־MIME בנוי בצורה "סוג תוכן/סוג משני", לדוגמה <code>image/jpeg</code>.',
 'mimetype' => 'סוג MIME:',
 'download' => 'הורדה',
 
@@ -2158,6 +2158,7 @@ $1',
 # Miscellaneous special pages
 'nbytes' => '{{PLURAL:$1|בית אחד|$1 בתים}}',
 'ncategories' => '{{PLURAL:$1|קטגוריה אחת|$1 קטגוריות}}',
+'ninterwikis' => '{{PLURAL:$1|קישור בינוויקי קחד|$1 קישורי בינוויקי}}',
 'nlinks' => '{{PLURAL:$1|קישור אחד|$1 קישורים}}',
 'nmembers' => '{{PLURAL:$1|דף אחד|$1 דפים}}',
 'nrevisions' => '{{PLURAL:$1|גרסה אחת|$1 גרסאות}}',
@@ -2186,6 +2187,7 @@ $1',
 'mostlinkedtemplates' => 'התבניות המקושרות ביותר',
 'mostcategories' => 'הדפים עם המספר הרב ביותר של קטגוריות',
 'mostimages' => 'הקבצים המקושרים ביותר',
+'mostinterwikis' => 'הדפים עם המספר הרב ביותר של קישורי בינוויקי',
 'mostrevisions' => 'הדפים בעלי מספר העריכות הגבוה ביותר',
 'prefixindex' => 'רשימת הדפים המתחילים ב…',
 'prefixindex-namespace' => 'רשימת הדפים המתחילים ב… (במרחב השם $1)',
@@ -2287,7 +2289,7 @@ $1',
 'linksearch-ok' => 'חיפוש',
 'linksearch-text' => 'ניתן להשתמש בתווים כלליים, לדוגמה <span dir="ltr">"*.wikipedia.org"</span>.
 נדרשת לפחות סיומת אינטרנט (TLD), למשל <span dir="ltr">"*.org"</span>.<br />
-פרוטוקולים נתמכים: <tt dir="ltr">$1</tt> (אין להוסיף אותם בחיפוש).',
+פרוטוקולים נתמכים: <code dir="ltr">$1</code> (אין להוסיף אותם בחיפוש).',
 'linksearch-line' => '$1 מקושר מהדף $2',
 'linksearch-error' => 'תווים כלליים יכולים להופיע רק בתחילת שם השרת.',
 
@@ -2333,6 +2335,8 @@ $1',
 'mailnologin' => 'אין כתובת לשליחה',
 'mailnologintext' => 'עליכם [[Special:UserLogin|להיכנס לחשבון]] ולהגדיר לעצמכם כתובת דואר אלקטרוני תקינה ב[[Special:Preferences|העדפות המשתמש]] שלכם כדי לשלוח דואר למשתמש אחר.',
 'emailuser' => 'שליחת דואר אלקטרוני למשתמש זה',
+'emailuser-title-target' => 'שליחת דוא"ל {{GENDER:$1|למשתמש זה|למשתמשת זו}}',
+'emailuser-title-notarget' => 'שליחת דוא"ל למשתמש',
 'emailpage' => 'שליחת דואר למשתמש',
 'emailpagetext' => 'ניתן להשתמש בטופס כדי לשלוח הודעת דואר אלקטרוני למשתמש זה.
 כתובת הדואר האלקטרוני שכתבתם ב[[Special:Preferences|העדפות המשתמש שלכם]] תופיע ככתובת ממנה נשלחה ההודעה, כדי לאפשר תגובה ישירה למכתב.',
@@ -2971,6 +2975,7 @@ $1',
 'import-interwiki-templates' => 'ייבוא גם של כל התבניות המוכללות בדף',
 'import-interwiki-submit' => 'ייבוא',
 'import-interwiki-namespace' => 'העתקה למרחב השם:',
+'import-interwiki-rootpage' => 'דף הבסיס של היעד (לא חובה):',
 'import-upload-filename' => 'שם הקובץ:',
 'import-comment' => 'הערה:',
 'importtext' => 'נא לייצא את הקובץ מאתר המקור באמצעות ב[[Special:Export|כלי הייצוא]].
@@ -3004,6 +3009,9 @@ $1',
 'import-error-interwiki' => 'לא ניתן לייבא את הדף "$1" כיוון ששמו שמור לקישור חיצוני (בין־ויקי).',
 'import-error-special' => 'לא ניתן לייבא את הדף "$1" כיוון שהוא שייך למרחב שם מיוחד שלא יכול להכיל דפים.',
 'import-error-invalid' => 'לא ניתן לייבא את הדף "$1" כיוון ששמו אינו תקין.',
+'import-options-wrong' => '{{PLURAL:$2|אפשרות שגויה|אפשרויות שגויות}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'לדף הבסיס שניתן יש כותרת לא תקינה.',
+'import-rootpage-nosubpage' => 'מרחב השם "$1" של דף הבסיס אינו מאפשר דפי־משנה.',
 
 # Import log
 'importlogpage' => 'יומן ייבוא',
@@ -3156,16 +3164,34 @@ $1',
 
 # Info page
 'pageinfo-title' => 'מידע על "$1"',
-'pageinfo-header-edits' => 'עריכות',
-'pageinfo-header-watchlist' => 'רשימת המעקב',
-'pageinfo-header-views' => 'צפיות',
-'pageinfo-subjectpage' => 'דף',
-'pageinfo-talkpage' => 'דף שיחה',
-'pageinfo-watchers' => 'מספר עוקבים',
-'pageinfo-edits' => 'מספר עריכות',
-'pageinfo-authors' => 'מספר כותבים נפרדים',
-'pageinfo-views' => 'מספר צפיות',
-'pageinfo-viewsperedit' => 'צפיות לכל עריכה',
+'pageinfo-header-basic' => 'מידע בסיסי',
+'pageinfo-header-edits' => 'היסטוריית עריכות',
+'pageinfo-header-restrictions' => 'הגנה על הדף',
+'pageinfo-header-properties' => 'מאפייני הדף',
+'pageinfo-display-title' => 'כותרת התצוגה',
+'pageinfo-default-sort' => 'מפתח המיון הרגיל',
+'pageinfo-length' => 'אורך הדף (בבתים)',
+'pageinfo-article-id' => 'מזהה הדף',
+'pageinfo-robot-policy' => 'מצב מנוע חיפוש',
+'pageinfo-robot-index' => 'יכול להיאסף למפתחות חיפוש',
+'pageinfo-robot-noindex' => 'לא יכול להיאסף למפתחות חיפוש',
+'pageinfo-views' => 'מספר הצפיות',
+'pageinfo-watchers' => 'מספר העוקבים אחר הדף',
+'pageinfo-redirects-name' => 'הפניות לדף זה',
+'pageinfo-subpages-name' => 'דפי־משנה של דף זה',
+'pageinfo-subpages-value' => '$1 ({{PLURAL:$2|הפניה אחת|$2 הפניות}}; {{PLURAL:$3|דף רגיל אחד|$3 דפים רגילים}})',
+'pageinfo-firstuser' => 'יוצר הדף',
+'pageinfo-firsttime' => 'תאריך יצירת הדף',
+'pageinfo-lastuser' => 'העורך האחרון',
+'pageinfo-lasttime' => 'תאריך העריכה האחרונה',
+'pageinfo-edits' => 'מספר העריכות הכולל',
+'pageinfo-authors' => 'המספר הכולל של כותבים שונים',
+'pageinfo-recent-edits' => 'מספר העריכות לאחרונה ($1)',
+'pageinfo-recent-authors' => 'מספר הכותבים הייחודיים לאחרונה',
+'pageinfo-restriction' => 'הגנה על הדף (<code>$1</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|מילת קסם|מילות קסם}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|קטגוריה מוסתרת|קטגוריות מוסתרות}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|תבנית מוכללת|תבניות מוכללות}} ($1)',
 
 # Skin names
 'skinname-standard' => 'קלאסי',
@@ -3220,6 +3246,7 @@ $1',
 'file-info-size-pages' => '<span dir="ltr">$1 × $2</span> פיקסלים, גודל הקובץ: $3, סוג MIME‏: $4, {{PLURAL:$5|דף אחד|$5 דפים}}',
 'file-nohires' => 'אין גרסה ברזולוציה גבוהה יותר.',
 'svg-long-desc' => 'קובץ SVG, הגודל המקורי: <span dir="ltr">$1 × $2</span> פיקסלים, גודל הקובץ: $3',
+'svg-long-desc-animated' => 'קובץ SVG מונפש, הגודל המקורי: <span dir="ltr">$1 × $2</span> פיקסלים, גודל הקובץ: $3',
 'show-big-image' => 'תמונה ברזולוציה גבוהה יותר',
 'show-big-image-preview' => 'גודל תצוגה זו: $1.',
 'show-big-image-other' => '{{PLURAL:$2|רזולוציה אחרת|רזולוציות אחרות}}: $1.',
@@ -3229,6 +3256,8 @@ $1',
 'file-info-png-looped' => 'בלולאה',
 'file-info-png-repeat' => 'הוצג {{PLURAL:$1|פעם אחת|$1 פעמים|פעמיים}}',
 'file-info-png-frames' => '{{PLURAL:$1|תמונה אחת|$1 תמונות}}',
+'file-no-thumb-animation' => "'''לתשומת לבך: בשל מגבלות טכניות, תמונות ממוזערות של הקובץ הזה לא תהיינה מונפשות.'''",
+'file-no-thumb-animation-gif' => "'''לתשומת לבך: בשל מגבלות טכניות, תמונות ממוזערות של תמונות GIF בעלות רזולוציה גבוהה כמו זאת לא תהיינה מונפשות.'''",
 
 # Special:NewFiles
 'newimages' => 'גלריית קבצים חדשים',
index a324465..3e3ecf9 100644 (file)
@@ -1559,13 +1559,13 @@ HTML टैग की जाँच करें।',
 'upload-recreate-warning' => "'''चेतावनी: उस नाम की फ़ाइल हटाई या स्थानान्तरित की जा चुकी है।'''
 
 इस पृष्ठ के हटाने और स्थानान्तरण के लॉग यहाँ सन्दर्भ के लिए दिये हैं:",
-'uploadtext' => "à¥\9eाà¤\87ल à¤\85पलà¥\8bड à¤\95रनà¥\87 à¤\95à¥\87 à¤²à¤¿à¤\8f à¤¨à¥\80à¤\9aà¥\87 à¤¦à¤¿à¤\8f à¥\9eॉर्म का प्रयोग करें।
-[[Special:FileList|à¤\85पलà¥\8bड à¤\95à¥\80 à¤\97à¤\88 à¥\9eाà¤\87लà¥\8bà¤\82 à¤\95à¥\80 à¤¸à¥\82à¤\9aà¥\80]] à¤¸à¥\87 à¤\86प à¤ªà¤¹à¤²à¥\87 à¤ªà¤¹à¤²à¥\87 à¤\85पलà¥\8bड à¤\95à¥\80 à¤\97à¤\88 à¥\9eाà¤\87लà¥\8bà¤\82 à¤\95à¥\8b à¤¦à¥\87à¤\96 à¤¸à¤\95तà¥\87 à¤¹à¥\88à¤\82 à¤\94र à¤\89नमà¥\87à¤\82 à¤\96à¥\8bà¤\9c à¤¸à¤\95तà¥\87 à¤¹à¥\88à¤\82। à¤¦à¥\8bबारा à¤\85पलà¥\8bड à¤\95à¥\80 à¤\97à¤\88 à¥\9eाà¤\87लà¥\8bà¤\82 à¤\95à¥\8b [[Special:Log/upload|à¤\85पलà¥\8bड à¤¸à¥\82à¤\9aà¥\80]] à¤®à¥\87à¤\82 à¤¦à¥\87à¤\96à¥\87à¤\82, à¤\94र à¤®à¤¿à¤\9fाà¤\88 à¥\9eाइलों के लिए [[Special:Log/delete|हटाने की सूची]] देखें।
+'uploadtext' => "फ़ाà¤\87ल à¤\85पलà¥\8bड à¤\95रनà¥\87 à¤\95à¥\87 à¤²à¤¿à¤\8f à¤¨à¥\80à¤\9aà¥\87 à¤¦à¤¿à¤\8f à¤«à¤¼ॉर्म का प्रयोग करें।
+[[Special:FileList|à¤\85पलà¥\8bड à¤\95à¥\80 à¤\97à¤\88 à¤«à¤¼à¤¾à¤\87लà¥\8bà¤\82 à¤\95à¥\80 à¤¸à¥\82à¤\9aà¥\80]] à¤¸à¥\87 à¤\86प à¤ªà¤¹à¤²à¥\87 à¤ªà¤¹à¤²à¥\87 à¤\85पलà¥\8bड à¤\95à¥\80 à¤\97à¤\88 à¤«à¤¼à¤¾à¤\87लà¥\8bà¤\82 à¤\95à¥\8b à¤¦à¥\87à¤\96 à¤¸à¤\95तà¥\87 à¤¹à¥\88à¤\82 à¤\94र à¤\89नमà¥\87à¤\82 à¤\96à¥\8bà¤\9c à¤¸à¤\95तà¥\87 à¤¹à¥\88à¤\82। à¤¦à¥\8bबारा à¤\85पलà¥\8bड à¤\95à¥\80 à¤\97à¤\88 à¤«à¤¼à¤¾à¤\87लà¥\8bà¤\82 à¤\95à¥\8b [[Special:Log/upload|à¤\85पलà¥\8bड à¤¸à¥\82à¤\9aà¥\80]] à¤®à¥\87à¤\82 à¤¦à¥\87à¤\96à¥\87à¤\82, à¤\94र à¤®à¤¿à¤\9fाà¤\88 à¤«à¤¼ाइलों के लिए [[Special:Log/delete|हटाने की सूची]] देखें।
 
-à¤\95िसà¥\80 à¤ªà¥\83षà¥\8dठ à¤®à¥\87à¤\82 à¥\9eाइल का प्रयोग करने के लिए नीचे दिए गये उदाहरणों के अनुसार कड़ियाँ बनाएँ।
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' फ़ाइल का पूरा आकार प्रयोग करने के लिये
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' पृष्ठ में बाईं ओर फ़ाइल का 200 पिक्सेल चौड़ा अवतरण \"alt text\" विवरण के साथ एक बक्से में प्रयोग करने के लिये
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' बिना फ़ाइल का प्रयोग किये केवल उसकी कड़ी जोड़ने के लिये",
+à¤\95िसà¥\80 à¤ªà¥\83षà¥\8dठ à¤®à¥\87à¤\82 à¤«à¤¼ाइल का प्रयोग करने के लिए नीचे दिए गये उदाहरणों के अनुसार कड़ियाँ बनाएँ।
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' फ़ाइल का पूरा आकार प्रयोग करने के लिये
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' पृष्ठ में बाईं ओर फ़ाइल का 200 पिक्सेल चौड़ा अवतरण \"alt text\" विवरण के साथ एक बक्से में प्रयोग करने के लिये
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' बिना फ़ाइल का प्रयोग किये केवल उसकी कड़ी जोड़ने के लिये",
 'upload-permitted' => 'अनुमतित फ़ाइल प्रकार: $1।',
 'upload-preferred' => 'पसंदीदा फ़ाइल प्रकार: $1।',
 'upload-prohibited' => 'प्रतिबंधिक फ़ाइल प्रकार: $1।',
@@ -1611,21 +1611,21 @@ HTML टैग की जाँच करें।',
 'largefileserver' => 'इस फ़ाइल का आकार निर्धारित आकार सीमा के पार है।',
 'emptyfile' => 'आपके द्वारा अपलोड की गई फ़ाइल रिक्त है। यह फ़ाइल का नाम लिखने में गलती के चलते हो सकता है। कृपया जाँचें कि क्या आप यही फ़ाइल अपलोड करना चाहते हैं।',
 'windows-nonascii-filename' => 'यह विकि विशेष कैरैक्टरों के साथ फ़ाइल के नामों को स्वीकार नहीं करता।',
-'fileexists' => "इस नाम की फ़ाइल पहले से मौजूद है, यदि यह फ़ाइल बदलने में आप साशंक हैं तो कृपया '''<tt>[[:$1]]</tt>''' देखें। [[$1|thumb]]",
-'filepageexists' => "इस फ़ाइल के लिए विवरण पृष्ठ पहले ही '''<tt>[[:$1]]</tt>''' पर बनाया जा चुका है, पर इस नाम की कोई फ़ाइल अभी उपस्थित नहीं है। 
+'fileexists' => 'इस नाम की फ़ाइल पहले से मौजूद है, यदि यह फ़ाइल बदलने में आप साशंक हैं तो कृपया <strong>[[:$1]]</strong> देखें। [[$1|thumb]]',
+'filepageexists' => 'इस फ़ाइल के लिए विवरण पृष्ठ पहले ही <strong>[[:$1]]</strong> पर बनाया जा चुका है, पर इस नाम की कोई फ़ाइल अभी उपस्थित नहीं है। 
 आप जो विवरण देंगे वह विवरण पृष्ठ पर नहीं दिखेगा। 
 आपको अपने विवरण को वहाँ डालने के लिए उसका हस्त्य सम्पादन करना पड़ेगा।
-[[$1|thumb]]",
-'fileexists-extension' => "इस नाम से मिलते-जुलते नाम की एक फ़ाइल पहले से है: [[$2|thumb]]
-* अपलोड हो रही फ़ाइल का नाम: '''<tt>[[:$1]]</tt>'''
-* मौजूदा फ़ाइल का नाम: '''<tt>[[:$2]]</tt>'''
-कृपया अन्य नाम चुनें।",
-'fileexists-thumbnail-yes' => "यह à¤«à¤¼à¤¾à¤\87ल à¤¬à¥\9cे चित्र का छोटा आकार ''(अंगूठाकार)'' प्रतीत होता है। [[$1|thumb]]
-'''<tt>[[:$1]]</tt>''' फ़ाइल को देखें।
+[[$1|thumb]]',
+'fileexists-extension' => 'इस नाम से मिलते-जुलते नाम की एक फ़ाइल पहले से है: [[$2|thumb]]
+* अपलोड हो रही फ़ाइल का नाम: <strong>[[:$1]]</strong>
+* मौजूदा फ़ाइल का नाम: <strong>[[:$2]]</strong>
+कृपया अन्य नाम चुनें।',
+'fileexists-thumbnail-yes' => "यह à¤«à¤¼à¤¾à¤\87ल à¤¬à¤¡à¤¼े चित्र का छोटा आकार ''(अंगूठाकार)'' प्रतीत होता है। [[$1|thumb]]
+<strong>[[:$1]]</strong> फ़ाइल को देखें।
 अगर जाँची गई फ़ाइल इसी आकार की है तो छोटे आकार की फ़ाइल अपलोड करने की आवश्यकता नहीं है।",
-'file-thumbnail-no' => "à¤\87स à¥\9eाà¤\87ल à¤\95ा à¤¨à¤¾à¤® '''<tt>$1</tt>''' से शुरू हो रहा है।
+'file-thumbnail-no' => "à¤\87स à¤«à¤¼à¤¾à¤\87ल à¤\95ा à¤¨à¤¾à¤® <strong>$1</strong> से शुरू हो रहा है।
 यह आकार घटाई हुई ''(अंगूठाकार)'' हो सकती है।
-à¤\85à¤\97र à¤¯à¤¹ à¤\9aितà¥\8dर à¤\85पनà¥\87 à¤®à¥\82ल à¤\86à¤\95ार à¤®à¥\87à¤\82 à¤¹à¥\88 à¤¤à¥\8b à¤\87सà¥\87 à¤\85पलà¥\8bड à¤\95रà¥\87à¤\82, à¤¨à¤¹à¥\80à¤\82 à¤¤à¥\8b à¥\9eाइल बदलें।",
+à¤\85à¤\97र à¤¯à¤¹ à¤\9aितà¥\8dर à¤\85पनà¥\87 à¤®à¥\82ल à¤\86à¤\95ार à¤®à¥\87à¤\82 à¤¹à¥\88 à¤¤à¥\8b à¤\87सà¥\87 à¤\85पलà¥\8bड à¤\95रà¥\87à¤\82, à¤¨à¤¹à¥\80à¤\82 à¤¤à¥\8b à¤«à¤¼ाइल बदलें।",
 'fileexists-forbidden' => 'इस नाम की फ़ाइल पहले ही मौजूद है, और इसकी जगह और नहीं अपलोड की जा सकती।
 यदि आप इस फ़ाइल को फिर भी अपलोड करना चाहते हैं, तो कृपया वापस जा के इसके लिए कोई अन्य नाम चुनें।
 [[File:$1|thumb|center|$1]]',
@@ -1887,7 +1887,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization देखें।',
 # MIME search
 'mimesearch' => 'MIME खोज',
 'mimesearch-summary' => 'MIME-प्रकारों के अनुसार फ़ाइलें खोजने के लिये इस पृष्ठ का इस्तेमाल किया जा सकता है।
-इनपुट: फ़ाइल का प्रकार/उपप्रकार, उदा. <tt>image/jpeg</tt>.',
+इनपुट: फ़ाइल का प्रकार/उपप्रकार, उदा. <code>image/jpeg</code>.',
 'mimetype' => 'MIME प्रकार:',
 'download' => 'डाउनलोड',
 
@@ -2085,7 +2085,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization देखें।',
 'linksearch-ok' => 'खोजें',
 'linksearch-text' => '"*.wikipedia.org" जैसे वाईल्ड-कार्ड्स प्रयोग किये जा सकते हैं।
 कम-से-कम ".org" जैसे किसी top-level डोमेन की आवश्यकता है।<br />
-स्वीकार्य प्रोटोकॉल: <tt>$1</tt> (इनमें से कोई भी अपनी खोज में न जोड़ें)',
+स्वीकार्य प्रोटोकॉल: <code>$1</code> (इनमें से कोई भी अपनी खोज में न जोड़ें)',
 'linksearch-line' => '$2 में से $1 जुडा हुआ हैं',
 'linksearch-error' => 'वाईल्डकार्ड्स होस्टनाम के सिर्फ शुरू में आ सकते हैं।',
 
@@ -2933,15 +2933,10 @@ $1 को बाध्य करने का कारण है: "$2"',
 # Info page
 'pageinfo-title' => '"$1" के लिये जानकारी',
 'pageinfo-header-edits' => 'बदलने के लिये',
-'pageinfo-header-watchlist' => 'ध्यानसूची',
-'pageinfo-header-views' => 'दर्शाव',
-'pageinfo-subjectpage' => 'पृष्ठ',
-'pageinfo-talkpage' => 'वार्ता पृष्ठ',
+'pageinfo-views' => 'दर्शाव की संख्या',
 'pageinfo-watchers' => 'पर नजर रखने वालों की संख्या',
 'pageinfo-edits' => 'संपादन की संख्या',
 'pageinfo-authors' => 'अलग लेखकों की संख्या',
-'pageinfo-views' => 'दर्शाव की संख्या',
-'pageinfo-viewsperedit' => 'दर्शाव प्रति संपादन',
 
 # Patrolling
 'markaspatrolleddiff' => 'देख लिया ऐसा मार्क करें',
index a1c9b50..6205132 100644 (file)
@@ -1408,9 +1408,9 @@ Hian pe mitae waala suchi aur naam badle waala suchi ke aap ke dekhe ke khatir d
 Pahile upload karaa file ke dekhe khatir [[Special:FileList|list of uploaded files]] jao, (re)uploads are also logged in the [[Special:Log/upload|upload log]], deletions in the [[Special:Log/delete|deletion log]].
 
 To include a file in a page, use a link in one of the following forms:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' to use the full version of the file
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' to use a 200 pixel wide rendition in a box in the left margin with 'alt text' as description
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' for directly linking to the file without displaying the file",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' to use the full version of the file
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' to use a 200 pixel wide rendition in a box in the left margin with 'alt text' as description
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' for directly linking to the file without displaying the file",
 'upload-permitted' => 'File types jiske ijajat hai: $1.',
 'upload-preferred' => 'Kon rakam ke file ke mangtaa hai: $1.',
 'upload-prohibited' => 'Ii rakam ke file ke upload nai karaa jaae sake hai: $1.',
@@ -1458,20 +1458,20 @@ ii file hai $2',
 Ii saait file ke naam likhe me typing mistake ke kaaran hoi.
 Meharbaani kar ke ii dekho ki aap such me ii file upload kare mangtaa hai ki nai.',
 'windows-nonascii-filename' => 'Ii wiki me password jisme special characters hae, ke kaam me nai lawa jaae sake hae.',
-'fileexists' => "Ii naam ke file abhi hai, meharbani kar ke check karo '''<tt>[[:$1]]</tt>''' agar jo aap sure nai hai ki aap iske badle mangta hai.
-[[$1|thumb]]",
-'filepageexists' => "Ii file ke description ke '''<tt>[[:$1]]</tt>''' me banae dewa gais rahaa, lekin ii naam ke koi file abhi nai hai.
+'fileexists' => 'Ii naam ke file abhi hai, meharbani kar ke check karo <strong>[[:$1]]</strong> agar jo aap sure nai hai ki aap iske badle mangta hai.
+[[$1|thumb]]',
+'filepageexists' => 'Ii file ke description ke <strong>[[:$1]]</strong> me banae dewa gais rahaa, lekin ii naam ke koi file abhi nai hai.
 Aap jon summary likhtaa hai uu panna ke description me nai dekhai.
 Description ke dekhae ke khatir, aap ke iske manually badle ke parri.
-[[$1|thumb]]",
-'fileexists-extension' => "Ii rakam ke naam ke ek aur file hai: [[$2|thumb]]
-* Uploading file ke naam: '''<tt>[[:$1]]</tt>'''
-* Abhi ke file ke naam: '''<tt>[[:$2]]</tt>'''
-Meharbani kar ke duusra naam chuno.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Ii rakam ke naam ke ek aur file hai: [[$2|thumb]]
+* Uploading file ke naam: <strong>[[:$1]]</strong>
+* Abhi ke file ke naam: <strong>[[:$2]]</strong>
+Meharbani kar ke duusra naam chuno.',
 'fileexists-thumbnail-yes' => "Ii janawe hai ki ii file ek chhota chapa hai ''(thumbnail)''. [[$1|thumb]]
-Meharbani kar ke file ke check karo '''<tt>[[:$1]]</tt>'''.
+Meharbani kar ke file ke check karo <strong>[[:$1]]</strong>.
 Agar jo check karaa gais file wahi chhapa ke original size hai tab ek aur thumbnail ke upload kare ke jaruri nai hai.",
-'file-thumbnail-no' => "File ke naam '''<tt>$1</tt>''' se suruu hoe hai.
+'file-thumbnail-no' => "File ke naam <strong>$1</strong> se suruu hoe hai.
 Ii janawe hai ki ii chhota size ke chapa hai ''(thumbnail)''.
 Agar jo aap ke lage ii chapa full resolution me hai tab uske upload karna, nai to file ke naam badlo.",
 'fileexists-forbidden' => 'Ii naam ke file abhi hai, aur iske badlawa nai jaae sake hai.
@@ -1701,7 +1701,7 @@ Iske baare me aur jaankari [$2 file description page] ke niche dekhawa jaae hai.
 # MIME search
 'mimesearch' => 'MIME khojo',
 'mimesearch-summary' => 'Ii panna filtering of files for its MIME-type ke enable kare hai.
-Input: contenttype/subtype, e.g. <tt>image/jpeg</tt>.',
+Input: contenttype/subtype, e.g. <code>image/jpeg</code>.',
 'mimetype' => 'MIME ke rakam:',
 'download' => 'download karo',
 
@@ -1892,7 +1892,7 @@ Is me ek nai to jaada akchhar hai jiske title me nai kaam me lawa jaae sake hai.
 'linksearch-ns' => 'Namespace:',
 'linksearch-ok' => 'Khojo',
 'linksearch-text' => 'Wildcard jaise ki "*.wikipedia.org" ke kaam me lawa jaae sake hai.<br />
-Support karaa gais protocol: <tt>$1</tt>',
+Support karaa gais protocol: <code>$1</code>',
 'linksearch-line' => '$1, $2 se jurraa hai',
 'linksearch-error' => 'Wildcards khaali hostname ke suruu me hoe ke chaahi.',
 
@@ -2699,11 +2699,7 @@ Ii saait ii kaaran se hoi ki panna ke ek jorr koi blacklisted external site se h
 'spam_blanking' => 'Sab badlao jisme $1 se jorr hai, ke mitawa jaawe hai',
 
 # Info page
-'pageinfo-header-watchlist' => 'Dhyan suchi',
-'pageinfo-header-views' => 'Ketna angle se dekha jaae hae',
-'pageinfo-subjectpage' => 'Panna',
 'pageinfo-edits' => 'Etna badlao rahaa',
-'pageinfo-viewsperedit' => 'Har ek badlao ke ketna dafe dekha gais hae',
 
 # Patrolling
 'markaspatrolleddiff' => 'Mark karo ke pahraa dewa jaawe hai',
index 19cb70c..d716052 100644 (file)
@@ -577,6 +577,10 @@ $1',
 'youhavenewmessages' => 'Imate $1 ($2).',
 'newmessageslink' => 'nove poruke',
 'newmessagesdifflink' => 'zadnja promjena na stranici za razgovor',
+'youhavenewmessagesfromusers' => 'Imate $1 {{PLURAL:$3||od $3 suradnika|od $3 suradnika}} ($2).',
+'youhavenewmessagesmanyusers' => 'Imate $1 od više suradnika ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|novu poruku|$1 nove poruke|$1 novih poruka}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|posljednje uređivanje|$ posljednja uređivanja|$ posljednjih uređivanja}}',
 'youhavenewmessagesmulti' => 'Imate nove poruke na $1',
 'editsection' => 'uredi',
 'editold' => 'uredi',
@@ -628,12 +632,12 @@ Za popis svih posebnih stranica posjetite [[Special:SpecialPages|ovdje]].',
 # General errors
 'error' => 'Pogreška',
 'databaseerror' => 'Pogreška baze podataka',
-'dberrortext' => 'Došlo je do sintaksne pogreške u upitu bazi.
-Možda se radi o grešci u softveru.
-Posljednji pokušaj upita je glasio:
+'dberrortext' => 'Došlo je do sintaksne pogrješke u upitu bazi.
+Možda se radi o pogrješci u softveru.
+Posljednji je pokušaj upita glasio:
 <blockquote><tt>$1</tt></blockquote>
 iz funkcije "<tt>$2</tt>".
-Baza je vratila pogrešku "<tt>$3: $4</tt>".',
+Baza je vratila pogrješku "<tt>$3: $4</tt>".',
 'dberrortextcl' => 'Došlo je do sintaksne pogreške s upitom bazi.
 Posljednji pokušaj upita je glasio:
 "$1"
@@ -669,6 +673,8 @@ Ako to nije slučaj, možda se radi o softverskoj grešci. Molimo da u tom sluč
 'cannotdelete' => 'Ne može se obrisati stranica ili datoteka "$1".
 Moguće je da ju je netko drugi već obrisao.',
 'cannotdelete-title' => 'Brisanje stranice "$1" nije moguće',
+'delete-hook-aborted' => 'Brisanje prekinuto softverskim priključkom (hook).
+Nema obrazloženja ili poruke o pogrješci.',
 'badtitle' => 'Loš naslov',
 'badtitletext' => 'Navedeni naslov stranice nepravilan ili loše formirana interwiki poveznica.',
 'perfcached' => 'Sljedeći podaci su iz međuspremnika i možda nisu najsvježiji. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
@@ -694,6 +700,8 @@ $2',
 'customjsprotected' => 'Ne možete uređivati ovu JavaScript stranicu zato što ona sadrži osobne postavke drugog suradnika.',
 'ns-specialprotected' => "Stranice u imenskom prostoru ''{{ns:special}}'' ne mogu se uređivati.",
 'titleprotected' => "Ovaj naslov je od kreiranja zaštitio suradnik [[User:$1|$1]], uz razlog: ''$2''.",
+'exception-nologin' => 'Niste prijavljeni',
+'exception-nologin-text' => 'Ova stranica ili aktivnost zahtijeva da budete prijavljeni na ovom wikiju.',
 
 # Virus scanner
 'virus-badscanner' => "Loša konfiguracija: nepoznati skener za viruse: ''$1''",
@@ -784,6 +792,7 @@ Ne možemo poslati e-mail ni u jednoj od sljedećih naredbi.',
 'invalidemailaddress' => 'Ne mogu prihvatiti e-mail adresu jer nije valjano oblikovana.
 Molim unesite ispravno oblikovanu adresu ili ostavite polje praznim.',
 'cannotchangeemail' => 'Na ovom wikiju ne možete promijeniti adresu e-pošte.',
+'emaildisabled' => 'Slanje e-pošte na ovom projektu nije moguće.',
 'accountcreated' => 'Suradnički račun otvoren',
 'accountcreatedtext' => 'Suradnički račun za $1 je otvoren.',
 'createaccount-title' => 'Otvaranje suradničkog računa za {{SITENAME}}',
@@ -960,10 +969,9 @@ ili [{{fullurl:{{FULLPAGENAME}}|action=edit}} urediti ovu stranicu]</span>.',
 'blocked-notice-logextract' => 'Ovaj suradnik je trenutačno blokiran.
 Posljednja stavka evidencije blokiranja navedena je niže kao napomena:',
 'clearyourcache' => "'''Napomena:''' Nakon snimanja možda ćete trebate očistiti međuspremnik svog preglednika kako biste vidjeli promjene.
-* '''Firefox / Safari:''' držite ''Shift'' i kliknite ''Reload'', ili pritisnite bilo ''Ctrl-F5'' ili ''Ctrl-R'' (''Command-R'' na Macu)
+* '''Firefox / Safari:''' držite ''Shift'' i pritisnite ''Reload'', ili pritisnite bilo ''Ctrl-F5'' ili ''Ctrl-R'' (''Command-R'' na Macu)
 * '''Google Chrome:''' pritisnite ''Ctrl-Shift-R'' (''Command-Shift-R'' na Macu)
 * '''Internet Explorer:''' držite ''Ctrl'' i kliknite ''Refresh'', ili pritisnite ''Ctrl-F5''
-* '''Konqueror:''' kliknite ''Reload'' ili pritisnite ''F5''
 * '''Opera:''' očistite međuspremnik u ''Tools → Preferences''",
 'usercssyoucanpreview' => "'''Savjet:''' Rabite dugme \"{{int:showpreview}}\" za testiranje svog CSS prije snimanja.",
 'userjsyoucanpreview' => "'''Savjet:''' Rabite dugme \"{{int:showpreview}}\" za testiranje svog novog JavaScripta prije snimanja.",
@@ -1053,6 +1061,7 @@ Razlog nije ponuđen.',
 'edit-no-change' => 'Vaše uređivanje je zanemareno, jer nikakva promjena sadržaja nije napravljena.',
 'edit-already-exists' => 'Neuspješno stvaranje nove stranice.
 Stranica već postoji.',
+'defaultmessagetext' => 'Prvotni tekst poruke',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Upozorenje: Ova stranica sadrži previše opterećujućih poziva parserskih funkcija
@@ -1067,6 +1076,13 @@ Neki predlošci neće biti uključeni.',
 'parser-template-loop-warning' => 'Otkrivena petlja predloška: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Dubina rekurzije predloška je izvan granice ($1)',
 'language-converter-depth-warning' => 'Prekoračena granica dubine jezičnog pretvarača ($1)',
+'node-count-exceeded-category' => 'Stranice s previše čvorova',
+'node-count-exceeded-warning' => 'Ova stranica ima previše čvorova',
+'expansion-depth-exceeded-category' => 'Stranice s prevelikom dubinom proširenja',
+'expansion-depth-exceeded-warning' => 'Na ovoj stranici dubina proširenja je prevelika',
+'parser-unstrip-loop-warning' => 'Nedopuštena petlja',
+'parser-unstrip-recursion-limit' => 'Dosegnuto je ograničenje rekurzije ($1)',
+'converter-manual-rule-error' => 'Pronađena je pogrješka u pravilu ručnog prijevoda',
 
 # "Undo" feature
 'undo-success' => 'Izmjena je uklonjena (tekst u okviru ispod ne sadrži zadnju izmjenu). Molim sačuvajte stranicu (provjerite sažetak).',
@@ -1243,7 +1259,7 @@ Primijetite da uporaba navigacijskih poveznica resetira Vaše izbore u stupcu.',
 
 # Diffs
 'history-title' => 'Povijest izmjena stranice "$1"',
-'difference-title' => '$1: Razlika između inačica',
+'difference-title' => 'Razlika između inačica stranice $1',
 'difference-multipage' => '(Razlika između stranica)',
 'lineno' => 'Redak $1:',
 'compareselectedversions' => 'Usporedi odabrane inačice',
@@ -1653,9 +1669,9 @@ Evidencije brisanja i premještanja prikazane su ovdje:",
 Za pregledavanje i pretraživanje već postavljenih datoteka vidi [[Special:FileList|popis postavljenih datoteka]], (ponovljena) postavljanja su također u [[Special:Log/upload|popisu postavljanja]], a brisanja u [[Special:Log/delete|popisu brisanja]].
 
 Da biste na stranicu stavili datoteku, koristite poveznice tipa
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg]]</nowiki></tt>''' za punu verziju datoteke
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.png|200px|mini|left|popratni tekst]]</nowiki></tt>''' za datoteku širine 200 px u okviru s 'popratnim tekstom' kao opisom
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></tt>''' za direktno povezivanje na datoteku bez njenog prikazivanja",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg]]</nowiki></code>''' za punu verziju datoteke
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.png|200px|mini|left|popratni tekst]]</nowiki></code>''' za datoteku širine 200 px u okviru s 'popratnim tekstom' kao opisom
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></code>''' za direktno povezivanje na datoteku bez njenog prikazivanja",
 'upload-permitted' => 'Dopušteni tipovi datoteka: $1.',
 'upload-preferred' => 'Poželjni tipovi datoteka: $1.',
 'upload-prohibited' => 'Zabranjeni tipovi datoteka: $1.',
@@ -1697,20 +1713,20 @@ Dopušteni {{PLURAL:$3|tip datoteke je|tipovi datoteke su}} $2.',
 'largefileserver' => 'Veličina ove datoteke veća je od one dopuštene postavkama poslužitelja.',
 'emptyfile' => 'Datoteka koju ste postavili je prazna. Možda se radi o krivo utipkanom imenu datoteke. Provjerite želite li zaista postaviti ovu datoteku.',
 'windows-nonascii-filename' => 'Ovaj wiki ne podržava imena datoteka s posebnim znakovima.',
-'fileexists' => "Datoteka s ovim imenom već postoji, pogledajte '''<tt>[[:$1]]</tt>''' ako niste sigurni želite li je uistinu promijeniti.
-[[$1|thumb]]",
-'filepageexists' => "Opis stranice za ovu datoteku je već napravljen ovdje '''<tt>[[:$1]]</tt>''', ali datoteka sa ovim nazivom trenutno ne postoji.
+'fileexists' => 'Datoteka s ovim imenom već postoji, pogledajte <strong>[[:$1]]</strong> ako niste sigurni želite li je uistinu promijeniti.
+[[$1|thumb]]',
+'filepageexists' => 'Opis stranice za ovu datoteku je već napravljen ovdje <strong>[[:$1]]</strong>, ali datoteka sa ovim nazivom trenutno ne postoji.
 Sažetak koji ste naveli neće se pojaviti na stranici opisa.
 Da bi se Vaš opis ovdje našao, potrebno je da ga ručno uredite.
-[[$1|thumb]]",
-'fileexists-extension' => "Već postoji datoteka sa sličnim imenom: [[$2|thumb]]
-* Ime datoteke koju postavljate: '''<tt>[[:$1]]</tt>'''
-* Ime postojeće datoteke: '''<tt>[[:$2]]</tt>'''
-Molimo da izaberete drugo ime.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Već postoji datoteka sa sličnim imenom: [[$2|thumb]]
+* Ime datoteke koju postavljate: <strong>[[:$1]]</strong>
+* Ime postojeće datoteke: <strong>[[:$2]]</strong>
+Molimo da izaberete drugo ime.',
 'fileexists-thumbnail-yes' => "Datoteka je najvjerojatnije slika u smanjenoj veličini ''(thumbnail)''. [[$1|thumb]]
-Molimo provjerite datoteku '''<tt>[[:$1]]</tt>'''.
+Molimo provjerite datoteku <strong>[[:$1]]</strong>.
 Ukoliko je ta datoteka ista kao i ova koju ste upravo pokušali snimiti, samo u višoj rezoluciji, nije nužno snimanje smanjenje slike ''(thumbnaila)'', prikazivanje smanjene slike iz izvornika radi se softverski.",
-'file-thumbnail-no' => "Ime datoteke počinje s '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Ime datoteke počinje s <strong>$1</strong>.
 Čini se da je to slika smanjene veličine ''(minijatura)''.
 Ukoliko imate ovu sliku u punoj razlučljivosti (rezoluciji) postavite tu sliku, u protivnom, molimo promijenite ime datoteke.",
 'fileexists-forbidden' => 'Datoteka s ovim imenom već postoji i nemože biti presnimljena.
@@ -1763,6 +1779,19 @@ Ako se problem ponovi, javite to [[Special:ListUsers/sysop|administratoru]].',
 'upload-too-many-redirects' => 'URL je sadržavao previše preusmjeravanja',
 'upload-unknown-size' => 'Nepoznata veličina',
 'upload-http-error' => 'HTTP pogreška: $1',
+'upload-copy-upload-invalid-domain' => 'Kopije postavljenih datoteka nisu dostupne s ove domene.',
+
+# File backend
+'backend-fail-stream' => 'Ne mogu prikazati datoteku $1.',
+'backend-fail-backup' => 'Izrada sigurnosne kopije datoteke "$1" nije uspjela.',
+'backend-fail-notexists' => 'Datoteka $1 ne postoji.',
+'backend-fail-hashes' => '"Hash" indeksi datoteka za usporedbu nisu nađeni.',
+'backend-fail-notsame' => 'Na lokaciji $1 već postoji datoteka koja se razlikuje.',
+'backend-fail-invalidpath' => "$1 nije valjana pričuvna putanja (''path'').",
+'backend-fail-delete' => 'Ne mogu obrisati datoteku $1.',
+'backend-fail-opentemp' => 'Ne mogu otvoriti privremenu datoteku.',
+'backend-fail-writetemp' => 'Ne mogu pisati u privremenu datoteku.',
+'backend-fail-closetemp' => 'Ne mogu zatvoriti privremenu datoteku.',
 
 # ZipDirectoryReader
 'zip-file-open-error' => 'Došlo je do pogreške pri otvaranju datoteke za ZIP provjeru.',
@@ -1906,7 +1935,7 @@ Slijedeći popis prikazuje {{PLURAL:$1|stranice koje|prvih $1 stranica koje}} vo
 
 # MIME search
 'mimesearch' => 'MIME tražilica',
-'mimesearch-summary' => 'Ova stranica omogućuje pretraživanje datoteka prema njihovim MIME zaglavljima. Ulazni parametar: tip_datoteke/podtip, npr. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Ova stranica omogućuje pretraživanje datoteka prema njihovim MIME zaglavljima. Ulazni parametar: tip_datoteke/podtip, npr. <code>image/jpeg</code>.',
 'mimetype' => 'MIME tip datoteke:',
 'download' => 'skidanje',
 
@@ -1954,7 +1983,7 @@ Slijedeći popis prikazuje {{PLURAL:$1|stranice koje|prvih $1 stranica koje}} vo
 'disambiguationspage' => 'Template:Razdvojba',
 'disambiguations-text' => "Sljedeće stranice povezuju na '''razdvojbenu stranicu'''.
 Umjesto toga bi trebale povezivati na prikladnu temu.<br />
-Stranica se tretira kao razdvojbena stranica ako koristi predložak na kojega vodi [[MediaWiki:Disambiguationspage]]",
+Stranica se tretira kao razdvojbena stranica ako rabi predložak na kojega vodi [[MediaWiki:Disambiguationspage]]",
 
 'doubleredirects' => 'Dvostruka preusmjeravanja',
 'doubleredirectstext' => 'Ova stranica sadrži popis stranica koje preusmjeravju na druge stranice za preusmjeravanje.
@@ -1980,6 +2009,7 @@ koja obično ukazuje na "pravu" odredišnu stranicu, na koju bi trebalo pokaziva
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|bajt|bajta|bajtova}}',
 'ncategories' => '$1 {{PLURAL:$1|kategorija|kategorije|kategorija}}',
+'ninterwikis' => '$1 međuwiki {{PLURAL:$1|poveznica|poveznice|poveznica}}',
 'nlinks' => '$1 {{PLURAL:$1|poveznica|poveznice|poveznica}}',
 'nmembers' => '$1 {{PLURAL:$1|član|članova}}',
 'nrevisions' => '$1 {{PLURAL:$1|inačica|inačice|inačica}}',
@@ -2006,6 +2036,7 @@ koja obično ukazuje na "pravu" odredišnu stranicu, na koju bi trebalo pokaziva
 'mostlinkedtemplates' => 'Predlošci na koje vodi najviše poveznica',
 'mostcategories' => 'Popis članaka po broju kategorija',
 'mostimages' => 'Slike na koje vodi najviše poveznica',
+'mostinterwikis' => 'Stranice s najviše međuwiki poveznica',
 'mostrevisions' => 'Popis članaka po broju uređivanja',
 'prefixindex' => 'Sve stranice prema početku naslova',
 'shortpages' => 'Kratke stranice',
@@ -2075,6 +2106,12 @@ Možete suziti prikaz odabirući tip evidencije, suradničko ime ili stranicu u
 'allpagesprefix' => 'Stranice čiji naslov počinje s:',
 'allpagesbadtitle' => 'Zadana stranica nije valjana, ili je imala međuwiki predmetak. Možda sadrži jedan ili više znakova koji ne mogu biti uporabljeni u nazivu stranice.',
 'allpages-bad-ns' => '{{SITENAME}} nema imenski prostor "$1".',
+'allpages-hide-redirects' => 'Sakrij preusmjeravanja',
+
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'Gledate inačicu ove stranice iz privremene memorije, koja može biti stara i do $1.',
+'cachedspecial-viewing-cached-ts' => 'Gledate inačicu ove stranice iz privremene memorije, koja možda nije potpuno aktualna.',
+'cachedspecial-refresh-now' => 'Pogledaj najnoviju.',
 
 # Special:Categories
 'categories' => 'Kategorije',
@@ -2097,7 +2134,7 @@ Također pogledajte [[Special:WantedCategories|tražene kategorije]].',
 'linksearch-ok' => 'Traži',
 'linksearch-text' => 'Možete koristiti džoker znakove poput "*.wikipedia.org".
 Potrebno je navesti osnovnu domenu (TLD), npr. "*.org".<br />
-Podržani su protokoli: <tt>$1</tt> (ne stavljajte ih u vaše pretraživanje).',
+Podržani su protokoli: <code>$1</code> (ne stavljajte ih u vaše pretraživanje).',
 'linksearch-line' => '$1 poveznica s članka $2',
 'linksearch-error' => 'Džoker znakovi se mogu rabiti samo na početku imena poslužitelja.',
 
@@ -2145,6 +2182,7 @@ Dodatne informacije o pojedinim pravim se mogu pronaći [[{{MediaWiki:Listgroupr
 i imati valjanu adresu e-pošte u svojim [[Special:Preferences|postavkama]]
 da bi mogli slati poštu drugim suradnicima.',
 'emailuser' => 'Pošalji e-poštu ovom suradniku',
+'emailuser-title-notarget' => 'Pošalji e-poštu suradniku',
 'emailpage' => 'Pošalji e-poštu suradniku',
 'emailpagetext' => 'Možete koristiti ovaj obrazac za slanje elektroničke pošte ovom suradniku.
 E-mail adresa iz Vaših [[Special:Preferences|postavki]] nalazit će se u "From" polju poruke i primatelj će Vam moći izravno odgovoriti.',
@@ -2286,6 +2324,8 @@ Sva vremena su prema poslužiteljevom vremenu.',
 'rollback' => 'Ukloni posljednju promjenu',
 'rollback_short' => 'Ukloni',
 'rollbacklink' => 'ukloni',
+'rollbacklinkcount' => 'ukloni $1 {{PLURAL:$1|uređivanje|uređivanja}}',
+'rollbacklinkcount-morethan' => 'ukloni više od $1 {{PLURAL:$1|uređivanje|uređivanja}}',
 'rollbackfailed' => 'Uklanjanje neuspješno',
 'cantrollback' => 'Ne mogu ukloniti posljednju promjenu, postoji samo jedna promjena.',
 'alreadyrolled' => 'Ne mogu ukloniti posljednju promjenu članka [[:$1]] koju je napravio  [[User:$2|$2]] ([[User talk:$2|Razgovor]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); netko je već promijenio stranicu ili uklonio promjenu.
@@ -2721,6 +2761,7 @@ Molimo odaberite drugo ime.',
 Za izvoz stranica unesite njihove naslove u polje ispod, jedan naslov po retku, i označite želite li trenutačnu inačicu zajedno sa svim prijašnjima, ili samo trenutačnu inačicu s informacijom o zadnjoj promjeni.
 
 U potonjem slučaju možete koristiti i poveznicu, npr. [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] za članak [[{{MediaWiki:Mainpage}}]].',
+'exportall' => 'Izvezi sve stranice',
 'exportcuronly' => 'Uključi samo trenutačnu inačicu, ne i sve prijašnje',
 'exportnohistory' => "----
 '''Napomena:''' izvoz cjelokupne stranice sa svim prethodnim izmjenama onemogućen je zbog opterećenja poslužitelja.",
@@ -2775,6 +2816,7 @@ Transwiki uvoz stranica je zabilježen u [[Special:Log/import|evidenciji uvoza s
 'import-interwiki-templates' => 'Uključi sve predloške',
 'import-interwiki-submit' => 'Uvezi',
 'import-interwiki-namespace' => 'Odredišni imenski prostor:',
+'import-interwiki-rootpage' => 'Odredišna početna stranica (parametar nije nužan):',
 'import-upload-filename' => 'Ime datoteke:',
 'import-comment' => 'Komentar:',
 'importtext' => 'Molimo izvezite datoteku iz izvorišnog wikija koristeći [[Special:Export|izvozno pomagalo]]. 
@@ -2813,6 +2855,10 @@ Snimite je na svoje računalo i postavite je ovdje.',
 'import-logentry-interwiki' => 'transwiki uvezeno $1',
 'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|promjena|promjene|promjena}} od $2',
 
+# JavaScriptTest
+'javascripttest' => 'Testiranje JavaScripta',
+'javascripttest-disabled' => 'Ova funkcija nije omogućena na ovom wikiprojektu.',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Moja suradnička stranica',
 'tooltip-pt-anonuserpage' => 'Suradnička stranica za IP adresu pod kojom uređujete',
@@ -2873,6 +2919,8 @@ Snimite je na svoje računalo i postavite je ovdje.',
 'tooltip-diff' => 'Prikaži promjene učinjene u tekstu.',
 'tooltip-compareselectedversions' => 'Prikaži usporedbu izabranih inačica ove stranice.',
 'tooltip-watch' => 'Dodaj na popis praćenja',
+'tooltip-watchlistedit-normal-submit' => 'Ukloni naslove',
+'tooltip-watchlistedit-raw-submit' => 'Osvježi popis praćenja',
 'tooltip-recreate' => 'Vrati stranicu unatoč tome što je obrisana',
 'tooltip-upload' => "Pokreni snimanje (''upload'')",
 'tooltip-rollback' => '"Ukloni" uklanja uređivanja zadnjeg suradnika na ovoj stranici.',
@@ -2911,19 +2959,28 @@ Razlog je vjerojatno vanjska poveznica koja se nalazi na crnom popisu.',
 'spambot_username' => 'MediaWiki zaštita od spama',
 'spam_reverting' => 'Vraćam na zadnju inačicu koja ne sadrži poveznice na $1',
 'spam_blanking' => 'Sve inačice sadrže poveznice na $1, brišem cjelokupni sadržaj',
+'spam_deleting' => 'Sve inačice sadržale su poveznice na $1, brišem cjelokupni sadržaj',
 
 # Info page
 'pageinfo-title' => 'Podatci o "$1"',
+'pageinfo-header-basic' => 'Osnovni podaci',
 'pageinfo-header-edits' => 'Uređivanja',
-'pageinfo-header-watchlist' => 'Praćene stranice',
-'pageinfo-header-views' => 'Pregleda',
-'pageinfo-subjectpage' => 'Stranica',
-'pageinfo-talkpage' => 'Stranica za razgovor',
+'pageinfo-header-restrictions' => 'Zaštita stranice',
+'pageinfo-header-properties' => 'Svojstva stranice',
+'pageinfo-display-title' => 'Prikaži naslov',
+'pageinfo-default-sort' => 'Podrazumijevano sortiranje',
+'pageinfo-length' => 'Dužina stranice (u bajtovima)',
+'pageinfo-article-id' => 'ID stranice',
+'pageinfo-robot-policy' => 'Status tražilice',
+'pageinfo-robot-index' => 'Stranicu je moguće indeksirati',
+'pageinfo-views' => 'Broj pregleda',
 'pageinfo-watchers' => 'Broj pratitelja stranice',
+'pageinfo-firstuser' => 'Suradnik koji je stvorio stranicu',
+'pageinfo-firsttime' => 'Datum stvaranja stranice',
+'pageinfo-lastuser' => 'Posljednji urednik stranice',
+'pageinfo-lasttime' => 'Datum zadnjeg uređivanja',
 'pageinfo-edits' => 'Broj uređivanja',
 'pageinfo-authors' => 'Broj različitih autora',
-'pageinfo-views' => 'Broj pregleda',
-'pageinfo-viewsperedit' => 'Pregleda po uređivanju',
 
 # Skin names
 'skinname-standard' => 'Standardna',
@@ -3675,6 +3732,9 @@ Trebali ste primiti [{{SERVER}}{{SCRIPTPATH}}/COPYING kopiju GNU opće javne lic
 'version-software' => 'Instalirani softver',
 'version-software-product' => 'Proizvod',
 'version-software-version' => 'Verzija',
+'version-entrypoints' => 'URL adresa instalacije',
+'version-entrypoints-header-entrypoint' => 'Početna adresa',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Putanja datoteke',
@@ -3826,9 +3886,9 @@ Inače, možete ispuniti jednostavan obrazac u nastavku. Vaš komentar biti će
 
 # API errors
 'api-error-badaccess-groups' => 'Nemate ovlasti za postavljanje datoteka na ovu wiki.',
-'api-error-badtoken' => "''Token'' koji smo koristili za vašu identifikaciju na ovaj poslužitelj nije bio ispravan.",
-'api-error-copyuploaddisabled' => 'Postavljanja datoteka kopiranjem su onemogućena.',
-'api-error-duplicate' => 'Već postoji jedna datoteka na ovoj wiki s istim sadržajem',
+'api-error-badtoken' => 'Interna pogrješka: Token nije ispravan.',
+'api-error-copyuploaddisabled' => 'Postavljanje datoteka putem URL-a nije omogućeno na ovom projektu.',
+'api-error-duplicate' => '{{PLURAL:$1|Postoji [$2 druga datoteka]|Postoje $1 [$2 druge datoteke]|Postoji $1 [$2 drugih datoteka]}} istog sadržaja.',
 'api-error-empty-file' => 'Datoteka koju ste poslali je prazna.',
 'api-error-fetchfileerror' => 'Pojavio se neki problem pri dobivanju podataka o datoteci.',
 'api-error-file-too-large' => 'Datoteka koju ste poslali bila je prevelika.',
@@ -3857,4 +3917,7 @@ Inače, možete ispuniti jednostavan obrazac u nastavku. Vaš komentar biti će
 'api-error-uploaddisabled' => 'Postavljanje datoteka je onemogućeno na ovom wikiprojektu.',
 'api-error-verification-error' => 'Ova datoteka je možda oštećena ili ima pogrešan nastavak.',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|sekunda|sekunde|sekundi}}',
+
 );
index fee41e2..b7c2b96 100644 (file)
@@ -473,9 +473,9 @@ Płaćiwe specialne strony hodźa so pod [[Special:SpecialPages|lisćinu special
 'databaseerror' => 'Zmylk w datowej bance',
 'dberrortext' => 'Syntaktiski zmylk při wotprašowanju datoweje banki.
 To móhło zmylk w programje być. Poslednje spytane wotprašenje w datowej bance běše:
-<blockquote><tt>$1</tt></blockquote>
-z funkcije "<tt>$2</tt>".
-Datowa banka wróći zmylk "tt>$3: $4</tt>".',
+<blockquote><code>$1</code></blockquote>
+z funkcije "<code>$2</code>".
+Datowa banka wróći zmylk "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Syntaktiski zmylk je we wotprašowanju datoweje banki wustupił.
 Poslednje wotprašenje w datowej bance běše:
 "$1"
@@ -802,7 +802,6 @@ Podrobnosće móžeš w  [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE
 * '''Firefox/Safari:''' Tłóč na ''Umsch'' kliknjo na ''Znowa'' abo tłóč ''Strg-F5'' abo ''Strg-R'' (''⌘-R'' na Macintosh);
 * '''Google Chrome:''' Tłóč na ''Strg-Umsch-R'' (''⌘-Umsch-R'' na Mac)
 * '''Internet Explorer:''' Dźěrź ''Strg'' tłóčeny kliknjo na ''Znowa,'' abo tłóč ''Strg-F5''.
-* '''Konqueror: '''Klikń na ''Znowa'' abo tłoč ''F5'';
 * '''Opera:''' Wuprózdń pufrowak w ''Extras → Einstellungen'';",
 'usercssyoucanpreview' => "'''Pokiw:''' Wužij tłóčku '{{int:showpreview}}', zo by swój nowy css do składowanja testował.",
 'userjsyoucanpreview' => "'''Pokiw:''' Wužij tłóčatko \"{{int:showpreview}}\", zo by swój nowy JavaScript do składowanja testował.",
@@ -1516,9 +1515,9 @@ Protokolej zhašenjow a přesunjenjow za tutu stronu stej tu k dobroćiwemu wuž
 Zo by prjedy nahrate dataje wobhladał abo pytał dźi k [[Special:FileList|lisćinje nahratych datajow]], nahraća so tež w [[Special:Log/upload|protokolu nahraćow]], wušmórnjenja  [[Special:Log/delete|protokolu wušmornjenjow]] protokoluja.
 
 Zo by dataju do strony zapřijał, wužij wotkaz w jednej ze slědowacych formow:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dataja.jpg]]</nowiki></tt>''', zo by połnu wersiju dataje wužiwał
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dataja.png|200px|thumb|left|alternatiwny tekst]]</nowiki></tt>''', zo by wobraz ze šěrokosću 200 pikselow do kašćika na lěwej kromje z alternatiwnym tekstom jako wopisanje wužiwał
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Dataja.ogg]]</nowiki></tt>''' zo by direktnje k dataji wotkazał, bjeztoho zo by so dataja zwobrazniła",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dataja.jpg]]</nowiki></code>''', zo by połnu wersiju dataje wužiwał
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dataja.png|200px|thumb|left|alternatiwny tekst]]</nowiki></code>''', zo by wobraz ze šěrokosću 200 pikselow do kašćika na lěwej kromje z alternatiwnym tekstom jako wopisanje wužiwał
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Dataja.ogg]]</nowiki></code>''' zo by direktnje k dataji wotkazał, bjeztoho zo by so dataja zwobrazniła",
 'upload-permitted' => 'Dowolene datajowe typy: $1.',
 'upload-preferred' => 'Preferowane datajowe typy: $1.',
 'upload-prohibited' => 'Zakazane datajowe typy: $1.',
@@ -1562,23 +1561,23 @@ Hlej [[Special:NewFiles|galeriju nowych datajow]] za wizuelny přehlad.',
 'largefileserver' => 'Dataja je wjetša hač serwer dowoluje.',
 'emptyfile' => 'Dataja, kotruž sy nahrał, zda so prózdna być. Z přičinu móhł pisanski zmylk w mjenje dataje być. Prošu pruwuj hač chceš ju woprawdźe nahrać.',
 'windows-nonascii-filename' => 'Tutón wiki datajowe mjena ze specialnymi znamješkami njepodpěruje.',
-'fileexists' => "Dataja z tutym mjenom hižo eksistuje.
+'fileexists' => 'Dataja z tutym mjenom hižo eksistuje.
 Jeli kliknješ na „Składować”, so wona přepisuje.
-Prošu pruwuj '''<tt>[[:$1]]</tt>''' jeli njejsy wěsty hač chceš ju změnić.
-[[$1|thumb]]",
-'filepageexists' => "Wopisanska strona za tutu dataju bu hižo pola '''<tt>[[:$1]]</tt>''' wutworjena,
+Prošu pruwuj <strong>[[:$1]]</strong> jeli njejsy wěsty hač chceš ju změnić.
+[[$1|thumb]]',
+'filepageexists' => 'Wopisanska strona za tutu dataju bu hižo pola <strong>[[:$1]]</strong> wutworjena,
 ale tuchwilu dataja z tutym mjenom njeeksistuje.
 Zjeće, kotrež zapodaš, njebudźe so na wopisanskej stronje jewić.
 Zo by so twoje zjeće tam jewiło, dyrbiš ju manuelnje wobdźěłać.
-[[$1|thumb]]",
-'fileexists-extension' => "Dataja z podobnym mjenom hižo eksistuje: [[$2|thumb]]
-* Mjeno dataje, kotruž chceš nahrać: '''<tt>[[:$1]]</tt>'''
-* Mjeno eksistowaceje dataje: '''<tt>[[:$2]]</tt>'''
-Prošu wubjer druhe mjeno.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Dataja z podobnym mjenom hižo eksistuje: [[$2|thumb]]
+* Mjeno dataje, kotruž chceš nahrać: <strong>[[:$1]]</strong>
+* Mjeno eksistowaceje dataje: <strong>[[:$2]]</strong>
+Prošu wubjer druhe mjeno.',
 'fileexists-thumbnail-yes' => "Dataja zda so minaturka ''(thumbnail)'' być. [[$1|thumb]]
-Prošu přepruwuj dataju '''<tt>[[:$1]]</tt>'''.
+Prošu přepruwuj dataju <strong>[[:$1]]</strong>.
 Jeli je to wobraz w originalnej wulkosći, njetrjebaš minaturku nahrać.",
-'file-thumbnail-no' => "Mjeno dataje započina so z '''<tt>$1</tt>'''. Zda so, zo to je wobraz z redukowanej wulkosću ''(thumbnail)'' pokazać.
+'file-thumbnail-no' => "Mjeno dataje započina so z <strong>$1</strong>. Zda so, zo to je wobraz z redukowanej wulkosću ''(thumbnail)'' pokazać.
 Jeli maš tutón wobraz z połnym rozeznaćom, nahraj tutón, hewak změń prošu datajowe mjeno.",
 'fileexists-forbidden' => 'Dataja z tutym mjenom hižo eksistuje a njeda so přepisać. Jeli hišće chceš swoju dataju nahrać, dźi  prošu wróćo a wuž nowe mjeno. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'Dataja z tutym mjenom hižo eksistuje w zhromadnej chowarni. Jeli hišće chceš swoju dataju nahrać,  dźi prošu wróćo a wužij nowe mjeno. [[File:$1|thumb|center|$1]]',
@@ -1797,6 +1796,7 @@ Snano chceš wopisanje na jeje [$2 stronje datajoweho wopisanja] wobdźěłać.'
 'uploadnewversion-linktext' => 'nowu wersiju tuteje dataje nahrać',
 'shared-repo-from' => 'z $1',
 'shared-repo' => 'zhromadny repozitorij',
+'upload-disallowed-here' => 'Bohužel njemóžeš tutón wobraz přepisać.',
 
 # File reversion
 'filerevert' => 'Wersiju $1 cofnyć',
@@ -1830,7 +1830,7 @@ Snano chceš wopisanje na jeje [$2 stronje datajoweho wopisanja] wobdźěłać.'
 
 # MIME search
 'mimesearch' => 'Pytanje za typom MIME',
-'mimesearch-summary' => 'Na tutej specialnej stronje hodźa so dataje po typje MIME filtrować. Dyrbiš přeco typ MIME a podtyp zapodać: <tt>image/jpeg</tt> (hlej stronu z wopisanjom wobraza).',
+'mimesearch-summary' => 'Na tutej specialnej stronje hodźa so dataje po typje MIME filtrować. Dyrbiš přeco typ MIME a podtyp zapodać: <code>image/jpeg</code> (hlej stronu z wopisanjom wobraza).',
 'mimetype' => 'Typ MIME:',
 'download' => 'Sćahnyć',
 
@@ -1900,6 +1900,7 @@ Kóžda rjadka wobsahuje wotkazy k prěnjemu a druhemu daleposrědkowanju kaž t
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|bajt|bajtaj|bajty|bajtow}}',
 'ncategories' => '$1 {{PLURAL:$1|jedna kategorija|kategoriji|kategorije|kategorijow}}',
+'ninterwikis' => '$1 {{PLURAL:$1|mjezyrěčny wotkaz|mjezyrěčnej wotkazaj|mjezyrěčne wotkazy|mjezyrěčnych wotkazow}}',
 'nlinks' => '$1 {{PLURAL:$1|wotkaz|wotkazaj|wotkazy|wotkazow}}',
 'nmembers' => '{{PLURAL:$1|$1 čłon|$1 čłonaj|$1 čłony|$1 čłonow}}',
 'nrevisions' => '$1 {{PLURAL:$1|wobdźěłanje|wobdźěłani|wobdźěłanja|wobdźěłanjow}}',
@@ -1928,6 +1929,7 @@ Kóžda rjadka wobsahuje wotkazy k prěnjemu a druhemu daleposrědkowanju kaž t
 'mostlinkedtemplates' => 'Najhusćišo wužiwane předłohi',
 'mostcategories' => 'Strony z najwjace kategorijemi',
 'mostimages' => 'Z najwjace stronami zwjazane dataje',
+'mostinterwikis' => 'Strony z najwjace mjezyrěčnymi wotkazami',
 'mostrevisions' => 'Nastawki z najwjace wersijemi',
 'prefixindex' => 'Wšě strony z prefiksom',
 'prefixindex-namespace' => 'Wšě strony z prefiksom (mjenowy rum $1)',
@@ -2026,7 +2028,7 @@ Hlej tež [[Special:WantedCategories|požadane kategorije]].',
 'linksearch-ok' => 'Pytać',
 'linksearch-text' => 'Zastupniske znamješka kaž "*.wikipedia.org" móža so wužiwać.
 Znajmjeńša hłowna domena je trěbna, na přikład "*.org".<br />
-Podpěrowane protokole: <tt>$1</tt> (prošu njepodaj je w swojim pytanje).',
+Podpěrowane protokole: <code>$1</code> (prošu njepodaj je w swojim pytanje).',
 'linksearch-line' => '$1 je z $2 wotkazany.',
 'linksearch-error' => 'Zastupniske znamjenja dadźa so jenož na spočatku URL wužiwać.',
 
@@ -2071,6 +2073,8 @@ Podpěrowane protokole: <tt>$1</tt> (prošu njepodaj je w swojim pytanje).',
 'mailnologin' => 'Njejsy přizjewjeny.',
 'mailnologintext' => 'Dyrbiš [[Special:UserLogin|přizjewjeny]] być a płaćiwu e-mejlowu adresu w swojich [[Special:Preferences|nastajenjach]] měć, zo by druhim wužiwarjam mejlki pósłać móhł.',
 'emailuser' => 'Wužiwarjej mejlku pósłać',
+'emailuser-title-target' => 'E-mejl na {{GENDER:$1|tutomu wužiwarjej|tutej wužiwarce}} pósłać',
+'emailuser-title-notarget' => 'Wužiwarjej mejlku pósłać',
 'emailpage' => 'Wužiwarjej mejlku pósłać',
 'emailpagetext' => 'Móžeš slědowacy formular wužiwać, zo by tutomu wužiwarjej e-mejlku pósłał.
 E-mejlowa adresa, kotruž sy w [[Special:Preferences|swojich wužiwarskich nastajenjach]] zapodał, zjewi so jako adresa "Wot" e-mejlki, tak zo přijimowar móže ći direktnje wotmołwić.',
@@ -2131,7 +2135,7 @@ Jeli chceš stronu pozdźišo ze swojich wobkedźbowankow wotstronić, klikń na
 'watchmethod-list' => 'Wobkedźbowanki za aktualnymi změnami přepruwować',
 'watchlistcontains' => 'Maš $1 {{PLURAL:$1|stronu|stronje|strony|stronow}} w swojich wobkedźbowankach.',
 'iteminvalidname' => 'Problem ze zapiskom „$1“, njepłaćiwe mjeno.',
-'wlnote' => "Deleka {{PLURAL:$1|je '''1''' změna|stej poslednjej '''$1''' změnje|su poslednje '''$1''' změny|je poslednich '''$1''' změnow}} za {{PLURAL:$2|poslednju hodźinu|poslednje '''$2''' hodźinje|poslednje '''$2''' hodźiny|poslednje '''$2''' hodźin}}, staw : $3, $4.",
+'wlnote' => "Deleka {{PLURAL:$1|je poslednja změna|stej poslednjej '''$1''' změnje|su poslednje '''$1''' změny|je poslednich '''$1''' změnow}} za {{PLURAL:$2|poslednju hodźinu|poslednje '''$2''' hodźinje|poslednje '''$2''' hodźiny|poslednje '''$2''' hodźin}}, staw : $3, $4.",
 'wlshowlast' => 'Poslednje $1 hodź. - $2 dnjow - $3 pokazać',
 'watchlist-options' => 'Opcije wobkedźbowankow',
 
@@ -2683,6 +2687,7 @@ W poslednim padźe móžeš tež wotkaz wužiwać, na př. „[[{{#Special:Expor
 'import-interwiki-templates' => 'Wšě předłohi zapřijeć',
 'import-interwiki-submit' => 'Importować',
 'import-interwiki-namespace' => 'Cilowy mjenowy rum:',
+'import-interwiki-rootpage' => 'Cilowa korjenjowa strona (opcionalna):',
 'import-upload-filename' => 'Datajowe mjeno:',
 'import-comment' => 'Přičina:',
 'importtext' => 'Prošu eksportuj dataju ze žórłoweho wikija z pomocu funkcije [[Special:Export|Strony eksportować]]. Składuj ju na swojim ličaku a nahraj ju tu.',
@@ -2714,6 +2719,9 @@ W poslednim padźe móžeš tež wotkaz wužiwać, na př. „[[{{#Special:Expor
 'import-error-interwiki' => 'Strona "$1" so njeimportuje, dokelž jeje mjeno je za eksterne wotkazowanje (interwiki) wuměnjene.',
 'import-error-special' => 'Strona "$1" so njeimportuje, dokelž k wosebitemu mjenowemu rumej słuša, kotryž strony njedowola.',
 'import-error-invalid' => 'Strona "$1" so njeimportuje, dokelž jeje mjeno je njepłaćiwe.',
+'import-options-wrong' => '{{PLURAL:$2|Wopačna opcija|Wopačnej opciji|Wopačne opcije|Wopačne opcije}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Podata korjenjowa strona je njepłaćiwa.',
+'import-rootpage-nosubpage' => 'Mjenowy rum "$1" korjenjoweje strony njedowola podstrony.',
 
 # Import log
 'importlogpage' => 'Protokol importow',
@@ -2837,16 +2845,35 @@ W poslednim padźe móžeš tež wotkaz wužiwać, na př. „[[{{#Special:Expor
 
 # Info page
 'pageinfo-title' => 'Informacije za stronu "$1"',
-'pageinfo-header-edits' => 'Změny',
-'pageinfo-header-watchlist' => 'Wobkedźbowanki',
-'pageinfo-header-views' => 'Zwobraznjenja',
-'pageinfo-subjectpage' => 'Strona',
-'pageinfo-talkpage' => 'Diskusijna strona',
-'pageinfo-watchers' => 'Ličba wobkedźbowarjow',
-'pageinfo-edits' => 'Ličba změnow',
-'pageinfo-authors' => 'Ličba rozdźělnych awtorow',
+'pageinfo-header-basic' => 'Zakładne informacije',
+'pageinfo-header-edits' => 'Stawizny wobdźěłać',
+'pageinfo-header-restrictions' => 'Škit strony',
+'pageinfo-header-properties' => 'Kajkosće strony',
+'pageinfo-display-title' => 'Zwobraznjenski titul',
+'pageinfo-default-sort' => 'Standardny sortěrowanski kluč',
+'pageinfo-length' => 'Dołhosć strony (w bajtach)',
+'pageinfo-article-id' => 'ID strony',
+'pageinfo-robot-policy' => 'Status pytawy',
+'pageinfo-robot-index' => 'Indeksujomny',
+'pageinfo-robot-noindex' => 'Njeindeksujomny',
 'pageinfo-views' => 'Ličba zwobraznjenjow',
-'pageinfo-viewsperedit' => 'Zwobraznjenja na změnu',
+'pageinfo-watchers' => 'Ličba wobkedźbowarjow strony',
+'pageinfo-redirects-name' => 'Dalesposrědkowanja k tutej stronje',
+'pageinfo-redirects-value' => '$1',
+'pageinfo-subpages-name' => 'Podstrony tuteje strony',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|dalesposrědkowanje|dalesposrědkowani|dalesposrědkowanja|dalesposrědkowanjow}}; $3 {{PLURAL:$3|njedalesposrědkowanje|njedalesposrědkowani|njedalesposrědkowanja|njedalesposrědkowanjow}})',
+'pageinfo-firstuser' => 'Awtor strony',
+'pageinfo-firsttime' => 'Datum wutworjenja strony',
+'pageinfo-lastuser' => 'Posledni wobdźěłar',
+'pageinfo-lasttime' => 'Datum poslednjeje změny',
+'pageinfo-edits' => 'Cyłkowna ličba změnow',
+'pageinfo-authors' => 'Cyłkowna ličba rozdźělnych awtorow',
+'pageinfo-recent-edits' => 'Ličba najnowšich změnow (za zańdźenych $1)',
+'pageinfo-recent-authors' => 'Najnowša ličba rozdźělnych awtorow',
+'pageinfo-restriction' => 'Škit strony (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Magiske słowo|Magiskej słowje|Magiske słowa|Magiske słowa}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Schowana kategorija|Schowanej kategoriji|Schowane kategorije|Schowane kategorije}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Zapřijata předłoha|Zapřijatej předłoze|Zapřijate předłohi|Zapřijate předłohi}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Klasiski',
@@ -2900,6 +2927,7 @@ $1',
 'file-info-size-pages' => '$1 × $2 pikselow, wulkosć dataje: $3, MIME-typ: $4, $5 {{PLURAL:$5|strona|stronje|strony|stronow}}',
 'file-nohires' => 'Za tutu dataju žane wyše rozeznaće njeje.',
 'svg-long-desc' => 'SVG-dataja, zakładna wulkosć: $1 × $2 pikselow, datajowa wulkosć: $3',
+'svg-long-desc-animated' => 'Animěrowana SVG-dataja, zakładnej wotměraj $1 × $2 pikselow, datajowa wulkosć: $3',
 'show-big-image' => 'Wersija z wyšim rozeznaćom',
 'show-big-image-preview' => 'Wulkosć tutoho přehlada: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Druhe rozeznaće|Druhej rozeznaći|Druhe rozeznaća|Druhe rozeznaća}}: $1.',
@@ -2909,6 +2937,8 @@ $1',
 'file-info-png-looped' => 'Sekla',
 'file-info-png-repeat' => '{{PLURAL:$1|$1 raz|dwójce|$1 razy|$1 razow}} wotehrata',
 'file-info-png-frames' => '$1 {{PLURAL:$1|wobłuk|wobłukaj|wobłuki|wobłukow}}',
+'file-no-thumb-animation' => "'''Kedźbu: Techniskich wobmjezowanjow dla přehladne wobrazki tuteje dataje so njeaniměruja.'''",
+'file-no-thumb-animation-gif' => "'''Kedźbu: Techniskich wobmjezowanjow dla přehladne wobrazki wysokeho rozeznaća GIF-wobrazow kaž tutoho njebudu so animěrować.'''",
 
 # Special:NewFiles
 'newimages' => 'Nowe dataje',
index bd69a9d..f149c6b 100644 (file)
@@ -382,7 +382,7 @@ $messages = array(
 'tue' => 'kedd',
 'wed' => 'sze',
 'thu' => 'csü',
-'fri' => 'pé',
+'fri' => 'pén',
 'sat' => 'szo',
 'january' => 'január',
 'february' => 'február',
@@ -633,9 +633,9 @@ Az érvényes speciális lapok listáját a [[Special:SpecialPages|{{int:special
 'databaseerror' => 'Adatbázishiba',
 'dberrortext' => 'Szintaktikai hiba található az adatbázis-lekérdezésben.
 Ezt szoftverhiba okozhatta.
-Az utolsó adatbázis-lekérdezés a(z) „<tt>$2</tt>” függvényből történt, és a következő volt:
-<blockquote><tt>$1</tt></blockquote>
-Az adatbázis ezzel a hibával tért vissza: „<tt>$3: $4</tt>”.',
+Az utolsó adatbázis-lekérdezés a(z) „<code>$2</code>” függvényből történt, és a következő volt:
+<blockquote><code>$1</code></blockquote>
+Az adatbázis ezzel a hibával tért vissza: „<samp>$3: $4</samp>”.',
 'dberrortextcl' => 'Szintaktikai hiba található az adatbázis-lekérdezésben.
 Az utolsó adatbázis-lekérdezés a(z) „$2” függvényből történt, és a következő volt:
 „$1”
@@ -978,7 +978,6 @@ A blokkolási napló legutóbbi ide vonatkozó bejegyzése a következő:',
 '''Firefox / Safari:''' tartsd lenyomva a Shift gombot és kattints a ''Frissítés'' gombra a címsorban, vagy használd a ''Ctrl–F5'' vagy ''Ctrl–R'' billentyűkombinációt (Mac-en ''Command–R'');
 '''Google Chrome:''' használd a ''Ctrl–Shift–R'' billentyűkombinációt (Mac-en ''Command–Shift–R'');
 '''Internet Explorer:''' tartsd nyomva a ''Ctrl''-t, és kattints a ''Frissítés'' gombra, vagy nyomj ''Ctrl–F5''-öt;
-'''Konqueror: '''kattints a ''Frissítés'' gombra vagy nyomj ''F5''-öt;
 '''Opera:''' ürítsd ki a gyorsítótárat a ''Beállítások / Haladó / Előzmények→Törlés most'' gombbal, majd frissítsd az oldalt.",
 'usercssyoucanpreview' => "'''Tipp:''' mentés előtt használd az „{{int:showpreview}}” gombot az új CSS-ed teszteléséhez.",
 'userjsyoucanpreview' => "'''Tipp:''' mentés előtt használd az „{{int:showpreview}}” gombot az új JavaScipted teszteléséhez.",
@@ -1725,20 +1724,20 @@ ez a fájl $2.',
 Ez valószínűleg azért van, mert hibásan adtad meg a feltöltendő fájl nevét.
 Ellenőrizd, hogy valóban fel akarod-e tölteni ezt a fájlt.',
 'windows-nonascii-filename' => 'A wiki nem támogatja a speciális karaktereket tartalmazó fájlneveket.',
-'fileexists' => "'''<tt>[[:$1]]</tt>''' névvel már létezik egy állomány.
-Ellenőrizd, hogy biztosan felül akarod-e írni! [[$1|thumb]]",
-'filepageexists' => "Ehhez a fájlnévhez már létezik leírás a '''<tt>[[:$1]]</tt>''' lapon, de jelenleg nincs feltöltve ilyen nevű fájl.
+'fileexists' => '<strong>[[:$1]]</strong> névvel már létezik egy állomány.
+Ellenőrizd, hogy biztosan felül akarod-e írni! [[$1|thumb]]',
+'filepageexists' => 'Ehhez a fájlnévhez már létezik leírás a <strong>[[:$1]]</strong> lapon, de jelenleg nincs feltöltve ilyen nevű fájl.
 A leírás, amit ebbe az űrlapba írsz, nem fogja felülírni a már létezőt.
 Ha meg szeretnéd változtatni a leírást, meg kell nyitnod szerkesztésre a lapjot.
-[[$1|thumb]]",
-'fileexists-extension' => "Már van egy hasonló nevű feltöltött fájl: [[$2|thumb]]
-* A feltöltendő fájl neve: '''<tt>[[:$1]]</tt>'''
-* A már létező fájl neve: '''<tt>[[:$2]]</tt>'''
-Kérjük, hogy válassz másik nevet.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Már van egy hasonló nevű feltöltött fájl: [[$2|thumb]]
+* A feltöltendő fájl neve: <strong>[[:$1]]</strong>
+* A már létező fájl neve: <strong>[[:$2]]</strong>
+Kérjük, hogy válassz másik nevet.',
 'fileexists-thumbnail-yes' => "A fájl egy kisméretű képnek ''(bélyegképnek)'' tűnik. [[$1|thumb]]
-Kérjük, hogy ellenőrizd a(z) '''<tt>[[:$1]]</tt>''' fájlt.
+Kérjük, hogy ellenőrizd a(z) <strong>[[:$1]]</strong> fájlt.
 Ha az ellenőrzött fájl ugyanakkora, mint az eredeti méretű kép, akkor nincs szükség bélyegkép feltöltésére.",
-'file-thumbnail-no' => "A fájlnév a(z) '''<tt>$1</tt>''' karakterlánccal kezdődik.
+'file-thumbnail-no' => "A fájlnév a(z) <strong>$1</strong> karakterlánccal kezdődik.
 Úgy tűnik, hogy ez egy kisméretű kép ''(bélyegkép)''.
 Ha rendelkezel a teljesméretű képpel, akkor töltsd fel azt, egyébként kérjük, hogy változtasd meg a fájlnevet.",
 'fileexists-forbidden' => 'Már létezik egy ugyanilyen nevű fájl, és nem lehet felülírni.
@@ -1983,7 +1982,7 @@ A [$2 fájl ottani leírólapjának] másolata alább látható.',
 
 # MIME search
 'mimesearch' => 'Keresés MIME-típus alapján',
-'mimesearch-summary' => 'Ez az oldal engedélyezi a fájlok MIME-típus alapján történő szűrését. Bevitel: tartalomtípus/altípus, pl. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Ez az oldal engedélyezi a fájlok MIME-típus alapján történő szűrését. Bevitel: tartalomtípus/altípus, pl. <code>image/jpeg</code>.',
 'mimetype' => 'MIME-típus:',
 'download' => 'letöltés',
 
@@ -2184,7 +2183,7 @@ Lásd még a [[Special:WantedCategories|keresett kategóriák]] listáját.',
 'linksearch-ns' => 'Névtér:',
 'linksearch-ok' => 'keresés',
 'linksearch-text' => 'Helyettesítő karaktereket is lehet használni, például "*.wikipedia.org". Legalább egy felső szintű tartománynak lennie kell, például "*.org"<br />
-Támogatott protokollok: <tt>$1</tt> (ezeket ne írd be a keresésbe).',
+Támogatott protokollok: <code>$1</code> (ezeket ne írd be a keresésbe).',
 'linksearch-line' => '$1 hivatkozva innen: $2',
 'linksearch-error' => 'Helyettesítő karakterek csak a cím elején szerepelhetnek.',
 
@@ -2372,6 +2371,8 @@ A legutóbbi törlések listájához lásd a $2 lapot.',
 'rollback' => 'Szerkesztések visszaállítása',
 'rollback_short' => 'Visszaállítás',
 'rollbacklink' => 'visszaállítás',
+'rollbacklinkcount' => '{{PLURAL:$1|Egy|$1}} szerkesztés visszaállítása',
+'rollbacklinkcount-morethan' => 'több mint $1 szerkesztés visszaállítása',
 'rollbackfailed' => 'A visszaállítás nem sikerült',
 'cantrollback' => 'Nem lehet visszaállítani: az utolsó szerkesztést végző felhasználó az egyetlen, aki a lapot szerkesztette.',
 'alreadyrolled' => '[[:$1]] utolsó, [[User:$2|$2]] ([[User talk:$2|vita]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) általi szerkesztését nem lehet visszavonni:
@@ -3054,16 +3055,11 @@ Ez valószínűleg egy olyan link miatt van, ami egy feketelistán lévő oldalr
 
 # Info page
 'pageinfo-title' => 'Információk a(z) „$1” lapról',
-'pageinfo-header-edits' => 'Szerkesztések',
-'pageinfo-header-watchlist' => 'Figyelőlista',
-'pageinfo-header-views' => 'Megtekintések',
-'pageinfo-subjectpage' => 'Lap',
-'pageinfo-talkpage' => 'Vitalap',
-'pageinfo-watchers' => 'Figyelők száma',
-'pageinfo-edits' => 'Szerkesztések száma',
-'pageinfo-authors' => 'Egyedi szerkesztők száma',
+'pageinfo-header-edits' => 'Szerkesztések története',
 'pageinfo-views' => 'Megtekintések száma',
-'pageinfo-viewsperedit' => 'Megtekintés/szerkesztés',
+'pageinfo-watchers' => 'Figyelők száma',
+'pageinfo-edits' => 'Szerkesztések teljes száma',
+'pageinfo-authors' => 'Egyedi szerkesztők teljes száma',
 
 # Skin names
 'skinname-standard' => 'Klasszikus',
index 3d4f957..15107a3 100644 (file)
@@ -1379,16 +1379,16 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'large-file' => 'Խորհուրդ է տրվում չօգտագործել $1 բայթից մեծ նիշքեր. այս նիշքի չափն է՝  $2 բայթ։',
 'largefileserver' => 'Այս նիշքը սպասարկիչի թույլատրած առավելագույն չափից մեծ է։',
 'emptyfile' => 'Ձեր բեռնած նիշքը ըստ երևույթին դատարկ է։ Հնարավոր է սա նիշքի անվանման մեջ տառասխալի հետևանք է։ Խնդրում ենք ստուգել, թե արդյոք իսկապես ուզում եք բեռնել այս նիշքը։',
-'fileexists' => "Այսպիսի անվանմամբ նիշք արդեն գոյություն ունի։ Խնդրում ենք ստուգել '''<tt>[[:$1]]</tt>''', եթե դուք համոզված չեք, որ ուզում եք այն փոխարինել։
-[[$1|thumb]]",
-'fileexists-extension' => "Գոյություն ունի համանման անվանմամբ նիշք՝ [[$2|thumb]]
-* Բեռնված նիշքի անվանում՝ '''<tt>[[:$1]]</tt>'''
-* Գոյություն ունեցող նիշքի անվանում՝ '''<tt>[[:$2]]</tt>'''
-Խնդրում ենք ընտրել մեկ այլ անվանում։",
+'fileexists' => 'Այսպիսի անվանմամբ նիշք արդեն գոյություն ունի։ Խնդրում ենք ստուգել <strong>[[:$1]]</strong>, եթե դուք համոզված չեք, որ ուզում եք այն փոխարինել։
+[[$1|thumb]]',
+'fileexists-extension' => 'Գոյություն ունի համանման անվանմամբ նիշք՝ [[$2|thumb]]
+* Բեռնված նիշքի անվանում՝ <strong>[[:$1]]</strong>
+* Գոյություն ունեցող նիշքի անվանում՝ <strong>[[:$2]]</strong>
+Խնդրում ենք ընտրել մեկ այլ անվանում։',
 'fileexists-thumbnail-yes' => "Նիշքը ըստ երևույթին փոքրացված պատճեն է ''(պատկերիկ)''։ [[$1|thumb]]
-Խնդրում ենք ստուգել '''<tt>[[:$1]]</tt>''' նիշքը։
+Խնդրում ենք ստուգել <strong>[[:$1]]</strong> նիշքը։
 Եթե նշված նիշքը նույն պատկերն է բնօրինակ չափով, ապա հարկովոր չէ բեռնել նրա փոքրացված պատճենը։",
-'file-thumbnail-no' => "Նիշքի անվանման սկիզբն է՝ '''<tt>$1</tt>'''։ 
+'file-thumbnail-no' => "Նիշքի անվանման սկիզբն է՝ <strong>$1</strong>։ 
 Հավանաբար սա փոքրացված պատճեն է ''(պատկերիկ)''։ 
 Եթե դուք այս պատկերը ամբողջական լուծաչափով ունեք, ապա խնդրում ենք բեռնել այն, հակառակ դեպքում՝ խնդրում ենք փոխել նիշքի անվանումը։",
 'fileexists-forbidden' => 'Այսպիսի անվանմամբ նիշք արդեն գոյություն ունի։ Խնդրում ենք հետ վերադառնալ և բեռնել նիշքը նոր անվանմամբ։ [[File:$1|thumb|center|$1]]',
@@ -1489,7 +1489,7 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 
 # MIME search
 'mimesearch' => 'Որոնել MIME-տեսակով',
-'mimesearch-summary' => 'Այս էջը հնարավորություն է տալիս զտել նիշքերը իրենց MIME-տեսակով։ Գրելաձև. օբյեկտի_տեսակ/ենթատեսակ, օրինակ՝ <tt>image/jpeg</tt>։',
+'mimesearch-summary' => 'Այս էջը հնարավորություն է տալիս զտել նիշքերը իրենց MIME-տեսակով։ Գրելաձև. օբյեկտի_տեսակ/ենթատեսակ, օրինակ՝ <code>image/jpeg</code>։',
 'mimetype' => 'MIME-տեսակ.',
 'download' => 'Ներբեռնել',
 
@@ -2271,15 +2271,10 @@ Please visit [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] and
 # Info page
 'pageinfo-title' => 'Տեղեկություններ $1-ի վերաբերյալ',
 'pageinfo-header-edits' => 'Խմբագրումներ',
-'pageinfo-header-watchlist' => 'Հսկացանկ',
-'pageinfo-header-views' => 'Դիտումներ',
-'pageinfo-subjectpage' => 'Էջ',
-'pageinfo-talkpage' => 'Քննարկման էջ',
+'pageinfo-views' => 'Դիտումների քանակ',
 'pageinfo-watchers' => 'Դիտողների քանակ',
 'pageinfo-edits' => 'Խմբագրումների քանակ',
 'pageinfo-authors' => 'Տարբեր հեղինակների քանակ',
-'pageinfo-views' => 'Դիտումների քանակ',
-'pageinfo-viewsperedit' => 'Դիտումները ըստ խմբագրումների',
 
 # Skin names
 'skinname-standard' => 'Դասական',
index 4923e42..738b529 100644 (file)
@@ -464,9 +464,9 @@ Un lista de paginas special valide se trova a [[Special:SpecialPages|{{int:speci
 'dberrortext' => 'Un error de syntaxe occurreva durante un consulta del base de datos.
 Isto pote indicar le presentia de un defecto in le software.
 Le ultime consulta que esseva tentate es:
-<blockquote><tt>$1</tt></blockquote>
-effectuate per le function "<tt>$2</tt>".
-Le base de datos retornava le error "<tt>$3: $4</tt>".',
+<blockquote><code>$1</code></blockquote>
+effectuate per le function "<code>$2</code>".
+Le base de datos retornava le error "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Un error de syntaxe occurreva durante un consulta del base de datos.
 Le ultime consulta que esseva tentate es:
 "$1"
@@ -840,7 +840,6 @@ Le ultime entrata del registro de blocadas es reproducite ci infra pro informati
 * '''Firefox / Safari:''' Tenente ''Shift'' clicca ''Reload (Recargar)'', o preme ''Ctrl-F5'' o ''Ctrl-R'' (''⌘-R'' sur Mac)
 * '''Google Chrome:''' Preme ''Ctrl-Shift-R'' (''⌘-Shift-R'' sur Mac)
 * '''Internet Explorer:''' Tenente ''Ctrl'' clicca ''Refresh (Refrescar)'', o preme ''Ctrl-F5'' 
-* '''Konqueror:''' Clicca ''Reload (Recargar)'' o preme ''F5''
 * '''Opera:''' Vacua le ''cache'' in ''Tools → Preferences (Utensiles → Preferentias)''",
 'usercssyoucanpreview' => "'''Consilio:''' Usa le button \"{{int:showpreview}}\" pro testar tu nove CSS ante de salveguardar lo.",
 'userjsyoucanpreview' => "'''Consilio:''' Usa le button \"{{int:showpreview}}\" pro testar tu nove JavaScript ante de salveguardar lo.",
@@ -1572,9 +1571,9 @@ Le registro de deletiones e renominationes pro iste pagina es fornite hic pro ma
 Pro vider o cercar files ja incargate, visita le [[Special:FileList|lista de files incargate]]. In ultra, le (re)incargamentos es registrate in le [[Special:Log/upload|registro de incargamentos]], le deletiones in le [[Special:Log/delete|registro de deletiones]].
 
 Pro includer un file in un pagina, usa un ligamine in un del sequente formas:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' pro usar le version complete del file
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|texto alternative]]</nowiki></tt>''' pro usar un rendition a latitude de 200 pixel in un quadro in le margine sinistre con 'texto alternative' qua description
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' pro facer un ligamine directe al file sin monstrar le file",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' pro usar le version complete del file
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|texto alternative]]</nowiki></code>''' pro usar un rendition a latitude de 200 pixel in un quadro in le margine sinistre con 'texto alternative' qua description
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' pro facer un ligamine directe al file sin monstrar le file",
 'upload-permitted' => 'Typos de file permittite: $1.',
 'upload-preferred' => 'Typos de file preferite: $1.',
 'upload-prohibited' => 'Typos de file prohibite: $1.',
@@ -1622,21 +1621,21 @@ iste file occupa $2.',
 Isto pote esser debite a un error in le nomine del file.
 Per favor verifica que tu realmente vole incargar iste file.',
 'windows-nonascii-filename' => 'Iste wiki non supporta nomines de file con characteres special.',
-'fileexists' => "Un file con iste nomine existe ja.
-Per favor verifica '''<tt>[[:$1]]</tt>''' si tu non es secur de voler cambiar lo.
-[[$1|thumb]]",
-'filepageexists' => "Le pagina de description correspondente a iste file ha ja essite create a '''<tt>[[:$1]]</tt>''', ma nulle file con iste nomine existe al momento.
+'fileexists' => 'Un file con iste nomine existe ja.
+Per favor verifica <strong>[[:$1]]</strong> si tu non es secur de voler cambiar lo.
+[[$1|thumb]]',
+'filepageexists' => 'Le pagina de description correspondente a iste file ha ja essite create a <strong>[[:$1]]</strong>, ma nulle file con iste nomine existe al momento.
 Le summario que tu entra non apparera in le pagina de description.
 Si tu vole que illo appare, tu debe inserer lo manualmente.
-[[$1|thumb]]",
-'fileexists-extension' => "Un file con un nomine similar existe ja: [[$2|thumb]]
-* Nomine del file a incargar: '''<tt>[[:$1]]</tt>'''
-* Nomine del file existente: '''<tt>[[:$2]]</tt>'''
-Per favor selige un altere nomine.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Un file con un nomine similar existe ja: [[$2|thumb]]
+* Nomine del file a incargar: <strong>[[:$1]]</strong>
+* Nomine del file existente: <strong>[[:$2]]</strong>
+Per favor selige un altere nomine.',
 'fileexists-thumbnail-yes' => "Iste file pare esser un imagine a grandor reducite ''(miniatura)''. [[$1|thumb]]
-Per favor verifica le file '''<tt>[[:$1]]</tt>'''.
+Per favor verifica le file <strong>[[:$1]]</strong>.
 Si le file verificate es le mesme imagine a grandor original, non es necessari incargar un miniatura additional.",
-'file-thumbnail-no' => "Le nomine del file comencia con '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Le nomine del file comencia con <strong>$1</strong>.
 Illo pare esser un imagine a grandor reducite ''(miniatura)''.
 Si tu possede iste imagine in plen resolution, incarga lo, alteremente cambia le nomine del file per favor.",
 'fileexists-forbidden' => 'Un file con iste nomine existe ja, e non pote esser superscribite.
@@ -1867,6 +1866,7 @@ Tu vole forsan modificar le description in le [$2 pagina de description del file
 'uploadnewversion-linktext' => 'Incargar un nove version de iste file',
 'shared-repo-from' => 'ab $1',
 'shared-repo' => 'un repositorio partite',
+'upload-disallowed-here' => 'Infortunatemente tu non pote superscriber iste imagine.',
 
 # File reversion
 'filerevert' => 'Reverter $1',
@@ -1901,7 +1901,7 @@ Tu vole forsan modificar le description in le [$2 pagina de description del file
 # MIME search
 'mimesearch' => 'Recerca de typo MIME',
 'mimesearch-summary' => 'Iste pagina permitte filtrar le files a base de lor typos MIME.
-Syntaxe: typo/subtypo, p.ex. <tt>image/jpeg</tt>.',
+Syntaxe: typo/subtypo, p.ex. <code>image/jpeg</code>.',
 'mimetype' => 'Typo MIME:',
 'download' => 'discargar',
 
@@ -1975,6 +1975,7 @@ Le entratas <del>cancellate</del> ha essite resolvite.',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}',
 'ncategories' => '$1 {{PLURAL:$1|categoria|categorias}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwikis}}',
 'nlinks' => '$1 {{PLURAL:$1|ligamine|ligamines}}',
 'nmembers' => '$1 {{PLURAL:$1|membro|membros}}',
 'nrevisions' => '$1 {{PLURAL:$1|version|versiones}}',
@@ -2003,6 +2004,7 @@ Le entratas <del>cancellate</del> ha essite resolvite.',
 'mostlinkedtemplates' => 'Patronos le plus utilisate',
 'mostcategories' => 'Paginas con le plus categorias',
 'mostimages' => 'Files le plus utilisate',
+'mostinterwikis' => 'Paginas con le plus interwikis',
 'mostrevisions' => 'Paginas le plus modificate',
 'prefixindex' => 'Tote le paginas con prefixo',
 'prefixindex-namespace' => 'Tote le paginas con prefixo (spatio de nomines $1)',
@@ -2104,7 +2106,7 @@ Vide etiam le [[Special:WantedCategories|categorias desirate]].',
 'linksearch-ok' => 'Cercar',
 'linksearch-text' => 'Es possibile usar metacharacteres como in "*.wikipedia.org".
 Necessita al minus un dominio de nivello superior, per exemplo "*.org".<br />
-Protocollos supportate: <tt>$1</tt> (non include alcun de istes in tu recerca).',
+Protocollos supportate: <code>$1</code> (non include alcun de istes in tu recerca).',
 'linksearch-line' => '$1 ligate ab $2',
 'linksearch-error' => 'Le metacharacteres pote apparer solmente al initio del nomine de host.',
 
@@ -2152,6 +2154,8 @@ Il pote haber [[{{MediaWiki:Listgrouprights-helppage}}|informationes additional]
 e haber un adresse de e-mail valide in tu [[Special:Preferences|preferentias]]
 pro inviar e-mail a altere usatores.',
 'emailuser' => 'Inviar e-mail a iste usator',
+'emailuser-title-target' => 'Inviar e-mail a iste {{GENDER:$1|usator|usatrice}}',
+'emailuser-title-notarget' => 'Inviar e-mail al usator',
 'emailpage' => 'Inviar e-mail al usator',
 'emailpagetext' => 'Le formulario infra es pro inviar un message de e-mail a iste usator.
 Le adresse de e-mail que tu indicava in [[Special:Preferences|tu preferentias de usator]] apparera
@@ -2815,6 +2819,7 @@ Tote le actiones de importation transwiki se registra in le [[Special:Log/import
 'import-interwiki-templates' => 'Includer tote le patronos',
 'import-interwiki-submit' => 'Importar',
 'import-interwiki-namespace' => 'Spatio de nomines de destination:',
+'import-interwiki-rootpage' => 'Pagina radice de destination (optional):',
 'import-upload-filename' => 'Nomine del file:',
 'import-comment' => 'Commento:',
 'importtext' => 'Per favor exporta le file del wiki de origine con le [[Special:Export|facilitate de exportation]].
@@ -2847,6 +2852,9 @@ Salveguarda lo in tu computator e incarga lo hic.',
 'import-error-interwiki' => 'Le pagina "$1" non es importate perque su nomine es reservate pro ligation externe (interwiki).',
 'import-error-special' => 'Le pagina "$1" non es importate perque illo pertine a un spatio de nomines special que non permitte paginas.',
 'import-error-invalid' => 'Le pagina "$1" non es importate perque su nomine es invalide.',
+'import-options-wrong' => 'Mal {{PLURAL:$2|option|optiones}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Le pagina radice specificate es un titulo invalide.',
+'import-rootpage-nosubpage' => 'Le spatio de nomines "$1" del pagina radice non permitte subpaginas.',
 
 # Import log
 'importlogpage' => 'Registro de importationes',
@@ -2991,16 +2999,34 @@ Le causa es probabilemente un ligamine verso un sito externe que es presente in
 
 # Info page
 'pageinfo-title' => 'Informationes pro "$1"',
-'pageinfo-header-edits' => 'Modificationes',
-'pageinfo-header-watchlist' => 'Observatorio',
-'pageinfo-header-views' => 'Visitas',
-'pageinfo-subjectpage' => 'Pagina',
-'pageinfo-talkpage' => 'Discussion',
-'pageinfo-watchers' => 'Numero de observatores',
-'pageinfo-edits' => 'Numero de modificationes',
-'pageinfo-authors' => 'Numero de autores distincte',
+'pageinfo-header-basic' => 'Information de base',
+'pageinfo-header-edits' => 'Historia de modificationes',
+'pageinfo-header-restrictions' => 'Protection del pagina',
+'pageinfo-header-properties' => 'Proprietates del pagina',
+'pageinfo-display-title' => 'Titulo monstrate',
+'pageinfo-default-sort' => 'Clave de ordination predefinite',
+'pageinfo-length' => 'Dimension del pagina (in bytes)',
+'pageinfo-article-id' => 'ID del pagina',
+'pageinfo-robot-policy' => 'Stato del motor de recerca',
+'pageinfo-robot-index' => 'Indexabile',
+'pageinfo-robot-noindex' => 'Non indexabile',
 'pageinfo-views' => 'Numero de visitas',
-'pageinfo-viewsperedit' => 'Visitas per modification',
+'pageinfo-watchers' => 'Numero de observatores del pagina',
+'pageinfo-redirects-name' => 'Redirectiones verso iste pagina',
+'pageinfo-subpages-name' => 'Subpaginas de iste pagina',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|redirection|redirectiones}}; $3 {{PLURAL:$3|non-redirection|non-redirectiones}})',
+'pageinfo-firstuser' => 'Creator del pagina',
+'pageinfo-firsttime' => 'Data de creation del pagina',
+'pageinfo-lastuser' => 'Ultime contributor',
+'pageinfo-lasttime' => 'Data del ultime modification',
+'pageinfo-edits' => 'Numero total de modificationes',
+'pageinfo-authors' => 'Numero total de autores distincte',
+'pageinfo-recent-edits' => 'Numero de modificationes recente (intra le ultime $1)',
+'pageinfo-recent-authors' => 'Numero de autores distincte recente',
+'pageinfo-restriction' => 'Protection del pagina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Parola|Parolas}} magic ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoria|Categorias}} celate ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Patrono|Patronos}} transcludite ($1)',
 
 # Skin names
 'skinname-standard' => 'Classic',
@@ -3054,6 +3080,7 @@ Le execution de illo pote compromitter le securitate de tu systema.",
 'file-info-size-pages' => '$1 × $2 pixels, dimension del file: $3, typo MIME: $4, $5 {{PLURAL:$5|pagina|paginas}}',
 'file-nohires' => 'Non disponibile in resolution plus alte.',
 'svg-long-desc' => 'File SVG, dimensiones nominal: $1 × $2 pixels, grandor del file: $3',
+'svg-long-desc-animated' => 'File SVG animate, dimensiones nominal: $1 × $2 pixels, grandor del file: $3',
 'show-big-image' => 'Plen resolution',
 'show-big-image-preview' => ' Dimension de iste previsualisation: $1.',
 'show-big-image-other' => 'Altere {{PLURAL:$2|resolution|resolutiones}}: $1.',
@@ -3063,6 +3090,8 @@ Le execution de illo pote compromitter le securitate de tu systema.",
 'file-info-png-looped' => 'repetente',
 'file-info-png-repeat' => 'repetite $1 {{PLURAL:$1|vice|vices}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|photogramma|photogrammas}}',
+'file-no-thumb-animation' => "'''Note: A causa de limitationes technic, le miniaturas de iste file non essera animate.'''",
+'file-no-thumb-animation-gif' => "'''Nota: A causa de limitationes technic, le miniaturas de imagines GIF in alte resolution como iste non essera animate.'''",
 
 # Special:NewFiles
 'newimages' => 'Galeria de nove files',
@@ -3393,7 +3422,7 @@ Le alteres essera initialmente celate.
 'exif-whitebalance-1' => 'Balancia de blanc manual',
 
 'exif-scenecapturetype-0' => 'Standard',
-'exif-scenecapturetype-1' => 'Panorama',
+'exif-scenecapturetype-1' => 'Paisage',
 'exif-scenecapturetype-2' => 'Portrait',
 'exif-scenecapturetype-3' => 'Scena nocturne',
 
index eaea8aa..73ed0c0 100644 (file)
@@ -1705,9 +1705,9 @@ Log penghapusan dan pemindahan laman ini adalah sebagai berikut:",
 Untuk menampilkan atau mencari berkas yang sebelumnya dimuat, gunakan [[Special:FileList|daftar berkas]]. Pengunggahan (ulang) juga tercatat dalam [[Special:Log/upload|log pengunggahan]], sementara penghapusan tercatat dalam [[Special:Log/delete|log penghapusan]].
 
 Untuk menampilkan atau menyertakan berkas di dalam suatu halaman, gunakan pranala dengan salah satu format di bawah ini:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Berkas.jpg]]</nowiki></tt>''' untuk menampilkan berkas dalam ukuran aslinya
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Berkas.png|200px|thumb|left|teks alternatif]]</nowiki></tt>''' untuk menampilkan berkas dengan lebar 200px dalam sebuah kotak di kiri halaman dengan 'teks alternatif' sebagai keterangan gambar
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Berkas.ogg]]</nowiki></tt>''' sebagai pranala langsung ke berkas yang dimaksud tanpa menampilkan berkas tersebut melalui wiki",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Berkas.jpg]]</nowiki></code>''' untuk menampilkan berkas dalam ukuran aslinya
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Berkas.png|200px|thumb|left|teks alternatif]]</nowiki></code>''' untuk menampilkan berkas dengan lebar 200px dalam sebuah kotak di kiri halaman dengan 'teks alternatif' sebagai keterangan gambar
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Berkas.ogg]]</nowiki></code>''' sebagai pranala langsung ke berkas yang dimaksud tanpa menampilkan berkas tersebut melalui wiki",
 'upload-permitted' => 'Jenis berkas yang diperbolehkan: $1.',
 'upload-preferred' => 'Jenis berkas yang disarankan: $1.',
 'upload-prohibited' => 'Jenis berkas yang dilarang: $1.',
@@ -1751,18 +1751,18 @@ Lihat [[Special:NewFiles|galeri berkas baru]] untuk tampilan visual.',
 'largefileserver' => 'Berkas ini lebih besar dari pada yang diizinkan server.',
 'emptyfile' => 'Berkas yang Anda muatkan kelihatannya kosong. Hal ini mungkin disebabkan karena adanya kesalahan ketik pada nama berkas. Silakan pastikan apakah Anda benar-benar ingin memuatkan berkas ini.',
 'windows-nonascii-filename' => 'Wiki ini tidak mendukung nama berkas dengan karakter istimewa.',
-'fileexists' => "Suatu berkas dengan nama tersebut telah ada, harap periksa '''<tt>[[:$1]]</tt>''' jika Anda tidak yakin untuk mengubahnya.
-[[$1|thumb]]",
-'filepageexists' => "Halaman deskripsi untuk berkas ini telah dibuat di '''<tt>[[:$1]]</tt>''', tapi saat ini tak ditemukan berkas dengan nama tersebut. Ringkasan yang Anda masukkan tidak akan tampil pada halaman deskripsi. Untuk memunculkannya, Anda perlu untuk menyuntingnya secara manual.
-[[$1|thumb]]",
-'fileexists-extension' => "Berkas dengan nama serupa telah ada: [[$2|thumb]]
-* Nama berkas yang akan dimuat: '''<tt>[[:$1]]</tt>'''
-* Nama berkas yang telah ada: '''<tt>[[:$2]]</tt>'''
-Mohon gunakan nama yang berbeda.",
+'fileexists' => 'Suatu berkas dengan nama tersebut telah ada, harap periksa <strong>[[:$1]]</strong> jika Anda tidak yakin untuk mengubahnya.
+[[$1|thumb]]',
+'filepageexists' => 'Halaman deskripsi untuk berkas ini telah dibuat di <strong>[[:$1]]</strong>, tapi saat ini tak ditemukan berkas dengan nama tersebut. Ringkasan yang Anda masukkan tidak akan tampil pada halaman deskripsi. Untuk memunculkannya, Anda perlu untuk menyuntingnya secara manual.
+[[$1|thumb]]',
+'fileexists-extension' => 'Berkas dengan nama serupa telah ada: [[$2|thumb]]
+* Nama berkas yang akan dimuat: <strong>[[:$1]]</strong>
+* Nama berkas yang telah ada: <strong>[[:$2]]</strong>
+Mohon gunakan nama yang berbeda.',
 'fileexists-thumbnail-yes' => "Berkas ini tampaknya merupakan gambar yang ukurannya diperkecil ''(miniatur)''. [[$1|thumb]]
-Harap periksa berkas '''<tt>[[:$1]]</tt>''' tersebut.
+Harap periksa berkas <strong>[[:$1]]</strong> tersebut.
 Jika berkas tersebut memang merupakan gambar dalam ukuran aslinya, Anda tidak perlu untuk memuat kembali miniatur lainnya.",
-'file-thumbnail-no' => "Nama berkas dimulai dengan '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Nama berkas dimulai dengan <strong>$1</strong>.
 Tampaknya berkas ini merupakan gambar dengan ukuran diperkecil ''(miniatur)''.
 Jika Anda memiliki versi resolusi penuh dari gambar ini, harap muatkan berkas tersebut. Jika tidak, harap ubah nama berkas ini.",
 'fileexists-forbidden' => 'Suatu berkas dengan nama ini telah ada dan tak dapat ditimpa.
@@ -2005,7 +2005,7 @@ Mungkin Anda ingin menyunting keterangan pada [$2 halaman deskripsi berkas] di s
 
 # MIME search
 'mimesearch' => 'Pencarian MIME',
-'mimesearch-summary' => 'Halaman ini menyediakan fasilitas menyaring berkas berdasarkan tipe MIME nya. Masukkan: contenttype/subtype, misalnya <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Halaman ini menyediakan fasilitas menyaring berkas berdasarkan tipe MIME nya. Masukkan: contenttype/subtype, misalnya <code>image/jpeg</code>.',
 'mimetype' => 'Tipe MIME:',
 'download' => 'unduh',
 
@@ -2206,7 +2206,7 @@ Lihat pula [[Special:WantedCategories|kategori yang diinginkan]].',
 'linksearch-ok' => 'Cari',
 'linksearch-text' => 'Kartu liar seperti "*.wikipedia.org" dapat digunakan.
 Membutuhkan sedikitnya satu ranah tingkat atas, misalnya "*.org".<br />
-Protokol yang didukung: <tt>$1</tt> (jangan tambahkan dalam pencarian Anda)',
+Protokol yang didukung: <code>$1</code> (jangan tambahkan dalam pencarian Anda)',
 'linksearch-line' => '$1 memiliki pranala dari $2',
 'linksearch-error' => "''Wildcards'' hanya dapat digunakan di bagian awal dari nama host.",
 
@@ -3047,15 +3047,10 @@ Ini mungkin disebabkan oleh pranala ke situs luar yang termasuk dalam daftar hit
 # Info page
 'pageinfo-title' => 'Informasi untuk "$1"',
 'pageinfo-header-edits' => 'Suntingan',
-'pageinfo-header-watchlist' => 'Daftar pantauan',
-'pageinfo-header-views' => 'Tampilan',
-'pageinfo-subjectpage' => 'Halaman',
-'pageinfo-talkpage' => 'Halaman pembicaraan',
+'pageinfo-views' => 'Jumlah penampilan',
 'pageinfo-watchers' => 'Jumlah pemantau',
 'pageinfo-edits' => 'Jumlah suntingan',
 'pageinfo-authors' => 'Jumlah penulis yang berbeda',
-'pageinfo-views' => 'Jumlah penampilan',
-'pageinfo-viewsperedit' => 'Jumlah penampilan per suntingan',
 
 # Skin names
 'skinname-standard' => 'Klasik',
index 8790965..ec2cba0 100644 (file)
@@ -778,9 +778,9 @@ Págines in [[Special:Watchlist|tui liste de págines vigilat]] es '''nigri'''."
 Por vider o serchar files cargat anteriorimen ear por li [[Special:FileList|liste de files cargat]], (re)cargamentes es anc registrat in li [[Special:Log/upload|diarium de cargament]], deletiones in li [[Special:Log/delete|diarium de deletion]].
 
 Por includer un file in un págine, usa un catenun in un de sequent formes:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' por usar li version complet de li file
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' por usar un rendition larg de 200 pixel in un buxe in li márgine levul che 'alt text' quam descrition
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' por ligar inmediatmen por li file sin monstrar li file",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' por usar li version complet de li file
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' por usar un rendition larg de 200 pixel in un buxe in li márgine levul che 'alt text' quam descrition
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' por ligar inmediatmen por li file sin monstrar li file",
 'upload-permitted' => 'Tipes de file permisset: $1.',
 'upload-preferred' => 'Tipes de file preferet: $1.',
 'upload-prohibited' => 'Tipes de file prohibit: $1.',
index d944f44..abbcd8c 100644 (file)
@@ -1450,9 +1450,9 @@ Ti listaan ti panagikkat ken panagiyalis daytoy a panid ket adda ditoy tapno mak
 Ti panagkita wenno panagbiruk ti napalubos a pinag-ipan ti papeles mapan ka idiay [[Special:FileList|listaan dagiti napag-ipan a papeles]], dagiti pinag-ipan wenno pinag-ipan manen ket nakalista pay idiay [[Special:Log/upload|listaan ti pinag-ipan]], dagiti panagikkat ket idiay [[Special:Log/delete|listaan ti panagikkat]].
 
 Ti panagikabil ti papeles iti panid, usaren ti panilpo a kas dagiti sumaganad a kabuklan:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' ti panag-usar ti dakkel a bersion ti papeles
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' ti agusar ti 200 pixel a kaakaba  a panagparang iti kahon idiay kannigid nga adda 'sabali a testo' ti panagipalpalawag
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' ti dagus a panagsilpo idiay papeles nga awan ti panagparang ti papeles",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' ti panag-usar ti dakkel a bersion ti papeles
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' ti agusar ti 200 pixel a kaakaba  a panagparang iti kahon idiay kannigid nga adda 'sabali a testo' ti panagipalpalawag
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' ti dagus a panagsilpo idiay papeles nga awan ti panagparang ti papeles",
 'upload-permitted' => 'Dagiti mapalubosan a kita ti papeles: $1.',
 'upload-preferred' => 'Dagiti mabalbalin a kita ti papeles: $1.',
 'upload-prohibited' => 'Dagiti maiparit a kita ti papeles: $1.',
@@ -1500,21 +1500,21 @@ daytoy a papeles ket $2.',
 Baka daytoy ket gapu ti kamali ti inkabil a nagan ti papeles.
 Pangngaasi ta kitaem no kayatmo latta nga ipapan daytoy a papeles.',
 'windows-nonascii-filename' => 'Daytoy a wiki ket saanna a tapayaen dagiti nagan ti papeles nga adda ti kangrunaan a kababalin',
-'fileexists' => "Adda ti papeles nga agnagan ti kastoy, pangngaasi a kitaemti  '''<tt>[[:$1]]</tt>''' no saanka a sigurado a mangsukat.
-[[$1|thumb]]",
-'filepageexists' => "Ti panangipalpalawag a panid ti daytoy a papeles ket naaramiden idiay '''<tt>[[:$1]]</tt>''', mgem awan ti agnagan ti katoy a papeles.
+'fileexists' => 'Adda ti papeles nga agnagan ti kastoy, pangngaasi a kitaemti  <strong>[[:$1]]</strong> no saanka a sigurado a mangsukat.
+[[$1|thumb]]',
+'filepageexists' => 'Ti panangipalpalawag a panid ti daytoy a papeles ket naaramiden idiay <strong>[[:$1]]</strong>, mgem awan ti agnagan ti katoy a papeles.
 Ti pakabuklan nga inkabilmo ket saan nga agparang idiay panid ti panangipalpalawag.
 Tapno ti pakabuklan ket agparang idiay, masapul  a baliwam idiay.
-[[$1|thumb]]",
-'fileexists-extension' => "Adda papeles nga agnagan ti kastoy: [[$2|thumb]]
-* Nagan ti naipapan a papeles: '''<tt>[[:$1]]</tt>'''
-* Nagan ti adda a papeles: '''<tt>[[:$2]]</tt>'''
-Pangngaasi nga agpili ti sabali a nagan.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Adda papeles nga agnagan ti kastoy: [[$2|thumb]]
+* Nagan ti naipapan a papeles: <strong>[[:$1]]</strong>
+* Nagan ti adda a papeles: <strong>[[:$2]]</strong>
+Pangngaasi nga agpili ti sabali a nagan.',
 'fileexists-thumbnail-yes' => "Daytoy a papeles ket kasla imahen a napabassit ''(thumbnail)''.
 [[$1|thumb]]
-Pangngaasi a kitaem ti papeles a '''<tt>[[:$1]]</tt>'''.
+Pangngaasi a kitaem ti papeles a <strong>[[:$1]]</strong>.
 No ti nakitam a papeles ket isu met laeng dayta dati a kadakkel, saanka a mang-ipan iti sabali pay a napabassit nga imahen.",
-'file-thumbnail-no' => "Ti nagan ti papeles ket mangrugi ti '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Ti nagan ti papeles ket mangrugi ti <strong>$1</strong>.
 Kasla imahen a napabassit ''(thumbnail)''.
 No addaan ka ti dakkel a resolusion daytoy nga imahen ipag-ipan daytoy, no saan ket pangngaasi ta sukatam ti nagan ti papeles.",
 'fileexists-forbidden' => 'Daytoy a nagan ti papeles ket adda dita, ken saan a mabalin a masuratan manen.
@@ -1764,7 +1764,7 @@ Baka kayatmo nga urnosen ti bukodna a deskripsionna idiay [$2 deskripsion ti pap
 # MIME search
 'mimesearch' => 'Pagbiruk ti MIME',
 'mimesearch-summary' => 'Daytoy a panid ket pakabaelan na ti panagsagat ti papeles iti kita da a MIME.
-Ikabil: kita ti nagyan/apo a kita, e.g. <tt>image/jpeg</tt>.',
+Ikabil: kita ti nagyan/apo a kita, e.g. <code>image/jpeg</code>.',
 'mimetype' => 'Kita ti MIME:',
 'download' => 'Ikarga nga agpababa',
 
@@ -1966,7 +1966,7 @@ Kitaen met [[Special:WantedCategories|dagiti makidkiddaw a kategoria]].',
 'linksearch-ok' => 'Biruken',
 'linksearch-text' => 'Ti naataap a tarheta a kas "*.wikipedia.org" ket mabalin nga usaren.
 Masapul ti kangatuan a pagturayan, a kaspagarigan "*.org".<br />
-Natapayaen a protokol: <tt>$1</tt> (saanmo nga inayon dagitoy iti panagbirukmo) .',
+Natapayaen a protokol: <code>$1</code> (saanmo nga inayon dagitoy iti panagbirukmo) .',
 'linksearch-line' => 'Ti $1 ket nakasilpo idiay $2',
 'linksearch-error' => 'Ti naatap a tarheta ket agparang laeng iti pinagrugi ti nagan ti agsangaili.',
 
@@ -2818,15 +2818,10 @@ Daytoy ket mabalin a gapuanan babaen ti panilpo a naiparit ti akin ruar a pagsaa
 # Info page
 'pageinfo-title' => 'Pakaammo para iti "$1"',
 'pageinfo-header-edits' => 'Dagiti inurnos',
-'pageinfo-header-watchlist' => 'Listaan ti bambantayan',
-'pageinfo-header-views' => 'Dagiti pangkitaan',
-'pageinfo-subjectpage' => 'Panid',
-'pageinfo-talkpage' => 'Tungtungan a panid',
+'pageinfo-views' => 'Bilang dagiti panagkita',
 'pageinfo-watchers' => 'Bilang dagiti agbuybuya',
 'pageinfo-edits' => 'Bilang dagiti inurnos:',
 'pageinfo-authors' => 'Ti bilang dagiti sabsabali a mannurat',
-'pageinfo-views' => 'Bilang dagiti panagkita',
-'pageinfo-viewsperedit' => 'Mano a panagkita ti tunggal maysa nga urnos',
 
 # Patrolling
 'markaspatrolleddiff' => 'Markaan a kas napatruliaan',
index 89752bb..26ca3da 100644 (file)
@@ -865,9 +865,9 @@ Videz rezumo plu vidala en la [[Special:NewFiles|galerio di nova arkivi]].',
 'uploadedfiles' => 'Adkargita arkivi',
 'ignorewarning' => 'Ignorar la averto e gardar la arkivo irgakaze.',
 'badfilename' => 'La imajo-nomo chanjesis a "$1".',
-'fileexists' => "Arkivo kun ica nomo ja existas.
-Volutez kontrolar '''<tt>[[:$1]]</tt>''' se vu ne esas certa pri chanjar olu.
-[[$1|thumb]]",
+'fileexists' => 'Arkivo kun ica nomo ja existas.
+Volutez kontrolar <strong>[[:$1]]</strong> se vu ne esas certa pri chanjar olu.
+[[$1|thumb]]',
 'uploadwarning' => 'Averto pri la adkargo di arkivo',
 'savefile' => 'Registragar arkivo',
 'uploadedimage' => 'adkargita "[[$1]]"',
index 23bbd82..8ac717a 100644 (file)
@@ -1571,9 +1571,9 @@ Síðasta færsla skráarinnar úr bönnunarskrá og flutningskrá er sýnd hér
 'uploadtext' => "Notaðu eyðublaðið hér fyrir neðan til að hlaða inn skrám.
 Til að skoða eða leita í áður innhlöðnum skrám ferðu á [[Special:FileList|skráarlistann]], (endur)innhlaðnar skrár eru skráðar í [[Special:Log/upload|innhlaðningarskránni]], eyðingar í [[Special:Log/delete|eyðingaskránni]].
 
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Skrá.jpg]]</nowiki></tt>''' til að sýna skránna í fullri upplausn.
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Skrá.png|200px|thumb|left|alt-texti]]</nowiki></tt>''' til að nota 200 díla upplausn í kassa, sett til vinstri með 'alt text' sem myndlýsingu.
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Skrá.ogg]]</nowiki></tt>''' til að tengja í myndina án þess að sýna hana.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Skrá.jpg]]</nowiki></code>''' til að sýna skránna í fullri upplausn.
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Skrá.png|200px|thumb|left|alt-texti]]</nowiki></code>''' til að nota 200 díla upplausn í kassa, sett til vinstri með 'alt text' sem myndlýsingu.
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Skrá.ogg]]</nowiki></code>''' til að tengja í myndina án þess að sýna hana.",
 'upload-permitted' => 'Heimilaðar skráargerðir: $1.',
 'upload-preferred' => 'Ákjósanlegustu skrárgerðirnar: $1.',
 'upload-prohibited' => 'Óheimiluð skrárgerð: $1.',
@@ -1620,21 +1620,21 @@ Gjörðu svo vel og endurnefndu skrána og hladdu henni inn aftur.',
 Þetta gæti verið vegna ásláttarvillu í skráarnafninu.
 Vinsamlegast athugaðu hvort þú viljir hlaða skránni inn.',
 'windows-nonascii-filename' => 'Þessi wiki styður ekki skráarnöfn með sérstökum stöfum',
-'fileexists' => "Skrá með þessu nafni er þegar til, skoðaðu '''<tt>[[:$1]]</tt>''' ef þú ert óviss um hvort þú viljir breyta henni, ekki verður skrifað yfir gömlu skránna hlaðiru inn nýrri með sama nafni heldur verður núverandi útgáfa geymd í útgáfusögu.
-[[$1|thumb]]",
-'filepageexists' => "Myndasíðan fyrir þessa síðu hefur þegar verið búin til '''<tt>[[:$1]]</tt>''', en engin skrá er til með þessu nafni.
+'fileexists' => 'Skrá með þessu nafni er þegar til, skoðaðu <strong>[[:$1]]</strong> ef þú ert óviss um hvort þú viljir breyta henni, ekki verður skrifað yfir gömlu skránna hlaðiru inn nýrri með sama nafni heldur verður núverandi útgáfa geymd í útgáfusögu.
+[[$1|thumb]]',
+'filepageexists' => 'Myndasíðan fyrir þessa síðu hefur þegar verið búin til <strong>[[:$1]]</strong>, en engin skrá er til með þessu nafni.
 Lýsingin sem þú skrifaðir verður ekki birt á myndasíðunni.
 Til þess að lýsingin geti birst á síðunni, þá þarft þú að breyta síðunni sérstaklega.
-[[$1|thumb]]",
-'fileexists-extension' => "Skrá með svipuðu nafni er til: [[$2|thumb]]
-*Nafn skráarinnar sem hlaða á inn: '''<tt>[[:$1]]</tt>'''
-*Nafn skráarinnar sem er þegar til: '''<tt>[[:$2]]</tt>'''
-Vinsamlegast veldu annað skráarnafn.",
-'fileexists-thumbnail-yes' => "Skráin virðist vera smámynd [[$1|thumb]]
-Vinsamlegast athugaðu skránna '''<tt>[[:$1]]</tt>'''.
-Ef skráin er sama myndin í upprunalegri stærð er ekki þörf á annari smámynd.",
-'file-thumbnail-no' => "Skráin er líklega smámynd, því skráarnafnið byrjar á '''<tt>$1</tt>'''.
-Ef skráin er í fullri upplausn haltu þá áfram að hlaða henni inn, en ef ekki breyttu þá skráarnafninu.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Skrá með svipuðu nafni er til: [[$2|thumb]]
+*Nafn skráarinnar sem hlaða á inn: <strong>[[:$1]]</strong>
+*Nafn skráarinnar sem er þegar til: <strong>[[:$2]]</strong>
+Vinsamlegast veldu annað skráarnafn.',
+'fileexists-thumbnail-yes' => 'Skráin virðist vera smámynd [[$1|thumb]]
+Vinsamlegast athugaðu skránna <strong>[[:$1]]</strong>.
+Ef skráin er sama myndin í upprunalegri stærð er ekki þörf á annari smámynd.',
+'file-thumbnail-no' => 'Skráin er líklega smámynd, því skráarnafnið byrjar á <strong>$1</strong>.
+Ef skráin er í fullri upplausn haltu þá áfram að hlaða henni inn, en ef ekki breyttu þá skráarnafninu.',
 'fileexists-forbidden' => 'Skrá með þessu nafni er þegar til og ekki er hægt að skrifa yfir skránna.
 Ef þú villt hlaða inn skránni þinni engu að síður, farðu þá til baka og veldu annað skráarnafn.
 [[File:$1|thumb|center|$1]]',
@@ -1857,7 +1857,7 @@ Hentugra væri ef þú gætir breytt lýsingu skráarinnar á [$2 myndasíðu] h
 'mimesearch' => 'MIME-leit',
 'mimesearch-summary' => 'Þessi síða gerir þér kleift að leita eftir skrám eftir MIME-gerð þeirra.
 
-Leitarstrengurinn á að vera á þessu formi: efnistag/myndasnið, t.d. <tt>image/jpeg</tt>.',
+Leitarstrengurinn á að vera á þessu formi: efnistag/myndasnið, t.d. <code>image/jpeg</code>.',
 'mimetype' => 'MIME-tegund:',
 'download' => 'Hlaða niður',
 
@@ -2057,7 +2057,7 @@ Sjá einnig [[Special:WantedCategories|eftirsótta flokka]].',
 'linksearch-ok' => 'Leita',
 'linksearch-text' => 'Algildistafir eins og "*.wikipedia.org" eru leyfðir.<br />
 Stafurinn þarf í minnsta kosti að innihalda rótarlén, eins og "*.org"
-Studdar samskiptareglur: <tt>$1</tt> (ekki bæta neinum af þessum í leitina)',
+Studdar samskiptareglur: <code>$1</code> (ekki bæta neinum af þessum í leitina)',
 'linksearch-line' => 'Tengt er í $1 á síðunni $2',
 'linksearch-error' => 'Algildistafir mega engöngu birtast í upphafi vefslóðarinnar.',
 
@@ -2883,15 +2883,10 @@ Vinsamlegast reyndu aftur.',
 # Info page
 'pageinfo-title' => 'Upplýsingar um $1',
 'pageinfo-header-edits' => 'Breytingar',
-'pageinfo-header-watchlist' => 'Vaktlistinn',
-'pageinfo-header-views' => 'Flettingar',
-'pageinfo-subjectpage' => 'Síða',
-'pageinfo-talkpage' => 'Spjallsíða',
+'pageinfo-views' => 'Fjöldi innlita',
 'pageinfo-watchers' => 'Fjöldi notenda',
 'pageinfo-edits' => 'Fjöldi breytinga',
 'pageinfo-authors' => 'Fjöldi einstakra höfunda',
-'pageinfo-views' => 'Fjöldi innlita',
-'pageinfo-viewsperedit' => 'Flettingar á hverja breytingu',
 
 # Skin names
 'skinname-standard' => 'Sígilt',
index f253a3d..8799cd5 100644 (file)
@@ -585,9 +585,9 @@ L'elenco delle pagine speciali valide si trova in [[Special:SpecialPages|Elenco
 'dberrortext' => 'Errore di sintassi nella richiesta inoltrata al database.
 Ciò potrebbe indicare la presenza di un bug nel software.
 L\'ultima query inviata al database è stata:
-<blockquote><tt>$1</tt></blockquote>
-richiamata dalla funzione "<tt>$2</tt>".
-Il database ha restituito il seguente errore "<tt>$3: $4</tt>".',
+<blockquote><code>$1</code></blockquote>
+richiamata dalla funzione "<code>$2</code>".
+Il database ha restituito il seguente errore "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Errore di sintassi nella richiesta inoltrata al database.
 L\'ultima query inviata al database è stata:
 "$1"
@@ -812,8 +812,8 @@ Se non sei stato tu a fare la richiesta, o se ti sei ricordato la password origi
 'passwordreset-emailelement' => 'Nome utente: $1
 Password temporanea: $2',
 'passwordreset-emailsent' => 'È stata inviata una e-mail di promemoria.',
-'passwordreset-emailsent-capture' => "E' stato inviato un e-mail promemoria, il contenuto è riportato di seguito.",
-'passwordreset-emailerror-capture' => "E' stata generata l'e-mail promemoria riportata di seguito. L'invio all'utente non è riuscito: $1",
+'passwordreset-emailsent-capture' => 'È stata inviata una e-mail di promemoria, il contenuto è riportato di seguito.',
+'passwordreset-emailerror-capture' => "È stata generata l'e-mail di promemoria riportata di seguito. L'invio all'utente non è riuscito: $1",
 
 # Special:ChangeEmail
 'changeemail' => "Modifica l'indirizzo e-mail",
@@ -857,8 +857,8 @@ Password temporanea: $2',
 'showlivepreview' => "Funzione ''Live preview''",
 'showdiff' => 'Mostra cambiamenti',
 'anoneditwarning' => "'''Attenzione:''' Accesso non effettuato. Nella cronologia della pagina verrà registrato l'indirizzo IP.",
-'anonpreviewwarning' => "''Non hai eseguito il login. Salvando il tuo indirizzo IP sarà registrato nella cronologia di questa voce.''",
-'missingsummary' => "'''Attenzione:''' non è stato specificato l'oggetto di questa modifica. Premendo di nuovo '''Salva la pagina''' la modifica verrà salvata con l'oggetto vuoto.",
+'anonpreviewwarning' => "''Non è stato eseguito il login. Salvando la pagina, il proprio indirizzo IP sarà registrato nella cronologia.''",
+'missingsummary' => "'''Attenzione:''' non è stato specificato l'oggetto di questa modifica. Premendo di nuovo \"{{int:savearticle}}\" la modifica verrà salvata con l'oggetto vuoto.",
 'missingcommenttext' => 'Inserire un commento qui sotto.',
 'missingcommentheader' => "'''Attenzione:''' non è stata specificato l'oggetto/l'intestazione di questo commento. Premendo di nuovo \"{{int:savearticle}}\" la modifica verrà salvata senza intestazione.",
 'summary-preview' => "Anteprima dell'oggetto:",
@@ -921,12 +921,11 @@ I dettagli possono essere trovati nel [{{fullurl:{{#Special:Log}}/delete|page={{
 'userpage-userdoesnotexist-view' => 'L\'account utente "$1" non è registrato.',
 'blocked-notice-logextract' => "Questo utente è attualmente bloccato.
 L'ultimo elemento del registro dei blocchi è riportato di seguito per informazione:",
-'clearyourcache' => "'''Nota:''' dopo aver salvato, potrebbe essere necessario pulire la cache del tuo browser per vedere i cambiamenti. 
-*'''Firefox / Safari''': tieni premuto il tasto delle maiuscole e fai clic su ''Ricarica'', oppure premi ''Ctrl-F5'' o ''Ctrl-R'' (''⌘-R'' su Mac)
-*'''Google Chrome''': premi ''Ctrl-Shift-R'' (''⌘-Shift-R'' su un Mac)
-*'''Internet Explorer''': tieni premuto il tasto ''Ctrl'' mentre clicchi su ''Refresh'', oppure premi ''Ctrl-F5''
-*'''Konqueror''': premi il pulsante ''Ricarica'' o il tasto ''F5''; 
-*'''Opera''': svuota completamente la cache dal menu ''Strumenti → Preferenze''",
+'clearyourcache' => "'''Nota:''' dopo aver salvato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti. 
+*'''Firefox / Safari''': tenere premuto il tasto delle maiuscole e fare clic su ''Ricarica'', oppure premere ''Ctrl-F5'' o ''Ctrl-R'' (''⌘-R'' su Mac)
+*'''Google Chrome''': premere ''Ctrl-Shift-R'' (''⌘-Shift-R'' su un Mac)
+*'''Internet Explorer''': tenere premuto il tasto ''Ctrl'' mentre si fa clic su ''Refresh'', oppure premere ''Ctrl-F5''
+*'''Opera''': svuotare completamente la cache dal menu ''Strumenti → Preferenze''",
 'usercssyoucanpreview' => "'''Suggerimento:''' usa il pulsante 'Visualizza anteprima' per provare il tuo nuovo CSS prima di salvarlo.",
 'userjsyoucanpreview' => "'''Suggerimento:''' usa il pulsante 'Visualizza anteprima' per provare il tuo nuovo JavaScript prima di salvarlo.",
 'usercsspreview' => "'''Questa è solo un'anteprima del proprio CSS personale. Le modifiche non sono ancora state salvate!'''",
@@ -935,7 +934,7 @@ L'ultimo elemento del registro dei blocchi è riportato di seguito per informazi
 'sitejspreview' => "Questa è solo un'anteprima per provare il JavaScript; le modifiche non sono ancora state salvate!'''",
 'userinvalidcssjstitle' => "'''Attenzione:'''  Non esiste alcuna skin con nome \"\$1\". Si noti che le pagine per i .css e .js personalizzati hanno l'iniziale del titolo minuscola, ad esempio {{ns:user}}:Esempio/vector.css e non {{ns:user}}:Esempio/Vector.css.",
 'updated' => '(Aggiornato)',
-'note' => "'''NOTA:'''",
+'note' => "'''Nota:'''",
 'previewnote' => "'''Ricorda che questa è solo un'anteprima.'''
 Le tue modifiche NON sono ancora state salvate!",
 'continue-editing' => 'Continua a modificare',
@@ -949,7 +948,7 @@ Se il problema persiste, si può tentare di [[Special:UserLogout|scollegarsi]] e
 
 '''Se questo è un legittimo tentativo di modifica, riprovare. Se il problema persiste, si può provare a [[Special:UserLogout|scollegarsi]] ed effettuare un nuovo accesso.'''",
 'token_suffix_mismatch' => "'''La modifica non è stata salvata perché il client ha mostrato di gestire in modo errato i caratteri di punteggiatura nel token associato alla stessa. Per evitare una possibile corruzione del testo della pagina, è stata rifiutata l'intera modifica. Questa situazione può verificarsi, talvolta, quando vengono usati alcuni servizi di proxy anonimi via web che presentano dei bug.'''",
-'edit_form_incomplete' => "' ' Alcune parti del modulo di modifica non hanno raggiunto il server; controllare che le modifiche siano intatte e riprovare. ' '",
+'edit_form_incomplete' => "'''Alcune parti del modulo di modifica non hanno raggiunto il server; controllare che le modifiche siano intatte e riprovare.'''",
 'editing' => 'Modifica di $1',
 'creating' => 'Stai creando $1',
 'editingsection' => 'Modifica di $1 (sezione)',
@@ -976,15 +975,16 @@ Inviando il testo dichiari inoltre, sotto tua responsabilità, che è stato scri
 '''Non inviare materiale protetto da copyright senza autorizzazione!'''",
 'longpageerror' => "'''Errore: il testo inviato è lungo {{PLURAL:$1|1|$1}} kilobyte, che è maggiore della dimensione massima consentita ({{PLURAL:$2|1|$2}} kilobyte).'''
 Il testo non può essere salvato.",
-'readonlywarning' => "'''ATTENZIONE: Il database è stato bloccato per manutenzione, è quindi impossibile salvare le modifiche in questo momento. Per non perderle, è possibile copiare quanto inserito finora nella casella di modifica, incollarlo in un programma di elaborazione testi e salvarlo in attesa dello sblocco del database.'''
+'readonlywarning' => "'''Attenzione: il database è stato bloccato per manutenzione, è quindi impossibile salvare le modifiche in questo momento.'''
+Per non perderle, è possibile copiare quanto inserito finora nella casella di modifica, incollarlo in un programma di elaborazione testi e salvarlo in attesa dello sblocco del database.
 
 L'amministratore che ha bloccato il database ha fornito questa spiegazione: $1",
-'protectedpagewarning' => "'''ATTENZIONE: Questa pagina è stata bloccata in modo che solo gli utenti con privilegi di amministratore possano modificarla.'''
+'protectedpagewarning' => "'''Attenzione: questa pagina è stata bloccata in modo che solo gli utenti con privilegi di amministratore possano modificarla.'''
 L'ultimo elemento del registro è riportato di seguito per informazione:",
 'semiprotectedpagewarning' => "'''Nota:''' Questa pagina è stata bloccata in modo che solo gli utenti registrati possano modificarla.
 L'ultimo elemento del registro è riportato di seguito per informazione:",
 'cascadeprotectedwarning' => "'''Attenzione:''' Questa pagina è stata bloccata in modo che solo gli utenti con privilegi di amministratore possano modificarla. Ciò avviene perché la pagina è inclusa {{PLURAL:\$1|nella pagina indicata di seguito, che è stata protetta|nelle pagine indicate di seguito, che sono state protette}} selezionando la protezione \"ricorsiva\":",
-'titleprotectedwarning' => "'''ATTENZIONE:  Questa pagina è stata bloccata in modo che siano necessari [[Special:ListGroupRights|diritti specifici]] per crearla.'''
+'titleprotectedwarning' => "'''Attenzione: questa pagina è stata bloccata in modo che siano necessari [[Special:ListGroupRights|diritti specifici]] per crearla.'''
 L'ultimo elemento del registro è riportato di seguito per informazione:",
 'templatesused' => '{{PLURAL:$1|Template utilizzato|Template utilizzati}} in questa pagina:',
 'templatesusedpreview' => '{{PLURAL:$1|Template utilizzato|Template utilizzati}} in questa anteprima:',
@@ -1165,7 +1165,8 @@ $1",
 'revdelete-only-restricted' => "Errore nel nascondere l'oggetto datato $1, $2: non è possibile nascondere gli oggetti alla vista degli amministratori senza selezionare almeno un'altra delle opzioni di rimozione.",
 'revdelete-reason-dropdown' => '*Motivazioni più comuni per la cancellazione
 ** Violazione di copyright
-** Informazioni personali inappropriate',
+** Informazioni personali inappropriate
+** Informazione potenzialmente diffamatoria',
 'revdelete-otherreason' => 'Altra motivazione o motivazione aggiuntiva:',
 'revdelete-reasonotherlist' => 'Altra motivazione',
 'revdelete-edit-reasonlist' => 'Modifica le motivazioni per la cancellazione',
@@ -1306,7 +1307,7 @@ I dettagli possono essere trovati nel [{{fullurl:{{#Special:Log}}/delete|page={{
 'datedefault' => 'Nessuna preferenza',
 'prefs-beta' => 'Funzionalità beta',
 'prefs-datetime' => 'Data e ora',
-'prefs-labs' => 'Funzionalità dei laboratori',
+'prefs-labs' => 'Funzionalità sperimentali',
 'prefs-user-pages' => 'Pagine utente',
 'prefs-personal' => 'Profilo utente',
 'prefs-rc' => 'Ultime modifiche',
@@ -1626,9 +1627,9 @@ Ill log delle cancellazioni e degli spostamenti di questa pagina viene qui ripor
 'uploadtext' => "Usare il modulo sottostante per caricare nuovi file. Per visualizzare o ricercare i file già caricati, consultare il [[Special:FileList|log dei file caricati]]. Caricamenti di file e di nuove versioni di file sono registrati nel [[Special:Log/upload|log degli upload]], le cancellazioni nell'[[Special:Log/delete|apposito]].
 
 Per inserire un file all'interno di una pagina, fare un collegamento di questo tipo:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' per usare la versione completa del file
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|testo alternativo]]</nowiki></tt>''' per usare una versione larga 200 pixel inserita in un box, allineata a sinistra e con 'testo alternativo' come didascalia
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' per generare un collegamento diretto al file senza visualizzarlo",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' per usare la versione completa del file
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|testo alternativo]]</nowiki></code>''' per usare una versione larga 200 pixel inserita in un box, allineata a sinistra e con 'testo alternativo' come didascalia
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' per generare un collegamento diretto al file senza visualizzarlo",
 'upload-permitted' => 'Tipi di file consentiti: $1.',
 'upload-preferred' => 'Tipi di file consigliati: $1.',
 'upload-prohibited' => 'Tipi di file non consentiti: $1.',
@@ -1670,19 +1671,19 @@ Consultare la [[Special:NewFiles|galleria dei nuovi file]] per una visione d'ins
 'largefileserver' => 'Il file supera le dimensioni consentite dalla configurazione del server.',
 'emptyfile' => 'Il file appena caricato sembra essere vuoto. Ciò potrebbe essere dovuto ad un errore nel nome del file. Verificare che si intenda realmente caricare questo file.',
 'windows-nonascii-filename' => 'Questo wiki non supporta nomi di file con caratteri speciali.',
-'fileexists' => "Un file con questo nome esiste già.
-Verificare prima '''<tt>[[:$1]]</tt>''' se non si è sicuri di volerlo sovrascrivere.
+'fileexists' => 'Un file con questo nome esiste già.
+Verificare prima <strong>[[:$1]]</strong> se non si è sicuri di volerlo sovrascrivere.
+[[$1|thumb]]',
+'filepageexists' => "La pagina di descrizione di questo file è già stata creata all'indirizzo <strong>[[:$1]]</strong>, anche se non esiste ancora un file con questo nome. La descrizione dell'oggetto inserita in fase di caricamento non apparirà sulla pagina di descrizione. Per far sì che l'oggetto compaia sulla pagina di descrizione, sarà necessario modificarla manualmente.
 [[$1|thumb]]",
-'filepageexists' => "La pagina di descrizione di questo file è già stata creata all'indirizzo '''<tt>[[:$1]]</tt>''', anche se non esiste ancora un file con questo nome. La descrizione dell'oggetto inserita in fase di caricamento non apparirà sulla pagina di descrizione. Per far sì che l'oggetto compaia sulla pagina di descrizione, sarà necessario modificarla manualmente.
-[[$1|thumb]]",
-'fileexists-extension' => "Un file con nome simile a questo esiste già: [[$2|thumb]]
-* Nome del file caricato: '''<tt>[[:$1]]</tt>'''
-* Nome del file esistente: '''<tt>[[:$2]]</tt>'''
-Scegliere un nome diverso.",
+'fileexists-extension' => 'Un file con nome simile a questo esiste già: [[$2|thumb]]
+* Nome del file caricato: <strong>[[:$1]]</strong>
+* Nome del file esistente: <strong>[[:$2]]</strong>
+Scegliere un nome diverso.',
 'fileexists-thumbnail-yes' => "Il file caricato sembra essere una miniatura ''(thumbnail)''. [[$1|thumb]]
-Verificare, per confronto, il file '''<tt>[[:$1]]</tt>'''.
+Verificare, per confronto, il file <strong>[[:$1]]</strong>.
 Se si tratta della stessa immagine, nelle dimensioni originali, non è necessario caricarne altre miniature.",
-'file-thumbnail-no' => "Il nome del file inizia con '''<tt>$1</tt>'''; sembra quindi essere una miniatura ''(thumbnail)''.
+'file-thumbnail-no' => "Il nome del file inizia con <strong>$1</strong>; sembra quindi essere una miniatura ''(thumbnail)''.
 Se si dispone dell'immagine nella risoluzione originale, si prega di caricarla. In caso contrario, si prega di cambiare il nome del file.",
 'fileexists-forbidden' => 'Un file con questo nome esiste già e non può essere sovrascritto. Tornare indietro e modificare il nome con il quale caricare il file. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => "Un file con questo nome esiste già nell'archivio di risorse multimediali condivise. Se si desidera ancora caricare il file, tornare indietro e modificare il nome con il quale caricare il file. [[File:$1|thumb|center|$1]]",
@@ -1903,6 +1904,7 @@ Probabilmente vuoi modificare la descrizione presente nella [$2 pagina di descri
 'shared-repo-from' => 'da $1',
 'shared-repo' => 'un archivio condiviso',
 'filepage.css' => '/* Il CSS messo qui viene incluso nella pagina di descrizione del file, inclusa anche su wiki client esterni */',
+'upload-disallowed-here' => 'Impossibile sovrascrivere questa immagine.',
 
 # File reversion
 'filerevert' => 'Ripristina $1',
@@ -1936,7 +1938,7 @@ Probabilmente vuoi modificare la descrizione presente nella [$2 pagina di descri
 
 # MIME search
 'mimesearch' => 'Ricerca in base al tipo MIME',
-'mimesearch-summary' => 'Questa pagina consente di filtrare i file in base al tipo MIME. Inserire la stringa di ricerca nella forma tipo/sottotipo, ad es. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Questa pagina consente di filtrare i file in base al tipo MIME. Inserire la stringa di ricerca nella forma tipo/sottotipo, ad es. <code>image/jpeg</code>.',
 'mimetype' => 'Tipo MIME:',
 'download' => 'scarica',
 
@@ -2004,11 +2006,12 @@ I redirect <del>cancellati</del> sono stati corretti.',
 'withoutinterwiki-legend' => 'Prefisso',
 'withoutinterwiki-submit' => 'Mostra',
 
-'fewestrevisions' => 'Voci con meno revisioni',
+'fewestrevisions' => 'Pagine con meno revisioni',
 
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|byte}}',
 'ncategories' => '$1 {{PLURAL:$1|categoria|categorie}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki}}',
 'nlinks' => '$1 {{PLURAL:$1|collegamento|collegamenti}}',
 'nmembers' => '$1 {{PLURAL:$1|elemento|elementi}}',
 'nrevisions' => '$1 {{PLURAL:$1|revisione|revisioni}}',
@@ -2035,10 +2038,11 @@ I redirect <del>cancellati</del> sono stati corretti.',
 'mostlinked' => 'Pagine più richiamate',
 'mostlinkedcategories' => 'Categorie più richiamate',
 'mostlinkedtemplates' => 'Template più utilizzati',
-'mostcategories' => 'Voci con più categorie',
+'mostcategories' => 'Pagine con più categorie',
 'mostimages' => 'File più richiamati',
-'mostrevisions' => 'Voci con più revisioni',
-'prefixindex' => 'Indice delle voci per lettere iniziali',
+'mostinterwikis' => 'Pagine con più interwiki',
+'mostrevisions' => 'Pagine con più versioni',
+'prefixindex' => 'Indice delle pagine per lettere iniziali',
 'prefixindex-namespace' => 'Tutte le pagine con il prefisso del namespace $1',
 'shortpages' => 'Pagine più corte',
 'longpages' => 'Pagine più lunghe',
@@ -2137,7 +2141,7 @@ Vedi anche le [[Special:WantedCategories|categorie richieste]].',
 'linksearch-ok' => 'Cerca',
 'linksearch-text' => 'È possibile fare uso di metacaratteri, ad esempio "*.wikipedia.org".<br />
 È necessario almeno un dominio di primo livello, ad esempio "*.org".<br />
-Protocolli supportati: <tt>$1</tt> (non aggiungere nessuno di questi nella tua ricerca).',
+Protocolli supportati: <code>$1</code> (non aggiungere nessuno di questi nella tua ricerca).',
 'linksearch-line' => '$1 presente nella pagina $2',
 'linksearch-error' => "I metacaratteri possono essere usati solo all'inizio dell'indirizzo.",
 
@@ -2183,6 +2187,8 @@ Potrebbero esserci [[{{MediaWiki:Listgrouprights-helppage}}|ulteriori informazio
 'mailnologin' => 'Nessun indirizzo cui inviare il messaggio',
 'mailnologintext' => 'Per inviare messaggi e-mail ad altri utenti è necessario [[Special:UserLogin|accedere al sito]] e aver registrato un indirizzo valido nelle proprie [[Special:Preferences|preferenze]].',
 'emailuser' => "Scrivi all'utente",
+'emailuser-title-target' => 'Invia una e-mail a questo {{GENDER:$1|utente}}',
+'emailuser-title-notarget' => 'Invia una e-mail a un utente',
 'emailpage' => "Invia un messaggio e-mail all'utente",
 'emailpagetext' => 'Usare il modulo sottostante per inviare un messaggio e-mail all\'utente indicato. L\'indirizzo specificato nelle [[Special:Preferences|preferenze]] del mittente apparirà nel campo "Da:" del messaggio per consentire al destinatario di rispondere direttamente.',
 'usermailererror' => "L'oggetto mail ha restituito l'errore:",
@@ -2798,6 +2804,7 @@ Tutte le operazioni di importazione trans-wiki sono registrate nel [[Special:Log
 'import-interwiki-templates' => 'Includi tutti i template',
 'import-interwiki-submit' => 'Importa',
 'import-interwiki-namespace' => 'Namespace di destinazione:',
+'import-interwiki-rootpage' => 'Pagina principale di destinazione (opzionale):',
 'import-upload-filename' => 'Nome file:',
 'import-comment' => 'Oggetto:',
 'importtext' => 'Si prega di esportare il file dal sito wiki di origine con la [[Special:Export|funzione di esportazione]], salvarlo sul proprio disco e poi caricarlo qui.',
@@ -2829,6 +2836,9 @@ Tutte le operazioni di importazione trans-wiki sono registrate nel [[Special:Log
 'import-error-interwiki' => 'La pagina "$1" non viene importata perché il suo nome è riservato per il collegamento esterno (interwiki).',
 'import-error-special' => 'La pagina "$1" non viene importata perché appartiene a un namespace speciale che non permette pagine.',
 'import-error-invalid' => 'La pagina "$1" non viene importata perché il suo nome non è valido.',
+'import-options-wrong' => '{{PLURAL:$2|Opzione sbagliata|Opzioni sbagliate}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'La pagina principale fornita non è un titolo valido.',
+'import-rootpage-nosubpage' => 'Il namespace "$1" della pagina principale non permette di avere sottopagine.',
 
 # Import log
 'importlogpage' => 'Importazioni',
@@ -2979,16 +2989,34 @@ Tutte le operazioni di importazione trans-wiki sono registrate nel [[Special:Log
 
 # Info page
 'pageinfo-title' => 'Informazioni per "$1"',
-'pageinfo-header-edits' => 'Edit',
-'pageinfo-header-watchlist' => 'Osservati speciali',
-'pageinfo-header-views' => 'Visualizzazioni',
-'pageinfo-subjectpage' => 'Pagina',
-'pageinfo-talkpage' => 'Pagina di discussione',
-'pageinfo-watchers' => 'Numero di utenti che hanno la pagina nei loro Osservati Speciali',
-'pageinfo-edits' => 'Numero di edit',
-'pageinfo-authors' => 'Numero di autori diversi',
+'pageinfo-header-basic' => 'Informazioni di base',
+'pageinfo-header-edits' => 'Cronologia delle modifiche',
+'pageinfo-header-restrictions' => 'Protezione della pagina',
+'pageinfo-header-properties' => 'Proprietà della pagina',
+'pageinfo-display-title' => 'Titolo visualizzato',
+'pageinfo-default-sort' => 'Criterio di ordinamento predefinito',
+'pageinfo-length' => 'Lunghezza della pagina (in byte)',
+'pageinfo-article-id' => 'ID della pagina',
+'pageinfo-robot-policy' => 'Stato per i motori di ricerca',
+'pageinfo-robot-index' => 'Indicizzabile',
+'pageinfo-robot-noindex' => 'Non indicizzabile',
 'pageinfo-views' => 'Numero di visualizzazioni',
-'pageinfo-viewsperedit' => 'Visualizzazioni per modifica',
+'pageinfo-watchers' => 'Numero di utenti che hanno la pagina nei loro Osservati Speciali',
+'pageinfo-redirects-name' => 'Redirect a questa pagina',
+'pageinfo-subpages-name' => 'Sottopagine di questa pagina',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|redirect}}; $3 {{PLURAL:$3|non redirect}})',
+'pageinfo-firstuser' => 'Creatore della pagina',
+'pageinfo-firsttime' => 'Data di creazione della pagina',
+'pageinfo-lastuser' => 'Ultimo contributore',
+'pageinfo-lasttime' => 'Data di ultima modifica',
+'pageinfo-edits' => 'Numero totale di modifiche',
+'pageinfo-authors' => 'Numero totale di autori diversi',
+'pageinfo-recent-edits' => 'Numero di modifiche recenti (negli ultimi $1)',
+'pageinfo-recent-authors' => 'Numero di autori diversi recenti',
+'pageinfo-restriction' => 'Protezione della pagina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Parola magica|Parole magiche}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Categoria nascosta|Categorie nascoste}} ($1)',
+'pageinfo-templates' => 'Template {{PLURAL:$1|incluso|inclusi}}  ($1)',
 
 # Patrolling
 'markaspatrolleddiff' => 'Segna la modifica come verificata',
@@ -3031,6 +3059,7 @@ $1',
 'file-info-size-pages' => '$1 × $2 pixel, dimensione del file: $3, tipo MIME: $4, $5 {{PLURAL:$5|pagina|pagine}}',
 'file-nohires' => 'Non sono disponibili versioni a risoluzione più elevata.',
 'svg-long-desc' => 'file in formato SVG, dimensioni nominali $1 × $2 pixel, dimensione del file: $3',
+'svg-long-desc-animated' => 'file in formato SVG animato, dimensioni nominali $1 × $2 pixel, dimensione del file: $3',
 'show-big-image' => 'Versione ad alta risoluzione',
 'show-big-image-preview' => 'Dimensioni di questa anteprima: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Altra risoluzione|Altre risoluzioni}}: $1.',
@@ -3040,6 +3069,8 @@ $1',
 'file-info-png-looped' => 'ciclico',
 'file-info-png-repeat' => 'ripetuto $1 {{PLURAL:$1|volta|volte}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|frame|frame}}',
+'file-no-thumb-animation' => "'''Nota: a causa di limitazioni tecniche, le miniature di questo file non saranno animate.'''",
+'file-no-thumb-animation-gif' => "'''Nota: a causa di limitazioni tecniche, le miniature delle immagini GIF ad alta risoluzione come questa non saranno animate.'''",
 
 # Special:NewFiles
 'newimages' => 'Galleria dei nuovi file',
index abf57c0..ff660b2 100644 (file)
@@ -378,7 +378,7 @@ $messages = array(
 'tog-editsectiononrightclick' => '節見出しの右クリックで節を編集できるようにする(JavaScriptが必要)',
 'tog-showtoc' => '目次を表示(ページに見出しが4つ以上ある場合)',
 'tog-rememberpassword' => 'このブラウザーにログイン情報を記憶(最大 $1 {{PLURAL:$1|日間}})',
-'tog-watchcreations' => 'è\87ªå\88\86ã\81\8cä½\9cæ\88\90ã\81\97ã\81\9fã\83\9aã\83¼ã\82¸ã\81¨アップロードしたファイルをウォッチリストに追加',
+'tog-watchcreations' => 'è\87ªå\88\86ã\81\8cä½\9cæ\88\90ã\81\97ã\81\9fã\83\9aã\83¼ã\82¸ã\82\84アップロードしたファイルをウォッチリストに追加',
 'tog-watchdefault' => '自分が編集したページやファイルをウォッチリストに追加',
 'tog-watchmoves' => '自分が移動したページやファイルをウォッチリストに追加',
 'tog-watchdeletion' => '自分が削除したページやファイルをウォッチリストに追加',
@@ -552,7 +552,7 @@ $messages = array(
 'create-this-page' => 'このページを作成',
 'delete' => '削除',
 'deletethispage' => 'このページを削除',
-'undelete_short' => '{{PLURAL:$1|$1 ç\89\88}}を復帰',
+'undelete_short' => '{{PLURAL:$1|$1 ç·¨é\9b\86}}を復帰',
 'viewdeleted_short' => '{{PLURAL:$1|削除された $1 編集}}を閲覧',
 'protect' => '保護',
 'protect_change' => '設定変更',
@@ -628,6 +628,10 @@ $1',
 'youhavenewmessages' => '$1があります($2)。',
 'newmessageslink' => '新着メッセージ',
 'newmessagesdifflink' => '最終更新の差分',
+'youhavenewmessagesfromusers' => '{{PLURAL:$3|他の利用者|$3 人の利用者}}からの$1があります ($2)。',
+'youhavenewmessagesmanyusers' => '多数の利用者からの$1があります ($2)。',
+'newmessageslinkplural' => '{{PLURAL:$1|新着メッセージ}}',
+'newmessagesdifflinkplural' => '最終更新の{{PLURAL:$1|差分}}',
 'youhavenewmessagesmulti' => '$1に新着メッセージがあります',
 'editsection' => '編集',
 'editold' => '編集',
@@ -682,9 +686,9 @@ URL を間違って入力したか、正しくないリンクをたどった可
 'dberrortext' => 'データベースクエリーの構文エラーが発生しました。
 ソフトウェアにバグがある可能性があります。
 最後に実行を試みたクエリー:
-<blockquote><tt>$1</tt></blockquote>
-(関数「<tt>$2</tt>」内)。
-データベースはエラー「<tt>$3:$4</tt>」を返しました。',
+<blockquote><code>$1</code></blockquote>
+(関数「<code>$2</code>」内)。
+データベースはエラー「<samp>$3:$4</samp>」を返しました。',
 'dberrortextcl' => 'データベースクエリーの構文エラーが発生しました。
 最後に実行を試みたクエリー:
 「$1」
@@ -1053,7 +1057,6 @@ IP アドレスは複数の利用者で共有されている場合がありま
 * '''Firefox / Safari:''' ''Shift'' を押しながら ''再読み込み'' をクリックする、もしくは ''Ctrl-F5'' か ''Ctrl-R'' を押してください (Macでは ''&#x2318;-R'' )
 * '''Google Chrome:''' ''Ctrl-Shift-R'' を押してください (Macでは ''&#x2318;-Shift-R'' )
 * '''Internet Explorer:''' ''Ctrl'' を押しながら ''最新の情報に更新'' をクリックする、もしくは ''Ctrl-F5'' を押してください
-* '''Konqueror:''' ''再読み込み'' をクリックするか、 ''F5'' を押してください。
 * '''Opera:''' ''ツール → 設定'' からキャッシュをクリアしてください。",
 'usercssyoucanpreview' => "'''ヒント:'''「{{int:showpreview}}」ボタンを使うと、保存前に新しいスタイルシートを試験できます。",
 'userjsyoucanpreview' => "'''ヒント:''' 「{{int:showpreview}}」ボタンを使うと、保存前に新しいスクリプトを試験できます。",
@@ -1659,7 +1662,7 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'right-editusercssjs' => '他の利用者のCSSとJavaScriptファイルを編集',
 'right-editusercss' => '他の利用者のCSSファイルを編集',
 'right-edituserjs' => '他の利用者のJavaScriptファイルを編集',
-'right-rollback' => 'ç\89¹å®\9aã\83\9aã\83¼ã\82¸ã\82\92æ\9c\80å¾\8cã\81«ç·¨é\9b\86ã\81\97ã\81\9få\88©ç\94¨è\80\85ã\81®ç·¨é\9b\86ã\81®即時巻き戻し',
+'right-rollback' => 'ç\89¹å®\9aã\83\9aã\83¼ã\82¸ã\82\92æ\9c\80å¾\8cã\81«ç·¨é\9b\86ã\81\97ã\81\9få\88©ç\94¨è\80\85ã\81®ç·¨é\9b\86ã\82\92即時巻き戻し',
 'right-markbotedits' => '巻き戻しをボットの編集として扱う',
 'right-noratelimit' => '速度制限を受けない',
 'right-import' => '他のウィキからのページ取り込み',
@@ -1721,7 +1724,7 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'action-sendemail' => 'メールを送信',
 
 # Recent changes
-'nchanges' => '$1{{PLURAL:$1|回の変更}}',
+'nchanges' => '$1 {{PLURAL:$1|回の変更}}',
 'recentchanges' => '最近の更新',
 'recentchanges-legend' => '最近の更新のオプション',
 'recentchanges-summary' => 'このページでは、このウィキでの最近の更新を確認できます。',
@@ -1785,9 +1788,9 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 以前にアップロードされたファイルの表示と検索には[[Special:FileList|{{int:listfiles}}]]を使用し、(再)アップロードは[[Special:Log/upload|アップロード記録]]に、削除は[[Special:Log/delete|削除記録]]にも記録されます。
 
 ページにファイルを入れるには、以下の書式のリンクを使用してください:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}:<nowiki>File.jpg]]</nowiki></tt>'''とすると、ファイルが完全なままで使用されます
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}:<nowiki>File.png|200px|thumb|left|代替文]]</nowiki></tt>'''とすると、200ピクセルの幅に修正された状態で、左寄せの枠内に、「代替文」が説明として使用されます。
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}:<nowiki>File.ogg]]</nowiki></tt>'''とするとファイルを表示せずに直接ファイルへリンクします",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}:<nowiki>File.jpg]]</nowiki></code>'''とすると、ファイルが完全なままで使用されます
+* '''<code><nowiki>[[</nowiki>{{ns:file}}:<nowiki>File.png|200px|thumb|left|代替文]]</nowiki></code>'''とすると、200ピクセルの幅に修正された状態で、左寄せの枠内に、「代替文」が説明として使用されます。
+* '''<code><nowiki>[[</nowiki>{{ns:media}}:<nowiki>File.ogg]]</nowiki></code>'''とするとファイルを表示せずに直接ファイルへリンクします",
 'upload-permitted' => '許可されているファイル形式:$1。',
 'upload-preferred' => '推奨されているファイル形式:$1。',
 'upload-prohibited' => '禁止されているファイル形式:$1。',
@@ -1835,21 +1838,21 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 ファイル名の指定が間違っている可能性があります。
 本当にこのファイルをアップロードしたいのか、確認してください。',
 'windows-nonascii-filename' => 'このwikiではファイル名に特殊文字を使用できません。',
-'fileexists' => "この名前のファイルは既に存在します。置き換えていいかどうか確信が持てない場合は、'''<tt>[[:$1]]</tt>'''を確認してください。
-[[$1|thumb]]",
-'filepageexists' => "このファイルのための説明ページは既に'''<tt>[[:$1]]</tt>'''に作成されていますが、現在、ファイルが存在していません。
+'fileexists' => 'この名前のファイルは既に存在します。置き換えていいかどうか確信が持てない場合は、<strong>[[:$1]]</strong>を確認してください。
+[[$1|thumb]]',
+'filepageexists' => 'このファイルのための説明ページは既に<strong>[[:$1]]</strong>に作成されていますが、現在、ファイルが存在していません。
 入力した概要は説明ページに反映されません。
 新しい概要を表示させるには、説明ページを手動で編集する必要があります。
-[[$1|thumb]]",
-'fileexists-extension' => "類似した名前のファイルが既に存在しています:[[$2|thumb]]
-* アップロード中のファイルの名前:'''<tt>[[:$1]]</tt>'''
-* 既存ファイルの名前:'''<tt>[[:$2]]</tt>'''
-違う名前を選択してください。",
+[[$1|thumb]]',
+'fileexists-extension' => '類似した名前のファイルが既に存在しています:[[$2|thumb]]
+* アップロード中のファイルの名前:<strong>[[:$1]]</strong>
+* 既存ファイルの名前:<strong>[[:$2]]</strong>
+違う名前を選択してください。',
 'fileexists-thumbnail-yes' => "このファイルは元の画像から縮小されたもの''(サムネイル)''のようです。
 [[$1|thumb]]
-ファイル'''<tt>[[:$1]]</tt>'''を確認してください。
+ファイル<strong>[[:$1]]</strong>を確認してください。
 確認したファイルが同じ画像の元のサイズの版の場合は、サムネイルを別途アップロードする必要はありません。",
-'file-thumbnail-no' => "ファイル名が'''<tt>$1</tt>'''から始まっています。
+'file-thumbnail-no' => "ファイル名が<strong>$1</strong>から始まっています。
 他の画像から縮小されたもの''(サムネイル)''のようです。
 より高精細な画像をお持ちの場合はそれをアップロードしてください。お持ちではない場合はファイル名を変更してください。",
 'fileexists-forbidden' => 'この名前のファイルは既に存在しており、上書きできません。
@@ -2085,6 +2088,7 @@ $1での[$2 ファイル解説ページ]にある説明を編集したほうが
 'shared-repo' => '共有リポジトリ',
 'shared-repo-name-wikimediacommons' => 'ウィキメディア・コモンズ',
 'filepage.css' => '/* ここに記述したCSSはファイル解説ページにて読み込まれます。また外部のクライアントウィキにも影響します */',
+'upload-disallowed-here' => '残念ながらこの画像には上書きできません。',
 
 # File reversion
 'filerevert' => '$1を差し戻す',
@@ -2119,7 +2123,7 @@ $1での[$2 ファイル解説ページ]にある説明を編集したほうが
 # MIME search
 'mimesearch' => 'MIMEタイプ検索',
 'mimesearch-summary' => 'このページでは、ファイルをMIMEタイプで絞り込みます。
-contenttype/subtypeの形式で入力してください(例:<tt>image/jpeg</tt>)。',
+contenttype/subtypeの形式で入力してください(例:<code>image/jpeg</code>)。',
 'mimetype' => 'MIMEタイプ:',
 'download' => 'ダウンロード',
 
@@ -2166,9 +2170,9 @@ contenttype/subtypeの形式で入力してください(例:<tt>image/jpeg</
 
 'disambiguations' => '曖昧さ回避ページにリンクしているページ',
 'disambiguationspage' => 'Template:曖昧回避',
-'disambiguations-text' => "以下のページには、'''曖昧さ回避ページ'''へのリンクが1個以上あります。
\81\9dã\81®ã\82\88ã\81\86ã\81ªリンクは、より適切なページへのリンクに変更する必要があります。<br />
-[[MediaWiki:Disambiguationspage]]からリンクされたテンプレートを使用しているページが、曖昧さ回避ページと見なされます。",
+'disambiguations-text' => "以下のページには'''曖昧さ回避ページ'''へのリンクが 1 個以上あります。
\81\93ã\82\8cã\82\89ã\81®リンクは、より適切なページへのリンクに変更する必要があります。<br />
+[[MediaWiki:Disambiguationspage]] にリンクがあるテンプレートを使用しているページを、曖昧さ回避ページと見なします。",
 
 'doubleredirects' => '二重転送',
 'doubleredirectstext' => 'これは他のリダイレクトページへのリダイレクトの一覧です。
@@ -2194,7 +2198,8 @@ contenttype/subtypeの形式で入力してください(例:<tt>image/jpeg</
 # Miscellaneous special pages
 'nbytes' => '$1バイト',
 'ncategories' => '$1カテゴリ',
-'nlinks' => '$1個のリンク',
+'ninterwikis' => '$1 {{PLURAL:$1|個のウィキ間リンク}}',
+'nlinks' => '$1 {{PLURAL:$1|個のリンク}}',
 'nmembers' => '$1項目',
 'nrevisions' => '$1版',
 'nviews' => '$1回の閲覧',
@@ -2222,6 +2227,7 @@ contenttype/subtypeの形式で入力してください(例:<tt>image/jpeg</
 'mostlinkedtemplates' => '使用箇所の多いテンプレート',
 'mostcategories' => 'カテゴリの多いページ',
 'mostimages' => '被リンク数の多いファイル',
+'mostinterwikis' => 'ウィキ間リンクの多いページ',
 'mostrevisions' => '版の多いページ',
 'prefixindex' => '先頭が同じ全ページ',
 'prefixindex-namespace' => '先頭が同じ全ページ($1名前空間)',
@@ -2240,7 +2246,7 @@ contenttype/subtypeの形式で入力してください(例:<tt>image/jpeg</
 'listusers' => '利用者一覧',
 'listusers-editsonly' => '投稿記録のある利用者のみを表示',
 'listusers-creationsort' => '作成日順に並べ替え',
-'usereditcount' => '$1{{PLURAL:$1|回の編集}}',
+'usereditcount' => '$1 {{PLURAL:$1|回の編集}}',
 'usercreated' => '$1 $2 に{{GENDER:$3|作成}}',
 'newpages' => '新しいページ',
 'newpages-username' => '利用者名:',
@@ -2263,7 +2269,7 @@ contenttype/subtypeの形式で入力してください(例:<tt>image/jpeg</
 'booksources' => '書籍情報源',
 'booksources-search-legend' => '書籍情報源を検索',
 'booksources-go' => '検索',
-'booksources-text' => '以下は、新古本を販売している外部サイトへのリンクの一覧で、検索中の本について、更に詳しい情報が提供されているかもしれません:',
+'booksources-text' => 'お探しの書籍の新品/中古品を販売している外部サイトへのリンクを以下に列挙します。この書籍についてさらに詳しい情報があるかもしれません:',
 'booksources-invalid-isbn' => '指定したISBN番号は有効ではないようです。情報源から写し間違えていないか確認してください。',
 
 # Special:Log
@@ -2322,7 +2328,7 @@ contenttype/subtypeの形式で入力してください(例:<tt>image/jpeg</
 'linksearch-ok' => '検索',
 'linksearch-text' => '"*.wikipedia.org" のようにワイルドカードを使用できます。
 少なくとも "*.org" のようなトップレベルドメインが必要です。<br />
-対応プロトコル: <tt>$1</tt> (これらを検索に含めないでください)。',
+対応プロトコル: <code>$1</code> (これらを検索に含めないでください)。',
 'linksearch-line' => '$1 が $2 からリンクされています',
 'linksearch-error' => 'ワイルドカードはホスト名の先頭でのみ使用できます。',
 
@@ -2355,6 +2361,7 @@ contenttype/subtypeの形式で入力してください(例:<tt>image/jpeg</
 'listgrouprights-rights' => '権限',
 'listgrouprights-helppage' => 'Help:グループ権限',
 'listgrouprights-members' => '(該当者一覧)',
+'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 (<code>$2</code>)</span>',
 'listgrouprights-addgroup' => '{{PLURAL:$2|グループ}}を追加:$1',
 'listgrouprights-removegroup' => '{{PLURAL:$2|グループ}}を除去:$1',
 'listgrouprights-addgroup-all' => '全グループを追加可能',
@@ -2368,6 +2375,8 @@ contenttype/subtypeの形式で入力してください(例:<tt>image/jpeg</
 'mailnologin' => '送信アドレスがありません',
 'mailnologintext' => '他の利用者宛にメールを送信するためには、[[Special:UserLogin|ログイン]]し、[[Special:Preferences|個人設定]]で有効なメールアドレスを設定する必要があります。',
 'emailuser' => 'この利用者にメールを送信',
+'emailuser-title-target' => 'この{{GENDER:$1|利用者}}にメールを送信',
+'emailuser-title-notarget' => '利用者にメールを送信',
 'emailpage' => '利用者にメールを送信',
 'emailpagetext' => '以下のフォームを使用してこの利用者にメールを送信できます。
 「差出人」として、[[Special:Preferences|利用者の個人設定]]で入力したメールアドレスが設定されます。これにより、受信者があなたに直接返信できるようになります。',
@@ -2513,8 +2522,8 @@ $UNWATCHURL
 'rollback' => '編集を巻き戻し',
 'rollback_short' => '巻き戻し',
 'rollbacklink' => '巻き戻し',
-'rollbacklinkcount' => '$1個の{{PLURAL:$1|編集|編集}}を巻き戻し',
-'rollbacklinkcount-morethan' => '$1個以上の{{PLURAL:$1|編集|編集}}を巻き戻し',
+'rollbacklinkcount' => '$1{{PLURAL:$1|編集}}を巻き戻し',
+'rollbacklinkcount-morethan' => '$1{{PLURAL:$1|編集}}以上を巻き戻し',
 'rollbackfailed' => '巻き戻しに失敗しました',
 'cantrollback' => '編集を差し戻せません。
 最後の投稿者が、このページの唯一の作者です。',
@@ -2940,7 +2949,7 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 'immobile-target-namespace' => '「$1」名前空間にはページを移動できません',
 'immobile-target-namespace-iw' => 'ウィキ間リンクは、ページの移動先には指定できません。',
 'immobile-source-page' => 'このページは移動できません。',
-'immobile-target-page' => '対象ページ名に移動させることはできません。',
+'immobile-target-page' => '移動先ページ名に移動させることができません。',
 'imagenocrossnamespace' => 'ファイルを、ファイル名前空間以外に移動させることはできません',
 'nonfile-cannot-move-to-file' => 'ファイルではないものを、ファイル名前空間に移動させることはできません',
 'imagetypemismatch' => '新しいファイルの拡張子がファイルのタイプと一致していません',
@@ -3019,7 +3028,8 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'import-interwiki-history' => 'このページのすべての版を複製する',
 'import-interwiki-templates' => 'すべてのテンプレートを含める',
 'import-interwiki-submit' => '取り込み',
-'import-interwiki-namespace' => '目的の名前空間:',
+'import-interwiki-namespace' => '取り込み先の名前空間:',
+'import-interwiki-rootpage' => '取り込み先のルートページ (省略可能):',
 'import-upload-filename' => 'ファイル名:',
 'import-comment' => 'コメント:',
 'importtext' => '元のウィキで[[Special:Export|書き出し機能]]を使用してファイルに書き出してください。
@@ -3056,6 +3066,9 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'import-error-interwiki' => '名前が外部リンク (interwiki) に予約されているため、ページ「$1」を取り込みませんでした。',
 'import-error-special' => 'ページ「$1」は、ページが許可されない特別名前空間に属しているため取り込みません。',
 'import-error-invalid' => '名前が正しくないため、ページ「$1」を取り込みませんでした。',
+'import-options-wrong' => '間違った{{PLURAL:$2|オプション}}です: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => '入力されたルート ページの名前が無効です。',
+'import-rootpage-nosubpage' => 'ルート ページの名前空間「$1」では、下位ページが許可されていません。',
 
 # Import log
 'importlogpage' => '取り込み記録',
@@ -3147,7 +3160,7 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'tooltip-summary' => '短い要約を入力してください',
 
 # Stylesheets
-'common.css' => '/* ここに書いたCSSはすべての外装に反映されます */',
+'common.css' => '/* ここに記述したCSSはすべての外装に反映されます */',
 'standard.css' => '/* ここに記述したCSSはスタンダード外装の利用者に影響します */',
 'nostalgia.css' => '/* ここに記述したCSSはノスタルジア外装の利用者に影響します */',
 'cologneblue.css' => '/* ここに記述したCSSはケルンブルー外装の利用者に影響します */',
@@ -3177,9 +3190,9 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'modern.js' => '/* ここにあるすべてのJavaScriptは、モダン外装を使用している利用者に対して読み込まれます */',
 'vector.js' => '/* ここにあるすべてのJavaScriptは、ベクター外装を使用している利用者に対して読み込まれます */',
 'group-autoconfirmed.js' => '/* ここにあるすべてのJavaScriptは、自動承認された利用者に対して読み込まれます */',
-'group-bot.js' => '/* ここにあるすべてのJavaScriptは、ボットのみに対して読み込まれます */',
-'group-sysop.js' => '/* ここにあるすべてのJavaScriptは、管理者のみに対して読み込まれます */',
-'group-bureaucrat.js' => '/* ここにあるすべてのJavaScriptは、ビューロクラットのみに対して読み込まれます */',
+'group-bot.js' => '/* ここにあるすべてのJavaScriptは、ボットのみに読み込まれます */',
+'group-sysop.js' => '/* ここにあるすべてのJavaScriptは、管理者のみに読み込まれます */',
+'group-bureaucrat.js' => '/* ここにあるすべてのJavaScriptは、ビューロクラットのみに読み込まれます */',
 
 # Metadata
 'notacceptable' => 'ウィキサーバーは、ご使用中のクライアントが読める形式では情報を提供できません。',
@@ -3208,16 +3221,33 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 
 # Info page
 'pageinfo-title' => '「$1」の情報',
-'pageinfo-header-edits' => '編集',
-'pageinfo-header-watchlist' => 'ウォッチリスト',
-'pageinfo-header-views' => '表示',
-'pageinfo-subjectpage' => 'ページ',
-'pageinfo-talkpage' => 'トークページ',
-'pageinfo-watchers' => 'ウォッチリストに入れている利用者数',
-'pageinfo-edits' => '編集回数',
-'pageinfo-authors' => '投稿者数',
+'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-robot-policy' => '検索エンジンの状態',
+'pageinfo-robot-index' => 'インデックス可能',
+'pageinfo-robot-noindex' => 'インデックス不可',
 'pageinfo-views' => '閲覧回数',
-'pageinfo-viewsperedit' => '1編集あたりの閲覧回数',
+'pageinfo-watchers' => 'ページをウォッチリストに入れている人数',
+'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-restriction' => 'ページ保護 (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => 'マジック {{PLURAL:$1|ワード}} ($1)',
+'pageinfo-hidden-categories' => '隠し{{PLURAL:$1|カテゴリ}} ($1)',
+'pageinfo-templates' => '参照読み込みされた{{PLURAL:$1|テンプレート}} ($1)',
 
 # Skin names
 'skinname-standard' => 'クラシック',
@@ -3272,7 +3302,8 @@ $1',
 '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',
+'svg-long-desc' => 'SVG ファイル、$1 × $2 ピクセル、ファイルサイズ: $3',
+'svg-long-desc-animated' => 'アニメーション SVG ファイル、$1 × $2 ピクセル、ファイルサイズ: $3',
 'show-big-image' => '高解像度での画像',
 'show-big-image-preview' => 'このプレビューのサイズ:$1。',
 'show-big-image-other' => 'その他の{{PLURAL:$2|解像度}}:$1。',
@@ -3282,6 +3313,8 @@ $1',
 'file-info-png-looped' => '繰り返し',
 'file-info-png-repeat' => '$1 {{PLURAL:$1|回再生しました}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|フレーム}}',
+'file-no-thumb-animation' => "'''注意: 技術的な制限により、このファイルのサムネイルはアニメーションされません。'''",
+'file-no-thumb-animation-gif' => "'''注意: 技術的な制限により、この画像のような高解像度の GIF 画像の、サムネイルはアニメーションされません。'''",
 
 # Special:NewFiles
 'newimages' => '新しいファイルのギャラリー',
@@ -3807,10 +3840,10 @@ Variants for Chinese language
 'confirmemail_loggedin' => 'メールアドレスは確認されました。',
 'confirmemail_error' => '確認情報を保存する際にエラーが発生しました。',
 'confirmemail_subject' => '{{SITENAME}} メールアドレスの確認',
-'confirmemail_body' => 'だれかが、IPアドレス$1から、
+'confirmemail_body' => '誰か(おそらくあなた)が、IPアドレス$1から、
 このメールアドレスで{{SITENAME}}のアカウント「$2」を登録しました。
 
\81\93ã\81®ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\81\8cæ\9c¬å½\93ã\81«è\87ªå\88\86ã\81®ã\82\82ã\81®ã\81§ã\81\82ã\82\8bã\81\8b確èª\8dã\81\97ã\81¦ã\80\81
+このアカウントが本当に自分のものか確認して、
 {{SITENAME}}のメール機能を有効にするには、以下のURLをブラウザーで開いてください:
 
 $3
@@ -4161,13 +4194,13 @@ MediaWikiは、有用であることを期待して配布されていますが
 # New logging system
 'logentry-delete-delete' => '$1 がページ「$3」を削除しました',
 'logentry-delete-restore' => '$1 がページ「$3」を復帰しました',
-'logentry-delete-event' => '$1が$3の{{PLURAL:$5|記録項目| $5 件の記録項目}}の閲覧レベルを変更しました:$4',
-'logentry-delete-revision' => '$1 がページ「$3」の{{PLURAL:$5|版| $5 個の版}}の閲覧レベルを変更しました:$4',
+'logentry-delete-event' => '$1 が$3の{{PLURAL:$5|$5件の記録項目}}の閲覧レベルを変更しました:$4',
+'logentry-delete-revision' => '$1 がページ「$3」の{{PLURAL:$5|$5版}}の閲覧レベルを変更しました:$4',
 'logentry-delete-event-legacy' => '$1 が「$3」の記録項目の閲覧レベルを変更しました',
 'logentry-delete-revision-legacy' => '$1 がページ「$3」の版の閲覧レベルを変更しました',
 'logentry-suppress-delete' => '$1 がページ「$3」を隠蔽しました',
-'logentry-suppress-event' => '$1 が「$3」の{{PLURAL:$5|記録項目| $5 件の記録項目}}の閲覧レベルを見えない形で変更しました:$4',
-'logentry-suppress-revision' => '$1 がページ「$3」の{{PLURAL:$5|版| $5 個の版}}の閲覧レベルを見えない形で変更しました:$4',
+'logentry-suppress-event' => '$1 が$3の{{PLURAL:$5|$5件の記録項目}}の閲覧レベルを見えない形で変更しました:$4',
+'logentry-suppress-revision' => '$1 がページ「$3」の{{PLURAL:$5|$5版}}の閲覧レベルを見えない形で変更しました:$4',
 'logentry-suppress-event-legacy' => '$1 が$3で記録項目の閲覧レベルを見えない形で変更しました',
 'logentry-suppress-revision-legacy' => '$1 がページ「$3」の版の閲覧レベルを見えない形で変更しました',
 'revdelete-content-hid' => '本文の不可視化',
index e3e527f..017297f 100644 (file)
@@ -602,7 +602,7 @@ hersenenge, (førge) = førskel til den førge hersenenge, l = lile til mendre 
 'linksearch-pat' => 'Søĝ æfter links til:',
 'linksearch-ns' => 'Navnerum:',
 'linksearch-ok' => 'Søĝ',
-'linksearch-text' => 'Wildkårter søm "*.wikipedia.org" ken benyttes.<br />Understøttede pråtåkoller: <tt>$1</tt>',
+'linksearch-text' => 'Wildkårter søm "*.wikipedia.org" ken benyttes.<br />Understøttede pråtåkoller: <code>$1</code>',
 'linksearch-line' => '$2 linker til $1',
 'linksearch-error' => "Wildkårter må ken benyttes i'n stårt åf håstnavnet.",
 
index d1299b7..62ae858 100644 (file)
@@ -1391,9 +1391,9 @@ Log pambusakan lan panyingkiran saka kaca iki sumadhiya nèng kéné:",
 Kanggé mirsani utawi madosi gambar ingkang sampun dipununggah sakdèrèngipun pigunakaken [[Special:FileList|dhaftar berkas sing wis diunggah]], gambar ingkang dipununggah ulang ugi kadhaftar ing [[Special:Log/upload|log pangunggahan]], pambusakan ing [[Special:Log/delete|Log pambusakan]].
 
 Kanggé nyertakaken gambar ing satunggiling kaca, pigunakaken pranala salah setunggal saking format ing ngandhap punika:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Berkas.jpg]]</nowiki></tt>''' kanggé migunakaken versi pepak gambar
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Berkas.png|200px|thumb|left|tèks alt]]</nowiki></tt>''' kanggé migunakaken gambar wiyaripun 200 piksel ing kothak ing sisih kiwa kanthi 'tèks alt' minangka panjelasan
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Berkas.ogg]]</nowiki></tt>''' kanggé nggandhèng langsung dhumateng gambar tanpi nampilaké gambar",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Berkas.jpg]]</nowiki></code>''' kanggé migunakaken versi pepak gambar
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Berkas.png|200px|thumb|left|tèks alt]]</nowiki></code>''' kanggé migunakaken gambar wiyaripun 200 piksel ing kothak ing sisih kiwa kanthi 'tèks alt' minangka panjelasan
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Berkas.ogg]]</nowiki></code>''' kanggé nggandhèng langsung dhumateng gambar tanpi nampilaké gambar",
 'upload-permitted' => 'Jenis berkas sing diidinaké: $1.',
 'upload-preferred' => 'Jenis berkas sing disaranaké: $1.',
 'upload-prohibited' => 'Jenis berkas sing dilarang: $1.',
@@ -1437,18 +1437,18 @@ Luwih becik {{PLURAL:\$3|jinis berkas|Jinis-jinis berkas}} \$2.",
 'largefileserver' => 'Berkas iki luwih gedhé tinimbang sing bisa kaparengaké server.',
 'emptyfile' => 'Berkas sing panjenengan unggahaké katoné kosong. Mbokmenawa iki amerga anané salah ketik ing jeneng berkas. Mangga dipastèkaké apa panjenengan pancèn kersa ngunggahaké berkas iki.',
 'windows-nonascii-filename' => 'Wiki iki ora nyengkuyung jeneng berkas mawa karakter kusus.',
-'fileexists' => "Sawijining berkas mawa jeneng iku wis ana, mangga dipriksa '''<tt>[[:$1]]</tt>''' yèn panjenengan ora yakin sumedya ngowahiné.
-[[$1|thumb]]",
-'filepageexists' => "Kaca dèskripsi kanggo berkas iki wis digawé ing '''<tt>[[:$1]]</tt>''', nanging saiki iki ora ditemokaké berkas mawa jeneng iku. Ringkesan sing panjenengan lebokaké ora bakal metu ing kaca dèskripsi. Kanggo ngetokaké dèskripsi iki, panjenengan kudu nyunting sacara manual. [[$1|thumb]]",
-'fileexists-extension' => "Berkas mawa jeneng sing padha wis ana: [[$2|thumb]]
-* Jeneng berkas sing bakal diunggahaké: '''<tt>[[:$1]]</tt>'''
-* Jeneng berkas sing wis ana: '''<tt>[[:$2]]</tt>'''
-Mangga milih jeneng liya.",
+'fileexists' => 'Sawijining berkas mawa jeneng iku wis ana, mangga dipriksa <strong>[[:$1]]</strong> yèn panjenengan ora yakin sumedya ngowahiné.
+[[$1|thumb]]',
+'filepageexists' => 'Kaca dèskripsi kanggo berkas iki wis digawé ing <strong>[[:$1]]</strong>, nanging saiki iki ora ditemokaké berkas mawa jeneng iku. Ringkesan sing panjenengan lebokaké ora bakal metu ing kaca dèskripsi. Kanggo ngetokaké dèskripsi iki, panjenengan kudu nyunting sacara manual. [[$1|thumb]]',
+'fileexists-extension' => 'Berkas mawa jeneng sing padha wis ana: [[$2|thumb]]
+* Jeneng berkas sing bakal diunggahaké: <strong>[[:$1]]</strong>
+* Jeneng berkas sing wis ana: <strong>[[:$2]]</strong>
+Mangga milih jeneng liya.',
 'fileexists-thumbnail-yes' => "Berkas iki katoné gambar mawa ukuran sing luwih cilik ''(thumbnail)''. [[$1|thumb]]
-Tulung dipriksa berkas '''<tt>[[:$1]]</tt>'''.
+Tulung dipriksa berkas <strong>[[:$1]]</strong>.
 Yèn berkas sing wis dipriksa iku padha, ora perlu panjenengan ngunggahaké vèrsi cilik liyané manèh.",
-'file-thumbnail-no' => "Jeneng berkas diwiwiti kanthi '''<tt>$1</tt>'''. Katoné berkas iki sawijining gambar mawa ukuran sing dicilikaké <em>(thumbnail)</em>.
-Yèn panjenengan kagungan vèrsi mawa résolusi kebak saka gambar iki, mangga diunggahaké. Yèn ora, tulung jeneng berkas diganti.",
+'file-thumbnail-no' => 'Jeneng berkas diwiwiti kanthi <strong>$1</strong>. Katoné berkas iki sawijining gambar mawa ukuran sing dicilikaké <em>(thumbnail)</em>.
+Yèn panjenengan kagungan vèrsi mawa résolusi kebak saka gambar iki, mangga diunggahaké. Yèn ora, tulung jeneng berkas diganti.',
 'fileexists-forbidden' => 'Sawijining berkas mawa jeneng iki wis ana, lan ora bisa ditindhes.
 Yèn panjenengan isih arep ngunggahaké berkas panjenengan, supaya
 mbalik lan gunakna jeneng liya.
@@ -1686,7 +1686,7 @@ Mungkin Sampéyan pingin nyunting katrangan nèng [$2 kaca katrangan berkasé] n
 
 # MIME search
 'mimesearch' => 'Panggolèkan MIME',
-'mimesearch-summary' => 'Kaca iki nyedyaké fasilitas nyaring berkas miturut tipe MIME-né. Lebokna: contenttype/subtype, contoné <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Kaca iki nyedyaké fasilitas nyaring berkas miturut tipe MIME-né. Lebokna: contenttype/subtype, contoné <code>image/jpeg</code>.',
 'mimetype' => 'Tipe MIME:',
 'download' => 'undhuh',
 
@@ -1885,7 +1885,7 @@ Deleng uga [[Special:WantedCategories|kategori sing diperlokaké]].',
 'linksearch-pat' => 'Pola panggolèkan:',
 'linksearch-ns' => 'Bilik nama:',
 'linksearch-ok' => 'Golèk',
-'linksearch-text' => "''Wildcards'' kaya ta \"*.wikipedia.org\" bisa dienggo.<br />Protokol sing disengkuyung: <tt>\$1</tt>",
+'linksearch-text' => "''Wildcards'' kaya ta \"*.wikipedia.org\" bisa dienggo.<br />Protokol sing disengkuyung: <code>\$1</code>",
 'linksearch-line' => '$1 disambung saka $2',
 'linksearch-error' => "''Wildcards'' namung bisa dienggo ing bagéyan awal saka jeneng host.",
 
@@ -2697,15 +2697,10 @@ Mbokmanawa iki disebabaké anané pranala jaba sing klebu daftar ireng.',
 # Info page
 'pageinfo-title' => 'Inpormasi kanggo "$1"',
 'pageinfo-header-edits' => 'Suntingan',
-'pageinfo-header-watchlist' => 'Daptar pangawasan',
-'pageinfo-header-views' => 'Delokan',
-'pageinfo-subjectpage' => 'Kaca',
-'pageinfo-talkpage' => 'Kaca guneman',
+'pageinfo-views' => 'Cacahing delokan',
 'pageinfo-watchers' => 'Cacahing pangawas',
 'pageinfo-edits' => 'Cacahing suntingan',
 'pageinfo-authors' => 'Cacahing beda-beda panganggit',
-'pageinfo-views' => 'Cacahing delokan',
-'pageinfo-viewsperedit' => 'Delokan per suntingan',
 
 # Patrolling
 'markaspatrolleddiff' => 'Tandhanana wis dipatroli',
index a6f320a..62cdec4 100644 (file)
@@ -476,9 +476,9 @@ $1',
 'dberrortext' => 'აღმოჩენილია სინტაქსური შეცდომა მონაცემთა ბაზასთან დაკავშირებისას
 შესაძლოა ეს არის შეცდომა პროგრამულ უზრუნველყოფაში,
 ბოლო დაკავშირება მონაცემთა ბაზასან
-<blockquote><tt>$1</tt></blockquote>
-მოხდა ფუნქციიდან <tt>„$2“</tt>.
-მონაცემთა ბაზამ დააბრუნა შეცდომა <tt>„$3: $4“</tt>.',
+<blockquote><code>$1</code></blockquote>
+მოხდა ფუნქციიდან „<code>$2</code>“.
+მონაცემთა ბაზამ დააბრუნა შეცდომა „<samp>$3: $4</samp>“.',
 'dberrortextcl' => 'მონაცემთა ბაზასთან დაკავშირებისას აღმოჩენილია სინტქსური შეცდომა.
 საბოლოო დაკავშირება მოხდა:
 „$1“
@@ -837,11 +837,10 @@ $2
 'userpage-userdoesnotexist-view' => 'მომხმარებელი „$1“ არ არის დარეგისტრირებული.',
 'blocked-notice-logextract' => 'ეს მომხმარებელი უკვე დაიბლოკა.
 დაბლოკვის მიზეზი შემდეგშია:',
-'clearyourcache' => "''შენიშვნა:''' შენახვის შემდეგ შესაძლოა დაგჭირდეთ ბრაუზერის ქეშის გაწმენდა ცვლილებების სანახავად. 
+'clearyourcache' => "'''შენიშვნა:''' შენახვის შემდეგ შესაძლოა დაგჭირდეთ ბრაუზერის ქეშის გაწმენდა ცვლილებების სანახავად. 
 * '''Firefox / Safari:''' დააჭირეთ ''Shift'' ''Reload''-ზე დაწკაპებისას, ან დააჭირეთ ''Ctrl-F5'', ან ''Ctrl-R'' (''⌘-R'' Mac-ზე); 
 * '''Google Chrome:''' დააჭირეთ ''Ctrl-Shift-R'' (''⌘-Shift-R'' Mac-ზე);
 * '''IE:''' დააჭირეთ ''Ctrl'' ''Refresh''-ზე დაწკაპებისას, ან დააჭირეთ ''Ctrl-F5'';
-* '''Konqueror:''' მხოლოდ დააწკაპეთ ''Reload'' ღილაკს, ან დააჭირეთ ''F5'';
 * '''Opera''' გაწმინდეთ კეში ''Tools→Preferences''-დან.",
 'usercssyoucanpreview' => "'''რჩევა:''' შენახვამდე გამოიყენეთ ღილაკი \"{{int:showpreview}}\" თქვენი ახალი CSS ტესტირებისთვის.",
 'userjsyoucanpreview' => "'''რჩევა:''' შენახვამდე გამოიყენეთ ღილაკი \"{{int:showpreview}}\" თქვენი ახალი JS ტესტირებისთვის.",
@@ -1558,9 +1557,9 @@ $1",
 ადრე ატვირთული ფაილების სანახავად მიმართეთ  [[Special:FileList|ატვირთულ ფაილთა სიას]].ატვირთული ფაილები ასევე ჩაიწერება [[Special:Log/upload|ატვირთვათა ჟურნალში]], ხოლო წაშლილი ფაილები ჩაიწერება [[Special:Log/delete|წაშლათა ჟურნალში]].
 
 ფაილის სტატიაში ჩასაწერად გამოიყენეთ:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' ფაილის სრული ვერსიის ჩასასმელად;
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|описание]]</nowiki></tt>''' 200 პიქსელამდე შემცირებული ვერსიის ჩასასმელად აღწერის მითითების შესაძლებლობით;
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' ბმულის ჩასასმელად, გამოსახულების ჩვენების გარეშე.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' ფაილის სრული ვერსიის ჩასასმელად;
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|описание]]</nowiki></code>''' 200 პიქსელამდე შემცირებული ვერსიის ჩასასმელად აღწერის მითითების შესაძლებლობით;
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' ბმულის ჩასასმელად, გამოსახულების ჩვენების გარეშე.",
 'upload-permitted' => 'მიღებული ფაილის ტიპები: $1.',
 'upload-preferred' => 'სასურველი ფაილის ტიპები: $1.',
 'upload-prohibited' => 'აკრძალული ფაილის ტიპები: $1.',
@@ -1603,22 +1602,22 @@ $1",
 'largefileserver' => 'ეს ფაილი სერვერის მიერ დაშვებულ ზომას აღემატება.',
 'emptyfile' => 'თქვენს მიერ ჩატვირთული ფაილი ცარიელია. შესაძლოა, შეცდომა მოხდა ფაილის სახელის აკრეფის დროს. გთხოვთ შეამოწმოთ ნამდვილად გსურთ თუ არა ამ ფაილის ჩატვირთვა.',
 'windows-nonascii-filename' => 'ამ ვიკის არ გააჩნია სპეციალური სიმბოლოების მქონე ფაილის სახელების მხარდაჭერა.',
-'fileexists' => "ფაილი ამ სახელით უკვე არსებობს, გთხოვთ შეამოწმოთ '''<tt>[[:$1]]</tt>''' თუ არა ხართ დარწმუნებული, რომ მისი შეცვლა ნამდვილად გსურთ.
-[[$1|thumb]]",
-'filepageexists' => "ამ ფაილის აღწერს გვერდი უკვე შექმნილია როგორც '''<tt>[[:$1]]</tt>''', მაგრამ ამ სახელის ფაილი ჯერ არ არსებობს.
+'fileexists' => 'ფაილი ამ სახელით უკვე არსებობს, გთხოვთ შეამოწმოთ <strong>[[:$1]]</strong> თუ არა ხართ დარწმუნებული, რომ მისი შეცვლა ნამდვილად გსურთ.
+[[$1|thumb]]',
+'filepageexists' => 'ამ ფაილის აღწერს გვერდი უკვე შექმნილია როგორც <strong>[[:$1]]</strong>, მაგრამ ამ სახელის ფაილი ჯერ არ არსებობს.
 შეტანილი აღწერა არ გაჩნდება ფაილის აღწერის გვერდზე.
 აღწერის შესაცვლელად თქვენ მოგიწევთ მისი ხელით შესწორება.
-[[$1|thumb]]",
-'fileexists-extension' => "ფაილი მსგავსი სახელით არსებობს: [[$2|thumb]]
-* ასატვირთი ფაილის სახელი: '''<tt>[[:$1]]</tt>'''
-* არსებული ფაილის სახელი: '''<tt>[[:$2]]</tt>'''
-გთხოვთ განსხვავებული სახელი აირჩიოთ.",
-'fileexists-thumbnail-yes' => "სავარაუდოდ ფაილი არის შემცირებული კოპია (მინიატურა). [[$1|thumb]]
-გთხოვთ შეამოწმოთ ფაილი '''<tt>[[:$1]]</tt>'''.
-თუ მოცემული ფაილები ერთი და იგივე გამოსახულებას წარმოადგენენ, შემცირებული ვერსიის ატვირთვა არ ღირს.",
-'file-thumbnail-no' => "ფაილის სახელი იწყება '''<tt>$1</tt>'''-ით.
+[[$1|thumb]]',
+'fileexists-extension' => 'ფაილი მსგავსი სახელით არსებობს: [[$2|thumb]]
+* ასატვირთი ფაილის სახელი: <strong>[[:$1]]</strong>
+* არსებული ფაილის სახელი: <strong>[[:$2]]</strong>
+გთხოვთ განსხვავებული სახელი აირჩიოთ.',
+'fileexists-thumbnail-yes' => 'სავარაუდოდ ფაილი არის შემცირებული კოპია (მინიატურა). [[$1|thumb]]
+გთხოვთ შეამოწმოთ ფაილი <strong>[[:$1]]</strong>.
+თუ მოცემული ფაილები ერთი და იგივე გამოსახულებას წარმოადგენენ, შემცირებული ვერსიის ატვირთვა არ ღირს.',
+'file-thumbnail-no' => 'ფაილის სახელი იწყება <strong>$1</strong>-ით.
 სავარაუდოდ ფაილი არის შემცირებული კოპია (მინიატურა).
-თუ თქვენ გაქვთ მოცემული გამოსახულება სრულ ზომაში, გთხოვთ ატვირთოთ იგი, ან შეასწორეთ ფაილის სახელი.",
+თუ თქვენ გაქვთ მოცემული გამოსახულება სრულ ზომაში, გთხოვთ ატვირთოთ იგი, ან შეასწორეთ ფაილის სახელი.',
 'fileexists-forbidden' => 'ამ სახელის მქონე ფაილი უკვე არსებობს და ვერ გადაიწერება.
 თუ თქვენ მაინც გსურთ მისი ატვირთვა დაბრუნდით უკან და ატვირთეთ სხვა სახელით. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'ფაილი ამ სახელწოდებით უკვე არსებობს ფაილების საერთო საცავში. თუ შეიძლება, უკან დაბრუნდით და ჩატვირთეთ ფაილი სხვა სახელწოდებით. [[File:$1|thumb|center|$1]]',
@@ -1831,6 +1830,7 @@ $1',
 'shared-repo-from' => ' $1-დან',
 'shared-repo' => 'საერთო საცავიდან',
 'shared-repo-name-wikimediacommons' => 'ვიკისაწყობი',
+'upload-disallowed-here' => 'სამწუხაროდ, თქვენ არ შეგიძლიათ ამ სურათზე გადაწერა.',
 
 # File reversion
 'filerevert' => 'დააბრუნე $1',
@@ -1864,7 +1864,7 @@ $1',
 
 # MIME search
 'mimesearch' => 'MIME ძიება',
-'mimesearch-summary' => 'ამ გვერდის მეშვეობით ესაძლებელია ფაილების მოძიება მათი MIME-ტიპის მიხედვით. შეტანის ფორმა: შიგთავსის ტიპი/ქვეტიპი, მაგ <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'ამ გვერდის მეშვეობით ესაძლებელია ფაილების მოძიება მათი MIME-ტიპის მიხედვით. შეტანის ფორმა: შიგთავსის ტიპი/ქვეტიპი, მაგ <code>image/jpeg</code>.',
 'mimetype' => 'MIME ტიპი:',
 'download' => 'გადმოტვირთვა',
 
@@ -1939,6 +1939,7 @@ $1',
 # Miscellaneous special pages
 'nbytes' => '$1 ბაიტი',
 'ncategories' => '$1 კატეგორია',
+'ninterwikis' => '$1 {{PLURAL:$1|ინტერვიკი|ინტერვიკი}}',
 'nlinks' => '$1 ბმული',
 'nmembers' => '$1 წევრი',
 'nrevisions' => '$1 რედაქტირება',
@@ -1967,6 +1968,7 @@ $1',
 'mostlinkedtemplates' => 'ყველაზე მეტი ბმულების მქონე თარგები',
 'mostcategories' => 'ყველაზე მეტი კატეგორიის მქონე სტატიები',
 'mostimages' => 'ყველაზე მეტი ბმულების მქონე ფაილები',
+'mostinterwikis' => 'ყველაზე მეტი ინტერვიკის მქონე სტატია',
 'mostrevisions' => 'ყველაზე მეტად რედაქტირებული სტატიები',
 'prefixindex' => 'ყველა გვერდი (თავსართით)',
 'prefixindex-namespace' => 'ყველა პრეფიქსიანი გვერდი ($1 სახელთა სივრცე)',
@@ -2068,7 +2070,7 @@ $1',
 'linksearch-ok' => 'ძიება',
 'linksearch-text' => 'შესაძლებელია გამოიყენოთ ქვეხაზოვანი სიმბოლოები, მაგალითად, <code>*.wikipedia.org</code>.
 უკიდურეს შემთხვევაში საჭიროა ზედა დონის დომენი, მაგალითად <code>*.org</code><br />
-მხარდამჭერი პროტოკოლები: <tt>$1</tt> (არ დაამატოს ნებისმიერი მათგანი თქვენ სიაში)',
+მხარდამჭერი პროტოკოლები: <code>$1</code> (არ დაამატოს ნებისმიერი მათგანი თქვენ სიაში)',
 'linksearch-line' => 'ბმულები $1-ზე  $2-დან',
 'linksearch-error' => 'წარმოდგენილი სიმბოლოების გამოყენება შესაძლებელია მხოლოდ მისამართის დასაწყისში.',
 
@@ -2101,8 +2103,8 @@ $1',
 'listgrouprights-rights' => 'უფლებები',
 'listgrouprights-helppage' => 'Help:ჯგუფების უფლებები',
 'listgrouprights-members' => '(წევრების სია)',
-'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <tt>($2)</tt></span>',
-'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <tt>($2)</tt></span>',
+'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <code>($2)</code></span>',
+'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <code>($2)</code></span>',
 'listgrouprights-addgroup' => 'შემდეგი {{PLURAL:$2|ჯგუფის|ჯგუფების}} დამატება: $1',
 'listgrouprights-removegroup' => 'შემდეგი {{PLURAL:$2|ჯგუფის|ჯგუფების}} ამოღება: $1',
 'listgrouprights-addgroup-all' => 'ჩაამატეთ ყველა ჯგუფი',
@@ -2116,6 +2118,8 @@ $1',
 'mailnologin' => 'გამგზავნი მისამართი არ არის მითითებული.',
 'mailnologintext' => 'თქვენ უნდა [[Special:UserLogin|წარადგენილი იყოთ სისტემისადმი]] და გქონდეთ წესიერი ელექტრონული ფოსტის მისამართი თქვენს [[Special:Preferences|კონფიგურაციაში]] იმისთვის, რომ გაუგზავნოთ წერილების სხვა მომხმარებლებს.',
 'emailuser' => 'გაუგზავნეთ იმეილი ამ მომხმარებელს',
+'emailuser-title-target' => 'ელ. ფოსტის მიწერა {{GENDER:$1|მომხმარებელთან}}',
+'emailuser-title-notarget' => 'ელ. ფოსტის გაგზავნა მომხმარებელთან',
 'emailpage' => 'ელ. ფოსტა მომხმარებელს',
 'emailpagetext' => 'თუ ამ მომხმარებელმა თავის პარამეტრებში ელ. ფოსტის მოქმედი მისამართი მიუთითა, ქვემოთ მოყვანილი ფორმის შევსებისას შეგიძლიათ მისთვის შეტყობინების გაგზავნა. ელ. ფოსტის მისამართი, რომელიც [[Special:Preferences|თქვენს პარამეტრებში]] მიუთითეთ, დაფიქსირდება „გამომგზავნის“ ველში, რათა ადრესატმა პასუხის გაცემა შეძლოს.',
 'usermailererror' => 'ელ. ფოსტა დაბრუნდა შეცდომის გამო:',
@@ -2745,6 +2749,7 @@ $1',
 'import-interwiki-templates' => 'ყველა თარგის ჩართვა',
 'import-interwiki-submit' => 'იმპორტირება',
 'import-interwiki-namespace' => 'სამიზნე სახელთა სივრცე',
+'import-interwiki-rootpage' => 'ძირეული გვერდი (არასავალდებულო):',
 'import-upload-filename' => 'ფაილის სახელი:',
 'import-comment' => 'კომენტარი:',
 'importtext' => 'გთხოვთ, მოახდინოთ გვერდის ექსპორტი თავდაპირველი ვიკიდან, [[Special:Export|შესაბამისი ხელსაწყოს]] გამოყენებით. ფაილი შეინახეთ დისკზე, ხოლო შემდეგ ატვირთეთ აქ.',
@@ -2776,6 +2781,8 @@ $1',
 'import-error-interwiki' => 'გვერდი "$1" არ იქნა იმპორტირებული, რადგანაც მისი სახელი დარეგისტრირებულია გარე ბმულებისათვის (interwiki).',
 'import-error-special' => 'გვერდი "$1" არ იქნა იმპორტირებული, რადგანაც ის განეკუთვნება განსაკუთრებულ სახელთა სივრცეს, რომელიც კრძალავს გვერდების შექმნას.',
 'import-error-invalid' => 'გვერდი "$1" იმპორტირება არ მოხდა მიუღებელი სახელის გამო.',
+'import-options-wrong' => 'არასწორი {{PLURAL:$2|პარამეტრი|პარამეტრი}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'ძირეული გვერდის მითითებული სახელი არასწორია.',
 
 # Import log
 'importlogpage' => 'იმპორტის ჟურნალი',
@@ -2911,16 +2918,24 @@ $1',
 
 # Info page
 'pageinfo-title' => 'ინფორმაცია „$1“-თვის',
-'pageinfo-header-edits' => 'რედაქტირებები',
-'pageinfo-header-watchlist' => 'კონტროლის სია',
-'pageinfo-header-views' => 'ხილვა',
-'pageinfo-subjectpage' => 'გვერდი',
-'pageinfo-talkpage' => 'განხილვის გვერდი',
-'pageinfo-watchers' => 'დამკვირვებელთა რაოდენობა',
-'pageinfo-edits' => 'რედაქციების რაოდენობა',
-'pageinfo-authors' => 'განსხვავებულ ავტორთა რაოდენობა',
+'pageinfo-header-basic' => 'საბაზისო ინფორმაცია',
+'pageinfo-header-edits' => 'რედაქტირების ისტორია',
+'pageinfo-header-restrictions' => 'გვერდის დაცვა',
+'pageinfo-header-properties' => 'გვერდის თვისებები',
+'pageinfo-article-id' => 'გვერდის ID',
+'pageinfo-robot-policy' => 'საძიებო სისტემის სტატუსი',
 'pageinfo-views' => 'ხილვების რაოდენობა',
-'pageinfo-viewsperedit' => 'შესწორებათა ხილვა',
+'pageinfo-watchers' => 'გვერდის დამკვირვებელთა რაოდენობა',
+'pageinfo-firstuser' => 'გვერდის შემქნელი',
+'pageinfo-firsttime' => 'გვერდის შექმნის თარიღი',
+'pageinfo-lastuser' => 'ბოლო რედაქტორი',
+'pageinfo-lasttime' => 'ბოლო რედაქტირების თარიღი',
+'pageinfo-edits' => 'რედაქტირებების ჯამური რაოდენობა',
+'pageinfo-authors' => 'განსხვავებულ ავტორთა ჯამური რაოდენობა',
+'pageinfo-restriction' => 'გვერდის დაცვა (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => 'ჯადოსნური {{PLURAL:$1|სიტყვა|სიტყვა}} ($1)',
+'pageinfo-hidden-categories' => 'დამალული {{PLURAL:$1|კატეგორია|კატეგორია}} ($1)',
+'pageinfo-templates' => 'ინტეგრირებულია {{PLURAL:$1|თარგი|თარგი}} ($1)',
 
 # Skin names
 'skinname-standard' => 'კლასიკური',
@@ -2976,6 +2991,7 @@ $1',
 'file-info-size-pages' => '$1 × $2 პიქსელი, ფაილის ზომა: $3, MIME ტიპი: $4, $5 გვერდი',
 'file-nohires' => 'უფრო მაღალი გარჩევადობა არ არის შესაძლებელი.',
 'svg-long-desc' => 'ფაილი SVG, ნომინალურად $1 × $2 პიქსელი, ფაილის ზომა: $3',
+'svg-long-desc-animated' => 'ანიმირებული SVG ფაილი, ნომინალური $1 × $2 პიქსელი, ფაილის ზომა: $3',
 'show-big-image' => 'სრული გარჩევადობა',
 'show-big-image-preview' => 'ზომა წინასწარი გადახედვისას: $1.',
 'show-big-image-other' => 'სხვა {{PLURAL:$2|გაფართოება|გაფართოება}}: $1.',
index f2e808f..f96d2ff 100644 (file)
@@ -866,16 +866,16 @@ Akken ad tessekcmeḍ tugna deg usebter, seqdec azay am wagi
 'large-file' => 'Ilaq tiddi n ufayluwen ur tettili kter n $1; tiddi n ufaylu-agi $2.',
 'largefileserver' => 'Afaylu meqqer aṭṭas, server ur t-yeqbil ara.',
 'emptyfile' => 'Afaylu i tazneḍ d ilem. Waqila tɣelṭeḍ deg isem-is. G leɛnayek ssenqed-it.',
-'fileexists' => "Afaylu s yisem-agi yewǧed yagi, ssenqed '''<tt>[[:$1]]</tt>''' ma telliḍ mačči meḍmun akken a t-tbeddleḍ.
-[[$1|thumb]]",
-'fileexists-extension' => "Afaylu s yisem-agi yewǧed: [[\$2|thumb]]
-* Isem n ufaylu i tazneḍ: '''<tt>[[:\$1]]</tt>'''
-* Isem n ufaylu i yewǧed: '''<tt>[[:\$2]]</tt>'''
-Amgirred i yella kan deg isekkilen imecṭuḥen/imeqqranen deg taseggiwit (am \".jpg\"/\".jPg\"). G leɛnayek ssenqed-it.",
+'fileexists' => 'Afaylu s yisem-agi yewǧed yagi, ssenqed <strong>[[:$1]]</strong> ma telliḍ mačči meḍmun akken a t-tbeddleḍ.
+[[$1|thumb]]',
+'fileexists-extension' => 'Afaylu s yisem-agi yewǧed: [[$2|thumb]]
+* Isem n ufaylu i tazneḍ: <strong>[[:$1]]</strong>
+* Isem n ufaylu i yewǧed: <strong>[[:$2]]</strong>
+Amgirred i yella kan deg isekkilen imecṭuḥen/imeqqranen deg taseggiwit (am ".jpg"/".jPg"). G leɛnayek ssenqed-it.',
 'fileexists-thumbnail-yes' => "Iban-d belli tugna-nni d tugna tamecṭuht n tugna nniḍen ''(thumbnail)''. [[$1|thumb]]
-G leɛnayek ssenqed tugna-agi '''<tt>[[:$1]]</tt>'''.
+G leɛnayek ssenqed tugna-agi <strong>[[:$1]]</strong>.
 Ma llant kif-kif ur tt-taznepd ara.",
-'file-thumbnail-no' => "Isem n tugna yebda s '''<tt>$1</tt>'''. Waqila tugna-nni d tugna tamecṭuht n tugna nniḍen ''(thumbnail)''.
+'file-thumbnail-no' => "Isem n tugna yebda s <strong>$1</strong>. Waqila tugna-nni d tugna tamecṭuht n tugna nniḍen ''(thumbnail)''.
 Ma tesɛiḍ tugna-nni s resolution tameqqrant, azen-it, ma ulac beddel isem-is.",
 'fileexists-forbidden' => 'Tugna s yisem kif-kif tewǧed yagi; g leɛnayek uɣal u beddel isem-is. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'Tugna s yisem kif-kif tewǧed yagi; g leɛnayek uɣal u beddel isem-is. [[File:$1|thumb|center|$1]]',
@@ -943,7 +943,7 @@ Aglam-is ɣef [$2 asebter n aglam] ye beqqeḍ ddaw-agi.',
 
 # MIME search
 'mimesearch' => 'Anadi n MIME',
-'mimesearch-summary' => 'Asebter-agi yeǧǧa astay n ifayluwen n unaw n MIME ines. Asekcem: ayen yella/anaw azellum, e.g. <tt>tugna/jpeg</tt>.',
+'mimesearch-summary' => 'Asebter-agi yeǧǧa astay n ifayluwen n unaw n MIME ines. Asekcem: ayen yella/anaw azellum, e.g. <code>tugna/jpeg</code>.',
 'mimetype' => 'Anaw n MIME:',
 'download' => 'Ddem-it ɣer uselkim inek',
 
index 63f9705..acbf8de 100644 (file)
@@ -1367,9 +1367,9 @@ $3 كەلتىرىلگەن سەبەبى: ''$2''",
 الدىندا قوتارىلىپ بەرىلگەن فايلداردى قاراۋ نە ىزدەۋ ٴۇشىن [[Special:FileList|قوتارىپ بەرىلگەن فايلدار تىزىمىنە]] بارىڭىز, تاعى دا قوتارىپ بەرۋى مەن جويۋى [[Special:Log/delete|قوتارىپ بەرۋ جۋرنالىنا]] جازىلىپ الىنادى.
 
 سۋرەتتى بەتكە كىرىستىرۋگە, فايلعا تۋرا سىلتەۋ ٴۇشىن مىنا پىشىندەگى سىلتەمەنى قولدانىڭىز:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>'''
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|بالاما ٴماتىن]]</nowiki></tt>''' نە
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>'''
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|بالاما ٴماتىن]]</nowiki></code>''' نە
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''.",
 'upload-permitted' => 'رۇقسات ەتىلگەن فايل تۇرلەرى: $1.',
 'upload-preferred' => 'ۇنامدى فايل تۇرلەرى $1.',
 'upload-prohibited' => 'رۇقسات ەتىلمەگەن فايل تۇرلەرى: $1.',
@@ -1397,19 +1397,19 @@ $3 كەلتىرىلگەن سەبەبى: ''$2''",
 'largefileserver' => 'وسى فايلدىڭ مولشەرى سەرۆەردىڭ قالاۋىنان اسىپ كەتكەن.',
 'emptyfile' => 'قوتارىپ بەرىلگەن فايلىڭىز بوس سىيياقتى. فايل اتاۋى قاتە جازىلعان مۇمكىن.
 بۇل فايلدى قوتارىپ بەرۋى ناقتى تالابىڭىز ەكەنىن تەكسەرىپ شىعىڭىز.',
-'fileexists' => "بىلاي اتالعان فايل الداقاشان بار, ەگەر بۇنى وزگەرتۋگە باتىلىڭىز جوق بولسا '''<tt>[[:$1]]</tt>''' دەگەندى تەكسەرىپ شىعىڭىز.
-[[$1|thumb]]",
-'filepageexists' => "بۇل فايلدىڭ سىيپاتتاما بەتى الداقاشان '''<tt>[[:$1]]</tt>''' دەگەندە جاسالعان, بىراق اعىمدا بىلاي اتالعان ەش فايل جوق.
+'fileexists' => 'بىلاي اتالعان فايل الداقاشان بار, ەگەر بۇنى وزگەرتۋگە باتىلىڭىز جوق بولسا <strong>[[:$1]]</strong> دەگەندى تەكسەرىپ شىعىڭىز.
+[[$1|thumb]]',
+'filepageexists' => 'بۇل فايلدىڭ سىيپاتتاما بەتى الداقاشان <strong>[[:$1]]</strong> دەگەندە جاسالعان, بىراق اعىمدا بىلاي اتالعان ەش فايل جوق.
 ەنگىزگەن قىسقاشا مازمۇنداماڭىز سىيپاتتاماسى بەتىندە كورسەتىلمەيدى.
-قىسقاشا مازمۇنداماڭىز وسى ارادا كورسەتىلۋ ٴۇشىن, بۇنى قولمەن وڭدەمەك بولىڭىز",
-'fileexists-extension' => "ۇقساس اتاۋى بار فايل تابىلدى: [[$2|thumb]]
-* قوتارىپ بەرىلەتىن فايل اتاۋى: '''<tt>[[:$1]]</tt>'''
-* بار بولعان فايل اتاۋى: '''<tt>[[:$2]]</tt>'''
-وزگە اتاۋدى تاڭداڭىز.",
+قىسقاشا مازمۇنداماڭىز وسى ارادا كورسەتىلۋ ٴۇشىن, بۇنى قولمەن وڭدەمەك بولىڭىز',
+'fileexists-extension' => 'ۇقساس اتاۋى بار فايل تابىلدى: [[$2|thumb]]
+* قوتارىپ بەرىلەتىن فايل اتاۋى: <strong>[[:$1]]</strong>
+* بار بولعان فايل اتاۋى: <strong>[[:$2]]</strong>
+وزگە اتاۋدى تاڭداڭىز.',
 'fileexists-thumbnail-yes' => "وسى فايل — مولشەرى كىشىرىتىلگەن سۋرەت ''(نوباي)'' سىيياقتى. [[$1|thumb]]
-بۇل '''<tt>[[:$1]]</tt>''' دەگەن فايلدى سىناپ شىعىڭىز.
+بۇل <strong>[[:$1]]</strong> دەگەن فايلدى سىناپ شىعىڭىز.
 ەگەر سىنالعان فايل تۇپنۇسقالى مولشەرى بار دالمە-ٴدال سۋرەت بولسا, قوسىسمشا نوبايدى قوتارىپ بەرۋ كەرەگى جوق.",
-'file-thumbnail-no' => "فايل اتاۋى '''<tt>$1</tt>''' دەگەنمەن باستالادى.
+'file-thumbnail-no' => "فايل اتاۋى <strong>$1</strong> دەگەنمەن باستالادى.
 بۇل — مولشەرى كىشىرىتىلگەن سۋرەت ''(نوباي)'' سىيياقتى.
 ەگەر بۇل سۋرەتتىڭ تولىق اجىراتىلىمدىعى بولسا, بۇنى قوتارىپ بەرىڭىز, ايتپەسە فايل اتاۋىن وزگەرتىڭىز.",
 'fileexists-forbidden' => 'وسىلاي اتالعان فايل الداقاشان بار;
@@ -1526,7 +1526,7 @@ URL دۇرىس ەكەندىگىن جانە توراپ ىستەپ تۇرعانى
 # MIME search
 'mimesearch' => 'فايلدى MIME تۇرىمەن ىزدەۋ',
 'mimesearch-summary' => 'بۇل بەتتە فايلداردى MIME تۇرىمەن سۇزگىلەۋى قوسىلعان.
-كىرىسى: ماعلۇمات_تۇرى/تۇر_تاراۋى, مىسالى <tt>image/jpeg</tt>.',
+كىرىسى: ماعلۇمات_تۇرى/تۇر_تاراۋى, مىسالى <code>image/jpeg</code>.',
 'mimetype' => 'MIME ٴتۇرى:',
 'download' => 'قوتارىپ الۋ',
 
index bbd7a2a..1c042d3 100644 (file)
@@ -1029,7 +1029,8 @@ IP-мекенжайыңыз бұл беттің түзету тарихында
 'storedversion' => 'Сақталған нұсқасы',
 'nonunicodebrowser' => "'''ҚҰЛАҚТАНДЫРУ: Шолғышыңыз Unicode белгілеуіне үйлесімді емес, сондықтан латын емес әріптері бар беттерді өңдеу зіл болу мүмкін.
 Жұмыс істеуге ықтималдық беру үшін, төмендегі кірістіру орнында ASCII емес таңбалар оналтылық кодымен көрсетіледі'''.",
-'editingold' => '<div id="editingold" style="background: #FFBDBD; border: 1px solid #BB7979; color: #000000; margin: 2em 0 1em; padding: .5em 1em; vertical-align: middle; clear: both;"><center><strong>ҚҰЛАҚТАНДЫРУ: Осы беттің ертерек түзетуін өңдеп жатырсыз. Бұны сақтасаңыз, осы түзетуден кейінгі барлық өзгерістер [[Help:Қайтару|жойылады]].</strong></center></div>',
+'editingold' => "'''ҚҰЛАҚТАНДЫРУ: Осы беттің ертерек түзетуін өңдеп жатырсыз.'''
+Бұны сақтасаңыз, осы түзетуден кейінгі барлық өзгерістер жойылады.",
 'yourdiff' => 'Айырмалар',
 'copyrightwarning' => "Аңғартпа: {{SITENAME}} жобасына берілген барлық үлестер $2 (көбірек ақпарат үшін: $1) құжатына сай деп саналады.
 Егер жазуыңыздың еркін өңделуін және ақысыз көпшілікке таратуын қаламасаңыз, мында жарияламауыңыз жөн.<br />
@@ -1606,19 +1607,19 @@ $3 келтірілген себебі: ''$2''",
 'largefileserver' => 'Осы файлдың мөлшері сервердің қалауынан асып кеткен.',
 'emptyfile' => 'Қотарып берілген файлыңыз бос сияқты. Файл атауы қате жазылған мүмкін.
 Бұл файлды қотарып беруі нақты талабыңыз екенін тексеріп шығыңыз.',
-'fileexists' => "Осылай аталған файл әлдеқашан бар, егер бұны өзгертуге сеніміңіз жоқ болса '''<tt>[[:$1]]</tt>''' дегенді тексеріп шығыңыз.
-[[$1|thumb]]",
-'filepageexists' => "Бұл файлдың сипаттама беті алдақашан '''<tt>[[:$1]]</tt>''' дегенде жасалған, бірақ ағымда былай аталған еш файл жоқ.
+'fileexists' => 'Осылай аталған файл әлдеқашан бар, егер бұны өзгертуге сеніміңіз жоқ болса <strong>[[:$1]]</strong> дегенді тексеріп шығыңыз.
+[[$1|thumb]]',
+'filepageexists' => 'Бұл файлдың сипаттама беті алдақашан <strong>[[:$1]]</strong> дегенде жасалған, бірақ ағымда былай аталған еш файл жоқ.
 Енгізген қысқаша мазмұндамаңыз сипаттамасы бетінде көрсетілмейді.
-Қысқаша мазмұндамаңыз осы арада көрсетілу үшін, бұны қолмен өңдемек болыңыз",
-'fileexists-extension' => "Ұқсас атауы бар файл табылды: [[$2|thumb]]
-* Қотарып берілетін файл атауы: '''<tt>[[:$1]]</tt>'''
-* Бар болған файл атауы: '''<tt>[[:$2]]</tt>'''
-Өзге атауды таңдаңыз.",
+Қысқаша мазмұндамаңыз осы арада көрсетілу үшін, бұны қолмен өңдемек болыңыз',
+'fileexists-extension' => 'Ұқсас атауы бар файл табылды: [[$2|thumb]]
+* Қотарып берілетін файл атауы: <strong>[[:$1]]</strong>
+* Бар болған файл атауы: <strong>[[:$2]]</strong>
+Өзге атауды таңдаңыз.',
 'fileexists-thumbnail-yes' => "Осы файл — мөлшері кішірітілген сурет ''(нобай)'' сияқты. [[$1|thumb]]
-Бұл '''<tt>[[:$1]]</tt>''' деген файлды сынап шығыңыз.
+Бұл <strong>[[:$1]]</strong> деген файлды сынап шығыңыз.
 Егер сыналған файл түпнұсқалы мөлшері бар дәлме-дәл сурет болса, қосысмша нобайды қотарып беру керегі жоқ.",
-'file-thumbnail-no' => "Файл атауы '''<tt>$1</tt>''' дегенмен басталады.
+'file-thumbnail-no' => "Файл атауы <strong>$1</strong> дегенмен басталады.
 Бұл — мөлшері кішірітілген сурет ''(нобай)'' сияқты.
 Егер бұл суреттің толық ажыратылымдығы болса, бұны қотарып беріңіз, әйтпесе файл атауын өзгертіңіз.",
 'fileexists-forbidden' => 'Осылай аталған файл алдақашан бар;
@@ -1749,7 +1750,7 @@ URL дұрыс екендігін және торап істеп тұрғаны
 # MIME search
 'mimesearch' => 'Файлды MIME түрімен іздеу',
 'mimesearch-summary' => 'Бұл бетте файлдарды MIME түрімен сүзгілеуі қосылған.
-Кірісі: мағлұмат_түрі/түр_тарауы, мысалы <tt>image/jpeg</tt>.',
+Кірісі: мағлұмат_түрі/түр_тарауы, мысалы <code>image/jpeg</code>.',
 'mimetype' => 'MIME түрі:',
 'download' => 'жүктеп алу',
 
index 284b82b..82b4cfb 100644 (file)
@@ -1360,19 +1360,19 @@ bul faýl mölşeri — $2.',
 'largefileserver' => 'Osı faýldıñ mölşeri serverdiñ qalawınan asıp ketken.',
 'emptyfile' => 'Qotarıp berilgen faýlıñız bos sïyaqtı. Faýl atawı qate jazılğan mümkin.
 Bul faýldı qotarıp berwi naqtı talabıñız ekenin tekserip şığıñız.',
-'fileexists' => "Bılaý atalğan faýl aldaqaşan bar, eger bunı özgertwge batılıñız joq bolsa '''<tt>[[:$1]]</tt>''' degendi tekserip şığıñız.
-[[$1|thumb]]",
-'filepageexists' => "Bul faýldıñ sïpattama beti aldaqaşan '''<tt>[[:$1]]</tt>''' degende jasalğan, biraq ağımda bılaý atalğan eş faýl joq.
+'fileexists' => 'Bılaý atalğan faýl aldaqaşan bar, eger bunı özgertwge batılıñız joq bolsa <strong>[[:$1]]</strong> degendi tekserip şığıñız.
+[[$1|thumb]]',
+'filepageexists' => 'Bul faýldıñ sïpattama beti aldaqaşan <strong>[[:$1]]</strong> degende jasalğan, biraq ağımda bılaý atalğan eş faýl joq.
 Engizgen qısqaşa mazmundamañız sïpattaması betinde körsetilmeýdi.
-Qısqaşa mazmundamañız osı arada körsetilw üşin, bunı qolmen öñdemek bolıñız",
-'fileexists-extension' => "Uqsas atawı bar faýl tabıldı: [[$2|thumb]]
-* Qotarıp beriletin faýl atawı: '''<tt>[[:$1]]</tt>'''
-* Bar bolğan faýl atawı: '''<tt>[[:$2]]</tt>'''
-Özge atawdı tañdañız.",
+Qısqaşa mazmundamañız osı arada körsetilw üşin, bunı qolmen öñdemek bolıñız',
+'fileexists-extension' => 'Uqsas atawı bar faýl tabıldı: [[$2|thumb]]
+* Qotarıp beriletin faýl atawı: <strong>[[:$1]]</strong>
+* Bar bolğan faýl atawı: <strong>[[:$2]]</strong>
+Özge atawdı tañdañız.',
 'fileexists-thumbnail-yes' => "Osı faýl — mölşeri kişiritilgen swret ''(nobaý)'' sïyaqtı. [[$1|thumb]]
-Bul '''<tt>[[:$1]]</tt>''' degen faýldı sınap şığıñız.
+Bul <strong>[[:$1]]</strong> degen faýldı sınap şığıñız.
 Eger sınalğan faýl tüpnusqalı mölşeri bar dälme-däl swret bolsa, qosısmşa nobaýdı qotarıp berw keregi joq.",
-'file-thumbnail-no' => "Faýl atawı '''<tt>$1</tt>''' degenmen bastaladı.
+'file-thumbnail-no' => "Faýl atawı <strong>$1</strong> degenmen bastaladı.
 Bul — mölşeri kişiritilgen swret ''(nobaý)'' sïyaqtı.
 Eger bul swrettiñ tolıq ajıratılımdığı bolsa, bunı qotarıp beriñiz, äýtpese faýl atawın özgertiñiz.",
 'fileexists-forbidden' => 'Osılaý atalğan faýl aldaqaşan bar;
@@ -1489,7 +1489,7 @@ Bağannıñ bas jolın nuqığanda surıptawdıñ rettewi özgertiledi.',
 # MIME search
 'mimesearch' => 'Faýldı MIME türimen izdew',
 'mimesearch-summary' => 'Bul bette faýldardı MIME türimen süzgilewi qosılğan.
-Kirisi: mağlumat_türi/tür_tarawı, mısalı <tt>image/jpeg</tt>.',
+Kirisi: mağlumat_türi/tür_tarawı, mısalı <code>image/jpeg</code>.',
 'mimetype' => 'MIME türi:',
 'download' => 'qotarıp alw',
 
index 30efb61..25c4087 100644 (file)
@@ -287,7 +287,7 @@ $messages = array(
 'tog-nocache' => 'មិនប្រើសតិភ្ជាប់​នៃ​ទំព័រ',
 'tog-enotifwatchlistpages' => 'ផ្ញើអ៊ីមែល​មកខ្ញុំ​កាលបើ​មានបំលាស់ប្ដូរនៃទំព័រ​ណាមួយដែលមានក្នុងបញ្ជីតាមដានរបស់ខ្ញុំ',
 'tog-enotifusertalkpages' => 'ផ្ញើអ៊ីមែល​មកខ្ញុំ​កាលបើ​មានបំលាស់ប្ដូរ​នៅ​ក្នុងទំព័រពិភាក្សា​របស់ខ្ញុំ',
-'tog-enotifminoredits' => 'á\9e\95á\9f\92á\9e\89á\9e¾á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bâ\80\8bá\9e\98á\9e\80á\9e\81á\9f\92á\9e\89á\9e»á\9f\86á\9e\95á\9e\84á\9e\8aá\9f\82á\9e\9aâ\80\8bá\9e\85á\9f\86á\9e\96á\9f\84á\9f\87â\80\8bá\9e\94á\9f\86á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\8fá\9e·á\9e\85á\9e\8fá\9e½á\9e\85​',
+'tog-enotifminoredits' => 'á\9e\95á\9f\92á\9e\89á\9e¾á\9e¢á\9f\8aá\9e¸á\9e\98á\9f\82á\9e\9bâ\80\8bá\9e\98á\9e\80á\9e\81á\9f\92á\9e\89á\9e»á\9f\86á\9e\96á\9f\81á\9e\9bá\9e\98á\9e¶á\9e\93á\9e\94á\9f\86á\9e\9bá\9e¶á\9e\9fá\9f\8bá\9e\94á\9f\92á\9e\8aá\9e¼á\9e\9aá\9e\8fá\9e·á\9e\85á\9e\8fá\9e½á\9e\85â\80\8bá\9e\9bá\9e¾á\9e\91á\9f\86á\9e\96á\9f\90á\9e\9aá\9e¬á\9e¯á\9e\80á\9e\9fá\9e¶á\9e\9aá\9e\95á\9e\84á\9e\8aá\9f\82á\9e\9a​',
 'tog-enotifrevealaddr' => 'បង្ហាញ​អាសយដ្ឋានអ៊ីមែល​របស់ខ្ញុំ​ក្នុង​​មែល​ក្រើនរំលឹក​នានា',
 'tog-shownumberswatching' => 'បង្ហាញ​ចំនួនអ្នកប្រើប្រាស់​ដែលតាមដាន​ទំព័រនេះ',
 'tog-oldsig' => 'ហត្ថលេខាមានហើយ៖',
@@ -930,12 +930,12 @@ $2',
 'userpage-userdoesnotexist-view' => 'គណនីអ្នកប្រើប្រាស់ដែលមានឈ្មោះ "$1"មិនទាន់បានចុះឈ្មោះទេ។',
 'blocked-notice-logextract' => 'អ្នកប្រើប្រាស់នេះត្រូវបានហាមឃាត់ហើយនាពេលនេះ។
 កំណត់ត្រាស្ដីពីការហាមឃាត់ចុងក្រោយមានបង្ហាញដូចខាងក្រោមនេះ៖',
-'clearyourcache' => "!'''សម្គាល់:''' បន្ទាប់ពីបានរក្សាទុករួចហើយ លោកអ្នកគួរតែសំអាត browser's cache របស់លោកអ្នកដើម្បីមើលការផ្លាស់ប្តូរ។ ខាងក្រោមនេះជាវិធីសំអាត browser's cache ចំពោះកម្មវិធីរុករក(Browser)មួយចំនួន។
-* ''' Firefox / Safari:''' សង្កត់ [Shift] ឱ្យជាប់រួចចុចប៊ូតុង ''Reload'' ឬក៏ចុច  ''Ctrl-F5'' ឬ ''Ctrl-R'' (ចំពោះApple Mac វិញ​ចុច ''Command-R'')
-* '''Google Chrome:''' ចុច ''Ctrl-Shift-R'' (''Command-Shift-R'' សំរាប់ Mac)
+'clearyourcache' => "'''សម្គាល់:''' បន្ទាប់ពីបានរក្សាទុករួចហើយ លោកអ្នកគួរតែសំអាត browser's cache របស់លោកអ្នកដើម្បីមើលការផ្លាស់ប្តូរ។ ខាងក្រោមនេះជាវិធីសំអាត browser's cache ចំពោះកម្មវិធីរុករក(Browser)មួយចំនួន។
+* ''' Firefox / Safari:''' សង្កត់ [Shift] ឱ្យជាប់រួចចុចប៊ូតុង ''Reload'' ឬក៏ចុច  ''Ctrl-F5'' ឬ ''Ctrl-R'' ( ''⌘-R'' សំរាប់ Mac)
+* '''Google Chrome:''' ចុច ''Ctrl-Shift-R'' (''-Shift-R'' សំរាប់ Mac)
 * '''IE(Internet Explorer):''' សង្កត់ [Ctrl] ឱ្យជាប់ រួចចុច ''Refresh''ប៊ូតុង ឬក៏ចុច ''Ctrl-F5''​។
 * '''Konqueror:''' ចុចប៊ូតុង  ''Reload'' ឬក៏ចុច ''F5''
-* '''Opera:''' á\9e\9fá\9e¼á\9e\98á\9e\85á\9e»á\9e\85  ''[Tools]â\86\92[Preferences]''â\80\8bá\9f\94",
+* '''Opera:''' á\9e\9fá\9e¼á\9e\98á\9e\9fá\9f\86á\9e¢á\9e¶á\9e\8fcacheá\9e\93á\9f\85á\9e\80á\9f\92á\9e\93á\9e»á\9e\84  ''[Tools]â\86\92[Preferences]''â\80\8b",
 'usercssyoucanpreview' => "'''គន្លឹះ ៖ ''' សូមប្រើប្រាស់ប៊ូតុង\"{{int:showpreview}}\"ដើម្បី​ធ្វើតេស្ត​សន្លឹក CSS ថ្មីរបស់អ្នក​មុននឹង​រក្សាទុកវា ។",
 'userjsyoucanpreview' => "'''គន្លឹះ ៖ ''' សូមប្រើប្រាស់​ប៊ូតុង \"{{int:showpreview}}\" ដើម្បី​ធ្វើតេស្ត​សន្លឹក JS ថ្មីរបស់អ្នក​មុននឹង​រក្សាទុកវា ។",
 'usercsspreview' => "'''កុំភ្លេចថា​អ្នកគ្រាន់តែ​កំពុងមើលជាមុនសន្លឹក CSS របស់អ្នក។
@@ -1180,7 +1180,7 @@ $1",
 'suppressionlog' => 'កំណត់​ហេតុ​នៃ​ការ​ហាម​ឃាត់​',
 'suppressionlogtext' => 'ខាងក្រោមនេះជាបញ្ជីការលុបចោលនិងការហាមឃាត់ទាក់ទិននឹងខ្លឹមសារដែលអ្នកអភិបាលបានលាក់។
 
-សូមមើលបំរាមនិងការហាមឃាត់ដែលនៅជាធរមាននាពេលបច្ចុប្បន្ននៅក្នុង[[Special:BlockList|បញ្ជីនៃការហាមឃាត់ IP]]។',
+សូមមើលបំរាមនិងការហាមឃាត់ដែលនៅជាធរមាននាពេលបច្ចុប្បន្ននៅក្នុង[[Special:BlockList|បញ្ជីនៃការហាមឃាត់]]។',
 
 # History merging
 'mergehistory' => 'ច្របាច់ប្រវត្តិទាំងឡាយរបស់ទំព័របញ្ចូលគ្នា',
@@ -1212,7 +1212,7 @@ $1",
 'mergelogpagetext' => 'ខាងក្រោមគឺជាតារាងនៃការច្របាច់បញ្ចូលគ្នាថ្មីៗបំផុតរបស់ប្រវត្តិនៃទំព័រមួយទៅក្នុងប្រវត្តិនៃទំព័រមួយទៀត។',
 
 # Diffs
-'history-title' => 'á\9e\94á\9f\92á\9e\9aá\9e\9cá\9e\8fá\9f\92á\9e\8fá\9e·á\9e\80á\9f\86á\9e\8eá\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\93á\9e¶á\9e\93á\9e¶á\9e\93á\9f\83 "$1"',
+'history-title' => 'á\9e\94á\9f\92á\9e\9aá\9e\9cá\9e\8fá\9f\92á\9e\8fá\9e·á\9e\80á\9f\86á\9e\8eá\9f\82á\9e\94á\9f\92á\9e\9aá\9f\82á\9e\9aá\9e\94á\9e\9fá\9f\8b "$1"',
 'difference-multipage' => '(ភាពខុសគ្នារវាងទំព័រនានា)',
 'lineno' => 'បន្ទាត់ទី$1៖',
 'compareselectedversions' => 'ប្រៀបធៀប​កំណែដែលបាន​ជ្រើសយក',
@@ -1623,9 +1623,9 @@ $1",
 
 
 ដើម្បីដាក់រូបភាពទៅក្នុងទំព័រ សូមប្រើប្រាស់តំណភ្ជាប់ក្នុងទម្រង់ដូចខាងក្រោម៖
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ឈ្មោះឯកសារ.jpg]]</nowiki></tt>'''ដើម្បីប្រើប្រាស់ទម្រង់ពេញលេញនៃឯកសារ
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ឈ្មោះឯកសារ.png|200px|thumb|left|ឃ្លាពិពណ៌នា]]</nowiki></tt>''' ដោយប្រើប្រាស់ទំហំ​២០០ភីកសែលក្នុងប្រអប់នៅ​គេមខាងធ្វេង​ជាមួយនឹង​ឃ្លារៀបរាប់អំពីឯកសារនេះ។
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:ឈ្មោះឯកសារ.ogg]]</nowiki></tt>''' ដើម្បីតភ្ជាប់​ដោយផ្ទាល់ទៅឯកសារនេះ​ដោយមិនបង្ហាញឯកសារ។",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ឈ្មោះឯកសារ.jpg]]</nowiki></code>'''ដើម្បីប្រើប្រាស់ទម្រង់ពេញលេញនៃឯកសារ
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ឈ្មោះឯកសារ.png|200px|thumb|left|ឃ្លាពិពណ៌នា]]</nowiki></code>''' ដោយប្រើប្រាស់ទំហំ​២០០ភីកសែលក្នុងប្រអប់នៅ​គេមខាងធ្វេង​ជាមួយនឹង​ឃ្លារៀបរាប់អំពីឯកសារនេះ។
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:ឈ្មោះឯកសារ.ogg]]</nowiki></code>''' ដើម្បីតភ្ជាប់​ដោយផ្ទាល់ទៅឯកសារនេះ​ដោយមិនបង្ហាញឯកសារ។",
 'upload-permitted' => 'ប្រភេទឯកសារដែលត្រូវបានអនុញ្ញាត៖ $1 ។',
 'upload-preferred' => 'ប្រភេទឯកសារដែលគួរប្រើប្រាស់៖ $1 ។',
 'upload-prohibited' => 'ប្រភេទឯកសារដែលត្រូវបានហាម៖ $1 ។',
@@ -1674,22 +1674,22 @@ $1",
 
 ចូរពិនិត្យ ថាតើអ្នកពិតជាចង់ដាក់បញ្ចេញឯកសារនេះឬក៏អត់។',
 'windows-nonascii-filename' => 'វិគីនេះមិនស្គាល់ឯកសារដែលមានតួអក្សរពិសេសៗទេ។',
-'fileexists' => "ឯកសារដែលមានឈ្មោះនេះមានរួចហើយ​ ចូរពិនិត្យ '''<tt>[[:$1]]</tt>''' ប្រសិនបើអ្នកមិនច្បាស់ថាតើអ្នកចង់ប្តូរវាឬក៏អត់។ [[$1|thumb]]",
-'filepageexists' => "ទំព័រពណ៌នារបស់ឯកសារនជត្រូវបានបង្កើតរួចម្ដងហើយនៅ '''<tt>[[:$1]]</tt>''' ក៏ប៉ុន្តែឯកសារដែលមានឈ្មោះដូចនេះមិនទាន់មានទេ។
+'fileexists' => 'ឯកសារដែលមានឈ្មោះនេះមានរួចហើយ​ ចូរពិនិត្យ <strong>[[:$1]]</strong> ប្រសិនបើអ្នកមិនច្បាស់ថាតើអ្នកចង់ប្តូរវាឬក៏អត់។ [[$1|thumb]]',
+'filepageexists' => 'ទំព័រពណ៌នារបស់ឯកសារនជត្រូវបានបង្កើតរួចម្ដងហើយនៅ <strong>[[:$1]]</strong> ក៏ប៉ុន្តែឯកសារដែលមានឈ្មោះដូចនេះមិនទាន់មានទេ។
 
 ចំណារពន្យល់របស់អ្នកនឹងមិនត្រូវបានបង្ហាញនៅក្នុងទំព័រពណ៌នាឡើយ។
 
 ដើម្បីបង្ហាញចំណារពន្យល់របស់អ្នក អ្នកត្រូវតែកែប្រែវាដោយផ្ទាល់។
-[[$1|thumb]]",
-'fileexists-extension' => "មាន​ឯកសារ​មួយ​ដែល​មាន​ឈ្មោះស្រដៀង​៖ [[$2|thumb]]
-* ឈ្មោះ​ឯកសារដែលបាន​ផ្ទុកឡើង​ ៖ '''<tt>[[:$1]]</tt>'''
-* ឈ្មោះ​ឯកសារ​ដែល​មានស្រាប់​៖ '''<tt>[[:$2]]</tt>'''
-សូម​ជ្រើសរើសឈ្មោះ​ផ្សេងទៀត។",
+[[$1|thumb]]',
+'fileexists-extension' => 'មាន​ឯកសារ​មួយ​ដែល​មាន​ឈ្មោះស្រដៀង​៖ [[$2|thumb]]
+* ឈ្មោះ​ឯកសារដែលបាន​ផ្ទុកឡើង​ ៖ <strong>[[:$1]]</strong>
+* ឈ្មោះ​ឯកសារ​ដែល​មានស្រាប់​៖ <strong>[[:$2]]</strong>
+សូម​ជ្រើសរើសឈ្មោះ​ផ្សេងទៀត។',
 'fileexists-thumbnail-yes' => "ឯកសារនេះទំនងជារូបភាពដែលបានបង្រួមទំហំ ''(កូនរូបភាព)''។
 [[$1|thumb]]
-សូមពិនិត្យមើលឯកសារ '''<tt>[[:$1]]</tt>'''
+សូមពិនិត្យមើលឯកសារ <strong>[[:$1]]</strong>
 បើសិនជាឯកសារដែលអ្នកបានពិនិត្យខាងលើគឺជារូបភាពតែមួយដែលមានទំហំដើម នោះអ្នកមិនចាំបាច់ផ្ទុកឡើងនូវកូនរូបភាពបន្ថែមទេ។",
-'file-thumbnail-no' => "ឈ្មោះឯកសារផ្ដើមដោយ '''<tt>$1</tt>'''
+'file-thumbnail-no' => "ឈ្មោះឯកសារផ្ដើមដោយ <strong>$1</strong>
 
 វាទំនងជារូបភាពដែលត្រូវបានបង្រួមទំហំ ''(កូនរូបភាព)''។
 
@@ -1887,7 +1887,7 @@ $1',
 # MIME search
 'mimesearch' => 'ស្វែងរក MIME',
 'mimesearch-summary' => 'ទំព័រ​នេះ​អនុញ្ញាត​ឲ្យ​មាន​កា​ដាក់​តម្រង​លើ​ឯកសារ​តាម​ប្រភេទ MIME​ របស់​វា​។
-វាយ​បញ្ចូល​៖ contenttype/subtype, ឧទាហរណ៍​ <tt>រូបភាព​/jpeg</tt> ។',
+វាយ​បញ្ចូល​៖ contenttype/subtype, ឧទាហរណ៍​ <code>រូបភាព​/jpeg</code> ។',
 'mimetype' => 'ប្រភេទ MIME ៖',
 'download' => 'ទាញយក',
 
@@ -2084,7 +2084,7 @@ $1',
 'linksearch-ok' => 'ស្វែងរក',
 'linksearch-text' => 'កូដពិសេសដូចជា "*.wikipedia.org" អាចប្រើបាន។
 តំរូវអោយមានយ៉ាងហោចណាស់អោយមានដូម៉ែនកំរិតលើគេ ឧទាហារណ៍ "*.org"។<br />
-ប្រូតូខូលប្រើបាន៖ <tt>$1</tt> (កុំបន្ថែមវាទាំងនេះទៅក្នុងការស្វែងរករបស់អ្នកអោយសោះ)។',
+ប្រូតូខូលប្រើបាន៖ <code>$1</code> (កុំបន្ថែមវាទាំងនេះទៅក្នុងការស្វែងរករបស់អ្នកអោយសោះ)។',
 'linksearch-line' => '$1បានតភ្ជាប់ពី$2',
 
 # Special:ListUsers
@@ -2870,15 +2870,10 @@ $1',
 # Info page
 'pageinfo-title' => 'ព័ត៌មានសម្រាប់ "$1"',
 'pageinfo-header-edits' => 'កែប្រែ',
-'pageinfo-header-watchlist' => 'បញ្ជីតាមដាន',
-'pageinfo-header-views' => 'បើកមើល',
-'pageinfo-subjectpage' => 'ទំព័រ',
-'pageinfo-talkpage' => 'ទំព័រពិភាក្សា',
+'pageinfo-views' => 'ចំនួនការបើកមើល',
 'pageinfo-watchers' => 'ចំនួនអ្នកតាមដាន',
 'pageinfo-edits' => 'ចំនួនកំណែប្រែ',
 'pageinfo-authors' => 'ចំនួនអ្នកនិពន្ធ',
-'pageinfo-views' => 'ចំនួនការបើកមើល',
-'pageinfo-viewsperedit' => 'ចំនួនការចូលមើលក្នុងមួយកំណែប្រែ',
 
 # Skin names
 'skinname-standard' => 'បុរាណ',
index f1c641d..42c52af 100644 (file)
@@ -1103,20 +1103,20 @@ $2',
 'largefileserver' => 'ಈ ಫೈಲು ಸರ್ವರ್‍ನಲ್ಲಿ ಸೇರ್ಪಡೆ ಮಾಡಲು ಶಿಫಾರಿತ ಗಾತ್ರಕ್ಕಿಂತ ದೊಡ್ಡದಾಗಿದೆ.',
 'emptyfile' => 'ನೀವು ಅಪ್ಲೋಡ್ ಮಾಡಿದ ಫೈಲು ಖಾಲಿಯಿದ್ದಂತಿದೆ. ಫೈಲಿನ ಹೆಸರು ಬಹುಶಃ ತಪ್ಪಾಗಿರಬಹುದು.
 ದಯವಿಟ್ಟು ನೀವು ಅಪ್ಲೋಡ್ ಮಾಡಬೇಕೆಂದಿರುವುದು ಇದೇ ಫೈಲು ಎಂದು ಖಾತ್ರಿ ಮಾಡಿ.',
-'fileexists' => "ಈ ಹೆಸರಿನ ಫೈಲ್ ಆಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ.
-ಈ ಹೆಸರನ್ನು ಬದಲಾಯಿಸಲು ಇಚ್ಛೆಯಿಲ್ಲದಿದ್ದರೆ, ದಯವಿಟ್ಟು '''<tt>[[:$1]]</tt>''' ಅನ್ನು ಪರೀಕ್ಷಿಸಿ.
-[[$1|thumb]]",
-'filepageexists' => "ಈ ಫೈಲಿಗೆ ಮಾಹಿತಿ ಪುಟವೊಂದು ಆಗಲೆ '''<tt>[[:$1]]</tt>''' ಎಂಬಲ್ಲಿ ಇದೆ, ಆದರೆ ಈ ಹೆಸರಿನಲ್ಲಿ ಯಾವ ಫೈಲೂ ಅಸ್ಥಿತ್ವದಲ್ಲಿ ಇಲ್ಲ.
+'fileexists' => 'ಈ ಹೆಸರಿನ ಫೈಲ್ ಆಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ.
+ಈ ಹೆಸರನ್ನು ಬದಲಾಯಿಸಲು ಇಚ್ಛೆಯಿಲ್ಲದಿದ್ದರೆ, ದಯವಿಟ್ಟು <strong>[[:$1]]</strong> ಅನ್ನು ಪರೀಕ್ಷಿಸಿ.
+[[$1|thumb]]',
+'filepageexists' => 'ಈ ಫೈಲಿಗೆ ಮಾಹಿತಿ ಪುಟವೊಂದು ಆಗಲೆ <strong>[[:$1]]</strong> ಎಂಬಲ್ಲಿ ಇದೆ, ಆದರೆ ಈ ಹೆಸರಿನಲ್ಲಿ ಯಾವ ಫೈಲೂ ಅಸ್ಥಿತ್ವದಲ್ಲಿ ಇಲ್ಲ.
 ನೀವು ನೀಡುವ ಸಾರಾಂಶವು ಮಾಹಿತಿ ಪುಟದಲ್ಲಿ ತೋರುವುದಿಲ್ಲ.
-ಸಾರಾಂಶವು ಅಲ್ಲಿ ತೋರಲು ನೀವು ಆನಂತರ ಕೈಯಾರೆ ಸಂಪಾದನೆ ಮಾಡಬೇಕು",
-'fileexists-extension' => "ಈ ಹೆಸರನ್ನು ಹೋಲುವಂತಹ ಫೈಲೊಂದು ಆಗಲೇ ಇದೆ: [[$2|thumb]]
-* ಅಪ್ಲೋಡ್ ಮಾಡುತ್ತಿರುವ ಫೈಲಿನ ಹೆಸರು: '''<tt>[[:$1]]</tt>'''
-* ಅಸ್ಥಿತ್ವದಲ್ಲಿರುವ ಫೈಲಿನ ಹೆಸರು: '''<tt>[[:$2]]</tt>'''
-ದಯವಿಟ್ಟು ಬೇರೆ ಹೆಸರೊಂದನ್ನು ಆಯ್ಕೆಮಾಡಿ.",
+ಸಾರಾಂಶವು ಅಲ್ಲಿ ತೋರಲು ನೀವು ಆನಂತರ ಕೈಯಾರೆ ಸಂಪಾದನೆ ಮಾಡಬೇಕು',
+'fileexists-extension' => 'ಈ ಹೆಸರನ್ನು ಹೋಲುವಂತಹ ಫೈಲೊಂದು ಆಗಲೇ ಇದೆ: [[$2|thumb]]
+* ಅಪ್ಲೋಡ್ ಮಾಡುತ್ತಿರುವ ಫೈಲಿನ ಹೆಸರು: <strong>[[:$1]]</strong>
+* ಅಸ್ಥಿತ್ವದಲ್ಲಿರುವ ಫೈಲಿನ ಹೆಸರು: <strong>[[:$2]]</strong>
+ದಯವಿಟ್ಟು ಬೇರೆ ಹೆಸರೊಂದನ್ನು ಆಯ್ಕೆಮಾಡಿ.',
 'fileexists-thumbnail-yes' => "ಈ ಫೈಲು ಯಾವುದೋ ಚಿತ್ರದ ಕಿರುನೋಟ ''(thumbnail)'' ಇರಬಹುದೆಂದು ಅನಿಸುತ್ತದೆ . [[$1|thumb]]
-ದಯವಿಟ್ಟು '''<tt>[[:$1]]</tt>''' ಫೈಲನ್ನೊಮ್ಮೆ ಪರೀಕ್ಷಿಸಿ.
+ದಯವಿಟ್ಟು <strong>[[:$1]]</strong> ಫೈಲನ್ನೊಮ್ಮೆ ಪರೀಕ್ಷಿಸಿ.
 ನೀವು ಪರೀಕ್ಷಿಸಿದ ಫೈಲು ಆ ಚಿತ್ರದ ಮೂಲ ಗಾತ್ರದ್ದಾಗಿದ್ದಲ್ಲಿ ಈ ಕಿರುನೋಟವನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ.",
-'file-thumbnail-no' => "ಈ ಫೈಲಿನ ಹೆಸರು '''<tt>$1</tt>''' ಇಂದ ಶುರುವಾಗುತ್ತಿದೆ.
+'file-thumbnail-no' => "ಈ ಫೈಲಿನ ಹೆಸರು <strong>$1</strong> ಇಂದ ಶುರುವಾಗುತ್ತಿದೆ.
 ಈ ಫೈಲು ಯಾವುದೋ ಚಿತ್ರದ ಕಿರುನೋಟ ''(thumbnail)'' ಇರಬಹುದೆಂದು ಅನಿಸುತ್ತದೆ .
 ಮೂಲ ಗಾತ್ರದ ಆ ಚಿತ್ರ ನಿಮ್ಮ ಬಳಿಯಿದ್ದಲ್ಲಿ ಅದನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಿ, ಇಲ್ಲ ದಯವಿಟ್ಟು ಫೈಲಿನ ಹೆಸರನ್ನು ಬದಲಾಯಿಸಿ.",
 'fileexists-forbidden' => 'ಆ ಹೆಸರಿನಲ್ಲಿ ಫೈಲೊಂದು ಆಗಲೆ ಇದೆ;
index f3d7107..24f4bea 100644 (file)
@@ -658,10 +658,10 @@ $1',
 'databaseerror' => '데이터베이스 오류',
 'dberrortext' => '데이터베이스 쿼리 구문 오류가 발생했습니다.
 소프트웨어의 버그가 있을 수 있습니다.
-마지막으로 요청한 데이터베이스 쿼리는 "<tt>$2</tt>" 함수에서 쓰인
-<blockquote><tt>$1</tt></blockquote>
+마지막으로 요청한 데이터베이스 쿼리는 "<code>$2</code>" 함수에서 쓰인
+<blockquote><code>$1</code></blockquote>
 입니다.
-데이터베이스는 "<tt>$3: $4</tt>" 오류를 일으켰습니다.',
+데이터베이스는 "<samp>$3: $4</samp>" 오류를 일으켰습니다.',
 'dberrortextcl' => '데이터베이스 쿼리 구문 오류가 발생했습니다.
 마지막으로 요청한 데이터베이스 쿼리는 "$2" 함수에서 쓰인
 "$1"
@@ -905,8 +905,8 @@ $2
 'passwordreset-emailelement' => '사용자 이름: $1
 임시 비밀번호: $2',
 'passwordreset-emailsent' => '비밀번호 찾기 이메일을 보냈습니다.',
-'passwordreset-emailsent-capture' => '비밀번호 찾기 이메일이 발송되었으며, 아래에 표시되어 있습니다.',
-'passwordreset-emailerror-capture' => '비밀번호 찾기 이메일이 만들어져 아래에 표시되었지만 발송하는 데에는 실패했습니다: $1',
+'passwordreset-emailsent-capture' => '비밀번호 찾기 이메일이 발송되었으며, 아래에 나타나 있습니다.',
+'passwordreset-emailerror-capture' => '비밀번호 찾기 이메일이 만들어져 아래에 나타났지만 발송하는 데에는 실패했습니다: $1',
 
 # Special:ChangeEmail
 'changeemail' => '이메일 주소 바꾸기',
@@ -927,7 +927,7 @@ $2
 'link_sample' => '링크 제목',
 'link_tip' => '내부 링크',
 'extlink_sample' => 'http://www.example.com 사이트 이름',
-'extlink_tip' => '외부 사이트 링크 (주소 앞에 http://가 있어야 합니다.)',
+'extlink_tip' => '바깥 링크 (주소 앞에 http://가 있어야 합니다.)',
 'headline_sample' => '제목',
 'headline_tip' => '2단계 문단 제목',
 'nowiki_sample' => '여기에 위키 문법을 사용하지 않을 글을 적어 주세요',
@@ -935,7 +935,7 @@ $2
 'image_tip' => '파일 넣기',
 'media_tip' => '파일 링크하기',
 'sig_tip' => '내 서명과 현재 시각',
-'hr_tip' => '가로(되도록 사용하지 말아 주세요)',
+'hr_tip' => '가로 줄 (되도록 사용하지 말아 주세요)',
 
 # Edit pages
 'summary' => '편집 요약:',
@@ -1009,11 +1009,11 @@ $1 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대
 IP 주소는 여러 사용자가 공유할 수 있습니다.
 자신과 관계없는 의견이 자신에게 남겨져 있어 불쾌하다고 생각하는 익명 사용자는 [[Special:UserLogin/signup|계정을 만들고]] [[Special:UserLogin|로그인 하여]] 나중에 다른 익명 사용자에게 줄 혼란을 줄일 수 있습니다.',
 'noarticletext' => '이 문서가 존재하지 않습니다.
-이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|검색]]하거나,
+이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|찾거나]],
 이 문서에 관련된 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 기록]을 확인하거나,
 문서를 직접 [{{fullurl:{{FULLPAGENAME}}|action=edit}} 편집]</span>할 수 있습니다.',
 'noarticletext-nopermission' => '이 문서가 존재하지 않습니다.
-이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|검색]]하거나,
+이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|찾거나]],
 이 문서에 관련된 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 기록]을 확인할 수 있습니다.</span>',
 'missing-revision' => '"{{PAGENAME}}"이라는 문서의 #$1판이 존재하지 않습니다.
 
@@ -1028,7 +1028,6 @@ IP 주소는 여러 사용자가 공유할 수 있습니다.
 * '''파이어폭스 / 사파리''': ''Shift'' 키를 누르면서 새로 고침을 클릭하거나, ''Ctrl-F5'' 또는 ''Ctrl-R'' 을 입력 (Mac에서는 ''⌘-R'')
 * '''구글 크롬''': ''Ctrl-Shift-R''키를 입력 (Mac에서는 ''⌘-Shift-R'')
 * '''인터넷 익스플로러''': ''Ctrl'' 키를 누르면서 새로 고침을 클릭하거나, ''Ctrl-F5''를 입력.
-* '''컨커러''': ''새로고침''을 클릭하거나 ''F5''를 입력
 * '''오페라''': ''도구→설정''에서 캐시를 비움",
 'usercssyoucanpreview' => "'''안내''': CSS 문서를 저장하기 전에 \"{{int:showpreview}}\" 기능을 통해 작동을 확인해주세요.",
 'userjsyoucanpreview' => "'''안내''': 자바스크립트 문서를 저장하기 전에 \"{{int:showpreview}}\" 기능을 통해 작동을 확인해주세요.",
@@ -1196,7 +1195,7 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'history-feed-item-nocomment' => '$2에 대한 $1의 편집',
 'history-feed-empty' => '요청한 문서가 존재하지 않습니다.
 해당 문서가 삭제되었거나, 문서 이름이 바뀌었을 수 있습니다.
-[[Special:Search|검색 기능]]을 사용해 관련 문서를 찾아보세요.',
+[[Special:Search|찾기]]를 사용해 관련 문서를 찾아보세요.',
 
 # Revision deletion
 'rev-deleted-comment' => '(편집 요약 삭제됨)',
@@ -1326,7 +1325,7 @@ $1",
 
 # Merge log
 'mergelog' => '병합 기록',
-'pagemerge-logentry' => '[[$1]]을 [[$2]]에 병합 ($3판이 위로 옮겨짐)',
+'pagemerge-logentry' => '사용자가 [[$1]]을 [[$2]]에 병합 ($3판이 위로 옮겨짐)',
 'revertmerge' => '병합 해제',
 'mergelogpagetext' => '다음은 한 문서의 역사를 다른 문서의 역사와 합친 최근 기록입니다.',
 
@@ -1350,7 +1349,7 @@ $1",
 'searchresults' => '찾기 결과',
 'searchresults-title' => '"$1"에 대한 찾기 결과',
 'searchresulttext' => '{{SITENAME}}의 찾기 기능에 대한 자세한 정보는 [[{{MediaWiki:Helppage}}|{{int:help}}]] 문서를 참고해주세요.',
-'searchsubtitle' => "'''[[:$1]]''' 문서를 찾고 있습니다. ([[Special:Prefixindex/$1|이름이 ‘$1’ 접두어로 시작하는 문서 목록]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|‘$1’ 문서를 가리키는 문서 목록]])",
+'searchsubtitle' => '\'\'\'[[:$1]]\'\'\' 문서를 찾고 있습니다. ([[Special:Prefixindex/$1|이름이 "$1" 접두어로 시작하는 문서 목록]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|"$1" 문서를 가리키는 문서 목록]])',
 'searchsubtitleinvalid' => "찾은 단어 '''$1'''",
 'toomanymatches' => '일치하는 결과가 너무 많습니다. 다른 검색어를 입력해주세요.',
 'titlematches' => '문서 제목 일치',
@@ -1423,7 +1422,7 @@ $1",
 
 # Preferences page
 'preferences' => '사용자 환경 설정',
-'mypreferences' => '사용자 환경 설정',
+'mypreferences' => '내 사용자 환경 설정',
 'prefs-edits' => '편집 횟수:',
 'prefsnologin' => '로그인하지 않음',
 'prefsnologintext' => '사용자 환경 설정을 바꾸려면 먼저 <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} 로그인]</span>해야 합니다.',
@@ -1458,11 +1457,11 @@ $1",
 'columns' => '열 수:',
 'searchresultshead' => '찾기',
 'resultsperpage' => '쪽마다 보이는 결과 수:',
-'stub-threshold' => '링크를 <a href="#" class="stub">토막글</a> 형식으로 표시할 문서 크기 (바이트 수):',
+'stub-threshold' => '링크를 <a href="#" class="stub">토막글</a> 형식으로 보여줄 문서 크기 (바이트 수):',
 'stub-threshold-disabled' => '비활성화됨',
-'recentchangesdays' => '최근 바뀜에 표시할 날짜 수:',
+'recentchangesdays' => '최근 바뀜에 보여줄 날짜 수:',
 'recentchangesdays-max' => '최대 $1일',
-'recentchangescount' => '기본으로 표시할 편집 수:',
+'recentchangescount' => '기본으로 보여줄 편집 수:',
 'prefs-help-recentchangescount' => '이 설정은 최근 바뀜, 문서 역사와 기록에 적용됩니다.',
 'prefs-help-watchlist-token' => '아래에 비밀 값을 넣으면 주시문서 목록에 대한 RSS 피드가 만들어집니다.
 비밀 값을 알고 있는 사람이라면 누구나 피드를 읽을 수 있으므로 안전한 값을 입력해주세요.
@@ -1506,7 +1505,7 @@ $1",
 'yourrealname' => '실명:',
 'yourlanguage' => '언어:',
 'yourvariant' => '언어 변종:',
-'prefs-help-variant' => '위키 내용을 표시할 때 사용할 언어 변종이나 철자 체계를 선택해주세요.',
+'prefs-help-variant' => '위키 내용을  때 사용할 언어 변종이나 철자 체계를 선택해주세요.',
 'yournick' => '새 서명:',
 'prefs-help-signature' => '토론 문서에 글을 쓴 후에는 마지막에 서명을 해야 합니다.  “<nowiki>~~~~</nowiki>” 기호를 추가하면 서명과 글 작성 시각이 자동으로 입력됩니다.',
 'badsig' => '서명이 잘못되었습니다.
@@ -1538,7 +1537,7 @@ HTML 태그를 확인하세요.',
 'prefs-advancedwatchlist' => '고급 설정',
 'prefs-displayrc' => '보이기 설정',
 'prefs-displaysearchoptions' => '보이기 설정',
-'prefs-displaywatchlist' => '표시 설정',
+'prefs-displaywatchlist' => '보이기 설정',
 'prefs-diffs' => '차이',
 
 # User preference: e-mail validation using jQuery
@@ -1656,7 +1655,7 @@ HTML 태그를 확인하세요.',
 # User rights log
 'rightslog' => '사용자 권한 기록',
 'rightslogtext' => '사용자 권한 조정 기록입니다.',
-'rightslogentry' => '$1의 권한을 $2에서 $3(으)로 바꿈',
+'rightslogentry' => '사용자가 $1의 권한을 $2에서 $3(으)로 바꿈',
 'rightslogentry-autopromote' => '사용자의 권한이 자동적으로 $2에서 $3으로 바뀌었습니다.',
 'rightsnone' => '(없음)',
 
@@ -1679,7 +1678,7 @@ HTML 태그를 확인하세요.',
 'action-delete' => '이 문서 삭제하기',
 'action-deleterevision' => '이 판을 삭제',
 'action-deletedhistory' => '이 문서의 삭제된 기여의 역사 보기',
-'action-browsearchive' => '삭제된 문서 검색',
+'action-browsearchive' => '삭제된 문서 찾기',
 'action-undelete' => '이 문서를 복구하기',
 'action-suppressrevision' => '이 숨겨진 판을 검토하고 복구할',
 'action-suppressionlog' => '비공개 기록 보기',
@@ -1761,9 +1760,9 @@ HTML 태그를 확인하세요.',
 [[Special:FileList|파일 목록]]에서 이전에 올라온 파일을 찾을 수 있습니다. [[Special:Log/upload|올리기 기록]]에는 파일이 올라온 기록이 남습니다. 삭제 기록은 [[Special:Log/delete|삭제 기록]]에서 볼 수 있습니다.
 
 문서에 파일을 넣으려면 아래 방법 중 하나를 사용하세요.
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' 파일의 온전한 모양을 사용하고자 할 때.
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200픽셀|섬네일|왼쪽|설명]]</nowiki></tt>''' 파일의 넓이를 200픽셀로 하고 왼쪽 정렬하며 '설명' 이라는 주석을 파일 밑에 달 때.
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' 파일을 직접 보여주지 않고 파일로 바로 링크할때.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' 파일의 온전한 모양을 사용하고자 할 때.
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200픽셀|섬네일|왼쪽|설명]]</nowiki></code>''' 파일의 넓이를 200픽셀로 하고 왼쪽 정렬하며 '설명' 이라는 주석을 파일 밑에 달 때.
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' 파일을 직접 보여주지 않고 파일로 바로 링크할때.",
 'upload-permitted' => '허용하는 파일 확장자: $1',
 'upload-preferred' => '권장하는 파일 확장자: $1',
 'upload-prohibited' => '금지하는 파일 확장자: $1',
@@ -1811,23 +1810,23 @@ $2 형식만 사용할 수 있습니다.',
 파일 이름을 잘못 입력했을 수도 있습니다.
 올리려는 파일을 다시 한 번 확인해 주시기 바랍니다.',
 'windows-nonascii-filename' => '이 위키에서는 특수 문자가 포함된 파일 이름을 지원하지 않습니다.',
-'fileexists' => "같은 이름의 파일이 이미 있습니다. 파일을 바꾸고 싶지 않다면 '''<tt>[[:$1]]</tt>''' 파일을 확인해 주세요.
-[[$1|thumb]]",
-'filepageexists' => "이 파일의 설명 문서가 '''<tt>[[:$1]]</tt>'''에 존재하지만, 이 이름을 가진 파일이 존재하지 않습니다.
+'fileexists' => '같은 이름의 파일이 이미 있습니다. 파일을 바꾸고 싶지 않다면 <strong>[[:$1]]</strong> 파일을 확인해 주세요.
+[[$1|thumb]]',
+'filepageexists' => '이 파일의 설명 문서가 <strong>[[:$1]]</strong>에 존재하지만, 이 이름을 가진 파일이 존재하지 않습니다.
 당신이 입력한 설명은 설명 문서에 반영되지 않을 것입니다.
 당신의 설명을 반영시키려면, 직접 편집하셔야 합니다.
-[[$1|thumb]]",
-'fileexists-extension' => "비슷한 이름의 파일이 존재합니다: [[$2|thumb]]
-* 올리려는 파일 이름: '''<tt>[[:$1]]</tt>'''
-* 존재하는 파일 이름: '''<tt>[[:$2]]</tt>'''
-다른 이름으로 시도해 주세요.",
-'fileexists-thumbnail-yes' => "이 파일은 원본 그림이 아닌, 다른 그림의 크기를 줄인 섬네일 파일인 것 같습니다.
+[[$1|thumb]]',
+'fileexists-extension' => '비슷한 이름의 파일이 존재합니다: [[$2|thumb]]
+* 올리려는 파일 이름: <strong>[[:$1]]</strong>
+* 존재하는 파일 이름: <strong>[[:$2]]</strong>
+다른 이름으로 시도해 주세요.',
+'fileexists-thumbnail-yes' => '이 파일은 원본 그림이 아닌, 다른 그림의 크기를 줄인 섬네일 파일인 것 같습니다.
 [[$1|thumb]]
-'''<tt>[[:$1]]</tt>''' 파일을 확인해주세요.
-해당 파일이 현재 올리려는 파일과 같다면, 더 작은 크기의 그림을 올릴 필요는 없습니다.",
-'file-thumbnail-no' => "파일 이름이 '''<tt>$1</tt>'''으로 시작합니다.
+<strong>[[:$1]]</strong> 파일을 확인해주세요.
+해당 파일이 현재 올리려는 파일과 같다면, 더 작은 크기의 그림을 올릴 필요는 없습니다.',
+'file-thumbnail-no' => '파일 이름이 <strong>$1</strong>으로 시작합니다.
 이 파일은 원본 그림이 아닌, 다른 그림의 크기를 줄인 섬네일 파일인 것 같습니다.
-더 해상도가 좋은 파일이 있다면 그 파일을 올려주세요. 아니면 올리려는 파일 이름을 바꾸어 주세요.",
+더 해상도가 좋은 파일이 있다면 그 파일을 올려주세요. 아니면 올리려는 파일 이름을 바꾸어 주세요.',
 'fileexists-forbidden' => '같은 이름의 파일이 이미 있고, 덮어쓸 수 없습니다.
 그래도 파일을 올리시려면, 뒤로 돌아가서 다른 이름으로 시도해 주시기 바랍니다.
 [[File:$1|thumb|center|$1]]',
@@ -1839,8 +1838,8 @@ $2 형식만 사용할 수 있습니다.',
 'uploadwarning' => '올리기 경고',
 'uploadwarning-text' => '아래의 파일 설명을 수정하고 다시 시도해 주세요.',
 'savefile' => '파일 저장',
-'uploadedimage' => '"[[$1]]" 파일을 올렸습니다.',
-'overwroteimage' => '"[[$1]]" 파일의 새 판을 올렸습니다.',
+'uploadedimage' => '사용자가 "[[$1]]" 파일을 올렸습니다.',
+'overwroteimage' => '사용자가 "[[$1]]" 파일의 새 판을 올렸습니다.',
 'uploaddisabled' => '올리기 비활성화됨',
 'copyuploaddisabled' => 'URL로 파일 올리기가 비활성화되어 있습니다.',
 'uploadfromurl-queued' => '당신의 올리기 명령이 기록되었습니다.',
@@ -2061,6 +2060,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'shared-repo' => '공용 저장소',
 'shared-repo-name-wikimediacommons' => '위키미디어 공용',
 'filepage.css' => '/* 이 CSS 설정은 파일 설명 문서에 포함되며, 또한 해외 클라이언트 위키에 포함됩니다 */',
+'upload-disallowed-here' => '죄송하지만 이 그림을 덮어 쓸 수 없습니다.',
 
 # File reversion
 'filerevert' => '$1 되돌리기',
@@ -2095,7 +2095,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 # MIME search
 'mimesearch' => 'MIME 찾기',
 'mimesearch-summary' => 'MIME 타입에 해당하는 파일을 찾습니다.
-다음 형태로 입력해주세요: 내용종류/하위종류, 예를 들어 <tt>image/jpeg</tt>',
+다음 형태로 입력해주세요: 내용종류/하위종류, 예를 들어 <code>image/jpeg</code>',
 'mimetype' => 'MIME 종류:',
 'download' => '다운로드',
 
@@ -2170,6 +2170,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 # Miscellaneous special pages
 'nbytes' => '$1 바이트',
 'ncategories' => '분류 $1개',
+'ninterwikis' => '{{PLURAL:$1|인터위키}} $1개',
 'nlinks' => '링크 $1개',
 'nmembers' => '문서 $1개',
 'nrevisions' => '편집 $1개',
@@ -2198,6 +2199,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'mostlinkedtemplates' => '가장 많이 사용된 틀 목록',
 'mostcategories' => '가장 많이 분류된 문서 목록',
 'mostimages' => '가장 많이 사용된 파일 목록',
+'mostinterwikis' => '가장 많이 인터위키가 달린 문서 목록',
 'mostrevisions' => '가장 많이 편집된 문서 목록',
 'prefixindex' => '접두어에 따른 문서 목록',
 'prefixindex-namespace' => '접두어가 있는 모든 문서 ($1 이름공간)',
@@ -2248,9 +2250,9 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'log' => '기록 목록',
 'all-logs-page' => '모든 공개 기록',
 'alllogstext' => '{{SITENAME}}에서의 기록이 모두 나와 있습니다.
-기록 종류, 사용자 이름 (대소문자 구분), 문서 이름을 선택해서 볼 수 있습니다. 검색시에는 대소문자를 구별합니다.',
+기록 종류, 사용자 이름, 문서 이름을 선택해서 볼 수 있습니다. (대소문자를 구별합니다.)',
 'logempty' => '일치하는 항목이 없습니다.',
-'log-title-wildcard' => '다음 글로 시작하는 제목 검색',
+'log-title-wildcard' => '다음 글로 시작하는 제목 찾기',
 'showhideselectedlogentries' => '선택한 기록 항목 보이기/숨기기',
 
 # Special:AllPages
@@ -2292,13 +2294,13 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'sp-deletedcontributions-contribs' => '기여',
 
 # Special:LinkSearch
-'linksearch' => '외부 링크 찾기',
-'linksearch-pat' => '검색 패턴:',
+'linksearch' => '바깥 링크 찾기',
+'linksearch-pat' => '찾기 패턴:',
 'linksearch-ns' => '이름공간:',
 'linksearch-ok' => '찾기',
 'linksearch-text' => '"*.wikipedia.org"와 같이 와일드카드를 사용할 수 있습니다.
 적어도 "*.org"와 같이 최상위 도메인을 입력해야 합니다.<br />
-지원하는 프로토콜 목록: <tt>$1</tt> (검색할 때 이것을 추가하지 마세요)',
+지원하는 프로토콜 목록: <code>$1</code> (찾을 때 이것을 추가하지 마세요)',
 'linksearch-line' => '$2에서 $1 을 링크하고 있습니다.',
 'linksearch-error' => '와일드카드는 주소의 처음 부분에만 사용될 수 있습니다.',
 
@@ -2344,6 +2346,8 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'mailnologin' => '보낼 이메일 주소가 없음',
 'mailnologintext' => '다른 사용자에게 이메일을 보내려면 [[Special:UserLogin|로그인]]한 다음 [[Special:Preferences|사용자 환경 설정]]에서 자신의 이메일 주소를 저장해야 합니다.',
 'emailuser' => '이메일 보내기',
+'emailuser-title-target' => '이 {{GENDER:$1|사용자}} 이메일',
+'emailuser-title-notarget' => '사용자 이메일',
 'emailpage' => '사용자에게 이메일 보내기',
 'emailpagetext' => '이 사용자가 환경 설정에 올바른 이메일 주소를 적었다면, 아래 양식을 통해 이메일을 보낼 수 있습니다.
 이메일을 받은 사용자가 바로 답장할 수 있도록 하기 위해 당신이 [[Special:Preferences|사용자 환경 설정]]에 적은 이메일 주소가 "발신자" 정보에 들어갑니다. 따라서 수신자가 당신에게 직접 답장을 보낼 수 있습니다.',
@@ -2374,7 +2378,6 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 # User Messenger
 'usermessage-summary' => '시스템 메시지 남기기',
 'usermessage-editor' => '시스템 메신저',
-'usermessage-template' => 'MediaWiki:UserMessage',
 
 # Watchlist
 'watchlist' => '주시문서 목록',
@@ -2402,7 +2405,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'watchmethod-recent' => '주시된 문서를 확인하고자 최근 편집을 확인',
 'watchmethod-list' => '최근 편집을 확인하고자 주시된 문서 확인',
 'watchlistcontains' => '문서 $1개를 주시하고 있습니다.',
-'iteminvalidname' => '"$1" 항목에 문제가 발생했습니다. 이름이 잘못되었습니다...',
+'iteminvalidname' => "'$1' 항목에 문제가 발생했습니다. 이름이 잘못되었습니다...",
 'wlnote' => "다음은 최근 '''$2'''시간 동안 바뀐 문서 '''$1'''개 입니다. ($3 $4 기준)",
 'wlshowlast' => '최근 $1시간 $2일 또는 $3 동안에 바뀐 문서',
 'watchlist-options' => '주시문서 목록 설정',
@@ -2514,10 +2517,10 @@ $UNWATCHURL
 'protectlogpage' => '문서 보호 기록',
 'protectlogtext' => '아래의 목록은 문서 보호에 관한 바뀜 사항에 대한 기록입니다.
 현재 보호된 문서의 목록에 대해서는 [[Special:ProtectedPages|보호된 문서 목록]]을 참고하세요.',
-'protectedarticle' => '"[[$1]]" 문서를 보호함',
-'modifiedarticleprotection' => '"[[$1]]" 문서의 보호 설정을 바꿈',
-'unprotectedarticle' => '"[[$1]]" 문서를 보호 해제함',
-'movedarticleprotection' => '문서의 보호 설정을 "[[$2]]"에서 "[[$1]]"으로 옮김',
+'protectedarticle' => '사용자가 "[[$1]]" 문서를 보호함',
+'modifiedarticleprotection' => '사용자가 "[[$1]]" 문서의 보호 설정을 바꿈',
+'unprotectedarticle' => '사용자가 "[[$1]]" 문서를 보호 해제함',
+'movedarticleprotection' => '사용자가 문서의 보호 설정을 "[[$2]]"에서 "[[$1]]"으로 옮김',
 'protect-title' => '"$1" 보호하기',
 'protect-title-notallowed' => '"$1" 문서의 보호 수준 보기',
 'prot_1movedto2' => '[[$1]] 문서를 [[$2]] 문서로 이동함',
@@ -2667,7 +2670,6 @@ $1',
 'sp-contributions-username' => 'IP 주소 또는 사용자 이름:',
 'sp-contributions-toponly' => '최신판만 보기',
 'sp-contributions-submit' => '찾기',
-'sp-contributions-explain' => '',
 
 # What links here
 'whatlinkshere' => '여기를 가리키는 문서',
@@ -2779,11 +2781,11 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'blocklog-showsuppresslog' => '이 사용자는 과거에 차단된 적이 있으며, 그 기록이 숨겨져 있습니다.
 해당 사용자의 차단 기록은 다음과 같습니다:',
 'blocklogentry' => '사용자가 [[$1]] 사용자를 $2 차단함 $3',
-'reblock-logentry' => '[[$1]] 사용자의 차단 기간을 $2(으)로 바꿈 $3',
+'reblock-logentry' => '사용자가 [[$1]] 사용자의 차단 기간을 $2(으)로 바꿈 $3',
 'blocklogtext' => '이 목록은 사용자 차단/차단 해제 기록입니다.
 자동으로 차단된 IP 주소는 여기에 나오지 않습니다.
 [[Special:BlockList|여기]]에서 현재 차단된 사용자 목록을 볼 수 있습니다.',
-'unblocklogentry' => '$1을 차단 해제했습니다.',
+'unblocklogentry' => '사용자가 $1 사용자를 차단 해제했습니다.',
 'block-log-flags-anononly' => 'IP만 막음',
 'block-log-flags-nocreate' => '계정 만들기 금지됨',
 'block-log-flags-noautoblock' => '자동 차단 비활성화됨',
@@ -3000,6 +3002,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'import-interwiki-templates' => '모든 틀을 포함하기',
 'import-interwiki-submit' => '가져오기',
 'import-interwiki-namespace' => '새 이름공간:',
+'import-interwiki-rootpage' => '대상 루트 문서 (선택 사항):',
 'import-upload-filename' => '파일 이름:',
 'import-comment' => '이유:',
 'importtext' => '원본 위키에서 [[Special:Export|내보내기]] 기능을 사용해 파일을 내려받으세요.
@@ -3033,9 +3036,12 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'import-invalid-interwiki' => '해당 위키에서 문서를 가져올 수 없습니다.',
 'import-error-edit' => '현재 문서를 편집할 권한이 없기 때문에 "$1" 문서를 불러올 수 없습니다.',
 'import-error-create' => '현재 문서를 만들 권한이 없기 때문에 "$1" 문서를 불러올 수 없습니다.',
-'import-error-interwiki' => '문서 "$1"은 제목이 바깥 고리(인터위키)용으로 할당되어 있기 때문에 가져오지 않습니다.',
-'import-error-special' => '문서 "$1"은 특수 문서에 속해 있기 때문에 가져오지 않습니다.',
-'import-error-invalid' => '문서 "$1"은 제목이 잘못되었기 때문에 가져오지 않습니다.',
+'import-error-interwiki' => '"$1" 문서는 제목이 바깥 링크(인터위키)용으로 할당되어 있기 때문에 가져오지 않습니다.',
+'import-error-special' => '"$1" 문서는 특수 문서에 속해 있기 때문에 가져오지 않습니다.',
+'import-error-invalid' => '"$1" 문서는 제목이 잘못되었기 때문에 가져오지 않습니다.',
+'import-options-wrong' => '잘못된 {{PLURAL:$2|선택 사항}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => '주어진 루트 문서는 잘못된 제목입니다.',
+'import-rootpage-nosubpage' => '루트 문서의 "$1" 이름공간은 하위 문서를 허용하지 않습니다.',
 
 # Import log
 'importlogpage' => '가져오기 기록',
@@ -3061,7 +3067,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'tooltip-pt-anonuserpage' => '현재 사용하는 IP의 사용자 문서',
 'tooltip-pt-mytalk' => '내 토론 문서',
 'tooltip-pt-anontalk' => '현재 사용하는 IP를 위한 사용자 토론 문서',
-'tooltip-pt-preferences' => '사용자 환경 설정',
+'tooltip-pt-preferences' => '내 사용자 환경 설정',
 'tooltip-pt-watchlist' => '주시문서에 대한 바뀜 목록',
 'tooltip-pt-mycontris' => '내가 편집한 글',
 'tooltip-pt-login' => '꼭 로그인해야 하는 것은 아니지만, 로그인을 권장합니다.',
@@ -3179,7 +3185,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 # Spam protection
 'spamprotectiontitle' => '스팸 방지 필터',
 'spamprotectiontext' => '스팸 필터가 문서 저장을 막았습니다.
-외부 사이트로 연결하는 링크 중에 블랙리스트에 포함된 사이트가 있을 것입니다.',
+바깥 사이트로 연결하는 링크 중에 블랙리스트에 포함된 사이트가 있을 것입니다.',
 'spamprotectionmatch' => '문제가 되는 부분은 다음과 같습니다: $1',
 'spambot_username' => 'MediaWiki 스팸 제거',
 'spam_reverting' => '$1을 포함하지 않는 최신 버전으로 되돌림',
@@ -3188,16 +3194,35 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 
 # Info page
 'pageinfo-title' => '"$1" 문서에 대한 정보',
-'pageinfo-header-edits' => '편집',
-'pageinfo-header-watchlist' => '주시 현황',
-'pageinfo-header-views' => '보기 현황',
-'pageinfo-subjectpage' => '문서',
-'pageinfo-talkpage' => '토론 문서',
-'pageinfo-watchers' => '주시하는 사용자 수',
-'pageinfo-edits' => '편집 수',
-'pageinfo-authors' => '서로 다른 편집자의 수',
+'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-robot-policy' => '검색 엔진 통계',
+'pageinfo-robot-index' => '색인 가능',
+'pageinfo-robot-noindex' => '색인 불가능',
 'pageinfo-views' => '읽힌 횟수',
-'pageinfo-viewsperedit' => '읽힌 횟수/편집 수',
+'pageinfo-watchers' => '문서를 주시하는 사용자 수',
+'pageinfo-redirects-name' => '이 문서로 넘겨주기',
+'pageinfo-redirects-value' => '$1개',
+'pageinfo-subpages-name' => '이 문서의 하위 문서',
+'pageinfo-subpages-value' => '$1개 ({{PLURAL:$2|넘겨주기}} $2개, {{PLURAL:$3|넘겨주기 아님}} $3개)',
+'pageinfo-firstuser' => '문서 작성자',
+'pageinfo-firsttime' => '문서 작성 날짜',
+'pageinfo-lastuser' => '최근 편집자',
+'pageinfo-lasttime' => '최근 편집 날짜',
+'pageinfo-edits' => '총 편집 수',
+'pageinfo-authors' => '총 서로 다른 편집자 수',
+'pageinfo-recent-edits' => '최근 편집 수 (지난 $1일 이내)',
+'pageinfo-recent-authors' => '최근 기여자 수',
+'pageinfo-restriction' => '문서 보호 (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '매직 {{PLURAL:$1|워드}} ($1개)',
+'pageinfo-hidden-categories' => '숨은 {{PLURAL:$1|분류}} ($1개)',
+'pageinfo-templates' => '포함한 {{PLURAL:$1|틀}} ($1개)',
 
 # Skin names
 'skinname-standard' => '클래식',
@@ -3252,6 +3277,7 @@ $1',
 'file-info-size-pages' => '$1 × $2 픽셀, 파일 크기: $3, MIME 형식: $4, $5{{PLURAL:$5|쪽}}',
 'file-nohires' => '최대 해상도입니다.',
 'svg-long-desc' => 'SVG 파일, 실제 크기 $1 × $2 픽셀, 파일 크기: $3',
+'svg-long-desc-animated' => '애니메이션 SVG 파일, 실제 크기 $1 × $2 픽셀, 파일 크기: $3',
 'show-big-image' => '최대 해상도',
 'show-big-image-preview' => '미리 보기 크기: $1.',
 'show-big-image-other' => '다른 {{PLURAL:$2|해상도}}: $1.',
@@ -3261,6 +3287,8 @@ $1',
 'file-info-png-looped' => '반복됨',
 'file-info-png-repeat' => '$1번 재생됨',
 'file-info-png-frames' => '$1 프레임',
+'file-no-thumb-animation' => "'''참고: 기술적인 제한으로 인해 이 파일의 섬네일은 애니메이션을 지원하지 않습니다.'''",
+'file-no-thumb-animation-gif' => "'''참고: 기술적인 제한으로 인해 고해상도 GIF 그림 섬네일은 애니메이션을 지원하지 않습니다.'''",
 
 # Special:NewFiles
 'newimages' => '새 파일 목록',
@@ -3483,7 +3511,7 @@ Variants for Chinese language
 'exif-licenseurl' => '저작권 라이선스의 URL',
 'exif-morepermissionsurl' => '다른 라이선스 정보',
 'exif-attributionurl' => '이 저작물을 이용할 때 링크할 주소',
-'exif-preferredattributionname' => '이 저작물을 이용할 때 표시할 저작자 이름',
+'exif-preferredattributionname' => '이 저작물을 이용할 때 보일 저작자 이름',
 'exif-pngfilecomment' => 'PNG 파일 주석',
 'exif-disclaimer' => '면책 조항',
 'exif-contentwarning' => '콘텐츠 경고',
@@ -3850,24 +3878,24 @@ $5
 
 # Friendlier slave lag warnings
 'lag-warn-normal' => '최근 $1초 안에 바뀐 문서는 이 목록에서 빠졌을 수 있습니다.',
-'lag-warn-high' => '데이터베이스 서버의 과도한 부하 때문에 최근 $1초 안에 바뀐 문서 목록은 표시되지 않을 수 있습니다.',
+'lag-warn-high' => '데이터베이스 서버의 과도한 부하 때문에 최근 $1초 안에 바뀐 문서 목록은 보여지지 않을 수 있습니다.',
 
 # Watchlist editor
 'watchlistedit-numitems' => '토론 문서를 제외하고 문서 $1개를 주시하고 있습니다.',
 'watchlistedit-noitems' => '주시문서 목록이 비어 있습니다.',
 'watchlistedit-normal-title' => '주시문서 목록 편집하기',
 'watchlistedit-normal-legend' => '주시문서 목록에서 문서 제거하기',
-'watchlistedit-normal-explain' => "주시문서 목록에 있는 문서의 제목이 아래에 나열되어 있습니다.
-주시문서 목록에서 제거하려는 문서가 있으면, 각 항목의 체크박스를 선택한 다음 '{{int:Watchlistedit-normal-submit}}'를 클릭해주세요.
-또는 [[Special:EditWatchlist/raw|목록을 직접 편집]]할 수도 있습니다.",
+'watchlistedit-normal-explain' => '주시문서 목록에 있는 문서의 제목이 아래에 나열되어 있습니다.
+주시문서 목록에서 제거하려는 문서가 있으면, 각 항목의 체크박스를 선택한 다음 "{{int:Watchlistedit-normal-submit}}"를 클릭해주세요.
+또는 [[Special:EditWatchlist/raw|목록을 직접 편집]]할 수도 있습니다.',
 'watchlistedit-normal-submit' => '항목 삭제',
 'watchlistedit-normal-done' => '주시문서 목록에서 다음 {{PLURAL:$1|항목}}을 주시하지 않습니다:',
 'watchlistedit-raw-title' => '주시문서 목록 직접 편집하기',
 'watchlistedit-raw-legend' => '주시문서 목록 직접 편집하기',
-'watchlistedit-raw-explain' => "주시문서 목록의 각 항목이 나와 있습니다. 필요한 항목을 직접 추가하거나 제거할 수 있습니다.
+'watchlistedit-raw-explain' => '주시문서 목록의 각 항목이 나와 있습니다. 필요한 항목을 직접 추가하거나 제거할 수 있습니다.
 각 줄마다 하나의 제목을 입력하세요.
-수정을 마쳤다면 '{{int:Watchlistedit-raw-submit}}'을 누르면 됩니다.
-또는 [[Special:EditWatchlist|일반적인 편집기]]를 쓸 수도 있습니다.",
+수정을 마쳤다면 "{{int:Watchlistedit-raw-submit}}"을 누르면 됩니다.
+또는 [[Special:EditWatchlist|일반적인 편집기]]를 쓸 수도 있습니다.',
 'watchlistedit-raw-titles' => '목록:',
 'watchlistedit-raw-submit' => '주시문서 목록 새로 고침',
 'watchlistedit-raw-done' => '주시문서 목록을 새로 고쳤습니다.',
@@ -4018,21 +4046,21 @@ $5
 'htmlform-selectorother-other' => '기타',
 
 # SQLite database support
-'sqlite-has-fts' => '$1 (본문 전체 검색)',
-'sqlite-no-fts' => '$1 (본문은 검색에서 제외)',
+'sqlite-has-fts' => '$1 (본문 전체 찾기)',
+'sqlite-no-fts' => '$1 (본문은 찾기에서 제외)',
 
 # New logging system
 'logentry-delete-delete' => '$1 사용자가 $3 문서를 삭제하였습니다.',
 'logentry-delete-restore' => '$1 사용자가 $3 문서를 복구하였습니다.',
-'logentry-delete-event' => '$1 사용자가 $3의 기록 $5개에 대해 표시 설정을 바꾸었습니다: $4',
+'logentry-delete-event' => '$1 사용자가 $3의 기록 $5개에 대해 보이기 설정을 바꾸었습니다: $4',
 'logentry-delete-revision' => '$1 사용자가 $3 문서의 {{PLURAL:$5|$5개 편집}}의 설정을 바꾸었습니다: $4',
-'logentry-delete-event-legacy' => '$1 사용자가 $3 문서 기록의 표시 설정을 바꾸었습니다.',
-'logentry-delete-revision-legacy' => '$1 사용자가 $3 문서 편집의 표시 설정을 바꾸었습니다.',
+'logentry-delete-event-legacy' => '$1 사용자가 $3 문서 기록의 보이기 설정을 바꾸었습니다.',
+'logentry-delete-revision-legacy' => '$1 사용자가 $3 문서 편집의 보이기 설정을 바꾸었습니다.',
 'logentry-suppress-delete' => '$1 사용자가 $3 문서를 숨겼습니다.',
-'logentry-suppress-event' => '$1 사용자가 비공개적으로 $3의 {{PLURAL:$5|기록 $5개}}에 대해 표시 설정을 바꾸었습니다: $4',
-'logentry-suppress-revision' => '$1 사용자가 비공개적으로 $3 문서의 {{PLURAL:$5|판 $5개}}에 대해 표시 설정을 바꾸었습니다: $4',
-'logentry-suppress-event-legacy' => '$1 사용자가 비공개적으로 $3의 항목에 대한 표시 설정을 바꾸었습니다.',
-'logentry-suppress-revision-legacy' => '$1 사용자가 비공개적으로 $3 문서의 특정 판에 대한 표시 설정을 바꾸었습니다.',
+'logentry-suppress-event' => '$1 사용자가 비공개적으로 $3의 {{PLURAL:$5|기록 $5개}}에 대해 보이기 설정을 바꾸었습니다: $4',
+'logentry-suppress-revision' => '$1 사용자가 비공개적으로 $3 문서의 {{PLURAL:$5|판 $5개}}에 대해 보이기 설정을 바꾸었습니다: $4',
+'logentry-suppress-event-legacy' => '$1 사용자가 비공개적으로 $3의 항목에 대한 보이기 설정을 바꾸었습니다.',
+'logentry-suppress-revision-legacy' => '$1 사용자가 비공개적으로 $3 문서의 특정 판에 대한 보이기 설정을 바꾸었습니다.',
 'revdelete-content-hid' => '내용 숨겨짐',
 'revdelete-summary-hid' => '편집 요약 숨겨짐',
 'revdelete-uname-hid' => '사용자 이름 숨겨짐',
@@ -4050,7 +4078,7 @@ $5
 'logentry-newusers-newusers' => '$1 사용자가 계정을 만들었습니다.',
 'logentry-newusers-create' => '$1 사용자가 계정을 만들었습니다.',
 'logentry-newusers-create2' => '$1 사용자가 $3 계정을 만들었습니다.',
-'logentry-newusers-autocreate' => '$1 계정을 자동적으로 만들었습니다.',
+'logentry-newusers-autocreate' => '$1 사용자 계정을 자동적으로 만들었습니다.',
 'newuserlog-byemail' => '이메일로 보낸 비밀번호',
 
 # Feedback
index 90f2e7a..d457a15 100644 (file)
@@ -1347,9 +1347,9 @@ $1 {{PLURAL:$1|символдан|символладан}} кеб болургъ
 Алландан джюкленнген файлланы кёрюр неда излер ючюн [[Special:FileList|джюкленнген файлланы списогуна]] къарагъыз, (джангыдан) джюкленнгенле [[Special:Log/upload|джюклеу журналында]], кетерилгенле [[Special:Log/delete|кетериу журналында]] тутуладыла.
 
 Бетге файл салыр ючюн байлмыгъызда тюбюндеги формаларыны бирин хайырланыгъыз;
-* Файлны бютеу ёлчемини салыр ючюн: '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>'''
-* Сол къыйрда бир тёртгюл ичинде, тюбюндеда ангылатыуу бла, 200 пиксел ёлчеми бла хайырландырыргъа излей эсегиз: '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|тюбюнде ангылатыу]]</nowiki></tt>'''
-* Файлны кёргюзмей, файлгъа дижбиреиу берирге излей эсегиз: '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''",
+* Файлны бютеу ёлчемини салыр ючюн: '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>'''
+* Сол къыйрда бир тёртгюл ичинде, тюбюндеда ангылатыуу бла, 200 пиксел ёлчеми бла хайырландырыргъа излей эсегиз: '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|тюбюнде ангылатыу]]</nowiki></code>'''
+* Файлны кёргюзмей, файлгъа дижбиреиу берирге излей эсегиз: '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''",
 'upload-permitted' => 'Эркинлик берилген файлланы типлери: $1.',
 'upload-preferred' => 'Изленнген файлланы типлери: $1.',
 'upload-prohibited' => 'Джасакъ этилген файлланы типлери: $1.',
@@ -1392,21 +1392,21 @@ $1 {{PLURAL:$1|символдан|символладан}} кеб болургъ
 'large-file' => 'Файлланы $1 байтдан уллу болмасы изленеди (бу файлны ёлчеми $2)',
 'largefileserver' => 'Бу файл сервер эркинлик бергенден уллуду.',
 'emptyfile' => 'Джюклеген файлыгъыз бош кёрюнеди. Буну чуруму файлны атыны джазыуда халат болургъа болур. Файлны джюклерге излегенигизден ишексиз болугъуз.',
-'fileexists' => "Быллай атлы файл барды.
-Аны ауушдурурда аккылы эсегиз, алгъын '''<tt>[[:$1]]</tt>''' файлгъа кёз джетдиригиз.
-[[$1|thumb]]",
-'filepageexists' => "Бу файл ючюн ангылатыу бет '''<tt>[[:$1]]</tt>''' адресинде алайсызда барды, алай а бу атлы файл бусагъатда джокъду.
+'fileexists' => 'Быллай атлы файл барды.
+Аны ауушдурурда аккылы эсегиз, алгъын <strong>[[:$1]]</strong> файлгъа кёз джетдиригиз.
+[[$1|thumb]]',
+'filepageexists' => 'Бу файл ючюн ангылатыу бет <strong>[[:$1]]</strong> адресинде алайсызда барды, алай а бу атлы файл бусагъатда джокъду.
 Ангылатыуугъуз файлны ангылатыу бетинде чыгъарыкъ тюлдю.
 Джангы ангылтаыу къошар ючюн, буну къол бла тюрлендирирге керексиз.
-[[$1|thumb]]",
-'fileexists-extension' => "Ушаш аты бла башха файл барды: [[$2|thumb]]
-* Джюкленнген файлны аты: '''<tt>[[:$1]]</tt>'''
-* Бар болгъан файлны аты: '''<tt>[[:$2]]</tt>'''
-Башха ат сайларыгъыгъызны тилейбиз.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Ушаш аты бла башха файл барды: [[$2|thumb]]
+* Джюкленнген файлны аты: <strong>[[:$1]]</strong>
+* Бар болгъан файлны аты: <strong>[[:$2]]</strong>
+Башха ат сайларыгъыгъызны тилейбиз.',
 'fileexists-thumbnail-yes' => "Бу файл, гитче этилген весриягъа (миниатурагъа) ушайды ''(thumbnail)''. [[$1|thumb]]
-Тилейбиз '''<tt>[[:$1]]</tt>''' файлны контроль этигиз .
+Тилейбиз <strong>[[:$1]]</strong> файлны контроль этигиз .
 Контроль этилген файл бла оригинал бир эсе, айры аны гитче этилген версиясын джюклерге керек джокъду.",
-'file-thumbnail-no' => "Бу файлны аты '''<tt>$1</tt>''' бла башланады.
+'file-thumbnail-no' => "Бу файлны аты <strong>$1</strong> бла башланады.
 Бу башха суратны гитче этилген версиясына ушайды ''(thumbnail)''
 Сизде бу суратны толу версиясы бар эсе, аны джюклегиз неда файлны атын тюрлендиригиз.",
 'fileexists-forbidden' => 'Бу ат бла файл барды, эмда аны юсюне джазылылмайды.
@@ -1612,7 +1612,7 @@ URL-ни тюз , сайтны ачыкъ болгъанына ишексиз б
 
 # MIME search
 'mimesearch' => 'MIME бла излеу',
-'mimesearch-summary' => 'Бу бет, MIME типли файлланы сайларгъа мадар береди. Кириуню форматы: ичиндегини_типи/тюб_тип, сёз ючюн, <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Бу бет, MIME типли файлланы сайларгъа мадар береди. Кириуню форматы: ичиндегини_типи/тюб_тип, сёз ючюн, <code>image/jpeg</code>.',
 'mimetype' => 'MIME-типи:',
 'download' => 'джюкле',
 
@@ -1801,7 +1801,7 @@ URL-ни тюз , сайтны ачыкъ болгъанына ишексиз б
 'linksearch-ok' => 'Таб',
 'linksearch-text' => '<code>*.wikipedia.org</code> кибик символлла хайырландырыргъа боллукъдула.
 Эм азы бла огъары дараджаны домени керекди, юлгюге: <code>*.org</code><br />
-Дагъан болгъан протоколла: <tt>$1</tt> (быладан къайсысында излеуюгюзге къошмагъыз)',
+Дагъан болгъан протоколла: <code>$1</code> (быладан къайсысында излеуюгюзге къошмагъыз)',
 'linksearch-line' => '$1-ге  $2-ден джибериу берилгенди',
 'linksearch-error' => 'Джокерле къуру адреслени аллында хайырланыргъа боллукъдула.',
 
@@ -1834,8 +1834,8 @@ URL-ни тюз , сайтны ачыкъ болгъанына ишексиз б
 'listgrouprights-rights' => 'Хакъла',
 'listgrouprights-helppage' => 'Help:Къауумланы хакълары',
 'listgrouprights-members' => '(къауумну тизмеси)',
-'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <tt>($2)</tt></span>',
-'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <tt>($2)</tt></span>',
+'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <code>($2)</code></span>',
+'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <code>($2)</code></span>',
 'listgrouprights-addgroup' => '{{PLURAL:$2|Къауум|Къауум}} къошаргъа боллукъду: $1',
 'listgrouprights-removegroup' => 'бу {{PLURAL:$2|къауумдан|къауумладан}} къыстаргъа боллукъду: $1',
 'listgrouprights-addgroup-all' => 'Бютеу къауумлагъа къошаргъа боллукъду',
@@ -2583,10 +2583,6 @@ MediaWiki локализациясына юлюш къошаргъа излей
 # Info page
 'pageinfo-title' => '«$1» бетни юсюнден информация',
 'pageinfo-header-edits' => 'Тюрлендириуле',
-'pageinfo-header-watchlist' => 'Кёзде тургъан тизме',
-'pageinfo-header-views' => 'Къараула',
-'pageinfo-subjectpage' => 'Бет',
-'pageinfo-talkpage' => 'Сюзюу бет',
 'pageinfo-watchers' => 'Кёргенлени саны',
 'pageinfo-edits' => 'Тюрлендириулени саны',
 'pageinfo-authors' => 'Авторланы саны',
index 6cb5a42..66fe9b1 100644 (file)
@@ -1766,25 +1766,25 @@ hallde deiht, wat nit erlaub, un müjjelelscherwies ene jefährlesche Dattei-Typ
 'largefileserver' => 'De Datei es ze jroß. Jrößer wie däm ẞööver sing Enstellung erlaub.',
 'emptyfile' => 'Wat De hee jetz huhjelade häs, hät kein Daate dren jehatt. Künnt sin, dat De Dich verdon häs, un dä Name wo verkihrt jeschrevve. Luur ens ov De wirklich <strong>die</strong> Datei hee huhlade wells.',
 'windows-nonascii-filename' => 'Heh dat Wiki löht kein Datteiname met Sönderzeische zoh.',
-'fileexists' => "Et jitt ald en Datei met däm Name.
+'fileexists' => 'Et jitt ald en Datei met däm Name.
 Wann De op „Datei avspeichere“ klicks, weed se ersetz.
-Bes esu jod  un luur Der '''<tt>[[:$1]]</tt>''' aan, wann De nit 100% secher bes.
-[[$1|thumb]]",
-'filepageexists' => "En Sigg övver di Datei met däm Tittel '''<tt>[[:$1]]</tt>''' es ald doh, ävver en Datei met däm Name ham_mer nit. Dinge Tex kütt nit automattesch op di Sigg övver di Dattei. Di Sigg moß De wann nüüdesch noch ens extra ändere.
-[[$1|thumb]]",
-'fileexists-extension' => "Mer han ald en Dattei, di bahl jenou esu heijß: [[$2|thumb]]
-* Huh am laade sim_mer: '''<tt>[[:$1]]</tt>'''
-* Ald om ßörve eß:</td><td>'''<tt>[[:$2]]</tt>'''
-Bes esu joot, un söök Der ene ander Name fö di Datei us.",
-'fileexists-thumbnail-yes' => "Dat süühd uß, wi wann dat hee en Minni-Beldsche em Breefmarrke-Fommaat (''<span lang=\"en\">thumbnail</span>'') wöhr. [[\$1|thumb]]
-Don ens di Dattei '''<tt>[[:\$1]]</tt>''' prööfe.
-Wann dat de Orjinaaljrüß es, do moß keij för dat Beld keij extra Vör-Aansich huhjelade wäde.",
-'file-thumbnail-no' => "Dä Name fö di Datei fängk met '''<tt>\$1</tt>''' aan.
+Bes esu jod  un luur Der <strong>[[:$1]]</strong> aan, wann De nit 100% secher bes.
+[[$1|thumb]]',
+'filepageexists' => 'En Sigg övver di Datei met däm Tittel <strong>[[:$1]]</strong> es ald doh, ävver en Datei met däm Name ham_mer nit. Dinge Tex kütt nit automattesch op di Sigg övver di Dattei. Di Sigg moß De wann nüüdesch noch ens extra ändere.
+[[$1|thumb]]',
+'fileexists-extension' => 'Mer han ald en Dattei, di bahl jenou esu heijß: [[$2|thumb]]
+* Huh am laade sim_mer: <strong>[[:$1]]</strong>
+* Ald om ßörve eß:</td><td><strong>[[:$2]]</strong>
+Bes esu joot, un söök Der ene ander Name fö di Datei us.',
+'fileexists-thumbnail-yes' => 'Dat süühd uß, wi wann dat hee en Minni-Beldsche em Breefmarrke-Fommaat (\'\'<span lang="en">thumbnail</span>\'\') wöhr. [[$1|thumb]]
+Don ens di Dattei <strong>[[:$1]]</strong> prööfe.
+Wann dat de Orjinaaljrüß es, do moß keij för dat Beld keij extra Vör-Aansich huhjelade wäde.',
+'file-thumbnail-no' => 'Dä Name fö di Datei fängk met <strong>$1</strong> aan.
 Dat süühd uß, wi wann dat en Minni-Beldsche em Breefmarrke-Fommaat
-(''<span lang=\"en\">thumbnail</span>'') wöhr. Don ens di Dattei
-'''<tt>\$1</tt>''' prööfe, of de nit e besser opjelööß Beld
+(\'\'<span lang="en">thumbnail</span>\'\') wöhr. Don ens di Dattei
+<strong>$1</strong> prööfe, of de nit e besser opjelööß Beld
 dofun häß, un don dat met singe Orjinaaljrüß huhlade, wann müjjelesch.
-Söns donn besser ene andere Dateiname ußsöke.",
+Söns donn besser ene andere Dateiname ußsöke.',
 'fileexists-forbidden' => 'Et jitt ald en Dattei met däm Name, un mer kann se nit övverschriive.
 Wann de Ding Dattei trozdämm huhlaade wells, da jangk zeröck un lad se
 unger enem andere Name huh. [[File:$1|thumb|center|$1]]',
@@ -2287,9 +2287,9 @@ eins vun all däm op eimol.',
 'linksearch-ok' => 'Söhke',
 'linksearch-text' => 'Di {{int:nstab-special}} heh mäd_et müjjelesch noh Sigge ze söke, woh beshtemmpte Links op Websigge dren enthallde sin.
 
-Beim Söke künnd_Er Schtäänsche aanjevve för e Schtöcksche fun ennem Name, wo mer nit jenou weiß, wi et heiß udder wat me nit kenne deit,  zem Beishpöll esu: <tt>http://*.example.com</tt> un ene bövverschte Name för en Domain moß aanjejovve sin, zem Beishpöll esu: <tt>http://*.org</tt
+Beim Söke künnd_Er Schtäänsche aanjevve för e Schtöcksche fun ennem Name, wo mer nit jenou weiß, wi et heiß udder wat me nit kenne deit,  zem Beishpöll esu: <code>http://*.example.com</code> un ene bövverschte Name för en Domain moß aanjejovve sin, zem Beishpöll esu: <code>http://*.org</code
 
-De Brauserprotokolle, di beim Söke aanjejovve wäde künne, sen: <tt>$1</tt>es',
+De Brauserprotokolle, di beim Söke aanjejovve wäde künne, sen: <code>$1</code>es',
 'linksearch-line' => '„$2“ hät ene Link op $1',
 'linksearch-error' => 'Shternshe kam_mer nor aam Aanfang fum Domain-Name bruche.',
 
@@ -3180,15 +3180,10 @@ Esu kam_mer noch en Aanmerkung en „{{int:summary}}“ maache.',
 # Info page
 'pageinfo-title' => 'Övver di Sigg: „$1“',
 'pageinfo-header-edits' => 'De Änderonge',
-'pageinfo-header-watchlist' => 'De Oppassleß',
-'pageinfo-header-views' => 'De Affroofe',
-'pageinfo-subjectpage' => 'För de Sigg selver',
-'pageinfo-talkpage' => 'För de Klaafsigg',
+'pageinfo-views' => 'De Aanzahl Affroofe',
 'pageinfo-watchers' => 'De Aanzahl Oppaßer',
 'pageinfo-edits' => 'De Aanzahl Änderonge',
 'pageinfo-authors' => 'De Aanzahl ongerscheidlije Schriever',
-'pageinfo-views' => 'De Aanzahl Affroofe',
-'pageinfo-viewsperedit' => 'De Aanzahl Affroofe pro Änderong',
 
 # Skin names
 'skinname-standard' => 'Klassesch',
index 8f8a42b..47e7f57 100644 (file)
@@ -1092,16 +1092,16 @@ Format {{PLURAL:$3|yê tê|yên tên}} xwestin {{PLURAL:$3|ev e|ev in}}: $2.',
 'unknown-error' => 'Çewtiyeke nenas pêk hat.',
 'large-file' => 'Mezinbûna pelê bila ji $1 ne mezintir be; ev pel $2 e.',
 'emptyfile' => "Data'ya barkirî vala ye. Sedemê valabûnê belkî şaşnivîsek di navê data'yê da ye. Xêra xwe seke, ku tu rast dixazê vê data'yê barbikê.",
-'fileexists' => "Datayek bi vê navê berê heye.
+'fileexists' => 'Datayek bi vê navê berê heye.
 Eger tu niha li „Tomarbike“ xê, ew wêneyê kevin ê here û wêneyê te ê were barkirin di bin wê navê.
-Di bin '''<tt>[[:$1]]</tt>''' du dikarî sekê, ku di dixwazê wê wêneyê biguherînê.
+Di bin <strong>[[:$1]]</strong> du dikarî sekê, ku di dixwazê wê wêneyê biguherînê.
 Eger tu naxazê, xêra xwe li „Betal“ xe.
-[[$1|thumb]]",
-'fileexists-extension' => "Datayek wek vê navê berê heye: [[$2|thumb]]
-* Navî datayê yê tê barkirin: '''<tt>[[:$1]]</tt>'''
-* Navî datayê yê berê heyê: '''<tt>[[:$2]]</tt>'''
-Xêra xwe navekî din bibîne.",
-'file-thumbnail-no' => "Navî vê datayê bi '''<tt>$1</tt>''' destpêdike. Ev dibêje ku ev wêneyekî çûçik e ''(thumbnail)''. Xêra xwe seke, ku belkî versyonekî mezin yê vê wêneyê li cem te heye û wê wêneyê mezintir di bin navî orîjînal da barbike.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Datayek wek vê navê berê heye: [[$2|thumb]]
+* Navî datayê yê tê barkirin: <strong>[[:$1]]</strong>
+* Navî datayê yê berê heyê: <strong>[[:$2]]</strong>
+Xêra xwe navekî din bibîne.',
+'file-thumbnail-no' => "Navî vê datayê bi <strong>$1</strong> destpêdike. Ev dibêje ku ev wêneyekî çûçik e ''(thumbnail)''. Xêra xwe seke, ku belkî versyonekî mezin yê vê wêneyê li cem te heye û wê wêneyê mezintir di bin navî orîjînal da barbike.",
 'fileexists-forbidden' => 'Medyayek bi vê navî heye; xêra xwe şonda here û vê medyayê bi navekî din barbike.
 [[File:$1|thumb|center|$1]]',
 'uploadwarning' => 'Hişyariya barkirinê',
@@ -1856,13 +1856,9 @@ Ji ber ku girêdaneke derve di wê rûpelê de heye ev pirsgirêk pêk hat.',
 
 # Info page
 'pageinfo-header-edits' => 'Guherandin',
-'pageinfo-header-watchlist' => 'Lîsteya şopandinê',
-'pageinfo-header-views' => 'Dîtin',
-'pageinfo-subjectpage' => 'Rûpel',
-'pageinfo-talkpage' => 'Rûpela gotûbêjê',
+'pageinfo-views' => 'Hejmara dîtinê',
 'pageinfo-watchers' => 'Hejmara kesên dişopînin',
 'pageinfo-edits' => 'Hejmara guherandinan',
-'pageinfo-views' => 'Hejmara dîtinê',
 
 # Patrolling
 'markaspatrolleddiff' => 'Wek serrastkirî nîşan bide',
index 23449c3..5a877bc 100644 (file)
@@ -1123,9 +1123,9 @@ Si vis id dare, opera tua tibi ascribentur.',
 Ut fasciculos antea impositos videas aut quaeras, adi ad [[Special:FileList|indicem fasciculorum impositorum]]. Fasciculi impositi et deleti quoque in [[Special:Log/upload|notatione fasciculorum impositorum]] notantur.
 
 Ad fasciculum in pagina includendum, utere nexu:
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fasciculus.jpg]]</nowiki></tt>''' aut
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fasciculus.png|verba alia]]</nowiki></tt>''' aut
-*'''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fasciculus.ogg]]</nowiki></tt>''' pro nexum ad fasciculum directum.",
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fasciculus.jpg]]</nowiki></code>''' aut
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fasciculus.png|verba alia]]</nowiki></code>''' aut
+*'''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fasciculus.ogg]]</nowiki></code>''' pro nexum ad fasciculum directum.",
 'upload-permitted' => 'Genera fasciculorum licita: $1.',
 'upload-preferred' => 'Genera fasciculorum suasa: $1.',
 'upload-prohibited' => 'Typi fasciculorum vetiti: $1.',
@@ -1557,6 +1557,8 @@ Adfirma quaesumus te paginam re vera delere velle, te consequentias intellere, e
 'rollback' => 'Reverti mutationes',
 'rollback_short' => 'Reverti',
 'rollbacklink' => 'reverti',
+'rollbacklinkcount' => 'reverti {{PLURAL:$1|unam recensionem|$1 recensiones}}',
+'rollbacklinkcount-morethan' => 'reverti plus quam {{PLURAL:$1|unam recensionem|$1 recensiones}}',
 'rollbackfailed' => 'Reversum defecit',
 'cantrollback' => 'Haec non potest reverti; conlator proximus solus auctor huius rei est.',
 'alreadyrolled' => 'Ad emendationem proximam paginae [[:$1]] ab usore [[User:$2|$2]] ([[User talk:$2|Disputatio]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) reverti non potest; alius paginam iam recensuit vel revertit.
index 543fbe5..a70bc6d 100644 (file)
@@ -498,9 +498,9 @@ All Spezialsäiten déi et gëtt, sinn op der [[Special:SpecialPages|Lëscht vun
 'dberrortext' => 'En Datebank Syntax Feeler ass opgetrueden.
 Dëst kann op e Feeler an der Software hiweisen.
 De leschte versichten Datebank Query war:
-<blockquote><tt>$1</tt></blockquote>
-vun der Funktioun "<tt>$2</tt>".
-D\'Datebank huet de Feeler "<tt>$3: $4</tt>" gemellt.',
+<blockquote><code>$1</code></blockquote>
+vun der Funktioun "<code>$2</code>".
+D\'Datebank huet de Feeler "<samp>$3: $4</samp>" gemellt.',
 'dberrortextcl' => 'En Datebank Syntax Feeler ass opgetrueden.
 De leschten Datebank Query war:
 "$1"
@@ -836,7 +836,6 @@ Déi lescht Entrée am Logbuch vun de Späre steet als Referenz hei drënner:',
 * '''Firefox / Safari:''' Halt ''Shift'' während Dir ''Reload'' klickt oder dréckt entweder ''Ctrl-F5'' oder ''Ctrl-R'' (''⌘-R'' op engem Mac);
 * '''Google Chrome:''' Dréckt ''Ctrl-Shift-R'' (''⌘-Shift-R'' op engem Mac)
 * '''Internet Explorer:''' dréckt ''Ctrl'' während Dir op ''Refresh'' klickt oder dréckt ''Ctrl-F5.''
-* '''Konqueror:''' klickt  ''Reload'' oder dréckt ''F5'' 
 * '''Opera:''' maacht de Cache eidel an ''Tools → Preferences;''",
 'usercssyoucanpreview' => "'''Tipp:''' Benotzt de \"{{int:showpreview}}\"-Knäppchen, fir Ären neien CSS virum Späicheren ze testen.",
 'userjsyoucanpreview' => "'''Tipp:''' Benotzt de ''{{int:showpreview}}''-Knäppchen, fir Ären neie JavaScript virum Späicheren ze testen.",
@@ -1540,9 +1539,9 @@ Hei fannt Dir en Extrait aus dem Läsch- a Réckel-Logbuch fir dëse Fichier.",
 Gitt op d'[[Special:FileList|Lëscht vun den eropgeluedene Fichieren]], fir no Fichieren ze sichen déi virdrun eropgeluede goufen, Eropluedunge fannt dir an der [[Special:Log/upload|Lëscht vun den eropgeluedene Fichieren]], geläschte Fichieren am [[Special:Log/delete|Läschlog]].
 
 Fir e '''Bild''' op enger Säit zu benotzen, schreift amplaz vum Bild eng vun dëse Formelen:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fichier.jpg]]</nowiki></tt>''' fir déi ganz Versioun vum Fichier ze benotzen
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fichier.png|200px|thumb|left|alt text]]</nowiki></tt>''' fir eng 200 Pixel breet Versioun an enger Këscht am lénke Rand mat 'alt text' als Beschreiwung
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fichier.ogg]]</nowiki></tt>''' fir e Fichier direkt ze verlinken ouni de Fichier ze weisen",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fichier.jpg]]</nowiki></code>''' fir déi ganz Versioun vum Fichier ze benotzen
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fichier.png|200px|thumb|left|alt text]]</nowiki></code>''' fir eng 200 Pixel breet Versioun an enger Këscht am lénke Rand mat 'alt text' als Beschreiwung
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fichier.ogg]]</nowiki></code>''' fir e Fichier direkt ze verlinken ouni de Fichier ze weisen",
 'upload-permitted' => 'Erlaabte Formater vun de Fichieren: $1.',
 'upload-preferred' => 'Fichierszorten déi am beschte funktionéieren: $1.',
 'upload-prohibited' => 'Verbuede Fichiers Formater: $1.',
@@ -1586,22 +1585,22 @@ Erlaabt {{PLURAL:$3|ass|sinn}}: $2.',
 'largefileserver' => 'Dëse Fichier ass méi grouss wéi déi um Server agestallte Maximalgréisst.',
 'emptyfile' => 'De Fichier deen Dir eropgelueden hutt, schéngt eidel ze sinn. Dëst kann duerch en Tippfeeler am Numm vum Fichier kommen. Préift w.e.g. no, op Dir dëse Fichier wierklech eropluede wëllt.',
 'windows-nonascii-filename' => "Dës Wiki ënnerstëtzt d'Spezialzeechen an de Fichiersnimm net.",
-'fileexists' => "Et gëtt schonn e Fichier mat dësem Numm, kuckt w.e.g.
-'''<tt>[[:$1]]</tt>''' wann Dir net sécher sidd, ob Dir den Numm ännere wëllt.
-[[$1|thumb]]",
-'filepageexists' => "D'Beschreiwungssäit fir dëse Fichier gouf schonns als '''<tt>[[:$1]]</tt>''' ugeluecht, et gëtt awer kee Fichier mat deem Numm.
+'fileexists' => 'Et gëtt schonn e Fichier mat dësem Numm, kuckt w.e.g.
+<strong>[[:$1]]</strong> wann Dir net sécher sidd, ob Dir den Numm ännere wëllt.
+[[$1|thumb]]',
+'filepageexists' => "D'Beschreiwungssäit fir dëse Fichier gouf schonns als <strong>[[:$1]]</strong> ugeluecht, et gëtt awer kee Fichier mat deem Numm.
 
 De Resumé deen Dir agitt, gëtt net op d'Beschreiwungssäit iwwerholl.
 Fir datt äre Resumé do opdaucht musst Dir e manuell änneren.
 [[$1|thumb]]",
-'fileexists-extension' => "E Fichier mat engem ähnlechen Numm gëtt et schonn: [[$2|thumb]]
-* Numm vum Fichier deen Dir versicht eropzelueden: '''<tt>[[:$1]]</tt>'''
-* Numm vum Fichier deen et scho gëtt: '''<tt>[[:$2]]</tt>'''
-Wielt w.e.g. en aneren Numm.",
+'fileexists-extension' => 'E Fichier mat engem ähnlechen Numm gëtt et schonn: [[$2|thumb]]
+* Numm vum Fichier deen Dir versicht eropzelueden: <strong>[[:$1]]</strong>
+* Numm vum Fichier deen et scho gëtt: <strong>[[:$2]]</strong>
+Wielt w.e.g. en aneren Numm.',
 'fileexists-thumbnail-yes' => "Beim Fichier schéngt et sech ëm e klengt Bild ''(Miniatur)'' ze handelen. [[$1|thumb]]
-Kuckt de Fichier '''<tt>[[:$1]]</tt>''' w.e.g. no.
+Kuckt de Fichier <strong>[[:$1]]</strong> w.e.g. no.
 Wann et sech ëm d'Bild an der Originalgréisst handelt, da brauch kee separat Bild als Minitaur eropgelueden ze ginn.",
-'file-thumbnail-no' => "Den Numm vum Fichier fänkt mat '''<tt>$1</tt>''' un.
+'file-thumbnail-no' => "Den Numm vum Fichier fänkt mat <strong>$1</strong> un.
 Da deit drop hin datt et eng Minitaur ''(thumbnail)'' ass.
 Wann Dir dat Bild a méi enger grousser Opléisung hutt, da luet dëst erop, soss ännert den Numm vum Fichier w.e.g.",
 'fileexists-forbidden' => 'Et gëtt schonn e Fichier mat dësem Numm an dee kann net iwwerschriwwe ginn.
@@ -1837,7 +1836,7 @@ Dir kënnt seng Beschreiwung op senger [$2 Beschreiwungssäit] änneren.',
 # MIME search
 'mimesearch' => 'No MIME-Zort sichen',
 'mimesearch-summary' => "Op dëser Spezialsäit kënnen d'Fichieren no hirem MIME-Typ gefiltert ginn.
-Dir musst ëmmer de Medien- a Subtyp aginn: z. Bsp. <tt>image/jpeg</tt>.",
+Dir musst ëmmer de Medien- a Subtyp aginn: z. Bsp. <code>image/jpeg</code>.",
 'mimetype' => 'MIME-Typ:',
 'download' => 'eroflueden',
 
@@ -1910,6 +1909,7 @@ An all Rei sti Linken zur éischter an zweeter Viruleedung, souwéi d\'Zil vun d
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|Byte|Byten}}',
 'ncategories' => '$1 {{PLURAL:$1|Kategorie|Kategorien}}',
+'ninterwikis' => '$1 {{PLURAL:$1|Interwiki-Link|Interwiki-Linken}}',
 'nlinks' => '$1 {{PLURAL:$1|Link|Linken}}',
 'nmembers' => '$1 {{PLURAL:$1|Member|Memberen}}',
 'nrevisions' => '$1 {{PLURAL:$1|Versioun|Versiounen}}',
@@ -1937,6 +1937,7 @@ An all Rei sti Linken zur éischter an zweeter Viruleedung, souwéi d\'Zil vun d
 'mostlinkedtemplates' => 'Dacks benotzte Schablounen',
 'mostcategories' => 'Säite mat de meeschte Kategorien',
 'mostimages' => 'Dacks benotzte Biller',
+'mostinterwikis' => 'Säite mat de meeschten Interwikilinken',
 'mostrevisions' => 'Säite mat de meeschte Versiounen',
 'prefixindex' => 'All Säite mat Prefix',
 'prefixindex-namespace' => 'All Säite mat Prefix (Nummraum $1)',
@@ -2033,9 +2034,9 @@ Kuckt och [[Special:WantedCategories|Gewënscht Kategorien]].',
 'linksearch-pat' => 'Sich-Critère:',
 'linksearch-ns' => 'Nummraum:',
 'linksearch-ok' => 'Sichen',
-'linksearch-text' => 'Sougennante "Wildcards" wéi zum Beispill <tt>*.example.com</tt> kënne benotzt ginn.
+'linksearch-text' => 'Sougennante "Wildcards" wéi zum Beispill <code>*.example.com</code> kënne benotzt ginn.
 Et muss mindestens en Top-Level-Domaine ugi ginn, wéi z. Bsp. ".org".<br />
-Ënnerstëtzte Protekoller: <tt>$1</tt>',
+Ënnerstëtzte Protekoller: <code>$1</code>',
 'linksearch-line' => '$1 verlinkt vun $2',
 'linksearch-error' => 'Wildcards (*,?) kënnen nëmmen am Ufank vum Host-Numm benotzt ginn.',
 
@@ -2753,6 +2754,7 @@ Späichert en op Ärem Computer of a luet en hei nees erop.',
 'import-error-interwiki' => 'D\'Säit  "$1" gouf net importéiert well deen Numm fir extern Linken (Interwiki) reservéiert ass.',
 'import-error-special' => 'D\'Säit "$1" gouf net importéiert well se zu engem speziellen Nummraum gehéiert an deem et keng Säite gëtt.',
 'import-error-invalid' => 'D\'Säit "$1" gouf net importéiert well hiren Numm net valabel ass.',
+'import-options-wrong' => 'Falsch {{PLURAL:$2|Optioun|Optiounen}}: <nowiki>$1</nowiki>',
 
 # Import log
 'importlogpage' => 'Lëscht vun den Säitenimporten',
@@ -2882,15 +2884,10 @@ Dëst warscheinlech duerch en externe Link den op der schwaarzer Lëscht (blackl
 # Info page
 'pageinfo-title' => 'Informatioun iwwer "$1"',
 'pageinfo-header-edits' => 'Ännerungen',
-'pageinfo-header-watchlist' => 'Iwwerwaachungslëscht',
-'pageinfo-header-views' => 'Affichagen',
-'pageinfo-subjectpage' => 'Säit',
-'pageinfo-talkpage' => 'Diskussiounssäit',
+'pageinfo-views' => 'Zuel vun de Kéieren déi dës Säit gekuckt gouf',
 'pageinfo-watchers' => 'Zuel vun de Benotzer déi iwwerwaachen',
 'pageinfo-edits' => 'Zuel vun den Ännerungen',
 'pageinfo-authors' => 'Zuel vun de verschiddenen Auteuren',
-'pageinfo-views' => 'Zuel vun de Kéieren déi dës Säit gekuckt gouf',
-'pageinfo-viewsperedit' => 'Affichage pro Ännerung',
 
 # Skin names
 'skinname-standard' => 'Klassesch',
index f6103f8..ffe54c2 100644 (file)
@@ -1189,12 +1189,8 @@ $messages = array(
 
 # Info page
 'pageinfo-header-edits' => 'Дуьзар хъувун',
-'pageinfo-header-watchlist' => 'Гуьзетунин сиягь',
-'pageinfo-header-views' => 'Килигунар',
-'pageinfo-subjectpage' => 'Ччин',
-'pageinfo-talkpage' => 'Веревирдрин ччин',
-'pageinfo-edits' => 'Дьузар хъувунрин кьадар',
 'pageinfo-views' => 'Килигунрин кьадар',
+'pageinfo-edits' => 'Дьузар хъувунрин кьадар',
 
 # Browsing diffs
 'previousdiff' => 'Вилик алатай дуьзар хъувун',
index f33e1f2..2487b54 100644 (file)
@@ -1569,18 +1569,18 @@ Aangeweze {{PLURAL:\$3|bestandjstype|bestandjstypes}}zeen \$2.",
 'largefileserver' => "'t Bestandj is groter dan de instelling van de server toestuit.",
 'emptyfile' => "'t Besjtand wats re höbs geupload is laeg. Dit kump waorsjienliek door 'n typfout in de besjtandsnaom. Kiek estebleef ofs te dit besjtand wirkelik wils uploade.",
 'windows-nonascii-filename' => 'Deze wiki ongersteunt gein bestandjsname mit speciaal teikes.',
-'fileexists' => "D'r is al e besjtand mit dees naam, bekiek '''<tt>[[:$1]]</tt>''' of se dat besjtand mesjien wils vervange.
+'fileexists' => "D'r is al e besjtand mit dees naam, bekiek <strong>[[:$1]]</strong> of se dat besjtand mesjien wils vervange.
 [[$1|thumb]]",
-'filepageexists' => "De besjrievingspagina veur dit besjtand besjteit al op '''<tt>[[:$1]]</tt>''', meh d'r besjteit gein besjtand mit deze naam. De samevatting dies te höbs opgegaeve zal neet op de besjrievingspagina versjiene. Bewirk de pagina handjmaotig óm dien besjrieving dao te tuine.
+'filepageexists' => "De besjrievingspagina veur dit besjtand besjteit al op <strong>[[:$1]]</strong>, meh d'r besjteit gein besjtand mit deze naam. De samevatting dies te höbs opgegaeve zal neet op de besjrievingspagina versjiene. Bewirk de pagina handjmaotig óm dien besjrieving dao te tuine.
 [[$1|thumb]]",
 'fileexists-extension' => "'n bestand met dezelfde naam bestuit al: [[$2|thumb]]
-* Naam van 't geüploade bestand: '''<tt>[[:$1]]</tt>'''
-* Naam van 't bestaonde bestand: '''<tt>[[:$2]]</tt>'''
+* Naam van 't geüploade bestand: <strong>[[:$1]]</strong>
+* Naam van 't bestaonde bestand: <strong>[[:$2]]</strong>
 Lèver 'ne angere naam te keze.",
 'fileexists-thumbnail-yes' => "'t Liek 'n afbeilding van 'n verkleinde grootte te zeen ''(thumbnail)''. [[$1|thumb]]
-Lèver 't bestand '''<tt>[[:$1]]</tt>''' te controlere.
+Lèver 't bestand <strong>[[:$1]]</strong> te controlere.
 Es 't gecontroleerde bestand dezelfde afbeilding van oorspronkelike grootte is, is 't neet noodzakelik 'ne extra thumbnail te uploade.",
-'file-thumbnail-no' => "De bestandsnaam begint met '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "De bestandsnaam begint met <strong>$1</strong>.
 't Liek 'n verkleinde afbeelding te zeen ''(thumbnail)''.
 Esse deze afbeelding in volledige resolutie höbs, upload dae afbeelding den. Wiezig anges estebleef de bestandsnaam.",
 'fileexists-forbidden' => "d'r Besteit al 'n bestand met deze naam det neet kin waere euevergesjreve. Upload dien bestand onger 'ne angere naam.
@@ -1822,7 +1822,7 @@ De [$2 pagina mit de besjtandjsbesjrieving] wurt hiejónger weergegaeve.',
 
 # MIME search
 'mimesearch' => 'Zeuk op MIME-type',
-'mimesearch-summary' => "Deze pagina maak het filtere van bestenj veur 't MIME-type meugelik. Inveur: contenttype/subtype, bv <tt>image/jpeg</tt>.",
+'mimesearch-summary' => "Deze pagina maak het filtere van bestenj veur 't MIME-type meugelik. Inveur: contenttype/subtype, bv <code>image/jpeg</code>.",
 'mimetype' => 'MIME-type:',
 'download' => 'Downloade',
 
@@ -2024,7 +2024,7 @@ Zuuch ouch [[Special:WantedCategories|neet-bestaondje categorieë mit verwiezing
 'linksearch-ok' => 'Zeuk',
 'linksearch-text' => 'Wildcards wie "*.wikipedia.org" of "*.org" zeen toegestaon.
 Haet mèndestes e toepleveldomein, wie beveurbeildj "*.org".<br />
-Óngerstäönendje protocolle: <tt>$1</tt> (veug dees neet tou in dien zeukópdrach).',
+Óngerstäönendje protocolle: <code>$1</code> (veug dees neet tou in dien zeukópdrach).',
 'linksearch-line' => '$1 gelink vanaaf $2',
 'linksearch-error' => 'Wildcards zijn alleen toegestaan aan het begin van een hostnaam.',
 
@@ -2837,15 +2837,10 @@ Meistal wörd dit door 'ne zwarte externe link veroorzaak.",
 # Info page
 'pageinfo-title' => 'Informatie euver "$1"',
 'pageinfo-header-edits' => 'Bewirk',
-'pageinfo-header-watchlist' => 'Volglies',
-'pageinfo-header-views' => 'Weergave',
-'pageinfo-subjectpage' => 'Pagina',
-'pageinfo-talkpage' => 'Euverlègkpazjena',
+'pageinfo-views' => 'Aantal waergave',
 'pageinfo-watchers' => 'Aantal volgers',
 'pageinfo-edits' => 'Aantal bewèrkinge',
 'pageinfo-authors' => 'Aantal versjillende sjrievers',
-'pageinfo-views' => 'Aantal waergave',
-'pageinfo-viewsperedit' => 'Weergave per bewerking',
 
 # Skin names
 'skinname-standard' => 'Standaard',
index 8d0a9cd..04cfd83 100644 (file)
@@ -712,7 +712,7 @@ E pàgine che t'æ in oservaçion inti [[Special:Watchlist|oservæ speciâli]] s
 'filesource' => 'Reixe:',
 'uploadedfiles' => 'Papê caregæ',
 'badfilename' => 'O nomme do papê o l\'è stæto cangioö in "$1".',
-'fileexists' => "Un papê co sto nomme o existe de zà, pe piaxei da unn'euggiâ a '''<tt>[[:$1]]</tt>''' se non ti tei seguo de voleilo cangiâ.
+'fileexists' => "Un papê co sto nomme o existe de zà, pe piaxei da unn'euggiâ a <strong>[[:$1]]</strong> se non ti tei seguo de voleilo cangiâ.
 [[$1|thumb]]",
 'fileexists-forbidden' => 'Un papê co sto nomme o existe de zà, pe piaxei vanni in derrê e carega sto papê co un ätro nomme. [[File:$1|thumb|center|$1]]',
 'savefile' => 'Sarva o papê',
index dfa1e33..f7a8728 100644 (file)
@@ -1549,9 +1549,9 @@ Jūsų patogumui pateiktas įrašas apie šio puslapio trynimą ar pervadinimą:
 Norėdami peržiūrėti ar ieškoti anksčiau įkeltų paveikslėlių, eikite į [[Special:FileList|įkeltų failų sąrašą]], įkėlimai yra registruojami [[Special:Log/upload|įkėlimų sąraše]], trynimai — [[Special:Log/delete|trynimų sąraše]].
 
 Norėdami panaudoti įkeltą failą puslapyje, naudokite tokias nuorodas:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Failas.jpg]]</nowiki></tt>''' norėdami naudoti pilną failo versiją
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Failas.png|200px|thumb|left|alternatyvusis tekstas]]</nowiki></tt>''' norėdami naudoti 200 pikselių pločio paveikslėlį rėmelyje puslapio kairėje; „alternatyvus tekstas“ bus naudojamas paveikslėlio aprašymui.
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Failas.ogg]]</nowiki></tt>''' tiesioginei nuorodai į failą.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Failas.jpg]]</nowiki></code>''' norėdami naudoti pilną failo versiją
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Failas.png|200px|thumb|left|alternatyvusis tekstas]]</nowiki></code>''' norėdami naudoti 200 pikselių pločio paveikslėlį rėmelyje puslapio kairėje; „alternatyvus tekstas“ bus naudojamas paveikslėlio aprašymui.
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Failas.ogg]]</nowiki></code>''' tiesioginei nuorodai į failą.",
 'upload-permitted' => 'Leidžiami failų tipai: $1.',
 'upload-preferred' => 'Pageidautini failų tipai: $1.',
 'upload-prohibited' => 'Uždrausti failų tipai: $1.',
@@ -1594,20 +1594,20 @@ Taip pat galite peržvelgti [[Special:NewFiles|naujausių failų galeriją]].',
 'largefileserver' => 'Šis failas yra didesnis nei serveris yra sukonfigūruotas leisti.',
 'emptyfile' => 'Panašu, kad failas, kurį įkėlėte yra tuščias. Tai gali būti dėl klaidos failo pavadinime. Pasitikrinkite ar tikrai norite įkelti šitą failą.',
 'windows-nonascii-filename' => 'Ši viki neleidžia naudoti failų vardų su specialiais simboliais.',
-'fileexists' => "Failas tuo pačiu vardu jau egzistuoja, prašome pažiūrėti '''<tt>[[:$1]]</tt>''', jei nesate tikras, ar norite perrašyti šį failą.
-[[$1|thumb]]",
-'filepageexists' => "Šio failo aprašymo puslapis jau buvo sukurtas '''<tt>[[:$1]]</tt>''', bet šiuo metu nėra jokio failo šiuo pavadinimu.
+'fileexists' => 'Failas tuo pačiu vardu jau egzistuoja, prašome pažiūrėti <strong>[[:$1]]</strong>, jei nesate tikras, ar norite perrašyti šį failą.
+[[$1|thumb]]',
+'filepageexists' => 'Šio failo aprašymo puslapis jau buvo sukurtas <strong>[[:$1]]</strong>, bet šiuo metu nėra jokio failo šiuo pavadinimu.
 Jūsų įvestas komentaras neatsiras aprašymo puslapyje.
 Jei norite, kad jūsų komentaras ten atsirastų, jums reikia jį pakeisti pačiam.
-[[$1|thumb]]",
-'fileexists-extension' => "Failas su panašiu pavadinimu jau yra: [[$2|thumb]]
-* Įkeliamo failo pavadinimas: '''<tt>[[:$1]]</tt>'''
-* Jau esančio failo pavadinimas: '''<tt>[[:$2]]</tt>'''
-Prašome pasirinkti kitą vardą.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Failas su panašiu pavadinimu jau yra: [[$2|thumb]]
+* Įkeliamo failo pavadinimas: <strong>[[:$1]]</strong>
+* Jau esančio failo pavadinimas: <strong>[[:$2]]</strong>
+Prašome pasirinkti kitą vardą.',
 'fileexists-thumbnail-yes' => "Failas turbūt yra sumažinto dydžio failas ''(miniatiūra)''. [[$1|thumb]]
-Prašome peržiūrėti failą '''<tt>[[:$1]]</tt>'''.
+Prašome peržiūrėti failą <strong>[[:$1]]</strong>.
 Jeigu tai yra toks pats pradinio dydžio paveikslėlis, tai įkelti papildomos miniatūros nereikia.",
-'file-thumbnail-no' => "Failo pavadinimas prasideda  '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Failo pavadinimas prasideda  <strong>$1</strong>.
 Atrodo, kad yra sumažinto dydžio paveikslėlis ''(miniatiūra)''.
 Jei jūs turite šį paveisklėlį pilna raiška, įkelkite šitą, priešingu atveju prašome pakeisti failo pavadinimą.",
 'fileexists-forbidden' => 'Failas tokiu pačiu vardu jau egzistuoja ir negali būti perrašytas;
@@ -1835,7 +1835,7 @@ Informacija iš [$2 failo aprašymo puslapio] yra pateikiama žemiau.',
 
 # MIME search
 'mimesearch' => 'MIME paieška',
-'mimesearch-summary' => 'Šis puslapis leidžia rodyti failus pagal jų MIME tipą. Įveskite: turiniotipas/potipis, pvz. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Šis puslapis leidžia rodyti failus pagal jų MIME tipą. Įveskite: turiniotipas/potipis, pvz. <code>image/jpeg</code>.',
 'mimetype' => 'MIME tipas:',
 'download' => 'parsisiųsti',
 
@@ -2035,7 +2035,7 @@ Taip pat žiūrėkite [[Special:WantedCategories|trokštamas kategorijas]].',
 'linksearch-ok' => 'Ieškoti',
 'linksearch-text' => 'Galima naudoti žvaigždutes, pvz., „*.wikipedia.org“.<br />
 Yra būtinas bent jau aukščiausio lygio domenas, pvz., „*.org“.<br />
-Palaikomi protokolai: <tt>$1</tt> (nei vieno iš jų nenurodykite paieškoje).',
+Palaikomi protokolai: <code>$1</code> (nei vieno iš jų nenurodykite paieškoje).',
 'linksearch-line' => '$1 yra susietas iš $2',
 'linksearch-error' => 'Žvaigždutės gali būti tik adreso pradžioje.',
 
@@ -2226,7 +2226,7 @@ Paskutinių šalinimų istorija - $2.',
 'rollback_short' => 'Atmesti',
 'rollbacklink' => 'atmesti',
 'rollbacklinkcount' => 'atmesti $1 {{PLURAL:$1|keitimą|keitimus}}',
-'rollbacklinkcount-morethan' => 'atmesti daugiau nei $1 {{PLURAL:$1|keitimą|keitimus}}',
+'rollbacklinkcount-morethan' => 'atmesti daugiau nei $1 {{PLURAL:$1|keitimą|keitimų}}',
 'rollbackfailed' => 'Atmetimas nepavyko',
 'cantrollback' => 'Negalima atmesti redagavimo; paskutinis keitęs naudotojas yra šio puslapio autorius.',
 'alreadyrolled' => 'Nepavyko atmesti paskutinio [[User:$2|$2]] ([[User talk:$2|Aptarimas]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) daryto puslapio [[:$1]] keitimo;
@@ -2892,15 +2892,10 @@ Leidžia pridėti atmetimo priežastį komentaruose',
 # Info page
 'pageinfo-title' => '„$1“ informacija',
 'pageinfo-header-edits' => 'Pakeitimai',
-'pageinfo-header-watchlist' => 'Stebėjimo sąrašas',
-'pageinfo-header-views' => 'Peržiūrėta',
-'pageinfo-subjectpage' => 'Puslapis',
-'pageinfo-talkpage' => 'Pokalbių puslapis',
+'pageinfo-views' => 'Peržiūrų skaičius',
 'pageinfo-watchers' => 'Stebėtojų skaičius',
 'pageinfo-edits' => 'Keitimų skaičius',
 'pageinfo-authors' => 'Skirtingų autorių skaičius',
-'pageinfo-views' => 'Peržiūrų skaičius',
-'pageinfo-viewsperedit' => 'Peržiūrėta redaguojant',
 
 # Skin names
 'skinname-standard' => 'Klasikinė',
index 8f09ec9..2af1c67 100644 (file)
@@ -1039,9 +1039,9 @@ I ràwnah paihna leh sawnna chhinchhiahna thuziak kan rawn chhawpchhuak e:",
 Ahmaa taksa hlankaisaho en tùr emaw zawng tùr chuan [[Special:FileList|taksa hlankai tawh zawng zawng tlarna]] tihah hian kal rawh; hlankai (nawn)ho pawh [[Special:Log/upload|hlankai chhinchhiahna]]-ah vawnfel an ni a, paih tawhho pawh [[Special:Log/delete|paihho chhinchhiahna]]-ah chhinchhiah fel vek an ni.
 
 Phêka taksa hmang tùrin ahnuaia tihphung engemaw ni ber hmang khuan zawmna i siam thei ang:
-*A taksa pumpui hmang tùr chuan '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' tiin. Heti hi chuan taksa hi i sezawl chhuah a ni.
-*Phêk veilam síra 'Sawifiahna' hmanga 200px-a liana i tàrlan duh chuan '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|Sawifiahna]]</nowiki></tt>'''  tiin.
-*A taksa tárlang lova zawm ringawt i duh chuan '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' tiin.",
+*A taksa pumpui hmang tùr chuan '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' tiin. Heti hi chuan taksa hi i sezawl chhuah a ni.
+*Phêk veilam síra 'Sawifiahna' hmanga 200px-a liana i tàrlan duh chuan '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|Sawifiahna]]</nowiki></code>'''  tiin.
+*A taksa tárlang lova zawm ringawt i duh chuan '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' tiin.",
 'upload-permitted' => 'Taksa phal chiho: $1.',
 'upload-preferred' => 'Taksa duh deuh bîk: $1.',
 'upload-prohibited' => 'Taksa khap: $1.',
@@ -1748,15 +1748,10 @@ A hnar i en thei ang.',
 # Info page
 'pageinfo-title' => '"$1" chungchanga hriattirna',
 'pageinfo-header-edits' => 'Siamţhatnate',
-'pageinfo-header-watchlist' => 'Ralvèn',
-'pageinfo-header-views' => 'En zât',
-'pageinfo-subjectpage' => 'Phêk',
-'pageinfo-talkpage' => 'Sawihona phêk',
+'pageinfo-views' => 'Thlir/en tawh zât',
 'pageinfo-watchers' => 'Thlirtu zât',
 'pageinfo-edits' => 'Siamţhat zât',
 'pageinfo-authors' => 'Ziaktu hrang zât',
-'pageinfo-views' => 'Thlir/en tawh zât',
-'pageinfo-viewsperedit' => 'Siamţhat pakhat zel en zât',
 
 # Patrolling
 'markaspatrolleddiff' => 'Vil angah chhiar rawh',
index 10d51b4..af20cc9 100644 (file)
@@ -310,6 +310,7 @@ $1',
 'youhavenewmessages' => 'Tev ir $1 (skat. $2).',
 'newmessageslink' => 'jauns vēstījums',
 'newmessagesdifflink' => 'pēdējā izmaiņa',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|pēdējā izmaiņa|pēdējās izmaiņas}}',
 'youhavenewmessagesmulti' => 'Tev ir jauns ziņojums: $1',
 'editsection' => 'labot',
 'editold' => 'labot',
@@ -439,11 +440,11 @@ Tavs lietotāja konts ir izveidots. Neaizmirsti, ka ir iespējams mainīt [[Spec
 'securelogin-stick-https' => 'Saglabāt HTTPS savienojumu pēc pieslēgšanās',
 'yourdomainname' => 'Tavs domēns',
 'externaldberror' => 'Notikusi vai nu ārējās autentifikācijas datubāzes kļūda, vai arī tev nav atļauts izmainīt savu ārējo kontu.',
-'login' => 'Ieiet',
+'login' => 'Pieslēgties',
 'nav-login-createaccount' => 'Izveidot jaunu lietotāju vai doties iekšā',
 'loginprompt' => 'Lai ieietu {{grammar:lokatīvs|{{SITENAME}}}}, tavam datoram ir jāpieņem sīkdatnes (<i>cookies</i>).',
 'userlogin' => 'Izveidot jaunu lietotāju vai doties iekšā',
-'userloginnocreate' => 'Ieiet',
+'userloginnocreate' => 'Pieslēgties',
 'logout' => 'Iziet',
 'userlogout' => 'Iziet',
 'notloggedin' => 'Neesi iegājis',
@@ -668,6 +669,7 @@ Pēdējais bloķēšanas reģistra ieraksts ir apskatāms zemāk:',
 'updated' => '(Atjaunots)',
 'note' => "'''Piezīme: '''",
 'previewnote' => "'''Atceries, ka šis ir tikai pirmskats un teksts vēl nav saglabāts!'''",
+'continue-editing' => 'Turpināt labošanu',
 'session_fail_preview' => "'''Neizdevās apstrādāt tavas izmaiņas, jo tika pazaudēti sesijas dati.
 Lūdzu mēģini vēlreiz.
 Ja tas joprojām nedarbojas, mēģini [[Special:UserLogout|izlogoties ārā]] un ielogoties no jauna.'''",
@@ -975,6 +977,7 @@ Pagaidām vari meklēt, izmantojot Google vai Yahoo.
 'prefs-beta' => 'Beta funkcijas',
 'prefs-datetime' => 'Datums un laiks',
 'prefs-labs' => 'Laboratorijas funkcijas',
+'prefs-user-pages' => 'Lietotāja lapas',
 'prefs-personal' => 'Lietotāja dati',
 'prefs-rc' => 'Pēdējās izmaiņas',
 'prefs-watchlist' => 'Uzraugāmie raksti',
@@ -1251,6 +1254,7 @@ Ja tu izvēlies to norādīt, tas tiks izmantots, lai identificētu tavu darbu (
 'newsectionsummary' => '/* $1 */ jauna sadaļa',
 'rc-enhanced-expand' => 'Rādīt informāciju (nepieciešams JavaScript)',
 'rc-enhanced-hide' => 'Paslēpt detaļas',
+'rc-old-title' => 'sākotnēji izveidota kā "$1 "',
 
 # Recent changes linked
 'recentchangeslinked' => 'Saistītās izmaiņas',
@@ -1342,13 +1346,13 @@ Pārskatāmāka versija ir pieejama [[Special:NewFiles|jauno attēlu galerijā]]
 'largefileserver' => 'Šis fails ir lielāks nekā serveris ņem pretī.',
 'emptyfile' => 'Šķiet, ka tu esi augšuplādējis tukšu failu. Iespējams, faila nosaukumā esi pieļāvis kļūdu. Lūdzu, pārbaudi, vai tiešām tu vēlies augšuplādēt tieši šo failu.',
 'windows-nonascii-filename' => 'Šī viki neatbalsta failu nosaukumus ar īpašām rakstzīmēm.',
-'fileexists' => "Fails ar šādu nosaukumu jau pastāv, lūdzu, pārbaudi '''<tt>[[:$1]]</tt>''', ja neesi drošs, ka vēlies to mainīt.
-[[$1|thumb]]",
-'fileexists-extension' => "Pastāv fails ar līdzīgu nosaukumu: [[$2|thumb]]
-* Augšupielādējamā faila nosaukums: '''<tt>[[:$1]]</tt>'''
-* Esošā faila nosaukums: '''<tt>[[:$2]]</tt>'''
-Lūdzu, izvēlieties citu nosaukumu.",
-'file-thumbnail-no' => "Faila vārds sākas ar '''<tt>$1</tt>'''.
+'fileexists' => 'Fails ar šādu nosaukumu jau pastāv, lūdzu, pārbaudi <strong>[[:$1]]</strong>, ja neesi drošs, ka vēlies to mainīt.
+[[$1|thumb]]',
+'fileexists-extension' => 'Pastāv fails ar līdzīgu nosaukumu: [[$2|thumb]]
+* Augšupielādējamā faila nosaukums: <strong>[[:$1]]</strong>
+* Esošā faila nosaukums: <strong>[[:$2]]</strong>
+Lūdzu, izvēlieties citu nosaukumu.',
+'file-thumbnail-no' => "Faila vārds sākas ar <strong>$1</strong>.
 Izskatās, ka šis ir samazināts attēls ''(thumbnail)''.
 Ja tev ir šis pats attēls pilnā izmērā, augšuplādē to, ja nav, tad nomaini faila vārdu.",
 'fileexists-forbidden' => 'Fails ar šādu nosaukumu jau eksistē un to nevar aizvietot ar jaunu.
@@ -1408,6 +1412,7 @@ Lūdzu, sazinieties ar [[Special:ListUsers/sysop|administratoru.]]',
 'backend-fail-notsame' => 'Neidentisks fails jau pastāv $1.',
 'backend-fail-delete' => 'Nevar izdzēst failu $1.',
 'backend-fail-alreadyexists' => 'Fails $1 jau pastāv.',
+'backend-fail-store' => 'Neizdevās saglabāt failu "$1" "$2".',
 'backend-fail-copy' => 'Nevar kopēt failu $1 uz $2.',
 'backend-fail-move' => 'Nevar pārvietot failu $1 uz $2.',
 'backend-fail-opentemp' => 'Nevar atvērt pagaidu failu.',
@@ -1441,6 +1446,7 @@ Atļauta ir tikai failu piekļuve.',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'URL nevarēja sasniegt',
+'upload-curl-error28' => 'Augšupielādes noildze',
 
 'license' => 'Licence:',
 'license-header' => 'Licence',
@@ -1524,6 +1530,7 @@ Apraksts ir [$2 faila apraksta lapā], kas ir parādīta zemāk.',
 ** Viens tāds jau ir',
 'filedelete-edit-reasonlist' => 'Izmainīt dzēšanas iemeslus',
 'filedelete-maintenance' => 'Failu dzēšana un atjaunošana uzturēšanas laikā ir atslēgta.',
+'filedelete-maintenance-title' => 'Nevar izdzēst failu',
 
 # MIME search
 'mimesearch' => 'MIME meklēšana',
@@ -1622,6 +1629,7 @@ Katrā rindiņā ir saites uz pirmo un otro pāradresācijas lapu, kā arī pirm
 'mostimages' => 'Attēli, uz kuriem ir visvairāk saišu',
 'mostrevisions' => 'Raksti, kuriem ir visvairāk iepriekšēju versiju',
 'prefixindex' => 'Meklēt pēc virsraksta pirmajiem burtiem',
+'prefixindex-namespace' => 'Visas lapas ar prefiksu ($1 vārdtelpa)',
 'shortpages' => 'Īsākās lapas',
 'longpages' => 'Garākās lapas',
 'deadendpages' => 'Lapas bez izejošām saitēm',
@@ -1656,7 +1664,7 @@ Katrā rindiņā ir saites uz pirmo un otro pāradresācijas lapu, kā arī pirm
 
 # Special:Log
 'specialloguserlabel' => 'Izpildītājs:',
-'speciallogtitlelabel' => 'Nosaukums:',
+'speciallogtitlelabel' => 'Mērķis (nosaukums vai lietotājs):',
 'log' => 'Reģistri',
 'all-logs-page' => 'Visi publiski pieejamie reģistri',
 'alllogstext' => 'Visi pieejamie {{grammar:akuzatīvs{{SITENAME}}}} reģistri.
@@ -1680,6 +1688,9 @@ Tu vari sašaurināt aplūkojamo reģistru, izvēloties reģistra veidu, lietot
 'allpagesprefix' => 'Parādīt lapas ar šādu virsraksta sākumu:',
 'allpages-bad-ns' => '{{SITENAME}} nav vārdkopas "$1".',
 
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'Skatīt jaunāko.',
+
 # Special:Categories
 'categories' => 'Kategorijas',
 'categoriespagetext' => "{{PLURAL:$1|Šī kategorija|Šīs kategorijas}} satur lapas vai failus.
@@ -1699,7 +1710,7 @@ Skatīt arī [[Special:WantedCategories|''sarkanās'' kategorijas]].",
 'linksearch-pat' => 'Meklēt:',
 'linksearch-ns' => 'Vārdtelpas:',
 'linksearch-ok' => 'Meklēt',
-'linksearch-text' => 'Atbalstītie protokoli: <tt>$1</tt>',
+'linksearch-text' => 'Atbalstītie protokoli: <code>$1</code>',
 'linksearch-line' => '$1 ir izveidota saite no $2',
 
 # Special:ListUsers
@@ -2100,6 +2111,8 @@ Visus blokus var apskatīties [[Special:BlockList|IP bloku sarakstā]].',
 'blocklist-userblocks' => 'Paslēpt kontu bloķējumus',
 'blocklist-tempblocks' => 'Paslēpt pagaidu bloķējumus',
 'blocklist-addressblocks' => 'Paslēpt vienas IP adreses bloķējumus',
+'blocklist-timestamp' => 'Laiks',
+'blocklist-target' => 'Mērķis',
 'blocklist-params' => 'Bloķēšanas parametri',
 'blocklist-reason' => 'Iemesls',
 'ipblocklist-submit' => 'Meklēt',
@@ -2431,15 +2444,10 @@ To visticamāk izraisīja ārēja saite uz melnajā sarakstā esošu interneta v
 # Info page
 'pageinfo-title' => 'Informācija par "$1"',
 'pageinfo-header-edits' => 'Labojumi',
-'pageinfo-header-watchlist' => 'Uzraugāmie raksti',
-'pageinfo-header-views' => 'Skatījumi',
-'pageinfo-subjectpage' => 'Lapa',
-'pageinfo-talkpage' => 'Diskusiju lapa',
+'pageinfo-views' => 'Skatījumu skaits',
 'pageinfo-watchers' => 'Uzraudzītāju skaits',
 'pageinfo-edits' => 'Izmaiņu skaits',
 'pageinfo-authors' => 'Atsevišķu autoru skaits',
-'pageinfo-views' => 'Skatījumu skaits',
-'pageinfo-viewsperedit' => 'Skatījumi uz labojumu',
 
 # Patrolling
 'markaspatrolleddiff' => 'Atzīmēt kā pārbaudītu',
@@ -2639,6 +2647,7 @@ Pārējie lauki, pēc noklusējuma, būs paslēpti.
 'exif-specialinstructions' => 'Īpašas norādes',
 'exif-headline' => 'Virsraksts',
 'exif-source' => 'Avots',
+'exif-contact' => 'Kontaktinformācija',
 'exif-languagecode' => 'Valoda',
 'exif-iimversion' => 'IIM versija',
 'exif-iimcategory' => 'Kategorija',
@@ -2647,6 +2656,7 @@ Pārējie lauki, pēc noklusējuma, būs paslēpti.
 'exif-lens' => 'Izmantotais objektīvs',
 'exif-serialnumber' => 'Fotoaparāta sērijas numurs',
 'exif-cameraownername' => 'Fotoaparāta īpašnieks',
+'exif-nickname' => 'Neformāls attēla nosaukums',
 'exif-rating' => 'Vērtējums (no 5)',
 'exif-copyrighted' => 'Autortiesību statuss',
 'exif-copyrightowner' => 'Autortiesību īpašnieks',
@@ -2661,6 +2671,8 @@ Pārējie lauki, pēc noklusējuma, būs paslēpti.
 'exif-contentwarning' => 'Brīdinājums par saturu',
 'exif-giffilecomment' => 'GIF faila komentārs',
 'exif-event' => 'Attēlotais notikums',
+'exif-organisationinimage' => 'Attēlotā organizācija',
+'exif-personinimage' => 'Attēlotā persona',
 
 # EXIF attributes
 'exif-compression-1' => 'Nekompresēts',
index f0c11bf..3a273c5 100644 (file)
@@ -1330,9 +1330,9 @@ $1",
 此頁之誌刪與移於此示之以參詳也:",
 'uploadtext' => "下表以獻,[[Special:FileList|載獻]]覽之。或見[[Special:Log/upload|誌獻]]與[[Special:Log/delete|誌刪]]。
 欲嵌頁中,是格鏈之其一:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}:File.jpg]]</tt>'''用此整獻
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}:File.png||200px|thumb|left|名]]</tt>'''以二百像素置左框置『名』
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}:File.ogg]]</tt>'''直連獻,無示獻",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}:File.jpg]]</code>'''用此整獻
+* '''<code><nowiki>[[</nowiki>{{ns:file}}:File.png||200px|thumb|left|名]]</code>'''以二百像素置左框置『名』
+* '''<code><nowiki>[[</nowiki>{{ns:media}}:File.ogg]]</code>'''直連獻,無示獻",
 'upload-permitted' => '可之物類:$1。',
 'upload-preferred' => '議之物類:$1。',
 'upload-prohibited' => '禁之物類:$1。',
@@ -1373,8 +1373,8 @@ $1",
 'tmp-write-error' => '臨檔案寫錯也。',
 'large-file' => '檔長$2仟位元組,不逾$1為佳。',
 'emptyfile' => '無以獻,疑謬名也,惠核之。',
-'fileexists' => "'''<tt>[[:$1]]</tt>'''存矣,欲蓋之則再也。 [[$1|thumb]]",
-'filepageexists' => "此檔之述於'''<tt>[[:$1]]</tt>'''存矣,檔未存也。爾入述無存也。要現之,爾需纂之。",
+'fileexists' => '<strong>[[:$1]]</strong>存矣,欲蓋之則再也。 [[$1|thumb]]',
+'filepageexists' => '此檔之述於<strong>[[:$1]]</strong>存矣,檔未存也。爾入述無存也。要現之,爾需纂之。',
 'file-exists-duplicate' => '此檔乃重檔{{PLURAL:$1|一|數}}:',
 'file-deleted-duplicate' => '此檔([[:$1]])前刪。爾需查刪錄再貢之。',
 'uploadwarning' => '慎焉!',
@@ -1542,7 +1542,7 @@ $1',
 
 # MIME search
 'mimesearch' => '篩檔',
-'mimesearch-summary' => '此頁可以MIME篩檔.格仿「文類/次類」,如<tt>image/jpeg</tt>。',
+'mimesearch-summary' => '此頁可以MIME篩檔.格仿「文類/次類」,如<code>image/jpeg</code>。',
 'mimetype' => 'MIME類有:',
 'download' => '載下',
 
@@ -1718,7 +1718,7 @@ $1',
 'linksearch-ns' => '名集:',
 'linksearch-ok' => '尋',
 'linksearch-text' => '用似"*.wikipedia.org"之萬字。<br />
-援之議:<tt>$1</tt>',
+援之議:<code>$1</code>',
 'linksearch-line' => '$1連$2',
 'linksearch-error' => '萬字僅用於機之始也。',
 
index 42cffa5..dccadb8 100644 (file)
@@ -1390,9 +1390,9 @@ $3 द्वारा देल कारण अछि ''$2''",
 'uploadtext' => "निचुक्का पत्र संचिका उपारोपित करबा लेल प्रयोग करू।
 पहिलुका उपारोपित संचिका देखबा वा तकबा लेल जाउ [[Special:FileList|उपारोपित संचिका सभक सूची]], (पुनः) उपारोपित सेहो सम्प्रवेशित अछि [[Special:Log/upload|उपारोपित वृत्तलेख]] मे, मेटाएल सभ [[Special:Log/delete|मेटाएल वृत्तलेख]] मे।
 पन्नमे एकटा संचिका देबा लेल, ऐ पत्र सभमेसँ कोनो लागिक प्रयोग करू:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' संचिकाक पूर्ण संस्करण देखबा लेल
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>'''  २०० चित्राणु चाकर प्रकटन एकटा बक्शामे \"वैकल्पिक पाठ\" वामा कात वर्णनक रूपमे लिखल प्रयोग करू
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' बिना संचिका देखेने सोझे संचिकाक लागि देब",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' संचिकाक पूर्ण संस्करण देखबा लेल
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>'''  २०० चित्राणु चाकर प्रकटन एकटा बक्शामे \"वैकल्पिक पाठ\" वामा कात वर्णनक रूपमे लिखल प्रयोग करू
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' बिना संचिका देखेने सोझे संचिकाक लागि देब",
 'upload-permitted' => 'मान्य संचिका प्रकार:$1 ।',
 'upload-preferred' => 'मोनपसिन्न संचिका प्रकार:$1 ।',
 'upload-prohibited' => 'प्रतिबन्धित संचिका प्रकार:$1 ।',
@@ -1440,21 +1440,21 @@ $3 द्वारा देल कारण अछि ''$2''",
 ई संचिकानाममे गलत तंकणक कारण सम्भवतः भेल हएत।
 कृपा कऽ जाँचू जे की अहाँ ऐ संचिकाकेँ ठीके उपारोपित करए चाहै छी।',
 'windows-nonascii-filename' => 'ई विकी संचिकानाममे विशेष अक्षरक प्रयोग निषेध करैत अछि।',
-'fileexists' => "ऐ नाम्ना एकटा संचिका पहिनहियेसँ अछि, कृपा कऽ जाँचू '''<tt>[[:$1]]</tt>''' जँ अहाँ दुविधामे छी जे अहाँ एकरा बदलऽ चाहै छी वा नै।
-[[$1|thumb]]",
-'filepageexists' => "ऐ संचिकाक वर्णन पन्ना पहिनहिये '''<tt>[[:$1]]</tt>''' पर बना देल गेल, मुदा ऐ नामसँ कोनो संचिका अखन नै अछि।
+'fileexists' => 'ऐ नाम्ना एकटा संचिका पहिनहियेसँ अछि, कृपा कऽ जाँचू <strong>[[:$1]]</strong> जँ अहाँ दुविधामे छी जे अहाँ एकरा बदलऽ चाहै छी वा नै।
+[[$1|thumb]]',
+'filepageexists' => 'ऐ संचिकाक वर्णन पन्ना पहिनहिये <strong>[[:$1]]</strong> पर बना देल गेल, मुदा ऐ नामसँ कोनो संचिका अखन नै अछि।
 जे संक्षेप अहाँ दऽ रहल छी से वर्णन पन्नापर नै आएत।
 अहाँक संक्षेप ओतए आबए तै लेल अहाँकेँ ओकरा अपनेसँ सम्पादित करए पड़त।
-[[$1|thumb]]",
-'fileexists-extension' => "ऐ नामसँ एकटा संचिका पहिनहियेसँ अछि:[[$2|thumb]]
-* उपारोपित संचिकाक नाम: '''<tt>[[:$1]]</tt>'''
-* अखन स्थित फाइलक नाम: '''<tt>[[:$2]]</tt>'''
-कृपा कऽ दोसर नाम चुनू।",
+[[$1|thumb]]',
+'fileexists-extension' => 'ऐ नामसँ एकटा संचिका पहिनहियेसँ अछि:[[$2|thumb]]
+* उपारोपित संचिकाक नाम: <strong>[[:$1]]</strong>
+* अखन स्थित फाइलक नाम: <strong>[[:$2]]</strong>
+कृपा कऽ दोसर नाम चुनू।',
 'fileexists-thumbnail-yes' => "ई संचिका लगैए जे ''(लघुचित्र)'' क छोट आकारक चित्र अछि।
 [[$1|thumb]]
-कृपा कऽ ऐ संचिकाकेँ जाँचू '''<tt>[[:$1]]</tt>''' ।
+कृपा कऽ ऐ संचिकाकेँ जाँचू <strong>[[:$1]]</strong> ।
 जँ जाँचल संचिका मूल संचिकाक वएह चित्र छी तँ एकटा दोसर लघुचित्र उपारोपित करबाक आवश्यकता नै अछि।",
-'file-thumbnail-no' => "संचिकानाम शुरू होइए '''<tt>$1</tt>''' सँ।
+'file-thumbnail-no' => "संचिकानाम शुरू होइए <strong>$1</strong> सँ।
 लगैए जे ई छोट आकारक ''(लघुचित्र)'' क चित्र अछि।
 जँ अहाँ लग पूर्ण आनन्तर्यक चित्र अछि तँ से उपारोपित करू, नै तँ संचिकानाम बदलू।",
 'fileexists-forbidden' => 'ऐ नामक एकटा संचिका पहिनहियेसँ अछि, आ फेरसँ ओ पुनर्लेखित नै कएल जा सकैए।
@@ -1662,7 +1662,7 @@ $1',
 # MIME search
 'mimesearch' => 'माइम खोज',
 'mimesearch-summary' => 'ई पन्ना माइम प्रकारक संचिकाकेँ अलग करब सम्भव बनबैत अछि।
-निवेशन: पाठ प्रकार/ उपप्रकार, जेना <tt>image/jpeg</tt> ।',
+निवेशन: पाठ प्रकार/ उपप्रकार, जेना <code>image/jpeg</code> ।',
 'mimetype' => 'माइम प्रकार:',
 'download' => 'अवारोपन',
 
@@ -1854,7 +1854,7 @@ $1',
 'linksearch-ns' => 'नामस्थान :',
 'linksearch-ok' => 'ताकू',
 'linksearch-text' => 'ब्रह्मास्त्र जेना "*.wikipedia.org" प्रयोग कएल जा सकैए।
-सहायक संविद:<tt>$1</tt> (खोजमे ऐमेसँ कोनो नै जोड़ू)।',
+सहायक संविद:<code>$1</code> (खोजमे ऐमेसँ कोनो नै जोड़ू)।',
 'linksearch-line' => '$2 सँ $1 क लागि अछि।',
 'linksearch-error' => 'निमंत्रकनामक प्रारम्भमे ब्रह्मास्त्र आबि सकैए।',
 
@@ -2683,15 +2683,10 @@ $1 एकर प्रतिबन्धक कारण अछि : "$2"',
 # Info page
 'pageinfo-title' => '"$1"पृष्ठक लेल नब गप',
 'pageinfo-header-edits' => 'संपादन',
-'pageinfo-header-watchlist' => 'साकांक्ष-सूची',
-'pageinfo-header-views' => 'देखू',
-'pageinfo-subjectpage' => 'पृष्ठ',
-'pageinfo-talkpage' => 'टॉक पृष्ठ',
+'pageinfo-views' => 'देखहि बला के संख्या',
 'pageinfo-watchers' => 'जानकारक संख्या',
 'pageinfo-edits' => 'सम्पादनक संख्या',
 'pageinfo-authors' => 'भिन्न लेखक संख्या',
-'pageinfo-views' => 'देखहि बला के संख्या',
-'pageinfo-viewsperedit' => 'प्रति सम्पादन देखल गेल',
 
 # Skin names
 'skinname-standard' => 'प्राचीन',
index a8ceae4..4c4697c 100644 (file)
@@ -1229,9 +1229,9 @@ $3 макссь туфталсь - ''$2''",
 Инголе тонкф файлхнень няфтеманкса ванк [[Special:FileList|тонкф архтофкснень лувомась]], файлонь одукс тонгомасна тяштевихть [[Special:Log/upload|тонгома лувомас]], файлонь нардамасна тяштевихть [[Special:Log/upload|нардама лувомас]].
 
 Архтофкс сёрматфксс сувафтоманкса эряви путомс ки:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' пяшксе файлонь верзинц тевс нолдаманди
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' 200 пиксель кели верзие ёмла кудняса лопань кержи ширеса тевс нолдаманди, 'alt text' вастс путозь архтофкс колга тяштемась
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' файлть мархта видеста сюлмамонди ся файлть апак няфнек.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' пяшксе файлонь верзинц тевс нолдаманди
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' 200 пиксель кели верзие ёмла кудняса лопань кержи ширеса тевс нолдаманди, 'alt text' вастс путозь архтофкс колга тяштемась
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' файлть мархта видеста сюлмамонди ся файлть апак няфнек.",
 'upload-permitted' => 'Мярьговикс файл форматт: $1.',
 'upload-preferred' => 'Сембода пара файл форматт: $1.',
 'upload-prohibited' => 'Кардама файл форматт: $1.',
@@ -1258,21 +1258,21 @@ $3 макссь туфталсь - ''$2''",
 'large-file' => 'Сяда пароль файлхт улельхть аф $1-да кувака; тя файлсь $2.',
 'largefileserver' => 'Тя файлсь серверонь мярьгови кувалмода лама.',
 'emptyfile' => 'Файлсь, конась тон тонгодеть шаволь. Тя лиссь, улема, аф лац файллем серматкшнеманц сюнеда.  Ванк ди арьсек улель эли аф тонь мялец тя файлть тонгомонза.',
-'fileexists' => "Тя лемса файл улсь ни.
-Ванк '''<tt>[[:$1]]</tt>''' улель эли аф тонь мяльце сонь полафнемонза.
-[[$1|thumb]]",
-'filepageexists' => "Тя лемса лопа ульсь ни, ванк '''<tt>[[:$1]]</tt>''' аньцек тяни аш файл тя лем мархта.
+'fileexists' => 'Тя лемса файл улсь ни.
+Ванк <strong>[[:$1]]</strong> улель эли аф тонь мяльце сонь полафнемонза.
+[[$1|thumb]]',
+'filepageexists' => 'Тя лемса лопа ульсь ни, ванк <strong>[[:$1]]</strong> аньцек тяни аш файл тя лем мархта.
 Сёрмадомась тон тият аф эвондай лувондома лопаса.
 Тонь сёрмадомацень тоса эвондаманди тондейть сави эсь кядьса сонь петнемс
-[[$1|thumb]]",
-'fileexists-extension' => "Файл тя файлть лемонцты малады ульсь ни: [[$2|thumb]]
-* Тонгодеви файлть лемоц: '''<tt>[[:$1]]</tt>'''
-* Файллем, кона ульсь ни: '''<tt>[[:$2]]</tt>'''
-Эняльттяма, арьсек иля лем.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Файл тя файлть лемонцты малады ульсь ни: [[$2|thumb]]
+* Тонгодеви файлть лемоц: <strong>[[:$1]]</strong>
+* Файллем, кона ульсь ни: <strong>[[:$2]]</strong>
+Эняльттяма, арьсек иля лем.',
 'fileexists-thumbnail-yes' => "Файлсь, улема, архтофксонь кирьфтаф верзиесь ''(thumbnail)''. [[$1|thumb]]
-Ванк файл '''<tt>[[:$1]]</tt>''' лангс.
+Ванк файл <strong>[[:$1]]</strong> лангс.
 Дяряй файлсь конань лангс тон ваноть сяка пяшксе кувалмоса архтофкссь, тоса тага фкя миниатюр тонгомс аф эряви.",
-'file-thumbnail-no' => "Файллемсь ушедсь '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Файллемсь ушедсь <strong>$1</strong>.
 Архтофксть кувалмоц, улема, пяк кирьфтафоль ''(thumbnail)''.
 Улендяряй тонь тя файлть сяда кувака верзиец - тонк сонь, илякс полафтт файллемть.",
 'fileexists-forbidden' => 'Файл тя лем мархта ульсь ни, аш кода сонь тиемс одукс.
@@ -1387,7 +1387,7 @@ $3 макссь туфталсь - ''$2''",
 
 # MIME search
 'mimesearch' => 'MIME вешендема',
-'mimesearch-summary' => 'Тя лопась нолдасы тевс файлонь кочксема синь MIME сортснон коряс. Сёрмадомань формат: файлботмонь сортоц/файлонь форматонц, кепотьксонди <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Тя лопась нолдасы тевс файлонь кочксема синь MIME сортснон коряс. Сёрмадомань формат: файлботмонь сортоц/файлонь форматонц, кепотьксонди <code>image/jpeg</code>.',
 'mimetype' => 'MIME сорт:',
 'download' => 'тонгомс',
 
@@ -1564,7 +1564,7 @@ $3 макссь туфталсь - ''$2''",
 'linksearch-ns' => 'Лемботмоц:',
 'linksearch-ok' => 'Вешендемс',
 'linksearch-text' => 'Сембекондясти лепне "*.wikipedia.org" кондяма ули кода нолдамс тевс.<br />
-Кирдеви протоколхне: <tt>$1</tt>',
+Кирдеви протоколхне: <code>$1</code>',
 'linksearch-line' => '$1 сюлмаф $2ста',
 'linksearch-error' => 'Сембекондясти лепненди ули кода тихтедемс аньцек интернет сюлма лемть ушетксонза.',
 
index 360ab26..e243293 100644 (file)
@@ -1628,21 +1628,21 @@ Ngeza noho izay zakan'ny serveur io rakitra io.",
 'emptyfile' => "Ohatry ny tsy misy na inona na inona ilay rakitra nalefanao teo.
 Sao dia misy diso tsipelina ny anaran'ny rakitra? Azafady mba hamarino fa tena naniry handefa io rakitra io tokoa ianao.",
 'windows-nonascii-filename' => 'Tsy mahazaka anaran-drakitra misy tarehintsoratra manokana ity wiki ity.',
-'fileexists' => "Efa misy rakitra manana io anarana io ato.
-Mariho '''<tt>[[:$1]]</tt>''' raha mbola tsy te-hanova azy ianao.
-[[$1|thumb]]",
-'filepageexists' => "Efa namboarina teto ny pejy mamisavisa ity rakitra ity '''<tt>[[:$1]]</tt>''', fa tsy misy rakitra mitondra io anarana io.
+'fileexists' => 'Efa misy rakitra manana io anarana io ato.
+Mariho <strong>[[:$1]]</strong> raha mbola tsy te-hanova azy ianao.
+[[$1|thumb]]',
+'filepageexists' => "Efa namboarina teto ny pejy mamisavisa ity rakitra ity <strong>[[:$1]]</strong>, fa tsy misy rakitra mitondra io anarana io.
 Ny ambangovangony ho ataonareo dia tsy hiseho eo amin'ny pejy famisavisana.
 Mba hanao azy, tsy maintsy ovainao manokana ilay pejy [[$1|thumb]]",
-'fileexists-extension' => "Misy rakitra manana anarana mitovitovy : [[$2|thumb]]
-* Anaran-drakitra ho ampidirina : '''<tt>[[:$1]]</tt>'''
-* Anaran-drakitra misy : '''<tt>[[:$2]]</tt>'''
-Misafidia anarana hafa.",
+'fileexists-extension' => 'Misy rakitra manana anarana mitovitovy : [[$2|thumb]]
+* Anaran-drakitra ho ampidirina : <strong>[[:$1]]</strong>
+* Anaran-drakitra misy : <strong>[[:$2]]</strong>
+Misafidia anarana hafa.',
 'fileexists-thumbnail-yes' => "
 Hoatry ny saritapaka ''(vignette)'' ilay sary. [[$1|thumb]]
-Marino ilay rakitra '''<tt>[[:$1]]</tt>'''.
+Marino ilay rakitra <strong>[[:$1]]</strong>.
 Raha mitovy amin'ny sary voalohany ny sarin'ilay rakitra marinina, tsy ilaina ny mampiditra santiôna nakelezina.",
-'file-thumbnail-no' => "Manomboka amin'ny '''<tt>$1</tt>''' ny anaran'ilay rakitra.
+'file-thumbnail-no' => "Manomboka amin'ny <strong>$1</strong> ny anaran'ilay rakitra.
 Mety saritapaka ''(vignette)'' io sary io.
 Raha manana santiôna ilay rakitra ngezangeza noho io ianao, ampidiro ato ilay izy, raha tsy izany ovay ny anarany.",
 'fileexists-forbidden' => 'EEfa misy rakitra iray mitondra io anarana io ary tsy afaka itsahina ilay rakitra.
@@ -1867,7 +1867,7 @@ Aseho eo ambany ny [$2 famisavisana ilay rakitra].",
 'mimesearch' => 'Fikarohana MIME',
 'mimesearch-summary' => "Ity pejy ity dia afahanao manalisitra ny rakitra azo jerena amin'ny alàlan' ity wiki ity arakaraka ny karazana votoatiny MIME ananany
 
-Fampidirana : ''karazambotoatiny''/''zanakarazana'', ohatra par exemple <tt>sary/jpeg</tt>",
+Fampidirana : ''karazambotoatiny''/''zanakarazana'', ohatra par exemple <code>sary/jpeg</code>",
 'mimetype' => 'Karazana MIME :',
 'download' => 'Hampidina',
 
@@ -2050,7 +2050,7 @@ Vangio koa ny [[Special:WantedCategories|sokajy ilaina]].",
 'linksearch-ns' => 'Anaran-tsehatra :',
 'linksearch-ok' => 'Fikarohana',
 'linksearch-text' => 'Ny soratra « joker » dia azo soratana ohatra <code>*.wikipedia.org</code>. br />
-Prôtôkôly zaka : <tt>$1</tt>.',
+Prôtôkôly zaka : <code>$1</code>.',
 'linksearch-line' => "$1 dia voarohy amin'ny $2",
 'linksearch-error' => "Ny soratra joker dia ampiasaina anatin'ny fanombohan'ny anaran-tsehatry ny milina hôte ihany.",
 
@@ -2844,15 +2844,10 @@ Mamerina ny version taloha io asa io ary afaka manometraka ny antony anatin'ny a
 # Info page
 'pageinfo-title' => 'Fampahalalana ho an\'i "$1"',
 'pageinfo-header-edits' => 'Fanovana',
-'pageinfo-header-watchlist' => 'Pejy arahana',
-'pageinfo-header-views' => 'Jery',
-'pageinfo-subjectpage' => 'Pejy',
-'pageinfo-talkpage' => 'Pejin-dresaka',
+'pageinfo-views' => "Isan'ny jery",
 'pageinfo-watchers' => "Isan'ny mpikambana manaraka an'ity pejy ity",
 'pageinfo-edits' => "Isan'ny fanovana",
 'pageinfo-authors' => "Isan'ny mpanoratra tokana",
-'pageinfo-views' => "Isan'ny jery",
-'pageinfo-viewsperedit' => 'Tsidika isaky ny fanovana',
 
 # Patrolling
 'markaspatrolleddiff' => 'Marihana ho voamarina',
index cd2ba8f..fd11a25 100644 (file)
@@ -657,9 +657,9 @@ $1',
 'dberrortext' => 'Синтаксна грешка во барањето до базата.
 Ова може да значи грешка во програмската опрема.
 Последното барање до базата беше:
-<blockquote><tt>$1</tt></blockquote>
-од функцијата „<tt>$2</tt>“.
\92Ñ\80аÑ\82ена Ðµ Ð³Ñ\80еÑ\88каÑ\82а â\80\9e<tt>$3: $4</tt>“.',
+<blockquote><code>$1</code></blockquote>
+од функцијата „<code>$2</code>“.
\91азаÑ\82а Ñ\98а Ð´Ð°Ð´Ðµ Ð³Ñ\80еÑ\88каÑ\82а â\80\9e<samp>$3: $4</samp>“.',
 'dberrortextcl' => 'Грешка во барањето до базата.
 Последното барање до базата беше:
 „$1“
@@ -1021,11 +1021,11 @@ $2
 'userpage-userdoesnotexist-view' => 'Корисничката сметка „$1“ не е регистрирана.',
 'blocked-notice-logextract' => 'Овој корисник е моментално блокиран.
 Подолу е прикажан последниот дневнички запис:',
-'clearyourcache' => "'''Напомена: По зачувувањето морате да го исчистите кешот на прелистувачот за да можете ги видите промените.'''
+'clearyourcache' => "С'''Напомена: По зачувувањето морате да го исчистите кешот на прелистувачот за да можете ги видите промените.'''
 * '''Firefox / Safari:''' Држете ''Shift'' и стиснете на ''Reload'' или притиснете ''Ctrl-F5'' или ''Ctrl-R'' (''⌘-R'' на Mac);
 * '''Google Chrome:''' Притиснете ''Ctrl-Shift-R'' (''⌘-R'' на Mac)
 * '''Internet Explorer:''' Држете ''Ctrl'' додека притискате на ''Refresh'' или притиснете ''Ctrl-F5''.
-* '''Konqueror:''' Сликнете на „Превчитај“ или притиснете ''F5'';
+* '''Konqueror:''' Стиснете на „Превчитај“ или на ''F5'';
 * '''Opera:''' Исчистете го кешот во ''Tools → Preferences'';",
 'usercssyoucanpreview' => "'''Совет:''' Употребете го копчето „{{int:showpreview}}“ за да го испробате вашиот нов CSS пред да зачувате.",
 'userjsyoucanpreview' => "'''Совет:''' Употребете го копчето „{{int:showpreview}}“ за да ја испробате вашата нова JavaScript  пред да зачувате.",
@@ -1751,9 +1751,9 @@ $1",
 За преглед или пребарување на претходно подигнати податотеки, погледнете ја [[Special:FileList|списокот на подигнати податотеки]]; повторните подигања се заведени во [[Special:Log/upload|дневникот на подигања]], а бришењата се заведуваат во [[Special:Log/delete|дневникот на бришења]].
 
 За да поставите слика во страница, користете врска во еден од следниве облици:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Податотека.jpg]]</nowiki></tt>''' за верзија на сликата во целосна големина
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Податотека.png|200px|thumb|left|опис]]</nowiki></tt>''' за верзија на сликата со големина од 200 пиксели прикажана во соодветна кутија, со опис како што е наведено во '''опис'''
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Податотека.ogg]]</nowiki></tt>''' за директно поврзување со податотеката без нејзино прикажување",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Податотека.jpg]]</nowiki></code>''' за верзија на сликата во целосна големина
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Податотека.png|200px|thumb|left|опис]]</nowiki></code>''' за верзија на сликата со големина од 200 пиксели прикажана во соодветна кутија, со опис како што е наведено во '''опис'''
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Податотека.ogg]]</nowiki></code>''' за директно поврзување со податотеката без нејзино прикажување",
 'upload-permitted' => 'Дозволени типови на податотеки: $1.',
 'upload-preferred' => 'Преферирани типови на податотеки: $1.',
 'upload-prohibited' => 'Забранети типови на податотеки: $1.',
@@ -1800,20 +1800,20 @@ $1",
 Ова може да е поради грешка во името на податотеката.
 Ве молиме проверете дали навистина сакате да ја подигнете оваа податотека.',
 'windows-nonascii-filename' => 'Опслужувачот не поддржува податотечни имиња со специјални знаци.',
-'fileexists' => "Податотека со ова име веќе постои, проверете '''<tt>[[:$1]]</tt>''' ако не сте сигурни дали сакате да го промените.
-[[$1|thumb]]",
-'filepageexists' => "Страницата за опис на оваа податотека е веќе создадена на '''<tt>[[:$1]]</tt>''', но не постои податотека со тоа име.
+'fileexists' => 'Податотека со ова име веќе постои, проверете <strong>[[:$1]]</strong> ако не сте сигурни дали сакате да го промените.
+[[$1|thumb]]',
+'filepageexists' => 'Страницата за опис на оваа податотека е веќе создадена на <strong>[[:$1]]</strong>, но не постои податотека со тоа име.
 Описот кој го внесовте нема да стои на страницата за опис.
 Доколку сакате описот да стои тука, ќе морате да го уредите рачно.
-[[$1|thumb]]",
-'fileexists-extension' => "Податотека со слично име веќе постои: [[$2|thumb]]
-* Име на податотека која се подигнува: '''<tt>[[:$1]]</tt>'''
-* Име на постоечка податотека: '''<tt>[[:$2]]</tt>'''
-Ве молиме изберете друго име за податотеката.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Податотека со слично име веќе постои: [[$2|thumb]]
+* Име на податотека која се подигнува: <strong>[[:$1]]</strong>
+* Име на постоечка податотека: <strong>[[:$2]]</strong>
+Ве молиме изберете друго име за податотеката.',
 'fileexists-thumbnail-yes' => "Се чини дека податотеката е слика со намалена големина ''(минијатура)''. [[$1|thumb]]
-Проверете ја податотеката '''<tt>[[:$1]]</tt>'''.
+Проверете ја податотеката <strong>[[:$1]]</strong>.
 Ако податотеката која ја проверувате е истата слика во својата изворна големина тогаш не мора да ја подигате дополнително.",
-'file-thumbnail-no' => "Името на податотеката почнува со '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Името на податотеката почнува со <strong>$1</strong>.
 Изгледа дека е слика со намалена големина ''(мини, thumbnail)''.
 Ако ја имате оваа слика во изворна големина, подигнете ја неја. Во спротивно сменете го името на податотеката.",
 'fileexists-forbidden' => 'Податотека со тоа име веќе постои и не може да биде заменета.
@@ -2047,6 +2047,7 @@ $1',
 'shared-repo' => 'заедничко складиште',
 'shared-repo-name-wikimediacommons' => 'Заедничката Ризница',
 'filepage.css' => '/* Тука поставените каскадни стилски страници (CSS) се вклучени во страницата за опис на податотеката, како и на клиентските викија */',
+'upload-disallowed-here' => 'Нажалост, не можете да ја замените сликава со нова.',
 
 # File reversion
 'filerevert' => 'Врати $1',
@@ -2081,7 +2082,7 @@ $1',
 # MIME search
 'mimesearch' => 'Пребарување по MIME',
 'mimesearch-summary' => 'Оваа страница овозможува филтрирање на податотеки врз основа на нивниот MIME-тип.
-Формат на внос: тип на содржина/поттип, на пр. <tt>image/jpeg</tt>.',
+Формат на внос: тип на содржина/поттип, на пр. <code>image/jpeg</code>.',
 'mimetype' => 'MIME-тип:',
 'download' => 'преземи',
 
@@ -2156,6 +2157,7 @@ $1',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|бајт|бајти}}',
 'ncategories' => '$1 {{PLURAL:$1|категорија|категории}}',
+'ninterwikis' => '$1 {{PLURAL:$1|меѓувики|меѓувикија}}',
 'nlinks' => '$1 {{PLURAL:$1|врска|врски}}',
 'nmembers' => '$1 {{PLURAL:$1|член|члена}}',
 'nrevisions' => '$1 {{PLURAL:$1|измена|измени}}',
@@ -2184,6 +2186,7 @@ $1',
 'mostlinkedtemplates' => 'Најмногу врски кон шаблони',
 'mostcategories' => 'Страници со најмногу категории',
 'mostimages' => 'Најмногу врски до податотеки',
+'mostinterwikis' => 'Страници со најмногу меѓувики',
 'mostrevisions' => 'Статии со најмногу верзии',
 'prefixindex' => 'Страници со префикс',
 'prefixindex-namespace' => 'Сите страници со префикс (именски простор $1)',
@@ -2285,7 +2288,7 @@ $1',
 'linksearch-ok' => 'Барај',
 'linksearch-text' => 'Може да се користат џокери, како на „*.wikipedia.org“.
 Бара највисок домен, како на пр. „*.org“.<br />
-Поддржани протоколи: <tt>$1</tt> (не ги ставајте во пребарувањето).',
+Поддржани протоколи: <code>$1</code> (не ги ставајте во пребарувањето).',
 'linksearch-line' => '$1 врска во $2',
 'linksearch-error' => 'Џокер-знаците може да се користат само на почетокот во името на домаќинот.',
 
@@ -2331,6 +2334,8 @@ $1',
 'mailnologin' => 'Нема адреса за праќање',
 'mailnologintext' => 'Мора да сте [[Special:UserLogin|најавени]] и да имате важечка е-поштенска адреса во вашите [[Special:Preferences|нагодувања]] за да може да праќате е-пошта до други корисници.',
 'emailuser' => 'Пиши е-пошта на корисникот',
+'emailuser-title-target' => 'Составување на е-пошта за {{GENDER:$1|корисникот}}',
+'emailuser-title-notarget' => 'Е-пошта за корисникот',
 'emailpage' => 'Е-пошта',
 'emailpagetext' => 'Можете да го користите следниов образец за праќање на е-поштенска порака до овој корисник.
 Е-поштенската адреса која ја имате наведено во [[Special:Preferences|вашите нагодувања]] ќе се прикаже во „Од“ полето на е-пораката, со што примачот ќе може да ви одговори директно вам.',
@@ -2983,6 +2988,7 @@ $1',
 'import-interwiki-templates' => 'Вклучи ги сите шаблони',
 'import-interwiki-submit' => 'Увези',
 'import-interwiki-namespace' => 'Целен именски простор:',
+'import-interwiki-rootpage' => 'Целна основна страница (незадолжително):',
 'import-upload-filename' => 'Податотека:',
 'import-comment' => 'Коментар:',
 'importtext' => 'Извезете ја податотеката од изворното вики користејќи ја [[Special:Export|алатката за извоз]].
@@ -3018,6 +3024,9 @@ $1',
 'import-error-interwiki' => 'Страницата „$1“ не е увезена бидејќи името е резервирано за надворешни врски (меѓувики).',
 'import-error-special' => 'Страницата „$1“ не е увезена бидејќи припаѓа на посебен именски простор што не дозволува страници.',
 'import-error-invalid' => 'Страницата „$1“ не е увезена бидејќи името ѝ е неважечко.',
+'import-options-wrong' => '{{PLURAL:$2|Погрешна можност|Погрешни можности}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Укажаната основна страница е неважечки наслов.',
+'import-rootpage-nosubpage' => 'Именскиот простор „$1“ на основната страница не допушта потстраници.',
 
 # Import log
 'importlogpage' => 'Дневник на увезувања',
@@ -3169,16 +3178,35 @@ $1',
 
 # Info page
 'pageinfo-title' => 'Информации за „$1“',
-'pageinfo-header-edits' => 'Уредувања',
-'pageinfo-header-watchlist' => 'Список на набљудувања',
-'pageinfo-header-views' => 'Посети',
-'pageinfo-subjectpage' => 'Страница',
-'pageinfo-talkpage' => 'Страница за разговор',
+'pageinfo-header-basic' => 'Основни информации',
+'pageinfo-header-edits' => 'Историја на уредувања',
+'pageinfo-header-restrictions' => 'Заштита на страницата',
+'pageinfo-header-properties' => 'Својства на страницата',
+'pageinfo-display-title' => 'Наслов за приказ',
+'pageinfo-default-sort' => 'Основен подредбен клуч',
+'pageinfo-length' => 'Должина на страницата (во бајти)',
+'pageinfo-article-id' => 'Назнака на страницата',
+'pageinfo-robot-policy' => 'Статус на прелистувачот',
+'pageinfo-robot-index' => 'Се индексира',
+'pageinfo-robot-noindex' => 'Не се индексира',
+'pageinfo-views' => 'Број на посети',
 'pageinfo-watchers' => 'Број на набљудувачи',
+'pageinfo-redirects-name' => 'Пренасочувања кон страницата',
+'pageinfo-redirects-value' => '$1',
+'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-views' => 'Број на посети',
-'pageinfo-viewsperedit' => 'Посети по уредување',
+'pageinfo-recent-edits' => 'Број на скорешни уредувања (во последните $1)',
+'pageinfo-recent-authors' => 'Број на скорешни засебни автори',
+'pageinfo-restriction' => 'Заштита на страницата (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Волшебен збор|Волшебни зборови}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Скриена категорија|Скриени категории}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Превметнат шаблон|Превметнати шаблони}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Класично',
@@ -3234,6 +3262,7 @@ $1',
 'file-info-size-pages' => '$1 × $2 пиксели, големина: $3, MIME-тип: $4, $5 {{PLURAL:$5|страница|страници}}',
 'file-nohires' => 'Не е достапна поголема резолуција.',
 'svg-long-desc' => 'SVG податотека, номинално $1 × $2 пиксели, големина: $3',
+'svg-long-desc-animated' => 'Анимирана SVG-податотека, номинално: $1 × $2 пиксели, големина: $3',
 'show-big-image' => 'Вистинска големина',
 'show-big-image-preview' => 'Големина на овој преглед: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Друга резолуција|Други резолуции}}: $1.',
@@ -3243,6 +3272,8 @@ $1',
 'file-info-png-looped' => 'кружно',
 'file-info-png-repeat' => 'пуштено {{PLURAL:$1|еднаш|$1 пати}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|кадар|кадри}}',
+'file-no-thumb-animation' => "'''Напомена: Поради технички ограничувања, минијатурите на оваа податотека нема да се анимираат.'''",
+'file-no-thumb-animation-gif' => "'''Напомена: Поради технички ограничувања, минијатурите на GIF-слики со висока резолуција како оваа нема да се анимираат.'''",
 
 # Special:NewFiles
 'newimages' => 'Галерија на нови податотеки',
index 0df0d7e..05ec30d 100644 (file)
@@ -649,8 +649,8 @@ $1',
 'dberrortext' => 'ഒരു വിവരശേഖര അന്വേഷണത്തിന്റെ ഉപയോഗക്രമത്തിൽ പിഴവ് സംഭവിച്ചിരിക്കുന്നു.
 ഇത് ചിലപ്പോൾ സോഫ്റ്റ്‌വെയർ ബഗ്ഗിനെ സൂചിപ്പിക്കുന്നതാവാം.
 അവസാനം ശ്രമിച്ച വിവരശേഖര അന്വേഷണം താഴെ കൊടുക്കുന്നു:
-<blockquote><tt>$1</tt></blockquote>
-"<tt>$2</tt>" എന്ന നിർദ്ദേശത്തിനകത്ത് നിന്നും.
+<blockquote><code>$1</code></blockquote>
+"<code>$2</code>" എന്ന നിർദ്ദേശത്തിനകത്ത് നിന്നും.
 വിവരശേഖരത്തിൽ നിന്നും ലഭിച്ച പിഴവ് "<tt>$3: $4</tt>".',
 'dberrortextcl' => 'വിവരശേഖര അന്വേഷണ ഘടനയിൽ ഒരു പിഴവ് സംഭവിച്ചിരിക്കുന്നു.
 അവസാനം ശ്രമിച്ച വിവരശേഖര അന്വേഷണം താഴെ കൊടുക്കുന്നു:
@@ -1700,7 +1700,7 @@ $1",
 പ്രമാണം താളിൽ പ്രദർശിപ്പിക്കുവാൻ താഴെ കാണുന്ന ഒരു വഴി സ്വീകരിക്കുക
 
 *'''<nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki>''' പൂർണ്ണരൂപത്തിലുള്ള പ്രമാണം ഉപയോഗിക്കാൻ
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' 200 പിക്സൽ ഉള്ള പെട്ടിയിൽ പകരമുള്ള എഴുത്തടക്കം ഉപയോഗിക്കാൻ
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' 200 പിക്സൽ ഉള്ള പെട്ടിയിൽ പകരമുള്ള എഴുത്തടക്കം ഉപയോഗിക്കാൻ
 *'''<nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki>''' പ്രമാണം കാട്ടാതെ പ്രമാണത്തെ നേരിട്ടു കണ്ണി ചേർക്കാൻ",
 'upload-permitted' => 'അനുവദനീയമായ പ്രമാണ തരങ്ങൾ: $1.',
 'upload-preferred' => 'പ്രോത്സാഹിപ്പിക്കുന്ന പ്രമാണ തരങ്ങൾ: $1.',
@@ -1745,22 +1745,22 @@ $2 {{PLURAL:$3|തരത്തിലുള്ള പ്രമാണം|തരങ
 പ്രമാണത്തിന്റെ പേരിലുള്ള അക്ഷരത്തെറ്റായിരിക്കാം ഇതിനു കാരണം.
 ഈ പ്രമാണം അപ്‌ലോഡ് ചെയ്യണോ എന്നൊരിക്കൽ കൂടി പരിശോധിക്കുക.',
 'windows-nonascii-filename' => 'പ്രത്യേകാക്ഷരങ്ങളുള്ള പ്രമാണനാമങ്ങൾ ഈ വിക്കി പിന്തുണയ്ക്കുന്നില്ല.',
-'fileexists' => "ഇതേ പേരിൽ വേറെ ഒരു പ്രമാണം നിലവിലുണ്ട്.
-ദയവായി '''<tt>[[:$1]]</tt>''' പരിശോധിച്ച് പ്രസ്തുത പ്രമാണം മാറ്റണമോ എന്നു തീരുമാനിക്കുക.
-[[$1|thumb]]",
-'filepageexists' => "ഈ പ്രമാണത്തിനുള്ള വിവരണതാൾ '''<tt>[[:$1]]</tt>''' എന്നു സൃഷ്ടിക്കപ്പെട്ടിട്ടുണ്ട്, പക്ഷേ ഇതേ പേരിൽ പ്രമാണം ഒന്നും നിലവിലില്ല.
+'fileexists' => 'ഇതേ പേരിൽ വേറെ ഒരു പ്രമാണം നിലവിലുണ്ട്.
+ദയവായി <strong>[[:$1]]</strong> പരിശോധിച്ച് പ്രസ്തുത പ്രമാണം മാറ്റണമോ എന്നു തീരുമാനിക്കുക.
+[[$1|thumb]]',
+'filepageexists' => 'ഈ പ്രമാണത്തിനുള്ള വിവരണതാൾ <strong>[[:$1]]</strong> എന്നു സൃഷ്ടിക്കപ്പെട്ടിട്ടുണ്ട്, പക്ഷേ ഇതേ പേരിൽ പ്രമാണം ഒന്നും നിലവിലില്ല.
 വിവരണതാളിൽ താങ്കൾ ഇവിടെ ചേർക്കുന്ന ലഘുകുറിപ്പ് പ്രത്യക്ഷപ്പെടുന്നതല്ല.
 അവിടെ ലഘുകുറിപ്പ് വരാൻ ആ താൾ താങ്കൾ സ്വയം തിരുത്തേണ്ടതാണ്.
-[[$1|ലഘുചിത്രം]]",
-'fileexists-extension' => "ഇതേ പേരിൽ മറ്റൊരു പ്രമാണം നിലവിലുണ്ട്: [[$2|ലഘുചിത്രം]]
-* ഇപ്പോൾ അപ്‌ലോഡ് ചെയ്ത പ്രമാണത്തിന്റെ പേര്‌: '''<tt>[[:$1]]</tt>'''
-* നിലവിലുള്ള പ്രമാണത്തിന്റെ പേര്‌: '''<tt>[[:$2]]</tt>'''
-മറ്റൊരു പേരു തിരഞ്ഞെടുക്കുക.",
+[[$1|ലഘുചിത്രം]]',
+'fileexists-extension' => 'ഇതേ പേരിൽ മറ്റൊരു പ്രമാണം നിലവിലുണ്ട്: [[$2|ലഘുചിത്രം]]
+* ഇപ്പോൾ അപ്‌ലോഡ് ചെയ്ത പ്രമാണത്തിന്റെ പേര്‌: <strong>[[:$1]]</strong>
+* നിലവിലുള്ള പ്രമാണത്തിന്റെ പേര്‌: <strong>[[:$2]]</strong>
+മറ്റൊരു പേരു തിരഞ്ഞെടുക്കുക.',
 'fileexists-thumbnail-yes' => "ഈ ചിത്രം വലിപ്പം കുറച്ച ഒന്നാണെന്നു ''(ലഘുചിത്രം)'' കാണുന്നു.
 [[$1|ലഘുചിത്രം]]
-ദയവായി '''<tt>[[:$1]]</tt>''' എന്ന ചിത്രം പരിശോധിക്കുക.
+ദയവായി <strong>[[:$1]]</strong> എന്ന ചിത്രം പരിശോധിക്കുക.
 [[:$1]] എന്ന ചിത്രവും ഈ ചിത്രവും ഒന്നാണെങ്കിൽ ലഘുചിത്രത്തിനു വേണ്ടി മാത്രമായി ചിത്രം അപ്‌ലോഡ് ചെയ്യേണ്ടതില്ല.",
-'file-thumbnail-no' => "പ്രമാണത്തിന്റെ പേര്‌  '''<tt>$1</tt>''' എന്നാണ്‌ തുടങ്ങുന്നത്.
+'file-thumbnail-no' => "പ്രമാണത്തിന്റെ പേര്‌  <strong>$1</strong> എന്നാണ്‌ തുടങ്ങുന്നത്.
 ഇതു വലിപ്പം കുറച്ച ഒരു ചിത്രം ''(ലഘുചിത്രം)'' ആണെന്നു കാണുന്നു.
 പൂർണ്ണ റെസലൂഷൻ ഉള്ള ചിത്രം ഉണ്ടെങ്കിൽ അതു അപ്‌ലോഡ് ചെയ്യുവാൻ താല്പര്യപ്പെടുന്നു, അല്ലെങ്കിൽ പ്രമാണത്തിന്റെ പേരു മാറ്റുവാൻ അഭ്യർത്ഥിക്കുന്നു.",
 'fileexists-forbidden' => 'ഈ പേരിൽ ഒരു പ്രമാണം നിലവിലുണ്ട്, അതു മാറ്റി സൃഷ്ടിക്കുക സാദ്ധ്യമല്ല.
@@ -2010,7 +2010,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 # MIME search
 'mimesearch' => 'മൈം(MIME) തിരയൽ',
 'mimesearch-summary' => 'ഈ താൾ പ്രമാണങ്ങളെ അവയുടെ മൈം(MIME)-തരം അനുസരിച്ച് അരിച്ചെടുക്കാൻ പ്രാപ്തമാക്കുന്നു:
-നൽകേണ്ടവിധം: പ്രമാണത്തിന്റെ തരം/ഉപതരം, ഉദാ:<tt>image/jpeg</tt>.',
+നൽകേണ്ടവിധം: പ്രമാണത്തിന്റെ തരം/ഉപതരം, ഉദാ:<code>image/jpeg</code>.',
 'mimetype' => 'മൈം(MIME) തരം:',
 'download' => 'ഡൗൺലോഡ്',
 
@@ -2210,7 +2210,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 'linksearch-ok' => 'തിരയൂ',
 'linksearch-text' => '"*.wikipedia.org" പോലുള്ള വൈൽഡ് കാർഡുകൾ ഉപയോഗിക്കാവുന്നതാണ്‌.
 കുറഞ്ഞത് "*.org" പോലുള്ള ടോപ്-ലെവൽ ഡൊമൈൻ എങ്കിലും ഉണ്ടായിരിക്കണം.<br />
-പിന്താങ്ങുന്ന പ്രോട്ടോക്കോളുകൾ: <tt>$1</tt> (താങ്കളുടെ തിരച്ചിലിൽ ഇവ ചേർക്കരുത്).',
+പിന്താങ്ങുന്ന പ്രോട്ടോക്കോളുകൾ: <code>$1</code> (താങ്കളുടെ തിരച്ചിലിൽ ഇവ ചേർക്കരുത്).',
 'linksearch-line' => '$1,  $2ൽ നിന്നു കണ്ണി ചേർക്കപ്പെട്ടിരിക്കുന്നു.',
 'linksearch-error' => 'ഹോസ്റ്റ്നെയിമിന്റെ തുടക്കത്തിൽ മാത്രമേ വൈൽഡ് കാർഡുകൾ വരാവൂ.',
 
@@ -3069,15 +3069,10 @@ $1',
 # Info page
 'pageinfo-title' => '"$1" എന്ന താളിന്റെ വിവരങ്ങൾ',
 'pageinfo-header-edits' => 'തിരുത്തലുകൾ',
-'pageinfo-header-watchlist' => 'ശ്രദ്ധിക്കുന്നവ',
-'pageinfo-header-views' => 'എടുത്തുനോക്കലുകൾ',
-'pageinfo-subjectpage' => 'താൾ',
-'pageinfo-talkpage' => 'സം‌വാദം താൾ',
+'pageinfo-views' => 'എടുത്തുനോക്കലുകളുടെ എണ്ണം',
 'pageinfo-watchers' => 'ശ്രദ്ധിക്കുന്നവരുടെ എണ്ണം',
 'pageinfo-edits' => 'ആകെ തിരുത്തലുകൾ',
 'pageinfo-authors' => 'ആകെ രചയിതാക്കളുടെ എണ്ണം',
-'pageinfo-views' => 'എടുത്തുനോക്കലുകളുടെ എണ്ണം',
-'pageinfo-viewsperedit' => 'ഓരോ തിരുത്തലിലും ഉള്ള എടുത്തുനോട്ടങ്ങൾ',
 
 # Skin names
 'skinname-standard' => 'സാർവത്രികം',
index 88713b2..e6b5d5f 100644 (file)
@@ -1445,20 +1445,20 @@ $1 тэмдэгтээс богино байх ёстой.',
 'emptyfile' => 'Таны оруулсан файл хоосон байх шиг байна. Энэ нь файлын нэрийг алдаатай оруулснаас болсон байж магадгүй.
 Энэ файлыг үнэхээр оруулахыг хүсэж байгаа эсэхээ шалгана уу.',
 'windows-nonascii-filename' => 'Энэ вики файлын нэрэнд тусгай тэмдэгт хэрэглэхийг хориглож байна.',
-'fileexists' => "Ийм нэртэй файл байна. Та үүнийг өөрчлөхийг хүсэж байгаадаа итгэлгүй байвал '''<tt>[[:$1]]</tt>'''-г шалгаж үзнэ үү.
-[[$1|thumb]]",
-'filepageexists' => "Энэ файлын тайлбар хуудас '''<tt>[[:$1]]</tt>'''-д аль хэдийнээ үүсгэгдсэн байна. Харин энэ нэртэй файл байхгүй байна.
+'fileexists' => 'Ийм нэртэй файл байна. Та үүнийг өөрчлөхийг хүсэж байгаадаа итгэлгүй байвал <strong>[[:$1]]</strong>-г шалгаж үзнэ үү.
+[[$1|thumb]]',
+'filepageexists' => 'Энэ файлын тайлбар хуудас <strong>[[:$1]]</strong>-д аль хэдийнээ үүсгэгдсэн байна. Харин энэ нэртэй файл байхгүй байна.
 Таны оруулсан файлын тухай товч агуулга нь тайлбарын хуудсанд гарахгүй.
-Өөрийн оруулсан файлын тухай товч агуулгыг тэнд тавихын тулд та гар аргаар засварлах хэрэгтэй",
-'fileexists-extension' => "Ойролцоо нэртэй файл байна: [[$2|thumb]]
-* Оруулж байгаа файлын нэр: '''<tt>[[:$1]]</tt>'''
-* Оршиж буй файлын нэр: '''<tt>[[:$2]]</tt>'''
-Өөр нэр сонгоно уу.",
+Өөрийн оруулсан файлын тухай товч агуулгыг тэнд тавихын тулд та гар аргаар засварлах хэрэгтэй',
+'fileexists-extension' => 'Ойролцоо нэртэй файл байна: [[$2|thumb]]
+* Оруулж байгаа файлын нэр: <strong>[[:$1]]</strong>
+* Оршиж буй файлын нэр: <strong>[[:$2]]</strong>
+Өөр нэр сонгоно уу.',
 'fileexists-thumbnail-yes' => "Энэ файл хэмжээг нь багасгасан зураг юм шиг байна ''(thumbnail)''.
 [[$1|thumb]]
-'''<tt>[[:$1]]</tt>''' файлыг шалгана уу.
+<strong>[[:$1]]</strong> файлыг шалгана уу.
 Хэрэв шалгагдсан файл ердийн хэмжээний ижил зураг бол дахин жижиг зургийг оруулах хэрэггүй.",
-'file-thumbnail-no' => "Файлын нэр '''<tt>$1</tt>'''-р эхэлж байна.
+'file-thumbnail-no' => "Файлын нэр <strong>$1</strong>-р эхэлж байна.
 Хэмжээг нь багасгасан зураг юм шиг байна ''(thumbnail)''.
 Таньд энэ зурагны чанар сайтай хувилбар байвал түүнийгээ оруулж, байхгүй бол файлын нэрийг өөрчилнө үү.",
 'fileexists-forbidden' => 'Ийм нэртэй файл аль хэдийнээ байгаа бөгөөд дэtрээс нь дарж бичих боломжгүй байна.
@@ -1685,7 +1685,7 @@ URL нь зөв болон сайт ажиллагаатай байгаа эсэ
 # MIME search
 'mimesearch' => 'MIME хайлт',
 'mimesearch-summary' => 'Энэ хуудас MIME-төрлөөр нь файлуудыг шүүх боломжийг олгодог.
-Оруулалт: агуулгын төрөл/доод төрөл, ж.нь. <tt>image/jpeg</tt>.',
+Оруулалт: агуулгын төрөл/доод төрөл, ж.нь. <code>image/jpeg</code>.',
 'mimetype' => 'MIME төрөл:',
 'download' => 'Татаж авах',
 
@@ -1869,7 +1869,7 @@ URL нь зөв болон сайт ажиллагаатай байгаа эсэ
 'linksearch-ok' => 'Хайх',
 'linksearch-text' => '"*.wikipedia.org" зэрэг орлуулагч тэмдэгт хэрэглэх боломжтой.<br />
 Дор хаяж дээд түвшиний домайн хэрэгтэй байна, жишээ нь "*.org".<br />
-Дэмжигдэх протоколууд : <tt>$1</tt> (эдгээрээс алийг нь ч хайлтад бүү оруул).',
+Дэмжигдэх протоколууд : <code>$1</code> (эдгээрээс алийг нь ч хайлтад бүү оруул).',
 'linksearch-line' => '$1 нь $2-с холбогдсон',
 'linksearch-error' => 'Орлуулагч тэмдэгт хост нэрийн эхлэлд л гарах боломжтой.',
 
@@ -2656,14 +2656,10 @@ $1',
 # Info page
 'pageinfo-title' => '"$1" - хуудасны мэдээлэл',
 'pageinfo-header-edits' => 'Өөрчлөлтүүд',
-'pageinfo-header-views' => 'Харагдац',
-'pageinfo-subjectpage' => 'Хуудас',
-'pageinfo-talkpage' => 'Ярианы хуудас',
+'pageinfo-views' => 'Харагдацуудын тоо',
 'pageinfo-watchers' => 'Хянагчдын тоо',
 'pageinfo-edits' => 'Засваруудын тоо',
 'pageinfo-authors' => 'Тус тусын зохиогчидын тоо',
-'pageinfo-views' => 'Харагдацуудын тоо',
-'pageinfo-viewsperedit' => 'Засвар тус бүрийн харагдац',
 
 # Patrolling
 'markaspatrolleddiff' => 'Хяналтанд авъя',
index 90b7e26..57c8314 100644 (file)
@@ -1681,19 +1681,19 @@ $1",
 'largefileserver' => 'सेवा संगणकावर (सर्वर) निर्धारित केलेल्या आकारापेक्षा या संचिकेचा आकार मोठा आहे.',
 'emptyfile' => 'चढवलेली संचिका रिकामी आहे. हे संचिकानाम चुकीचे लिहिल्याने असू शकते. कृपया तुम्हाला हीच संचिका चढवायची आहे का ते तपासा.',
 'windows-nonascii-filename' => 'या विकीवर विशेष चिन्हातील फाईलनांवाचा आधार घेता येणार नाही.',
-'fileexists' => "या नावाची संचिका आधीच अस्तित्वात आहे, कृपया ही संचिका बदलण्याबद्दल तुम्ही साशंक असाल तर '''<tt>[[:$1]]</tt>''' तपासा.
-[[$1|thumb]]",
-'filepageexists' => "या नावाचे एक माहितीपृष्ठ (संचिका नव्हे) अगोदरच अस्तित्त्वात आहे. कृपया जर आपणांस त्यात बदल करायचा नसेल तर '''<tt>[[:$1]]</tt>''' तपासा.
-[[$1|thumb]]",
-'fileexists-extension' => "या नावाची संचिका अस्तित्वात आहे: [[$2|thumb]]
-* चढवित असलेल्या संचिकेचे नाव: '''<tt>[[:$1]]</tt>'''
-* अस्तित्वात असलेल्या संचिकेचे नाव: '''<tt>[[:$2]]</tt>'''
-कृपया दुसरे नाव निवडा.",
+'fileexists' => 'या नावाची संचिका आधीच अस्तित्वात आहे, कृपया ही संचिका बदलण्याबद्दल तुम्ही साशंक असाल तर <strong>[[:$1]]</strong> तपासा.
+[[$1|thumb]]',
+'filepageexists' => 'या नावाचे एक माहितीपृष्ठ (संचिका नव्हे) अगोदरच अस्तित्त्वात आहे. कृपया जर आपणांस त्यात बदल करायचा नसेल तर <strong>[[:$1]]</strong> तपासा.
+[[$1|thumb]]',
+'fileexists-extension' => 'या नावाची संचिका अस्तित्वात आहे: [[$2|thumb]]
+* चढवित असलेल्या संचिकेचे नाव: <strong>[[:$1]]</strong>
+* अस्तित्वात असलेल्या संचिकेचे नाव: <strong>[[:$2]]</strong>
+कृपया दुसरे नाव निवडा.',
 'fileexists-thumbnail-yes' => "आपण चढवित असलेली संचिका ही मोठ्या चित्राची इवलीशी प्रतिकृती ''(thumbnail)'' असण्याची शक्यता आहे. [[$1|इवलेसे]]
-कृपया '''<tt>[[:$1]]</tt>''' ही संचिका तपासा.
+कृपया <strong>[[:$1]]</strong> ही संचिका तपासा.
 जर तपासलेली संचिका ही याच आकाराची असेल तर नवीन प्रतिकृती चढविण्याची गरज नाही.",
-'file-thumbnail-no' => "या संचिकेचे नाव '''<tt>$1</tt>''' पासून सुरू होत आहे. ही कदाचित झलक असू शकते.
-जर तुमच्या कडे पूर्ण रिझोल्यूशनची संचिका असेल तर चढवा अथवा संचिकेचे नाव बदला.",
+'file-thumbnail-no' => 'या संचिकेचे नाव <strong>$1</strong> पासून सुरू होत आहे. ही कदाचित झलक असू शकते.
+जर तुमच्या कडे पूर्ण रिझोल्यूशनची संचिका असेल तर चढवा अथवा संचिकेचे नाव बदला.',
 'fileexists-forbidden' => 'या नावाची संचिका अगोदरच अस्तित्त्वात आहे; कृपया पुन्हा मागे जाऊन ही संचिका नवीन नावाने चढवा.
 [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'हे नाव असलेली एक संचिका शेअर्ड संचिका कोशात आधी पासून आहे; कृपया परत फिरा आणि नविन(वेगळ्या) नावाने ही संचिका पुन्हा चढवा.[[File:$1|thumb|center|$1]]',
@@ -1927,7 +1927,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization कृपया हे
 # MIME search
 'mimesearch' => 'विविधामाप (माईम) शोधा',
 'mimesearch-summary' => 'हे पान विविधामाप (माईम)-प्रकारांकरिता संचिकांची चाळणी करण्याची सुविधा पुरवते:
-Input:contenttype/subtype, e.g. <tt>image/jpeg</tt>.',
+Input:contenttype/subtype, e.g. <code>image/jpeg</code>.',
 'mimetype' => 'विविधामाप (माईम) प्रकार:',
 'download' => 'उतरवा',
 
@@ -2118,7 +2118,7 @@ Input:contenttype/subtype, e.g. <tt>image/jpeg</tt>.',
 'linksearch-ok' => 'शोध',
 'linksearch-text' => '"*.wikipedia.org" सारखी वाईल्डकार्ड्स वापरायला परवानगी आहे.
 किमान एक उच्च-स्तरिय डोमेन (top-level domain) गरजेचे आहे.<br />
-पुढील प्रोटोकॉल्समध्ये चालेल: <tt>$1</tt> (तुमच्या शोधामध्ये या पैकी कुठलेही टाकू नयेत).',
+पुढील प्रोटोकॉल्समध्ये चालेल: <code>$1</code> (तुमच्या शोधामध्ये या पैकी कुठलेही टाकू नयेत).',
 'linksearch-line' => '$2 मधून $1 जोडलेले आहे',
 'linksearch-error' => 'वाईल्डकार्ड्स होस्ट नावाच्या फक्त सुरवातीलाच येऊ शकतात.',
 
@@ -2936,15 +2936,10 @@ $1',
 # Info page
 'pageinfo-title' => '"$1" च्याबद्दल माहिती',
 'pageinfo-header-edits' => 'संपादने',
-'pageinfo-header-watchlist' => 'पहाऱ्याची सूची',
-'pageinfo-header-views' => 'दृष्टीपथात',
-'pageinfo-subjectpage' => 'पान',
-'pageinfo-talkpage' => 'चर्चा पान',
+'pageinfo-views' => 'अभिप्रायांची संख्या',
 'pageinfo-watchers' => 'पाहणाऱ्यांची संख्या',
 'pageinfo-edits' => 'संपादनांची संख्या',
 'pageinfo-authors' => 'वेगळ्या लेखकांची संख्या',
-'pageinfo-views' => 'अभिप्रायांची संख्या',
-'pageinfo-viewsperedit' => 'प्रति संपादन अभिप्राय',
 
 # Skin names
 'skinname-standard' => 'अभिजात',
index 50425d1..6fd13c7 100644 (file)
@@ -515,12 +515,12 @@ Senarai laman khas yang sah boleh dilihat di [[Special:SpecialPages]].',
 # General errors
 'error' => 'Ralat',
 'databaseerror' => 'Ralat pangkalan data',
-'dberrortext' => 'Ralat sintaks pertanyaan pangkalan data telah terjadi.
-Ini mungkin menandakan pepijat dalam perisian wiki ini.
-Pertanyaan pangkalan data yang terakhir ialah:
-<blockquote><tt>$1</tt></blockquote>
-daripada fungsi "<tt>$2</tt>".
-Pangkalan data memulangkan ralat "<tt>$3: $4</tt>".',
+'dberrortext' => 'Terjadinya ralat sintaks pertanyaan pangkalan data.
+Ini mungkin menandakan adanya pepijat dalam perisian ini.
+Pertanyaan pangkalan data terakhir yang dicuba ialah:
+<blockquote><code>$1</code></blockquote>
+daripada dalam fungsi "<samp>$2</samp>".
+Pangkalan data memulangkan ralat "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Terdapat ralat sintaks pertanyaan pangkalan data.
 Pertanyaan terakhir ialah:
 "$1"
@@ -854,11 +854,10 @@ Butirannya boleh didapati di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGEN
 'userpage-userdoesnotexist-view' => 'Akaun pengguna "$1" tidak berdaftar.',
 'blocked-notice-logextract' => 'Pengguna ini sedang disekat.
 Masukan log sekatan terakhir disediakan di bawah sebagai rujukan:',
-'clearyourcache' => "'''Catatan: Selepas menyimpan laman ini, anda mungkin perlu membersihkan cache pelayar web anda terlebih dahulu untuk mengenakan perubahan.'''
+'clearyourcache' => "'''Catatan:''' Selepas menyimpan laman ini, anda mungkin perlu membersihkan cache pelayar web anda terlebih dahulu untuk mengenakan perubahan.
 *'''Firefox/Safari:''' Tekan terus ''Shift'' sambil klik ''Reload'', atau tekan ''Ctrl+F5'' atau tekan ''Ctrl+R''  (''⌘+R'' bagi Mac)
 *'''Google Chrome:''' Tekan ''Ctrl+Shift+R''  (''⌘+Shift+R'' bagi Mac)
 *'''Internet Explorer:''' Tekan terus ''Ctrl'' sambil klik ''Refresh'', atau tekan ''Ctrl+F5''
-*'''Konqueror:''' Klik butang ''Reload'', atau tekan ''F5''
 *'''Opera:''' Kosongkan cache di menu ''Tools → Preferences''",
 'usercssyoucanpreview' => "'''Petua:''' Gunakan butang \"{{int:showpreview}}\" untuk menguji CSS baru anda sebelum menyimpan.",
 'userjsyoucanpreview' => "'''Petua:''' Gunakan butang \"{{int:showpreview}}\" untuk menguji JavaScript baru anda sebelum menyimpan.",
@@ -1581,9 +1580,9 @@ Log penghapusan dan pemindahan untuk laman ini disediakan di bawah ini untuk kem
 Untuk melihat atau mencari imej yang sudah dimuat naik, sila ke [[Special:FileList|senarai fail yang dimuat naik]]. Tindakan muat naik akan direkodkan dalam [[Special:Log/upload|log muat naik]], manakala penghapusan dalam [[Special:Log/delete|log penghapusan]].
 
 Untuk menyertakan sebarang fail ke dalam sesebuah laman, gunakan pautan dengan satu daripada bentuk-bentuk berikut:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.jpg]]</nowiki></tt>''' untuk menggunakan versi penuh bagi fail itu
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.png|200px|thumb|left|teks alternatif]]</nowiki></tt>''' untuk menggunakan lakaran 200 piksel lebar di dalam sebuah kotak yang diletakkan di jidar kiri dengan keterangan 'teks alternatif'
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fail.ogg]]</nowiki></tt>''' untuk memaut secara terus tanpa memaparkan fail itu",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.jpg]]</nowiki></code>''' untuk menggunakan versi penuh bagi fail itu
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fail.png|200px|thumb|left|teks alternatif]]</nowiki></code>''' untuk menggunakan lakaran 200 piksel lebar di dalam sebuah kotak yang diletakkan di jidar kiri dengan keterangan 'teks alternatif'
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fail.ogg]]</nowiki></code>''' untuk memaut secara terus tanpa memaparkan fail itu",
 'upload-permitted' => 'Jenis fail yang dibenarkan: $1.',
 'upload-preferred' => 'Jenis fail yang diutamakan: $1.',
 'upload-prohibited' => 'Jenis fail yang dilarang: $1.',
@@ -1624,20 +1623,20 @@ Untuk menyertakan sebarang fail ke dalam sesebuah laman, gunakan pautan dengan s
 'largefileserver' => 'Fail ini telah melebihi had muat naik pelayan web.',
 'emptyfile' => 'Fail yang dimuat naik adalah kosong. Ini mungkin disebabkan oleh kesilapan menaip nama fail. Sila pastikan bahawa anda betul-betul mahu memuat naik fail ini.',
 'windows-nonascii-filename' => 'Wiki ini tidak menyokong nama fail yang mengandungi aksara khas.',
-'fileexists' => "Sebuah fail dengan nama ini telah pun wujud.
-Sila semak '''<tt>[[:$1]]</tt>''' sekiranya anda tidak pasti bahawa anda mahu menukarnya atau tidak.
-[[$1|thumb]]",
-'filepageexists' => "Laman penerangan untuk fail ini telah pun dicipta di '''<tt>[[:$1]]</tt>''', tetapi tiada fail dengan nama ini wujud.
+'fileexists' => 'Sebuah fail dengan nama ini telah pun wujud.
+Sila semak <strong>[[:$1]]</strong> sekiranya anda tidak pasti bahawa anda mahu menukarnya atau tidak.
+[[$1|thumb]]',
+'filepageexists' => 'Laman penerangan untuk fail ini telah pun dicipta di <strong>[[:$1]]</strong>, tetapi tiada fail dengan nama ini wujud.
 Ringkasan yang anda masukkan tidak akan muncul di laman penerangan tersebut. Untuk memastikannya muncul, anda perlu menyuntingnya secara manual.
-[[$1|thumb]]",
-'fileexists-extension' => "Sebuah fail dengan nama yang sama telah pun wujud: [[$2|thumb]]
-* Nama fail yang dimuat naik: '''<tt>[[:$1]]</tt>'''
-* Nama fail yang sedia ada: '''<tt>[[:$2]]</tt>'''
-Sila pilih nama lain.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Sebuah fail dengan nama yang sama telah pun wujud: [[$2|thumb]]
+* Nama fail yang dimuat naik: <strong>[[:$1]]</strong>
+* Nama fail yang sedia ada: <strong>[[:$2]]</strong>
+Sila pilih nama lain.',
 'fileexists-thumbnail-yes' => "Fail ini kelihatan seperti sebuah imej yang telah dikecilkan ''(gambar kenit)''. [[$1|thumb]]
-Sila semak fail '''<tt>[[:$1]]</tt>'''.
+Sila semak fail <strong>[[:$1]]</strong>.
 Jika fail yang disemak itu adalah sama dengan yang saiz asal, maka anda tidak perlu memuat naik gambar kenit tambahan.",
-'file-thumbnail-no' => "Nama fail ini bermula dengan '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Nama fail ini bermula dengan <strong>$1</strong>.
 Barangkali ia adalah sebuah imej yang telah dikecilkan ''(gambar kenit)''.
 Jika anda memiliki imej ini dalam leraian penuh, sila muat naik fail tersebut. Jika tidak, sila tukar nama fail ini.",
 'fileexists-forbidden' => 'Sebuah fail dengan nama ini telah pun wujud, dan tidak boleh ditulis ganti. Jika anda masih mahu memuat naik fail ini, sila berundur dan muat naik fail ini dengan nama lain. [[File:$1|thumb|center|$1]]',
@@ -1860,6 +1859,7 @@ Mungkin anda ingin menyunting keterangan pada [$2 laman penerangan failnya] di s
 'shared-repo' => 'sebuah gedung kongsi',
 'shared-repo-name-wikimediacommons' => 'Wikimedia Commons',
 'filepage.css' => '/* CSS yang ditempatkan di sini disertakan pada laman keterangan fail, dan juga pada klien wiki asing */',
+'upload-disallowed-here' => 'Maaf, anda tidak boleh menggantikan imej ini.',
 
 # File reversion
 'filerevert' => 'Balikkan $1',
@@ -1894,7 +1894,7 @@ Mungkin anda ingin menyunting keterangan pada [$2 laman penerangan failnya] di s
 
 # MIME search
 'mimesearch' => 'Carian MIME',
-'mimesearch-summary' => 'Anda boleh menggunakan laman ini untuk mencari fail mengikut jenis MIME. Format input ialah "jenis/subjenis", contohnya <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Anda boleh menggunakan laman ini untuk mencari fail mengikut jenis MIME. Format input ialah "jenis/subjenis", contohnya <code>image/jpeg</code>.',
 'mimetype' => 'Jenis MIME:',
 'download' => 'muat turun',
 
@@ -1966,6 +1966,7 @@ Masukan yang <del>dipotong</del> telah diselesaikan.',
 # Miscellaneous special pages
 'nbytes' => '{{PLURAL:$1|$1 bait}}',
 'ncategories' => '$1 kategori',
+'ninterwikis' => '$1 pautan antara wiki',
 'nlinks' => '$1 pautan',
 'nmembers' => '$1 ahli',
 'nrevisions' => '$1 semakan',
@@ -1994,6 +1995,7 @@ Masukan yang <del>dipotong</del> telah diselesaikan.',
 'mostlinkedtemplates' => 'Templat dipaut terbanyak',
 'mostcategories' => 'Rencana dengan kategori terbanyak',
 'mostimages' => 'Imej dipaut terbanyak',
+'mostinterwikis' => 'Halaman yang paling banyak pautan antara wiki',
 'mostrevisions' => 'Rencana dengan semakan terbanyak',
 'prefixindex' => 'Indeks awalan',
 'prefixindex-namespace' => 'Semua laman dengan awalan (ruang nama $1)',
@@ -2093,7 +2095,7 @@ Lihat juga [[Special:WantedCategories|kategori yang dikehendaki]].',
 'linksearch-ok' => 'Cari',
 'linksearch-text' => 'Kad bebas seperti "*.wikipedia.org" dibenarkan.<br />
 Memerlukan sekurang-kurangnya satu domain peringkat tinggi, cth. "*.org".<br />
-Protokol yang disokong: <tt>$1</tt> (jangan bubuh sebarang protokol ini dalam carian anda)',
+Protokol yang disokong: <code>$1</code> (jangan bubuh sebarang protokol ini dalam carian anda)',
 'linksearch-line' => '$1 dipaut dari $2',
 'linksearch-error' => 'Kad bebas hanya boleh digunakan pada permulaan nama hos.',
 
@@ -2141,6 +2143,8 @@ Anda boleh mengetahui [[{{MediaWiki:Listgrouprights-helppage}}|maklumat tambahan
 terlebih dahulu dan mempunyai alamat e-mel yang sah dalam
 [[Special:Preferences|laman keutamaan]] untuk mengirim e-mel kepada pengguna lain.',
 'emailuser' => 'Kirim e-mel kepada pengguna ini',
+'emailuser-title-target' => 'E-mel {{GENDER:$1|pengguna}} ini',
+'emailuser-title-notarget' => 'E-mel pengguna',
 'emailpage' => 'E-mel pengguna',
 'emailpagetext' => 'Gunakan borang berikut untuk mengirim pesanan e-mel kepada pengguna ini.
 
@@ -2785,6 +2789,7 @@ Semua tindakan import transwiki dicatatkan dalam [[Special:Log/import|log import
 'import-interwiki-templates' => 'Sertakan semua templat',
 'import-interwiki-submit' => 'Import',
 'import-interwiki-namespace' => 'Ruang nama destinasi:',
+'import-interwiki-rootpage' => 'Halaman akar tujuan (tidak wajib):',
 'import-upload-filename' => 'Nama fail:',
 'import-comment' => 'Komen:',
 'importtext' => 'Sila eksport fail daripada sumber wiki dengan menggunakan [[Special:Export|utiliti eksport]].
@@ -2817,6 +2822,9 @@ Simpan dalam komputer anda dan muat naiknya di sini.',
 'import-error-interwiki' => 'Laman "$1" tidak diimport kerana namanya ditempah untuk pemautan luaran (antara wiki).',
 'import-error-special' => 'Laman "$1" tidak diimport kerana ia tergolong dalam ruang nama khas yang tidak membenarkan laman.',
 'import-error-invalid' => 'Laman "$1" tidak diimport kerana namanya tidak sah.',
+'import-options-wrong' => '{{PLURAL:$2|Pilihan|Pilihan-pilihan}} salah: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Halaman akar yang dinyatakan adalah tidak sah.',
+'import-rootpage-nosubpage' => 'Ruang nama "$1" halaman akar tidak membenarkan subhalaman.',
 
 # Import log
 'importlogpage' => 'Log import',
@@ -2944,16 +2952,34 @@ Simpan dalam komputer anda dan muat naiknya di sini.',
 
 # Info page
 'pageinfo-title' => 'Maklumat untuk "$1"',
-'pageinfo-header-edits' => 'Suntingan',
-'pageinfo-header-watchlist' => 'Senarai pantau',
-'pageinfo-header-views' => 'Kunjungan',
-'pageinfo-subjectpage' => 'Laman',
-'pageinfo-talkpage' => 'Laman perbincangan',
-'pageinfo-watchers' => 'Bilangan pemantau',
-'pageinfo-edits' => 'Bilangan suntingan',
-'pageinfo-authors' => 'Bilangan pengarang yang berlainan',
+'pageinfo-header-basic' => 'Maklumat asas',
+'pageinfo-header-edits' => 'Sunting sejarah',
+'pageinfo-header-restrictions' => 'Perlindungan halaman',
+'pageinfo-header-properties' => 'Sifat halaman',
+'pageinfo-display-title' => 'Tajuk paparan',
+'pageinfo-default-sort' => 'Kunci isih azali',
+'pageinfo-length' => 'Kepanjangan halaman (bait)',
+'pageinfo-article-id' => 'ID halaman',
+'pageinfo-robot-policy' => 'Status enjin pencarian',
+'pageinfo-robot-index' => 'Boleh diindekskan',
+'pageinfo-robot-noindex' => 'Tidak boleh diindekskan',
 'pageinfo-views' => 'Bilangan kunjungan',
-'pageinfo-viewsperedit' => 'Kunjungan sesuntingan',
+'pageinfo-watchers' => 'Bilangan pemantau halaman',
+'pageinfo-redirects-name' => 'Lencongan ke halaman ini',
+'pageinfo-subpages-name' => 'Subhalaman untuk halaman ini',
+'pageinfo-subpages-value' => '$1 ($2 lencongan; $3 bukan lencongan)',
+'pageinfo-firstuser' => 'Pembuat halaman',
+'pageinfo-firsttime' => 'Tarikh halaman dibuat',
+'pageinfo-lastuser' => 'Penyunting terkini',
+'pageinfo-lasttime' => 'Tarikh suntingan terkini',
+'pageinfo-edits' => 'Jumlah suntingan',
+'pageinfo-authors' => 'Jumlah pengarang yang berlainan',
+'pageinfo-recent-edits' => 'Bilangan suntingan terkini (dalam $1 yang lalu)',
+'pageinfo-recent-authors' => 'Bilangan pengarang berbeza yang terkini',
+'pageinfo-restriction' => 'Perlindungan halaman (<code>$1</code>)',
+'pageinfo-magic-words' => 'Kata sakti ($1)',
+'pageinfo-hidden-categories' => 'Kategori tersembunyi ($1)',
+'pageinfo-templates' => 'Templat tertransklusi ($1)',
 
 # Skin names
 'skinname-standard' => 'Klasik',
@@ -3009,6 +3035,7 @@ Dengan menjalankannya, komputer anda mungkin akan terjejas.",
 'file-info-size-pages' => '$1 × $2 piksel, saiz fail: $3, jenis MIME: $4, $5 laman',
 'file-nohires' => 'Tiada leraian lebih besar.',
 'svg-long-desc' => 'Fail SVG, ukuran dasar $1 × $2 piksel, saiz fail: $3',
+'svg-long-desc-animated' => 'Fail SVG animasi, ukuran dasar $1 × $2 piksel, saiz fail: $3',
 'show-big-image' => 'Leraian penuh',
 'show-big-image-preview' => 'Saiz pralihat ini: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Leraian|Leraian-leraian}} lain: $1.',
@@ -3018,6 +3045,8 @@ Dengan menjalankannya, komputer anda mungkin akan terjejas.",
 'file-info-png-looped' => 'berulang',
 'file-info-png-repeat' => 'dimainkan {{PLURAL:$1|sekali|sebanyak $1 kali}}',
 'file-info-png-frames' => '$1 bingkai',
+'file-no-thumb-animation' => "'''Perhatian: Disebabkan had teknikal, gambar kenit untuk fail ini tidak beranimasi.'''",
+'file-no-thumb-animation-gif' => "''''''Perhatian: Disebabkan had teknikal, gambar kenit untuk imej GIF beresolusi tinggi seperti ini tidak beranimasi.'''",
 
 # Special:NewFiles
 'newimages' => 'Galeri fail baru',
index d881a1e..f5bc99b 100644 (file)
@@ -1003,7 +1003,7 @@ Tista' tmur lura u tagħmel modifiki ta' paġni eżistenti, inkella [[Special:Us
 
 Aċċerta ruħek jekk huwiex opportun li tkompli timmodifika din il-paġna.
 Ir-reġistru tat-tħassir u tal-mixi huwa pprovdut għal aktar konvenjenza:",
-'moveddeleted-notice' => 'Din il-paġna ġiet imħassra. Ir-reġistri tat-tħassir u tal-mixi għal din il-paġna huma provduti hawn taħt għal referenza.',
+'moveddeleted-notice' => 'Din il-paġna ġiet imħassra. Ir-reġistri tat-tħassir u tal-mixi għal din il-paġna huma provduti hawn taħt bħala referenza.',
 'log-fulllog' => 'Uri r-reġistru sħiħ',
 'edit-hook-aborted' => "Il-modifika ġiet abbandunata mill-''hook''.
 Ma ngħatat l-ebda spjegazzjoni.",
@@ -1618,9 +1618,9 @@ Ir-reġistru tat-tħassir u tat-tmexxieh għal din il-paġna huma mogħtija għa
 Biex tara jew tfittex fajls li ġew mtellgħin qabel mur fil-[[Special:FileList|lista ta' fajls mtellgħin]]. Fajls imtellgħin u verżjonijiet ġodda tal-fajls huma reġistrati fir-[[Special:Log/upload|reġistru tat-tlugħ tal-fajls]], u dawk li tħassru huma fir-[[Special:Log/delete|reġistru tat-tħassir]].
 
 Biex tinkludi fajl f'paġna, uża ħolqa taħt waħda minn dawn il-forom:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fajl.jpg]]</nowiki></tt>''' sabiex tuża' l-verżjoni sħiħa tal-fajl
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fajl.png|200px|thumb|left|test alternattiv]]</nowiki></tt>''' sabiex tpoġġi l-istampa fuq ix-xellug ġo kaxxa ta' 200px b'\"test alternattiv\" tkun id-deskrizzjoni
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fajl.ogg]]</nowiki></tt>''' biex toħloq ħolqa diretta lejn il-fajl, mingħajr ma turih.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fajl.jpg]]</nowiki></code>''' sabiex tuża' l-verżjoni sħiħa tal-fajl
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fajl.png|200px|thumb|left|test alternattiv]]</nowiki></code>''' sabiex tpoġġi l-istampa fuq ix-xellug ġo kaxxa ta' 200px b'\"test alternattiv\" tkun id-deskrizzjoni
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fajl.ogg]]</nowiki></code>''' biex toħloq ħolqa diretta lejn il-fajl, mingħajr ma turih.",
 'upload-permitted' => "Tipi ta' fajls permessi: $1.",
 'upload-preferred' => "Tipi ta' fajls preferuti: $1.",
 'upload-prohibited' => "Tipi ta' fajls projibiti: $1.",
@@ -1665,19 +1665,19 @@ dan il-fajl huwa $2 kbir.',
 'emptyfile' => "Il-Fajl li ġie ''uploaded'' jidher li huwa vojt. Dan jista' jkun minħabba żball fl-isem tal-fajl.
 Jekk jogħġbok verifika jekk xorta waħda trid itella' dan il-fajl.",
 'windows-nonascii-filename' => "Din il-wiki ma taċċettax ismijiet tal-fajls b'karattri speċjali.",
-'fileexists' => "Fajl b'dan l-isem ġa jeżisti, jekk jogħġbok verifika l-ewwel '''<tt>[[:$1]]</tt>''' jekk ma tridx tikteb fuqu.
+'fileexists' => "Fajl b'dan l-isem ġa jeżisti, jekk jogħġbok verifika l-ewwel <strong>[[:$1]]</strong> jekk ma tridx tikteb fuqu.
 [[$1|thumb]]",
-'filepageexists' => "Il-paġna ta' deskrizzjoni għal dan il-fajl diġà ġiet maħluqa f''''<tt>[[:$1]]</tt>''', iżda l-ebda fajl b'dan l-isem ma jeżisti. It-taqsira li daħħalt mhux se tidher fuq il-paġna ta' deskrizzjoni.
+'filepageexists' => "Il-paġna ta' deskrizzjoni għal dan il-fajl diġà ġiet maħluqa f'<strong>[[:$1]]</strong>, iżda l-ebda fajl b'dan l-isem ma jeżisti. It-taqsira li daħħalt mhux se tidher fuq il-paġna ta' deskrizzjoni.
 Sabiex it-taqsira tidher fuq il-paġna ta' deskrizzjoni, huwa neċessarju li timmodifikaha manwalment.
 [[$1|thumb]]",
 'fileexists-extension' => "Diġà jeżisti fajl b'isem simili: [[$2|thumb]]
-* L-isem tal-fajl imtella': '''<tt>[[:$1]]</tt>'''
-* L-isem tal-fajl eżistenti: '''<tt>[[:$2]]</tt>'''
+* L-isem tal-fajl imtella': <strong>[[:$1]]</strong>
+* L-isem tal-fajl eżistenti: <strong>[[:$2]]</strong>
 Jekk jogħġbok, agħżel isem differenti.",
 'fileexists-thumbnail-yes' => "Il-fajl li ttella' jidher li huwa stampa żgħira ''(minjatura)''. [[$1|thumb]]
-Jekk jogħġbok, iċċekkja dan il-fajl '''<tt>[[:$1]]</tt>'''.
+Jekk jogħġbok, iċċekkja dan il-fajl <strong>[[:$1]]</strong>.
 Jekk il-fajl li ċċekkjajt huwa l-istess stampa fid-daqs oriġinali, m'hemmx bżonn li ttella' minjatura oħra.",
-'file-thumbnail-no' => "L-isem tal-fajl jibda' b''''<tt>$1</tt>'''. Jidher ukoll li din hija stampa tad-daqs imnaqqas ''(thumbnail)''.<br />
+'file-thumbnail-no' => "L-isem tal-fajl jibda' b'<strong>$1</strong>. Jidher ukoll li din hija stampa tad-daqs imnaqqas ''(thumbnail)''.<br />
 Jekk għandek din l-istampa ta' riżoluzzjoni sħiħa, jekk jogħġbok, tella' dan il-fajl jew inkella immodifika l-isem tal-fajl.",
 'fileexists-forbidden' => "Fajl b'dan l-isem diġà jeżisti.<br />
 Jekk jogħġbok mur lura u tella' dan il-fajl b'isem ġdid. [[File:$1|thumb|center|$1]]",
@@ -1895,7 +1895,7 @@ Id-deskrizzjoni fuq il-[$2 paġna ta' deskrizzjoni tal-fajl] tinsab hawn taħt."
 # MIME search
 'mimesearch' => 'Fittex fil-bażi għal tip MIME',
 'mimesearch-summary' => "Din il-paġna tippermetti l-iffiltrar ta' fajls abbażi tat-tip MIME.
-Daħħal: tip/sottotip, eż. <tt>image/jpeg</tt>.",
+Daħħal: tip/sottotip, eż. <code>image/jpeg</code>.",
 'mimetype' => 'Tip MIME:',
 'download' => 'niżżel',
 
@@ -1965,7 +1965,7 @@ Kull filliera għandha ħolqa għall-ewwel u t-tieni riindirizz, kif ukoll fejn
 
 # Miscellaneous special pages
 'nbytes' => '{{PLURAL:$1|byte|$1  bytes}}',
-'ncategories' => '{{PLURAL:$1|kategorija|$1  kategoriji}}',
+'ncategories' => '{{PLURAL:$1|kategorija|$1 kategoriji}}',
 'nlinks' => '{{PLURAL:$1|link|$1 links}}',
 'nmembers' => '$1 {{PLURAL:$1|membru|membri}}',
 'nrevisions' => '{{PLURAL:$1|reviżjoni|$1 reviżjonijiet}}',
@@ -2041,10 +2041,10 @@ Kun af li siti elettroniċi oħra jistgħu jorbtu b'ħolqa diretta lejn il-fajl,
 'speciallogtitlelabel' => 'Azzjoni effetwata fuq:',
 'log' => 'Reġistri',
 'all-logs-page' => 'Ir-reġistri pubbliċi kollha',
-'alllogstext' => "Preżentazzjoni unifikata tar-reġistri kollha ta' {{SITENAME}}. Tista' tqassar il-kriterji ta' tfittxija billi tagħżel it-tip ta' reġistru, l-isem tal-utent, jew il-paġna affetwata (it-tnejn tal-aħħar huma sensittivi għal kif jinkitbu l-karattri).",
+'alllogstext' => "Ġabra sħiħa tar-reġistri kollha ta' {{SITENAME}}. Tista' tqassar il-kriterji ta' tfittxija billi tagħżel it-tip ta' reġistru, l-isem tal-utent, jew il-paġna affetwata (it-tnejn tal-aħħar huma sensittivi għal kif jinkitbu l-karattri).",
 'logempty' => "Ir-reġistru m'għandu l-ebda element li jaqbel mat-tfittxija tiegħek.",
 'log-title-wildcard' => "Tfittxija ta' titli li jibdew b'dan it-test",
-'showhideselectedlogentries' => 'Uri/aħbi daħliet magħżula tar-reġistru',
+'showhideselectedlogentries' => 'Uri/aħbi d-daħliet magħżula tar-reġistru',
 
 # Special:AllPages
 'allpages' => 'Il-paġni kollha',
@@ -2088,7 +2088,7 @@ Ara wkoll il-[[Special:WantedCategories|kategoriji rikjesti]].',
 'linksearch-ns' => 'Spazju tal-isem:',
 'linksearch-ok' => 'Fittex',
 'linksearch-text' => 'Huwa possibbli li tagħmel użu minn metakarattri, per eżempju "*.wikipedia.org".<br />
-Protokolli aċċettati: <tt>$1</tt>',
+Protokolli aċċettati: <code>$1</code>',
 'linksearch-line' => '$1 hija marbuta mill-paġna $2',
 'linksearch-error' => 'Il-metakarattri jistgħu jintużaw biss fil-bidu tal-indirizz.',
 
@@ -2917,15 +2917,10 @@ Kull azzjonijiet ta' importazzjoni tal-transwiki jiġu reġistrati fil-[[Special
 # Info page
 'pageinfo-title' => 'Informazzjoni għal "$1"',
 'pageinfo-header-edits' => 'Modifiki',
-'pageinfo-header-watchlist' => "Lista ta' osservazzjonijiet",
-'pageinfo-header-views' => 'Viżti',
-'pageinfo-subjectpage' => 'Paġna',
-'pageinfo-talkpage' => "Paġna ta' diskussjoni",
+'pageinfo-views' => "Numru ta' viżti",
 'pageinfo-watchers' => "Numru ta' osservaturi",
 'pageinfo-edits' => "Numru ta' modifiki",
 'pageinfo-authors' => "Numru ta' awturi distinti",
-'pageinfo-views' => "Numru ta' viżti",
-'pageinfo-viewsperedit' => 'Viżti kull modifika',
 
 # Skin names
 'skinname-standard' => 'Classic',
index d2f9366..4868a46 100644 (file)
@@ -1109,7 +1109,7 @@ IP-тешкстэть — $3, саймас совавтоманть ID-сь —
 'empty-file' => 'Тонь максовт файлась чаво.',
 'filename-tooshort' => 'Файлань лементь а саты кувалмозо.',
 'unknown-error' => 'А содавикс манявкс лиссь.',
-'file-thumbnail-no' => "Файланть лемезэ ушодови  '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Файланть лемезэ ушодови  <strong>$1</strong>.
 Сонсь маряви вишкалгавтозь фотокуво, покшолмазо ''(кенжешка)''.
 Улиндеряй файланть покш верзиязо, йовкстыка сонзэ  - арась, полавтыка тетень лемензэ.",
 'file-exists-duplicate' => 'Те кавонзавкс файла вана {{PLURAL:$1|те файланть|неть файлатнень}} эйстэ:',
@@ -1810,12 +1810,9 @@ IP-тешкстэть — $3, саймас совавтоманть ID-сь —
 'spambot_username' => 'MediaWiki-нь шукшто ванькскавтома',
 
 # Info page
-'pageinfo-header-views' => 'Ванома потмот',
-'pageinfo-subjectpage' => 'Лопа',
-'pageinfo-talkpage' => 'Кортнема лопа',
+'pageinfo-views' => 'Зяро ванома потмонзо',
 'pageinfo-edits' => 'Зяроксть витнезь-петнезь',
 'pageinfo-authors' => 'Зяро авторонзо',
-'pageinfo-views' => 'Зяро ванома потмонзо',
 
 # Skin names
 'skinname-standard' => 'Классикань',
index 6eacf0b..f94221b 100644 (file)
@@ -713,9 +713,9 @@ $2، $1',
 
 بعد از این که پرونده‌یی ره باربی‌یشتنی، به این سه شکل بنشنه وه ره صفحه‌ئون دله بی‌یشتن:
 
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' استفاده از نسخه کامل پرونده وسّه
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' استفاده از اتا نسخه ۲۰۰ پیکسلی از پرونده که اتا جعبه سمت چپ متن دله دره و عبارت alt text ونه دله به عنوان توضیح استفاده بیّه وسّه
-*'''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' بساتن اتا پیوند مستقیم به پرونده بدون نمایش پرونده",
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' استفاده از نسخه کامل پرونده وسّه
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' استفاده از اتا نسخه ۲۰۰ پیکسلی از پرونده که اتا جعبه سمت چپ متن دله دره و عبارت alt text ونه دله به عنوان توضیح استفاده بیّه وسّه
+*'''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' بساتن اتا پیوند مستقیم به پرونده بدون نمایش پرونده",
 'uploadlogpage' => 'باربی‌یشتن گزارش',
 'uploadedimage' => '"[[$1]]" ره باربی‌یشته',
 
index d3dfe92..044a768 100644 (file)
@@ -812,10 +812,10 @@ Intlā ticnequi, tlācah quimatīzqueh motequi.',
 Tlahcuilōlli iuhcāyōtl {{PLURAL:\$3|moēlēhuia cah|moēlēhuiah cateh}} \$2.",
 'filetype-missing' => 'Tlahcuilōlli ahmo quipiya huēiyaquiliztli (quemeh ".jpg").',
 'large-file' => 'Mā tlahcuilōlli ahmo achi huēiyac $1; inīn cah $2.',
-'fileexists-extension' => "Tlahcuilōlli zan iuh tōcātica ia: [[$2|thumb]]
-* Tlahcuilōlli moquetzacah: '''<tt>[[:$1]]</tt>'''
-* Tlahcuilōlli tlein ia ītōca: '''<tt>[[:$2]]</tt>'''
-Timitztlātlauhtiah, xitlahcuiloa occē tōcāitl.",
+'fileexists-extension' => 'Tlahcuilōlli zan iuh tōcātica ia: [[$2|thumb]]
+* Tlahcuilōlli moquetzacah: <strong>[[:$1]]</strong>
+* Tlahcuilōlli tlein ia ītōca: <strong>[[:$2]]</strong>
+Timitztlātlauhtiah, xitlahcuiloa occē tōcāitl.',
 'savefile' => 'Quipiyāz tlahcuilōlli',
 'uploadedimage' => 'ōmoquetz "[[$1]]"',
 'overwroteimage' => 'ōmoquetz yancuīc "[[$1]]" iuhcāyōtl',
index 231b72e..ec83973 100644 (file)
@@ -576,6 +576,10 @@ $1',
 'youhavenewmessages' => 'Du har $1 ($2).',
 'newmessageslink' => 'nye meldinger',
 'newmessagesdifflink' => 'siste endring',
+'youhavenewmessagesfromusers' => 'Du har $1 fra {{PLURAL:$3|en annen bruker| $3 brukere}} ($2).',
+'youhavenewmessagesmanyusers' => 'Du har $1 fra mange brukere ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|en ny melding|nye meldinger}}',
+'newmessagesdifflinkplural' => 'siste {{PLURAL:$1|endring|endringer}}',
 'youhavenewmessagesmulti' => 'Du har nye beskjeder på $1',
 'editsection' => 'rediger',
 'editold' => 'rediger',
@@ -727,6 +731,7 @@ Ikke glem å endre [[Special:Preferences|innstillingene]] dine.',
 'remembermypassword' => 'Husk meg på denne datamaskinen (i maks $1 {{PLURAL:$1|dag|dager}})',
 'securelogin-stick-https' => 'Vær fortsatt koblet til HTTPS etter innlogging',
 'yourdomainname' => 'Ditt domene',
+'password-change-forbidden' => 'Du kan ikke endre passord på denne wikien.',
 'externaldberror' => 'Det var en ekstern autentifiseringsfeil, eller du kan ikke oppdatere din eksterne konto.',
 'login' => 'Logg inn',
 'nav-login-createaccount' => 'Logg inn eller opprett en konto',
@@ -976,6 +981,10 @@ Du kan [[Special:Search/{{PAGENAME}}|søke etter denne sidetittelen]] på andre
 eller [{{fullurl:{{FULLPAGENAME}}|action=edit}} opprette siden]</span>.',
 'noarticletext-nopermission' => 'Det er ingen tekst på denne siden.
 Du kan [[Special:Search/{{PAGENAME}}|søke etter sidens tittel]] i andre sider, eller <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} søke i relevante logger]</span>.',
+'missing-revision' => 'Revisjonen #$1 av siden med navnet "{{PAGENAME}}" eksisterer ikke.
+
+Dette skyldes som regel at en gammel historikklenke er fulgt til en side som er slettet.
+Detaljer kan finnes i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletteloggen].',
 'userpage-userdoesnotexist' => 'Brukerkontoen «$1» er ikke registrert.
 Sjekk om du ønsker å opprette/redigere denne siden.',
 'userpage-userdoesnotexist-view' => 'Kontoen «$1» er ikke registrert.',
@@ -985,7 +994,6 @@ Siste blokkeringsloggelement kan sees nedenfor.',
 * '''Firefox / Safari:''' Hold ''Shift'' mens du klikker på ''Oppdater'' eller trykk ''Ctrl-F5'' eller ''Ctrl-R'' (''⌘-R'' på en Mac)
 * '''Google Chrome:''' Trykk ''Ctrl-Shift-R'' (''⌘-Shift-R'' på en Mac)
 * '''Internet Explorer:''' Hold ''Ctrl'' mens du klikker på ''Oppdater'' eller trykk ''Ctrl-F5''
-* '''Konqueror:''' Klikk ''Oppdater'' eller trykk ''F5''
 * '''Opera:''' Tøm hurtiglageret i ''Verktøy → Innstillinger''",
 'usercssyoucanpreview' => "'''Tips:''' Bruk «{{int:showpreview}}»-knappen for å teste din nye CSS før du lagrer.",
 'userjsyoucanpreview' => "'''Tips:''' Bruk «{{int:showpreview}}»-knappen for å teste ditt nye JS før du lagrer.",
@@ -1100,6 +1108,7 @@ Disse parameterne har blitt utelatt.',
 'expansion-depth-exceeded-warning' => 'Sida har overskredet ekspansjonsdybden',
 'parser-unstrip-loop-warning' => '«Unstrip»-loop påvist',
 'parser-unstrip-recursion-limit' => 'Rekursjonsgrense for taggfjerning overskredet ($1)',
+'converter-manual-rule-error' => 'En feil ble oppdaget i en manuell språkkonverteringsregel',
 
 # "Undo" feature
 'undo-success' => 'Redigeringen kan omgjøres. Sjekk sammenligningen under for å bekrefte at du vil gjøre dette, og lagre endringene for å fullføre omgjøringen.',
@@ -1286,6 +1295,10 @@ Forsikre deg om at denne endringen vil opprettholde historisk sidekontinuitet.',
 'editundo' => 'fjern',
 'diff-multi' => '({{PLURAL:$1|Én mellomrevisjon|$1 mellomrevisjoner}} av {{PLURAL:$2|én bruker|$2 brukere}} vises ikke)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Én mellomrevisjon|$1 mellomrevisjoner}} av mer enn $2 {{PLURAL:$2|bruker|brukere}} vises ikke)',
+'difference-missing-revision' => '{{PLURAL:$2|En revisjon|$2 revisjoner}} av denne forskjellen ($1) {{PLURAL:$2|ble|ble}} ikke funnet.
+
+Dette skyldes som regel at en gammel forskjell-lenke er fulgt til en side som er slettet.
+Detaljer kan finnes i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} sletteloggen].',
 
 # Search results
 'searchresults' => 'Søkeresultater',
@@ -1695,12 +1708,12 @@ Sider på [[Special:Watchlist|overvåkningslisten din]] er i '''fet skrift'''.",
 
 Slette- og flytteloggen for denne siden gjengis her:",
 'uploadtext' => "Bruk skjemaet nedenfor for å laste opp filer.
-For å se eller søke i eksisterende filer, gå til [[Special:FileList|listen over filer]]. Opplastinger lagres også i [[Special:Log/upload|opplastingsloggen]].
+For å se eller søke i eksisterende filer, gå til [[Special:FileList|listen over filer]]. Opplastinger lagres også i [[Special:Log/upload|opplastingsloggen]] og slettinger i [[Special:Log/delete|sletteloggen]].
 
 For å inkludere en fil på en side, bruk en slik lenke:
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}:Filnavn.jpg<nowiki>]]</nowiki></tt>''' for å bruke bildet i opprinnelig form
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}:Filnavn.png|200px|thumb|left|Alternativ tekst<nowiki>]]</nowiki></tt>''' for å bruke bildet med en bredde på 200&nbsp;piksler, venstrestilt og med «Alternativ tekst» som beskrivelse
-*'''<tt><nowiki>[[</nowiki>{{ns:media}}:Filnavn.ogg<nowiki>]]</nowiki></tt>''' for å lenke direkte til filen uten å vise den",
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Filnavn.jpg]]</nowiki></code>''' for å bruke bildet i opprinnelig form
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Filnavn.png|200px|thumb|left|Alternativ tekst]]</nowiki></code>''' for å bruke bildet med en bredde på 200&nbsp;piksler, venstrestilt og med «Alternativ tekst» som beskrivelse
+*'''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Filnavn.ogg]]</nowiki></code>''' for å lenke direkte til filen uten å vise den",
 'upload-permitted' => 'Tillatte filtyper: $1.',
 'upload-preferred' => 'Foretrukne filtyper: $1',
 'upload-prohibited' => 'Forbudte filtyper: $1.',
@@ -1744,19 +1757,19 @@ Se [[Special:NewFiles|galleriet over nye filer]] for en mer visuell visning',
 'largefileserver' => 'Denne filen er større enn det tjeneren er satt opp til å tillate.',
 'emptyfile' => 'Filen du lastet opp ser ut til å være tom. Dette kan komme av en skrivefeil i filnavnet. Sjekk om du virkelig vil laste opp denne filen.',
 'windows-nonascii-filename' => 'Denne wikien støtter ikke filnavn med spesialtegn.',
-'fileexists' => "Ei fil med dette navnet finnes allerede.
-Sjekk '''<tt>[[:$1]]</tt>''' hvis du ikke er sikker på at du vil forandre den.
-[[$1|thumb]]",
-'filepageexists' => "Beskrivelsessiden for denne filen finnes allerede på '''<tt>[[:$1]]</tt>''', men ingen filer med dette navnet finnes. Sammendraget du skruver inn vil ikke vises på beskrivelsessiden. For at det skal dukke opp der må du skrive det inn manuelt etter å da lastet opp filen.
-[[$1|thumb]]",
-'fileexists-extension' => "En fil med et lignende navn finnes: [[$2|thumb]]
-* Navnet på din fil: '''<tt>[[:$1]]</tt>'''
-* Navn på eksisterende fil: '''<tt>[[:$2]]</tt>'''
-Velg et annet filnavn.",
-'fileexists-thumbnail-yes' => "Filen ser ut til å være et bilde av redusert størrelse. [[$1|thumb]]
-Vennligst sjekk filen '''<tt>[[:$1]]</tt>'''.
-Om filen du sjekket er det samme bildet, men i opprinnelig størrelse, er det ikke nødvendig å laste opp en ekstra fil.",
-'file-thumbnail-no' => "Filnavnet begynner med '''<tt>$1</tt>'''.
+'fileexists' => 'Ei fil med dette navnet finnes allerede.
+Sjekk <strong>[[:$1]]</strong> hvis du ikke er sikker på at du vil forandre den.
+[[$1|thumb]]',
+'filepageexists' => 'Beskrivelsessiden for denne filen finnes allerede på <strong>[[:$1]]</strong>, men ingen filer med dette navnet finnes. Sammendraget du skruver inn vil ikke vises på beskrivelsessiden. For at det skal dukke opp der må du skrive det inn manuelt etter å da lastet opp filen.
+[[$1|thumb]]',
+'fileexists-extension' => 'En fil med et lignende navn finnes: [[$2|thumb]]
+* Navnet på din fil: <strong>[[:$1]]</strong>
+* Navn på eksisterende fil: <strong>[[:$2]]</strong>
+Velg et annet filnavn.',
+'fileexists-thumbnail-yes' => 'Filen ser ut til å være et bilde av redusert størrelse. [[$1|thumb]]
+Vennligst sjekk filen <strong>[[:$1]]</strong>.
+Om filen du sjekket er det samme bildet, men i opprinnelig størrelse, er det ikke nødvendig å laste opp en ekstra fil.',
+'file-thumbnail-no' => "Filnavnet begynner med <strong>$1</strong>.
 Det virker som om det er et bilde av redusert størrelse ''(miniatyrbilde)''.
 Om du har dette bildet i stor utgave, last opp det, eller endre filnavnet på denne filen.",
 'fileexists-forbidden' => 'En fil med dette navnet finnes fra før, og kan ikke erstattes.
@@ -2014,7 +2027,7 @@ Kanskje du vil redigere beskrivelsen på dens [$2 filbeskrivelsesside].',
 
 # MIME search
 'mimesearch' => 'MIME-søk',
-'mimesearch-summary' => 'Denne siden muliggjør filtrering av filer per MIME-type. Skriv inn: innholdstype/undertype, for eksempel <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Denne siden muliggjør filtrering av filer per MIME-type. Skriv inn: innholdstype/undertype, for eksempel <code>image/jpeg</code>.',
 'mimetype' => 'MIME-type:',
 'download' => 'last ned',
 
@@ -2062,7 +2075,7 @@ Kanskje du vil redigere beskrivelsen på dens [$2 filbeskrivelsesside].',
 'disambiguationspage' => 'Template:Peker',
 'disambiguations-text' => "Følgende sider lenker til en '''pekerside'''.
 De burde i stedet lenke til en passende innholdsside.<br />
-En side anses om en pekerside om den inneholder en mal som det lenkes til fra [[MediaWiki:Disambiguationspage]]",
+En side anses om en pekerside om den inneholder en mal som det lenkes til fra [[MediaWiki:Disambiguationspage]].",
 
 'doubleredirects' => 'Doble omdirigeringer',
 'doubleredirectstext' => 'Denne siden lister opp de sidene som er omdirigeringer til andre omdirigeringssider.
@@ -2087,6 +2100,7 @@ Hver rad inneholder lenker til første og andre omdirigering, samt målet for de
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}',
 'ncategories' => '$1 {{PLURAL:$1|kategori|kategorier}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwikier}}',
 'nlinks' => '$1 {{PLURAL:$1|lenke|lenker}}',
 'nmembers' => '$1 {{PLURAL:$1|medlem|medlemmer}}',
 'nrevisions' => '$1 {{PLURAL:$1|revisjon|revisjoner}}',
@@ -2115,6 +2129,7 @@ Hver rad inneholder lenker til første og andre omdirigering, samt målet for de
 'mostlinkedtemplates' => 'Mest brukte maler',
 'mostcategories' => 'Sider med flest kategorier',
 'mostimages' => 'Mest brukte filer',
+'mostinterwikis' => 'Sider med flest interwikier',
 'mostrevisions' => 'Artikler med flest revisjoner',
 'prefixindex' => 'Alle sider med prefiks',
 'prefixindex-namespace' => 'All sider med prefiks ($1 navnerom)',
@@ -2214,7 +2229,7 @@ Se også [[Special:WantedCategories|ønskede kategorier]].',
 'linksearch-ok' => 'Søk',
 'linksearch-text' => 'Jokertegn som «*.wikipedia.org» kan brukes.
 Det kreves at det oppgis minst et toppnivådomene, for eksempel «*.org».<br />
-Støttede protokoller: <tt>$1</tt> (ikke legg til noen av disse i søket ditt).',
+Støttede protokoller: <code>$1</code> (ikke legg til noen av disse i søket ditt).',
 'linksearch-line' => '$1 lenkes fra $2',
 'linksearch-error' => 'Jokertegn kan kun brukes foran tjenernavnet.',
 
@@ -2260,6 +2275,8 @@ Mer informasjon om de enkelte rettighetstypene kan finnes [[{{MediaWiki:Listgrou
 'mailnologin' => 'Ingen avsenderadresse',
 'mailnologintext' => 'Du må være [[Special:UserLogin|logget inn]] og ha en gyldig e-postadresse satt i [[Special:Preferences|brukerinnstillingene]] for å sende e-post til andre brukere.',
 'emailuser' => 'E-post til denne brukeren',
+'emailuser-title-target' => 'Send epost til denne {{GENDER:$1|brukeren}}',
+'emailuser-title-notarget' => 'E-post til bruker',
 'emailpage' => 'E-post til bruker',
 'emailpagetext' => 'Du kan bruke skjemaet nedenfor for å sende en e-post til denne brukeren.
 Den e-postadressen du har satt i [[Special:Preferences|innstillingene dine]] vil dukke opp i «fra»-feltet på denne e-posten, så mottakeren er i stand til å svare.',
@@ -2888,6 +2905,7 @@ Besøk [//translatewiki.net translatewiki.net] om du ønsker å bidra med overse
 'import-interwiki-templates' => 'Inkluder alle maler',
 'import-interwiki-submit' => 'Importer',
 'import-interwiki-namespace' => 'Målnavnerom:',
+'import-interwiki-rootpage' => 'Destinasjonens grunnside (valgfri):',
 'import-upload-filename' => 'Filnavn:',
 'import-comment' => 'Kommentar:',
 'importtext' => 'Importer filen fra kildewikien med [[Special:Export|eksporteringsverktøyet]].
@@ -2920,6 +2938,9 @@ Lagre den på din egen datamaskin og last den opp her.',
 'import-error-interwiki' => 'Siden «$1» ble ikke importert fordi navnet er reservert for ekstern lenking (interwiki).',
 'import-error-special' => 'Siden «$1» ble ikke importert fordi den tilhører et spesialnavnerom som ikke tillater sider.',
 'import-error-invalid' => 'Siden «$1» ble ikke importert fordi navnet er ugyldig.',
+'import-options-wrong' => 'Feil {{PLURAL:$2|opsjon|opsjoner}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Den angitte grunnsiden har en ugyldig tittel.',
+'import-rootpage-nosubpage' => 'Navnerommet "$1" til grunnsiden tillater ikke undersider.',
 
 # Import log
 'importlogpage' => 'Importlogg',
@@ -3059,16 +3080,34 @@ Dette er sannsynligvis forårsaket av en lenke til et svartelistet eksternt nett
 
 # Info page
 'pageinfo-title' => 'Informasjon om «$1»',
-'pageinfo-header-edits' => 'Redigeringer',
-'pageinfo-header-watchlist' => 'Overvåkningsliste',
-'pageinfo-header-views' => 'Visninger',
-'pageinfo-subjectpage' => 'Side',
-'pageinfo-talkpage' => 'Diskusjonsside',
-'pageinfo-watchers' => 'Antall overvåkere',
-'pageinfo-edits' => 'Antall redigeringer',
-'pageinfo-authors' => 'Antall forskjellige forfattere',
+'pageinfo-header-basic' => 'Grunnleggende informasjon',
+'pageinfo-header-edits' => 'Redigeringshistorikk',
+'pageinfo-header-restrictions' => 'Sidebeskyttelse',
+'pageinfo-header-properties' => 'Sideegenskaper',
+'pageinfo-display-title' => 'Visningstittel',
+'pageinfo-default-sort' => 'Standardsorteringsnøkkel',
+'pageinfo-length' => 'Sidelengde (i bytes)',
+'pageinfo-article-id' => 'Side-ID',
+'pageinfo-robot-policy' => 'Søkemotorstatus',
+'pageinfo-robot-index' => 'Indekserbar',
+'pageinfo-robot-noindex' => 'Ikke indekserbar',
 'pageinfo-views' => 'Antall visninger',
-'pageinfo-viewsperedit' => 'Visninger per redigering',
+'pageinfo-watchers' => 'Antall overvåkere av siden',
+'pageinfo-redirects-name' => 'Omdirigeringer til siden',
+'pageinfo-subpages-name' => 'Undersider av siden',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|omdirigering|omdirigeringer}}; $3 {{PLURAL:$3|ikke-omdirigering|ikke-omdirigeringer}})',
+'pageinfo-firstuser' => 'Sideoppretter',
+'pageinfo-firsttime' => 'Dato for opprettelse av siden',
+'pageinfo-lastuser' => 'Siste forfatter',
+'pageinfo-lasttime' => 'Dato for siste redigering',
+'pageinfo-edits' => 'Totalt antall redigeringer',
+'pageinfo-authors' => 'Totalt antall forskjellige forfattere',
+'pageinfo-recent-edits' => 'Antall nylige redigeringer (innen siste $1)',
+'pageinfo-recent-authors' => 'Antall nylige forfattere',
+'pageinfo-restriction' => 'Sidebeskyttelse (<code>$1</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Magisk|Magiske}} ord ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Skjult kategori|Skjulte kategorier}} ($1)',
+'pageinfo-templates' => 'Transkludert {{PLURAL:$1|mal|maler}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Standard',
@@ -3816,7 +3855,7 @@ Bilder vises med full oppløsning, mens andre filtyper startes direkte gjennom s
 * <span class="mw-specialpagecached">Spesialsider som oppdateres periodisk (kan være foreldede).</span>',
 'specialpages-group-maintenance' => 'Vedlikeholdsrapporter',
 'specialpages-group-other' => 'Andre spesialsider',
-'specialpages-group-login' => 'Innlogging / registrering',
+'specialpages-group-login' => 'Innlogging / opprette bruker',
 'specialpages-group-changes' => 'Siste endringer og logger',
 'specialpages-group-media' => 'Medierapporter og opplastinger',
 'specialpages-group-users' => 'Brukere og rettigheter',
index 8f85da0..2c5b1cf 100644 (file)
@@ -1448,9 +1448,9 @@ Dat kann nich wedder ungeschehn maakt warrn.',
 Dat du hoochladene Datein söken un ankieken kannst, gah na de [[Special:FileList|List vun hoochladene Datein]]. Dat Hoochladen un nee Hoochladen vun Datein warrt ok in dat [[Special:Log/upload|Hoochlade-Logbook]] fasthollen. Dat Wegsmieten in dat [[Special:Log/delete|Wegsmiet-Logbook]].
 
 Üm en Datei in en Sied to bruken, schriev dat hier in de Sied rin:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:datei.jpg]]</nowiki></tt>''' för de Datei in vulle Grött
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:datei.jpg|200px|thumb|left|Beschrieven]]</nowiki></tt>''' för dat Bild in en Breed vun 200 Pixels in en lütt Kassen op de linke Sied mit ''Beschrieven'' as Text ünner dat Bild
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' för en direkten Lenk op de Datei, ahn dat se wiest warrt.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:datei.jpg]]</nowiki></code>''' för de Datei in vulle Grött
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:datei.jpg|200px|thumb|left|Beschrieven]]</nowiki></code>''' för dat Bild in en Breed vun 200 Pixels in en lütt Kassen op de linke Sied mit ''Beschrieven'' as Text ünner dat Bild
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' för en direkten Lenk op de Datei, ahn dat se wiest warrt.",
 'upload-permitted' => 'Verlöövte Dateitypen: $1.',
 'upload-preferred' => 'Vörtagene Dateitypen: $1.',
 'upload-prohibited' => 'Verbadene Dateitypen: $1.',
@@ -1478,17 +1478,17 @@ Kiek bi de [[Special:NewFiles|Galerie vun ne’e Datein]] för en Översicht mit
 'large-file' => 'Datein schöölt opbest nich grötter wesen as $1. Disse Datei is $2 groot.',
 'largefileserver' => 'De Datei is grötter as de vun’n Server verlöövte Bövergrenz för de Grött.',
 'emptyfile' => 'De hoochladene Datei is leddig. De Grund kann en Tippfehler in de Dateinaam ween. Kontrolleer, of du de Datei redig hoochladen wullst.',
-'fileexists' => "En Datei mit dissen Naam existeert al, prööv '''<tt>[[:$1]]</tt>''', wenn du di nich seker büst of du dat ännern wullst.
-[[$1|thumb]]",
-'filepageexists' => "En Sied, de dat Bild beschrifft, gifft dat al as '''<tt>[[:$1]]</tt>''', dat gifft aver keen Datei mit dissen Naam. De Text, den du hier ingiffst, warrt nich op de Sied övernahmen. Du musst de Sied na dat Hoochladen noch wedder extra ännern.",
-'fileexists-extension' => "Dat gifft al en Datei mit en ähnlichen Naam: [[$2|thumb]]
-* Naam vun diene Datei: '''<tt>[[:$1]]</tt>'''
-* Naam vun de Datei, de al dor is: '''<tt>[[:$2]]</tt>'''
-Blot dat Ennen vun de Datei is bi dat Groot-/Lütt-Schrieven anners. Kiek na, wat de Datein villicht desülven sünd.",
+'fileexists' => 'En Datei mit dissen Naam existeert al, prööv <strong>[[:$1]]</strong>, wenn du di nich seker büst of du dat ännern wullst.
+[[$1|thumb]]',
+'filepageexists' => 'En Sied, de dat Bild beschrifft, gifft dat al as <strong>[[:$1]]</strong>, dat gifft aver keen Datei mit dissen Naam. De Text, den du hier ingiffst, warrt nich op de Sied övernahmen. Du musst de Sied na dat Hoochladen noch wedder extra ännern.',
+'fileexists-extension' => 'Dat gifft al en Datei mit en ähnlichen Naam: [[$2|thumb]]
+* Naam vun diene Datei: <strong>[[:$1]]</strong>
+* Naam vun de Datei, de al dor is: <strong>[[:$2]]</strong>
+Blot dat Ennen vun de Datei is bi dat Groot-/Lütt-Schrieven anners. Kiek na, wat de Datein villicht desülven sünd.',
 'fileexists-thumbnail-yes' => "De Datei schient en Bild to wesen, dat lütter maakt is ''(thumbnail)''. [[$1|thumb]]
-Kiek di de Datei '''<tt>[[:$1]]</tt>''' an.
+Kiek di de Datei <strong>[[:$1]]</strong> an.
 Wenn dat dat Bild in vulle Grött is, denn bruukst du keen extra Vörschaubild hoochladen.",
-'file-thumbnail-no' => "De Dateinaam fangt an mit '''<tt>$1</tt>'''. Dat düüdt dor op hen, dat dat en lütter maakt Bild ''(thumbnail, Duumnagel-Bild)'' is.
+'file-thumbnail-no' => "De Dateinaam fangt an mit <strong>$1</strong>. Dat düüdt dor op hen, dat dat en lütter maakt Bild ''(thumbnail, Duumnagel-Bild)'' is.
 Kiek na, wat du dat Bild nich ok in vulle Grött hest un laad dat ünner’n Originalnaam hooch oder änner den Dateinaam.",
 'fileexists-forbidden' => 'En Datei mit dissen Naam gifft dat al un kann nich överschreven warrn.
 Wenn du ehr liekers hoochladen wullt, gah trüch un laad de Datei ünner en annern Naam hooch. [[File:$1|thumb|center|$1]]',
@@ -1614,7 +1614,7 @@ De [$2 Bildsied vun dor] warrt ünnen wiest.',
 
 # MIME search
 'mimesearch' => 'MIME-Söök',
-'mimesearch-summary' => 'Disse Sied verlööft dat Filtern vun Datein na’n MIME-Typ. Du musst jümmer den Medien- un den Subtyp ingeven, to’n Bispeel: <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Disse Sied verlööft dat Filtern vun Datein na’n MIME-Typ. Du musst jümmer den Medien- un den Subtyp ingeven, to’n Bispeel: <code>image/jpeg</code>.',
 'mimetype' => 'MIME-Typ:',
 'download' => 'Dalladen',
 
@@ -1795,8 +1795,8 @@ Kiek ok bi de [[Special:WantedCategories|wünschten Kategorien]].',
 'linksearch-pat' => 'Söökmunster:',
 'linksearch-ns' => 'Naamruum:',
 'linksearch-ok' => 'Söken',
-'linksearch-text' => 'Wildcards as to’n Bispeel <tt>*.wikipedia.org</tt> köönt bruukt warrn.<br />
-Ünnerstütt Protokollen: <tt>$1</tt>',
+'linksearch-text' => 'Wildcards as to’n Bispeel <code>*.wikipedia.org</code> köönt bruukt warrn.<br />
+Ünnerstütt Protokollen: <code>$1</code>',
 'linksearch-line' => '$1 hett en Lenk vun $2',
 'linksearch-error' => 'Wildcards dröfft blot an’n Anfang vun de URL stahn.',
 
index 1b88e52..c4fd173 100644 (file)
@@ -1726,20 +1726,20 @@ Zie de [[Special:NewFiles|uutstalling mit media]] veur n overzichte.',
 'largefileserver' => 't Bestaand is groter as dat de server toesteet.',
 'emptyfile' => "t Bestaand da'j op-estuurd hebben is leeg. Dit kan koemen deur n tikfout in de bestaandsnaam. Kiek effen nao o'j dit bestaand wel bedoelden.",
 'windows-nonascii-filename' => 'Disse wiki ondersteunt gien bestaandsnamen mit spesiale tekens.',
-'fileexists' => "n Bestaand mit disse naam besteet al; voeg t bestaand onder n aandere naam toe.
-'''<tt>[[:$1]]</tt>''' [[$1|thumb]]",
-'filepageexists' => "De beschrievingszied veur dit bestaand bestung al op '''<tt>[[:$1]]</tt>''', mer der besteet nog gien bestaand mit disse naam.
+'fileexists' => 'n Bestaand mit disse naam besteet al; voeg t bestaand onder n aandere naam toe.
+<strong>[[:$1]]</strong> [[$1|thumb]]',
+'filepageexists' => "De beschrievingszied veur dit bestaand bestung al op <strong>[[:$1]]</strong>, mer der besteet nog gien bestaand mit disse naam.
 De samenvatting die'j op-egeven hebben zal niet op de beschrievingszied koemen.
 Bewark de zied haandmaotig um joew beschrieving daor weer te geven.
 [[$1|thumb]]",
 'fileexists-extension' => "n Bestaand mit n soortgelieke naam besteet al: [[$2|thumb]]
-* Naam van t bestaand da'j derbie zetten wollen: '''<tt>[[:$1]]</tt>'''
-* Naam van t bestaonde bestaand: '''<tt>[[:$2]]</tt>'''
+* Naam van t bestaand da'j derbie zetten wollen: <strong>[[:$1]]</strong>
+* Naam van t bestaonde bestaand: <strong>[[:$2]]</strong>
 Kies n aandere naam.",
 'fileexists-thumbnail-yes' => "Dit bestaand is n aofbeelding waorvan de grootte verkleind is ''(miniatuuraofbeelding)''. [[$1|thumb]]
-Kiek t bestaand nao <strong><tt>[[:$1]]</tt></strong>.
+Kiek t bestaand nao <strong><strong>[[:$1]]</strong></strong>.
 As de aofbeelding die'j krek nao-ekeken hebben de zelfde grootte hef, dan is t niet neudig um t opniej toe te voegen.",
-'file-thumbnail-no' => "De bestaandsnaam begint mit '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "De bestaandsnaam begint mit <strong>$1</strong>.
 Dit is warschienlik n verkleinde aofbeelding ''(overzichsaofbeelding)''.
 A'j disse aofbeelding in volle grootte hebben voeg t dan toe, wiezig aanders de bestaandsnaam.",
 'fileexists-forbidden' => 'n Bestaand mit disse naam besteet al, en kan niet overschreven wörden.
@@ -1985,7 +1985,7 @@ Je kunnen de [$2 zied mit de bestaandsbeschrieving] daor bewarken.',
 
 # MIME search
 'mimesearch' => 'Zeuken op MIME-type',
-'mimesearch-summary' => 'Op disse spesiale zied kunnen de bestaanden naor t MIME-type efiltreerd wörden. In de invoer mut altied t media- en subtype staon, bieveurbeeld: <tt>aofbeelding/jpeg</tt>.',
+'mimesearch-summary' => 'Op disse spesiale zied kunnen de bestaanden naor t MIME-type efiltreerd wörden. In de invoer mut altied t media- en subtype staon, bieveurbeeld: <code>aofbeelding/jpeg</code>.',
 'mimetype' => 'MIME-type:',
 'download' => 'binnenhaolen',
 
@@ -2189,7 +2189,7 @@ Zie oek [[Special:WantedCategories|gewunste kategorieën]].",
 'linksearch-ok' => 'Zeuken',
 'linksearch-text' => 'Jokers zo as "*.wikipedia.org" of "*.org" bin toe-estaon.
 Hef tenminsten n topdomein, zo as "*.org".<br />
-Ondersteunde protokollen: <tt>$1</tt> (zet t niet in joew zeukopdrachte).',
+Ondersteunde protokollen: <code>$1</code> (zet t niet in joew zeukopdrachte).',
 'linksearch-line' => '$1 hef n verwiezing in $2',
 'linksearch-error' => 'Jokers bin allinnig toe-estaon an t begin van n webadres.',
 
@@ -3016,15 +3016,10 @@ Meestentieds kömp dit deur n uutgaonde verwiezing die op de zwarte lieste steet
 # Info page
 'pageinfo-title' => 'Informasie over "$1"',
 'pageinfo-header-edits' => 'Bewarkingen',
-'pageinfo-header-watchlist' => 'Volglieste',
-'pageinfo-header-views' => 'Bekeken',
-'pageinfo-subjectpage' => 'Zied:',
-'pageinfo-talkpage' => 'Overlegzied',
+'pageinfo-views' => 'Antal keer bekeken',
 'pageinfo-watchers' => 'Antal volgers',
 'pageinfo-edits' => 'Antal bewarkingen',
 'pageinfo-authors' => 'Antal verschillende auteurs',
-'pageinfo-views' => 'Antal keer bekeken',
-'pageinfo-viewsperedit' => 'Antal keer bekeken per bewarking',
 
 # Skin names
 'skinname-standard' => 'Klassiek',
index 51c4d88..30b0d2b 100644 (file)
@@ -1414,9 +1414,9 @@ HTML ट्यागहरु जाँच्नुहोस् ।',
 हेर्नुहोस्- पहिला उर्ध्वभरण गरिएका [[Special:FileList|फाइलहरुको सूची]] , पुनः उर्ध्वभरण गरिएका [[Special:Log/upload|उर्ध्वभरण लग]]मा , मेटिएका फाइलहरु [[Special:Log/delete|मेटिएको लग]]मा।
 
 पृष्ठमा फाइल संलग्न गर्न तल दिएका फारमहरुमध्ये एउटामा लिङ्क गराउनुहोस्:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>'''पूर्ण आकारको फाइल प्रयोग गर्न
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' 200 पिक्सलको देब्रेपटि मार्जिन गरेर फाइलको बर्णनसहित प्रयोग गर्न
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' फाइल नदेखाई सिधै फाइलसित लिङ्क गरि प्रयोग गर्न",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>'''पूर्ण आकारको फाइल प्रयोग गर्न
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' 200 पिक्सलको देब्रेपटि मार्जिन गरेर फाइलको बर्णनसहित प्रयोग गर्न
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' फाइल नदेखाई सिधै फाइलसित लिङ्क गरि प्रयोग गर्न",
 'upload-permitted' => 'अनुमति पाएका फ़ाइल प्रकार:$1.',
 'upload-preferred' => 'चाहिएका फ़ाइल प्रकार:$1.',
 'upload-prohibited' => 'निषिद्ध फ़ाइल प्रकार:$1.',
@@ -1462,12 +1462,12 @@ HTML ट्यागहरु जाँच्नुहोस् ।',
 यो फाइलनाम गलत राखिएको कारणले भएको हुनसक्छ
 यो फाइल साच्चै उर्ध्वभरण गर्नेकुरामा निश्चित हुनुहोस् ।',
 'windows-nonascii-filename' => 'विशेष वर्ण सहितका फाइलनामहरु यस विकिद्वारा समर्थित छैनन् ।',
-'fileexists' => "यो नामको फाइल पहिले नैं छ, यदि तपाईं परिवर्तन गर्ने कुरामा सुनिश्चित हुनुहुन्न भनें कृपया '''<tt>[[:$1]]</tt>''' जाँच गर्नुहोस्।
-[[$1|thumb]]",
-'fileexists-extension' => "यहि नामको एउटा फाइल पहिलेदेखि नैं छ: [[$2|thumb]]
-* उर्ध्वभरण हुँदै गरेको पाइलको नाम: '''<tt>[[:$1]]</tt>'''
-* पहिलेदेखि नैं भएको पाइअलको नाम: '''<tt>[[:$2]]</tt>'''
-कृपया अर्कै नाम रोज्नुहोस्।",
+'fileexists' => 'यो नामको फाइल पहिले नैं छ, यदि तपाईं परिवर्तन गर्ने कुरामा सुनिश्चित हुनुहुन्न भनें कृपया <strong>[[:$1]]</strong> जाँच गर्नुहोस्।
+[[$1|thumb]]',
+'fileexists-extension' => 'यहि नामको एउटा फाइल पहिलेदेखि नैं छ: [[$2|thumb]]
+* उर्ध्वभरण हुँदै गरेको पाइलको नाम: <strong>[[:$1]]</strong>
+* पहिलेदेखि नैं भएको पाइअलको नाम: <strong>[[:$2]]</strong>
+कृपया अर्कै नाम रोज्नुहोस्।',
 'file-exists-duplicate' => 'यस फाइल निम्न{{PLURAL:$1|फाइल|फाइलहरुको}}दुरुस्त नक्कल हो:',
 'uploadwarning' => 'उर्ध्वभरण चेतावनी',
 'uploadwarning-text' => 'कृपया तल फाइलको वर्णन परिवर्तन गर्नुहोस र पुन: प्रयास गर्नुहोस् ।',
@@ -1623,7 +1623,7 @@ $1',
 # MIME search
 'mimesearch' => 'MIME खोज',
 'mimesearch-summary' => 'MIME-प्रकार अनुसार फ़ाइलहरु खोज्न यस पृष्ठको प्रयोग गर्न सकिन्छ।
-इनपुट: फ़ाइलको प्रकार/उपप्रकार, उदा. <tt>image/jpeg</tt>।',
+इनपुट: फ़ाइलको प्रकार/उपप्रकार, उदा. <code>image/jpeg</code>।',
 'mimetype' => 'MIME प्रकार:',
 'download' => 'डाउनलोड',
 
@@ -1794,7 +1794,7 @@ $1',
 'linksearch-ns' => 'नेमस्पेस:',
 'linksearch-ok' => 'खोज्नुहोस्',
 'linksearch-text' => '"*.wikipedia.org" वाइल्डकार्डको रुपमा प्रयोग गर्न सकिने। <br />
-समर्थित प्रोटोकल:<tt>$1</tt>',
+समर्थित प्रोटोकल:<code>$1</code>',
 'linksearch-line' => '$1 $2सित जोड़िएको छ।',
 'linksearch-error' => 'मूलनामको सुरुमा मात्र वाइल्डकार्ड देखापर्न सक्छ।',
 
@@ -2564,15 +2564,10 @@ $1को बन्देजको कारण : "$2" हो',
 # Info page
 'pageinfo-title' => ' "$1"को लागि जाकारी',
 'pageinfo-header-edits' => 'सम्पादनहरु',
-'pageinfo-header-watchlist' => 'निगरानी सुची',
-'pageinfo-header-views' => 'अवलोकनहरु',
-'pageinfo-subjectpage' => 'पृष्ठ',
-'pageinfo-talkpage' => 'वार्तालाप पृष्ठ',
+'pageinfo-views' => 'अवलोकन संख्या',
 'pageinfo-watchers' => 'निगरानी कर्ताहरुको संख्या',
 'pageinfo-edits' => 'सम्पादन संख्या',
 'pageinfo-authors' => 'फरक सम्पादकरुको संख्या',
-'pageinfo-views' => 'अवलोकन संख्या',
-'pageinfo-viewsperedit' => 'प्रति सम्पादन अवलोकन संख्या',
 
 # Skin names
 'skinname-standard' => 'क्लासिक',
index 59ea23a..b444a87 100644 (file)
@@ -669,9 +669,9 @@ Een lijst met bestaande speciale pagina’s staat op [[Special:SpecialPages|{{in
 'dberrortext' => 'Er is een syntaxisfout in het databaseverzoek opgetreden.
 Mogelijk zit er een fout in de software.
 Het laatste verzoek aan de database was:
-<blockquote><tt>$1</tt></blockquote>
-vanuit de functie "<tt>$2</tt>".
-De database gaf de volgende foutmelding "<tt>$3: $4</tt>".',
+<blockquote><code>$1</code></blockquote>
+vanuit de functie "<code>$2</code>".
+De database gaf de volgende foutmelding "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Er is een syntaxisfout in het databaseverzoek opgetreden.
 Het laatste verzoek aan de database was:
 "$1"
@@ -1047,7 +1047,6 @@ De laatste regel uit het blokkeerlogboek wordt hieronder ter referentie weergege
 * '''Firefox / Safari:''' houd ''Shift'' ingedrukt terwijl u op ''Vernieuwen'' klikt of druk op ''Ctrl-F5'' of ''Ctrl-R'' (''⌘-Shift-R'' op een Mac)
 * '''Google Chrome:''' druk op ''Ctrl-Shift-R'' (''⌘-Shift-R'' op een Mac)
 * '''Internet Explorer:''' houd ''Ctrl'' ingedrukt terwijl u op ''Vernieuwen'' klikt of druk op ''Ctrl-F5''
-* '''Konqueror:''' klik op ''Reload'' of druk op ''F5''
 * '''Opera:''' leeg uw cache in ''Extra → Voorkeuren''",
 'usercssyoucanpreview' => "'''Tip:''' gebruik de knop \"{{int:showpreview}}\" om uw nieuwe CSS te testen alvorens op te slaan.",
 'userjsyoucanpreview' => "'''Tip:''' gebruik de knop \"{{int:showpreview}}\" om uw nieuwe JavaScript te testen alvorens op te slaan.",
@@ -1834,20 +1833,20 @@ Aangewezen {{PLURAL:\$3|bestandstype is|bestandstypes zijn}} \$2.",
 Dit zou kunnen komen door een typefout in de bestandsnaam.
 Ga na of u dit bestand werkelijk bedoelde te uploaden.',
 'windows-nonascii-filename' => 'Deze wiki ondersteunt geen bestandsnamen met speciale tekens.',
-'fileexists' => "Er bestaat al een bestand met deze naam.
-Controleer '''<tt>[[:$1]]</tt>''' als u niet zeker weet of u het huidige bestand wilt overschrijven.
-[[$1|thumb]]",
-'filepageexists' => "De beschrijvingspagina voor dit bestand bestaat al op '''<tt>[[:$1]]</tt>''', maar er bestaat geen bestand met deze naam.
+'fileexists' => 'Er bestaat al een bestand met deze naam.
+Controleer <strong>[[:$1]]</strong> als u niet zeker weet of u het huidige bestand wilt overschrijven.
+[[$1|thumb]]',
+'filepageexists' => 'De beschrijvingspagina voor dit bestand bestaat al op <strong>[[:$1]]</strong>, maar er bestaat geen bestand met deze naam.
 De samenvatting die u hebt opgegeven zal niet op de beschrijvingspagina verschijnen.
-Bewerk de pagina handmatig om uw beschrijving daar weer te geven. [[$1|miniatuur]]",
-'fileexists-extension' => "Een bestand met dezelfde naam bestaat al: [[$2|thumb]]
-* Naam van het geüploade bestand: '''<tt>[[:$1]]</tt>'''
-* Naam van het bestaande bestand: '''<tt>[[:$2]]</tt>'''
-Kies een andere naam.",
+Bewerk de pagina handmatig om uw beschrijving daar weer te geven. [[$1|miniatuur]]',
+'fileexists-extension' => 'Een bestand met dezelfde naam bestaat al: [[$2|thumb]]
+* Naam van het geüploade bestand: <strong>[[:$1]]</strong>
+* Naam van het bestaande bestand: <strong>[[:$2]]</strong>
+Kies een andere naam.',
 'fileexists-thumbnail-yes' => "Het bestand lijkt een verkleinde versie te zijn ''(miniatuurafbeelding)''. [[$1|thumb]]
-Controleer het bestand '''<tt>[[:$1]]</tt>'''.
+Controleer het bestand <strong>[[:$1]]</strong>.
 Als het gecontroleerde bestand dezelfde afbeelding van oorspronkelijke grootte is, is het niet noodzakelijk een extra miniatuurafbeelding te uploaden.",
-'file-thumbnail-no' => "De bestandsnaam begint met '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "De bestandsnaam begint met <strong>$1</strong>.
 Het lijkt een verkleinde afbeelding te zijn ''(miniatuurafbeelding)''.
 Als u deze afbeelding in volledige resolutie hebt, upload die afbeelding dan.
 Wijzig anders de bestandsnaam.",
@@ -2086,6 +2085,7 @@ U kunt de beschrijving bewerken op de [$2 pagina met de bestandsbeschrijving].',
 'shared-repo' => 'een gedeelde mediadatabank',
 'shared-repo-name-wikimediacommons' => 'Wikimedia Commons',
 'filepage.css' => "/ * De CSS die hier geplaatst wordt, wordt opgenomen in de bestandsbeschrijvingspagina en wordt ook opgenomen op externe wiki's (via externe repositories) * /",
+'upload-disallowed-here' => 'U kunt deze afbeelding helaas niet overschrijven.',
 
 # File reversion
 'filerevert' => '$1 terugdraaien',
@@ -2120,7 +2120,7 @@ U kunt de beschrijving bewerken op de [$2 pagina met de bestandsbeschrijving].',
 # MIME search
 'mimesearch' => 'Zoeken op MIME-type',
 'mimesearch-summary' => 'Deze pagina maakt het filteren van bestanden voor het MIME-type mogelijk.
-Invoer: inhoudstype/subtype, bijvoorbeeld <tt>image/jpeg</tt>.',
+Invoer: inhoudstype/subtype, bijvoorbeeld <code>image/jpeg</code>.',
 'mimetype' => 'MIME-type:',
 'download' => 'downloaden',
 
@@ -2195,6 +2195,7 @@ Meestal is de laatste pagina het eigenlijke doel, waar de eerste pagina naar zou
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}',
 'ncategories' => '$1 {{PLURAL:$1|categorie|categorieën}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwikiverwijzing|interwikiverwijzingen}}',
 'nlinks' => '$1 {{PLURAL:$1|verwijzing|verwijzingen}}',
 'nmembers' => '$1 {{PLURAL:$1|item|items}}',
 'nrevisions' => '$1 {{PLURAL:$1|versie|versies}}',
@@ -2224,6 +2225,7 @@ De pagina's zijn ook niet als sjabloon opgenomen.",
 'mostlinkedtemplates' => 'Meestgebruikte sjablonen',
 'mostcategories' => "Pagina's met de meeste categorieën",
 'mostimages' => 'Meestgebruikte bestanden',
+'mostinterwikis' => "Pagina's met de meeste interwikiverwijzingen",
 'mostrevisions' => "Pagina's met de meeste bewerkingen",
 'prefixindex' => "Alle pagina's op voorvoegsel",
 'prefixindex-namespace' => "Alle pagina's met het voorvoegsel (naamruimte $1)",
@@ -2326,7 +2328,7 @@ Zie ook [[Special:WantedCategories|niet-bestaande categorieën met verwijzingen]
 'linksearch-ok' => 'Zoeken',
 'linksearch-text' => 'Wildcards zoals "*.wikipedia.org" of "*.org" zijn toegestaan.
 Heeft tenminste een topleveldomein, zoals bijvoorbeeld "*.org".<br />
-Ondersteunde protocollen: <tt>$1</tt> (voeg deze niet toe in uw zoekopdracht).',
+Ondersteunde protocollen: <code>$1</code> (voeg deze niet toe in uw zoekopdracht).',
 'linksearch-line' => '$1 heeft een verwijzing in $2',
 'linksearch-error' => 'Wildcards zijn alleen toegestaan aan het begin van een hostnaam.',
 
@@ -2372,6 +2374,8 @@ Er kan [[{{MediaWiki:Listgrouprights-helppage}}|extra informatie]] over individu
 'mailnologin' => 'Geen verzendadres beschikbaar',
 'mailnologintext' => 'U moet [[Special:UserLogin|aangemeld]] zijn en een geldig e-mailadres in uw [[Special:Preferences|voorkeuren]] vermelden om andere gebruikers te kunnen e-mailen.',
 'emailuser' => 'Deze gebruiker e-mailen',
+'emailuser-title-target' => 'Deze {{GENDER:$1|gebruiker}} e-mailen',
+'emailuser-title-notarget' => 'Gebruiker e-mailen',
 'emailpage' => 'Gebruiker e-mailen',
 'emailpagetext' => 'Via dit formulier kunt u een e-mail aan deze gebruiker verzenden.
 Het e-mailadres dat u hebt opgegeven bij [[Special:Preferences|uw voorkeuren]] wordt als afzender gebruikt.
@@ -3024,6 +3028,7 @@ Alle transwiki-importhandelingen worden opgeslagen in het [[Special:Log/import|i
 'import-interwiki-templates' => 'Alle sjablonen opnemen',
 'import-interwiki-submit' => 'Importeren',
 'import-interwiki-namespace' => 'Doelnaamruimte:',
+'import-interwiki-rootpage' => 'Basispagina voor doel (optioneel):',
 'import-upload-filename' => 'Bestandsnaam:',
 'import-comment' => 'Opmerking:',
 'importtext' => 'Gebruik de [[Special:Export|exportfunctie]] in de wiki waar de informatie vandaan komt.
@@ -3059,6 +3064,9 @@ Een tijdelijke map is niet aanwezig.',
 'import-error-interwiki' => 'De pagina "$1" is niet geïmporteerd omdat deze naam is gereserveerd voor externe verwijzingen (interwiki).',
 'import-error-special' => 'Pagina "$1" is niet geïmporteerd omdat deze is geplaatst in een speciale naamruimte waar geen pagina\'s in geplaatst kunnen worden.',
 'import-error-invalid' => 'De pagina" "$1" is niet geïmporteerd omdat de naam ongeldig is.',
+'import-options-wrong' => 'Verkeerde {{PLURAL:$2|optie|opties}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'De opgegeven basispagina is ongeldig.',
+'import-rootpage-nosubpage' => 'In de naamruimte "$1" van de basispagina is het aanmaken van subpagina\'s niet mogelijk.',
 
 # Import log
 'importlogpage' => 'Importlogboek',
@@ -3211,16 +3219,34 @@ Meestal wordt dit door een externe verwijzing op een zwarte lijst veroorzaakt.',
 
 # Info page
 'pageinfo-title' => 'Informatie over "$1"',
-'pageinfo-header-edits' => 'Bewerkingen',
-'pageinfo-header-watchlist' => 'Volglijst',
-'pageinfo-header-views' => 'Weergaven',
-'pageinfo-subjectpage' => 'Pagina',
-'pageinfo-talkpage' => 'Overlegpagina',
-'pageinfo-watchers' => 'Aantal volgers',
-'pageinfo-edits' => 'Aantal bewerkingen',
-'pageinfo-authors' => 'Aantal verschillende auteurs',
+'pageinfo-header-basic' => 'Basisgegevens',
+'pageinfo-header-edits' => 'Bewerkingsgeschiedenis',
+'pageinfo-header-restrictions' => 'Paginabeveiliging',
+'pageinfo-header-properties' => 'Pagina-eigenschappen',
+'pageinfo-display-title' => 'Weergegeven paginanaam',
+'pageinfo-default-sort' => 'Standaard sorteerwijze',
+'pageinfo-length' => 'Paginalengte (in bytes)',
+'pageinfo-article-id' => 'Paginanummer',
+'pageinfo-robot-policy' => 'Status voor de zoekmachine',
+'pageinfo-robot-index' => 'Indexeerbaar',
+'pageinfo-robot-noindex' => 'Niet indexeerbaar',
 'pageinfo-views' => 'Aantal weergaven',
-'pageinfo-viewsperedit' => 'Weergaven per bewerking',
+'pageinfo-watchers' => 'Aantal paginavolgers',
+'pageinfo-redirects-name' => 'Doorverwijzingen naar deze pagina',
+'pageinfo-subpages-name' => "Subpagina's van deze pagina",
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|doorverwijzing|doorverwijzingen}}; $3 {{PLURAL:$3|niet-doorverwijzing|niet-doorverwijzingen}})',
+'pageinfo-firstuser' => 'Gebruiker die de pagina heeft aangemaakt',
+'pageinfo-firsttime' => 'Datum waarop de pagina is aangemaakt',
+'pageinfo-lastuser' => 'Laatste bewerker',
+'pageinfo-lasttime' => 'Datum van laatste bewerking',
+'pageinfo-edits' => 'Totaal aantal bewerkingen',
+'pageinfo-authors' => 'Totaal aantal verschillende auteurs',
+'pageinfo-recent-edits' => 'Recent aantal bewerkingen (binnen de afgelopen $1).',
+'pageinfo-recent-authors' => 'Recent aantal verschillende auteurs',
+'pageinfo-restriction' => 'Paginabeveiliging (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Magisch woord|Magische woorden}} ($1)',
+'pageinfo-hidden-categories' => 'Verborgen {{PLURAL:$1|categorie|categorieën}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Gebruikt sjabloon|Gebruikte sjablonen}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Klassiek',
index 587524c..c41342f 100644 (file)
@@ -603,7 +603,7 @@ Dette kan òg skuldast ein feil i programvara som er nytta av {{SITENAME}}.',
 # General errors
 'error' => 'Feil',
 'databaseerror' => 'Databasefeil',
-'dberrortext' => 'Det oppstod ein syntaksfeil i databaseførespurnaden. Dette kan tyde på ein feil i programvara. Den sist prøvde førespurnaden var: <blockquote><tt>$1</tt></blockquote> frå innan funksjonen «<tt>$2</tt>». Databasen returnerte feilen «<tt>$3: $4</tt>».',
+'dberrortext' => 'Det oppstod ein syntaksfeil i ein databaseførespurnad. Dette kan tyda på feil i programvara. Siste førespurnaden til databasen var: <blockquote><code>$1</code></blockquote> frå funksjonen «<code>$2</code>». Databasen returnerte feilen «<samp>$3: $4</samp>».',
 'dberrortextcl' => 'Det oppstod ein syntaksfeil i databaseførespurnaden.
 Den sist prøvde førespurnaden var: «$1» frå funksjonen «$2».
 Databasen returnerte feilen «$3: $4».',
@@ -1605,9 +1605,9 @@ Slette- og flytteloggen til sida er gjeven opp her:",
 For å sjå eller søkje i eksisterande filer, gå til [[Special:FileList|fillista]]. Opplastingar vert òg lagra i [[Special:Log/upload|opplastingsloggen]], og slettingar i [[Special:Log/delete|sletteloggen]].
 
 For å bruke ei fil på ei side, bruk ei lenkje på eit liknande format:
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}:Filnamn.jpg<nowiki>]]</nowiki></tt>''' for å bruke biletet i opphavleg form
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}:Filnamn.png|200px|mini|venstre|Alternativ tekst<nowiki>]]</nowiki></tt>''' for å bruke biletet med ei breidd på 200&nbsp;pikslar, venstrestilt og med «Alternativ tekst» som bilettekst
-*'''<tt><nowiki>[[</nowiki>{{ns:media}}:Filnamn.ogg<nowiki>]]</nowiki></tt>''' for å lenkje direkte til fila utan å vise ho",
+*'''<code><nowiki>[[</nowiki>{{ns:file}}:Filnamn.jpg<nowiki>]]</nowiki></code>''' for å bruke biletet i opphavleg form
+*'''<code><nowiki>[[</nowiki>{{ns:file}}:Filnamn.png|200px|mini|venstre|Alternativ tekst<nowiki>]]</nowiki></code>''' for å bruke biletet med ei breidd på 200&nbsp;pikslar, venstrestilt og med «Alternativ tekst» som bilettekst
+*'''<code><nowiki>[[</nowiki>{{ns:media}}:Filnamn.ogg<nowiki>]]</nowiki></code>''' for å lenkje direkte til fila utan å vise ho",
 'upload-permitted' => 'Godtekne filtypar: $1.',
 'upload-preferred' => 'Føretrekte filtypar: $1.',
 'upload-prohibited' => 'Ikkje godtekne filtypar: $1.',
@@ -1650,18 +1650,18 @@ For å bruke ei fil på ei side, bruk ei lenkje på eit liknande format:
 'largefileserver' => 'Denne fila er større enn det tenaren tillèt.',
 'emptyfile' => 'Det ser ut til at fila du lasta opp er tom. Dette kan komma av ein skrivefeil i filnamnet. Sjekk og tenk etter om du verkeleg vil laste opp fila.',
 'windows-nonascii-filename' => 'Wikien stør ikkje filnamn med spesialteikn.',
-'fileexists' => "Ei fil med dette namnet finst allereie, sjekk '''<tt>[[:$1]]</tt>''' om du ikkje er sikker på om du vil endre namnet.
-[[$1|thumb]]",
-'filepageexists' => "Skildringssida for denne fila finst allereie på '''<tt>[[:$1]]</tt>''', men det finst ikkje noka fil med dette namnet. Endringssamandraget du skriv inn vert ikkje vist på skildringssida. For at det skal dukke opp der, må du skrive det inn på skildringssida manuelt etter å ha lasta opp fila.
-[[$1|thumb]]",
-'fileexists-extension' => "Ei fil med eit liknande namn finst allereie: [[$2|thumb]]
-* Namnet på fila du lastar opp: '''<tt>[[:$1]]</tt>'''
-* Namnet på den eksisterande fila: '''<tt>[[:$2]]</tt>'''
-Ver venleg og vel eit anna namn.",
-'fileexists-thumbnail-yes' => "Fila ser ut til å vere eit bilete med redusert storleik. [[$1|thumb]]
-Ver venleg og sjekk fila '''<tt>[[:$1]]</tt>'''.
-Dersom denne er det same biletet i original storleik, er det ikkje nødvendig å laste opp ein mindre versjon.",
-'file-thumbnail-no' => "Filnamnet byrjar med '''<tt>$1</tt>'''.
+'fileexists' => 'Ei fil med dette namnet finst allereie, sjekk <strong>[[:$1]]</strong> om du ikkje er sikker på om du vil endre namnet.
+[[$1|thumb]]',
+'filepageexists' => 'Skildringssida for denne fila finst allereie på <strong>[[:$1]]</strong>, men det finst ikkje noka fil med dette namnet. Endringssamandraget du skriv inn vert ikkje vist på skildringssida. For at det skal dukke opp der, må du skrive det inn på skildringssida manuelt etter å ha lasta opp fila.
+[[$1|thumb]]',
+'fileexists-extension' => 'Ei fil med eit liknande namn finst allereie: [[$2|thumb]]
+* Namnet på fila du lastar opp: <strong>[[:$1]]</strong>
+* Namnet på den eksisterande fila: <strong>[[:$2]]</strong>
+Ver venleg og vel eit anna namn.',
+'fileexists-thumbnail-yes' => 'Fila ser ut til å vere eit bilete med redusert storleik. [[$1|thumb]]
+Ver venleg og sjekk fila <strong>[[:$1]]</strong>.
+Dersom denne er det same biletet i original storleik, er det ikkje nødvendig å laste opp ein mindre versjon.',
+'file-thumbnail-no' => "Filnamnet byrjar med <strong>$1</strong>.
 Det ser ut til å vere eit bilte med redusert storleik''(miniatyrbilete)''.
 Om du har dette bilete i stor utgåve, så last det opp eller endre filnamnet på denne fila.",
 'fileexists-forbidden' => 'Ei fil med dette namnet finst allereie, og ho kan ikkje verte skriven over.
@@ -1853,7 +1853,7 @@ Skildringa frå [$2 filskildringssida] der er vist nedanfor.',
 
 # MIME search
 'mimesearch' => 'MIME-søk',
-'mimesearch-summary' => 'Denne sida gjer filtrering av filer etter MIME-type mogleg. Skriv inn: innhaldstype/undertype, t.d. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Denne sida gjer filtrering av filer etter MIME-type mogleg. Skriv inn: innhaldstype/undertype, t.d. <code>image/jpeg</code>.',
 'mimetype' => 'MIME-type:',
 'download' => 'last ned',
 
@@ -2039,7 +2039,7 @@ Sjå òg [[Special:WantedCategories|ønska kategoriar]].',
 'linksearch-pat' => 'Søkemønster:',
 'linksearch-ns' => 'Namnerom:',
 'linksearch-ok' => 'Søk',
-'linksearch-text' => 'Jokerteikn som «*.wikipedia.org» kan nyttast.<br />Støtta protokollar: <tt>$1</tt>',
+'linksearch-text' => 'Jokerteikn som «*.wikipedia.org» kan nyttast.<br />Støtta protokollar: <code>$1</code>',
 'linksearch-line' => '$2 lenkjer til $1',
 'linksearch-error' => 'Jokerteikn kan berre nyttast føre tenarnamnet.',
 
@@ -2593,9 +2593,9 @@ I desse falla lyt du flytte eller flette saman sida manuelt.",
 'movereason' => 'Årsak:',
 'revertmove' => 'flytt attende',
 'delete_and_move' => 'Slett og flytt',
-'delete_and_move_text' => '== Sletting påkrevd ==
+'delete_and_move_text' => '== Sletting påkravd ==
 
-Målsida «[[:$1]]» finst allereie. Vil du slette ho for å gje rom for flytting?',
+Målsida «[[:$1]]» finst alt. Vil du sletta henne for å gjeva rom for flytting?',
 'delete_and_move_confirm' => 'Ja, slett sida',
 'delete_and_move_reason' => 'Sletta for å gje rom for flytting frå «[[$1]]»',
 'selfmove' => 'Kjelde- og måltitlane er like; kan ikkje flytte sida over seg sjølv.',
@@ -2778,7 +2778,7 @@ Vitja [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] og [//trans
 'tooltip-watchlistedit-raw-submit' => 'Oppdater overvakingslista',
 'tooltip-recreate' => 'Ved å trykkje på «Nyopprett» vert sida oppretta på nytt.',
 'tooltip-upload' => 'Start opplastinga',
-'tooltip-rollback' => '«Attenderull»-knappen attenderullar endringar på denne sida med eitt klikk til den førre utgåva av ein annan brukar',
+'tooltip-rollback' => '«Rulla attende»-knappen rullar med eitt klikk attende endringa(ne) på sida gjorde av den siste bidragsytaren',
 'tooltip-undo' => '«Gjer om» attenderullar endringar og opnar endringsvindauga med førehandsvising. Gjer at ein kan leggje til ei årsak samandragsboksen.',
 'tooltip-preferences-save' => 'Lagra innstillingar',
 'tooltip-summary' => 'Skriv inn eit kort samandrag',
@@ -2833,15 +2833,10 @@ Vitja [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] og [//trans
 # Info page
 'pageinfo-title' => 'Informasjon om «$1»',
 'pageinfo-header-edits' => 'Endringar',
-'pageinfo-header-watchlist' => 'Overvakingsliste',
-'pageinfo-header-views' => 'Visningar',
-'pageinfo-subjectpage' => 'Side',
-'pageinfo-talkpage' => 'Diskusjonsside',
+'pageinfo-views' => 'Tal på visningar',
 'pageinfo-watchers' => 'Antal overvakarar',
 'pageinfo-edits' => 'Tal på endringar',
 'pageinfo-authors' => 'Tal på forskjellege forfattarar',
-'pageinfo-views' => 'Tal på visningar',
-'pageinfo-viewsperedit' => 'Visningar per endring',
 
 # Skin names
 'skinname-standard' => 'Klassisk',
index b99d2c0..845395a 100644 (file)
@@ -1584,9 +1584,9 @@ Lo jornal de las supressions e lo dels desplaçaments d'aquesta pagina son afich
 Per veire o recercar d'imatges mandats precedentament, consultatz [[Special:FileList|la tièra dels imatges]]. Las còpias e las supressions tanben son enregistradas dins l'[[Special:Log/upload|istoric dels impòrts]], las supressions dins l’[[Special:Log/delete|istoric de las supressions]].
 
 Per inclure un imatge dins una pagina, utilizatz un ligam de la forma
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichièr.jpg]]</nowiki></tt>''',
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichièr.png|200px|thumb|left|tèxte descriptiu]]</nowiki></tt>''' per utilizar una miniatura de 200 pixèls de larg dins una bóstia a esquèrra amb 'tèxte descriptiu' coma descripcion
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:fichièr.ogg]]</nowiki></tt>''' per ligar dirèctament cap al fichièr sens l'afichar.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichièr.jpg]]</nowiki></code>''',
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:fichièr.png|200px|thumb|left|tèxte descriptiu]]</nowiki></code>''' per utilizar una miniatura de 200 pixèls de larg dins una bóstia a esquèrra amb 'tèxte descriptiu' coma descripcion
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:fichièr.ogg]]</nowiki></code>''' per ligar dirèctament cap al fichièr sens l'afichar.",
 'upload-permitted' => 'Formats de fichièrs autorizats : $1.',
 'upload-preferred' => 'Formats de fichièrs preferits : $1.',
 'upload-prohibited' => 'Formats de fichièrs interdiches : $1.',
@@ -1628,20 +1628,20 @@ Vejatz la [[Special:NewFiles|galariá dels imatges novèls]] per una presentacio
 'large-file' => 'Los fichièrs importats deurián pas èsser mai gros que $1 ; aqueste fichièr fa $2.',
 'largefileserver' => "La talha d'aqueste fichièr es superiora al maximum autorizat.",
 'emptyfile' => 'Lo fichièr que volètz importar sembla void. Aquò pòt èsser degut a una error dins lo nom del fichièr. Verificatz que desiratz vertadièrament copiar aqueste fichièr.',
-'fileexists' => "Un fichièr amb aqueste nom existís ja.
-Mercé de verificar '''<tt>[[:$1]]</tt>'''.
-Sètz segur de voler modificar aqueste fichièr ? [[$1|thumb]]",
-'filepageexists' => "La pagina de descripcion per aqueste fichièr ja es estada creada aicí '''<tt>[[:$1]]</tt>''', mas cap de fichièr existís pas actualament jos aqueste nom.
+'fileexists' => 'Un fichièr amb aqueste nom existís ja.
+Mercé de verificar <strong>[[:$1]]</strong>.
+Sètz segur de voler modificar aqueste fichièr ? [[$1|thumb]]',
+'filepageexists' => "La pagina de descripcion per aqueste fichièr ja es estada creada aicí <strong>[[:$1]]</strong>, mas cap de fichièr existís pas actualament jos aqueste nom.
 Lo resumit qu'anatz especificar apareisserà pas sus la pagina de descripcion.
 Per o far, vos caldrà modificar la pagina manualament. [[$1|vinheta]]",
 'fileexists-extension' => "Un fichièr amb un nom pròchi existís ja : [[$2|thumb]]
-* Nom del fichièr d'importar : '''<tt>[[:$1]]</tt>'''
-* Nom del fichièr existent : '''<tt>[[:$2]]</tt>'''
+* Nom del fichièr d'importar : <strong>[[:$1]]</strong>
+* Nom del fichièr existent : <strong>[[:$2]]</strong>
 Causissètz-ne un autre.",
 'fileexists-thumbnail-yes' => "Lo fichièr sembla èsser un imatge en talha reducha ''(thumbnail)''. [[$1|thumb]]
-Verificatz lo fichièr '''<tt>[[:$1]]</tt>'''.
+Verificatz lo fichièr <strong>[[:$1]]</strong>.
 Se lo fichièr verificat es lo meteis imatge (dins una resolucion melhora), es pas de besonh d’importar una version reducha.",
-'file-thumbnail-no' => "Lo nom del fichièr comença per '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Lo nom del fichièr comença per <strong>$1</strong>.
 Es possible que s’agisca d’una version reducha ''(miniatura)''.
 Se dispausatz del fichièr en resolucion nauta, importatz-lo, si que non cambiatz lo nom del fichièr.",
 'fileexists-forbidden' => "Un fichièr amb aqueste nom existís ja e pòt pas èsser espotit.
@@ -1826,7 +1826,7 @@ Una [[Special:WhatLinksHere/$2|tièra completa]] es disponibla.',
 
 # MIME search
 'mimesearch' => 'Recèrca per tipe MIME',
-'mimesearch-summary' => 'Aquesta pagina especiala permet de cercar de fichièrs en foncion de lor tipe MIME. Entrada : tipe/sostipe, per exemple <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Aquesta pagina especiala permet de cercar de fichièrs en foncion de lor tipe MIME. Entrada : tipe/sostipe, per exemple <code>image/jpeg</code>.',
 'mimetype' => 'Tipe MIME :',
 'download' => 'telecargament',
 
@@ -2014,7 +2014,7 @@ Vejatz tanben [[Special:WantedCategories|las categorias demandadas]].',
 'linksearch-pat' => 'Recercar l’expression :',
 'linksearch-ns' => 'Espacis de noms :',
 'linksearch-ok' => 'Recercar',
-'linksearch-text' => 'De caractèrs « joker » pòdon èsser utilizats, per exemple <code>*.wikipedia.org</code>.<br />Protocòls reconeguts : <tt>$1</tt>.',
+'linksearch-text' => 'De caractèrs « joker » pòdon èsser utilizats, per exemple <code>*.wikipedia.org</code>.<br />Protocòls reconeguts : <code>$1</code>.',
 'linksearch-line' => '$1 amb un ligam a partir de $2',
 'linksearch-error' => 'Los caractèrs « joker » pòdon pas èsser utilizats qu’al començament del nom de domeni.',
 
@@ -2797,11 +2797,9 @@ Aquò es probablament causat per un ligam sus lista negra que punta cap a un sit
 'spam_blanking' => 'Totas las versions que contenon de ligams cap a $1 son blanquidas',
 
 # Info page
-'pageinfo-subjectpage' => 'Pagina',
+'pageinfo-views' => 'Nombre de vistas',
 'pageinfo-edits' => "Nombre d'edicions",
 'pageinfo-authors' => "Nombre d'autors distints",
-'pageinfo-views' => 'Nombre de vistas',
-'pageinfo-viewsperedit' => 'Visitas per modificacions',
 
 # Skin names
 'skinname-standard' => 'Estandard',
index aa06cc9..4254e2b 100644 (file)
@@ -16,6 +16,7 @@
  * @author Psubhashish
  * @author Sambiwiki
  * @author Shijualex
+ * @author Shisir 1945
  * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
  */
 
@@ -1653,9 +1654,9 @@ HTML ଟାଗ ପରଖିନିଅନ୍ତୁ ।',
 ଆଗରୁ ଅପଲୋଡ଼ କରାଯାଇଥିବା ଫାଇଲ [[Special:FileList|ଅପଲୋଡ଼ ହୋଇସାରିଥିବା ଫାଇଲ]] ଖୋଜିବା ବା ଦେଖିବା ପାଇଁ, (ପୁନ) ଅପଲୋଡ଼ମାନ [[Special:Log/upload|ଅପଲୋଡ଼ ଇତିହାସ]]ରେ ରହିଛି, ଲିଭାଯାଇଥିବା ଇତିହାସ [[Special:Log/delete|ଲିଭାଯାଇଥିବା ଇତିହାସ]]ରେ ରହିଛି ।
 
 ଏକ ପୃଷ୍ଠାରେ ଫାଇଲଟିଏ ଭରିବା ନିମନ୍ତେ ତଳଲିଖିତ ଫର୍ମରେ ଲିଙ୍କଟିଏ ବ୍ୟବହାର କରିବେ:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' ଫାଇଲଟିର ପୁରା ସଂସ୍କରଣ ବ୍ୟବହାର କରିବେ
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' ବାମ ଏକ ୨୦୦ ପିକ୍ସେଲର ଚଉଡ଼ା ଘରେ ବିବରଣୀ 'alt text' ଥିବା ବର୍ଣ୍ଣନା ରହିବ
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' ଫାଇଲଟି ନ ଦେଖାଇ ଫାଇଲ ସହ ସିଧା ଯୋଡ଼ିବା",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' ଫାଇଲଟିର ପୁରା ସଂସ୍କରଣ ବ୍ୟବହାର କରିବେ
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' ବାମ ଏକ ୨୦୦ ପିକ୍ସେଲର ଚଉଡ଼ା ଘରେ ବିବରଣୀ 'alt text' ଥିବା ବର୍ଣ୍ଣନା ରହିବ
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' ଫାଇଲଟି ନ ଦେଖାଇ ଫାଇଲ ସହ ସିଧା ଯୋଡ଼ିବା",
 'upload-permitted' => 'ଅନୁମୋଦିତ ଫାଇଲ ପ୍ରକାର: $1 ।',
 'upload-preferred' => 'ପସନ୍ଦର ଫାଇଲ ପ୍ରକାର: $1 ।',
 'upload-prohibited' => 'ଅନନୁମୋଦିତ ଫାଇଲ ପ୍ରକାର: $1 ।',
@@ -1703,21 +1704,21 @@ HTML ଟାଗ ପରଖିନିଅନ୍ତୁ ।',
 ଏହା ହୁଏତ ଫାଇଲ ନାମରେ କିଛି ଭୁଲ ଜନିତ ହୋଇଥାଇପାରେ ।
 ସତରେ ଆପଣ ଏହି ଫାଇଲଟି ଅପଲୋଡ଼ କରିବାକୁ ଚାହାନ୍ତି କି ନାଁ ଠାରେ ପରଖି ନିଅନ୍ତୁ ।',
 'windows-nonascii-filename' => 'ଏହି ଉଇକି ବିଶେଷ ସଂକେତ ଥିବା ଫାଇଲ ନାମକୁ ଅନୁମତି ଦିଏ ନାହିଁ ।',
-'fileexists' => "ଏହି ଏକା ନାଆଁରେ ଆଗରୁ ଫାଇଲଟିଏ ଅଛି , ସତରେ ଆପଣ ଏହାକୁ ଅପଲୋଡ଼ କରିବାକୁ ଚାହାନ୍ତି କି ନାଁ ଦୟାକରି '''<tt>[[:$1]]</tt>''' ପରଖି ନିଅନ୍ତୁ ।
-[[$1|thumb]]",
-'filepageexists' => "ଏହି ଫାଇଲର ବିବରଣୀ ପୃଷ୍ଠାଟି '''<tt>[[:$1]]</tt>''' ଠାରେ ତିଆରି କରାଯାଇଅଛି, କିନ୍ତୁ ଏହି ନାମରେ ଗୋଟିଏ ବି ଫାଇଲ ନାହିଁ ।
+'fileexists' => 'ଏହି ଏକା ନାଆଁରେ ଆଗରୁ ଫାଇଲଟିଏ ଅଛି , ସତରେ ଆପଣ ଏହାକୁ ଅପଲୋଡ଼ କରିବାକୁ ଚାହାନ୍ତି କି ନାଁ ଦୟାକରି <strong>[[:$1]]</strong> ପରଖି ନିଅନ୍ତୁ ।
+[[$1|thumb]]',
+'filepageexists' => 'ଏହି ଫାଇଲର ବିବରଣୀ ପୃଷ୍ଠାଟି <strong>[[:$1]]</strong> ଠାରେ ତିଆରି କରାଯାଇଅଛି, କିନ୍ତୁ ଏହି ନାମରେ ଗୋଟିଏ ବି ଫାଇଲ ନାହିଁ ।
 ବିବରଣୀ ପୃଷ୍ଠାରେ ଆପଣ ଦେଇଥିବା ସାରକଥା ଦେଖାଯିବ ନାହିଁ ।
 ଆପଣଙ୍କ ବିବରଣୀ ସେଠାରେ ଦେଖାଇବା ନିମନ୍ତେ ଆପଣଙ୍କୁ ନିଜେ ଏହା ବଦଳାଇବାକୁ ପଡ଼ିବ ।
-[[$1|thumb]]",
-'fileexists-extension' => "ଏକାପରି ନାଆଁ ଥିବା ଫାଇଲଟିଏ ଆଗରୁ ଅଛି: [[$2|thumb]]
-* ଅପଲୋଡ଼ କରାଯାଉଥିବା ଫାଇଲର ନାମ: '''<tt>[[:$1]]</tt>'''
-* ଆଗରୁ ଥିବା ଫାଇଲର ନାମ: '''<tt>[[:$2]]</tt>'''
-ଦୟାକରି ଅଲଗା ନାମଟିଏ ବାଛନ୍ତୁ ।",
+[[$1|thumb]]',
+'fileexists-extension' => 'ଏକାପରି ନାଆଁ ଥିବା ଫାଇଲଟିଏ ଆଗରୁ ଅଛି: [[$2|thumb]]
+* ଅପଲୋଡ଼ କରାଯାଉଥିବା ଫାଇଲର ନାମ: <strong>[[:$1]]</strong>
+* ଆଗରୁ ଥିବା ଫାଇଲର ନାମ: <strong>[[:$2]]</strong>
+ଦୟାକରି ଅଲଗା ନାମଟିଏ ବାଛନ୍ତୁ ।',
 'fileexists-thumbnail-yes' => "ଫାଇଲଟି ଏକ ସାନ ଆକାରର ଛବି ବୋଲି ବୋଧ ହୁଏ ''(ନଖଦେଖଣା)''.
 [[$1|thumb]]
-ଦୟାକରି '''<tt>[[:$1]]</tt>''' ଫାଇଲଟି ପରଖି ନିଅନ୍ତୁ ।
+ଦୟାକରି <strong>[[:$1]]</strong> ଫାଇଲଟି ପରଖି ନିଅନ୍ତୁ ।
 ଯଦି ବଛା ଫାଇଲଟି ମୂଳ ଫାଇଲ ଆକାରର ହୋଇଥାଏ ତେବେ ଆଉ ଗୋଟିଏ ନଖଦେଖଣା ସାନ ଛବି ଅପଲୋଡ଼ କରିବାକୁ ପଡ଼ିବ ।",
-'file-thumbnail-no' => "ଫାଇଲ ନାମ '''<tt>$1</tt>'''ରେ ଆରମ୍ଭ ହୋଇଥାଏ ।
+'file-thumbnail-no' => "ଫାଇଲ ନାମ <strong>$1</strong>ରେ ଆରମ୍ଭ ହୋଇଥାଏ ।
 ଏହା ଏକ ଛୋଟ ଆକାରର ଛବି ଭଳି ବୋଧ ହୁଏ ''(ଛୋଟଦେଖଣା)'' ।
 ଯଦି ଆପଣଙ୍କ ପାଖରେ ପୁରା ରେଜୋଲୁସନର ଛବିଟିଏ ଅଛି ତେବେ ତାହା ଅପଲୋଡ଼ କରନ୍ତୁ କିମ୍ବା ଫାଇଲ ନାମ ବଦଳାଇ ଦିଅନ୍ତୁ ।",
 'fileexists-forbidden' => 'ଏହି ନାମରେ ଫାଇଲଟିଏ ଆଗରୁ ଅଛି ଯାହା ଉପରେ ଆଉଥରେ ମଡ଼ାଯାଇପାରିବ ନାହିଁ ।
@@ -1955,7 +1956,7 @@ URLଟି ଠିକ ଅଚିକି କି ନାଁ ଓ ସାଇଟଟି ସ
 # MIME search
 'mimesearch' => 'MIME ଖୋଜା',
 'mimesearch-summary' => 'ଏହି ପୃଷ୍ଠାଟି ଫାଇଲ ମାନଙ୍କର MIME ପ୍ରକାରକୁ ଛଣିବାରେ ସହଯୋଗ କରିଥାଏ ।
-ଇନପୁଟ: ବିଷୟ ଶ୍ରେଣୀ/ଉପ ଶ୍ରେଣ, ଯଥା: <tt>image/jpeg</tt> ।',
+ଇନପୁଟ: ବିଷୟ ଶ୍ରେଣୀ/ଉପ ଶ୍ରେଣ, ଯଥା: <code>image/jpeg</code> ।',
 'mimetype' => 'MIME ପ୍ରକାର:',
 'download' => 'ଡାଉନଲୋଡ଼',
 
@@ -2002,9 +2003,9 @@ URLଟି ଠିକ ଅଚିକି କି ନାଁ ଓ ସାଇଟଟି ସ
 
 'disambiguations' => 'ବହୁବିକଳ୍ପ ପୃଷ୍ଠାମାନଙ୍କ ସହ ଯୋଡ଼ା ପୃଷ୍ଠା',
 'disambiguationspage' => 'Template:ବହୁବିକଳ୍ପ',
-'disambiguations-text' => "ତଲାଲିà¬\96ିତ à¬ªà­\83ଷà­\8dଠାମାନ '''ବହୁବିକଳ୍ପ ପୃଷ୍ଠା'''କୁ ଯୋଡ଼ିଥାନ୍ତି ।
-ସà­\87ହିସବà­\81 à¬\89ପଯà­\81à¬\95à­\8dତ à¬ªà­\8dରସà¬\99à­\8dà¬\97 à¬¸à¬¹ à¬¯à­\8bଡ଼ାହà­\87ବା à¬\9cରà­\81ରà­\80 ।<br />
-A page is treated as disambiguation page if it uses a template which is linked from [[MediaWiki:Disambiguationspage]] ସହ ଯୋଡ଼ାଥିବା ଛାଞ୍ଚ ବ୍ୟବହାର କରୁଥିଲେ ପୃଷ୍ଠାଟିଏକୁ ବହୁବିକଳ୍ପ ପୃଷ୍ଠା ବୋଲି କୁହାଯାଏ",
+'disambiguations-text' => "ତଳà­\87 à¬¥à¬¿à¬¬à¬¾ à¬ªà­\83ଷà­\8dଠାà¬\97à­\81ଡିà¬\95 à¬\85ତିà¬\95ମରà­\87 à¬\97à­\8bà¬\9fà­\87 à¬\97à­\8bà¬\9fà­\87 '''ବହୁବିକଳ୍ପ ପୃଷ୍ଠା'''କୁ ଯୋଡ଼ିଥାନ୍ତି ।
+ସà­\87ସବà­\81 à¬\85ଧିà¬\95 à¬\89ପଯà­\81à¬\95à­\8dତ à¬ªà­\8dରସà¬\99à­\8dà¬\97 à¬¸à¬¹ à¬¯à­\8bଡ଼ାହà­\87ବା à¬\89à¬\9aିତ  ।<br />
+[[MediaWiki:Disambiguationspage]] ସହ ଯୋଡ଼ାଥିବା ଛାଞ୍ଚ ବ୍ୟବହାର କରୁଥିଲେ ପୃଷ୍ଠାଟିଏକୁ ବହୁବିକଳ୍ପ ପୃଷ୍ଠା ବୋଲି କୁହାଯାଏ",
 
 'doubleredirects' => 'ଯୋଡ଼ା ପୁନପ୍ରେରଣ',
 'doubleredirectstext' => 'ଏହି ପୃଷ୍ଠା ବାକି ବହୁବିକଳ୍ପ ପୃଷ୍ଠାମାନଙ୍କ ସହ ଯୋଡ଼ିଥାଏ ।
@@ -2152,7 +2153,7 @@ A page is treated as disambiguation page if it uses a template which is linked f
 'linksearch-ok' => 'ଖୋଜିବା',
 'linksearch-text' => '"*.wikipedia.org" ପରି ୱାଇଲ୍ଡକାର୍ଡ଼ର ବ୍ୟବହାର କରାଯାଇଥାଇ ପାରେ ।
 ଏକ ଉଚ୍ଚକୋଟୀର ଡୋମେନ ଲୋଡ଼ା, ଯଥା "*.org".<br />
-ଅନୁମୋଦିତ ପ୍ରଟୋକଲ: <tt>$1</tt> (ନିଜର ଖୋଜିବାରେ ଏହାକୁ ରଖନ୍ତୁ ନାହିଁ) ।',
+ଅନୁମୋଦିତ ପ୍ରଟୋକଲ: <code>$1</code> (ନିଜର ଖୋଜିବାରେ ଏହାକୁ ରଖନ୍ତୁ ନାହିଁ) ।',
 'linksearch-line' => '$1 ଟି $2ରୁ ଯୋଡ଼ାଯାଇଅଛି ।',
 'linksearch-error' => 'କେବଳ ହୋଷ୍ଟ ନାମର ଆରମ୍ଭରେ ୱାଇଲ୍ଡକାର୍ଡ଼ ଦେଖାଯିବ ।',
 
@@ -2578,8 +2579,8 @@ $1',
 'ipb-confirm' => 'ଅଟକ ଥୟ କରିବେ',
 'badipaddress' => 'ଭୁଲ IP ଠିକଣା',
 'blockipsuccesssub' => 'ବାସନ୍ଦ ସଫଳ ହେଲା',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] à¬\85à¬\9fà¬\95ାଯାà¬\87à¬\9bନà­\8dତି.<br />
-ଅଟକ ବାବଦରେ ଟିପ୍ପଣୀ ଦେବା ନିମନ୍ତେ [[Special:BlockList|IP ତାଲିକା]] ଦେଖନ୍ତୁ ।',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] à¬\85à¬\9fà¬\95ାଯାଯାà¬\87à¬\9bି.<br />
+ଅଟକ ବାବଦରେ ଟିପ୍ପଣୀ ଦେବା ନିମନ୍ତେ [[Special:BlockList|block list]] ଦେଖନ୍ତୁ ।',
 'ipb-blockingself' => 'ଆପଣ ନିଜକୁ ଅଟକାଇବାକୁ ଯାଉଛନ୍ତି ! ଆପଣ ପୁରାପୁରି ନିଶ୍ଚିତ ତ?',
 'ipb-confirmhideuser' => 'ଆପଣ "ବ୍ୟବହାରକାରୀଙ୍କୁ ଲୁଚାନ୍ତୁ" ସଚଳ କରି ଜଣେ ବ୍ୟବହାରକାରୀଙ୍କୁ ଅଟକାଇବାକୁ ଯାଉଛନ୍ତି । ଏହା ବ୍ୟବହାରକାରୀଙ୍କ ନାମକୁ ସବୁଯାକ ତାଲିକାୟ ଇତିହାସରେ ଲୁଚାଇଦେବ । ତଥାପି ବି ଆପଣ ଏହା କରିବାକୁ ଚାହୁଁଛନ୍ତି କି?',
 'ipb-edit-dropdown' => 'ସମ୍ପାଦନା ଅଟକ କାରଣମାନ',
@@ -2993,15 +2994,10 @@ MediaWiki ବ୍ୟବହାର କରି [[Special:Import|ପୃଷ୍ଠା 
 # Info page
 'pageinfo-title' => '"$1"ର ବିବରଣୀ',
 'pageinfo-header-edits' => 'ବଦଳସବୁ',
-'pageinfo-header-watchlist' => 'ଦେଖଣା ତାଲିକା',
-'pageinfo-header-views' => 'ଦେଖଣା',
-'pageinfo-subjectpage' => 'ପୃଷ୍ଠା',
-'pageinfo-talkpage' => 'ଆଲୋଚନା ପୃଷ୍ଠା',
+'pageinfo-views' => 'ଦେଖଣା ସଂଖ୍ୟା',
 'pageinfo-watchers' => 'ଦେଖଣାହାରି ସଂଖ୍ୟା',
 'pageinfo-edits' => 'ସମ୍ପାଦନା ସଂଖ୍ୟା:',
 'pageinfo-authors' => 'ନିଆରା ଲେଖକଙ୍କ ସଂଖ୍ୟା',
-'pageinfo-views' => 'ଦେଖଣା ସଂଖ୍ୟା',
-'pageinfo-viewsperedit' => 'ସମ୍ପାଦନା ପ୍ରତି ଦେଖା',
 
 # Patrolling
 'markaspatrolleddiff' => 'ଜଗାଯାଇଅଛି ବୋଲି ଚିହ୍ନିତ କରାଗଲା',
@@ -3687,6 +3683,7 @@ MediaWiki ଉପଯୋଗୀ ହେବା ଲକ୍ଷରେ ବଣ୍ଟାଯ
 'version-software' => 'ଇନଷ୍ଟଲ ହୋଇଥିବା ସଫ୍ଟୱାର',
 'version-software-product' => 'ଉତ୍ପାଦ',
 'version-software-version' => 'ସଂସ୍କରଣ',
+'version-entrypoints-header-entrypoint' => 'ପ୍ରବେଶ ବିନ୍ଦୁ',
 'version-entrypoints-header-url' => 'ଇଉଆରଏଲ',
 
 # Special:FilePath
index dcd16e5..a3b6053 100644 (file)
@@ -710,7 +710,7 @@ $1 ਲੁਕਵੀਆਂ ਸ਼੍ਰੇਣੀਆਂ}} ਦਾ ਮੈਂਬਰ 
 'permissionserrorstext' => 'ਤੁਹਾਨੂੰ ਇੰਝ ਕਰਨ ਦੇ ਅਧਿਕਾਰ ਨਹੀਂ ਹਨ। ਹੇਠ ਦਿੱਤੇ {{PLURAL:$1|ਕਾਰਨ|ਕਾਰਨ}} ਨੇ:',
 'permissionserrorstext-withaction' => '{{PLURAL:$1|ਇਸ ਕਾਰਨ|ਇਹਨਾਂ ਕਾਰਨਾਂ}} ਕਰਕੇ ਤੁਹਾਨੂੰ $2 ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ:',
 'recreate-moveddeleted-warn' => "'''ਖ਼ਬਰਦਾਰ:
-ਤੁਸੀਂ ਐਸਾ ਸਫ਼ਾ ਬਣਾ ਰਹੇ ਹੋ ਜੋ ਪਹਿਲਾਂ ਮਿਟਾਇਆ ਜਾ ਚੁੱਕ ਹੈ।'''
+ਤੁਸੀਂ ਐਸਾ ਸਫ਼ਾ ਬਣਾ ਰਹੇ ਹੋ ਜੋ ਪਹਿਲਾਂ ਮਿਟਾਇਆ ਜਾ ਚੁੱਕ ਹੈ।'''
 
 ਖ਼ਿਆਲ ਕਰੋ ਕਿ ਕੀ ਇਸ ਸਫ਼ੇ ਦਾ ਕਾਇਮ ਰਹਿਣਾ ਠੀਕ ਹੈ।
 ਇਸਨੂੰ ਮਿਟਾਉਣ ਜਾਂ ਸਿਰਲੇਖ ਬਦਲੀ ਦਾ ਚਿੱਠਾ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ।",
@@ -1164,11 +1164,11 @@ to upload files.',
 'filename-tooshort' => 'ਫ਼ਾਈਲ ਬਹੁਤ ਛੋਟੀ ਹੈ।',
 'filetype-banned' => 'ਇਸ ਕਿਸਮ ਦੀ ਫ਼ਾਈਲ ਦੀ ਮਨਾਹੀ ਹੈ।',
 'illegal-filename' => 'ਇਸ ਫ਼ਾਈਲ-ਨਾਮ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
-'fileexists' => "ਇਹ ਫਾਇਲ ਨਾਂ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ। ਜੇ ਤੁਸੀਂ ਇਹ ਬਦਲਣ ਬਾਰੇ ਜਾਣਦੇ ਨਹੀਂ ਹੋ ਤਾਂ  '''<tt>[[:$1]]</tt>''' ਵੇਖੋ ਜੀ। [[$1|thumb]]",
-'fileexists-extension' => "ਇਸ ਨਾਂ ਨਾਲ ਰਲਦੀ ਫਾਇਲ ਮੌਜੂਦ ਹੈ: [[$2|thumb]]
-* ਅੱਪਲੋਡ ਕੀਤੀ ਫਾਇਲ ਦਾ ਨਾਂ: '''<tt>[[:$1]]</tt>'''
-* ਮੌਜੂਦ ਫਾਇਲ ਦਾ ਨਾਂ: '''<tt>[[:$2]]</tt>'''
-ਇੱਕ ਵੱਖਰਾ ਨਾਂ ਚੁਣੋ ਜੀ",
+'fileexists' => 'ਇਹ ਫਾਇਲ ਨਾਂ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ। ਜੇ ਤੁਸੀਂ ਇਹ ਬਦਲਣ ਬਾਰੇ ਜਾਣਦੇ ਨਹੀਂ ਹੋ ਤਾਂ  <strong>[[:$1]]</strong> ਵੇਖੋ ਜੀ। [[$1|thumb]]',
+'fileexists-extension' => 'ਇਸ ਨਾਂ ਨਾਲ ਰਲਦੀ ਫਾਇਲ ਮੌਜੂਦ ਹੈ: [[$2|thumb]]
+* ਅੱਪਲੋਡ ਕੀਤੀ ਫਾਇਲ ਦਾ ਨਾਂ: <strong>[[:$1]]</strong>
+* ਮੌਜੂਦ ਫਾਇਲ ਦਾ ਨਾਂ: <strong>[[:$2]]</strong>
+ਇੱਕ ਵੱਖਰਾ ਨਾਂ ਚੁਣੋ ਜੀ',
 'file-exists-duplicate' => 'ਇਹ ਫ਼ਾਈਲ {{PLURAL:$1|ਇਸ ਫ਼ਾਈਲ|ਇਹਨਾਂ ਫ਼ਾਈਲਾਂ}} ਦੀ ਨਕਲ ਹੈ:',
 'uploadwarning' => 'ਅੱਪਲੋਡ ਚੇਤਾਵਨੀ',
 'savefile' => 'ਫਾਇਲ ਸੰਭਾਲੋ',
@@ -1869,9 +1869,6 @@ delete|ਮਿਟਾਉਣਾਂ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 
 # Info page
 'pageinfo-header-edits' => 'ਸੋਧਾਂ',
-'pageinfo-header-watchlist' => 'ਨਿਗਰਾਨੀ-ਲਿਸਟ',
-'pageinfo-subjectpage' => 'ਸਫ਼ਾ',
-'pageinfo-talkpage' => 'ਗੱਲ-ਬਾਤ ਸਫ਼ਾ',
 'pageinfo-watchers' => 'ਨਜ਼ਰ ਰੱਖਣ ਵਾਲ਼ਿਆਂ ਦੀ ਗਿਣਤੀ',
 'pageinfo-edits' => 'ਸੋਧਾਂ ਦੀ ਗਿਣਤੀ',
 
index cd33b36..3d3d16b 100644 (file)
@@ -1036,19 +1036,19 @@ Ba yang iyabe ing simpan king metung a bulung gamitan me ing suglung (link) king
 Ing simpan a ini $2 ya.',
 'largefileserver' => 'Mas maragul ya ing simpan (file) a ini kesa ketang makapaintulut (configured) king server.',
 'emptyfile' => 'Balamu ala yang laman ing simpan (file) a linulan mu. Mapaliaring ing sangkan, pamagkamali (typo) ya king lagyung simpan (file name). Pakaisipan mu nung taganang buri meng ilulan ining simpan.',
-'fileexists' => "Atin nang simpan (file) a maki lagyung anti kaniti; pakilawe mu '''<tt>[[:$1]]</tt>''' nung e ka siguradu nung buri meng alilan.
-[[$1|thumb]]",
-'filepageexists' => "Melalang na ing bulung pamilarawan (description page) para king simpan (file) a ini king '''<tt>[[:$1]]</tt>''', oneng king salukuyan, ala pang simpan a maki lagyung anti kaniti.
+'fileexists' => 'Atin nang simpan (file) a maki lagyung anti kaniti; pakilawe mu <strong>[[:$1]]</strong> nung e ka siguradu nung buri meng alilan.
+[[$1|thumb]]',
+'filepageexists' => 'Melalang na ing bulung pamilarawan (description page) para king simpan (file) a ini king <strong>[[:$1]]</strong>, oneng king salukuyan, ala pang simpan a maki lagyung anti kaniti.
 E ya tambing lunto king bulung pamilarawan ing sampulung (summary) a isulat mu.
-Ba yang lunto karin ing kekang sampulung, kailangan me pamung i-edit",
-'fileexists-extension' => "Maki simpan (file) a makayawig lagyu kaniti: [[$2|thumb]]
-* Lagyu ning simpan a milululan: '''<tt>[[:$1]]</tt>'''
-* Lagyu ning salukuyan a simpan: '''<tt>[[:$2]]</tt>'''
-Mamili kang aliwang lagyu.",
+Ba yang lunto karin ing kekang sampulung, kailangan me pamung i-edit',
+'fileexists-extension' => 'Maki simpan (file) a makayawig lagyu kaniti: [[$2|thumb]]
+* Lagyu ning simpan a milululan: <strong>[[:$1]]</strong>
+* Lagyu ning salukuyan a simpan: <strong>[[:$2]]</strong>
+Mamili kang aliwang lagyu.',
 'fileexists-thumbnail-yes' => "Lupa yang larawan a pepalati ing simpan ''(thumbnail)''. [[$1|thumb]]
-Pakilawe me ing simpan '''<tt>[[:$1]]</tt>'''.
+Pakilawe me ing simpan <strong>[[:$1]]</strong>.
 Nung ya naman ketang minunang maki orihinal a dagul ing simpan a maka-check, e na kailangang maglulan karagdagan a thumbnail.",
-'file-thumbnail-no' => "Magumpisa ya ing lagyungsimpan (filename) king '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Magumpisa ya ing lagyungsimpan (filename) king <strong>$1</strong>.
 Lupa yang larawan a pepalati ''(thumbnail)''.
 Nung atyu keka ining larawan king bersion a pekamalino (full resolution), ilulan me ini; nung ali naman, pakiyalilan me ing lagyung simpan.",
 'fileexists-forbidden' => 'Atin nang simpan a maki lagyung anti kaniti;
@@ -1163,7 +1163,7 @@ Miyalilan ing pamanayus nung i-click ya ing pamagat ning kolum (column header).'
 # MIME search
 'mimesearch' => 'pamanintun MIME',
 'mimesearch-summary' => 'Papaliari ning bulung a ini ing pamanialak (filtering) kareng simpan (file) para king kayang MIME-type.
-Isulat (input): contenttype/subtype, alimbawa <tt>image/jpeg</tt>.',
+Isulat (input): contenttype/subtype, alimbawa <code>image/jpeg</code>.',
 'download' => 'ikuldas (download)',
 
 # Unwatched pages
index 1eb5179..9806086 100644 (file)
@@ -890,9 +890,6 @@ Guck $2 fer e Lischt vun de letscht Leschunge.',
 
 # Info page
 'pageinfo-header-edits' => 'Enneringe',
-'pageinfo-header-watchlist' => 'Watsch-Lischt',
-'pageinfo-subjectpage' => 'Blatt',
-'pageinfo-talkpage' => 'Gschwetz-Blatt',
 
 # Browsing diffs
 'nextdiff' => 'Zum neegschte Versionsunnerschidd →',
index 5bf9d62..fd6dbce 100644 (file)
@@ -615,9 +615,9 @@ Listę dostępnych stron specjalnych znajdziesz [[Special:SpecialPages|tutaj]].'
 'dberrortext' => 'Wystąpił błąd składni w zapytaniu do bazy danych.
 Może to oznaczać błąd w oprogramowaniu.
 Ostatnie, nieudane zapytanie to:
-<blockquote><tt>$1</tt></blockquote>
-wysłane przez funkcję „<tt>$2</tt>”.
-Baza danych zgłosiła błąd „<tt>$3: $4</tt>”.',
+<blockquote><code>$1</code></blockquote>
+wysłane przez funkcję „<code>$2</code>”.
+Baza danych zgłosiła błąd „<samp>$3: $4</samp>”.',
 'dberrortextcl' => 'Wystąpił błąd składni w zapytaniu do bazy danych.
 Ostatnie, nieudane zapytanie to:
 „$1”
@@ -975,7 +975,6 @@ Ostatni wpis rejestru blokad jest pokazany poniżej.',
 * '''Firefox / Safari:''' Przytrzymaj ''Shift'' podczas klikania ''Odśwież bieżącą stronę'', lub naciśnij klawisze ''Ctrl+F5'' lub ''Ctrl+R'' (''⌘-R'' na komputerze Mac)
 * '''Google Chrome:''' Naciśnij ''Ctrl-Shift-R'' (''⌘-Shift-R'' na komputerze Mac)
 * '''Internet Explorer:''' Przytrzymaj ''Ctrl'' jednocześnie klikając ''Odśwież'' lub naciśnij klawisze ''Ctrl+F5''
-* '''Konqueror:''' Kliknij polecenie ''Odśwież'' lub naciśnij klawisz ''F5''
 * '''Opera:''' Wyczyść pamięć podręczną w ''Narzędzia → Preferencje''",
 'usercssyoucanpreview' => "'''Podpowiedź:''' Użyj przycisku „Podgląd”, aby przetestować nowy arkusz stylów CSS przed jego zapisaniem.",
 'userjsyoucanpreview' => "'''Podpowiedź:''' Użyj przycisku „Podgląd”, aby przetestować nowy kod JavaScript przed jego zapisaniem.",
@@ -1696,9 +1695,9 @@ Poniżej znajduje się rejestr usunięć i zmian nazwy tej strony:",
 Jeśli chcesz przejrzeć lub przeszukać dotychczas przesłane pliki, przejdź do [[Special:FileList|listy plików]]. Każde przesłanie zostaje odnotowane w [[Special:Log/upload|rejestrze przesyłanych plików]], a usunięcie w [[Special:Log/delete|rejestrze usuniętych]].
 
 Plik pojawi się na stronie, jeśli użyjesz linku według jednego z następujących wzorów:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Plik.jpg]]</nowiki></tt>''' pokaże plik w pełnej postaci
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Plik.png|200px|thumb|left|podpis grafiki]]</nowiki></tt>''' pokaże szeroką na 200 pikseli miniaturkę umieszczoną przy lewym marginesie, otoczoną ramką, z podpisem „podpis grafiki”
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Plik.ogg]]</nowiki></tt>''' utworzy bezpośredni link do pliku bez wyświetlania samego pliku",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Plik.jpg]]</nowiki></code>''' pokaże plik w pełnej postaci
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Plik.png|200px|thumb|left|podpis grafiki]]</nowiki></code>''' pokaże szeroką na 200 pikseli miniaturkę umieszczoną przy lewym marginesie, otoczoną ramką, z podpisem „podpis grafiki”
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Plik.ogg]]</nowiki></code>''' utworzy bezpośredni link do pliku bez wyświetlania samego pliku",
 'upload-permitted' => 'Dopuszczalne formaty plików: $1.',
 'upload-preferred' => 'Zalecane formaty plików: $1.',
 'upload-prohibited' => 'Zabronione formaty plików: $1.',
@@ -1744,21 +1743,21 @@ Plik ma rozmiar {{PLURAL:$2|1 bajt|$2 bajty|$2 bajtów}}.',
 'emptyfile' => 'Przesłany plik wydaje się być pusty. Może być to spowodowane literówką w nazwie pliku.
 Sprawdź, czy nazwa jest prawidłowa.',
 'windows-nonascii-filename' => 'Na tej wiki nie można używać znaków specjalnych w nazwach plików.',
-'fileexists' => "Plik o takiej nazwie już istnieje.
-Sprawdź '''<tt>[[:$1]]</tt>''', jeśli nie jesteś pewien czy chcesz go zastąpić.
-[[$1|thumb]]",
-'filepageexists' => "Istnieje już strona opisu tego pliku, została utworzona '''<tt>[[:$1]]</tt>''', ale brak jest pliku o tej nazwie.
+'fileexists' => 'Plik o takiej nazwie już istnieje.
+Sprawdź <strong>[[:$1]]</strong>, jeśli nie jesteś pewien czy chcesz go zastąpić.
+[[$1|thumb]]',
+'filepageexists' => 'Istnieje już strona opisu tego pliku, została utworzona <strong>[[:$1]]</strong>, ale brak jest pliku o tej nazwie.
 Informacje, które wprowadzasz o przesyłanym pliku, nie pojawią się na jego stronie opisu.
 Jeśli chcesz, by się tam pojawiły, musisz później, ręcznie przeredagować stronę opisu.
-[[$1|thumb]]",
-'fileexists-extension' => "Plik o podobnej nazwie już istnieje: [[$2|thumb]]
-* Nazwa przesyłanego pliku: '''<tt>[[:$1]]</tt>'''
-* Nazwa istniejącego pliku: '''<tt>[[:$2]]</tt>'''
-Wybierz inną nazwę.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Plik o podobnej nazwie już istnieje: [[$2|thumb]]
+* Nazwa przesyłanego pliku: <strong>[[:$1]]</strong>
+* Nazwa istniejącego pliku: <strong>[[:$2]]</strong>
+Wybierz inną nazwę.',
 'fileexists-thumbnail-yes' => "Plik wydaje się być pomniejszoną grafiką ''(miniaturką)''. [[$1|thumb]]
-Sprawdź plik '''<tt>[[:$1]]</tt>'''.
+Sprawdź plik <strong>[[:$1]]</strong>.
 Jeśli wybrany plik jest tą samą grafiką co ta w rozmiarze pierwotnym, nie musisz przesyłać dodatkowej miniaturki.",
-'file-thumbnail-no' => "Nazwa pliku zaczyna się od '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Nazwa pliku zaczyna się od <strong>$1</strong>.
 Wydaje się, że jest to pomniejszona grafika ''(miniaturka)''.
 Jeśli posiadasz tę grafikę w pełnym rozmiarze – prześlij ją. Jeśli chcesz wysłać tę – zmień nazwę przesyłanego obecnie pliku.",
 'fileexists-forbidden' => 'Plik o tej nazwie już istnieje i nie może zostać nadpisany.
@@ -2022,7 +2021,7 @@ Być może zechcesz zmienić opis na tej [$2 stronie opisu pliku].',
 # MIME search
 'mimesearch' => 'Wyszukiwanie MIME',
 'mimesearch-summary' => 'Ta strona umożliwia wyszukiwanie plików ze względu na ich typ MIME.
-Użycie: typ_treści/podtyp, np. <tt>image/jpeg</tt>.',
+Użycie: typ_treści/podtyp, np. <code>image/jpeg</code>.',
 'mimetype' => 'Typ MIME',
 'download' => 'pobierz',
 
@@ -2096,6 +2095,7 @@ Każdy wiersz zawiera linki do pierwszego i drugiego przekierowania oraz link, d
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|bajt|bajty|bajtów}}',
 'ncategories' => '$1 {{PLURAL:$1|kategoria|kategorie|kategorii}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwiki|interwiki}}',
 'nlinks' => '$1 {{PLURAL:$1|link|linki|linków}}',
 'nmembers' => '$1 {{PLURAL:$1|element|elementy|elementów}}',
 'nrevisions' => '$1 {{PLURAL:$1|wersja|wersje|wersji}}',
@@ -2124,6 +2124,7 @@ Każdy wiersz zawiera linki do pierwszego i drugiego przekierowania oraz link, d
 'mostlinkedtemplates' => 'Najczęściej linkowane szablony',
 'mostcategories' => 'Strony z największą liczbą kategorii',
 'mostimages' => 'Najczęściej linkowane pliki',
+'mostinterwikis' => 'Strony z największą liczbą linków interwiki',
 'mostrevisions' => 'Strony o największej liczbie wersji',
 'prefixindex' => 'Wszystkie strony o prefiksie',
 'prefixindex-namespace' => 'Wszystkie strony z prefiksem (przestrzeń nazw $1)',
@@ -2223,7 +2224,7 @@ Zobacz również [[Special:WantedCategories|brakujące kategorie]].',
 'linksearch-ok' => 'Szukaj',
 'linksearch-text' => 'Można użyć symboli wieloznacznych jak „*.wikipedia.org”.
 Wymaga podania co najmniej domeny najwyższego poziomu np. „*.org”.<br />
-Obsługiwane protokoły: <tt>$1</tt> (nie podawaj ich podczas wyszukiwania).',
+Obsługiwane protokoły: <code>$1</code> (nie podawaj ich podczas wyszukiwania).',
 'linksearch-line' => '$1 link na stronie $2',
 'linksearch-error' => 'Symbolu wieloznacznego można użyć wyłącznie na początku nazwy hosta.',
 
@@ -2269,6 +2270,8 @@ Sprawdź stronę z [[{{MediaWiki:Listgrouprights-helppage}}|dodatkowymi informac
 'mailnologin' => 'Brak adresu',
 'mailnologintext' => 'Musisz się [[Special:UserLogin|zalogować]] i mieć wpisany aktualny adres e‐mailowy w swoich [[Special:Preferences|preferencjach]], aby móc wysłać e‐mail do innego użytkownika.',
 'emailuser' => 'Wyślij e‐mail do tego użytkownika',
+'emailuser-title-target' => 'Wyślij e-mail do {{GENDER:$1|tego użytkownika|tej użytkowniczki|tego użytkownika}}',
+'emailuser-title-notarget' => 'Wyślij wiadomość e‐mail',
 'emailpage' => 'Wyślij e‐mail do użytkownika',
 'emailpagetext' => 'Możesz użyć poniższego formularza, aby wysłać wiadomość e‐mail do tego użytkownika.
 Adres e‐mailowy, który został przez Ciebie wprowadzony w [[Special:Preferences|Twoich preferencjach]], zostanie umieszczony w polu „Od”, dzięki czemu odbiorca będzie mógł Ci odpowiedzieć.',
@@ -2911,6 +2914,7 @@ Wszystkie operacje importu transwiki są odnotowywane w [[Special:Log/import|rej
 'import-interwiki-templates' => 'Załącz wszystkie szablony',
 'import-interwiki-submit' => 'Importuj',
 'import-interwiki-namespace' => 'Docelowa przestrzeń nazw',
+'import-interwiki-rootpage' => 'Docelowa strona główna (opcjonalna):',
 'import-upload-filename' => 'Nazwa pliku',
 'import-comment' => 'Komentarz:',
 'importtext' => 'Korzystając na źródłowej wiki z narzędzia [[Special:Export|eksportu]] wyeksportuj plik.
@@ -2944,6 +2948,9 @@ Brak katalogu dla plików tymczasowych.',
 'import-error-interwiki' => 'Strona „$1” nie została zaimportowana, ponieważ jej nazwa jest zarezerwowana do linków zewnętrznych (interwiki).',
 'import-error-special' => 'Strona „$1” nie została zaimportowana, ponieważ należy do specjalnej przestrzeni nazw, która nie zezwala na strony.',
 'import-error-invalid' => 'Strona „$1” nie została zaimportowana, ponieważ jej nazwa jest nieprawidłowa.',
+'import-options-wrong' => '{{PLURAL:$2|Niepoprawna opcja|Niepoprawne opcje}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Wskazana strona główna jest niepoprawna.',
+'import-rootpage-nosubpage' => 'Przestrzeń nazw "$1" strony głównej nie dopuszcza stron podrzędnych.',
 
 # Import log
 'importlogpage' => 'Rejestr importu',
@@ -3088,16 +3095,34 @@ Najprawdopodobniej zostało to spowodowane przez link do zewnętrznej strony int
 
 # Info page
 'pageinfo-title' => 'Informacje o „$1“',
-'pageinfo-header-edits' => 'Edycje',
-'pageinfo-header-watchlist' => 'Obserwowane',
-'pageinfo-header-views' => 'Odsłon',
-'pageinfo-subjectpage' => 'Strona',
-'pageinfo-talkpage' => 'Strona dyskusji',
-'pageinfo-watchers' => 'Obserwujących',
-'pageinfo-edits' => 'Edycji',
-'pageinfo-authors' => 'Autorów',
+'pageinfo-header-basic' => 'Podstawowe informacje',
+'pageinfo-header-edits' => 'Historia edycji',
+'pageinfo-header-restrictions' => 'Zmień zabezpieczenie',
+'pageinfo-header-properties' => 'Właściwości strony',
+'pageinfo-display-title' => 'Wyświetl tytuł',
+'pageinfo-default-sort' => 'Domyślny klucz sortowania',
+'pageinfo-length' => 'Długość strony (w bajtach)',
+'pageinfo-article-id' => 'Identyfikator strony',
+'pageinfo-robot-policy' => 'Stan wyszukiwarki',
+'pageinfo-robot-index' => 'Indeksowalne',
+'pageinfo-robot-noindex' => 'Nieindeksowalne',
 'pageinfo-views' => 'Odsłon',
-'pageinfo-viewsperedit' => 'Odsłon na edycję',
+'pageinfo-watchers' => 'Liczba obserwujących',
+'pageinfo-redirects-name' => 'Liczba przekierowań do tej strony',
+'pageinfo-subpages-name' => 'Liczba podstron tej strony',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|przekierowanie|przekierowania|przekierowań}}; $3 {{PLURAL:$3|bez przekierowania|bez przekierowań|bez przekierowań}})',
+'pageinfo-firstuser' => 'Twórca strony',
+'pageinfo-firsttime' => 'Data utworzenia strony',
+'pageinfo-lastuser' => 'Autor ostatniej edycji',
+'pageinfo-lasttime' => 'Data ostatniej edycji',
+'pageinfo-edits' => 'Liczba edycji',
+'pageinfo-authors' => 'Całkowita liczba autorów',
+'pageinfo-recent-edits' => 'Liczba ostatnich edycji (w przeciągu $1)',
+'pageinfo-recent-authors' => 'Liczba ostatnich autorów',
+'pageinfo-restriction' => 'Zabezpieczenie strony (<code>$1</code>)',
+'pageinfo-magic-words' => 'Magiczne {{PLURAL:$1|słowo|słowa|słowa}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Ukryta kategoria|Ukryte kategorie|Ukryte kategorie}} ($1)',
+'pageinfo-templates' => 'Transkludowan{{PLURAL:$1|y szablon|e szablony}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Standardowa',
index 7f156b2..4c08948 100644 (file)
@@ -306,9 +306,9 @@ $1",
 'newmessageslink' => 'mëssagi neuv',
 'newmessagesdifflink' => "A-i é chèich-còs ëd diferent da 'nt l'ùltima revision",
 'youhavenewmessagesfromusers' => "It l'has $1 da {{PLURAL:$3|n'autr utent|$3 utent}} ($2).",
-'youhavenewmessagesmanyusers' => "It l'has $1 da vaire utent ($2).",
+'youhavenewmessagesmanyusers' => "A l'ha $1 da vàire utent ($2).",
 'newmessageslinkplural' => '{{PLURAL:$1|un mëssagi neuv|$1 mëssagi neuv}}',
-'newmessagesdifflinkplural' => 'ùltim {{PLURAL:$1|cambiament|cambiament}}',
+'newmessagesdifflinkplural' => 'ùltime {{PLURAL:$1|modìfica|modìfiche}}',
 'youhavenewmessagesmulti' => "A l'ha dij neuv mëssagi an $1",
 'editsection' => 'modìfica',
 'editold' => 'modìfica',
@@ -629,7 +629,7 @@ Ciav a temp: $2',
 # Edit pages
 'summary' => 'Resumé:',
 'subject' => 'Sogèt:',
-'minoredit' => "Costa-sì a l'é na modìfica cita",
+'minoredit' => "Costa a l'é na modìfica cita",
 'watchthis' => "Ten sot euj st'artìcol-sì",
 'savearticle' => 'Salva sta pàgina',
 'preview' => 'Preuva',
@@ -1430,9 +1430,9 @@ Le pàgine dzora a [[Special:Watchlist|la lista ëd lòn ch'as ten sot-euj]] a r
 Për vardé ò sërché dle figure già carià, ch'a vada an sla [[Special:FileList|lista dle figure]], ij (ri)càrich a son ëdcò registrà ant ël [[Special:Log/upload|registr dij càrich]], jë scancelament ant ël [[Special:Log/delete|registr djë scancelament]].
 
 Për buté na figura ant n'artìcol, dovré n'anliura ant un-a dle forme sì sota:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' për dovré la version pien-a dla figura
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' për dovré na dimension ëd 200 pontin ant un quàder a la bordura snistra con 'alt text' com descrission
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' për coleghé diretament la figura sensa fé vëdde l'archivi",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' për dovré la version pien-a dla figura
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' për dovré na dimension ëd 200 pontin ant un quàder a la bordura snistra con 'alt text' com descrission
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' për coleghé diretament la figura sensa fé vëdde l'archivi",
 'upload-permitted' => "Sòrt d'archivi consentìe: $1.",
 'upload-preferred' => "Sòrt d'archivi preferìe: $1.",
 'upload-prohibited' => "Sòrt d'archivi proibìe: $1.",
@@ -1478,20 +1478,20 @@ Beiché la [[Special:NewFiles|galarìa dj'archivi neuv]] për na presentassion p
 Sòn a podrìa esse rivà përchè che chiel a l'ha scrivù mal ël nòm dl'archivi midem.
 Për piasì che a contròla se a l'é pro cost l'archivi che a veul carié.",
 'windows-nonascii-filename' => "Sta wiki-sì a manten pa ij nòm d'archivi con caràter speciaj.",
-'fileexists' => "N'archivi con ës nòm-sì a-i é già, për piasì che a contròla '''<tt>[[:$1]]</tt>''' se a l'é pa sigur dë vorèj cangelo.
+'fileexists' => "N'archivi con ës nòm-sì a-i é già, për piasì che a contròla <strong>[[:$1]]</strong> se a l'é pa sigur dë vorèj cangelo.
 [[$1|thumb]]",
-'filepageexists' => "La pàgina ëd descrission për st'archivi-sì a l'é già stàita creà an '''<tt>[[:$1]]</tt>''', mach ch'a-i é gnun archivi ch'as ciama parèj.
+'filepageexists' => "La pàgina ëd descrission për st'archivi-sì a l'é già stàita creà an <strong>[[:$1]]</strong>, mach ch'a-i é gnun archivi ch'as ciama parèj.
 Lòn ch'a buta për somari as ës-ciairerà nen ant la pàgina ëd descrission.
 Për podèj buté sò somari a l'ha da modifichesse la pàgina a man.
 [[$1|thumb]]",
 'fileexists-extension' => "N'archivi con ës nòm-sì a-i é già: [[$2|thumb]]
-* Nòm dl'archivi ch'as carìa: '''<tt>[[:$1]]</tt>'''
-* Nòm dl'archivi ch'a-i é già: '''<tt>[[:$2]]</tt>'''
+* Nòm dl'archivi ch'as carìa: <strong>[[:$1]]</strong>
+* Nòm dl'archivi ch'a-i é già: <strong>[[:$2]]</strong>
 Për piasì, ch'a serna un nòm diferent.",
 'fileexists-thumbnail-yes' => "L'archivi a jë smija a na ''figurin-a''. [[$1|thumb]]
-Për piasì, ch'a contròla l'archivi '''<tt>[[:$1]]</tt>'''.
+Për piasì, ch'a contròla l'archivi <strong>[[:$1]]</strong>.
 S'a l'é la midema figura a amzura pijn-a, a veul dì ch'a fa nen dë manca dë carié na figurin-a.",
-'file-thumbnail-no' => "Ël nòm dl'archivi as anandia con '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Ël nòm dl'archivi as anandia con <strong>$1</strong>.
 A jë smija a na ''figurin-a''.
 Se a l'ha na figura a amzura pijn-a a l'é mej ch'a carìa cola-lì, dësnò ch'a-j cangia nòm a l'archivi, për piasì.",
 'fileexists-forbidden' => "Belavans n'archivi con ës nòm-sì a-i é già, donca ël nòm as peul pa pì dovresse.
@@ -1720,6 +1720,7 @@ Peul desse ch'a veula modifiché la descrission dzora soa [pàgina ëd descrissi
 'shared-repo-from' => 'da $1',
 'shared-repo' => "n'archivi condivis",
 'shared-repo-name-wikimediacommons' => 'Wikimedia Commons',
+'upload-disallowed-here' => 'Për maleur it peule pa dzorscrive sta figura.',
 
 # File reversion
 'filerevert' => "Buté torna $1 tanme ch'a l'era",
@@ -1753,7 +1754,7 @@ Peul desse ch'a veula modifiché la descrission dzora soa [pàgina ëd descrissi
 
 # MIME search
 'mimesearch' => 'Arserca për sòrt MIME',
-'mimesearch-summary' => "Sta pàgina-sì a lassa filtré j'archivi për sòrt MIME. Buté: sòrt/sotasòrt, pr'es. <tt>image/jpeg</tt>.",
+'mimesearch-summary' => "Sta pàgina-sì a lassa filtré j'archivi për sòrt MIME. Buté: sòrt/sotasòrt, pr'es. <code>image/jpeg</code>.",
 'mimetype' => 'Sòrt MIME:',
 'download' => 'dëscarié',
 
@@ -1828,6 +1829,7 @@ Adess a l'é na ridiression a [[$2]].",
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}',
 'ncategories' => '$1 {{PLURAL:$1|categorìa|categorìe}}',
+'ninterwikis' => '$1 {{PLURAL:$1|antërwiki|antërwiki}}',
 'nlinks' => '$1 {{PLURAL:$1|anliura|anliure}}',
 'nmembers' => '$1 {{PLURAL:$1|element|element}}',
 'nrevisions' => '{{PLURAL:$1|na revision|$1 revision}}',
@@ -1856,6 +1858,7 @@ Adess a l'é na ridiression a [[$2]].",
 'mostlinkedtemplates' => 'Stamp pì dovrà',
 'mostcategories' => 'Artìcoj che a son marcà an pì categorìe',
 'mostimages' => 'Figure pì dovrà',
+'mostinterwikis' => 'Pagine con pi antërwiki',
 'mostrevisions' => 'Artìcoj pì modificà',
 'prefixindex' => "Tute le pàgine ch'a ancamin-o con",
 'prefixindex-namespace' => 'Tute le pàgine con prefiss ($1 spassi nominal)',
@@ -1955,7 +1958,7 @@ Ch'a bèica ëdcò [[Special:WantedCategories|le categorìe domandà]].",
 'linksearch-ok' => 'Sërché',
 'linksearch-text' => 'As peulo dovresse dij ciapatut com "*.wikipedia.org".
 A-i é dabzògn almanch d\'un domini a livel pi àut, për esempi "*.org".<br />
-Protocòj ch\'as peulo dovresse: <tt>$1</tt> (ch\'a gionta gnun ëd costi an soa arserca).',
+Protocòj ch\'as peulo dovresse: <code>$1</code> (ch\'a gionta gnun ëd costi an soa arserca).',
 'linksearch-line' => "$1 a l'ha n'anliura ch'a-j riva dzora da $2",
 'linksearch-error' => 'Ij ciapatut as peulo butesse mach an prinsipi dël nòm dël sërvent.',
 
@@ -2002,6 +2005,8 @@ A peulo ess-ie d'[[{{MediaWiki:Listgrouprights-helppage}}|anformassion adissiona
 'mailnologintext' => "A dev [[Special:UserLogin|rintré ant ël sistema]]
 e avèj registrà n'adrëssa ëd pòsta eletrònica vàlida ant ij [[Special:Preferences|sò gust]] për podèj mandé dij mëssagi ëd pòsta eletrònica a j'àutri Utent.",
 'emailuser' => "Mandeje un mëssagi eletrònich a st'utent-sì",
+'emailuser-title-target' => 'Manda e-mail a sto {{GENDER:$1|utent}}',
+'emailuser-title-notarget' => "Mandeje un mëssagi ëd pòsta eletrònica a st'utent-sì",
 'emailpage' => "Mandeje un mëssagi ëd pòsta eletrònica a st'utent-sì",
 'emailpagetext' => "A peule dovré ël formolari sì-sota për mandé un mëssagi ëd pòsta eletrònica a st'utent-sì.
 L'adrëssa ëd pòsta eletrònica ch'a l'ha butà ant ij [[Special:Preferences|Ij sò gust]] a sarà butà ant l'adrëssa «Da» ëd sò mëssagi, parèj chi ch'a l'arsèiv a podrà rësponde diretament a chiel.",
@@ -2645,6 +2650,7 @@ Tute j'amportassion antra wiki diferente a resto marcà ant ël [[Special:Log/im
 'import-interwiki-templates' => 'Anserì tùit jë stamp',
 'import-interwiki-submit' => 'Amporté',
 'import-interwiki-namespace' => 'Spassi nominal ëd destinassion:',
+'import-interwiki-rootpage' => 'Pàgina prinsipal ëd destinassion (opsional):',
 'import-upload-filename' => "Nòm ëd l'archivi:",
 'import-comment' => 'Oget:',
 'importtext' => "Për piasì, che as espòrta l'archivi da 'nt la sorgiss wiki ën dovrand l'[[Special:Export|utiss d'esportassion]]. 
@@ -2678,6 +2684,9 @@ Për piasì, ch'a preuva torna.",
 'import-error-interwiki' => "La pàgina «$1» a l'é pa amportà përchè sò nòm a l'é arzervà për na liura esterna (antërwiki).",
 'import-error-special' => "La pàgina «$1» a l'é pa amportà përchè a ponta a në spassi nominal ch'a përmët pa dle pàgine.",
 'import-error-invalid' => "La pàgina «$1» a l'é pa amportà përchè sò nòm a l'é pa bon.",
+'import-options-wrong' => '{{PLURAL:$2|Opsion|Opsion}} sbalià: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => "La pàgina prinsipal dàita a l'é un tìtol pa bon.",
+'import-rootpage-nosubpage' => 'Lë spassi nominal «$1» ëd la pàgina prinsipal a përmët pa dle sot-pagine.',
 
 # Import log
 'importlogpage' => "Registr dj'amportassion",
@@ -2710,26 +2719,27 @@ Për piasì, ch'a preuva torna.",
 'tooltip-pt-anonlogin' => "Un a l'é nen obligà a rintré ant al sistema, ma se a lo fa a l'é mej",
 'tooltip-pt-logout' => 'Seurte da',
 'tooltip-ca-talk' => 'Discussion ansima a sta pàgina ëd contnù.',
-'tooltip-ca-edit' => 'Modifiché sta pàgina-sì. Për piasì, che as fasa na preuva anans che salvé .',
-'tooltip-ca-addsection' => 'Ancamin-a na neuva session',
-'tooltip-ca-viewsource' => 'Sta pàgina-sì a l',
+'tooltip-ca-edit' => 'A peul modifiché sa pàgina-sì. Për piasì, che as fasa na preuva anans che salvé.',
+'tooltip-ca-addsection' => 'Ancaminé na neuva session',
+'tooltip-ca-viewsource' => "Sta pàgina-sì a l'é protegiùa.
+A peul visualisene la sorgiss",
 'tooltip-ca-history' => 'Veje version dla pàgina.',
-'tooltip-ca-protect' => 'Për protege sta pàgina-sì.',
+'tooltip-ca-protect' => 'Protege costa pàgina',
 'tooltip-ca-unprotect' => 'Cangé la protession ëd costa pàgina-sì',
 'tooltip-ca-delete' => 'Scancelé sta pàgina-sì',
-'tooltip-ca-undelete' => 'Pijé andré le modìfiche faite a sta pàgina-sì, anans che a fussa scancelà.',
-'tooltip-ca-move' => 'Tramudé sta pàgina, visadì cangeje tìtol.',
+'tooltip-ca-undelete' => 'Pijé andré le modìfiche fàite a sta pàgina-sì, anans che a fussa scancelà.',
+'tooltip-ca-move' => "Tramudé sta pàgina, visadì cangeje 'd tìtol.",
 'tooltip-ca-watch' => 'Gionté sta pàgina-sì a la lista dle ròbe che as ten-o sot euj.',
 'tooltip-ca-unwatch' => 'Gavé via sta pàgina da',
-'tooltip-search' => 'Sërca an {{SITENAME}}',
-'tooltip-search-go' => "Andé a na pàgina ch'as ciama parej, sempe ch'a-i në sia un-a",
+'tooltip-search' => 'Sërc an {{SITENAME}}',
+'tooltip-search-go' => "Andé a na pàgina ch'as ciama parèj, sempe ch'a-i në sia un-a",
 'tooltip-search-fulltext' => 'Sërché ës test-sì antra le pàgine dël sit',
 'tooltip-p-logo' => 'Pàgina prinsipal.',
 'tooltip-n-mainpage' => 'Visité la pàgina prinsipal.',
-'tooltip-n-mainpage-description' => 'Vìsita la pàgina prinsipal',
+'tooltip-n-mainpage-description' => "Andé a la pàgina d'intrada",
 'tooltip-n-portal' => 'Rësguard al proget, lòn che a peul fé, andoa trové còsa.',
 'tooltip-n-currentevents' => 'Informassion ansima a lòn che a-i riva.',
-'tooltip-n-recentchanges' => 'Lista dj',
+'tooltip-n-recentchanges' => "Lista dj'ùltime modìfiche an sla wiki",
 'tooltip-n-randompage' => 'Carié na pàgina basta che a sia.',
 'tooltip-n-help' => 'Ël pòst për capì.',
 'tooltip-t-whatlinkshere' => 'Lista ëd tute le pàgine dla wiki che a men-o ambelessì.',
@@ -2803,16 +2813,34 @@ Sòn a l'é motobin belfé che a sia rivà përchè a-i era n'anliura a un sit e
 
 # Info page
 'pageinfo-title' => 'Anformassion për "$1"',
+'pageinfo-header-basic' => 'Anformassion ëd base',
 'pageinfo-header-edits' => 'Modìfiche',
-'pageinfo-header-watchlist' => 'Ròba che as ten sot euj',
-'pageinfo-header-views' => 'Vìsite',
-'pageinfo-subjectpage' => 'Pàgina',
-'pageinfo-talkpage' => 'Pàgina ëd discussion',
+'pageinfo-header-restrictions' => 'Protession ëd pagina',
+'pageinfo-header-properties' => 'Proprietà ëd pagina',
+'pageinfo-display-title' => 'Visualisa tìtol',
+'pageinfo-default-sort' => "ciav d'ordinament për sòlit",
+'pageinfo-length' => 'Lunghëssa ëd pagina (an byte)',
+'pageinfo-article-id' => 'Identificativ ëd la pàgina',
+'pageinfo-robot-policy' => "Stat dël motor d'arserca",
+'pageinfo-robot-index' => 'Andicisàbil',
+'pageinfo-robot-noindex' => 'Pa andicisàbil',
+'pageinfo-views' => 'Nùmer ëd vìsite',
 'pageinfo-watchers' => "Vàire ch'a ten-o sot-euj la pàgina",
+'pageinfo-redirects-name' => 'Rediression a sta pagina-sì',
+'pageinfo-subpages-name' => 'Sotpagine dë sta pagina',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|rediression|rediression}}; $3 {{PLURAL:$3|non-rediression|non-rediression}})',
+'pageinfo-firstuser' => 'Creator ëd la pagina',
+'pageinfo-firsttime' => 'Data ëd creassion ëd la pagina',
+'pageinfo-lastuser' => 'Ultim editor',
+'pageinfo-lasttime' => "Data ëd l'ùltima modìfica",
 'pageinfo-edits' => 'Nùmer ëd modìfiche',
 'pageinfo-authors' => "Nùmer d'autor diferent",
-'pageinfo-views' => 'Nùmer ëd vìsite',
-'pageinfo-viewsperedit' => 'Visualisassion për modìfica',
+'pageinfo-recent-edits' => "Nùmer ëd modìfiche recente (an drinta a j'ùltim $1)",
+'pageinfo-recent-authors' => "Nùmer recent d'autor diferent",
+'pageinfo-restriction' => 'Protession ëd pagina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Paròla màgic|Paròle màgiche}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Categorìa|Categorìe}} stërmà ($1)',
+'pageinfo-templates' => 'Trascludù {{PLURAL:$1|stamp|stamp}} ($1)',
 
 # Patrolling
 'markaspatrolleddiff' => 'Marca coma verificà',
@@ -2856,6 +2884,7 @@ An fasend-lo travajé ansima a sò ordinator chiel a podrìa porteje ëd dann a
 'file-info-size-pages' => "$1 × $2 pontin, dimension ëd l'archivi: $3, sòrt MIME: $4, $5 {{PLURAL:$5|pàgina|pàgine}}",
 'file-nohires' => 'Gnun-a risolussion pì bela disponìbil.',
 'svg-long-desc' => "archivi an forma SVG, amzure nominaj $1 × $2 pixel, amzura dl'archivi: $3",
+'svg-long-desc-animated' => "Archivi SVG animà, nominalment $1 × $2 pixel, amzura dl'archivi: $3",
 'show-big-image' => 'Version a amzura pijn-a',
 'show-big-image-preview' => 'Amzure dë sta preuva: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Àutra arzolussion|Àutre arzolussion}}: $1.',
@@ -2865,6 +2894,8 @@ An fasend-lo travajé ansima a sò ordinator chiel a podrìa porteje ëd dann a
 'file-info-png-looped' => 'an sìrcol',
 'file-info-png-repeat' => 'sonà $1 {{PLURAL:$1|vira|vire}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|quàder|quàder}}',
+'file-no-thumb-animation' => "'''Nòta: Për limitassion técniche, le miniadure dë sto archivi a saran pa animà.'''",
+'file-no-thumb-animation-gif' => "'''Nòta: Për limitassion técniche, le miniadure ëd figure GIF a àuta arzolussion com costa a saran pa animà.'''",
 
 # Special:NewFiles
 'newimages' => 'Galerìa ëd figure e son neuv',
@@ -3132,7 +3163,7 @@ J'àutri a saran stërmà coma stàndard.
 
 'exif-subjectdistance-value' => '$1 méter',
 
-'exif-meteringmode-0' => 'as sa nen coma',
+'exif-meteringmode-0' => 'Pa conossù',
 'exif-meteringmode-1' => 'Media',
 'exif-meteringmode-2' => 'Media centrà',
 'exif-meteringmode-3' => 'Quadrèt (Spot)',
@@ -3141,7 +3172,7 @@ J'àutri a saran stërmà coma stàndard.
 'exif-meteringmode-6' => 'Parsial',
 'exif-meteringmode-255' => "n'àutr",
 
-'exif-lightsource-0' => 'Nen marcà',
+'exif-lightsource-0' => 'Pa conossù',
 'exif-lightsource-1' => 'Lus dël dì',
 'exif-lightsource-2' => 'Fluoressenta',
 'exif-lightsource-3' => 'Lus al tungsten (a incandessensa)',
@@ -3222,7 +3253,7 @@ J'àutri a saran stërmà coma stàndard.
 'exif-sharpness-1' => 'dossa',
 'exif-sharpness-2' => 'contrastà',
 
-'exif-subjectdistancerange-0' => 'Nen specificà',
+'exif-subjectdistancerange-0' => 'Pa conossù',
 'exif-subjectdistancerange-1' => 'Macro',
 'exif-subjectdistancerange-2' => 'Prim pian',
 'exif-subjectdistancerange-3' => 'Anquadratura a soget lontan',
@@ -3558,7 +3589,7 @@ Le figure a së smon-o a amzura pijn-a, j'àotre sòrt d'archivi a ven-o fàite
 * <span class="mw-specialpagecached">Pàgine speciaj mach an memòria local (a peulo esse veje).</span>',
 'specialpages-group-maintenance' => 'Rapòrt ëd manutension',
 'specialpages-group-other' => 'Àutre pàgine speciaj',
-'specialpages-group-login' => 'Intra / crea un cont',
+'specialpages-group-login' => 'Intré ant ël sistema / creé un cont',
 'specialpages-group-changes' => 'Ùltime modìfiche e registr',
 'specialpages-group-media' => 'Rapòrt dij file multimediaj e dle carie',
 'specialpages-group-users' => 'Utent e drit',
index 37973d8..57d9886 100644 (file)
@@ -1376,9 +1376,9 @@ $1",
 
 اک فائل نوں اک صفے تے لیان لئی تھلے دتے گۓ فارم ورتو:
 
-*'''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' فائل دا پورا ورین ورتن لئی
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' 200 پکسل چوڑا ورتنا
-*'''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' سدا سدا فائل جوڑنا بنا فائل دسے",
+*'''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' فائل دا پورا ورین ورتن لئی
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' 200 پکسل چوڑا ورتنا
+*'''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' سدا سدا فائل جوڑنا بنا فائل دسے",
 'upload-permitted' => 'جناں فائلاں دی اجازت اے: $1۔',
 'upload-preferred' => 'جیہڑیاں فائلاں دوجیاں نالوں ودیا: $1۔',
 'upload-prohibited' => 'روکیاں گیاں فائلاں: $1',
@@ -1426,22 +1426,22 @@ $1",
 اے ہوسکدا اے فائل ناں چ کسے ٹائپو توں ہووے۔
 مہربانی کرکے چیک کرو تسیں اصل چ ایس فائل نون چڑھاناں جاندے او؟',
 'windows-nonascii-filename' => 'اے وکی فائل ناں جناں چ کوئی خاص کیریکٹر ہووے سپورٹ نئیں کردا۔',
-'fileexists' => "اک فائل ایس ناں نال پہلے ای ہے مہربانی کرکے '''<tt>[[:$1]]</tt>'''  ویکھو
+'fileexists' => 'اک فائل ایس ناں نال پہلے ای ہے مہربانی کرکے <strong>[[:$1]]</strong>  ویکھو
 اگر تھانوں یقین نئیں اگ تسیں اینون بدلنا چاندے اوہ۔
-[[$1|thumb]]",
-'filepageexists' => "ایس فائل دا دسن والا صفہ پہلے ای '''<tt>[[:$1]]</tt>''' تے بنایا جاچکیا اے، پر این ناں دی کوئی فائل ایس ویلے نئیں ہیگی۔
+[[$1|thumb]]',
+'filepageexists' => 'ایس فائل دا دسن والا صفہ پہلے ای <strong>[[:$1]]</strong> تے بنایا جاچکیا اے، پر این ناں دی کوئی فائل ایس ویلے نئیں ہیگی۔
 سمری جیہڑی تسیں لکھو گے اوہ دسن والے صفے تے نئیں دسے گی۔
 اپنی سموری اوتھے دیکھن لئی توانوں اپنے ہتھیں اینون تبدیل کرنا پوے گا۔
-[[$1|thumb]]",
-'fileexists-extension' => "ایس ناں دی شائل ہیگی اے: [[$2|thumb]]
-* چڑھائی گئی فائل دا ناں: '''<tt>[[:$1]]</tt>'''
-* ہیگی فائل دا ناں: '''<tt>[[:$2]]</tt>'''
-مہربانی کرکے وکھرا ناں چنو.",
+[[$1|thumb]]',
+'fileexists-extension' => 'ایس ناں دی شائل ہیگی اے: [[$2|thumb]]
+* چڑھائی گئی فائل دا ناں: <strong>[[:$1]]</strong>
+* ہیگی فائل دا ناں: <strong>[[:$2]]</strong>
+مہربانی کرکے وکھرا ناں چنو.',
 'fileexists-thumbnail-yes' => "ایہ اک ناپ دی مورت دی فائل دسدی اے ''(تھمبنیل)''.
 [[$1|thumb]]
-مہربانی کرکے فائل ویکھو '''<tt>[[:$1]]</tt>'''.
+مہربانی کرکے فائل ویکھو <strong>[[:$1]]</strong>.
 اگر ویکھی فائل اوسے مورت دے اصل ناپ دی اے تے فیر ایہ ضروری نئیں جے اک فالتو تھمبنیل چڑھائی جاۓ۔.",
-'file-thumbnail-no' => "فائل ناں '''<tt>$1</tt>''' توں شروع ہوندا اے۔
+'file-thumbnail-no' => "فائل ناں <strong>$1</strong> توں شروع ہوندا اے۔
 اے اک نکے ناپ دی مورت لگدی اے ''(تھمبنیل)''۔
 اگر تواڈے کول ایہ مورت پورے وڈے ناپ چ اے تسیں اینوں چڑھا سکدے او، نئیں تے فیر ایس فائل دا ناں بدلو۔",
 'fileexists-forbidden' => 'ایس ناں دی فائل پہلے ای ہیگی اے تے اودے اتے نئیں لکھیا جاسکدا۔
@@ -1682,7 +1682,7 @@ $1",
 # MIME search
 'mimesearch' => 'MIME کھوج',
 'mimesearch-summary' => 'ایہ صفہ فاغلاں نوں اوناں دی مائم ٹائپ  لئی نتارا قابل کردا اے.
-انپٹ: contenttype/subtype, e.g. <tt>مورت/jpeg</tt>.',
+انپٹ: contenttype/subtype, e.g. <code>مورت/jpeg</code>.',
 'mimetype' => 'مائم ٹائپ',
 'download' => 'فائل کاپی کرو',
 
@@ -1877,7 +1877,7 @@ $1",
 'linksearch-ok' => 'کھوج',
 'linksearch-text' => 'وائلڈکارڈز جیویں کہ "*.wikipedia.org" ورتے جاسکدے نیں۔
 "*.org".<br /> دی لوڑ
-منے گۓ پروٹوکول: <tt>$1</tt>',
+منے گۓ پروٹوکول: <code>$1</code>',
 'linksearch-line' => '$1 نوں $2 نال جوڑیا',
 'linksearch-error' => 'وکیکارڈو میزبان دے ناں دے شروع چ دس سکدے نیں۔',
 
@@ -2724,15 +2724,10 @@ $1',
 # Info page
 'pageinfo-title' => '"$1" لئی جانکاری',
 'pageinfo-header-edits' => 'تبدیلیاں',
-'pageinfo-header-watchlist' => 'اکھ تھلے رکھی لسٹ',
-'pageinfo-header-views' => 'وکھالے',
-'pageinfo-subjectpage' => 'صفہ',
-'pageinfo-talkpage' => 'گل بات صفہ',
+'pageinfo-views' => 'را‎ ۓ گنتی',
 'pageinfo-watchers' => 'ویکھن والے',
 'pageinfo-edits' => 'تبدیلیاں گنتی',
 'pageinfo-authors' => 'وکھرے لکھاریاں دی گنتی',
-'pageinfo-views' => 'را‎ ۓ گنتی',
-'pageinfo-viewsperedit' => 'تبدیلی سعاب نال وکھالے',
 
 # Patrolling
 'markaspatrolleddiff' => 'ویکھے گۓ دا نشان لاؤ',
index a62df39..840efbc 100644 (file)
@@ -1145,9 +1145,9 @@ Pāusai iz [[Special:Watchlist|nadirītan listin]] ast pastarīntan.',
 Kāi widālai anga laukīlai ānkstais enkraūtans zūrbrukins jaīs en [[Special:FileList|listin stēisan enkraūtan zūrbrukin]]. Enkraūsenei ast enpeisātan en [[Special:Log/upload|enkraūsnas registeŗu]], āupausinsenei en [[Special:Log/delete|āupausinsnas registeŗu]].
 
 Zūrbrukis wīrst tikkuns en pāusu, ik tū wīrst tērpauwuns(si) aīnan iz izbilīsenins:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' kāi tērpaulai pilnan zūrbrukes wersiōnin
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|papeisāsenis]]</nowiki></tt>''' kāi tērpaulai 200-pikselin miniatūrin sen \"papeisāsenis\" papeisāsenin
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' kāi entikriskai autengīnlai šlāit zūrbrukes waidīnsnan",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' kāi tērpaulai pilnan zūrbrukes wersiōnin
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|papeisāsenis]]</nowiki></code>''' kāi tērpaulai 200-pikselin miniatūrin sen \"papeisāsenis\" papeisāsenin
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' kāi entikriskai autengīnlai šlāit zūrbrukes waidīnsnan",
 'upload-permitted' => 'Preiwērptai zūrbrukin fōrmatai: $1.',
 'upload-preferred' => 'Pirminiskai zūrbrukin fōrmatai: $1.',
 'upload-prohibited' => 'Drēuditai zūrbrukin fōrmatai: $1.',
@@ -1176,22 +1176,22 @@ Madli kitawīdinais zūrbrukes pabilīsnan be enkraūneis din etkūmps.',
 'large-file' => 'Rāditan ast, kāi zūrbrukes debban ni būlai mūisesan nikāi $1; šisse zūrbrukes debban ast $2.',
 'largefileserver' => 'Zūrbrukes debban ast mūisesan, nikāi maksimālin preiwērptan.',
 'emptyfile' => 'Enkraūts zūrbrukis perwaidinna būtwei pāustan. Sta mazzi būtwei litteras blāndas en zūrbrukes pabilīsnai paggan. Madli izbandais anga zūrbrukes pabilisnā ast tikrōmiskan.',
-'fileexists' => "Zūrbrukis sen šin pabilīsnan jāu ekzistijja. Izbandais '''<tt>[[:$1]]</tt>''', ik ni assei aušaudīwingi kāi tū kwaitēi din kitawīdintun.
-[[$1|thumb]]",
-'filepageexists' => "Šisse zūrbrukes ebpeisāsenes pāusan ast jāu teīktan: '''<tt>[[:$1]]</tt>''', adder tēntiskai niaīns zūrbrukis sen šan pabilīsnan ni ekzistijja.
+'fileexists' => 'Zūrbrukis sen šin pabilīsnan jāu ekzistijja. Izbandais <strong>[[:$1]]</strong>, ik ni assei aušaudīwingi kāi tū kwaitēi din kitawīdintun.
+[[$1|thumb]]',
+'filepageexists' => 'Šisse zūrbrukes ebpeisāsenes pāusan ast jāu teīktan: <strong>[[:$1]]</strong>, adder tēntiskai niaīns zūrbrukis sen šan pabilīsnan ni ekzistijja.
 Infōrmaciōnis ezze zūrbrukin, kawīdans tū assei enweddus, ni wīrst tikkušas en ebpeisāsenes pāusu.
 Ik tū kwaitēi, kāi tennas pastālai waidīntan, tū turri redigītun tennans rānkiskai.
-[[$1|thumb]]",
-'fileexists-extension' => "Zūrbrukis sen palīgun pabilīsnan ekzistijja: [[$2|thumb]]
-*Enkraūtas zūrbrukes pabilisnā: '''<tt>[[:$1]]</tt>'''
-*Ekzistīntes zūrbrukes pabilisnā: '''<tt>[[:$2]]</tt>'''
-Etrīnkais kittan pabilīsnan.",
-'fileexists-thumbnail-yes' => "Zūrbrukis perwaidinna būtwei mazintā grāfiki \"(miniatūri)\".[[\$1|thumb]]
-Izbandais zūrbrukin '''<tt>[[:\$1]]</tt>'''.
-Ik etrīnkauts zūrbrukis ast ši subba grāfiki, kawīda en ōrginalu debban, tū ni turri enkraūtun papilniminan miniatūrin.",
-'file-thumbnail-no' => "Zūrbrukes pabilisnā pagaūne si sen '''<tt>\$1</tt>'''.
-Perwaidinna di, kāi sta ast mazintā grāfiki \"(thumbnail)\".
-Ik turri tū šan grāfikin en pilnasmu debban, enkraūneis din. Ik tū kwaitēi enkraūtun šan, kitawīdinais zūrbrukes pabilīsnan.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Zūrbrukis sen palīgun pabilīsnan ekzistijja: [[$2|thumb]]
+*Enkraūtas zūrbrukes pabilisnā: <strong>[[:$1]]</strong>
+*Ekzistīntes zūrbrukes pabilisnā: <strong>[[:$2]]</strong>
+Etrīnkais kittan pabilīsnan.',
+'fileexists-thumbnail-yes' => 'Zūrbrukis perwaidinna būtwei mazintā grāfiki "(miniatūri)".[[$1|thumb]]
+Izbandais zūrbrukin <strong>[[:$1]]</strong>.
+Ik etrīnkauts zūrbrukis ast ši subba grāfiki, kawīda en ōrginalu debban, tū ni turri enkraūtun papilniminan miniatūrin.',
+'file-thumbnail-no' => 'Zūrbrukes pabilisnā pagaūne si sen <strong>$1</strong>.
+Perwaidinna di, kāi sta ast mazintā grāfiki "(thumbnail)".
+Ik turri tū šan grāfikin en pilnasmu debban, enkraūneis din. Ik tū kwaitēi enkraūtun šan, kitawīdinais zūrbrukes pabilīsnan.',
 'fileexists-forbidden' => 'Zūrbrukis sen stawīdan pabilīsnan jāu ekzistijja be ni mazzi būtwei kirsāi peisātan.
 Ik tū kwaitēi enkraūtun zūrbrukin, ettreppais be enkraūneis tennan etkūmps sen kittan pabilīsnan. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'Zūrbrukis sen šin emnin  jau ekzistijja en dallautan repōzitōrijan stēisan zūrbrukin.
@@ -1333,7 +1333,7 @@ Preiēiminan ast dīgi [[Special:WhatLinksHere/$2|pilna listi]].',
 # MIME search
 'mimesearch' => 'MIME laukīsna',
 'mimesearch-summary' => 'Šin pāusan wērpja laukīsnan stēisan zūrbrukin pa tenēisan MIME tīpan.
-Tērpausna: ēnturas_tīps/pōtips, perw. <tt>image/jpeg</tt>.',
+Tērpausna: ēnturas_tīps/pōtips, perw. <code>image/jpeg</code>.',
 'mimetype' => 'MIME tīps',
 'download' => 'izkraūneis',
 
@@ -1514,7 +1514,7 @@ Tu mazzi anzitun rezultātans etrīnkantei registeres tīpan, tērpautajas pabil
 'linksearch-ns' => 'Emninplattibi:',
 'linksearch-ok' => 'Laukīs',
 'linksearch-text' => 'Mazīngi tērpautun tulapresliskan simbōlin "*"  - perwaidīnsnai „*.wikipedia.org”<br />
-Ebšlūzitai prōtokulai: <tt>$1</tt>',
+Ebšlūzitai prōtokulai: <code>$1</code>',
 'linksearch-line' => 'Prei $1 autenginna $2',
 'linksearch-error' => 'Mazīngi tērpautun tulapresliskan simbōlin "*" tēr en hostas pabilīsnas pagaūseņu.',
 
index f4d4539..606ec0d 100644 (file)
@@ -1226,9 +1226,9 @@ $1',
 که چېرته د پخونيو پورته شويو دوتنو کتل او پلټل غواړۍ نو [[Special:FileList|د پورته شويو دوتنو لړليک]] ته ورشۍ، [[Special:Log/upload|د (بيا) پورته شويو دوتنو يادښتونه]] او [[Special:Log/delete|د ړنګېدو يادښتونه]] هم کتلای شی.
 
 ددې لپاره چې يوه مخ ته انځور ورواچوی، نو بيا پدې ډول تړنې (لېنک) وکاروی
-* د يوې دوتنې د بشپړې بڼې د کارولو په موخه د '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' کوډ وکاروۍ.
-* د '۲۰۰ پېکسل' په کچه د 'بټنوک' په توګه د يوې دوتنې کارول چې د مخ کيڼې څنډې کې او ترلاندې 'د انځور څرګندونې' ولري، نو د دې موخې لپاره د '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|بټنوک|کيڼ|د انځور څرګندونې]]</nowiki></tt>''' کوډ وکاروۍ.
-* د انځور د ښودلو نه پرته، د دوتنې سره د سيخې تړنې لپاره د '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' کوډ وکاروۍ.",
+* د يوې دوتنې د بشپړې بڼې د کارولو په موخه د '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' کوډ وکاروۍ.
+* د '۲۰۰ پېکسل' په کچه د 'بټنوک' په توګه د يوې دوتنې کارول چې د مخ کيڼې څنډې کې او ترلاندې 'د انځور څرګندونې' ولري، نو د دې موخې لپاره د '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|بټنوک|کيڼ|د انځور څرګندونې]]</nowiki></code>''' کوډ وکاروۍ.
+* د انځور د ښودلو نه پرته، د دوتنې سره د سيخې تړنې لپاره د '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' کوډ وکاروۍ.",
 'upload-permitted' => 'د پرېښودلو دوتنو ډولونه: $1.',
 'upload-preferred' => 'د غوره دوتنو ډولونه: $1.',
 'upload-prohibited' => 'د منع شويو دوتنو ډولونه: $1.',
@@ -1256,12 +1256,12 @@ $1',
 'illegal-filename' => 'د دوتنې نوم نه دی پرېښل شوی.',
 'unknown-error' => 'يوه ناڅرګنده تېروتنه رامېنځته شوه.',
 'tmp-create-error' => 'لنډمهاله دوتنه جوړېدای نه شي',
-'fileexists' => "د پخوا نه پدې نوم يوه دوتنه شته، که تاسو ډاډه نه ياست او يا هم که تاسو غواړۍ چې بدلون پکې راولۍ، لطفاً '''<tt>[[:$1]]</tt>''' وګورۍ.
-[[$1|thumb]]",
-'fileexists-extension' => "په همدې نوم يوه بله دوتنه د پخوا نه شته: [[$2|thumb]]
-* د پورته کېدونکې دوتنې نوم: '''<tt>[[:$1]]</tt>'''
-* د پخوا نه شته دوتنه: '''<tt>[[:$2]]</tt>'''
-لطفاً يو داسې نوم وټاکی چې د پخوانۍ دوتنې سره توپير ولري.",
+'fileexists' => 'د پخوا نه پدې نوم يوه دوتنه شته، که تاسو ډاډه نه ياست او يا هم که تاسو غواړۍ چې بدلون پکې راولۍ، لطفاً <strong>[[:$1]]</strong> وګورۍ.
+[[$1|thumb]]',
+'fileexists-extension' => 'په همدې نوم يوه بله دوتنه د پخوا نه شته: [[$2|thumb]]
+* د پورته کېدونکې دوتنې نوم: <strong>[[:$1]]</strong>
+* د پخوا نه شته دوتنه: <strong>[[:$2]]</strong>
+لطفاً يو داسې نوم وټاکی چې د پخوانۍ دوتنې سره توپير ولري.',
 'fileexists-forbidden' => 'د پخوا نه پدې نوم يوه دوتنه شته، او په دې نوم بله دوتنه نه پورته کېږي.
 که تاسې بيا هم د خپلې دوتنې پورته کول غواړۍ، نو لطفاً بېرته وګرځۍ او همدغه دوتنه بيا په يوه نوي نوم پورته کړی.
 [[File:$1|thumb|center|$1]]',
@@ -2067,13 +2067,9 @@ $UNWATCHURL  نه ليدنه وکړۍ
 # Info page
 'pageinfo-title' => 'د "$1" مالومات',
 'pageinfo-header-edits' => 'سمونونه',
-'pageinfo-header-watchlist' => 'کتنلړ',
-'pageinfo-header-views' => 'کتنې',
-'pageinfo-subjectpage' => 'مخ',
-'pageinfo-talkpage' => 'د خبرواترو مخ',
+'pageinfo-views' => 'د کتنو شمېر',
 'pageinfo-watchers' => 'د کتونکو شمېر',
 'pageinfo-edits' => 'د سمونونو شمېر',
-'pageinfo-views' => 'د کتنو شمېر',
 
 # Skin names
 'skinname-standard' => 'کلاسيک',
index 3938b4d..4f6d8e1 100644 (file)
@@ -44,6 +44,7 @@
  * @author SandroHc
  * @author Sir Lestaty de Lioncourt
  * @author Sérgio Ribeiro
+ * @author Teles
  * @author Urhixidur
  * @author Villate
  * @author Waldir
@@ -883,10 +884,10 @@ Palavra-chave temporária: $2',
 'bold_tip' => 'Texto a negrito',
 'italic_sample' => 'Texto em itálico',
 'italic_tip' => 'Texto em itálico',
-'link_sample' => 'Título do link',
-'link_tip' => 'Link interno',
-'extlink_sample' => 'http://www.example.com link externo',
-'extlink_tip' => 'Link externo (lembre-se do prefixo http://)',
+'link_sample' => 'Título da ligação',
+'link_tip' => 'Ligação interna',
+'extlink_sample' => 'http://www.example.com título da ligação',
+'extlink_tip' => 'Ligação externo (lembre-se do prefixo http://)',
 'headline_sample' => 'Texto do cabeçalho',
 'headline_tip' => 'Secção de nível 2',
 'nowiki_sample' => 'Inserir texto não-formatado aqui',
@@ -894,7 +895,7 @@ Palavra-chave temporária: $2',
 'image_sample' => 'Exemplo.jpg',
 'image_tip' => 'Ficheiro embutido',
 'media_sample' => 'Exemplo.ogg',
-'media_tip' => 'Link para ficheiro',
+'media_tip' => 'Ligação para ficheiro',
 'sig_tip' => 'A sua assinatura, com hora e data',
 'hr_tip' => 'Linha horizontal (utilize moderadamente)',
 
@@ -964,7 +965,7 @@ Ela pode ter sido movida ou removida enquanto estava a ver a página.',
 
 A palavra-chave para esta nova conta pode ser alterada na página [[Special:ChangePassword|alterar palavra-chave]] após autenticação.',
 'newarticle' => '(Nova)',
-'newarticletext' => "Seguiu um link para uma página que ainda não existe.
+'newarticletext' => "Seguiu uma ligação para uma página que ainda não existe.
 Para criá-la, escreva o seu conteúdo na caixa abaixo (consulte a [[{{MediaWiki:Helppage}}|página de ajuda]] para mais detalhes).
 Se chegou aqui por engano, clique o botão '''voltar''' (ou ''back'') do seu browser.",
 'anontalkpagetext' => "----''Esta é a página de discussão de um utilizador anónimo que ainda não criou uma conta ou não a utiliza, pelo que temos de utilizar o endereço IP para identificá-lo(a).
@@ -1727,9 +1728,9 @@ Para ver ou pesquisar ficheiros anteriormente enviados, consulte a [[Special:Fil
 Os reenvios de um ficheiro são também registados no [[Special:Log/upload|registo de uploads]] e as eliminações no [[Special:Log/delete|registo de eliminações]].
 
 Para utilizar um ficheiro numa página, depois de ter feito o upload, insira um link com um dos seguintes formatos:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ficheiro.jpg]]</nowiki></tt>''' para mostrar uma imagem nas suas dimensões originais;
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ficheiro.png|200px|thumb|left|texto]]</nowiki></tt>''' para mostrar uma imagem com a dimensão horizontal de 200 pixels, dentro de uma caixa, na margem esquerda, contendo 'texto' como descrição (pode usar subconjuntos destas características);
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:ficheiro.ogg]]</nowiki></tt>''' para apresentar um link directo para o ficheiro em vez de mostrá-lo, quer este tenha por conteúdo uma imagem ou outros dados.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ficheiro.jpg]]</nowiki></code>''' para mostrar uma imagem nas suas dimensões originais;
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:ficheiro.png|200px|thumb|left|texto]]</nowiki></code>''' para mostrar uma imagem com a dimensão horizontal de 200 pixels, dentro de uma caixa, na margem esquerda, contendo 'texto' como descrição (pode usar subconjuntos destas características);
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:ficheiro.ogg]]</nowiki></code>''' para apresentar um link directo para o ficheiro em vez de mostrá-lo, quer este tenha por conteúdo uma imagem ou outros dados.",
 'upload-permitted' => 'Tipos de ficheiros permitidos: $1.',
 'upload-preferred' => 'Tipos de ficheiros preferidos: $1.',
 'upload-prohibited' => 'Tipos de ficheiro proibidos: $1.',
@@ -1777,21 +1778,21 @@ este tem $2.',
 Isto pode dever-se a um erro no nome do ficheiro.
 Verifique se é realmente este o ficheiro que deseja carregar, por favor.',
 'windows-nonascii-filename' => 'A wiki não aceita nomes de ficheiros com caracteres especiais.',
-'fileexists' => "Já existe um ficheiro com este nome.
-Verifique '''<tt>[[:$1]]</tt>''' caso não tenha a certeza de que quer alterar o ficheiro actual, por favor.
-[[$1|thumb]]",
-'filepageexists' => "A página de descrição deste ficheiro já foi criada em '''<tt>[[:$1]]</tt>''', mas neste momento não existe nenhum ficheiro com este nome.
+'fileexists' => 'Já existe um ficheiro com este nome.
+Verifique <strong>[[:$1]]</strong> caso não tenha a certeza de que quer alterar o ficheiro actual, por favor.
+[[$1|thumb]]',
+'filepageexists' => 'A página de descrição deste ficheiro já foi criada em <strong>[[:$1]]</strong>, mas neste momento não existe nenhum ficheiro com este nome.
 O resumo que introduzir não aparecerá na página de descrição.
 Para fazê-lo aparecer, terá de editar a página manualmente.
-[[$1|thumb]]",
-'fileexists-extension' => "Já existe um ficheiro de nome semelhante: [[$2|thumb]]
-* Nome do ficheiro que está sendo carregado: '''<tt>[[:$1]]</tt>'''
-* Nome do ficheiro existente: '''<tt>[[:$2]]</tt>'''
-Escolha um nome diferente, por favor.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Já existe um ficheiro de nome semelhante: [[$2|thumb]]
+* Nome do ficheiro que está sendo carregado: <strong>[[:$1]]</strong>
+* Nome do ficheiro existente: <strong>[[:$2]]</strong>
+Escolha um nome diferente, por favor.',
 'fileexists-thumbnail-yes' => "O ficheiro aparenta ser uma imagem de tamanho reduzido (''miniatura'', ou ''thumbnail)''. [[$1|thumb]]
-Verifique o ficheiro '''<tt>[[:$1]]</tt>''', por favor.
+Verifique o ficheiro <strong>[[:$1]]</strong>, por favor.
 Se este ficheiro é a mesma imagem mas no tamanho original, não é necessário carregar uma miniatura.",
-'file-thumbnail-no' => "O nome do ficheiro começa por '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "O nome do ficheiro começa por <strong>$1</strong>.
 Parece ser uma imagem de tamanho reduzido (uma ''miniatura'' ou ''thumbnail)''.
 Se tiver a imagem original de maior dimensão, envie-a em vez desta. Se não, altere o nome do ficheiro, por favor.",
 'fileexists-forbidden' => 'Já existe um ficheiro com este nome, e não pode ser reescrito.
@@ -2054,7 +2055,7 @@ Talvez queira editar a descrição na [$2 página original de descrição do fic
 
 # MIME search
 'mimesearch' => 'Pesquisa MIME',
-'mimesearch-summary' => 'Esta página permite pesquisar os ficheiros da wiki, filtrando-os a partir do seu tipo MIME. O tipo MIME deve ser especificado na forma: tipo/subtipo. Alguns exemplos de tipos frequentes: <tt>image/jpeg</tt>, <tt>image/gif</tt>, <tt>image/png</tt>, <tt>application/pdf</tt>, <tt>application/vnd.ms-excel</tt>, <tt>application/zip</tt>, <tt>application/vnd.ms-powerpoint</tt>.',
+'mimesearch-summary' => 'Esta página permite pesquisar os ficheiros da wiki, filtrando-os a partir do seu tipo MIME. O tipo MIME deve ser especificado na forma: tipo/subtipo. Alguns exemplos de tipos frequentes: <code>image/jpeg</code>, <code>image/gif</code>, <code>image/png</code>, <code>application/pdf</code>, <code>application/vnd.ms-excel</code>, <code>application/zip</code>, <code>application/vnd.ms-powerpoint</code>.',
 'mimetype' => 'Tipo MIME:',
 'download' => 'download',
 
@@ -2256,7 +2257,7 @@ Veja também as [[Special:WantedCategories|categorias desejadas]].',
 'linksearch-ok' => 'Prosseguir',
 'linksearch-text' => 'É possível usar caracteres de substituição \'\'(wildcards)\'\', como por exemplo: "*.wikipedia.org".
 É necessário, pelo menos, um domínio de topo, por exemplo "*.org".<br />
-Protocolos suportados: <tt>$1</tt> (não adicione nenhum destes na sua pesquisa).',
+Protocolos suportados: <code>$1</code> (não adicione nenhum destes na sua pesquisa).',
 'linksearch-line' => 'Link para $1 na página $2',
 'linksearch-error' => "Caracteres de substituição ''(wildcards)'' só podem ser usados no início do endereço.",
 
@@ -3124,15 +3125,10 @@ Este bloqueio foi provavelmente causado por um link para um site externo que con
 # Info page
 'pageinfo-title' => 'Informações sobre "$1"',
 'pageinfo-header-edits' => 'Edições',
-'pageinfo-header-watchlist' => 'Páginas vigiadas',
-'pageinfo-header-views' => 'Visitas',
-'pageinfo-subjectpage' => 'Página',
-'pageinfo-talkpage' => 'Página de discussão',
+'pageinfo-views' => 'Número de visitas',
 'pageinfo-watchers' => 'Número de vigilantes',
 'pageinfo-edits' => 'Número de edições',
 'pageinfo-authors' => 'Número de autores individuais',
-'pageinfo-views' => 'Número de visitas',
-'pageinfo-viewsperedit' => 'Visitas por edição',
 
 # Skin names
 'skinname-standard' => 'Clássico',
index 0a1e844..bd758a9 100644 (file)
@@ -314,7 +314,7 @@ $magicWords = array(
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'Sublinhar links:',
+'tog-underline' => 'Sublinhar ligação:',
 'tog-justify' => 'Justificar parágrafos',
 'tog-hideminor' => 'Ocultar edições menores nas mudanças recentes',
 'tog-hidepatrolled' => 'Ocultar edições patrulhadas nas mudanças recentes',
@@ -324,7 +324,7 @@ $messages = array(
 'tog-numberheadings' => 'Auto-numerar cabeçalhos',
 'tog-showtoolbar' => 'Mostrar barra de edição (JavaScript)',
 'tog-editondblclick' => 'Editar páginas quando houver clique duplo (JavaScript)',
-'tog-editsection' => 'Habilitar edição de seção via links [editar]',
+'tog-editsection' => 'Habilitar edição de seção via ligações [editar]',
 'tog-editsectiononrightclick' => 'Habilitar edição de seção por clique com o botão direito no título da seção (JavaScript)',
 'tog-showtoc' => 'Mostrar Tabela de Conteúdos (para páginas com mais de três cabeçalhos)',
 'tog-rememberpassword' => 'Recordar os meus dados neste navegador (por no máximo $1 {{PLURAL:$1|dia|dias}})',
@@ -342,10 +342,10 @@ $messages = array(
 'tog-enotifrevealaddr' => 'Revelar o meu endereço de email nas notificações',
 'tog-shownumberswatching' => 'Mostrar o número de usuários que estão vigiando',
 'tog-oldsig' => 'Assinatura existente:',
-'tog-fancysig' => 'Tratar assinatura como wikitexto (sem link automático)',
+'tog-fancysig' => 'Tratar assinatura como wikitexto (sem ligação automática)',
 'tog-externaleditor' => 'Utilizar editor externo por padrão (apenas para usuários avançados; requer configurações adicionais em seu computador. [//www.mediawiki.org/wiki/Manual:External_editors Mais informações.])',
 'tog-externaldiff' => 'Utilizar comparador de versões externo por padrão (apenas para usuários avançados; requer configurações adicionais em seu computador. [//www.mediawiki.org/wiki/Manual:External_editors Mais informações.])',
-'tog-showjumplinks' => 'Ativar links de acessibilidade "ir para"',
+'tog-showjumplinks' => 'Ativar ligações de acessibilidade "ir para"',
 'tog-uselivepreview' => 'Utilizar pré-visualização em tempo real (JavaScript) (Experimental)',
 'tog-forceeditsummary' => 'Avisar-me ao introduzir um sumário vazio',
 'tog-watchlisthideown' => 'Ocultar as minhas edições da lista de páginas vigiadas',
@@ -440,7 +440,7 @@ $messages = array(
 'listingcontinuesabbrev' => 'cont.',
 'index-category' => 'Páginas indexadas',
 'noindex-category' => 'Páginas não indexadas',
-'broken-file-category' => 'Páginas com links quebrados para arquivos',
+'broken-file-category' => 'Páginas com ligações quebradas para arquivos',
 
 'about' => 'Sobre',
 'article' => 'Página de conteúdo',
@@ -493,7 +493,7 @@ $messages = array(
 'history_short' => 'Histórico',
 'updatedmarker' => 'atualizado desde a minha última visita',
 'printableversion' => 'Versão para impressão',
-'permalink' => 'Link permanente',
+'permalink' => 'Ligação permanente',
 'print' => 'Imprimir',
 'view' => 'Ver',
 'edit' => 'Editar',
@@ -619,8 +619,8 @@ Veja a [[Special:Version|página sobre a versão do sistema]].',
 # Main script and global functions
 'nosuchaction' => 'Ação inexistente',
 'nosuchactiontext' => 'A ação especificada pela URL é inválida.
-Você deve ter se enganado ao digitar a URL, ou seguiu um link incorreto.
-Isto também pode indicar um erro no software usado no sítio {{SITENAME}}.',
+Você deve ter se enganado ao digitar a URL, ou seguiu uma ligação incorreta.
+Isso também pode indicar um erro no software usado no sítio {{SITENAME}}.',
 'nosuchspecialpage' => 'Esta página especial não existe',
 'nospecialpagetext' => '<strong>Você requisitou uma página especial inválida.</strong>
 
@@ -648,7 +648,7 @@ O banco de dados retornou o erro "$3: $4".',
 Quem fez o bloqueio oferece a seguinte explicação: $1',
 'missing-article' => 'O banco de dados não encontrou o texto de uma página que deveria ter encontrado, com o nome "$1" $2.
 
-Isso normalmente é causado ao acessar um link de diferença (diff) desatualizado ou para o histórico de uma página que foi apagada.
+Isso normalmente é causado ao acessar uma ligação de diferença (diff) desatualizada ou para o histórico de uma página que foi apagada.
 
 Se não for este o caso, você pode ter encontrado um defeito (bug) no software.
 Anote o URL e reporte o ocorrido a um [[Special:ListUsers/sysop|administrador]].',
@@ -843,12 +843,12 @@ Você pode já ter alterado com sucesso a sua senha, ou solicitado uma nova senh
 'passwordreset-capture-help' => 'Se marcar esta caixa, o e-mail (com a senha temporária) será-lhe mostrado, além de ser enviado para o usuário.',
 'passwordreset-email' => 'Endereço de e-mail:',
 'passwordreset-emailtitle' => 'Detalhes da conta em {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'Alguém (provavelmente você, do endereço IP $1) solicitou um lembrete do seu detalhes de conta para {{SITENAME}} ($4). O seguinte usuário {{PLURAL:$3|conta|são contas}} associado com este endereço de e-mail:
+'passwordreset-emailtext-ip' => 'Alguém (provavelmente você, do endereço IP $1) solicitou um lembrete do seu detalhes de conta para {{SITENAME}} ($4). {{PLURAL:$3|A seguinte conta está associada|As seguintes contas estão associadas}} a este e-mail:
 
 $2
 
 {{PLURAL:$3|Esta senha temporária |Essas senhas temporárias}} vão expirar em {{PLURAL:$5|um dia|$5 dias}}.
-Você deve efetuar login e escolher uma nova senha agora. Se você conseguir lembrar da senha, ignore este e-mail e continue usando sua senha anterior, do contrário, prossiga com as instruções clicando no link.',
+Você deve efetuar login e escolher uma nova senha agora. Se você conseguir lembrar da senha, ignore este e-mail e continue usando sua senha anterior, do contrário, prossiga com as instruções clicando na ligação.',
 'passwordreset-emailtext-user' => 'O usuário $1 da {{SITENAME}} pediu a recuperação dos detalhes da sua conta na {{SITENAME}} ($4). {{PLURAL:$3|A seguinte conta está associada|As seguintes contas estão associadas}} a este e-mail:
 
 $2
@@ -876,10 +876,10 @@ Senha temporária: $2',
 'bold_tip' => 'Texto em negrito',
 'italic_sample' => 'Texto em itálico',
 'italic_tip' => 'Texto em itálico',
-'link_sample' => 'Título do link',
-'link_tip' => 'Link interno',
-'extlink_sample' => 'http://www.example.com título do link',
-'extlink_tip' => 'Link externo (lembre-se do prefixo http://)',
+'link_sample' => 'Título da ligação',
+'link_tip' => 'Ligação interna',
+'extlink_sample' => 'http://www.example.com título da ligação',
+'extlink_tip' => 'Ligação externa (lembre-se do prefixo http://)',
 'headline_sample' => 'Conteúdo do cabeçalho',
 'headline_tip' => 'Seção de nível 2',
 'nowiki_sample' => 'Inserir texto não-formatado aqui',
@@ -887,7 +887,7 @@ Senha temporária: $2',
 'image_sample' => 'Exemplo.jpg',
 'image_tip' => 'Arquivo embutido',
 'media_sample' => 'Exemplo.ogg',
-'media_tip' => 'Link para o arquivo',
+'media_tip' => 'Ligação para o arquivo',
 'sig_tip' => 'Sua assinatura, com hora e data',
 'hr_tip' => 'Linha horizontal (use de forma moderada)',
 
@@ -955,7 +955,7 @@ Ela pode ter sido movida ou removido enquanto você estava vendo a página.',
 
 A senha para esta nova conta pode ser alterada na página ''[[Special:ChangePassword|de troca de senha]]'', após a autenticação.",
 'newarticle' => '(Nova)',
-'newarticletext' => "Você seguiu um link para uma página que ainda não existe.
+'newarticletext' => "Você seguiu uma ligação para uma página que ainda não existe.
 Para criá-la, comece escrevendo na caixa abaixo (veja [[{{MediaWiki:Helppage}}|a página de ajuda]] para mais informações).
 Se você chegou aqui por engano, clique no botão '''voltar''' do seu navegador.",
 'anontalkpagetext' => "---- ''Esta é a página de discussão para um usuário anônimo que ainda não criou uma conta ou que não a usa, de forma que temos de utilizar o endereço de IP para identificá-lo(a). Tal endereço de IP pode ser compartilhado por vários usuários. Se você é um usuário anônimo e acha que comentários irrelevantes foram direcionados a você, por gentileza, [[Special:UserLogin/signup|crie uma conta]] ou [[Special:UserLogin|autentique-se]], a fim de evitar futuras confusões com outros usuários anônimos.''",
@@ -1685,9 +1685,9 @@ Para sua conveniência, segue o registro de eliminação e de movimentação:",
 Para ver ou pesquisar arquivos já enviados, consulte a [[Special:FileList|lista de arquivos enviados]]. Re-envios também são registrados no [[Special:Log/upload|registro de uploads]]; eliminações no [[Special:Log/delete|registro de eliminações]]
 
 Para incluir o arquivo em uma página, use um link em um dos seguintes formatos:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Arquivo.jpg]]</nowiki></tt>''' para utilizar a versão completa do arquivo;
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Arquivo.png|200px|thumb|left|texto]]</nowiki></tt>''' para utilizar uma renderização de 200 pixels dentro de uma caixa posicionada à margem esquerda, contendo 'texto' como descrição;
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Arquivo.ogg]]</nowiki></tt>''' para um link direto ao arquivo sem que ele seja exibido.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Arquivo.jpg]]</nowiki></code>''' para utilizar a versão completa do arquivo;
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Arquivo.png|200px|thumb|left|texto]]</nowiki></code>''' para utilizar uma renderização de 200 pixels dentro de uma caixa posicionada à margem esquerda, contendo 'texto' como descrição;
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Arquivo.ogg]]</nowiki></code>''' para um link direto ao arquivo sem que ele seja exibido.",
 'upload-permitted' => 'Tipos de arquivos permitidos: $1.',
 'upload-preferred' => 'Tipos de arquivos preferidos: $1.',
 'upload-prohibited' => 'Tipos de arquivo proibidos: $1.',
@@ -1735,22 +1735,22 @@ este possui $2.',
 Isso pode ocorrer devido a um erro de digitação no nome do arquivo.
 Verifique se você realmente deseja enviar este arquivo.',
 'windows-nonascii-filename' => 'O wiki não aceita nomes de arquivos com caracteres especiais.',
-'fileexists' => "Já existe um arquivo com este nome.
-Verifique '''<tt>[[:$1]]</tt>''' caso não tenha certeza se deseja alterar o arquivo atual.
-[[$1|thumb]]",
-'filepageexists' => "A página de descrição deste arquivo já foi criada em '''<tt>[[:$1]]</tt>''', mas atualmente não existe nenhum arquivo com este nome.
+'fileexists' => 'Já existe um arquivo com este nome.
+Verifique <strong>[[:$1]]</strong> caso não tenha certeza se deseja alterar o arquivo atual.
+[[$1|thumb]]',
+'filepageexists' => 'A página de descrição deste arquivo já foi criada em <strong>[[:$1]]</strong>, mas atualmente não existe nenhum arquivo com este nome.
 O sumário que você inseriu não aparecerá na página de descrição.
 Para que ele apareça, será necessário editá-lo manualmente.
-[[$1|thumb]]",
-'fileexists-extension' => "Já existe um arquivo com nome similar: [[$2|thumb]]
-* Nome do arquivo que está sendo enviado: '''<tt>[[:$1]]</tt>'''
-* Nome do arquivo existente: '''<tt>[[:$2]]</tt>'''
-Escolha um nome diferente.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Já existe um arquivo com nome similar: [[$2|thumb]]
+* Nome do arquivo que está sendo enviado: <strong>[[:$1]]</strong>
+* Nome do arquivo existente: <strong>[[:$2]]</strong>
+Escolha um nome diferente.',
 'fileexists-thumbnail-yes' => "O arquivo parece ser uma imagem de tamanho reduzido (''miniatura'', ou ''thumbnail'').
 [[$1|thumb]]
-Verifique o arquivo '''<tt>[[:$1]]</tt>'''.
+Verifique o arquivo <strong>[[:$1]]</strong>.
 Se o arquivo enviado é o mesmo do de tamanho original, não é necessário enviar uma versão adicional em miniatura.",
-'file-thumbnail-no' => "O nome do arquivo começa com '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "O nome do arquivo começa com <strong>$1</strong>.
 Isso faz parecer se tratar de uma imagem de tamanho reduzido (''miniatura'', ou ''thumbnail'').
 Se você tem esta imagem em sua resolução completa, envie-a no lugar desta. Caso contrário, altere o nome de arquivo.",
 'fileexists-forbidden' => 'Já existe um arquivo com este nome e ele não pode ser sobrescrito.
@@ -2014,7 +2014,7 @@ Talvez você deseje editar a descrição na sua [$2 página de descrição de ar
 
 # MIME search
 'mimesearch' => 'Pesquisa MIME',
-'mimesearch-summary' => 'Esta página possibilita que os arquivos sejam filtrados a partir de seu tipo MIME. Sintaxe de busca: tipo/subtipo (por exemplo, <tt>image/jpeg</tt>).',
+'mimesearch-summary' => 'Esta página possibilita que os arquivos sejam filtrados a partir de seu tipo MIME. Sintaxe de busca: tipo/subtipo (por exemplo, <code>image/jpeg</code>).',
 'mimetype' => 'tipo MIME:',
 'download' => 'download',
 
@@ -2213,9 +2213,9 @@ Veja também [[Special:WantedCategories|categorias pedidas]].',
 'linksearch-ok' => 'Pesquisar',
 'linksearch-text' => 'É possível usar caracteres curinga, como "*.wikipedia.org".
 É necessário, pelo menos, um domínio de nível superior, por exemplo "*.org".<br />
-Protocolos suportados: <tt>$1</tt> (não adicionado nenhum desses em sua pesquisa).',
+Protocolos suportados: <code>$1</code> (não adicionado nenhum desses em sua pesquisa).',
 'linksearch-line' => '$2 possui links para $1',
-'linksearch-error' => "\"Caracteres mágicos\" (''wildcards'') só podem ser suados no início do endereço.",
+'linksearch-error' => "\"Caracteres mágicos\" (''wildcards'') só podem ser usados no início do endereço.",
 
 # Special:ListUsers
 'listusersfrom' => 'Mostrar usuários começando em:',
@@ -3055,15 +3055,10 @@ Tal bloqueio foi provavelmente causado por uma ligação para um ''website'' ext
 # Info page
 'pageinfo-title' => 'Informações sobre "$1"',
 'pageinfo-header-edits' => 'Edições',
-'pageinfo-header-watchlist' => 'Páginas vigiadas',
-'pageinfo-header-views' => 'Visitas',
-'pageinfo-subjectpage' => 'Página',
-'pageinfo-talkpage' => 'Página de discussão',
+'pageinfo-views' => 'Número de visitas',
 'pageinfo-watchers' => 'Número de pessoas vigiando',
 'pageinfo-edits' => 'Número de edições',
 'pageinfo-authors' => 'Número de autores individuais',
-'pageinfo-views' => 'Número de visitas',
-'pageinfo-viewsperedit' => 'Visitas por edição',
 
 # Skin names
 'skinname-standard' => 'Clássico',
index 461ea1b..6d5a1ac 100644 (file)
@@ -73,6 +73,7 @@
  * @author Metalhead64
  * @author MichaelFrey
  * @author Mihai
+ * @author Minh Nguyen
  * @author Mormegil
  * @author Mpradeep
  * @author Murma174
  * @author Seb35
  * @author Sherbrooke
  * @author Shirayuki
+ * @author Shisir 1945
  * @author Shushruth
  * @author Siddhartha Ghai
  * @author Siebrand
  * @author Yyy
  * @author Žekřil71pl
  * @author פוילישער
+ * @author 아라
  */
 
 $messages = array(
@@ -2217,6 +2220,7 @@ $1 is the name of the shared repository. On wikimedia sites, $1 is {{msg-mw|shar
 * {{msg-mw|sharedupload}}, {{msg-mw|sharedupload-desc-here}}, {{msg-mw|sharedupload-desc-there}}',
 'shared-repo-name-wikimediacommons' => '{{optional}}',
 'filepage.css' => '{{Optional}}',
+'upload-disallowed-here' => 'This message appears on an image page in place of the normal reupload link if they cannot upload - e.g. if the image page is upload protected and they do not have the right priviledge.',
 
 # File reversion
 'filerevert' => '{{Identical|Revert}}',
@@ -2357,6 +2361,8 @@ Possible alternatives to the word 'content' are 'subject matter' or 'wiki subjec
 # Miscellaneous special pages
 'nbytes' => 'Message used on the history page of a wiki page. Each version of a page consist of a number of bytes. $1 is the number of bytes that the page uses. Uses plural as configured for a language based on $1.',
 'ncategories' => "Used in the special page '[[Special:MostCategories]]' in brackets after each entry on the list signifying how many categories a page is part of. $1 is the number of categories.",
+'ninterwikis' => "Used in the special page '[[Special:MostInterwikis]]' in brackets after each entry on the list signifying how many interwikis a page is part of. Parameters:
+* $1 is the number of interwiki links.",
 'nlinks' => 'This appears in brackets after each entry on the special page [[Special:MostLinked]]. $1 is the number of wiki links.',
 'nmembers' => 'Appears in brackets after each category listed on the special page [[Special:WantedCategories]]. $1 is the number of members of the category.',
 'nrevisions' => 'Number of revisions.',
@@ -2387,6 +2393,7 @@ $1 is a page title",
 'mostlinkedtemplates' => 'Name of special page displayed in [[Special:SpecialPages]]',
 'mostcategories' => 'Name of special page displayed in [[Special:SpecialPages]]',
 'mostimages' => 'Name of special page displayed in [[Special:SpecialPages]]',
+'mostinterwikis' => 'Name of special page displayed in [[Special:SpecialPages]]',
 'mostrevisions' => 'Name of special page displayed in [[Special:SpecialPages]]',
 'prefixindex' => 'The page title of [[Special:PrefixIndex]]. When the user limits the list to a certain namespace, {{msg-mw|allinnamespace}} is used instead.',
 'prefixindex-namespace' => 'The page title of [[Special:PrefixIndex]] limited to a specific namespace. Similar to {{msg-mw|allinnamespace}}. $1 is the name of the namespace',
@@ -2589,12 +2596,16 @@ See also {{msg-mw|listgrouprights-addgroup-all}}.',
 * $2 is the number of group names in $1.',
 
 # E-mail user
-'emailuser' => 'Link in the sidebar and title of [[Special:EmailUser|special page]]',
+'emailuser' => 'Link in the sidebar to send an e-mail to a user.',
+'emailuser-title-target' => 'Title of [[Special:EmailUser|special page]] when a user was given to e-mail. Parameters:
+* $1 is a plain text username, used for GENDER.',
+'emailuser-title-notarget' => 'Title of [[Special:EmailUser|special page]] when no user given to e-mail yet',
 'emailpage' => "Title of special page [[Special:EmailUser]], when it is the destination of the sidebar link {{msg-mw|Emailuser}} on a user's page.",
 'emailpagetext' => 'This is the text that is displayed above the e-mail form on [[Special:EmailUser]].
 
 Special:EmailUser appears when you click on the link "E-mail this user" in the sidebar, but only if there is an e-mail address in the recipient\'s user preferences. If there isn\'t then the message [[Mediawiki:Noemailtext]] will appear instead of Special:EmailUser.',
-'defemailsubject' => 'The default subject of EmailUser emails.  The first parameter is the username of the user sending the email.',
+'defemailsubject' => 'The default subject of EmailUser emails. Parameters:
+* $1 is the username of the user sending the email and can be used for GENDER.',
 'usermaildisabled' => 'Caption for an error message ({{msg-mw|Usermaildisabledtext}}) shown when the user-to-user e-mail feature is disabled on the wiki (see [[mw:Manual:$wgEnableEmail]], [[mw:Manual:$wgEnableUserEmail]]).',
 'noemailtitle' => 'The title of the message that appears instead of Special:EmailUser after clicking the "E-mail this user" link in the sidebar, if no e-mail can be sent to the user.',
 'noemailtext' => 'The text of the message that appears in [[Special:EmailUser]] after clicking the "E-mail this user" link in the sidebar, if no e-mail can be sent to the user because he has not specified or not confirmed an e-mail address.',
@@ -2809,11 +2820,9 @@ This message was something like "unlock move protection" in the past.',
 <tt><nowiki>* Groupname</nowiki></tt> - defines a new group<br />
 <tt><nowiki>** Reason</nowiki></tt> - defines a reason in this group',
 'protect-edit-reasonlist' => 'Shown beneath the page protection form on the right side. It is a link to [[MediaWiki:Protect-dropdown]]. See also {{msg|Delete-edit-reasonlist}} and {{msg|Ipb-edit-dropdown}}.',
-'protect-expiry-options' => "* Description: Options for the duration of the page protection.
-* <font color=\"red\">Be careful:</font> '''1 translation:1 english''', so the first part is the translation and the second part should stay in English.
-* Example: See e.g. [[MediaWiki:Protect-expiry-options/nl]] if you still don't know how to do it.
+'protect-expiry-options' => "{{Identical|Infinite}}{{doc-important|Be careful: '''1 translation:1 english''', so the first part is the translation and the second part should stay in English.}}
 
-{{Identical|Infinite}}",
+Options for the duration of the page protection. Example: See e.g. [[MediaWiki:Protect-expiry-options/nl]] if you still don't know how to do it.",
 'restriction-type' => 'Used on [[Special:ProtectedPages]]. The text next to a drop-down box. See [[mw:Manual:Administrators|MediaWiki Manual]] for more information on protection.',
 'restriction-level' => 'Used on [[Special:ProtectedPages]] and [[Special:ProtectedTitles]]. The text next to a drop-down box. See the [//www.mediawiki.org/wiki/Project:Protected_titles help page on Mediawiki] and on [http://meta.wikimedia.org/wiki/Protect Meta] for more information.',
 'minimum-size' => 'Used in [[Special:Protectedpages]] as a pair of radio buttons, with {{msg-mw|Maximum-size}}. There is an input box to specify the minimum bites of the projected pages listed.',
@@ -2997,11 +3006,9 @@ Example line:
 'ipbenableautoblock' => '{{Identical|Automatically block ...}}',
 'ipbsubmit' => '{{Identical|Block this user}}',
 'ipbother' => '{{Identical|Other time}}',
-'ipboptions' => "* Description: Options for the duration of the block.
-* <font color=\"red\">Be careful:</font> '''1 translation:1 english''', so the first part is the translation and the second part should stay in English.
-* Example: See e.g. [[MediaWiki:Ipboptions/nl]] if you still don't know how to do it.
+'ipboptions' => "{{Identical|Infinite}}{{doc-important|Be careful: '''1 translation:1 english''', so the first part is the translation and the second part should stay in English.}}
 
-{{Identical|Infinite}}",
+Options for the duration of the block. Example: See e.g. [[MediaWiki:Ipboptions/nl]] if you still don't know how to do it.",
 'ipbotheroption' => '{{Identical|Other}}',
 'ipbotherreason' => '{{Identical|Other/additional reason}}',
 'ipbhidename' => 'This is the label for a checkbox in the user block form on [[Special:Block]].',
@@ -3232,6 +3239,7 @@ Tooltip shown when hovering over a little sign of a thumb image, to go to the im
 'import' => 'The title of the special page [[Special:Import]];',
 'import-interwiki-history' => 'This is an option on [[Special:Import]]. Usually, when unchecked, only the first version of a page is imported. When you check the option, all versions are imported. This is important often to check for licensing reasons.',
 'import-interwiki-submit' => '{{Identical|Import}}',
+'import-interwiki-rootpage' => 'Used on [[Special:Import]] as label',
 'import-upload-filename' => 'Used on [[Special:Import]] as label for upload of an XML file containing the pages to import.',
 'xml-error-string' => ':$1: Some kind of message, perhaps name of the error?
 :$2: line number
@@ -3252,6 +3260,10 @@ See also:
 * $1 is a page name.
 See also:
 * {{msg-mw|import-error-edit}}',
+'import-options-wrong' => 'Used on [[Special:Import]], when one of the options has an error.',
+'import-rootpage-invalid' => 'Used on [[Special:Import]], when the root page is invalid.',
+'import-rootpage-nosubpage' => 'Used on [[Special:Import]], when the import namespace does not support subpages. Parameters:
+* $1 is a namespace name.',
 
 # Import log
 'importlogpage' => '{{doc-logpage}}',
@@ -3442,17 +3454,45 @@ See also {{msg-mw|Anonuser}} and {{msg-mw|Siteusers}}.',
 * $1 is a spammed domain name.',
 
 # Info page
-'pageinfo-title' => 'Page title for action=info.
-
+'pageinfo-title' => 'Page title for action=info. Parameters:
 * $1 is the page name',
-'pageinfo-header-edits' => 'Table section header in action=info.
-{{Identical|Edit}}',
-'pageinfo-header-watchlist' => 'Table section header in action=info.',
-'pageinfo-header-views' => 'Table section header in action=info.
-{{Identical|View}}',
-'pageinfo-subjectpage' => 'Table header in action=info.
-{{Identical|Page}}',
-'pageinfo-talkpage' => 'Table header in action=info.',
+'pageinfo-header-basic' => 'Table section header in action=info.',
+'pageinfo-header-edits' => 'Table section header in action=info.',
+'pageinfo-header-restrictions' => 'Table section header in action=info.',
+'pageinfo-header-properties' => 'Table section header in action=info.',
+'pageinfo-display-title' => 'The title that is displayed when the page is viewed.',
+'pageinfo-default-sort' => 'The key by which the page is sorted in categories by default.',
+'pageinfo-length' => 'The length of the page, in bytes.',
+'pageinfo-article-id' => 'The numeric identifier of the page.',
+'pageinfo-robot-policy' => 'The search engine status of the page, e.g. "marked as index".',
+'pageinfo-robot-index' => 'An indication that the page is indexable.',
+'pageinfo-robot-noindex' => 'An indication that the page is not indexable.',
+'pageinfo-views' => 'The number of times the page has been viewed.',
+'pageinfo-watchers' => 'The number of users watching the page.',
+'pageinfo-redirects-name' => 'The number of redirects to the page.',
+'pageinfo-redirects-value' => 'Parameters:
+* $1 is the number of redirects to the page.',
+'pageinfo-subpages-name' => 'The number of subpages of the page.',
+'pageinfo-subpages-value' => 'Parameters:
+* $1 is the number of subpages of the page.
+* $2 is the number of subpages of the page that are redirects.
+* $3 is the number of subpages of the page that are not redirects.',
+'pageinfo-firstuser' => 'The user who created the page.',
+'pageinfo-firsttime' => 'The date and time the page was created.',
+'pageinfo-lastuser' => 'The last user who edited the page.',
+'pageinfo-lasttime' => 'The date and time the page was last edited.',
+'pageinfo-edits' => 'The total number of times the page has been edited.',
+'pageinfo-authors' => 'The total number of users who have edited the page.',
+'pageinfo-recent-edits' => 'The number of times the page has been edited recently. $1 is a localised duration (e.g. 9 days).',
+'pageinfo-recent-authors' => 'The number of users who have edited the page recently.',
+'pageinfo-restriction' => 'Parameters:
+* $1 is the type of page protection (message restriction-$type, preferably in lowercase). If your language doesn\'t have small and capital letters, you can simply write <nowiki><code>$1</code></nowiki>.',
+'pageinfo-magic-words' => 'The list of magic words on the page. Parameters:
+* $1 is the number of magic words on the page.',
+'pageinfo-hidden-categories' => 'The list of hidden categories on the page. Parameters:
+* $1 is the number of hidden categories on the page.',
+'pageinfo-templates' => 'The list of templates transcluded within the page. Parameters:
+* $1 is the number of templates transcluded within the page.',
 
 # Skin names
 'skinname-standard' => '{{optional}}
@@ -3505,7 +3545,12 @@ Parameters:
 * $4 is the MIME type, a formalized textual information — for example: <code>image/jpeg</code>
 * $5 is the total number of pages in the document.',
 'file-nohires' => 'File info displayed on file description page. For example of message in use see [[:File:Mouse10.gif]].',
-'svg-long-desc' => 'Displayed under an SVG image at the image description page. Note that argument 3 is a string that includes the file size unit symbol. See for example [[:File:Yes check.svg]].',
+'svg-long-desc' => 'Displayed under an SVG image at the image description page. Note that argument 3 is a string that includes the file size unit symbol. See for example [[:File:Yes check.svg]].
+
+Start with a lowercase letter, unless the first word is “SVG”.',
+'svg-long-desc-animated' => 'Displayed under an SVG image at the image description page if the image is animated. Non-animated images use {{msg-mw|svg-long-desc}}. $1 is width, $2 is height, and $3 is file size, including unit (for example "10 KB").
+
+Start with a lowercase letter, unless the first word is “SVG”.',
 'show-big-image' => 'Displayed under an image at the image description page, when it is displayed smaller there than it was uploaded.',
 'show-big-image-size' => '
 Parameters:
@@ -3520,6 +3565,8 @@ Parameters:
 The variable $1 is the number of individual frames in an animated gif file.
 
 For example of message in use see [[:File:Mouse10.gif]].',
+'file-no-thumb-animation' => 'We cannot animate thumbnails of this file. This notice is shown on the image description page on animated svg files just below {{msg-mw|file-info-size}}. This message may be overridden by a more specific message of the form file-no-thumb-animation-&lt;extension&gt; like {{msg-mw|file-no-thumb-animation-gif}}',
+'file-no-thumb-animation-gif' => 'Cannot animate thumbnails of this gif file, because it has too big a resolution. The cut off resolution can vary between wikis ([[mw:manual:$wgMaxAnimatedGifArea|$wgMaxAnimatedGifArea]]). Note that resolution is calculated as width times height times number of frames. See {{msg-mw|file-no-thumb-animation}}.',
 
 # Special:NewFiles
 'newimages' => 'Page title of [[Special:NewImages]].',
@@ -4402,113 +4449,113 @@ Hint: the text "Remove Titles" is in {{msg-mw|watchlistedit-normal-submit}}',
 
 # Iranian month names
 'iranian-calendar-m1' => '{{optional}}
-Name of month in Iranian calender.',
+Name of month in Iranian calendar.',
 'iranian-calendar-m2' => '{{optional}}
-Name of month in Iranian calender.',
+Name of month in Iranian calendar.',
 'iranian-calendar-m3' => '{{optional}}
-Name of month in Iranian calender.',
+Name of month in Iranian calendar.',
 'iranian-calendar-m4' => '{{optional}}
-Name of month in Iranian calender.',
+Name of month in Iranian calendar.',
 'iranian-calendar-m5' => '{{optional}}
-Name of month in Iranian calender.',
+Name of month in Iranian calendar.',
 'iranian-calendar-m6' => '{{optional}}
-Name of month in Iranian calender.',
+Name of month in Iranian calendar.',
 'iranian-calendar-m7' => '{{optional}}
-Name of month in Iranian calender.',
+Name of month in Iranian calendar.',
 'iranian-calendar-m8' => '{{optional}}
-Name of month in Iranian calender.',
+Name of month in Iranian calendar.',
 'iranian-calendar-m9' => '{{optional}}
-Name of month in Iranian calender.',
+Name of month in Iranian calendar.',
 'iranian-calendar-m10' => '{{optional}}
-Name of month in Iranian calender.',
+Name of month in Iranian calendar.',
 'iranian-calendar-m11' => '{{optional}}
-Name of month in Iranian calender.',
+Name of month in Iranian calendar.',
 'iranian-calendar-m12' => '{{optional}}
-Name of month in Iranian calender.',
+Name of month in Iranian calendar.',
 
 # Hijri month names
 'hijri-calendar-m1' => '{{optional}}
-Name of month in Islamic calender.',
+Name of month in Islamic calendar.',
 'hijri-calendar-m2' => '{{optional}}
-Name of month in Islamic calender.',
+Name of month in Islamic calendar.',
 'hijri-calendar-m3' => '{{optional}}
-Name of month in Islamic calender.',
+Name of month in Islamic calendar.',
 'hijri-calendar-m4' => '{{optional}}
-Name of month in Islamic calender.',
+Name of month in Islamic calendar.',
 'hijri-calendar-m5' => '{{optional}}
-Name of month in Islamic calender.',
+Name of month in Islamic calendar.',
 'hijri-calendar-m6' => '{{optional}}
-Name of month in Islamic calender.',
+Name of month in Islamic calendar.',
 'hijri-calendar-m7' => '{{optional}}
-Name of month in Islamic calender.',
+Name of month in Islamic calendar.',
 'hijri-calendar-m8' => '{{optional}}
-Name of month in Islamic calender.',
+Name of month in Islamic calendar.',
 'hijri-calendar-m9' => '{{optional}}
-Name of month in Islamic calender.',
+Name of month in Islamic calendar.',
 'hijri-calendar-m10' => '{{optional}}
-Name of month in Islamic calender.',
+Name of month in Islamic calendar.',
 'hijri-calendar-m11' => '{{optional}}
-Name of month in Islamic calender.',
+Name of month in Islamic calendar.',
 'hijri-calendar-m12' => '{{optional}}
-Name of month in Islamic calender.',
+Name of month in Islamic calendar.',
 
 # Hebrew month names
 'hebrew-calendar-m1' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m2' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m3' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m4' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m5' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m6' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m6a' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m6b' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m7' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m8' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m9' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m10' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m11' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m12' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m1-gen' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m2-gen' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m3-gen' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m4-gen' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m5-gen' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m6-gen' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m6a-gen' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m6b-gen' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m7-gen' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m8-gen' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m9-gen' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m10-gen' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m11-gen' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 'hebrew-calendar-m12-gen' => '{{optional}}
-Name of month in Hebrew calender.',
+Name of month in Hebrew calendar.',
 
 # Signatures
 'signature' => "This will be substituted in the signature (~<nowiki></nowiki>~~ or ~~<nowiki></nowiki>~~ excluding timestamp)
@@ -4556,8 +4603,7 @@ This is being used in [[Special:Version]], preceeding the subversion revision nu
 'version-software-product' => 'Shown in [[Special:Version]]',
 'version-software-version' => '{{Identical|Version}}',
 'version-entrypoints' => 'Header on [[Special:Version]] above a table that lists the URLs of various entry points in this MediaWiki installation. Entry points are the "places" where the wiki\'s content and information can be accessed in various ways, for instance the standard index.php which shows normal pages, histories etc.',
-'version-entrypoints-header-entrypoint' => 'Header for the first column in the entry points table on [[Special:Version]].
-See also {{msg-mw|Version-entrypoints}}',
+'version-entrypoints-header-entrypoint' => 'ପ୍ରବେଶ ବିନ୍ଦୁ',
 'version-entrypoints-header-url' => 'Header for the second column in the entry points table on [[Special:Version]].',
 'version-entrypoints-articlepath' => 'A short description of the article path entry point. Links to the mediawiki.org documentation page for $wgArticlePath.',
 'version-entrypoints-scriptpath' => 'A short description of the script path entry point. Links to the mediawiki.org documentation page for $wgScriptPath.',
@@ -4826,9 +4872,4 @@ $4 is the gender of the target user.',
 'api-error-uploaddisabled' => 'API error message that can be used for client side localisation of API errors.',
 'api-error-verification-error' => 'The word "extension" refers to the part behind the last dot in a file name, that by convention gives a hint about the kind of data format which a files contents are in.',
 
-# Unknown messages
-'import-interwiki-rootpage' => 'Used on [[Special:Import]] as label',
-'import-options-wrong' => 'Used on [[Special:Import]], when one of the options has an error.',
-'import-rootpage-invalid' => 'Used on [[Special:Import]], when the root page is invalid.',
-'import-rootpage-nosubpage' => 'Used on [[Special:Import]], when the import namespace does not support subpages.',
 );
index f110d81..c91c0b4 100644 (file)
@@ -1606,9 +1606,9 @@ Kay qatiqpiqa kay p'anqapaq qulluy, astay hallch'akunatam rikunki:",
 Churkusqaña rikchakunatataq qhawanaykipaq icha maskanaykipaqqa [[Special:FileList|rikchakuna p'anqaman]] riy. Churkusqakunata [[Special:Log/upload|churkuy hallch'apim]], qullusqakunatataq [[Special:Log/delete|qulluy hallch'apim]] rikunki.
 
 Rikchata huk p'anqaman ch'aqtanaykipaqqa kay hunt'ana p'anqapi t'inkita llamk'achiy:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Willañiqi.jpg]]</nowiki></tt>''', willañiqip hunt'a musuqchasqan llamk'achinapaq
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Willañiqi.png|huk qillqa]]</nowiki></tt>''', lluq'i manyapi kaq kahapi 200 iñu suni rikch'achisqata llamk'achinapaq
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Willañiqi.ogg]]</nowiki></tt>''', willañiqiman chiqalla t'inkinapaq, willañiqita mana rikuchispa",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Willañiqi.jpg]]</nowiki></code>''', willañiqip hunt'a musuqchasqan llamk'achinapaq
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Willañiqi.png|huk qillqa]]</nowiki></code>''', lluq'i manyapi kaq kahapi 200 iñu suni rikch'achisqata llamk'achinapaq
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Willañiqi.ogg]]</nowiki></code>''', willañiqiman chiqalla t'inkinapaq, willañiqita mana rikuchispa",
 'upload-permitted' => 'Saqillasqa willañiqi layakuna: $1.',
 'upload-preferred' => 'Astawan munasqa willañiqi layakuna: $1.',
 'upload-prohibited' => 'Mana saqillasqa willañiqi layakuna: $1.',
@@ -1649,19 +1649,19 @@ Rikchata huk p'anqaman ch'aqtanaykipaqqa kay hunt'ana p'anqapi t'inkita llamk'ac
 'largefileserver' => 'Kay willañiqiqa sirwiqpi allinkachisqakama saqillasqa chhikanmanta aswan hatunmi.',
 'emptyfile' => "Churkusqayki willañiqiqa ch'usaqmi rikch'akun. Pantasqa sutinchá. Ama hina kaspa, llanchiy, churkuyman munasqayki willañiqichu.",
 'windows-nonascii-filename' => "Kay wikiqa sapaq sananchayuq willañiqi sutikunata manam q'iminchu.",
-'fileexists' => "Kachkanñam kay sutiyuq willañiqi.
-Ama hina kaspa, '''<tt>[[:$1]]</tt>''' nisqata llanchiy, huknachanaykimanta mana allin yachaspaykiqa.
+'fileexists' => 'Kachkanñam kay sutiyuq willañiqi.
+Ama hina kaspa, <strong>[[:$1]]</strong> nisqata llanchiy, huknachanaykimanta mana allin yachaspaykiqa.
+[[$1|thumb]]',
+'filepageexists' => "Kay willañiqipaq sut'ichana p'anqaqa kamarisqañam <strong>[[:$1]]</strong> nisqapi, ichataq kay sutiyuq willañiqi manaraqmi kanchu. Willanayki pisichayqa manam rikch'akunqachu sut'ichana p'anqapi. Rikch'akunanpaqqa, kikiykip makiykiwanmi llamk'apunayki tiyan.
 [[$1|thumb]]",
-'filepageexists' => "Kay willañiqipaq sut'ichana p'anqaqa kamarisqañam '''<tt>[[:$1]]</tt>''' nisqapi, ichataq kay sutiyuq willañiqi manaraqmi kanchu. Willanayki pisichayqa manam rikch'akunqachu sut'ichana p'anqapi. Rikch'akunanpaqqa, kikiykip makiykiwanmi llamk'apunayki tiyan.
-[[$1|thumb]]",
-'fileexists-extension' => "Kay willañiqip sutinman yaqa kaqlla sutiyuq willañiqim kachkanña: [[$2|thumb]]
-* Churkunayasqayki willañiqip sutin: '''<tt>[[:$1]]</tt>'''
-* Kachkaqña willañiqip sutin: '''<tt>[[:$2]]</tt>'''
-Ama hina kaspa, huk sutita akllay.",
+'fileexists-extension' => 'Kay willañiqip sutinman yaqa kaqlla sutiyuq willañiqim kachkanña: [[$2|thumb]]
+* Churkunayasqayki willañiqip sutin: <strong>[[:$1]]</strong>
+* Kachkaqña willañiqip sutin: <strong>[[:$2]]</strong>
+Ama hina kaspa, huk sutita akllay.',
 'fileexists-thumbnail-yes' => "Willañiqiqa ancha uchuylla rikchamanmi rikch'akun ''(thumbnail)''. [[$1|thumb]]
-Ama hina kaspa, '''<tt>[[:$1]]</tt>''' nisqa willañiqita llanchiy.
+Ama hina kaspa, <strong>[[:$1]]</strong> nisqa willañiqita llanchiy.
 Llanchisqa willañiqi qallariy chhikan kikin rikchaman kaqlla kaptinqa, huk rikchachata churkunaykiqa manam tiyanchu.",
-'file-thumbnail-no' => "Willañiqip sutinqa '''<tt>$1</tt>''' nisqawanmi qallarin. Ancha uchuylla rikchamanmi rikch'akun ''(thumbnail)''.
+'file-thumbnail-no' => "Willañiqip sutinqa <strong>$1</strong> nisqawanmi qallarin. Ancha uchuylla rikchamanmi rikch'akun ''(thumbnail)''.
 Kay churkunayki rikcha hunt'a chhikan kayniyuq kaptinqa, chay hunt'atam churkuy, manataq hinaptinqa willañiqip sutinta hukchay.",
 'fileexists-forbidden' => 'Kay sutiyuq willañiqiqa kachkanñam, manam huknachanallachu. Willañiqiykita kunanraq churkuyta munaspaykiqa, ama hina kaspa, willañiqip sutinta hukchaspa musuqmanta churkuy. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => "Kay sutiyuq willañiqiqa kachkañam rakinakusqa willañiqi qullqapi. Ama hina kaspa, churkuyta munaspaykiraq, ñawpaq p'anqaman kutispa willañiqiykita huk sutiwan churkuy. [[File:$1|thumb|center|$1]]",
@@ -1899,7 +1899,7 @@ Ama hina kaspa, [$2 willañiqi ch'uyanchana p'anqata] qhaway astawan willachikun
 
 # MIME search
 'mimesearch' => 'MIME maskay',
-'mimesearch-summary' => "Kay p'anqawanqa willañiqikunata MIME layankamam ch'illchiyta atinki. Qunapaq: contenttype/subtype, ahinataq <tt>image/jpeg</tt>.",
+'mimesearch-summary' => "Kay p'anqawanqa willañiqikunata MIME layankamam ch'illchiyta atinki. Qunapaq: contenttype/subtype, ahinataq <code>image/jpeg</code>.",
 'mimetype' => 'MIME laya:',
 'download' => 'chaqnamuy',
 
@@ -2095,7 +2095,7 @@ Rikuyniykitaqa k'ullkuchaytam atinki hallch'a layata, ruraqpa sutinta (uchuy ich
 'linksearch-ok' => 'Maskay',
 'linksearch-text' => 'Ima rantipas sananchawanpas maskayta saqillasunkim, ahinataq "*.wikipedia.org".
 Hawa kaq duminyullapas kanam, ahinataq "*.org".<br />
-Q\'imichisqa tantari qillqa: <tt>$1</tt> (maskaspaykiqa kaykunamanta ama mayqintapas yapaychu).',
+Q\'imichisqa tantari qillqa: <code>$1</code> (maskaspaykiqa kaykunamanta ama mayqintapas yapaychu).',
 'linksearch-line' => "$1-man $2-manta t'inkimusqa",
 'linksearch-error' => 'Ima rantipas sananchaqa (* ?) tiyaypa qallariyninpim kanman chaylla.',
 
@@ -2925,15 +2925,10 @@ Tukuy hawa wikimanta chaskisqakunaqa [[Special:Log/import|hawamanta chaskiy hall
 # Info page
 'pageinfo-title' => '"$1" sutiyuq p\'anqamanta willay',
 'pageinfo-header-edits' => "Llamk'apusqakuna",
-'pageinfo-header-watchlist' => "Watiqasqa p'anqakuna",
-'pageinfo-header-views' => 'Rikunakuna',
-'pageinfo-subjectpage' => "P'anqa",
-'pageinfo-talkpage' => "Rimanakuy p'anqa",
+'pageinfo-views' => "Hayk'a qhawaykuna",
 'pageinfo-watchers' => "Hayk'a watiqaqkuna",
 'pageinfo-edits' => "Hayk'a hukchasqakuna",
 'pageinfo-authors' => "Hayk'a sapaq kaq ruraqkuna",
-'pageinfo-views' => "Hayk'a qhawaykuna",
-'pageinfo-viewsperedit' => "Qhawasqakuna llamk'apusqaman",
 
 # Patrolling
 'markaspatrolleddiff' => 'Qhawakipasqaman sananchay',
index 18ae917..ebc4dc5 100644 (file)
@@ -1340,9 +1340,9 @@ Il log da stizzar e spustar vegn mussà sutvart:",
 Per contemplar u tschertgar datotecas gia chargiada si, visita la pagina [[Special:FileList|glista da datotecas chargiadas si]]. Tut las datotecas che vegnan chargiadas si èn era notads en il [[Special:Log/upload|log da chargiar si]], quellas ch'èn vegnidas stizzadas en il [[Special:Log/delete|log dal stizzar]].
 
 Per integrar ina datoteca en in artitgel pos ti per exempel duvrar in dals suandants cumonds:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' per utilisar la versiun cumplaina da la datoteca
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' per utilisar in maletg da la ladezza da 200 pixels en in champ da la vart sanestra cun la descripziun 'alt text'
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' per directamain far ina colliaziun a la datoteca senza integrar la datoteca",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' per utilisar la versiun cumplaina da la datoteca
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' per utilisar in maletg da la ladezza da 200 pixels en in champ da la vart sanestra cun la descripziun 'alt text'
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' per directamain far ina colliaziun a la datoteca senza integrar la datoteca",
 'upload-permitted' => 'Tips da datotecas lubids: $1.',
 'upload-preferred' => 'Tips da datotecas preferids: $1.',
 'upload-prohibited' => 'Tips da datotecas betg lubids: $1.',
@@ -1386,21 +1386,21 @@ questa datoteca è $2 gronda.",
 'emptyfile' => "La datoteca che ti has chargià si para dad esser vida.
 Quai po esser pervia d'in sbagl da tippar en il num da datoteca.
 Controllescha sche ti vuls propi chargiar si questa datoteca.",
-'fileexists' => "Ina datoteca cun quest num exista gia. Controllescha '''<tt>[[:$1]]</tt>''' sche ti n'es betg segir sche ti vuls midar ella.
+'fileexists' => "Ina datoteca cun quest num exista gia. Controllescha <strong>[[:$1]]</strong> sche ti n'es betg segir sche ti vuls midar ella.
 [[$1|thumb]]",
-'filepageexists' => "La pagina da descripziun per questa datoteca è vegnida creada ils '''<tt>[[:$1]]</tt>''' ma i n'exista anc nagina datoteca cun quest num. 
+'filepageexists' => "La pagina da descripziun per questa datoteca è vegnida creada ils <strong>[[:$1]]</strong> ma i n'exista anc nagina datoteca cun quest num. 
 La resumaziun che ti endatescha na vegn betg a cumparair sin la pagina da descripziun.
 Per che tia resumaziun cumpara là, stos ti modifitar manualmain la pagina da descripziun.
 [[$1|thumb]]",
 'fileexists-extension' => "I exista gia ina datoteca cun in num sumegliant: [[$2|thumb]]
-* Num da la datoteca che duai vegnir chargiada si: '''<tt>[[:$1]]</tt>'''
-* Num da la datoteca ch'exista gia: '''<tt>[[:$2]]</tt>'''
+* Num da la datoteca che duai vegnir chargiada si: <strong>[[:$1]]</strong>
+* Num da la datoteca ch'exista gia: <strong>[[:$2]]</strong>
 Tscherna per plaschair in auter num.",
 'fileexists-thumbnail-yes' => "Quest maletg para dad esser in maletg da grondezza reducida ''(Maletg da prevista)''.
 [[$1|thumb]]
-Controllescha per plaschair la datoteca ''<tt>[[:$1]]</tt>'''.
+Controllescha per plaschair la datoteca ''<strong>[[:$1]]</strong>.
 Sche la datoteca menziunada survart è il medem maletg en grondezza originala n'èsi betg necessari da chargiar si in maletg da pervista.",
-'file-thumbnail-no' => "Il num da la datoteca cumenza cun '''<tt>$1</tt>''', perquai para quai dad esser in maletg da grondezza reducida ''(Maletg da prevista)''.
+'file-thumbnail-no' => "Il num da la datoteca cumenza cun <strong>$1</strong>, perquai para quai dad esser in maletg da grondezza reducida ''(Maletg da prevista)''.
 Controllescha sche ti has era il maletg en grondezza originala e chargia si quel sut il num original.",
 'fileexists-forbidden' => 'I exista gia ina datoteca cun quest num che na po betg vegnir recuvrida. 
 Sche ti vuls anc adina chargiar si tia datoteca, turna per plaschair anavos e tscherna in auter nu. 
@@ -1579,7 +1579,7 @@ La descripziun da sia [$2 pagina da descripziun da datotecas] vegn mussada sutva
 # MIME search
 'mimesearch' => 'tschertgar tenor tip da MIME',
 'mimesearch-summary' => 'Questa pagina permetta da filtrar datotecas tenor lur tip MIME.
-Endatar il term da tschertgar en la furma tip/suttip, p.ex. <tt>image/jpeg</tt>.',
+Endatar il term da tschertgar en la furma tip/suttip, p.ex. <code>image/jpeg</code>.',
 'mimetype' => 'Tip MIME:',
 'download' => 'telechargiar',
 
@@ -1741,7 +1741,7 @@ I renviescha uss a [[$2]].',
 'linksearch-ok' => 'Tschertgar',
 'linksearch-text' => 'Sin questa pagina pos ti tschertgar paginas che cuntegnan colliaziuns a tschertas websites. 
 Uschenumnadas wildcards sco p.ex. "*.wikipedia.org" pon vegnir utilisadas.<br />
-Protocols sustegnids: <tt>$1</tt>',
+Protocols sustegnids: <code>$1</code>',
 'linksearch-line' => '$1 è collià davent da la pagina $2',
 'linksearch-error' => "Wildcards pon esser be a l'entschatta dal num da host.",
 
@@ -2511,15 +2511,10 @@ Probablamien è quai capità pervia dad in link ad ina pagina externa ch'è sin
 # Info page
 'pageinfo-title' => 'Infurmaziuns per "$1"',
 'pageinfo-header-edits' => 'Midadas',
-'pageinfo-header-watchlist' => "Glista d'observaziun",
-'pageinfo-header-views' => 'Visitas',
-'pageinfo-subjectpage' => 'Pagina',
-'pageinfo-talkpage' => 'Pagina da discussiun',
+'pageinfo-views' => 'Dumber da visitas',
 'pageinfo-watchers' => 'Dumber dad observaturs',
 'pageinfo-edits' => 'Dumber da midadas',
 'pageinfo-authors' => 'Dumber dad auturs differents',
-'pageinfo-views' => 'Dumber da visitas',
-'pageinfo-viewsperedit' => 'Visitas per midada',
 
 # Patrolling
 'markaspatrolleddiff' => 'Marcar sco controllà',
index 393eac7..4cde377 100644 (file)
@@ -566,9 +566,9 @@ $1',
 'newmessageslink' => 'mesaje noi',
 'newmessagesdifflink' => 'comparație cu versiunea precedentă',
 'youhavenewmessagesfromusers' => 'Aveți $1 de la {{PLURAL:$3|un alt utilizator|$3 utilizatori}} ($2).',
-'youhavenewmessagesmanyusers' => 'Aveți $1 de la mulți utilizatori ($2).',
+'youhavenewmessagesmanyusers' => 'Aveți $1 de la mai mulți utilizatori ($2).',
 'newmessageslinkplural' => '{{PLURAL:$1|un mesaj nou|mesaje noi}}',
-'newmessagesdifflinkplural' => 'ultima/(ele) {{PLURAL:$1|schimbare|schimbări}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|ultima modificare|ultimele modificări}}',
 'youhavenewmessagesmulti' => 'Aveți mesaje noi la $1',
 'editsection' => 'modificare',
 'editold' => 'modificare',
@@ -620,12 +620,12 @@ O listă cu paginile speciale valide se poate găsi la [[Special:SpecialPages|{{
 # General errors
 'error' => 'Eroare',
 'databaseerror' => 'Eroare la baza de date',
-'dberrortext' => 'A apărut o eroare în sintaxa interogării.
-Aceasta poate indica o problemă în program.
-Ultima interogare încercată a fost:
-<blockquote><tt>$1</tt></blockquote>
-din cadrul funcției "<tt>$2</tt>".
-Baza de date a returnat eroarea "<tt>$3: $4</tt>".',
+'dberrortext' => 'A apărut o eroare în sintaxa interogării bazei de date.
+Acest lucru poate indica o problemă în program.
+Ultima interogare trimisă către baza de date a fost:
+<blockquote><code>$1</code></blockquote>
+din cadrul funcției „<code>$2</code>”.
+Baza de date a returnat eroarea „<samp>$3: $4</samp>”.',
 'dberrortextcl' => 'A apărut o eroare de sintaxă în interogare.
 Ultima interogare încercată a fost:
 „$1”
@@ -976,7 +976,6 @@ Ultima intrare în jurnalul blocărilor este afișată mai jos pentru referinț
 * '''Firefox / Safari:''' țineți apăsat pe ''Shift'' în timp ce faceți clic pe ''Reîncărcare'', ori apăsați ''Ctrl-F5'' sau ''Ctrl-R'' (''⌘-R'' pe un sistem Mac);
 * '''Google Chrome:''' apăsați ''Ctrl-Shift-R'' (''⌘-Shift-R'' pe un sistem Mac);
 * '''Internet Explorer:''' țineți apăsat pe ''Ctrl'' în timp ce faceți clic pe ''Reîmprospătare'' sau apăsați ''Ctrl-F5'';
-* '''Konqueror:''' faceți clic pe ''Reîncărcare'' sau apăsați ''F5'';
 * '''Opera:''' curățați memoria cache din ''Unelte → Preferințe''.",
 'usercssyoucanpreview' => "'''Sfat:''' Folosiți butonul „{{int:showpreview}}” pentru a testa noul CSS înainte de a-l salva.",
 'userjsyoucanpreview' => "'''Sfat:''' Folosiți butonul „{{int:showpreview}}” pentru a testa noul JavaScript înainte de a-l salva.",
@@ -1119,10 +1118,10 @@ Motivul invocat de $3 este ''$2''",
 'currentrev' => 'Versiunea curentă',
 'currentrev-asof' => 'Versiunea curentă din $1',
 'revisionasof' => 'Versiunea de la data $1',
-'revision-info' => 'Revizia pentru $1; $2',
+'revision-info' => 'Versiunea din $1; autor: $2',
 'previousrevision' => '←Versiunea anterioară',
 'nextrevision' => 'Versiunea următoare →',
-'currentrevisionlink' => 'afișează versiunea curentă',
+'currentrevisionlink' => 'Versiunea curentă',
 'cur' => 'actuală',
 'next' => 'următoarea',
 'last' => 'prec',
@@ -1139,7 +1138,7 @@ Motivul invocat de $3 este ''$2''",
 
 # Revision feed
 'history-feed-title' => 'Revizia istoricului',
-'history-feed-description' => 'Revizia istoricului pentru această pagină de pe wiki',
+'history-feed-description' => 'Istoricul versiunilor pentru această pagină din wiki',
 'history-feed-item-nocomment' => '$1 la $2',
 'history-feed-empty' => 'Pagina solicitată nu există.
 E posibil să fi fost ștearsă sau redenumită.
@@ -1150,7 +1149,7 @@ E posibil să fi fost ștearsă sau redenumită.
 'rev-deleted-user' => '(nume de utilizator șters)',
 'rev-deleted-event' => '(intrare ștearsă)',
 'rev-deleted-user-contribs' => '[nume de utilizator sau adresă IP ștearsă - modificare ascunsă din contribuții]',
-'rev-deleted-text-permission' => "Această revizie a paginii a fost '''ștearsă'''.
+'rev-deleted-text-permission' => "Această versiune a paginii a fost '''ștearsă'''.
 Mai multe detalii în [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} jurnalul ștergerilor].",
 'rev-deleted-text-unhide' => "Această versiune a paginii a fost '''ștearsă'''.
 Detalii se pot găsi în [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jurnalul ștergerilor].
@@ -1162,8 +1161,8 @@ Ca administrator puteți [$1 vedea această versiune] în continuare, dacă dori
 Ca administrator puteți să o vedeți; detalii puteți găsi în [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jurnalul ștergerilor].",
 'rev-suppressed-text-view' => "Această versiune a paginii a fost '''suprimată'''.
 Ca administrator puteți să o vedeți; detalii puteți găsi în [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} jurnalul suprimărilor].",
-'rev-deleted-no-diff' => "Nu poți vedea acestă diferență deoarece una dintre revizii a fost '''ștearsă'''.
-Pot exista mai multe detalii în [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jurnalul ștergerilor].",
+'rev-deleted-no-diff' => "Nu puteți vedea acestă diferență deoarece una dintre versiuni a fost '''ștearsă'''.
+Detalii în [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jurnalul ștergerilor].",
 'rev-suppressed-no-diff' => "Nu puteți vizualiza această diferență între versiuni deoarece una dintre versiuni a fost '''ștearsă'''.",
 'rev-deleted-unhide-diff' => "Una din versiunile acestui istoric a fost '''ștearsă'''.
 Detalii se pot găsi în [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} jurnalul ștergerilor].
@@ -1179,8 +1178,8 @@ Ca administrator puteți vedea în continuare această diferență dinte versiun
 'rev-showdeleted' => 'arată',
 'revisiondelete' => 'Șterge/recuperează versiuni',
 'revdelete-nooldid-title' => 'Versiune invalidă',
-'revdelete-nooldid-text' => 'Nu ai specificat revizie pentru a efectua această
-funcție, revizia specificată nu există, sau ești pe cale să ascunzi revizia curentă.',
+'revdelete-nooldid-text' => 'Fie nu ați specificat versiunea pentru a efectua această
+funcție, fie versiunea specificată nu există, ori sunteți pe cale să ascundeți versiunea curentă.',
 'revdelete-nologtype-title' => 'Niciun tip de jurnal specificat',
 'revdelete-nologtype-text' => 'Nu ai specificat niciun tip de jurnal pentru a putea efectua această acțiune.',
 'revdelete-nologid-title' => 'Intrare în jurnal invalidă',
@@ -1252,13 +1251,13 @@ Asigură-te că această schimbare va menține continuitatea istoricului paginii
 'mergehistory-from' => 'Pagina sursă:',
 'mergehistory-into' => 'Pagina destinație:',
 'mergehistory-list' => 'Istoricul la care se aplică combinarea',
-'mergehistory-merge' => 'Ulmătoarele revizii ale [[:$1]] pot fi combinate în [[:$2]].
-Folosește butonul pentru a combina reviziile create la și după momentul specificat.
+'mergehistory-merge' => 'Următoarele versiuni ale [[:$1]] pot fi combinate în [[:$2]].
+Folosiți coloana butonului radio pentru a combina doar versiunile create la și înainte de momentul specificat.
 Folosirea linkurilor de navigare va reseta această coloană.',
 'mergehistory-go' => 'Vezi modificările care pot fi combinate',
 'mergehistory-submit' => 'Unește reviziile',
 'mergehistory-empty' => 'Reviziile nu pot fi combinate.',
-'mergehistory-success' => '$3 {{PLURAL:$3|revizie|revizii}} ale [[:$1]] au fost unite cu succes în [[:$2]].',
+'mergehistory-success' => '$3 {{PLURAL:$3|versiune|versiuni|de versiuni}} ale [[:$1]] {{PLURAL:$3|a fost unită|au fost unite|au fost unite}} cu succes în [[:$2]].',
 'mergehistory-fail' => 'Nu se poate executa combinarea istoricului, te rog verifică parametrii pagină și timp.',
 'mergehistory-no-source' => 'Pagina sursă $1 nu există.',
 'mergehistory-no-destination' => 'Pagina de destinație $1 nu există.',
@@ -1271,7 +1270,7 @@ Folosirea linkurilor de navigare va reseta această coloană.',
 
 # Merge log
 'mergelog' => 'Jurnal unificări',
-'pagemerge-logentry' => 'combină [[$1]] cu [[$2]] (revizii până la $3)',
+'pagemerge-logentry' => 'combină [[$1]] cu [[$2]] (versiuni până la $3)',
 'revertmerge' => 'Anulează îmbinarea',
 'mergelogpagetext' => 'Mai jos este o listă a celor mai recente combinări ale istoricului unei pagini cu al alteia.',
 
@@ -1284,7 +1283,7 @@ Folosirea linkurilor de navigare va reseta această coloană.',
 'compareselectedversions' => 'Compară versiunile marcate',
 'showhideselectedversions' => 'Șterge/recuperează versiunile marcate',
 'editundo' => 'anulare',
-'diff-multi' => '({{PLURAL:$1|O revizie intermediară|$1 revizii intermediare|$1 de revizii intermediare}} efectuată de {{PLURAL:$2|un utilizator|$2 utilizatori|$2 de utilizatori}} {{PLURAL:$1|neafișată|neafișate}})',
+'diff-multi' => '(Nu {{PLURAL:$1|s-a afișat o versiune intermediară efectuată|s-au afișat $1 versiuni intermediare efectuate|s-au afișat $1 de versiuni intermediare efectuate}} de {{PLURAL:$2|un utilizator|$2 utilizatori|$2 de utilizatori}})',
 'diff-multi-manyusers' => '({{PLURAL:$1|O versiune intermediară efectuată de|$1 (de) versiuni intermediare efectuate de peste}} $2 {{PLURAL:$2|utilizator|utilizatori}} {{PLURAL:$1|neafișată|neafișate}})',
 'difference-missing-revision' => '{{PLURAL:$2|O versiune a|$2 versiuni ale|$2 de versiuni ale}} acestei diferențe ($1) nu {{PLURAL:$2|a fost găsită|au fost găsite}}.
 
@@ -1534,16 +1533,16 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 'grouppage-suppress' => '{{ns:project}}:Oversight',
 
 # Rights
-'right-read' => 'Citește paginile',
+'right-read' => 'Citește pagini',
 'right-edit' => 'Modifică paginile',
 'right-createpage' => 'Creează pagini (altele decât pagini de discuție)',
 'right-createtalk' => 'Creează pagini de discuție',
 'right-createaccount' => 'Creează conturi noi',
 'right-minoredit' => 'Marchează modificările minore',
-'right-move' => 'Mută paginile',
-'right-move-subpages' => 'Mută paginile cu tot cu subpagini',
+'right-move' => 'Redenumește paginile',
+'right-move-subpages' => 'Redenumește paginile cu tot cu subpagini',
 'right-move-rootuserpages' => 'Redenumește pagina principală a unui utilizator',
-'right-movefile' => 'Mută fișierele',
+'right-movefile' => 'Redenumește fișiere',
 'right-suppressredirect' => 'Nu crea o redirecționare de la vechiul nume atunci când muți o pagină',
 'right-upload' => 'Încarcă fișiere',
 'right-reupload' => 'Suprascrie un fișier existent',
@@ -1553,10 +1552,10 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 'right-purge' => 'Curăță memoria cache pentru o pagină fără confirmare',
 'right-autoconfirmed' => 'Modifică paginile semi-protejate',
 'right-bot' => 'Tratare ca proces automat',
-'right-nominornewtalk' => 'Nu activa mesajul "Aveți un mesaj nou" la modificarea minoră a paginii de discuții a utilizatorului',
+'right-nominornewtalk' => 'Nu declanșează mesajul „Aveți un mesaj nou” atunci când efectuează o modificare minoră pe pagina de discuții a utilizatorului',
 'right-apihighlimits' => 'Folosește o limită mai mare pentru rezultatele cererilor API',
 'right-writeapi' => 'Utilizează API la scriere',
-'right-delete' => 'Şterge pagini',
+'right-delete' => 'Șterge pagini',
 'right-bigdelete' => 'Şterge pagini cu istoric lung',
 'right-deletelogentry' => 'Șterge și recuperează intrări specifice din jurnale',
 'right-deleterevision' => 'Șterge și recuperează versiuni specifice ale paginilor',
@@ -1609,21 +1608,21 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 'action-createtalk' => 'creați pagini de discuție',
 'action-createaccount' => 'creați acest cont de utilizator',
 'action-minoredit' => 'marcați această modificare ca minoră',
-'action-move' => 'mutați această pagină',
-'action-move-subpages' => 'mutați această pagină și subpaginile sale',
+'action-move' => 'redenumiți această pagină',
+'action-move-subpages' => 'redenumiți această pagină și subpaginile sale',
 'action-move-rootuserpages' => 'redenumiți pagina principală a unui utilizator',
-'action-movefile' => 'mutați acest fișier',
+'action-movefile' => 'redenumiți acest fișier',
 'action-upload' => 'încărcați acest fișier',
 'action-reupload' => 'suprascrieți fișierul existent',
 'action-reupload-shared' => 'rescrieți acest fișier în depozitul partajat',
 'action-upload_by_url' => 'încărcați acest fișier de la o adresă URL',
 'action-writeapi' => 'utilizați scrierea prin API',
-'action-delete' => 'ștergeți această pagină',
-'action-deleterevision' => 'ștergeți această revizie',
+'action-delete' => 'șterge această pagină',
+'action-deleterevision' => 'ștergeți această versiune',
 'action-deletedhistory' => 'vizualizați istoricul șters al aceste pagini',
 'action-browsearchive' => 'căutați pagini șterse',
 'action-undelete' => 'recuperați această pagină',
-'action-suppressrevision' => 'revizuiți și să restaurați această revizie ascunsă',
+'action-suppressrevision' => 'revizuiți și să restaurați această versiune ascunsă',
 'action-suppressionlog' => 'vizualizați acest jurnal privat',
 'action-block' => 'blocați permisiunea de modificare a acestui utilizator',
 'action-protect' => 'modificați nivelurile de protecție pentru această pagină',
@@ -1705,9 +1704,9 @@ Iată aici înregistrările relevante din jurnalul de ștergeri și redenumiri:"
 Pentru a vizualiza sau căuta imagini deja trimise, mergeți la [[Special:FileList|lista cu imagini]]; (re)încărcările și ștergerile sunt de asemenea înregistrate în [[Special:Log/upload|jurnalul fișierelor trimise]], respectiv [[Special:Log/delete|jurnalul fișierelor șterse]].
 
 Pentru a insera un fișier într-o pagină, folosiți o legătură de forma:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fișier.jpg]]</nowiki></tt>''' pentru a include versiunea integrală a unui fișier
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fișier.png|200px|thumb|left|informații]]</nowiki></tt>''' pentru a introduce o imagine cu o lățime de 200 de pixeli într-un chenar plasat în partea stângă, având ca descriere textul „informații”
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fișier.ogg]]</nowiki></tt>''' pentru o legătură directă către fișier, fără a-l afișa",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fișier.jpg]]</nowiki></code>''' pentru a include versiunea integrală a unui fișier
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fișier.png|200px|thumb|left|informații]]</nowiki></code>''' pentru a introduce o imagine cu o lățime de 200 de pixeli într-un chenar plasat în partea stângă, având ca descriere textul „informații”
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fișier.ogg]]</nowiki></code>''' pentru o legătură directă către fișier, fără a-l afișa",
 'upload-permitted' => 'Tipuri de fișiere permise: $1.',
 'upload-preferred' => 'Tipuri de fișiere preferate: $1.',
 'upload-prohibited' => 'Tipuri de fișiere interzise: $1.',
@@ -1751,20 +1750,20 @@ Vezi [[Special:NewFiles|galeria fișierelor noi]] pentru o mai bună vizualizare
 'largefileserver' => 'Fișierul este mai mare decât este configurat serverul să permită.',
 'emptyfile' => 'Fișierul pe care l-ați încărcat pare a fi gol. Aceasta poate fi datorită unei greșeli în numele fișierului. Verificați dacă într-adevăr doriți să încărcați acest fișier.',
 'windows-nonascii-filename' => 'Acest wiki nu acceptă nume de fișiere care conțin caractere speciale.',
-'fileexists' => "Un fișier cu același nume există deja, vă rugăm verificați '''<tt>[[:$1]]</tt>''' dacă nu sunteți sigur dacă doriți să îl modificați.
-[[$1|thumb]]",
-'filepageexists' => "Pagina cu descrierea fișierului a fost deja creată la '''<tt>[[:$1]]</tt>''', dar niciun fișier cu acest nume nu există în acest moment.
+'fileexists' => 'Un fișier cu același nume există deja, vă rugăm verificați <strong>[[:$1]]</strong> dacă nu sunteți sigur dacă doriți să îl modificați.
+[[$1|thumb]]',
+'filepageexists' => 'Pagina cu descrierea fișierului a fost deja creată la <strong>[[:$1]]</strong>, dar niciun fișier cu acest nume nu există în acest moment.
 Sumarul pe care l-ai introdus nu va apărea în pagina cu descriere.
 Pentru ca sumarul tău să apară, va trebui să îl adaugi manual.
-[[$1|miniatură]]",
-'fileexists-extension' => "Un fișier cu un nume similar există: [[$2|thumb]]
-* Numele fișierului de încărcat: '''<tt>[[:$1]]</tt>'''
-* Numele fișierului existent: '''<tt>[[:$2]]</tt>'''
-Te rog alege alt nume.",
+[[$1|miniatură]]',
+'fileexists-extension' => 'Un fișier cu un nume similar există: [[$2|thumb]]
+* Numele fișierului de încărcat: <strong>[[:$1]]</strong>
+* Numele fișierului existent: <strong>[[:$2]]</strong>
+Te rog alege alt nume.',
 'fileexists-thumbnail-yes' => "Fișierul pare a fi o imagine cu o rezoluție scăzută ''(thumbnail)''. [[$1|thumb]]
-Verifică fișierul'''<tt>[[:$1]]</tt>'''.
+Verifică fișierul<strong>[[:$1]]</strong>.
 Dacă fișierul verificat este identic cu imaginea originală nu este necesară încărcarea altui thumbnail.",
-'file-thumbnail-no' => "Numele fișierului începe cu '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Numele fișierului începe cu <strong>$1</strong>.
 Se pare că este o imagine cu dimensiune redusă''(thumbnail)''.
 Dacă ai această imagine la rezoluție mare încarc-o pe aceasta, altfel schimbă numele fișierului.",
 'fileexists-forbidden' => 'Un fișier cu acest nume există deja și nu poate fi rescris.
@@ -1980,6 +1979,7 @@ Poate doriți să-i modificați descrierea pe [$2 pagina sa descriptivă] de aco
 'uploadnewversion-linktext' => 'Încarcă o versiune nouă a acestui fișier',
 'shared-repo-from' => 'de la $1',
 'shared-repo' => 'un depozit partajat',
+'upload-disallowed-here' => 'Din păcate, nu puteți suprascrie această imagine.',
 
 # File reversion
 'filerevert' => 'Revenire $1',
@@ -2014,7 +2014,7 @@ Poate doriți să-i modificați descrierea pe [$2 pagina sa descriptivă] de aco
 # MIME search
 'mimesearch' => 'Căutare MIME',
 'mimesearch-summary' => 'This page enables the filtering of files for its MIME-type.
-Input: contenttype/subtype, e.g. <tt>image/jpeg</tt>.
+Input: contenttype/subtype, e.g. <code>image/jpeg</code>.
 
 
 Această pagină specială permite căutarea fișierelor în funcție de tipul MIME (Multipurpose Internet Mail Extensions). Cele mai des întâlnite sunt:
@@ -2094,14 +2094,15 @@ Intrările <del>tăiate</del> au fost rezolvate.',
 'withoutinterwiki-legend' => 'Prefix',
 'withoutinterwiki-submit' => 'Arată',
 
-'fewestrevisions' => 'Articole cu cele mai puține revizii',
+'fewestrevisions' => 'Articole cu cele mai puține versiuni',
 
 # Miscellaneous special pages
 'nbytes' => '{{PLURAL:$1|un octet|$1 octeți|$1 de octeți}}',
 'ncategories' => '{{PLURAL:$1|o categorie|$1 categorii|$1 de categorii}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|legături interwiki|de legături interwiki}}',
 'nlinks' => '{{PLURAL:$1|o legătură|$1 legături|$1 de legături}}',
 'nmembers' => '$1 {{PLURAL:$1|membru|membri|de membri}}',
-'nrevisions' => '{{PLURAL:$1|o revizie|$1 revizii|$1 de revizii}}',
+'nrevisions' => '{{PLURAL:$1|o versiune|$1 versiuni|$1 de versiuni}}',
 'nviews' => '{{PLURAL:$1|o accesare|$1 accesări|$1 de accesări}}',
 'nimagelinks' => 'Utilizat pe $1 {{PLURAL:$1|pagină|pagini}}',
 'ntransclusions' => 'utilizat pe $1 {{PLURAL:$1|pagină|pagini}}',
@@ -2127,6 +2128,7 @@ Intrările <del>tăiate</del> au fost rezolvate.',
 'mostlinkedtemplates' => 'Cele mai folosite formate',
 'mostcategories' => 'Articole cu cele mai multe categorii',
 'mostimages' => 'Cele mai căutate imagini',
+'mostinterwikis' => 'Pagini cu cele mai multe legături interwiki',
 'mostrevisions' => 'Articole cu cele mai multe revizuiri',
 'prefixindex' => 'Toate paginile cu prefix',
 'prefixindex-namespace' => 'Toate paginile cu prefix (spațiul de nume $1)',
@@ -2151,12 +2153,12 @@ Intrările <del>tăiate</del> au fost rezolvate.',
 'newpages-username' => 'Nume de utilizator:',
 'ancientpages' => 'Cele mai vechi articole',
 'move' => 'Redenumire',
-'movethispage' => 'Mută această pagină',
+'movethispage' => 'Redenumește această pagină',
 'unusedimagestext' => 'Următoarele fișiere există dar nu sunt incluse în nicio altă pagină.
 Vă rugăm să aveți în vedere faptul că alte saituri web pot avea o legătură directă către acest URL și s-ar putea afla aici chiar dacă nu sunt în utlizare activă.',
 'unusedcategoriestext' => 'Următoarele categorii de pagini există și totuși nici un articol sau categorie nu le folosește.',
 'notargettitle' => 'Lipsă țintă',
-'notargettext' => 'Nu ai specificat nici o pagină sau un utilizator țintă pentru care să se efectueze această operațiune.',
+'notargettext' => 'Nu ați specificat nici o pagină sau un utilizator țintă pentru care să se efectueze această operațiune.',
 'nopagetitle' => 'Nu există pagina destinație',
 'nopagetext' => 'Pagina destinație specificată nu există.',
 'pager-newer-n' => '{{PLURAL:$1|1 mai nou|$1 mai noi}}',
@@ -2226,7 +2228,7 @@ Vedeți și [[Special:WantedCategories|categoriile dorite]].',
 'linksearch-ok' => 'Caută',
 'linksearch-text' => 'Pot fi folosite metacaractere precum „*.wikipedia.org”.
 Necesită cel puțin un domeniu de nivel superior, cum ar fi „*.org”.<br />
-Protocoale suportate: <tt>$1</tt> (nu adăugați niciunul dintre acestea în câmpul de căutare).',
+Protocoale suportate: <code>$1</code> (nu adăugați niciunul dintre acestea în câmpul de căutare).',
 'linksearch-line' => '$1 este legat de $2',
 'linksearch-error' => 'Metacaracterele pot să apară doar la începutul hostname-ului.',
 
@@ -2250,9 +2252,9 @@ Protocoale suportate: <tt>$1</tt> (nu adăugați niciunul dintre acestea în câ
 'newuserlogpagetext' => 'Acesta este jurnalul creărilor conturilor de utilizator.',
 
 # Special:ListGroupRights
-'listgrouprights' => 'Permisiunile grupurilor de utilizatori',
-'listgrouprights-summary' => 'Mai jos este afișată o listă a grupurilor de utilizatori definită în această wiki, împreună cu permisiunile de acces asociate.
-Pot exista [[{{MediaWiki:Listgrouprights-helppage}}|informații adiționale]] despre permisiunile individuale.',
+'listgrouprights' => 'Permisiuni grupuri de utilizatori',
+'listgrouprights-summary' => 'Mai jos se află o listă a grupurilor de utilizatori definită în aceast wiki, împreună cu permisiunile de acces asociate.
+Pot exista [[{{MediaWiki:Listgrouprights-helppage}}|informații suplimentare]] despre permisiuni individuale.',
 'listgrouprights-key' => '* <span class="listgrouprights-granted">Drept acordat</span>
 * <span class="listgrouprights-revoked">Drept revocat</span>',
 'listgrouprights-group' => 'Grup',
@@ -2272,9 +2274,11 @@ Pot exista [[{{MediaWiki:Listgrouprights-helppage}}|informații adiționale]] de
 'mailnologin' => 'Nu există adresă de trimitere',
 'mailnologintext' => 'Trebuie să fii [[Special:UserLogin|autentificat]] și să ai o adresă validă de e-mail în [[Special:Preferences|preferințe]] pentru a trimite e-mail altor utilizatori.',
 'emailuser' => 'Trimiteți un e-mail',
+'emailuser-title-target' => 'E-mail către {{GENDER:$1|acest utilizator|această utilizatoare}}',
+'emailuser-title-notarget' => 'E-mail către utilizator',
 'emailpage' => 'E-mail către utilizator',
-'emailpagetext' => 'Poți folosi formularul de mai jos pentru a trimite un e-mail acestui utilizator.
-Adresa de e-mail introdusă de tine în [[Special:Preferences|preferințele de utilizator]] va apărea ca adresa expeditorului e-mail-ului, deci destinatarul va putea să îți răspundă direct.',
+'emailpagetext' => 'Puteți folosi formularul de mai jos pentru a trimite un e-mail acestui utilizator.
+Adresa de e-mail specificată de dumneavoastră în [[Special:Preferences|preferințele de utilizator]] va apărea ca adresa expeditorului e-mailului; astfel, destinatarul va putea să vă răspundă direct.',
 'usermailererror' => 'Obiectul de mail a dat eroare:',
 'defemailsubject' => 'E-mail {{SITENAME}} de la utilizatorul „$1”',
 'usermaildisabled' => 'E-mail dezactivat',
@@ -2287,7 +2291,7 @@ Adresa de e-mail introdusă de tine în [[Special:Preferences|preferințele de u
 'emailtarget' => 'Introduceți numele de utilizator al destinatarului',
 'emailusername' => 'Nume de utilizator:',
 'emailusernamesubmit' => 'Trimite',
-'email-legend' => 'Trimite e-mail altui utilizator de la {{SITENAME}}',
+'email-legend' => 'Trimitere e-mail către alt utilizator de la {{SITENAME}}',
 'emailfrom' => 'De la:',
 'emailto' => 'Către:',
 'emailsubject' => 'Subiect:',
@@ -2406,11 +2410,11 @@ Accesați $2 pentru o listă cu elementele recent șterse.',
 ** Violarea drepturilor de autor
 ** Vandalism',
 'delete-edit-reasonlist' => 'Modifică motivele ștergerii',
-'delete-toobig' => 'Această pagină are un istoric al modificărilor mare, mai mult de $1 {{PLURAL:$1|revizie|revizii}}.
-Ştergerea unei astfel de pagini a fost restricționată pentru a preveni apariția unor erori în {{SITENAME}}.',
-'delete-warning-toobig' => 'Această pagină are un istoric al modificărilor mult prea mare, mai mult de $1 {{PLURAL:$1|revizie|revizii}}.
-Ştergere lui poate afecta baza de date a sitului {{SITENAME}};
-continuă cu atenție.',
+'delete-toobig' => 'Această pagină are un istoric al modificărilor important, cu mai mult de $1 {{PLURAL:$1|versiune|versiuni|de versiuni}}.
+Ștergerea unei astfel de pagini a fost restricționată pentru a preveni apariția unor erori în {{SITENAME}}.',
+'delete-warning-toobig' => 'Această pagină are un istoric al modificărilor mult prea mare, cu mai mult de $1 {{PLURAL:$1|versiune|versiuni|de versiuni}}.
+Ștergerea sa poate afecta baza de date a sitului {{SITENAME}};
+acționați cu precauție.',
 
 # Rollback
 'rollback' => 'Editări de revenire',
@@ -2461,7 +2465,7 @@ Iată configurația curentă a paginii '''$1''':",
 Aici sunt setările curente pentru pagina '''$1''':",
 'protect-cascadeon' => 'Această pagină este protejată deoarece este inclusă în {{PLURAL:$1|următoarea pagină, ce are|următoarele pagini ce au}} activată protejarea la modificare în cascadă.
 Puteți schimba nivelul de protejare al acestei pagini, dar asta nu va afecta protecția în cascadă.',
-'protect-default' => 'Permite toți utilizatorii',
+'protect-default' => 'Permis pentru toți utilizatorii',
 'protect-fallback' => 'Cere permisiunea "$1"',
 'protect-level-autoconfirmed' => 'Blochează utilizatorii noi și neînregistrați',
 'protect-level-sysop' => 'Numai administratorii',
@@ -2491,9 +2495,9 @@ Puteți schimba nivelul de protejare al acestei pagini, dar asta nu va afecta pr
 
 # Restrictions (nouns)
 'restriction-edit' => 'Modificare',
-'restriction-move' => 'Mută',
-'restriction-create' => 'Creează',
-'restriction-upload' => 'Încarcă',
+'restriction-move' => 'Redenumire',
+'restriction-create' => 'Creare',
+'restriction-upload' => 'Încărcare',
 
 # Restriction levels
 'restriction-level-sysop' => 'protejat complet',
@@ -2511,22 +2515,22 @@ Puteți schimba nivelul de protejare al acestei pagini, dar asta nu va afecta pr
 Pentru a realiza o recuperare selectivă bifați versiunile pe care doriți să le recuperați și apăsați butonul '''''{{int:undeletebtn}}'''''.",
 'undeleterevisions' => '$1 {{PLURAL:$1|versiune arhivată|versiuni arhivate|de versiuni arhivate}}',
 'undeletehistory' => 'Dacă recuperați pagina, toate versiunile asociate vor fi adăugate retroactiv în istorie. Dacă o pagină nouă cu același nume a fost creată de la momentul ștergerii acesteia, versiunile recuperate vor apărea în istoria paginii, iar versiunea curentă a paginii nu va fi înlocuită automat de către versiunea recuperată.',
-'undeleterevdel' => 'Restaurarea unui revizii nu va fi efectuată dacă ea va apărea în capul listei de revizii parțial șterse.
-În acest caz, trebuie să debifezi sau să arăți (unhide) cea mai recentă versiune ștearsă.',
+'undeleterevdel' => "Restaurarea unui versiuni nu va fi efectuată dacă ea va apărea în capul listei de versiuni parțial șterse.
+În acest caz, trebuie să debifați sau să reafișați (''unhide'') cea mai recentă versiune ștearsă.",
 'undeletehistorynoadmin' => 'Acest articol a fost șters. Motivul ștergerii apare mai jos, alături de detaliile utilzatorilor care au editat această pagină înainte de ștergere. Textul prorpiu-zis al reviziilor șterse este disponibil doar administratorilor.',
-'undelete-revision' => 'Ştergere revizia $1 (din $4 $5) de către $3:',
-'undeleterevision-missing' => 'Revizie lipsă sau invalidă.
-S-ar putea ca această legătură să fie greșită, sau revizia a fost restaurată ori ștearsă din arhivă.',
-'undelete-nodiff' => 'Nu s-a găsit vreo revizie anterioară.',
+'undelete-revision' => 'Ștergere versiunea $1 (din $4 $5) de către $3:',
+'undeleterevision-missing' => 'Versiune lipsă sau invalidă.
+S-ar putea ca legătura să fie greșită, ori versiunea să fi fost restaurată sau ștearsă din arhivă.',
+'undelete-nodiff' => 'Nu s-a găsit vreo versiune anterioară.',
 'undeletebtn' => 'Recuperează',
 'undeletelink' => 'vizualizare/recuperare',
 'undeleteviewlink' => 'vezi',
 'undeletereset' => 'Resetează',
 'undeleteinvert' => 'Exclude spațiul',
 'undeletecomment' => 'Motiv:',
-'undeletedrevisions' => '{{PLURAL:$1|o revizie restaurată|$1 revizii restaurate|$1 de revizii restaurate}}',
-'undeletedrevisions-files' => '$1 {{PLURAL:$1|revizie|revizii|de revizii}} și $2 {{PLURAL:$2|fișier|fișiere|de fișiere}} recuperate',
-'undeletedfiles' => '$1 {{PLURAL:$1|revizie recuperată|revizii recuperate|de revizii recuperate}}',
+'undeletedrevisions' => '{{PLURAL:$1|o versiune restaurată|$1 versiuni restaurate|$1 de versiuni restaurate}}',
+'undeletedrevisions-files' => '{{PLURAL:$1|O versiune|$1 versiuni|$1 de versiuni}} și {{PLURAL:$2|un fișier|$2 fișiere|$2 de fișiere}} recuperate',
+'undeletedfiles' => '{{PLURAL:$1|O versiune recuperată|$1 versiuni recuperate|$1 de versiuni recuperate}}',
 'cannotundelete' => 'Recuperarea a eșuat; este posibil ca altcineva să fi recuperat pagina deja.',
 'undeletedpage' => "'''$1 a fost recuperat'''
 
@@ -2759,22 +2763,22 @@ Pentru a închide sau deschide baza de date, acesta trebuie să poată fi scris
 'lockedbyandtime' => '(de $1, pe $2, la $3 )',
 
 # Move page
-'move-page' => 'Mută $1',
-'move-page-legend' => 'Mută pagina',
-'movepagetext' => "Puteți folosi formularul de mai jos pentru a redenumi o pagină, mutându-i toată istoria sub noul nume.
+'move-page' => 'Redenumire $1',
+'move-page-legend' => 'Redenumire pagină',
+'movepagetext' => "Puteți folosi formularul de mai jos pentru a redenumi o pagină, mutându-i tot istoricul sub noul nume.
 Pagina veche va deveni o pagină de redirecționare către pagina nouă.
 Legăturile către pagina veche nu vor fi redirecționate către cea nouă;
 nu uitați să verificați dacă nu există redirecționări [[Special:DoubleRedirects|duble]] sau [[Special:BrokenRedirects|invalide]].
 
 Vă rugăm să rețineți că sunteți responsabil(ă) pentru a face legăturile vechi să rămână valide.
 
-Rețineți că pagina '''nu va fi mutată''' dacă există deja o pagină cu noul titlu, în afară de cazul că este complet goală sau este
-o redirecționare și în plus nu are nici o istorie de modificare.
-Cu alte cuvinte, veți putea muta înapoi o pagină pe care ați mutat-o greșit, dar nu veți putea suprascrie o pagină validă existentă prin mutarea alteia.
+Rețineți că pagina '''nu va fi redenumită''' dacă există deja o pagină cu noul titlu, în afara cazurilor în care cea din urmă nu are conținut sau este deja
+o redirecționare; în plus, aceasta nu trebuie să aibă un istoric de modificări.
+Cu alte cuvinte, veți putea redenumi înapoi o pagină pe care ați redenumit-o greșit, dar nu veți putea suprascrie o pagină validă existentă prin redenumirea alteia.
 
 '''ATENȚIE!'''
 Aceasta poate fi o schimbare drastică și neașteptată pentru o pagină populară;
-vă rugăm, să vă asigurați că înțelegeți toate consecințele înainte de a continua.",
+vă rugăm să vă asigurați că înțelegeți toate consecințele înainte de a continua.",
 'movepagetext-noredirectfixer' => "Completând formularul de mai jos veți redenumi o pagină, mutând tot istoricul la noul nume.
 Vechiul titlu va deveni o pagină de redirecționare către noul titlu.
 Fiți sigur că ați verificat lista redirecționărilor [[Special:DoubleRedirects|duble]] sau [[Special:BrokenRedirects|nefuncționale]].
@@ -2786,43 +2790,42 @@ Acest lucru înseamnă că veți putea redenumi la titlul inițial o pagină gre
 '''Atenție!'''
 Această acțiune poate determina o schimbare dramatică, neașteptată pentru o pagină cu trafic crescut;
 asigurați-vă că înțelegeți toate consecințele înainte de a continua.",
-'movepagetalktext' => "Pagina asociată de discuții, dacă există, va fi mutată
-automat odată cu aceasta '''afară de cazul că''':
-* Mutați pagina în altă secțiune a {{SITENAME}}
-* Există deja o pagină de discuții cu conținut (care nu este goală), sau
-* Nu confirmi căsuța de mai jos.
-
-În oricare din cazurile de mai sus va trebui să muți sau să unifici
-manual paginile de discuții, dacă dorești acest lucru.",
+'movepagetalktext' => "Pagina de discuții asociată, dacă există, va fi redenumită
+automat odată cu aceasta în '''afara următoarelor cazuri''':
+* există deja o pagină de discuții cu conținut (care nu este goală) sub noul nume, sau
+* nu bifați căsuța de mai jos.
+
+În oricare din cazurile de mai sus va trebui să redenumiți sau să unificați
+manual paginile de discuții, dacă doriți acest lucru.",
 'movearticle' => 'Pagina de redenumit:',
 'moveuserpage-warning' => "'''Atenție''': sunteți pe cale să redenumiți o pagină de utilizator. Vă rugăm să rețineți că singura redenumită va fi pagina, nu și utilizatorul.",
 'movenologin' => 'Nu sunteți autentificat{{GENDER:||ă}}.',
-'movenologintext' => 'Trebuie să fii un utilizator înregistrat și să te [[Special:UserLogin|autentifici]] pentru a muta o pagină.',
-'movenotallowed' => 'Nu ai permisiunea să muți pagini.',
-'movenotallowedfile' => 'Nu ai permisiunea de a muta fișiere.',
-'cant-move-user-page' => 'Nu ai permisiunea de a muta paginile utilizatorului (în afară de subpagini).',
-'cant-move-to-user-page' => 'Nu aveți permisiunea de a muta o pagină în pagina utilizatorului (cu excepția subpaginii utilizatorului).',
+'movenologintext' => 'Trebuie să fiți un utilizator înregistrat și [[Special:UserLogin|autentificat]] pentru a redenumi o pagină.',
+'movenotallowed' => 'Nu aveți permisiunea de a redenumi pagini.',
+'movenotallowedfile' => 'Nu aveți permisiunea de a redenumi fișiere.',
+'cant-move-user-page' => 'Nu aveți permisiunea de a redenumi pagini de utilizator (cu excepția subpaginilor).',
+'cant-move-to-user-page' => 'Nu aveți permisiunea de a redenumi o pagină într-o pagină de utilizator (cu excepția subpaginii utilizatorului).',
 'newtitle' => 'Titlul nou',
 'move-watch' => 'Urmărește această pagină',
-'movepagebtn' => 'Mută pagina',
-'pagemovedsub' => 'Pagina a fost mutată',
-'movepage-moved' => "'''Pagina „$1” a fost mutată la „$2”'''",
+'movepagebtn' => 'Redenumește pagina',
+'pagemovedsub' => 'Pagina a fost redenumită',
+'movepage-moved' => "'''Pagina „$1” a fost redenumită în „$2”'''",
 'movepage-moved-redirect' => 'O redirecționare a fost creată.',
 'movepage-moved-noredirect' => 'Crearea redirecționărilor a fost suprimată.',
 'articleexists' => 'O pagină cu același nume există deja, sau numele pe care l-ați ales este invalid. Sunteți rugat să alegeți un alt nume.',
-'cantmove-titleprotected' => 'Nu puteți muta o pagină la această locație, pentru că noul titlu a fost protejat la creare',
-'talkexists' => "'''Pagina în sine a fost mutată cu succes, dar pagina de discuții nu a putut fi mutată deoarece o alta deja există la noul titlu.
-Te rugăm să le unifici manual.'''",
-'movedto' => 'mutată la',
+'cantmove-titleprotected' => 'Nu puteți redenumi o pagină cu acest nume, pentru că noul titlu a fost protejat la creare.',
+'talkexists' => "'''Pagina în sine a fost redenumită cu succes, dar pagina de discuții nu a putut fi redenumită deoarece o alta deja există la noul titlu.
+Vă rugăm să le unificați manual.'''",
+'movedto' => 'redenumită în',
 'movetalk' => 'Redenumește pagina de discuții asociată',
-'move-subpages' => 'Mută subpaginile (până la $1)',
-'move-talk-subpages' => 'Mută subpaginile paginii de discuții (până la $1)',
+'move-subpages' => 'Redenumește subpaginile (până la $1)',
+'move-talk-subpages' => 'Redenumește subpaginile paginii de discuții (până la $1)',
 'movepage-page-exists' => 'Pagina $1 există deja și nu poate fi rescrisă automat.',
-'movepage-page-moved' => 'Pagina $1 a fost mutată la $2.',
-'movepage-page-unmoved' => 'Pagina $1 nu a putut fi mutată la $2.',
-'movepage-max-pages' => 'Maxim $1 {{PLURAL:$1|pagină a fost mutată|pagini au fost mutate}}, nicio altă pagină nu va mai fi mutată automat.',
-'movelogpage' => 'Jurnal mutări',
-'movelogpagetext' => 'Mai jos se află o listă cu paginile mutate.',
+'movepage-page-moved' => 'Pagina $1 a fost redenumită în $2.',
+'movepage-page-unmoved' => 'Pagina $1 nu a putut fi redenumită în $2.',
+'movepage-max-pages' => 'Maximul de $1 {{PLURAL:$1|pagină redenumită|pagini redenumite|de pagini redenumite}} a fost atins și nici o altă pagină nu va mai fi redenumită automat.',
+'movelogpage' => 'Jurnal redenumiri',
+'movelogpagetext' => 'Mai jos se află o listă cu paginile redenumite.',
 'movesubpage' => '{{PLURAL:$1|Subpagină|Subpagini}}',
 'movesubpagetext' => 'Această pagină are $1 {{PLURAL:$1|subpagină afișată|subpagini afișate}} mai jos.',
 'movenosubpage' => 'Această pagină nu are subpagini.',
@@ -2834,12 +2837,12 @@ Te rugăm să le unifici manual.'''",
 Pagina destinație „[[:$1]]” există deja. Doriți să o ștergeți pentru a face loc redenumirii?',
 'delete_and_move_confirm' => 'Da, șterge pagina.',
 'delete_and_move_reason' => 'Șters pentru a face loc redenumirii paginii „[[$1]]”',
-'selfmove' => 'Titlurile sursei și ale destinației sunt aceleași; nu puteți muta o pagină peste ea însăși.',
+'selfmove' => 'Titlul sursei și al destinației este aceleași; nu puteți redenumi o pagină peste ea însăși.',
 'immobile-source-namespace' => 'Nu se pot redenumi paginile din spațiul de nume „$1”',
 'immobile-target-namespace' => 'Nu se pot redenumi paginile în spațiul de nume „$1”',
 'immobile-target-namespace-iw' => 'Legătura interwiki nu este o țintă validă pentru redenumire.',
-'immobile-source-page' => 'Această pagină nu poate fi mutată.',
-'immobile-target-page' => 'Nu poate fi mutat la destinația cu acest titlu.',
+'immobile-source-page' => 'Această pagină nu poate fi redenumită.',
+'immobile-target-page' => 'Imposibil de redenumit pagina la acel titlu.',
 'imagenocrossnamespace' => 'Fișierul nu poate fi mutat la un spațiu de nume care nu este destinat fișierelor',
 'nonfile-cannot-move-to-file' => 'Entitatea (care nu este un fișier) nu poate fi mutată în spațiul de nume destinat fișierelor',
 'imagetypemismatch' => 'Extensia nouă a fișierului nu se potrivește cu tipul acestuia',
@@ -2916,6 +2919,7 @@ Vă rugăm să vizitați [//www.mediawiki.org/wiki/Localisation MediaWiki Locali
 'import-interwiki-templates' => 'Includeți toate formatele',
 'import-interwiki-submit' => 'Importă',
 'import-interwiki-namespace' => 'Transferă către spațiul de nume:',
+'import-interwiki-rootpage' => 'Pagina rădăcină de destinație (opțional):',
 'import-upload-filename' => 'Nume fișier:',
 'import-comment' => 'Comentariu:',
 'importtext' => 'Vă rugăm să exportați fișierul din wikiul sursă folosind [[Special:Export|utilitarul de exportare]].
@@ -2951,6 +2955,9 @@ Un dosar temporar lipsește.',
 'import-error-interwiki' => 'Pagina „$1” nu poate fi importată deoarece numele acesteia este rezervat pentru legături externe (interwiki).',
 'import-error-special' => 'Pagina „$1” nu poate fi importată deoarece aparține unui spațiu de nume special care nu admite pagini.',
 'import-error-invalid' => 'Pagina „$1” nu poate fi importată deoarece numele acesteia este invalid.',
+'import-options-wrong' => '{{PLURAL:$2|Opțiune eronată|Opțiuni eronate}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Pagina rădăcină furnizată este un titlu nevalid.',
+'import-rootpage-nosubpage' => 'Spațiul de nume „$1” al paginii rădăcină nu permite subpagini.',
 
 # Import log
 'importlogpage' => 'Log import',
@@ -3025,9 +3032,9 @@ Un dosar temporar lipsește.',
 'tooltip-ca-nstab-template' => 'Vezi formatul',
 'tooltip-ca-nstab-help' => 'Vezi pagina de ajutor',
 'tooltip-ca-nstab-category' => 'Vezi categoria',
-'tooltip-minoredit' => 'Marcați această modificare ca fiind minoră',
+'tooltip-minoredit' => 'Marchează această modificare ca fiind minoră',
 'tooltip-save' => 'Salvați modificările dumneavoastră',
-'tooltip-preview' => 'Previzualizarea modificărilor dvs., folosiți-o vă rugăm înainte de a salva!',
+'tooltip-preview' => 'Vă rugăm să vă previzualizați modificările înainte de a le salva!',
 'tooltip-diff' => 'Arată-mi modificările efectuate asupra textului',
 'tooltip-compareselectedversions' => 'Vezi diferențele între cele două versiuni selectate de pe această pagină.',
 'tooltip-watch' => 'Adaugă această pagină la lista mea de pagini urmărite',
@@ -3080,16 +3087,34 @@ Permite adăugarea unui motiv în descrierea modificărilor',
 
 # Info page
 'pageinfo-title' => 'Informații pentru „$1”',
-'pageinfo-header-edits' => 'Modificări',
-'pageinfo-header-watchlist' => 'Listă de urmărire',
-'pageinfo-header-views' => 'Vizualizări',
-'pageinfo-subjectpage' => 'Pagină',
-'pageinfo-talkpage' => 'Pagină de discuții',
-'pageinfo-watchers' => 'Număr de utilizatori care urmăresc pagina',
-'pageinfo-edits' => 'Număr de modificări',
-'pageinfo-authors' => 'Număr de autori distincți',
+'pageinfo-header-basic' => 'Informații de bază',
+'pageinfo-header-edits' => 'Istoric modificări',
+'pageinfo-header-restrictions' => 'Protecție pagină',
+'pageinfo-header-properties' => 'Proprietăți pagină',
+'pageinfo-display-title' => 'Titlu afișat',
+'pageinfo-default-sort' => 'Cheie de sortare implicită',
+'pageinfo-length' => 'Lungimea paginii (în octeți)',
+'pageinfo-article-id' => 'ID pagină',
+'pageinfo-robot-policy' => 'Statut pentru motorul de căutare',
+'pageinfo-robot-index' => 'Indexabilă',
+'pageinfo-robot-noindex' => 'Neindexabilă',
 'pageinfo-views' => 'Număr de vizualizări',
-'pageinfo-viewsperedit' => 'Vizualizări per modificare',
+'pageinfo-watchers' => 'Număr de utilizatori care urmăresc pagina',
+'pageinfo-redirects-name' => 'Redirecționări către această pagină',
+'pageinfo-subpages-name' => 'Subpagini ale acestei pagini',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|redirecționare|redirecționări|de redirecționări}}; $3 {{PLURAL:$3|non-redirecționare|non-redirecționări|de non-redirecționări}})',
+'pageinfo-firstuser' => 'Creatorul paginii',
+'pageinfo-firsttime' => 'Data creării paginii',
+'pageinfo-lastuser' => 'Cel mai recent editor',
+'pageinfo-lasttime' => 'Data ultimei modificări',
+'pageinfo-edits' => 'Număr total de modificări',
+'pageinfo-authors' => 'Număr total de autori distincți',
+'pageinfo-recent-edits' => 'Număr de modificări recente (în ultima perioadă de $1)',
+'pageinfo-recent-authors' => 'Număr de autori distincți recenți',
+'pageinfo-restriction' => 'Protecție pagină (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Cuvânt magic|Cuvinte magice}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Categorie ascunsă|Categorii ascunse}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Format inclus|Formate incluse}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Clasic',
@@ -3144,7 +3169,8 @@ Executându-l, sistemul dvs. poate fi compromis.",
 'file-info-size' => '$1 × $2 pixeli, mărime fișier: $3, tip MIME: $4',
 'file-info-size-pages' => '$1 × $2 pixeli, mărime fișier: $3, tip MIME: $4, $5 {{PLURAL:$5|pagină|pagini}}',
 'file-nohires' => 'Rezoluții mai mari nu sunt disponibile.',
-'svg-long-desc' => 'fișier SVG, cu dimensiunea nominală de $1 × $2 pixeli, mărime fișier: $3',
+'svg-long-desc' => 'Fișier SVG, cu dimensiunea nominală de $1 × $2 pixeli, mărime fișier: $3',
+'svg-long-desc-animated' => 'Fișier SVG animat, cu dimensiunea nominală de $1 × $2 pixeli, mărime fișier: $3',
 'show-big-image' => 'Rezoluție maximă',
 'show-big-image-preview' => 'Mărimea acestei previzualizări: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Altă rezoluție|Alte rezoluții}}: $1.',
@@ -3154,6 +3180,8 @@ Executându-l, sistemul dvs. poate fi compromis.",
 'file-info-png-looped' => 'în buclă',
 'file-info-png-repeat' => 'redat {{PLURAL:$1|o dată|de $1 ori}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|cadru|cadre}}',
+'file-no-thumb-animation' => "'''Notă: Din cauza unor limitări de ordin tehnic, miniaturile acestui fișier nu vor fi animate.'''",
+'file-no-thumb-animation-gif' => "'''Notă: Din cauza unor limitări de ordin tehnic, miniaturile fișierelor GIF de înaltă rezoluție, precum acesta, nu vor fi animate.'''",
 
 # Special:NewFiles
 'newimages' => 'Galeria de imagini noi',
index 4421f1d..466631f 100644 (file)
@@ -153,6 +153,7 @@ $messages = array(
 'index-category' => 'Pàggene indicizzate',
 'noindex-category' => 'Pàggene none indicizzate',
 'broken-file-category' => 'Pàggene cu collegaminde a le file scuasciate',
+'categoryviewer-pagedlinks' => '($1) ($2)',
 
 'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
 
@@ -356,9 +357,9 @@ Pe 'na liste de le pàggene speciele cirche aqquà [[Special:SpecialPages|{{int:
 'dberrortext' => "Ha assute n'errore de sindassi de 'na inderrogazione sus a 'u database.
 Quiste pò indicà 'nu bochere jndr'à 'u software.
 L'urteme tendative de inderrogazione sus a 'u database ha state:
-<blockquote><tt>\$1</tt></blockquote>
-cu 'a funzione \"<tt>\$2</tt>\".
-'U database ha returnate l'errore \"<tt>\$3: \$4</tt>\".",
+<blockquote><code>\$1</code></blockquote>
+cu 'a funzione \"<code>\$2</code>\".
+'U database ha returnate l'errore \"<samp>\$3: \$4</samp>\".",
 'dberrortextcl' => 'A assute \'n\'errore de sindasse sus a \'n\'inderrogazione d\'u database.
 L\'urteme tendative de inderrogazione sus a \'u database ha state:
 "$1"
@@ -721,12 +722,11 @@ Pe piacere, condrolle ce tu vuè cu ccreje/cange sta pàgene.',
 'userpage-userdoesnotexist-view' => '\'U cunde utende "$1" non g\'è reggistrate.',
 'blocked-notice-logextract' => "Stu utende jè correndemende bloccate.<br />
 L'urteme archivije de le bloccaminde se iacche aqquà sotte pe referimende:",
-'clearyourcache' => "''Vide Bbuene - Apprisse 'a reggistrazione, tu puè zumbà 'a cache d'u browser tune pe vedè le cangiaminde.'''
-*'''Mozilla / Firefox / Safari:''' cazze 'u ''Shift'' e condemboraneamende cazze 'u buttone ''Aggiorna'', o cazze 'nzieme ''Ctrl-F5'' o ''Ctrl-R'' (''⌘-R'' sus a 'nu Mac);
+'clearyourcache' => "'''Vide Bbuene''' - Apprisse 'a reggistrazione, tu puè zumbà 'a cache d'u browser tune pe vedè le cangiaminde.
+*'''Firefox / Safari:''' cazze 'u ''Shift'' e condemboraneamende cazze 'u buttone ''Aggiorna'', o cazze 'nzieme ''Ctrl-F5'' o ''Ctrl-R'' (''⌘-R'' sus a 'nu Mac);
 *'''Google Chrome:''' cazze ''Ctrl-Shift-R'' (''⌘-Shift-R'' sus a 'nu Mac)
 *'''Internet Explorer:''' cazze ''Ctrl'' e condemboraneamende cazze ''Aggiorna,'' o cazze ''Ctrl-F5''.
-*'''Konqueror: '''cazze ''Aggiorna'' o cazze ''F5'';
-*'''Opera:''' pulizze 'a cache da ''Tools → Preferences'' (in inglese) (Struminde - Preferenze in tagliàne);",
+*'''Opera:''' pulizze 'a cache da ''Tools → Preferences'' (in inglese) (Struminde - Preferenze in tarandine);",
 'usercssyoucanpreview' => "'''Conziglie:''' Ause 'u buttone \"{{int:showpreview}}\" pe condrollà 'u CSS nuève apprime de reggistrà.",
 'userjsyoucanpreview' => "'''Conziglie:''' Ause 'u buttone \"{{int:showpreview}}\" pe condrollà 'u JavaScript nuève apprime de reggistrà.",
 'usercsspreview' => "'''Arrecuerdete ca tu ste vide sulamende in andeprime 'u CSS tue.'''
@@ -1021,6 +1021,7 @@ Vide Bbuene ca ausanne le collegaminde de navigazzione sta culonne avène azzera
 'mergehistory-comment' => "Squagghiete [[:$1]] jndr'à [[:$2]]: $3",
 'mergehistory-same-destination' => 'Le pàggene sorgende e de destinazione non ge ponne essere le stesse',
 'mergehistory-reason' => 'Mutive:',
+'mergehistory-revisionrow' => '$1 ($2) $3 . . $4 $5 $6',
 
 # Merge log
 'mergelog' => 'Archivije de le scuagghiaminde',
@@ -1463,9 +1464,9 @@ L'archivije de de scangellaminde e de le spustaminde pe sta pàgene le puè acch
 Pe vedè o cercà le file carecate precedendemende veje a 'a [[Special:FileList|liste de le file carecate]], le carecaminde sonde pure reggistrate jndr'à l'[[Special:Log/upload|archivije de le carecaminde]], le scangellazziune jndr'à l'[[Special:Log/delete|archivije de le scangellaminde]].
 
 Pe ingludere 'nu file jndr'à 'na pàgene, ause 'u collegamende jndr'à une de le forme seguende:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' pe ausà 'a versiona comblete d'u file
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' pe ausà 'nu file cu 'a dimenziona massime de 200 pixel jndr'à 'na scatele ca se iacchie sus a 'u margine sinistre cu 'u teste 'alt text' cumme didascalìe.
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' pe appundà direttamende a 'u file senze ca face vedè 'u file",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' pe ausà 'a versiona comblete d'u file
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' pe ausà 'nu file cu 'a dimenziona massime de 200 pixel jndr'à 'na scatele ca se iacchie sus a 'u margine sinistre cu 'u teste 'alt text' cumme didascalìe.
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' pe appundà direttamende a 'u file senze ca face vedè 'u file",
 'upload-permitted' => 'Tipe de file permesse: $1.',
 'upload-preferred' => 'Tipe de file preferite: $1.',
 'upload-prohibited' => 'Tipe de file proibbite: $1.',
@@ -1513,20 +1514,20 @@ Stu file jè $2.",
 Pò essere ca è scritte male 'u nome d'u file e n'à carecate 'n'otre.
 Pe piacere condrolle ce tu avveramende vuè cu careche stu file.",
 'windows-nonascii-filename' => 'Sta Uicchi non ge supporte le nome de le file cu le carattere speciale.',
-'fileexists' => "'Nu file cu stu nome esiste già, pe piacere verifiche '''<tt>[[:$1]]</tt>''' ce tu non ge sì secure no 'u sce cangianne.
+'fileexists' => "'Nu file cu stu nome esiste già, pe piacere verifiche <strong>[[:$1]]</strong> ce tu non ge sì secure no 'u sce cangianne.
 [[$1|thumb]]",
-'filepageexists' => "'A pàgene de descrizione pe stu file ha state già ccreiate 'u '''<tt>[[:$1]]</tt>''', ma nisciune file cu stu nome osce a die esiste.
+'filepageexists' => "'A pàgene de descrizione pe stu file ha state già ccreiate 'u <strong>[[:$1]]</strong>, ma nisciune file cu stu nome osce a die esiste.
 'U riepileghe ca tu è mise non ge iesse sus 'a pàgene de descrizione.
 Pe fà assè 'u riepileghe tu tìne abbesogne de cangiarle a mane.
 [[$1|thumb]]",
 'fileexists-extension' => "'Nu file cu 'nu nome simile esiste già: [[$2|thumb]]
-* Nome d'u file ca vuè cu careche: '''<tt>[[:$1]]</tt>'''
-* Nome d'u file ca già esiste: '''<tt>[[:$2]]</tt>'''
+* Nome d'u file ca vuè cu careche: <strong>[[:$1]]</strong>
+* Nome d'u file ca già esiste: <strong>[[:$2]]</strong>
 Pe piacere vide ce scacchie 'nu nome differende.",
 'fileexists-thumbnail-yes' => "'U file pare ca jè 'n'immaggine de dimenzione ridotte ''(miniature)''. [[$1|thumb]]
-Pe piacere condrolle 'u file '''<tt>[[:$1]]</tt>'''.
+Pe piacere condrolle 'u file <strong>[[:$1]]</strong>.
 Ce 'u file condrollete jè d'a stesse dimenzione de quedda originale allore non ge stè abbesogne de carecà 'na miniatura de cchiù.",
-'file-thumbnail-no' => "'U nome d'u file accumenze pe '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "'U nome d'u file accumenze pe <strong>$1</strong>.
 Pare ca jè 'n'immaggine piccenne ''(miniature)''.
 Ce tu tìne sulamende st'immaggine da carecà apposte, ce nò vide ce cange 'u file.",
 'fileexists-forbidden' => "'U file cu stu nome già esiste e non ge pò essere sovrascritte.<br />
@@ -1795,7 +1796,7 @@ Pò essere ca tu vuè cangià 'a descrizione de jidde [$2 pàgene de descrizione
 # MIME search
 'mimesearch' => "Ricerca jndr'à 'u MIME",
 'mimesearch-summary' => "Sta pàgene abbilitesce 'u filtre sus a le file pu tipe de MIME.
-Input: contenttype/subtype, pe esembie <tt>image/jpeg</tt>.",
+Input: contenttype/subtype, pe esembie <code>image/jpeg</code>.",
 'mimetype' => 'Tipe de MIME:',
 'download' => 'scareche',
 
@@ -1870,6 +1871,7 @@ Mò s'avène redirette a [[$2]].",
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}',
 'ncategories' => '$1 {{PLURAL:$1|categorije|categorije}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interuicchi|interuicchi}}',
 'nlinks' => '$1 {{PLURAL:$1|collegamende|collegaminde}}',
 'nmembers' => '$1 {{PLURAL:$1|membre|membre}}',
 'nrevisions' => '$1 {{PLURAL:$1|revisione|revisiune}}',
@@ -1898,6 +1900,7 @@ Mò s'avène redirette a [[$2]].",
 'mostlinkedtemplates' => 'Template cchiù appundete',
 'mostcategories' => "Pàggene cu 'nu sacche de categorije",
 'mostimages' => 'Fail cchiù appundete',
+'mostinterwikis' => 'Pàggene cu cchiù interuicchi de tutte',
 'mostrevisions' => 'Pàggene cchiù cangete',
 'prefixindex' => "Tutte le pàggene cu 'u prefisse",
 'prefixindex-namespace' => "Tutte le pàggene cu 'u prefisse ($1 namespace)",
@@ -1999,7 +2002,7 @@ Vide pure [[Special:WantedCategories|Categorije cercate]].",
 'linksearch-ok' => 'Cirche',
 'linksearch-text' => 'Le wildcard cumme a "*.wikipedia.org" ponne essere ausate.<br />
 Onne abbesogne almede de \'nu dominie de levèlle ierte, pe esembie "*.org". <br />
-Protocolle supportate: <tt>$1</tt> (no sce aggiungenne nisciune de chiste jndr\'à recerca toje).',
+Protocolle supportate: <code>$1</code> (no sce aggiungenne nisciune de chiste jndr\'à recerca toje).',
 'linksearch-line' => '$1 jè pundete da $2',
 'linksearch-error' => "Le wildcard ponne essere ausate sulamende a l'inzie de l'hostname.",
 
@@ -2032,8 +2035,8 @@ Ponne stà [[{{MediaWiki:Listgrouprights-helppage}}|'mbormaziune de cchiù]] sus
 'listgrouprights-rights' => 'Diritte',
 'listgrouprights-helppage' => 'Help:Deritte de le gruppe',
 'listgrouprights-members' => '(liste de le membre)',
-'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <tt>($2)</tt></span>',
-'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <tt>($2)</tt></span>',
+'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <code>($2)</code></span>',
+'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <code>($2)</code></span>',
 'listgrouprights-addgroup' => 'Puè aggiungere {{PLURAL:$2|gruppe|gruppe}}: $1',
 'listgrouprights-removegroup' => 'Puè scangellà {{PLURAL:$2|gruppe|gruppe}}: $1',
 'listgrouprights-addgroup-all' => 'Puè aggiungere tutte le gruppe',
@@ -2047,6 +2050,8 @@ Ponne stà [[{{MediaWiki:Listgrouprights-helppage}}|'mbormaziune de cchiù]] sus
 'mailnologin' => 'Nisciune indirizze de invie',
 'mailnologintext' => "Tu a essere [[Special:UserLogin|collegate]] e a avè 'n'indirizze email valide jndr'à le [[Special:Preferences|preferenze]] tue pe mannà 'na mail a otre utinde.",
 'emailuser' => "Manne n'email a stu utende",
+'emailuser-title-target' => "Manne n'email a quiste {{GENDER:$1|utende}}",
+'emailuser-title-notarget' => "E-mail de l'utende",
 'emailpage' => "E-mail de l'utende",
 'emailpagetext' => "Tu puè ausà 'a schermate aqquà sotte pe mannà 'n'email a stu utende.
 L'indirizze e-mail ca tu è 'nzerite jndr'à le [[Special:Preferences|preferenze tue]] iesse jndr'à 'u cambe \"Da\" de l'e-mail, accussìa ce riceve 'a mail sape a ce addà responnere.",
@@ -2337,6 +2342,7 @@ Pò essere ca già ha state scangellate.",
 $1",
 'undelete-show-file-confirm' => 'Sì secure ca tu vuè ccu vide \'na revisiona scangellate d\'u file "<nowiki>$1</nowiki>" d\'u $2 a le $3?',
 'undelete-show-file-submit' => 'Sine',
+'undelete-revisionrow' => '$1 $2 ($3) $4 . . $5 $6 $7',
 
 # Namespace form on various pages
 'namespace' => 'Namespace:',
@@ -2740,6 +2746,7 @@ Reggistrele sus a 'u combiuter tune e carechele aqquà.",
 'import-error-interwiki' => 'Pagene "$1" non g\'ha state \'mbortate purcé \'u nome sue jè riservate pe collegaminde esterne (interuicchi).',
 'import-error-special' => "'A pagena \"\$1\" non g'ha state 'mbortate purcé apponde a 'nu namespace speciale ca non g'è permesse a le pàggene normale.",
 'import-error-invalid' => "'A pàgene \"\$1\" non g'ha state 'mbortate purcé 'u nome jè invalide.",
+'import-options-wrong' => '{{PLURAL:$2|opzione|opziune}} sbagliate: <nowiki>$1</nowiki>',
 
 # Import log
 'importlogpage' => "Archivie de le 'mbortaziune",
@@ -2893,16 +2900,26 @@ Stu fatte ha state causate da 'nu collegamende a 'nu site esterne ca appartene a
 
 # Info page
 'pageinfo-title' => '\'Mbormaziune pe "$1"',
-'pageinfo-header-edits' => 'Cangiaminde',
-'pageinfo-header-watchlist' => 'Pàggene condrollate',
-'pageinfo-header-views' => 'Visite',
-'pageinfo-subjectpage' => 'Pàgene',
-'pageinfo-talkpage' => "Pàgene de le 'ngazzaminde",
-'pageinfo-watchers' => 'Numere de visitature',
-'pageinfo-edits' => 'Numere de cangiaminde',
-'pageinfo-authors' => 'Numere de autore diverse',
+'pageinfo-header-basic' => "'Mbormaziune 'nderra-'nderre",
+'pageinfo-header-edits' => 'Cunde de le cangiaminde',
+'pageinfo-header-properties' => "Probbietà d'a pàgene",
+'pageinfo-display-title' => "Fà vedè 'u titole",
+'pageinfo-article-id' => "ID d'a pàgene",
+'pageinfo-robot-policy' => "State d'u motore de ricerche",
+'pageinfo-robot-index' => 'Indicizzabbele',
+'pageinfo-robot-noindex' => 'None indicizzabbele',
 'pageinfo-views' => 'Numere de visite',
-'pageinfo-viewsperedit' => 'Visite pe cangiaminde',
+'pageinfo-watchers' => "Numere de visitature d'a pàgene",
+'pageinfo-redirects-name' => 'Redirezionaminde a sta pàgene',
+'pageinfo-redirects-value' => '$1',
+'pageinfo-subpages-name' => 'Sottopàggene de sta pàgene',
+'pageinfo-firstuser' => "Ccrejatore d'a pàgene",
+'pageinfo-firsttime' => "Date d'a ccrejazione d'a pàgene",
+'pageinfo-lastuser' => 'Urteme cangiatore',
+'pageinfo-lasttime' => "Darte de l'urteme cangiamende",
+'pageinfo-edits' => 'Numere totale de cangiaminde',
+'pageinfo-authors' => 'Numere Totale de autore diverse',
+'pageinfo-magic-words' => '{{PLURAL:$1|Parole|Parole}} maggiche ($1)',
 
 # Skin names
 'skinname-standard' => 'Classeche',
@@ -3618,6 +3635,7 @@ Pe piacere conferme ca tu vuè avveramende reccrejà sta pàgene.",
 'ellipsis' => '...',
 'percent' => '$1%',
 'parentheses' => '($1)',
+'brackets' => '[$1]',
 
 # Multipage image navigation
 'imgmultipageprev' => '← pàgena precedende',
@@ -3648,6 +3666,22 @@ Pe piacere conferme ca tu vuè avveramende reccrejà sta pàgene.",
 'size-kilobytes' => '$1 KB',
 'size-megabytes' => '$1 MB',
 'size-gigabytes' => '$1 GB',
+'size-terabytes' => '$1 TB',
+'size-petabytes' => '$1 PB',
+'size-exabytes' => '$1 EB',
+'size-zetabytes' => '$1 ZB',
+'size-yottabytes' => '$1 YB',
+
+# Bitrate units
+'bitrate-bits' => '$1bps',
+'bitrate-kilobits' => '$1kbps',
+'bitrate-megabits' => '$1Mbps',
+'bitrate-gigabits' => '$1Gbps',
+'bitrate-terabits' => '$1Tbps',
+'bitrate-petabits' => '$1Pbps',
+'bitrate-exabits' => '$1Ebps',
+'bitrate-zetabits' => '$1Zbps',
+'bitrate-yottabits' => '$1Ybps',
 
 # Live preview
 'livepreview-loading' => 'Stoche a careche…',
index 66522a0..bdd2d60 100644 (file)
@@ -59,6 +59,7 @@
  * @author Rave
  * @author Rubin
  * @author Sagan
+ * @author Shirayuki
  * @author Sk
  * @author TarzanASG
  * @author Temuri rajavi
@@ -658,6 +659,10 @@ $1',
 'youhavenewmessages' => 'Вы получили $1 ($2).',
 'newmessageslink' => 'новые сообщения',
 'newmessagesdifflink' => 'последнее изменение',
+'youhavenewmessagesfromusers' => 'Вы получили $1 от {{PLURAL:$3|$3 участника|$3 участников|$3 участников}} ($2).',
+'youhavenewmessagesmanyusers' => 'Вы получили $1 от множества пользователей ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|новое сообщение|новые сообщения}}',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|последнее изменение|последние изменения}}',
 'youhavenewmessagesmulti' => 'Вы получили новые сообщения на $1',
 'editsection' => 'править',
 'editold' => 'править',
@@ -1064,6 +1069,10 @@ $2
 'noarticletext-nopermission' => 'В настоящее время на этой странице нет текста.
 Вы можете [[Special:Search/{{PAGENAME}}|найти упоминание данного названия]] в других статьях,
 или <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} найти соответствующие записи журналов].</span>',
+'missing-revision' => 'Версия $1 страницы «{{PAGENAME}}» не существует.
+
+Это обычно бывает, если последовать по устаревшей ссылке на страницу, которая была удалена.
+Подробности могут быть в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].',
 'userpage-userdoesnotexist' => 'Учётной записи «<nowiki>$1</nowiki>» не существует. Убедитесь, что вы действительно желаете создать или изменить эту страницу.',
 'userpage-userdoesnotexist-view' => 'Не зарегистрировано учётной записи «$1».',
 'blocked-notice-logextract' => 'Этот участник в данный момент заблокирован.
@@ -1072,7 +1081,6 @@ $2
 * '''Firefox / Safari:''' Удерживая клавишу ''Shift'', нажмите на панели инструментов ''Обновить'', или нажмите ''Ctrl-F5'' или ''Ctrl-R'' (''⌘-R'' на Mac)
 * '''Google Chrome:''' Нажмите ''Ctrl-Shift-R'' (''⌘-Shift-R'' на Mac)
 * '''Internet Explorer:''' Удерживая ''Ctrl'' нажмите ''Обновить'', или нажмите ''Ctrl-F5''
-* '''Konqueror:''' Нажмите ''Обновить'' или ''F5''
 * '''Opera:''' Выберите очистку кеша в меню ''Инструменты → Настройки''",
 'usercssyoucanpreview' => "'''Подсказка.''' Нажмите кнопку «{{int:showpreview}}», чтобы проверить свой новый CSS-файл перед сохранением.",
 'userjsyoucanpreview' => "'''Подсказка.''' Нажмите кнопку «{{int:showpreview}}», чтобы проверить свой новый JS-файл перед сохранением.",
@@ -1192,6 +1200,7 @@ $2
 'expansion-depth-exceeded-warning' => 'На странице превышен предел вложенности',
 'parser-unstrip-loop-warning' => 'Обнаружен незакрытый pre',
 'parser-unstrip-recursion-limit' => 'Превышен предел рекурсии ($1)',
+'converter-manual-rule-error' => 'Ошибка в ручном правиле преобразования языка',
 
 # "Undo" feature
 'undo-success' => 'Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.',
@@ -1377,6 +1386,10 @@ $1",
 'editundo' => 'отменить',
 'diff-multi' => '({{PLURAL:$1|не показана $1 промежуточная версия|не показаны $1 промежуточные версии|не показаны $1 промежуточных версий}} {{PLURAL:$2|$2 участника|$2 участников}})',
 'diff-multi-manyusers' => '(не {{PLURAL:$1|показана $1 промежуточная версия|показаны $1 промежуточные версии|показаны $1 промежуточных версий}}, сделанные более чем $2 {{PLURAL:$2|участником|участниками}})',
+'difference-missing-revision' => '{{PLURAL:$2|$2 версия|$2 версии|$2 версий}} для этого сравнения ($1) {{PLURAL:$2|не обнаружена|не обнаружены}}.
+
+Это обычно бывает, если последовать по устаревшей ссылке на страницу, которая была удалена.
+Подробности могут быть в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].',
 
 # Search results
 'searchresults' => 'Результаты поиска',
@@ -1791,9 +1804,9 @@ $1",
 Чтобы просмотреть ранее загруженные файлы, обратитесь к [[Special:FileList|списку загруженных файлов]]. Загрузка файлов также записывается в [[Special:Log/upload|журнал загрузок]], данные об удалённых файлах можно найти в [[Special:Log/delete|журнале удалений]].
 
 Для включения файла в статью вы можете использовать строки вида:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' для вставки полной версии файла;
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|описание]]</nowiki></tt>''' для вставки слева от текста уменьшенной до 200 пикселей по ширине версии файла с выводом под ним указанного описания;
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' для вставки ссылки на файл, без отображения его содержимого на странице.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' для вставки полной версии файла;
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|описание]]</nowiki></code>''' для вставки слева от текста уменьшенной до 200 пикселей по ширине версии файла с выводом под ним указанного описания;
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' для вставки ссылки на файл, без отображения его содержимого на странице.",
 'upload-permitted' => 'Разрешённые типы файлов: $1.',
 'upload-preferred' => 'Предпочтительные типы файлов: $1.',
 'upload-prohibited' => 'Запрещённые типы файлов: $1.',
@@ -1837,20 +1850,20 @@ $1",
 'largefileserver' => 'Размер файла превышает максимально разрешённый.',
 'emptyfile' => 'Загруженный вами файл, вероятно, пустой. Возможно, это произошло из-за ошибки при наборе имени файла. Пожалуйста, проверьте, действительно ли вы хотите загрузить этот файл.',
 'windows-nonascii-filename' => 'Эта вики не поддерживает имена файлов с символами, отсутствующими в таблице ASCII.',
-'fileexists' => "Файл с этим именем уже существует, пожалуйста, проверьте '''<tt>[[:$1]]</tt>''', если вы не уверены, что хотите заменить его.
-[[$1|thumb]]",
-'filepageexists' => "Страница описания для этого файла уже создана как '''<tt>[[:$1]]</tt>''', но файла с таким именем сейчас нет.
+'fileexists' => 'Файл с этим именем уже существует, пожалуйста, проверьте <strong>[[:$1]]</strong>, если вы не уверены, что хотите заменить его.
+[[$1|thumb]]',
+'filepageexists' => 'Страница описания для этого файла уже создана как <strong>[[:$1]]</strong>, но файла с таким именем сейчас нет.
 Введённое описание не появится на странице описания файла.
 Чтобы добавить новое описание, вам придётся изменить его вручную.
-[[$1|thumb]]",
-'fileexists-extension' => "Существует файл с похожим именем: [[$2|thumb]]
-* Имя загруженного файла: '''<tt>[[:$1]]</tt>'''
-* Имя существующего файла: '''<tt>[[:$2]]</tt>'''
-Пожалуйста, выберите другое имя.",
-'fileexists-thumbnail-yes' => "Файл, вероятно, является уменьшенной копией (миниатюрой). [[$1|thumb]]
-Пожалуйста, проверьте файл '''<tt>[[:$1]]</tt>'''.
-Если указанный файл является тем же изображением, не стоит загружать отдельно его уменьшенную копию.",
-'file-thumbnail-no' => "Название файла начинается с '''<tt>$1</tt>'''.
+[[$1|thumb]]',
+'fileexists-extension' => 'Существует файл с похожим именем: [[$2|thumb]]
+* Имя загруженного файла: <strong>[[:$1]]</strong>
+* Имя существующего файла: <strong>[[:$2]]</strong>
+Пожалуйста, выберите другое имя.',
+'fileexists-thumbnail-yes' => 'Файл, вероятно, является уменьшенной копией (миниатюрой). [[$1|thumb]]
+Пожалуйста, проверьте файл <strong>[[:$1]]</strong>.
+Если указанный файл является тем же изображением, не стоит загружать отдельно его уменьшенную копию.',
+'file-thumbnail-no' => "Название файла начинается с <strong>$1</strong>.
 Вероятно, это уменьшенная копия изображения ''(миниатюра)''.
 Если у вас есть данное изображение в полном размере, пожалуйста, загрузите его или измените имя файла.",
 'fileexists-forbidden' => 'Файл с этим именем уже существует и не может быть перезаписан.
@@ -2075,6 +2088,7 @@ $1',
 'shared-repo-from' => 'из $1',
 'shared-repo' => 'общего хранилища',
 'shared-repo-name-wikimediacommons' => 'Викисклада',
+'upload-disallowed-here' => 'К сожалению, вы не можете перезаписать это изображение.',
 
 # File reversion
 'filerevert' => 'Возврат к старой версии $1',
@@ -2108,7 +2122,7 @@ $1',
 
 # MIME search
 'mimesearch' => 'Поиск по MIME',
-'mimesearch-summary' => 'Эта страница позволяет отбирать файлы по их MIME-типу. Формат ввода: типсодержимого/подтип, например <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Эта страница позволяет отбирать файлы по их MIME-типу. Формат ввода: типсодержимого/подтип, например <code>image/jpeg</code>.',
 'mimetype' => 'MIME-тип:',
 'download' => 'загрузить',
 
@@ -2182,6 +2196,7 @@ $1',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|байт|байта|байт}}',
 'ncategories' => '$1 {{PLURAL:$1|категория|категории|категорий}}',
+'ninterwikis' => '$1 {{PLURAL:$1|интервики-ссылка|интервики-ссылки|интервики-ссылок}}',
 'nlinks' => '$1 {{PLURAL:$1|ссылка|ссылки|ссылок}}',
 'nmembers' => '$1 {{PLURAL:$1|объект|объекта|объектов}}',
 'nrevisions' => '$1 {{PLURAL:$1|версия|версии|версий}}',
@@ -2210,6 +2225,7 @@ $1',
 'mostlinkedtemplates' => 'Самые используемые шаблоны',
 'mostcategories' => 'Страницы, включённые в большое количество категорий',
 'mostimages' => 'Самые используемые файлы',
+'mostinterwikis' => 'Страницы с наибольшим числом межъязыковых ссылок',
 'mostrevisions' => 'Наиболее часто редактировавшиеся страницы',
 'prefixindex' => 'Указатель по началу названий страниц',
 'prefixindex-namespace' => 'Указатель по началу страниц (пространство имён «{{ns:$1}}»)',
@@ -2310,7 +2326,7 @@ $1',
 'linksearch-ok' => 'Найти',
 'linksearch-text' => 'Можно использовать подстановочные символы, например, <code>*.wikipedia.org</code>.
 Необходим по крайней мере домен верхнего уровня, например <code>*.org</code><br />
-Поддерживаемые протоколы: <tt>$1</tt> (не добавлять любой из них в вашем поиске)',
+Поддерживаемые протоколы: <code>$1</code> (не добавлять любой из них в вашем поиске)',
 'linksearch-line' => 'Ссылка на $1 из $2',
 'linksearch-error' => 'Подстановочные символы могут использоваться только в начале адресов.',
 
@@ -2358,6 +2374,8 @@ $1',
 'mailnologin' => 'Адрес для отправки отсутствует',
 'mailnologintext' => 'Вы должны [[Special:UserLogin|представиться системе]] и иметь действительный адрес электронной почты в ваших [[Special:Preferences|настройках]], чтобы иметь возможность отправлять электронную почту другим участникам.',
 'emailuser' => 'Письмо участнику',
+'emailuser-title-target' => 'Написание электронного письма {{GENDER:$1|участнику|участнице}}',
+'emailuser-title-notarget' => 'Написание электронного письма участнику',
 'emailpage' => 'Письмо участнику',
 'emailpagetext' => 'С помощью данной формы можно отправить сообщение на адрес электронной почты этого участника.
 В качестве обратного адреса будет указан тот адрес, который вы указали в [[Special:Preferences|своих настройках]], таким образом получатель будет иметь возможность ответить непосредственно вам.',
@@ -2996,6 +3014,7 @@ $1',
 'import-interwiki-templates' => 'Включить все шаблоны',
 'import-interwiki-submit' => 'Импортировать',
 'import-interwiki-namespace' => 'Целевое пространство имён:',
+'import-interwiki-rootpage' => 'Корневая страница (необязательно):',
 'import-upload-filename' => 'Имя файла:',
 'import-comment' => 'Примечание:',
 'importtext' => 'Пожалуйста, экспортируйте страницу из исходной вики, используя [[Special:Export|соответствующий инструмент]]. Сохраните файл на диск, а затем загрузите его сюда.',
@@ -3027,6 +3046,9 @@ $1',
 'import-error-interwiki' => 'Страница «$1» не была импортирована, так как её название зарезервировано для внешних ссылок (интервики).',
 'import-error-special' => 'Страница «$1» не была импортирована, так как она относится к особому пространству имён, не позволяющему создавать страницы.',
 'import-error-invalid' => 'Страница «$1» не была импортирована из-за недопустимого названия.',
+'import-options-wrong' => '{{PLURAL:$2|Неверная опция|Неверные опции}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Указанное название корневой страницы некорректно.',
+'import-rootpage-nosubpage' => 'В пространстве имён указанной корневой страницы «$1» подстраницы запрещены.',
 
 # Import log
 'importlogpage' => 'Журнал импорта',
@@ -3179,16 +3201,34 @@ The wiki server can't provide data in a format your client can read.",
 
 # Info page
 'pageinfo-title' => 'Сведения по «$1»',
-'pageinfo-header-edits' => 'Правки',
-'pageinfo-header-watchlist' => 'Список наблюдения',
-'pageinfo-header-views' => 'Просмотры',
-'pageinfo-subjectpage' => 'Страница',
-'pageinfo-talkpage' => 'Страница обсуждения',
-'pageinfo-watchers' => 'Число наблюдающих',
-'pageinfo-edits' => 'Число правок',
-'pageinfo-authors' => 'Количество различных авторов',
+'pageinfo-header-basic' => 'Основные сведения',
+'pageinfo-header-edits' => 'История изменений',
+'pageinfo-header-restrictions' => 'Защита страницы',
+'pageinfo-header-properties' => 'Свойства страницы',
+'pageinfo-display-title' => 'Отображаемый заголовок',
+'pageinfo-default-sort' => 'Ключ сортировки по умолчанию',
+'pageinfo-length' => 'Длина страницы (в байтах)',
+'pageinfo-article-id' => 'Идентификатор страницы',
+'pageinfo-robot-policy' => 'Индексация поисковыми службами',
+'pageinfo-robot-index' => 'Индексируется',
+'pageinfo-robot-noindex' => 'Не индексируется',
 'pageinfo-views' => 'Количество просмотров',
-'pageinfo-viewsperedit' => 'Просмотров на правку',
+'pageinfo-watchers' => 'Число наблюдающих',
+'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-restriction' => 'Защита страницы (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Магическое слово|Магические слова}} ($1)',
+'pageinfo-hidden-categories' => '{{PLURAL:$1|Скрытая категория|Скрытых категорий}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Шаблон|Шаблонов}} ($1)',
 
 # Skin names
 'skinname-standard' => 'Классическое',
@@ -3242,7 +3282,8 @@ $1',
 'file-info-size' => '$1 × $2 {{PLURAL:$2|пиксель|пикселя|пикселей}}, размер файла: $3, MIME-тип: $4',
 'file-info-size-pages' => '$1 × $2 пикселей, размер файла: $3, MIME-тип: $4, $5 {{PLURAL:$5|страница|страницы|страниц}}',
 'file-nohires' => 'Нет версии с бо́льшим разрешением.',
-'svg-long-desc' => 'Файл .SVG, номинально $1 × $2 {{PLURAL:$2|пиксель|пикселя|пикселей}}, размер файла: $3',
+'svg-long-desc' => 'SVG-файл, номинально $1 × $2 {{PLURAL:$2|пиксель|пикселя|пикселей}}, размер файла: $3',
+'svg-long-desc-animated' => 'Анимированный SVG-файл, номинально $1 × $2 {{PLURAL:$2|пиксель|пикселя|пикселей}}, размер файла: $3',
 'show-big-image' => 'Изображение в более высоком разрешении',
 'show-big-image-preview' => 'Размер при предпросмотре: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Другое разрешение|Другие разрешения}}: $1.',
@@ -3252,6 +3293,8 @@ $1',
 'file-info-png-looped' => 'закольцованный',
 'file-info-png-repeat' => 'проигрывается $1 {{PLURAL:$1|раз|раза|раз}}',
 'file-info-png-frames' => '$1 {{PLURAL:$1|кадр|кадра|кадров}}',
+'file-no-thumb-animation' => "'''Примечание. По техническим причинам, миниатюры этого файла не будет анимироваться.'''",
+'file-no-thumb-animation-gif' => "'''Примечание. По техническим причинам, миниатюры подобных GIF-изображений высокого разрешения не анимируются.'''",
 
 # Special:NewFiles
 'newimages' => 'Галерея новых файлов',
@@ -4144,7 +4187,7 @@ MediaWiki распространяется в надежде, что она бу
 'api-error-file-too-large' => 'Отправленный вами файл слишком велик.',
 'api-error-filename-tooshort' => 'Слишком короткое имя файла.',
 'api-error-filetype-banned' => 'Этот тип файлов запрещён.',
-'api-error-filetype-banned-type' => '$1 â\80\94 {{PLURAL:$4|запÑ\80еÑ\89Ñ\91ннÑ\8bй Ñ\82ип Ñ\84айла|запÑ\80еÑ\89Ñ\91ннÑ\8bе Ñ\82ипÑ\8b Ñ\84айлов}}. {{PLURAL:$3|РазÑ\80еÑ\88Ñ\91ннÑ\8bм Ñ\82ипом Ñ\84айла Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f|Разрешённые типы файлов:}} $2.',
+'api-error-filetype-banned-type' => '$1 â\80\94 {{PLURAL:$4|запÑ\80еÑ\89Ñ\91ннÑ\8bй Ñ\82ип Ñ\84айла|запÑ\80еÑ\89Ñ\91ннÑ\8bе Ñ\82ипÑ\8b Ñ\84айлов}}. {{PLURAL:$3|РазÑ\80еÑ\88Ñ\91ннÑ\8bй Ñ\82ип Ñ\84айлов â\80\94|Разрешённые типы файлов:}} $2.',
 'api-error-filetype-missing' => 'У этого файла отсутствует расширение.',
 'api-error-hookaborted' => 'Изменение, которые вы пытались сделать, прервано обработчиком расширения.',
 'api-error-http' => 'Внутренняя ошибка: не удаётся подключиться к серверу.',
index e0fc8ad..806b3f8 100644 (file)
@@ -1467,19 +1467,19 @@ $1",
 'largefileserver' => 'Розмір файлу є векшый як ліміт наставленый на сервері.',
 'emptyfile' => 'Файл, котрый сьте вложыли ся видить быти порожнїй. Могла то запричінити хыба в назві файлу. Просиме, перевірте ці сьте справды хотїли вложыти тот файл.',
 'windows-nonascii-filename' => 'Тота вікі не підпорує назвы файлів з шпеціалныма сімболами.',
-'fileexists' => "Файл з тов назвов уж екзістує, просиме посмотьте ся на '''<tt>[[:$1]]</tt>''', покы не знаєте напевно, ці хочете тот файл нагородити.
-[[$1|thumb]]",
-'filepageexists' => "Пописова сторінка про файл з тов назвов уж была на  '''<tt>[[:$1]]</tt>''' створена, але одповідаючій файл дотеперь не екзістує.
+'fileexists' => 'Файл з тов назвов уж екзістує, просиме посмотьте ся на <strong>[[:$1]]</strong>, покы не знаєте напевно, ці хочете тот файл нагородити.
+[[$1|thumb]]',
+'filepageexists' => 'Пописова сторінка про файл з тов назвов уж была на  <strong>[[:$1]]</strong> створена, але одповідаючій файл дотеперь не екзістує.
 Згорнутя, котре ту зазначіте, ся на пописовій сторінцї не зобразить.
-Кідь там хочете своє згорнутя зобразити, будете мусити дану сторінку едітовати мануално. [[$1|thumb]]",
-'fileexists-extension' => "Уже екзістує файл з подобным іменом: [[$2|thumb]]
-* Назва заладованого файлу: '''<tt>[[:$1]]</tt>'''
-* Назва екзістуючого файлу: '''<tt>[[:$2]]</tt>'''
-Выберте іншу назву.",
+Кідь там хочете своє згорнутя зобразити, будете мусити дану сторінку едітовати мануално. [[$1|thumb]]',
+'fileexists-extension' => 'Уже екзістує файл з подобным іменом: [[$2|thumb]]
+* Назва заладованого файлу: <strong>[[:$1]]</strong>
+* Назва екзістуючого файлу: <strong>[[:$2]]</strong>
+Выберте іншу назву.',
 'fileexists-thumbnail-yes' => "Тот файл є асі образчік в зменшеній великости ''(нагляд)''. [[$1|thumb]]
-Перевірте файл '''<tt>[[:$1]]</tt>'''.
+Перевірте файл <strong>[[:$1]]</strong>.
 Кідь є вказаный файл векшый, але інакше єднакый, не треба окремо заладовати ёго зменшену верзію.",
-'file-thumbnail-no' => "Назва файлу ся зачінать на '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Назва файлу ся зачінать на <strong>$1</strong>.
 Може є то образчік в зменшеній великости ''(нагляд)''.
 Заладуйте файл в повнім розлишіню, покы є ку діспозіції, або зміньте назву файлу.",
 'fileexists-forbidden' => 'Файл з таков назвов уж екзістує і не є дозволено го переписати.
@@ -1922,7 +1922,7 @@ $1',
 'linksearch-ok' => 'Глядати',
 'linksearch-text' => 'Може хосновати заступны сімболы, наприклад „*.wikipedia.org“.<br />
 Повиннов є передовшыткым домена найвысшой уровни, напр. „*.org“.<br />
-Підпорованы протоколы: <tt>$1</tt>',
+Підпорованы протоколы: <code>$1</code>',
 'linksearch-line' => '$2 одказує на $1',
 'linksearch-error' => 'Заступны сімболы може хосновати лем на початку доменового мена.',
 
@@ -2744,15 +2744,10 @@ $1',
 # Info page
 'pageinfo-title' => 'Інформація про "$1"',
 'pageinfo-header-edits' => 'Едітованя',
-'pageinfo-header-watchlist' => 'Слїдованы сторінкы',
-'pageinfo-header-views' => 'Перегляды',
-'pageinfo-subjectpage' => 'Сторінка',
-'pageinfo-talkpage' => 'Сторінка діскузії',
+'pageinfo-views' => 'Чісло переглядів',
 'pageinfo-watchers' => 'Чісло слїдуючіх',
 'pageinfo-edits' => 'Чісло едітовань',
 'pageinfo-authors' => 'Чісло різных авторів',
-'pageinfo-views' => 'Чісло переглядів',
-'pageinfo-viewsperedit' => 'Чісло зображінь на едітованя',
 
 # Patrolling
 'markaspatrolleddiff' => 'Означіти як перевірене',
index 8e01121..deb7dee 100644 (file)
@@ -1640,9 +1640,9 @@ You can still [$1 view this revision]",
 To view or search previously uploaded files go to the [[Special:FileList|list of uploaded files]], (re)uploads are also logged in the [[Special:Log/upload|upload log]], deletions in the [[Special:Log/delete|deletion log]].
 
 To include a file in a page, use a link in one of the following forms:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' to use the full version of the file
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' to use a 200 pixel wide rendition in a box in the left margin with 'alt text' as description
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' for directly linking to the file without displaying the file",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' to use the full version of the file
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' to use a 200 pixel wide rendition in a box in the left margin with 'alt text' as description
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' for directly linking to the file without displaying the file",
 'upload-permitted' => 'अनुमतसञ्चिकाभेदाः $1.',
 'upload-preferred' => 'अनुमतसञ्चिकाभेदाः $1.',
 'upload-prohibited' => 'अनुमतसञ्चिकाभेदाः $1.',
@@ -1688,20 +1688,20 @@ To include a file in a page, use a link in one of the following forms:
 सञिकानामाङ्कनकारणं स्यात् ।
 एतां सञ्चिकाम् उत्तारयितुमिच्छति वा इति परिशीलयतु ।',
 'windows-nonascii-filename' => 'एषा विकि विशेषाक्षरयुक्तं सञ्चिकानाम न अनुमन्यते ।',
-'fileexists' => "अनेन सञ्चिकानाम्ना काचित् सञ्चिकास्ति । यदि निश्चयेन न जानाति परिवर्तयितुम् इच्छति तर्हि  '''<tt>[[:$1]]</tt>''' एतत् परिशीलयतु । : [[$1|thumb]]",
-'filepageexists' => "अस्याः सञ्चिकायाः विवरणपुटम् तावत् निर्मितम् एव । '''<tt>[[:$1]]</tt>''', अनेन नाम्ना सद्यः कापि सञ्चिका वर्तते  । 
+'fileexists' => 'अनेन सञ्चिकानाम्ना काचित् सञ्चिकास्ति । यदि निश्चयेन न जानाति परिवर्तयितुम् इच्छति तर्हि  <strong>[[:$1]]</strong> एतत् परिशीलयतु । : [[$1|thumb]]',
+'filepageexists' => 'अस्याः सञ्चिकायाः विवरणपुटम् तावत् निर्मितम् एव । <strong>[[:$1]]</strong>, अनेन नाम्ना सद्यः कापि सञ्चिका वर्तते  । 
 लिखितसारांशः विवरणपुटे न आगमिष्यति । 
-ते सारांशः तत्रागन्तुं स्वयं सम्पादयतु । [[$1|thumb]]",
-'fileexists-extension' => "अनेन नाम्ना सदृनामाङ्किता सञ्चिका पूर्वमेव अस्ति । [[$2|thumb]]
-* उत्तर्यमानसञ्चिकायाः नाम  '''<tt>[[:$1]]</tt>'''
-* वर्तमानसञिकायाः नाम '''<tt>[[:$2]]</tt>'''
-* अन्यनाम चिनोतु ।",
+ते सारांशः तत्रागन्तुं स्वयं सम्पादयतु । [[$1|thumb]]',
+'fileexists-extension' => 'अनेन नाम्ना सदृनामाङ्किता सञ्चिका पूर्वमेव अस्ति । [[$2|thumb]]
+* उत्तर्यमानसञ्चिकायाः नाम  <strong>[[:$1]]</strong>
+* वर्तमानसञिकायाः नाम <strong>[[:$2]]</strong>
+* अन्यनाम चिनोतु ।',
 'fileexists-thumbnail-yes' => "एषा सञ्चिका बृहच्चित्रस्य क्षीणाकारा इति भाति । ''(उङ्गुष्टाकारः)''  [[$1|thumb]]
-'''<tt>[[:$1]]</tt>''' सञ्चिकां पश्यतु । 
+<strong>[[:$1]]</strong> सञ्चिकां पश्यतु । 
 यदि परिक्षिता सञ्चिका एतादृशाकरस्य भवति तर्हि उत्तारणस्य आवश्यकता नास्ति ।",
-'file-thumbnail-no' => "सञ्चिकानाम आरभते '''<tt>$1</tt>'''एतस्मात् ।
+'file-thumbnail-no' => 'सञ्चिकानाम आरभते <strong>$1</strong>एतस्मात् ।
 न्यूनीकृताकारस्य चित्रम् इति भाति  
-यदि एतच्चित्रं मूलाकारेण अस्ति तर्हि उत्तारयतु अन्यथा न ।",
+यदि एतच्चित्रं मूलाकारेण अस्ति तर्हि उत्तारयतु अन्यथा न ।',
 'fileexists-forbidden' => 'एदादृशनाम्नः सञ्चिका तावत् पूर्वमेवोपस्थिता । अस्य स्थाने अन्यां नोत्तारयितुं शक्यते । 
 तथापि यदि एतां सञ्चिकाम् उत्तारयितुम् इच्छति तर्हि सञ्चिकायाः नाम परिवर्तयतु ।
 [[File:$1|thumb|center|$1]]',
@@ -1951,7 +1951,7 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 # MIME search
 'mimesearch' => 'MIME अन्वेषणम् ।',
 'mimesearch-summary' => 'MIME-प्रकारानुसारं सञ्चिकान्वेषणार्थम् एतत्पुटम् उपयोक्तुं शाक्नोति । 
-इनपुट: सञ्चिकायाः प्रकारः/उपप्रकारः, उदाहरणम्. <tt>image/jpeg</tt>.',
+इनपुट: सञ्चिकायाः प्रकारः/उपप्रकारः, उदाहरणम्. <code>image/jpeg</code>.',
 'mimetype' => 'MIME प्रकारः :',
 'download' => 'डाउनलोड',
 
@@ -2153,7 +2153,7 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'linksearch-ok' => 'अन्वेषणम्',
 'linksearch-text' => '"*.wikipedia.org" सदृशानि वन्यपत्राणि योजयितुं शक्यते । 
 न्यूनातिन्यूनं ".org" सदृशः अत्युन्नतस्तरस्य डोमेन आवश्यकम् अस्ति <br />
-अनुमोदितक्रमागतिः  <tt>$1</tt> (एतेषु कतममपि अन्वेषणे न योजयतु )',
+अनुमोदितक्रमागतिः  <code>$1</code> (एतेषु कतममपि अन्वेषणे न योजयतु )',
 'linksearch-line' => '$2 पृष्ठं $1 तः सम्पृक्तम् अस्ति।',
 'linksearch-error' => 'वन्यपत्राणि आतिथेयस्य नाम्ना समं केवलं प्रभान्ति ।',
 
@@ -2654,6 +2654,32 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 # Move page
 'move-page' => ' $1 चालयतु ।',
 'move-page-legend' => 'पृष्ठं रक्ष्यताम्',
+'movepagetext' => "अधोतत्तं प्रपत्रमुपयुज्य  पुटस्य पुनर्नामकरणं करिष्यति । अस्य पूर्णेतिहासः नूतनेन नाम्ना सह गच्छति । 
+नूतनशीर्षकस्य प्राचीनशीर्षकं पुनर्निदिष्टं  भवति । 
+भवान् पुनर्निदेशान् उन्नतीकरोतु यत् स्वयं मूलशीर्षकं निदेशति । 
+यदि भवान् एवं कर्तुं नैव शक्नोति तर्हि  [[Special:DoubleRedirects|द्विगुणम्]]पुनर्दिदेशाः[[Special:BrokenRedirects|भग्नपुनर्निदेशाः]] एतदर्थम् अवश्यं परिशीलयतु । 
+एतत् भवतः दायित्वं यत् अनुबन्धाः सुनिश्चितं स्थानं नयेयुः ।
+यदि नूतनशीर्षकस्य लेखः पूर्वमेवास्ति तर्हि स्थानान्तरणं न भविष्यति । नूतनशीर्षकयुक्तलेखः रिक्तमस्ति अथवा कुत्रचित् अनुप्रेषणं करोति अपि च अनेन सह प्राचीनेतिहासः नास्ति चेत् स्थानान्तरणं न सम्भविष्यति ।
+अर्थात् यदि भवता दोषः संवृत्तः चेत् भवान् पुनः प्राचीननाम्ना एतत्पुटं स्थानान्तरणं कर्तुं शक्नोति । अपि च किञ्चिदपि वर्तमानपुटस्य स्थाने एतत् स्थानान्तरणं कर्तुं नैव शक्नोति ।
+पूर्वसूचना : यदि पुटं प्रसिद्धं तर्हि तस्य एतत् बृहत् अथवा अकस्मात् परिवर्तनं भवितुमर्हति ।
+अनुवर्तनात् पूर्वम् अस्य परिणामं सम्यक् चिन्तयतु ।
+
+'''सूचना'''
+स्थानान्तरकरणेन कस्मिंश्चित् महालेखे अनपेक्षितं परिवर्तनं सम्भवेत् ।
+अतः भवति निवेदनम् अस्ति यत् भवान् पूवमेव परिणामं चित्नयतु ।",
+'movepagetext-noredirectfixer' => "अधोतत्तं प्रपत्रमुपयुज्य  पुटस्य पुनर्नामकरणं करिष्यति । अस्य पूर्णेतिहासः नूतनेन नाम्ना सह गच्छति । 
+नूतनशीर्षकस्य प्राचीनशीर्षकं पुनर्निदिष्टं  भवति । 
+भवान् पुनर्निदेशान् उन्नतीकरोतु यत् स्वयं मूलशीर्षकं निदेशति । 
+यदि भवान् एवं कर्तुं नैव शक्नोति तर्हि  [[Special:DoubleRedirects|द्विगुणम्]]पुनर्दिदेशाः[[Special:BrokenRedirects|भग्नपुनर्निदेशाः]] एतदर्थम् अवश्यं परिशीलयतु । 
+एतत् भवतः दायित्वं यत् अनुबन्धाः सुनिश्चितं स्थानं नयेयुः ।
+यदि नूतनशीर्षकस्य लेखः पूर्वमेवास्ति तर्हि स्थानान्तरणं न भविष्यति । नूतनशीर्षकयुक्तलेखः रिक्तमस्ति अथवा कुत्रचित् अनुप्रेषणं करोति अपि च अनेन सह प्राचीनेतिहासः नास्ति चेत् स्थानान्तरणं न सम्भविष्यति ।
+अर्थात् यदि भवता दोषः संवृत्तः चेत् भवान् पुनः प्राचीननाम्ना एतत्पुटं स्थानान्तरणं कर्तुं शक्नोति । अपि च किञ्चिदपि वर्तमानपुटस्य स्थाने एतत् स्थानान्तरणं कर्तुं नैव शक्नोति ।
+पूर्वसूचना : यदि पुटं प्रसिद्धं तर्हि तस्य एतत् बृहत् अथवा अकस्मात् परिवर्तनं भवितुमर्हति ।
+अनुवर्तनात् पूर्वम् अस्य परिणामं सम्यक् चिन्तयतु ।
+
+'''सूचना'''
+स्थानान्तरकरणेन कस्मिंश्चित् महालेखे अनपेक्षितं परिवर्तनं सम्भवेत् ।
+अतः भवति निवेदनम् अस्ति यत् भवान् पूवमेव परिणामं चित्नयतु ।",
 'movepagetalktext' => 'सम्बद्धसम्भाषणपुटानि अनेन सह स्थानान्तरितानि भवन्ति अन्यथा  
 * भवान् पुटं अन्यस्थानान्तरं कुर्वन् अस्ति । 
 * अस्मिन् नाम्नि सम्भाषणपुटं पूर्वनिर्मितमस्ति अस्थवा  
@@ -2719,6 +2745,10 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 
 # Export
 'export' => 'पृष्ठानां निर्यातं करोतु',
+'exporttext' => 'विशेष पुटस्य पाठम् अथवा सम्पादनेतिहासं निर्हर्तुं शक्नोति । अथवा पुटसमूहम् उपोतं कर्तुमपि शक्नोति ।
+एतत् [[Special:Import|आयातपुटं]] अस्य साहाय्येन मीडियाविक्याः प्रयोगं कृत्वा अन्यविकीतः आयातं कर्तुं शक्नोति ।
+पुटानि नर्हर्तुम् अधो दत्तपाठमञ्जूषायां शीर्शकं लिखतु । एकस्य शीर्षकस्य एका पङ्क्तिः । अपि च वर्तमानावृत्त्या सह प्राचीनावृत्तिमपि इच्छति वा नेति अथवा गतसम्पादनस्य विषयज्ञानेन सह केवलं वर्नमानावृत्तिम् इच्छाति । 
+पश्चात् स्थित्यर्थे भवान् कञ्चित् अनुबन्धं प्रयोक्तुमर्हति । यथा"[[{{MediaWiki:Mainpage}}]]"पुटार्थम् [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]]।',
 'exportall' => 'सर्वपुटानि निर्यातानि करोतु ।',
 'exportcuronly' => 'सद्यः पुनरावृत्तिं केवलं सङ्गृह्णातु  समूर्णम् इतिहासं न ।',
 'exportnohistory' => 'सुचना : अनुष्टानस्य कारणेन पुटनिर्यातस्य सम्पूर्णेतिहासः एतत्पुटाद्वारा निष्क्रियाः  ।',
@@ -2773,6 +2803,7 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'import-interwiki-templates' => 'प्राकृतीः अनर्भावयतु ।',
 'import-interwiki-submit' => 'आयातं करोतु ।',
 'import-interwiki-namespace' => 'लक्षितनामस्थानानि ।',
+'import-interwiki-rootpage' => 'लक्षितमूलपुटम् । (ऐच्छिकम्)',
 'import-upload-filename' => 'सञ्चिकानाम',
 'import-comment' => 'टिप्पणी:',
 'importtext' => '[[Special:Export|export utility]] एतेनानुबन्धेन स्रोतविकितः सञ्चिकानां निर्यातं करोतु । भवदीयसङ्गणके सुरक्ष्य अत्र उत्तारयतु ।',
@@ -2806,6 +2837,9 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'import-error-interwiki' => '"$1" पुटम् आयातं न यतः अस्य नाम बाह्यानुबन्धार्थं सुरक्षितम् । (अन्तर्विकि)',
 'import-error-special' => '"$1" पुटम् आयातं नैव यतः एतत् विशेषनामस्थानेन सम्बद्धं यत् अन्यपुटानि नानुमन्यते ।',
 'import-error-invalid' => '"$1" पुटं न आयातं यतः अस्य नाम अमान्यम् ।',
+'import-options-wrong' => 'असमीचीनः {{PLURAL:$2|विकल्पः|विकल्पाः}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'दत्तमूलपुटम् अमान्यशीर्षकयुक्तम् ।',
+'import-rootpage-nosubpage' => 'मूलपुटस्य "$1" इति नामस्थाने उपपुटानि नानुमतानि ।',
 
 # Import log
 'importlogpage' => 'आयातसूचिका ।',
@@ -2925,15 +2959,10 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 # Info page
 'pageinfo-title' => '"$1" कृते सूचनाः ।',
 'pageinfo-header-edits' => 'सम्पादयति',
-'pageinfo-header-watchlist' => 'अवलोकनावली ।',
-'pageinfo-header-views' => 'अवलोकनानि ।',
-'pageinfo-subjectpage' => 'पृष्ठम्',
-'pageinfo-talkpage' => 'कथा पृष्ठम्',
+'pageinfo-views' => 'अवलोकनानां सङ्ख्या ।',
 'pageinfo-watchers' => 'अवलोकनानां सङ्ख्या ।',
 'pageinfo-edits' => 'सम्पादननां सङ्ख्या ।',
 'pageinfo-authors' => 'स्पष्टानां कर्तॄणां सङ्ख्या ।',
-'pageinfo-views' => 'अवलोकनानां सङ्ख्या ।',
-'pageinfo-viewsperedit' => 'प्रत्येकं सम्पादनस्य अवलोकनानि ।',
 
 # Skin names
 'skinname-standard' => 'पूर्व',
@@ -3233,24 +3262,205 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'exif-unknowndate' => 'अज्ञातदिनाङ्कः ।',
 
 'exif-orientation-1' => 'सामान्य',
+'exif-orientation-2' => 'तिर्यक् परिवर्तितम् ।',
+'exif-orientation-3' => '१८०° प्ररिभ्रमितम् ।',
+'exif-orientation-4' => 'लम्भतया परिवर्तितम् ।',
+'exif-orientation-5' => 'CCW ९०° परिभ्रमितम् । अपि च लम्बतया परिवर्तितम् ।',
+'exif-orientation-6' => 'CCW ९०° परिभ्रमितम् ।',
+'exif-orientation-7' => 'CCW ९०° परिभ्रमितम् । अपि च लम्बतया परिवर्तितम् ।',
+'exif-orientation-8' => 'CCW ९०° परिभ्रमितम् ।',
+
+'exif-planarconfiguration-1' => 'विशालं प्रारूपम् ।',
+'exif-planarconfiguration-2' => 'पर्यालोचकस्य प्रारूपम् ।',
+
+'exif-colorspace-65535' => 'अक्रमाङ्कितम् ।',
+
+'exif-componentsconfiguration-0' => 'न वर्तते ।',
+
+'exif-exposureprogram-0' => 'न व्याख्यातम् ।',
+'exif-exposureprogram-1' => 'मानवीयः ।',
+'exif-exposureprogram-2' => 'साधारणकार्यक्रमः ।',
+'exif-exposureprogram-3' => 'अवकाशस्य आद्यता ।',
+'exif-exposureprogram-4' => 'पिधानस्य आद्यता ।',
+'exif-exposureprogram-5' => 'सर्जनात्मकः कार्यक्रमः ।',
+'exif-exposureprogram-6' => 'प्रक्रियाकार्यक्रमः ।',
+'exif-exposureprogram-7' => 'आलेख्य प्रकारः ।',
+'exif-exposureprogram-8' => 'आयतप्रकारः । (आयतचित्राणि पृष्ठभूमिकेन्द्रीकृतनि )',
+
+'exif-subjectdistance-value' => '$1 मीटर्स् ।',
 
 'exif-meteringmode-0' => 'अज्ञात',
 'exif-meteringmode-1' => 'माध्य',
+'exif-meteringmode-2' => 'केन्द्रभारयुतं सर्वसामान्यम् ।',
+'exif-meteringmode-3' => 'प्रदेशः ।',
+'exif-meteringmode-4' => 'विविधप्रदेशाः ।',
+'exif-meteringmode-5' => 'प्रकारः ।',
+'exif-meteringmode-6' => 'भागशः ।',
+'exif-meteringmode-255' => 'अन्यत्',
 
 'exif-lightsource-0' => 'अज्ञात',
+'exif-lightsource-1' => 'दिवाप्रकाशः ।',
+'exif-lightsource-2' => 'प्रभासमानम् ।',
+'exif-lightsource-3' => 'उज्वलप्रकाशस्य तन्त्रीविशेषः',
+'exif-lightsource-4' => 'स्फुरणम् ।',
+'exif-lightsource-9' => 'सुवायुमण्डलम् ।',
+'exif-lightsource-10' => 'मेघाच्छन्नवायुमण्डलम् ।',
+'exif-lightsource-11' => 'छाया ।',
+'exif-lightsource-12' => 'दिवाप्रकाशः उज्वलकान्तिः ।(D 5700 – 7100K)',
+'exif-lightsource-13' => 'दिनस्य श्वेतोज्वलप्रकाशः (N 4600 – 5400K)',
+'exif-lightsource-14' => 'शान्तशुभ्रः उज्ज्वलप्रकाशः (W 3900 – 4500K)',
+'exif-lightsource-15' => 'श्वेतदीप्तप्रकाशः ।(WW 3200 – 3700K)',
+'exif-lightsource-17' => 'सुयोगः प्रकाशः A',
+'exif-lightsource-18' => 'योग्यप्रकाशः B',
+'exif-lightsource-19' => 'सुयोग्यप्रकाशः C',
+'exif-lightsource-24' => 'ISO स्टूडीयो टङ्गस्टन् ।',
+'exif-lightsource-255' => 'अन्यप्रकाशस्रोतः ।',
+
+# Flash modes
+'exif-flash-fired-0' => 'स्फुरणं न सम्भूतम् ।',
+'exif-flash-fired-1' => 'स्फुरणमभवत् ।',
+'exif-flash-return-0' => 'न कोऽपि स्फुरणप्रयागमनस्य शोधकार्यकलापः अस्ति ।',
+'exif-flash-return-2' => 'स्फुरणप्रत्यागमनस्य प्रकाशः न शोधितः ।',
+'exif-flash-return-3' => 'स्फुरणप्रत्यागमनस्य प्रकाशः अभिज्ञातम् ।',
+'exif-flash-mode-1' => 'अनिवार्यं स्फुरणचालनम् ।',
+'exif-flash-mode-2' => 'अनिवर्यः स्फुरणनिग्रहः ।',
+'exif-flash-mode-3' => 'स्वयं चालनप्रकारः ।',
+'exif-flash-function-1' => 'स्फुरणकार्यकलापः नास्ति ।',
+'exif-flash-redeye-1' => 'लोहितनेत्र न्यूनीकरणस्य प्रकारः ।',
+
+'exif-focalplaneresolutionunit-2' => 'इञ्चस्',
+
+'exif-sensingmethod-1' => 'अनिरूपितम् ।',
+'exif-sensingmethod-2' => 'एकशलाकावर्णस्थानस्य संवेदकः ।',
+'exif-sensingmethod-3' => 'शलाकद्वसस्य वर्णस्थानस्य संवेदकः ।',
+'exif-sensingmethod-4' => 'शलाकत्रयस्य वर्णस्थानस्य संवेदकः ।',
+'exif-sensingmethod-5' => 'वर्णसान्दर्भिकस्थानस्य संवेदकः ।',
+'exif-sensingmethod-7' => 'ट्रिलियनियर्  संवेदकः ।',
+'exif-sensingmethod-8' => 'वर्णसान्दर्भिकस्थानस्य संवेदकः ।',
+
+'exif-filesource-3' => 'आङ्किकस्थिरचित्रग्राही ।',
+
+'exif-scenetype-1' => 'सक्षात् ग्रहीतचित्रम् ।',
+
+'exif-customrendered-0' => 'साधारणप्रक्रिया ।',
+'exif-customrendered-1' => 'प्रक्रियां परिवर्तयतु ।',
+
+'exif-exposuremode-0' => 'स्वयं प्रदर्शनम् ।',
+'exif-exposuremode-1' => 'मानवीयं प्रदर्शनम् ।',
+'exif-exposuremode-2' => 'स्वयम् आवरणम्',
+
+'exif-whitebalance-0' => 'स्वयं श्वेतावरणम् ।',
+'exif-whitebalance-1' => 'मनवकरणस्य श्वेतावरणम् ।',
+
+'exif-scenecapturetype-0' => 'सुयोग्यम् ।',
+'exif-scenecapturetype-1' => 'आयतम् ।',
+'exif-scenecapturetype-2' => 'लम्बचित्राकृतिः ।',
+'exif-scenecapturetype-3' => 'रात्रिदृश्यम् ।',
+
+'exif-gaincontrol-0' => 'नास्ति',
+'exif-gaincontrol-1' => 'मन्दार्जनम् ।',
+'exif-gaincontrol-2' => 'तीव्रार्जनम् ।',
+'exif-gaincontrol-3' => 'मन्दार्जनावन्तिः ।',
+'exif-gaincontrol-4' => 'तीव्रार्जनावनतिः ।',
 
 'exif-contrast-0' => 'सामान्य',
+'exif-contrast-1' => 'कोमलम् ।',
+'exif-contrast-2' => 'कठिणम् ।',
+
+'exif-saturation-0' => 'सामान्यम्',
+'exif-saturation-1' => 'मन्दतर्पणम् ।',
+'exif-saturation-2' => 'तीव्रतर्पणम् ।',
 
 'exif-sharpness-0' => 'सामान्य',
+'exif-sharpness-1' => 'कोमलम् ।',
+'exif-sharpness-2' => 'कठिणम् ।',
 
 'exif-subjectdistancerange-0' => 'अज्ञात',
-
+'exif-subjectdistancerange-1' => 'बृहत्',
+'exif-subjectdistancerange-2' => 'अवलोकनं पिदधातु ।',
+'exif-subjectdistancerange-3' => 'दूरदृश्यम् ।',
+
+# Pseudotags used for GPSLatitudeRef and GPSDestLatitudeRef
+'exif-gpslatitude-n' => 'उत्तराक्षांशः ।',
+'exif-gpslatitude-s' => 'दक्षिणाक्षांशः ।',
+
+# Pseudotags used for GPSLongitudeRef and GPSDestLongitudeRef
+'exif-gpslongitude-e' => 'पश्चिमरेखांशः ।',
+'exif-gpslongitude-w' => 'पश्चिमरेखांशः ।',
+
+# Pseudotags used for GPSAltitudeRef
+'exif-gpsaltitude-above-sealevel' => '$1 {{PLURAL:$1|meter|meters}} समुद्रस्तरादौन्नत्यम् ।',
+'exif-gpsaltitude-below-sealevel' => '$1 {{PLURAL:$1|meter|meters}} समुद्रस्तरादवनतिः ।',
+
+'exif-gpsstatus-a' => 'मापनस्य प्रगतिः ।',
+'exif-gpsstatus-v' => 'अन्तर्निर्वहणस्य मापनम् ।',
+
+'exif-gpsmeasuremode-2' => 'द्विमुखमापनम् ।',
+'exif-gpsmeasuremode-3' => 'त्रिमुखमापनम् ।',
+
+# Pseudotags used for GPSSpeedRef
+'exif-gpsspeed-k' => 'प्रतिहोरा कि.मी ।',
+'exif-gpsspeed-m' => 'मैल् प्रतिहोरा ।',
+'exif-gpsspeed-n' => 'ग्रन्थयः ।',
+
+# Pseudotags used for GPSDestDistanceRef
+'exif-gpsdestdistance-k' => 'कि.मी.',
+'exif-gpsdestdistance-m' => 'मैल्स् ।',
+'exif-gpsdestdistance-n' => 'समुद्रीयः क्रोशः ।',
+
+'exif-gpsdop-excellent' => 'उत्कृष्टम् ($1)',
+'exif-gpsdop-good' => 'साधु ($1)',
+'exif-gpsdop-moderate' => 'मध्यमः $1',
+'exif-gpsdop-fair' => ' युक्तम् ($1)',
+'exif-gpsdop-poor' => 'दीनम् ($1)',
+
+'exif-objectcycle-a' => 'प्रतः केवलम् ।',
+'exif-objectcycle-p' => 'सायं केवलम् ।',
+'exif-objectcycle-b' => 'सायं प्रातः च ।',
+
+# Pseudotags used for GPSTrackRef, GPSImgDirectionRef and GPSDestBearingRef
+'exif-gpsdirection-t' => 'यथार्था दिशा ।',
+'exif-gpsdirection-m' => 'कान्तीयदिशा ।',
+
+'exif-ycbcrpositioning-1' => 'केन्द्रितम् ।',
+'exif-ycbcrpositioning-2' => 'सहक्षेत्रम् ।',
+
+'exif-dc-contributor' => 'योगदानिनः ।',
+'exif-dc-coverage' => 'माध्यमस्य स्थानिकः अथवा लैकिकः अवकाशः ।',
+'exif-dc-date' => 'दिनाङ्काः ।',
+'exif-dc-publisher' => 'प्रकाशकः ।',
+'exif-dc-relation' => 'सम्बद्धमाध्यमः ।',
+'exif-dc-rights' => 'अधिकाराः ।',
+'exif-dc-source' => 'स्रोतसः माध्यमः ।',
+'exif-dc-type' => 'माध्यमप्रकारः ।',
+
+'exif-rating-rejected' => 'तिरस्कृतम् ।',
+
+'exif-isospeedratings-overflow' => '६५५३५ तः महत्तरः ।',
+
+'exif-iimcategory-ace' => 'कलाः, संस्कृतिः, मनोरञ्जनम् ।',
+'exif-iimcategory-clj' => 'पराधः न्यायनियमाः ।',
+'exif-iimcategory-dis' => 'विपदः व्यापदः च ।',
+'exif-iimcategory-fin' => 'अर्थव्यवस्था वाणिज्यं च ।',
 'exif-iimcategory-edu' => 'विद्याभ्यासः',
 'exif-iimcategory-evn' => 'परिसरः',
 'exif-iimcategory-hth' => 'स्वास्थ्यम्',
+'exif-iimcategory-hum' => 'मानवीयासक्तिः ।',
+'exif-iimcategory-lab' => 'परिश्रमः',
+'exif-iimcategory-lif' => 'जीवनविधानं विश्रामः च ।',
+'exif-iimcategory-pol' => 'राजनीतिः ।',
+'exif-iimcategory-rel' => 'मतं विश्वासः च ।',
+'exif-iimcategory-sci' => 'विज्ञानं तन्त्रज्ञानं च ।',
+'exif-iimcategory-soi' => 'समाजिकाः विवादाः ।',
 'exif-iimcategory-spo' => 'क्रीडाः',
+'exif-iimcategory-war' => 'युद्धम्, सङ्घर्षः, अशान्तिः ।',
 'exif-iimcategory-wea' => 'वातावरण',
 
+'exif-urgency-normal' => 'सामान्यम् ($1)',
+'exif-urgency-low' => 'मन्दम् ।$1',
+'exif-urgency-high' => 'उन्नतम् ($1)',
+'exif-urgency-other' => 'योजकनिरूपिता आद्यता : $1',
+
 # External editor support
 'edit-externally' => 'बाह्यां प्रणालीम् उपयुज्य इयं सञ्चिका सम्पाद्यताम् ।',
 'edit-externally-help' => '(अधिकासूचनार्थं [//www.mediawiki.org/wiki/Manual:External_editors setup instructions] इत्येतत् दृश्यताम्)',
@@ -3263,63 +3473,213 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 
 # E-mail address confirmation
 'confirmemail' => 'ईपत्रसङ्केतः प्रमाणीक्रियताम्',
+'confirmemail_noemail' => 'भवतः योजकाद्यतायां व्यवस्थापितः विद्युन्मानपत्रसङ्केतः मान्यं नाश्ति ।  [[Special:Preferences|user preferences]]',
+'confirmemail_text' => '{{SITENAME}} इत्यत्र विद्युन्मानसुविधोपयोगात् पूर्वं भवतः विद्युन्मानपत्रसङ्केतं मान्यं करोतु । 
+भवतः सङ्केतं दृढीकरणसङ्केतं प्राप्तुं अधः दत्तं कड्मलं तुदतु ।
+तत्र पत्रं ससङ्केतम् अनुबन्धयुक्तं भवति । 
+भवतः विद्युन्मानपत्रसङ्केतं प्रमाणीकर्तुम् अनेन अनुबन्धेन जालगवाक्षेन पूरयतु ।',
+'confirmemail_pending' => 'कश्चित् दृढीकरणस्य सङ्केतसङ्ख्या तावत् विद्युन्मानपत्रद्वारा ते प्रेषितम् । 
+भवान् सद्यः योजकस्थानं निर्मितवान् । नूतनसङ्केतसङ्ख्या कतिपयनिमेषापर्यन्तं निरीक्षताम्,',
+'confirmemail_send' => 'दृढीकरणसङ्केतसङ्ख्यां प्रेषयतु ।',
+'confirmemail_sent' => 'दृढीकरणस्य विद्युन्मानपत्रं प्रेषितम् ।',
+'confirmemail_oncreate' => 'दृढीकरणस्य सङ्केतसङ्ख्या विद्युन्मानपत्रद्वारा सम्प्रेषितम् । 
+नामाभिलेखार्थम् एषा सङ्केतसङ्ख्या नावश्यकी । किन्तु  वीक्यां विद्युन्मानपत्राधारितलक्षणानि सक्रिययितुं सङ्केतसङ्ख्या प्रकप्पनीया ।',
+'confirmemail_sendfailed' => '{{SITENAME}}भवतः दृढीकरणपत्रप्रेषणं विफलम् । 
+अमान्याक्षरशोधाय भवतः विद्युन्मानपत्रसङ्केतं परिशीलयतु ।   
+पत्रवाहकः प्रत्यर्पितवान् : $1',
+'confirmemail_invalid' => 'अमान्या दृढीकरणसङ्केतसङ्ख्या ।
+प्रायः सङ्केतसङ्ख्या विनष्टा ।',
+'confirmemail_needlogin' => 'भवतः विद्युन्मनपत्रसङ्केतं दृढयितुं भवान् $1 करोतु ।',
+'confirmemail_success' => 'भवतः विद्युन्मानपत्रसङ्केतः इदानीं दृढीकृतः अस्ति । [[Special:UserLogin|log in]]
+अधुना भवान् नामाभिलेखेन विकिविहरस्य आनन्दम् अनुभवितुं शक्नोति ।',
+'confirmemail_loggedin' => 'भवतः विद्युन्मानपत्रसङ्केतः दृढीकृतः ।',
+'confirmemail_error' => 'भवतः दृढीकरणावसरे काचित् समस्या उत्पन्ना ।',
+'confirmemail_subject' => '{{SITENAME}}विद्युन्मानपत्रसङ्केतस्य दृढीकरणम् ।',
+'confirmemail_body' => 'कोऽपि अथवा भवान् $1 इति ऐपिसङ्केतद्वारा {{SITENAME}}इत्यस्मिन् "$2" इति नाम्ना योजकस्थाननिर्माणार्थम् अभ्यर्थनं दत्तवान् ।
+एतत् योजकस्थानं भवतः एव अपि च {{SITENAME}} इत्यस्मिन् उलब्धे विद्युन्मानपत्रसङ्केतः ।
+सुविधारम्भं कर्तुम् अधोदत्तानुबन्ध स्वस्य जालगवाक्षे उद्घाटयतु ।
+
+$3
+
+यदि एतदभ्यर्थनं भवान् न कृतवान् तर्हि एतत् अपकर्षितुम् अधो दतानुबन्धम् उद्घाटयतु ।
+
+$5
+
+इयं दृढीकरणसङ्केतसङ्ख्या $4 इत्यस्मिन् समाप्ता भवति ।',
+'confirmemail_body_changed' => 'कोऽपि अथवा भवान् $1 इति ऐपिसङ्केतद्वारा {{SITENAME}}इत्यस्मिन् "$2" इति योजस्थानस्य विद्युन्मानपत्रसङ्केतं परिवर्त्य दत्तवान्  ।
+अस्य विषयस्य दृढीकरणार्थम् एतत् योजकस्थानं भवतः एव अस्ति अपि च  {{SITENAME}}इत्यस्मिन् विद्युन्मानसौकर्यं पुनरारब्धुम् अधो दत्तानुबन्धं जालगवाक्षे उद्घाटयतु ।
+
+$3
+
+यदि एतत् योजकस्थानं भवतः नाश्ति तर्हि भवतः विद्युन्मानपत्रसङ्केतम् अपाकृष्टुं अधो दत्तानुबन्धं जालगवाक्षे उद्घाटयतु ।
+
+
+$5
+एतत् दृढीकर्तुं $6 इत्येतत् $7 इति होरायाः पश्चात् कार्यं न करोति ।',
+'confirmemail_body_set' => 'कोऽपि अथवा भवान् $1 इति ऐपिसङ्केतद्वारा {{SITENAME}}इत्यस्मिन् "$2" इति योजस्थानस्य विद्युन्मानपत्रसङ्केतं परिवर्त्य दत्तवान्  ।
+अस्य विषयस्य दृढीकरणार्थम् एतत् योजकस्थानं भवतः एव अस्ति अपि च  {{SITENAME}}इत्यस्मिन् विद्युन्मानसौकर्यं पुनरारब्धुम् अधो दत्तानुबन्धं जालगवाक्षे उद्घाटयतु ।
+
+$3
+
+यदि एतत् योजकस्थानं भवतः नाश्ति तर्हि भवतः विद्युन्मानपत्रसङ्केतम् अपाकृष्टुं अधो दत्तानुबन्धं जालगवाक्षे उद्घाटयतु ।
+
+
+$5
+एतत् दृढीकर्तुं $6 इत्येतत् $7 इति होरायाः पश्चात् कार्यं न करोति ।',
+'confirmemail_invalidated' => 'विद्युन्मानपत्रसङ्केतस्य दृढीकरणम् अपकर्षितम् ।',
+'invalidateemail' => 'विद्युन्मानपत्रस्य दृढीकरणम् अपकर्षतु ।',
+
+# Scary transclusion
+'scarytranscludedisabled' => 'अन्तर्विकीयः अन्तर्भवनं निष्क्रियम् ।',
+'scarytranscludefailed' => '$1 कृते प्राकृतिः प्रार्थना न प्राप्ता ।',
+'scarytranscludetoolong' => '[URLअतिदीर्घा अस्ति ]',
+
+# Delete conflict
+'deletedwhileediting' => 'पूर्वसूचना : भवतः सम्पादनारम्भात् पश्चात् एतत् पुटम् अपमर्जितम् ।',
+'confirmrecreate' => "योजकः [[User:$1|$1]] ([[User talk:$1|सम्भाषणम्]]) सकारणं भवतः सम्पादनात् परं पुटमेतत् अपमर्जितम् । 
+: ''$2''
+एतत्पुटं पुनर्निमातुम् इच्छति वेति दृढयतु ।",
+'confirmrecreate-noreason' => 'यदा भावान् अस्य पुटास्य सम्पादनम् आरब्धवान् तत्पश्चात् अन्यः योजकः [[User:$1|$1]] ([[User talk:$1|talk]]) एतत् अपनीतवान् । अतः एतत्पुटं पुनर्निमातुम् इच्छति वेति दृढयतु ।',
+'recreate' => 'पुनर्निर्मीयताम्',
 
 # action=purge
 'confirm_purge_button' => 'अस्तु',
+'confirm-purge-top' => 'अस्य पुटस्य इतिहाससङ्ग्रहं निर्मलं करोति वा ?',
+'confirm-purge-bottom' => 'कस्यचिदपि पुटस्य अपमर्जनेन सञ्चिका निर्मला भवति  अपि च नूतनतमा आवृत्तिः प्रकटिता भवति ।',
 
 # action=watch/unwatch
 'confirm-watch-button' => 'अस्तु',
 'confirm-watch-top' => 'इदं पृष्ठं भवतः अवेक्षणसूच्यां योजयाम ?',
 'confirm-unwatch-button' => 'अस्तु',
+'confirm-unwatch-top' => 'इदं पृष्ठं भवतः अवेक्षणसूच्याः निष्कास्यताम्',
 
 # Multipage image navigation
+'imgmultipageprev' => 'पूर्वतनं पृष्ठम्',
 'imgmultipagenext' => 'अग्रिमं पृष्ठम्',
 'imgmultigo' => 'गम्यताम् !',
 'imgmultigoto' => '$1 पृष्ठं गम्यताम्',
 
 # Table pager
+'ascending_abbrev' => 'आरुह्',
+'descending_abbrev' => 'अवरुह्',
 'table_pager_next' => 'अग्रिमं पृष्ठम्',
 'table_pager_prev' => 'पूर्वतनं पृष्ठम्',
 'table_pager_first' => 'प्रथमं पृष्ठम्',
 'table_pager_last' => 'अन्तिमं पृष्ठम्',
+'table_pager_limit' => 'प्रतिपृष्ठं $1 वस्तु दर्श्यताम्',
+'table_pager_limit_label' => 'प्रतिपुटं पदार्थाः ।',
 'table_pager_limit_submit' => 'गम्यताम्',
 'table_pager_empty' => 'फलितानि न सन्ति',
 
 # Auto-summaries
 'autosumm-blank' => 'पृष्ठं रिक्तीकृतम्',
+'autosumm-replace' => '"$1" इत्यनेन सह आधेस्य विनिमयः कृतः ।',
+'autoredircomment' => '[[$1]] प्रति पुटं पुनर्निदिष्टम् ।',
 'autosumm-new' => '$1 नवीन पृष्ठं निर्मीत अस्ती',
 
+# Live preview
+'livepreview-loading' => 'सम्पूर्यमाणः.....',
+'livepreview-ready' => 'सम्पूरणं सज्जम् ।',
+'livepreview-failed' => 'साक्षात् पूर्वावलोकनं निष्पलम् ।
+सामान्यपूर्वावलोकनं यतताम् ।',
+'livepreview-error' => '$1 "$2" तः सम्पर्कः न सिद्धः ।
+सामान्यपूर्वावलोकनं यतताम् ।',
+
+# Friendlier slave lag warnings
+'lag-warn-normal' => '$1 {{PLURAL:$1|क्षणम्|क्षणानि}} इति काले सम्भूतपरिवर्तन प्रायः अस्यां सूचिकायां न दर्शितम् ।',
+'lag-warn-high' => 'अत्युन्नतदत्तांशवितारकस्य विलम्बत्वेन {{PLURAL:$1|क्षणम्|क्षणानि}} तः पूर्वं सम्भूतपरिवर्तनं सूचिकायां न दृश्यते ।',
+
 # Watchlist editor
+'watchlistedit-numitems' => 'भवतः अवलोकनावली {{PLURAL:$1|1 शीर्षकम्|$1 शीर्षकानि}}, अन्तर्भूता, सम्भाषणपुटरहिता ।',
+'watchlistedit-noitems' => 'भवतः अवलोकनावली शीर्षकैः रहिता ।',
+'watchlistedit-normal-title' => 'अवलोकनावलीं सम्पादयतु ।',
+'watchlistedit-normal-legend' => 'अवलोकनावलीतः शीर्षकानि अपनयतु ।',
+'watchlistedit-normal-explain' => 'भवतः अवलोकनावल्याः शीर्षकानि अधः दर्शितानि । 
+शीर्षकम् अपनेतुम् अस्य पार्श्वे विद्यमानमञ्जूषाम् अर्गलयतु । पश्चात् {{int:Watchlistedit-normal-submit}}" एतत् तुदतु ।
+भवान् [[Special:EditWatchlist/raw|अपक्वावलोकनावलीं सम्पादयतु ]] कर्तुं शक्नोति ।',
+'watchlistedit-normal-submit' => 'शीर्षकानि अपनयतु ।',
+'watchlistedit-normal-done' => 'भवतः अवलोकनावली तः{{PLURAL:$1|1शीर्षकम्|$1 शीर्षकानि}} अपनीतानि ।',
+'watchlistedit-raw-title' => 'अपक्वाम् अवलोकनावलीं सम्पादयतु ।',
+'watchlistedit-raw-legend' => 'अपक्वाम् अवलोकनावलीं सम्पादयतु ।',
+'watchlistedit-raw-explain' => 'भवतः अवलोकनावल्याः शीर्षकानि अधः दर्शितानि । अपि च भवान् आवलीतः अपनीय संयोज्य वा परिवर्तयितुं शक्नोति । 
+प्रत्येकं लङ्क्तौ एकं शीर्षकम् । 
+समाप्तेः पश्चात् "{{int:Watchlistedit-raw-submit}}" एतत् तुदतु ।
+भवान् [[Special:EditWatchlist|सूक्तसम्पादकस्य]] अपि उपयोजयितुं शक्नोति ।',
 'watchlistedit-raw-titles' => 'शीर्षकाणि :',
 'watchlistedit-raw-submit' => 'अवलोकनावली उपारोप्यताम्',
+'watchlistedit-raw-done' => 'भवतः अवलोकनावली उन्नतीकारोतु ।',
+'watchlistedit-raw-added' => '{{PLURAL:$1|1शीर्षकम्|$1 शीर्षकानि}} संवृद्धानि ।',
+'watchlistedit-raw-removed' => '{{PLURAL:$1|1शीर्षकम्|$1 शीर्षकानि}} अपनीतानि ।',
 
 # Watchlist editing tools
 'watchlisttools-view' => 'उचितानि परिवर्तनानि दृश्यन्ताम्',
 'watchlisttools-edit' => 'अवेक्षणसूची दृश्यतां सम्पाद्यतां च',
 'watchlisttools-raw' => 'अपरिष्कृता अवेक्षणसूची सम्पाद्यताम्',
 
+# Signatures
+'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|अम्भाषणम्]])',
+
 # Core parser functions
+'unknown_extension_tag' => 'अज्ञातं वर्तमानसूत्रम् $1',
 'duplicate-defaultsort' => '\'\'\'प्रबोधः\'\'\' पुरानी मूल क्रमांकन कुंजी "$1" के बजाय अब मूल क्रमांकन कुंजी "$2" होगी।',
 
 # Special:Version
 'version' => 'आवृत्तिः',
+'version-extensions' => 'अनुस्थापितानि विस्तरणानि ।',
 'version-specialpages' => 'विशेषपृष्ठानि',
+'version-parserhooks' => 'विन्यासस्य आलम्बः ।',
+'version-variables' => 'भङ्गुरम्',
+'version-antispam' => 'अनिष्टस्य अवरोधः ।',
 'version-skins' => 'छादन',
 'version-other' => 'अन्यत्',
+'version-mediahandlers' => 'माध्यनिर्वाहकाः ।',
+'version-hooks' => 'आलम्बाः ।',
+'version-extension-functions' => 'विस्तरणस्य कार्यकलापाः ।',
+'version-parser-extensiontags' => 'विन्यासविस्तारणस्य सूत्रम् ।',
+'version-parser-function-hooks' => 'विन्यासकलापस्य आलम्बाः ।',
+'version-hook-name' => 'आलम्बस्य नाम ।',
+'version-hook-subscribedby' => 'सदस्यत्वम् अनेन प्राप्तम् ।',
+'version-version' => '(आवृत्तिः$1)',
+'version-license' => 'अनुज्ञापत्रम्',
+'version-poweredby-credits' => "इयं विकिः अनेन सञ्चालिता '''[//www.mediawiki.org/ MediaWiki]''', स्वामित्वम् © 2001 - $1  $2 ।",
 'version-poweredby-others' => 'अन्य',
+'version-license-info' => 'मिडियाविकिः तु निश्शुल्कतन्त्रांशः ; भवान् पुनः वितर्तुं शक्नोति अथवा GNU सामान्यसार्वजनिकानुज्ञपत्रस्य नियमानुगुणं द्वीतीयावृत्तिम् अथवा अन्यनूतनावृतिं संस्कर्तुं शक्नोति । 
+
+एषा बहूपयोगाय भवेत् इति धिया मिडियाविकिः वितीर्णा । किन्तु केनापि प्रमाणत्वेन विना दत्ता । अथवा निर्दिष्टोद्देशर्थे अनुकूलकरं वेति अपरिशील्य अथवा वाणिज्यस्य आनुषङ्गिकानुज्ञापत्रेण विना अपि मीडियाविकिः प्रदत्ता । विशेषविवरणप्राप्तये GNU सर्वजनसामान्यम् अनुज्ञापत्रं पश्यतु ।
+
+[{{SERVER}}{{SCRIPTPATH}}/COPYING काचित् प्रतिः, GNU सर्वजनसामान्यम् अनुज्ञापत्रम्] इत्येतत् भवान् स्वीकृतवान् । अनेन कार्यकलापेन सह , यदि नास्ति, निश्शुल्कतन्त्रज्ञानप्रतिष्ठानं पत्रं प्रेषयतु । सङ्केतः - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA or [//www.gnu.org/licenses/old-licenses/gpl-2.0.html सद्यसः पठितुमर्हति]',
+'version-software' => 'तन्त्रांशः अनुस्थापितः ।',
 'version-software-product' => 'उत्पाद',
 'version-software-version' => 'आवृत्ति',
+'version-entrypoints' => 'प्रवेशबिन्दुः URLs',
+'version-entrypoints-header-entrypoint' => 'प्रवेशबिन्दुः ।',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
+'filepath' => 'सञ्चिकापथः ।',
 'filepath-page' => 'सञ्चिका:',
 'filepath-submit' => 'गम्यताम्',
+'filepath-summary' => 'एतद्विशेषपुटं सञ्चिकायाः पूर्णपथं प्रदर्शयति । 
+चित्राणि परिपूर्णसत्वयुतानि दर्शितानि । अन्यसञ्चिकाभेदाः सम्बद्धकार्यकलापैः प्रत्यक्षं आरब्धाः ।',
 
 # Special:FileDuplicateSearch
+'fileduplicatesearch' => 'प्रतिकृतिसञ्चिकार्थम् अन्विषतु ।',
+'fileduplicatesearch-summary' => 'सम्मिश्रमौल्यामूलयुतर्थं  प्रतिकृतिसञ्चिकार्थम् अन्विषतु ।',
+'fileduplicatesearch-legend' => 'प्रतिकृत्यर्थम् अन्विषतु ।',
 'fileduplicatesearch-filename' => 'सञ्चिकानाम:',
 'fileduplicatesearch-submit' => 'अन्वेषणम्',
+'fileduplicatesearch-info' => '$1 × $2 पिक्सेलानि, संचिकायाः आकारः: $3, MIME-प्रकारः: $4',
+'fileduplicatesearch-result-1' => '"$1" इत्यस्मिन् सादृश्यावृत्तिः नास्ति ।',
+'fileduplicatesearch-result-n' => 'इति सञ्चिका {{PLURAL:$1|सादृश्यप्रतिकृतिः|$2 सादृश्यप्रतिकृतयः}}',
+'fileduplicatesearch-noresults' => '"$1" इति नाम्ना सञ्चिका न दृष्टा ।',
 
 # Special:SpecialPages
 'specialpages' => 'विशेषपृष्ठानि',
+'specialpages-note' => '----
+* साधारणं विशेषपुटम् । 
+* <span class="mw-specialpagerestricted">प्रतिद्धं विशेषपुटम् ।</span>',
+'specialpages-group-maintenance' => 'निर्वहणवृत्तानि ।',
+'specialpages-group-other' => 'अन्यविशेषपुटानि ।',
 'specialpages-group-login' => 'प्रविश्यताम् / लेखा सृज्यताम्',
 'specialpages-group-changes' => 'सद्योजातानि परिवर्तनानि आवल्यश्च',
 'specialpages-group-media' => 'माध्यमस्य इतिवृत्तम् आरोपणानि च',
@@ -3350,6 +3710,7 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'tag-filter' => '[[Special:Tags|Tag]] शोधनी:',
 'tag-filter-submit' => 'शोधनी',
 'tags-title' => 'अङ्कनानि',
+'tags-intro' => 'एतत्पुटं सार्थसूत्राणि दर्शयति यस्य कोऽपि तन्त्रांशः यत्किमपि सम्पादनम् अङ्कयितुं प्रयोजयति ।',
 'tags-tag' => 'अङ्कननाम',
 'tags-display-header' => 'परिवर्तितसूचीषु प्रदर्शनम्',
 'tags-description-header' => 'अर्थस्य समग्रवर्णनम्',
@@ -3373,12 +3734,18 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'dberr-header' => 'अस्मिन् विकिमध्ये काचित् समस्या विद्यते',
 'dberr-problems' => 'क्षम्यताम् ! अस्मिन् जालपुटे तान्त्रिकसमस्याः अनुभूयमानाः सन्ति ।',
 'dberr-again' => 'किञ्चित् कालं प्रतीक्ष्य पुनः उपारोप्यताम् ।',
+'dberr-info' => '(दत्ताशं वितारकं सम्पर्कयितुं नैव शक्यते $1 )',
+'dberr-usegoogle' => 'अत्रान्तरे भवान् गूगल् इति शोधनयन्त्रे अन्वेषणं कर्तुं शक्नोति ।',
+'dberr-outofdate' => 'अस्माकम् आधेयस्य तेषाम् अनुक्रमणिका कालातिक्रान्ता इति जानातु ।',
+'dberr-cachederror' => 'एषा सङ्ग्रहितप्रतिः अभ्यर्थितपुटस्य , एषा उन्नतीकृता अपि न स्यात् ।',
 
 # HTML forms
 'htmlform-invalid-input' => 'भवता आरोपितेषु अंशेषु काचन समस्या विद्यते ।',
 'htmlform-select-badoption' => 'भवता निर्दिष्टं मौल्यं युक्तविकल्पः न ।',
 'htmlform-int-invalid' => 'भवता निर्दिष्टं मौल्यं पूर्णाङ्कः न ।',
 'htmlform-float-invalid' => 'भवता निर्दिष्टं मौल्यं संख्या न ।',
+'htmlform-int-toolow' => 'भवता निश्चितं मौल्यं $1 इत्यस्मात् न्यूनम् अस्ति ।',
+'htmlform-int-toohigh' => 'भवता निश्चितं मौल्यं  $1 तः अधिकम् अस्ति ।',
 'htmlform-required' => 'इदं मूल्यम् अपेक्षितम् ।',
 'htmlform-submit' => 'उपस्थाप्यताम्',
 'htmlform-reset' => 'परिवर्तनानि पूर्वस्थितिं प्रति आनयतु',
@@ -3391,6 +3758,15 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 # New logging system
 'logentry-delete-delete' => '$1 इत्यनेन $3 पुटं निष्कासितम्',
 'logentry-delete-restore' => '$1 इत्यनेन $3 पृष्ठं प्रात्यानीतम्',
+'logentry-delete-event' => '$1 परिवर्तितदृश्यस्य {{PLURAL:$5|a log event|$5 log events}} $3: $4 इत्यस्मिन् ।',
+'logentry-delete-revision' => '$1 इत्येषः $3 पुटस्य {{PLURAL:$5|एका आवृत्तिः|$५ आवृत्तयः}}इत्यस्य दृश्यता परिवर्तिता $4',
+'logentry-delete-event-legacy' => '$1 इत्येतत् $3 पुटे  प्रवेशप्रक्रियायाः दृश्यताः परिवर्तिता ।',
+'logentry-delete-revision-legacy' => '$1 इत्येतत् $3 पुटे आवृत्तीनां दृश्यता  परिवर्तिता ।',
+'logentry-suppress-delete' => '$1 निग्रहितपुटम् $3',
+'logentry-suppress-event' => '$1 परिवर्तितदृश्यस्य {{PLURAL:$5|a log event|$5 log events}} $3: $4 इत्यस्मिन् ।',
+'logentry-suppress-revision' => '$1 इत्येषः $3 पुटस्य {{PLURAL:$5|एका आवृत्तिः|$५ आवृत्तयः}}इत्यस्य दृश्यता परिवर्तिता $4',
+'logentry-suppress-event-legacy' => '$1 इत्येतत् $3 पुटे  प्रवेशप्रक्रियायाः दृश्यताः परिवर्तिता ।',
+'logentry-suppress-revision-legacy' => '$1 इत्येतत् $3 पुटे आवृत्तीनां दृश्यता  परिवर्तिता ।',
 'revdelete-content-hid' => 'आधेयं विलोपितम्',
 'revdelete-summary-hid' => 'सम्पादनसारः विलोपितः',
 'revdelete-uname-hid' => 'योजकस्य नाम सङ्गुप्तम् ।',
@@ -3404,6 +3780,8 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'logentry-move-move_redir' => '↓
 $1 इत्यनेन $3 इति पृष्ठम् $4 इत्येतत् प्रति चालितं, अनुप्रेषणम् अतिक्रम्य',
 'logentry-move-move_redir-noredirect' => '$1 इति प्रयोक्त्रा $3 इति पृष्ठं $4 इत्येतत् प्रति चालितम्, अनुप्रेषणम् अतिक्रम्य, अनुप्रेषणमोचनेन च विना।',
+'logentry-patrol-patrol' => '$1 अङ्कितावृत्तिः $4 इति पुटस्य $3 आरक्षणम् ।',
+'logentry-patrol-patrol-auto' => '$1 इत्येतत् $3 पुटस्य $4 आवृत्तिं स्वयं चालितरूपात् आरक्षितम् ।',
 'logentry-newusers-newusers' => '$1 योजकलेखाम् असृजत्',
 'logentry-newusers-create' => '$1 योजकलेखाम् असृजत्',
 'logentry-newusers-create2' => '$1,  $3 योजकलेखाम् असृजत्',
@@ -3411,29 +3789,51 @@ $1 इत्यनेन $3 इति पृष्ठम् $4 इत्ये
 'newuserlog-byemail' => 'कूटशब्दः ईपत्रद्वारा प्रेषितः',
 
 # Feedback
+'feedback-bugornote' => 'यदि भवान् कस्याश्चित् तान्त्रिकसमस्यायाः विषये विशदीकर्तुम् इच्छति तर्हि [$1 मत्कुणसञ्चिकां करोतु ।]
+अन्यथा चेत् भवान् सरलप्रपत्रम् उपयोक्तुं शक्नोति । भवतः टीका योजकनाम्ना सह भवतः जालगवाक्षेन सह  "[$3 $2]" इत्यस्मिन् पुटे योज्यते ।',
 'feedback-subject' => 'विषय:',
 'feedback-message' => 'संदेश:',
 'feedback-cancel' => 'निवर्तयते',
 'feedback-submit' => 'प्रतिस्पन्दः प्रेष्यताम्',
 'feedback-adding' => 'पृष्ठे प्रतिस्पन्दः योजनीयः ...',
+'feedback-error1' => 'API इत्यस्मात् दोषः : अज्ञातः परिणामः ।',
 'feedback-error2' => 'दोषः : सम्पादनं निष्फलं जातम्',
 'feedback-error3' => 'दोषः : ए पि ऐ तः प्रतिस्पन्दः न प्राप्तः',
 'feedback-thanks' => 'धन्यवादः ! भवतः प्रतिस्पन्दः "[ $2  $1 ]" पृष्ठाय प्रेषितः अस्ति ।',
 'feedback-close' => 'समापित',
+'feedback-bugcheck' => 'उत्तमम् परिशीलयतु यत्  [ $1 known bugs] पूर्वमेव नासीत् इति ।',
+'feedback-bugnew' => 'अहं परीक्षितवान् ।  नूतनदोषं सूचयतु ।',
 
 # API errors
+'api-error-badaccess-groups' => 'भवान् अस्यां वीक्यां सञ्चिकाः उत्तारयितुम् नानुमतः ।',
+'api-error-badtoken' => 'आन्तरिकदोषः : दुष्टप्रतीकः ।',
+'api-error-copyuploaddisabled' => 'अस्मिन् वितारके युआर् एल् द्वारा उत्तारणं निष्क्रियम् ।',
+'api-error-duplicate' => '{{PLURAL:$1| [ $2 अन्यसञ्चिकाः] | सन्ति [ $2 काश्चन अन्यसञ्चिकाः]}} एकस्मिन् एव ।',
+'api-error-duplicate-archive' => 'तत्र {{PLURAL:$1|आसीत् [$2 काश्चन अन्यसञ्चिकाः] |  [$2काचन अन्यसञ्चिकाः]}}, पूर्वमेव {{PLURAL:$1|यह was|they आसन्}} किन्तु अपनीताः ।',
+'api-error-duplicate-archive-popup-title' => 'द्विप्रतिः {{PLURAL:$1| सञ्चिका |सञ्चिकाः}} पूर्वमेव अपमर्जिताः ।',
+'api-error-duplicate-popup-title' => 'द्विप्रतिः {{PLURAL:$1| सञ्चिका| सञ्चिकाः}}',
 'api-error-empty-file' => 'समर्पिता सञ्चिका रिक्ता आसीत् ।',
 'api-error-emptypage' => 'नूतनस्य रिक्तस्य पृष्ठस्य सर्जनं निषिद्धम् ।',
 'api-error-fetchfileerror' => 'आन्तरिकदोषः : सञ्चिकायाः प्राप्त्यवसरे कश्चन दोषः जातः ।',
 'api-error-fileexists-forbidden' => '"$1" नामिका सञ्चिका पूर्वमेव विद्यते । पुनः तदुपरि लेखनम् अशक्यम् ।',
+'api-error-fileexists-shared-forbidden' => '"$1" इति नाम्नः सञ्चिका पूर्वमेव सञ्चिकाकोशे अस्ति । अधिलिखितं न स्यात् ।',
 'api-error-file-too-large' => 'समर्पिता सञ्चिका सुदीर्घा अस्ति ।',
 'api-error-filename-tooshort' => 'सञ्चिकानाम अतीव ह्रस्वम् अस्ति ।',
 'api-error-filetype-banned' => 'ईदृशी सञ्चिका अनुरुद्धा ।',
+'api-error-filetype-banned-type' => '\'\'\'".$1"\'\'\'सञ्चिका {{PLURAL:$4|प्रकारस्य }} अनुमतिः नास्ति ।
+प्रकारसञ्चिकायाः{{PLURAL:$3|}} अनुमतिरस्ति  $2।',
 'api-error-filetype-missing' => 'अस्याः सञ्चिकायाः विस्तारः लुप्तः अस्ति ।',
 'api-error-hookaborted' => 'भवतः संस्करणप्रयत्नः विस्तारेण अपसारितः ।',
 'api-error-http' => 'आन्तरिकदोषः : वितारकस्य सम्पर्के असमर्थम् ।',
 'api-error-illegal-filename' => 'सञ्चिकानामलेखनं नानुमतम् ।',
+'api-error-internal-error' => 'आन्तरिकदोषः : वीक्यां भवतः उत्तारणावसरे काचनदोषः संवृत्तः ।',
+'api-error-invalid-file-key' => 'आन्तरिकदोषः : अनित्यसञ्चिकाकोशे सञ्चिका न दृष्टा ।',
+'api-error-missingparam' => 'आन्तरिकदोषः : अभ्यर्थनानुगुणं व्याप्तिः विलुप्ता ।',
+'api-error-missingresult' => 'आन्तरिकदोषः : प्रतिकृतिः सफला इति निश्चिता नाभवत् ।',
 'api-error-mustbeloggedin' => 'सञ्चिकायाः उपारोपणाय अन्तः प्रवेशः अनिवार्यः ।',
+'api-error-mustbeposted' => 'आन्तरिकदोषः : HTTP प्रस्तोतुम् अभ्यर्थनम् आवश्यकम् ।',
+'api-error-noimageinfo' => 'उत्तारणं सफलम् । किन्तु सञ्चिकाविषये वितारकः कामपि सूचनां न अयच्छतु ।',
+'api-error-nomodule' => 'आन्तरिकदोषः : उत्तारणघटकः न व्यवस्थितः ।',
 'api-error-ok-but-empty' => 'आन्तरिकदोषः : वितारकतः प्रतिस्पन्दः न प्राप्तः ।',
 'api-error-overwrite' => 'वर्तमानसञ्चिकायाः पुनर्लेखनं नानुमतम् ।',
 'api-error-stashfailed' => 'आन्तरिकदोषः : तात्कालिकसञ्चिकायाः रक्षणे वितारकः असमर्थः जातः ।',
index d17324b..935f965 100644 (file)
@@ -50,7 +50,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Ботурууллааччы көрбүт көннөрүүтүн саҥа көннөрүүлэр тиһиктэригэр көрдөрүмэ',
 'tog-newpageshidepatrolled' => 'Ботуруулламмыт сирэйдэри саҥа сирэйдэр тиһиктэригэр көрдөрүмэ',
 'tog-extendwatchlist' => 'Кэтээһин тупсарыллыбыт испииһэгэ. Бары уларытыылар көстөллөр (бүтэһиктэр эрэ буолбатах)',
-'tog-usenewrc' => 'Саҥа Ñ\83лаÑ\80Ñ\8bÑ\82Ñ\8bÑ\8bлаÑ\80 Ñ\82Ñ\83пÑ\81аÑ\80Ñ\8bллÑ\8bбÑ\8bÑ\82 Ð¸Ñ\81пииһÑ\8dкÑ\82Ñ\8dÑ\80ин Ñ\82Ñ\83Ñ\82Ñ\82Ñ\83Ñ\83 (JavaScript баар буолуохтаах)',
+'tog-usenewrc' => 'Саҥа Ñ\83лаÑ\80Ñ\8bÑ\82Ñ\8bÑ\8bлаÑ\80 Ñ\83онна ÐºÑ\8dÑ\82Ñ\8dбил Ñ\82иһикÑ\82Ñ\8dÑ\80игÑ\8dÑ\80 Ñ\83лаÑ\80Ñ\8bйÑ\8bÑ\8bлаÑ\80Ñ\8b Ð±Ó©Ð»Ó©Ñ\85Ñ\82Ò¯Ò¯Ñ\80гÑ\8d (JavaScript баар буолуохтаах)',
 'tog-numberheadings' => 'Бас тыллары нүөмэрдээ',
 'tog-showtoolbar' => 'Көннөрүү үстүрүмүөннэрин көрдөр (JavaScript)',
 'tog-editondblclick' => 'Хоһулатан иккитэ баттаан сирэйи уларытыы (JavaScript)',
@@ -306,6 +306,9 @@ $1',
 'youhavenewmessages' => '$1 ($2) кэллэ',
 'newmessageslink' => 'саҥа суруктар',
 'newmessagesdifflink' => 'кэлиҥҥи уларытыы',
+'youhavenewmessagesfromusers' => 'Маны $1 {{PLURAL:$3|соҕотох кыттааччыттан|$3 кыттааччыттан}} туппуккун ($2).',
+'youhavenewmessagesmanyusers' => 'Маны $1 элбэх кыттааччыттан туппуккун ($2).',
+'newmessagesdifflinkplural' => 'тиһэх {{PLURAL:$1|уларытыы|уларытыылар}}',
 'youhavenewmessagesmulti' => '$1, саҥа суруктар кэллилэр',
 'editsection' => 'уларыт',
 'editold' => 'уларыт',
@@ -1423,9 +1426,9 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 Урут суруллубут билэлэри көрөргө манна тиий: [[Special:FileList|ойуулар тиһиктэрэ]]. Билэлэри суруйуу уонна иккистээн суруйуу устуоруйата [[Special:Log/upload|манна]], сотуу устуоруйата [[Special:Log/delete|манна]] көстөллөр.
 
 Ойууну ыстатыйаҕа киллэрэргэ маннык суруйуллар:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' ойуу хайдах баарынан (кыччаппакка)
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|хос быһаарыы]]</nowiki></tt>''' 200 пииксэл кэтиттээх аллараа өттүгэр быһаарыы суруктаах экран хаҥас кырыытыгар сыстар ойуу
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' - ойууну бэйэтин көрдөрбөккө сигэтин эрэ көрдөрүү.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' ойуу хайдах баарынан (кыччаппакка)
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|хос быһаарыы]]</nowiki></code>''' 200 пииксэл кэтиттээх аллараа өттүгэр быһаарыы суруктаах экран хаҥас кырыытыгар сыстар ойуу
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' - ойууну бэйэтин көрдөрбөккө сигэтин эрэ көрдөрүү.",
 'upload-permitted' => 'Көҥүллэммит билэ көрүҥнэрэ: $1.',
 'upload-preferred' => 'Маннык билэ көрүҥнэрин туһанар ордук: $1.',
 'upload-prohibited' => 'Маннык билэ көрүҥнэрэ бобуллубуттар: $1.',
@@ -1469,20 +1472,20 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 'largefileserver' => 'Билэ ыйааһына көҥүллэммиттэн ордук.',
 'emptyfile' => 'Суруйбут билэҥ арааһа кураанах быһылаах. Баҕар билэ аатын сыыһа суруйбутуҥ буолаарай. Өссө төгүл көр.',
 'windows-nonascii-filename' => 'Бу биики ASCII табылыыссатыгар суох бэлиэлэри өйөөбөт..',
-'fileexists' => "Инник ааттаах билэ бэлиэр баар эбит, ону уларытыаххын саарбахтыыр буоллаххына - маны көр '''<tt>[[:$1]]</tt>'''.
-[[$1|thumb]]",
-'filepageexists' => "Бу билэни быһаарар сирэй урут бу аатынан оҥоһуллубут эбит: '''<tt>[[:$1]]</tt>''', ол гынан баран маннык ааттаах сирэй суох.
+'fileexists' => 'Инник ааттаах билэ бэлиэр баар эбит, ону уларытыаххын саарбахтыыр буоллаххына - маны көр <strong>[[:$1]]</strong>.
+[[$1|thumb]]',
+'filepageexists' => 'Бу билэни быһаарар сирэй урут бу аатынан оҥоһуллубут эбит: <strong>[[:$1]]</strong>, ол гынан баран маннык ааттаах сирэй суох.
 Киллэрбит быһаарыыҥ быһаарыы сирэйигэр тахсыа суоҕа.
 Саҥа быһаарыыны эбэр буоллаххына илиигинэн уларытыаххын наада.
-[[$1|thumb]]",
-'fileexists-extension' => "Майгынныыр ааттаах билэ баар: [[$2|thumb]]
-* Эн суруйбут билэҥ аата: '''<tt>[[:$1]]</tt>'''
-* Уруккуттан баар билэ аата: '''<tt>[[:$2]]</tt>'''
-Атын аатта таларыҥ буоллар.",
-'fileexists-thumbnail-yes' => "Ойуу арааһа кыччатыллыбыт ойуу (миниатюра) быһыылаах. [[$1|thumb]]
-Көр '''<tt>[[:$1]]</tt>'''.
-Бу ойуу урукку ойуу кыччатыллыбыта буоллаҕына суруйар наадата суох.",
-'file-thumbnail-no' => "Билэ аата мантан саҕаланар '''<tt>$1</tt>'''.
+[[$1|thumb]]',
+'fileexists-extension' => 'Майгынныыр ааттаах билэ баар: [[$2|thumb]]
+* Эн суруйбут билэҥ аата: <strong>[[:$1]]</strong>
+* Уруккуттан баар билэ аата: <strong>[[:$2]]</strong>
+Атын аатта таларыҥ буоллар.',
+'fileexists-thumbnail-yes' => 'Ойуу арааһа кыччатыллыбыт ойуу (миниатюра) быһыылаах. [[$1|thumb]]
+Көр <strong>[[:$1]]</strong>.
+Бу ойуу урукку ойуу кыччатыллыбыта буоллаҕына суруйар наадата суох.',
+'file-thumbnail-no' => "Билэ аата мантан саҕаланар <strong>$1</strong>.
 Арааһа ойуу кыра куоппуйата быһыылаах ''(миниатюра)''.
 Бу ойуу толору барыйаана баар буоллаҕына ону манна суруй, эбэтэр аатын уларыт.",
 'fileexists-forbidden' => 'Маннык ааттаах билэ баар, хат суруллар кыаҕа суох.
@@ -1737,7 +1740,7 @@ $1',
 
 # MIME search
 'mimesearch' => 'MIME көрдөөһүн',
-'mimesearch-summary' => 'Бу сирэй MIME көрүҥнээх фильтрдааһыны көҥүллүүр. Киллэрии: contenttype/subtype, холобур <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Бу сирэй MIME көрүҥнээх фильтрдааһыны көҥүллүүр. Киллэрии: contenttype/subtype, холобур <code>image/jpeg</code>.',
 'mimetype' => 'MIME көрүҥэ:',
 'download' => 'хачайдаан ылыы',
 
@@ -1936,7 +1939,7 @@ $1',
 'linksearch-ok' => 'Бул',
 'linksearch-text' => 'Туруоран биэрэр бэлиэлэри туһаныахха сөп, холобур, "*.wikipedia.org".
 Саатар үрдүкү таһымнаах домен наада эбит, холобур "*.org".<br />
-Өйүүр боротокуоллар: <tt>$1</tt> (көрдүүргэр балартан ханныгын да эбимэ)',
+Өйүүр боротокуоллар: <code>$1</code> (көрдүүргэр балартан ханныгын да эбимэ)',
 'linksearch-line' => 'Мантан $2 манна $1 ыйынньык',
 'linksearch-error' => 'Туруоран биэрэр бэлиэлэри аадырыс/hostname саҕаланыытыгар эрэ туттуохха сөп.',
 
@@ -2778,15 +2781,10 @@ $1',
 # Info page
 'pageinfo-title' => '"$1" туһунан',
 'pageinfo-header-edits' => 'Уларытыылар',
-'pageinfo-header-watchlist' => 'Кэтээһин тиһигэ',
-'pageinfo-header-views' => 'Көрүүлэр',
-'pageinfo-subjectpage' => 'Сирэй',
-'pageinfo-talkpage' => 'Ырытыы сирэйэ',
+'pageinfo-views' => 'Көрүү ахсаана',
 'pageinfo-watchers' => 'Кэтээччилэр ахсааннара',
 'pageinfo-edits' => 'Көннөрүү ахсаана',
-'pageinfo-authors' => 'Араас ааптардар ахсааннара',
-'pageinfo-views' => 'Көрүү ахсаана',
-'pageinfo-viewsperedit' => 'Биир уларытыыга тиксэр көрүү ахсаана',
+'pageinfo-authors' => 'Бу сирэйи уларыппыт ааптардар ахсааннара',
 
 # Skin names
 'skinname-standard' => 'Классика',
index 6289a79..dd50025 100644 (file)
@@ -1152,10 +1152,6 @@ Ona te source em ńel daṛeaḱ',
 
 # Info page
 'pageinfo-header-edits' => 'Toṅgeko',
-'pageinfo-header-watchlist' => 'Ńeloḱ tạlika',
-'pageinfo-header-views' => 'Ńelme',
-'pageinfo-subjectpage' => 'Sakam',
-'pageinfo-talkpage' => 'Galmarao sakam',
 'pageinfo-watchers' => 'Ńeńelkoaḱ nombor',
 
 # Browsing diffs
index e7eb926..560516f 100644 (file)
@@ -843,9 +843,9 @@ Is pàginas de sa [[Special:Watchlist|watchlist tua]] sunt in '''grassu'''.",
 Pro castiare o chircare is files giai carrigaus, bae a sa [[Special:FileList|lista de is files carrigaus]]. Carrigamentos de files e de noas versiones de files sunt registradas in su [[Special:Log/upload|registru de carrigamentu]], is burraduras in su [[Special:Log/delete|registru burraduras]].
 
 Pro insertare unu file aintru de una pàgina, tocat a faghere unu cullegamentu tipu custu:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' pro impreare sa versione cumpleta de su file
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|testo alternativo]]</nowiki></tt>''' pro impreare una versione lada 200 pixel insertada in d'unu box, allinniada a manca e cun 'testu alternativu' comente didascalia
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' pro ingenerare unu cullegamentu a su file chentza de du biri",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' pro impreare sa versione cumpleta de su file
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|testo alternativo]]</nowiki></code>''' pro impreare una versione lada 200 pixel insertada in d'unu box, allinniada a manca e cun 'testu alternativu' comente didascalia
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' pro ingenerare unu cullegamentu a su file chentza de du biri",
 'uploadlogpage' => 'Carrigadas',
 'uploadlogpagetext' => 'A suta ddoi est sa lista de is files carrigados de reghente.
 Càstia sa [[Special:NewFiles|galleria de files nous]] pro una presentada prus bisuale.',
index 4581520..a74b896 100644 (file)
@@ -1333,9 +1333,9 @@ L'operazioni nun pò èssiri annullata.",
 riggistrati [[Special:Log/delete|ccà]].
 
 Pi nziriri nu file nta na pàggina, fai nu lijami accussì:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' p'usari la virsioni ntera dû file
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|testu altirnativu]]</nowiki></tt>''' p'usari na virsioni làrica 200 pixel nziruta nta nu box, alliniata a manu manca e cu 'testu altirnativu' comu didascalìa
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' pi culligari direttamenti a lu file senza vidìrilu.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' p'usari la virsioni ntera dû file
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|testu altirnativu]]</nowiki></code>''' p'usari na virsioni làrica 200 pixel nziruta nta nu box, alliniata a manu manca e cu 'testu altirnativu' comu didascalìa
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' pi culligari direttamenti a lu file senza vidìrilu.",
 'upload-permitted' => 'Tipi di file cunzintiti: $1.',
 'upload-preferred' => 'Tipi di file cunsigghiati: $1.',
 'upload-prohibited' => 'Tipi di file pruibbiti: $1.',
@@ -1363,17 +1363,17 @@ Pi nziriri nu file nta na pàggina, fai nu lijami accussì:
 'large-file' => 'Si raccumanna di nun supirari li diminzioni di $1 pi ognunu file; stu file è granni $2.',
 'largefileserver' => 'Lu file sùpira li diminzioni cunzintiti dâ cunfigurazzioni dû server.',
 'emptyfile' => "Lu file appena carricatu pari èssiri vacanti. Chistu putissi èssiri duvutu a n'erruri ntô nomu dû file. Virificari ca si ntenni riarmenti carricari stu file.",
-'fileexists' => "Nu file cu stu nomu asisti già, pi favuri cuntrolla '''<tt>[[:$1]]</tt>''' siddu nun sî sicuru di vulìrilu suvrascrìviri.
-[[$1|thumb]]",
-'filepageexists' => "La pàggina di discrizzioni di stu file fu ggià criata nnû nnirizzu '''<tt>[[:$1]]</tt>''', macari si ancora non c'è nu file cu stu nomu. La discrizzioni di l'uggettu ca fu misa ntô mentri dû caricamentu non si vidi supra a la pàggina di discussioni. Pi fàrila cumpàriri ntâ pàggina di discussioni, c'è la nicissitati di mudificàrila a manu",
+'fileexists' => 'Nu file cu stu nomu asisti già, pi favuri cuntrolla <strong>[[:$1]]</strong> siddu nun sî sicuru di vulìrilu suvrascrìviri.
+[[$1|thumb]]',
+'filepageexists' => "La pàggina di discrizzioni di stu file fu ggià criata nnû nnirizzu <strong>[[:$1]]</strong>, macari si ancora non c'è nu file cu stu nomu. La discrizzioni di l'uggettu ca fu misa ntô mentri dû caricamentu non si vidi supra a la pàggina di discussioni. Pi fàrila cumpàriri ntâ pàggina di discussioni, c'è la nicissitati di mudificàrila a manu",
 'fileexists-extension' => "Nu file cu nu nomu simili a chistu esisti già; l'unica diffirenza è l'usu dê maiusculi nte l'estensioni: [[$2|thumb]]
-* Nomu dû file carricatu: '''<tt>[[:$1]]</tt>'''
-* Nome dû file esistenti: '''<tt>[[:$2]]</tt>'''
+* Nomu dû file carricatu: <strong>[[:$1]]</strong>
+* Nome dû file esistenti: <strong>[[:$2]]</strong>
 Pi favuri scegghiti n'àutru nomu.",
 'fileexists-thumbnail-yes' => "Lu file carricato sembra èssiri lu risurtatu di n'antiprima ''(thumbnail)''. [[$1|thumb]]
-Virificari, pi cunfruntu, lu file '''<tt>[[:$1]]</tt>'''.
+Virificari, pi cunfruntu, lu file <strong>[[:$1]]</strong>.
 Siduu si tratta dâ stissa mmagini, nte dimenzioni urigginali, nun è nicissariu carricara àutri antiprimi.",
-'file-thumbnail-no' => "Lu nomu dô file accumenza cu '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Lu nomu dô file accumenza cu <strong>$1</strong>.
 Pari quinni èssiri lu risurtatu di n'antiprima ''(thumbnail)''.
 Siddu si disponi dâ mmàggini ntâ risuluzzioni urigginali, si prega di carricàrila. 'N casu cuntrariu, si prega di canciari lu nomu dô file.",
 'fileexists-forbidden' => "Nu file cu stu nomu asisti già e nun pò essiri sovrascrittu. Turnari n'arreri e canciari lu nomu cu lu quali carricari lu file. [[File:$1|thumb|center|$1]]",
@@ -1518,7 +1518,7 @@ Appressu veni ammustrata la discrizioni prisenti nâ [$2 paggina di discrizzioni
 
 # MIME search
 'mimesearch' => "Circata 'n basi a lu tipu MIME",
-'mimesearch-summary' => "Sta pàggina cunzenti di filtrari li file 'n basi a lu tipu MIME. Nziriri la stringa di ricerca ntâ forma tipu/suttatipu, p'asempiu <tt>image/jpeg</tt>.",
+'mimesearch-summary' => "Sta pàggina cunzenti di filtrari li file 'n basi a lu tipu MIME. Nziriri la stringa di ricerca ntâ forma tipu/suttatipu, p'asempiu <code>image/jpeg</code>.",
 'mimetype' => 'Tipu MIME:',
 'download' => 'scarica',
 
@@ -1701,7 +1701,7 @@ Talìa macari li [[Special:WantedCategories|catigurìi addumannati]].',
 'linksearch-ns' => 'Namespace:',
 'linksearch-ok' => 'Cerca',
 'linksearch-text' => 'C\'è la pussibbilitati di fari usu di metacaràttiri, p\'asèmpiu "*.wikipedia.org".<br />
-Protucolli suppurtati: <tt>$1</tt>',
+Protucolli suppurtati: <code>$1</code>',
 'linksearch-line' => '$1 prisenti ntâ pàggina $2',
 'linksearch-error' => 'Li metacaràttiri si ponnu usari sulu a lu princìpiu dû nnirizzu.',
 
index fb14ac7..95939d5 100644 (file)
@@ -892,7 +892,7 @@ Tae pit the eimage intae a page, uise an airtin i the form
 'illegalfilename' => 'The filename "$1" haes characters that isna alloud in page teitles. Please rename the file an gie uplaidin it anither shot.',
 'badfilename' => 'Eimage name haes been chynged tae "$1".',
 'largefileserver' => 'This file is bigger nor the server is confeigurt tae allou.',
-'fileexists' => "A file wi this name exists aareadies, please check '''<tt>[[:$1]]</tt>''' gin ye'r no siccar that ye want tae chynge it.
+'fileexists' => "A file wi this name exists aareadies, please check <strong>[[:$1]]</strong> gin ye'r no siccar that ye want tae chynge it.
 [[$1|thumb]]",
 'fileexists-forbidden' => 'A file wi this name aareadies exists; please gang back an uplaid this file unner a new name. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'A file wi this name aareadies exists in the shared file depose; please gang back an uplaid this file unner a new name. [[File:$1|thumb|center|$1]]',
index a3fbf49..80a7268 100644 (file)
@@ -1003,16 +1003,16 @@ usà inveci
 'largefileserver' => 'Lu file supara li misuri cunsintiddi da la cunfigurazioni di lu server.',
 'emptyfile' => "Lu file appena cariggaddu pari assé bioddu. Lu chi pudia assé dubuddu a un'errori i' l'innòmmu di lu file. Verifiggà chi s'aggia avveru gana di cariggà chisthu file.",
 'fileexists' => "Un file cu' chisth'innòmmu isisthi già.
-Verifiggà primma '''<tt>[[:$1]]</tt>''' si nò s'è sigguri di vurellu sobbraschribì.
+Verifiggà primma <strong>[[:$1]]</strong> si nò s'è sigguri di vurellu sobbraschribì.
 [[$1|thumb]]",
 'fileexists-extension' => "Un file cu'un'innòmmu sìmmiri isisthi già; la sora diffarènzia è l'usu di li maiuschini i' l'esthensioni: [[$2|thumb]]
-* Innòmmu di lu file cariggaddu: '''<tt>[[:$1]]</tt>'''
-* Innòmmu di lu file esisthenti: '''<tt>[[:$2]]</tt>'''
+* Innòmmu di lu file cariggaddu: <strong>[[:$1]]</strong>
+* Innòmmu di lu file esisthenti: <strong>[[:$2]]</strong>
 Verifiggà ch'i dui file nò siani lu matessi o sciubarà un'innòmmu diffarènti pa lu file da carriggà.",
 'fileexists-thumbnail-yes' => "Lu file carriggaddu pari assé lu risulthaddu d'un'antiprimma ''(thumbnail)''. [[$1|thumb]]
-Verifiggà, pa cunfrontu, lu file '''<tt>[[:$1]]</tt>'''.
+Verifiggà, pa cunfrontu, lu file <strong>[[:$1]]</strong>.
 S'è la matessi immàgina, i' li misuri originari, nò è nezzessàriu carriggà althri antiprimmi.",
-'file-thumbnail-no' => "L'innòmmu di lu file ischumenza cun '''<tt>$1</tt>'''. Pari assé lu risulthaddu d'un'antiprimma ''(thumbnail)''.
+'file-thumbnail-no' => "L'innòmmu di lu file ischumenza cun <strong>$1</strong>. Pari assé lu risulthaddu d'un'antiprimma ''(thumbnail)''.
 Si si diponi di l'immàgina i' la risoruzioni originari, pa piazeri carriggalla. A l'invessu, pa piazeri ciambà l'innòmmu di lu file.",
 'fileexists-forbidden' => "Un file cun chisthu innòmmu isisthi già. Turrà indareddu e mudìfiggà l'innòmmu cu' lu quari carriggà lu file. [[File:$1|thumb|center|$1]]",
 'fileexists-shared-forbidden' => "Un file cun chisthu innòmmu isisthi già i l'archìbiu di li risuzzi mùrthimediari cundibisi. Turrà indareddu e mudìfiggà l'innòmmu cu' lu quari carriggà lu file. [[File:$1|thumb|center|$1]]",
@@ -1105,7 +1105,7 @@ Si si diponi di l'immàgina i' la risoruzioni originari, pa piazeri carriggalla.
 
 # MIME search
 'mimesearch' => 'Zercha sigundu a lu tipu MIME',
-'mimesearch-summary' => 'Chistha pàgina cunsenti di filthrà li file sigundu lu tipu MIME. Insirì li paràuri zirchaddi cumenti tipu/sottutipu e.g. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Chistha pàgina cunsenti di filthrà li file sigundu lu tipu MIME. Insirì li paràuri zirchaddi cumenti tipu/sottutipu e.g. <code>image/jpeg</code>.',
 'mimetype' => 'Tipu MIME:',
 'download' => 'ischarriggamentu',
 
index d7d74c0..6abfc5a 100644 (file)
@@ -50,7 +50,6 @@ $messages = array(
 'tog-watchlisthideown' => 'Cíiitám he ticpatlöxde listade cáminot zo',
 'tog-watchlisthidebots' => 'Cíiitám botám listade cáminot zo',
 'tog-watchlisthideminor' => 'Cíiitám ticpatlöx nebajlipöxde listade cáminot zo',
-'tog-nolangconversion' => 'Necoccebj convercionde variantám',
 'tog-ccmeonemails' => 'Iitom he copynámde e-iitom he iitomde diijömde caitóm',
 'tog-diffonly' => 'Necohuatlöx contentuade páhina minöxde quiíx.',
 
index 75eacb0..d033b2c 100644 (file)
@@ -951,9 +951,9 @@ Ana gal sodarītė ne daugiau kāp $1 {{PLURAL:$1|sėmbuolis|sėmbuolē|sėmbuol
 Nuoriedamė parveizietė ar ėiškuotė unkstiau ikeltū abruozdieliu, ēkėt i [[Special:FileList|ikeltū failu saraša]], ikielėmā ėr ėštrīnėmā īr ožregėstroujamė [[Special:Log/upload|ikielėmu istuorėjuo]], trīnėmā - [[Special:Log/delete|trīnėmu istuorėjuo]].
 
 Nuoriedamė panauduotė ikelta faila poslapī, nauduokėt tuokės nūoruodas:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>'''
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' aba
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' tėisiuogėnē nūruodā i faila.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>'''
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' aba
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' tėisiuogėnē nūruodā i faila.",
 'upload-permitted' => 'Laistėnė failu tėpā: $1.',
 'upload-preferred' => 'Pageidajamė failu tėpā: $1.',
 'upload-prohibited' => 'Oždraustė failu tėpā: $1.',
@@ -971,12 +971,12 @@ Nuoriedamė panauduotė ikelta faila poslapī, nauduokėt tuokės nūoruodas:
 'badfilename' => 'Faila pavadinėms pakeists i „$1“.',
 'filetype-missing' => 'Fails netor galūnės (kāp pavīzdīs „.jpg“).',
 'emptyfile' => 'Panašu, ka fails, katra ikieliet īr toščias. Tas gal būtė diel klaiduos faila pavadėnėmė. Pasėtėkrinkėt a tėkrā nuorėt ikeltė šėta faila.',
-'fileexists' => "Fails so tuokiu vardu jau īr, prašuom paveizėtė '''<tt>[[:$1]]</tt>''', jēgo nesat ožtėkrėnts, a nuorit ana parrašītė.
-[[$1|thumb]]",
-'fileexists-extension' => "Fails so pavėdiu pavadinėmu jau īr: [[$2|thumb]]
-* Ikeliama faila pavadinėms: '''<tt>[[:$1]]</tt>'''
-* Jau esontė faila pavadinėms: '''<tt>[[:$2]]</tt>'''
-Prašuom ėšsėrėnktė kėta varda.",
+'fileexists' => 'Fails so tuokiu vardu jau īr, prašuom paveizėtė <strong>[[:$1]]</strong>, jēgo nesat ožtėkrėnts, a nuorit ana parrašītė.
+[[$1|thumb]]',
+'fileexists-extension' => 'Fails so pavėdiu pavadinėmu jau īr: [[$2|thumb]]
+* Ikeliama faila pavadinėms: <strong>[[:$1]]</strong>
+* Jau esontė faila pavadinėms: <strong>[[:$2]]</strong>
+Prašuom ėšsėrėnktė kėta varda.',
 'file-exists-duplicate' => 'Tas fails īr {{PLURAL:$1|šėta faila|šėtū failu}} doblėkats:',
 'uploadwarning' => 'Diemesė',
 'savefile' => 'Ėšsauguotė faila',
@@ -1070,7 +1070,7 @@ Infuormacėjė ėš [$2 faila aprašīma poslapė] īr pateikta žemiau.',
 
 # MIME search
 'mimesearch' => 'MIME paėiška',
-'mimesearch-summary' => 'Šėts poslapis laid ruodīti failus vagol anū MIME tipa. Iveskėt: torėnėtips/potipis, pvz. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Šėts poslapis laid ruodīti failus vagol anū MIME tipa. Iveskėt: torėnėtips/potipis, pvz. <code>image/jpeg</code>.',
 'mimetype' => 'MIME tips:',
 'download' => 'parsėsiūstė',
 
index cd4c822..5978df8 100644 (file)
@@ -1596,9 +1596,9 @@ Zapisnik brisanja i premještanja za ovu stranicu je dostupan ovdje na uvid:",
 Da bi ste vidjeli ili pretražili ranije postavljene datoteke, pogledajte [[Special:FileList|spisak postavljenih datoteka]], ponovna postavljanja su također zapisana u [[Special:Log/upload|evidenciji postavljanja]], a brisanja u [[Special:Log/delete|evidenciji brisanja]].
 
 Da bi ste prikazali datoteku na stranici, koristite link na jedan od slijedećih načina:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg]]</nowiki></tt>''' da upotrijebite potpunu veziju datoteke
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.png|200px|thumb|lijevo|opis slike]]</nowiki></tt>''' da upotrijebite smanjeni prikaz širine 200 piksela unutar okvira, s lijevim poravnanjem i ''opisom slike''.
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></tt>''' za direkno povezivanje datoteke bez njenog prikazivanja",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg]]</nowiki></code>''' da upotrijebite potpunu veziju datoteke
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.png|200px|thumb|lijevo|opis slike]]</nowiki></code>''' da upotrijebite smanjeni prikaz širine 200 piksela unutar okvira, s lijevim poravnanjem i ''opisom slike''.
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></code>''' za direkno povezivanje datoteke bez njenog prikazivanja",
 'upload-permitted' => 'Podržane vrste datoteka: $1.',
 'upload-preferred' => 'Preferirane vrste datoteka: $1.',
 'upload-prohibited' => 'Zabranjene vrste datoteka: $1.',
@@ -1646,21 +1646,21 @@ Ova datoteka je velika $2.',
 Ovo je moguće zbog greške u imenu datoteke. 
 Molimo Vas da provjerite da li stvarno želite da pošaljete ovu datoteku.',
 'windows-nonascii-filename' => 'Ova wiki ne podržava imena datoteka sa posebnim znacima.',
-'fileexists' => "Datoteka sa ovim imenom već postoji.
-Molimo Vas da provjerite '''<tt>[[:$1]]</tt>''' ako niste sigurni da li želite da je promjenite.
-[[$1|thumb]]",
-'filepageexists' => "Opis stranice za ovu datoteku je već napravljen ovdje '''<tt>[[:$1]]</tt>''', ali datoteka sa ovim nazivom trenutno ne postoji.
+'fileexists' => 'Datoteka sa ovim imenom već postoji.
+Molimo Vas da provjerite <strong>[[:$1]]</strong> ako niste sigurni da li želite da je promjenite.
+[[$1|thumb]]',
+'filepageexists' => 'Opis stranice za ovu datoteku je već napravljen ovdje <strong>[[:$1]]</strong>, ali datoteka sa ovim nazivom trenutno ne postoji.
 Sažetak koji ste naveli neće se pojaviti na stranici opisa.
 Da bi se Vaš opis ovdje našao, potrebno je da ga ručno uredite.
-[[$1|thumb]]",
-'fileexists-extension' => "Datoteka sa sličnim nazivom postoji: [[$2|thumb]]
-* Naziv datoteke koja se postavlja: '''<tt>[[:$1]]</tt>'''
-* Naziv postojeće datoteke: '''<tt>[[:$2]]</tt>'''
-Molimo Vas da izaberete drugačiji naziv.",
-'fileexists-thumbnail-yes' => "Izgleda da je datoteka slika smanjene veličine ''(\"thumbnail\")''. [[\$1|thumb]]
-Molimo provjerite datoteku '''<tt>[[:\$1]]</tt>'''.
-Ako je provjerena datoteka ista slika originalne veličine, nije potrebno postavljati dodatnu sliku.",
-'file-thumbnail-no' => "Naziv datoteke počinje sa '''<tt>\$1</tt>'''.
+[[$1|thumb]]',
+'fileexists-extension' => 'Datoteka sa sličnim nazivom postoji: [[$2|thumb]]
+* Naziv datoteke koja se postavlja: <strong>[[:$1]]</strong>
+* Naziv postojeće datoteke: <strong>[[:$2]]</strong>
+Molimo Vas da izaberete drugačiji naziv.',
+'fileexists-thumbnail-yes' => 'Izgleda da je datoteka slika smanjene veličine \'\'("thumbnail")\'\'. [[$1|thumb]]
+Molimo provjerite datoteku <strong>[[:$1]]</strong>.
+Ako je provjerena datoteka ista slika originalne veličine, nije potrebno postavljati dodatnu sliku.',
+'file-thumbnail-no' => "Naziv datoteke počinje sa <strong>\$1</strong>.
 Izgleda da se radi o smanjenoj slici ''(\"thumbnail\")''.
 Ako imate ovu sliku u punoj rezoluciji, postavite nju; ili promijenite naslov ove datoteke.",
 'fileexists-forbidden' => 'Datoteka sa ovim imenom već postoji i ne može biti presnimljena.
@@ -1905,7 +1905,7 @@ Njen opis možete da izmenite na [$2 odgovarajućoj stranici].',
 # MIME search
 'mimesearch' => 'MIME pretraga',
 'mimesearch-summary' => 'Ova stranica omogućava filtriranje datoteka prema njihovoj MIME vrsti.
-Ulazni podaci: vrstasadržaja/podvrsta, npr. <tt>image/jpeg</tt>.',
+Ulazni podaci: vrstasadržaja/podvrsta, npr. <code>image/jpeg</code>.',
 'mimetype' => 'MIME tip:',
 'download' => 'učitaj',
 
@@ -2102,7 +2102,7 @@ Vidi također [[Special:WantedCategories|zatražene kategorije]].',
 'linksearch-ok' => 'Traži',
 'linksearch-text' => 'Mogu se koristiti džokeri poput „*.wikipedia.org“.<br />
 Potreban je najviši domen, kao „*.org“.<br />
-Podržani protokoli: <tt>$1</tt> (ne stavljajte u pretragu)',
+Podržani protokoli: <code>$1</code> (ne stavljajte u pretragu)',
 'linksearch-line' => '$1 je povezan od $2',
 'linksearch-error' => 'Džokeri se mogu pojavljivati samo na početku naziva servera.',
 
@@ -2953,15 +2953,10 @@ Ovo je vjerovatno izazvano vezom ka vanjskoj nepoželjnoj stranici.',
 # Info page
 'pageinfo-title' => 'Informacije za "$1"',
 'pageinfo-header-edits' => 'Izmjene',
-'pageinfo-header-watchlist' => 'Praćene stranice',
-'pageinfo-header-views' => 'Pregledi',
-'pageinfo-subjectpage' => 'Stranica',
-'pageinfo-talkpage' => 'Stranica za razgovor',
+'pageinfo-views' => 'Broj pregleda',
 'pageinfo-watchers' => 'Broj onih koji pregledaju',
 'pageinfo-edits' => 'Broj izmjena',
 'pageinfo-authors' => 'Broj specifičnih autora',
-'pageinfo-views' => 'Broj pregleda',
-'pageinfo-viewsperedit' => 'Pregleda po izmjeni',
 
 # Patrolling
 'markaspatrolleddiff' => 'Označi kao patrolirano',
index a83147d..325d8fb 100644 (file)
@@ -1579,9 +1579,9 @@ HTML ටැගයන් පිරික්සන්න.',
 පෙරදී උඩුගතකෙරුණු ගොනු නැරඹුම හෝ ගවේෂණය සඳහා  [[Special:FileList|උඩුගතකෙරුණු ගොනු ලැයිස්තුව]] වෙත යන්න, (යළි)උඩුගතකෙරුම්ද  [[Special:Log/upload|උඩුගතකෙරුම් ලඝු-සටහන]] තුල සටහන් කර ඇති අතර, මකාදැමුම්  [[Special:Log/delete|මකාදැමුම් ලඝු-සටහන]] හි ඇත.
 
 ගොනුවක් පිටුවක බහාලීම සඳහා, පහත ආකාරයේ සබැඳියක් භාවිතා කරන්න:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' ගොනුවෙහි පරිපූර්ණ අනුවාදය භාවිතා කිරීමට
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' 'විකල්ප පෙළ' යන්න විස්තරය ලෙසින් තැබෙමින් වම් මායිමෙහි කොටුවක පික්සල 200 පළල ප්‍රවාචිතයක් භාවිතා කිරීමට
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' ගොනුව ප්‍රදර්ශනය නොකෙරෙමින්  ගොනුවට සෘජු ලෙස සබැඳීමට",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' ගොනුවෙහි පරිපූර්ණ අනුවාදය භාවිතා කිරීමට
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' 'විකල්ප පෙළ' යන්න විස්තරය ලෙසින් තැබෙමින් වම් මායිමෙහි කොටුවක පික්සල 200 පළල ප්‍රවාචිතයක් භාවිතා කිරීමට
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' ගොනුව ප්‍රදර්ශනය නොකෙරෙමින්  ගොනුවට සෘජු ලෙස සබැඳීමට",
 'upload-permitted' => 'අවසරලත් ගොනු වර්ගයන්: $1.',
 'upload-preferred' => 'අභිරුචි ගොනු වර්ගයන්: $1.',
 'upload-prohibited' => 'තහනම් ගොනු වර්ගයන්: $1.',
@@ -1629,20 +1629,20 @@ HTML ටැගයන් පිරික්සන්න.',
 මෙය සමහරවිට ගොනු  නාමයේ මුද්‍රණ දෝෂයක් නිසා විය හැක.
 ඔබට නිසැකවම මෙම ගොනුව උඩුගත කිරීමට අවශ්‍යයද යන්න පරික්‍ෂා කර බලන්න.',
 'windows-nonascii-filename' => 'විශේෂ අක්ෂර සහිත ගොනු නාම සදහා මෙම විකිය සහය නොදක්වයි.',
-'fileexists' => "මෙම නම සහිත ගොනුවක් දැනටමත් පවතියි, මෙය වෙනස් කල යුතු බවට ඔබට නිසැක නොවේ නම්, කරුණාකර '''<tt>[[:$1]]</tt>''' පරික්ෂා කර බලන්න .
-[[$1|thumb]]",
-'filepageexists' => "මෙම ගොනුව සඳහා විස්තර පිටුව දැනටමත් '''<tt>[[:$1]]</tt>''' හි තනා ඇති නමුත්, මෙම නම ඇති කිසිදු ගොනුවක් දැනට නොපවතියි.
+'fileexists' => 'මෙම නම සහිත ගොනුවක් දැනටමත් පවතියි, මෙය වෙනස් කල යුතු බවට ඔබට නිසැක නොවේ නම්, කරුණාකර <strong>[[:$1]]</strong> පරික්ෂා කර බලන්න .
+[[$1|thumb]]',
+'filepageexists' => 'මෙම ගොනුව සඳහා විස්තර පිටුව දැනටමත් <strong>[[:$1]]</strong> හි තනා ඇති නමුත්, මෙම නම ඇති කිසිදු ගොනුවක් දැනට නොපවතියි.
 ඔබ විසින් ඇතුලත් කෙරෙන සාරාංශය විස්තර පිටුවෙහි දිස් නොවනු ඇත.
 සාරාංශය එහි  දිස්කෙරුමට,  ඔබ විසින් එය හස්තීය ලෙස සංස්කරණය කෙරුම සිදුකල යුතු වේ.
-[[$1|thumb]]",
-'fileexists-extension' => "එක්වැනි නමක් ඇති ගොනුවක් පවතී: [[$2|thumb]]
-* උඩුගත කෙරෙන ගොනුවේ නම: '''<tt>[[:$1]]</tt>'''
-* පවතින ගොනුවේ නම: '''<tt>[[:$2]]</tt>'''
-කරුණාකර වෙනත් නමක් තෝරාගන්න.",
+[[$1|thumb]]',
+'fileexists-extension' => 'එක්වැනි නමක් ඇති ගොනුවක් පවතී: [[$2|thumb]]
+* උඩුගත කෙරෙන ගොනුවේ නම: <strong>[[:$1]]</strong>
+* පවතින ගොනුවේ නම: <strong>[[:$2]]</strong>
+කරුණාකර වෙනත් නමක් තෝරාගන්න.',
 'fileexists-thumbnail-yes' => "ගොනුව, කුඩා ප්‍රමාණයේ රූපයක් බව පෙනී යයි ''(සිඟිති-රූපය)''. [[$1|thumb]]
-කරුණාකර '''<tt>[[:$1]]</tt>''' ගොනුව පරික්‍ෂා කර බලන්න.
+කරුණාකර <strong>[[:$1]]</strong> ගොනුව පරික්‍ෂා කර බලන්න.
 පරික්‍ෂා කර බැලූ ගොනුවෙහි අඩංගු වන්නේ මුලික ප්‍රමාණයෙහි රූපයම නම් අමතර සිඟිති-රූපයක් උඩුගත කිරීම අවශ්‍ය නොවේ.",
-'file-thumbnail-no' => "ගොනු නම '''<tt>$1</tt>''' යන්නෙන් ආරම්භ වේ.
+'file-thumbnail-no' => "ගොනු නම <strong>$1</strong> යන්නෙන් ආරම්භ වේ.
 එය කුඩාකල ප්‍රමාණයෙහි රූපයක් බව පෙනී යයි  ''(සිඟිති-රූපය)''.
 පූර්ණ විසර්ජනය සහිත මෙම රූපය ඔබ සතු වෙයි නම් මෙය උඩුගත කරන්න, නැතහොත් ගොනු නාමය වෙනස් කරන්න.",
 'fileexists-forbidden' => 'මෙම නම ඇති ගොනුවක් දැනටමත් පවතින අතර, එය උඩින් ලීවීම සිදුකල නොහැක.
@@ -1893,7 +1893,7 @@ When filtered by user, only files where that user uploaded the most recent versi
 # MIME search
 'mimesearch' => 'MIME ගවේෂණය',
 'mimesearch-summary' => 'ගොනු, එහි MIME-වර්ගය අනුව පෙරහනය කිරීමට මෙම පිටුව අවකාශ සලසයි.
-ප්‍රදානය: අන්කර්ගතවර්ගය/උපවර්ගය, නිද. <tt>රූපය/jpeg</tt>.',
+ප්‍රදානය: අන්කර්ගතවර්ගය/උපවර්ගය, නිද. <code>රූපය/jpeg</code>.',
 'mimetype' => 'MIME වර්ගය:',
 'download' => 'බාගතකිරීම',
 
@@ -2090,7 +2090,7 @@ When filtered by user, only files where that user uploaded the most recent versi
 'linksearch-ok' => 'ගවේෂණය',
 'linksearch-text' => '"*.wikipedia.org" වැනි ආදේශක භාවිතා කල හැක.
 අඩුම තරමින් උසස්-මට්ටමේ වසමක් අවශ්‍යයි, නිදසුනක් ලෙස "*.org".<br />
-සහය දක්වන ප්‍රෝටෝකොලයන්: <tt>$1</tt> (ඔබේ සෙවුමෙහි මේවා කිසිවක් නොයොදන්න).',
+සහය දක්වන ප්‍රෝටෝකොලයන්: <code>$1</code> (ඔබේ සෙවුමෙහි මේවා කිසිවක් නොයොදන්න).',
 'linksearch-line' => '$2 වෙතින් $1 සබැඳිණි',
 'linksearch-error' => 'ආදේශක  පෙනීසිටිය හැක්කේ සත්කාරකනාමය ආරම්භයෙහි පමණයි.',
 
@@ -2959,15 +2959,10 @@ $1 ගේ වාරණයට හේතුව මෙය වේ: "$2"',
 # Info page
 'pageinfo-title' => '"$1" සඳහා තොරතුරු',
 'pageinfo-header-edits' => 'සංස්කරණ',
-'pageinfo-header-watchlist' => 'මුර-ලැයිස්තුව',
-'pageinfo-header-views' => 'නැරඹුම්',
-'pageinfo-subjectpage' => 'පිටුව',
-'pageinfo-talkpage' => 'සාකච්ඡා පිටුව',
+'pageinfo-views' => 'නැරඹුම් සංඛ්‍යාව',
 'pageinfo-watchers' => 'මුරකරන්නන් සංඛ්‍යාව',
 'pageinfo-edits' => 'සංස්කරණයන් සංඛ්‍යාව',
 'pageinfo-authors' => 'ප්‍රභින්න කර්තෘවරුන් සංඛ්‍යාව',
-'pageinfo-views' => 'නැරඹුම් සංඛ්‍යාව',
-'pageinfo-viewsperedit' => 'එක් සංස්කරණයකට නැරඹුම් ගණන',
 
 # Patrolling
 'markaspatrolleddiff' => 'පරික්ෂාකර බැලූ ලෙස සලකුණු කරන්න',
index 1759b9e..44c5218 100644 (file)
@@ -1720,20 +1720,20 @@ Vizuálny prehľad nájdete v [[Special:NewFiles|galérii novo nahraných súbor
 'largefileserver' => 'Tento súbor je väčší ako je možné nahrať na server (z dôvodu obmedzenia veľkosti súboru v konfigurácii servera).',
 'emptyfile' => 'Zdá sa, že súbor, ktorý ste nahrali je prázdny. Mohlo sa stať, že ste urobili v názve súboru preklep. Prosím, skontrolujte, či skutočne chcete nahrať tento súbor.',
 'windows-nonascii-filename' => 'Táto wiki nepodporuje názvy súborov so špeciálnymi znakmi.',
-'fileexists' => "Súbor s týmto názvom už existuje, prosím skontrolujte '''<tt>[[:$1]]</tt>''' ak nie ste si istý, či ho chcete zmeniť.
-[[$1|thumb]]",
-'filepageexists' => "Popisná stránka pre tento súbor už bola vytvorená na '''<tt>[[:$1]]</tt>''', ale žiadny súbor s týmto názvom momentálne neexistuje.
+'fileexists' => 'Súbor s týmto názvom už existuje, prosím skontrolujte <strong>[[:$1]]</strong> ak nie ste si istý, či ho chcete zmeniť.
+[[$1|thumb]]',
+'filepageexists' => 'Popisná stránka pre tento súbor už bola vytvorená na <strong>[[:$1]]</strong>, ale žiadny súbor s týmto názvom momentálne neexistuje.
 Zadané zhrnutie sa neobjaví na popisnej stránke.
 Aby sa tam zhrnutie objavilo, budete potrebné ho manuálne upraviť.
-[[$1|thumb]]",
-'fileexists-extension' => "Súbor s podobným názvom už existuje: [[$2|thumb]]
-* Názov súboru, ktorý nahrávate: '''<tt>[[:$1]]</tt>'''
-* Názov existujúceho súboru: '''<tt>[[:$2]]</tt>'''
-Prosím, vyberte preň iný názov.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Súbor s podobným názvom už existuje: [[$2|thumb]]
+* Názov súboru, ktorý nahrávate: <strong>[[:$1]]</strong>
+* Názov existujúceho súboru: <strong>[[:$2]]</strong>
+Prosím, vyberte preň iný názov.',
 'fileexists-thumbnail-yes' => "Zdá sa, že súbor je obrázkom redukovanej veľkosti ''(náhľadom)''. [[$1|thumb]]
-Prosím, skontolujte súbor '''<tt>[[:$1]]</tt>'''.
+Prosím, skontolujte súbor <strong>[[:$1]]</strong>.
 Ak je kontrolovaný súbor rovnaký obrázok v pôvodnej veľkosti, nie je potrebné nahrávať ďalší náhľad.",
-'file-thumbnail-no' => "Názov súboru začína '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Názov súboru začína <strong>$1</strong>.
 Zdá sa, že je to obrázok redukovanej veľkosti ''(náhľad)''.
 Ak máte tento obrázok v plnom rozlíšení, nahrajte ho, inak prosím zmeňte názov.",
 'fileexists-forbidden' => 'Súbor s týmto názvom už existuje a nie je možné ho prepísať.
@@ -1989,7 +1989,7 @@ Možno chcete upraviť popis na jeho [$2 popisnej stránke súboru] tam.',
 
 # MIME search
 'mimesearch' => 'MIME vyhľadávanie',
-'mimesearch-summary' => 'Táto stránka umožňuje filtovanie súborov podľa MIME typu. Vstup: typobsahu/podtyp, napr. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Táto stránka umožňuje filtovanie súborov podľa MIME typu. Vstup: typobsahu/podtyp, napr. <code>image/jpeg</code>.',
 'mimetype' => 'MIME typ:',
 'download' => 'stiahnuť',
 
@@ -2190,7 +2190,7 @@ Pozri aj [[Special:WantedCategories|žiadané kategórie]].',
 'linksearch-ok' => 'Hľadať',
 'linksearch-text' => 'Je možné používať zástupné znaky, napr. „*.wikipedia.org“.
 Povinná je minimálne doména najvyššej úrovne, napr.. „*.org“.<br />
-Podporované protokoly: <tt>$1</tt> (nepridávajte ich do hľadania).',
+Podporované protokoly: <code>$1</code> (nepridávajte ich do hľadania).',
 'linksearch-line' => 'Na $1 odkazuje $2',
 'linksearch-error' => 'Zástupné znaky je možné použiť iba na začiatku názvu domény.',
 
@@ -3064,15 +3064,10 @@ Pravdepodobne to spôsobil odkaz na externú internetovú lokalitu, ktorá sa na
 # Info page
 'pageinfo-title' => 'Informácie o „$1“',
 'pageinfo-header-edits' => 'Úpravy',
-'pageinfo-header-watchlist' => 'Sledované stránky',
-'pageinfo-header-views' => 'Zobrazení',
-'pageinfo-subjectpage' => 'Stránka',
-'pageinfo-talkpage' => 'Diskusná stránka',
+'pageinfo-views' => 'Počet zobrazení',
 'pageinfo-watchers' => 'Počet sledovateľov',
 'pageinfo-edits' => 'Počet úprav',
 'pageinfo-authors' => 'Počet rôznych autorov',
-'pageinfo-views' => 'Počet zobrazení',
-'pageinfo-viewsperedit' => 'Zobrazení na úpravu',
 
 # Skin names
 'skinname-standard' => 'Klasický',
index 519a86b..42c9f54 100644 (file)
@@ -1588,9 +1588,9 @@ Dnevnik brisanja in prestavitev za to stran sta navedena tukaj:",
 Za ogled ali iskanje že naloženih pojdite na [[Special:FileList|seznam naloženih datotek]]; ponovna nalaganja so zabeležena tudi v [[Special:Log/upload|dnevniku nalaganja]], izbrisi pa v [[Special:Log/delete|dnevniku brisanja]].
 
 Datoteko lahko na želeno stran vključite na naslednje načine:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg]]</nowiki></tt>''' (polna velikost)
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg|200px|thumb|left|opisno besedilo]]</nowiki></tt>''' (slika pomanjšana na 200 slikovnih pik širine, uokvirjena, z levo poravnavo in opisom »opisno besedilo«)
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></tt>''' (neposredna povezava z datoteko)",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg]]</nowiki></code>''' (polna velikost)
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Datoteka.jpg|200px|thumb|left|opisno besedilo]]</nowiki></code>''' (slika pomanjšana na 200 slikovnih pik širine, uokvirjena, z levo poravnavo in opisom »opisno besedilo«)
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></code>''' (neposredna povezava z datoteko)",
 'upload-permitted' => 'Dovoljene vrste datotek: $1.',
 'upload-preferred' => 'Priporočene vrste datotek: $1.',
 'upload-prohibited' => 'Prepovedane vrste datotek: $1.',
@@ -1636,20 +1636,20 @@ Za grafični pogled obiščite [[Special:NewFiles|galerijo novih datotek]].',
 Do tega bi lahko prišlo zaradi tipkarske napake v imenu.
 Ali datoteko resnično želite naložiti?',
 'windows-nonascii-filename' => 'Ta wiki ne podpira imen datotek s posebnimi znaki.',
-'fileexists' => "Datoteka s tem imenom že obstaja. Preden jo povozite, preverite stran '''<tt>[[:$1]]</tt>'''.
-[[$1|thumb]]",
-'filepageexists' => "Opisna stran za to datoteko je bila že ustvarjena na '''<tt>[[:$1]]</tt>''', vendar datoteka s tem imenom trenutno ne obstaja.
+'fileexists' => 'Datoteka s tem imenom že obstaja. Preden jo povozite, preverite stran <strong>[[:$1]]</strong>.
+[[$1|thumb]]',
+'filepageexists' => 'Opisna stran za to datoteko je bila že ustvarjena na <strong>[[:$1]]</strong>, vendar datoteka s tem imenom trenutno ne obstaja.
 Povzetek, ki ste ga vnesli, se ne bo prikazal na opisni strani.
 Da tam prikažete povzetek, morate stran urediti ročno.
-[[$1|thumb]]",
-'fileexists-extension' => "Datoteka s podobnim imenom že obstaja: [[$2|thumb]]
-* Ime naložene datoteke: '''<tt>[[:$1]]</tt>'''
-* Ime obstoječe datoteke: '''<tt>[[:$2]]</tt>'''
-Prosimo, izberite drugo ime.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Datoteka s podobnim imenom že obstaja: [[$2|thumb]]
+* Ime naložene datoteke: <strong>[[:$1]]</strong>
+* Ime obstoječe datoteke: <strong>[[:$2]]</strong>
+Prosimo, izberite drugo ime.',
 'fileexists-thumbnail-yes' => "Kot izgleda, je ta slika pomanjšana ''(thumbnail)''. [[$1|thumb]]
-Prosimo, preverite datoteko '''<tt>[[:$1]]</tt>'''.
+Prosimo, preverite datoteko <strong>[[:$1]]</strong>.
 Če je preverjena datoteka enaka kot ta, ki jo nalage, ni potrebno nalagati še dodatne sličice.",
-'file-thumbnail-no' => "Ime datoteke se začne z '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Ime datoteke se začne z <strong>$1</strong>.
 Izgleda, da je to pomanjšana slika ''(thumbnail)''.
 Če imate sliko polne resolucije, jo naložite, drugače spremenite ime datoteke.",
 'fileexists-forbidden' => 'Datoteka s tem imenom že obstaja in je ni mogoče prepisati.
@@ -1919,7 +1919,7 @@ Morda želite urediti njeno opisno stran na tamkajšnji [$2 opisni strani datote
 # MIME search
 'mimesearch' => 'Iskanje po vrsti MIME',
 'mimesearch-summary' => 'Ta stran omogoča filtriranje datotek po njihovi vrsti MIME.
-Vnesite: vrstavsebine/podvrsta, npr. <tt>image/jpeg</tt>.',
+Vnesite: vrstavsebine/podvrsta, npr. <code>image/jpeg</code>.',
 'mimetype' => 'Vrsta MIME:',
 'download' => 'prenesi',
 
@@ -2121,7 +2121,7 @@ Glej tudi [[Special:WantedCategories|želene kategorije]].',
 'linksearch-ok' => 'Išči',
 'linksearch-text' => 'Nadomestne znake, kot je »*.wikipedia.org«, lahko uporabljate.
 Zahtevana je vsaj najvišja domena, na primer »*.org«.<br />
-Podprti protokoli: <tt>$1</tt> (teh ne dodajte v svoje iskanje).',
+Podprti protokoli: <code>$1</code> (teh ne dodajte v svoje iskanje).',
 'linksearch-line' => '$1 povezano iz $2',
 'linksearch-error' => 'Jokerji se lahko pojavijo le na začetku gostiteljskega imena.',
 
@@ -2971,15 +2971,10 @@ Omogoča vnos pojasnila v povzetku urejanja.',
 # Info page
 'pageinfo-title' => 'Informacije o »$1«',
 'pageinfo-header-edits' => 'Urejanja',
-'pageinfo-header-watchlist' => 'Spisek nadzorov',
-'pageinfo-header-views' => 'Ogledi',
-'pageinfo-subjectpage' => 'Stran',
-'pageinfo-talkpage' => 'Pogovorna stran',
+'pageinfo-views' => 'Število ogledov',
 'pageinfo-watchers' => 'Število spremljevalcev',
 'pageinfo-edits' => 'Število urejanj',
 'pageinfo-authors' => 'Število različnih avtorjev',
-'pageinfo-views' => 'Število ogledov',
-'pageinfo-viewsperedit' => 'Razmerje med ogledi in urejanji',
 
 # Patrolling
 'markaspatrolleddiff' => 'Označite kot nadzorovano',
index ae7c2e5..440dfd9 100644 (file)
@@ -1076,10 +1076,10 @@ Stelle sicher, doaß de Versionsgeschichte anner Seite historisch korrekt ies.',
 'large-file' => 'De Dateigriße sullte noach Meeglichkeet $1 ne ieberschreita. Diese Datei ies $2 gruß.',
 'largefileserver' => 'De Datei ies grißer ols de vum Server eengestallte Maximalgriße.',
 'emptyfile' => 'De huchgeloadene Datei ies laar. Dar Grund koan a Tippfahler eim Dateinoama sei. Bitte kontrolliere, ob du de Datei wirklich huchloada wielst.',
-'fileexists' => "Anne Datei miet diesem Noama existiert bereits.
-Bitte priefe '''<tt>[[:$1]]</tt>''', wenn du dir ne secher biest, ob du se ändern wielst.
-[[$1|thumb]]",
-'file-thumbnail-no' => "Dar Dateinoame beginnt miet '''<tt>$1</tt>'''. Dies deutet uff a Bild verringerter Griße ''(thumbnail)'' hin.
+'fileexists' => 'Anne Datei miet diesem Noama existiert bereits.
+Bitte priefe <strong>[[:$1]]</strong>, wenn du dir ne secher biest, ob du se ändern wielst.
+[[$1|thumb]]',
+'file-thumbnail-no' => "Dar Dateinoame beginnt miet <strong>$1</strong>. Dies deutet uff a Bild verringerter Griße ''(thumbnail)'' hin.
 Bitte priefe, ob du doas Bild ei voller Ufflesung vorliegen host und loade dieses under damm Originalnoama huch.",
 'file-exists-duplicate' => 'Diese Datei ies a Duplikat dar fulgenda {{PLURAL:$1|Datei|$1 Dateien}}:',
 'file-deleted-duplicate' => 'Anne identische Datei dieser Datei ([[:$1]]) wurde frieher geläscht. Ieberpriefe doas Läsch-Logbuch, bevor du se huchlädst.',
@@ -1192,7 +1192,7 @@ Anne [[Special:WhatLinksHere/$2|vullständige Liste]] ies verfiegbar.',
 
 # MIME search
 'mimesearch' => 'Suche noach MIME-Typ',
-'mimesearch-summary' => 'Uff dieser Spezialseyte kinna de Dateien noach damm MIME-Typ gefiltert waan. Die Eingabe muuß emmer dann Medien- und Subtyp beinhalten: <tt>image/jpeg</tt> (siehe Dateibeschreibungsseyte).',
+'mimesearch-summary' => 'Uff dieser Spezialseyte kinna de Dateien noach damm MIME-Typ gefiltert waan. Die Eingabe muuß emmer dann Medien- und Subtyp beinhalten: <code>image/jpeg</code> (siehe Dateibeschreibungsseyte).',
 'download' => 'Herunderloada',
 
 # Unwatched pages
@@ -1356,7 +1356,7 @@ Siehe au de Liste der [[Special:WantedCategories|gewinschta Kategorien]].',
 # Special:LinkSearch
 'linksearch-ns' => 'Noamensraum:',
 'linksearch-ok' => 'Sucha',
-'linksearch-text' => 'Diese Spezialseite ermeegliecht de Suche noach Seita, ei denen bestimmte Weblinks enthaala sein. Dabei kinna Wildcards wie beispielsweise <tt>*.example.com</tt> benutzt waan.<br />Understitzte Protokolle: <tt>$1</tt>',
+'linksearch-text' => 'Diese Spezialseite ermeegliecht de Suche noach Seita, ei denen bestimmte Weblinks enthaala sein. Dabei kinna Wildcards wie beispielsweise <code>*.example.com</code> benutzt waan.<br />Understitzte Protokolle: <code>$1</code>',
 'linksearch-line' => '$1 ies verlinkt vun $2',
 'linksearch-error' => 'Wildcards kinna ock oam Oanfang dar URL verwendet waan.',
 
index 24632f4..658b833 100644 (file)
@@ -1599,9 +1599,9 @@ Për të parë ose kërkuar skeda të ngarkuara më parë, shkoni tek [[Special:
 (ri)ngarkimet janë gjithashtu të regjistruara tek [[Special:Log/upload|regjistri i ngarkimeve]], grisjet tek [[Special:Log/delete|regjistri i grisjeve]].
 
 Për të përfshirë një skedë në një faqe, përdorni një nga format e mëposhtme:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Skeda.jpg]]</nowiki></tt>''' për të përdorur versionin e plotë të skedës
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Skeda.png|200px|thumb|left|alt text]]</nowiki></tt>''' për të përdorur nje interpretim prej 200 piksel në të majtë me 'alt tekst' si përshkrim
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Skeda.ogg]]</nowiki></tt>''' për të lidhur skedën direkt, pa e shfaqur atë",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Skeda.jpg]]</nowiki></code>''' për të përdorur versionin e plotë të skedës
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Skeda.png|200px|thumb|left|alt text]]</nowiki></code>''' për të përdorur nje interpretim prej 200 piksel në të majtë me 'alt tekst' si përshkrim
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Skeda.ogg]]</nowiki></code>''' për të lidhur skedën direkt, pa e shfaqur atë",
 'upload-permitted' => 'Llojet e lejuara të skedave: $1.',
 'upload-preferred' => 'Llojet e parapëlqyera të skedave: $1.',
 'upload-prohibited' => 'Llojet e ndaluara të skedave: $1.',
@@ -1646,20 +1646,20 @@ kjo skedë është $2.',
 'largefileserver' => 'Skeda është më e madhe se sa serveri e lejon këtë.',
 'emptyfile' => 'Skeda që keni dhënë është bosh ose mbi madhësinë e lejushme. Kjo gjë mund të ndodhi nëse shtypni emrin gabim, prandaj kontrolloni nëse dëshironi të jepni skedën me këtë emër.',
 'windows-nonascii-filename' => 'Ky wiki nuk e mbështet emrin e dokumentit me karaktere të veçanta.',
-'fileexists' => "Ekziston një skedë me atë emër, ju lutem kontrolloni '''<tt>[[:$1]]</tt>''' në qoftë se nuk jeni të sigurt nëse dëshironi ta zëvendësoni.
-[[$1|thumb]]",
-'filepageexists' => "Përshkrimi i faqes për këtë skedë është krijuar tek '''<tt>[[:$1]]</tt>''', por asnjë skedë me këtë emër nuk ekziston.
+'fileexists' => 'Ekziston një skedë me atë emër, ju lutem kontrolloni <strong>[[:$1]]</strong> në qoftë se nuk jeni të sigurt nëse dëshironi ta zëvendësoni.
+[[$1|thumb]]',
+'filepageexists' => 'Përshkrimi i faqes për këtë skedë është krijuar tek <strong>[[:$1]]</strong>, por asnjë skedë me këtë emër nuk ekziston.
 Përmbledhja që shkruat nuk do të shfaqet në përshkrimin e faqes.
 Për ta bërë përmbledhjen tuaj të dukshme atje, ju duhet ta redaktoni automatikisht.
-[[$1|thumb]]",
-'fileexists-extension' => "Ekziston një skedë me emër të ngjashëm: [[$2|thumb]]
-* Emri i skedës në ngarkim: '''<tt>[[:$1]]</tt>'''
-* Emri i skedës ekzistuese: '''<tt>[[:$2]]</tt>'''
-Ju lutem zgjidhni një emër tjetër.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Ekziston një skedë me emër të ngjashëm: [[$2|thumb]]
+* Emri i skedës në ngarkim: <strong>[[:$1]]</strong>
+* Emri i skedës ekzistuese: <strong>[[:$2]]</strong>
+Ju lutem zgjidhni një emër tjetër.',
 'fileexists-thumbnail-yes' => "Kjo skedë duket se është një figurë me madhësi të zvogëluar ''(figurë përmbledhëse)''. [[$1|thumb]]
-Ju lutem kontrolloni skedën '''<tt>[[:$1]]</tt>'''.
+Ju lutem kontrolloni skedën <strong>[[:$1]]</strong>.
 Nëse skeda e kontrolluar është e së njëjtës madhësi me origjinalen atëherë nuk ka nevojë të ngarkoni një figurë përmbledhëse.",
-'file-thumbnail-no' => "Emri i skedës fillon me '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Emri i skedës fillon me <strong>$1</strong>.
 Duket se është një figurë me madhësi të zvogëluar ''(thumbnail)''.
 Nëse keni këtë figurë me madhësi të plotë ju lutem të ngarkoni atë, përndryshe ju lutem të ndryshoni emrin e skedës.",
 'fileexists-forbidden' => 'Ekziston një skedë me të njëjtin emër. Ju lutemi kthehuni mbrapsht dhe ngarkoni këtë skedë me një emër të ri. 
@@ -1901,7 +1901,7 @@ Përshkrimi në [$2 faqen përshkruese të skedës] është treguar më poshtë.
 
 # MIME search
 'mimesearch' => 'Kërkime MIME',
-'mimesearch-summary' => 'Kjo faqe lejon kërkimin e skedave sipas llojit MIME. Kërkimi duhet të jetë i llojit: contenttype/subtype, p.sh. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Kjo faqe lejon kërkimin e skedave sipas llojit MIME. Kërkimi duhet të jetë i llojit: contenttype/subtype, p.sh. <code>image/jpeg</code>.',
 'mimetype' => 'Lloji MIME:',
 'download' => 'shkarkim',
 
@@ -2103,7 +2103,7 @@ Shikoni edhe [[Special:WantedCategories|kategoritë e dëshiruara]].',
 'linksearch-ok' => 'Kërko',
 'linksearch-text' => 'Ylli zëvëndësues mund të përdoret si p.sh. "*.wikipedia.org".
 Duhet një domen top-nivel, si p.sh. "*.org.<br />
-Protokolle të mbështetura: <tt>$1<tt> (mos shtoni ndonjërin nga këta në kërkimin tuaj).',
+Protokolle të mbështetura: <code>$1<code> (mos shtoni ndonjërin nga këta në kërkimin tuaj).',
 'linksearch-line' => '$1 lidhur nga $2',
 'linksearch-error' => 'Ylli mund të përdoret vetëm në fillim të emrit',
 
@@ -2961,15 +2961,10 @@ Ju lutemi provoni përsëri.',
 # Info page
 'pageinfo-title' => 'Informacion për " $1 "',
 'pageinfo-header-edits' => 'Redaktimet',
-'pageinfo-header-watchlist' => 'Lista mbikqyrëse',
-'pageinfo-header-views' => 'Shikime',
-'pageinfo-subjectpage' => 'Faqe',
-'pageinfo-talkpage' => 'Faqe diskutimi',
+'pageinfo-views' => 'Numri i shikimeve',
 'pageinfo-watchers' => 'Numri i mbikqyrësve',
 'pageinfo-edits' => 'Numri i redaktimeve',
 'pageinfo-authors' => 'Numri i autorëve të veçantë',
-'pageinfo-views' => 'Numri i shikimeve',
-'pageinfo-viewsperedit' => 'Shikime për redaktim',
 
 # Skin names
 'skinname-standard' => 'Standarte',
index 419ed9c..f5425ed 100644 (file)
@@ -725,9 +725,9 @@ $1',
 'dberrortext' => 'Дошло је до синтактичке грешке у бази.
 Можда се ради о грешци у софтверу.
 Последњи покушај упита је гласио:
-<blockquote><tt>$1</tt></blockquote>
-унутар функције „<tt>$2</tt>“.
-База података је пријавила грешку „<tt>$3: $4</tt>“.',
+<blockquote><code>$1</code></blockquote>
+унутар функције „<code>$2</code>“.
+База података је пријавила грешку „<samp>$3: $4</samp>“.',
 'dberrortextcl' => 'Дошло је до синтактичке грешке у бази.
 Последњи покушај упита је гласио:
 „$1“
@@ -1088,7 +1088,6 @@ $2
 *'''Фајерфокс и Сафари:''' држите ''Shift'' и кликните на ''Освежи'', или притисните ''Ctrl-F5'' или Ctrl-R (''⌘-R'' на Макинтошу)
 *'''Гугл кроум:''' притисните ''Ctrl-Shift-R'' (''⌘-Shift-R'' на Макинтошу)
 *'''Интернет експлорер: '''држите ''Ctrl'' и кликните на ''Освежи'', или притисните ''Ctrl-F5''
-*'''К-освајач: '''кликните на ''Освежи'' или притисните ''F5''
 *'''Опера:''' очистите привремену меморију преко менија ''Алатке → Поставке''.",
 'usercssyoucanpreview' => "'''Савет:''' кориситите дугме „{{int:showpreview}}“ да испробате свој нови CSS пре него што га сачувате.",
 'userjsyoucanpreview' => "'''Савет:''' кориситите дугме „{{int:showpreview}}“ да испробате свој нови јаваскрипт пре него што га сачувате.",
@@ -1826,9 +1825,9 @@ $1",
 За преглед или претрагу постојећих датотека, погледајте [[Special:FileList|списак отпремљених датотека]], поновна отпремања су наведена у [[Special:Log/upload|дневнику отпремања]], а брисања у [[Special:Log/delete|дневнику брисања]].
 
 Датотеку додајете на жељену страницу користећи следеће обрасце:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Слика.jpg]]</nowiki></tt>''' за верзију слике у пуној величини
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Слика.png|200п|мини|лево|опис]]</nowiki></tt>''' за верзију слике с величином од 200 пиксела која је приказана у засебном оквиру, заједно с описом.
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Датотека.ogg]]</nowiki></tt>''' за директно повезивање с датотеком без њеног приказивања",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Слика.jpg]]</nowiki></code>''' за верзију слике у пуној величини
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Слика.png|200п|мини|лево|опис]]</nowiki></code>''' за верзију слике с величином од 200 пиксела која је приказана у засебном оквиру, заједно с описом.
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Датотека.ogg]]</nowiki></code>''' за директно повезивање с датотеком без њеног приказивања",
 'upload-permitted' => 'Дозвољене врсте датотека: $1.',
 'upload-preferred' => 'Пожељне врсте датотека: $1.',
 'upload-prohibited' => 'Забрањене врсте датотека: $1.',
@@ -1875,21 +1874,21 @@ $1",
 Узрок може бити грешка у називу датотеке.
 Проверите да ли заиста желите да је пошаљете.',
 'windows-nonascii-filename' => 'Овај вики не подржава називе датотека с посебним знацима.',
-'fileexists' => "Датотека с овим називом већ постоји. Погледајте '''<tt>[[:$1]]</tt>''' ако нисте сигурни да ли желите да је промените.
-[[$1|thumb]]",
-'filepageexists' => "Страница с описом ове датотеке је већ направљена овде '''<tt>[[:$1]]</tt>''', иако датотека не постоји.
+'fileexists' => 'Датотека с овим називом већ постоји. Погледајте <strong>[[:$1]]</strong> ако нисте сигурни да ли желите да је промените.
+[[$1|thumb]]',
+'filepageexists' => 'Страница с описом ове датотеке је већ направљена овде <strong>[[:$1]]</strong>, иако датотека не постоји.
 Опис који сте навели се неће појавити на страници с описом.
 Да би се ваш опис овде нашао, потребно је да га ручно измените.
-[[$1|thumb]]",
-'fileexists-extension' => "Датотека са сличним називом већ постоји: [[$2|thumb]]
-* Назив датотеке коју шаљете: '''<tt>[[:$1]]</tt>'''
-* Назив постојеће датотеке: '''<tt>[[:$2]]</tt>'''
-Изаберите другачији назив.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Датотека са сличним називом већ постоји: [[$2|thumb]]
+* Назив датотеке коју шаљете: <strong>[[:$1]]</strong>
+* Назив постојеће датотеке: <strong>[[:$2]]</strong>
+Изаберите другачији назив.',
 'fileexists-thumbnail-yes' => "Изгледа да је датотека умањено издање слике ''(thumbnail)''.
 [[$1|thumb]]
-Проверите датотеку '''<tt>[[:$1]]</tt>'''.
+Проверите датотеку <strong>[[:$1]]</strong>.
 Ако је проверена датотека иста слика оригиналне величине, није потребно слати додатну слику.",
-'file-thumbnail-no' => "Датотека почиње са '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Датотека почиње са <strong>$1</strong>.
 Изгледа да се ради о умањеној слици ''(thumbnail)''.
 Уколико имате ову слику у пуној величини, пошаљите је, а ако немате, промените назив датотеке.",
 'fileexists-forbidden' => 'Датотека с овим називом већ постоји и не може се заменити.
@@ -2127,6 +2126,7 @@ $1',
 'shared-repo' => 'заједничко складиште',
 'shared-repo-name-wikimediacommons' => 'Викимедијина остава',
 'filepage.css' => '/* CSS који је постављен овде се налази на страницама за опис датотека, као и на страним викијима */',
+'upload-disallowed-here' => 'Нажалост, не можете да замените ову слику.',
 
 # File reversion
 'filerevert' => 'Врати $1',
@@ -2161,7 +2161,7 @@ $1',
 # MIME search
 'mimesearch' => 'MIME претрага',
 'mimesearch-summary' => 'Ова страница омогућава филтрирање датотека према њиховим врстама MIME.
-Улазни подаци: contenttype/subtype, нпр. <tt>image/jpeg</tt>.',
+Улазни подаци: contenttype/subtype, нпр. <code>image/jpeg</code>.',
 'mimetype' => 'MIME врста:',
 'download' => 'преузми',
 
@@ -2236,6 +2236,7 @@ $1',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|бајт|бајта|бајтова}}',
 'ncategories' => '$1 {{PLURAL:$1|категорија|категорије|категорија}}',
+'ninterwikis' => '$1 {{PLURAL:$1|међувики|међувикија|међувикија}}',
 'nlinks' => '$1 {{PLURAL:$1|веза|везе|веза}}',
 'nmembers' => '$1 {{PLURAL:$1|члан|члана|чланова}}',
 'nrevisions' => '$1 {{PLURAL:$1|измена|измене|измена}}',
@@ -2264,6 +2265,7 @@ $1',
 'mostlinkedtemplates' => 'Шаблони с највише веза',
 'mostcategories' => 'Чланци с највише категорија',
 'mostimages' => 'Датотеке с највише веза',
+'mostinterwikis' => 'Странице са највише међувикија',
 'mostrevisions' => 'Странице с највише измена',
 'prefixindex' => 'Све странице с префиксом',
 'prefixindex-namespace' => 'Све странице с предметком (именски простор $1)',
@@ -2365,7 +2367,7 @@ $1',
 'linksearch-ok' => 'Претражи',
 'linksearch-text' => 'Могу се користити џокери попут „*.wikipedia.org“.<br />
 Потребан је највиши домен, као „*.org“.<br />
-Подржани протоколи: <tt>$1</tt> (не стављајте у претрагу)',
+Подржани протоколи: <code>$1</code> (не стављајте у претрагу)',
 'linksearch-line' => '$1 веза у $2',
 'linksearch-error' => 'Џокери се могу појавити само на почетку адресе.',
 
@@ -2398,8 +2400,8 @@ $1',
 'listgrouprights-rights' => 'Права',
 'listgrouprights-helppage' => 'Help:Права групе',
 'listgrouprights-members' => '(списак чланова)',
-'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <tt>($2)</tt></span>',
-'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <tt>($2)</tt></span>',
+'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <code>($2)</code></span>',
+'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <code>($2)</code></span>',
 'listgrouprights-addgroup' => 'додаје {{PLURAL:$2|следећу групу|следеће групе}}: $1',
 'listgrouprights-removegroup' => 'брише {{PLURAL:$2|следећу групу|следеће групе}}: $1',
 'listgrouprights-addgroup-all' => 'додавање свих група',
@@ -2413,6 +2415,8 @@ $1',
 'mailnologin' => 'Нема адресе за слање',
 'mailnologintext' => 'Морате бити [[Special:UserLogin|пријављени]] и имати исправну е-адресу у [[Special:Preferences|подешавањима]] да бисте слали е-поруке другим корисницима.',
 'emailuser' => 'Пошаљи е-поруку',
+'emailuser-title-target' => 'Слање е-поруке {{GENDER:$1|кориснику|корисници|кориснику}}',
+'emailuser-title-notarget' => 'Слање е-поруке кориснику',
 'emailpage' => 'Слање е-порука',
 'emailpagetext' => 'Користите овај образац да пошаљете е-поруку овом кориснику.
 Е-адреса коју сте унели у [[Special:Preferences|подешавањима]] ће бити приказана као адреса пошиљаоца, тако да ће прималац поруке моћи да вам одговори.',
@@ -3069,6 +3073,7 @@ $1',
 'import-interwiki-templates' => 'Укључи све шаблоне',
 'import-interwiki-submit' => 'Увези',
 'import-interwiki-namespace' => 'Одредишни именски простор:',
+'import-interwiki-rootpage' => 'Одредишна основна страница (необавезно):',
 'import-upload-filename' => 'Назив датотеке:',
 'import-comment' => 'Коментар:',
 'importtext' => 'Извезите датотеку с изворног викија користећи [[Special:Export|извоз]].
@@ -3105,6 +3110,9 @@ $1',
 'import-error-interwiki' => 'Не могу да увезем страницу „$1“ јер је њен назив резервисан за спољно повезивање (међувики).',
 'import-error-special' => 'Не могу да увезем страницу „$1“ јер она припада посебном именском простору које не прихвата странице.',
 'import-error-invalid' => 'Не могу да увезем страницу „$1“ јер је њен назив неисправан.',
+'import-options-wrong' => '{{PLURAL:$2|Погрешна опција|Погрешне опције}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Наведена основна страница има неисправан наслов.',
+'import-rootpage-nosubpage' => 'Именски простор „$1“ основне странице не дозвољава подстранице.',
 
 # Import log
 'importlogpage' => 'Дневник увоза',
@@ -3256,16 +3264,16 @@ $1',
 
 # Info page
 'pageinfo-title' => 'Подаци о „$1“',
-'pageinfo-header-edits' => 'Измена',
-'pageinfo-header-watchlist' => 'Списак надгледања',
-'pageinfo-header-views' => 'Прегледа',
-'pageinfo-subjectpage' => 'Страница',
-'pageinfo-talkpage' => 'Страница за разговор',
-'pageinfo-watchers' => 'Број прегледача',
-'pageinfo-edits' => 'Број измена',
-'pageinfo-authors' => 'Број различитих аутора',
+'pageinfo-header-basic' => 'Основни подаци',
+'pageinfo-header-edits' => 'Историја измена',
+'pageinfo-header-restrictions' => 'Заштита странице',
+'pageinfo-header-properties' => 'Својства странице',
+'pageinfo-display-title' => 'Наслов за приказ',
+'pageinfo-default-sort' => 'Подразумевани кључ сортирања',
 'pageinfo-views' => 'Број прегледа',
-'pageinfo-viewsperedit' => 'Прегледа по измени',
+'pageinfo-watchers' => 'Број надгледача страница',
+'pageinfo-edits' => 'Број измена',
+'pageinfo-authors' => 'Број засебних аутора',
 
 # Skin names
 'skinname-standard' => 'Класично',
index 9185507..a3f7ac1 100644 (file)
@@ -634,9 +634,9 @@ Spisak svih posebnih stranica nalazi se [[Special:SpecialPages|ovde]].',
 'dberrortext' => 'Došlo je do sintaktičke greške u bazi.
 Možda se radi o grešci u softveru.
 Poslednji pokušaj upita je glasio:
-<blockquote><tt>$1</tt></blockquote>
-unutar funkcije „<tt>$2</tt>“.
-Baza podataka je prijavila grešku „<tt>$3: $4</tt>“.',
+<blockquote><code>$1</code></blockquote>
+unutar funkcije „<code>$2</code>“.
+Baza podataka je prijavila grešku „<samp>$3: $4</samp>“.',
 'dberrortextcl' => 'Došlo je do sintaktičke greške u bazi.
 Poslednji pokušaj upita je glasio:
 „$1“
@@ -997,7 +997,6 @@ Izveštaj o poslednjem blokiranju možete pogledati ispod:',
 *'''Fajerfoks i Safari:''' držite ''Shift'' i kliknite na ''Osveži'', ili pritisnite ''Ctrl-F5'' ili Ctrl-R (''⌘-R'' na Makintošu)
 *'''Gugl kroum:''' pritisnite ''Ctrl-Shift-R'' (''⌘-Shift-R'' na Makintošu)
 *'''Internet eksplorer: '''držite ''Ctrl'' i kliknite na ''Osveži'', ili pritisnite ''Ctrl-F5''
-*'''K-osvajač: '''kliknite na ''Osveži'' ili pritisnite ''F5''
 *'''Opera:''' očistite privremenu memoriju preko menija ''Alatke → Postavke''.",
 '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.",
@@ -1735,9 +1734,9 @@ Istorija brisanja i premeštanja se nalazi ispod:",
 Za pregled ili pretragu postojećih datoteka, pogledajte [[Special:FileList|spisak otpremljenih datoteka]], ponovna otpremanja su navedena u [[Special:Log/upload|dnevniku otpremanja]], a brisanja u [[Special:Log/delete|dnevniku brisanja]].
 
 Datoteku dodajete na željenu stranicu koristeći sledeće obrasce:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Slika.jpg]]</nowiki></tt>''' za verziju slike u punoj veličini
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Slika.png|200p|mini|levo|opis]]</nowiki></tt>''' za verziju slike s veličinom od 200 piksela koja je prikazana u zasebnom okviru, zajedno s opisom.
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></tt>''' za direktno povezivanje s datotekom bez njenog prikazivanja",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Slika.jpg]]</nowiki></code>''' za verziju slike u punoj veličini
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Slika.png|200p|mini|levo|opis]]</nowiki></code>''' za verziju slike s veličinom od 200 piksela koja je prikazana u zasebnom okviru, zajedno s opisom.
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></code>''' za direktno povezivanje s datotekom bez njenog prikazivanja",
 'upload-permitted' => 'Dozvoljene vrste datoteka: $1.',
 'upload-preferred' => 'Poželjne vrste datoteka: $1.',
 'upload-prohibited' => 'Zabranjene vrste datoteka: $1.',
@@ -1784,21 +1783,21 @@ Promenite naziv datoteke i ponovo je pošaljite.',
 Uzrok može biti greška u nazivu datoteke.
 Proverite da li zaista želite da je pošaljete.',
 'windows-nonascii-filename' => 'Ovaj viki ne podržava nazive datoteka s posebnim znacima.',
-'fileexists' => "Datoteka s ovim nazivom već postoji. Pogledajte '''<tt>[[:$1]]</tt>''' ako niste sigurni da li želite da je promenite.
-[[$1|thumb]]",
-'filepageexists' => "Stranica s opisom ove datoteke je već napravljena ovde '''<tt>[[:$1]]</tt>''', iako datoteka ne postoji.
+'fileexists' => 'Datoteka s ovim nazivom već postoji. Pogledajte <strong>[[:$1]]</strong> ako niste sigurni da li želite da je promenite.
+[[$1|thumb]]',
+'filepageexists' => 'Stranica s opisom ove datoteke je već napravljena ovde <strong>[[:$1]]</strong>, iako datoteka ne postoji.
 Opis koji ste naveli se neće pojaviti na stranici s opisom.
 Da bi se vaš opis ovde našao, potrebno je da ga ručno izmenite.
-[[$1|thumb]]",
-'fileexists-extension' => "Datoteka sa sličnim nazivom već postoji: [[$2|thumb]]
-* Naziv datoteke koju šaljete: '''<tt>[[:$1]]</tt>'''
-* Naziv postojeće datoteke: '''<tt>[[:$2]]</tt>'''
-Izaberite drugačiji naziv.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Datoteka sa sličnim nazivom već postoji: [[$2|thumb]]
+* Naziv datoteke koju šaljete: <strong>[[:$1]]</strong>
+* Naziv postojeće datoteke: <strong>[[:$2]]</strong>
+Izaberite drugačiji naziv.',
 'fileexists-thumbnail-yes' => "Izgleda da je datoteka umanjeno izdanje slike ''(thumbnail)''.
 [[$1|thumb]]
-Proverite datoteku '''<tt>[[:$1]]</tt>'''.
+Proverite datoteku <strong>[[:$1]]</strong>.
 Ako je proverena datoteka ista slika originalne veličine, nije potrebno slati dodatnu sliku.",
-'file-thumbnail-no' => "Datoteka počinje sa '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Datoteka počinje sa <strong>$1</strong>.
 Izgleda da se radi o umanjenoj slici ''(thumbnail)''.
 Ukoliko 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.
@@ -2070,7 +2069,7 @@ Njen opis možete da izmenite na [$2 odgovarajućoj stranici].',
 # MIME search
 'mimesearch' => 'MIME pretraga',
 'mimesearch-summary' => 'Ova stranica omogućava filtriranje datoteka prema njihovim vrstama MIME.
-Ulazni podaci: contenttype/subtype, npr. <tt>image/jpeg</tt>.',
+Ulazni podaci: contenttype/subtype, npr. <code>image/jpeg</code>.',
 'mimetype' => 'MIME vrsta:',
 'download' => 'preuzmi',
 
@@ -2274,7 +2273,7 @@ Pogledajte i [[Special:WantedCategories|tražene kategorije]].',
 'linksearch-ok' => 'Pretraži',
 'linksearch-text' => 'Mogu se koristiti džokeri poput „*.wikipedia.org“.<br />
 Potreban je najviši domen, kao „*.org“.<br />
-Podržani protokoli: <tt>$1</tt> (ne stavljajte u pretragu)',
+Podržani protokoli: <code>$1</code> (ne stavljajte u pretragu)',
 'linksearch-line' => '$1 veza u $2',
 'linksearch-error' => 'Džokeri se mogu pojaviti samo na početku adrese.',
 
@@ -2307,8 +2306,8 @@ Pogledajte [[{{MediaWiki:Listgrouprights-helppage}}|više detalja]] o pojedinač
 'listgrouprights-rights' => 'Prava',
 'listgrouprights-helppage' => 'Help:Prava grupe',
 'listgrouprights-members' => '(spisak članova)',
-'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <tt>($2)</tt></span>',
-'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <tt>($2)</tt></span>',
+'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <code>($2)</code></span>',
+'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <code>($2)</code></span>',
 'listgrouprights-addgroup' => 'dodaje {{PLURAL:$2|sledeću grupu|sledeće grupe}}: $1',
 'listgrouprights-removegroup' => 'briše {{PLURAL:$2|sledeću grupu|sledeće grupe}}: $1',
 'listgrouprights-addgroup-all' => 'dodavanje svih grupa',
@@ -2978,6 +2977,7 @@ Sve radnje pri uvozu s drugih vikija su zabeležene u [[Special:Log/import|dnevn
 'import-interwiki-templates' => 'Uključi sve šablone',
 'import-interwiki-submit' => 'Uvezi',
 'import-interwiki-namespace' => 'Odredišni imenski prostor:',
+'import-interwiki-rootpage' => 'Odredišna osnovna stranica (neobavezno):',
 'import-upload-filename' => 'Naziv datoteke:',
 'import-comment' => 'Komentar:',
 'importtext' => 'Izvezite datoteku s izvornog vikija koristeći [[Special:Export|izvoz]].
@@ -3014,6 +3014,9 @@ Pokušajte ponovo.',
 'import-error-interwiki' => 'Ne mogu da uvezem stranicu „$1“ jer je njen naziv rezervisan za spoljno povezivanje (međuviki).',
 'import-error-special' => 'Ne mogu da uvezem stranicu „$1“ jer ona pripada posebnom imenskom prostoru koje ne prihvata stranice.',
 'import-error-invalid' => 'Ne mogu da uvezem stranicu „$1“ jer je njen naziv neispravan.',
+'import-options-wrong' => '{{PLURAL:$2|Pogrešna opcija|Pogrešne opcije}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Navedena osnovna stranica ima neispravan naslov.',
+'import-rootpage-nosubpage' => 'Imenski prostor „$1“ osnovne stranice ne dozvoljava podstranice.',
 
 # Import log
 'importlogpage' => 'Dnevnik uvoza',
@@ -3165,16 +3168,11 @@ Ovo je verovatno izazvano vezom do spoljašnjeg sajta koji se nalazi na crnoj li
 
 # Info page
 'pageinfo-title' => 'Podaci o „$1“',
-'pageinfo-header-edits' => 'Izmena',
-'pageinfo-header-watchlist' => 'Spisak nadgledanja',
-'pageinfo-header-views' => 'Pregleda',
-'pageinfo-subjectpage' => 'Stranica',
-'pageinfo-talkpage' => 'Stranica za razgovor',
-'pageinfo-watchers' => 'Broj pregledača',
-'pageinfo-edits' => 'Broj izmena',
-'pageinfo-authors' => 'Broj različitih autora',
+'pageinfo-header-edits' => 'Istorija izmena',
 'pageinfo-views' => 'Broj pregleda',
-'pageinfo-viewsperedit' => 'Pregleda po izmeni',
+'pageinfo-watchers' => 'Broj nadgledača stranica',
+'pageinfo-edits' => 'Broj izmena',
+'pageinfo-authors' => 'Broj zasebnih autora',
 
 # Skin names
 'skinname-standard' => 'Klasično',
index b02280e..e5916f4 100644 (file)
@@ -1372,12 +1372,12 @@ Bestäätigje dan ju Lizenz-Fereenboarenge un klik deerätter ap '''„Doatäi h
 Dit kon n Skoft duurje, besunners bie ne loangsomme Internet-Ferbiendenge.
 
 Uum ne '''Bielde''' in ne Siede tou ferweenden, skrieuw an Steede fon ju Bielde toun Biespil:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}:Doatäi.jpg<nowiki>]]</nowiki></tt>'''
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}:Doatäi.jpg|Link-Text<nowiki>]]</nowiki></tt>'''
+* '''<code><nowiki>[[</nowiki>{{ns:file}}:Doatäi.jpg<nowiki>]]</nowiki></code>'''
+* '''<code><nowiki>[[</nowiki>{{ns:file}}:Doatäi.jpg|Link-Text<nowiki>]]</nowiki></code>'''
 
 Uum '''Mediendoatäie''' ientoubienden, ferweende toun Biespil:
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}:Doatäi.ogg<nowiki>]]</nowiki></tt>'''
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}:Doatäi.ogg|Link-Text<nowiki>]]</nowiki></tt>'''
+* '''<code><nowiki>[[</nowiki>{{ns:media}}:Doatäi.ogg<nowiki>]]</nowiki></code>'''
+* '''<code><nowiki>[[</nowiki>{{ns:media}}:Doatäi.ogg|Link-Text<nowiki>]]</nowiki></code>'''
 
 Beoachtje, dät, juust as bie normoale Sieden-Inhoolde, uur Benutsere dien Doatäie läskje of annerje konnen.",
 'upload-permitted' => 'Ferlööwede Doatäitypen: $1.',
@@ -1423,20 +1423,20 @@ Ferlööwed {{PLURAL:$3|is|sunt}} $2.",
 'windows-nonascii-filename' => 'Dit Wiki unnerstöänt neen Doatäinoomen do der Sunnerteekene änthoolde.',
 'fileexists' => "Ne Doatäi mäd dissen Noome bestoant al.
 Wan du ap 'Doatäi spiekerje' klikst, wäd ju Doatäi uurskrieuwen.
-Unner '''<tt>[[:$1]]</tt>''' koast du die bewisje, of du dät wuddelk wolt.
+Unner <strong>[[:$1]]</strong> koast du die bewisje, of du dät wuddelk wolt.
 [[$1|thumb]]",
-'filepageexists' => "Ju Beskrieuwengssiede foar disse Doatäi wuude al moaked as '''<tt>[[:$1]]</tt>''', man der bestoant neen Doatäi mäd dissen Noome.
+'filepageexists' => 'Ju Beskrieuwengssiede foar disse Doatäi wuude al moaked as <strong>[[:$1]]</strong>, man der bestoant neen Doatäi mäd dissen Noome.
 Ju ienroate Beskrieuwenge wäd nit ap ju Beskrieuwengssiede uurnuumen.
 Ju Beskrieuwengssiede moast du ätter dät Hoochleeden fon ju Doatäi noch mäd de Hounde beoarbaidje.
-[[$1|thumb]]",
-'fileexists-extension' => "Een Doatäi mäd n äänelken Noome existiert al: [[$2|thumb]]
-* Noome fon ju hoochtouleedende Doatäi: '''<tt>[[:$1]]</tt>'''
-* Noome fon ju anweesende Doatäi: '''<tt>[[:$2]]</tt>'''
-Wääl n uur Noome.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Een Doatäi mäd n äänelken Noome existiert al: [[$2|thumb]]
+* Noome fon ju hoochtouleedende Doatäi: <strong>[[:$1]]</strong>
+* Noome fon ju anweesende Doatäi: <strong>[[:$2]]</strong>
+Wääl n uur Noome.',
 'fileexists-thumbnail-yes' => "Bie ju Doatäi skient et sik uum ne Bielde fon ferlitjerde Grööte ''(thumbnail)'' tou honneljen. [[$1|thumb]]
-Pröif ju Doatäi '''<tt>[[:$1]]</tt>'''.
+Pröif ju Doatäi <strong>[[:$1]]</strong>.
 Wan et sik uum ju Bielde in Originoalgrööte honnelt, dan houget neen apaate Foarskaubielde hoochleeden tou wäiden.",
-'file-thumbnail-no' => "Die Doatäinoome begint mäd '''<tt>$1</tt>'''. Dit tjut ap ne Bielde fon ferlitjerde Grööte ''(thumbnail)'' wai.
+'file-thumbnail-no' => "Die Doatäinoome begint mäd <strong>$1</strong>. Dit tjut ap ne Bielde fon ferlitjerde Grööte ''(thumbnail)'' wai.
 Pröif, of du ju Bielde in fulle Aplöösenge foarlääsen hääst un leed ju unner dän Originoalnoome hooch. Uurs annerje dän Doatäinoome.",
 'fileexists-forbidden' => 'Mäd dissen Noome bestoant al ne Doatäi un ju kon nit uurskrieuwen wäide. Gung jädden tourääch un leede dien Doatäi unner n uur Noome hooch. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'Mäd dissen Noome bestoant al ne Doatäi in dät zentroale Medienarchiv.
@@ -1628,7 +1628,7 @@ Ne [[Special:WhatLinksHere/$2|fulständige Lieste]] is ferföigboar.',
 
 # MIME search
 'mimesearch' => 'Säike ätter MIME-Typ',
-'mimesearch-summary' => 'Ap disse Spezialsiede konnen do Doatäie ätter dän MIME-Typ filterd wäide. Ju Iengoawe mout immer dän Medien- un Subtyp beienhoolde: <tt>image/jpeg</tt> (sjuch Bieldbeskrieuwengssiede).',
+'mimesearch-summary' => 'Ap disse Spezialsiede konnen do Doatäie ätter dän MIME-Typ filterd wäide. Ju Iengoawe mout immer dän Medien- un Subtyp beienhoolde: <code>image/jpeg</code> (sjuch Bieldbeskrieuwengssiede).',
 'mimetype' => 'MIME-Typ:',
 'download' => 'Deelleede',
 
@@ -1817,7 +1817,7 @@ Sjuch uk ju Lieste fon do [[Special:WantedCategories|wonskede Kategorien]].',
 'linksearch-pat' => 'Säikmuster:',
 'linksearch-ns' => 'Noomensruum:',
 'linksearch-ok' => 'Säike (012)',
-'linksearch-text' => 'Disse Spezioalsiede moaket ju Säike muugelke ätter Sieden, in do bestimde Webferbiendengen äntheelden sunt. Deerbie konnen Ploatshooldere as biespilswiese <tt>*.biespiell.de</tt> benutsed wäide. Der mout ap minste een Top-Level-Domai, t.B. „*.org“. anroat wäide. <br />Unnerstutsede Protokolle: <tt>$1</tt> (Disse jädden nit bie ju Säikanfroage anreeke.)',
+'linksearch-text' => 'Disse Spezioalsiede moaket ju Säike muugelke ätter Sieden, in do bestimde Webferbiendengen äntheelden sunt. Deerbie konnen Ploatshooldere as biespilswiese <code>*.biespiell.de</code> benutsed wäide. Der mout ap minste een Top-Level-Domai, t.B. „*.org“. anroat wäide. <br />Unnerstutsede Protokolle: <code>$1</code> (Disse jädden nit bie ju Säikanfroage anreeke.)',
 'linksearch-line' => '$1 is ferlinked fon $2',
 'linksearch-error' => 'Wildcards konnen bloot an dän Ounfang fon ju URL ferwoand wäide.',
 
@@ -2609,15 +2609,10 @@ Do ap dän lokoale Reekener spiekerje un deerätter hier hoochleede.',
 # Info page
 'pageinfo-title' => 'Informatione tou „$1“',
 'pageinfo-header-edits' => 'Beoarbaidengen',
-'pageinfo-header-watchlist' => 'Beooboachtengslieste',
-'pageinfo-header-views' => 'Siedenaproupe',
-'pageinfo-subjectpage' => 'Siede',
-'pageinfo-talkpage' => 'Diskussionssiede',
+'pageinfo-views' => 'Antaal fon Siedenaproupe',
 'pageinfo-watchers' => 'Antaal fon do Besäikere',
 'pageinfo-edits' => 'Antaal fon do  Beoarbaidengen',
 'pageinfo-authors' => 'Antaal fon unnerskeedelke Autoren',
-'pageinfo-views' => 'Antaal fon Siedenaproupe',
-'pageinfo-viewsperedit' => 'Siedenaproupe pro Beoarbaidenge',
 
 # Patrolling
 'markaspatrolleddiff' => 'As pröiwed markierje',
index 8c0d363..6b8b243 100644 (file)
@@ -1424,8 +1424,8 @@ Pikeun némbongkeun atawa néang gambar-gambar nu pernah dimuat saméméhna, man
 Paké formulir di handap pikeun ngamuat koropak gambar anyar pikeun ilustrasi kaca anjeun. Na kalolobaan panyungsi, anjeun bakal manggihan tombol \"Sungsi/''Browse''...\", nu bakal nganteur ka dialog muka-koropak nu baku na sistim operasi anjeun. Milih hiji koropak bakal ngeusian ngaran koropakna kana rohangan téks gigireun tombol nu tadi. Anjeun ogé kudu nyontréng kotak nu nandakeun yén anjeun teu ngarumpak hak cipta batur ku dimuatna ieu koropak. Pencét tombol \"Muatkeun/''Upload''\" pikeun ngeréngsékeun muatan. Prosés ieu bisa lila mun anjeun migunakeun sambungan internét nu lambat.
 
 Format nu dianjurkeun nyéta JPEG pikeun gambar fotografik, PNG pikeun hasil ngagambar sarta gambar séjénna, sarta OGG pikeun sora. Pilih ngaran koropak nu déskriptif sangkan teu ngalieurkeun. Pikeun ngasupkeun gambarna na kaca séjén, pigunakeun tumbu dina wujud
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Gambar.jpg]]</nowiki></tt>''' pikeun gambar dina ukuran aslina
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Berkas.ogg]]</nowiki></tt>''' pikeun sora.
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Gambar.jpg]]</nowiki></code>''' pikeun gambar dina ukuran aslina
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Berkas.ogg]]</nowiki></code>''' pikeun sora.
 
 Catet yén salaku kaca wiki, nu séjén bisa ngarobah atawa ngahapus muatan anjeun mun maranéhna nganggap ieu saluyu jeung kapentingan proyék, sarta anjeun bisa waé dipeungpeuk ti ngamuat koropak mun anjeun ngaruksak/ngaganggu sistim.",
 'upload-permitted' => 'Tipeu koropak nu diwidian: $1.',
@@ -1467,12 +1467,12 @@ Catet yén salaku kaca wiki, nu séjén bisa ngarobah atawa ngahapus muatan anje
 'largefileserver' => 'Ieu koropak badag teuing, ngaleuwihan wates nu diwenangkeun ku server.',
 'emptyfile' => "Koropak nu dimuatkeun ku anjeun jigana kosong. Hal ieu bisa jadi alatan sarupaning ''typo'' na ngaran koropakna. Mangga parios deui yén anjeun leres-leres hoyong ngamuat koropak éta.",
 'windows-nonascii-filename' => 'Ieu wiki teu ngarojong ngaran berkas anu maké aksara husus.',
-'fileexists' => "Koropak nu ngaranna kieu geus aya, mangga parios '''<tt>[[:$1]]</tt>''' mun anjeun teu yakin rék ngaganti.
-[[$1|thumb]]",
-'fileexists-extension' => "Geus aya berkas anu ngaranna sarupa: [[$2|thumb]]
-* Ngaran berkas nu dimuat: '''<tt>[[:$1]]</tt>'''
-* Ngaran berkas nu geus aya: '''<tt>[[:$2]]</tt>'''
-Pilih ngaran séjén.",
+'fileexists' => 'Koropak nu ngaranna kieu geus aya, mangga parios <strong>[[:$1]]</strong> mun anjeun teu yakin rék ngaganti.
+[[$1|thumb]]',
+'fileexists-extension' => 'Geus aya berkas anu ngaranna sarupa: [[$2|thumb]]
+* Ngaran berkas nu dimuat: <strong>[[:$1]]</strong>
+* Ngaran berkas nu geus aya: <strong>[[:$2]]</strong>
+Pilih ngaran séjén.',
 'fileexists-forbidden' => 'Berkas  nu ngaranna kitu geus aya sarta teu bisa ditimpah.
 Mun anjeun keukeuh rék ngunggahkeun berkas anjeun, mangga balik deui sarta paké ngaran anyar.
 [[File:$1|thumb|center|$1]]',
@@ -1619,7 +1619,7 @@ Pedaran ti [$2 kaca pedaranana] dipidangkeun di handap.',
 
 # MIME search
 'mimesearch' => 'Sungsi MIME',
-'mimesearch-summary' => 'Ieu kaca bisa dipaké nyaring koropak dumasar tipeu MIME-na. Asupan: contenttype/subtype, contona <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Ieu kaca bisa dipaké nyaring koropak dumasar tipeu MIME-na. Asupan: contenttype/subtype, contona <code>image/jpeg</code>.',
 'mimetype' => 'Tipeu MIME:',
 'download' => 'pulut',
 
@@ -1804,7 +1804,7 @@ Baca ogé [[Special:WantedCategories|kategori nu dipikabutuh]].',
 'linksearch-pat' => 'Pola sungsi:',
 'linksearch-ns' => 'Spasi ngaran:',
 'linksearch-ok' => 'Sungsi',
-'linksearch-text' => "''Wildcard'' sarupaning \"*.wikipedia.org\" bisa dipaké.<br />Protokol nu dirojong: <tt>\$1</tt>",
+'linksearch-text' => "''Wildcard'' sarupaning \"*.wikipedia.org\" bisa dipaké.<br />Protokol nu dirojong: <code>\$1</code>",
 'linksearch-line' => '$1 ditumbu ti $2',
 'linksearch-error' => "''Wildcard'' ngan bisa némbongan dina awal ngaran indung (''host'').",
 
@@ -2478,8 +2478,6 @@ Sigana mah ieu téh alatan tumbu ka loka luar.',
 # Info page
 'pageinfo-title' => 'Émbaran pikeun "$1"',
 'pageinfo-header-edits' => 'Éditan',
-'pageinfo-subjectpage' => 'Kaca',
-'pageinfo-talkpage' => 'Kaca sawala',
 'pageinfo-watchers' => 'Jumlah nu ngawaskeun',
 'pageinfo-edits' => 'Jumlah éditan',
 'pageinfo-authors' => 'Jumlah kontributor nu béda',
index 54dd095..304069d 100644 (file)
@@ -1706,9 +1706,9 @@ Raderings- och sidflyttningsloggen för denna sida återges här:",
 För att titta på eller leta efter filer som redan har laddats upp, se [[Special:FileList|listan över uppladdade filer]]. Uppladdningar loggförs även i [[Special:Log/upload|uppladdningsloggen]], och raderingar i [[Special:Log/delete|raderingsloggen]].
 
 Använd en länk på något av följande format för att infoga en fil på en sida:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' för att visa filen i dess hela storlek
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alternativ text]]</nowiki></tt>''' för att visa en rendering med bredden 200 pixel i en ruta till vänster med bildtexten 'alternativ text'
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' för att länka direkt till filen utan att visa den",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' för att visa filen i dess hela storlek
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alternativ text]]</nowiki></code>''' för att visa en rendering med bredden 200 pixel i en ruta till vänster med bildtexten 'alternativ text'
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' för att länka direkt till filen utan att visa den",
 'upload-permitted' => 'Tillåtna filtyper: $1.',
 'upload-preferred' => 'Föredragna filtyper: $1.',
 'upload-prohibited' => 'Förbjudna filtyper: $1.',
@@ -1753,21 +1753,21 @@ denna fil är $2.',
 'largefileserver' => 'Denna fil är större än vad servern ställts in att tillåta.',
 'emptyfile' => 'Filen du laddade upp verkar vara tom; felet kan bero på ett stavfel i filnamnet. Kontrollera om du verkligen vill ladda upp denna fil.',
 'windows-nonascii-filename' => 'Denna wiki stödjer inte filnamn med specialtecken.',
-'fileexists' => "Det finns redan en fil med detta namn.
-Titta på '''<tt>[[:$1]]</tt>''', såvida du inte är säker på att du vill ändra den.
-[[$1|thumb]]",
-'filepageexists' => "Beskrivningssidan för denna fil har redan skapats på '''<tt>[[:$1]]</tt>''', men just nu finns ingen fil med detta namn.
+'fileexists' => 'Det finns redan en fil med detta namn.
+Titta på <strong>[[:$1]]</strong>, såvida du inte är säker på att du vill ändra den.
+[[$1|thumb]]',
+'filepageexists' => 'Beskrivningssidan för denna fil har redan skapats på <strong>[[:$1]]</strong>, men just nu finns ingen fil med detta namn.
 Den sammanfattning du skriver här kommer inte visas på beskrivningssidan.
 För att din sammanfattning ska visas där, så måste du redigera beskrivningssidan manuellt.
-[[$1|thumb]]",
-'fileexists-extension' => "En fil med ett liknande namn finns redan: [[$2|thumb]]
-* Namn på den fil du försöker ladda upp: '''<tt>[[:$1]]</tt>'''
-* Namn på filen som redan finns: '''<tt>[[:$2]]</tt>'''
-Var vänlig välj ett annat namn.",
+[[$1|thumb]]',
+'fileexists-extension' => 'En fil med ett liknande namn finns redan: [[$2|thumb]]
+* Namn på den fil du försöker ladda upp: <strong>[[:$1]]</strong>
+* Namn på filen som redan finns: <strong>[[:$2]]</strong>
+Var vänlig välj ett annat namn.',
 'fileexists-thumbnail-yes' => "Filen verkar vara en bild med förminskad storlek ''(miniatyrbild)''. [[$1|thumb]]
-Var vänlig kontrollera filen '''<tt>[[:$1]]</tt>'''.
+Var vänlig kontrollera filen <strong>[[:$1]]</strong>.
 Om det är samma fil i originalstorlek så är det inte nödvändigt att ladda upp en extra miniatyrbild.",
-'file-thumbnail-no' => "Filnamnet börjar med '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Filnamnet börjar med <strong>$1</strong>.
 Det verkar vara en bild med förminskad storlek ''(miniatyrbild)''.
 Om du har denna bild i full storlek, ladda då hellre upp den, annars var vänlig och ändra filens namn.",
 'fileexists-forbidden' => 'En fil med detta namn existerar redan, och kan inte överskrivas.
@@ -2026,7 +2026,7 @@ Kanske vill du redigera beskrivningen på dess [$2 filbeskrivningssida] där.',
 
 # MIME search
 'mimesearch' => 'MIME-sökning',
-'mimesearch-summary' => 'På den här sidan kan du söka efter filer via dess MIME-typ. Input: contenttype/subtype, t.ex. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'På den här sidan kan du söka efter filer via dess MIME-typ. Input: contenttype/subtype, t.ex. <code>image/jpeg</code>.',
 'mimetype' => 'MIME-typ:',
 'download' => 'ladda ner',
 
@@ -2226,7 +2226,7 @@ Se även [[Special:WantedCategories|önskade kategorier]].',
 'linksearch-ok' => 'Sök',
 'linksearch-text' => 'Jokertecken (wildcards) som t.ex. "*.wikipedia.org" kan användas.
 Det krävs åtminstone en toppnivå-domän, t.ex. "*.org".<br />
-Protokoll som stöds: <tt>$1</tt> (lägg inte till något av dessa i din sökning).',
+Protokoll som stöds: <code>$1</code> (lägg inte till något av dessa i din sökning).',
 'linksearch-line' => '$1 länkas från $2',
 'linksearch-error' => 'Jokertecken kan bara användas i början av domännamnet.',
 
@@ -3094,15 +3094,10 @@ Detta orsakades troligen av en länk till en svartlistad webbplats.',
 # Info page
 'pageinfo-title' => 'Information om "$1"',
 'pageinfo-header-edits' => 'Redigeringar',
-'pageinfo-header-watchlist' => 'Bevakningslista',
-'pageinfo-header-views' => 'Visningar',
-'pageinfo-subjectpage' => 'Sida',
-'pageinfo-talkpage' => 'Diskussionssida',
+'pageinfo-views' => 'Antal visningar',
 'pageinfo-watchers' => 'Antal användare som bevakar sidan',
 'pageinfo-edits' => 'Antal redigeringar',
 'pageinfo-authors' => 'Antal olika författare',
-'pageinfo-views' => 'Antal visningar',
-'pageinfo-viewsperedit' => 'Sidvisningar per redigering',
 
 # Skin names
 'skinname-standard' => 'Standard',
index 3887bf4..4050064 100644 (file)
@@ -1447,9 +1447,9 @@ Rejea kumbukumbu za kufuta au kuhamisha ukurasa huu zinazotolewa chini:",
 Kwa kutazama au kutafuta faili zilizopakiwa awali, tafadhali nenda kwenye [[Special:FileList|orodha ya mafaili yaliyopakiwa]]. Kwa zile faili ambazo zishapitiwa, basi angalia [[Special:Log/upload|kumbukumbu ya mafaili]]. Kwa mafaili yaliyofutwa, tafadhali [[Special:Log/delete|tazama hapa]].
 
 Kwa kutumia faili katika makala, tumia moja kati ya viungo vifuatavyo:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Picha.jpg]]</nowiki></tt>''' kwa kutumia toleo zima la faili
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Picha.png|200px|thumb|left|maelezo ya picha]]</nowiki></tt>''' tumia pixel 200 kwa ukubwa mzuri na sehemu ya 'maelezo ya picha' ikiwa kama maelezo husika na picha iliyopo
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' kwa kuunga moja kwa moja bila kuonyesga faili",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Picha.jpg]]</nowiki></code>''' kwa kutumia toleo zima la faili
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Picha.png|200px|thumb|left|maelezo ya picha]]</nowiki></code>''' tumia pixel 200 kwa ukubwa mzuri na sehemu ya 'maelezo ya picha' ikiwa kama maelezo husika na picha iliyopo
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' kwa kuunga moja kwa moja bila kuonyesga faili",
 'upload-permitted' => 'Aina ya mafaili yanayoruhusiwa: $1.',
 'upload-preferred' => 'Aina za mafaili yaliyopendelewa: $1.',
 'upload-prohibited' => 'Aina za mafaili yanayokataliwa: $1.',
@@ -1496,21 +1496,21 @@ faili hili lina $2.',
 Hii huenda ikawa jina lake limeandikwa vibaya.
 Tafadhali uhakikishe kwamba ni kweli unataka kupakia faili hili.',
 'windows-nonascii-filename' => 'Wiki hii haiwezi kutumia majina ya mafaili yenye herufi maalumu.',
-'fileexists' => "Faili lenye jina hili lipo tayari, tafadhali tazama '''<tt>[[:$1]]</tt>''' ikiwa una mashaka kuhusu kulibadilisha.
-[[$1|thumb]]",
-'filepageexists' => "Ukurasa wa maelezo kwa ajili ya faili hili tayari umeshaanzishwa katika '''<tt>[[:$1]]</tt>''', lakini bado hakuna faili lenye jina hili kwa sasa.
+'fileexists' => 'Faili lenye jina hili lipo tayari, tafadhali tazama <strong>[[:$1]]</strong> ikiwa una mashaka kuhusu kulibadilisha.
+[[$1|thumb]]',
+'filepageexists' => 'Ukurasa wa maelezo kwa ajili ya faili hili tayari umeshaanzishwa katika <strong>[[:$1]]</strong>, lakini bado hakuna faili lenye jina hili kwa sasa.
 Muhtasari utakaoandika hautaonekana katika ukurasa wa maelezo.
 Kufanya muhtasari wako uonekana pale, utahitajika uhariri ukurasa kwa mikono.
-[[$1|thumb]]",
-'fileexists-extension' => "Faili lenye jina linalofanana nalo lipo tayari:[[$2|thumb]]
-* Jina la faili linalopakiwa: '''<tt>[[:$1]]</tt>'''
-* Jina la faili lililopo tayari: '''<tt>[[:$2]]</tt>'''
-Tafadhali chagua jina lingine.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Faili lenye jina linalofanana nalo lipo tayari:[[$2|thumb]]
+* Jina la faili linalopakiwa: <strong>[[:$1]]</strong>
+* Jina la faili lililopo tayari: <strong>[[:$2]]</strong>
+Tafadhali chagua jina lingine.',
 'fileexists-thumbnail-yes' => "Faili linaonekana kuwa ni ''picha'' iliyopunguzwa ukubwa.
 [[$1|thumb]]
-Tafadhali tazama faili la '''<tt>[[:$1]]</tt>'''.
+Tafadhali tazama faili la <strong>[[:$1]]</strong>.
 Ikiwa faili hili linaonyesha picha ile ile kwa ukubwa wa kawaida hakuna haja ya kupakia faili lingine la picha ndogo.",
-'file-thumbnail-no' => "Jina la faili linaloanza na '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Jina la faili linaloanza na <strong>$1</strong>.
 Inaonekana kuwa ni picha iliyopunguzwa ukubwa''(thumbnail)''.
 Ikiwa unaoyo picha hii kwa ukubwa wa kawaida tafadhali pakia picha hii, vinginevyo tafadhali badilisha jina la faili.",
 'fileexists-forbidden' => 'Faili lenye jina hili lipo tayari, na haliwezi kuandikizwa.
@@ -1714,7 +1714,7 @@ Pengine ungependa kuhariri maelezo yaliyopo katika [$2 ukurasa wa maelezo ya fai
 # MIME search
 'mimesearch' => 'Utafutaji wa MIME',
 'mimesearch-summary' => 'Ukarasa huu unawezesha kuchuja mafaili kutokana na aina ya MIME. 
-Ingiza: aina ya faili/aina mahususi, kwa mfano <tt>image/jpeg</tt>.',
+Ingiza: aina ya faili/aina mahususi, kwa mfano <code>image/jpeg</code>.',
 'mimetype' => 'Aina ya MIME:',
 'download' => 'pakua',
 
@@ -1902,7 +1902,7 @@ Tazama pia [[Special:WantedCategories|jamii zinazohitajika]].',
 'linksearch-ok' => 'Tafuta',
 'linksearch-text' => 'Alama maalumu za kutafuta kama vile "*.wikipedia.org" zinaweza kutumika.<br />
 Inahitajika angalau kikoa cha kiwango cha juu, kwa mfano "*.org".<br />
-Itifaki zinazoungwa mkono: <tt>$1</tt> (usiongeza hizi unapotafuta).',
+Itifaki zinazoungwa mkono: <code>$1</code> (usiongeza hizi unapotafuta).',
 'linksearch-line' => '$2 umeungwa kutoka $1',
 'linksearch-error' => 'Alama maalumu zinaweza kuonekana mwanzoni mwa URL tu.',
 
@@ -2568,9 +2568,6 @@ Tafadhali jaribu tena.',
 # Info page
 'pageinfo-title' => 'Taarifa juu ya "$1"',
 'pageinfo-header-edits' => 'Maharirio',
-'pageinfo-header-watchlist' => 'Maangalizi',
-'pageinfo-subjectpage' => 'Ukurasa',
-'pageinfo-talkpage' => 'Ukurasa wa majadiliano',
 'pageinfo-watchers' => 'Idadi ya wanaofuatilia',
 'pageinfo-edits' => 'Idadi ya haririo',
 
index 15346bb..5a676a4 100644 (file)
@@ -1318,17 +1318,17 @@ Přelyź na zajta [[Special:NewFiles|galeryje nowych plikůw]], coby uobejzdře
 'large-file' => 'Zaleco śe coby rozmjar plika ńy bůu wjynkšy jak $1 bajtůw. Tyn plik mo rozmjar $2 bajtůw.',
 'largefileserver' => 'Plik je wjynkšy ńiž maksymalny dozwolůny rozmjar.',
 'emptyfile' => 'Wćepywany plik cheba je pusty. Može to być bez tůž, co žeś wklepou zuo buchštaba w jygo mjańe. Sprowdź, čy mjano kere žeś wklepou je poprawne.',
-'fileexists' => "Plik uo takym mjańe juž je sam wćepany! Wćepańe nowyj grafiki ńyodwracalńe wyćepńe ta kero sam juž je wćepano ('''<tt>[[:$1]]</tt>''')! Sprowdź čy žeś je pewny co chceš tyn plik sam wćepać.
-[[$1|thumb]]",
-'filepageexists' => "Je juž sam zajta uopisu tygo plika utwořůno '''<tt>[[:$1]]</tt>''', ino ńy ma terozki plika uo tym mjańy. Informacyje uo pliku, kere žeś wćepou, ńy bydům pokozane na zajće uopisu. Jakbyś chćou coby te informacyje zostouy pokozane, muśyš jeich sprowjać rynčńy.",
-'fileexists-extension' => "Plik uo podobnym mjańe juž sam je: [[$2|thumb]]
-* Mjano wćepywanygo plika: '''<tt>[[:$1]]</tt>'''
-* Mjano plika kery juž sam je: '''<tt>[[:$2]]</tt>'''
-Wybjer proša inkše mjano.",
+'fileexists' => 'Plik uo takym mjańe juž je sam wćepany! Wćepańe nowyj grafiki ńyodwracalńe wyćepńe ta kero sam juž je wćepano (<strong>[[:$1]]</strong>)! Sprowdź čy žeś je pewny co chceš tyn plik sam wćepać.
+[[$1|thumb]]',
+'filepageexists' => 'Je juž sam zajta uopisu tygo plika utwořůno <strong>[[:$1]]</strong>, ino ńy ma terozki plika uo tym mjańy. Informacyje uo pliku, kere žeś wćepou, ńy bydům pokozane na zajće uopisu. Jakbyś chćou coby te informacyje zostouy pokozane, muśyš jeich sprowjać rynčńy.',
+'fileexists-extension' => 'Plik uo podobnym mjańe juž sam je: [[$2|thumb]]
+* Mjano wćepywanygo plika: <strong>[[:$1]]</strong>
+* Mjano plika kery juž sam je: <strong>[[:$2]]</strong>
+Wybjer proša inkše mjano.',
 'fileexists-thumbnail-yes' => "Zdowo śe co tyn plik je půmńijšůnům wersyjom grafiki ''(mińjaturkom)''. [[$1|thumb]]
-Uobejřij plik: '''<tt>[[:$1]]</tt>'''.
+Uobejřij plik: <strong>[[:$1]]</strong>.
 Jak to je ta sama grafika, ino wjelgo, ńy muśiš juž jei sam zaś wćepywać.",
-'file-thumbnail-no' => "Mjano plika začyno śe uod '''<tt>$1</tt>'''. Zdowo śe, co to je půmńijšůna grafika ''(mińaturka)''.
+'file-thumbnail-no' => "Mjano plika začyno śe uod <strong>$1</strong>. Zdowo śe, co to je půmńijšůna grafika ''(mińaturka)''.
 Jak moš ta grafika we peunym rozmjaře - wćepej ja sam.
 Jak chceš wćepać ta, bydźeš muśou zmjyńić mjano wćepywanygo terozki plika.",
 'fileexists-forbidden' => 'Plik uo takym mjańy juž sům můmy! Idź nazod i wćepej tyn plik pod inkšym mjanym. [[File:$1|thumb|center|$1]]',
@@ -1443,7 +1443,7 @@ Niżyj sům informacyje ze [$2 zajty popisu] tygo pliku.',
 
 # MIME search
 'mimesearch' => 'Sznupej MIME',
-'mimesearch-summary' => 'Ta zajta ůmožliwjo šnupańe za plikůma wedle jeich typu MIME. Užyće: typtreśći/podtyp, np. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Ta zajta ůmožliwjo šnupańe za plikůma wedle jeich typu MIME. Užyće: typtreśći/podtyp, np. <code>image/jpeg</code>.',
 'mimetype' => 'Typ MIME:',
 'download' => 'pobier',
 
@@ -1620,7 +1620,7 @@ Kukńij tyż [[Special:WantedCategories|ńyistńyjůnce kategoryje]].',
 'linksearch-ns' => 'Przestrzyń mjan',
 'linksearch-ok' => 'Šnupej',
 'linksearch-text' => 'Idźe użyć symbola wjeloznacznygo „*”. Lů bajszpila „*.wikipedia.org” spowoduje sznupańy za wszyjstkimi linkůma kere prowadzům ku důmyńy „wikipedia.org” a jeij poddůmyn.<br />
-Uobsůgiwane protokoły: <tt>$1</tt>',
+Uobsůgiwane protokoły: <code>$1</code>',
 'linksearch-line' => '$1 link na zajće $2',
 'linksearch-error' => 'Symbola wjeloznacznygo idźe użyć yno na anfangu mjana hosta.',
 
index 2094da5..c91d3cb 100644 (file)
@@ -1482,19 +1482,19 @@ $1",
 'largefileserver' => 'வழங்கி ஏற்கக்கூடிய உச்ச அளவுக் கோப்பைவிட இக்கோப்பு பெரியதாகும்.',
 'emptyfile' => 'நீங்கள் பதிவேற்றிய கோப்பு வெற்றாக உள்ளது. இது கோப்பின் பெயரை பிழையாக தட்டச்சிட்டதன் காரணமாக ஏற்பட்டிருக்கலாம்.  இக்கோப்பை நீங்கள் கட்டாயம் பதிவேற்ற வேண்டுமா என்பதை உறுதிசெய்துகொள்க.',
 'windows-nonascii-filename' => 'இந்த விக்கி சிறப்பு எழுத்துக்களை கொண்ட கோப்புபெயர்களை ஆதரிப்பதில்லை.',
-'fileexists' => "இப்பெயரைக் கொண்ட கோப்பொன்று ஏற்கனவே உள்ளது.
-அந்தக் கோப்பை மாற்றப்போகிறீர்கள் என்பதில் உங்களுக்கு நிச்சயமில்லாவிடில் அருள் கூர்ந்து '''<tt>[[:$1]]</tt>''' கோப்பை ஒரு முறை பார்க்கவும்.
-[[$1|thumb]]",
-'filepageexists' => "இக்கோப்பிற்கான விளக்கப்பக்கம் '''<tt>[[:$1]]</tt>''' பக்கத்தில் ஏற்கனவே உருவாக்கப்பட்டுள்ளது, ஆனால் இப்பெயரில் கோப்பு ஒன்றில்லை. இங்கே நீங்கள் கொடுக்கும் சுருக்கம் விளக்கப்பக்கத்தில் தானியக்கமாக இணைக்கப்பட மாட்டது. சுருக்கத்தை விளக்கப்பக்கத்தில் காணச் செய்வதற்காக அப்பக்கத்தை நேரடியாக தொகுக்க வேண்டியிருக்கும்.
-[[$1|thumb]]",
-'fileexists-extension' => "இப்பெயரைக் கொண்ட கோப்பு ஏற்கனவே உள்ளது: [[$2|thumb]]
-* பதிவேற்றப்படும் கோப்பின் பெயர்: '''<tt>[[:$1]]</tt>'''
-* ஏற்கனவே உள்ளக் கோப்பின் பெயர்: '''<tt>[[:$2]]</tt>'''
-அருள் கூர்ந்து வேறு பெயரைத் தெரிவுச் செய்யவும்.",
-'fileexists-thumbnail-yes' => "இந்தக் கோப்பு அளவில் சிறியதாக்கப்பட்ட படிமம் போலத் தோன்றுகிறது. [[$1|thumb]]
-அருள் கூர்ந்து '''<tt>[[:$1]]</tt>''' கோப்பை ஒரு முறை பார்க்கவும்.
-நீங்கள் பார்த படிமமும் பதிவேற்ற எத்தனிக்கும் படிமமு ஒன்றாயின் அதன் சிறிய படிமத்தை மீண்டும் பதிவேற்றத் தேவையில்லை.",
-'file-thumbnail-no' => "இக்கோப்பின் பெயர் '''<tt>$1</tt>''' என்பதில் தொடங்குகிறது.
+'fileexists' => 'இப்பெயரைக் கொண்ட கோப்பொன்று ஏற்கனவே உள்ளது.
+அந்தக் கோப்பை மாற்றப்போகிறீர்கள் என்பதில் உங்களுக்கு நிச்சயமில்லாவிடில் அருள் கூர்ந்து <strong>[[:$1]]</strong> கோப்பை ஒரு முறை பார்க்கவும்.
+[[$1|thumb]]',
+'filepageexists' => 'இக்கோப்பிற்கான விளக்கப்பக்கம் <strong>[[:$1]]</strong> பக்கத்தில் ஏற்கனவே உருவாக்கப்பட்டுள்ளது, ஆனால் இப்பெயரில் கோப்பு ஒன்றில்லை. இங்கே நீங்கள் கொடுக்கும் சுருக்கம் விளக்கப்பக்கத்தில் தானியக்கமாக இணைக்கப்பட மாட்டது. சுருக்கத்தை விளக்கப்பக்கத்தில் காணச் செய்வதற்காக அப்பக்கத்தை நேரடியாக தொகுக்க வேண்டியிருக்கும்.
+[[$1|thumb]]',
+'fileexists-extension' => 'இப்பெயரைக் கொண்ட கோப்பு ஏற்கனவே உள்ளது: [[$2|thumb]]
+* பதிவேற்றப்படும் கோப்பின் பெயர்: <strong>[[:$1]]</strong>
+* ஏற்கனவே உள்ளக் கோப்பின் பெயர்: <strong>[[:$2]]</strong>
+அருள் கூர்ந்து வேறு பெயரைத் தெரிவுச் செய்யவும்.',
+'fileexists-thumbnail-yes' => 'இந்தக் கோப்பு அளவில் சிறியதாக்கப்பட்ட படிமம் போலத் தோன்றுகிறது. [[$1|thumb]]
+அருள் கூர்ந்து <strong>[[:$1]]</strong> கோப்பை ஒரு முறை பார்க்கவும்.
+நீங்கள் பார்த படிமமும் பதிவேற்ற எத்தனிக்கும் படிமமு ஒன்றாயின் அதன் சிறிய படிமத்தை மீண்டும் பதிவேற்றத் தேவையில்லை.',
+'file-thumbnail-no' => "இக்கோப்பின் பெயர் <strong>$1</strong> என்பதில் தொடங்குகிறது.
 இந்தக் கோப்பு அளவில் சிறியதாக்கப்பட்ட படிமம் போலத் தோன்றுகிறது ''(thumbnail)''.
 இப்படிமத்தின் முழு அளவிலான படிமம் உங்களிடமிருப்பின் அதைப் பதிவேற்றவும் அல்லது தயவுசெய்து கோப்பின் பெயரை மாற்றவும்.",
 'fileexists-forbidden' => 'இப்பெயரைக் கொண்ட கோப்பு ஏற்கனவே உள்ளது. தாங்கள் இக்கோப்பினை கட்டாயமாக பதிவேற்றம் செய்ய வேண்டும் என்றால் தாங்கள் சிறிது பின்நோக்கிச்சென்று கோப்பிற்கு புதிய பெயர் அளித்து பதிவேற்றம் செய்யவும். 
@@ -1723,7 +1723,7 @@ $1',
 
 # MIME search
 'mimesearch' => 'பலநோக்கு இணைய அஞ்சல் நீட்சித் தேடல்',
-'mimesearch-summary' => 'இப்பக்கம் பலநோக்கு இணைய அஞ்சல் நீட்சி வகையின் படி கோப்புக்களை வடிக்கட்ட உதவுகிறது. உள்ளீடு:உள்ளடக்க வகை/உபவகை, எ+கா <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'இப்பக்கம் பலநோக்கு இணைய அஞ்சல் நீட்சி வகையின் படி கோப்புக்களை வடிக்கட்ட உதவுகிறது. உள்ளீடு:உள்ளடக்க வகை/உபவகை, எ+கா <code>image/jpeg</code>.',
 'mimetype' => 'பலநோக்கு இணைய அஞ்சல் நீட்சி வகை:',
 'download' => 'தரவிறக்கு',
 
@@ -2712,15 +2712,10 @@ $1',
 # Info page
 'pageinfo-title' => '"$1" பக்கத்துக்கான தகவல்',
 'pageinfo-header-edits' => 'தொகுப்புகள்',
-'pageinfo-header-watchlist' => 'கவனிப்புப் பட்டியல்',
-'pageinfo-header-views' => 'பார்வைகள்',
-'pageinfo-subjectpage' => 'பக்கம்',
-'pageinfo-talkpage' => 'பேச்சுப் பக்கம்',
+'pageinfo-views' => 'காட்சிகள் எண்ணிக்கை',
 'pageinfo-watchers' => 'பார்வையாளர்கள் எண்ணிக்கை',
 'pageinfo-edits' => 'தொகுப்புகளின் எண்ணிக்கை:',
 'pageinfo-authors' => 'சாதகமான அம்சங்களை பெற்றிருக்கும் எழுத்தாளர்கள் எண்ணிக்கை',
-'pageinfo-views' => 'காட்சிகள் எண்ணிக்கை',
-'pageinfo-viewsperedit' => 'திருத்தந்களுக்கான காட்சிகள்',
 
 # Skin names
 'skinname-standard' => 'இயல்பான',
index 931f0dd..e2a72a3 100644 (file)
@@ -1487,9 +1487,9 @@ $1",
 గతంలో ఎక్కించిన దస్త్రాలను చూడడానికి లేదా వెతకడానికి [[Special:FileList|ఎక్కించిన దస్త్రాల యొక్క జాబితా]]కు వెళ్ళండి, (పునః)ఎక్కింపులు [[Special:Log/upload|ఎక్కింపుల చిట్టా]] లోనూ తొలగింపులు [[Special:Log/delete|తొలగింపుల చిట్టా]] లోనూ కూడా నమోదవుతాయి.
 
 ఒక దస్త్రాన్ని ఏదైనా పుటలో చేర్చడానికి, కింద చూపిన వాటిలో ఏదేనీ విధంగా లింకుని వాడండి:
-* దస్త్రపు పూర్తి కూర్పుని వాడడానికి '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>'''
-* ఎడమ వైపు మార్జినులో 200 పిక్సెళ్ళ వెడల్పుగల బొమ్మ  మరియు 'ప్రత్యామ్నాయ పాఠ్యం' అన్న వివరణతో గల పెట్టె కోసం  '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|ప్రత్యామ్నాయ పాఠ్యం]]</nowiki></tt>'''
-* దస్త్రాన్ని చూపించకుండా నేరుగా లింకు ఇవ్వడానికి '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''",
+* దస్త్రపు పూర్తి కూర్పుని వాడడానికి '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>'''
+* ఎడమ వైపు మార్జినులో 200 పిక్సెళ్ళ వెడల్పుగల బొమ్మ  మరియు 'ప్రత్యామ్నాయ పాఠ్యం' అన్న వివరణతో గల పెట్టె కోసం  '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|ప్రత్యామ్నాయ పాఠ్యం]]</nowiki></code>'''
+* దస్త్రాన్ని చూపించకుండా నేరుగా లింకు ఇవ్వడానికి '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''",
 'upload-permitted' => 'అనుమతించే ఫైలు రకాలు: $1.',
 'upload-preferred' => 'అనుమతించే ఫైలు రకాలు: $1.',
 'upload-prohibited' => 'నిషేధించిన ఫైలు రకాలు: $1.',
@@ -1533,19 +1533,19 @@ $1",
 'largefileserver' => 'ఈ ఫైలు సైజు సర్వరులో విధించిన పరిమితి కంటే ఎక్కువగా ఉంది.',
 'emptyfile' => 'మీరు అప్‌లోడు చేసిన ఫైలు ఖాళీగా ఉన్నట్లుంది. ఫైలు పేరును ఇవ్వడంలో స్పెల్లింగు తప్పు దొర్లి ఉండొచ్చు. మీరు అప్‌లోడు చెయ్యదలచింది ఇదో కాదో నిర్ధారించుకోండి.',
 'windows-nonascii-filename' => 'దస్త్రాల పేర్లలో ప్రత్యేక అక్షరాలకు ఈ వికీలో తోడ్పాటు లేదు.',
-'fileexists' => "ఈ పేరుతో ఒక ఫైలు ఇప్పటికే ఉంది.
-దీనిని మీరు మార్చాలో లేదో తెలియకపోతె ఫైలు '''<tt>[[:$1]]</tt>'''ని చూడండి.
-[[$1|thumb]]",
-'filepageexists' => "ఈ ఫైలు కొరకు వివరణ పేజీని '''<tt>[[:$1]]</tt>''' వద్ద ఈసరికే సృష్టించారు, కానీ ఆ పేరుతో ప్రస్తుతం ఏ ఫైలూ లేదు. మీరు ఇస్తున్న సంగ్రహం ఆ వివరణ పేజీలో కనబడదు. మీ సంగ్రహం అక్కడ కనబడాలంటే, నేరుగా అక్కడే చేర్చాలి.
-[[$1|thumb]]",
-'fileexists-extension' => "ఇటువంటి పేరుతో మరో ఫైలు ఉంది: [[$2|thumb]]
-* ఎగుమతి చేస్తున్న ఫైలు పేరు: '''<tt>[[:$1]]</tt>'''
-* ప్రస్తుతం ఉన్న ఫైలు పేరు: '''<tt>[[:$2]]</tt>'''
-దయచేసి మరో పేరు ఎంచుకోండి.",
+'fileexists' => 'ఈ పేరుతో ఒక ఫైలు ఇప్పటికే ఉంది.
+దీనిని మీరు మార్చాలో లేదో తెలియకపోతె ఫైలు <strong>[[:$1]]</strong>ని చూడండి.
+[[$1|thumb]]',
+'filepageexists' => 'ఈ ఫైలు కొరకు వివరణ పేజీని <strong>[[:$1]]</strong> వద్ద ఈసరికే సృష్టించారు, కానీ ఆ పేరుతో ప్రస్తుతం ఏ ఫైలూ లేదు. మీరు ఇస్తున్న సంగ్రహం ఆ వివరణ పేజీలో కనబడదు. మీ సంగ్రహం అక్కడ కనబడాలంటే, నేరుగా అక్కడే చేర్చాలి.
+[[$1|thumb]]',
+'fileexists-extension' => 'ఇటువంటి పేరుతో మరో ఫైలు ఉంది: [[$2|thumb]]
+* ఎగుమతి చేస్తున్న ఫైలు పేరు: <strong>[[:$1]]</strong>
+* ప్రస్తుతం ఉన్న ఫైలు పేరు: <strong>[[:$2]]</strong>
+దయచేసి మరో పేరు ఎంచుకోండి.',
 'fileexists-thumbnail-yes' => "ఈ ఫైలు కుదించిన బొమ్మ లాగా ఉంది ''(థంబ్‌నెయిలు)''. [[$1|thumb]]
-'''<tt>[[:$1]]</tt>''' ఫైలు చూడండి.
+<strong>[[:$1]]</strong> ఫైలు చూడండి.
 గుర్తు పెట్టబడిన ఫైలు అసలు సైజే అది అయితే, మరో థంబ్‌నెయిలును అప్‌లోడు చెయ్యాల్సిన అవసరం లేదు.",
-'file-thumbnail-no' => "ఫైలు పేరు '''<tt>$1</tt>''' తో మొదలవుతోంది.
+'file-thumbnail-no' => "ఫైలు పేరు <strong>$1</strong> తో మొదలవుతోంది.
 అది పరిమాణం తగ్గించిన ''(నఖచిత్రం)'' లాగా అనిపిస్తోంది.
 ఈ బొమ్మ యొక్క పూర్తి స్పష్టత కూర్పు ఉంటే, దాన్ని ఎగుమతి చెయ్యండి. లేదా ఫైలు పేరును మార్చండి.",
 'fileexists-forbidden' => 'ఈ పేరుతో ఇప్పటికే ఒక ఫైలు ఉంది, దాన్ని తిరగరాయలేరు.
@@ -1746,7 +1746,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 
 # MIME search
 'mimesearch' => 'బొమ్మల మెటాడేటా(MIME)ను వెతకండి',
-'mimesearch-summary' => 'ఈ పేజీ MIME-రకాన్ననుసరించి ఫైళ్ళను వడగట్టేందుకు దోహదం చేస్తుంది. Input: contenttype/subtype, ఉదా. <tt>బొమ్మ/jpeg</tt>.',
+'mimesearch-summary' => 'ఈ పేజీ MIME-రకాన్ననుసరించి ఫైళ్ళను వడగట్టేందుకు దోహదం చేస్తుంది. Input: contenttype/subtype, ఉదా. <code>బొమ్మ/jpeg</code>.',
 'mimetype' => 'MIME రకం:',
 'download' => 'డౌన్‌లోడు',
 
@@ -1939,7 +1939,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'linksearch-pat' => 'వెతకాల్సిన నమూనా:',
 'linksearch-ns' => 'పేరుబరి:',
 'linksearch-ok' => 'వెతుకు',
-'linksearch-text' => '"*.wikipedia.org" వంటి వైల్డ్ కార్డులు వాడవచ్చు.<br />ఉపయోగించుకోగల ప్రోటోకాళ్లు: <tt>$1</tt>',
+'linksearch-text' => '"*.wikipedia.org" వంటి వైల్డ్ కార్డులు వాడవచ్చు.<br />ఉపయోగించుకోగల ప్రోటోకాళ్లు: <code>$1</code>',
 'linksearch-line' => '$2 నుండి $1కి లింకు ఉంది',
 'linksearch-error' => 'హోస్ట్‌నేముకు ముందు మాత్రమే వైల్డ్ కార్డులు వాడవచ్చు.',
 
@@ -2733,15 +2733,10 @@ $UNWATCHURL కి వెళ్ళండి.
 
 # Info page
 'pageinfo-title' => '"$1" గురించి సమాచారం',
-'pageinfo-header-edits' => 'మార్పులు',
-'pageinfo-header-watchlist' => 'వీక్షణ జాబితా',
-'pageinfo-header-views' => 'వీక్షణలు',
-'pageinfo-subjectpage' => 'పుట',
-'pageinfo-talkpage' => 'చర్చా పేజీ',
-'pageinfo-watchers' => 'వీక్షకుల సంఖ్య',
-'pageinfo-edits' => 'మార్పుల సంఖ్య',
+'pageinfo-header-edits' => 'మార్పుల చరిత్ర',
 'pageinfo-views' => 'వీక్షణల సంఖ్య',
-'pageinfo-viewsperedit' => 'ఒక మార్పుకి వీక్షణలు',
+'pageinfo-watchers' => 'పేజీ వీక్షకుల సంఖ్య',
+'pageinfo-edits' => 'మొత్తం మార్పుల సంఖ్య',
 
 # Skin names
 'skinname-standard' => 'సంప్రదాయ',
index 351c01b..5e17126 100644 (file)
@@ -78,7 +78,7 @@ $messages = array(
 'tog-hideminor' => "Lá'os hatudu muda ki-ki'ik iha mudansa foufoun sira",
 'tog-usenewrc' => 'Iha lista "mudansa foufoun sira" no "lista hateke": Hatudu mudansa iha grupu sira - grupu ida ba pájina ida (presiza JavaScript)',
 'tog-showtoolbar' => 'Hatudu kaixa edita (presiza JavaScript)',
-'tog-watchcreations' => "Hateke pájina sira-ne'ebé ha'u kria",
+'tog-watchcreations' => "Hateke pájina no imajen sira-ne'ebé ha'u kria/tau iha arkivu laran",
 'tog-watchdefault' => "Hateke pájina sira-ne'ebé ha'u edita",
 'tog-watchmoves' => "Hateke pájina sira-ne'ebé ha'u book",
 'tog-watchdeletion' => "Hateke pájina sira-ne'ebé ha'u halakon",
index 534440a..76b0027 100644 (file)
@@ -1100,18 +1100,18 @@ $1',
 'large-file' => 'Тавсия шудааст, ки парвандаҳо бузургтар аз $1 набошанд; ин парванда $2 аст.',
 'largefileserver' => 'Ин парванда аз андозаи иҷозат шудаи андозаҳои парванда дар хидматгор бурзургтар аст.',
 'emptyfile' => 'Парвандаи боршуда холӣ ба назар мерасад. Ин масъала мумкин аст хатои навишт дар номи парванда рух дода бошад. Лутфан таъйид кунед, ки оё шумо дар ҳақиқат мехоҳед ин парвандаро бо ҳамин шароит бор кунед.',
-'fileexists' => "Дар ҳоли ҳозир парвандае бо ҳамин ном мавҷуд аст.
-Агар боварӣ надоред, ки мехоҳед он парвандаро тағйир диҳед, лутфан '''<tt>[[:$1]]</tt>'''-ро баррасӣ кунед.
-[[$1|thumb]]",
-'filepageexists' => "Як саҳифаи тавсифот (на парванда) бо ҳамин ном дар '''<tt>[[:$1]]</tt>''' эҷод шуда буд, аммо парвандае бо ҳамин ном дар ҳоли ҳозир мавҷуд нест. Хулосаи ворид кардаи шумо дар саҳифаи тавсифот, пайдо нахоҳад шуд. Барои намоён кардани хулосаи худ, шумо ниёз доред онро дастӣ вироиш кунед.",
-'fileexists-extension' => "Парвандае бо номи мушобеҳ вуҷуд дорад: [[$2|thumb]]
-* Номи парвандаи боргузоришуда истода: '''<tt>[[:$1]]</tt>'''
-* Номи парвандаи вуҷуд дошта: '''<tt>[[:$2]]</tt>'''
-Лутфан як номи дигареро интихоб кунед.",
+'fileexists' => 'Дар ҳоли ҳозир парвандае бо ҳамин ном мавҷуд аст.
+Агар боварӣ надоред, ки мехоҳед он парвандаро тағйир диҳед, лутфан <strong>[[:$1]]</strong>-ро баррасӣ кунед.
+[[$1|thumb]]',
+'filepageexists' => 'Як саҳифаи тавсифот (на парванда) бо ҳамин ном дар <strong>[[:$1]]</strong> эҷод шуда буд, аммо парвандае бо ҳамин ном дар ҳоли ҳозир мавҷуд нест. Хулосаи ворид кардаи шумо дар саҳифаи тавсифот, пайдо нахоҳад шуд. Барои намоён кардани хулосаи худ, шумо ниёз доред онро дастӣ вироиш кунед.',
+'fileexists-extension' => 'Парвандае бо номи мушобеҳ вуҷуд дорад: [[$2|thumb]]
+* Номи парвандаи боргузоришуда истода: <strong>[[:$1]]</strong>
+* Номи парвандаи вуҷуд дошта: <strong>[[:$2]]</strong>
+Лутфан як номи дигареро интихоб кунед.',
 'fileexists-thumbnail-yes' => "Аз акс ба назар мерасад, ки акси андозааш хурд ''(ангуштдона)''. [[$1|thumb]]
-Лутан парвандаро '''<tt>[[:$1]]</tt>''' баррасӣ кунед.
+Лутан парвандаро <strong>[[:$1]]</strong> баррасӣ кунед.
 Агар парвандаи баррасишуда акси хурд карда шудаи он парвандаи аслӣ аст, ниёзе ба боргузории акси хурд нест.",
-'file-thumbnail-no' => "Номи парванда бо '''<tt>$1</tt>''' огоз мешавад. Ба назар мерасад, ки ин парванда як аксе ''(ангуштдона)'' аз акси калонтар бошад.
+'file-thumbnail-no' => "Номи парванда бо <strong>$1</strong> огоз мешавад. Ба назар мерасад, ки ин парванда як аксе ''(ангуштдона)'' аз акси калонтар бошад.
 Агар акси бо андозаи калонтар доред, онро боргузорӣ кунед, вагарна лутфан номи парвандаро тағйир диҳед.",
 'fileexists-forbidden' => 'Дар ҳоли ҳозир, парвандае бо ҳамин ном вуҷуд дорад; лутфан бар гардед ва парвандаи мавриди назари худро бо номи дигар бор кунед. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'Дар ҳоли ҳозир парванде бо ҳамин ном дар анбори муштараки парвандаҳо вуҷуд дорад; лутфан бар гардед ва парвандаи мавриди назари худро бо номи дигар бо кунед. [[File:$1|thumb|center|$1]]',
@@ -1215,7 +1215,7 @@ $1',
 
 # MIME search
 'mimesearch' => 'Ҷустуҷӯ бо стандарти MIME',
-'mimesearch-summary' => 'Бо кӯмаки ин саҳифа шумо метавонед парвандаҳое, ки як навъ ба хусус MIME пайдо кунед. Ворид: contenttype/subtype, намуна. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Бо кӯмаки ин саҳифа шумо метавонед парвандаҳое, ки як навъ ба хусус MIME пайдо кунед. Ворид: contenttype/subtype, намуна. <code>image/jpeg</code>.',
 'mimetype' => 'MIME навъ:',
 'download' => 'боргирӣ',
 
@@ -1375,7 +1375,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'linksearch-pat' => 'Ҷустуҷӯи нақш:',
 'linksearch-ns' => 'Фазоином:',
 'linksearch-ok' => 'Ҷустуҷӯ',
-'linksearch-text' => 'Нишонаҳои монанди "*.wikipedia.org"-ро метавон истифода кард.<br />Протоколҳои пуштибонишуда: <tt>$1</tt>',
+'linksearch-text' => 'Нишонаҳои монанди "*.wikipedia.org"-ро метавон истифода кард.<br />Протоколҳои пуштибонишуда: <code>$1</code>',
 'linksearch-line' => '$1 дорои пайванд аз $2 аст',
 'linksearch-error' => 'Нишонаҳо фақат дар ибтидои номи мизбони интернетӣ метавонанд истифода шаванд.',
 
index 2ab317f..82d419a 100644 (file)
@@ -974,15 +974,15 @@ Sahifahoi dar [[Special:Watchlist|fehristi nazaroti şumo]] buda  '''purrang'''
 'large-file' => 'Tavsija şudaast, ki parvandaho buzurgtar az $1 naboşand; in parvanda $2 ast.',
 'largefileserver' => 'In parvanda az andozai içozat şudai andozahoi parvanda dar xidmatgor burzurgtar ast.',
 'emptyfile' => "Parvandai borşuda xolī ba nazar merasad. In mas'ala mumkin ast xatoi navişt dar nomi parvanda rux doda boşad. Lutfan ta'jid kuned, ki ojo şumo dar haqiqat mexohed in parvandaro bo hamin şaroit bor kuned.",
-'fileexists' => "Dar holi hozir parvandae bo hamin nom mavçud ast.
-Agar bovarī nadored, ki mexohed on parvandaro taƣjir dihed, lutfan '''<tt>[[:$1]]</tt>'''-ro barrasī kuned.
-[[$1|thumb]]",
-'fileexists-extension' => "Parvandae bo nomi muşobeh vuçud dorad: [[$2|thumb]]
-* Nomi parvandai borguzorişuda istoda: '''<tt>[[:$1]]</tt>'''
-* Nomi parvandai vuçud doşta: '''<tt>[[:$2]]</tt>'''
-Lutfan jak nomi digarero intixob kuned.",
+'fileexists' => 'Dar holi hozir parvandae bo hamin nom mavçud ast.
+Agar bovarī nadored, ki mexohed on parvandaro taƣjir dihed, lutfan <strong>[[:$1]]</strong>-ro barrasī kuned.
+[[$1|thumb]]',
+'fileexists-extension' => 'Parvandae bo nomi muşobeh vuçud dorad: [[$2|thumb]]
+* Nomi parvandai borguzorişuda istoda: <strong>[[:$1]]</strong>
+* Nomi parvandai vuçud doşta: <strong>[[:$2]]</strong>
+Lutfan jak nomi digarero intixob kuned.',
 'fileexists-thumbnail-yes' => "Az aks ba nazar merasad, ki aksi andozaaş xurd ''(anguştdona)''. [[$1|thumb]]
-Lutan parvandaro '''<tt>[[:$1]]</tt>''' barrasī kuned.
+Lutan parvandaro <strong>[[:$1]]</strong> barrasī kuned.
 Agar parvandai barrasişuda aksi xurd karda şudai on parvandai aslī ast, nijoze ba borguzoriji aksi xurd nest.",
 'uploadwarning' => 'Ogohiji firistodan',
 'savefile' => 'Zaxirai parvanda',
@@ -1077,7 +1077,7 @@ Jak klik kardani rūi unvoni sutunho boisi taƣjiri tartibi namoişi parvandaho
 
 # MIME search
 'mimesearch' => 'Çustuçū bo standarti MIME',
-'mimesearch-summary' => "Bo kūmaki in sahifa şumo metavoned parvandahoe, ki jak nav' ba xusus MIME pajdo kuned. Vorid: contenttype/subtype, namuna. <tt>image/jpeg</tt>.",
+'mimesearch-summary' => "Bo kūmaki in sahifa şumo metavoned parvandahoe, ki jak nav' ba xusus MIME pajdo kuned. Vorid: contenttype/subtype, namuna. <code>image/jpeg</code>.",
 'mimetype' => "MIME nav':",
 'download' => 'borgirī',
 
@@ -1226,7 +1226,7 @@ Jak klik kardani rūi unvoni sutunho boisi taƣjiri tartibi namoişi parvandaho
 'linksearch-pat' => 'Çustuçūi naqş:',
 'linksearch-ns' => 'Fazoinom:',
 'linksearch-ok' => 'Çustuçū',
-'linksearch-text' => 'Nişonahoi monandi "*.wikipedia.org"-ro metavon istifoda kard.<br />Protokolhoi puştibonişuda: <tt>$1</tt>',
+'linksearch-text' => 'Nişonahoi monandi "*.wikipedia.org"-ro metavon istifoda kard.<br />Protokolhoi puştibonişuda: <code>$1</code>',
 'linksearch-line' => '$1 doroi pajvand az $2 ast',
 'linksearch-error' => 'Nişonaho faqat dar ibtidoi nomi mizboni internetī metavonand istifoda şavand.',
 
index 00fbd56..3940971 100644 (file)
@@ -1497,9 +1497,9 @@ $1",
 สำหรับการดูหรือการค้นหาไฟล์ที่เคยอัปโหลดก่อนหน้านี้ ให้ไปที่[[Special:FileList|รายชื่อไฟล์ที่ถูกอัปโหลด]] การอัปโหลดและการอัปโหลดซ้ำดูได้ที่[[Special:Log/upload|บันทึกการอัปโหลด]] และการลบไฟล์ดูได้ที่[[Special:Log/delete|บันทึกการลบ]]
 
 ถ้าต้องการแทรกไฟล์ลงในหน้าหนึ่งๆ ให้ใช้คำสั่งหนึ่งในรูปแบบต่อไปนี้
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' เพื่อใช้รูปขนาดเต็ม
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|ข้อความอธิบาย]]</nowiki></tt>''' เพื่อใช้รูปย่อขนาดกว้าง 200 พิกเซลในกล่องที่จัดชิดซ้าย โดยมี \"ข้อความอธิบาย\" เป็นคำบรรยายใต้ภาพ
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' สำหรับการเชื่อมโยงไฟล์โดยตรง โดยไม่ปรากฏไฟล์นั้นออกมา",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' เพื่อใช้รูปขนาดเต็ม
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|ข้อความอธิบาย]]</nowiki></code>''' เพื่อใช้รูปย่อขนาดกว้าง 200 พิกเซลในกล่องที่จัดชิดซ้าย โดยมี \"ข้อความอธิบาย\" เป็นคำบรรยายใต้ภาพ
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' สำหรับการเชื่อมโยงไฟล์โดยตรง โดยไม่ปรากฏไฟล์นั้นออกมา",
 'upload-permitted' => 'ชนิดของไฟล์ที่อนุญาตให้ใช้ได้: $1',
 'upload-preferred' => 'ชนิดของไฟล์ที่ควรใช้: $1',
 'upload-prohibited' => 'ชนิดของไฟล์ที่ไม่อนุญาตให้ใช้: $1',
@@ -1541,20 +1541,20 @@ $1",
 'largefileserver' => 'ไฟล์นี้มีขนาดใหญ่กว่าค่าที่อนุญาตให้ใช้ได้',
 'emptyfile' => 'ไฟล์ที่อัปโหลดมาเหมือนไฟล์ว่าง อาจเกิดจากปัญหาพิมพ์ชื่อไฟล์ผิด กรุณาตรวจสอบไฟล์อีกครั้ง และแน่ใจว่าต้องการที่จะอัปโหลดไฟล์นี้',
 'windows-nonascii-filename' => 'วิกินี้ไม่รองรับชื่อไฟล์ที่มีตัวอักษรพิเศษ',
-'fileexists' => "มีไฟล์ชื่อนี้อยู่แล้ว กรุณาตรวจสอบ '''<tt>[[:$1]]</tt>''' หากคุณไม่แน่ใจว่าต้องการเปลี่ยนแปลงไฟล์นี้หรือไม่ [[$1|thumb]]",
-'filepageexists' => "หน้าคำอธิบายสำหรับไฟล์นี้ได้ถูกสร้างไว้แล้วที่ '''<tt>[[:$1]]</tt>''' แต่ไฟล์ชื่อนี้ไม่มีอยู่ในปัจจุบัน
+'fileexists' => 'มีไฟล์ชื่อนี้อยู่แล้ว กรุณาตรวจสอบ <strong>[[:$1]]</strong> หากคุณไม่แน่ใจว่าต้องการเปลี่ยนแปลงไฟล์นี้หรือไม่ [[$1|thumb]]',
+'filepageexists' => 'หน้าคำอธิบายสำหรับไฟล์นี้ได้ถูกสร้างไว้แล้วที่ <strong>[[:$1]]</strong> แต่ไฟล์ชื่อนี้ไม่มีอยู่ในปัจจุบัน
 สาระสำคัญที่คุณบันทึกจะไม่ปรากฏบนหน้าคำอธิบาย
 เพื่อให้สาระสำคัญปรากฏขึ้น คุณจำเป็นต้องแก้ไขด้วยตนเอง
-[[$1|thumb]]",
-'fileexists-extension' => "ไฟล์ที่โหลดมีชื่อใกล้เคียง: [[$2|thumb]]
-* ชื่อไฟล์ที่กำลังอัปโหลด: '''<tt>[[:$1]]</tt>'''
-* ชื่อไฟล์ที่มีอยู่แล้ว: '''<tt>[[:$2]]</tt>'''
-กรุณาเลือกชื่อไฟล์ใหม่",
+[[$1|thumb]]',
+'fileexists-extension' => 'ไฟล์ที่โหลดมีชื่อใกล้เคียง: [[$2|thumb]]
+* ชื่อไฟล์ที่กำลังอัปโหลด: <strong>[[:$1]]</strong>
+* ชื่อไฟล์ที่มีอยู่แล้ว: <strong>[[:$2]]</strong>
+กรุณาเลือกชื่อไฟล์ใหม่',
 'fileexists-thumbnail-yes' => "ไฟล์นี้ดูเหมือนจะเป็นภาพที่ถูกลดขนาดมา ''(รูปย่อ)''
 [[$1|thumb]]
-กรุณาตรวจสอบไฟล์ '''<tt>[[:$1]]</tt>'''
+กรุณาตรวจสอบไฟล์ <strong>[[:$1]]</strong>
 ถ้าตรวจสอบแล้วและพบว่าเป็นภาพเดียวกันกับภาพต้นฉบับ ไฟล์นั้นไม่จำเป็นต้องอัปโหลดเพิ่ม",
-'file-thumbnail-no' => "ชื่อไฟล์ขึ้นต้นด้วย '''<tt>$1</tt>'''
+'file-thumbnail-no' => "ชื่อไฟล์ขึ้นต้นด้วย <strong>$1</strong>
 ภาพนี้ดูเหมือนว่าจะเป็นภาพที่ถูกลดขนาดมา ''(thumbnail)''
 ถ้าคุณมีไฟล์ต้นฉบับขนาดใหญ่กว่านี้ กรุณาอัปโหลดไฟล์ต้นฉบับ หรือเปลี่ยนชื่อไฟล์ด้วย",
 'fileexists-forbidden' => 'ไฟล์ชื่อนี้มีอยู่แล้วในระบบ และไม่สามารถอัปโหลดทับได้
@@ -1754,7 +1754,7 @@ $1',
 
 # MIME search
 'mimesearch' => 'ค้นหาตามชนิดไมม์',
-'mimesearch-summary' => 'หน้านี้แสดงไฟล์ตามการแบ่งของชนิดไมม์ (MIME) ของแต่ละไฟล์ ใส่ค่า: contenttype/subtype เช่น <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'หน้านี้แสดงไฟล์ตามการแบ่งของชนิดไมม์ (MIME) ของแต่ละไฟล์ ใส่ค่า: contenttype/subtype เช่น <code>image/jpeg</code>.',
 'mimetype' => 'ชนิดไมม์:',
 'download' => 'ดาวน์โหลด',
 
@@ -1944,7 +1944,7 @@ $1',
 'linksearch-ok' => 'สืบค้น',
 'linksearch-text' => 'อักขระตัวแทนเช่น "*.wikipedia.org" สามารถใช้ได้
 โดเมนระดับบนสุดจำเป็นต้องมีเป็นอย่างน้อย เช่น "*.org"<br />
-โพรโทคอลที่รองรับ: <tt>$1</tt> (อย่าใส่คำเหล่านี้ในการสืบค้นของคุณ)',
+โพรโทคอลที่รองรับ: <code>$1</code> (อย่าใส่คำเหล่านี้ในการสืบค้นของคุณ)',
 'linksearch-line' => '$1 ถูกลิงก์จาก $2',
 'linksearch-error' => 'เครื่องหมายแทนอักขระ (wildcard) อยู่หน้าชื่อโฮสต์ได้เท่านั้น',
 
@@ -2760,14 +2760,9 @@ $1',
 # Info page
 'pageinfo-title' => 'ข้อมูลสำหรับ "$1"',
 'pageinfo-header-edits' => 'การแก้ไข',
-'pageinfo-header-watchlist' => 'รายการเฝ้าดู',
-'pageinfo-header-views' => 'การเข้าดู',
-'pageinfo-subjectpage' => 'หน้า',
-'pageinfo-talkpage' => 'หน้าพูดคุย',
+'pageinfo-views' => 'จำนวนการเข้าดู',
 'pageinfo-watchers' => 'จำนวนผู้เข้าดู',
 'pageinfo-edits' => 'จำนวนการแก้ไข',
-'pageinfo-views' => 'จำนวนการเข้าดู',
-'pageinfo-viewsperedit' => 'จำนวนการเข้าดูต่อการแก้ไข',
 
 # Skin names
 'skinname-standard' => 'คลาสสิก',
index 2918198..8530ecd 100644 (file)
@@ -1328,9 +1328,9 @@ Bu sahypanyň öçürme ýa-da at üýtgetme gündeligi aşakda berilýär:",
 Ozaldan ýüklenilgi faýllary görmek ýa-da agtarmak üçin [[Special:FileList|ýüklenilgi faýllaryň sanawyna]] serediň, (gaýtadan) ýüklenenler [[Special:Log/upload|ýükleme gündeliginde]], öçürilenler [[Special:Log/delete|öçürme gündeliginde]] saklanylýar.
 
 Bir sahypada faýl goýmaklyk üçin aşakdaky formlaryň birine görä çykgyt ulanyň;
-* Faýlyň doly wersiýasyny ulanmak üçin: '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>'''
-* Çep gyrada bir gutynyň içinde aşagyna kesgitleme hökmünde 'alt tekst' bilen, 200 piksel giňişligindäki wersiýany ulanmaklyk üçin: '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt tekst]]</nowiki></tt>'''
-* Faýly görkezmän, faýla gönümel çykgyt bermek üçin: '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''",
+* Faýlyň doly wersiýasyny ulanmak üçin: '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>'''
+* Çep gyrada bir gutynyň içinde aşagyna kesgitleme hökmünde 'alt tekst' bilen, 200 piksel giňişligindäki wersiýany ulanmaklyk üçin: '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt tekst]]</nowiki></code>'''
+* Faýly görkezmän, faýla gönümel çykgyt bermek üçin: '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''",
 'upload-permitted' => 'Rugsat berilýän faýl görnüşleri: $1',
 'upload-preferred' => 'Ileri tutulýan faýl görnüşleri: $1.',
 'upload-prohibited' => 'Gadagan edilen faýl görnüşleri: $1.',
@@ -1376,22 +1376,22 @@ bu faýlyň ölçegi $2.',
 'emptyfile' => 'Ýüklän faýlyňyz boş ýaly-la.
 Munuň sebäbi faýlyň adyndaky bir ýalňyşlyk bolmagy ahmal.
 Faýly hakykatdan-da ýüklemek isleýändigiňizi anyklaň.',
-'fileexists' => "Şu atly faýl eýýäm bar.
-Üýtgetmek barada ikirjiňlenýän bolsaňyz, onda ilki bilen '''<tt>[[:$1]]</tt>''' faýlyna bir göz aýlaň.
-[[$1|thumb]]",
-'filepageexists' => "Bu faýl üçin düşündiriş sahypasy '''<tt>[[:$1]]</tt>''' adresinde eýýäm döredilipdir, emma häzir şeýle atly faýl ýok.
+'fileexists' => 'Şu atly faýl eýýäm bar.
+Üýtgetmek barada ikirjiňlenýän bolsaňyz, onda ilki bilen <strong>[[:$1]]</strong> faýlyna bir göz aýlaň.
+[[$1|thumb]]',
+'filepageexists' => 'Bu faýl üçin düşündiriş sahypasy <strong>[[:$1]]</strong> adresinde eýýäm döredilipdir, emma häzir şeýle atly faýl ýok.
 Ýazjak gysgaça mazmunyňyz düşündiriş sahypasynda peýda boljak däldir.
 Mazmunyň şol ýerde peýda bolmaklygy üçin, ony el bilen redaktirlemeli bolýarsyňyz.
-[[$1|thumb]]",
-'fileexists-extension' => "Birmeňzeş atly bir faýl bar: [[$2|thumb]]
-* Ýüklenilýän faýlyň ady: '''<tt>[[:$1]]</tt>'''
-* Bar bolan faýlyň ady: '''<tt>[[:$2]]</tt>'''
-Başga bir at saýlamagyňyzy haýyş edýäris.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Birmeňzeş atly bir faýl bar: [[$2|thumb]]
+* Ýüklenilýän faýlyň ady: <strong>[[:$1]]</strong>
+* Bar bolan faýlyň ady: <strong>[[:$2]]</strong>
+Başga bir at saýlamagyňyzy haýyş edýäris.',
 'fileexists-thumbnail-yes' => "Bu faýl kiçeldilen ölçegli bir surat ýaly-la ''(thumbnail)''.
 [[$1|thumb]]
-'''<tt>[[:$1]]</tt>''' faýlyny barlap görüň.
+<strong>[[:$1]]</strong> faýlyny barlap görüň.
 Eger barlanylan faýl asyl ölçegindäki şol bir surat bolsa, onda goşmaça bir miniatýura ýüklemek hökman däl.",
-'file-thumbnail-no' => "Bu faýlyň ady '''<tt>$1</tt>''' bilen başlanýar.
+'file-thumbnail-no' => "Bu faýlyň ady <strong>$1</strong> bilen başlanýar.
 Bu ölçegi kiçeldilen başga bir surat ýaly-la ''(thumbnail)''
 Eger sizde bu suratyň doly ölçeglisi bar bolsa şony ýükläň, ýogsam faýlyň adyny üýtgediň.",
 'fileexists-forbidden' => 'Şu atly bir faýl bar we onuň üstüne ýazyp bolmaýar.
@@ -1571,7 +1571,7 @@ Goşmaça maglumat üçin [$2 faýl düşündiriş sahypasyna] serediň.',
 # MIME search
 'mimesearch' => 'MIME gözlegi',
 'mimesearch-summary' => 'Bu sahypa faýllaryň  MIME tipi boýunça filtrlenmegini üpjün edýär.
-Giriş formaty: mazmuntip/kiçitip, meselem <tt>surat/jpeg</tt>.',
+Giriş formaty: mazmuntip/kiçitip, meselem <code>surat/jpeg</code>.',
 'mimetype' => 'MIME tipi:',
 'download' => 'düşür',
 
@@ -1756,7 +1756,7 @@ Gündeligiň görnüşini, ulanyjy adyny (baş-setir harpa duýgur), ýa-da täs
 'linksearch-ns' => 'At giňişligi:',
 'linksearch-ok' => 'Gözle',
 'linksearch-text' => '"*.wikipedia.org" ýaly çalşyrma simwollar ulanylyp bilner.<br />
-Goldanylýan protokollar: <tt>$1</tt>',
+Goldanylýan protokollar: <code>$1</code>',
 'linksearch-line' => '$1 sahypasyna $2 sahypasyndan çykgyt berilýär',
 'linksearch-error' => 'Çalşyrma simwollar diňe hostuň adynyň başlangyjynda peýda bolup bilýär.',
 
index 8638292..da9f146 100644 (file)
@@ -462,12 +462,12 @@ Matatagpuan ang isang tala ng mga tamang natatanging pahina sa [[Special:Special
 # General errors
 'error' => 'Kamalian',
 'databaseerror' => 'Kamalian sa kalipunan ng dato',
-'dberrortext' => 'Nagkaroon po ng isang pagkakamali sa usisang pampalaugnayan sa kalipunan ng datos.
-Maaaring dahil ito sa depekto sa sopwer (\'\'software\'\').
-Ang huling sinubukang paguusisa sa kalipunan ng datos ay:
-<blockquote><tt>$1</tt></blockquote>
-mula sa gawaing "<tt>$2</tt>".
-Ibinalik ng kalipunan ng datos ang kamaliang "<tt>$3: $4</tt>".',
+'dberrortext' => 'Naganap ang isang pagkakamali sa pag-uusisa na pampalaugnayan sa kalipunan ng dato.
+Maaaring magpahiwatig ito ng isang surot sa loob ng sopwer.
+Ang huling tinangkang pag-uusisa sa kalipunan ng dato ay:
+<blockquote><code>$1</code></blockquote>
+magmula sa loob ng tungkuling "<code>$2</code>".
+Nagbalik ang kalipunan ng dato ng kamalian na "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'Nagkaroon po ng isang pagkakamali sa usisang pampalaugnayan sa kalipunan ng datos.
 Ang huling sinubukang paguusisa sa kalipunan ng datos ay:
 "$1"
@@ -832,12 +832,11 @@ Pakisuri kung ibig mong likhain/baguhin ang pahinang ito.',
 'userpage-userdoesnotexist-view' => 'Hindi nakatala ang kuwenta ng tagagamit na "$1".',
 'blocked-notice-logextract' => 'Kasalukuyang hinarang ang tagagamit na ito.
 Ang pinakahuling entrada sa talaan  ng pagharang ay ibinigay sa baba para sa inyong pagsasangguni:',
-'clearyourcache' => "'''Paunawa: Pagkatapos magsagip, baka kailangan mong laktawan ang taguan ng pantingin-tingin mo upang makita ang mga pagbabago.
-'''Firefox / Safari:''' Panatilihin ang pagpindot sa ''Shift'' habang nilalagitik ang ''Reload'', o pindutin ang ''Ctrl-F5'' o ''Ctrl-R'' (''⌘-R'' sa Mac)
-'''Google Chrome:''' Pindutin ang ''Ctrl-Shift-R'' (''⌘-Shift-R'' sa Mac)
+'clearyourcache' => "'''Paunawa: Pagkatapos magsagip, maaaring kailanganing mong laktawan ang taguan ng iyong pantingin-tingin upang makita ang mga pagbabago.
+'''Firefox / Safari:''' Panatilihin ang pagpindot sa ''Shift'' habang nilalagitik ang ''Reload'', o pindutin ang ''Ctrl-F5'' o ''Ctrl-R'' (''⌘-R'' sa isang Mac)
+'''Google Chrome:''' Pindutin ang ''Ctrl-Shift-R'' (''⌘-Shift-R'' sa isang Mac)
 '''Internet Explorer:''' Panatilihin ang pagpindot sa ''Ctrl'' habang nilalagitik ang ''Refresh'', o pindutin ang ''Ctrl-F5''
-'''Konqueror:''' Lagitikin ang ''Reload'' o pindutin ang ''F5''
-'''Opera:''' Linisin ang taguan sa ''Tools → Preferences''",
+'''Opera:''' Hawiin ang taguan sa loob ng ''Tools → Preferences''",
 'usercssyoucanpreview' => "'''Balato:''' Gamitin ang pindutang \"{{int:showpreview}}\" upang masubok ang bago mong CSS bago sagipin.",
 'userjsyoucanpreview' => "'''Balato:''' Gamitin ang pindutang \"{{int:showpreview}}\" upang masubok ang bago mong JavaScript bago sagipin.",
 'usercsspreview' => "'''Tandaan mong paunang tingin pa lamang ito ng iyong CSS na pantagagamit.'''
@@ -1329,7 +1328,7 @@ Kung pipiliin mong ibigay ito, gagamitin ito para mabigyan ka ng pagkilala para
 'prefs-help-email' => 'Hindi talaga kailangang may tirahan ng e-liham, subalit kailangan para sa muling pagtatakda ng hudyat, kung makalimutan mo ang hudyat mo.',
 'prefs-help-email-others' => 'Mapipili mo rin na makipag-ugnayan sa iyo ang iba sa pamamagitan ng iyong pahina ng tagagamit o usapan na hindi kailangang ilantad ang katauhan mo.',
 'prefs-help-email-required' => 'Kailangan ang direksiyong e-liham.',
-'prefs-info' => 'Payak na kabatiran',
+'prefs-info' => 'Saligang kabatiran',
 'prefs-i18n' => 'Internasyonalisasyon',
 'prefs-signature' => 'Lagda',
 'prefs-dateformat' => 'Anyo ng petsa',
@@ -1567,9 +1566,9 @@ Ang talaan ng pagbubura at paglipat para sa pahinang ito ay ibinigay dito para s
 Para tingnan o maghanap ng mga dati nang naikargang mga talaksan pumunta sa  [[Special:FileList|talaan ng ikinargang mga talaksan]], ang (muling) mga pagkakarga ay nakatala rin sa [[Special:Log/upload|talaan ng pagkarga]], ang mga binura/nabura sa  [[Special:Log/delete|talaan ng pagbubura]].
 
 Para maisama ang isang talaksan sa loob ng isang pahina, gumamit ng isang kawing na nasa loob ng isa sa mga sumusunod na mga pormularyo:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' para magamit ang buong bersyon ng talaksan
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' para magamit ang isang may 200 piksel na paghabi sa loob ng isang kahong nasa kaliwang pataan na may 'tekstong pamalit' ('' 'alt text' '') bilang paglalarawan
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' para sa tuwirang pagkakawing sa isang pahina na hindi ipinapakita ang talaksan",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' para magamit ang buong bersyon ng talaksan
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' para magamit ang isang may 200 piksel na paghabi sa loob ng isang kahong nasa kaliwang pataan na may 'tekstong pamalit' ('' 'alt text' '') bilang paglalarawan
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' para sa tuwirang pagkakawing sa isang pahina na hindi ipinapakita ang talaksan",
 'upload-permitted' => 'Pinapahintulutang mga uri ng talaksan: $1.',
 'upload-preferred' => 'Mas iniibig na mga uri ng talaksan: $1.',
 'upload-prohibited' => 'Ipinagbabawal na mga uri ng talaksan: $1.',
@@ -1614,20 +1613,20 @@ ang talaksang ito ay $2.',
 'largefileserver' => 'Mas malaki ang talaksan kaysa nakatakdang papahintulutan ng serbidor.',
 'emptyfile' => 'Mukhang walang laman ang talaksan (file) na ikinarga mo. Maaaring dahil ito sa maling pagkapasok ng pangalan ng talaksan.  Paki tingin kung gusto mo talagang ikarga ang talaksan na ito.',
 'windows-nonascii-filename' => 'Ang wiking ito ay hindi nagsusuporta ng mga pangalan ng talaksan na mayroong natatanging mga panitik.',
-'fileexists' => "Mayroon ng talaksan na ganitong pangalan, paki tingin ang '''<tt>[[:$1]]</tt>''' kung tiyak ka na babaguhin ito.
-[[$1|thumb]]",
-'filepageexists' => "Ang pahina ng paglalarawan para sa talaksan na ito ay nalikha na sa '''<tt>[[:$1]]</tt>''', ngunit walang talaksang umiiral na may ganitong pangalan.
+'fileexists' => 'Mayroon ng talaksan na ganitong pangalan, paki tingin ang <strong>[[:$1]]</strong> kung tiyak ka na babaguhin ito.
+[[$1|thumb]]',
+'filepageexists' => 'Ang pahina ng paglalarawan para sa talaksan na ito ay nalikha na sa <strong>[[:$1]]</strong>, ngunit walang talaksang umiiral na may ganitong pangalan.
 Hindi lilitaw ang buod na ipapasok mo sa pahina ng paglalarawan.
 Para lumitaw ang buod mo doon, kailangan mong kinakamay na baguhin ito.
-[[$1|thumb]]",
-'fileexists-extension' => "Mayroon talaksan na ganitong pangalan: [[$2|thumb]]
-* Pangalan ng ikinakargang talaksan: '''<tt>[[:$1]]</tt>'''
-* Pangalan ng umiiral na talaksan: '''<tt>[[:$2]]</tt>'''
-Pumili ng ibang pangalan.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Mayroon talaksan na ganitong pangalan: [[$2|thumb]]
+* Pangalan ng ikinakargang talaksan: <strong>[[:$1]]</strong>
+* Pangalan ng umiiral na talaksan: <strong>[[:$2]]</strong>
+Pumili ng ibang pangalan.',
 'fileexists-thumbnail-yes' => "Mukhang pinaliit ''(thumbnail)'' na larawan ang talaksan. [[$1|thumb]]
-Paki tingin ang talaksan '''<tt>[[:$1]]</tt>'''.
+Paki tingin ang talaksan <strong>[[:$1]]</strong>.
 Kung ang tinignan na talaksan ay ang kaparehong larawan ng orihinal na laki, hindi na kailangang magkarga ng panibagong ''thumbnail''.",
-'file-thumbnail-no' => "Nagsisimula ang pangalan ng talaksan sa '''<tt>$1</tt>'''.  Tila ito'y isang larawan na may pinaliit na sukat''(thumbnail)''.
+'file-thumbnail-no' => "Nagsisimula ang pangalan ng talaksan sa <strong>$1</strong>.  Tila ito'y isang larawan na may pinaliit na sukat''(thumbnail)''.
 Kung mayroon ang larawang ito ng pinakamataas na resolution, ikarga ito, kung hindi paki palitan ang pangalan ng talaksan.",
 'fileexists-forbidden' => 'Umiiral na ang isang talaksang may ganitong pangalan, at hindi maaaring patungan.
 Kung nais mo pa ring ikarga pataas ang iyong talaksan, paki bumalik lamang at gumamit ng isang bagong pangalan.
@@ -1856,6 +1855,7 @@ Marahil ay naisa mong baguhin ang paglalarawan doon sa [$2 pahina ng paglalarawa
 'shared-repo' => 'isang pinagsasaluhang repositoryo',
 'shared-repo-name-wikimediacommons' => 'Wikimedia Commons',
 'filepage.css' => '/* Ang Cascading Style Sheets na inilagay dito ay kabilang sa pahina ng paglalarawan ng talaksan, na kabilang din sa mga wiki ng dayuhang kliyente */',
+'upload-disallowed-here' => 'Sa kasamaang palad hindi mo muling masusulatan ang imaheng ito.',
 
 # File reversion
 'filerevert' => 'Ibalik sa dati ang $1',
@@ -1889,7 +1889,7 @@ Marahil ay naisa mong baguhin ang paglalarawan doon sa [$2 pahina ng paglalarawa
 
 # MIME search
 'mimesearch' => 'Maghanap ng MIME',
-'mimesearch-summary' => 'Pinapagana ng pahinang ito ang pagsasala ng mga talaksan para sa kanyang uri ng MIME. Pagpapasok: uringnilalaman/mababangkabahaginguri, hal. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Pinapagana ng pahinang ito ang pagsasala ng mga talaksan para sa kanyang uri ng MIME. Pagpapasok: uringnilalaman/mababangkabahaginguri, hal. <code>image/jpeg</code>.',
 'mimetype' => 'Uri ng MIME:',
 'download' => "magkargang-pakuha ng talaksan (''download'')",
 
@@ -1961,6 +1961,7 @@ Nasugpo na ang mga ipinasok na <del>inekisan</del>.',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|mga byte}}',
 'ncategories' => '$1 {{PLURAL:$1|kategorya|mga kategorya}}',
+'ninterwikis' => '$1 {{PLURAL:$1|interwiki|mga interwiki}}',
 'nlinks' => '$1 {{PLURAL:$1|ugnay|mga ugnay}}',
 'nmembers' => '$1 {{PLURAL:$1|kasapi|mga kasapi}}',
 'nrevisions' => '$1 {{PLURAL:$1|pagbabago|mga pagbabago}}',
@@ -1989,6 +1990,7 @@ Nasugpo na ang mga ipinasok na <del>inekisan</del>.',
 'mostlinkedtemplates' => 'Pinakamaraming ugnay sa mga suleras',
 'mostcategories' => 'Mga artikulong may pinakamaraming kategorya',
 'mostimages' => 'Pinakamaraming ugnay sa mga larawan',
+'mostinterwikis' => 'Mga pahinang mayroong pinakamaraming mga interwiki',
 'mostrevisions' => 'Mga artikulong may pinakamaraming pagbabago',
 'prefixindex' => 'Lahat ng mga pahinang may unlapi',
 'prefixindex-namespace' => 'Lahat ng mga pahinang may unlapi ($1 puwang ng pangalan)',
@@ -2090,7 +2092,7 @@ Tingnan din ang [[Special:WantedCategories|ninanais na mga kategorya]].',
 'linksearch-ok' => 'Hanapin',
 'linksearch-text' => 'Maaaring gamitin ang mga "barahang pamalit" na katulad ng "*.wikipedia.org".
 Kailangan ng kahit na isang nasasakupang mataas ang kaantasan, halimbawa na ang "*.org".<br />
-Sinusuportahang mga protokolo: <tt>$1</tt> (huwag idagdag ang anuman sa mga ito sa paghahanap mo).',
+Sinusuportahang mga protokolo: <code>$1</code> (huwag idagdag ang anuman sa mga ito sa paghahanap mo).',
 'linksearch-line' => '$1 nakakawing/nakaugnay mula sa $2',
 'linksearch-error' => "Lilitaw lamang ang mga \"barahang-pamalit\" (''wildcard'') sa simula ng pangunahin/punong-abalang pangalan.",
 
@@ -2122,8 +2124,8 @@ Maaaring may mga [[{{MediaWiki:Listgrouprights-helppage}}|karagdagang kabatiran]
 'listgrouprights-rights' => 'Mga karapatan',
 'listgrouprights-helppage' => 'Help:Mga pangkat ng karapatan',
 'listgrouprights-members' => '(tala ng mga kasapi)',
-'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <tt>($2)</tt></span>',
-'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <tt>($2)</tt></span>',
+'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <code>($2)</code></span>',
+'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <code>($2)</code></span>',
 'listgrouprights-addgroup' => 'Maaaring idagdag ang {{PLURAL:$2|pangkat|mga pangkat}} na: $1',
 'listgrouprights-removegroup' => 'Maaaring tanggalin ang {{PLURAL:$2|pangkat|mga pangkat}} na: $1',
 'listgrouprights-addgroup-all' => 'Maaaring idagdag ang lahat ng mga pangkat',
@@ -2137,6 +2139,8 @@ Maaaring may mga [[{{MediaWiki:Listgrouprights-helppage}}|karagdagang kabatiran]
 'mailnologin' => 'Walang adres na mapagpapadalahan',
 'mailnologintext' => 'Kailangan mong [[Special:UserLogin|lumagda]] at magkaroon ng tanggap na e-liham sa iyong [[Special:Preferences|mga kagustuhan]] para makapagpadala ng e-liham sa ibang mga tagagamit.',
 'emailuser' => 'Padalhan ng e-liham ang tagagamit',
+'emailuser-title-target' => 'Padalhan ng elektronikong liham ang {{GENDER:$1|tagagamit}} na ito',
+'emailuser-title-notarget' => 'Padalhan ng e-liham ang tagagamit',
 'emailpage' => 'Magpadala ng e-liham sa tagagamit',
 'emailpagetext' => 'Magagamit mo ang pormularyo sa ibaba para makapagpadala ng mensahe sa pamamagitan ng isang e-liham para sa tagagamit na ito.
 Ang ipinasok mong direksiyong e-liham sa [[Special:Preferences|iyong mga kagustuhan ng tagagamit]] ay lilitaw bilang adres na "Mula kay" ng e-liham, para tuwirang makatugon sa iyo ang nakatanggap.',
@@ -2783,6 +2787,7 @@ Naitatala sa [[Special:Log/import|tala ng inangkat]] ang lahat ng mga transwikin
 'import-interwiki-templates' => 'Isama ang lahat ng mga suleras',
 'import-interwiki-submit' => 'Mag-angkat',
 'import-interwiki-namespace' => 'Kapupuntahang espasyo ng pangalan:',
+'import-interwiki-rootpage' => 'Ugat na pahina ng kapupuntahan (maaaring wala ito):',
 'import-upload-filename' => 'Pangalan ng talaksan:',
 'import-comment' => 'Komento:',
 'importtext' => 'Pakiluwas ang talaksan magmula sa pinagmulang wiki na ginagamit ang [[Special:Export|kasangkapang pangluwas]].  
@@ -2815,6 +2820,9 @@ Sagipin mo ito sa iyong kompyuter at papaitaas na ikarga ito rito.',
 'import-error-interwiki' => 'Hindi naangkat ang pahinang "$1" dahil ang pangalan nito ay nakalaan para sa pagkakawing na panlabas (interwiki).',
 'import-error-special' => 'Hindi naangkat ang pahinang "$1" dahil pag-aari ito ng isang natatanging puwang na pampangalan na hindi nagpapahintulot ng mga pahina.',
 'import-error-invalid' => 'Hindi naangkat ang pahinang "$1" dahil hindi katanggap-tanggap ang pangalan nito.',
+'import-options-wrong' => 'Maling {{PLURAL:$2|pili|mga mapipili}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Ang ibinigay na ugat na pahina ay isang hindi katanggap-tanggap na pamagat.',
+'import-rootpage-nosubpage' => 'Ang puwang ng pangalan na "$1" ng ugat na pahina ay hindi nagpapahintulot ng kabahaging mga pahina.',
 
 # Import log
 'importlogpage' => 'Talaan ng pagaangkat',
@@ -2966,16 +2974,35 @@ Maaaring dahil ito sa isang kawing sa isang nakatalang hinarang dahil di-kinaisn
 
 # Info page
 'pageinfo-title' => 'Kabatiran para sa "$1"',
-'pageinfo-header-edits' => 'Mga pagpatnugot',
-'pageinfo-header-watchlist' => 'Bantayan ko',
-'pageinfo-header-views' => 'Mga pagtanaw',
-'pageinfo-subjectpage' => 'Pahina',
-'pageinfo-talkpage' => 'Pahina ng usapan',
-'pageinfo-watchers' => 'Bilang ng mga nagbabantay',
-'pageinfo-edits' => 'Bilang ng mga pamamatnugot',
-'pageinfo-authors' => 'Bilang ng magkakabukod na mga may-akda',
+'pageinfo-header-basic' => 'Saligang kabatiran',
+'pageinfo-header-edits' => 'Kasaysayan ng pamamatnugot',
+'pageinfo-header-restrictions' => 'Pruteksiyon ng pahina',
+'pageinfo-header-properties' => 'Mga kaarian ng pahina',
+'pageinfo-display-title' => 'Pamagat na ipinapakita',
+'pageinfo-default-sort' => 'Likas na nakatakdang susi ng pag-uuri',
+'pageinfo-length' => 'Haba ng pahina (na nasa mga byte)',
+'pageinfo-article-id' => 'ID ng pahina',
+'pageinfo-robot-policy' => 'Katayuan ng makinang panghanap',
+'pageinfo-robot-index' => 'Matataluntunan',
+'pageinfo-robot-noindex' => 'Hindi matataluntunan',
 'pageinfo-views' => 'Bilang ng mga pagtanaw',
-'pageinfo-viewsperedit' => 'Pagtanaw sa bawat pagbago',
+'pageinfo-watchers' => 'Bilang ng mga nagbabantay ng pahina',
+'pageinfo-redirects-name' => 'Napapapunta sa pahinang ito',
+'pageinfo-redirects-value' => '$1',
+'pageinfo-subpages-name' => 'Mga kabahaging pahina ng pahinang ito',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|pagpapapunta sa ibang pahina|mga pagpapapunta sa ibang pahina}}; $3 {{PLURAL:$3|hindi pagpapapunta sa ibang pahina|mga hindi pagpapapunta sa ibang pahina}})',
+'pageinfo-firstuser' => 'Tagapaglikha ng pahina',
+'pageinfo-firsttime' => 'Petsa ng paglikha ng pahina',
+'pageinfo-lastuser' => 'Pinakahuling patnugot',
+'pageinfo-lasttime' => 'Petsa ng pinakahuling pagpatnugot',
+'pageinfo-edits' => 'Kabuuang bilang ng mga pamamatnugot',
+'pageinfo-authors' => 'Kabuuang bilang ng magkakabukod na mga may-akda',
+'pageinfo-recent-edits' => 'Kamakailang bilang ng mga pamamatnugot (sa loob ng huling $1)',
+'pageinfo-recent-authors' => 'Kamakailang bilang ng magkakabukod na mga may-akda',
+'pageinfo-restriction' => 'Pruteksiyon ng pahina (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|Salita|Mga salita}}ng mahiwaga ($1)',
+'pageinfo-hidden-categories' => 'Nakatagong {{PLURAL:$1|kategorya|mga kategorya}} ($1)',
+'pageinfo-templates' => '{{PLURAL:$1|Suleras|Mga suleras}} ($1) na nasa transklusyon (kasama sa maraming mga lugar)',
 
 # Skin names
 'skinname-standard' => 'Klasiko',
@@ -3031,6 +3058,7 @@ Maaaring manganib ang iyong sistema kapag ipinagana mo ito.",
 'file-info-size-pages' => '$1 × $2 mga piksel, sukat ng talaksan: $3, uri ng MIME: $4, $5 {{PLURAL:$5|pahina|mga pahina}}',
 'file-nohires' => 'Walang makuhang mas mataas na resolusyon (kalinawan).',
 'svg-long-desc' => 'Talaksang SVG, nasa mga bilang na $1 × $2 mga piksel, sukat ng talaksan: $3',
+'svg-long-desc-animated' => 'Animadong talaksang SVG, nasa mga bilang na $1 × $2 mga piksel, sukat ng talaksan: $3',
 'show-big-image' => 'Buong resolusyon (kalinawan)',
 'show-big-image-preview' => 'Sukat ng paunang-tingin na ito: $1.',
 'show-big-image-other' => 'Iba pang {{PLURAL:$2|resolusyon|mga resolusyon}}: $1.',
@@ -3040,6 +3068,8 @@ Maaaring manganib ang iyong sistema kapag ipinagana mo ito.",
 'file-info-png-looped' => 'nakalikaw',
 'file-info-png-repeat' => 'pinaandar ng $1 {{PLURAL:$1|ulit|mga ulit}}',
 'file-info-png-frames' => ' $1 {{PLURAL:$1|kuwadro|mga kuwadro}}',
+'file-no-thumb-animation' => "'''Paunawa: Dahil sa limitasyong teknikal, ang mga kagyat ng talaksang ito ay hindi magiging animado.'''",
+'file-no-thumb-animation-gif' => "'''Paunawa: Dahil sa mga limitasyong teknikal, ang mga kagyat ng mga imahe na GIF na mataas ang resolusyon na katulad ng isang ito ay hindi magiging animado.'''",
 
 # Special:NewFiles
 'newimages' => 'Galerya ng mga bagong talaksan',
index 57ba8e7..ac88d59 100644 (file)
@@ -796,8 +796,6 @@ $messages = array(
 
 # Info page
 'pageinfo-header-edits' => 'Сәрост кардеј',
-'pageinfo-header-views' => 'Тәмшо',
-'pageinfo-subjectpage' => 'Сәһифә',
 
 # Browsing diffs
 'previousdiff' => '← Навынәни дәгиши',
index 5e103d6..37356a3 100644 (file)
@@ -556,8 +556,8 @@ Ko e ʻuhinga loka ko e $1 ia.",
 'badfilename' => 'Naʻe liliu ko e hingoa ʻo e faile ki he "$1".',
 'largefileserver' => 'ʻOku fuʻu lahi ange ʻa e failé ni ʻi he tauhia hono ʻinasi.',
 'emptyfile' => 'ʻOku ngalingali maha ʻa e faile naʻa ke hiki hake ai. Mahalo pē naʻa ke fakasipelahalaʻi ki he hingoa. Kātaki vakai ke ke pau te ke fiehiki ʻa e failé ni.',
-'fileexists' => "ʻOku toka ʻi ai ha peesi mo e hingoa ē; fakamolemole fakamoʻoniʻi ki he '''<tt>[[:$1]]</tt>''' kapau ʻoku ʻikai te ke pau ʻo te ke fieliliu ia.
-[[$1|thumb]]",
+'fileexists' => 'ʻOku toka ʻi ai ha peesi mo e hingoa ē; fakamolemole fakamoʻoniʻi ki he <strong>[[:$1]]</strong> kapau ʻoku ʻikai te ke pau ʻo te ke fieliliu ia.
+[[$1|thumb]]',
 'fileexists-forbidden' => 'ʻOku toka ʻi ai ha peesi mo e hingoa ē, pea ʻe ʻikai lava liliu; fakamolemole ʻe foki pea hiki hake ʻa e failé ni mo e ha hingoa foʻou. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'ʻOku toka ʻi ai ha peesi mo e hingoa ē ʻi he kalasi vahevahe; fakamolemole ʻe foki pea hiki hake ʻa e failé ni mo e ha hingoa foʻou. [[File:$1|thumb|center|$1]]',
 'uploadwarning' => 'Tokanga hiki hake',
index b1c53ba..3ce9a38 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author BarkingFish
  * @author Caffelice (on tpi.wikipedia.org)
  * @author Iketsi
  * @author Wantok
@@ -37,28 +38,39 @@ $messages = array(
 'tog-hideminor' => 'Noken soim ol liklik senis insait long ol nupela senis',
 'tog-hidepatrolled' => 'Noken soim ol lukluk senis insait long ol nupela senis',
 'tog-newpageshidepatrolled' => 'Noken soim ol lukluk senis insait long ol nupela pes',
-'tog-extendwatchlist' => 'Larim lukautbuk i go longpela long soim olgeta senis',
-'tog-usenewrc' => 'Moa beta stail bilong nupela senis (i nidim JavaScript)',
+'tog-extendwatchlist' => ' Larim lukautbuk i go longpela long soim olgeta senis, long halivim tasol bihain tru',
+'tog-usenewrc' => 'Moa beta stail bilong nupela senis na lukautbuk (i nidim JavaScript)',
 'tog-numberheadings' => 'Putim ol namba i go long wanwan hap bilong pes',
 'tog-showtoolbar' => 'Soim ol liklik link long wokim senis kwiktaim (i nidim JavaScript)',
 'tog-editondblclick' => 'Senisim pes taim yu paitim tupela taim kwiktaim (i nidim JavaScript)',
 'tog-editsection' => 'Soim ol [senisim] link long wanwan hap bilong ol pes',
 'tog-editsectiononrightclick' => 'Senisim ol hap bilong pes taim yu paitim nem bilong hap<br />wantaim raithan-klik (i nidim Javascript)',
 'tog-showtoc' => 'Soim ol nem bilong hap insait long liklik bokis, taim igat antap long 3 hap long pes',
-'tog-rememberpassword' => 'Holim nem bilong yusa bilong mi long dispela kompiuta (for a maximum of $1 {{PLURAL:$1|day|days}})',
-'tog-watchcreations' => 'Putim ol nupela pes mi wokim long lukautbuk',
-'tog-watchdefault' => 'Putim ol pes mi senisim long lukautbuk bilong mi',
+'tog-rememberpassword' => 'Holim yusanem bilong mi long dispela komputa (holim pas longpela taim $1 {{PLURAL:$1|de|de}})',
+'tog-watchcreations' => 'Putim ol nupela pes mi wokim na fail mi salim long lukautbuk',
+'tog-watchdefault' => 'Putim ol pes na fail mi senisim long lukautbuk bilong mi',
 'tog-watchmoves' => 'Putim ol pes mi surikim long lukautbuk bilong mi',
 'tog-watchdeletion' => 'Putim ol pes mi rausim long lukautbuk bilong mi',
 'tog-minordefault' => 'Makim ol senis mi wokim olsem ol i liklik, sapos mi no makim',
 'tog-previewontop' => 'Soim pes mi senisim (pastaim long raitim) antap long bokis bilong wokim senis',
 'tog-previewonfirst' => 'Soim pes mi senisim pastaim long raitim',
-'tog-enotifwatchlistpages' => 'Salim imel (e-mail) long mi taim wanpela pes mi lukautim i senis',
+'tog-nocache' => ' Nogat stoa pes long browser',
+'tog-enotifwatchlistpages' => 'Salim imel long mi taim wanpela pes mi lukautim i senis',
+'tog-enotifusertalkpages' => 'Salim imel long mi wanem taim toktok bilong mi i senis',
+'tog-enotifminoredits' => 'Salim imel long mi tasol long liklik senis long pes na fail',
+'tog-enotifrevealaddr' => 'Soim imel adres bilong mi long olpela infomesen imel',
 'tog-shownumberswatching' => 'Soim hamas yusa i lukautim pes',
+'tog-oldsig' => 'Olsem wanem yu raitim nem nau',
+'tog-fancysig' => 'Dispela rot yu raitim long nem stap wikitext (i no gat otomatik link)',
+'tog-externaleditor' => 'Yusim long ausait edita oltaim (tasol long man bilong save, i nidim sipesol setap antap long komputa bilong yu. [//www.mediawiki.org/wiki/Manual:External_editors Lukim moa infomesen.])',
+'tog-externaldiff' => 'Yusim long ausait diff oltaim (tasol long man bilong save, i nidim sipesol setap antap long komputa bilong yu. [//www.mediawiki.org/wiki/Manual:External_editors Lukim moa infomesen.])',
+'tog-showjumplinks' => ' Setap ol "Go stret long" links bilong helpim',
 'tog-uselivepreview' => 'Soim ol senis kwiktaim taim mi wokim (i nidim Javascript)',
+'tog-forceeditsummary' => 'Tokim mi long wanem taim raitim mi nating long liklik toksave bilong senis',
 'tog-watchlisthideown' => 'Haitim ol senis mi wokim long lukautbuk bilong mi',
 'tog-watchlisthidebots' => 'Haitim ol senis ol bot i wokim long lukautbuk bilong mi',
 'tog-watchlisthideminor' => 'Haitim ol liklik senis long lukautbuk bilong mi',
+'tog-watchlisthideliu' => ' Haitim senis long olpela yusa husat "logged in" long lukautbuk bilong mi',
 'tog-showhiddencats' => 'Soim ol grup hait',
 
 'underline-always' => 'Olgeta taim',
index 6b9b136..67a7b33 100644 (file)
@@ -435,14 +435,14 @@ $messages = array(
 'pagecategories' => '{{PLURAL:$1|Kategori|Kategoriler}}',
 'category_header' => '"$1" kategorisindeki sayfalar',
 'subcategories' => 'Alt kategoriler',
-'category-media-header' => '"$1" kategorisindeki medya',
-'category-empty' => "''Bu kategoride henüz herhangi bir madde ya da medya bulunmamaktadır.''",
+'category-media-header' => '"$1" kategorisindeki dosyalar',
+'category-empty' => "''Bu kategoride henüz herhangi bir sayfa ya da dosya bulunmamaktadır.''",
 'hidden-categories' => '{{PLURAL:$1|Gizli kategori|Gizli kategoriler}}',
 'hidden-category-category' => 'Gizli kategoriler',
-'category-subcat-count' => '{{PLURAL:$2|Bu kategori sadece aşağıdaki alt kategoriyi içermektedir.|Bu kategoride aşağıdaki {{PLURAL:$1|alt kategori|$1 alt kategori}} dahil $2 alt kategori vardır.}}',
+'category-subcat-count' => '{{PLURAL:$2|Bu kategori sadece aşağıdaki alt kategoriyi içermektedir.|Bu kategoride aşağıdaki {{PLURAL:$1|alt kategori|$1 alt kategorisi}} dahil $2 alt kategorisi vardır.}}',
 'category-subcat-count-limited' => 'Bu kategori aşağıdaki {{PLURAL:$1|alt kategoriye|$1 alt kategoriye}} sahiptir.',
 'category-article-count' => '{{PLURAL:$2|Bu kategori sadece aşağıdaki sayfayı içermektedir.|Toplam $2 taneden, aşağıdaki {{PLURAL:$1|sayfa|$1 sayfa}} bu kategoridedir.}}',
-'category-article-count-limited' => 'Aşağıdaki {{PLURAL:$1|sayfa|$1 sayfa}} mevcut kategoridedir.',
+'category-article-count-limited' => 'Bu kategoride {{PLURAL:$1|sayfa|$1 sayfa}} bulunmaktadır.',
 'category-file-count' => '{{PLURAL:$2|Bu kategori sadece aşağıdaki dosyayı içerir.|Toplam $2 taneden, aşağıdaki {{PLURAL:$1|dosya|$1 dosya}} bu kategoridedir.}}',
 'category-file-count-limited' => 'Aşağıdaki {{PLURAL:$1|dosya|$1 dosya}} mevcut kategoridedir.',
 'listingcontinuesabbrev' => '(devam)',
@@ -1683,9 +1683,9 @@ Bu sayfanın silme ve taşıma günlüğü kolaylık için burada sağlanmışt
 Önceden yüklenmiş dosyaları görmek ya da aramak için [[Special:FileList|yüklenmiş dosyalar listesine]] bakın, (tekrar) yüklenenler [[Special:Log/upload|yükleme günlüğü]]nde, silinenler [[Special:Log/delete|silinme günlüğü]]nde tutulumaktadır.
 
 Bir sayfaya dosya koymak için bağlantınızda aşağıdaki formlardan birini kullanın;
-* Dosyanın tam sürümünü kullanmak için: '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dosya.jpg]]</nowiki></tt>'''
-* Sol kenarda bir kutu içinde, altında tanım olarak 'alt metin' ile, 200 piksel genişiğindeki sürümü kullanmak için: '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dosya.png|200px|thumb|left|alt metin]]</nowiki></tt>'''
-* Dosyayı göstermeden, dosyaya direk bağlantı vermek için: '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Dosya.ogg]]</nowiki></tt>'''",
+* Dosyanın tam sürümünü kullanmak için: '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dosya.jpg]]</nowiki></code>'''
+* Sol kenarda bir kutu içinde, altında tanım olarak 'alt metin' ile, 200 piksel genişiğindeki sürümü kullanmak için: '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Dosya.png|200px|thumb|left|alt metin]]</nowiki></code>'''
+* Dosyayı göstermeden, dosyaya direk bağlantı vermek için: '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Dosya.ogg]]</nowiki></code>'''",
 'upload-permitted' => 'İzin verilen dosya türleri: $1.',
 'upload-preferred' => 'Tercih edilen dosya türleri: $1.',
 'upload-prohibited' => 'Yasaklanan dosya türleri: $1.',
@@ -1727,21 +1727,21 @@ bu dosyanın boyutu $2.',
 'largefileserver' => 'Bu dosyanın uzunluğu sunucuda izin verilenden daha büyüktür.',
 'emptyfile' => 'Yüklediğiniz dosya boş görünüyor. Bunun sebebi dosya adındaki bir yazım hatası olabilir. Lütfen dosyayı gerçekten yüklemek isteyip istemediğinizden emin olun.',
 'windows-nonascii-filename' => 'Bu viki dosya isimlerinde özel karakter kullanımını desteklemiyor',
-'fileexists' => "Bu isimde bir dosya mevcut.
-Eğer değiştirmekten emin değilseniz ilk önce '''<tt>[[:$1]]</tt>''' dosyasına bir gözatın.
-[[$1|thumb]]",
-'filepageexists' => "Bu dosya için açıklama sayfası '''<tt>[[:$1]]</tt>''' adresinde zaten oluşturulmuş, fakat bu isimde bir dosya şu anda mevcut değil.
+'fileexists' => 'Bu isimde bir dosya mevcut.
+Eğer değiştirmekten emin değilseniz ilk önce <strong>[[:$1]]</strong> dosyasına bir gözatın.
+[[$1|thumb]]',
+'filepageexists' => 'Bu dosya için açıklama sayfası <strong>[[:$1]]</strong> adresinde zaten oluşturulmuş, fakat bu isimde bir dosya şu anda mevcut değil.
 Gireceğiniz özet açıklama sayfasında görünmeyecektir.
 Özetinizin orada görünmesi için, bunu elle değiştirmelisiniz.
-[[$1|küçük resim]]",
-'fileexists-extension' => "Benzer isimle başka bir dosya mevcut: [[$2|thumb]]
-* Yüklenilen dosyanın adı: '''<tt>[[:$1]]</tt>'''
-* Varolan dosyanın adı: '''<tt>[[:$2]]</tt>'''
-Lütfen başka bir isim seçin",
+[[$1|küçük resim]]',
+'fileexists-extension' => 'Benzer isimle başka bir dosya mevcut: [[$2|thumb]]
+* Yüklenilen dosyanın adı: <strong>[[:$1]]</strong>
+* Varolan dosyanın adı: <strong>[[:$2]]</strong>
+Lütfen başka bir isim seçin',
 'fileexists-thumbnail-yes' => "Bu dosya, bir resmi küçültülmüş sürümü gibi görünüyor ''(thumbnail)''. [[$1|thumb]]
-Lütfen '''<tt>[[:$1]]</tt>''' dosyasını kontrol edin .
+Lütfen <strong>[[:$1]]</strong> dosyasını kontrol edin .
 Eğer kontrol edilen dosya ile özgün boyutundaki aynı dosyaysa fazladan küçük resim yüklemeye gerek yoktur.",
-'file-thumbnail-no' => "Bu dosyanın adı '''<tt>$1</tt>''' ile başlıyor.
+'file-thumbnail-no' => "Bu dosyanın adı <strong>$1</strong> ile başlıyor.
 Bu başka bir resim küçültülmüş sürümüne benziyor ''(thumbnail)''
 Eğer sizde bu resmin tam çöznürlükteki sürümü varsa onu yükleyin, aksi takdirde lütfen dosya adını değiştirin.",
 'fileexists-forbidden' => 'Bu isimde bir dosya zaten var, ve üzerine yazılamıyor.
@@ -1964,7 +1964,7 @@ Aşağıda [$2 dosya açıklama sayfasındaki] açıklama gösteriliyor.',
 
 # MIME search
 'mimesearch' => 'MIME araması',
-'mimesearch-summary' => 'Bu sayfa, MIME türü dosyaların süzülmesini sağlar. Girdi: içeriktürü/alttürü, e.g. <tt>resim/jpeg</tt>.',
+'mimesearch-summary' => 'Bu sayfa, MIME türü dosyaların süzülmesini sağlar. Girdi: içeriktürü/alttürü, e.g. <code>resim/jpeg</code>.',
 'mimetype' => 'MIME türü:',
 'download' => 'yükle',
 
@@ -2153,7 +2153,7 @@ Ayrıca [[Special:WantedCategories|İstenen kategoriler]]'e bakınız.",
 'linksearch-ok' => 'Ara',
 'linksearch-text' => '"*.wikipedia.org" gibi jokerler kullanılabilir.
 En az bir üst-seviye alan gerekir, örneğin "*.org".<br />
-Desteklenen iletişim kuralları: <tt>$1</tt> (bunların hiçbirini aramanıza eklemeyin).',
+Desteklenen iletişim kuralları: <code>$1</code> (bunların hiçbirini aramanıza eklemeyin).',
 'linksearch-line' => "$1'e $2'den bağlantı verilmiş",
 'linksearch-error' => 'Jokerler sadece ana makine adının başında görünebilir.',
 
@@ -2972,14 +2972,9 @@ Geçici dosya kayıp.',
 # Info page
 'pageinfo-title' => 'Bilgi için "$1"',
 'pageinfo-header-edits' => 'Değişiklikler',
-'pageinfo-header-watchlist' => 'İzleme listesi',
-'pageinfo-header-views' => 'Görüntüle',
-'pageinfo-subjectpage' => 'Sayfa',
-'pageinfo-talkpage' => 'Tartışma sayfası',
+'pageinfo-views' => 'Görüntülenme sayısı',
 'pageinfo-watchers' => 'İzleyen sayısı',
 'pageinfo-edits' => 'Değişiklik sayısı',
-'pageinfo-views' => 'Görüntülenme sayısı',
-'pageinfo-viewsperedit' => 'Değişiklik başına görüntüleme',
 
 # Skin names
 'skinname-standard' => 'Klasik',
index c3b8cb9..9076890 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** uroyo (Ṫuroyo)
+/** Turoyo (Ṫuroyo)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -15,255 +15,255 @@ $messages = array(
 'tog-oldsig' => 'Imḍa du3do:',
 
 'underline-always' => 'Kulnaqa',
-'underline-never'  => 'Hiç',
+'underline-never' => 'Hiç',
 
 # Dates
-'sunday'        => 'Yawme dḤuşabo',
-'monday'        => 'Yawme dTre',
-'tuesday'       => 'Yawme dTloṭo',
-'wednesday'     => 'Yawme dArb³o',
-'thursday'      => 'Yawme dḤamşo',
-'friday'        => 'Yawme d3rufto',
-'saturday'      => 'Yawme dŞabṭo',
-'sun'           => 'Yawme dḤuşabo',
-'mon'           => 'Yawme dTre',
-'tue'           => 'Yawme dTloṭo',
-'wed'           => 'Yawme dArb³o',
-'thu'           => 'Yawme dḤamşo',
-'fri'           => 'Yawme d3rufto',
-'sat'           => 'Yawme dŞabṭo',
-'january'       => 'Konun ḥroy',
-'february'      => 'Şboṫ',
-'march'         => 'Oḍor',
-'april'         => 'Nison',
-'may_long'      => 'İyor',
-'june'          => 'Ḥziron',
-'july'          => 'Tamuz',
-'august'        => 'Ob',
-'september'     => 'Eylül',
-'october'       => 'Teşrin qḍim',
-'november'      => 'Teşrin ḥroy',
-'december'      => 'Konun qḍim',
-'january-gen'   => 'Konun ḥroy',
-'february-gen'  => 'Şboṫ',
-'march-gen'     => 'Oḍor',
-'april-gen'     => 'Nison',
-'may-gen'       => 'İyor',
-'june-gen'      => 'Ḥziron',
-'july-gen'      => 'Tamuz',
-'august-gen'    => 'Ob',
+'sunday' => 'Yawme dḤuşabo',
+'monday' => 'Yawme dTre',
+'tuesday' => 'Yawme dTloṭo',
+'wednesday' => 'Yawme dArb³o',
+'thursday' => 'Yawme dḤamşo',
+'friday' => 'Yawme d3rufto',
+'saturday' => 'Yawme dŞabṭo',
+'sun' => 'Yawme dḤuşabo',
+'mon' => 'Yawme dTre',
+'tue' => 'Yawme dTloṭo',
+'wed' => 'Yawme dArb³o',
+'thu' => 'Yawme dḤamşo',
+'fri' => 'Yawme d3rufto',
+'sat' => 'Yawme dŞabṭo',
+'january' => 'Konun ḥroy',
+'february' => 'Şboṫ',
+'march' => 'Oḍor',
+'april' => 'Nison',
+'may_long' => 'İyor',
+'june' => 'Ḥziron',
+'july' => 'Tamuz',
+'august' => 'Ob',
+'september' => 'Eylül',
+'october' => 'Teşrin qḍim',
+'november' => 'Teşrin ḥroy',
+'december' => 'Konun qḍim',
+'january-gen' => 'Konun ḥroy',
+'february-gen' => 'Şboṫ',
+'march-gen' => 'Oḍor',
+'april-gen' => 'Nison',
+'may-gen' => 'İyor',
+'june-gen' => 'Ḥziron',
+'july-gen' => 'Tamuz',
+'august-gen' => 'Ob',
 'september-gen' => 'Eylül',
-'october-gen'   => 'Teşrin qḍim',
-'november-gen'  => 'Teşrin ḥroy',
-'december-gen'  => 'Konun qḍim',
-'jan'           => 'Konun II',
-'feb'           => 'Şboṫ',
-'mar'           => 'Oḍor',
-'apr'           => 'Nison',
-'may'           => 'İyor',
-'jun'           => 'Ḥziron',
-'jul'           => 'Tamuz',
-'aug'           => 'Ob',
-'sep'           => 'Eylül',
-'oct'           => 'Teşrin I',
-'nov'           => 'Teşrin II',
-'dec'           => 'Konun I',
+'october-gen' => 'Teşrin qḍim',
+'november-gen' => 'Teşrin ḥroy',
+'december-gen' => 'Konun qḍim',
+'jan' => 'Konun II',
+'feb' => 'Şboṫ',
+'mar' => 'Oḍor',
+'apr' => 'Nison',
+'may' => 'İyor',
+'jun' => 'Ḥziron',
+'jul' => 'Tamuz',
+'aug' => 'Ob',
+'sep' => 'Eylül',
+'oct' => 'Teşrin I',
+'nov' => 'Teşrin II',
+'dec' => 'Konun I',
 
 # Categories related messages
-'pagecategories'         => '{{PLURAL:$1|Sedro|Sedre}}',
-'category_header'        => 'Faṭoṭe bu Sedro "$1"',
-'subcategories'          => 'Sedre na³ime',
-'category-media-header'  => 'Mediya buSedro "$1"',
-'category-empty'         => 'U³do layto Faṭo aw Mediya buSedrano.',
-'hidden-categories'      => '{{PLURAL:$1|Hidden category|Hidden categories}}',
-'category-subcat-count'  => '{{PLURAL:$2|This category has only the following subcategory.|This category has the following {{PLURAL:$1|subcategory|$1 subcategories}}, out of $2 total.}}',
+'pagecategories' => '{{PLURAL:$1|Sedro|Sedre}}',
+'category_header' => 'Faṭoṭe bu Sedro "$1"',
+'subcategories' => 'Sedre na³ime',
+'category-media-header' => 'Mediya buSedro "$1"',
+'category-empty' => 'U³do layto Faṭo aw Mediya buSedrano.',
+'hidden-categories' => '{{PLURAL:$1|Hidden category|Hidden categories}}',
+'category-subcat-count' => '{{PLURAL:$2|This category has only the following subcategory.|This category has the following {{PLURAL:$1|subcategory|$1 subcategories}}, out of $2 total.}}',
 'category-article-count' => '{{PLURAL:$2|This category contains only the following page.|The following {{PLURAL:$1|page is|$1 pages are}} in this category, out of $2 total.}}',
-'category-file-count'    => '{{PLURAL:$2|This category contains only the following file.|The following {{PLURAL:$1|file is|$1 files are}} in this category, out of $2 total.}}',
+'category-file-count' => '{{PLURAL:$2|This category contains only the following file.|The following {{PLURAL:$1|file is|$1 files are}} in this category, out of $2 total.}}',
 'listingcontinuesabbrev' => 'mdawam',
-'noindex-category'       => 'Noindexed pages',
+'noindex-category' => 'Noindexed pages',
 
-'about'         => '3al',
-'newwindow'     => '(gmıftaḥ bKawṭo ḥaṭto)',
-'cancel'        => 'Mbaṫel',
+'about' => '3al',
+'newwindow' => '(gmıftaḥ bKawṭo ḥaṭto)',
+'cancel' => 'Mbaṫel',
 'moredotdotdot' => 'Heşa...',
-'mypage'        => 'iFaṭayḍi',
-'mytalk'        => 'uMamlayḍi',
-'navigation'    => 'Navigasyon',
-'and'           => '&#32;u',
+'mypage' => 'iFaṭayḍi',
+'mytalk' => 'uMamlayḍi',
+'navigation' => 'Navigasyon',
+'and' => '&#32;u',
 
 # Cologne Blue skin
-'qbfind'         => 'Ḥzay',
-'qbbrowse'       => 'Krax',
-'qbedit'         => 'Mşaḥlaf',
-'qbpageoptions'  => 'iFaṭaṭe',
-'qbmyoptions'    => 'aFaṭoṭayḍi',
+'qbfind' => 'Ḥzay',
+'qbbrowse' => 'Krax',
+'qbedit' => 'Mşaḥlaf',
+'qbpageoptions' => 'iFaṭaṭe',
+'qbmyoptions' => 'aFaṭoṭayḍi',
 'qbspecialpages' => 'Faṭoṭe dilonoye',
-'faq'            => 'Şuwole',
-'faqpage'        => 'Project:FAQ',
+'faq' => 'Şuwole',
+'faqpage' => 'Project:FAQ',
 
 # Vector skin
 'vector-action-addsection' => 'Maḥat Fusoqo ḥaṭo',
-'vector-action-delete'     => 'Slag',
-'vector-action-move'       => 'Mtaxar',
-'vector-action-protect'    => 'Mastar',
-'vector-view-create'       => 'Xlaq',
-'vector-view-edit'         => 'Mşaḥlaf',
-'vector-view-history'      => 'Maktabzabno',
-'vector-view-view'         => 'Qray',
-'vector-view-viewsource'   => 'Maḥway li aMabu³e.',
-'actions'                  => 'Dubore',
-'namespaces'               => 'Dukṭo luIşmo',
-'variants'                 => 'Variants',
-
-'errorpagetitle'    => 'Fawdo',
-'returnto'          => 'D³ar l$1',
-'tagline'           => 'men {{SITENAME}}',
-'help'              => '3udrono',
-'search'            => 'krax',
-'searchbutton'      => 'Krax',
-'go'                => 'Zux',
-'searcharticle'     => 'Zux',
-'history'           => 'Maktabzabno diFaṭo',
-'history_short'     => 'Maktabzabno',
-'updatedmarker'     => 'aŞuḥlofe datsimi miNaqa du3boroayḍi ḥaroyo',
-'printableversion'  => 'Printable version',
-'permalink'         => 'Asiruṭo aminoyto',
-'print'             => 'Ṫba³',
-'view'              => 'Qray',
-'edit'              => 'Mşaḥlaf',
-'create'            => 'Xlaq',
-'editthispage'      => 'Mşaḥlaf iFaṭaṭe',
-'create-this-page'  => 'Xlaq iFaṭaṭe',
-'delete'            => 'Slag',
-'deletethispage'    => 'Slag iFaṭaṭe',
-'protect'           => 'Mastar',
-'protect_change'    => 'mşaḥlaf',
-'protectthispage'   => 'Mastar iFaṭaṭe',
-'newpage'           => 'Faṭo ḥaṭto',
-'talkpage'          => 'Sım Droşo 3al iFaṭaṭe',
-'talkpagelinktext'  => 'Mamlo',
-'specialpage'       => 'Faṭo dilonoyto',
-'personaltools'     => 'aMonayḍi',
-'postcomment'       => 'Fusoqo ḥaṭo',
-'articlepage'       => 'Ḥur baḤbişoṭo',
-'talk'              => 'Droşo',
-'views'             => 'Ḥzayoṭo',
-'toolbox'           => 'Mone',
-'viewtalkpage'      => 'Ḥur buDroşo',
-'otherlanguages'    => 'bLeşone ḥrene',
-'redirectedfrom'    => '(Redirected from $1)',
-'lastmodifiedat'    => 'uŞuḥlofo ḥaroyo diFaṭaṭe bu Zabnano wa:  $1 $2 .',
-'jumpto'            => 'Zux l',
-'jumptonavigation'  => 'Navigasyon',
-'jumptosearch'      => 'Kruxyo',
+'vector-action-delete' => 'Slag',
+'vector-action-move' => 'Mtaxar',
+'vector-action-protect' => 'Mastar',
+'vector-view-create' => 'Xlaq',
+'vector-view-edit' => 'Mşaḥlaf',
+'vector-view-history' => 'Maktabzabno',
+'vector-view-view' => 'Qray',
+'vector-view-viewsource' => 'Maḥway li aMabu³e.',
+'actions' => 'Dubore',
+'namespaces' => 'Dukṭo luIşmo',
+'variants' => 'Variants',
+
+'errorpagetitle' => 'Fawdo',
+'returnto' => 'D³ar l$1',
+'tagline' => 'men {{SITENAME}}',
+'help' => '3udrono',
+'search' => 'krax',
+'searchbutton' => 'Krax',
+'go' => 'Zux',
+'searcharticle' => 'Zux',
+'history' => 'Maktabzabno diFaṭo',
+'history_short' => 'Maktabzabno',
+'updatedmarker' => 'aŞuḥlofe datsimi miNaqa du3boroayḍi ḥaroyo',
+'printableversion' => 'Printable version',
+'permalink' => 'Asiruṭo aminoyto',
+'print' => 'Ṫba³',
+'view' => 'Qray',
+'edit' => 'Mşaḥlaf',
+'create' => 'Xlaq',
+'editthispage' => 'Mşaḥlaf iFaṭaṭe',
+'create-this-page' => 'Xlaq iFaṭaṭe',
+'delete' => 'Slag',
+'deletethispage' => 'Slag iFaṭaṭe',
+'protect' => 'Mastar',
+'protect_change' => 'mşaḥlaf',
+'protectthispage' => 'Mastar iFaṭaṭe',
+'newpage' => 'Faṭo ḥaṭto',
+'talkpage' => 'Sım Droşo 3al iFaṭaṭe',
+'talkpagelinktext' => 'Mamlo',
+'specialpage' => 'Faṭo dilonoyto',
+'personaltools' => 'aMonayḍi',
+'postcomment' => 'Fusoqo ḥaṭo',
+'articlepage' => 'Ḥur baḤbişoṭo',
+'talk' => 'Droşo',
+'views' => 'Ḥzayoṭo',
+'toolbox' => 'Mone',
+'viewtalkpage' => 'Ḥur buDroşo',
+'otherlanguages' => 'bLeşone ḥrene',
+'redirectedfrom' => '(Redirected from $1)',
+'lastmodifiedat' => 'uŞuḥlofo ḥaroyo diFaṭaṭe bu Zabnano wa:  $1 $2 .',
+'jumpto' => 'Zux l',
+'jumptonavigation' => 'Navigasyon',
+'jumptosearch' => 'Kruxyo',
 'pool-errorunknown' => 'Fawdo nuxroyo',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
-'aboutsite'            => '3al {{SITENAME}}',
-'aboutpage'            => 'Project: 3al',
-'copyrightpage'        => '{{ns:project}}:Ḥaqat duKaṭowo',
-'currentevents'        => 'Gedşe du³do',
-'currentevents-url'    => 'Project:Gedşe du3do',
-'disclaimers'          => 'Disclaimers',
-'disclaimerpage'       => 'Project: Disclaimer gawonoyo',
-'edithelp'             => 'Editing help',
-'edithelppage'         => 'Help:Mşaḥlaf',
-'helppage'             => 'Help: Ḥbişoṭo',
-'mainpage'             => 'Faṭo rişoyto',
+'aboutsite' => '3al {{SITENAME}}',
+'aboutpage' => 'Project: 3al',
+'copyrightpage' => '{{ns:project}}:Ḥaqat duKaṭowo',
+'currentevents' => 'Gedşe ḥaṭe',
+'currentevents-url' => 'Project:Gedşe du³do',
+'disclaimers' => 'Disclaimers',
+'disclaimerpage' => 'Project: Disclaimer gawonoyo',
+'edithelp' => 'Editing help',
+'edithelppage' => 'Help:Mşaḥlaf',
+'helppage' => 'Help: Ḥbişoṭo',
+'mainpage' => 'Faṭo rişoyto',
 'mainpage-description' => 'Faṭo rişoyto',
-'portal'               => 'Portal diJama³a',
-'portal-url'           => 'Project: Portal diJama³a',
-'privacy'              => 'Setoro daMawd³onwoṭo',
-'privacypage'          => 'Project: Setoro daMawd³onwoṭo',
+'portal' => 'Portal diJama³a',
+'portal-url' => 'Project: Portal diJama³a',
+'privacy' => 'Setoro daMawd³onwoṭo',
+'privacypage' => 'Project: Setoro daMawd³onwoṭo',
 
 'badaccess-group0' => 'Hat latlux uFsoso dkolozım dsaymat iḤarakaṭe.',
 
-'ok'                      => 'Tamam',
-'retrievedfrom'           => 'men "$1"',
-'youhavenewmessages'      => 'Kıtlux $1 ($2) .',
-'newmessageslink'         => 'Ṫebe ḥaṭe',
-'newmessagesdifflink'     => 'Degoşo ḥaroyo',
+'ok' => 'Tamam',
+'retrievedfrom' => 'men "$1"',
+'youhavenewmessages' => 'Kıtlux $1 ($2) .',
+'newmessageslink' => 'Ṫebe ḥaṭe',
+'newmessagesdifflink' => 'Degoşo ḥaroyo',
 'youhavenewmessagesmulti' => 'Kitlux Ṫebe ḥaṭe b$1',
-'editsection'             => 'mşaḥlaf',
-'editold'                 => 'mşaḥlaf',
-'viewsourceold'           => 'Maḥway li uMabu³o.',
-'editlink'                => 'mşaḥlaf',
-'viewsourcelink'          => 'Maḥway li uMabu³o.',
-'editsectionhint'         => 'Mşaḥlaf uFusoqano: $1',
-'toc'                     => 'Ḥbişoṭo',
-'showtoc'                 => 'maḥway',
-'hidetoc'                 => 'tlay',
-'collapsible-collapse'    => 'sxar',
-'collapsible-expand'      => 'ftaḥ',
-'feedlinks'               => 'Feed:',
-'site-rss-feed'           => '$1 RSS feed',
-'site-atom-feed'          => '$1 Atom feed',
-'page-rss-feed'           => '"$1" RSS feed',
-'page-atom-feed'          => 'Atom feed l"$1"',
-'red-link-title'          => '$1 (layto iFaṭaṭe)',
+'editsection' => 'mşaḥlaf',
+'editold' => 'mşaḥlaf',
+'viewsourceold' => 'Maḥway li uMabu³o.',
+'editlink' => 'mşaḥlaf',
+'viewsourcelink' => 'Maḥway li uMabu³o.',
+'editsectionhint' => 'Mşaḥlaf uFusoqano: $1',
+'toc' => 'Ḥbişoṭo',
+'showtoc' => 'maḥway',
+'hidetoc' => 'tlay',
+'collapsible-collapse' => 'sxar',
+'collapsible-expand' => 'ftaḥ',
+'feedlinks' => 'Feed:',
+'site-rss-feed' => '$1 RSS feed',
+'site-atom-feed' => '$1 Atom feed',
+'page-rss-feed' => '"$1" RSS feed',
+'page-atom-feed' => 'Atom feed l"$1"',
+'red-link-title' => '$1 (layto iFaṭaṭe)',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main'      => 'Faṭo',
-'nstab-user'      => 'Faṭo duHadomo',
-'nstab-media'     => 'Faṭo diMediya',
-'nstab-special'   => 'Faṭo dilonoyto',
-'nstab-project'   => 'Faṭo die Proja',
-'nstab-image'     => 'Fayl',
+'nstab-main' => 'Faṭo',
+'nstab-user' => 'Faṭo duHadomo',
+'nstab-media' => 'Faṭo diMediya',
+'nstab-special' => 'Faṭo dilonoyto',
+'nstab-project' => 'Faṭo diProja',
+'nstab-image' => 'Fayl',
 'nstab-mediawiki' => 'Ṫebo',
-'nstab-template'  => 'Template',
-'nstab-help'      => 'Faṭo d3udrono',
-'nstab-category'  => 'Sedro',
+'nstab-template' => 'Template',
+'nstab-help' => 'Faṭo d3udrono',
+'nstab-category' => 'Sedro',
 
 # General errors
-'error'              => 'Fawdo',
-'missing-article'    => 'uSyomo d$1 $2 lo komaḥwe biDatabase.
+'error' => 'Fawdo',
+'missing-article' => 'uSyomo d$1 $2 lo komaḥwe biDatabase.
 
 iFaṭaṭe belki sligo aw mtaxro merke.
 
 Elo iḍa dlo howe hawxa belki ḥselux Fawdo biSoftware. Bo³o haw Ṫebo l[[Special:ListUsers/sysop|Administrator]] u kṭaw u"URL".',
 'missingarticle-rev' => '(Numara duVersyon: $1)',
-'badtitle'           => 'Bad title',
-'badtitletext'       => 'The requested page title was invalid, empty, or an incorrectly linked inter-language or inter-wiki title.
+'badtitle' => 'Bad title',
+'badtitletext' => 'The requested page title was invalid, empty, or an incorrectly linked inter-language or inter-wiki title.
 It may contain one or more characters which cannot be used in titles.',
-'viewsource'         => 'Maḥway li aMabu³e.',
+'viewsource' => 'Maḥway li aMabu³e.',
 'namespaceprotected' => "Hat latlux Ḥaq dımşaḥılfat Faṭoṭe bi'''$1''' Dukṭo xliṭo.",
 
 # Virus scanner
 'virus-unknownscanner' => 'Antivirus nuxroyo:',
 
 # Login and logout pages
-'yourname'                => 'Işme duHadomo:',
-'yourpassword'            => 'Qliḍo:',
-'yourpasswordagain'       => 'Naqla ḥreto kṭaw uQliḍo:',
-'remembermypassword'      => 'Dxar uQliḍayḍi buBrowser (buSowudo $1 {{PLURAL:$1|Yawmo|Yawme}})',
-'login'                   => '3bar',
+'yourname' => 'Işme duHadomo:',
+'yourpassword' => 'Qliḍo:',
+'yourpasswordagain' => 'Naqla ḥreto kṭaw uQliḍo:',
+'remembermypassword' => 'Dxar uQliḍayḍi buBrowser (buSowudo $1 {{PLURAL:$1|Yawmo|Yawme}})',
+'login' => '3bar',
 'nav-login-createaccount' => '3bar / Hway Hadomo',
-'loginprompt'             => 'Glozım maqablat Cookies qanna dqudrat fıtḥat {{SITENAME}}.',
-'userlogin'               => '3bar / Hway Hadomo',
-'userloginnocreate'       => '3bar',
-'logout'                  => 'Nfoqo',
-'userlogout'              => 'Nfoqo',
-'notloggedin'             => 'Heş lo3abirat.',
-'nologin'                 => 'Heş lawit Hadomo? $1',
-'nologinlink'             => 'Hway Hadomo',
-'createaccount'           => 'Hway Hadomo',
-'gotaccount'              => 'Ma hawit ste Hadomo? $1',
-'gotaccountlink'          => '3bar',
-'userlogin-resetlink'     => 'Ṫa³at uQliḍayḍox?',
-'createaccountmail'       => 'buEmail',
-'wrongpassword'           => 'uQliḍayḍux fawdo yo.
+'loginprompt' => 'Glozım maqablat Cookies qanna dqudrat fıtḥat {{SITENAME}}.',
+'userlogin' => '3bar / Hway Hadomo',
+'userloginnocreate' => '3bar',
+'logout' => 'Nfoqo',
+'userlogout' => 'Nfoqo',
+'notloggedin' => 'Heş lo3abirat.',
+'nologin' => 'Heş lawit Hadomo? $1',
+'nologinlink' => 'Hway Hadomo',
+'createaccount' => 'Hway Hadomo',
+'gotaccount' => 'Ma hawit ste Hadomo? $1',
+'gotaccountlink' => '3bar',
+'userlogin-resetlink' => 'Ṫa³at uQliḍayḍox?',
+'createaccountmail' => 'buEmail',
+'wrongpassword' => 'uQliḍayḍux fawdo yo.
 Mjarab Naqla ḥreto.',
-'wrongpasswordempty'      => 'Lo msta³melux uQliḍayḍux.
+'wrongpasswordempty' => 'Lo msta³melux uQliḍayḍux.
 Mjarab Naqla ḥreto.',
-'password-name-match'     => 'Glozım towe Frişuṭo beyn uQliḍo u uIşmayḍux.',
-'mailmypassword'          => 'Mşadar li Qliḍo ḥaṭo',
-'loginlanguagelabel'      => 'Leşono: $1',
+'password-name-match' => 'Glozım towe Frişuṭo beyn uQliḍo u uIşmayḍux.',
+'mailmypassword' => 'Mşadar li Qliḍo ḥaṭo',
+'loginlanguagelabel' => 'Leşono: $1',
 
 # Change password dialog
-'resetpass'                 => 'Mşaḥlaf uQliḍo.',
-'oldpassword'               => 'Qliḍo 3atiqo:',
-'newpassword'               => 'Qliḍo ḥaṭo:',
-'retypenew'                 => 'Qliḍo ḥaṭo (disa):',
+'resetpass' => 'Mşaḥlaf uQliḍo.',
+'oldpassword' => 'Qliḍo 3atiqo:',
+'newpassword' => 'Qliḍo ḥaṭo:',
+'retypenew' => 'Qliḍo ḥaṭo (disa):',
 'resetpass-submit-loggedin' => 'Mşaḥlaf uQliḍo',
 
 # Special:PasswordReset
@@ -273,264 +273,264 @@ Mjarab Naqla ḥreto.',
 'changeemail-newemail' => 'Email-adres ḥaṭo:',
 
 # Edit page toolbar
-'bold_sample'     => 'Ḥarfe ḥlime',
-'bold_tip'        => 'Ḥarfe ḥlime',
-'italic_sample'   => 'Ḥarfe 3wije',
-'italic_tip'      => 'Ḥarfe 3wije',
-'link_sample'     => 'Link title',
-'link_tip'        => 'Internal link',
-'extlink_sample'  => 'http://www.example.com link title',
-'extlink_tip'     => 'External link (remember http:// prefix)',
+'bold_sample' => 'Ḥarfe ḥlime',
+'bold_tip' => 'Ḥarfe ḥlime',
+'italic_sample' => 'Ḥarfe 3wije',
+'italic_tip' => 'Ḥarfe 3wije',
+'link_sample' => 'Link title',
+'link_tip' => 'Internal link',
+'extlink_sample' => 'http://www.example.com link title',
+'extlink_tip' => 'External link (remember http:// prefix)',
 'headline_sample' => 'Headline text',
-'headline_tip'    => 'Level 2 headline',
-'nowiki_sample'   => 'Insert non-formatted text here',
-'nowiki_tip'      => 'uSyomano latyo buFormat',
-'image_tip'       => 'Embedded file',
-'media_tip'       => 'File link',
-'sig_tip'         => 'Mḍay herke u kṭaw iSa³aye muqa yo.',
-'hr_tip'          => 'Horizontal line (use sparingly)',
+'headline_tip' => 'Level 2 headline',
+'nowiki_sample' => 'Insert non-formatted text here',
+'nowiki_tip' => 'uSyomano latyo buFormat',
+'image_tip' => 'Embedded file',
+'media_tip' => 'File link',
+'sig_tip' => 'Mḍay herke u kṭaw iSa³aye muqa yo.',
+'hr_tip' => 'Horizontal line (use sparingly)',
 
 # Edit pages
-'summary'                          => 'Summary:',
-'minoredit'                        => 'This is a minor edit',
-'watchthis'                        => 'Watch this page',
-'savearticle'                      => 'Mqayad iFaṭaṭe',
-'preview'                          => 'Preview',
-'showpreview'                      => 'Show preview',
-'showdiff'                         => 'Maḥway aŞuḥlofe',
-'anoneditwarning'                  => "'''Diqad''' Heş lo 3abirat.
+'summary' => 'Summary:',
+'minoredit' => 'This is a minor edit',
+'watchthis' => 'Watch this page',
+'savearticle' => 'Mqayad iFaṭaṭe',
+'preview' => 'Preview',
+'showpreview' => 'Show preview',
+'showdiff' => 'Maḥway aŞuḥlofe',
+'anoneditwarning' => "'''Diqad''' Heş lo 3abirat.
 uIP-Adresayḍux gmikṭaw buMaktabzabno diFaṭaṭe. Kul Noşo kibe ḥozele u lo komislag.",
-'loginreqtitle'                    => 'Glozım 3obrat',
-'loginreqlink'                     => '3bar',
-'loginreqpagetext'                 => 'Glozım $1 qanna dqudrat ḥozat Faṭoṭe ḥrene.',
-'newarticle'                       => '(Ḥaṭo)',
-'newarticletext'                   => "You have followed a link to a page that does not exist yet.
+'loginreqtitle' => 'Glozım 3obrat',
+'loginreqlink' => '3bar',
+'loginreqpagetext' => 'Glozım $1 qanna dqudrat ḥozat Faṭoṭe ḥrene.',
+'newarticle' => '(Ḥaṭo)',
+'newarticletext' => "You have followed a link to a page that does not exist yet.
 To create the page, start typing in the box below (see the [[{{MediaWiki:Helppage}}|help page]] for more info).
 If you are here by mistake, click your browser's '''back''' button.",
-'noarticletext'                    => 'There is currently no text in this page.
+'noarticletext' => 'There is currently no text in this page.
 You can [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages,
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs],
 or [{{fullurl:{{FULLPAGENAME}}|action=edit}} edit this page]</span>.',
-'noarticletext-nopermission'       => 'There is currently no text in this page.
+'noarticletext-nopermission' => 'There is currently no text in this page.
 You 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>.',
-'previewnote'                      => "'''Remember that this is only a preview.'''
+'previewnote' => "'''Remember that this is only a preview.'''
 Your changes have not yet been saved!",
-'editing'                          => 'Şuḥlofo d$1',
-'editingsection'                   => 'Mşaḥlaf $1 (Fusoqo)',
-'yourtext'                         => 'uSyomayḍux',
-'yourdiff'                         => 'Frişwoṭo',
-'templatesused'                    => '{{PLURAL:$1|Template|Templates}} used on this page:',
-'template-protected'               => '(protected)',
-'template-semiprotected'           => '(semi-protected)',
-'hiddencategories'                 => 'This page is a member of {{PLURAL:$1|1 hidden category|$1 hidden categories}}:',
+'editing' => 'Şuḥlofo d$1',
+'editingsection' => 'Mşaḥlaf $1 (Fusoqo)',
+'yourtext' => 'uSyomayḍux',
+'yourdiff' => 'Frişwoṭo',
+'templatesused' => '{{PLURAL:$1|Template|Templates}} used on this page:',
+'template-protected' => '(protected)',
+'template-semiprotected' => '(semi-protected)',
+'hiddencategories' => 'This page is a member of {{PLURAL:$1|1 hidden category|$1 hidden categories}}:',
 'permissionserrorstext-withaction' => 'You do not have permission to $2, for the following {{PLURAL:$1|reason|reasons}}:',
-'recreate-moveddeleted-warn'       => "'''Warning: You are recreating a page that was previously deleted.'''
+'recreate-moveddeleted-warn' => "'''Warning: You are recreating a page that was previously deleted.'''
 
 You should consider whether it is appropriate to continue editing this page.
 The deletion and move log for this page are provided here for convenience:",
-'moveddeleted-notice'              => 'iFaṭaṭe sligto yo.
+'moveddeleted-notice' => 'iFaṭaṭe sligto yo.
 The deletion and move log for the page are provided below for reference.',
 
 # Parser/template warnings
-'post-expand-template-inclusion-warning'  => "'''Warning:''' Template include size is too large.
+'post-expand-template-inclusion-warning' => "'''Warning:''' Template include size is too large.
 Some templates will not be included.",
 'post-expand-template-inclusion-category' => 'Pages where template include size is exceeded',
-'post-expand-template-argument-warning'   => "'''Warning:''' This page contains at least one template argument which has a too large expansion size.
+'post-expand-template-argument-warning' => "'''Warning:''' This page contains at least one template argument which has a too large expansion size.
 These arguments have been omitted.",
-'post-expand-template-argument-category'  => 'Pages containing omitted template arguments',
+'post-expand-template-argument-category' => 'Pages containing omitted template arguments',
 
 # History pages
-'viewpagelogs'           => 'View logs for this page',
-'currentrev-asof'        => 'Latest revision as of $1',
-'revisionasof'           => 'Versyon 3atiqo diNaqa: $1',
-'revision-info'          => 'Revision as of $1 by $2',
-'previousrevision'       => '←Versyon 3atiqtır',
-'nextrevision'           => 'Versyon ḥaṭtır',
-'currentrevisionlink'    => 'Latest revision',
-'cur'                    => 'du³do',
-'next'                   => 'Ḥreto',
-'last'                   => 'dmeqım',
-'page_first'             => 'Badaye',
-'page_last'              => 'Ḥarayto',
-'histlegend'             => "Diff selection: Mark the radio boxes of the revisions to compare and hit enter or the button at the bottom.<br />
+'viewpagelogs' => 'View logs for this page',
+'currentrev-asof' => 'Latest revision as of $1',
+'revisionasof' => 'Versyon 3atiqo diNaqa: $1',
+'revision-info' => 'Revision as of $1 by $2',
+'previousrevision' => '←Versyon 3atiqtır',
+'nextrevision' => 'Versyon ḥaṭtır',
+'currentrevisionlink' => 'Latest revision',
+'cur' => 'du³do',
+'next' => 'Ḥreto',
+'last' => 'dmeqım',
+'page_first' => 'Badaye',
+'page_last' => 'Ḥarayto',
+'histlegend' => "Diff selection: Mark the radio boxes of the revisions to compare and hit enter or the button at the bottom.<br />
 Legend: '''({{int:cur}})''' = difference with latest revision, '''({{int:last}})''' = difference with preceding revision, '''{{int:minoreditletter}}''' = minor edit.",
 'history-fieldset-title' => 'Krax buMaktabzabno',
-'history-show-deleted'   => 'Bes aSlige',
-'histfirst'              => 'Meqım kulle',
-'histlast'               => 'Ḥaṭo',
-'historysize'            => '({{PLURAL:$1|1 byte|$1 bytes}})',
-'historyempty'           => '(xalyo)',
+'history-show-deleted' => 'Bes aSlige',
+'histfirst' => 'Meqım kulle',
+'histlast' => 'Ḥaṭo',
+'historysize' => '({{PLURAL:$1|1 byte|$1 bytes}})',
+'historyempty' => '(xalyo)',
 
 # Revision feed
 'history-feed-item-nocomment' => '$1  b$2',
 
 # Revision deletion
-'rev-delundel'               => 'maḥway / tlay',
-'rev-showdeleted'            => 'maḥway',
+'rev-delundel' => 'maḥway / tlay',
+'rev-showdeleted' => 'maḥway',
 'revdelete-show-file-submit' => 'Eh',
-'revdelete-radio-same'       => '(lo mşaḥalfat)',
-'revdelete-radio-set'        => 'Eh',
-'revdelete-radio-unset'      => 'Lo',
-'revdel-restore'             => 'change visibility',
-'revdel-restore-deleted'     => 'deleted revisions',
-'revdel-restore-visible'     => 'visible revisions',
-'pagehist'                   => 'Maktabzabno diFaṭo',
+'revdelete-radio-same' => '(lo mşaḥalfat)',
+'revdelete-radio-set' => 'Eh',
+'revdelete-radio-unset' => 'Lo',
+'revdel-restore' => 'change visibility',
+'revdel-restore-deleted' => 'deleted revisions',
+'revdel-restore-visible' => 'visible revisions',
+'pagehist' => 'Maktabzabno diFaṭo',
 
 # Merge log
 'revertmerge' => 'Unmerge',
 
 # Diffs
-'history-title'           => 'Revision history of "$1"',
-'lineno'                  => 'Serṫo $1:',
+'history-title' => 'Revision history of "$1"',
+'lineno' => 'Serṫo $1:',
 'compareselectedversions' => 'Compare selected revisions',
-'editundo'                => 'slag',
-'diff-multi'              => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} by {{PLURAL:$2|one user|$2 users}} not shown)',
+'editundo' => 'slag',
+'diff-multi' => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} by {{PLURAL:$2|one user|$2 users}} not shown)',
 
 # Search results
-'searchresults'                    => 'Nafqe duKruxyayḍux',
-'searchresults-title'              => 'Nafqe duKruxyo l"$1"',
-'searchsubtitleinvalid'            => "Karixat '''$1'''",
-'prevn'                            => '{{PLURAL:$1|$1}} meqımtır',
-'nextn'                            => '{{PLURAL:$1 ḥaṭtır| $1 ḥaṭtır }}',
-'prevn-title'                      => '{{PLURAL:$1 Nafqo meqımtır|$1 Nafqe meqımtır}}',
-'nextn-title'                      => '{{PLURAL:$1|Nafqo ḥreno|$1 Nafqe ḥrene}}',
-'shown-title'                      => 'maḥway $1 {{PLURAL:$1|Nafqo|Nafqe}} bḥḍo Faṭo',
-'viewprevnext'                     => 'Maḥway ($1 {{int:pipe-separator}} $2) ($3)',
-'searchmenu-legend'                => '3ayar duKruxyo',
-'searchmenu-exists'                => "'''Kito Faṭo herke Işma \"[[:\$1]]\"yo'''",
-'searchmenu-new'                   => 'Kṭaw iFaṭaṭe "[[:$1]]" buWiki.',
-'searchhelp-url'                   => 'Help: Ḥbişoṭo',
-'searchprofile-articles'           => 'Faṭoṭe daḤbişoṭo',
-'searchprofile-project'            => 'Faṭoṭe du3udrono u daProjat',
-'searchprofile-images'             => 'Multimediya',
-'searchprofile-everything'         => 'Kulmede',
-'searchprofile-advanced'           => 'Advanced',
-'searchprofile-articles-tooltip'   => 'Krax b$1',
-'searchprofile-project-tooltip'    => 'Krax b$1',
-'searchprofile-images-tooltip'     => 'Krax Ṥurtoṭe',
+'searchresults' => 'Nafqe duKruxyayḍux',
+'searchresults-title' => 'Nafqe duKruxyo l"$1"',
+'searchsubtitleinvalid' => "Karixat '''$1'''",
+'prevn' => '{{PLURAL:$1|$1}} meqımtır',
+'nextn' => '{{PLURAL:$1 ḥaṭtır| $1 ḥaṭtır }}',
+'prevn-title' => '{{PLURAL:$1 Nafqo meqımtır|$1 Nafqe meqımtır}}',
+'nextn-title' => '{{PLURAL:$1|Nafqo ḥreno|$1 Nafqe ḥrene}}',
+'shown-title' => 'maḥway $1 {{PLURAL:$1|Nafqo|Nafqe}} bḥḍo Faṭo',
+'viewprevnext' => 'Maḥway ($1 {{int:pipe-separator}} $2) ($3)',
+'searchmenu-legend' => '3ayar duKruxyo',
+'searchmenu-exists' => "'''Kito Faṭo herke Işma \"[[:\$1]]\"yo'''",
+'searchmenu-new' => 'Kṭaw iFaṭaṭe "[[:$1]]" buWiki.',
+'searchhelp-url' => 'Help: Ḥbişoṭo',
+'searchprofile-articles' => 'Faṭoṭe daḤbişoṭo',
+'searchprofile-project' => 'Faṭoṭe du3udrono u daProjat',
+'searchprofile-images' => 'Multimediya',
+'searchprofile-everything' => 'Kulmede',
+'searchprofile-advanced' => 'Advanced',
+'searchprofile-articles-tooltip' => 'Krax b$1',
+'searchprofile-project-tooltip' => 'Krax b$1',
+'searchprofile-images-tooltip' => 'Krax Ṥurtoṭe',
 'searchprofile-everything-tooltip' => 'Krax baḤbişoṭo (baFaṭoṭe duDroşo ste)',
-'searchprofile-advanced-tooltip'   => 'Search in custom namespaces',
-'search-result-size'               => '$1 ({{PLURAL:$2|1 Melṭo|$2 Mele}})',
-'search-result-category-size'      => '{{PLURAL:$1|1 Hadomo|$1 Hadome}} ({{PLURAL:$2|1 Sedro taḥtoyo|$2 Sedre taḥtoye}}, {{PLURAL:$3|1 file|$3 files}})',
-'search-redirect'                  => '(Asiruṭo men $1)',
-'search-section'                   => '(Fusoqo $1)',
-'search-suggest'                   => 'Ub³atwa dkıṭwat: $1?',
-'search-interwiki-more'            => '(heşa)',
-'searchrelated'                    => 'related',
-'searchall'                        => 'kulle',
-'showingresultsheader'             => "{{PLURAL:$5|Nafqo '''$1''' of '''$3'''|Nafqe '''$1 - $2''' men '''$3'''}} l'''$4'''",
-'search-nonefound'                 => 'Für deine Suchanfrage wurden keine Ergebnisse gefunden.',
-'powersearch-field'                => 'Krax',
-'powersearch-togglelabel'          => 'Sım Qontrol:',
-'powersearch-toggleall'            => 'Kulle',
+'searchprofile-advanced-tooltip' => 'Search in custom namespaces',
+'search-result-size' => '$1 ({{PLURAL:$2|1 Melṭo|$2 Mele}})',
+'search-result-category-size' => '{{PLURAL:$1|1 Hadomo|$1 Hadome}} ({{PLURAL:$2|1 Sedro taḥtoyo|$2 Sedre taḥtoye}}, {{PLURAL:$3|1 file|$3 files}})',
+'search-redirect' => '(Asiruṭo men $1)',
+'search-section' => '(Fusoqo $1)',
+'search-suggest' => 'Ub³atwa dkıṭwat: $1?',
+'search-interwiki-more' => '(heşa)',
+'searchrelated' => 'related',
+'searchall' => 'kulle',
+'showingresultsheader' => "{{PLURAL:$5|Nafqo '''$1''' of '''$3'''|Nafqe '''$1 - $2''' men '''$3'''}} l'''$4'''",
+'search-nonefound' => 'Für deine Suchanfrage wurden keine Ergebnisse gefunden.',
+'powersearch-field' => 'Krax',
+'powersearch-togglelabel' => 'Sım Qontrol:',
+'powersearch-toggleall' => 'Kulle',
 
 # Preferences page
-'preferences'               => '3ayarat',
-'mypreferences'             => 'a3ayaratayḍi',
-'prefs-edits'               => 'Menyono daŞuḥlofe kulle:',
-'prefs-resetpass'           => 'Mşaḥlaf uQliḍo',
-'prefs-email'               => '3ayarat duEmail',
-'saveprefs'                 => 'Mqayad',
-'searchresultshead'         => 'Kruxyo',
-'timezoneregion-africa'     => 'Afriqa',
-'timezoneregion-america'    => 'Ameriqa',
+'preferences' => '3ayarat',
+'mypreferences' => 'a3ayaratayḍi',
+'prefs-edits' => 'Menyono daŞuḥlofe kulle:',
+'prefs-resetpass' => 'Mşaḥlaf uQliḍo',
+'prefs-email' => '3ayarat duEmail',
+'saveprefs' => 'Mqayad',
+'searchresultshead' => 'Kruxyo',
+'timezoneregion-africa' => 'Afriqa',
+'timezoneregion-america' => 'Ameriqa',
 'timezoneregion-antarctica' => 'Antarctica',
-'timezoneregion-arctic'     => 'Arctic',
-'timezoneregion-asia'       => 'Asia',
-'timezoneregion-atlantic'   => 'Yamo atlantikoyo',
-'timezoneregion-australia'  => 'Australia',
-'timezoneregion-europe'     => 'Awrifi',
-'timezoneregion-indian'     => 'Yamo hindoyo',
-'youremail'                 => 'Adres duEmail',
-'username'                  => 'Işme duHadomo:',
-'prefs-memberingroups'      => 'Hadomo d{{PLURAL:$1|Gudo|Gudoṭo}}:',
-'prefs-registration'        => 'Zabno duSugolo:',
-'yourrealname'              => 'Işmo şariro:',
-'yourlanguage'              => 'Leşono',
-'yournick'                  => 'Imḍa ḥaṭto:',
-'yourgender'                => 'Ğenso:',
-'gender-male'               => 'Dekronoyo',
-'gender-female'             => 'Neqıbṭonoyo',
-'email'                     => 'Email',
-'prefs-help-email'          => 'Latat majbur dkıṭwat uEmail-Adresayḍox, elo glozam inaqla ṫo³at uQliḍayḍox u hakka dlozam dmişadar lox Qliḍo ḥaṭo.',
-'prefs-help-email-others'   => 'Kibux mijğolat 3am Hadome ğer biFaṭo duMamlo u luglozam dumat Işmux.',
-'prefs-signature'           => 'Imḍa',
+'timezoneregion-arctic' => 'Arctic',
+'timezoneregion-asia' => 'Asia',
+'timezoneregion-atlantic' => 'Yamo atlantikoyo',
+'timezoneregion-australia' => 'Australia',
+'timezoneregion-europe' => 'Awrifi',
+'timezoneregion-indian' => 'Yamo hindoyo',
+'youremail' => 'Adres duEmail',
+'username' => 'Işme duHadomo:',
+'prefs-memberingroups' => 'Hadomo d{{PLURAL:$1|Gudo|Gudoṭo}}:',
+'prefs-registration' => 'Zabno duSugolo:',
+'yourrealname' => 'Işmo şariro:',
+'yourlanguage' => 'Leşono',
+'yournick' => 'Imḍa ḥaṭto:',
+'yourgender' => 'Ğenso:',
+'gender-male' => 'Dekronoyo',
+'gender-female' => 'Neqıbṭonoyo',
+'email' => 'Email',
+'prefs-help-email' => 'Latat majbur dkıṭwat uEmail-Adresayḍox, elo glozam inaqla ṫo³at uQliḍayḍox u hakka dlozam dmişadar lox Qliḍo ḥaṭo.',
+'prefs-help-email-others' => 'Kibux mijğolat 3am Hadome ğer biFaṭo duMamlo u luglozam dumat Işmux.',
+'prefs-signature' => 'Imḍa',
 
 # User preference: e-mail validation using jQuery
 'email-address-validity-valid' => 'uEmail-Adresayḍux m³adlo yo.',
 
 # Groups
 'group-user' => 'Hadome',
-'group-all'  => '(kulle)',
+'group-all' => '(kulle)',
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-edit' => 'Mşaḥlaf iFaṭaṭe',
 
 # Recent changes
-'nchanges'                        => '$1 {{PLURAL:$1|Şuḥlofo|Şuḥlofe}}',
-'recentchanges'                   => 'Şuḥlofe ḥaroye',
-'recentchanges-legend'            => '3ayar daŞuḥlofe',
-'recentchanges-summary'           => 'biFaṭaṭe kibox ḥozat aŞuḥlofe ḥaroye.',
-'recentchanges-feed-description'  => 'biFaṭaṭe kibox ḥozat aŞuḥlofe ḥaroye.',
-'recentchanges-label-newpage'     => 'Faṭo ḥaṭto',
-'recentchanges-label-minor'       => 'This is a minor edit',
-'recentchanges-label-bot'         => 'uŞuḥlofano sim muBot.',
+'nchanges' => '$1 {{PLURAL:$1|Şuḥlofo|Şuḥlofe}}',
+'recentchanges' => 'Şuḥlofe ḥaroye',
+'recentchanges-legend' => '3ayar daŞuḥlofe',
+'recentchanges-summary' => 'biFaṭaṭe kibox ḥozat aŞuḥlofe ḥaroye.',
+'recentchanges-feed-description' => 'biFaṭaṭe kibox ḥozat aŞuḥlofe ḥaroye.',
+'recentchanges-label-newpage' => 'Faṭo ḥaṭto',
+'recentchanges-label-minor' => 'This is a minor edit',
+'recentchanges-label-bot' => 'uŞuḥlofano sim muBot.',
 'recentchanges-label-unpatrolled' => 'This edit has not yet been patrolled',
-'rcnote'                          => "Below {{PLURAL:$1|is '''1''' change|are the last '''$1''' changes}} in the last {{PLURAL:$2|day|'''$2''' days}}, as of $5, $4.",
-'rcnotefrom'                      => 'Herke komaḥwın aŞuḥlofe ḥaroye men ""$2"" (hul buSowudo ""$1"").',
-'rclistfrom'                      => 'Maḥway li Şuḥlofe ḥaṭe men $1',
-'rcshowhideminor'                 => '$1 minor edits',
-'rcshowhidebots'                  => '$1 bots',
-'rcshowhideliu'                   => '$1 Hadome d3abiri',
-'rcshowhideanons'                 => '$1 Hadomo nuxroyo',
-'rcshowhidepatr'                  => '$1 patrolled edits',
-'rcshowhidemine'                  => 'aMaṫwoṭayḍi ($1)',
-'rclinks'                         => 'Maḥway li $1 aŞuḥlofe ḥaroye men meqım $2 Yawme hul u³do. <br />$3',
-'diff'                            => 'Frişuṭo',
-'hist'                            => 'Maktabzabno',
-'hide'                            => 'Tlay',
-'show'                            => 'Maḥway',
-'minoreditletter'                 => 'm',
-'newpageletter'                   => 'N',
-'boteditletter'                   => 'b',
-'rc-enhanced-expand'              => 'Maḥway aŞelole',
-'rc-enhanced-hide'                => 'Tlay aŞelole',
+'rcnote' => "Below {{PLURAL:$1|is '''1''' change|are the last '''$1''' changes}} in the last {{PLURAL:$2|day|'''$2''' days}}, as of $5, $4.",
+'rcnotefrom' => 'Herke komaḥwın aŞuḥlofe ḥaroye men ""$2"" (hul buSowudo ""$1"").',
+'rclistfrom' => 'Maḥway li Şuḥlofe ḥaṭe men $1',
+'rcshowhideminor' => '$1 minor edits',
+'rcshowhidebots' => '$1 bots',
+'rcshowhideliu' => '$1 Hadome d3abiri',
+'rcshowhideanons' => '$1 Hadomo nuxroyo',
+'rcshowhidepatr' => '$1 patrolled edits',
+'rcshowhidemine' => 'aMaṫwoṭayḍi ($1)',
+'rclinks' => 'Maḥway li $1 aŞuḥlofe ḥaroye men meqım $2 Yawme hul u³do. <br />$3',
+'diff' => 'Frişuṭo',
+'hist' => 'Maktabzabno',
+'hide' => 'Tlay',
+'show' => 'Maḥway',
+'minoreditletter' => 'm',
+'newpageletter' => 'N',
+'boteditletter' => 'b',
+'rc-enhanced-expand' => 'Maḥway aŞelole',
+'rc-enhanced-hide' => 'Tlay aŞelole',
 
 # Recent changes linked
-'recentchangeslinked'          => 'Şuḥlofe bFaṭoṭe masre',
-'recentchangeslinked-toolbox'  => 'Şuḥlofe bFaṭoṭe masre',
-'recentchangeslinked-title'    => 'Şuḥlofe bFaṭoṭe dkıtne masre b$1',
+'recentchangeslinked' => 'Şuḥlofe bFaṭoṭe masre',
+'recentchangeslinked-toolbox' => 'Şuḥlofe bFaṭoṭe masre',
+'recentchangeslinked-title' => 'Şuḥlofe bFaṭoṭe dkıtne masre b$1',
 'recentchangeslinked-noresult' => 'No changes on linked pages during the given period.',
-'recentchangeslinked-summary'  => "This is a list of changes made recently to pages linked from a specified page (or to members of a specified category).
+'recentchangeslinked-summary' => "This is a list of changes made recently to pages linked from a specified page (or to members of a specified category).
 Pages on [[Special:Watchlist|your watchlist]] are '''bold'''.",
-'recentchangeslinked-page'     => 'Işmo diFaṭo',
-'recentchangeslinked-to'       => 'Maḥway li Şuḥlofe dFaṭoṭe dkitne masre lerke.',
+'recentchangeslinked-page' => 'Işmo diFaṭo',
+'recentchangeslinked-to' => 'Maḥway li Şuḥlofe dFaṭoṭe dkitne masre lerke.',
 
 # Upload
-'upload'        => 'Mosaq Fayl',
+'upload' => 'Mosaq Fayl',
 'uploadlogpage' => 'Upload log',
-'filedesc'      => 'Sfiquṭo',
+'filedesc' => 'Sfiquṭo',
 'uploadedimage' => 'mosaq "[[$1]]"',
 
-'license'        => 'Fsoso',
+'license' => 'Fsoso',
 'license-header' => 'Fsoso',
 
 # File description page
-'file-anchor-link'       => 'Fayl',
-'filehist'               => 'Maktabzabno duFayl',
-'filehist-help'          => 'Click on a date/time to view the file as it appeared at that time.',
-'filehist-revert'        => 'revert',
-'filehist-current'       => 'current',
-'filehist-datetime'      => 'Zabno',
-'filehist-thumb'         => 'Thumbnail',
-'filehist-thumbtext'     => 'Thumbnail for version as of $1',
-'filehist-user'          => 'Hadomo',
-'filehist-dimensions'    => 'Dimensions',
-'filehist-comment'       => 'Comment',
-'imagelinks'             => 'File usage',
-'linkstoimage'           => 'The following {{PLURAL:$1|page links|$1 pages link}} to this file:',
-'nolinkstoimage'         => 'There are no pages that link to this file.',
+'file-anchor-link' => 'Fayl',
+'filehist' => 'Maktabzabno duFayl',
+'filehist-help' => 'Click on a date/time to view the file as it appeared at that time.',
+'filehist-revert' => 'revert',
+'filehist-current' => 'current',
+'filehist-datetime' => 'Zabno',
+'filehist-thumb' => 'Thumbnail',
+'filehist-thumbtext' => 'Thumbnail for version as of $1',
+'filehist-user' => 'Hadomo',
+'filehist-dimensions' => 'Dimensions',
+'filehist-comment' => 'Comment',
+'imagelinks' => 'File usage',
+'linkstoimage' => 'The following {{PLURAL:$1|page links|$1 pages link}} to this file:',
+'nolinkstoimage' => 'There are no pages that link to this file.',
 'sharedupload-desc-here' => 'This file is from $1 and may be used by other projects.
 The description on its [$2 file description page] there is shown below.',
 
@@ -542,44 +542,44 @@ The description on its [$2 file description page] there is shown below.',
 
 'disambiguationspage' => 'Template:disambig',
 
-'brokenredirects-edit'   => 'mşaḥlaf',
+'brokenredirects-edit' => 'mşaḥlaf',
 'brokenredirects-delete' => 'slag',
 
 # Miscellaneous special pages
-'nbytes'        => '$1 {{PLURAL:$1|byte|bytes}}',
-'nmembers'      => '$1 {{PLURAL:$1|Hadomo|Hadome}}',
-'prefixindex'   => 'aFaṭoṭe kulle dkitte Prefiks',
-'usercreated'   => '{{GENDER:$3|kṭule}}  $1 b$2',
-'newpages'      => 'Faṭoṭe ḥaṭe',
-'move'          => 'Mtaxar',
+'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}',
+'nmembers' => '$1 {{PLURAL:$1|Hadomo|Hadome}}',
+'prefixindex' => 'aFaṭoṭe kulle dkitte Prefiks',
+'usercreated' => '{{GENDER:$3|kṭule}}  $1 b$2',
+'newpages' => 'Faṭoṭe ḥaṭe',
+'move' => 'Mtaxar',
 'pager-newer-n' => '{{PLURAL:$1|1 ḥreno |$1 ḥrene}}',
 'pager-older-n' => '{{PLURAL:$1|3atiqo1|3atiqe $1}}',
 
 # Book sources
-'booksources'               => 'Kruxyo baNumarat duISBN',
+'booksources' => 'Kruxyo baNumarat duISBN',
 'booksources-search-legend' => 'Krax Mabu³e me Kṭowe',
-'booksources-go'            => 'Zux',
+'booksources-go' => 'Zux',
 
 # Special:Log
 'log' => 'Logs',
 
 # Special:AllPages
-'allpages'       => 'aFaṭaṭe kulle',
+'allpages' => 'aFaṭaṭe kulle',
 'alphaindexline' => '$1  l$2',
-'allarticles'    => 'aFaṭaṭe kulle',
-'allpagesnext'   => 'Ḥreto',
+'allarticles' => 'aFaṭaṭe kulle',
+'allpagesnext' => 'Ḥreto',
 'allpagessubmit' => 'Zux',
 
 # Special:Categories
 'categories' => 'Sedre',
 
 # Special:DeletedContributions
-'deletedcontributions'             => 'Maṫwoṭo slige',
-'deletedcontributions-title'       => 'Maṫwoṭo slige',
+'deletedcontributions' => 'Maṫwoṭo slige',
+'deletedcontributions-title' => 'Maṫwoṭo slige',
 'sp-deletedcontributions-contribs' => 'Maṫwoṭo',
 
 # Special:LinkSearch
-'linksearch-ok'   => 'Krax',
+'linksearch-ok' => 'Krax',
 'linksearch-line' => '$1 masro yo b$2',
 
 # Special:ListUsers
@@ -589,183 +589,183 @@ The description on its [$2 file description page] there is shown below.',
 'newuserlogpage' => 'User creation log',
 
 # Special:ListGroupRights
-'listgrouprights-group'    => 'Gudo',
-'listgrouprights-rights'   => 'Ḥaqat',
+'listgrouprights-group' => 'Gudo',
+'listgrouprights-rights' => 'Ḥaqat',
 'listgrouprights-helppage' => 'Help: Ḥaqat diGudo',
-'listgrouprights-members'  => '(Lista daHadome)',
+'listgrouprights-members' => '(Lista daHadome)',
 
 # E-mail user
-'emailuser'     => 'Kṭaw Email luHadomano.',
+'emailuser' => 'Kṭaw Email luHadomano.',
 'emailusername' => 'Işme duHadomo:',
-'emailfrom'     => 'Men:',
-'emailto'       => 'Lwoṭ:',
-'emailmessage'  => 'Ṫebo:',
+'emailfrom' => 'Men:',
+'emailto' => 'Lwoṭ:',
+'emailmessage' => 'Ṫebo:',
 
 # Watchlist
-'watchlist'         => 'My watchlist',
-'mywatchlist'       => 'My watchlist',
-'watchlistfor2'     => 'L$1 $2',
-'watch'             => 'Watch',
-'unwatch'           => 'Unwatch',
+'watchlist' => 'My watchlist',
+'mywatchlist' => 'My watchlist',
+'watchlistfor2' => 'L$1 $2',
+'watch' => 'Watch',
+'unwatch' => 'Unwatch',
 'watchlist-details' => '{{PLURAL:$1|$1 page|$1 pages}} on your watchlist, not counting talk pages.',
-'wlshowlast'        => 'Maḥway li aŞuḥlofe dıtsimi meqım $1 Sa³ayat $2 Yawme $3',
+'wlshowlast' => 'Maḥway li aŞuḥlofe dıtsimi meqım $1 Sa³ayat $2 Yawme $3',
 'watchlist-options' => 'Watchlist options',
 
 # Delete
 'actioncomplete' => 'uDuboro kamıl',
-'actionfailed'   => 'Action failed',
-'dellogpage'     => 'Deletion log',
+'actionfailed' => 'Action failed',
+'dellogpage' => 'Deletion log',
 
 # Rollback
 'rollbacklink' => 'rollback',
 
 # Protect
-'protectlogpage'   => 'Protection log',
+'protectlogpage' => 'Protection log',
 'protectedarticle' => 'mastar "[[$1]]"',
 
 # Undelete
-'undeletelink'              => 'view/restore',
-'undeleteviewlink'          => 'ḥur',
-'undelete-search-submit'    => 'Krax',
+'undeletelink' => 'view/restore',
+'undeleteviewlink' => 'ḥur',
+'undelete-search-submit' => 'Krax',
 'undelete-show-file-submit' => 'Eh',
 
 # Namespace form on various pages
-'namespace'      => 'Dukṭo luIşmo',
-'invert'         => 'Invert selection',
+'namespace' => 'Dukṭo luIşmo',
+'invert' => 'Invert selection',
 'blanknamespace' => '(Rişoyto)',
 
 # Contributions
-'contributions'       => 'Maṫwoṭo duHadomo:',
+'contributions' => 'Maṫwoṭo duHadomo:',
 'contributions-title' => 'Maṫwoṭo d$1',
-'mycontris'           => 'aMaṫwoṭayḍi',
-'contribsub2'         => 'd$1 ($2)',
-'uctop'               => '(ḥaroyo)',
-'month'               => 'muYarḥo',
-'year'                => 'hul iŞato:',
+'mycontris' => 'aMaṫwoṭayḍi',
+'contribsub2' => 'd$1 ($2)',
+'uctop' => '(ḥaroyo)',
+'month' => 'muYarḥo',
+'year' => 'hul iŞato:',
 
-'sp-contributions-newbies'  => 'Bes maḥway Maṫwoṭo dHadome ḥaṭe',
+'sp-contributions-newbies' => 'Bes maḥway Maṫwoṭo dHadome ḥaṭe',
 'sp-contributions-blocklog' => 'Block log',
-'sp-contributions-deleted'  => 'Maṫwoṭo slige',
-'sp-contributions-uploads'  => 'Fayl masalqo',
-'sp-contributions-logs'     => 'logs',
-'sp-contributions-talk'     => 'Mamlo',
-'sp-contributions-search'   => 'Krax Maṫwoṭo',
+'sp-contributions-deleted' => 'Maṫwoṭo slige',
+'sp-contributions-uploads' => 'Fayl masalqo',
+'sp-contributions-logs' => 'logs',
+'sp-contributions-talk' => 'Mamlo',
+'sp-contributions-search' => 'Krax Maṫwoṭo',
 'sp-contributions-username' => 'IP-Adres aw Işme duHadmomo:',
-'sp-contributions-toponly'  => 'Only show edits that are latest revisions',
-'sp-contributions-submit'   => 'Krax',
+'sp-contributions-toponly' => 'Only show edits that are latest revisions',
+'sp-contributions-submit' => 'Krax',
 
 # What links here
-'whatlinkshere'            => 'Asirwoṭo biFaṭaṭe',
-'whatlinkshere-title'      => 'Faṭoṭe dkitte Asiruṭo 3am"$1"',
-'whatlinkshere-page'       => 'Faṭo',
-'linkshere'                => "aFaṭoṭani masre ne 3am '''[[:$1]]''':",
-'nolinkshere'              => "Layto Faṭoṭe dkitte Asiruṭo 3am '''[[:$1]]'''.",
-'isredirect'               => 'redirect page',
-'istemplate'               => 'transclusion',
-'isimage'                  => 'Asiruṭo duFayl',
-'whatlinkshere-prev'       => '{{PLURAL:$1|meqımtır|$1 meqımtır}}',
-'whatlinkshere-next'       => '{{PLURAL:$1|ḥreno|$1 ḥrene}}',
-'whatlinkshere-links'      => '← Asirwoṭo',
+'whatlinkshere' => 'Asirwoṭo biFaṭaṭe',
+'whatlinkshere-title' => 'Faṭoṭe dkitte Asiruṭo 3am"$1"',
+'whatlinkshere-page' => 'Faṭo',
+'linkshere' => "aFaṭoṭani masre ne 3am '''[[:$1]]''':",
+'nolinkshere' => "Layto Faṭoṭe dkitte Asiruṭo 3am '''[[:$1]]'''.",
+'isredirect' => 'redirect page',
+'istemplate' => 'transclusion',
+'isimage' => 'Asiruṭo duFayl',
+'whatlinkshere-prev' => '{{PLURAL:$1|meqımtır|$1 meqımtır}}',
+'whatlinkshere-next' => '{{PLURAL:$1|ḥreno|$1 ḥrene}}',
+'whatlinkshere-links' => '← Asirwoṭo',
 'whatlinkshere-hideredirs' => '$1 redirects',
-'whatlinkshere-hidetrans'  => '$1 transclusions',
-'whatlinkshere-hidelinks'  => '$1 Asirwoṭo',
+'whatlinkshere-hidetrans' => '$1 transclusions',
+'whatlinkshere-hidelinks' => '$1 Asirwoṭo',
 'whatlinkshere-hideimages' => '$1 Asiruṭo duFayl',
-'whatlinkshere-filters'    => 'Filtrat',
+'whatlinkshere-filters' => 'Filtrat',
 
 # Block/unblock
-'ipboptions'               => '2 Sa³ayat:2 hours,1 Yawmo:1 day,3 Yawme:3 days,1 Şabṭo:1 week,2 Şabe:2 weeks,1 Yarḥo:1 month,3 Yarḥe:3 months,6 Yarḥe :6 months,1 Şato:1 year,indefinite:infinite',
-'ipblocklist'              => 'Blocked users',
-'ipblocklist-submit'       => 'Krax',
-'blocklink'                => 'Maḥram',
-'unblocklink'              => 'unblock',
-'change-blocklink'         => 'change block',
-'contribslink'             => 'Maṫwoṭo',
-'blocklogpage'             => 'Block log',
-'blocklogentry'            => 'blocked [[$1]] with an expiry time of $2 $3',
+'ipboptions' => '2 Sa³ayat:2 hours,1 Yawmo:1 day,3 Yawme:3 days,1 Şabṭo:1 week,2 Şabe:2 weeks,1 Yarḥo:1 month,3 Yarḥe:3 months,6 Yarḥe :6 months,1 Şato:1 year,indefinite:infinite',
+'ipblocklist' => 'Blocked users',
+'ipblocklist-submit' => 'Krax',
+'blocklink' => 'Maḥram',
+'unblocklink' => 'unblock',
+'change-blocklink' => 'change block',
+'contribslink' => 'Maṫwoṭo',
+'blocklogpage' => 'Block log',
+'blocklogentry' => 'blocked [[$1]] with an expiry time of $2 $3',
 'block-log-flags-nocreate' => 'account creation disabled',
 
 # Move page
 'movelogpage' => 'Move log',
-'revertmove'  => 'revert',
+'revertmove' => 'revert',
 
 # Export
 'export' => 'Mofaq iFaṭaṭe',
 
 # Namespace 8 related
-'allmessages'               => 'Ṫebo duSistem dMEdiaWiki',
-'allmessagesname'           => 'Işmo',
-'allmessagesdefault'        => 'Syomo standard',
-'allmessages-language'      => 'Leşono',
+'allmessages' => 'Ṫebo duSistem dMEdiaWiki',
+'allmessagesname' => 'Işmo',
+'allmessagesdefault' => 'Syomo standard',
+'allmessages-language' => 'Leşono',
 'allmessages-filter-submit' => 'Zux',
 
 # Thumbnails
-'thumbnail-more'  => 'Rabtır',
+'thumbnail-more' => 'Rabtır',
 'thumbnail_error' => 'Error creating thumbnail: $1',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage'             => 'iFaṭaṭyḍox',
-'tooltip-pt-mytalk'               => 'iFaṭayḍux duDroşo',
-'tooltip-pt-preferences'          => 'a3ayaratayḍux',
-'tooltip-pt-watchlist'            => 'Lista dFaṭoṭe dkib³at mşaḥılfat',
-'tooltip-pt-mycontris'            => 'Lista daMaṫwoṭayḍox',
-'tooltip-pt-login'                => 'İnaqa demqaydat ruḥox ṫawo yo, elo letat mejbur',
-'tooltip-pt-logout'               => 'Nfoqo',
-'tooltip-ca-talk'                 => 'Droşo 3al iFaṭo daḤbişoṭo',
-'tooltip-ca-edit'                 => 'Kibux mşaḥılfat iFaṭaṭe, elo bo³o msta³mal uZra³lo duQontrol meqım demqaydat iFaṭo',
-'tooltip-ca-addsection'           => 'Bday Fusoqo ḥaṭo',
-'tooltip-ca-viewsource'           => 'This page is protected.
+'tooltip-pt-userpage' => 'iFaṭaṭyḍox',
+'tooltip-pt-mytalk' => 'iFaṭayḍux duDroşo',
+'tooltip-pt-preferences' => 'a3ayaratayḍux',
+'tooltip-pt-watchlist' => 'Lista dFaṭoṭe dkib³at mşaḥılfat',
+'tooltip-pt-mycontris' => 'Lista daMaṫwoṭayḍox',
+'tooltip-pt-login' => 'İnaqa demqaydat ruḥox ṫawo yo, elo letat mejbur',
+'tooltip-pt-logout' => 'Nfoqo',
+'tooltip-ca-talk' => 'Droşo 3al iFaṭo daḤbişoṭo',
+'tooltip-ca-edit' => 'Kibux mşaḥılfat iFaṭaṭe, elo bo³o msta³mal uZra³lo duQontrol meqım demqaydat iFaṭo',
+'tooltip-ca-addsection' => 'Bday Fusoqo ḥaṭo',
+'tooltip-ca-viewsource' => 'This page is protected.
 You can view its source',
-'tooltip-ca-history'              => 'Past revisions of this page',
-'tooltip-ca-protect'              => 'Mastar iFaṭaṭe',
-'tooltip-ca-delete'               => 'Slag iFaṭaṭe',
-'tooltip-ca-move'                 => 'Mataxar iFaṭaṭe',
-'tooltip-ca-watch'                => 'Add this page to your watchlist',
-'tooltip-ca-unwatch'              => 'Remove this page from your watchlist',
-'tooltip-search'                  => 'Krax{{SITENAME}}',
-'tooltip-search-go'               => 'Zux liFaṭo dkitla tam uIşmano.',
-'tooltip-search-fulltext'         => 'Krax uSyomano baFaṭoṭe',
-'tooltip-p-logo'                  => 'Z³ar iFaṭo rişoyto',
-'tooltip-n-mainpage'              => 'Z³ar iFaṭo rişoyto',
-'tooltip-n-mainpage-description'  => 'Z³ar iFaṭo rişoyto',
-'tooltip-n-portal'                => '3al iProja; mın komisam u ayko u ayko ne a medone.',
-'tooltip-n-currentevents'         => 'Find background information on current events',
-'tooltip-n-recentchanges'         => 'Lista daŞuḥlofe ḥaroye kulle',
-'tooltip-n-randompage'            => 'Ftaḥ Faṭo gedşonoyto',
-'tooltip-n-help'                  => 'Maḥway iFaṭo du3udrono',
-'tooltip-t-whatlinkshere'         => 'Lista daFaṭoṭe kulle dkitte Asiruṭo lerke',
-'tooltip-t-recentchangeslinked'   => 'Şuḥlofe ḥaroye bFaṭoṭe dkitte Asiruṭo lerke',
-'tooltip-feed-atom'               => 'Atom feed diFaṭaṭe',
-'tooltip-t-contributions'         => 'Lista daMaṫwoṭo duHadomano',
-'tooltip-t-emailuser'             => 'Mşadar Email luHadomano',
-'tooltip-t-upload'                => 'Mosaq aFayls',
-'tooltip-t-specialpages'          => 'Lista daFaṭoṭe dilonoye kulle.',
-'tooltip-t-print'                 => 'Printable version of this page',
-'tooltip-t-permalink'             => 'Asiruṭo aminoyto liFaṭaṭe',
-'tooltip-ca-nstab-main'           => 'Maḥway iFaṭo daḤbişoṭo',
-'tooltip-ca-nstab-user'           => 'Maḥway iFaṭo duHadomo',
-'tooltip-ca-nstab-special'        => 'Haṭe Faṭo dilonoyto yo, laybux mşaḥalfatla',
-'tooltip-ca-nstab-project'        => 'Maḥway iFaṭo diProja',
-'tooltip-ca-nstab-image'          => 'Maḥway iFaṭo duFayl',
-'tooltip-ca-nstab-template'       => 'View the template',
-'tooltip-ca-nstab-category'       => 'Maḥway iFaṭo daSedre',
-'tooltip-minoredit'               => 'Mark this as a minor edit',
-'tooltip-save'                    => 'Mqayad uŞuḥlofano',
-'tooltip-preview'                 => 'Preview your changes, please use this before saving!',
-'tooltip-diff'                    => 'Maḥway li aŞuḥlofe buSyomano',
+'tooltip-ca-history' => 'Past revisions of this page',
+'tooltip-ca-protect' => 'Mastar iFaṭaṭe',
+'tooltip-ca-delete' => 'Slag iFaṭaṭe',
+'tooltip-ca-move' => 'Mataxar iFaṭaṭe',
+'tooltip-ca-watch' => 'Add this page to your watchlist',
+'tooltip-ca-unwatch' => 'Remove this page from your watchlist',
+'tooltip-search' => 'Krax{{SITENAME}}',
+'tooltip-search-go' => 'Zux liFaṭo dkitla tam uIşmano.',
+'tooltip-search-fulltext' => 'Krax uSyomano baFaṭoṭe',
+'tooltip-p-logo' => 'Z³ar iFaṭo rişoyto',
+'tooltip-n-mainpage' => 'Z³ar iFaṭo rişoyto',
+'tooltip-n-mainpage-description' => 'Z³ar iFaṭo rişoyto',
+'tooltip-n-portal' => '3al iProja; mın komisam u ayko u ayko ne a medone.',
+'tooltip-n-currentevents' => 'Find background information on current events',
+'tooltip-n-recentchanges' => 'Lista daŞuḥlofe ḥaroye kulle',
+'tooltip-n-randompage' => 'Ftaḥ Faṭo gedşonoyto',
+'tooltip-n-help' => 'Maḥway iFaṭo du3udrono',
+'tooltip-t-whatlinkshere' => 'Lista daFaṭoṭe kulle dkitte Asiruṭo lerke',
+'tooltip-t-recentchangeslinked' => 'Şuḥlofe ḥaroye bFaṭoṭe dkitte Asiruṭo lerke',
+'tooltip-feed-atom' => 'Atom feed diFaṭaṭe',
+'tooltip-t-contributions' => 'Lista daMaṫwoṭo duHadomano',
+'tooltip-t-emailuser' => 'Mşadar Email luHadomano',
+'tooltip-t-upload' => 'Mosaq aFayls',
+'tooltip-t-specialpages' => 'Lista daFaṭoṭe dilonoye kulle.',
+'tooltip-t-print' => 'Printable version of this page',
+'tooltip-t-permalink' => 'Asiruṭo aminoyto liFaṭaṭe',
+'tooltip-ca-nstab-main' => 'Maḥway iFaṭo daḤbişoṭo',
+'tooltip-ca-nstab-user' => 'Maḥway iFaṭo duHadomo',
+'tooltip-ca-nstab-special' => 'Haṭe Faṭo dilonoyto yo, laybux mşaḥalfatla',
+'tooltip-ca-nstab-project' => 'Maḥway iFaṭo diProja',
+'tooltip-ca-nstab-image' => 'Maḥway iFaṭo duFayl',
+'tooltip-ca-nstab-template' => 'View the template',
+'tooltip-ca-nstab-category' => 'Maḥway iFaṭo daSedre',
+'tooltip-minoredit' => 'Mark this as a minor edit',
+'tooltip-save' => 'Mqayad uŞuḥlofano',
+'tooltip-preview' => 'Preview your changes, please use this before saving!',
+'tooltip-diff' => 'Maḥway li aŞuḥlofe buSyomano',
 'tooltip-compareselectedversions' => 'See the differences between the two selected revisions of this page',
-'tooltip-watch'                   => 'Add this page to your watchlist',
-'tooltip-rollback'                => '"Rollback" reverts edit(s) to this page of the last contributor in one click',
-'tooltip-undo'                    => '"Undo" reverts this edit and opens the edit form in preview mode. It allows adding a reason in the summary.',
-'tooltip-summary'                 => 'Enter a short summary',
+'tooltip-watch' => 'Add this page to your watchlist',
+'tooltip-rollback' => '"Rollback" reverts edit(s) to this page of the last contributor in one click',
+'tooltip-undo' => '"Undo" reverts this edit and opens the edit form in preview mode. It allows adding a reason in the summary.',
+'tooltip-summary' => 'Enter a short summary',
 
 # Browsing diffs
 'previousdiff' => '← Şuḥlofo 3atiqo',
-'nextdiff'     => 'Hiç lo mşaḥalfat →',
+'nextdiff' => 'Hiç lo mşaḥalfat →',
 
 # Media information
 'file-info-size' => '$1 × $2 pixels, file size: $3, MIME type: $4',
-'file-nohires'   => 'No higher resolution available.',
-'svg-long-desc'  => 'SCG Fayl, Rabuṭo $1 × $2 pixel, Rabuṭo duFayl: $3',
+'file-nohires' => 'No higher resolution available.',
+'svg-long-desc' => 'SCG Fayl, Rabuṭo $1 × $2 pixel, Rabuṭo duFayl: $3',
 'show-big-image' => 'Tam faṥiḥ',
 
 # Special:NewFiles
@@ -773,7 +773,7 @@ You can view its source',
 
 # Video information, used by Language::formatTimePeriod() to format lengths in the above messages
 'seconds' => '{{PLURAL:$1|$1 Ṥaniye|$1 Ṥaniyat}}',
-'ago'     => 'meqım $1',
+'ago' => 'meqım $1',
 
 # Bad image list
 'bad_image_list' => 'The format is as follows:
@@ -783,8 +783,8 @@ The first link on a line must be a link to a bad file.
 Any subsequent links on the same line are considered to be exceptions, i.e. pages where the file may occur inline.',
 
 # Metadata
-'metadata'        => 'Metadata',
-'metadata-help'   => 'This file contains additional information, probably added from the digital camera or scanner used to create or digitize it.
+'metadata' => 'Metadata',
+'metadata-help' => 'This file contains additional information, probably added from the digital camera or scanner used to create or digitize it.
 If the file has been modified from its original state, some details may not fully reflect the modified file.',
 'metadata-fields' => 'Image metadata fields listed in this message will be included on image page display when the metadata table is collapsed.
 Others will be hidden by default.
@@ -803,23 +803,23 @@ Others will be hidden by default.
 * gpsaltitude',
 
 # EXIF tags
-'exif-writer'          => 'Kaṭowo',
-'exif-languagecode'    => 'Leşono',
+'exif-writer' => 'Kaṭowo',
+'exif-languagecode' => 'Leşono',
 'exif-cameraownername' => 'uMoro diQamera',
 
 # External editor support
-'edit-externally'      => 'Edit this file using an external application',
+'edit-externally' => 'Edit this file using an external application',
 'edit-externally-help' => '(See the [//www.mediawiki.org/wiki/Manual:External_editors setup instructions] for more information)',
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'kulle',
 'namespacesall' => 'kulle',
-'monthsall'     => 'kulle',
+'monthsall' => 'kulle',
 
 # Watchlist editing tools
 'watchlisttools-view' => 'View relevant changes',
 'watchlisttools-edit' => 'View and edit watchlist',
-'watchlisttools-raw'  => 'Edit raw watchlist',
+'watchlisttools-raw' => 'Edit raw watchlist',
 
 # Core parser functions
 'duplicate-defaultsort' => '\'\'\'Warning:\'\'\' Default sort key "$2" overrides earlier default sort key "$1".',
@@ -858,24 +858,24 @@ Others will be hidden by default.
 iFaṭaṭe u3do kitla Qaṫre.',
 
 # HTML forms
-'htmlform-submit'              => 'Mqayad',
+'htmlform-submit' => 'Mqayad',
 'htmlform-selectorother-other' => 'Ḥrene',
 
 # Feedback
 'feedback-message' => 'Ṫebo:',
-'feedback-cancel'  => 'Mbaṫel',
+'feedback-cancel' => 'Mbaṫel',
 
 # API errors
 'api-error-unknownerror' => 'Fawdo nuxroyo: $1',
 
 # Durations
-'duration-seconds'   => '$1 {{PLURAL:$1|Ṥaniye|Ṥaniyat}}',
-'duration-minutes'   => '$1 {{PLURAL:$1|Qaṫınto|Qaṫınoṭo}}',
-'duration-hours'     => '$1 {{PLURAL:$1|Sa³aye|Sa³ayat}}',
-'duration-days'      => '$1 {{PLURAL:$1|Yawmo|Yawme}}',
-'duration-weeks'     => '$1 {{PLURAL:$1|Şabṭo|Şabe}}',
-'duration-years'     => '$1 {{PLURAL:$1|Şato|Şnaye}}',
-'duration-decades'   => '$1 {{PLURAL:$1|decade|decades}}',
+'duration-seconds' => '$1 {{PLURAL:$1|Ṥaniye|Ṥaniyat}}',
+'duration-minutes' => '$1 {{PLURAL:$1|Qaṫınto|Qaṫınoṭo}}',
+'duration-hours' => '$1 {{PLURAL:$1|Sa³aye|Sa³ayat}}',
+'duration-days' => '$1 {{PLURAL:$1|Yawmo|Yawme}}',
+'duration-weeks' => '$1 {{PLURAL:$1|Şabṭo|Şabe}}',
+'duration-years' => '$1 {{PLURAL:$1|Şato|Şnaye}}',
+'duration-decades' => '$1 {{PLURAL:$1|decade|decades}}',
 'duration-centuries' => '$1 {{PLURAL:$1|Doro|Dore}}',
 
 );
index c2886b9..bcf74ec 100644 (file)
@@ -969,6 +969,9 @@ $2
 'parser-template-loop-warning' => 'Үрнәкләрдә йомык сылтама табылды: [[$1]]',
 'parser-template-recursion-depth-warning' => '($1) үрнәген рекурсия итеп куллану чиге рөхсәт ителгәннән артып киткән',
 'language-converter-depth-warning' => 'Телләрне үзгәртүләре артык югарыга киткән ($1)',
+'node-count-exceeded-warning' => 'Биттә бәйләү өлешләре артып киткән',
+'expansion-depth-exceeded-category' => 'Ачыклык тирәнлеге зур булган битләр',
+'expansion-depth-exceeded-warning' => 'Биттә кертем чиге артып киткән',
 
 # "Undo" feature
 'undo-success' => 'Үзгәртүдән баш тартып була.
@@ -1418,9 +1421,9 @@ $1",
 'uploadtext' => "Бу форманы кулланып серверга файллар йөкли аласыз. Элегрәк йөкләнелгән файлларны карау өчен [[Special:FileList|йөкләнелгән файллар исемлегенә]] мәрәҗәгать итегез. Шулай ук ул [[Special:Log/upload|йөкләнмәләр исемлегенә]] һәм [[Special:Log/delete|бетерелгән файллар]] исемлегенә дә языла.
 
 Файлны мәкаләгә йөкләү өчен Сез менә бу үрнәкләрне куллана аласыз:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Рәсем.jpg]]</nowiki></tt>''' файлның тулы юрамасын кую өчен;
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Räsem.png|200px|thumb|left|тасвирламасы]]</nowiki></tt>'''  200 пиксельга кадәр киңлектәге  һәм текстның сул ягында, тасвирламасы белән;
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''биттә файлны сүрәтләмичә, бары тик сылтамасын гына кую.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Рәсем.jpg]]</nowiki></code>''' файлның тулы юрамасын кую өчен;
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Räsem.png|200px|thumb|left|тасвирламасы]]</nowiki></code>'''  200 пиксельга кадәр киңлектәге  һәм текстның сул ягында, тасвирламасы белән;
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''биттә файлны сүрәтләмичә, бары тик сылтамасын гына кую.",
 'upload-permitted' => 'Рөхсәт ителгән файл төрләре:$1',
 'upload-preferred' => 'Мөмкин булган файл төрләре:$1',
 'upload-prohibited' => 'Тыелган файл төрләре:$1',
index ac0a7bf..c7681f0 100644 (file)
@@ -1188,9 +1188,9 @@ Ul $1 {{PLURAL:$1|xäreftän}} kübräk bulırğa tieş tügel.',
 'uploadtext' => "Bu formanı qullanıp serverğa fayllar yökli alasız. Elegräk yöklänelgän fayllarnı qaraw öçen [[Special:FileList|Yöklänelgän fayllar isemlegenä]] märäcäğät itegez. Şulay uq ul [[Special:Log/upload|yöklänmälär isemlegenä]] häm [[Special:Log/delete|beterelgän fayllar]] isemlegenä dä yazıla.
 
 Faylnı mäqälägä yökläw öçen Sez menä bu ürnäklärne qullana alasız:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Räsem.jpg]]</nowiki></tt>''' faylnıñ tulı yuramasın quyu öçen;
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Räsem.png|200px|thumb|left|taswirlaması]]</nowiki></tt>'''  200 pikselğa qädär kiñlektäge  häm tekstnıñ sul yağında, taswirlaması belän;
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''bittä faylnı sürätlämiçä, barı tik sıltamasın ğına quyu.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Räsem.jpg]]</nowiki></code>''' faylnıñ tulı yuramasın quyu öçen;
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Räsem.png|200px|thumb|left|taswirlaması]]</nowiki></code>'''  200 pikselğa qädär kiñlektäge  häm tekstnıñ sul yağında, taswirlaması belän;
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''bittä faylnı sürätlämiçä, barı tik sıltamasın ğına quyu.",
 'upload-permitted' => 'Röxsät itelgän fayl törläre:$1',
 'upload-preferred' => 'Mömkin bulğan fayl törläre:$1',
 'upload-prohibited' => 'Tıyılğan fayl törläre:$1',
index d963c42..bf2740e 100644 (file)
@@ -43,7 +43,7 @@ $messages = array(
 'tog-extendwatchlist' => 'كۈچەيتىلگەن كۆزەت تىزىملىكىدە يېقىنقى ئۆزگەرتىشنىلا كۆرسەتمەي بەلكى ھەممە ئۆزگەرتىشنى كۆرسەت',
 'tog-usenewrc' => 'بەت گۇرۇپپىلىنىشىغا ئاساسەن يېقىنقى ئۆزگەرتىش ۋە كۆزەت تىزىمى (JavaScript زۆرۈر)',
 'tog-numberheadings' => 'ماۋزۇغا ئۆزلۈكىدىن تەرتىپ نومۇرى قوش',
-'tog-showtoolbar' => 'تÛ\95ھرÙ\89ر Ù\82Ù\88راÙ\84 Ø³ØªÙ\88Ù\86Ù\89نى كۆرسەت (JavaScript زۆرۈر)',
+'tog-showtoolbar' => 'تÛ\95ھرÙ\89ر Ù\82Ù\88راÙ\84 Ø¨Ø§Ù\84داÙ\82نى كۆرسەت (JavaScript زۆرۈر)',
 'tog-editondblclick' => 'قوش چەككەندە بەت تەھرىرلە (JavaScript زۆرۈر)',
 'tog-editsection' => '[تەھرىر] ئۇلانمىسىنى چېكىپ ئابزاس تەھرىرلەشكە يول قوي',
 'tog-editsectiononrightclick' => 'ماۋزۇنى چاشقىنەكتە ئوڭ چېكىپ ئابزاس تەھرىرلەشكە يول قوي (JavaScript زۆرۈر)',
@@ -62,7 +62,7 @@ $messages = array(
 'tog-enotifminoredits' => 'بەت ۋە ھۆججەت ئازراقلا تەھرىرلەنگەندىمۇ ئېلخەت يوللا',
 'tog-enotifrevealaddr' => 'ئۇقتۇرۇش ئېلخەت تىزىملىكىدە ئېلخەت ئادرېسىمنى ئاشكارىلا',
 'tog-shownumberswatching' => 'بۇ بەتنى كۆزىتىۋاتقان ئىشلەتكۈچى سانىنى كۆرسەت',
-'tog-oldsig' => 'Ù\85Û\95Û\8bجÛ\87ت ئىمزا:',
+'tog-oldsig' => 'Ù\86Û\86Û\8bÛ\95تتÙ\89Ù\83Ù\89 ئىمزا:',
 'tog-fancysig' => 'ئىمزاغا wiki تېكستى سۈپىتىدە مۇئامىلە قىل (ئۆزلۈكىدىن ئۇلانما ھاسىل بولمايدۇ)',
 'tog-externaleditor' => 'كۆڭۈلدىكى ئەھۋالدا سىرتقى تەھرىرلىگۈچ ئىشلىتىدۇ (ئالىي ئىشلەتكۈچىگە تەمىنلىنىدۇ، كومپيۇتېرىڭىزدا بىر قىسىم ئالاھىدە تەڭشەش ئېلىپ بېرىشىڭىز لازىم
 [//www.mediawiki.org/wiki/Manual:External_editors تېخىمۇ كۆپ ئۇچۇر.])',
@@ -79,6 +79,7 @@ $messages = array(
 'tog-ccmeonemails' => 'مەن باشقىلارغا يوللىغان ئېلخەتنى ئۆزەمگىمۇ بىر نۇسخا يوللا',
 'tog-diffonly' => 'تۈزىتىلگەن ئىككى نەشرىنىڭ پەرقىنى سېلىشتۇرغاندا بەت مەزمۇنىنى كۆرسەتمە',
 'tog-showhiddencats' => 'يوشۇرۇن تۈرلەرنى كۆرسەت',
+'tog-noconvertlink' => 'ئۇلانما ماۋزۇ ئالماشتۇرۇشنى چەكلە',
 'tog-norollbackdiff' => 'قايتۇرۇشنى ئىجرا قىلغاندىن كېيىن پەرقنى كۆرسەتمە',
 
 'underline-always' => 'دائىم',
@@ -161,7 +162,10 @@ $messages = array(
 'listingcontinuesabbrev' => 'داۋاملاشتۇر',
 'index-category' => 'ئىندېكسلانغان بەتلەر',
 'noindex-category' => 'ئىندېكسلانمىغان بەتلەر',
-'broken-file-category' => 'بۇزۇلغان ھۆججەتكە ئۇلانغان بەتلەر',
+'broken-file-category' => 'ھۆججەت ئۇلىنىشى بۇزۇلغان بەتلەر',
+'categoryviewer-pagedlinks' => '($1) ($2)',
+
+'linkprefix' => '/^(.*?)([a-zA-Z\\x80-\\xff]+)$/sD',
 
 'about' => 'ھەققىدە',
 'article' => 'مەزمۇن بېتى',
@@ -175,7 +179,7 @@ $messages = array(
 'and' => '&#32;ۋە',
 
 # Cologne Blue skin
-'qbfind' => 'ئىزدە',
+'qbfind' => 'ئىزدە:',
 'qbbrowse' => 'كۆز يۈگۈرت',
 'qbedit' => 'تەھرىر',
 'qbpageoptions' => 'بۇ بەت',
@@ -191,7 +195,7 @@ $messages = array(
 'vector-action-move' => 'يۆتكە',
 'vector-action-protect' => 'قوغدا',
 'vector-action-undelete' => 'ئەسلىگە قايتۇر',
-'vector-action-unprotect' => 'قوغداشنى ئۆزگەرت',
+'vector-action-unprotect' => 'قوغداش ئۆزگەرت',
 'vector-simplesearch-preference' => 'ئالىي ئىزدەش تەكلىپىنى ئاچ (Vector تېرىدىلا)',
 'vector-view-create' => 'قۇر',
 'vector-view-edit' => 'تەھرىر',
@@ -210,7 +214,7 @@ $messages = array(
 'searchbutton' => 'ئىزدە',
 'go' => 'يۆتكەل',
 'searcharticle' => 'يۆتكەل',
-'history' => 'بەت تارىخى',
+'history' => 'بەتنىڭ تارىخى',
 'history_short' => 'تارىخ',
 'updatedmarker' => 'مەن ئالدىنقى قېتىم زىيارەت قىلغاندىن بۇيانقى يېڭىلانغىنى',
 'printableversion' => 'باسقىلى بولىدىغان نەشرى',
@@ -224,11 +228,11 @@ $messages = array(
 'delete' => 'ئۆچۈر',
 'deletethispage' => 'بۇ بەتنى ئۆچۈر',
 'undelete_short' => 'ئۆچۈرۈلگەن {{PLURAL:$1|بىر تەھرىر|$1 تەھرىر}} ئەسلىگە كەلتۈرۈلدى',
-'viewdeleted_short' => '{{PLURAL:$1|بىر ئۆچۈرۈلگەن تەھرىر|$1 ئۆچۈرۈلگەن تەھرىر}}نى كۆرسەت',
+'viewdeleted_short' => '{{PLURAL:$1|بىر ئۆچۈرۈلگەن نەشرى|$1 ئۆچۈرۈلگەن نەشرى}}نى كۆرسەت',
 'protect' => 'قوغدا',
 'protect_change' => 'ئۆزگەرت',
 'protectthispage' => 'بۇ بەتنى قوغدا',
-'unprotect' => 'قوغداشنى ئۆزگەرت',
+'unprotect' => 'قوغداش ئۆزگەرت',
 'unprotectthispage' => 'بۇ بەتنى قوغداشنى ئۆزگەرت',
 'newpage' => 'يېڭى بەت',
 'talkpage' => 'بۇ بەتنىڭ مۇنازىرىسى',
@@ -239,7 +243,7 @@ $messages = array(
 'articlepage' => 'مەزمۇن بېتىنى كۆرسەت',
 'talk' => 'مۇنازىرە',
 'views' => 'كۆرۈنۈش',
-'toolbox' => 'Ù\82Ù\88راÙ\84 Ø³ØªÙ\88Ù\86ى',
+'toolbox' => 'Ù\82Ù\88راÙ\84 Ø³Ø§Ù\86دÛ\87Ù\82ى',
 'userpage' => 'ئىشلەتكۈچى بېتىنى كۆرسەت',
 'projectpage' => 'قۇرۇلۇش بېتىنى كۆرسەت',
 'imagepage' => 'ھۆججەت بېتىنى كۆرسەت',
@@ -277,7 +281,7 @@ $1',
 'disclaimerpage' => 'Project:ئادەتتىكى جاۋابكارلىقنى كەچۈرۈم قىلىش باياناتى',
 'edithelp' => 'تەھرىرلەش ياردىمى',
 'edithelppage' => 'Help:تەھرىرلەۋاتىدۇ',
-'helppage' => 'Help:Ù\85Û\95زÙ\85Û\87Ù\86Ù\89',
+'helppage' => 'Help:Ù\85Û\95زÙ\85Û\87Ù\86Ù\84ار',
 'mainpage' => 'باش بەت',
 'mainpage-description' => 'باش بەت',
 'policy-url' => 'Project:تاكتىكا',
@@ -295,13 +299,20 @@ $1',
 
 [[Special:Version|نەشر بېتى]] نى كۆرۈڭ.',
 
-'ok' => 'جەزملە',
+'ok' => 'ماقۇل',
+'pagetitle-view-mainpage' => '{{SITENAME}}',
+'backlinksubtitle' => '← $1',
 'retrievedfrom' => '"$1" دىن ئېرىشكەن',
 'youhavenewmessages' => 'سىزدە $1 ($2) بار.',
 'newmessageslink' => 'يېڭى ئۇچۇر',
 'newmessagesdifflink' => 'ئاخىرقى ئۆزگەرتىش',
+'youhavenewmessagesfromusers' => 'سىزنىڭ {{PLURAL:$3|باشقا ئىشلەتكۈچى|$3 ئىشلەتكۈچى}} $1  ($2)ڭىز بار.',
+'youhavenewmessagesmanyusers' => 'سىزنىڭ نۇرغۇن ئىشلەتكۈچىدىن كەلگەن $1  ($2) بار.',
+'newmessageslinkplural' => '{{PLURAL:$1|بىر يېڭى |يېڭى ئۇچۇر}}ئۇچۇر',
+'newmessagesdifflinkplural' => 'ئاخىرقى $1 {{PLURAL:$1|ئۆزگەرتىش|ئۆزگەرتىش}}',
 'youhavenewmessagesmulti' => '$1 يېڭى ئۇچۇرىڭىز بار',
 'editsection' => 'تەھرىر',
+'editsection-brackets' => '[$1]',
 'editold' => 'تەھرىر',
 'viewsourceold' => 'مەنبەنى كۆرسەت',
 'editlink' => 'تەھرىر',
@@ -310,7 +321,7 @@ $1',
 'toc' => 'مەزمۇنى',
 'showtoc' => 'كۆرسەت',
 'hidetoc' => 'يوشۇر',
-'collapsible-collapse' => 'قاتلا',
+'collapsible-collapse' => 'ئابزاس ئايرىمىسى يوشۇر',
 'collapsible-expand' => 'ياي',
 'thisisdeleted' => 'كۆرسەت ياكى ئەسلىگە كەلتۈر $1 ؟',
 'viewdeleted' => '$1 كۆرسەت؟',
@@ -322,9 +333,11 @@ $1',
 'site-atom-feed' => '$1 نىڭ Atom قانالى',
 'page-rss-feed' => '"$1" نىڭ RSS قانىلى',
 'page-atom-feed' => '"$1" نىڭ Atom قانىلى',
+'feed-atom' => 'ئاتوم',
+'feed-rss' => 'RSS',
 'red-link-title' => '$1 (بەت مەۋجۇد ئەمەس)',
-'sort-descending' => 'كېمەيگۈچى تەرتىپتە تەرتىپلە',
-'sort-ascending' => 'ئۆسكۈچى تەرتىپتە تەرتىپلە',
+'sort-descending' => 'كېمەيگۈچى تەرتىپ',
+'sort-ascending' => 'ئۆسكۈچى تەرتىپ',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'بەت',
@@ -397,11 +410,14 @@ MySQL قايتۇرغان خاتالىقى"$3: $4"',
 'cannotdelete' => 'بەلگىلەنگەن "$1" ھۆججەت ياكى بەتنى ئۆچۈرەلمىدى.
 
 ئۇ باشقىلار تەرىپىدىن ئۆچۈرۈلگەن بولۇشى مۇمكىن.',
+'cannotdelete-title' => '"$1" بەتنى ئۆچۈرەلمەيدۇ',
+'delete-hook-aborted' => 'ئۆچۈرۈش ئىلمەك تەرىپىدىن چېكىندۈرۈلدى
+ئۇ سەۋەبىنى تەمىنلىمىدى.',
 'badtitle' => 'خاتا ماۋزۇ',
 'badtitletext' => 'ئىلتىماس قىلىنغان بەتنىڭ ماۋزۇسى ئىناۋەتسىز، مەۋجۇد ئەمەس، تىل ھالقىغان ياكى wiki ئۇلانمىسىدىن ھالقىغان ماۋزۇ خاتالىقى.
 ئۇ بىر ياكى بىر قانچە ماۋزۇغا ئىشلەتكىلى بولمايدىغان ھەرپنى ئۆز ئىچىگە ئالغان.',
-'perfcached' => 'تۆۋەندىكىسى غەملەك سانلىق مەلۇماتى، شۇڭلاشقا يېڭى بولماسلىقى مۇمكىن. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
-'perfcachedts' => 'تۆۋەندىكىسى غەملەك سانلىق مەلۇماتى، ئاخىرقى يېڭىلانغان ۋاقتى $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
+'perfcached' => 'تۆۋەندىكىسى غەملەك سانلىق مەلۇماتى، شۇڭلاشقا يېڭى بولماسلىقى مۇمكىن. ئەڭ كۆپ بولغاندا غەملەكتىكى {{PLURAL:$1|بىر تۈر|$1 تۈر}} نى ئىشلەتكىلى بولىدۇ.',
+'perfcachedts' => 'تۆۋەندىكىسى غەملەك سانلىق مەلۇماتى، ئاخىرقى يېڭىلانغان ۋاقتى $1. ئەڭ كۆپ بولغاندا غەملەكتىكى {{PLURAL:$1|بىر تۈر|$1 تۈر}} نى ئىشلەتكىلى بولىدۇ.',
 'querypage-no-updates' => 'نۆۋەتتە مەزكۇر بەتنى يېڭىلاش چەكلەندى.
 
 بۇ جايدىكى سانلىق مەلۇماتنى دەرھال يېڭىلىغىلى بولمايدۇ.',
@@ -411,12 +427,14 @@ MySQL قايتۇرغان خاتالىقى"$3: $4"',
 
 سۈرۈشتۈرۈش: $2',
 'viewsource' => 'مەنبەنى كۆرسەت',
+'viewsource-title' => '$1 نىڭ ئەسلى كودىنى كۆرسەت',
 'actionthrottled' => 'مەشغۇلات چەكلەندى',
 'actionthrottledtext' => 'ئەخلەتكە قارشى تۇرۇش ئۆلچىمىگە ئاساسەن، سىز بۇ بىر بۆلۈك قىسقا ۋاقىتتا بۇ مەشغۇلاتنى ئېلىپ بېرىشىڭىزنى چەكلىدى، ئەمما سىز بۇ چەكتىن ئېشىپ كەتتىڭىز.
 
 بىر قانچە مىنۇتتىن كېيىن قايتا سىناڭ.',
 'protectedpagetext' => 'بۇ بەت تەھرىرلەشنىڭ ئالدىنى ئېلىش ئۈچۈن قۇلۇپلانغان.',
 'viewsourcetext' => 'سىز بۇ بەتنى ئەسلى كودىنى كۆرەلەيسىز ۋە كۆچۈرەلەيسىز:',
+'viewyourtext' => "بۇ بەتتىكى '''تەھرىرلىگەنلىرىڭىز'''نىڭ ئەسلى كودىنى كۆرۈپ كۆچۈرەلەيسىز.",
 'protectedinterface' => 'بۇ بەت يۇمشاق دېتالنىڭ كۆرۈنۈش تېكستىنى تەمىنلىگەن، خالىغانچە تەھرىرلەشتىن ساقلىنىش ئۈچۈن قۇلۇپلانغان.',
 'editinginterface' => "'''ئاگاھلاندۇرۇش:''' سىز تەھرىرلەۋاتقان بەت يۇمشاق دېتالنىڭ كۆرۈنۈش تېكستىگە ئىشلىتىلىدۇ.
 
@@ -434,6 +452,13 @@ $2',
 'titleprotected' => 'بۇ ماۋزۇ قايتا قۇرۇشتىن ساقلىنىش ئۈچۈن [[User:$1|$1]] تەرىپىدىن قوغدالغان.
 
 سەۋەبى"\'\'$2\'\'" .',
+'filereadonlyerror' => 'بۇ ھۆججەت "$1" نى ئۆزگەرتەلمەيدۇ چۈنكى ھۆججەت خەزىنە "$2" سى پەقەت ئوقۇشقىلا بولىدىغان ھالەتتە.
+
+قۇلۇپلىغان باشقۇرغۇچى تەمىنلىگەن چۈشەندۈرۈش: "$3".',
+'invalidtitle-knownnamespace' => 'ئات بوشلۇقى "$2" ۋە تېكىست "$3" نى ئىشلەتكەن ئىناۋەتسىز ماۋزۇ',
+'invalidtitle-unknownnamespace' => 'يوچۇن ئات بوشلۇقى نومۇرى $1 ۋە تېكىست "$2" نى ئىشلەتكەن ئىناۋەتسىز ماۋزۇ',
+'exception-nologin' => 'تىزىمغا كىرمىدى',
+'exception-nologin-text' => 'بۇ بەت ياكى مەشغۇلات مەزكۇر ۋىكىغا تىزىمغا كىرىشىڭىزنى تەلەپ قىلىدۇ.',
 
 # Virus scanner
 'virus-badscanner' => "بۇزۇلغان سەپلىمە: نامەلۇم ۋىرۇسخور: ''$1''",
@@ -454,28 +479,29 @@ $2',
 'yourpassword' => 'ئىم:',
 'yourpasswordagain' => 'ئاچقۇچنى قايتا بەسىڭ:',
 'remembermypassword' => 'بۇ كومپيۇتېردا كىرگىنىمنى ئەستە ساقلا(ئەڭ ئۇزۇن بولغاندا $1 {{PLURAL:$1|كۈن|كۈن}})',
-'securelogin-stick-https' => 'تÙ\89زÙ\89Ù\85غا Ù\83Ù\89رگÛ\95Ù\86دÙ\89Ù\86 Ù\83Û\90Ù\8aÙ\89Ù\86 HTTPS Ø¨Ø§ØºÙ\84Ù\89Ù\86Ù\89Ø´Ù\89Ù\86Ù\89 Ø¦Ù\89Ø´Ù\84Û\95ت',
+'securelogin-stick-https' => 'تÙ\89زÙ\89Ù\85غا Ù\83Ù\89رگÛ\95Ù\86دÙ\89Ù\86 Ù\83Û\90Ù\8aÙ\89Ù\86 HTTPS Ø¨Ø§ØºÙ\84Ù\89Ù\86Ù\89Ø´Ù\86Ù\89 Ø¯Ø§Û\8bاÙ\85Ù\84اشتÛ\87ر',
 'yourdomainname' => 'دائىرە ئاتىڭىز:',
+'password-change-forbidden' => 'بۇ ۋىكىدىكى ئىمنى ئۆزگەرتەلمەيسىز.',
 'externaldberror' => 'بۇ سانداننى دەلىللەش خاتالىقى ياكى سىرتقى ھېساباتىڭىزنى يېڭىلاشنى چەكلىگەنلىكتىن بولغان بولۇشى مۇمكىن.',
 'login' => 'تىزىمغا كىر',
-'nav-login-createaccount' => 'كىر / ھېسابات قۇر',
+'nav-login-createaccount' => 'تىزىمغا كىر/ھېسابات قۇر',
 'loginprompt' => 'سىز cookies نى قوزغاتقاندىلا ئاندىن   {{SITENAME}} غا كىرەلەيسىز.',
 'userlogin' => 'تىزىمغا كىر/ھېسابات قۇر',
 'userloginnocreate' => 'تىزىمغا كىر',
 'logout' => 'تىزىمدىن چىق',
 'userlogout' => 'تىزىمدىن چىق',
-'notloggedin' => 'تىزىمغا كىرمىگەن',
+'notloggedin' => 'تىزىمغا كىرمىدى',
 'nologin' => "ھېساباتىڭىز يوقمۇ؟ '''$1'''.",
 'nologinlink' => 'ھېساباتتىن بىرنى قۇر',
 'createaccount' => 'ھېسابات قۇر',
 'gotaccount' => "ھېساباتىم بار؟ '''$1'''.",
 'gotaccountlink' => 'تىزىمغا كىر',
-'userlogin-resetlink' => 'تىزىمغا كىرىش تەپسىلاتىڭىزنى ئۇنۇتتىڭىز؟',
+'userlogin-resetlink' => 'تىزىمغا كىرىش تەپسىلاتىنى ئۇنۇتتىڭىز؟',
 'createaccountmail' => 'ئېلخەتتە',
 'createaccountreason' => 'سەۋەب:',
 'badretype' => 'سىز كىرگۈزگەن ئىم ماس كەلمىدى.',
-'userexists' => 'كىرگۈزگەن ئىشلەتكۈچى ئاتى مەۋجۇد.
-باشقا ئاتتىن بىرنى تاللاڭ.',
+'userexists' => 'كىرگۈزگەن ئىشلەتكۈچى ئاتى ئىشلىتىلىۋاتىدۇ.
+باشقا ئاتنى تاللاڭ.',
 'loginerror' => 'تىزىمغا كىرىش خاتالىقى',
 'createaccounterror' => 'ھېسابات قۇرالمىدى: $1',
 'nocookiesnew' => 'ئىشلەتكۈچى ھېساباتى قۇرۇلدى ئەمما سىز تېخى كىرمىدىڭىز..
@@ -490,15 +516,16 @@ $2',
 سىز cookies نى چەكلىگەن.
 
 ئۇنى قوزغىتىپ قايتا سىناڭ.',
-'nocookiesfornew' => 'بۇ ئىشلەتكۈچى ھېساباتى قۇرۇلمىدى، ئۇنىڭ مەنبەسىنى جەزملىيەلمەيمىز.
-سىز cookie نى قوزغاتقانلىقىڭىزنى جەزملەپ، بۇ بەتنى قايتا يۈكلەپ ئاندىن قايتا سىناڭ.',
+'nocookiesfornew' => 'ئىشلەتكۈچى ھېساباتى قۇرۇلمىدى، ئۇنىڭ مەنبەسىنى جەزملىيەلمەيمىز.
+cookies نى قوزغاتقانلىقىڭىزنى جەزملەڭ، بۇ بەتنى قايتا يۈكلەپ ئاندىن قايتا سىناڭ.',
+'nocookiesforlogin' => '{{int:nocookieslogin}}',
 'noname' => 'سىز تېخى ئىناۋەتلىك ئىشلەتكۈچى ئاتىنى بەلگىلىمىدىڭىز.',
 'loginsuccesstitle' => 'تىزىمغا كىرىش مۇۋەپپەقىيەتلىك',
 'loginsuccess' => "'''سىز {{SITENAME}} غا \"\$1\" سالاھىيىتىدە كىردىڭىز.'''",
 'nosuchuser' => '"$1" ئاتلىق ئىشلەتكۈچىنى تاپالمىدى.
 ئىشلەتكۈچى ئاتىنى تەكشۈرۈڭ.
 ياكى [[Special:UserLogin/signup|يېڭى ھېسابات قۇرۇڭ]].',
-'nosuchusershort' => ' "$1" ئاتلىق ئىشلەتكۈچى يوق.
+'nosuchusershort' => '"$1" ئاتلىق ئىشلەتكۈچى يوق.
 كىرگۈزگىنىڭىزنى تەكشۈرۈڭ.',
 'nouserspecified' => 'ئىشلەتكۈچى ئاتىدىن بىرنى بەلگىلەڭ.',
 'login-userblocked' => 'بۇ ئىشلەتكۈچى چەكلەنگەن. تىزىمغا كىرىشكە يول قويۇلمايدۇ.',
@@ -508,7 +535,7 @@ $2',
 قايتا سىناڭ.',
 'passwordtooshort' => 'ئىم ئاز دېگەندە {{PLURAL:$1|1 ھەرپ|$1 ھەرپ}} بولۇشى لازىم.',
 'password-name-match' => 'ئىم ئىشلەتكۈچى ئاتىڭىزدىن پەرقلىنىشى لازىم.',
-'password-login-forbidden' => 'بۇ ئىشلەتكۈچى ئاتى ۋە ئىمنى ئىشلىتىش چەكلەنگەن.',
+'password-login-forbidden' => 'بۇ ئىشلەتكۈچى ئاتى ۋە ئىم چەكلەنگەن.',
 'mailmypassword' => 'يېڭى ئىمنى ئېخەتكە ئەۋەت',
 'passwordremindertitle' => '{{SITENAME}} ئۈچۈن يېڭى ۋاقىتلىق ئىم',
 'passwordremindertext' => 'باشقىلار (بەلكىم سىز، IP ئادرېسى $1)
@@ -536,9 +563,10 @@ $2',
 'emailnotauthenticated' => 'ئېلخەت ئادرېسىڭىز تېخى دەلىللەنمىدى.
 تۆۋەندىكى ئىقتىدارى ھېچقانداق ئېلخەت ئەۋەتمەيدۇ.',
 'noemailprefs' => 'بۇ ئىقتىدارنى ئىشلىتىش ئۈچۈن مايىللىق تەڭشىكىڭىزدە ئېلخەت ئادرېسى بەلگىلەڭ.',
-'emailconfirmlink' => 'ئېلخەت ئادرېسىڭىزنى جەزملەڭ',
+'emailconfirmlink' => 'ئېلخەت مەنزىلىڭىزنى جەزملەڭ',
 'invalidemailaddress' => 'ئېلخەت ئادرېس فورماتى خاتا.
 توغرا ئېلخەت ئادرېسى كىرگۈزۈڭ ياكى بۇ جاينى بوش قالدۇرۇڭ.',
+'emaildisabled' => 'بۇ تورتۇرا ئېلخەت يوللىيالمايدۇ.',
 'accountcreated' => 'ھېسابات قۇرۇلدى',
 'accountcreatedtext' => '$1 نىڭ ھېساباتى قۇرۇلدى.',
 'createaccount-title' => '{{SITENAME}} دا يېڭى ھېسابات قۇر',
@@ -549,18 +577,19 @@ $2',
 'usernamehasherror' => 'ئىشلەتكۈچى ئاتىدا مۇكەممەللىك كود ھەرپلىرى بولماسلىقى لازىم',
 'login-throttled' => 'سىز بۇ ھېساباتنىڭ ئىمنى كۆپ قېتىم سىنىدىڭىز.
 سەل تەخىر قىلىپ، ئاندىن قايتا سىناڭ.',
-'login-abort-generic' => 'تىزىمغا غەلبىلىك كىرەلمىدىڭىز - چېكىندى',
+'login-abort-generic' => 'تىزىمغا كىرەلمىدىڭىز - چېكىندى',
 'loginlanguagelabel' => 'تىل: $1',
 'suspicious-userlogout' => 'تىزىمدىن چىقىش ئىلتىماسىڭىز رەت قىلىندى، چۈنكى ئۇ بەلكىم بۇزۇلغان توركۆرگۈ ياكى غەملەك ۋاكالەتچىسى يوللىغان بولۇشى مۇمكىن.',
 
 # E-mail sending
-'php-mail-error-unknown' => 'PHP نىڭmail() فونكسىيەسىدىكى يوچۇن خاتالىق',
+'php-mail-error-unknown' => 'PHP نىڭ mail() فونكسىيەسىدىكى يوچۇن خاتالىق',
 'user-mail-no-addy' => 'ئېلخەت ئادرېسسىز خەت يوللاشنى سىنىدى.',
 
 # Change password dialog
 'resetpass' => 'ئىم ئۆزگەرت',
 'resetpass_announce' => 'سىز ۋاقىتلىق ئېلخەت جەزملەش كودىدا تىزىمغا كىرگەن.
 تىزىمغا كىرىشنى تاماملاشتا، بۇ جايدا يېڭى ئىم بەلگىلىشىڭىز لازىم:',
+'resetpass_text' => '<!-- بۇ يەرگە تېكست قوشۇڭ -->',
 'resetpass_header' => 'ھېسابات ئىمنى ئۆزگەرت',
 'oldpassword' => 'كونا ئىم:',
 'newpassword' => 'يېڭى ئىم:',
@@ -578,36 +607,45 @@ $2',
 'resetpass-temp-password' => 'ۋاقىتلىق ئىم:',
 
 # Special:PasswordReset
-'passwordreset' => 'ئىمنى ئەسلىگە قايتۇر',
+'passwordreset' => 'ئىمنى ئەسلىگە قايتۇرماق',
 'passwordreset-text' => 'بۇ جەدۋەل تاماملانسا ھېسابات تەپسىلاتىڭىزنى ئېلخەتىڭىزدە تاپشۇرۇۋالىسىز.',
-'passwordreset-legend' => 'ئىمنى ئەسلىگە قايتۇر',
+'passwordreset-legend' => 'ئىمنى ئەسلىگە قايتۇرماق',
 'passwordreset-disabled' => 'بۇ ۋىكىدا ئىمنى ئەسلىگە قايتۇرۇش چەكلەنگەن.',
 'passwordreset-pretext' => '{{PLURAL:$1||تۆۋەندىكى سانلىق مەلۇماتتىن بىرنى كىرگۈزۈڭ}}',
-'passwordreset-username' => 'ئÙ\89Ø´Ù\84Û\95تÙ\83Û\87Ú\86Ù\89 Ø¦Ù\89سÙ\85ى:',
+'passwordreset-username' => 'ئÙ\89Ø´Ù\84Û\95تÙ\83Û\88Ú\86Ù\89 Ø¦Ø§Øªى:',
 'passwordreset-domain' => 'دائىرە:',
-'passwordreset-email' => 'ئېلخەت ئادرېس:',
+'passwordreset-capture' => 'ھاسىل قىلىنغان ئېلخەتنى كۆرسىتەمدۇ؟',
+'passwordreset-capture-help' => 'ئەگەر بۇ رامكا تاللانسا، ئېلخەت (ۋاقىتلىق ئىمنى ئۆز ئىچىگە ئالىدۇ) كۆرسىتىپ ئىشلەتكۈچىگە يوللايدۇ.',
+'passwordreset-email' => 'ئېلخەت ئادرېس',
 'passwordreset-emailtitle' => '{{SITENAME}} دىكى ھېسابات تەپسىلاتى',
-'passwordreset-emailtext-ip' => 'بەزىلەر(بەلكىم سىز بولۇشىڭىز مۇمكىن) IP ئادرېس $1 ئارقىلىق {{SITENAME}} ($4) دىكى مۇناسىۋەتلىك ھېساباتنىڭ ئىم ئەسكەرتىشىگە ئېرىشىشنى تەلەپ قىلدى.  {{PLURAL:$3|ھېسابات|ھېسابات}} بىلەن شۇ ئېلخەت ئادرېس باغلانغان:
+'passwordreset-emailtext-ip' => 'باشقىلار (بەلكىم سىز، IP ئادرېسى $1)
+{{SITENAME}} ($4) دىكى ھېسابات تەپسىلات ئەسكەرتىشىنى ئىلتىماس قىلدى .
+تۆۋەندىكى ئىشلەتكۈچىنىڭ {{PLURAL:$3|ھېسابات|ھېسابات}}ى مۇشۇ ئېلخەتكە باغلانغان:
 
 $2
 
-بۇ {{PLURAL:$3|ۋاقىتلىق ئىم|ۋاقىتلىق ئىم}}نىڭ {{PLURAL:$5|كۈن|$5 كۈن}}دە ۋاقتى توشىدۇ.
-ھازىرلا تىزىمغا كىرىپ يېڭى ئىم تەڭشەڭ. ئەگەر ئىلتىماسنى باشقىلار ئوتتۇرىغا قويغان بولسا ياكى كونا ئىمنى ئەسكە ئالغان بولسىڭىز ئۆزگەرتىشنىڭ ھاجىتى يوق، بۇ ئۇچۇرغا پەرۋا قىلماي كونا ئىمنى داۋاملىق ئىشلىتىۋەرسىڭىز بولىدۇ.',
-'passwordreset-emailtext-user' => '{{SITENAME}} بېكەتتىكى $1 ئىشلەتكۈچى  {{SITENAME}}($4) دىكى مۇناسىۋەتلىك ھېساباتنىڭ ئىم ئەسكەرتىشىگە ئېرىشىشنى تەلەپ قىلدى.  {{PLURAL:$3|ھېسابات|ھېسابات}} بىلەن شۇ ئېلخەت ئادرېس باغلانغان:
+{{PLURAL:$3|بۇ ۋاقىتلىق ئىم|بۇ ۋاقىتلىق ئىم}} {{PLURAL:$5|بىر كۈن|$5 كۈن}}دە ۋاقتى ئۆتىدۇ. ئەگەر بۇ مەشغۇلاتنى سىز ئىلتىماس قىلغان بولسىڭىز، دەرھال تىزىمغا كىرىپ يېڭى ئىمدىن بىرنى تاللاڭ.
+سىز بەلگىلىگەن يېڭى ئىم  {{PLURAL:$5|كۈن|$5 كۈن}}دە ۋاقتى توشىدۇ. ئەگەر باشقىلار ئىلتىماس قىلغان بولسا ياكى ئۆزىڭىز بەلگىلىگەن ئىم ئېسىڭىزگە كېلىپ ئۇنى ئۆزگەرتمىسىڭىز، 
+بۇ ئۇچۇرغا پەرۋا قىلماي ئۆزىڭىزنىڭ كونا ئىمنى ئىشلىتىۋېرىڭ.',
+'passwordreset-emailtext-user' => '{{SITENAME}} دىكى $1 ئىشلەتكۈچى ھېسابات تەپسىلات ئەسكەرتىشىنى ئىلتىماس قىلدى .
+تۆۋەندىكى ئىشلەتكۈچىنىڭ {{PLURAL:$3|ھېسابات|ھېسابات}}($4)ى مۇشۇ ئېلخەتكە باغلانغان:
 
 $2
 
-بۇ {{PLURAL:$3|ۋاقىتلىق ئىم|ۋاقىتلىق ئىم}}نىڭ {{PLURAL:$5|كۈن|$5 كۈن}}دە ۋاقتى توشىدۇ.
-ھازىرلا تىزىمغا كىرىپ يېڭى ئىم تەڭشەڭ. ئەگەر ئىلتىماسنى باشقىلار ئوتتۇرىغا قويغان بولسا ياكى كونا ئىمنى ئەسكە ئالغان بولسىڭىز ئۆزگەرتىشنىڭ ھاجىتى يوق، بۇ ئۇچۇرغا پەرۋا قىلماي كونا ئىمنى داۋاملىق ئىشلىتىۋەرسىڭىز بولىدۇ.',
+{{PLURAL:$3|بۇ ۋاقىتلىق ئىم|بۇ ۋاقىتلىق ئىم}} {{PLURAL:$5|بىر كۈن|$5 كۈن}}دە ۋاقتى ئۆتىدۇ. ئەگەر بۇ مەشغۇلاتنى سىز ئىلتىماس قىلغان بولسىڭىز، دەرھال تىزىمغا كىرىپ يېڭى ئىمدىن بىرنى تاللاڭ.
+سىز بەلگىلىگەن يېڭى ئىم  {{PLURAL:$5|كۈن|$5 كۈن}}دە ۋاقتى توشىدۇ. ئەگەر باشقىلار ئىلتىماس قىلغان بولسا ياكى ئۆزىڭىز بەلگىلىگەن ئىم ئېسىڭىزگە كېلىپ ئۇنى ئۆزگەرتمىسىڭىز، 
+بۇ ئۇچۇرغا پەرۋا قىلماي ئۆزىڭىزنىڭ كونا ئىمنى ئىشلىتىۋېرىڭ.',
 'passwordreset-emailelement' => 'ئىشلەتكۈچى ئاتى: $1
 ۋاقىتلىق ئىم: $2',
-'passwordreset-emailsent' => 'ئەسكەرتىش ئېلخەت ئەۋەتىلدى.',
+'passwordreset-emailsent' => 'ئەسكەرتىش ئېلخەت يوللاندى.',
+'passwordreset-emailsent-capture' => 'ئەسكەرتىش ئېلخەت يوللاندى، تۆۋەندە كۆرسىتىلىدۇ.',
+'passwordreset-emailerror-capture' => 'ھاسىل قىلىنغان ئەسكەرتىش ئېلخەت تۆۋەندە كۆرسىتىلگەندەك ئەمما يوللىيالمىدى: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'ئېلخەت ئادرېس ئۆزگەرت',
 'changeemail-header' => 'ھېساباتنىڭ ئېلخەت ئادرېسىنى ئۆزگەرت',
 'changeemail-text' => 'بۇ جەدۋەل تاماملانسا ئېلخەت ئادرېسىڭىزنى ئۆزگەرتىدۇ. سىز ئىم كىرگۈزۈپ بۇ ئۆزگەرتىشنى جەزملەيسىز.',
-'changeemail-no-info' => 'تÙ\89زÙ\89Ù\85غا Ù\83Ù\89رسÙ\89Ú­Ù\89ز Ø¦Ø§Ù\86دÙ\89Ù\86 Ø¨Û\87 Ø¨Û\95تÙ\86Ù\89 Ø¨Ù\89Û\8bاستÛ\95 Ø²Ù\89Ù\8aارÛ\95ت Ù\82Ù\89Ù\84اÙ\84اÙ\8aسÙ\89ز.',
+'changeemail-no-info' => 'سÙ\89ز ØªÙ\89زÙ\89Ù\85غا Ù\83Ù\89رگÛ\95Ù\86دÙ\89Ù\86 Ù\83Û\90Ù\8aÙ\89Ù\86 Ø¨Ù\89Û\8bاسÙ\89تÛ\95 Ø¨Û\87 Ø¨Û\95تÙ\83Û\95 Ù\83Ù\89رÙ\89Ø´Ù\89Ú­Ù\89ز Ù\84ازÙ\89Ù\85.',
 'changeemail-oldemail' => 'نۆۋەتتىكى ئېلخەت ئادرېسى:',
 'changeemail-newemail' => 'يېڭى ئېلخەت ئادرېسى:',
 'changeemail-none' => '(يوق)',
@@ -627,13 +665,15 @@ $2
 'headline_tip' => '2- دەرىجىلىك ماۋزۇ',
 'nowiki_sample' => 'فورماتى يوق تېكست قىستۇر',
 'nowiki_tip' => 'wiki فورماتىغا پەرۋا قىلما',
+'image_sample' => 'Example.jpg',
 'image_tip' => 'سىڭدۈرمە ھۆججەت',
+'media_sample' => 'Example.ogg',
 'media_tip' => 'ھۆججەت ئۇلىنىشى',
 'sig_tip' => 'ۋاقىت تامغىلىق ئىمزايىڭىز',
 'hr_tip' => 'توغرىسىغا سىزىق (ئېھتىيات بىلەن ئىشلىتىڭ)',
 
 # Edit pages
-'summary' => 'مۇھىم مەزمۇن:',
+'summary' => 'ئۈزۈندە',
 'subject' => 'تېما/ماۋزۇ:',
 'minoredit' => 'بۇ ئازراقلا تەھرىرلەش',
 'watchthis' => 'بۇ بەتنى كۆزەت',
@@ -706,11 +746,15 @@ $2
 [{{fullurl:{{FULLPAGENAME}}|action=edit}} بۇ بەتنى تەھرىرلىيەلەيسىز]</span>',
 'noarticletext-nopermission' => 'بۇ بەتتە ھازىرچە مەزمۇن يوق.
  سىز باشقا بەتتە [[Special:Search/{{PAGENAME}}|بۇ بەتنىڭ ماۋزۇسىنى ئىزدىيەلەيسىز]] ياكى <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}] مۇناسىۋەتلىك خاتىرىسىنى ئىزدىيەلەيسىز،</span>',
+'missing-revision' => '"{{PAGENAME}}" ئاتلىق بەتنىڭ تۈزىتىلگەن نەشرى #$1 مەۋجۇت ئەمەس.
+
+ئادەتتە بۇ ئۆچۈرۈلگەن بىر بەتنىڭ ئۇلانمىسىغا كىرگەنلىك سەۋەبىدىن بولىدۇ.
+تەپسىلىي ئۇچۇرنى [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ئۆچۈرۈش خاتىرىسى] دىن تاپقىلى بولىدۇ.',
 'userpage-userdoesnotexist' => '"<nowiki>$1</nowiki>" ئىشلەتكۈچى خەتلەتمىگەن.
 بۇ بەتنى قۇرۇش/تەھرىرلەشتىن ئىلگىرى تەكشۈرۈپ بېقىڭ.',
 'userpage-userdoesnotexist-view' => '"$1" ئىشلەتكۈچى ھېساباتى خەتلەتمىگەن.',
 'blocked-notice-logextract' => 'بۇ ئىشلەتكۈچى نۆۋەتتە چەكلەنگەن.
-پايدىلىنىش ئۈچۈن يېقىنقى تۆۋەندە چەكلەش خاتىرە تۈرلىرى تەمىنلەندى:',
+پايدىلىنىش ئۈچۈن يېقىنقى چەكلەش خاتىرە تۈرلىرى تۆۋەندە تەمىنلەندى:',
 'clearyourcache' => "'''دىققەت''' - ساقلىغاندىن كېيىن، تور كۆرگۈنىڭ غەملىكىنى تازىلىغاندىن كېيىنلا ئاندىن ئېلىپ بارغان ئۆزگەرتىشنى كۆرەلەيسىز.
 * '''Mozilla / Firefox / Safari:''' دا ''Shift'' كۇنۇپكىسىنى بېسىپ تۇرۇپ ''قايتا يۈكلە''نى ياكى ''Ctrl-F5'' ياكى ''Ctrl-R'' (''Mac تا Command-R'')؛
 * '''Google Chrome:''' دا ''Ctrl-Shift-R'' (''Command-Shift-R''  Mac)
@@ -725,14 +769,15 @@ $2
 '''ئۇ تېخى ساقلانمىدى!'''",
 'sitecsspreview' => "'''دىققەت سىز پەقەت بۇ CSS نى ئالدىن كۆزىتىۋاتىسىز.'''
 '''ئۇ تېخى ساقلانمىدى!'''",
-'sitejspreview' => "'''دىققەت سىز پەقەت بۇ JavaScript  كودىنى ئالدىن كۆزىتىۋاتىسىز.'''
+'sitejspreview' => "'''دىققەت سىز پەقەت بۇ JavaScript كودنى ئالدىن كۆزىتىۋاتىسىز.'''
 '''ئۇ تېخى ساقلانمىدى!'''",
 'userinvalidcssjstitle' => "'''ئاگاھلاندۇرۇش:''' تېرە\\\"\$1\" مەۋجۇد ئەمەس.
 ئادەتلەنگەن .css ۋە .js تور بەت ماۋزۇسىغا كىچىك يېزىلىشتىكى ھەرپ ئىشلىتىلىدۇ، مەسىلەن، {{ns:user}}:Foo/vector.css بىلەن {{ns:user}}:Foo/Vector.css ئوخشاش ئەمەس.",
 'updated' => '(يېڭىلاندى)',
 'note' => "'''ئىزاھات:'''",
 'previewnote' => "'''ئېسىڭىزدە بولسۇنكى بۇ پەقەتلا ئالدىن كۆزىتىش.'''
-ئۆزگەرتكەنلىرىڭىز تېخى ساقلانمىدى!",
+ئۆزگەرتكەن مەزمۇنىڭىز تېخى ساقلانمىدى!",
+'continue-editing' => 'تەھرىرلەشنى داۋاملاشتۇر',
 'previewconflict' => 'بۇ ئالدىن كۆزىتىشتە ئۈستىدىكى تېكست تەھرىرلەش رايونىدىكى مەزمۇننى كۆرسەتتى. ئۇ ساقلانى تاللىغاندىن كېيىن كۆرۈنىدۇ.',
 'session_fail_preview' => "'''كەچۈرۈڭ! سىزنىڭ جەريان سانلىق مەلۇماتىڭىز يوقاپ كەتكەندە ئېلىپ بارغان تەھرىرىڭىزنى بىر تەرەپ قىلالمايمىز.'''
 قايتا سىناڭ.
@@ -746,8 +791,9 @@ $2
 'token_suffix_mismatch' => "'''سىزنىڭ ئىشلەتكۈچى تەرەپتىكى تەھرىر بۇيرۇقى بىر قىسىم تىنىش بەلگىلىرىنى بۇزۇۋەتتى، '''
 بەتتىكى تەھرىرلەۋاتقان تېكستنىڭ بۇزۇلۇشىنىڭ ئالدىنى ئېلىش ئۈچۈن تەھرىرىڭىز رەت قىلىندى.
 بۇ خىل ئەھۋال ئادەتتە نۇرغۇن خاتالىق بار تورنى ئاساس قىلغان ئاتسىز ۋاكالەتچىنى ئىشلەتكەندە كۆرۈلىدۇ.",
-'edit_form_incomplete' => "'''تÛ\95ھرÙ\89رÙ\84Ù\89Ú¯Û\95Ù\86 Ø¬Û\95دÛ\8bÛ\95Ù\84Ù\86Ù\89Ú­ Ø¨Û\95زÙ\89 Ø¨Û\86Ù\84Ù\89Ù\83Ù\89 Ù\85Û\87Ù\84ازÙ\89Ù\85Û\90تÙ\89رغا Ù\8aÛ\95تÙ\85Ù\89دÙ\89Ø\9b ØªÛ\95ھرÙ\89رÙ\84Ù\89Ú¯Û\95Ù\86 Ù\85Û\95زÙ\85Û\87Ù\86Ù\89Ú­Ù\89زÙ\86Ù\89Ú­ Ù\85Û\87Ù\83Û\95Ù\85Ù\85Û\95Ù\84لىكىنى تەكشۈرۈپ ئاندىن قايتا سىناڭ.'''",
+'edit_form_incomplete' => "'''تÛ\95ھرÙ\89رÙ\84Ù\89Ú¯Û\95Ù\86 Ø¬Û\95دÛ\8bÛ\95Ù\84Ù\86Ù\89Ú­ Ø¨Û\95زÙ\89 Ø¨Û\86Ù\84Ù\89Ù\83Ù\89 Ù\85Û\87Ù\84ازÙ\89Ù\85Û\90تÙ\89رغا Ù\8aÛ\90تÙ\89Ù¾ Ø¨Ø§Ø±Ù\85Ù\89دÙ\89Ø\9b ØªÛ\95ھرÙ\89رÙ\84Ù\89Ú¯Û\95Ù\86 Ù\85Û\95زÙ\85Û\87Ù\86Ù\89Ú­Ù\89زÙ\86Ù\89Ú­ ØªÙ\88Ù\84Û\87Ù\82 Ø¦Ù\89Ù\83Û\95Ù\86لىكىنى تەكشۈرۈپ ئاندىن قايتا سىناڭ.'''",
 'editing' => '$1 تەھرىرلەۋاتىدۇ',
+'creating' => '$1 قۇرۇۋاتىدۇ',
 'editingsection' => '$1 تەھرىرلەۋاتىدۇ (ئابزاس)',
 'editingcomment' => '$1 تەھرىرلەۋاتىدۇ (يېڭى ئابزاس)',
 'editconflict' => 'تەھرىر توقۇنۇشى: $1',
@@ -771,7 +817,7 @@ $2
 ئەگەر يازمىڭىزنىڭ خالىغانچە ئۆزگەرتىلىشى ياكى قايتا تارقىلىشىنى خالىمىسىڭىز، يوللىماڭ. <br />
  سىز يوللىغان مەزمۇننىڭ ئۆزىڭىزنىڭ يازغانلىقى ياكى يەرلىك تور دائىرىسىدىن ياكى ئەركىن مەنبە ($1 دىكى تەپسىلاتنى كۆرۈڭ) دىن كەلگەنلىكىگە كاپالەتلىك قىلىڭ.
 '''ئىجازەتكە ئېرىشمەي تۇرۇپ يوللىماڭ!'''",
-'longpageerror' => "'''خاتالىق: سىز يوللىغان تېكستنىڭ چوڭلۇقى $1 كىلوبايت، بۇ  $2 كىلوبايتلىق ئەڭ چوڭ قىممەتتىن ئېشىپ كەتتى.'''
+'longpageerror' => "'''خاتالىق: سىز يوللىغان تېكىستنىڭ چوڭلۇقى {{PLURAL:$1|بىر كىلوبايت |$1 كىلوبايت}}، بۇ  {{PLURAL:$2|بىر كىلوبايت|$2 كىلوبايت}}لىق ئەڭ چوڭ قىممەتتىن ئېشىپ كەتتى.'''
 ئۇنى ساقلىغىلى بولمايدۇ.",
 'readonlywarning' => "'''ئاگاھلاندۇرۇش: ساندان قۇلۇپلىنىپ ئاسرىلىۋاتىدۇ، شۇڭلاشقا ئۆزگەرتىشىڭىزنى ساقلىيالمايسىز.'''
 سىز بۇ تېكستنى كۆچۈرۈپ تېكست ھۆججىتىگە ساقلاپ، سەل تۇرۇپ ئاندىن ئۆزگەرتىڭ.
@@ -789,6 +835,8 @@ $2
 'template-protected' => '(قوغدالغان)',
 'template-semiprotected' => '(يېرىم قوغدالغان)',
 'hiddencategories' => 'بۇ بەت {{PLURAL:$1|1 يوشۇرۇن تۈر|$1 يوشۇرۇن تۈر}} نىڭ ئەزالىرىغا تەۋە:',
+'edittools' => '<!-- بۇ جايدىكى تېكىست جەدۋەل تەھرىرلەش ۋە يوللاشنىڭ ئاستى تەرىپىدە كۆرۈنىدۇ. -->',
+'edittools-upload' => '-',
 'nocreatetitle' => 'بەت قۇرۇش چەكلىمىسى',
 'nocreatetext' => '{{SITENAME}} يېڭى بەت قۇرۇش ئىقتىدارىنى چەكلىگەن.
 كەينىگە قايتىپ مەۋجۇد بەتنى تەھرىرلىيەلەيسىز ياكى [[Special:UserLogin|تىزىمغا كىر ياكى يېڭى بىر ھېسابات قۇر]]الايسىز.',
@@ -813,6 +861,7 @@ $2
 'edit-no-change' => 'تەھرىرلىگىنىڭىزگە پەرۋا قىلىنمىدى، چۈنكى تېكستتە ئۆزگىرىش بولمىدى.',
 'edit-already-exists' => 'يېڭى بەت قۇرالمىدى
 ئۇ مەۋجۇد.',
+'defaultmessagetext' => 'كۆڭۈلدىكى ئۇچۇر تېكستى',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => "'''ئاگاھلاندۇرۇش:''' بۇ بەت ناھايىتى كۆپ يۇقىرى سەرپىياتتىكى گىرامماتىكىلىق ئىقتىدارنى چاقىرغان.\\n
@@ -828,6 +877,13 @@ $2
 'parser-template-loop-warning' => 'قېلىپ دەۋرىيلىكى بايقالدى: [[$1]]',
 'parser-template-recursion-depth-warning' => 'قايتىلانما ئىپادە چوڭقۇر چەكلىمىسىدىن ئېشىپ كەتتى ($1)',
 'language-converter-depth-warning' => 'تىل ئالماشتۇرۇش چوڭقۇرلۇقى چەكتىن ئاشتى ($1)',
+'node-count-exceeded-category' => 'بەتنىڭ نۇقتا سانى چەكتىن ئېشىپ كەتتى',
+'node-count-exceeded-warning' => 'بەت نۇقتا سانىدىن ئېشىپ كەتتى',
+'expansion-depth-exceeded-category' => 'كېڭەيتىلگەن چوڭقۇرلۇق بەت چەكلىمىسىدىن ئېشىپ كەتتى',
+'expansion-depth-exceeded-warning' => 'بەت كېڭەيتىلگەن چوڭقۇرلۇقتىن ئېشىپ كەتتى',
+'parser-unstrip-loop-warning' => 'دەۋرىيلىك بايقالدى',
+'parser-unstrip-recursion-limit' => 'قايتىلانما چەكلىمە ($1) دىن ئېشىپ كەتتى',
+'converter-manual-rule-error' => 'قولدا ئالماشتۇرىدىغان قائىدىدە خاتالىق بايقالدى',
 
 # "Undo" feature
 'undo-success' => 'بۇ تەھرىردىن يېنىۋالغىلى بولىدۇ
@@ -877,7 +933,7 @@ $3 تەمىنلىگەن چەكلەش سەۋەبى ''$2''",
  [[Special:Search|wiki دىن ئىزدە]] نى سىناپ مۇناسىۋەتلىك يېڭى بەتكە ئېرىشىڭ.',
 
 # Revision deletion
-'rev-deleted-comment' => '(تەھرىر ئۈزۈندەسى چىقىرىۋېتىلدى)',
+'rev-deleted-comment' => '(تەھرىرلەش ئۈزۈندىسى چىقىرىۋېتىلدى)',
 'rev-deleted-user' => '(ئىشلەتكۈچى ئاتى چىقىرىۋېتىلدى)',
 'rev-deleted-event' => '(خاتىرە مەشغۇلاتى چىقىرىۋېتىلدى)',
 'rev-deleted-user-contribs' => '[ئىشلەتكۈچى ئاتى ياكى IP ئادرېس چىقىرىۋېتىلدى - تۆھپىدىن تەھرىرنى يوشۇر]',
@@ -886,24 +942,24 @@ $3 تەمىنلىگەن چەكلەش سەۋەبى ''$2''",
 'rev-deleted-text-unhide' => "بۇ بەتنىڭ تۈزىتىلگەن نەشرى '''ئۆچۈرۈلگەن'''.
 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ئۆچۈرۈش خاتىرىسى]دىن تەپسىلىي ئۇچۇرنى تاپقىلى بولىدۇ.
 داۋاملاشتۇرماقچى بولسىڭىز يەنىلا [$1 بۇ نەشرىنى كۆرسەت]ەلەيسىز.",
-'rev-suppressed-text-unhide' => "بÛ\87 Ø¨Û\95تÙ\86Ù\89Ú­ ØªÛ\88زÙ\89تÙ\89Ù\84Ú¯Û\95Ù\86 Ù\86Û\95شرÙ\89 '''Ù\8aÙ\88Ù\82Ù\89تÙ\89Ù\84غان'''.
-[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Ù\8aÙ\88Ù\82Ù\89تÙ\89Ø´ Ø®Ø§ØªÙ\89رÙ\89سÙ\89]دÙ\89Ù\86 ØªÛ\95پسÙ\89Ù\84Ù\89Ù\8a Ø¦Û\87Ú\86Û\87رÙ\86Ù\89 ØªØ§Ù¾Ù\82Ù\89Ù\84Ù\89 Ø¨Ù\88Ù\84Ù\89دÛ\87.باشÙ\82Û\87رغÛ\87Ú\86Ù\89 Ø¨Ù\88Ù\84Û\87Ø´ Ø³Û\88Ù¾Ù\89تÙ\89دÛ\95Ø\8c داۋاملاشتۇرماقچى بولسىڭىز يەنىلا [$1 بۇ تۈزىتىلگەن نەشرىنى كۆرسەت]ەلەيسىز.",
+'rev-suppressed-text-unhide' => "بÛ\87 Ø¨Û\95تÙ\86Ù\89Ú­ ØªÛ\88زÙ\89تÙ\89Ù\84Ú¯Û\95Ù\86 Ù\86Û\95شرÙ\89 '''Ù\86ازارÛ\95تÚ\86Ù\89 Ù\8aÙ\88Ø´Û\87رغان'''.
+[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Ù\86ازارÛ\95تÚ\86Ù\89 Ù\8aÙ\88Ø´Û\87رÛ\87Ø´ Ø®Ø§ØªÙ\89رÙ\89سÙ\89]دÙ\89Ù\86 ØªÛ\95پسÙ\89Ù\84Ù\89Ù\8a Ø¦Û\87Ú\86Û\87رÙ\86Ù\89 ØªØ§Ù¾Ù\82Ù\89Ù\84Ù\89 Ø¨Ù\88Ù\84Ù\89دÛ\87. Ø¦Û\95Ú¯Û\95ر داۋاملاشتۇرماقچى بولسىڭىز يەنىلا [$1 بۇ تۈزىتىلگەن نەشرىنى كۆرسەت]ەلەيسىز.",
 'rev-deleted-text-view' => "بۇ بەتنىڭ تۈزىتىلگەن نەشرى '''ئۆچۈرۈلگەن'''.
¨Ø§Ø´Ù\82Û\87رغÛ\87Ú\86Ù\89 Ø¨Ù\88Ù\84Û\87Ø´ Ø³Û\88Ù¾Ù\89تÙ\89Ú­Ù\89ز Ø¨Ù\89Ù\84Û\95Ù\86 Ø¦Û\87Ù\86Ù\89 Ù\83Û\86رÛ\95Ù\84Û\95Ù\8aسÙ\89ز.: ØªÛ\95پسÙ\89Ù\84اتÙ\89Ù\86Ù\89 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Ø¦Û\86Ú\86Û\88رÛ\88Ø´ Ø®Ø§ØªÙ\89رÙ\89سÙ\89]دÙ\89Ù\86 ØªØ§Ù¾Ø§Ù\84اÙ\8aسÙ\89ز.",
-'rev-suppressed-text-view' => "بÛ\87 Ø¨Û\95تÙ\86Ù\89Ú­ ØªÛ\88زÙ\89تÙ\89Ù\84Ú¯Û\95Ù\86 Ù\86Û\95شرÙ\89 '''Ù\8aÙ\88Ù\82Ù\89تÙ\89Ù\84غان'''.
¨Ø§Ø´Ù\82Û\87رغÛ\87Ú\86Ù\89 Ø¨Ù\88Ù\84Û\87Ø´ Ø³Û\88Ù¾Ù\89تÙ\89Ú­Ù\89ز Ø¨Ù\89Ù\84Û\95Ù\86 Ø¦Û\87Ù\86Ù\89 Ù\83Û\86رÛ\95Ù\84Û\95Ù\8aسÙ\89ز.: ØªÛ\95پسÙ\89Ù\84اتÙ\89Ù\86Ù\89 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Ù\8aÙ\88Ù\82Ù\89تÙ\89ش خاتىرىسى]دىن تاپالايسىز.",
+ئۇنى كۆرەلەيسىز.: تەپسىلاتىنى [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ئۆچۈرۈش خاتىرىسى]دىن تاپالايسىز.",
+'rev-suppressed-text-view' => "بÛ\87 Ø¨Û\95تÙ\86Ù\89Ú­ ØªÛ\88زÙ\89تÙ\89Ù\84Ú¯Û\95Ù\86 Ù\86Û\95شرÙ\89 '''Ù\86ازارÛ\95تÚ\86Ù\89 Ù\8aÙ\88Ø´Û\87رغان'''.
¦Û\87Ù\86Ù\89 Ù\83Û\86رÛ\95Ù\84Û\95Ù\8aسÙ\89ز.: ØªÛ\95پسÙ\89Ù\84اتÙ\89Ù\86Ù\89 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Ù\86ازارÛ\95تÚ\86Ù\89 Ù\8aÙ\88Ø´Û\87رÛ\87ش خاتىرىسى]دىن تاپالايسىز.",
 'rev-deleted-no-diff' => "بۇ پەرقنى كۆرەلمەيسىز چۈنكى بىر قېتىملىق تۈزىتىلگەن نەشرى '''ئۆچۈرۈلگەن'''
 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ئۆچۈرۈش خاتىرىسى]دىن تەپسىلىي ئۇچۇرنى تاپقىلى بولىدۇ.",
 'rev-suppressed-no-diff' => "بۇ پەرقنى كۆرەلمەيسىز چۈنكى بىر قېتىملىق تۈزىتىلگەن نەشرى '''ئۆچۈرۈلگەن'''.",
 'rev-deleted-unhide-diff' => "بۇ بەتتىكى بىر قېتىملىق تۈزىتىلگەن نەشرى '''ئۆچۈرۈلگەن'''.
 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ئۆچۈرۈش خاتىرىسى]دىن تەپسىلىي ئۇچۇرنى تاپقىلى بولىدۇ.
¨Ø§Ø´Ù\82Û\87رغÛ\87Ú\86Ù\89 Ø¨Ù\88Ù\84Û\87Ø´ Ø³Û\88Ù¾Ù\89تÙ\89دÛ\95Ø\8c داۋاملاشتۇرماقچى بولسىڭىز يەنىلا [$1 بۇ تۈزىتىلگەن نەشرىنى كۆرسەت]ەلەيسىز.",
-'rev-suppressed-unhide-diff' => "بÛ\87 Ø¨Û\95تÙ\86Ù\89Ú­ ØªÛ\88زÙ\89تÙ\89Ù\84Ú¯Û\95Ù\86 Ù\86Û\95شرÙ\89 '''Ù\8aÙ\88Ù\82Ù\89تÙ\89Ù\84غان'''.
-[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Ù\8aÙ\88Ù\82Ù\89تÙ\89Ø´ Ø®Ø§ØªÙ\89رÙ\89سÙ\89]دÙ\89Ù\86 ØªÛ\95پسÙ\89Ù\84Ù\89Ù\8a Ø¦Û\87Ú\86Û\87رÙ\86Ù\89 ØªØ§Ù¾Ù\82Ù\89Ù\84Ù\89 Ø¨Ù\88Ù\84Ù\89دÛ\87.باشÙ\82Û\87رغÛ\87Ú\86Ù\89 Ø¨Ù\88Ù\84Û\87Ø´ Ø³Û\88Ù¾Ù\89تÙ\89دÛ\95Ø\8c داۋاملاشتۇرماقچى بولسىڭىز يەنىلا [$1 بۇ تۈزىتىلگەن نەشرىنى كۆرسەت]ەلەيسىز.",
¦Û\95Ú¯Û\95ر داۋاملاشتۇرماقچى بولسىڭىز يەنىلا [$1 بۇ تۈزىتىلگەن نەشرىنى كۆرسەت]ەلەيسىز.",
+'rev-suppressed-unhide-diff' => "بÛ\87 Ø¨Û\95تÙ\86Ù\89Ú­ ØªÛ\88زÙ\89تÙ\89Ù\84Ú¯Û\95Ù\86 Ù\86Û\95شرÙ\89 '''Ù\86ازارÛ\95تÚ\86Ù\89 Ù\8aÙ\88Ø´Û\87رغان'''.
+[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Ù\86ازارÛ\95تÚ\86Ù\89 Ù\8aÙ\88Ø´Û\87رÛ\87Ø´ Ø®Ø§ØªÙ\89رÙ\89سÙ\89]دÙ\89Ù\86 ØªÛ\95پسÙ\89Ù\84Ù\89Ù\8a Ø¦Û\87Ú\86Û\87رÙ\86Ù\89 ØªØ§Ù¾Ù\82Ù\89Ù\84Ù\89 Ø¨Ù\88Ù\84Ù\89دÛ\87. Ø¦Û\95Ú¯Û\95ر داۋاملاشتۇرماقچى بولسىڭىز يەنىلا [$1 بۇ تۈزىتىلگەن نەشرىنى كۆرسەت]ەلەيسىز.",
 'rev-deleted-diff-view' => "بۇ بەتنىڭ بىر قېتىملىق تۈزىتىلگەن نەشرى '''ئۆچۈرۈلگەن'''
-.باشقۇرغۇچى بولۇش سۈپىتىڭىز بىلەن بۇ پەرقنى كۆرەلەيسىز.: تەپسىلاتىنى [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ئۆچۈرۈش خاتىرىسى]دىن تاپالايسىز.",
-'rev-suppressed-diff-view' => "بÛ\87 Ø¨Û\95تÙ\86Ù\89Ú­ Ø¨Ù\89ر Ù\82Û\90تÙ\89Ù\85Ù\84Ù\89Ù\82 ØªÛ\88زÙ\89تÙ\89Ù\84Ú¯Û\95Ù\86 Ù\86Û\95شرÙ\89 '''Ù\8aÙ\88Ù\82Ù\89تÙ\89Ù\84غان'''.
اشقۇرغۇچى بولۇش سۈپىتىڭىز بىلەن بۇ پەرقنى كۆرەلەيسىز.: تەپسىلاتىنى [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} يوقىتىش خاتىرىسى]دىن تاپالايسىز.",
+بۇ پەرقنى كۆرەلەيسىز.: تەپسىلاتىنى [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ئۆچۈرۈش خاتىرىسى]دىن تاپالايسىز.",
+'rev-suppressed-diff-view' => "بÛ\87 Ø¨Û\95تÙ\86Ù\89Ú­ Ø¨Ù\89ر Ù\82Û\90تÙ\89Ù\85Ù\84Ù\89Ù\82 ØªÛ\88زÙ\89تÙ\89Ù\84Ú¯Û\95Ù\86 Ù\86Û\95شرÙ\89 '''Ù\86ازارÛ\95تÚ\86Ù\89 Ù\8aÙ\88Ø´Û\87رغان'''.
ۇ پەرقنى كۆرەلەيسىز.: تەپسىلاتىنى [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} نازارەتچى يوشۇرۇش خاتىرىسى]دىن تاپالايسىز.",
 'rev-delundel' => 'كۆرسەت/يوشۇر',
 'rev-showdeleted' => 'كۆرسەت',
 'revisiondelete' => 'تۈزىتىلگەن نەشرىنى ئۆچۈر/ئەسلىگە كەلتۈر',
@@ -968,9 +1024,9 @@ $1",
 'revdelete-offender' => 'تۈزەتكۈچى ئاپتور:',
 
 # Suppression log
-'suppressionlog' => 'خاتىرىنى چەكلە',
-'suppressionlogtext' => 'تۆۋەندىكىسى ئۆچۈرۈلگەن ۋە باشقۇرغۇچى چەكلىگەن مەزمۇنغا چېتىلىدىغان تىزىملىك.
- [[Special:IPBlockList|چەكلەنگەنIP تىزىملىكى]] نى كۆرۈڭ. نۆۋەتتە ئېلىپ بېرىلىۋاتقان چەكلەنگەن ۋە پىچەتلەنگەن تىزىملىكتىن كۆرۈڭ.',
+'suppressionlog' => 'خاتىرە نازارەت',
+'suppressionlogtext' => 'تۆۋەندىكىسى ئۆچۈرۈلگەن ۋە باشقۇرغۇچى چەكلىگەن مەزمۇنغا چېتىلىدىغان تىزىم.
+ [[Special:BlockList|چەكلەنگەن تىزىم]] نى كۆرۈڭ. نۆۋەتتە ئېلىپ بېرىلىۋاتقان چەكلەنگەن ۋە پىچەتلەنگەن تىزىمدىن كۆرۈڭ.',
 
 # History merging
 'mergehistory' => 'بەت تارىخىنى بىرلەشتۈر',
@@ -996,6 +1052,7 @@ $1",
 'mergehistory-comment' => '[[:$1]] نى [[:$2]] غا بىرلەشتۈرۈلدى: $3',
 'mergehistory-same-destination' => 'مەنبە بەت بىلەن نىشان بەت ئوخشاش بولسا بولمايدۇ',
 'mergehistory-reason' => 'سەۋەب:',
+'mergehistory-revisionrow' => '$1 ($2) $3 . . $4 $5 $6',
 
 # Merge log
 'mergelog' => 'بىرلەشتۈرۈش خاتىرىسى',
@@ -1004,7 +1061,9 @@ $1",
 'mergelogpagetext' => 'تۆۋەندىكىسى يېقىندا بىر بەتنىڭ تۈزىتىش تارىخىنىڭ باشقا بىر بەتكە بىرلەشتۈرۈلگەنلىك تىزىملىكى',
 
 # Diffs
-'history-title' => '"$1" نىڭ ئۆزگەرتىش نەشر تارىخى',
+'history-title' => '"$1" نىڭ ئۆزگەرتىش خاتىرىسى',
+'difference-title' => '"$1" تۈزىتىلگەن نەشرى ئارىسىدىكى پەرق',
+'difference-title-multipage' => '"$1" بىلەن "$2" بەت ئارىسىدىكى پەرق',
 'difference-multipage' => '(بەتلەر ئارىسىدىكى پەرق)',
 'lineno' => '$1 -قۇر:',
 'compareselectedversions' => 'تاللانغان نەشرىنى سېلىشتۇر',
@@ -1422,9 +1481,9 @@ HTML بەلگىسىنى تەكشۈرۈڭ.',
 ئىلگىرى يۈكلەنگەن ھۆججەتلەرنى كۆرۈش ياكى ئىزدەشتە [[Special:FileList|ھۆججەت يۈكلەش تىزىملىكى]]گە كىرىپ،  (يېڭىدىن) يۈكلەنگەننى [[Special:Log/upload|يۈكلەش خاتىرىسى]]دە خاتىرىلىنىدۇ، ئۆچۈرۈلگىنى [[Special:Log/delete|ئۆچۈرۈش خاتىرىسى]]دە خاتىرىلىنىدۇ.
 
 بەتكە ھۆججەت يۈكلىمەكچى بولسىڭىز، تۆۋەندىكى ئۇلانما شەكلىنى ئىشلىتىڭ:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' ھۆججەتنىڭ تولۇق نەشرىنى ئىشلىتىدۇ
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' 200 نۇقتا كەڭلىكتىكى سول ياندىكى رامكىدا قايتا پەيدا بولىدىغان 'ئالماشتۇرىدىغان تېكست' چۈشەندۈرۈشىنى ئىشلىتىدۇ.
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' ھۆججەتنى كۆرسەتمەيلا بىۋاسىتە ئۇلىنىدۇ",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' ھۆججەتنىڭ تولۇق نەشرىنى ئىشلىتىدۇ
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code>''' 200 نۇقتا كەڭلىكتىكى سول ياندىكى رامكىدا قايتا پەيدا بولىدىغان 'ئالماشتۇرىدىغان تېكست' چۈشەندۈرۈشىنى ئىشلىتىدۇ.
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' ھۆججەتنى كۆرسەتمەيلا بىۋاسىتە ئۇلىنىدۇ",
 'upload-permitted' => 'يول قويىدىغان ھۆججەت تىپى: $1',
 'upload-preferred' => 'تەۋسىيىلىك ھۆججەت تىپى: $1',
 'upload-prohibited' => 'چەكلەيدىغان ھۆججەت تىپى: $1',
@@ -1471,21 +1530,21 @@ HTML بەلگىسىنى تەكشۈرۈڭ.',
 بۇ ھۆججەت ئاتى خاتا كىرگۈزگەنلىكتىن بولۇشى مۇمكىن.
 سىز راستىنلا بۇ ھۆججەتنى يۈكلەيدىغانلىقىڭىزنى تەكشۈرۈڭ.',
 'windows-nonascii-filename' => 'بۇ ۋىكى ھۆججەت ئاتىدا ئالاھىدە ھەرپ بەلگە ئىشلىتىشنى قوللىمايدۇ.',
-'fileexists' => "ئوخشاش ئاتتىكى ھۆججەت مەۋجۇد، ئەگەر ئۇنى ئۆزگەرتىشنى جەزملىيەلمىسىڭىز '''<tt>[[:$1]]</tt>''' نى تەكشۈرۈڭ.
-[[$1|thumb]]",
-'filepageexists' => "بۇ ھۆججەتنىڭ چۈشەندۈرۈش بېتى  '''<tt>[[:$1]]</tt>''' دا قۇرۇلغان، ئەمما بۇ ئاتلىق ھۆججەت مەۋجۇد ئەمەس.
+'fileexists' => 'ئوخشاش ئاتتىكى ھۆججەت مەۋجۇد، ئەگەر ئۇنى ئۆزگەرتىشنى جەزملىيەلمىسىڭىز <strong>[[:$1]]</strong> نى تەكشۈرۈڭ.
+[[$1|thumb]]',
+'filepageexists' => 'بۇ ھۆججەتنىڭ چۈشەندۈرۈش بېتى  <strong>[[:$1]]</strong> دا قۇرۇلغان، ئەمما بۇ ئاتلىق ھۆججەت مەۋجۇد ئەمەس.
 سىز كىرگۈزگەن ئۈزۈندە چۈشەندۈرۈش بېتىدە كۆرۈنمەيدۇ.
 ئۈزۈندە شۇ جايدا كۆرۈنسۇن دەپ قارىسىڭىز، ئۆزىڭىز تەھرىرلەڭ.
-[[$1|thumb]]",
+[[$1|thumb]]',
 'fileexists-extension' => "ئوخشاپ كېتىدىغان ئاتتىكى ھۆججەتتىن بىرى مەۋجۇد: [[$2|thumb]]
-* يۈكلىگەن ھۆججەتنىڭ ئاتى: '''<tt>[[:$1]]</tt>'''
-* مەۋجۇد ھۆججەتنىڭ ئاتى:'''<tt>[[:$2]]</tt>''
+* يۈكلىگەن ھۆججەتنىڭ ئاتى: <strong>[[:$1]]</strong>
+* مەۋجۇد ھۆججەتنىڭ ئاتى:<strong>[[:$2]]</strong>''
 باشقا ئاتتىن بىرنى تاللاڭ.",
 'fileexists-thumbnail-yes' => "بۇ ھۆججەت يەنە بىر سۈرەتنىڭ كىچىكلىتىلگەن نەشرىدەك تۇرىدۇ ''(كىچىك سۈرەت)''.
 [[$1|thumb]]
-بۇ ھۆججەتنى تەپسىلىي تەكشۈرۈڭ'''<tt>[[:$1]]</tt>'''.
+بۇ ھۆججەتنى تەپسىلىي تەكشۈرۈڭ<strong>[[:$1]]</strong>.
 ئەگەر تەكشۈرۈلگەن ھۆججەت بىلەن ئەسلى چوڭلۇقتىكى سۈرەت ئوخشاش بىر پارچە سۈرەت بولسا، ئوشۇقچە كىچىك سۈرەت يوللىشىڭىزنىڭ ھاجىتى يوق.",
-'file-thumbnail-no' => "ھۆججەت ئاتى '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "ھۆججەت ئاتى <strong>$1</strong>.
  دىن باشلانغان، باشقا بىر پارچە سۈرەتنىڭ كىچىك سۈرىتى بولۇشى مۇمكىن ''(كىچىك سۈرەت)''.
 ئەگەر سىزدە ئەسلى چوڭلۇقتىكى نەشرى بولسا، ئۇنى يۈكلەڭ، بولمىسا ھۆججەت ئاتىنى ئۆزگەرتىڭ.",
 'fileexists-forbidden' => 'ئوخشاش ئاتتىكى ھۆججەت مەۋجۇد، قاپلىۋەتكىلى بولمايدۇ؛
@@ -1690,7 +1749,7 @@ URL نىڭ توغرىلىقى ۋە تور بېكەتنى زىيارەت قىلى
 # MIME search
 'mimesearch' => 'MIME ئىزدە',
 'mimesearch-summary' => 'بۇ بەت MIME تىپلىق سۈزگۈچنى قوزغاتقان.
-كىرگۈزۈش: مەزمۇن تىپى/تارماق تىپ، مەسىلەن <tt>image/jpeg</tt>.',
+كىرگۈزۈش: مەزمۇن تىپى/تارماق تىپ، مەسىلەن <code>image/jpeg</code>.',
 'mimetype' => 'MIME تىپى:',
 'download' => 'چۈشۈر',
 
@@ -1880,7 +1939,7 @@ URL نىڭ توغرىلىقى ۋە تور بېكەتنى زىيارەت قىلى
 'linksearch-ns' => 'ئات بوشلۇقى:',
 'linksearch-ok' => 'ئىزدەش',
 'linksearch-text' => ' \\"*.wikipedia.org\\" غا ئوخشاش ئورتاق بەلگە ئىشلىتىشكە بولىدۇ. <br />
-قوللايدىغان كېلىشىم: <tt>$1</tt>',
+قوللايدىغان كېلىشىم: <code>$1</code>',
 'linksearch-line' => '$1 بولسا $2 دىن ئۇلانغان',
 'linksearch-error' => 'ئورتاق بەلگەنى پەقەت ئاساسىي ئاپپارات ئاتىنىڭ باشىدىلا ئىشلەتكىلى بولىدۇ.',
 
@@ -2710,15 +2769,10 @@ $1',
 # Info page
 'pageinfo-title' => '"$1" نىڭ ئۇچۇرى',
 'pageinfo-header-edits' => 'تەھرىر',
-'pageinfo-header-watchlist' => 'كۆزەت تىزىمى',
-'pageinfo-header-views' => 'كۆرۈنۈش',
-'pageinfo-subjectpage' => 'بەت',
-'pageinfo-talkpage' => 'مۇنازىرە بېتى',
+'pageinfo-views' => 'كۆرۈنۈش سانى',
 'pageinfo-watchers' => 'كۆزەتكۈچىلەر سانى',
 'pageinfo-edits' => 'تەھرىر سانى',
 'pageinfo-authors' => 'يازغۇچىلار سانى',
-'pageinfo-views' => 'كۆرۈنۈش سانى',
-'pageinfo-viewsperedit' => 'ھەر بىر تەھرىر كۆرۈنۈشى',
 
 # Patrolling
 'markaspatrolleddiff' => 'چارلاش بەلگىسى قوي',
index ddd7445..651f21a 100644 (file)
@@ -1022,8 +1022,7 @@ $2
 'clearyourcache' => "'''Увага:''' Після збереження слід очистити кеш браузера, щоб побачити зміни.
 * '''Firefox / Safari:''' тримайте ''Shift'', коли натискаєте ''Оновити'', або натисніть ''Ctrl-F5'' чи ''Ctrl-Shift-R'' (''⌘-R'' на Apple Mac)
 * '''Google Chrome:''' натисніть ''Ctrl-Shift-R'' (''⌘-Shift-R'' на Apple Mac)
-* '''Internet Explorer:''' тримайте ''Ctrl'', коли натискаєте ''Оновити'' або натисніть ''Ctrl-F5''
-* '''Konqueror:''' натисніть кнопку ''Оновити'' або клавішу ''F5''
+* '''Internet Explorer:''' тримайте ''Ctrl'', коли натискаєте ''Оновити'', або натисніть ''Ctrl-F5''
 * '''Opera:''' очистіть кеш за допомогою ''Інструменти → Налаштування''",
 'usercssyoucanpreview' => "'''Підказка:''' використовуйте кнопку «{{int:showpreview}}», щоб протестувати ваш новий css-файл перед збереженням.",
 'userjsyoucanpreview' => "'''Підказка:''' використовуйте кнопку «{{int:showpreview}}», щоб протестувати ваш новий код JavaScript перед збереженням.",
@@ -1757,11 +1756,11 @@ $1",
 Завантаження відображаються в [[Special:Log/upload|журналі завантажень]], вилучення – у [[Special:Log/delete|журналі вилучень]].
 
 Для вставки зображень в статті можна використовувати такі рядки:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}:Назва_зображення.jpg<nowiki>]]</nowiki></tt>''', щоб використати повну версію файлу
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}:Назва_зображення.png|200px|thumb|left|Підпис під зображенням<nowiki>]]</nowiki></tt>''', щоб використати зображення у рамці зліва сторінки з підписом під зображенням
+* '''<code><nowiki>[[</nowiki>{{ns:file}}:Назва_зображення.jpg<nowiki>]]</nowiki></code>''', щоб використати повну версію файлу
+* '''<code><nowiki>[[</nowiki>{{ns:file}}:Назва_зображення.png|200px|thumb|left|Підпис під зображенням<nowiki>]]</nowiki></code>''', щоб використати зображення у рамці зліва сторінки з підписом під зображенням
 
 для інших медіа-файлів використовуйте рядок виду:
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}:Назва_файлу.ogg<nowiki>]]</nowiki></tt>'''.",
+* '''<code><nowiki>[[</nowiki>{{ns:media}}:Назва_файлу.ogg<nowiki>]]</nowiki></code>'''.",
 'upload-permitted' => 'Дозволені типи файлів: $1.',
 'upload-preferred' => 'Бажані типи файлів: $1.',
 'upload-prohibited' => 'Заборонені типи файлів: $1.',
@@ -1805,18 +1804,18 @@ $1",
 'largefileserver' => 'Розмір файлу більший за максимальнодозволений.',
 'emptyfile' => 'Завантажений вами файл ймовірно порожній. Можливо, це сталося через помилку при введенні імені файлу. Будь-ласка, перевірте, чи справді ви бажаєте звантажити цей файл.',
 'windows-nonascii-filename' => 'Ця вікі не підтримує імена файлів зі спеціальними символами.',
-'fileexists' => "Файл з такою назвою вже існує.
-Будь ласка, перевірте '''<tt>[[:$1]]</tt>''', якщо ви не впевнені, чи хочете замінити його.
-[[$1|thumb]]",
-'filepageexists' => "Сторінка опису цього файлу вже створена як '''<tt>[[:$1]]</tt>''', але файлу з такою назвою немає. Уведений опис не з'явиться на сторінці опису зображення. Щоб додати новий опис, вам доведеться змінити його вручну. [[$1|thumb]]",
-'fileexists-extension' => "Існує файл зі схожою назвою: [[$2|thumb]]
-* Назва завантаженого файлу: '''<tt>[[:$1]]</tt>'''
-* Назва існуючого файлу: '''<tt>[[:$2]]</tt>'''
-Будьте ласкаві, виберіть іншу назву.",
-'fileexists-thumbnail-yes' => "Можливо, файл є зменшеною копією (мініатюрою). [[$1|thumb]]
-Будь ласка, перевірте файл '''<tt>[[:$1]]</tt>'''.
-Якщо вказаний файл є тим самим зображенням, не варто окремо завантажувати його зменшену копію.",
-'file-thumbnail-no' => "Назва файлу починається на '''<tt>$1</tt>'''.
+'fileexists' => 'Файл з такою назвою вже існує.
+Будь ласка, перевірте <strong>[[:$1]]</strong>, якщо ви не впевнені, чи хочете замінити його.
+[[$1|thumb]]',
+'filepageexists' => "Сторінка опису цього файлу вже створена як <strong>[[:$1]]</strong>, але файлу з такою назвою немає. Уведений опис не з'явиться на сторінці опису зображення. Щоб додати новий опис, вам доведеться змінити його вручну. [[$1|thumb]]",
+'fileexists-extension' => 'Існує файл зі схожою назвою: [[$2|thumb]]
+* Назва завантаженого файлу: <strong>[[:$1]]</strong>
+* Назва існуючого файлу: <strong>[[:$2]]</strong>
+Будьте ласкаві, виберіть іншу назву.',
+'fileexists-thumbnail-yes' => 'Можливо, файл є зменшеною копією (мініатюрою). [[$1|thumb]]
+Будь ласка, перевірте файл <strong>[[:$1]]</strong>.
+Якщо вказаний файл є тим самим зображенням, не варто окремо завантажувати його зменшену копію.',
+'file-thumbnail-no' => "Назва файлу починається на <strong>$1</strong>.
 Можливо, це зменшена копія зображення ''(мініатюра)''.
 Якщо у вас є це зображення в повному розмірі, завантажте його, інакше змініть назву файлу.",
 'fileexists-forbidden' => 'Файл з такою назвою вже існує і не може бути перезаписаний.
@@ -2079,7 +2078,7 @@ $1',
 
 # MIME search
 'mimesearch' => 'Пошук по MIME',
-'mimesearch-summary' => 'Ця сторінка дозволяє вибирати файли за їх MIME-типом. Формат вводу: тип_вмісту/підтип, наприклад <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Ця сторінка дозволяє вибирати файли за їх MIME-типом. Формат вводу: тип_вмісту/підтип, наприклад <code>image/jpeg</code>.',
 'mimetype' => 'MIME-тип:',
 'download' => 'завантажити',
 
@@ -2278,7 +2277,7 @@ $1',
 'linksearch-ok' => 'Знайти',
 'linksearch-text' => 'Можна використовувати підстановочні символи (шаблони), наприклад, "*.wikipedia.org".
 Необхідний домен якнайменше верхнього рівня, наприклад "*.org"<br />
-Підтримувані протоколи: <tt>$1</tt> (не додавайте жоден з них у вашому пошуку)',
+Підтримувані протоколи: <code>$1</code> (не додавайте жоден з них у вашому пошуку)',
 'linksearch-line' => 'Посилання на $1 із $2',
 'linksearch-error' => 'Підстановочні знаки можуть використовуватися лише на початку адрес.',
 
@@ -2311,8 +2310,8 @@ $1',
 'listgrouprights-rights' => 'Права',
 'listgrouprights-helppage' => 'Help:Права користувачів',
 'listgrouprights-members' => '(список членів)',
-'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <tt>($2)</tt></span>',
-'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <tt>($2)</tt></span>',
+'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <code>($2)</code></span>',
+'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <code>($2)</code></span>',
 'listgrouprights-addgroup' => 'може додавати в {{PLURAL:$2|групу|групи}}: $1',
 'listgrouprights-removegroup' => 'може виключати з {{PLURAL:$2|групи|груп}}: $1',
 'listgrouprights-addgroup-all' => 'може додавати до всіх груп',
@@ -3157,15 +3156,10 @@ The wiki server can't provide data in a format your client can read.",
 # Info page
 'pageinfo-title' => 'Інформація про " $1 "',
 'pageinfo-header-edits' => 'Редагування',
-'pageinfo-header-watchlist' => 'Список спостереження',
-'pageinfo-header-views' => 'Перегляди',
-'pageinfo-subjectpage' => 'Сторінка',
-'pageinfo-talkpage' => 'Сторінка обговорення',
+'pageinfo-views' => 'Кількість переглядів',
 'pageinfo-watchers' => 'Кількість спостерігачів',
 'pageinfo-edits' => 'Кількість редагувань',
 'pageinfo-authors' => 'Кількість унікальних авторів',
-'pageinfo-views' => 'Кількість переглядів',
-'pageinfo-viewsperedit' => 'Переглядів на редагування',
 
 # Skin names
 'skinname-standard' => 'Стандартне',
index 9d7b126..a3b9bba 100644 (file)
@@ -17,6 +17,7 @@
  * @author Wisesabre
  * @author ZxxZxxZ
  * @author לערי ריינהארט
+ * @author زكريا
  * @author سمرقندی
  * @author محبوب عالم
  */
@@ -52,7 +53,7 @@ $messages = array(
 'tog-hidepatrolled' => 'حالیہ تبدیلیوں میں گشتی ترمیمات چُھپاؤ',
 'tog-newpageshidepatrolled' => 'جدید صفحاتی فہرست میں گشتی صفحات چُھپاؤ',
 'tog-extendwatchlist' => 'زیرِنظرفہرست کو پھیلاؤ تاکہ اِس میں تمام ترمیمات نظر آئیں، نہ کہ صرف حالیہ ترین',
-'tog-usenewrc' => 'افزودہ حالیہ تبدیلیاں استعمال کرو (JavaScript چاہئے ہوگا)',
+'tog-usenewrc' => 'افزودہ حالیہ تبدیلیاں استعمال کریں (JavaScript درکار ہوگا)',
 'tog-numberheadings' => 'سرخیوں کو خود نمبر دو',
 'tog-showtoolbar' => 'تدوینی اوزاردان دکھاؤ ( JavaScript چاہئے)',
 'tog-editondblclick' => 'طقین پر صفحات کی ترمیم (JavaScript چاہئے)',
@@ -995,7 +996,7 @@ HTML tags جانچئے.',
 * مندرجہ بالا رموز آپ  انگریزی میں بھی درج کرسکتے ہیں، یعنی
 <nowiki>[[Image:File name|Alt.text]]</nowiki>
 * ملف کے ساتھ براہ راست رابطہ کیلیے
-کی طرز میں ربط استعمال کیجیۓ۔ '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''
+کی طرز میں ربط استعمال کیجیۓ۔ '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''
 * ملف کا نام ؛ حرف ابجد کے لیۓ حساس ہے لہذا اگر زبراثقال کرتے وقت ملف کا نام -- name:JPG  ہے اور آپ رابطہ رکھتے وقت name:jpg یــا Name:jpg رکھتے ہیں تو ربط کام نہیں کرے گا",
 'uploadlog' => 'نوشتۂ زبراثقال (اپ لوڈ لاگ)',
 'uploadlogpage' => 'نوشتۂ زبراثقال (اپ لوڈ لاگ)',
@@ -1006,7 +1007,7 @@ HTML tags جانچئے.',
 'ignorewarning' => 'انتباہ نظرانداز کرتے ہوۓ بہرصورت ملف (فائل) کو محفوظ کرلیا جاۓ۔',
 'ignorewarnings' => 'ہر انتباہ نظرانداز کردیا جاۓ۔',
 'badfilename' => 'ملف (فائل) کا نام "$1" ، تبدیل کردیا گیا۔',
-'fileexists' => "اس نام سے ایک ملف (فائل) پہلے ہی موجود ہے، اگر آپ کو یقین نہ ہو کہ اسے حذف کردیا جانا چاہیۓ تو براہ کرم  '''<tt>[[:$1]]</tt>''' کو ایک نظر دیکھ لیجیۓ۔ [[$1|thumb]]",
+'fileexists' => 'اس نام سے ایک ملف (فائل) پہلے ہی موجود ہے، اگر آپ کو یقین نہ ہو کہ اسے حذف کردیا جانا چاہیۓ تو براہ کرم  <strong>[[:$1]]</strong> کو ایک نظر دیکھ لیجیۓ۔ [[$1|thumb]]',
 'uploadwarning' => 'انتباہ بہ سلسلۂ زبراثقال',
 'savefile' => 'فائل محفوظ کریں',
 'uploadedimage' => 'زبراثقال (اپ لوڈ) براۓ "[[$1]]"',
@@ -1406,6 +1407,34 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'watchlisttools-edit' => 'زیرِنظرفہرست دیکھیں اور تدوین کریں',
 'watchlisttools-raw' => 'خام زیرِنظرفہرست تدوین کریں',
 
+# Iranian month names
+'iranian-calendar-m1' => 'فروردین',
+'iranian-calendar-m2' => 'اردیبهشت',
+'iranian-calendar-m3' => 'خرداد',
+'iranian-calendar-m4' => 'تیر',
+'iranian-calendar-m5' => 'مرداد',
+'iranian-calendar-m6' => 'شهریور',
+'iranian-calendar-m7' => 'مهر',
+'iranian-calendar-m8' => 'آبان',
+'iranian-calendar-m9' => 'آذر',
+'iranian-calendar-m10' => 'دی',
+'iranian-calendar-m11' => 'بهمن',
+'iranian-calendar-m12' => 'اسفند',
+
+# Hijri month names
+'hijri-calendar-m1' => 'محرم',
+'hijri-calendar-m2' => 'صفر',
+'hijri-calendar-m3' => 'ربیع الاول',
+'hijri-calendar-m4' => 'ربیع الثانی',
+'hijri-calendar-m5' => 'جمادی الاول',
+'hijri-calendar-m6' => 'جمادی الثانی',
+'hijri-calendar-m7' => 'رجب',
+'hijri-calendar-m8' => 'شعبان',
+'hijri-calendar-m9' => 'رمضان',
+'hijri-calendar-m10' => 'شوال',
+'hijri-calendar-m11' => 'ذوالقعدہ',
+'hijri-calendar-m12' => 'ذوالحجہ',
+
 # Special:Version
 'version' => 'ورژن',
 
index 9de9bda..1aa0f86 100644 (file)
@@ -865,9 +865,6 @@ Yaqinda sodir etilgan yoʻqotishlar uchun $2ni koʻring.',
 # Info page
 'pageinfo-title' => '"$1" sahifasi haqida maʼlumot',
 'pageinfo-header-edits' => 'Tahrirlar',
-'pageinfo-header-watchlist' => 'Kuzatuv roʻyxati',
-'pageinfo-subjectpage' => 'Sahifa:',
-'pageinfo-talkpage' => 'Munozara sahifasi',
 'pageinfo-watchers' => 'Kuzatuvchilar soni',
 'pageinfo-edits' => 'Tahrirlar soni',
 
index 73c51f3..b8b41a4 100644 (file)
@@ -1506,9 +1506,9 @@ Qua ghe xe el registro de le scancelassion e dei spostamenti:",
 Par védar o sercar i file zà caricà, consulta la [[Special:FileList|lista dei file caricà]]. I caricamenti de file te pol védarli nel [[Special:Log/upload|registro dei caricamenti]], le scancelasion nel [[Special:Log/delete|registro de le scancelasion]].
 
 Par métar un file drento de na pagina, te ghè da inserir un colegamento fato come uno de sti qua:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' par doparar la version conpleta de sto file
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|testo alternativo]]</nowiki></tt>'''par inserir sto file co na larghessa de 200 pixel in te un riquadro a sinistra con 'testo alternativo' come descrission
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' par inserir diretamente un colegamento al file sensa che el se véda in te la pagina",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' par doparar la version conpleta de sto file
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|testo alternativo]]</nowiki></code>'''par inserir sto file co na larghessa de 200 pixel in te un riquadro a sinistra con 'testo alternativo' come descrission
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' par inserir diretamente un colegamento al file sensa che el se véda in te la pagina",
 'upload-permitted' => 'Tipi de file consentìi: $1.',
 'upload-preferred' => 'Tipi de file consiglià: $1.',
 'upload-prohibited' => 'Tipi de file mìa consentìi: $1.',
@@ -1550,19 +1550,19 @@ Varda la [[Special:NewFiles|galerìa dei file nóvi]] par na vision de insieme.'
 'largefileserver' => 'El file el supera le dimension consentìe da la configurazion del server.',
 'emptyfile' => 'El file che te ghè caricà el xè aparentemente vodo. Podarìa èssar par un eror nel nome del file. Par piaser controla se te vol dal bon caricar sto file.',
 'windows-nonascii-filename' => 'Sta wiki no suporta nomi de file co carateri speciałi.',
-'fileexists' => "Un file co sto nome el esiste de xà, par piaser controła '''<tt>[[:$1]]</tt>''' se no te sì sicuro de volerlo sovrascrìvar.
-[[$1|thumb]]",
-'filepageexists' => "La pagina de descrizion de sto file la xe zà stà creà a '''<tt>[[:$1]]</tt>''', anca se no ghe xe gnancora un file co sto nome.
+'fileexists' => 'Un file co sto nome el esiste de xà, par piaser controła <strong>[[:$1]]</strong> se no te sì sicuro de volerlo sovrascrìvar.
+[[$1|thumb]]',
+'filepageexists' => "La pagina de descrizion de sto file la xe zà stà creà a <strong>[[:$1]]</strong>, anca se no ghe xe gnancora un file co sto nome.
 La descrizion de l'ogeto inserìa in fase de caricamento no la vegnarà mìa fora su la pagina de discussion.
 Par far sì che l'ogeto el conpaja su la pagina de discussion, sarà necessario modificarla a man. [[$1|thumb]]",
-'fileexists-extension' => "Ghe xe zà un file co un nome che ghe someja a quel lì: [[$2|thumb]]
-* Nome del file cargà: '''<tt>[[:$1]]</tt>'''
-* Nome del file esistente: '''<tt>[[:$2]]</tt>'''
-Par piaser siegli un nome difarente.",
+'fileexists-extension' => 'Ghe xe zà un file co un nome che ghe someja a quel lì: [[$2|thumb]]
+* Nome del file cargà: <strong>[[:$1]]</strong>
+* Nome del file esistente: <strong>[[:$2]]</strong>
+Par piaser siegli un nome difarente.',
 'fileexists-thumbnail-yes' => "El file el pararìa èssar el risultato de n'anteprima ''(thumbnail)''. [[$1|thumb]]
-Verifica, par confronto, el file '''<tt>[[:$1]]</tt>'''.
+Verifica, par confronto, el file <strong>[[:$1]]</strong>.
 Se se trata de la stessa imagine, ne le dimension originali, no xe necessario caricarghene altre anteprime.",
-'file-thumbnail-no' => "El nome del file el scuminsia con '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "El nome del file el scuminsia con <strong>$1</strong>.
 Pararìà quindi che el fusse el risultato de n'anteprima ''(thumbnail)''.
 Se se dispone de l'imagine ne la risoluzion originale, se prega di cargarla. In caso contrario, se prega de canbiar el nome del file.",
 'fileexists-forbidden' => 'Un file con sto nome el esiste xà, e no se pode scrìvarghe insima.
@@ -1765,7 +1765,7 @@ Qua soto vien mostrà la descrission presente in te la [$2 pàxena de descrissio
 
 # MIME search
 'mimesearch' => 'Serca in base al tipo MIME',
-'mimesearch-summary' => 'Sta pagina la consente de filtrare i file in base al tipo MIME. Inserissi la stringa de riserca ne la forma tipo/sototipo, ad es. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Sta pagina la consente de filtrare i file in base al tipo MIME. Inserissi la stringa de riserca ne la forma tipo/sototipo, ad es. <code>image/jpeg</code>.',
 'mimetype' => 'Tipo MIME:',
 'download' => 'descarga',
 
@@ -1952,7 +1952,7 @@ Varda anca le [[Special:WantedCategories|categorie domandà]].',
 'linksearch-ok' => 'Serca',
 'linksearch-text' => 'Xe posibiłe doparare metacarateri, come "*.wikipedia.org".<br />
 Xe necesario almanco un dominio de primo liveło, tipo "*.org".<br />
-Protocołi suportadi: <tt>$1</tt> (no sta xontare nesuno de sti cuà inte ła to riçerca).',
+Protocołi suportadi: <code>$1</code> (no sta xontare nesuno de sti cuà inte ła to riçerca).',
 'linksearch-line' => '$1 presente ne la pagina $2',
 'linksearch-error' => "I metacaràteri i pode vegner doparài solo a l'inizio del nome de l'host.",
 
index 081cc66..5ffdd28 100644 (file)
@@ -1343,8 +1343,8 @@ Lasktud {{PLURAL:$3|failantip om|failantipad oma}} $2.',
 Voib olda, necen sü om vär failannimen kirjutamine.
 Olgat hüväd, kodvgat, todeks-ik tö tahtoit jügutoitta nece fail.",
 'windows-nonascii-filename' => 'Neche vikihe ei sa tehta failannimid specialižiden znamoidenke.',
-'fileexists' => "Fail mugoman nimenke om jo olmas, olgat hüväd, kodvgat '''<tt>[[:$1]]</tt>''' ku teil ei ole varmdust, tahtoižit-ik tö toižetada sidä.
-[[$1|thumb]]",
+'fileexists' => 'Fail mugoman nimenke om jo olmas, olgat hüväd, kodvgat <strong>[[:$1]]</strong> ku teil ei ole varmdust, tahtoižit-ik tö toižetada sidä.
+[[$1|thumb]]',
 'file-exists-duplicate' => 'Nece fail om {{PLURAL:$1|necen failan|neniden failoiden}} dublikat:',
 'uploadwarning' => 'Varutuz jügutoitmižes',
 'savefile' => 'Kirjutada fail',
@@ -2375,14 +2375,10 @@ Voib olda, necil lehtpolel om kosketuz irdsaitale, kudamb om mustas nimikirjutes
 
 # Info page
 'pageinfo-header-edits' => 'Redakcijad',
-'pageinfo-header-watchlist' => 'Kaclendnimikirjutez',
-'pageinfo-header-views' => 'Kacundad',
-'pageinfo-subjectpage' => 'Lehtpol’',
-'pageinfo-talkpage' => "Lodulehtpol'",
+'pageinfo-views' => 'Kacundoiden lugu',
 'pageinfo-watchers' => 'Kaclijoiden lugu',
 'pageinfo-edits' => 'Redakcijoiden lugumär',
 'pageinfo-authors' => 'Erazvuiččiden avtoroiden lugu',
-'pageinfo-views' => 'Kacundoiden lugu',
 
 # Skin names
 'skinname-standard' => 'Klassine',
index a7282ea..deb92e2 100644 (file)
@@ -559,6 +559,10 @@ $1',
 'youhavenewmessages' => 'Bạn có $1 ($2).',
 'newmessageslink' => 'tin nhắn mới',
 'newmessagesdifflink' => 'thay đổi gần nhất',
+'youhavenewmessagesfromusers' => 'Bạn có $1 từ {{PLURAL:$3|người dùng khác|$3 người dùng}} ($2).',
+'youhavenewmessagesmanyusers' => 'Bạn có $1 từ nhiều người dùng ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1}}tin nhắn mới',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|thay đổi|các thay đổi}} gần đây',
 'youhavenewmessagesmulti' => 'Bạn có tin nhắn mới ở $1',
 'editsection' => 'sửa',
 'editold' => 'sửa',
@@ -613,9 +617,9 @@ Có danh sách trang đặc biệt tại [[Special:SpecialPages|{{int:specialpag
 'dberrortext' => 'Đã xảy ra lỗi cú pháp trong truy vấn cơ sở dữ liệu.
 Có vẻ như nguyên nhân của vấn đề này xuất phát từ một lỗi trong phần mềm.
 Truy vấn vừa rồi là:
-<blockquote><tt>$1</tt></blockquote>
-từ hàm “<tt>$2</tt>”.
-Cơ sở dữ liệu  báo lỗi “<tt>$3: $4</tt>”.',
+<blockquote><code>$1</code></blockquote>
+từ hàm “<code>$2</code>”.
+Cơ sở dữ liệu  báo lỗi “<samp>$3: $4</samp>”.',
 'dberrortextcl' => 'Đã xảy ra lỗi cú pháp trong truy vấn cơ sở dữ liệu.
 Truy vấn vừa rồi là:
 “$1”
@@ -958,7 +962,6 @@ Xem chi tiết trong [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 * '''Firefox / Safari:''' Giữ phím ''Shift'' trong khi nhấn ''Reload'' (''Tải lại''), hoặc nhấn tổ hợp ''Ctrl-F5'' hay ''Ctrl-R'' (⌘R trên Mac)
 * '''Google Chrome:''' Nhấn tổ hợp ''Ctrl-Shift-R'' (⇧⌘R trên Mac)
 * '''Internet Explorer:''' Giữ phím ''Ctrl'' trong khi nhấn ''Refresh'', hoặc nhấn tổ hợp ''Ctrl-F5''
-* '''Konqueror:''' Nhấn nút ''Reload'' hoặc nhấn ''F5''
 * '''Opera:''' Xóa bộ nhớ đệm trong ''Tools → Preferences''",
 'usercssyoucanpreview' => "'''Mẹo:''' Sử dụng nút “{{int:showpreview}}” để kiểm thử bản CSS của bạn trước khi lưu trang.",
 'userjsyoucanpreview' => "'''Mẹo:''' Sử dụng nút “{{int:showpreview}}” để kiểm thử bản JS của bạn trước khi lưu trang.",
@@ -1679,9 +1682,9 @@ Nhật trình xóa và di chuyển của trang này được ghi ở dưới đ
 việc tải lên và tải lên lại được ghi lại trong [[Special:Log/upload|nhật trình tải lên]], việc xóa đi được ghi trong [[Special:Log/delete|nhật trình xóa]].
 
 Để đưa tập tin vào trang, hãy dùng liên kết có một trong các dạng sau:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Tập tin.jpg]]</nowiki></tt>''' để phiên bản đầy đủ của tập tin
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Tập tin.png|200px|nhỏ|trái|văn bản thay thế]]</nowiki></tt>''' để dùng hình đã được co lại còn 200 điểm ảnh chiều rộng đặt trong một hộp ở lề bên trái với 'văn bản thay thế' dùng để mô tả
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Tập tin.ogg]]</nowiki></tt>''' để liên kết trực tiếp đến tập tin mà không hiển thị nó",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Tập tin.jpg]]</nowiki></code>''' để phiên bản đầy đủ của tập tin
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Tập tin.png|200px|nhỏ|trái|văn bản thay thế]]</nowiki></code>''' để dùng hình đã được co lại còn 200 điểm ảnh chiều rộng đặt trong một hộp ở lề bên trái với 'văn bản thay thế' dùng để mô tả
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Tập tin.ogg]]</nowiki></code>''' để liên kết trực tiếp đến tập tin mà không hiển thị nó",
 'upload-permitted' => 'Các định dạng tập tin được phép tải lên: $1.',
 'upload-preferred' => 'Các định dạng tập tin nên dùng: $1.',
 'upload-prohibited' => 'Các định dạng tập tin bị cấm: $1.',
@@ -1725,20 +1728,20 @@ Chỉ chấp nhận {{PLURAL:$3|loại tập tin|các loại tập tin}} sau: $2
 'largefileserver' => 'Tập tin này quá lớn so với khả năng phục vụ của máy chủ.',
 'emptyfile' => 'Tập tin bạn vừa mới tải lên có vẻ trống không. Điều này có thể xảy ra khi bạn đánh sai tên tập tin. Xin hãy chắc chắn rằng bạn thật sự muốn tải lên tập tin này.',
 'windows-nonascii-filename' => 'Wiki này không hỗ trợ ký tự đặc biệt trong tên tập tin.',
-'fileexists' => "Một tập tin với tên này đã tồn tại, xin hãy kiểm tra lại '''<tt>[[:$1]]</tt>''' nếu bạn không chắc bạn có muốn thay đổi nó hay không.
-[[$1|thumb]]",
-'filepageexists' => "Trang miêu tả của tập tin này đã được tạo tại '''<tt>[[:\$1]]</tt>''', nhưng hiện không có tập tin nào có tên như vậy.
-Những gì bạn ghi trong ô \"Tóm tắt tập tin\" sẽ không hiện ra ở trang miêu tả.
+'fileexists' => 'Một tập tin với tên này đã tồn tại, xin hãy kiểm tra lại <strong>[[:$1]]</strong> nếu bạn không chắc bạn có muốn thay đổi nó hay không.
+[[$1|thumb]]',
+'filepageexists' => 'Trang miêu tả của tập tin này đã được tạo tại <strong>[[:$1]]</strong>, nhưng hiện không có tập tin nào có tên như vậy.
+Những gì bạn ghi trong ô "Tóm tắt tập tin" sẽ không hiện ra ở trang miêu tả.
 Để khiến nó hiển thị, bạn cần phải sửa đổi trang đó bằng tay.
-[[\$1|thumb]]",
-'fileexists-extension' => "Hiện có một tập tin trùng tên: [[$2|thumb]]
-* Tên tập tin đang tải lên: '''<tt>[[:$1]]</tt>'''
-* Tên tập tin có từ trước: '''<tt>[[:$2]]</tt>'''
-Xin hãy chọn một tên tập tin khác.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Hiện có một tập tin trùng tên: [[$2|thumb]]
+* Tên tập tin đang tải lên: <strong>[[:$1]]</strong>
+* Tên tập tin có từ trước: <strong>[[:$2]]</strong>
+Xin hãy chọn một tên tập tin khác.',
 'fileexists-thumbnail-yes' => "Tập tin này có vẻ là hình có kích thước thu gọn ''(hình thu nhỏ)''. [[$1|thumb]]
-Xin kiểm tra lại tập tin '''<tt>[[:$1]]</tt>'''.
+Xin kiểm tra lại tập tin <strong>[[:$1]]</strong>.
 Nếu tập tin được kiểm tra trùng với hình có kích cỡ gốc thì không cần thiết tải lên một hình thu nhỏ khác.",
-'file-thumbnail-no' => "Tên tập tin bắt đầu bằng '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Tên tập tin bắt đầu bằng <strong>$1</strong>.
 Có vẻ đây là bản thu nhỏ của hình gốc ''(thumbnail)''.
 Nếu bạn có hình ở độ phân giải tối đa, xin hãy tải bản đó lên, nếu không xin hãy đổi lại tên tập tin.",
 'fileexists-forbidden' => 'Đã có tập tin với tên gọi này, và nó không thể bị ghi đè.
@@ -1757,7 +1760,7 @@ Nếu bạn vẫn muốn tải tập tin của bạn lên, xin hãy quay lại v
 'uploadfromurl-queued' => 'Tập tin của bạn đã được xếp vào hàng đợi tải lên.',
 'uploaddisabledtext' => 'Chức năng tải tập tin đã bị tắt.',
 'php-uploaddisabledtext' => 'Việc tải tập tin trong PHP đã bị tắt. Xin hãy kiểm tra lại thiết lập file_uploads.',
-'uploadscripted' => 'Tập tin này có chứa mã HTML hoặc script có thể khiến trình duyệt web thông dịch sai.',
+'uploadscripted' => 'Tập tin này có chứa mã HTML hoặc kịch bản có thể khiến trình duyệt web thông dịch sai.',
 'uploadvirus' => 'Tập tin có virút! Chi tiết: $1',
 'uploadjava' => 'Tập tin ZIP này chứa một tập tin Java .class.
 Không được phép tải lên các tập tin Java, bởi vì chúng có thể vượt qua các hạn chế bảo mật.',
@@ -1965,6 +1968,7 @@ Có lẽ bạn muốn miêu tả nó trên [$2 trang miêu tả tập tin] tại
 'shared-repo-from' => 'tại $1',
 'shared-repo' => 'kho lưu trữ dùng chung',
 'filepage.css' => '/* Mã CSS tại đây sẽ ảnh hướng đến trang miêu tả tập tin, cũng như các wiki khách bên ngoài dựa trên wiki này */',
+'upload-disallowed-here' => 'Rất tiếc, bạn không có thể ghi đè lên hình ảnh này.',
 
 # File reversion
 'filerevert' => 'Lùi lại phiên bản của $1',
@@ -1998,7 +2002,7 @@ Có lẽ bạn muốn miêu tả nó trên [$2 trang miêu tả tập tin] tại
 
 # MIME search
 'mimesearch' => 'Tìm kiếm theo định dạng',
-'mimesearch-summary' => 'Trang này có khả năng lọc tập tin theo kiểu MIME. Đầu vào: kiểu-nội-dung/kiểu-phụ, v.d. <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Trang này có khả năng lọc tập tin theo kiểu MIME. Đầu vào: kiểu-nội-dung/kiểu-phụ, v.d. <code>image/jpeg</code>.',
 'mimetype' => 'Kiểu MIME:',
 'download' => 'tải về',
 
@@ -2071,6 +2075,7 @@ Các mục <del>bị gạch bỏ</del> là các trang đã được sửa.',
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|byte}}',
 'ncategories' => '$1 {{PLURAL:$1|thể loại|thể loại}}',
+'ninterwikis' => '$1 liên kết liên wiki',
 'nlinks' => '$1 {{PLURAL:$1|liên kết|liên kết}}',
 'nmembers' => '$1 {{PLURAL:$1|trang|trang}}',
 'nrevisions' => '$1 {{PLURAL:$1|phiên bản|phiên bản}}',
@@ -2099,6 +2104,7 @@ Các mục <del>bị gạch bỏ</del> là các trang đã được sửa.',
 'mostlinkedtemplates' => 'Bản mẫu được liên kết đến nhiều nhất',
 'mostcategories' => 'Các trang có nhiều thể loại nhất',
 'mostimages' => 'Tập tin được liên kết đến nhiều nhất',
+'mostinterwikis' => 'Các trang có nhiều liên kết liên wiki nhất',
 'mostrevisions' => 'Các trang được sửa đổi nhiều lần nhất',
 'prefixindex' => 'Tất cả các trang trùng với tiền tố',
 'prefixindex-namespace' => 'Tất cả các trang trùng với tiền tố (không gian $1)',
@@ -2196,7 +2202,7 @@ Xem thêm [[Special:WantedCategories|thể loại cần thiết]].',
 'linksearch-pat' => 'Mẫu liên kết:',
 'linksearch-ns' => 'Không gian tên:',
 'linksearch-ok' => 'Tìm kiếm',
-'linksearch-text' => "Bạn có thể sử dụng ký tự đại diện (''wildcard''), ví dụ “*.wikipedia.org”; ít nhất phải có tên miền cấp cao nhất, thí dụ “*.org”.<br />Các giao thức này được hỗ trợ: <tt>$1</tt>; vui lòng không đưa giao thức vào truy vấn.",
+'linksearch-text' => "Bạn có thể sử dụng ký tự đại diện (''wildcard''), ví dụ “*.wikipedia.org”; ít nhất phải có tên miền cấp cao nhất, thí dụ “*.org”.<br />Các giao thức này được hỗ trợ: <code>$1</code>; vui lòng không đưa giao thức vào truy vấn.",
 'linksearch-line' => '$1 được liên kết từ $2',
 'linksearch-error' => "Chỉ được sử dụng ký tự đại diện (''wildcard'') vào đầu tên miền (''hostname'').",
 
@@ -2242,6 +2248,8 @@ Có [[{{MediaWiki:Listgrouprights-helppage}}|thông tin thêm]] về từng nhó
 'mailnologin' => 'Không có địa chỉ gửi thư',
 'mailnologintext' => 'Bạn phải [[Special:UserLogin|đăng nhập]] và khai báo một địa chỉ thư điện tử hợp lệ trong phần [[Special:Preferences|tùy chọn cá nhân]] thì mới gửi được thư cho người khác.',
 'emailuser' => 'Gửi thư cho người này',
+'emailuser-title-target' => '{{GENDER:$1}}Gửi thư cho người dùng này',
+'emailuser-title-notarget' => 'Gửi thư cho người dùng',
 'emailpage' => 'Gửi thư',
 'emailpagetext' => 'Mẫu dưới đây sẽ gửi một bức thư điện tử tới người dùng này.
 Địa chỉ thư điện tử mà bạn đã cung cấp trong [[Special:Preferences|tùy chọn cá nhân của mình]] sẽ xuất hiện trong phần địa chỉ “Người gửi” của bức thư, do đó người nhận sẽ có thể trả lời trực tiếp cho bạn.',
@@ -2878,8 +2886,9 @@ Tất cả những lần nhập trang từ wiki khác được ghi lại ở [[S
 'import-interwiki-source' => 'Wiki/trang mã nguồn:',
 'import-interwiki-history' => 'Sao chép tất cả các phiên bản cũ của trang này',
 'import-interwiki-templates' => 'Gồm tất cả các bản mẫu',
-'import-interwiki-submit' => 'Nhập trang',
+'import-interwiki-submit' => 'Nhập',
 'import-interwiki-namespace' => 'Không gian tên đích:',
+'import-interwiki-rootpage' => 'Trang gốc đích (tùy chọn):',
 'import-upload-filename' => 'Tên tập tin:',
 'import-comment' => 'Lý do:',
 'importtext' => 'Xin hãy xuất tập tin từ wiki nguồn dùng [[Special:Export|công cụ xuất]].
@@ -2912,6 +2921,9 @@ Lưu nó vào máy tính của bạn rồi tải nó lên đây.',
 'import-error-interwiki' => 'Trang “$1” không được nhập vì tên của nó được dành riêng cho liên kết ngoài (liên wiki).',
 'import-error-special' => 'Trang “$1” không được nhập vì nó thuộc về không gian tên đặc biệt không cho phép các trang không mặc định.',
 'import-error-invalid' => 'Trang “$1” không được nhập vì tên của nó không hợp lệ.',
+'import-options-wrong' => '{{PLURAL:$2|Tùy chọn|Các tùy chọn}} có vấn đề: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Trang đích không hợp lệ.',
+'import-rootpage-nosubpage' => 'Không gian tên “$1” của trang gốc không cho phép các trang con.',
 
 # Import log
 'importlogpage' => 'Nhật trình nhập trang',
@@ -3063,16 +3075,35 @@ Lưu nó vào máy tính của bạn rồi tải nó lên đây.',
 
 # Info page
 'pageinfo-title' => 'Thông tin về “$1”',
-'pageinfo-header-edits' => 'Lần sửa',
-'pageinfo-header-watchlist' => 'Danh sách theo dõi',
-'pageinfo-header-views' => 'Lần xem',
-'pageinfo-subjectpage' => 'Trang',
-'pageinfo-talkpage' => 'Trang thảo luận',
-'pageinfo-watchers' => 'Số người theo dõi',
-'pageinfo-edits' => 'Số lần sửa đổi',
-'pageinfo-authors' => 'Số tác giả riêng',
+'pageinfo-header-basic' => 'Thông tin cơ bản',
+'pageinfo-header-edits' => 'Lịch sử sửa đổi',
+'pageinfo-header-restrictions' => 'Mức khóa trang',
+'pageinfo-header-properties' => 'Thuộc tính trang',
+'pageinfo-display-title' => 'Tên hiển thị',
+'pageinfo-default-sort' => 'Từ khóa sắp xếp mặc định',
+'pageinfo-length' => 'Chiều dài của trang (byte)',
+'pageinfo-article-id' => 'Mã số trang',
+'pageinfo-robot-policy' => 'Trạng thái công cụ tìm kiếm',
+'pageinfo-robot-index' => 'Có thể ghi chỉ mục',
+'pageinfo-robot-noindex' => 'Không thể ghi chỉ mục',
 'pageinfo-views' => 'Số lần xem',
-'pageinfo-viewsperedit' => 'Số lần xem mỗi sửa đổi',
+'pageinfo-watchers' => 'Số người theo dõi trang',
+'pageinfo-redirects-name' => 'Số trang đổi hướng đến trang này',
+'pageinfo-redirects-value' => '$1',
+'pageinfo-subpages-name' => 'Số trang con của trang này',
+'pageinfo-subpages-value' => '$1 ($2 đổi hướng; $3 không đổi hướng)',
+'pageinfo-firstuser' => 'Người dùng tạo trang',
+'pageinfo-firsttime' => 'Lúc tạo trang',
+'pageinfo-lastuser' => 'Người dùng cuối cùng sửa đổi',
+'pageinfo-lasttime' => 'Lúc sửa đổi cuối cùng',
+'pageinfo-edits' => 'Tổng số lần sửa đổi',
+'pageinfo-authors' => 'Tổng số tác giả riêng',
+'pageinfo-recent-edits' => 'Số lần sửa đổi gần đây (trong $1 qua)',
+'pageinfo-recent-authors' => 'Số người dùng sửa đổi gần đây',
+'pageinfo-restriction' => 'Mức khóa trang (<code>{{lcfirst:$1}}</code>)',
+'pageinfo-magic-words' => 'Từ thần chú ($1)',
+'pageinfo-hidden-categories' => 'Thể loại ẩn ($1)',
+'pageinfo-templates' => 'Bản mẫu được nhúng ($1)',
 
 # Skin names
 'skinname-standard' => 'Cổ điển',
@@ -3121,19 +3152,22 @@ Nếu thực thi nó máy tính của bạn có thể bị tiếm quyền.",
 'thumbsize' => 'Cỡ hình thu nhỏ:',
 'widthheightpage' => '$1 × $2, $3 {{PLURAL:$3|trang|trang}}',
 'file-info' => 'kích thước tập tin: $1, kiểu MIME: $2',
-'file-info-size' => '$1 × $2 điểm ảnh, kích thước tập tin: $3, kiểu MIME: $4',
-'file-info-size-pages' => '$1 × $2 điểm ảnh, kích thước tập tin: $3, kiểu MIME: $4, $5 trang',
+'file-info-size' => '$1×$2 điểm ảnh, kích thước tập tin: $3, kiểu MIME: $4',
+'file-info-size-pages' => '$1×$2 điểm ảnh, kích thước tập tin: $3, kiểu MIME: $4, $5 trang',
 'file-nohires' => 'Không có độ phân giải cao hơn.',
-'svg-long-desc' => 'tập tin SVG, $1 × $2 điểm ảnh trên danh nghĩa, kích thước: $3',
+'svg-long-desc' => 'tập tin SVG, $1×$2 điểm ảnh trên danh nghĩa, kích thước: $3',
+'svg-long-desc-animated' => 'tập tin hình động SVG, $1×$2 điểm ảnh trên danh nghĩa, kích thước: $3',
 'show-big-image' => 'Độ phân giải tối đa',
 'show-big-image-preview' => 'Kích thước của ảnh xem thử: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Độ phân giải|Các độ phân giải}} khác: $1.',
-'show-big-image-size' => '$1 × $2 điểm ảnh',
+'show-big-image-size' => '$1×$2 điểm ảnh',
 'file-info-gif-looped' => 'có lặp',
 'file-info-gif-frames' => '$1 {{PLURAL:$1|khung ảnh|khung ảnh}}',
 'file-info-png-looped' => 'có lặp',
 'file-info-png-repeat' => 'chơi $1 lần',
 'file-info-png-frames' => '$1 khung ảnh',
+'file-no-thumb-animation' => "'''Lưu ý: Do hạn chế kỹ thuật, các hình nhỏ của tập tin này sẽ không phải là hình động.'''",
+'file-no-thumb-animation-gif' => "'''Lưu ý: Do hạn chế kỹ thuật, các hình nhỏ của những hình GIF có độ phân giải cao, chẳng hạn tập tin này, sẽ không phải là hình động.'''",
 
 # Special:NewFiles
 'newimages' => 'Trang trưng bày hình ảnh mới',
@@ -3888,7 +3922,7 @@ Các hình ảnh được hiển thị ở kích thước tối đa, còn các l
 'fileduplicatesearch-legend' => 'Tìm kiếm tập tin trùng lắp',
 'fileduplicatesearch-filename' => 'Tên tập tin:',
 'fileduplicatesearch-submit' => 'Tìm kiếm',
-'fileduplicatesearch-info' => '$1 × $2 điểm ảnh<br />Kích thước tập tin: $3<br />Kiểu MIME: $4',
+'fileduplicatesearch-info' => '$1×$2 điểm ảnh<br />Kích thước tập tin: $3<br />Kiểu MIME: $4',
 'fileduplicatesearch-result-1' => 'Không có bản sao y hệt với tập tin “$1”.',
 'fileduplicatesearch-result-n' => 'Có {{PLURAL:$2|1 bản sao|$2 bản sao}} y hệt với tập tin “$1”.',
 'fileduplicatesearch-noresults' => 'Không tìm thấy tập tin nào tên “$1”.',
index d382711..7f0775d 100644 (file)
@@ -1244,9 +1244,9 @@ Pads [[Special:Watchlist|galädaliseda olik]] '''pakazetons'''.",
 Ad logön u sukön ragivis ya pelöpükölis, gebolös [[Special:FileList|lisedi ragivas pelöpüköl]]; (dönu)löpukams palisedons i su [[Special:Log/upload|jenotalised löpükamas]], moükams su [[Special:Log/delete|jenotalised moükamas]].
 
 Ad pladön ragivi ini pad semik, gebolös yümi fomätü:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Ragiv.jpg]]</nowiki></tt>''' ad pladön ragivi in fomät lölöfik;
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Ragiv.png|200px|thumb|left|vödem]]</nowiki></tt>''' ad pladön ragivi in fomät smalik (vidotü pixels 200) in bügil nedeto labü „vödem“ as bepenam;
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Ragiv.ogg]]</nowiki></tt>''' ad yümön nemediko ad ragiv nes jonön oni.",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Ragiv.jpg]]</nowiki></code>''' ad pladön ragivi in fomät lölöfik;
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Ragiv.png|200px|thumb|left|vödem]]</nowiki></code>''' ad pladön ragivi in fomät smalik (vidotü pixels 200) in bügil nedeto labü „vödem“ as bepenam;
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Ragiv.ogg]]</nowiki></code>''' ad yümön nemediko ad ragiv nes jonön oni.",
 'upload-permitted' => 'Ragivasots pedälöl: $1.',
 'upload-preferred' => 'Ragivasots buik: $1.',
 'upload-prohibited' => 'Ragivasots peproiböl: $1.',
@@ -1275,20 +1275,20 @@ Ad pladön ragivi ini pad semik, gebolös yümi fomätü:
 'large-file' => 'Pakomandos, das ragivs no binons gretikums ka mö $1; ragiv at binon mö $2.',
 'largefileserver' => 'Ragiv at binon tu gretik: dünanünöm no kanon dälon oni.',
 'emptyfile' => 'Ragiv fa ol pelöpüköl binon jiniko vägik. Kod atosa äbinon ba pöl pö ragivanem. Vilol-li jenöfo löpükön ragivi at?',
-'fileexists' => "Ragiv labü nem at ya dabinon, logolös, begö! '''<tt>[[:$1]]</tt>''' üf no sevol fümiko, va vilol votükön oni.
-[[$1|thumb]]",
-'filepageexists' => "Bepenamapad ragiva at ya pejafon ('''<tt>[[:$1]]</tt>'''), ab ragiv nonik labü nem at dabinon anu.
+'fileexists' => 'Ragiv labü nem at ya dabinon, logolös, begö! <strong>[[:$1]]</strong> üf no sevol fümiko, va vilol votükön oni.
+[[$1|thumb]]',
+'filepageexists' => 'Bepenamapad ragiva at ya pejafon (<strong>[[:$1]]</strong>), ab ragiv nonik labü nem at dabinon anu.
 Naböfodönuam olik no opubon su bepenamapad.
 Ad pübön oni us, onedol redakön oni ol it.
-[[$1|thumb]]",
-'fileexists-extension' => "Ragiv labü nem sümik ya dabinon: [[$2|thumb]]
-* Nem ragiva palöpüköl: '''<tt>[[:$1]]</tt>'''
-* Nem ragiva dabinöl: '''<tt>[[:$2]]</tt>'''
-Välolös, begö! nemi difik.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Ragiv labü nem sümik ya dabinon: [[$2|thumb]]
+* Nem ragiva palöpüköl: <strong>[[:$1]]</strong>
+* Nem ragiva dabinöl: <strong>[[:$2]]</strong>
+Välolös, begö! nemi difik.',
 'fileexists-thumbnail-yes' => "Ragiv at binon jiniko magoda gretota smalik ''(magodil)''. [[$1|thumb]]
-Logolös, begö! ragivi ya dabinöli: '''<tt>[[:$1]]</tt>'''.
+Logolös, begö! ragivi ya dabinöli: <strong>[[:$1]]</strong>.
 If ragiv ya dabinöli binon magod ot gretota rigik, no zesüdos ad löpükön magodili pluik.",
-'file-thumbnail-no' => "Ragivanem primon me '''<tt>$1</tt>'''. Binon jiniko magod gretota smalik ''(magodil)''.
+'file-thumbnail-no' => "Ragivanem primon me <strong>$1</strong>. Binon jiniko magod gretota smalik ''(magodil)''.
 Üf labol magodi at gretota rigik, löpükölos oni, pläo votükolös ragivanemi.",
 'fileexists-forbidden' => 'Ragiv labü nem at ya dabinon e no dalon paplaädön.
 If nog vilol lopükön ragivi olik, geikolös e gebolös nemi votik. [[File:$1|thumb|center|$1]]',
@@ -1415,7 +1415,7 @@ Lised dono jonon {{PLURAL:$1|padayümi balid|padayümis balid $1}} te lü ragiv
 # MIME search
 'mimesearch' => 'Sukön (MIME)',
 'mimesearch-summary' => 'Pad at mögükon ragivisulami ma MIME-sot.
-Primanünods: ninädasot/donasot, a.s. <tt>image/jpeg</tt>.',
+Primanünods: ninädasot/donasot, a.s. <code>image/jpeg</code>.',
 'mimetype' => 'Klad ela MIME:',
 'download' => 'donükön',
 
@@ -1597,7 +1597,7 @@ Logolös i [[Special:WantedCategories|klads pevilöl]].',
 'linksearch-ns' => 'Nemaspad:',
 'linksearch-ok' => 'Suk',
 'linksearch-text' => 'WilStelüls kanons pagebön, a.s. „*.wikipedia.org“.<br />
-Protoks pestütöl: <tt>$1</tt>',
+Protoks pestütöl: <code>$1</code>',
 'linksearch-line' => '$1 labon yümi se $2',
 'linksearch-error' => 'Stelüls kanons pubön te lä prim lotidiananema.',
 
@@ -2299,10 +2299,6 @@ Pad luveratiko ninädon yümi lü bevüresodatopäd plödik in blägalised.',
 
 # Info page
 'pageinfo-header-edits' => 'Redakams',
-'pageinfo-header-watchlist' => 'Galädalised',
-'pageinfo-header-views' => 'Logams',
-'pageinfo-subjectpage' => 'Pad',
-'pageinfo-talkpage' => 'Bespikapad',
 
 # Patrolling
 'markaspatrolleddiff' => 'Zepön',
index 938ad43..460de6a 100644 (file)
@@ -832,9 +832,6 @@ Että või muuttaa cülcia, mutta võittõ kattsoa sene lähtekoodi.',
 Toož, võittõ tširjutta väänteüssee süü.',
 'tooltip-summary' => 'Turvotuz',
 
-# Info page
-'pageinfo-subjectpage' => 'Cülci',
-
 # Browsing diffs
 'previousdiff' => '← Vanõpi muutuz',
 'nextdiff' => 'Uuvvõpi muutuz →',
index 0a8d785..830d17d 100644 (file)
@@ -1031,17 +1031,17 @@ Helüteedüstü puhul: <b>[[media:teedüstü.ogg]]</b>.
 'large-file' => 'Teedüstüq tohe-i ollaq suurõmbaq, ku $1, a taa teedüstü om $2.',
 'largefileserver' => 'Teedüstü om suurõmb ku server lupa.',
 'emptyfile' => "Teedüstü, midä sa proovõq üles laatiq paistus ollõv tühi. Kaeq üle, et kirotit nime õigõhe ja et taa olõ-i serverile pall'o suur.",
-'fileexists' => "Sama nimega teedüstü om jo olõman.
-Katso '''<tt>[[:$1]]</tt>''', ku sa olõ-i kimmäs, et tahat taad muutaq.
-[[$1|thumb]]",
-'fileexists-extension' => "Sääntse nimega teedüstü om jo olõman: [[$2|thumb]]
-* Üleslaaditava teedüstü nimi: '''<tt>[[:$1]]</tt>'''
-* Olõmanolõva teedüstü nimi: '''<tt>[[:$2]]</tt>'''
-Ainugõnõ vaih om laendusõ suurõ/väiku algustähe man. Kaeq perrä, kas naaq ommaq üts ja tuusama teedüstü.",
+'fileexists' => 'Sama nimega teedüstü om jo olõman.
+Katso <strong>[[:$1]]</strong>, ku sa olõ-i kimmäs, et tahat taad muutaq.
+[[$1|thumb]]',
+'fileexists-extension' => 'Sääntse nimega teedüstü om jo olõman: [[$2|thumb]]
+* Üleslaaditava teedüstü nimi: <strong>[[:$1]]</strong>
+* Olõmanolõva teedüstü nimi: <strong>[[:$2]]</strong>
+Ainugõnõ vaih om laendusõ suurõ/väiku algustähe man. Kaeq perrä, kas naaq ommaq üts ja tuusama teedüstü.',
 'fileexists-thumbnail-yes' => "Taa paistus ollõv vähändet pilt ''(thumbnail)''. [[$1|thumb]]
-Kaeq teedüstü '''<tt>[[:$1]]</tt>'''üle.
+Kaeq teedüstü <strong>[[:$1]]</strong>üle.
 Ku ülekaet teedüstü om sama pilt alguperälidsen suurusõn, sis olõ-i vaia eräle vähändedüt pilti üles laatiq.",
-'file-thumbnail-no' => "Teedüstü nimi nakkas pääle '''<tt>$1</tt>'''. Taa paistus ollõv vähändet pilt ''(thumbnail)''. Ku sul om olõman taa pilt tävven suurusõn, sis laadiq üles tuu, ku olõ-i, sis muudaq teedüstü nimi ärq.",
+'file-thumbnail-no' => "Teedüstü nimi nakkas pääle <strong>$1</strong>. Taa paistus ollõv vähändet pilt ''(thumbnail)''. Ku sul om olõman taa pilt tävven suurusõn, sis laadiq üles tuu, ku olõ-i, sis muudaq teedüstü nimi ärq.",
 'fileexists-forbidden' => 'Sääntse nimega teedüstü om jo olõman. Pästäq teedüstü tõõsõ nimega. Parhillanõ teedüstü: [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'Sama nimega teedüstü om jo olõman jaetuidõ teedüstüide hulgan. Pästäq teedüstü mõnõ tõõsõ nime ala. Parhillanõ teedüstü: [[File:$1|thumb|center|$1]]',
 'uploadwarning' => 'Üleslaatmishoiatus',
@@ -1126,7 +1126,7 @@ Ku ülekaet teedüstü om sama pilt alguperälidsen suurusõn, sis olõ-i vaia e
 
 # MIME search
 'mimesearch' => 'MIME-otsminõ',
-'mimesearch-summary' => 'Taa lehe pääl saat otsiq teedüstüid näide MIME-tüübi perrä. Kirodaq: sisutüüp/alltüüp, nt <tt>image/jpeg</tt>.',
+'mimesearch-summary' => 'Taa lehe pääl saat otsiq teedüstüid näide MIME-tüübi perrä. Kirodaq: sisutüüp/alltüüp, nt <code>image/jpeg</code>.',
 'mimetype' => 'MIME-tüüp:',
 'download' => 'laat',
 
index 0ec7dbe..ba804e7 100644 (file)
@@ -1151,9 +1151,9 @@ Po håyner ou cweri des fitchîs k' ont ddja stî rçuvous, alez sol [[Special:F
 Les (r)eberwetaedjes sont eto metos sol [[Special:Log/upload|djournå des eberwetaedjes]], les disfaçaedjes sol [[Special:Log/delete|ci des disfaçaedjes]].
 
 Po mete on fitchî dins ene pådje, eployîz on loyén del fôme:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fitchî.jpg]]</nowiki></tt>''' po-z eployî l' modêye e grandeu oridjinnåle do fitchî
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fitchî.png|200px|thumb|left|tecse di rawete]]</nowiki></tt>''' po håyner so ene lårdjeur di 200 picsels dins ene boesse (''thumb'') sol hintche (''left''; metoz ''right'' pol mete sol droete) avou «tecse di rawete» come discrijhaedje
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fitchî.ogg]]</nowiki></tt>''' po fé on loyén viè l' fitchî, sins l' håyner",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fitchî.jpg]]</nowiki></code>''' po-z eployî l' modêye e grandeu oridjinnåle do fitchî
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fitchî.png|200px|thumb|left|tecse di rawete]]</nowiki></code>''' po håyner so ene lårdjeur di 200 picsels dins ene boesse (''thumb'') sol hintche (''left''; metoz ''right'' pol mete sol droete) avou «tecse di rawete» come discrijhaedje
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fitchî.ogg]]</nowiki></code>''' po fé on loyén viè l' fitchî, sins l' håyner",
 'uploadlog' => 'djournå des eberwetaedjes',
 'uploadlogpage' => 'Djournå des eberwetaedjes',
 'uploadlogpagetext' => 'Chal pa dzo li djivêye des dierins eberwetaedjes.
@@ -1170,7 +1170,7 @@ Loukîz al [[Special:NewFiles|galreye des noveas fitchîs]] po ene vuwe pus vizu
 'badfilename' => "Li no d' l' imådje a stî candjî a «$1».",
 'largefileserver' => "Ci fitchî ci est pus pezant ki çou k' li sierveu est apontyî po-z accepter.",
 'emptyfile' => "I shonnreut kel fitchî k' vos eberwetez soeye vude. Çoula pout esse cåze d' ene aroke di tapaedje dins l' no do fitchî. Acertinez si vos vloz evoyî po do bon ç' fitchî ci, s' i vs plait.",
-'fileexists' => "On fitchî avou ç' no la egzistêye dedja, loukîz s' i vs plait a '''<tt>[[:$1]]</tt>''' po vs acertiner ki vos vloz bén replaecî l' fitchî avou l' ci ki vos eberwetez asteure, oubén si vos l' voloz eberweter dizo èn ôte no.
+'fileexists' => "On fitchî avou ç' no la egzistêye dedja, loukîz s' i vs plait a <strong>[[:$1]]</strong> po vs acertiner ki vos vloz bén replaecî l' fitchî avou l' ci ki vos eberwetez asteure, oubén si vos l' voloz eberweter dizo èn ôte no.
 [[$1|thumb]]",
 'fileexists-forbidden' => "I gn a ddja on fitchî avou ç' no la, et n' pout nén esse sipotchî.
 Si vos l' voloz tot l' minme eberweter, rivnoz en erî et s' reberwetez l' fitchî dizo èn ôte no.
@@ -1413,7 +1413,7 @@ Loukîz eto [[Special:WantedCategories|les categoreyes dimandêyes]].',
 'linksearch-ok' => 'Cweri',
 'linksearch-text' => 'Des caracteres «djokers» polèt esse eployîs, metans «*.wikipedia.org».
 Mins i fåt pol moens on dominne di prumî livea, metans «*.org»<br />
-Protocoles ricnoxhous: <tt>$1</tt> (nelzès metoz nén dins vosse tchinne di cweraedje).',
+Protocoles ricnoxhous: <code>$1</code> (nelzès metoz nén dins vosse tchinne di cweraedje).',
 'linksearch-line' => "$1 est loyî a pårti d' $2",
 'linksearch-error' => "Les caracteres djokers èn polèt esse eployîs k' a l' atake d' on no d' dominne ou d' lodjoe.",
 
@@ -1976,14 +1976,10 @@ Dj' ô bén, ça permete di disfé l' candjmint et d' mete on messaedje dins l'
 
 # Info page
 'pageinfo-title' => 'Infôrmåcion po «$1»',
-'pageinfo-header-watchlist' => 'Djivêye des shuvous',
-'pageinfo-header-views' => 'Vuwes',
-'pageinfo-subjectpage' => 'Pådje',
-'pageinfo-talkpage' => 'Pådje di copene',
+'pageinfo-views' => 'Nombe di lijhaedjes',
 'pageinfo-watchers' => 'Nombe di shuveus',
 'pageinfo-edits' => 'Nombe di candjmints',
 'pageinfo-authors' => "Nombe d' oteurs diferins",
-'pageinfo-views' => 'Nombe di lijhaedjes',
 
 # Patrolling
 'markaspatrolleddiff' => 'Marké come patrouyî',
index b280b3e..d968f4e 100644 (file)
@@ -351,7 +351,7 @@ $1',
 'nstab-media' => 'Pakli hin medya',
 'nstab-special' => 'Pinaurog nga pakli',
 'nstab-project' => 'Pakli han proyekto',
-'nstab-image' => 'Fayl',
+'nstab-image' => 'Paypay',
 'nstab-mediawiki' => 'Mensahe',
 'nstab-template' => 'Batakan',
 'nstab-help' => 'Pakli hin bulig',
@@ -772,7 +772,7 @@ An imo e-mail address in diri makikit-an kun an iba nga mga gumaramit in makonta
 'group-bot' => 'Mga bot',
 'group-sysop' => 'Mga magdudumara',
 'group-bureaucrat' => 'Mga burokrata',
-'group-suppress' => 'Mga mananahon',
+'group-suppress' => 'Mga nanginginano',
 'group-all' => '(ngatanan)',
 
 'group-user-member' => '{{HENERO:$1|gumaramit}}',
@@ -781,6 +781,7 @@ An imo e-mail address in diri makikit-an kun an iba nga mga gumaramit in makonta
 
 'grouppage-user' => '{{ns:project}}:Mga gumaramit',
 'grouppage-sysop' => '{{ns:project}}:Mga magdudumara',
+'grouppage-suppress' => '{{ns:project}}:Nanginginano',
 
 # Rights
 'right-read' => 'Igbasa an mga pakli',
@@ -789,7 +790,7 @@ An imo e-mail address in diri makikit-an kun an iba nga mga gumaramit in makonta
 'right-createtalk' => 'Paghimo hin hiruhimangraw nga mga pakli',
 'right-minoredit' => 'Igmarka an mga ginliwat komo gutiay la',
 'right-move' => 'Igbalhin an mga pakli',
-'right-movefile' => 'Balhina an mga fayl',
+'right-movefile' => 'Balhina an mga paypay',
 'right-delete' => 'Igpara an mga pakli',
 'right-undelete' => 'Igpawara an pagpara han pakli',
 
@@ -908,8 +909,8 @@ Mga detalye: $1',
 'filehist-filesize' => 'Kadako han fayl',
 'filehist-comment' => 'Komento',
 'filehist-missing' => 'Nawawara an fayl',
-'imagelinks' => 'Mga gamit hin fayl',
-'linkstoimage' => 'An nasunod nga {{PLURAL:$1|pakli nasumpay|$1 mga pakli nasumpay}} hini nga fayl:',
+'imagelinks' => 'Mga gamit hin paypay',
+'linkstoimage' => 'An nasunod nga {{PLURAL:$1|pakli nasumpay|$1 mga pakli nasumpay}} hini nga paypay:',
 'nolinkstoimage' => 'Waray mga pakli nga nasumpay hini nga fayl.',
 'sharedupload' => 'Ini nga fayl tikang han $1 ngan puyde magamit ha iba nga mga proyekto.',
 'sharedupload-desc-there' => 'Ini nga fayl tikang han $1 ngan puyde magamit ha iba nga mga proyekto.
@@ -1321,11 +1322,6 @@ Makikit-an nimo an ginkuhaaan',
 # Attribution
 'othercontribs' => 'Ginbasihan ha binuhat ni $1.',
 
-# Info page
-'pageinfo-header-watchlist' => 'Barantayan',
-'pageinfo-subjectpage' => 'Pakli',
-'pageinfo-talkpage' => 'Hiruhimangraw nga pakli',
-
 # Browsing diffs
 'previousdiff' => '← Durudaan nga pagliwat',
 'nextdiff' => 'Burubag-o nga pagliwat',
@@ -1499,6 +1495,7 @@ An iba in daan nakatago.
 'version-software-product' => 'Produkto',
 
 # Special:FilePath
+'filepath-page' => 'Paypay:',
 'filepath-submit' => 'Kadto-a',
 
 # Special:FileDuplicateSearch
index 13c5a11..6f079c7 100644 (file)
@@ -1253,14 +1253,14 @@ Saytul [[Special:NewFiles| gaaraluwaayu dencukaay yu yees yi]] ngir gis bu gën
 'large-file' => 'Li gën mooy dayoo dencukaay bi bañ a romb $1; bii dencukaay $2 la.',
 'largefileserver' => 'Dayoo dencukaay bi romb na kem bu joxekaay bi attan.',
 'emptyfile' => 'dencukaay bi nga bëgg a yeb dafa mel ni amul dara. Xéj-na ag njuumte ci turu dencukaay bi moo ko waral. Seetal bu baax ndax dëgg-dëgg bëgg nga yeb bii dencukaay.',
-'fileexists' => "Am na dencukaay bu tudd nii ba noppi.
-Saytul '''<tt>[[:$1]]</tt>''' su dee wóoru la ne bëgg nga koo soppi.
-[[$1|thumb]]",
-'filepageexists' => "Xëtu faramfacce bu dencukaay bi sos nañ ko ba noppi ci bii màkkaan '''<tt>[[:$1]]</tt>''', waaye amagul dencukaay bu ni tudd nii-nii. Faramfacceg xët wi nga dugal ci diirub yeb gi du feeñ ci xëtu waxtaanuwaay wi. Ngir faramfacce gi feeñ ci xëtu waxtaanuwaay wi faaw nga soppi ko ak sa loxo.",
-'fileexists-extension' => "Am na dencukaay bu ni tudd ba noppi: [[$2|thumb]]
-* Turu dencukaay bi ngay yeb : '''<tt>[[:$1]]</tt>'''
-* Turu dencukaay bi fi am : '''<tt>[[:$2]]</tt>'''
-Tànnal weneen tur.",
+'fileexists' => 'Am na dencukaay bu tudd nii ba noppi.
+Saytul <strong>[[:$1]]</strong> su dee wóoru la ne bëgg nga koo soppi.
+[[$1|thumb]]',
+'filepageexists' => 'Xëtu faramfacce bu dencukaay bi sos nañ ko ba noppi ci bii màkkaan <strong>[[:$1]]</strong>, waaye amagul dencukaay bu ni tudd nii-nii. Faramfacceg xët wi nga dugal ci diirub yeb gi du feeñ ci xëtu waxtaanuwaay wi. Ngir faramfacce gi feeñ ci xëtu waxtaanuwaay wi faaw nga soppi ko ak sa loxo.',
+'fileexists-extension' => 'Am na dencukaay bu ni tudd ba noppi: [[$2|thumb]]
+* Turu dencukaay bi ngay yeb : <strong>[[:$1]]</strong>
+* Turu dencukaay bi fi am : <strong>[[:$2]]</strong>
+Tànnal weneen tur.',
 'fileexists-forbidden' => 'Am na ŋara wu ni tudd ba noppi te mano koo war; Dellul ginnaaw ngir yeb ŋara wi ak weneen tur
 [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'Am na ŋara wu ni tudd ba noppi ci dencuwaayu ŋara bi ñuy bokk; Dellul ginnaaw ngir yeb ŋara wi ak weneen tur. [[File:$1|thumb|center|$1]]',
@@ -1358,7 +1358,7 @@ Faramfacce gi ci [$2 xëtu faramfaccewaayu xët wi] lañuy wone ci suuf .',
 # MIME search
 'mimesearch' => 'Seet ci xeeti ëmbiit yii di MIME',
 'mimesearch-summary' => "Xët wii dina la may nga man segg xeeti dencukaay yu MIME.
-Duggalal baat bi ci pax mi  ''xeet/''ron-xeet'', ci misaal <tt>image/jpeg</tt>.",
+Duggalal baat bi ci pax mi  ''xeet/''ron-xeet'', ci misaal <code>image/jpeg</code>.",
 'mimetype' => 'Xeet wu MIME :',
 'download' => 'yebbi',
 
index 6a7d347..f28a7af 100644 (file)
@@ -507,11 +507,11 @@ $1',
 'error' => 'פעלער',
 'databaseerror' => 'דאטנבאזע פעלער',
 'dberrortext' => 'א דאטנבאזע זוכונג סינטאקס גרייז האט פאסירט.
\93×\90ס ×\98×¢×\95ת ×§×¢×\9f ×\96×\99×\99×\9f ×¦×\95×\9c×\99×\91 ×\90 ×\91×\90×\92 ×\90×\99× ×¢×\9d ×\95×\95×\99×\99×\9b×\95×\95×\90ר×\92.
+דאס קען זיין צוליב א באג אינעם ווייכווארג.
 די לעצטע דאטנבאזע זוכונג איז געווען:
-<blockquote><tt>$1</tt></blockquote>
-פון דער פונקציע "<tt>$2</tt>".
-דאטנבאזע האט צוריקגעגעבן גרייז "<tt>$3: $4</tt>".',
+<blockquote><code>$1</code></blockquote>
+פון דער פונקציע "<code>$2</code>".
+דאטנבאזע האט צוריקגעגעבן גרייז "<samp>$3: $4</samp>".',
 'dberrortextcl' => 'א דאטנבאזע זוכונג סינטאקס גרייז האט פאסירט.
 די לעצטע דאטנבאזע זוכונג איז געווען:
 "$1"
@@ -548,6 +548,8 @@ $1',
 'cannotdelete' => 'נישט געווען מעגלעך אויסמעקן דעם בלאט אדער די טעקע "$1".
 קען זיין  אז דאס איז שוין געווארן אויסגעמעקט דורך אן אנדערן.',
 'cannotdelete-title' => 'מען קען נישט אויסמעקן בלאט "$1"',
+'delete-hook-aborted' => 'אויסמעקונג אנולירט דורך hook.
+נישט געגעבן קיין דערקלערונג.',
 'badtitle' => 'שלעכט קעפל',
 'badtitletext' => "דאס קעפל פון דעם געזוכטן בלאט איז געווען אומגעזעצליך, ליידיג, אן אינטערשפראך אדער אינטערוויקי לינק וואס פאסט נישט, אדער אנטהאט כאראקטערס וואס מ'קען נישט ניצן אין א קעפל.",
 'perfcached' => "די פאלגנדע דאטן זענען גענומען פונעם 'זאַפאַס' און מעגלעך נישט אקטועל. מאקסימום {{PLURAL:$1|איין רעזולטאט איז|$1 רעזולטאטן זענען}} פאראן אין זאפאס.",
@@ -865,8 +867,6 @@ $2
 
 * '''אינטערנעט עקספלארער:''' האלט אראפ ''Ctrl'' בשעתן קליקן ''Refresh'', אדער  דרוקט ''Ctrl-F5''
 
-* '''קאנקעראר:''' קליקט ''Reload'' אדער דרוקט ''F5''
-
 * '''אפערע:''' ליידיגט אויס דעם זאַפאַס אין ''Tools → Preferences'' (''העדפות'' > ''כלים'')",
 'usercssyoucanpreview' => "'''טיפ:''' נוצט דאס {{int:showpreview}} קנעפל אויספרובירן אייער CSS בעפארן אויפהיטן.",
 'userjsyoucanpreview' => "'''טיפ:''' נוצט דאס {{int:showpreview}} קנעפל אויספרובירן אייער  JavaScript בעפארן אויפהיטן.",
@@ -1566,9 +1566,9 @@ $1",
 כדי צו זען אדער זוכן טעקעס וואס זענען שוין אַרויפֿגעלאָדן ווענדט זיך צו דער [[Special:FileList|ליסטע פֿון אַרויפֿגעלאָדענע טעקעס]]; (ווידער)אַרויפֿלאָדונגען ווערן אויך לאגירט אינעם  [[Special:Log/upload| אַרויפֿלאָדן לאג-בוך]], אויסמעקונגען אינעם [[Special:Log/delete|אויסמעקן לאג-בוך]].
 
 כדי אײַנשליסן א טעקע אין א בלאַט, באניצט א לינק אין איינעם פון די פֿאלגנדע פֿארעמען:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' צו ניצן די פֿולע ווערסיע פֿון דער טעקע
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|טעקסט קעפל]]</nowiki></tt>''' צו ניצן א 200 פיקסל ברייט ווערסיע אין א קעסטל אויף דער לינקער זײַט, מיט דער שילדערונג 'טעקסט קעפל'
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' פֿאר א גראָדער פֿאַרבינדונג צו דער טעקע אָן צו ווײַזן זי",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' צו ניצן די פֿולע ווערסיע פֿון דער טעקע
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|טעקסט קעפל]]</nowiki></code>''' צו ניצן א 200 פיקסל ברייט ווערסיע אין א קעסטל אויף דער לינקער זײַט, מיט דער שילדערונג 'טעקסט קעפל'
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' פֿאר א גראָדער פֿאַרבינדונג צו דער טעקע אָן צו ווײַזן זי",
 'upload-permitted' => 'ערלויבטע טעקע טיפן: $1.',
 'upload-preferred' => 'פרעפֿרירטע טעקע טיפן: $1.',
 'upload-prohibited' => 'פֿאַרווערענע טעקע טיפן: $1.',
@@ -1611,12 +1611,12 @@ $1",
 עס קען זיין אז די סיבה איז פשוט א טייפא אינעם טעקע־נאמען.
 ביטע קוקט איבער צי איר ווילט ארויפֿלאדן  די דאזיקע טעקע.',
 'windows-nonascii-filename' => 'די וויקי שטיצט נישט טעקע־נעמען מיט ספעציעלע צייכענען.',
-'fileexists' => "א טעקע מיט דעם נאָמען עקזיסטירט שוין, ביטע זײַט בודק '''<tt>[[:$1]]</tt>''' ווען איר זענט נישט זיכער אַז איר ווילט זי ענדערן.
-[[$1|thumb]]",
-'fileexists-extension' => "א טעקע מיט אן ענלעכן נאמען עקזיסטירט שוין: [[$2|thumb]]
-* נאמען פון דער טעקע וואס ווערט ארויפגעלאָדן: '''<tt>[[:$1]]</tt>'''
-* נאמען פון דער פֿאראנענער טעקע: '''<tt>[[:$2]]</tt>'''
-זײַט אזוי גוט און קלויבט אן אנדער נאמען.",
+'fileexists' => 'א טעקע מיט דעם נאָמען עקזיסטירט שוין, ביטע זײַט בודק <strong>[[:$1]]</strong> ווען איר זענט נישט זיכער אַז איר ווילט זי ענדערן.
+[[$1|thumb]]',
+'fileexists-extension' => 'א טעקע מיט אן ענלעכן נאמען עקזיסטירט שוין: [[$2|thumb]]
+* נאמען פון דער טעקע וואס ווערט ארויפגעלאָדן: <strong>[[:$1]]</strong>
+* נאמען פון דער פֿאראנענער טעקע: <strong>[[:$2]]</strong>
+זײַט אזוי גוט און קלויבט אן אנדער נאמען.',
 'fileexists-forbidden' => 'א טעקע מיט דעם נאָמען עקזיסטירט שוין, און מען קען זי נישט אַריבערשרײַבן. 
 אויב איר ווילט דאך אַרויפֿלאָדן אײַער טעקע, ביטע גיין צוריק און ניצן אַן אַנדער נאָמען. 
 [[File:$1|thumb|center|$1]]',
@@ -2816,16 +2816,32 @@ $1',
 
 # Info page
 'pageinfo-title' => 'אינפֿאָרמאַציע פֿאַר "$1"',
-'pageinfo-header-edits' => 'רעדאַקטירונגען',
-'pageinfo-header-watchlist' => 'אויפֿפאַסונג ליסטע',
-'pageinfo-header-views' => 'קוקן',
-'pageinfo-subjectpage' => 'בלאַט',
-'pageinfo-talkpage' => 'רעדן בלאַט',
-'pageinfo-watchers' => 'צאָל אויפֿפאַסער',
-'pageinfo-edits' => 'צאָל ענדערונגען',
-'pageinfo-authors' => 'צאָל באַזונדערע שרײַבער',
+'pageinfo-header-basic' => 'גרונטלעכע אינפֿארמאַציע',
+'pageinfo-header-edits' => '!רעדאַקטירן היסטאריע',
+'pageinfo-header-restrictions' => 'בלאט באַשיצונג',
+'pageinfo-header-properties' => 'בלאַט אייגנשאַפֿטן',
+'pageinfo-display-title' => 'געוויזענע קעפל',
+'pageinfo-default-sort' => 'גרונט סארטירן שליסל',
+'pageinfo-length' => 'בלאט לענג (אין בייטן)',
+'pageinfo-article-id' => 'בלאט נומער',
+'pageinfo-robot-policy' => 'זוכמאשין סטאטוס',
 'pageinfo-views' => 'צאַל קוקן',
-'pageinfo-viewsperedit' => 'צאל קוקן צו א רעדאַקטירונג',
+'pageinfo-watchers' => '!צאָל בלאט אויפֿפאַסער',
+'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-restriction' => 'בלאט שוץ (<code>$1</code>)',
+'pageinfo-magic-words' => '{{PLURAL:$1|מאגיש ווארט|מאגישע ווערטער}} ($1)',
+'pageinfo-hidden-categories' => 'באהאלטענע {{PLURAL:$1|קאטעגאריע|קאטעגאריעס}} ($1)',
+'pageinfo-templates' => ' {{PLURAL:$1|אריבערגעשלאסענער מוסטער|אריבערגשלאסענע מוסטערן}} ($1)',
 
 # Skin names
 'skinname-standard' => 'קלאסיש',
@@ -3433,12 +3449,17 @@ $5
 'version-variables' => 'וואַריאַבלען',
 'version-skins' => 'באניצער־אייבערפלאכן',
 'version-other' => 'אנדער',
+'version-hooks' => 'Hook סטרוקטורן',
+'version-extension-functions' => 'פארברייטערן פונקציעס',
+'version-parser-extensiontags' => 'פארזער פארברייטערן טאַגן',
+'version-hook-name' => 'נאמען פון hook',
 'version-version' => '(ווערסיע $1)',
 'version-license' => 'ליצענץ',
 'version-poweredby-others' => 'אַנדערע',
 'version-software' => 'אינסטאַלירט ווייכוואַרג',
 'version-software-product' => 'פראדוקט',
 'version-software-version' => 'ווערסיע',
+'version-entrypoints-header-entrypoint' => 'אריינגאנג פונקט',
 'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
index 9fe1f99..87aa016 100644 (file)
@@ -1428,9 +1428,9 @@ Tí ẹ bá fisílẹ̀ a ó lòó láti tóka iṣẹ́ yín fún yín.',
 Láti wò tàbí wá àwọn fáìlì àrùsókè tẹ́lẹ̀ ẹ lọ sí [[Special:FileList|àtòjọ àwọn fáìlì àrùsókè]], àwọn à(tùn)rùsókè náà jẹ́ kíkọọ́lẹ̀ nínú [[Special:Log/upload|àkọọ́lẹ̀ ìrùsókè]], àwọn ìparẹ́ nínú [[Special:Log/delete|àkọọ́lẹ̀ ìparẹ́]].
 
 Láti fí fáìlì pọ̀mọ́ sínú ojúewé kan, ẹ lo àjápọ̀ bíi ìkan nínù àwọn ti ìsàlẹ̀ yìí:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fáìlì.jpg]]</nowiki></tt>''' láti lo àtẹ̀jáde kíkún fáiø ọ̀hún
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fáìlì.png|200px|thumb|left|ìkọ̀rọ̀]]</nowiki></tt>''' láti lo ìgbéhàn fífẹ̀ tó 200 pixel nínú àpótí ní apá ọwọ́ òsì pẹ̀lú 'ìkọ̀rọ̀' bíi ìjúwe
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fáìlì.ogg]]</nowiki></tt>''' láti ṣèjápọ̀ tààrà sí fáìlì náà láì sàgbéhàn fáìlì ọ̀hún",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fáìlì.jpg]]</nowiki></code>''' láti lo àtẹ̀jáde kíkún fáiø ọ̀hún
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Fáìlì.png|200px|thumb|left|ìkọ̀rọ̀]]</nowiki></code>''' láti lo ìgbéhàn fífẹ̀ tó 200 pixel nínú àpótí ní apá ọwọ́ òsì pẹ̀lú 'ìkọ̀rọ̀' bíi ìjúwe
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Fáìlì.ogg]]</nowiki></code>''' láti ṣèjápọ̀ tààrà sí fáìlì náà láì sàgbéhàn fáìlì ọ̀hún",
 'upload-permitted' => 'Àwọn irú fáìlì yíyọ̀nda: $1',
 'upload-preferred' => 'Àwọn irú fáìlì fífẹ́ràn: $1',
 'upload-prohibited' => 'Àwọn irú fáìlì dídènà: $1',
@@ -1477,21 +1477,21 @@ fáìlì yìí jẹ́ $2.',
 Ó ṣe é ṣe pé ẹ si orúkọ rẹ̀ kọ.
 Ẹ jọ̀wọ́ ẹ yẹ fáìlì náà wò bóyá òhun lẹ fẹ́ rùsókè.',
 'windows-nonascii-filename' => 'Wiki yìí kò ní àtìlẹ́yìn fún àwọn orúkọ fáìlì pẹ̀lú àwọn àmììkọ̀rọ̀ àkànṣe.',
-'fileexists' => "Fáìlì kan tilẹ̀ wà pẹ̀lú orúkọ yìí, ẹ jọ̀wọ́ ẹ yẹ '''<tt>[[:$1]]</tt>''' wò tí kò bá dá yín lójú pé ẹ fẹ́ yipadà.
-[[$1|thumb]]",
-'filepageexists' => "Ojúewé ìjúwe fún fáìlì yìí tilẹ̀ ti wà ní '''<tt>[[:$1]]</tt>''', sùgbọ́n fáìlì kankan kò sí pẹ̀lú orúkọ yìí rárá. 
+'fileexists' => 'Fáìlì kan tilẹ̀ wà pẹ̀lú orúkọ yìí, ẹ jọ̀wọ́ ẹ yẹ <strong>[[:$1]]</strong> wò tí kò bá dá yín lójú pé ẹ fẹ́ yipadà.
+[[$1|thumb]]',
+'filepageexists' => 'Ojúewé ìjúwe fún fáìlì yìí tilẹ̀ ti wà ní <strong>[[:$1]]</strong>, sùgbọ́n fáìlì kankan kò sí pẹ̀lú orúkọ yìí rárá. 
 Àkótán tí ẹ kọ kò ní hàn lórí ojúewé ìjúwe náà.
 Tí ẹ bá fẹ́ kí àkótán yín ó hàn níbẹ̀, ẹ gbọ́dọ̀ kọ ọ́ síbẹ̀ fún raara yín.
-[[$1|thumb]]",
-'fileexists-extension' => "Fáìlì kan wà pẹ̀lú orúkọ tó jọra: [[$2|thumb]]
-* Orúkọ fáìlì ìrùsókè: '''<tt>[[:$1]]</tt>'''
-* Orúkọ fáìlì tó wà: '''<tt>[[:$2]]</tt>'''
-Ẹ jọ̀wọ́ ẹ mú orúkọ tó yàtọ̀.",
+[[$1|thumb]]',
+'fileexists-extension' => 'Fáìlì kan wà pẹ̀lú orúkọ tó jọra: [[$2|thumb]]
+* Orúkọ fáìlì ìrùsókè: <strong>[[:$1]]</strong>
+* Orúkọ fáìlì tó wà: <strong>[[:$2]]</strong>
+Ẹ jọ̀wọ́ ẹ mú orúkọ tó yàtọ̀.',
 'fileexists-thumbnail-yes' => "Fáìlì náà dàbí pé ó jẹ́ àwòrán ìtóbi onírẹ̀sílẹ̀ ''(thumbnail)''.
 [[$1|thumb]]
-Ẹ jọ̀wọ́ ẹ yẹ fáìlì '''<tt>[[:$1]]</tt>''' wò.
+Ẹ jọ̀wọ́ ẹ yẹ fáìlì <strong>[[:$1]]</strong> wò.
 Tí fáìlì náà bá jẹ́ àwòrán kannáà kò pọndandan láti ṣe ìrùsókè thumbnail míràn.",
-'file-thumbnail-no' => "Orúkọ fáìlì náà bẹ̀rẹ̀ pẹ̀lú '''<tt>$1</tt>'''.
+'file-thumbnail-no' => "Orúkọ fáìlì náà bẹ̀rẹ̀ pẹ̀lú <strong>$1</strong>.
 Ó dàbí pé ó jẹ́ àwòrán ìtóbi onírẹ̀sílẹ̀ ''(thumbnail)''.
 Tí ẹ bá ní àwòrán yìí ní ìgbéhàn kúnkún ẹ ṣe ìrùsókè èyí, bíbẹ́ẹ̀kọ́ ẹ jọ̀wọ́ ẹ yí orúkọ fáìlì náà padà sí òmíràn.",
 'fileexists-forbidden' => 'Fáìlì kan wà tó ní orúkọ yìí, bẹ́ẹ̀sìni kò ṣe é kọ lélórí.
@@ -1724,7 +1724,7 @@ Tó bá jẹ́ jíjọ̀ gẹ́gẹ́bí oníṣe, àwọn fáìlì tí oníṣe
 # MIME search
 'mimesearch' => 'àwáàrí pẹ́lú MIME',
 'mimesearch-summary' => 'Ojúewé yìí únṣe ìgbàláàyè ajọ̀ àwọn fáìlì fún irú MIME wọn.
-Ìtìbọnú: contenttype/subtype, f.a. <tt>image/jpeg</tt>.',
+Ìtìbọnú: contenttype/subtype, f.a. <code>image/jpeg</code>.',
 'mimetype' => 'irú MIME:',
 'download' => 'ìrùsílẹ̀',
 
@@ -2619,15 +2619,10 @@ kò le yípò ojúewé padà sí ara rẹ̀.',
 # Info page
 'pageinfo-title' => 'Àròyé fún "$1"',
 'pageinfo-header-edits' => 'Àwọn àtúnṣe',
-'pageinfo-header-watchlist' => 'Ìmójútó',
-'pageinfo-header-views' => 'Àwọn ìwò',
-'pageinfo-subjectpage' => 'Ojúewé',
-'pageinfo-talkpage' => 'Ojúewé ọ̀rọ̀',
+'pageinfo-views' => 'Iye àwọn ìwò',
 'pageinfo-watchers' => 'Iye àwọn aláàbójúwò',
 'pageinfo-edits' => 'Iye àwọn àtúnṣe',
 'pageinfo-authors' => 'Iye àwọn olùdá ọ̀tọ̀ọ̀tọ̀',
-'pageinfo-views' => 'Iye àwọn ìwò',
-'pageinfo-viewsperedit' => 'Iye ìwò fún àtúnṣe kọ̀ọ̀kan',
 
 # Patrolling
 'markaspatrolleddiff' => 'Ìṣààmí sí bíi sísọ́',
index 0575ac1..fe79a49 100644 (file)
@@ -1503,9 +1503,9 @@ $1",
 要睇或者搵嘢之前上載嘅圖像請去[[Special:FileList|已上載檔案一覽]],(再)上載嘅動作會喺[[Special:Log/upload|上載日誌]]裏面記錄落嚟,而刪除嘅動作會喺[[Special:Log/delete|刪除日誌]]裏面記錄落嚟。
 
 如果要喺頁面度引入呢張圖像,可以使用以下其中一種方式嘅連結:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}:file.jpg<nowiki>]]</nowiki></tt>'''去用檔案嘅完整版
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}:file.png|200px|thumb|left|替代文字<nowiki>]]</nowiki></tt>'''去用200像素比例闊,靠左邊加盒,響描述度加'替代文字'
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}:file.ogg<nowiki>]]</nowiki></tt>''' 直接連結到檔案而唔顯示個檔案。",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}:file.jpg<nowiki>]]</nowiki></code>'''去用檔案嘅完整版
+* '''<code><nowiki>[[</nowiki>{{ns:file}}:file.png|200px|thumb|left|替代文字<nowiki>]]</nowiki></code>'''去用200像素比例闊,靠左邊加盒,響描述度加'替代文字'
+* '''<code><nowiki>[[</nowiki>{{ns:media}}:file.ogg<nowiki>]]</nowiki></code>''' 直接連結到檔案而唔顯示個檔案。",
 'upload-permitted' => '准許嘅檔案類型: $1。',
 'upload-preferred' => '建議嘅檔案類型: $1。',
 'upload-prohibited' => '禁止嘅檔案類型: $1。',
@@ -1547,17 +1547,17 @@ $1",
 'large-file' => '建議檔案嘅大細唔好大過$1 bytes,呢個檔案有$2 bytes',
 'largefileserver' => '呢個檔案超過咗伺服器設定允許嘅大細。',
 'emptyfile' => '你上載嘅檔案似乎係空嘅。噉樣可能係因為你打錯咗個檔名。請檢查吓你係唔係真係要上載呢個檔案。',
-'fileexists' => "呢個檔名已經存在,如果你唔肯定係唔係要更改'''<tt>[[:$1]]</tt>''',請先檢查佢。 [[$1|thumb]]",
-'filepageexists' => "呢個檔嘅描述頁已經響'''<tt>[[:$1]]</tt>'''開咗,但係呢個名嘅檔案重未存在。你輸入咗嘅摘要係唔會顯示響個描述頁度。要令到個摘要響嗰度出現,你就要手動噉去改佢。
-[[$1|thumb]]",
-'fileexists-extension' => "一個相似檔名嘅檔案已經存在: [[$2|thumb]]
-* 上載檔案嘅檔名: '''<tt>[[:$1]]</tt>'''
-* 現有檔案嘅檔名: '''<tt>[[:$2]]</tt>'''
-請揀一個唔同嘅名。",
+'fileexists' => '呢個檔名已經存在,如果你唔肯定係唔係要更改<strong>[[:$1]]</strong>,請先檢查佢。 [[$1|thumb]]',
+'filepageexists' => '呢個檔嘅描述頁已經響<strong>[[:$1]]</strong>開咗,但係呢個名嘅檔案重未存在。你輸入咗嘅摘要係唔會顯示響個描述頁度。要令到個摘要響嗰度出現,你就要手動噉去改佢。
+[[$1|thumb]]',
+'fileexists-extension' => '一個相似檔名嘅檔案已經存在: [[$2|thumb]]
+* 上載檔案嘅檔名: <strong>[[:$1]]</strong>
+* 現有檔案嘅檔名: <strong>[[:$2]]</strong>
+請揀一個唔同嘅名。',
 'fileexists-thumbnail-yes' => "呢個檔案好似係一幅圖像縮細咗嘅版本''(縮圖)''。 [[$1|thumb]]
-請檢查清楚個檔案'''<tt>[[:$1]]</tt>'''
+請檢查清楚個檔案<strong>[[:$1]]</strong>
 如果檢查咗嘅檔案係同原本幅圖個大細係一樣嘅話,就唔使再上載多一幅縮圖。",
-'file-thumbnail-no' => "個檔名係以'''<tt>$1</tt>'''開始。佢好似係一幅圖像嘅縮細版本''(縮圖)''。
+'file-thumbnail-no' => "個檔名係以<strong>$1</strong>開始。佢好似係一幅圖像嘅縮細版本''(縮圖)''。
 如果你有呢幅圖像嘅完整大細,唔係嘅話請再改過個檔名。",
 'fileexists-forbidden' => '呢個檔案嘅名已經存在,唔可以覆蓋;麻煩返轉去用第二個名嚟上載呢個檔案。[[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => '共享檔案庫入面已經有一個同名嘅檔案。
@@ -1749,7 +1749,7 @@ $1',
 
 # MIME search
 'mimesearch' => 'MIME 搜尋',
-'mimesearch-summary' => '呢一版可以過濾有關檔案嘅MIME類型。輸入方法:contenttype/subtype,例如 <tt>image/jpeg</tt>。',
+'mimesearch-summary' => '呢一版可以過濾有關檔案嘅MIME類型。輸入方法:contenttype/subtype,例如 <code>image/jpeg</code>。',
 'mimetype' => 'MIME 類型:',
 'download' => '下載',
 
@@ -1935,7 +1935,7 @@ Template:搞清楚',
 'linksearch-ns' => '空間名',
 'linksearch-ok' => '搵',
 'linksearch-text' => '可以用類似"*.wikipedia.org"嘅萬用字元。<br />
-支援嘅協議: <tt>$1</tt>',
+支援嘅協議: <code>$1</code>',
 'linksearch-line' => '$1 連自 $2',
 'linksearch-error' => '萬用字元只可以響主機名嘅開頭度用。',
 
index 2d45c75..0bc9f3e 100644 (file)
@@ -1256,7 +1256,7 @@ $1",
 
 # Preferences page
 'preferences' => '系统设置',
-'mypreferences' => '我的参数设置',
+'mypreferences' => '我的设置',
 'prefs-edits' => '编辑数量:',
 'prefsnologin' => '尚未登录',
 'prefsnologintext' => '您必须先<span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} 登录]</span>才能设置个人参数。',
@@ -1264,9 +1264,9 @@ $1",
 'prefs-skin' => '皮肤',
 'skin-preview' => '预览',
 'datedefault' => '默认格式',
-'prefs-beta' => 'æµ\8bè¯\95ç\89\88ç\89¹è\89²',
+'prefs-beta' => 'æµ\8bè¯\95ç\89¹æ\80§',
 'prefs-datetime' => '日期时间',
-'prefs-labs' => '实验室特',
+'prefs-labs' => '实验室特',
 'prefs-user-pages' => '用户页面',
 'prefs-personal' => '用户资料',
 'prefs-rc' => '最近更改',
@@ -1317,7 +1317,7 @@ $1",
 'timezoneregion-indian' => '印度洋',
 'timezoneregion-pacific' => '太平洋',
 'allowemail' => '接受来自其他用户的邮件',
-'prefs-searchoptions' => '搜索选项',
+'prefs-searchoptions' => '搜索',
 'prefs-namespaces' => '名字空间',
 'defaultns' => '否则在这些名字空间中搜索:',
 'default' => '默认',
@@ -1585,9 +1585,9 @@ $1",
 'uploadtext' => "请使用下面的表格上传文件。要查看或搜索以前上传的文件,可以进入[[Special:FileList|文件上传列表]],(重新)上传也将在[[Special:Log/upload|上传日志]]中记录,而删除将在[[Special:Log/delete|删除日志]]中记录。
 
 要在页面中加入文件,请使用一种以下形式的链接:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>'''使用文件的完整版本
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|替换文字]]</nowiki></tt>'''使用放置于左侧的一个框内的200像素宽的图片,同时使用“替换文字”作为描述
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''直接链接到文件而不显示文件",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>'''使用文件的完整版本
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|替换文字]]</nowiki></code>'''使用放置于左侧的一个框内的200像素宽的图片,同时使用“替换文字”作为描述
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''直接链接到文件而不显示文件",
 'upload-permitted' => '允许的文件类型:$1。',
 'upload-preferred' => '建议的文件类型:$1。',
 'upload-prohibited' => '禁止的文件类型:$1。',
@@ -1630,19 +1630,19 @@ $1",
 'largefileserver' => '这个文件的大小比服务器配置允许的大小还要大。',
 'emptyfile' => '您所上传的文件不存在。这可能是由于文件名键入错误。请检查您是否真的要上传此文件。',
 'windows-nonascii-filename' => '本wiki不支持在文件名中使用特殊字符。',
-'fileexists' => '已存在相同名称的文件,如果您无法确定您是否要改变它,请检查<strong><tt>[[:$1]]</tt></strong>。 [[$1|thumb]]',
-'filepageexists' => '这个文件的描述页已经于<strong><tt>[[:$1]]</tt></strong>创建,但是这个名称的文件尚不存在。
+'fileexists' => '已存在相同名称的文件,如果您无法确定您是否要改变它,请检查<strong><strong>[[:$1]]</strong></strong>。 [[$1|thumb]]',
+'filepageexists' => '这个文件的描述页已经于<strong><strong>[[:$1]]</strong></strong>创建,但是这个名称的文件尚不存在。
 您输入的摘要不会显示在该描述页中。
 要令该摘要在该处中出现,您需要手动地编辑该页。
 [[$1|thumb]]',
-'fileexists-extension' => "一个相似名称的文件已经存在: [[$2|thumb]]
-* 上传文件的文件名:'''<tt>[[:$1]]</tt>'''
-* 现有文件的文件名:'''<tt>[[:$2]]</tt>'''
-请选择一个不同的名字。",
+'fileexists-extension' => '一个相似名称的文件已经存在: [[$2|thumb]]
+* 上传文件的文件名:<strong>[[:$1]]</strong>
+* 现有文件的文件名:<strong>[[:$2]]</strong>
+请选择一个不同的名字。',
 'fileexists-thumbnail-yes' => "此文件可能是另一幅图像的缩小版本''(缩略图)''。 [[$1|thumb]]
-请仔细检查该文件'''<tt>[[:$1]]</tt>'''
+请仔细检查该文件<strong>[[:$1]]</strong>
 如果被检查文件与原始大小的图像是同一幅图像,您无需上传多余的缩略图。",
-'file-thumbnail-no' => "文件名以'''<tt>$1</tt>'''开头。它可能是另一幅图像的缩小版本''(缩略图)''。
+'file-thumbnail-no' => "文件名以<strong>$1</strong>开头。它可能是另一幅图像的缩小版本''(缩略图)''。
 如果你有该图像完整分辨率的版本,请上传该完整版本。否则请修改文件名。",
 'fileexists-forbidden' => '已存在相同名称的文件,且不能覆盖;请返回并用一个新的名称来上传此文件。[[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => '在共享文件库中已存在此名称的文件。
@@ -1847,6 +1847,7 @@ $1',
 'shared-repo-from' => '出自$1',
 'shared-repo' => '一个共用文件库',
 'shared-repo-name-wikimediacommons' => '维基共享资源',
+'upload-disallowed-here' => '您不可以覆盖此图像',
 
 # File reversion
 'filerevert' => '恢复$1',
@@ -1881,7 +1882,7 @@ $1',
 
 # MIME search
 'mimesearch' => 'MIME搜索',
-'mimesearch-summary' => '本页面启用文件MIME类型过滤器。输入:内容类型/子类型,如 <tt>image/jpeg</tt>。',
+'mimesearch-summary' => '本页面启用文件MIME类型过滤器。输入:内容类型/子类型,如 <code>image/jpeg</code>。',
 'mimetype' => 'MIME 类型:',
 'download' => '下载',
 
@@ -2076,7 +2077,7 @@ $1',
 'linksearch-ns' => '名字空间:',
 'linksearch-ok' => '搜索',
 'linksearch-text' => '制作可以使用类似“*.wikipedia.org”的通配符。必须至少是顶级域名,例如“*.org”。<br />
-支持的协议:<tt>$1</tt>(不要包含在搜索中)。',
+支持的协议:<code>$1</code>(不要包含在搜索中)。',
 'linksearch-line' => '$1 链自 $2',
 'linksearch-error' => '通配符仅可在主机名称的开头使用。',
 
@@ -2281,7 +2282,7 @@ $UNWATCHURL
 'protectlogtext' => '下面是页面保护更改的列表。请见[[Special:ProtectedPages|受保护页面列表]]查看目前正在进行的页面保护的列表。',
 'protectedarticle' => '保护“[[$1]]”',
 'modifiedarticleprotection' => '更改“[[$1]]”的保护等级',
-'unprotectedarticle' => '除“[[$1]]”的保护',
+'unprotectedarticle' => '除“[[$1]]”的保护',
 'movedarticleprotection' => '移动保护设置自“[[$2]]”至“[[$1]]”',
 'protect-title' => '更改“$1”的保护等级',
 'protect-title-notallowed' => '查看“$1”的保护等级',
@@ -2737,6 +2738,7 @@ $1被封禁的理由是:“$2”',
 'import-interwiki-templates' => '包含所有模板',
 'import-interwiki-submit' => '导入',
 'import-interwiki-namespace' => '目标名字空间:',
+'import-interwiki-rootpage' => '目的根页(可选):',
 'import-upload-filename' => '文件名:',
 'import-comment' => '注释:',
 'importtext' => '请使用[[Special:Export|导出功能]]从源 wiki 导出文件,
@@ -2769,6 +2771,7 @@ $1被封禁的理由是:“$2”',
 'import-error-interwiki' => '页面“$1”未能导入,因为它的名称需要使用外部跨wiki链接。',
 'import-error-special' => '页面“$1”未导入,因为它需要使用一个不能创建页面的特殊名字空间。',
 'import-error-invalid' => '页面“$1”未能导入,因为它的名字无效。',
+'import-options-wrong' => '{{PLURAL:$2|选项}}出错:<nowiki>$1</nowiki>',
 
 # Import log
 'importlogpage' => '导入日志',
@@ -2917,15 +2920,10 @@ $1被封禁的理由是:“$2”',
 # Info page
 'pageinfo-title' => '"$1" 的信息',
 'pageinfo-header-edits' => '编辑',
-'pageinfo-header-watchlist' => '监视列表',
-'pageinfo-header-views' => '视图',
-'pageinfo-subjectpage' => '页面',
-'pageinfo-talkpage' => '讨论页',
+'pageinfo-views' => '视图的数量',
 'pageinfo-watchers' => '监视者数目',
 'pageinfo-edits' => '编辑数量',
 'pageinfo-authors' => '作者数量',
-'pageinfo-views' => '视图的数量',
-'pageinfo-viewsperedit' => '每个编辑视图',
 
 # Skin names
 'skinname-standard' => '标准',
@@ -3093,7 +3091,7 @@ Variants for Chinese language
 'exif-compressedbitsperpixel' => '图像压缩模式',
 'exif-pixelydimension' => '图像宽度',
 'exif-pixelxdimension' => '图像高度',
-'exif-usercomment' => '用户注释',
+'exif-usercomment' => '用户评论',
 'exif-relatedsoundfile' => '相关声音文件',
 'exif-datetimeoriginal' => '数据生成日期时间',
 'exif-datetimedigitized' => '数字化日期时间',
@@ -3171,7 +3169,7 @@ Variants for Chinese language
 'exif-gpsdatestamp' => 'GPS日期',
 'exif-gpsdifferential' => 'GPS差动修正',
 'exif-jpegfilecomment' => 'JPEG 文件注释',
-'exif-keywords' => '关键',
+'exif-keywords' => '关键',
 'exif-worldregioncreated' => '照片中的世界区域',
 'exif-countrycreated' => '在拍摄图片的国家',
 'exif-countrycodecreated' => '在拍摄图片的国家代码',
@@ -3180,46 +3178,46 @@ Variants for Chinese language
 'exif-sublocationcreated' => '照片拍摄地点在城市中的位置',
 'exif-worldregiondest' => '世界区域显示',
 'exif-countrydest' => '所示的国家',
-'exif-countrycodedest' => '国家所示的代码',
+'exif-countrycodedest' => '国家代码',
 'exif-provinceorstatedest' => '省或状态显示',
 'exif-citydest' => '所示的城市',
 'exif-sublocationdest' => '显示城市中的详细地点',
 'exif-objectname' => '简称',
 'exif-specialinstructions' => '特别说明',
 'exif-headline' => '标题',
-'exif-credit' => '信用/供应商',
-'exif-source' => '源',
+'exif-credit' => '提供人',
+'exif-source' => 'æ\9d¥æº\90',
 'exif-editstatus' => '编辑状态的图像',
-'exif-urgency' => '紧性',
+'exif-urgency' => '紧性',
 'exif-fixtureidentifier' => '夹具名称',
 'exif-locationdest' => '位置描述',
 'exif-locationdestcode' => '位置所示的代码',
-'exif-objectcycle' => '媒体应当使用的时间段',
+'exif-objectcycle' => '媒体文件使用时间要求',
 'exif-contact' => '联系信息',
-'exif-writer' => '作',
+'exif-writer' => '作',
 'exif-languagecode' => '语言',
 'exif-iimversion' => 'IIM 版本',
 'exif-iimcategory' => '类别',
 'exif-iimsupplementalcategory' => '补充的类别',
-'exif-datetimeexpires' => 'ä¸\8dè¦\81使ç\94¨å\90\8e',
+'exif-datetimeexpires' => '使ç\94¨æ\88ªæ­¢æ\97¥æ\9c\9f',
 'exif-datetimereleased' => '发表',
 'exif-originaltransmissionref' => '传输位置的原代码',
 'exif-identifier' => '标识符',
 'exif-lens' => '使用的镜头',
-'exif-serialnumber' => '相机序列号',
-'exif-cameraownername' => '相机的所有者',
+'exif-serialnumber' => '相机序列号',
+'exif-cameraownername' => '相机所有人',
 'exif-label' => '标签',
-'exif-datetimemetadata' => '上次修改日期的元数据',
+'exif-datetimemetadata' => '原始数据最后修改日期',
 'exif-nickname' => '非正式的图像的名称',
-'exif-rating' => '评分(满分为5)',
+'exif-rating' => '分级(最高为5)',
 'exif-rightscertificate' => '权利管理证书',
 'exif-copyrighted' => '著作权状况',
-'exif-copyrightowner' => '著作权所有',
+'exif-copyrightowner' => '著作权所有',
 'exif-usageterms' => '使用条款',
-'exif-webstatement' => '网上版权说明',
-'exif-originaldocumentid' => '原始文档的唯一 ID',
-'exif-licenseurl' => '版权许可的 URL',
-'exif-morepermissionsurl' => '替代的许可信息',
+'exif-webstatement' => '在线著作权声明',
+'exif-originaldocumentid' => '原始文件唯一ID',
+'exif-licenseurl' => '著作权授权协议的URL',
+'exif-morepermissionsurl' => '其他授权协议信息',
 'exif-attributionurl' => '二次使用本作品时,请链接至',
 'exif-preferredattributionname' => '二次使用本作品时,请署名',
 'exif-pngfilecomment' => 'PNG文件注释',
@@ -3232,8 +3230,8 @@ Variants for Chinese language
 'exif-event' => '事件描述',
 'exif-organisationinimage' => '组织描述',
 'exif-personinimage' => '描述的人',
-'exif-originalimageheight' => '之前它被裁剪图像的高度',
-'exif-originalimagewidth' => '之前它被裁剪图像的宽度',
+'exif-originalimageheight' => '裁剪前的图像高度',
+'exif-originalimagewidth' => '裁剪前的图像宽度',
 
 # EXIF attributes
 'exif-compression-1' => '未压缩',
@@ -3304,15 +3302,15 @@ Variants for Chinese language
 
 # Flash modes
 'exif-flash-fired-0' => '闪光灯未点亮',
-'exif-flash-fired-1' => '闪光灯开',
+'exif-flash-fired-1' => '闪光灯开',
 'exif-flash-return-0' => '无频闪观测器功能',
 'exif-flash-return-2' => '频闪观测器未侦测到光',
 'exif-flash-return-3' => '频闪观测器侦测到光',
-'exif-flash-mode-1' => '强制闪光灯开火',
-'exif-flash-mode-2' => '强制闪光抑制',
-'exif-flash-mode-3' => 'è\87ªå\8a¨æ\96¹式',
+'exif-flash-mode-1' => '闪光灯强制开启',
+'exif-flash-mode-2' => '闪光灯强制关闭',
+'exif-flash-mode-3' => 'è\87ªå\8a¨æ¨¡式',
 'exif-flash-function-1' => '无闪光灯功能',
-'exif-flash-redeye-1' => '红眼减退方式',
+'exif-flash-redeye-1' => '防红眼模式',
 
 'exif-focalplaneresolutionunit-2' => '英寸',
 
@@ -3400,9 +3398,9 @@ Variants for Chinese language
 'exif-gpsdop-fair' => '平等($1)',
 'exif-gpsdop-poor' => '不好($1)',
 
-'exif-objectcycle-a' => '只有上午',
-'exif-objectcycle-p' => '只有晚上',
-'exif-objectcycle-b' => '早上和晚上',
+'exif-objectcycle-a' => '仅上午(AM)',
+'exif-objectcycle-p' => '仅下午(PM)',
+'exif-objectcycle-b' => '上午(AM)下午(PM)皆可',
 
 # Pseudotags used for GPSTrackRef, GPSImgDirectionRef and GPSDestBearingRef
 'exif-gpsdirection-t' => '真实方位',
@@ -3422,7 +3420,7 @@ Variants for Chinese language
 
 'exif-rating-rejected' => '拒绝',
 
-'exif-isospeedratings-overflow' => '超过65535',
+'exif-isospeedratings-overflow' => '大于65535',
 
 'exif-iimcategory-ace' => '艺术、 文化和娱乐',
 'exif-iimcategory-clj' => '犯罪和法律',
index b40540a..32c2ee8 100644 (file)
@@ -33,6 +33,7 @@
  * @author PhiLiP
  * @author Philip
  * @author Shinjiman
+ * @author Shirayuki
  * @author Shizhao
  * @author Simon Shek
  * @author Skjackey tse
@@ -532,9 +533,9 @@ $1',
 'dberrortext' => '發生資料庫查詢語法錯誤。
 可能是由於軟體自身的錯誤所引起。
 最後一次資料庫查詢指令是:
-<blockquote><tt>$1</tt></blockquote>
-來自於函數 "<tt>$2</tt>"。
-數據庫返回錯誤 "<tt>$3: $4</tt>"。',
+<blockquote><code>$1</code></blockquote>
+來自於函數 "<code>$2</code>"。
+數據庫返回錯誤 "<samp>$3: $4</samp>"。',
 'dberrortextcl' => '發生資料庫查詢語法錯誤。
 最後一次的資料庫查詢是:
 「$1」
@@ -861,12 +862,11 @@ $2
 'userpage-userdoesnotexist-view' => '未曾建立用戶名「$1」。',
 'blocked-notice-logextract' => '這位用戶現正被封鎖。
 下面有最近的封鎖紀錄以供參考:',
-'clearyourcache' => "'''注意:在保存以後,您必須繞過瀏覽器緩存才能看到所作出的改變。'''
-* '''火狐(Firefox)/Safari''':按住“Shift”鍵再點擊“刷新”,或按下“Ctrl-F5”或“Ctrl-R”(Mac上為“⌘-R”)
-* '''谷歌瀏覽器(Google Chrome)''':按下“Ctrl-Shift-R”(Mac上為“⌘-Shift-R”)
-* '''Internet Explorer''':按住“Ctrl”鍵再點擊“刷新”,或按下“Ctrl-F5”
-* '''Konqueror''':點擊“刷新”或按下“F5”
-* '''Opera''':在“工具→首選項”中清除緩存",
+'clearyourcache' => "'''注意:'''在保存以後,您必須繞過瀏覽器緩存才能看到所作出的改變。
+* '''火狐(Firefox)/Safari:'''按住“Shift”鍵再點擊“刷新”,或按下“Ctrl-F5”或“Ctrl-R”(Mac上為“⌘-R”)
+* '''谷歌瀏覽器(Google Chrome):'''按下“Ctrl-Shift-R”(Mac上為“⌘-Shift-R”)
+* '''Internet Explorer:'''按住“Ctrl”鍵再點擊“刷新”,或按下“Ctrl-F5”
+* '''Opera:'''在“工具→首選項”中清除緩存",
 'usercssyoucanpreview' => "'''提示:''' 在保存前請用「{{int:showpreview}}」按鈕來測試您新的 CSS 。",
 'userjsyoucanpreview' => "'''提示:''' 在保存前請用「{{int:showpreview}}」按鈕來測試您新的 JavaScript 。",
 'usercsspreview' => "'''記住您只是在預覽您的個人 CSS。'''
@@ -1567,9 +1567,9 @@ $1",
 要檢視或搜尋以前上傳的檔案,可以進入[[Special:FileList|檔案上傳清單]],(重新)上傳也將在[[Special:Log/upload|上傳日誌]]中記錄,而刪除將在[[Special:Log/delete|刪除日誌]]中記錄。
 
 要在頁面中加入檔案,使用以下其中一種形式的連結:
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>'''使用檔案的完整版本
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|替換文字]]</nowiki></tt>'''使用放置於左側的一個框內的 200 像素寬的圖片,同時使用「替換文字」作為描述
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''直接連結到檔案而不顯示檔案",
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>'''使用檔案的完整版本
+* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|替換文字]]</nowiki></code>'''使用放置於左側的一個框內的 200 像素寬的圖片,同時使用「替換文字」作為描述
+* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''直接連結到檔案而不顯示檔案",
 'upload-permitted' => '准許的檔案類型: $1。',
 'upload-preferred' => '建議的檔案類型: $1。',
 'upload-prohibited' => '禁止的檔案類型: $1。',
@@ -1613,17 +1613,17 @@ $1",
 'largefileserver' => '這個檔案的大小比伺服器配置允許的大小還要大。',
 'emptyfile' => '您所上傳的檔案不存在。這可能是由於檔案名鍵入錯誤。請檢查您是否真的要上傳此檔案。',
 'windows-nonascii-filename' => '本維基不支持帶特殊字符的檔案名。',
-'fileexists' => "已存在相同名稱的檔案,如果您無法確定您是否要改變它,請檢查'''<tt>[[:$1]]</tt>'''。 [[$1|thumb]]",
-'filepageexists' => "這個檔案的描述頁已於'''<tt>[[:$1]]</tt>'''建立,但是這個名稱的檔案尚未存在。因此您所輸入的摘要不會顯示在該描述頁中。如要摘要在該處中出現,您必需手動編輯它。
-[[$1|thumb]]",
-'fileexists-extension' => "一個相似檔名的檔案已經存在: [[$2|thumb]]
-* 上載檔案的檔名: '''<tt>[[:$1]]</tt>'''
-* 現有檔案的檔名: '''<tt>[[:$2]]</tt>'''
-請選擇一個不同的名字。",
+'fileexists' => '已存在相同名稱的檔案,如果您無法確定您是否要改變它,請檢查<strong>[[:$1]]</strong>。 [[$1|thumb]]',
+'filepageexists' => '這個檔案的描述頁已於<strong>[[:$1]]</strong>建立,但是這個名稱的檔案尚未存在。因此您所輸入的摘要不會顯示在該描述頁中。如要摘要在該處中出現,您必需手動編輯它。
+[[$1|thumb]]',
+'fileexists-extension' => '一個相似檔名的檔案已經存在: [[$2|thumb]]
+* 上載檔案的檔名: <strong>[[:$1]]</strong>
+* 現有檔案的檔名: <strong>[[:$2]]</strong>
+請選擇一個不同的名字。',
 'fileexists-thumbnail-yes' => "這個檔案好像是一幅圖片的縮圖版本''(縮圖)''。 [[$1|thumb]]
-請檢查清楚該檔案'''<tt>[[:$1]]</tt>'''
+請檢查清楚該檔案<strong>[[:$1]]</strong>
 如果檢查後的檔案是同原本圖片的大小是一樣的話,就不用再上載多一幅縮圖。",
-'file-thumbnail-no' => "此圖片的檔案名稱以'''<tt>$1</tt>'''開始。它好像某幅圖片的縮小版本''(縮圖)''。
+'file-thumbnail-no' => "此圖片的檔案名稱以<strong>$1</strong>開始。它好像某幅圖片的縮小版本''(縮圖)''。
 如果{{GENDER:|你|妳|你}}有該圖片的完整大小版本,請上載它;否則請修改檔名。",
 'fileexists-forbidden' => '已存在相同名稱的檔案,且不能覆蓋;請返回並用一個新的名稱來上傳此檔案。[[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => '在共享檔案庫中已存在此名稱的檔案。
@@ -1832,6 +1832,7 @@ $1',
 'shared-repo-from' => '出自$1',
 'shared-repo' => '一個共用檔案庫',
 'shared-repo-name-wikimediacommons' => '維基共享資源',
+'upload-disallowed-here' => '您不可以覆蓋此圖像。',
 
 # File reversion
 'filerevert' => '恢復$1',
@@ -1866,7 +1867,7 @@ $1',
 
 # MIME search
 'mimesearch' => 'MIME 搜尋',
-'mimesearch-summary' => '本頁面啟用檔案MIME類型過濾器。輸入︰內容類型/子類型,如 <tt>image/jpeg</tt>。',
+'mimesearch-summary' => '本頁面啟用檔案MIME類型過濾器。輸入︰內容類型/子類型,如 <code>image/jpeg</code>。',
 'mimetype' => 'MIME 類型:',
 'download' => '下載',
 
@@ -1942,6 +1943,7 @@ Template:消除歧義',
 # Miscellaneous special pages
 'nbytes' => '$1位元組',
 'ncategories' => '$1個分類',
+'ninterwikis' => '$1 個跨維基',
 'nlinks' => '$1個連結',
 'nmembers' => '$1個成員',
 'nrevisions' => '$1個修訂',
@@ -1970,6 +1972,7 @@ Template:消除歧義',
 'mostlinkedtemplates' => '最多連結模板',
 'mostcategories' => '最多分類頁面',
 'mostimages' => '最多連結檔案',
+'mostinterwikis' => '最多跨維基頁面',
 'mostrevisions' => '最多修訂頁面',
 'prefixindex' => '所有有前綴的頁面',
 'prefixindex-namespace' => '帶有前綴的頁面(屬於$1名字空間)',
@@ -2068,7 +2071,7 @@ Template:消除歧義',
 'linksearch-ns' => '名字空間:',
 'linksearch-ok' => '搜尋',
 'linksearch-text' => '製作可以使用類似“*.wikipedia.org”的通配符。必須至少是頂級域名,例如“*.org”。<br />
-支持的協議:<tt>$1</tt>(不要包含在搜索中)。',
+支持的協議:<code>$1</code>(不要包含在搜索中)。',
 'linksearch-line' => '$1 連自 $2',
 'linksearch-error' => '萬用字元僅可在主機名稱的開頭使用。',
 
@@ -2116,6 +2119,8 @@ Template:消除歧義',
 並在[[Special:Preferences|偏好設定]]
 中有一個有效的 e-mail 地址才可以電郵其他用戶。',
 'emailuser' => 'E-mail該用戶',
+'emailuser-title-target' => '電郵這位{{GENDER:$1|用戶}}',
+'emailuser-title-notarget' => 'E-mail用戶',
 'emailpage' => 'E-mail用戶',
 'emailpagetext' => '您可以用下面的表格去寄一封電郵給這位用戶。
 您在[[Special:Preferences|您的參數設置]]中所輸入的電子郵件地址將出現在郵件「發件人」一欄中,這樣該用戶就可以回覆您。',
@@ -2753,6 +2758,7 @@ $1被封禁的理由是“$2”',
 'import-interwiki-templates' => '包含所有模板',
 'import-interwiki-submit' => '匯入',
 'import-interwiki-namespace' => '目的名字空間:',
+'import-interwiki-rootpage' => '目標根頁(可選):',
 'import-upload-filename' => '檔案名稱:',
 'import-comment' => '註解:',
 'importtext' => '請使用[[Special:Export|匯出功能]]從來源維基匯出檔案,
@@ -2785,6 +2791,9 @@ $1被封禁的理由是“$2”',
 'import-error-interwiki' => '頁面"$1"未能導入,這是因為他的頁面名稱預留了供跨維基連結使用。',
 'import-error-special' => '"$1"未能導入因為該頁面使用一個不能創建頁面的特殊名字空間。',
 'import-error-invalid' => '"$1"不能導入,因為名字無效。',
+'import-options-wrong' => '{{PLURAL:$2|選項}}出錯:<nowiki>$1</nowiki>',
+'import-rootpage-invalid' => '指定的根頁標題無效。',
+'import-rootpage-nosubpage' => '名字空間「$1」的根頁面不允許子頁面。',
 
 # Import log
 'importlogpage' => '匯入日誌',
@@ -2932,16 +2941,34 @@ $1被封禁的理由是“$2”',
 
 # Info page
 'pageinfo-title' => '" $1 "的信息',
-'pageinfo-header-edits' => '編輯',
-'pageinfo-header-watchlist' => '監視列表',
-'pageinfo-header-views' => '檢視',
-'pageinfo-subjectpage' => '頁',
-'pageinfo-talkpage' => '討論頁',
-'pageinfo-watchers' => '監視者數目',
-'pageinfo-edits' => '編輯次數',
-'pageinfo-authors' => '作者數',
+'pageinfo-header-basic' => '基本資料',
+'pageinfo-header-edits' => '編輯歷史',
+'pageinfo-header-restrictions' => '保護頁面',
+'pageinfo-header-properties' => '頁面屬性',
+'pageinfo-display-title' => '顯示標題',
+'pageinfo-default-sort' => '預設排序字:',
+'pageinfo-length' => '頁面長度 (以位元組為單位)',
+'pageinfo-article-id' => '頁面編號',
+'pageinfo-robot-policy' => '搜尋引擎狀態',
+'pageinfo-robot-index' => '可索引',
+'pageinfo-robot-noindex' => '不可索引',
 'pageinfo-views' => '觀看次數',
-'pageinfo-viewsperedit' => '每次編輯檢視數',
+'pageinfo-watchers' => '頁面監視者數目',
+'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-restriction' => '保護頁面 ( <code>{{lcfirst:$1}}</code> )',
+'pageinfo-magic-words' => '魔術{{PLURAL:$1|字|字}} ( $1 )',
+'pageinfo-hidden-categories' => '隱藏{{PLURAL:$1|分類|分類}} ( $1 )',
+'pageinfo-templates' => '被引用的{{PLURAL:$1|模版|模版}} ( $1 )',
 
 # Skin names
 'skinname-standard' => '標準',
@@ -2992,6 +3019,7 @@ $1',
 'file-info-size-pages' => '$1 × $2像素,檔案大小: $3,檔案類型: $4, $5 {{PLURAL:$5|頁|頁}}',
 'file-nohires' => '無更高解像度可提供。',
 'svg-long-desc' => 'SVG 檔案,表面大小:$1 × $2 像素,檔案大小:$3',
+'svg-long-desc-animated' => 'SVG 動畫檔案,表面大小:$1 × $2 像素,檔案大小:$3',
 'show-big-image' => '完整解像度',
 'show-big-image-preview' => '此預覽的大小:$1.',
 'show-big-image-other' => '其他{{PLURAL:$2||}}解析度:$1。',
@@ -3001,6 +3029,8 @@ $1',
 'file-info-png-looped' => '循環',
 'file-info-png-repeat' => '已播放$1次',
 'file-info-png-frames' => '$1幀',
+'file-no-thumb-animation' => "'''注意: 由於技術限制,不能播放此檔案縮圖的動畫。'''",
+'file-no-thumb-animation-gif' => "'''注意: 由於技術限制,不能播放此高解析度GIF圖像縮圖的動畫。'''",
 
 # Special:NewFiles
 'newimages' => '新建圖片畫廊',
diff --git a/languages/utils/CLDRPluralRuleEvaluator.php b/languages/utils/CLDRPluralRuleEvaluator.php
new file mode 100644 (file)
index 0000000..6b11704
--- /dev/null
@@ -0,0 +1,574 @@
+<?php
+/**
+ * Parse and evaluate a plural rule.
+ *
+ * http://unicode.org/reports/tr35/#Language_Plural_Rules
+ *
+ * @author Niklas Laxstrom, Tim Starling
+ *
+ * @copyright Copyright © 2010-2012, Niklas Laxström
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ * @file
+ * @since 1.20
+ */
+
+class CLDRPluralRuleEvaluator {
+       /**
+        * Evaluate a number against a set of plural rules. If a rule passes,
+        * return the index of plural rule.
+        *
+        * @param int The number to be evaluated against the rules
+        * @param array The associative array of plural rules in pluralform => rule format.
+        * @return int The index of the plural form which passed the evaluation
+        */
+       public static function evaluate( $number, array $rules ) {
+               $rules = self::compile( $rules );
+               return self::evaluateCompiled( $number, $rules );
+       }
+
+       /**
+        * Convert a set of rules to a compiled form which is optimised for
+        * fast evaluation. The result will be an array of strings, and may be cached.
+        *
+        * @param $rules The rules to compile
+        * @return An array of compile rules.
+        */
+       public static function compile( array $rules ) {
+               // We can't use array_map() for this because it generates a warning if
+               // there is an exception.
+               foreach ( $rules as &$rule ) {
+                       $rule = CLDRPluralRuleConverter::convert( $rule );
+               }
+               return $rules;
+       }
+
+       /**
+        * Evaluate a compiled set of rules returned by compile(). Do not allow
+        * the user to edit the compiled form, or else PHP errors may result.
+        */
+       public static function evaluateCompiled( $number, array $rules ) {
+               // The compiled form is RPN, with tokens strictly delimited by
+               // spaces, so this is a simple RPN evaluator.
+               foreach ( $rules as $i => $rule  ) {
+                       $stack = array();
+                       $zero = ord( '0' );
+                       $nine = ord( '9' );
+                       foreach ( StringUtils::explode( ' ', $rule ) as $token ) {
+                               $ord = ord( $token );
+                               if ( $token === 'n' ) {
+                                       $stack[] = $number;
+                               } elseif ( $ord >= $zero && $ord <= $nine ) {
+                                       $stack[] = intval( $token );
+                               } else {
+                                       $right = array_pop( $stack );
+                                       $left = array_pop( $stack );
+                                       $result = self::doOperation( $token, $left, $right );
+                                       $stack[] = $result;
+                               }
+                       }
+                       if ( $stack[0] ) {
+                               return $i;
+                       }
+               }
+               // None of the provided rules match. The number belongs to caregory
+               // 'other' which comes last.
+               return count( $rules );
+       }
+
+       /**
+        * Do a single operation
+        *
+        * @param $token string The token string
+        * @param $left The left operand. If it is an object, its state may be destroyed.
+        * @param $right The right operand
+        * @return mixed
+        */
+       private static function doOperation( $token, $left, $right ) {
+               if ( in_array( $token, array( 'in', 'not-in', 'within', 'not-within' ) ) ) {
+                       if ( !($right instanceof CLDRPluralRuleEvaluator_Range ) ) {
+                               $right = new CLDRPluralRuleEvaluator_Range( $right );
+                       }
+               }
+               switch ( $token ) {
+                       case 'or':
+                               return $left || $right;
+                       case 'and':
+                               return $left && $right;
+                       case 'is':
+                               return $left == $right;
+                       case 'is-not':
+                               return $left != $right;
+                       case 'in':
+                               return $right->isNumberIn( $left );
+                       case 'not-in':
+                               return !$right->isNumberIn( $left );
+                       case 'within':
+                               return $right->isNumberWithin( $left );
+                       case 'not-within':
+                               return !$right->isNumberWithin( $left );
+                       case 'mod':
+                               if ( is_int( $left ) ) {
+                                       return (int) fmod( $left, $right );
+                               }
+                               return fmod( $left, $right );
+                       case ',':
+                               if ( $left instanceof CLDRPluralRuleEvaluator_Range ) {
+                                       $range = $left;
+                               } else {
+                                       $range = new CLDRPluralRuleEvaluator_Range( $left );
+                               }
+                               $range->add( $right );
+                               return $range;
+                       case '..':
+                               return new CLDRPluralRuleEvaluator_Range( $left, $right );
+                       default:
+                               throw new CLDRPluralRuleError( "Invalid RPN token" );
+               }
+       }
+}
+
+/**
+ * Evaluator helper class representing a range list.
+ */
+class CLDRPluralRuleEvaluator_Range {
+       var $parts = array();
+
+       function __construct( $start, $end = false ) {
+               if ( $end === false ) {
+                       $this->parts[] = $start;
+               } else {
+                       $this->parts[] = array( $start, $end );
+               }
+       }
+
+       /**
+        * Determine if the given number is inside the range. If $integerConstraint
+        * is true, the number must additionally be an integer if it is to match
+        * any interval part.
+        */
+       function isNumberIn( $number, $integerConstraint = true ) {
+               foreach ( $this->parts as $part ) {
+                       if ( is_array( $part ) ) {
+                               if ( ( !$integerConstraint || floor( $number ) === (float)$number )
+                                       && $number >= $part[0] && $number <= $part[1] )
+                               {
+                                       return true;
+                               }
+                       } else {
+                               if ( $number == $part ) {
+                                       return true;
+                               }
+                       }
+               }
+               return false;
+       }
+
+       /**
+        * Readable alias for isNumberIn( $number, false ), and the implementation
+        * of the "within" operator.
+        */
+       function isNumberWithin( $number ) {
+               return $this->isNumberIn( $number, false );
+       }
+
+       /**
+        * Add another part to this range. The supplied new part may either be a
+        * range object itself, or a single number.
+        */
+       function add( $other ) {
+               if ( $other instanceof self ) {
+                       $this->parts = array_merge( $this->parts, $other->parts );
+               } else {
+                       $this->parts[] = $other;
+               }
+       }
+
+       /**
+        * For debugging
+        */
+       function __toString() {
+               $s = 'Range(';
+               foreach ( $this->parts as $i => $part ) {
+                       if ( $i ) {
+                               $s .= ', ';
+                       }
+                       if ( is_array( $part ) ) {
+                               $s .= $part[0] . '..' . $part[1];
+                       } else {
+                               $s .= $part;
+                       }
+               }
+               $s .= ')';
+               return $s;
+       }
+
+}
+
+/**
+ * Helper class for converting rules to reverse polish notation (RPN).
+ */
+class CLDRPluralRuleConverter {
+       var $rule, $pos, $end;
+       var $operators = array();
+       var $operands = array();
+
+       /**
+        * Precedence levels. Note that there's no need to worry about associativity
+        * for the level 4 operators, since they return boolean and don't accept
+        * boolean inputs.
+        */
+       static $precedence = array(
+               'or' => 2,
+               'and' => 3,
+               'is' => 4,
+               'is-not' => 4,
+               'in' => 4,
+               'not-in' => 4,
+               'within' => 4,
+               'not-within' => 4,
+               'mod' => 5,
+               ',' => 6,
+               '..' => 7,
+       );
+
+       /**
+        * A character list defining whitespace, for use in strspn() etc.
+        */
+       const WHITESPACE_CLASS = " \t\r\n";
+
+       /**
+        * Same for digits. Note that the grammar given in UTS #35 doesn't allow
+        * negative numbers or decimals.
+        */
+       const NUMBER_CLASS = '0123456789';
+
+       /**
+        * An anchored regular expression which matches a word at the current offset.
+        */
+       const WORD_REGEX = '/[a-zA-Z]+/A';
+
+       /**
+        * Convert a rule to RPN. This is the only public entry point.
+        */
+       public static function convert( $rule ) {
+               $parser = new self( $rule );
+               return $parser->doConvert();
+       }
+
+       /**
+        * Private constructor.
+        */
+       protected function __construct( $rule ) {
+               $this->rule = $rule;
+               $this->pos = 0;
+               $this->end = strlen( $rule );
+       }
+
+       /**
+        * Do the operation.
+        */
+       protected function doConvert() {
+               $expectOperator = true;
+
+               // Iterate through all tokens, saving the operators and operands to a
+               // stack per Dijkstra's shunting yard algorithm.
+               while ( false !== ( $token = $this->nextToken() ) ) {
+                       // In this grammar, there are only binary operators, so every valid
+                       // rule string will alternate between operator and operand tokens.
+                       $expectOperator = !$expectOperator;
+
+                       if ( $token instanceof CLDRPluralRuleConverter_Expression ) {
+                               // Operand
+                               if ( $expectOperator ) {
+                                       $token->error( 'unexpected operand' );
+                               }
+                               $this->operands[] = $token;
+                               continue;
+                       } else {
+                               // Operator
+                               if  ( !$expectOperator ) {
+                                       $token->error( 'unexpected operator' );
+                               }
+                               // Resolve higher precedence levels
+                               $lastOp = end( $this->operators );
+                               while ( $lastOp && self::$precedence[$token->name] <= self::$precedence[$lastOp->name] ) {
+                                       $this->doOperation( $lastOp, $this->operands );
+                                       array_pop( $this->operators );
+                                       $lastOp = end( $this->operators );
+                               }
+                               $this->operators[] = $token;
+                       }
+               }
+
+               // Finish off the stack
+               while ( $op = array_pop( $this->operators ) ) {
+                       $this->doOperation( $op, $this->operands );
+               }
+
+               // Make sure the result is sane. The first case is possible for an empty
+               // string input, the second should be unreachable.
+               if ( !count( $this->operands ) ) {
+                       $this->error( 'condition expected' );
+               } elseif ( count( $this->operands ) > 1 ) {
+                       $this->error( 'missing operator or too many operands' );
+               }
+
+               $value = $this->operands[0];
+               if ( $value->type !== 'boolean' ) {
+                       $this->error( 'the result must have a boolean type' );
+               }
+
+               return $this->operands[0]->rpn;
+       }
+
+       /**
+        * Fetch the next token from the input string. Return it as a
+        * CLDRPluralRuleConverter_Fragment object.
+        */
+       protected function nextToken() {
+               if ( $this->pos >= $this->end ) {
+                       return false;
+               }
+
+               // Whitespace
+               $length = strspn( $this->rule, self::WHITESPACE_CLASS, $this->pos );
+               $this->pos += $length;
+
+               if ( $this->pos >= $this->end ) {
+                       return false;
+               }
+
+               // Number
+               $length = strspn( $this->rule, self::NUMBER_CLASS, $this->pos );
+               if ( $length !== 0 ) {
+                       $token = $this->newNumber( substr( $this->rule, $this->pos, $length ), $this->pos );
+                       $this->pos += $length;
+                       return $token;
+               }
+
+               // Comma
+               if ( $this->rule[$this->pos] === ',' ) {
+                       $token = $this->newOperator( ',', $this->pos, 1 );
+                       $this->pos ++;
+                       return $token;
+               }
+
+               // Dot dot
+               if ( substr( $this->rule, $this->pos, 2 ) === '..' ) {
+                       $token = $this->newOperator( '..', $this->pos, 2 );
+                       $this->pos += 2;
+                       return $token;
+               }
+
+               // Word
+               if ( !preg_match( self::WORD_REGEX, $this->rule, $m, 0, $this->pos ) ) {
+                       $this->error( 'unexpected character "' . $this->rule[$this->pos] . '"'  );
+               }
+               $word1 = strtolower( $m[0] );
+               $word2 = '';
+               $nextTokenPos = $this->pos + strlen( $word1 );
+               if ( $word1 === 'not' || $word1 === 'is' ) {
+                       // Look ahead one word
+                       $nextTokenPos += strspn( $this->rule, self::WHITESPACE_CLASS, $nextTokenPos );
+                       if ( $nextTokenPos < $this->end
+                                       && preg_match( self::WORD_REGEX, $this->rule, $m, 0, $nextTokenPos ) )
+                       {
+                               $word2 = strtolower( $m[0] );
+                               $nextTokenPos += strlen( $word2 );
+                       }
+               }
+
+               // Two-word operators like "is not" take precedence over single-word operators like "is"
+               if ( $word2 !== '' ) {
+                       $bothWords = "{$word1}-{$word2}";
+                       if ( isset( self::$precedence[$bothWords] ) ) {
+                               $token = $this->newOperator( $bothWords, $this->pos, $nextTokenPos - $this->pos );
+                               $this->pos = $nextTokenPos;
+                               return $token;
+                       }
+               }
+
+               // Single-word operators
+               if ( isset( self::$precedence[$word1] ) ) {
+                       $token = $this->newOperator( $word1, $this->pos, strlen( $word1 ) );
+                       $this->pos += strlen( $word1 );
+                       return $token;
+               }
+
+               // The special numerical keyword "n"
+               if ( $word1 === 'n' ) {
+                       $token = $this->newNumber( 'n', $this->pos );
+                       $this->pos ++;
+                       return $token;
+               }
+
+               $this->error( 'unrecognised word' );
+       }
+
+       /**
+        * For the binary operator $op, pop its operands off the stack and push
+        * a fragment with rpn and type members describing the result of that
+        * operation.
+        */
+       protected function doOperation( $op ) {
+               if ( count( $this->operands ) < 2 ) {
+                       $op->error( 'missing operand' );
+               }
+               $right = array_pop( $this->operands );
+               $left = array_pop( $this->operands );
+               $result = $op->operate( $left, $right );
+               $this->operands[] = $result;
+       }
+
+       /**
+        * Create a numerical expression object
+        */
+       protected function newNumber( $text, $pos ) {
+               return new CLDRPluralRuleConverter_Expression( $this, 'number', $text, $pos, strlen( $text ) );
+       }
+
+       /**
+        * Create a binary operator
+        */
+       protected function newOperator( $type, $pos, $length ) {
+               return new CLDRPluralRuleConverter_Operator( $this, $type, $pos, $length );
+       }
+
+       /**
+        * Throw an error
+        */
+       protected function error( $message ) {
+               throw new CLDRPluralRuleError( $message );
+       }
+}
+
+/**
+ * Helper for CLDRPluralRuleConverter.
+ * The base class for operators and expressions, describing a region of the input string.
+ */
+class CLDRPluralRuleConverter_Fragment {
+       var $parser, $pos, $length, $end;
+
+       function __construct( $parser, $pos, $length ) {
+               $this->parser = $parser;
+               $this->pos = $pos;
+               $this->length = $length;
+               $this->end = $pos + $length;
+       }
+
+       public function error( $message ) {
+               $text = $this->getText();
+               throw new CLDRPluralRuleError( "$message at position " . ( $this->pos + 1 ) . ": \"$text\"" );
+       }
+
+       public function getText() {
+               return substr( $this->parser->rule, $this->pos, $this->length );
+       }
+}
+
+/**
+ * Helper for CLDRPluralRuleConverter.
+ * An expression object, representing a region of the input string (for error
+ * messages), the RPN notation used to evaluate it, and the result type for
+ * validation.
+ */
+class CLDRPluralRuleConverter_Expression extends CLDRPluralRuleConverter_Fragment {
+       var $type, $rpn;
+
+       function __construct( $parser, $type, $rpn, $pos, $length ) {
+               parent::__construct( $parser, $pos, $length );
+               $this->type = $type;
+               $this->rpn = $rpn;
+       }
+
+       public function isType( $type ) {
+               if ( $type === 'range' && ( $this->type === 'range' || $this->type === 'number' ) ) {
+                       return true;
+               }
+               if ( $type === $this->type ) {
+                       return true;
+               }
+               return false;
+       }
+}
+
+/**
+ * Helper for CLDRPluralRuleConverter.
+ * An operator object, representing a region of the input string (for error
+ * messages), and the binary operator at that location.
+ */
+class CLDRPluralRuleConverter_Operator extends CLDRPluralRuleConverter_Fragment {
+       var $name;
+
+       /**
+        * Each op type has three characters: left operand type, right operand type and result type
+        *
+        *   b = boolean
+        *   n = number
+        *   r = range
+        *
+        * A number is a kind of range.
+        */
+       static $opTypes = array(
+               'or' => 'bbb',
+               'and' => 'bbb',
+               'is' => 'nnb',
+               'is-not' => 'nnb',
+               'in' => 'nrb',
+               'not-in' => 'nrb',
+               'within' => 'nrb',
+               'not-within' => 'nrb',
+               'mod' => 'nnn',
+               ',' => 'rrr',
+               '..' => 'nnr',
+       );
+
+       /**
+        * Map converting from the abbrevation to the full form.
+        */
+       static $typeSpecMap = array(
+               'b' => 'boolean',
+               'n' => 'number',
+               'r' => 'range',
+       );
+
+       function __construct( $parser, $name, $pos, $length ) {
+               parent::__construct( $parser, $pos, $length );
+               $this->name = $name;
+       }
+
+       public function operate( $left, $right ) {
+               $typeSpec = self::$opTypes[$this->name];
+
+               $leftType = self::$typeSpecMap[$typeSpec[0]];
+               $rightType = self::$typeSpecMap[$typeSpec[1]];
+               $resultType = self::$typeSpecMap[$typeSpec[2]];
+
+               $start = min( $this->pos, $left->pos, $right->pos );
+               $end = max( $this->end, $left->end, $right->end );
+               $length = $end - $start;
+
+               $newExpr = new CLDRPluralRuleConverter_Expression( $this->parser, $resultType,
+                       "{$left->rpn} {$right->rpn} {$this->name}",
+                       $start, $length );
+
+               if ( !$left->isType( $leftType ) ) {
+                       $newExpr->error( "invalid type for left operand: expected $leftType, got {$left->type}" );
+               }
+
+               if ( !$right->isType( $rightType ) ) {
+                       $newExpr->error( "invalid type for right operand: expected $rightType, got {$right->type}" );
+               }
+               return $newExpr;
+       }
+}
+
+/**
+ * The exception class for all the classes in this file. This will be thrown
+ * back to the caller if there is any validation error.
+ */
+class CLDRPluralRuleError extends MWException {
+       function __construct( $message ) {
+               parent::__construct( 'CLDR plural rule error: ' . $message );
+       }
+}
index ec395eb..3ca3025 100644 (file)
@@ -354,12 +354,12 @@ class TextPassDumper extends BackupDumper {
                                wfDebug( "TextDumpPass::readDump encountered XML parsing error\n" );
 
                                $byte = xml_get_current_byte_index( $parser );
-                               $msg = wfMsgHtml( 'xml-error-string',
+                               $msg = wfMessage( 'xml-error-string',
                                        'XML import parse failure',
                                        xml_get_current_line_number( $parser ),
                                        xml_get_current_column_number( $parser ),
                                        $byte . ( is_null( $chunk ) ? null : ( '; "' . substr( $chunk, $byte -$offset, 16 ) . '"' ) ),
-                                       xml_error_string( xml_get_error_code( $parser ) ) );
+                                       xml_error_string( xml_get_error_code( $parser ) ) )->escaped();
 
                                xml_parser_free( $parser );
 
index 42d8440..2051c89 100644 (file)
@@ -41,7 +41,7 @@ class CleanupSpam extends Maintenance {
        public function execute() {
                global $wgLocalDatabases, $wgUser;
 
-               $username = wfMsg( 'spambot_username' );
+               $username = wfMessage( 'spambot_username' )->text();
                $wgUser = User::newFromName( $username );
                if ( !$wgUser ) {
                        $this->error( "Invalid username", true );
@@ -118,16 +118,16 @@ class CleanupSpam extends Maintenance {
                        if ( $rev ) {
                                // Revert to this revision
                                $this->output( "reverting\n" );
-                               $page->doEdit( $rev->getText(), wfMsgForContent( 'spam_reverting', $domain ),
+                               $page->doEdit( $rev->getText(), wfMessage( 'spam_reverting', $domain )->inContentLanguage()->text(),
                                        EDIT_UPDATE, $rev->getId() );
                        } elseif ( $this->hasOption( 'delete' ) ) {
                                // Didn't find a non-spammy revision, blank the page
                                $this->output( "deleting\n" );
-                               $page->doDeleteArticle( wfMsgForContent( 'spam_deleting', $domain ) );
+                               $page->doDeleteArticle( wfMessage( 'spam_deleting', $domain )->inContentLanguage()->text() );
                        } else {
                                // Didn't find a non-spammy revision, blank the page
                                $this->output( "blanking\n" );
-                               $page->doEdit( '', wfMsgForContent( 'spam_blanking', $domain ) );
+                               $page->doEdit( '', wfMessage( 'spam_blanking', $domain )->inContentLanguage()->text() );
                        }
                        $dbw->commit( __METHOD__ );
                }
index 69a2a78..0f73e88 100644 (file)
@@ -40,6 +40,7 @@ class TestFileOpPerformance extends Maintenance {
                $this->addOption( 'b2', 'Backend 2', false, true );
                $this->addOption( 'srcdir', 'File source directory', true, true );
                $this->addOption( 'maxfiles', 'Max files', false, true );
+               $this->addOption( 'quick', 'Avoid operation pre-checks' );
        }
 
        public function execute() {
@@ -76,11 +77,14 @@ class TestFileOpPerformance extends Maintenance {
                        if ( $file[0] != '.' ) {
                                $this->output( "Using '$dirname/$file' in operations.\n" );
                                $dst = $baseDir . '/' . wfBaseName( $file );
-                               $ops1[] = array( 'op' => 'store', 'src' => "$dirname/$file", 'dst' => $dst, 'overwrite' => 1);
-                               $ops2[] = array( 'op' => 'copy', 'src' => "$dst", 'dst' => "$dst-1", 'overwrite' => 1);
-                               $ops3[] = array( 'op' => 'move', 'src' => $dst, 'dst' => "$dst-2", 'overwrite' => 1);
-                               $ops4[] = array( 'op' => 'delete', 'src' => "$dst-1", 'overwrite' => 1 );
-                               $ops5[] = array( 'op' => 'delete', 'src' => "$dst-2", 'overwrite' => 1 );
+                               $ops1[] = array( 'op' => 'store',
+                                       'src' => "$dirname/$file", 'dst' => $dst, 'overwrite' => 1);
+                               $ops2[] = array( 'op' => 'copy',
+                                       'src' => "$dst", 'dst' => "$dst-1", 'overwrite' => 1 );
+                               $ops3[] = array( 'op' => 'move',
+                                       'src' => $dst, 'dst' => "$dst-2", 'overwrite' => 1 );
+                               $ops4[] = array( 'op' => 'delete', 'src' => "$dst-1" );
+                               $ops5[] = array( 'op' => 'delete', 'src' => "$dst-2" );
                        }
                        if ( count( $ops1 ) >= $this->getOption( 'maxfiles', 20 ) ) {
                                break; // enough
@@ -89,8 +93,10 @@ class TestFileOpPerformance extends Maintenance {
                closedir( $dir );
                $this->output( "\n" );
 
+               $method = $this->hasOption( 'quick' ) ? 'doQuickOperations' : 'doOperations';
+
                $start = microtime( true );
-               $status = $backend->doOperations( $ops1, array( 'force' => 1 ) );
+               $status = $backend->$method( $ops1, array( 'force' => 1 ) );
                $e = ( microtime( true ) - $start ) * 1000;
                if ( $status->getErrorsArray() ) {
                        print_r( $status->getErrorsArray() );
@@ -99,7 +105,7 @@ class TestFileOpPerformance extends Maintenance {
                $this->output( $backend->getName() . ": Stored " . count( $ops1 ) . " files in $e ms.\n" );
 
                $start = microtime( true );
-               $backend->doOperations( $ops2, array( 'force' => 1 ) );
+               $backend->$method( $ops2, array( 'force' => 1 ) );
                $e = ( microtime( true ) - $start ) * 1000;
                if ( $status->getErrorsArray() ) {
                        print_r( $status->getErrorsArray() );
@@ -108,7 +114,7 @@ class TestFileOpPerformance extends Maintenance {
                $this->output( $backend->getName() . ": Copied " . count( $ops2 ) . " files in $e ms.\n" );
 
                $start = microtime( true );
-               $backend->doOperations( $ops3, array( 'force' => 1 ) );
+               $backend->$method( $ops3, array( 'force' => 1 ) );
                $e = ( microtime( true ) - $start ) * 1000;
                if ( $status->getErrorsArray() ) {
                        print_r( $status->getErrorsArray() );
@@ -117,7 +123,7 @@ class TestFileOpPerformance extends Maintenance {
                $this->output( $backend->getName() . ": Moved " . count( $ops3 ) . " files in $e ms.\n" );
 
                $start = microtime( true );
-               $backend->doOperations( $ops4, array( 'force' => 1 ) );
+               $backend->$method( $ops4, array( 'force' => 1 ) );
                $e = ( microtime( true ) - $start ) * 1000;
                if ( $status->getErrorsArray() ) {
                        print_r( $status->getErrorsArray() );
@@ -126,7 +132,7 @@ class TestFileOpPerformance extends Maintenance {
                $this->output( $backend->getName() . ": Deleted " . count( $ops4 ) . " files in $e ms.\n" );
 
                $start = microtime( true );
-               $backend->doOperations( $ops5, array( 'force' => 1 ) );
+               $backend->$method( $ops5, array( 'force' => 1 ) );
                $e = ( microtime( true ) - $start ) * 1000;
                if ( $status->getErrorsArray() ) {
                        print_r( $status->getErrorsArray() );
index 216af37..8f3b8e5 100644 (file)
@@ -381,7 +381,6 @@ class wikiFuzz {
                        "br"         => array( "CLASS", "ID", "STYLE", "title", "clear" ),
                        "cite"       => array( "CLASS", "ID", "STYLE", "lang", "dir", "title" ),
                        "var"        => array( "CLASS", "ID", "STYLE", "lang", "dir", "title" ),
-                       "dl"         => array( "CLASS", "ID", "STYLE", "lang", "dir", "title" ),
                        "ruby"       => array( "CLASS", "ID", "STYLE", "lang", "dir", "title" ),
                        "rt"         => array( "CLASS", "ID", "STYLE", "lang", "dir", "title" ),
                        "rp"         => array( "CLASS", "ID", "STYLE", "lang", "dir", "title" ),
@@ -1360,6 +1359,7 @@ class viewPageTest extends pageTest {
                                "rdfrom"         => wikiFuzz::makeFuzz( 2 ),  // things from Article.php from here on:
                                "token"          => wikiFuzz::makeFuzz( 2 ),
                                "tbid"           => wikiFuzz::makeFuzz( 2 ),
+                               // @todo FIXME: Duplicate array key.
                                "action"         => wikiFuzz::chooseInput( array( "purge", wikiFuzz::makeFuzz( 2 ) ) ),
                                "wpReason"       => wikiFuzz::makeFuzz( 2 ),
                                "wpEditToken"    => wikiFuzz::makeFuzz( 2 ),
index 65ac65a..b4a1bac 100644 (file)
@@ -56,9 +56,12 @@ class ImportSiteScripts extends Maintenance {
                        }
 
                        $this->output( "Importing $page\n" );
-                       $url = wfAppendQuery( $baseUrl, array(
+                       $uri = new Uri( $baseUrl );
+                       $uri->extendQuery( array(
                                'action' => 'raw',
                                'title' => "MediaWiki:{$page}" ) );
+                       $url = $uri->toString();
+
                        $text = Http::get( $url );
 
                        $wikiPage = WikiPage::factory( $title );
@@ -79,7 +82,9 @@ class ImportSiteScripts extends Maintenance {
                $pages = array();
 
                do {
-                       $url = wfAppendQuery( $baseUrl, $data );
+                       $uri = new Uri( $baseUrl );
+                       $uri->extendQuery( $data );
+                       $url = $uri->toString();
                        $strResult = Http::get( $url );
                        //$result = FormatJson::decode( $strResult ); // Still broken
                        $result = unserialize( $strResult );
index 9bdda09..b7ca88d 100644 (file)
@@ -35,7 +35,7 @@ class DumpMessages extends Maintenance {
 
                $messages = array();
                foreach ( array_keys( Language::getMessagesFor( 'en' ) ) as $key ) {
-                       $messages[$key] = wfMsg( $key );
+                       $messages[$key] = wfMessage( $key )->text();
                }
                $this->output( "MediaWiki $wgVersion language file\n" );
                $this->output( serialize( $messages ) );
index 230f613..2d0f90f 100644 (file)
@@ -169,6 +169,7 @@ $wgIgnoredMessages = array(
        'mostlinkedtemplates-summary',
        'mostcategories-summary',
        'mostimages-summary',
+       'mostinterwikis-summary',
        'mostrevisions-summary',
        'prefixindex-summary',
        'shortpages-summary',
@@ -474,6 +475,7 @@ $wgOptionalMessages = array(
        'mergehistory-revisionrow',
        'categoryviewer-pagedlinks',
        'undelete-revisionrow',
+       'pageinfo-redirects-value',
 );
 
 /** EXIF messages, which may be set as optional in several checks, but are generally mandatory */
index 5fd1a99..33c104b 100644 (file)
@@ -1535,6 +1535,7 @@ $wgMessageStructure = array(
                'shared-repo',
                'shared-repo-name-wikimediacommons',
                'filepage.css',
+               'upload-disallowed-here',
        ),
        'filerevert' => array(
                'filerevert',
@@ -1650,6 +1651,7 @@ $wgMessageStructure = array(
        'specialpages' => array(
                'nbytes',
                'ncategories',
+               'ninterwikis',
                'nlinks',
                'nmembers',
                'nrevisions',
@@ -1696,6 +1698,8 @@ $wgMessageStructure = array(
                'mostcategories-summary',
                'mostimages',
                'mostimages-summary',
+               'mostinterwikis',
+               'mostinterwikis-summary',
                'mostrevisions',
                'mostrevisions-summary',
                'prefixindex',
@@ -1858,6 +1862,8 @@ $wgMessageStructure = array(
                'mailnologin',
                'mailnologintext',
                'emailuser',
+               'emailuser-title-target',
+               'emailuser-title-notarget',
                'emailuser-summary',
                'emailpage',
                'emailpagetext',
@@ -2399,6 +2405,7 @@ $wgMessageStructure = array(
                'import-interwiki-templates',
                'import-interwiki-submit',
                'import-interwiki-namespace',
+               'import-interwiki-rootpage',
                'import-upload-filename',
                'import-comment',
                'importtext',
@@ -2430,6 +2437,9 @@ $wgMessageStructure = array(
                'import-error-interwiki',
                'import-error-special',
                'import-error-invalid',
+               'import-options-wrong',
+               'import-rootpage-invalid',
+               'import-rootpage-nosubpage',
        ),
        'importlog' => array(
                'importlogpage',
@@ -2654,16 +2664,35 @@ $wgMessageStructure = array(
        ),
        'info' => array(
                'pageinfo-title',
+               'pageinfo-header-basic',
                'pageinfo-header-edits',
-               'pageinfo-header-watchlist',
-               'pageinfo-header-views',
-               'pageinfo-subjectpage',
-               'pageinfo-talkpage',
+               'pageinfo-header-restrictions',
+               'pageinfo-header-properties',
+               'pageinfo-display-title',
+               'pageinfo-default-sort',
+               'pageinfo-length',
+               'pageinfo-article-id',
+               'pageinfo-robot-policy',
+               'pageinfo-robot-index',
+               'pageinfo-robot-noindex',
+               'pageinfo-views',
                'pageinfo-watchers',
+               'pageinfo-redirects-name',
+               'pageinfo-redirects-value',
+               'pageinfo-subpages-name',
+               'pageinfo-subpages-value',
+               'pageinfo-firstuser',
+               'pageinfo-firsttime',
+               'pageinfo-lastuser',
+               'pageinfo-lasttime',
                'pageinfo-edits',
                'pageinfo-authors',
-               'pageinfo-views',
-               'pageinfo-viewsperedit',
+               'pageinfo-recent-edits',
+               'pageinfo-recent-authors',
+               'pageinfo-restriction',
+               'pageinfo-magic-words',
+               'pageinfo-hidden-categories',
+               'pageinfo-templates',
        ),
        'skin' => array(
                'skinname-standard',
@@ -2717,6 +2746,7 @@ $wgMessageStructure = array(
                'file-info-size-pages',
                'file-nohires',
                'svg-long-desc',
+               'svg-long-desc-animated',
                'show-big-image',
                'show-big-image-preview',
                'show-big-image-other',
@@ -2726,6 +2756,8 @@ $wgMessageStructure = array(
                'file-info-png-looped',
                'file-info-png-repeat',
                'file-info-png-frames',
+               'file-no-thumb-animation',
+               'file-no-thumb-animation-gif',
        ),
        'newfiles' => array(
                'newimages',
index f846994..78db8b9 100644 (file)
@@ -102,7 +102,7 @@ class MoveBatch extends Maintenance {
                        $err = $source->moveTo( $dest, false, $reason );
                        if ( $err !== true ) {
                                $msg = array_shift( $err[0] );
-                               $this->output( "\nFAILED: " . wfMsg( $msg, $err[0] ) );
+                               $this->output( "\nFAILED: " . wfMessage( $msg, $err[0] )->text() );
                        }
                        $dbw->commit( __METHOD__ );
                        $this->output( "\n" );
index f30f07e..f3b521f 100644 (file)
@@ -28,7 +28,7 @@ class OrphanStats extends Maintenance {
                $this->mDescription = "how some statistics on the blob_orphans table, created with trackBlobs.php";
        }
 
-       private function getDB( $cluster ) {
+       protected function &getDB( $cluster, $groups = array(), $wiki = false ) {
                $lb = wfGetLBFactory()->getExternalLB( $cluster );
                return $lb->getConnection( DB_SLAVE );
        }
index a5e48fa..630b05c 100644 (file)
@@ -54,7 +54,7 @@ print Xml::openElement( 'OpenSearchDescription',
 //
 // Behavior seems about the same between Firefox and IE 7/8 here.
 // 'Description' doesn't appear to be used by either.
-$fullName = wfMsgForContent( 'opensearch-desc' );
+$fullName = wfMessage( 'opensearch-desc' )->inContentLanguage()->text();
 print Xml::element( 'ShortName', null, $fullName );
 print Xml::element( 'Description', null, $fullName );
 
index 380a099..5a24355 100644 (file)
@@ -671,7 +671,6 @@ return array(
                'scripts' => 'resources/mediawiki.language/mediawiki.language.js',
                'languageScripts' => array(
                        'am' => 'resources/mediawiki.language/languages/am.js',
-                       'ar' => 'resources/mediawiki.language/languages/ar.js',
                        'bat-smg' => 'resources/mediawiki.language/languages/bat-smg.js',
                        'be' => 'resources/mediawiki.language/languages/be.js',
                        'be-tarask' => 'resources/mediawiki.language/languages/be-tarask.js',
@@ -687,7 +686,6 @@ return array(
                        'gd' => 'resources/mediawiki.language/languages/gd.js',
                        'gv' => 'resources/mediawiki.language/languages/gv.js',
                        'he' => 'resources/mediawiki.language/languages/he.js',
-                       'hi' => 'resources/mediawiki.language/languages/hi.js',
                        'hr' => 'resources/mediawiki.language/languages/hr.js',
                        'hsb' => 'resources/mediawiki.language/languages/hsb.js',
                        'hu' => 'resources/mediawiki.language/languages/hu.js',
@@ -719,7 +717,21 @@ return array(
                        'uk' => 'resources/mediawiki.language/languages/uk.js',
                        'wa' => 'resources/mediawiki.language/languages/wa.js',
                ),
-               'dependencies' => array( 'mediawiki.language.data' ),
+               'dependencies' => array(
+                               'mediawiki.language.data',
+                               'mediawiki.cldr'
+                       ),
+       ),
+
+       'mediawiki.cldr' => array(
+               'scripts' => 'resources/mediawiki.language/mediawiki.cldr.js',
+               'dependencies' => array(
+                       'mediawiki.libs.pluralruleparser',
+               ),
+       ),
+
+       'mediawiki.libs.pluralruleparser' => array(
+               'scripts' => 'resources/mediawiki.libs/CLDRPluralRuleParser.js',
        ),
 
        'mediawiki.language.init' => array(
index fdcdd15..13e9a55 100644 (file)
 /*!
  * jQuery Form Plugin
- * version: 2.84 (12-AUG-2011)
+ * version: 3.14 (30-JUL-2012)
  * @requires jQuery v1.3.2 or later
  *
  * Examples and documentation at: http://malsup.com/jquery/form/
+ * Project repository: https://github.com/malsup/form
  * Dual licensed under the MIT and GPL licenses:
- *   http://www.opensource.org/licenses/mit-license.php
- *   http://www.gnu.org/licenses/gpl.html
+ *    http://malsup.github.com/mit-license.txt
+ *    http://malsup.github.com/gpl-license-v2.txt
  */
+/*global ActiveXObject alert */
 ;(function($) {
+"use strict";
 
 /*
-       Usage Note:
-       -----------
-       Do not use both ajaxSubmit and ajaxForm on the same form.  These
-       functions are intended to be exclusive.  Use ajaxSubmit if you want
-       to bind your own submit handler to the form.  For example,
-
-       $(document).ready(function() {
-               $('#myForm').bind('submit', function(e) {
-                       e.preventDefault(); // <-- important
-                       $(this).ajaxSubmit({
-                               target: '#output'
-                       });
-               });
-       });
-
-       Use ajaxForm when you want the plugin to manage all the event binding
-       for you.  For example,
-
-       $(document).ready(function() {
-               $('#myForm').ajaxForm({
-                       target: '#output'
-               });
-       });
-
-       When using ajaxForm, the ajaxSubmit function will be invoked for you
-       at the appropriate time.
+    Usage Note:
+    -----------
+    Do not use both ajaxSubmit and ajaxForm on the same form.  These
+    functions are mutually exclusive.  Use ajaxSubmit if you want
+    to bind your own submit handler to the form.  For example,
+
+    $(document).ready(function() {
+        $('#myForm').on('submit', function(e) {
+            e.preventDefault(); // <-- important
+            $(this).ajaxSubmit({
+                target: '#output'
+            });
+        });
+    });
+
+    Use ajaxForm when you want the plugin to manage all the event binding
+    for you.  For example,
+
+    $(document).ready(function() {
+        $('#myForm').ajaxForm({
+            target: '#output'
+        });
+    });
+    
+    You can also use ajaxForm with delegation (requires jQuery v1.7+), so the
+    form does not have to exist when you invoke ajaxForm:
+
+    $('#myForm').ajaxForm({
+        delegation: true,
+        target: '#output'
+    });
+    
+    When using ajaxForm, the ajaxSubmit function will be invoked for you
+    at the appropriate time.
 */
 
+/**
+ * Feature detection
+ */
+var feature = {};
+feature.fileapi = $("<input type='file'/>").get(0).files !== undefined;
+feature.formdata = window.FormData !== undefined;
+
 /**
  * ajaxSubmit() provides a mechanism for immediately submitting
  * an HTML form using AJAX.
  */
 $.fn.ajaxSubmit = function(options) {
-       // fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
-       if (!this.length) {
-               log('ajaxSubmit: skipping submit process - no element selected');
-               return this;
-       }
-       
-       var method, action, url, $form = this;
-
-       if (typeof options == 'function') {
-               options = { success: options };
-       }
-
-       method = this.attr('method');
-       action = this.attr('action');
-       url = (typeof action === 'string') ? $.trim(action) : '';
-       url = url || window.location.href || '';
-       if (url) {
-               // clean url (don't include hash vaue)
-               url = (url.match(/^([^#]+)/)||[])[1];
-       }
-
-       options = $.extend(true, {
-               url:  url,
-               success: $.ajaxSettings.success,
-               type: method || 'GET',
-               iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'
-       }, options);
-
-       // hook for manipulating the form data before it is extracted;
-       // convenient for use with rich editors like tinyMCE or FCKEditor
-       var veto = {};
-       this.trigger('form-pre-serialize', [this, options, veto]);
-       if (veto.veto) {
-               log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
-               return this;
-       }
-
-       // provide opportunity to alter form data before it is serialized
-       if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {
-               log('ajaxSubmit: submit aborted via beforeSerialize callback');
-               return this;
-       }
-
-       var n,v,a = this.formToArray(options.semantic);
-       if (options.data) {
-               options.extraData = options.data;
-               for (n in options.data) {
-                       if( $.isArray(options.data[n]) ) {
-                               for (var k in options.data[n]) {
-                                       a.push( { name: n, value: options.data[n][k] } );
-                               }
-                       }
-                       else {
-                               v = options.data[n];
-                               v = $.isFunction(v) ? v() : v; // if value is fn, invoke it
-                               a.push( { name: n, value: v } );
-                       }
-               }
-       }
-
-       // give pre-submit callback an opportunity to abort the submit
-       if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
-               log('ajaxSubmit: submit aborted via beforeSubmit callback');
-               return this;
-       }
-
-       // fire vetoable 'validate' event
-       this.trigger('form-submit-validate', [a, this, options, veto]);
-       if (veto.veto) {
-               log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
-               return this;
-       }
-
-       var q = $.param(a);
-
-       if (options.type.toUpperCase() == 'GET') {
-               options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
-               options.data = null;  // data is null for 'get'
-       }
-       else {
-               options.data = q; // data is the query string for 'post'
-       }
-
-       var callbacks = [];
-       if (options.resetForm) {
-               callbacks.push(function() { $form.resetForm(); });
-       }
-       if (options.clearForm) {
-               callbacks.push(function() { $form.clearForm(); });
-       }
-
-       // perform a load on the target only if dataType is not provided
-       if (!options.dataType && options.target) {
-               var oldSuccess = options.success || function(){};
-               callbacks.push(function(data) {
-                       var fn = options.replaceTarget ? 'replaceWith' : 'html';
-                       $(options.target)[fn](data).each(oldSuccess, arguments);
-               });
-       }
-       else if (options.success) {
-               callbacks.push(options.success);
-       }
-
-       options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
-               var context = options.context || options;   // jQuery 1.4+ supports scope context 
-               for (var i=0, max=callbacks.length; i < max; i++) {
-                       callbacks[i].apply(context, [data, status, xhr || $form, $form]);
-               }
-       };
-
-       // are there files to upload?
-       var fileInputs = $('input:file', this).length > 0;
-       var mp = 'multipart/form-data';
-       var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);
-
-       // options.iframe allows user to force iframe mode
-       // 06-NOV-09: now defaulting to iframe mode if file input is detected
-   if (options.iframe !== false && (fileInputs || options.iframe || multipart)) {
-          // hack to fix Safari hang (thanks to Tim Molendijk for this)
-          // see:  http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
-          if (options.closeKeepAlive) {
-                  $.get(options.closeKeepAlive, function() { fileUpload(a); });
-               }
-          else {
-                  fileUpload(a);
-               }
-   }
-   else {
-               // IE7 massage (see issue 57)
-               if ($.browser.msie && method == 'get') { 
-                       var ieMeth = $form[0].getAttribute('method');
-                       if (typeof ieMeth === 'string')
-                               options.type = ieMeth;
-               }
-               $.ajax(options);
-   }
-
-       // fire 'notify' event
-       this.trigger('form-submit-notify', [this, options]);
-       return this;
-
-
-       // private function for handling file uploads (hat tip to YAHOO!)
-       function fileUpload(a) {
-               var form = $form[0], el, i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle;
+    /*jshint scripturl:true */
+
+    // fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
+    if (!this.length) {
+        log('ajaxSubmit: skipping submit process - no element selected');
+        return this;
+    }
+    
+    var method, action, url, $form = this;
+
+    if (typeof options == 'function') {
+        options = { success: options };
+    }
+
+    method = this.attr('method');
+    action = this.attr('action');
+    url = (typeof action === 'string') ? $.trim(action) : '';
+    url = url || window.location.href || '';
+    if (url) {
+        // clean url (don't include hash vaue)
+        url = (url.match(/^([^#]+)/)||[])[1];
+    }
+
+    options = $.extend(true, {
+        url:  url,
+        success: $.ajaxSettings.success,
+        type: method || 'GET',
+        iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'
+    }, options);
+
+    // hook for manipulating the form data before it is extracted;
+    // convenient for use with rich editors like tinyMCE or FCKEditor
+    var veto = {};
+    this.trigger('form-pre-serialize', [this, options, veto]);
+    if (veto.veto) {
+        log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
+        return this;
+    }
+
+    // provide opportunity to alter form data before it is serialized
+    if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {
+        log('ajaxSubmit: submit aborted via beforeSerialize callback');
+        return this;
+    }
+
+    var traditional = options.traditional;
+    if ( traditional === undefined ) {
+        traditional = $.ajaxSettings.traditional;
+    }
+    
+    var elements = [];
+    var qx, a = this.formToArray(options.semantic, elements);
+    if (options.data) {
+        options.extraData = options.data;
+        qx = $.param(options.data, traditional);
+    }
+
+    // give pre-submit callback an opportunity to abort the submit
+    if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
+        log('ajaxSubmit: submit aborted via beforeSubmit callback');
+        return this;
+    }
+
+    // fire vetoable 'validate' event
+    this.trigger('form-submit-validate', [a, this, options, veto]);
+    if (veto.veto) {
+        log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
+        return this;
+    }
+
+    var q = $.param(a, traditional);
+    if (qx) {
+        q = ( q ? (q + '&' + qx) : qx );
+    }    
+    if (options.type.toUpperCase() == 'GET') {
+        options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
+        options.data = null;  // data is null for 'get'
+    }
+    else {
+        options.data = q; // data is the query string for 'post'
+    }
+
+    var callbacks = [];
+    if (options.resetForm) {
+        callbacks.push(function() { $form.resetForm(); });
+    }
+    if (options.clearForm) {
+        callbacks.push(function() { $form.clearForm(options.includeHidden); });
+    }
+
+    // perform a load on the target only if dataType is not provided
+    if (!options.dataType && options.target) {
+        var oldSuccess = options.success || function(){};
+        callbacks.push(function(data) {
+            var fn = options.replaceTarget ? 'replaceWith' : 'html';
+            $(options.target)[fn](data).each(oldSuccess, arguments);
+        });
+    }
+    else if (options.success) {
+        callbacks.push(options.success);
+    }
+
+    options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
+        var context = options.context || this ;    // jQuery 1.4+ supports scope context 
+        for (var i=0, max=callbacks.length; i < max; i++) {
+            callbacks[i].apply(context, [data, status, xhr || $form, $form]);
+        }
+    };
+
+    // are there files to upload?
+    var fileInputs = $('input:file:enabled[value]', this); // [value] (issue #113)
+    var hasFileInputs = fileInputs.length > 0;
+    var mp = 'multipart/form-data';
+    var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);
+
+    var fileAPI = feature.fileapi && feature.formdata;
+    log("fileAPI :" + fileAPI);
+    var shouldUseFrame = (hasFileInputs || multipart) && !fileAPI;
+
+    // options.iframe allows user to force iframe mode
+    // 06-NOV-09: now defaulting to iframe mode if file input is detected
+    if (options.iframe !== false && (options.iframe || shouldUseFrame)) {
+        // hack to fix Safari hang (thanks to Tim Molendijk for this)
+        // see:  http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
+        if (options.closeKeepAlive) {
+            $.get(options.closeKeepAlive, function() {
+                fileUploadIframe(a);
+            });
+        }
+          else {
+            fileUploadIframe(a);
+          }
+    }
+    else if ((hasFileInputs || multipart) && fileAPI) {
+        fileUploadXhr(a);
+    }
+    else {
+        $.ajax(options);
+    }
+
+    // clear element array
+    for (var k=0; k < elements.length; k++)
+        elements[k] = null;
+
+    // fire 'notify' event
+    this.trigger('form-submit-notify', [this, options]);
+    return this;
+
+     // XMLHttpRequest Level 2 file uploads (big hat tip to francois2metz)
+    function fileUploadXhr(a) {
+        var formdata = new FormData();
+
+        for (var i=0; i < a.length; i++) {
+            formdata.append(a[i].name, a[i].value);
+        }
+
+        if (options.extraData) {
+            for (var p in options.extraData)
+                if (options.extraData.hasOwnProperty(p))
+                    formdata.append(p, options.extraData[p]);
+        }
+
+        options.data = null;
+
+        var s = $.extend(true, {}, $.ajaxSettings, options, {
+            contentType: false,
+            processData: false,
+            cache: false,
+            type: 'POST'
+        });
+        
+        if (options.uploadProgress) {
+            // workaround because jqXHR does not expose upload property
+            s.xhr = function() {
+                var xhr = jQuery.ajaxSettings.xhr();
+                if (xhr.upload) {
+                    xhr.upload.onprogress = function(event) {
+                        var percent = 0;
+                        var position = event.loaded || event.position; /*event.position is deprecated*/
+                        var total = event.total;
+                        if (event.lengthComputable) {
+                            percent = Math.ceil(position / total * 100);
+                        }
+                        options.uploadProgress(event, position, total, percent);
+                    };
+                }
+                return xhr;
+            };
+        }
+
+        s.data = null;
+            var beforeSend = s.beforeSend;
+            s.beforeSend = function(xhr, o) {
+                o.data = formdata;
+                if(beforeSend)
+                    beforeSend.call(this, xhr, o);
+        };
+        $.ajax(s);
+    }
+
+    // private function for handling file uploads (hat tip to YAHOO!)
+    function fileUploadIframe(a) {
+        var form = $form[0], el, i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle;
         var useProp = !!$.fn.prop;
 
+        if ($(':input[name=submit],:input[id=submit]', form).length) {
+            // if there is an input with a name or id of 'submit' then we won't be
+            // able to invoke the submit fn on the form (at least not x-browser)
+            alert('Error: Form elements must not have name or id of "submit".');
+            return;
+        }
+        
         if (a) {
-               // ensure that every serialized input is still enabled
-               for (i=0; i < a.length; i++) {
-                el = $(form[a[i].name]);
-                el[ useProp ? 'prop' : 'attr' ]('disabled', false);
-               }
-        }
-
-               if ($(':input[name=submit],:input[id=submit]', form).length) {
-                       // if there is an input with a name or id of 'submit' then we won't be
-                       // able to invoke the submit fn on the form (at least not x-browser)
-                       alert('Error: Form elements must not have name or id of "submit".');
-                       return;
-               }
-               
-               s = $.extend(true, {}, $.ajaxSettings, options);
-               s.context = s.context || s;
-               id = 'jqFormIO' + (new Date().getTime());
-               if (s.iframeTarget) {
-                       $io = $(s.iframeTarget);
-                       n = $io.attr('name');
-                       if (n == null)
-                               $io.attr('name', id);
-                       else
-                               id = n;
-               }
-               else {
-                       $io = $('<iframe name="' + id + '" src="'+ s.iframeSrc +'" />');
-                       $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
-               }
-               io = $io[0];
-
-
-               xhr = { // mock object
-                       aborted: 0,
-                       responseText: null,
-                       responseXML: null,
-                       status: 0,
-                       statusText: 'n/a',
-                       getAllResponseHeaders: function() {},
-                       getResponseHeader: function() {},
-                       setRequestHeader: function() {},
-                       abort: function(status) {
-                               var e = (status === 'timeout' ? 'timeout' : 'aborted');
-                               log('aborting upload... ' + e);
-                               this.aborted = 1;
-                               $io.attr('src', s.iframeSrc); // abort op in progress
-                               xhr.error = e;
-                               s.error && s.error.call(s.context, xhr, e, status);
-                               g && $.event.trigger("ajaxError", [xhr, s, e]);
-                               s.complete && s.complete.call(s.context, xhr, e);
-                       }
-               };
-
-               g = s.global;
-               // trigger ajax global events so that activity/block indicators work like normal
-               if (g && ! $.active++) {
-                       $.event.trigger("ajaxStart");
-               }
-               if (g) {
-                       $.event.trigger("ajaxSend", [xhr, s]);
-               }
-
-               if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) {
-                       if (s.global) {
-                               $.active--;
-                       }
-                       return;
-               }
-               if (xhr.aborted) {
-                       return;
-               }
-
-               // add submitting element to data if we know it
-               sub = form.clk;
-               if (sub) {
-                       n = sub.name;
-                       if (n && !sub.disabled) {
-                               s.extraData = s.extraData || {};
-                               s.extraData[n] = sub.value;
-                               if (sub.type == "image") {
-                                       s.extraData[n+'.x'] = form.clk_x;
-                                       s.extraData[n+'.y'] = form.clk_y;
-                               }
-                       }
-               }
-               
-               var CLIENT_TIMEOUT_ABORT = 1;
-               var SERVER_ABORT = 2;
-
-               function getDoc(frame) {
-                       var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
-                       return doc;
-               }
-               
-               // take a breath so that pending repaints get some cpu time before the upload starts
-               function doSubmit() {
-                       // make sure form attrs are set
-                       var t = $form.attr('target'), a = $form.attr('action');
-
-                       // update form attrs in IE friendly way
-                       form.setAttribute('target',id);
-                       if (!method) {
-                               form.setAttribute('method', 'POST');
-                       }
-                       if (a != s.url) {
-                               form.setAttribute('action', s.url);
-                       }
-
-                       // ie borks in some cases when setting encoding
-                       if (! s.skipEncodingOverride && (!method || /post/i.test(method))) {
-                               $form.attr({
-                                       encoding: 'multipart/form-data',
-                                       enctype:  'multipart/form-data'
-                               });
-                       }
-
-                       // support timout
-                       if (s.timeout) {
-                               timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
-                       }
-                       
-                       // look for server aborts
-                       function checkState() {
-                               try {
-                                       var state = getDoc(io).readyState;
-                                       log('state = ' + state);
-                                       if (state.toLowerCase() == 'uninitialized')
-                                               setTimeout(checkState,50);
-                               }
-                               catch(e) {
-                                       log('Server abort: ' , e, ' (', e.name, ')');
-                                       cb(SERVER_ABORT);
-                                       timeoutHandle && clearTimeout(timeoutHandle);
-                                       timeoutHandle = undefined;
-                               }
-                       }
-
-                       // add "extra" data to form if provided in options
-                       var extraInputs = [];
-                       try {
-                               if (s.extraData) {
-                                       for (var n in s.extraData) {
-                                               extraInputs.push(
-                                                       $('<input type="hidden" name="'+n+'" />').attr('value',s.extraData[n])
-                                                               .appendTo(form)[0]);
-                                       }
-                               }
-
-                               if (!s.iframeTarget) {
-                                       // add iframe to doc and submit the form
-                                       $io.appendTo('body');
-                       io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
-                               }
-                               setTimeout(checkState,15);
-                               form.submit();
-                       }
-                       finally {
-                               // reset attrs and remove "extra" input elements
-                               form.setAttribute('action',a);
-                               if(t) {
-                                       form.setAttribute('target', t);
-                               } else {
-                                       $form.removeAttr('target');
-                               }
-                               $(extraInputs).remove();
-                       }
-               }
-
-               if (s.forceSync) {
-                       doSubmit();
-               }
-               else {
-                       setTimeout(doSubmit, 10); // this lets dom updates render
-               }
-
-               var data, doc, domCheckCount = 50, callbackProcessed;
-
-               function cb(e) {
-                       if (xhr.aborted || callbackProcessed) {
-                               return;
-                       }
-                       try {
-                               doc = getDoc(io);
-                       }
-                       catch(ex) {
-                               log('cannot access response document: ', ex);
-                               e = SERVER_ABORT;
-                       }
-                       if (e === CLIENT_TIMEOUT_ABORT && xhr) {
-                               xhr.abort('timeout');
-                               return;
-                       }
-                       else if (e == SERVER_ABORT && xhr) {
-                               xhr.abort('server abort');
-                               return;
-                       }
-
-                       if (!doc || doc.location.href == s.iframeSrc) {
-                               // response not received yet
-                               if (!timedOut)
-                                       return;
-                       }
-            io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
-
-                       var status = 'success', errMsg;
-                       try {
-                               if (timedOut) {
-                                       throw 'timeout';
-                               }
-
-                               var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc);
-                               log('isXml='+isXml);
-                               if (!isXml && window.opera && (doc.body == null || doc.body.innerHTML == '')) {
-                                       if (--domCheckCount) {
-                                               // in some browsers (Opera) the iframe DOM is not always traversable when
-                                               // the onload callback fires, so we loop a bit to accommodate
-                                               log('requeing onLoad callback, DOM not available');
-                                               setTimeout(cb, 250);
-                                               return;
-                                       }
-                                       // let this fall through because server response could be an empty document
-                                       //log('Could not access iframe DOM after mutiple tries.');
-                                       //throw 'DOMException: not available';
-                               }
-
-                               //log('response detected');
+            // ensure that every serialized input is still enabled
+            for (i=0; i < elements.length; i++) {
+                el = $(elements[i]);
+                if ( useProp )
+                    el.prop('disabled', false);
+                else
+                    el.removeAttr('disabled');
+            }
+        }
+
+        s = $.extend(true, {}, $.ajaxSettings, options);
+        s.context = s.context || s;
+        id = 'jqFormIO' + (new Date().getTime());
+        if (s.iframeTarget) {
+            $io = $(s.iframeTarget);
+            n = $io.attr('name');
+            if (!n)
+                 $io.attr('name', id);
+            else
+                id = n;
+        }
+        else {
+            $io = $('<iframe name="' + id + '" src="'+ s.iframeSrc +'" />');
+            $io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
+        }
+        io = $io[0];
+
+
+        xhr = { // mock object
+            aborted: 0,
+            responseText: null,
+            responseXML: null,
+            status: 0,
+            statusText: 'n/a',
+            getAllResponseHeaders: function() {},
+            getResponseHeader: function() {},
+            setRequestHeader: function() {},
+            abort: function(status) {
+                var e = (status === 'timeout' ? 'timeout' : 'aborted');
+                log('aborting upload... ' + e);
+                this.aborted = 1;
+                // #214
+                if (io.contentWindow.document.execCommand) {
+                    try { // #214
+                        io.contentWindow.document.execCommand('Stop');
+                    } catch(ignore) {}
+                }
+                $io.attr('src', s.iframeSrc); // abort op in progress
+                xhr.error = e;
+                if (s.error)
+                    s.error.call(s.context, xhr, e, status);
+                if (g)
+                    $.event.trigger("ajaxError", [xhr, s, e]);
+                if (s.complete)
+                    s.complete.call(s.context, xhr, e);
+            }
+        };
+
+        g = s.global;
+        // trigger ajax global events so that activity/block indicators work like normal
+        if (g && 0 === $.active++) {
+            $.event.trigger("ajaxStart");
+        }
+        if (g) {
+            $.event.trigger("ajaxSend", [xhr, s]);
+        }
+
+        if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) {
+            if (s.global) {
+                $.active--;
+            }
+            return;
+        }
+        if (xhr.aborted) {
+            return;
+        }
+
+        // add submitting element to data if we know it
+        sub = form.clk;
+        if (sub) {
+            n = sub.name;
+            if (n && !sub.disabled) {
+                s.extraData = s.extraData || {};
+                s.extraData[n] = sub.value;
+                if (sub.type == "image") {
+                    s.extraData[n+'.x'] = form.clk_x;
+                    s.extraData[n+'.y'] = form.clk_y;
+                }
+            }
+        }
+        
+        var CLIENT_TIMEOUT_ABORT = 1;
+        var SERVER_ABORT = 2;
+
+        function getDoc(frame) {
+            var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
+            return doc;
+        }
+        
+        // Rails CSRF hack (thanks to Yvan Barthelemy)
+        var csrf_token = $('meta[name=csrf-token]').attr('content');
+        var csrf_param = $('meta[name=csrf-param]').attr('content');
+        if (csrf_param && csrf_token) {
+            s.extraData = s.extraData || {};
+            s.extraData[csrf_param] = csrf_token;
+        }
+
+        // take a breath so that pending repaints get some cpu time before the upload starts
+        function doSubmit() {
+            // make sure form attrs are set
+            var t = $form.attr('target'), a = $form.attr('action');
+
+            // update form attrs in IE friendly way
+            form.setAttribute('target',id);
+            if (!method) {
+                form.setAttribute('method', 'POST');
+            }
+            if (a != s.url) {
+                form.setAttribute('action', s.url);
+            }
+
+            // ie borks in some cases when setting encoding
+            if (! s.skipEncodingOverride && (!method || /post/i.test(method))) {
+                $form.attr({
+                    encoding: 'multipart/form-data',
+                    enctype:  'multipart/form-data'
+                });
+            }
+
+            // support timout
+            if (s.timeout) {
+                timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
+            }
+            
+            // look for server aborts
+            function checkState() {
+                try {
+                    var state = getDoc(io).readyState;
+                    log('state = ' + state);
+                    if (state && state.toLowerCase() == 'uninitialized')
+                        setTimeout(checkState,50);
+                }
+                catch(e) {
+                    log('Server abort: ' , e, ' (', e.name, ')');
+                    cb(SERVER_ABORT);
+                    if (timeoutHandle)
+                        clearTimeout(timeoutHandle);
+                    timeoutHandle = undefined;
+                }
+            }
+
+            // add "extra" data to form if provided in options
+            var extraInputs = [];
+            try {
+                if (s.extraData) {
+                    for (var n in s.extraData) {
+                        if (s.extraData.hasOwnProperty(n)) {
+                           // if using the $.param format that allows for multiple values with the same name
+                           if($.isPlainObject(s.extraData[n]) && s.extraData[n].hasOwnProperty('name') && s.extraData[n].hasOwnProperty('value')) {
+                               extraInputs.push(
+                               $('<input type="hidden" name="'+s.extraData[n].name+'">').attr('value',s.extraData[n].value)
+                                   .appendTo(form)[0]);
+                           } else {
+                               extraInputs.push(
+                               $('<input type="hidden" name="'+n+'">').attr('value',s.extraData[n])
+                                   .appendTo(form)[0]);
+                           }
+                        }
+                    }
+                }
+
+                if (!s.iframeTarget) {
+                    // add iframe to doc and submit the form
+                    $io.appendTo('body');
+                    if (io.attachEvent)
+                        io.attachEvent('onload', cb);
+                    else
+                        io.addEventListener('load', cb, false);
+                }
+                setTimeout(checkState,15);
+                form.submit();
+            }
+            finally {
+                // reset attrs and remove "extra" input elements
+                form.setAttribute('action',a);
+                if(t) {
+                    form.setAttribute('target', t);
+                } else {
+                    $form.removeAttr('target');
+                }
+                $(extraInputs).remove();
+            }
+        }
+
+        if (s.forceSync) {
+            doSubmit();
+        }
+        else {
+            setTimeout(doSubmit, 10); // this lets dom updates render
+        }
+
+        var data, doc, domCheckCount = 50, callbackProcessed;
+
+        function cb(e) {
+            if (xhr.aborted || callbackProcessed) {
+                return;
+            }
+            try {
+                doc = getDoc(io);
+            }
+            catch(ex) {
+                log('cannot access response document: ', ex);
+                e = SERVER_ABORT;
+            }
+            if (e === CLIENT_TIMEOUT_ABORT && xhr) {
+                xhr.abort('timeout');
+                return;
+            }
+            else if (e == SERVER_ABORT && xhr) {
+                xhr.abort('server abort');
+                return;
+            }
+
+            if (!doc || doc.location.href == s.iframeSrc) {
+                // response not received yet
+                if (!timedOut)
+                    return;
+            }
+            if (io.detachEvent)
+                io.detachEvent('onload', cb);
+            else    
+                io.removeEventListener('load', cb, false);
+
+            var status = 'success', errMsg;
+            try {
+                if (timedOut) {
+                    throw 'timeout';
+                }
+
+                var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc);
+                log('isXml='+isXml);
+                if (!isXml && window.opera && (doc.body === null || !doc.body.innerHTML)) {
+                    if (--domCheckCount) {
+                        // in some browsers (Opera) the iframe DOM is not always traversable when
+                        // the onload callback fires, so we loop a bit to accommodate
+                        log('requeing onLoad callback, DOM not available');
+                        setTimeout(cb, 250);
+                        return;
+                    }
+                    // let this fall through because server response could be an empty document
+                    //log('Could not access iframe DOM after mutiple tries.');
+                    //throw 'DOMException: not available';
+                }
+
+                //log('response detected');
                 var docRoot = doc.body ? doc.body : doc.documentElement;
                 xhr.responseText = docRoot ? docRoot.innerHTML : null;
-                               xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
-                               if (isXml)
-                                       s.dataType = 'xml';
-                               xhr.getResponseHeader = function(header){
-                                       var headers = {'content-type': s.dataType};
-                                       return headers[header];
-                               };
+                xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
+                if (isXml)
+                    s.dataType = 'xml';
+                xhr.getResponseHeader = function(header){
+                    var headers = {'content-type': s.dataType};
+                    return headers[header];
+                };
                 // support for XHR 'status' & 'statusText' emulation :
                 if (docRoot) {
                     xhr.status = Number( docRoot.getAttribute('status') ) || xhr.status;
                     xhr.statusText = docRoot.getAttribute('statusText') || xhr.statusText;
                 }
 
-                               var dt = s.dataType || '';
-                               var scr = /(json|script|text)/.test(dt.toLowerCase());
-                               if (scr || s.textarea) {
-                                       // see if user embedded response in textarea
-                                       var ta = doc.getElementsByTagName('textarea')[0];
-                                       if (ta) {
-                                               xhr.responseText = ta.value;
+                var dt = (s.dataType || '').toLowerCase();
+                var scr = /(json|script|text)/.test(dt);
+                if (scr || s.textarea) {
+                    // see if user embedded response in textarea
+                    var ta = doc.getElementsByTagName('textarea')[0];
+                    if (ta) {
+                        xhr.responseText = ta.value;
                         // support for XHR 'status' & 'statusText' emulation :
                         xhr.status = Number( ta.getAttribute('status') ) || xhr.status;
                         xhr.statusText = ta.getAttribute('statusText') || xhr.statusText;
-                                       }
-                                       else if (scr) {
-                                               // account for browsers injecting pre around json response
-                                               var pre = doc.getElementsByTagName('pre')[0];
-                                               var b = doc.getElementsByTagName('body')[0];
-                                               if (pre) {
-                                                       xhr.responseText = pre.textContent ? pre.textContent : pre.innerHTML;
-                                               }
-                                               else if (b) {
-                                                       xhr.responseText = b.innerHTML;
-                                               }
-                                       }
-                               }
-                               else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
-                                       xhr.responseXML = toXml(xhr.responseText);
-                               }
+                    }
+                    else if (scr) {
+                        // account for browsers injecting pre around json response
+                        var pre = doc.getElementsByTagName('pre')[0];
+                        var b = doc.getElementsByTagName('body')[0];
+                        if (pre) {
+                            xhr.responseText = pre.textContent ? pre.textContent : pre.innerText;
+                        }
+                        else if (b) {
+                            xhr.responseText = b.textContent ? b.textContent : b.innerText;
+                        }
+                    }
+                }
+                else if (dt == 'xml' && !xhr.responseXML && xhr.responseText) {
+                    xhr.responseXML = toXml(xhr.responseText);
+                }
 
                 try {
-                    data = httpData(xhr, s.dataType, s);
+                    data = httpData(xhr, dt, s);
                 }
                 catch (e) {
                     status = 'parsererror';
                     xhr.error = errMsg = (e || status);
                 }
-                       }
-                       catch (e) {
-                               log('error caught: ',e);
-                               status = 'error';
+            }
+            catch (e) {
+                log('error caught: ',e);
+                status = 'error';
                 xhr.error = errMsg = (e || status);
-                       }
+            }
 
-                       if (xhr.aborted) {
-                               log('upload aborted');
-                               status = null;
-                       }
+            if (xhr.aborted) {
+                log('upload aborted');
+                status = null;
+            }
 
             if (xhr.status) { // we've set xhr.status
                 status = (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) ? 'success' : 'error';
             }
 
-                       // ordering of these callbacks/triggers is odd, but that's how $.ajax does it
-                       if (status === 'success') {
-                               s.success && s.success.call(s.context, data, 'success', xhr);
-                               g && $.event.trigger("ajaxSuccess", [xhr, s]);
-                       }
+            // ordering of these callbacks/triggers is odd, but that's how $.ajax does it
+            if (status === 'success') {
+                if (s.success)
+                    s.success.call(s.context, data, 'success', xhr);
+                if (g)
+                    $.event.trigger("ajaxSuccess", [xhr, s]);
+            }
             else if (status) {
-                               if (errMsg == undefined)
-                                       errMsg = xhr.statusText;
-                               s.error && s.error.call(s.context, xhr, status, errMsg);
-                               g && $.event.trigger("ajaxError", [xhr, s, errMsg]);
-            }
-
-                       g && $.event.trigger("ajaxComplete", [xhr, s]);
-
-                       if (g && ! --$.active) {
-                               $.event.trigger("ajaxStop");
-                       }
-
-                       s.complete && s.complete.call(s.context, xhr, status);
-
-                       callbackProcessed = true;
-                       if (s.timeout)
-                               clearTimeout(timeoutHandle);
-
-                       // clean up
-                       setTimeout(function() {
-                               if (!s.iframeTarget)
-                                       $io.remove();
-                               xhr.responseXML = null;
-                       }, 100);
-               }
-
-               var toXml = $.parseXML || function(s, doc) { // use parseXML if available (jQuery 1.5+)
-                       if (window.ActiveXObject) {
-                               doc = new ActiveXObject('Microsoft.XMLDOM');
-                               doc.async = 'false';
-                               doc.loadXML(s);
-                       }
-                       else {
-                               doc = (new DOMParser()).parseFromString(s, 'text/xml');
-                       }
-                       return (doc && doc.documentElement && doc.documentElement.nodeName != 'parsererror') ? doc : null;
-               };
-               var parseJSON = $.parseJSON || function(s) {
-                       return window['eval']('(' + s + ')');
-               };
-
-               var httpData = function( xhr, type, s ) { // mostly lifted from jq1.4.4
-
-                       var ct = xhr.getResponseHeader('content-type') || '',
-                               xml = type === 'xml' || !type && ct.indexOf('xml') >= 0,
-                               data = xml ? xhr.responseXML : xhr.responseText;
-
-                       if (xml && data.documentElement.nodeName === 'parsererror') {
-                               $.error && $.error('parsererror');
-                       }
-                       if (s && s.dataFilter) {
-                               data = s.dataFilter(data, type);
-                       }
-                       if (typeof data === 'string') {
-                               if (type === 'json' || !type && ct.indexOf('json') >= 0) {
-                                       data = parseJSON(data);
-                               } else if (type === "script" || !type && ct.indexOf("javascript") >= 0) {
-                                       $.globalEval(data);
-                               }
-                       }
-                       return data;
-               };
-       }
+                if (errMsg === undefined)
+                    errMsg = xhr.statusText;
+                if (s.error)
+                    s.error.call(s.context, xhr, status, errMsg);
+                if (g)
+                    $.event.trigger("ajaxError", [xhr, s, errMsg]);
+            }
+
+            if (g)
+                $.event.trigger("ajaxComplete", [xhr, s]);
+
+            if (g && ! --$.active) {
+                $.event.trigger("ajaxStop");
+            }
+
+            if (s.complete)
+                s.complete.call(s.context, xhr, status);
+
+            callbackProcessed = true;
+            if (s.timeout)
+                clearTimeout(timeoutHandle);
+
+            // clean up
+            setTimeout(function() {
+                if (!s.iframeTarget)
+                    $io.remove();
+                xhr.responseXML = null;
+            }, 100);
+        }
+
+        var toXml = $.parseXML || function(s, doc) { // use parseXML if available (jQuery 1.5+)
+            if (window.ActiveXObject) {
+                doc = new ActiveXObject('Microsoft.XMLDOM');
+                doc.async = 'false';
+                doc.loadXML(s);
+            }
+            else {
+                doc = (new DOMParser()).parseFromString(s, 'text/xml');
+            }
+            return (doc && doc.documentElement && doc.documentElement.nodeName != 'parsererror') ? doc : null;
+        };
+        var parseJSON = $.parseJSON || function(s) {
+            /*jslint evil:true */
+            return window['eval']('(' + s + ')');
+        };
+
+        var httpData = function( xhr, type, s ) { // mostly lifted from jq1.4.4
+
+            var ct = xhr.getResponseHeader('content-type') || '',
+                xml = type === 'xml' || !type && ct.indexOf('xml') >= 0,
+                data = xml ? xhr.responseXML : xhr.responseText;
+
+            if (xml && data.documentElement.nodeName === 'parsererror') {
+                if ($.error)
+                    $.error('parsererror');
+            }
+            if (s && s.dataFilter) {
+                data = s.dataFilter(data, type);
+            }
+            if (typeof data === 'string') {
+                if (type === 'json' || !type && ct.indexOf('json') >= 0) {
+                    data = parseJSON(data);
+                } else if (type === "script" || !type && ct.indexOf("javascript") >= 0) {
+                    $.globalEval(data);
+                }
+            }
+            return data;
+        };
+    }
 };
 
 /**
@@ -560,9 +680,9 @@ $.fn.ajaxSubmit = function(options) {
  * The advantages of using this method instead of ajaxSubmit() are:
  *
  * 1: This method will include coordinates for <input type="image" /> elements (if the element
- *     is used to submit the form).
+ *    is used to submit the form).
  * 2. This method will include the submit element's name/value data (for the element that was
- *     used to submit the form).
+ *    used to submit the form).
  * 3. This method binds the submit() method to the form for you.
  *
  * The options argument for ajaxForm works exactly as it does for ajaxSubmit.  ajaxForm merely
@@ -570,60 +690,83 @@ $.fn.ajaxSubmit = function(options) {
  * the form itself.
  */
 $.fn.ajaxForm = function(options) {
-       // in jQuery 1.3+ we can fix mistakes with the ready state
-       if (this.length === 0) {
-               var o = { s: this.selector, c: this.context };
-               if (!$.isReady && o.s) {
-                       log('DOM not ready, queuing ajaxForm');
-                       $(function() {
-                               $(o.s,o.c).ajaxForm(options);
-                       });
-                       return this;
-               }
-               // is your DOM ready?  http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
-               log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
-               return this;
-       }
-
-       return this.ajaxFormUnbind().bind('submit.form-plugin', function(e) {
-               if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed
-                       e.preventDefault();
-                       $(this).ajaxSubmit(options);
-               }
-       }).bind('click.form-plugin', function(e) {
-               var target = e.target;
-               var $el = $(target);
-               if (!($el.is(":submit,input:image"))) {
-                       // is this a child element of the submit el?  (ex: a span within a button)
-                       var t = $el.closest(':submit');
-                       if (t.length == 0) {
-                               return;
-                       }
-                       target = t[0];
-               }
-               var form = this;
-               form.clk = target;
-               if (target.type == 'image') {
-                       if (e.offsetX != undefined) {
-                               form.clk_x = e.offsetX;
-                               form.clk_y = e.offsetY;
-                       } else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
-                               var offset = $el.offset();
-                               form.clk_x = e.pageX - offset.left;
-                               form.clk_y = e.pageY - offset.top;
-                       } else {
-                               form.clk_x = e.pageX - target.offsetLeft;
-                               form.clk_y = e.pageY - target.offsetTop;
-                       }
-               }
-               // clear form vars
-               setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100);
-       });
+    options = options || {};
+    options.delegation = options.delegation && $.isFunction($.fn.on);
+    
+    // in jQuery 1.3+ we can fix mistakes with the ready state
+    if (!options.delegation && this.length === 0) {
+        var o = { s: this.selector, c: this.context };
+        if (!$.isReady && o.s) {
+            log('DOM not ready, queuing ajaxForm');
+            $(function() {
+                $(o.s,o.c).ajaxForm(options);
+            });
+            return this;
+        }
+        // is your DOM ready?  http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
+        log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
+        return this;
+    }
+
+    if ( options.delegation ) {
+        $(document)
+            .off('submit.form-plugin', this.selector, doAjaxSubmit)
+            .off('click.form-plugin', this.selector, captureSubmittingElement)
+            .on('submit.form-plugin', this.selector, options, doAjaxSubmit)
+            .on('click.form-plugin', this.selector, options, captureSubmittingElement);
+        return this;
+    }
+
+    return this.ajaxFormUnbind()
+        .bind('submit.form-plugin', options, doAjaxSubmit)
+        .bind('click.form-plugin', options, captureSubmittingElement);
 };
 
+// private event handlers    
+function doAjaxSubmit(e) {
+    /*jshint validthis:true */
+    var options = e.data;
+    if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed
+        e.preventDefault();
+        $(this).ajaxSubmit(options);
+    }
+}
+    
+function captureSubmittingElement(e) {
+    /*jshint validthis:true */
+    var target = e.target;
+    var $el = $(target);
+    if (!($el.is(":submit,input:image"))) {
+        // is this a child element of the submit el?  (ex: a span within a button)
+        var t = $el.closest(':submit');
+        if (t.length === 0) {
+            return;
+        }
+        target = t[0];
+    }
+    var form = this;
+    form.clk = target;
+    if (target.type == 'image') {
+        if (e.offsetX !== undefined) {
+            form.clk_x = e.offsetX;
+            form.clk_y = e.offsetY;
+        } else if (typeof $.fn.offset == 'function') {
+            var offset = $el.offset();
+            form.clk_x = e.pageX - offset.left;
+            form.clk_y = e.pageY - offset.top;
+        } else {
+            form.clk_x = e.pageX - target.offsetLeft;
+            form.clk_y = e.pageY - target.offsetTop;
+        }
+    }
+    // clear form vars
+    setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100);
+}
+
+
 // ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
 $.fn.ajaxFormUnbind = function() {
-       return this.unbind('submit.form-plugin click.form-plugin');
+    return this.unbind('submit.form-plugin click.form-plugin');
 };
 
 /**
@@ -637,56 +780,74 @@ $.fn.ajaxFormUnbind = function() {
  * It is this array that is passed to pre-submit callback functions provided to the
  * ajaxSubmit() and ajaxForm() methods.
  */
-$.fn.formToArray = function(semantic) {
-       var a = [];
-       if (this.length === 0) {
-               return a;
-       }
-
-       var form = this[0];
-       var els = semantic ? form.getElementsByTagName('*') : form.elements;
-       if (!els) {
-               return a;
-       }
-
-       var i,j,n,v,el,max,jmax;
-       for(i=0, max=els.length; i < max; i++) {
-               el = els[i];
-               n = el.name;
-               if (!n) {
-                       continue;
-               }
-
-               if (semantic && form.clk && el.type == "image") {
-                       // handle image inputs on the fly when semantic == true
-                       if(!el.disabled && form.clk == el) {
-                               a.push({name: n, value: $(el).val()});
-                               a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
-                       }
-                       continue;
-               }
-
-               v = $.fieldValue(el, true);
-               if (v && v.constructor == Array) {
-                       for(j=0, jmax=v.length; j < jmax; j++) {
-                               a.push({name: n, value: v[j]});
-                       }
-               }
-               else if (v !== null && typeof v != 'undefined') {
-                       a.push({name: n, value: v});
-               }
-       }
-
-       if (!semantic && form.clk) {
-               // input type=='image' are not found in elements array! handle it here
-               var $input = $(form.clk), input = $input[0];
-               n = input.name;
-               if (n && !input.disabled && input.type == 'image') {
-                       a.push({name: n, value: $input.val()});
-                       a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
-               }
-       }
-       return a;
+$.fn.formToArray = function(semantic, elements) {
+    var a = [];
+    if (this.length === 0) {
+        return a;
+    }
+
+    var form = this[0];
+    var els = semantic ? form.getElementsByTagName('*') : form.elements;
+    if (!els) {
+        return a;
+    }
+
+    var i,j,n,v,el,max,jmax;
+    for(i=0, max=els.length; i < max; i++) {
+        el = els[i];
+        n = el.name;
+        if (!n) {
+            continue;
+        }
+
+        if (semantic && form.clk && el.type == "image") {
+            // handle image inputs on the fly when semantic == true
+            if(!el.disabled && form.clk == el) {
+                a.push({name: n, value: $(el).val(), type: el.type });
+                a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
+            }
+            continue;
+        }
+
+        v = $.fieldValue(el, true);
+        if (v && v.constructor == Array) {
+            if (elements) 
+                elements.push(el);
+            for(j=0, jmax=v.length; j < jmax; j++) {
+                a.push({name: n, value: v[j]});
+            }
+        }
+        else if (feature.fileapi && el.type == 'file' && !el.disabled) {
+            if (elements) 
+                elements.push(el);
+            var files = el.files;
+            if (files.length) {
+                for (j=0; j < files.length; j++) {
+                    a.push({name: n, value: files[j], type: el.type});
+                }
+            }
+            else {
+                // #180
+                a.push({ name: n, value: '', type: el.type });
+            }
+        }
+        else if (v !== null && typeof v != 'undefined') {
+            if (elements) 
+                elements.push(el);
+            a.push({name: n, value: v, type: el.type, required: el.required});
+        }
+    }
+
+    if (!semantic && form.clk) {
+        // input type=='image' are not found in elements array! handle it here
+        var $input = $(form.clk), input = $input[0];
+        n = input.name;
+        if (n && !input.disabled && input.type == 'image') {
+            a.push({name: n, value: $input.val()});
+            a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
+        }
+    }
+    return a;
 };
 
 /**
@@ -694,8 +855,8 @@ $.fn.formToArray = function(semantic) {
  * in the format: name1=value1&amp;name2=value2
  */
 $.fn.formSerialize = function(semantic) {
-       //hand off to jQuery.param for proper encoding
-       return $.param(this.formToArray(semantic));
+    //hand off to jQuery.param for proper encoding
+    return $.param(this.formToArray(semantic));
 };
 
 /**
@@ -703,36 +864,36 @@ $.fn.formSerialize = function(semantic) {
  * This method will return a string in the format: name1=value1&amp;name2=value2
  */
 $.fn.fieldSerialize = function(successful) {
-       var a = [];
-       this.each(function() {
-               var n = this.name;
-               if (!n) {
-                       return;
-               }
-               var v = $.fieldValue(this, successful);
-               if (v && v.constructor == Array) {
-                       for (var i=0,max=v.length; i < max; i++) {
-                               a.push({name: n, value: v[i]});
-                       }
-               }
-               else if (v !== null && typeof v != 'undefined') {
-                       a.push({name: this.name, value: v});
-               }
-       });
-       //hand off to jQuery.param for proper encoding
-       return $.param(a);
+    var a = [];
+    this.each(function() {
+        var n = this.name;
+        if (!n) {
+            return;
+        }
+        var v = $.fieldValue(this, successful);
+        if (v && v.constructor == Array) {
+            for (var i=0,max=v.length; i < max; i++) {
+                a.push({name: n, value: v[i]});
+            }
+        }
+        else if (v !== null && typeof v != 'undefined') {
+            a.push({name: this.name, value: v});
+        }
+    });
+    //hand off to jQuery.param for proper encoding
+    return $.param(a);
 };
 
 /**
  * Returns the value(s) of the element in the matched set.  For example, consider the following form:
  *
  *  <form><fieldset>
- *       <input name="A" type="text" />
- *       <input name="A" type="text" />
- *       <input name="B" type="checkbox" value="B1" />
- *       <input name="B" type="checkbox" value="B2"/>
- *       <input name="C" type="radio" value="C1" />
- *       <input name="C" type="radio" value="C2" />
+ *      <input name="A" type="text" />
+ *      <input name="A" type="text" />
+ *      <input name="B" type="checkbox" value="B1" />
+ *      <input name="B" type="checkbox" value="B2"/>
+ *      <input name="C" type="radio" value="C1" />
+ *      <input name="C" type="radio" value="C2" />
  *  </fieldset></form>
  *
  *  var v = $(':text').fieldValue();
@@ -759,60 +920,63 @@ $.fn.fieldSerialize = function(successful) {
  * for each element is returned.
  *
  * Note: This method *always* returns an array.  If no valid value can be determined the
- *        array will be empty, otherwise it will contain one or more values.
+ *    array will be empty, otherwise it will contain one or more values.
  */
 $.fn.fieldValue = function(successful) {
-       for (var val=[], i=0, max=this.length; i < max; i++) {
-               var el = this[i];
-               var v = $.fieldValue(el, successful);
-               if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) {
-                       continue;
-               }
-               v.constructor == Array ? $.merge(val, v) : val.push(v);
-       }
-       return val;
+    for (var val=[], i=0, max=this.length; i < max; i++) {
+        var el = this[i];
+        var v = $.fieldValue(el, successful);
+        if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) {
+            continue;
+        }
+        if (v.constructor == Array)
+            $.merge(val, v);
+        else
+            val.push(v);
+    }
+    return val;
 };
 
 /**
  * Returns the value of the field element.
  */
 $.fieldValue = function(el, successful) {
-       var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
-       if (successful === undefined) {
-               successful = true;
-       }
-
-       if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
-               (t == 'checkbox' || t == 'radio') && !el.checked ||
-               (t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
-               tag == 'select' && el.selectedIndex == -1)) {
-                       return null;
-       }
-
-       if (tag == 'select') {
-               var index = el.selectedIndex;
-               if (index < 0) {
-                       return null;
-               }
-               var a = [], ops = el.options;
-               var one = (t == 'select-one');
-               var max = (one ? index+1 : ops.length);
-               for(var i=(one ? index : 0); i < max; i++) {
-                       var op = ops[i];
-                       if (op.selected) {
-                               var v = op.value;
-                               if (!v) { // extra pain for IE...
-                                       v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;
-                               }
-                               if (one) {
-                                       return v;
-                               }
-                               a.push(v);
-                       }
-               }
-               return a;
-       }
-       return $(el).val();
+    var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
+    if (successful === undefined) {
+        successful = true;
+    }
+
+    if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
+        (t == 'checkbox' || t == 'radio') && !el.checked ||
+        (t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
+        tag == 'select' && el.selectedIndex == -1)) {
+            return null;
+    }
+
+    if (tag == 'select') {
+        var index = el.selectedIndex;
+        if (index < 0) {
+            return null;
+        }
+        var a = [], ops = el.options;
+        var one = (t == 'select-one');
+        var max = (one ? index+1 : ops.length);
+        for(var i=(one ? index : 0); i < max; i++) {
+            var op = ops[i];
+            if (op.selected) {
+                var v = op.value;
+                if (!v) { // extra pain for IE...
+                    v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;
+                }
+                if (one) {
+                    return v;
+                }
+                a.push(v);
+            }
+        }
+        return a;
+    }
+    return $(el).val();
 };
 
 /**
@@ -823,54 +987,63 @@ $.fieldValue = function(el, successful) {
  *  - inputs of type submit, button, reset, and hidden will *not* be effected
  *  - button elements will *not* be effected
  */
-$.fn.clearForm = function() {
-       return this.each(function() {
-               $('input,select,textarea', this).clearFields();
-       });
+$.fn.clearForm = function(includeHidden) {
+    return this.each(function() {
+        $('input,select,textarea', this).clearFields(includeHidden);
+    });
 };
 
 /**
  * Clears the selected form elements.
  */
-$.fn.clearFields = $.fn.clearInputs = function() {
-       var re = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i; // 'hidden' is not in this list
-       return this.each(function() {
-               var t = this.type, tag = this.tagName.toLowerCase();
-               if (re.test(t) || tag == 'textarea') {
-                       this.value = '';
-               }
-               else if (t == 'checkbox' || t == 'radio') {
-                       this.checked = false;
-               }
-               else if (tag == 'select') {
-                       this.selectedIndex = -1;
-               }
-       });
+$.fn.clearFields = $.fn.clearInputs = function(includeHidden) {
+    var re = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i; // 'hidden' is not in this list
+    return this.each(function() {
+        var t = this.type, tag = this.tagName.toLowerCase();
+        if (re.test(t) || tag == 'textarea') {
+            this.value = '';
+        }
+        else if (t == 'checkbox' || t == 'radio') {
+            this.checked = false;
+        }
+        else if (tag == 'select') {
+            this.selectedIndex = -1;
+        }
+        else if (includeHidden) {
+            // includeHidden can be the value true, or it can be a selector string
+            // indicating a special test; for example:
+            //  $('#myForm').clearForm('.special:hidden')
+            // the above would clean hidden inputs that have the class of 'special'
+            if ( (includeHidden === true && /hidden/.test(t)) ||
+                 (typeof includeHidden == 'string' && $(this).is(includeHidden)) )
+                this.value = '';
+        }
+    });
 };
 
 /**
  * Resets the form data.  Causes all form elements to be reset to their original value.
  */
 $.fn.resetForm = function() {
-       return this.each(function() {
-               // guard against an input with the name of 'reset'
-               // note that IE reports the reset function as an 'object'
-               if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) {
-                       this.reset();
-               }
-       });
+    return this.each(function() {
+        // guard against an input with the name of 'reset'
+        // note that IE reports the reset function as an 'object'
+        if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) {
+            this.reset();
+        }
+    });
 };
 
 /**
  * Enables or disables any matching elements.
  */
 $.fn.enable = function(b) {
-       if (b === undefined) {
-               b = true;
-       }
-       return this.each(function() {
-               this.disabled = !b;
-       });
+    if (b === undefined) {
+        b = true;
+    }
+    return this.each(function() {
+        this.disabled = !b;
+    });
 };
 
 /**
@@ -878,34 +1051,39 @@ $.fn.enable = function(b) {
  * selects/deselects and matching option elements.
  */
 $.fn.selected = function(select) {
-       if (select === undefined) {
-               select = true;
-       }
-       return this.each(function() {
-               var t = this.type;
-               if (t == 'checkbox' || t == 'radio') {
-                       this.checked = select;
-               }
-               else if (this.tagName.toLowerCase() == 'option') {
-                       var $sel = $(this).parent('select');
-                       if (select && $sel[0] && $sel[0].type == 'select-one') {
-                               // deselect all other options
-                               $sel.find('option').selected(false);
-                       }
-                       this.selected = select;
-               }
-       });
+    if (select === undefined) {
+        select = true;
+    }
+    return this.each(function() {
+        var t = this.type;
+        if (t == 'checkbox' || t == 'radio') {
+            this.checked = select;
+        }
+        else if (this.tagName.toLowerCase() == 'option') {
+            var $sel = $(this).parent('select');
+            if (select && $sel[0] && $sel[0].type == 'select-one') {
+                // deselect all other options
+                $sel.find('option').selected(false);
+            }
+            this.selected = select;
+        }
+    });
 };
 
+// expose debug var
+$.fn.ajaxSubmit.debug = false;
+
 // helper fn for console logging
 function log() {
-       var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
-       if (window.console && window.console.log) {
-               window.console.log(msg);
-       }
-       else if (window.opera && window.opera.postError) {
-               window.opera.postError(msg);
-       }
-};
+    if (!$.fn.ajaxSubmit.debug) 
+        return;
+    var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
+    if (window.console && window.console.log) {
+        window.console.log(msg);
+    }
+    else if (window.opera && window.opera.postError) {
+        window.opera.postError(msg);
+    }
+}
 
 })(jQuery);
index 0770682..3774ff9 100644 (file)
@@ -1,28 +1,31 @@
 /*!
- * jQuery JavaScript Library v1.8.0
+ * jQuery JavaScript Library v1.7.2
  * http://jquery.com/
  *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
  * Includes Sizzle.js
  * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
  *
- * Copyright 2012 jQuery Foundation and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: Thu Aug 09 2012 16:24:48 GMT-0400 (Eastern Daylight Time)
+ * Date: Wed Mar 21 12:46:34 2012 -0700
  */
 (function( window, undefined ) {
-var
-       // A central reference to the root jQuery(document)
-       rootjQuery,
-
-       // The deferred used on DOM ready
-       readyList,
 
-       // Use the correct document accordingly with window argument (sandbox)
-       document = window.document,
-       location = window.location,
+// Use the correct document accordingly with window argument (sandbox)
+var document = window.document,
        navigator = window.navigator,
+       location = window.location;
+var jQuery = (function() {
+
+// Define a local copy of jQuery
+var jQuery = function( selector, context ) {
+               // The jQuery object is actually just the init constructor 'enhanced'
+               return new jQuery.fn.init( selector, context, rootjQuery );
+       },
 
        // Map over jQuery in case of overwrite
        _jQuery = window.jQuery,
@@ -30,64 +33,63 @@ var
        // Map over the $ in case of overwrite
        _$ = window.$,
 
-       // Save a reference to some core methods
-       core_push = Array.prototype.push,
-       core_slice = Array.prototype.slice,
-       core_indexOf = Array.prototype.indexOf,
-       core_toString = Object.prototype.toString,
-       core_hasOwn = Object.prototype.hasOwnProperty,
-       core_trim = String.prototype.trim,
-
-       // Define a local copy of jQuery
-       jQuery = function( selector, context ) {
-               // The jQuery object is actually just the init constructor 'enhanced'
-               return new jQuery.fn.init( selector, context, rootjQuery );
-       },
-
-       // Used for matching numbers
-       core_pnum = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,
+       // A central reference to the root jQuery(document)
+       rootjQuery,
 
-       // Used for detecting and trimming whitespace
-       core_rnotwhite = /\S/,
-       core_rspace = /\s+/,
+       // A simple way to check for HTML strings or ID strings
+       // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+       quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
 
-       // IE doesn't match non-breaking spaces with \s
-       rtrim = core_rnotwhite.test("\xA0") ? (/^[\s\xA0]+|[\s\xA0]+$/g) : /^\s+|\s+$/g,
+       // Check if a string has a non-whitespace character in it
+       rnotwhite = /\S/,
 
-       // A simple way to check for HTML strings
-       // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
-       rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
+       // Used for trimming whitespace
+       trimLeft = /^\s+/,
+       trimRight = /\s+$/,
 
        // Match a standalone tag
-       rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
+       rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
 
        // JSON RegExp
        rvalidchars = /^[\],:{}\s]*$/,
+       rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
+       rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
        rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
-       rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
-       rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,
+
+       // Useragent RegExp
+       rwebkit = /(webkit)[ \/]([\w.]+)/,
+       ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
+       rmsie = /(msie) ([\w.]+)/,
+       rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
 
        // Matches dashed string for camelizing
+       rdashAlpha = /-([a-z]|[0-9])/ig,
        rmsPrefix = /^-ms-/,
-       rdashAlpha = /-([\da-z])/gi,
 
        // Used by jQuery.camelCase as callback to replace()
        fcamelCase = function( all, letter ) {
                return ( letter + "" ).toUpperCase();
        },
 
-       // The ready event handler and self cleanup method
-       DOMContentLoaded = function() {
-               if ( document.addEventListener ) {
-                       document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
-                       jQuery.ready();
-               } else if ( document.readyState === "complete" ) {
-                       // we're here because readyState === "complete" in oldIE
-                       // which is good enough for us to call the dom ready!
-                       document.detachEvent( "onreadystatechange", DOMContentLoaded );
-                       jQuery.ready();
-               }
-       },
+       // Keep a UserAgent string for use with jQuery.browser
+       userAgent = navigator.userAgent,
+
+       // For matching the engine and version of the browser
+       browserMatch,
+
+       // The deferred used on DOM ready
+       readyList,
+
+       // The ready event handler
+       DOMContentLoaded,
+
+       // Save a reference to some core methods
+       toString = Object.prototype.toString,
+       hasOwn = Object.prototype.hasOwnProperty,
+       push = Array.prototype.push,
+       slice = Array.prototype.slice,
+       trim = String.prototype.trim,
+       indexOf = Array.prototype.indexOf,
 
        // [[Class]] -> type pairs
        class2type = {};
@@ -97,7 +99,7 @@ jQuery.fn = jQuery.prototype = {
        init: function( selector, context, rootjQuery ) {
                var match, elem, ret, doc;
 
-               // Handle $(""), $(null), $(undefined), $(false)
+               // Handle $(""), $(null), or $(undefined)
                if ( !selector ) {
                        return this;
                }
@@ -109,33 +111,55 @@ jQuery.fn = jQuery.prototype = {
                        return this;
                }
 
+               // The body element only exists once, optimize finding it
+               if ( selector === "body" && !context && document.body ) {
+                       this.context = document;
+                       this[0] = document.body;
+                       this.selector = selector;
+                       this.length = 1;
+                       return this;
+               }
+
                // Handle HTML strings
                if ( typeof selector === "string" ) {
+                       // Are we dealing with HTML string or an ID?
                        if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
                                // Assume that strings that start and end with <> are HTML and skip the regex check
                                match = [ null, selector, null ];
 
                        } else {
-                               match = rquickExpr.exec( selector );
+                               match = quickExpr.exec( selector );
                        }
 
-                       // Match html or make sure no context is specified for #id
+                       // Verify a match, and that no context was specified for #id
                        if ( match && (match[1] || !context) ) {
 
                                // HANDLE: $(html) -> $(array)
                                if ( match[1] ) {
                                        context = context instanceof jQuery ? context[0] : context;
-                                       doc = ( context && context.nodeType ? context.ownerDocument || context : document );
+                                       doc = ( context ? context.ownerDocument || context : document );
+
+                                       // If a single string is passed in and it's a single tag
+                                       // just do a createElement and skip the rest
+                                       ret = rsingleTag.exec( selector );
+
+                                       if ( ret ) {
+                                               if ( jQuery.isPlainObject( context ) ) {
+                                                       selector = [ document.createElement( ret[1] ) ];
+                                                       jQuery.fn.attr.call( selector, context, true );
+
+                                               } else {
+                                                       selector = [ doc.createElement( ret[1] ) ];
+                                               }
 
-                                       // scripts is true for back-compat
-                                       selector = jQuery.parseHTML( match[1], doc, true );
-                                       if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
-                                               this.attr.call( selector, context, true );
+                                       } else {
+                                               ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
+                                               selector = ( ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment ).childNodes;
                                        }
 
                                        return jQuery.merge( this, selector );
 
-                               // HANDLE: $(#id)
+                               // HANDLE: $("#id")
                                } else {
                                        elem = document.getElementById( match[2] );
 
@@ -186,7 +210,7 @@ jQuery.fn = jQuery.prototype = {
        selector: "",
 
        // The current version of jQuery being used
-       jquery: "1.8.0",
+       jquery: "1.7.2",
 
        // The default length of a jQuery object is 0
        length: 0,
@@ -197,7 +221,7 @@ jQuery.fn = jQuery.prototype = {
        },
 
        toArray: function() {
-               return core_slice.call( this );
+               return slice.call( this, 0 );
        },
 
        // Get the Nth element in the matched element set OR
@@ -215,9 +239,15 @@ jQuery.fn = jQuery.prototype = {
        // Take an array of elements and push it onto the stack
        // (returning the new matched element set)
        pushStack: function( elems, name, selector ) {
-
                // Build a new jQuery matched element set
-               var ret = jQuery.merge( this.constructor(), elems );
+               var ret = this.constructor();
+
+               if ( jQuery.isArray( elems ) ) {
+                       push.apply( ret, elems );
+
+               } else {
+                       jQuery.merge( ret, elems );
+               }
 
                // Add the old object onto the stack (as a reference)
                ret.prevObject = this;
@@ -242,8 +272,11 @@ jQuery.fn = jQuery.prototype = {
        },
 
        ready: function( fn ) {
+               // Attach the listeners
+               jQuery.bindReady();
+
                // Add the callback
-               jQuery.ready.promise().done( fn );
+               readyList.add( fn );
 
                return this;
        },
@@ -264,8 +297,8 @@ jQuery.fn = jQuery.prototype = {
        },
 
        slice: function() {
-               return this.pushStack( core_slice.apply( this, arguments ),
-                       "slice", core_slice.call(arguments).join(",") );
+               return this.pushStack( slice.apply( this, arguments ),
+                       "slice", slice.call(arguments).join(",") );
        },
 
        map: function( callback ) {
@@ -280,7 +313,7 @@ jQuery.fn = jQuery.prototype = {
 
        // For internal use only.
        // Behaves like an Array's method, not like a jQuery method.
-       push: core_push,
+       push: push,
        sort: [].sort,
        splice: [].splice
 };
@@ -383,31 +416,73 @@ jQuery.extend({
 
        // Handle when the DOM is ready
        ready: function( wait ) {
+               // Either a released hold or an DOMready/load event and not yet ready
+               if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
+                       // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+                       if ( !document.body ) {
+                               return setTimeout( jQuery.ready, 1 );
+                       }
+
+                       // Remember that the DOM is ready
+                       jQuery.isReady = true;
+
+                       // If a normal DOM Ready event fired, decrement, and wait if need be
+                       if ( wait !== true && --jQuery.readyWait > 0 ) {
+                               return;
+                       }
+
+                       // If there are functions bound, to execute
+                       readyList.fireWith( document, [ jQuery ] );
+
+                       // Trigger any bound ready events
+                       if ( jQuery.fn.trigger ) {
+                               jQuery( document ).trigger( "ready" ).off( "ready" );
+                       }
+               }
+       },
 
-               // Abort if there are pending holds or we're already ready
-               if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+       bindReady: function() {
+               if ( readyList ) {
                        return;
                }
 
-               // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
-               if ( !document.body ) {
+               readyList = jQuery.Callbacks( "once memory" );
+
+               // Catch cases where $(document).ready() is called after the
+               // browser event has already occurred.
+               if ( document.readyState === "complete" ) {
+                       // Handle it asynchronously to allow scripts the opportunity to delay ready
                        return setTimeout( jQuery.ready, 1 );
                }
 
-               // Remember that the DOM is ready
-               jQuery.isReady = true;
+               // Mozilla, Opera and webkit nightlies currently support this event
+               if ( document.addEventListener ) {
+                       // Use the handy event callback
+                       document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
 
-               // If a normal DOM Ready event fired, decrement, and wait if need be
-               if ( wait !== true && --jQuery.readyWait > 0 ) {
-                       return;
-               }
+                       // A fallback to window.onload, that will always work
+                       window.addEventListener( "load", jQuery.ready, false );
+
+               // If IE event model is used
+               } else if ( document.attachEvent ) {
+                       // ensure firing before onload,
+                       // maybe late but safe also for iframes
+                       document.attachEvent( "onreadystatechange", DOMContentLoaded );
+
+                       // A fallback to window.onload, that will always work
+                       window.attachEvent( "onload", jQuery.ready );
+
+                       // If IE and not a frame
+                       // continually check to see if the document is ready
+                       var toplevel = false;
 
-               // If there are functions bound, to execute
-               readyList.resolveWith( document, [ jQuery ] );
+                       try {
+                               toplevel = window.frameElement == null;
+                       } catch(e) {}
 
-               // Trigger any bound ready events
-               if ( jQuery.fn.trigger ) {
-                       jQuery( document ).trigger("ready").off("ready");
+                       if ( document.documentElement.doScroll && toplevel ) {
+                               doScrollCheck();
+                       }
                }
        },
 
@@ -433,7 +508,7 @@ jQuery.extend({
        type: function( obj ) {
                return obj == null ?
                        String( obj ) :
-                       class2type[ core_toString.call(obj) ] || "object";
+                       class2type[ toString.call(obj) ] || "object";
        },
 
        isPlainObject: function( obj ) {
@@ -447,8 +522,8 @@ jQuery.extend({
                try {
                        // Not own constructor property must be Object
                        if ( obj.constructor &&
-                               !core_hasOwn.call(obj, "constructor") &&
-                               !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
+                               !hasOwn.call(obj, "constructor") &&
+                               !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
                                return false;
                        }
                } catch ( e ) {
@@ -462,12 +537,11 @@ jQuery.extend({
                var key;
                for ( key in obj ) {}
 
-               return key === undefined || core_hasOwn.call( obj, key );
+               return key === undefined || hasOwn.call( obj, key );
        },
 
        isEmptyObject: function( obj ) {
-               var name;
-               for ( name in obj ) {
+               for ( var name in obj ) {
                        return false;
                }
                return true;
@@ -477,32 +551,8 @@ jQuery.extend({
                throw new Error( msg );
        },
 
-       // data: string of html
-       // context (optional): If specified, the fragment will be created in this context, defaults to document
-       // scripts (optional): If true, will include scripts passed in the html string
-       parseHTML: function( data, context, scripts ) {
-               var parsed;
-               if ( !data || typeof data !== "string" ) {
-                       return null;
-               }
-               if ( typeof context === "boolean" ) {
-                       scripts = context;
-                       context = 0;
-               }
-               context = context || document;
-
-               // Single tag
-               if ( (parsed = rsingleTag.exec( data )) ) {
-                       return [ context.createElement( parsed[1] ) ];
-               }
-
-               parsed = jQuery.buildFragment( [ data ], context, scripts ? null : [] );
-               return jQuery.merge( [],
-                       (parsed.cacheable ? jQuery.clone( parsed.fragment ) : parsed.fragment).childNodes );
-       },
-
        parseJSON: function( data ) {
-               if ( !data || typeof data !== "string") {
+               if ( typeof data !== "string" || !data ) {
                        return null;
                }
 
@@ -528,10 +578,10 @@ jQuery.extend({
 
        // Cross-browser xml parsing
        parseXML: function( data ) {
-               var xml, tmp;
-               if ( !data || typeof data !== "string" ) {
+               if ( typeof data !== "string" || !data ) {
                        return null;
                }
+               var xml, tmp;
                try {
                        if ( window.DOMParser ) { // Standard
                                tmp = new DOMParser();
@@ -556,7 +606,7 @@ jQuery.extend({
        // Workarounds based on findings by Jim Driscoll
        // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
        globalEval: function( data ) {
-               if ( data && core_rnotwhite.test( data ) ) {
+               if ( data && rnotwhite.test( data ) ) {
                        // We use execScript on Internet Explorer
                        // We use an anonymous function so that context is window
                        // rather than jQuery in Firefox
@@ -577,22 +627,21 @@ jQuery.extend({
        },
 
        // args is for internal usage only
-       each: function( obj, callback, args ) {
-               var name,
-                       i = 0,
-                       length = obj.length,
-                       isObj = length === undefined || jQuery.isFunction( obj );
+       each: function( object, callback, args ) {
+               var name, i = 0,
+                       length = object.length,
+                       isObj = length === undefined || jQuery.isFunction( object );
 
                if ( args ) {
                        if ( isObj ) {
-                               for ( name in obj ) {
-                                       if ( callback.apply( obj[ name ], args ) === false ) {
+                               for ( name in object ) {
+                                       if ( callback.apply( object[ name ], args ) === false ) {
                                                break;
                                        }
                                }
                        } else {
                                for ( ; i < length; ) {
-                                       if ( callback.apply( obj[ i++ ], args ) === false ) {
+                                       if ( callback.apply( object[ i++ ], args ) === false ) {
                                                break;
                                        }
                                }
@@ -601,72 +650,71 @@ jQuery.extend({
                // A special, fast, case for the most common use of each
                } else {
                        if ( isObj ) {
-                               for ( name in obj ) {
-                                       if ( callback.call( obj[ name ], name, obj[ name ] ) === false ) {
+                               for ( name in object ) {
+                                       if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
                                                break;
                                        }
                                }
                        } else {
                                for ( ; i < length; ) {
-                                       if ( callback.call( obj[ i ], i, obj[ i++ ] ) === false ) {
+                                       if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
                                                break;
                                        }
                                }
                        }
                }
 
-               return obj;
+               return object;
        },
 
        // Use native String.trim function wherever possible
-       trim: core_trim ?
+       trim: trim ?
                function( text ) {
                        return text == null ?
                                "" :
-                               core_trim.call( text );
+                               trim.call( text );
                } :
 
                // Otherwise use our own trimming functionality
                function( text ) {
                        return text == null ?
                                "" :
-                               text.toString().replace( rtrim, "" );
+                               text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
                },
 
        // results is for internal usage only
-       makeArray: function( arr, results ) {
-               var type,
-                       ret = results || [];
+       makeArray: function( array, results ) {
+               var ret = results || [];
 
-               if ( arr != null ) {
+               if ( array != null ) {
                        // The window, strings (and functions) also have 'length'
                        // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
-                       type = jQuery.type( arr );
+                       var type = jQuery.type( array );
 
-                       if ( arr.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( arr ) ) {
-                               core_push.call( ret, arr );
+                       if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
+                               push.call( ret, array );
                        } else {
-                               jQuery.merge( ret, arr );
+                               jQuery.merge( ret, array );
                        }
                }
 
                return ret;
        },
 
-       inArray: function( elem, arr, i ) {
+       inArray: function( elem, array, i ) {
                var len;
 
-               if ( arr ) {
-                       if ( core_indexOf ) {
-                               return core_indexOf.call( arr, elem, i );
+               if ( array ) {
+                       if ( indexOf ) {
+                               return indexOf.call( array, elem, i );
                        }
 
-                       len = arr.length;
+                       len = array.length;
                        i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
 
                        for ( ; i < len; i++ ) {
                                // Skip accessing in sparse arrays
-                               if ( i in arr && arr[ i ] === elem ) {
+                               if ( i in array && array[ i ] === elem ) {
                                        return i;
                                }
                        }
@@ -676,12 +724,11 @@ jQuery.extend({
        },
 
        merge: function( first, second ) {
-               var l = second.length,
-                       i = first.length,
+               var i = first.length,
                        j = 0;
 
-               if ( typeof l === "number" ) {
-                       for ( ; j < l; j++ ) {
+               if ( typeof second.length === "number" ) {
+                       for ( var l = second.length; j < l; j++ ) {
                                first[ i++ ] = second[ j ];
                        }
 
@@ -697,15 +744,12 @@ jQuery.extend({
        },
 
        grep: function( elems, callback, inv ) {
-               var retVal,
-                       ret = [],
-                       i = 0,
-                       length = elems.length;
+               var ret = [], retVal;
                inv = !!inv;
 
                // Go through the array, only saving the items
                // that pass the validator function
-               for ( ; i < length; i++ ) {
+               for ( var i = 0, length = elems.length; i < length; i++ ) {
                        retVal = !!callback( elems[ i ], i );
                        if ( inv !== retVal ) {
                                ret.push( elems[ i ] );
@@ -717,8 +761,7 @@ jQuery.extend({
 
        // arg is for internal usage only
        map: function( elems, callback, arg ) {
-               var value, key,
-                       ret = [],
+               var value, key, ret = [],
                        i = 0,
                        length = elems.length,
                        // jquery objects are treated as arrays
@@ -755,10 +798,8 @@ jQuery.extend({
        // Bind a function to a context, optionally partially applying any
        // arguments.
        proxy: function( fn, context ) {
-               var tmp, args, proxy;
-
                if ( typeof context === "string" ) {
-                       tmp = fn[ context ];
+                       var tmp = fn[ context ];
                        context = fn;
                        fn = tmp;
                }
@@ -770,10 +811,10 @@ jQuery.extend({
                }
 
                // Simulated bind
-               args = core_slice.call( arguments, 2 );
-               proxy = function() {
-                       return fn.apply( context, args.concat( core_slice.call( arguments ) ) );
-               };
+               var args = slice.call( arguments, 2 ),
+                       proxy = function() {
+                               return fn.apply( context, args.concat( slice.call( arguments ) ) );
+                       };
 
                // Set the guid of unique handler to the same of original handler, so it can be removed
                proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
@@ -781,7 +822,7 @@ jQuery.extend({
                return proxy;
        },
 
-       // Multifunctional method to get and set values of a collection
+       // Mutifunctional method to get and set values to a collection
        // The value/s can optionally be executed if it's a function
        access: function( elems, fn, key, value, chainable, emptyGet, pass ) {
                var exec,
@@ -836,95 +877,136 @@ jQuery.extend({
 
        now: function() {
                return ( new Date() ).getTime();
-       }
-});
+       },
 
-jQuery.ready.promise = function( obj ) {
-       if ( !readyList ) {
+       // Use of jQuery.browser is frowned upon.
+       // More details: http://docs.jquery.com/Utilities/jQuery.browser
+       uaMatch: function( ua ) {
+               ua = ua.toLowerCase();
 
-               readyList = jQuery.Deferred();
+               var match = rwebkit.exec( ua ) ||
+                       ropera.exec( ua ) ||
+                       rmsie.exec( ua ) ||
+                       ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
+                       [];
 
-               // Catch cases where $(document).ready() is called after the
-               // browser event has already occurred.
-               if ( document.readyState === "complete" || ( document.readyState !== "loading" && document.addEventListener ) ) {
-                       // Handle it asynchronously to allow scripts the opportunity to delay ready
-                       setTimeout( jQuery.ready, 1 );
+               return { browser: match[1] || "", version: match[2] || "0" };
+       },
 
-               // Standards-based browsers support DOMContentLoaded
-               } else if ( document.addEventListener ) {
-                       // Use the handy event callback
-                       document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+       sub: function() {
+               function jQuerySub( selector, context ) {
+                       return new jQuerySub.fn.init( selector, context );
+               }
+               jQuery.extend( true, jQuerySub, this );
+               jQuerySub.superclass = this;
+               jQuerySub.fn = jQuerySub.prototype = this();
+               jQuerySub.fn.constructor = jQuerySub;
+               jQuerySub.sub = this.sub;
+               jQuerySub.fn.init = function init( selector, context ) {
+                       if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
+                               context = jQuerySub( context );
+                       }
 
-                       // A fallback to window.onload, that will always work
-                       window.addEventListener( "load", jQuery.ready, false );
+                       return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
+               };
+               jQuerySub.fn.init.prototype = jQuerySub.fn;
+               var rootjQuerySub = jQuerySub(document);
+               return jQuerySub;
+       },
 
-               // If IE event model is used
-               } else {
-                       // Ensure firing before onload, maybe late but safe also for iframes
-                       document.attachEvent( "onreadystatechange", DOMContentLoaded );
+       browser: {}
+});
 
-                       // A fallback to window.onload, that will always work
-                       window.attachEvent( "onload", jQuery.ready );
+// Populate the class2type map
+jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
+       class2type[ "[object " + name + "]" ] = name.toLowerCase();
+});
 
-                       // If IE and not a frame
-                       // continually check to see if the document is ready
-                       var top = false;
+browserMatch = jQuery.uaMatch( userAgent );
+if ( browserMatch.browser ) {
+       jQuery.browser[ browserMatch.browser ] = true;
+       jQuery.browser.version = browserMatch.version;
+}
 
-                       try {
-                               top = window.frameElement == null && document.documentElement;
-                       } catch(e) {}
+// Deprecated, use jQuery.browser.webkit instead
+if ( jQuery.browser.webkit ) {
+       jQuery.browser.safari = true;
+}
 
-                       if ( top && top.doScroll ) {
-                               (function doScrollCheck() {
-                                       if ( !jQuery.isReady ) {
+// IE doesn't match non-breaking spaces with \s
+if ( rnotwhite.test( "\xA0" ) ) {
+       trimLeft = /^[\s\xA0]+/;
+       trimRight = /[\s\xA0]+$/;
+}
 
-                                               try {
-                                                       // Use the trick by Diego Perini
-                                                       // http://javascript.nwbox.com/IEContentLoaded/
-                                                       top.doScroll("left");
-                                               } catch(e) {
-                                                       return setTimeout( doScrollCheck, 50 );
-                                               }
+// All jQuery objects should point back to these
+rootjQuery = jQuery(document);
 
-                                               // and execute any waiting functions
-                                               jQuery.ready();
-                                       }
-                               })();
-                       }
+// Cleanup functions for the document ready method
+if ( document.addEventListener ) {
+       DOMContentLoaded = function() {
+               document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+               jQuery.ready();
+       };
+
+} else if ( document.attachEvent ) {
+       DOMContentLoaded = function() {
+               // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+               if ( document.readyState === "complete" ) {
+                       document.detachEvent( "onreadystatechange", DOMContentLoaded );
+                       jQuery.ready();
                }
+       };
+}
+
+// The DOM ready check for Internet Explorer
+function doScrollCheck() {
+       if ( jQuery.isReady ) {
+               return;
        }
-       return readyList.promise( obj );
-};
 
-// Populate the class2type map
-jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
-       class2type[ "[object " + name + "]" ] = name.toLowerCase();
-});
+       try {
+               // If IE is used, use the trick by Diego Perini
+               // http://javascript.nwbox.com/IEContentLoaded/
+               document.documentElement.doScroll("left");
+       } catch(e) {
+               setTimeout( doScrollCheck, 1 );
+               return;
+       }
 
-// All jQuery objects should point back to these
-rootjQuery = jQuery(document);
-// String to Object options format cache
-var optionsCache = {};
-
-// Convert String-formatted options into Object-formatted ones and store in cache
-function createOptions( options ) {
-       var object = optionsCache[ options ] = {};
-       jQuery.each( options.split( core_rspace ), function( _, flag ) {
-               object[ flag ] = true;
-       });
+       // and execute any waiting functions
+       jQuery.ready();
+}
+
+return jQuery;
+
+})();
+
+
+// String to Object flags format cache
+var flagsCache = {};
+
+// Convert String-formatted flags into Object-formatted ones and store in cache
+function createFlags( flags ) {
+       var object = flagsCache[ flags ] = {},
+               i, length;
+       flags = flags.split( /\s+/ );
+       for ( i = 0, length = flags.length; i < length; i++ ) {
+               object[ flags[i] ] = true;
+       }
        return object;
 }
 
 /*
  * Create a callback list using the following parameters:
  *
- *     options: an optional list of space-separated options that will change how
- *                     the callback list behaves or a more traditional option object
+ *     flags:  an optional list of space-separated flags that will change how
+ *                     the callback list behaves
  *
  * By default a callback list will act like an event callback list and can be
  * "fired" multiple times.
  *
- * Possible options:
+ * Possible flags:
  *
  *     once:                   will ensure the callback list can only be fired once (like a Deferred)
  *
@@ -937,15 +1019,17 @@ function createOptions( options ) {
  *     stopOnFalse:    interrupt callings when a callback returns false
  *
  */
-jQuery.Callbacks = function( options ) {
+jQuery.Callbacks = function( flags ) {
 
-       // Convert options from String-formatted to Object-formatted if needed
+       // Convert flags from String-formatted to Object-formatted
        // (we check in cache first)
-       options = typeof options === "string" ?
-               ( optionsCache[ options ] || createOptions( options ) ) :
-               jQuery.extend( {}, options );
+       flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {};
 
-       var // Last fire value (for non-forgettable lists)
+       var // Actual callback list
+               list = [],
+               // Stack of fire calls for repeatable lists
+               stack = [],
+               // Last fire value (for non-forgettable lists)
                memory,
                // Flag to know if list was already fired
                fired,
@@ -957,34 +1041,53 @@ jQuery.Callbacks = function( options ) {
                firingLength,
                // Index of currently firing callback (modified by remove if needed)
                firingIndex,
-               // Actual callback list
-               list = [],
-               // Stack of fire calls for repeatable lists
-               stack = !options.once && [],
+               // Add one or several callbacks to the list
+               add = function( args ) {
+                       var i,
+                               length,
+                               elem,
+                               type,
+                               actual;
+                       for ( i = 0, length = args.length; i < length; i++ ) {
+                               elem = args[ i ];
+                               type = jQuery.type( elem );
+                               if ( type === "array" ) {
+                                       // Inspect recursively
+                                       add( elem );
+                               } else if ( type === "function" ) {
+                                       // Add if not in unique mode and callback is not in
+                                       if ( !flags.unique || !self.has( elem ) ) {
+                                               list.push( elem );
+                                       }
+                               }
+                       }
+               },
                // Fire callbacks
-               fire = function( data ) {
-                       memory = options.memory && data;
+               fire = function( context, args ) {
+                       args = args || [];
+                       memory = !flags.memory || [ context, args ];
                        fired = true;
+                       firing = true;
                        firingIndex = firingStart || 0;
                        firingStart = 0;
                        firingLength = list.length;
-                       firing = true;
                        for ( ; list && firingIndex < firingLength; firingIndex++ ) {
-                               if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
-                                       memory = false; // To prevent further calls using add
+                               if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) {
+                                       memory = true; // Mark as halted
                                        break;
                                }
                        }
                        firing = false;
                        if ( list ) {
-                               if ( stack ) {
-                                       if ( stack.length ) {
-                                               fire( stack.shift() );
+                               if ( !flags.once ) {
+                                       if ( stack && stack.length ) {
+                                               memory = stack.shift();
+                                               self.fireWith( memory[ 0 ], memory[ 1 ] );
                                        }
-                               } else if ( memory ) {
-                                       list = [];
-                               } else {
+                               } else if ( memory === true ) {
                                        self.disable();
+                               } else {
+                                       list = [];
                                }
                        }
                },
@@ -993,27 +1096,18 @@ jQuery.Callbacks = function( options ) {
                        // Add a callback or a collection of callbacks to the list
                        add: function() {
                                if ( list ) {
-                                       // First, we save the current length
-                                       var start = list.length;
-                                       (function add( args ) {
-                                               jQuery.each( args, function( _, arg ) {
-                                                       if ( jQuery.isFunction( arg ) && ( !options.unique || !self.has( arg ) ) ) {
-                                                               list.push( arg );
-                                                       } else if ( arg && arg.length ) {
-                                                               // Inspect recursively
-                                                               add( arg );
-                                                       }
-                                               });
-                                       })( arguments );
+                                       var length = list.length;
+                                       add( arguments );
                                        // Do we need to add the callbacks to the
                                        // current firing batch?
                                        if ( firing ) {
                                                firingLength = list.length;
                                        // With memory, if we're not firing then
-                                       // we should call right away
-                                       } else if ( memory ) {
-                                               firingStart = start;
-                                               fire( memory );
+                                       // we should call right away, unless previous
+                                       // firing was halted (stopOnFalse)
+                                       } else if ( memory && memory !== true ) {
+                                               firingStart = length;
+                                               fire( memory[ 0 ], memory[ 1 ] );
                                        }
                                }
                                return this;
@@ -1021,27 +1115,46 @@ jQuery.Callbacks = function( options ) {
                        // Remove a callback from the list
                        remove: function() {
                                if ( list ) {
-                                       jQuery.each( arguments, function( _, arg ) {
-                                               var index;
-                                               while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
-                                                       list.splice( index, 1 );
-                                                       // Handle firing indexes
-                                                       if ( firing ) {
-                                                               if ( index <= firingLength ) {
-                                                                       firingLength--;
+                                       var args = arguments,
+                                               argIndex = 0,
+                                               argLength = args.length;
+                                       for ( ; argIndex < argLength ; argIndex++ ) {
+                                               for ( var i = 0; i < list.length; i++ ) {
+                                                       if ( args[ argIndex ] === list[ i ] ) {
+                                                               // Handle firingIndex and firingLength
+                                                               if ( firing ) {
+                                                                       if ( i <= firingLength ) {
+                                                                               firingLength--;
+                                                                               if ( i <= firingIndex ) {
+                                                                                       firingIndex--;
+                                                                               }
+                                                                       }
                                                                }
-                                                               if ( index <= firingIndex ) {
-                                                                       firingIndex--;
+                                                               // Remove the element
+                                                               list.splice( i--, 1 );
+                                                               // If we have some unicity property then
+                                                               // we only need to do this once
+                                                               if ( flags.unique ) {
+                                                                       break;
                                                                }
                                                        }
                                                }
-                                       });
+                                       }
                                }
                                return this;
                        },
                        // Control if a given callback is in the list
                        has: function( fn ) {
-                               return jQuery.inArray( fn, list ) > -1;
+                               if ( list ) {
+                                       var i = 0,
+                                               length = list.length;
+                                       for ( ; i < length; i++ ) {
+                                               if ( fn === list[ i ] ) {
+                                                       return true;
+                                               }
+                                       }
+                               }
+                               return false;
                        },
                        // Remove all callbacks from the list
                        empty: function() {
@@ -1060,7 +1173,7 @@ jQuery.Callbacks = function( options ) {
                        // Lock the list in its current state
                        lock: function() {
                                stack = undefined;
-                               if ( !memory ) {
+                               if ( !memory || memory === true ) {
                                        self.disable();
                                }
                                return this;
@@ -1071,13 +1184,13 @@ jQuery.Callbacks = function( options ) {
                        },
                        // Call all callbacks with the given context and arguments
                        fireWith: function( context, args ) {
-                               args = args || [];
-                               args = [ context, args.slice ? args.slice() : args ];
-                               if ( list && ( !fired || stack ) ) {
+                               if ( stack ) {
                                        if ( firing ) {
-                                               stack.push( args );
-                                       } else {
-                                               fire( args );
+                                               if ( !flags.once ) {
+                                                       stack.push( [ context, args ] );
+                                               }
+                                       } else if ( !( flags.once && memory ) ) {
+                                               fire( context, args );
                                        }
                                }
                                return this;
@@ -1095,85 +1208,98 @@ jQuery.Callbacks = function( options ) {
 
        return self;
 };
+
+
+
+
+var // Static reference to slice
+       sliceDeferred = [].slice;
+
 jQuery.extend({
 
        Deferred: function( func ) {
-               var tuples = [
-                               // action, add listener, listener list, final state
-                               [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
-                               [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
-                               [ "notify", "progress", jQuery.Callbacks("memory") ]
-                       ],
+               var doneList = jQuery.Callbacks( "once memory" ),
+                       failList = jQuery.Callbacks( "once memory" ),
+                       progressList = jQuery.Callbacks( "memory" ),
                        state = "pending",
+                       lists = {
+                               resolve: doneList,
+                               reject: failList,
+                               notify: progressList
+                       },
                        promise = {
+                               done: doneList.add,
+                               fail: failList.add,
+                               progress: progressList.add,
+
                                state: function() {
                                        return state;
                                },
+
+                               // Deprecated
+                               isResolved: doneList.fired,
+                               isRejected: failList.fired,
+
+                               then: function( doneCallbacks, failCallbacks, progressCallbacks ) {
+                                       deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks );
+                                       return this;
+                               },
                                always: function() {
-                                       deferred.done( arguments ).fail( arguments );
+                                       deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );
                                        return this;
                                },
-                               then: function( /* fnDone, fnFail, fnProgress */ ) {
-                                       var fns = arguments;
+                               pipe: function( fnDone, fnFail, fnProgress ) {
                                        return jQuery.Deferred(function( newDefer ) {
-                                               jQuery.each( tuples, function( i, tuple ) {
-                                                       var action = tuple[ 0 ],
-                                                               fn = fns[ i ];
-                                                       // deferred[ done | fail | progress ] for forwarding actions to newDefer
-                                                       deferred[ tuple[1] ]( jQuery.isFunction( fn ) ?
-                                                               function() {
-                                                                       var returned = fn.apply( this, arguments );
+                                               jQuery.each( {
+                                                       done: [ fnDone, "resolve" ],
+                                                       fail: [ fnFail, "reject" ],
+                                                       progress: [ fnProgress, "notify" ]
+                                               }, function( handler, data ) {
+                                                       var fn = data[ 0 ],
+                                                               action = data[ 1 ],
+                                                               returned;
+                                                       if ( jQuery.isFunction( fn ) ) {
+                                                               deferred[ handler ](function() {
+                                                                       returned = fn.apply( this, arguments );
                                                                        if ( returned && jQuery.isFunction( returned.promise ) ) {
-                                                                               returned.promise()
-                                                                                       .done( newDefer.resolve )
-                                                                                       .fail( newDefer.reject )
-                                                                                       .progress( newDefer.notify );
+                                                                               returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify );
                                                                        } else {
                                                                                newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
                                                                        }
-                                                               } :
-                                                               newDefer[ action ]
-                                                       );
+                                                               });
+                                                       } else {
+                                                               deferred[ handler ]( newDefer[ action ] );
+                                                       }
                                                });
-                                               fns = null;
                                        }).promise();
                                },
                                // Get a promise for this deferred
                                // If obj is provided, the promise aspect is added to the object
                                promise: function( obj ) {
-                                       return typeof obj === "object" ? jQuery.extend( obj, promise ) : promise;
+                                       if ( obj == null ) {
+                                               obj = promise;
+                                       } else {
+                                               for ( var key in promise ) {
+                                                       obj[ key ] = promise[ key ];
+                                               }
+                                       }
+                                       return obj;
                                }
                        },
-                       deferred = {};
-
-               // Keep pipe for back-compat
-               promise.pipe = promise.then;
-
-               // Add list-specific methods
-               jQuery.each( tuples, function( i, tuple ) {
-                       var list = tuple[ 2 ],
-                               stateString = tuple[ 3 ];
-
-                       // promise[ done | fail | progress ] = list.add
-                       promise[ tuple[1] ] = list.add;
-
-                       // Handle state
-                       if ( stateString ) {
-                               list.add(function() {
-                                       // state = [ resolved | rejected ]
-                                       state = stateString;
+                       deferred = promise.promise({}),
+                       key;
 
-                               // [ reject_list | resolve_list ].disable; progress_list.lock
-                               }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
-                       }
-
-                       // deferred[ resolve | reject | notify ] = list.fire
-                       deferred[ tuple[0] ] = list.fire;
-                       deferred[ tuple[0] + "With" ] = list.fireWith;
-               });
+               for ( key in lists ) {
+                       deferred[ key ] = lists[ key ].fire;
+                       deferred[ key + "With" ] = lists[ key ].fireWith;
+               }
 
-               // Make the deferred a promise
-               promise.promise( deferred );
+               // Handle state
+               deferred.done( function() {
+                       state = "resolved";
+               }, failList.disable, progressList.lock ).fail( function() {
+                       state = "rejected";
+               }, doneList.disable, progressList.lock );
 
                // Call given func if any
                if ( func ) {
@@ -1185,57 +1311,52 @@ jQuery.extend({
        },
 
        // Deferred helper
-       when: function( subordinate /* , ..., subordinateN */ ) {
-               var i = 0,
-                       resolveValues = core_slice.call( arguments ),
-                       length = resolveValues.length,
-
-                       // the count of uncompleted subordinates
-                       remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
-
-                       // the master Deferred. If resolveValues consist of only a single Deferred, just use that.
-                       deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
-
-                       // Update function for both resolve and progress values
-                       updateFunc = function( i, contexts, values ) {
-                               return function( value ) {
-                                       contexts[ i ] = this;
-                                       values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value;
-                                       if( values === progressValues ) {
-                                               deferred.notifyWith( contexts, values );
-                                       } else if ( !( --remaining ) ) {
-                                               deferred.resolveWith( contexts, values );
-                                       }
-                               };
-                       },
-
-                       progressValues, progressContexts, resolveContexts;
-
-               // add listeners to Deferred subordinates; treat others as resolved
+       when: function( firstParam ) {
+               var args = sliceDeferred.call( arguments, 0 ),
+                       i = 0,
+                       length = args.length,
+                       pValues = new Array( length ),
+                       count = length,
+                       pCount = length,
+                       deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?
+                               firstParam :
+                               jQuery.Deferred(),
+                       promise = deferred.promise();
+               function resolveFunc( i ) {
+                       return function( value ) {
+                               args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
+                               if ( !( --count ) ) {
+                                       deferred.resolveWith( deferred, args );
+                               }
+                       };
+               }
+               function progressFunc( i ) {
+                       return function( value ) {
+                               pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
+                               deferred.notifyWith( promise, pValues );
+                       };
+               }
                if ( length > 1 ) {
-                       progressValues = new Array( length );
-                       progressContexts = new Array( length );
-                       resolveContexts = new Array( length );
                        for ( ; i < length; i++ ) {
-                               if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
-                                       resolveValues[ i ].promise()
-                                               .done( updateFunc( i, resolveContexts, resolveValues ) )
-                                               .fail( deferred.reject )
-                                               .progress( updateFunc( i, progressContexts, progressValues ) );
+                               if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) {
+                                       args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) );
                                } else {
-                                       --remaining;
+                                       --count;
                                }
                        }
+                       if ( !count ) {
+                               deferred.resolveWith( deferred, args );
+                       }
+               } else if ( deferred !== firstParam ) {
+                       deferred.resolveWith( deferred, length ? [ firstParam ] : [] );
                }
-
-               // if we're not waiting on anything, resolve the master
-               if ( !remaining ) {
-                       deferred.resolveWith( resolveContexts, resolveValues );
-               }
-
-               return deferred.promise();
+               return promise;
        }
 });
+
+
+
+
 jQuery.support = (function() {
 
        var support,
@@ -1245,19 +1366,20 @@ jQuery.support = (function() {
                opt,
                input,
                fragment,
+               tds,
+               events,
                eventName,
                i,
                isSupported,
-               clickFn,
-               div = document.createElement("div");
+               div = document.createElement( "div" ),
+               documentElement = document.documentElement;
 
        // Preliminary tests
-       div.setAttribute( "className", "t" );
-       div.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
+       div.setAttribute("className", "t");
+       div.innerHTML = "   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
 
-       all = div.getElementsByTagName("*");
-       a = div.getElementsByTagName("a")[ 0 ];
-       a.style.cssText = "top:1px;float:left;opacity:.5";
+       all = div.getElementsByTagName( "*" );
+       a = div.getElementsByTagName( "a" )[ 0 ];
 
        // Can't get basic test support
        if ( !all || !all.length || !a ) {
@@ -1265,9 +1387,9 @@ jQuery.support = (function() {
        }
 
        // First batch of supports tests
-       select = document.createElement("select");
+       select = document.createElement( "select" );
        opt = select.appendChild( document.createElement("option") );
-       input = div.getElementsByTagName("input")[ 0 ];
+       input = div.getElementsByTagName( "input" )[ 0 ];
 
        support = {
                // IE strips leading whitespace when .innerHTML is used
@@ -1292,7 +1414,7 @@ jQuery.support = (function() {
                // Make sure that element opacity exists
                // (IE uses filter instead)
                // Use a regex to work around a WebKit issue. See #5145
-               opacity: /^0.5/.test( a.style.opacity ),
+               opacity: /^0.55/.test( a.style.opacity ),
 
                // Verify style float existence
                // (IE uses styleFloat instead of cssFloat)
@@ -1317,9 +1439,6 @@ jQuery.support = (function() {
                // Where outerHTML is undefined, this still works
                html5Clone: document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>",
 
-               // jQuery.support.boxModel DEPRECATED in 1.8 since we don't support Quirks Mode
-               boxModel: ( document.compatMode === "CSS1Compat" ),
-
                // Will be defined later
                submitBubbles: true,
                changeBubbles: true,
@@ -1329,10 +1448,12 @@ jQuery.support = (function() {
                inlineBlockNeedsLayout: false,
                shrinkWrapBlocks: false,
                reliableMarginRight: true,
-               boxSizingReliable: true,
-               pixelPosition: false
+               pixelMargin: true
        };
 
+       // jQuery.boxModel DEPRECATED in 1.3, use jQuery.support.boxModel instead
+       jQuery.boxModel = support.boxModel = (document.compatMode === "CSS1Compat");
+
        // Make sure checked status is properly cloned
        input.checked = true;
        support.noCloneChecked = input.cloneNode( true ).checked;
@@ -1351,23 +1472,22 @@ jQuery.support = (function() {
        }
 
        if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
-               div.attachEvent( "onclick", clickFn = function() {
+               div.attachEvent( "onclick", function() {
                        // Cloning a node shouldn't copy over any
                        // bound event handlers (IE does this)
                        support.noCloneEvent = false;
                });
-               div.cloneNode( true ).fireEvent("onclick");
-               div.detachEvent( "onclick", clickFn );
+               div.cloneNode( true ).fireEvent( "onclick" );
        }
 
        // Check if a radio maintains its value
        // after being appended to the DOM
        input = document.createElement("input");
        input.value = "t";
-       input.setAttribute( "type", "radio" );
+       input.setAttribute("type", "radio");
        support.radioValue = input.value === "t";
 
-       input.setAttribute( "checked", "checked" );
+       input.setAttribute("checked", "checked");
 
        // #11217 - WebKit loses check when the name is after the checked attribute
        input.setAttribute( "name", "t" );
@@ -1394,9 +1514,9 @@ jQuery.support = (function() {
        // to go haywire. See: https://developer.mozilla.org/en/Security/CSP
        if ( div.attachEvent ) {
                for ( i in {
-                       submit: true,
-                       change: true,
-                       focusin: true
+                       submit: 1,
+                       change: 1,
+                       focusin: 1
                }) {
                        eventName = "on" + i;
                        isSupported = ( eventName in div );
@@ -1408,10 +1528,16 @@ jQuery.support = (function() {
                }
        }
 
+       fragment.removeChild( div );
+
+       // Null elements to avoid leaks in IE
+       fragment = select = opt = div = input = null;
+
        // Run tests that need a body at doc ready
        jQuery(function() {
-               var container, div, tds, marginDiv,
-                       divReset = "padding:0;margin:0;border:0;display:block;overflow:hidden;",
+               var container, outer, inner, table, td, offsetSupport,
+                       marginDiv, conMarginTop, style, html, positionTopLeftWidthHeight,
+                       paddingMarginBorderVisibility, paddingMarginBorder,
                        body = document.getElementsByTagName("body")[0];
 
                if ( !body ) {
@@ -1419,8 +1545,17 @@ jQuery.support = (function() {
                        return;
                }
 
+               conMarginTop = 1;
+               paddingMarginBorder = "padding:0;margin:0;border:";
+               positionTopLeftWidthHeight = "position:absolute;top:0;left:0;width:1px;height:1px;";
+               paddingMarginBorderVisibility = paddingMarginBorder + "0;visibility:hidden;";
+               style = "style='" + positionTopLeftWidthHeight + paddingMarginBorder + "5px solid #000;";
+               html = "<div " + style + "display:block;'><div style='" + paddingMarginBorder + "0;display:block;overflow:hidden;'></div></div>" +
+                       "<table " + style + "' cellpadding='0' cellspacing='0'>" +
+                       "<tr><td></td></tr></table>";
+
                container = document.createElement("div");
-               container.style.cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px";
+               container.style.cssText = paddingMarginBorderVisibility + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px";
                body.insertBefore( container, body.firstChild );
 
                // Construct the test element
@@ -1434,9 +1569,8 @@ jQuery.support = (function() {
                // display:none (it is still safe to use offsets if a parent element is
                // hidden; don safety goggles and see bug #4512 for more information).
                // (only IE 8 fails this test)
-               div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
-               tds = div.getElementsByTagName("td");
-               tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none";
+               div.innerHTML = "<table><tr><td style='" + paddingMarginBorder + "0;display:none'></td><td>t</td></tr></table>";
+               tds = div.getElementsByTagName( "td" );
                isSupported = ( tds[ 0 ].offsetHeight === 0 );
 
                tds[ 0 ].style.display = "";
@@ -1446,32 +1580,20 @@ jQuery.support = (function() {
                // (IE <= 8 fail this test)
                support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
 
-               // Check box-sizing and margin behavior
-               div.innerHTML = "";
-               div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;";
-               support.boxSizing = ( div.offsetWidth === 4 );
-               support.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== 1 );
-
-               // NOTE: To any future maintainer, window.getComputedStyle was used here
-               // instead of getComputedStyle because it gave a better gzip size.
-               // The difference between window.getComputedStyle and getComputedStyle is
-               // 7 bytes
+               // Check if div with explicit width and no margin-right incorrectly
+               // gets computed margin-right based on width of container. For more
+               // info see bug #3333
+               // Fails in WebKit before Feb 2011 nightlies
+               // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
                if ( window.getComputedStyle ) {
-                       support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%";
-                       support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px";
-
-                       // Check if div with explicit width and no margin-right incorrectly
-                       // gets computed margin-right based on width of container. For more
-                       // info see bug #3333
-                       // Fails in WebKit before Feb 2011 nightlies
-                       // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
-                       marginDiv = document.createElement("div");
-                       marginDiv.style.cssText = div.style.cssText = divReset;
-                       marginDiv.style.marginRight = marginDiv.style.width = "0";
-                       div.style.width = "1px";
+                       div.innerHTML = "";
+                       marginDiv = document.createElement( "div" );
+                       marginDiv.style.width = "0";
+                       marginDiv.style.marginRight = "0";
+                       div.style.width = "2px";
                        div.appendChild( marginDiv );
                        support.reliableMarginRight =
-                               !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );
+                               ( parseInt( ( window.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;
                }
 
                if ( typeof div.style.zoom !== "undefined" ) {
@@ -1480,39 +1602,73 @@ jQuery.support = (function() {
                        // them layout
                        // (IE < 8 does this)
                        div.innerHTML = "";
-                       div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1";
+                       div.style.width = div.style.padding = "1px";
+                       div.style.border = 0;
+                       div.style.overflow = "hidden";
+                       div.style.display = "inline";
+                       div.style.zoom = 1;
                        support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );
 
                        // Check if elements with layout shrink-wrap their children
                        // (IE 6 does this)
                        div.style.display = "block";
                        div.style.overflow = "visible";
-                       div.innerHTML = "<div></div>";
-                       div.firstChild.style.width = "5px";
+                       div.innerHTML = "<div style='width:5px;'></div>";
                        support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );
+               }
+
+               div.style.cssText = positionTopLeftWidthHeight + paddingMarginBorderVisibility;
+               div.innerHTML = html;
+
+               outer = div.firstChild;
+               inner = outer.firstChild;
+               td = outer.nextSibling.firstChild.firstChild;
+
+               offsetSupport = {
+                       doesNotAddBorder: ( inner.offsetTop !== 5 ),
+                       doesAddBorderForTableAndCells: ( td.offsetTop === 5 )
+               };
 
+               inner.style.position = "fixed";
+               inner.style.top = "20px";
+
+               // safari subtracts parent border width here which is 5px
+               offsetSupport.fixedPosition = ( inner.offsetTop === 20 || inner.offsetTop === 15 );
+               inner.style.position = inner.style.top = "";
+
+               outer.style.overflow = "hidden";
+               outer.style.position = "relative";
+
+               offsetSupport.subtractsBorderForOverflowNotVisible = ( inner.offsetTop === -5 );
+               offsetSupport.doesNotIncludeMarginInBodyOffset = ( body.offsetTop !== conMarginTop );
+
+               if ( window.getComputedStyle ) {
+                       div.style.marginTop = "1%";
+                       support.pixelMargin = ( window.getComputedStyle( div, null ) || { marginTop: 0 } ).marginTop !== "1%";
+               }
+
+               if ( typeof container.style.zoom !== "undefined" ) {
                        container.style.zoom = 1;
                }
 
-               // Null elements to avoid leaks in IE
                body.removeChild( container );
-               container = div = tds = marginDiv = null;
-       });
+               marginDiv = div = container = null;
 
-       // Null elements to avoid leaks in IE
-       fragment.removeChild( div );
-       all = a = select = opt = input = fragment = div = null;
+               jQuery.extend( support, offsetSupport );
+       });
 
        return support;
 })();
+
+
+
+
 var rbrace = /^(?:\{.*\}|\[.*\])$/,
        rmultiDash = /([A-Z])/g;
 
 jQuery.extend({
        cache: {},
 
-       deletedIds: [],
-
        // Please use with caution
        uuid: 0,
 
@@ -1539,7 +1695,7 @@ jQuery.extend({
                        return;
                }
 
-               var thisCache, ret,
+               var privateCache, thisCache, ret,
                        internalKey = jQuery.expando,
                        getByName = typeof name === "string",
 
@@ -1553,11 +1709,12 @@ jQuery.extend({
 
                        // Only defining an ID for JS objects if its cache already exists allows
                        // the code to shortcut on the same path as a DOM node with no cache
-                       id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
+                       id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey,
+                       isEvents = name === "events";
 
                // Avoid doing any more work than we need to when trying to get data on an
                // object that has no data at all
-               if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) {
+               if ( (!id || !cache[id] || (!isEvents && !pvt && !cache[id].data)) && getByName && data === undefined ) {
                        return;
                }
 
@@ -1565,7 +1722,7 @@ jQuery.extend({
                        // Only DOM nodes need a new unique ID for each element since their data
                        // ends up in the global cache
                        if ( isNode ) {
-                               elem[ internalKey ] = id = jQuery.deletedIds.pop() || ++jQuery.uuid;
+                               elem[ internalKey ] = id = ++jQuery.uuid;
                        } else {
                                id = internalKey;
                        }
@@ -1591,7 +1748,7 @@ jQuery.extend({
                        }
                }
 
-               thisCache = cache[ id ];
+               privateCache = thisCache = cache[ id ];
 
                // jQuery data() is stored in a separate object inside the object's internal data
                // cache in order to avoid key collisions between internal data and user-defined
@@ -1608,6 +1765,12 @@ jQuery.extend({
                        thisCache[ jQuery.camelCase( name ) ] = data;
                }
 
+               // Users should not attempt to inspect the internal events object using jQuery.data,
+               // it is undocumented and subject to change. But does anyone listen? No.
+               if ( isEvents && !thisCache[ name ] ) {
+                       return privateCache.events;
+               }
+
                // Check for both converted-to-camel and non-converted data property names
                // If a data property was specified
                if ( getByName ) {
@@ -1635,11 +1798,16 @@ jQuery.extend({
 
                var thisCache, i, l,
 
+                       // Reference to internal data cache key
+                       internalKey = jQuery.expando,
+
                        isNode = elem.nodeType,
 
                        // See jQuery.data for more information
                        cache = isNode ? jQuery.cache : elem,
-                       id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
+
+                       // See jQuery.data for more information
+                       id = isNode ? elem[ internalKey ] : internalKey;
 
                // If there is already no cache entry for this object, there is no
                // purpose in continuing
@@ -1666,7 +1834,7 @@ jQuery.extend({
                                                if ( name in thisCache ) {
                                                        name = [ name ];
                                                } else {
-                                                       name = name.split(" ");
+                                                       name = name.split( " " );
                                                }
                                        }
                                }
@@ -1689,23 +1857,35 @@ jQuery.extend({
 
                        // Don't destroy the parent cache unless the internal data object
                        // had been the only thing left in it
-                       if ( !isEmptyDataObject( cache[ id ] ) ) {
+                       if ( !isEmptyDataObject(cache[ id ]) ) {
                                return;
                        }
                }
 
-               // Destroy the cache
-               if ( isNode ) {
-                       jQuery.cleanData( [ elem ], true );
-
-               // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
-               } else if ( jQuery.support.deleteExpando || cache != cache.window ) {
+               // Browsers that fail expando deletion also refuse to delete expandos on
+               // the window, but it will allow it on all other JS objects; other browsers
+               // don't care
+               // Ensure that `cache` is not a window object #10080
+               if ( jQuery.support.deleteExpando || !cache.setInterval ) {
                        delete cache[ id ];
-
-               // When all else fails, null
                } else {
                        cache[ id ] = null;
                }
+
+               // We destroyed the cache and need to eliminate the expando on the node to avoid
+               // false lookups in the cache for entries that no longer exist
+               if ( isNode ) {
+                       // IE does not allow us to delete expando properties from nodes,
+                       // nor does it have a removeAttribute function on Document nodes;
+                       // we must handle all of these cases
+                       if ( jQuery.support.deleteExpando ) {
+                               delete elem[ internalKey ];
+                       } else if ( elem.removeAttribute ) {
+                               elem.removeAttribute( internalKey );
+                       } else {
+                               elem[ internalKey ] = null;
+                       }
+               }
        },
 
        // For internal use only.
@@ -1715,10 +1895,15 @@ jQuery.extend({
 
        // A method for determining if a DOM node can handle the data expando
        acceptData: function( elem ) {
-               var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];
+               if ( elem.nodeName ) {
+                       var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
+
+                       if ( match ) {
+                               return !(match === true || elem.getAttribute("classid") !== match);
+                       }
+               }
 
-               // nodes accept data unless otherwise specified; rejection can be conditional
-               return !noData || noData !== true && elem.getAttribute("classid") === noData;
+               return true;
        }
 });
 
@@ -1811,9 +1996,8 @@ function dataAttr( elem, key, data ) {
                                data = data === "true" ? true :
                                data === "false" ? false :
                                data === "null" ? null :
-                               // Only convert to a number if it doesn't change the string
-                               +data + "" === data ? +data :
-                               rbrace.test( data ) ? jQuery.parseJSON( data ) :
+                               jQuery.isNumeric( data ) ? +data :
+                                       rbrace.test( data ) ? jQuery.parseJSON( data ) :
                                        data;
                        } catch( e ) {}
 
@@ -1830,8 +2014,7 @@ function dataAttr( elem, key, data ) {
 
 // checks a cache object for emptiness
 function isEmptyDataObject( obj ) {
-       var name;
-       for ( name in obj ) {
+       for ( var name in obj ) {
 
                // if the public data object is empty, the private is still empty
                if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
@@ -1844,23 +2027,73 @@ function isEmptyDataObject( obj ) {
 
        return true;
 }
+
+
+
+
+function handleQueueMarkDefer( elem, type, src ) {
+       var deferDataKey = type + "defer",
+               queueDataKey = type + "queue",
+               markDataKey = type + "mark",
+               defer = jQuery._data( elem, deferDataKey );
+       if ( defer &&
+               ( src === "queue" || !jQuery._data(elem, queueDataKey) ) &&
+               ( src === "mark" || !jQuery._data(elem, markDataKey) ) ) {
+               // Give room for hard-coded callbacks to fire first
+               // and eventually mark/queue something else on the element
+               setTimeout( function() {
+                       if ( !jQuery._data( elem, queueDataKey ) &&
+                               !jQuery._data( elem, markDataKey ) ) {
+                               jQuery.removeData( elem, deferDataKey, true );
+                               defer.fire();
+                       }
+               }, 0 );
+       }
+}
+
 jQuery.extend({
-       queue: function( elem, type, data ) {
-               var queue;
 
+       _mark: function( elem, type ) {
+               if ( elem ) {
+                       type = ( type || "fx" ) + "mark";
+                       jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 );
+               }
+       },
+
+       _unmark: function( force, elem, type ) {
+               if ( force !== true ) {
+                       type = elem;
+                       elem = force;
+                       force = false;
+               }
+               if ( elem ) {
+                       type = type || "fx";
+                       var key = type + "mark",
+                               count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 );
+                       if ( count ) {
+                               jQuery._data( elem, key, count );
+                       } else {
+                               jQuery.removeData( elem, key, true );
+                               handleQueueMarkDefer( elem, type, "mark" );
+                       }
+               }
+       },
+
+       queue: function( elem, type, data ) {
+               var q;
                if ( elem ) {
                        type = ( type || "fx" ) + "queue";
-                       queue = jQuery._data( elem, type );
+                       q = jQuery._data( elem, type );
 
                        // Speed up dequeue by getting out quickly if this is just a lookup
                        if ( data ) {
-                               if ( !queue || jQuery.isArray(data) ) {
-                                       queue = jQuery._data( elem, type, jQuery.makeArray(data) );
+                               if ( !q || jQuery.isArray(data) ) {
+                                       q = jQuery._data( elem, type, jQuery.makeArray(data) );
                                } else {
-                                       queue.push( data );
+                                       q.push( data );
                                }
                        }
-                       return queue || [];
+                       return q || [];
                }
        },
 
@@ -1869,10 +2102,7 @@ jQuery.extend({
 
                var queue = jQuery.queue( elem, type ),
                        fn = queue.shift(),
-                       hooks = jQuery._queueHooks( elem, type ),
-                       next = function() {
-                               jQuery.dequeue( elem, type );
-                       };
+                       hooks = {};
 
                // If the fx queue is dequeued, always remove the progress sentinel
                if ( fn === "inprogress" ) {
@@ -1880,31 +2110,22 @@ jQuery.extend({
                }
 
                if ( fn ) {
-
                        // Add a progress sentinel to prevent the fx queue from being
                        // automatically dequeued
                        if ( type === "fx" ) {
                                queue.unshift( "inprogress" );
                        }
 
-                       // clear up the last queue stop function
-                       delete hooks.stop;
-                       fn.call( elem, next, hooks );
-               }
-               if ( !queue.length && hooks ) {
-                       hooks.empty.fire();
+                       jQuery._data( elem, type + ".run", hooks );
+                       fn.call( elem, function() {
+                               jQuery.dequeue( elem, type );
+                       }, hooks );
                }
-       },
 
-       // not intended for public consumption - generates a queueHooks object, or returns the current one
-       _queueHooks: function( elem, type ) {
-               var key = type + "queueHooks";
-               return jQuery._data( elem, key ) || jQuery._data( elem, key, {
-                       empty: jQuery.Callbacks("once memory").add(function() {
-                               jQuery.removeData( elem, type + "queue", true );
-                               jQuery.removeData( elem, key, true );
-                       })
-               });
+               if ( !queue.length ) {
+                       jQuery.removeData( elem, type + "queue " + type + ".run", true );
+                       handleQueueMarkDefer( elem, type, "queue" );
+               }
        }
 });
 
@@ -1927,9 +2148,6 @@ jQuery.fn.extend({
                        this.each(function() {
                                var queue = jQuery.queue( this, type, data );
 
-                               // ensure a hooks for this queue
-                               jQuery._queueHooks( this, type );
-
                                if ( type === "fx" && queue[0] !== "inprogress" ) {
                                        jQuery.dequeue( this, type );
                                }
@@ -1958,42 +2176,51 @@ jQuery.fn.extend({
        },
        // Get a promise resolved when queues of a certain type
        // are emptied (fx is the type by default)
-       promise: function( type, obj ) {
-               var tmp,
-                       count = 1,
-                       defer = jQuery.Deferred(),
-                       elements = this,
-                       i = this.length,
-                       resolve = function() {
-                               if ( !( --count ) ) {
-                                       defer.resolveWith( elements, [ elements ] );
-                               }
-                       };
-
+       promise: function( type, object ) {
                if ( typeof type !== "string" ) {
-                       obj = type;
+                       object = type;
                        type = undefined;
                }
                type = type || "fx";
-
+               var defer = jQuery.Deferred(),
+                       elements = this,
+                       i = elements.length,
+                       count = 1,
+                       deferDataKey = type + "defer",
+                       queueDataKey = type + "queue",
+                       markDataKey = type + "mark",
+                       tmp;
+               function resolve() {
+                       if ( !( --count ) ) {
+                               defer.resolveWith( elements, [ elements ] );
+                       }
+               }
                while( i-- ) {
-                       if ( (tmp = jQuery._data( elements[ i ], type + "queueHooks" )) && tmp.empty ) {
+                       if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
+                                       ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
+                                               jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
+                                       jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) {
                                count++;
-                               tmp.empty.add( resolve );
+                               tmp.add( resolve );
                        }
                }
                resolve();
-               return defer.promise( obj );
+               return defer.promise( object );
        }
 });
-var nodeHook, boolHook, fixSpecified,
-       rclass = /[\t\r\n]/g,
+
+
+
+
+var rclass = /[\n\t\r]/g,
+       rspace = /\s+/,
        rreturn = /\r/g,
        rtype = /^(?:button|input)$/i,
        rfocusable = /^(?:button|input|object|select|textarea)$/i,
-       rclickable = /^a(?:rea|)$/i,
+       rclickable = /^a(?:rea)?$/i,
        rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
-       getSetAttribute = jQuery.support.getSetAttribute;
+       getSetAttribute = jQuery.support.getSetAttribute,
+       nodeHook, boolHook, fixSpecified;
 
 jQuery.fn.extend({
        attr: function( name, value ) {
@@ -2032,7 +2259,7 @@ jQuery.fn.extend({
                }
 
                if ( value && typeof value === "string" ) {
-                       classNames = value.split( core_rspace );
+                       classNames = value.split( rspace );
 
                        for ( i = 0, l = this.length; i < l; i++ ) {
                                elem = this[ i ];
@@ -2059,30 +2286,31 @@ jQuery.fn.extend({
        },
 
        removeClass: function( value ) {
-               var removes, className, elem, c, cl, i, l;
+               var classNames, i, l, elem, className, c, cl;
 
                if ( jQuery.isFunction( value ) ) {
                        return this.each(function( j ) {
                                jQuery( this ).removeClass( value.call(this, j, this.className) );
                        });
                }
+
                if ( (value && typeof value === "string") || value === undefined ) {
-                       removes = ( value || "" ).split( core_rspace );
+                       classNames = ( value || "" ).split( rspace );
 
                        for ( i = 0, l = this.length; i < l; i++ ) {
                                elem = this[ i ];
-                               if ( elem.nodeType === 1 && elem.className ) {
-
-                                       className = (" " + elem.className + " ").replace( rclass, " " );
 
-                                       // loop over each item in the removal list
-                                       for ( c = 0, cl = removes.length; c < cl; c++ ) {
-                                               // Remove until there is nothing to remove,
-                                               while ( className.indexOf(" " + removes[ c ] + " ") > -1 ) {
-                                                       className = className.replace( " " + removes[ c ] + " " , " " );
+                               if ( elem.nodeType === 1 && elem.className ) {
+                                       if ( value ) {
+                                               className = (" " + elem.className + " ").replace( rclass, " " );
+                                               for ( c = 0, cl = classNames.length; c < cl; c++ ) {
+                                                       className = className.replace(" " + classNames[ c ] + " ", " ");
                                                }
+                                               elem.className = jQuery.trim( className );
+
+                                       } else {
+                                               elem.className = "";
                                        }
-                                       elem.className = value ? jQuery.trim( className ) : "";
                                }
                        }
                }
@@ -2107,10 +2335,10 @@ jQuery.fn.extend({
                                        i = 0,
                                        self = jQuery( this ),
                                        state = stateVal,
-                                       classNames = value.split( core_rspace );
+                                       classNames = value.split( rspace );
 
                                while ( (className = classNames[ i++ ]) ) {
-                                       // check each className given, space separated list
+                                       // check each className given, space seperated list
                                        state = isBool ? state : !self.hasClass( className );
                                        self[ state ? "addClass" : "removeClass" ]( className );
                                }
@@ -2167,8 +2395,7 @@ jQuery.fn.extend({
                isFunction = jQuery.isFunction( value );
 
                return this.each(function( i ) {
-                       var val,
-                               self = jQuery(this);
+                       var self = jQuery(this), val;
 
                        if ( this.nodeType !== 1 ) {
                                return;
@@ -2270,8 +2497,16 @@ jQuery.extend({
                }
        },
 
-       // Unused in 1.8, left in so attrFn-stabbers won't die; remove in 1.9
-       attrFn: {},
+       attrFn: {
+               val: true,
+               css: true,
+               html: true,
+               text: true,
+               data: true,
+               width: true,
+               height: true,
+               offset: true
+       },
 
        attr: function( elem, name, value, pass ) {
                var ret, hooks, notxml,
@@ -2282,7 +2517,7 @@ jQuery.extend({
                        return;
                }
 
-               if ( pass && jQuery.isFunction( jQuery.fn[ name ] ) ) {
+               if ( pass && name in jQuery.attrFn ) {
                        return jQuery( elem )[ name ]( value );
                }
 
@@ -2329,14 +2564,14 @@ jQuery.extend({
        },
 
        removeAttr: function( elem, value ) {
-               var propName, attrNames, name, isBool,
+               var propName, attrNames, name, l, isBool,
                        i = 0;
 
                if ( value && elem.nodeType === 1 ) {
+                       attrNames = value.toLowerCase().split( rspace );
+                       l = attrNames.length;
 
-                       attrNames = value.split( core_rspace );
-
-                       for ( ; i < attrNames.length; i++ ) {
+                       for ( ; i < l; i++ ) {
                                name = attrNames[ i ];
 
                                if ( name ) {
@@ -2466,6 +2701,9 @@ jQuery.extend({
        }
 });
 
+// Add the tabIndex propHook to attrHooks for back-compat (different case is intentional)
+jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex;
+
 // Hook for boolean attributes
 boolHook = {
        get: function( elem, name ) {
@@ -2512,8 +2750,8 @@ if ( !getSetAttribute ) {
                get: function( elem, name ) {
                        var ret;
                        ret = elem.getAttributeNode( name );
-                       return ret && ( fixSpecified[ name ] ? ret.value !== "" : ret.specified ) ?
-                               ret.value :
+                       return ret && ( fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified ) ?
+                               ret.nodeValue :
                                undefined;
                },
                set: function( elem, value, name ) {
@@ -2523,10 +2761,13 @@ if ( !getSetAttribute ) {
                                ret = document.createAttribute( name );
                                elem.setAttributeNode( ret );
                        }
-                       return ( ret.value = value + "" );
+                       return ( ret.nodeValue = value + "" );
                }
        };
 
+       // Apply the nodeHook to tabindex
+       jQuery.attrHooks.tabindex.set = nodeHook.set;
+
        // Set width and height to auto instead of 0 on empty string( Bug #8150 )
        // This is for removals
        jQuery.each([ "width", "height" ], function( i, name ) {
@@ -2624,12 +2865,35 @@ jQuery.each([ "radio", "checkbox" ], function() {
                }
        });
 });
+
+
+
+
 var rformElems = /^(?:textarea|input|select)$/i,
-       rtypenamespace = /^([^\.]*|)(?:\.(.+)|)$/,
-       rhoverHack = /(?:^|\s)hover(\.\S+|)\b/,
+       rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/,
+       rhoverHack = /(?:^|\s)hover(\.\S+)?\b/,
        rkeyEvent = /^key/,
        rmouseEvent = /^(?:mouse|contextmenu)|click/,
        rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+       rquickIs = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,
+       quickParse = function( selector ) {
+               var quick = rquickIs.exec( selector );
+               if ( quick ) {
+                       //   0  1    2   3
+                       // [ _, tag, id, class ]
+                       quick[1] = ( quick[1] || "" ).toLowerCase();
+                       quick[3] = quick[3] && new RegExp( "(?:^|\\s)" + quick[3] + "(?:\\s|$)" );
+               }
+               return quick;
+       },
+       quickIs = function( elem, m ) {
+               var attrs = elem.attributes || {};
+               return (
+                       (!m[1] || elem.nodeName.toLowerCase() === m[1]) &&
+                       (!m[2] || (attrs.id || {}).value === m[2]) &&
+                       (!m[3] || m[3].test( (attrs[ "class" ] || {}).value ))
+               );
+       },
        hoverHack = function( events ) {
                return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" );
        };
@@ -2644,7 +2908,7 @@ jQuery.event = {
 
                var elemData, eventHandle, events,
                        t, tns, type, namespaces, handleObj,
-                       handleObjIn, handlers, special;
+                       handleObjIn, quick, handlers, special;
 
                // Don't attach events to noData or text/comment nodes (allow plain objects tho)
                if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) {
@@ -2707,6 +2971,7 @@ jQuery.event = {
                                handler: handler,
                                guid: handler.guid,
                                selector: selector,
+                               quick: selector && quickParse( selector ),
                                namespace: namespaces.join(".")
                        }, handleObjIn );
 
@@ -2756,9 +3021,9 @@ jQuery.event = {
        // Detach an event or set of events from an element
        remove: function( elem, types, handler, selector, mappedTypes ) {
 
-               var t, tns, type, origType, namespaces, origCount,
-                       j, events, special, eventType, handleObj,
-                       elemData = jQuery.hasData( elem ) && jQuery._data( elem );
+               var elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
+                       t, tns, type, origType, namespaces, origCount,
+                       j, events, special, handle, eventType, handleObj;
 
                if ( !elemData || !(events = elemData.events) ) {
                        return;
@@ -2783,7 +3048,7 @@ jQuery.event = {
                        type = ( selector? special.delegateType : special.bindType ) || type;
                        eventType = events[ type ] || [];
                        origCount = eventType.length;
-                       namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.|)") + "(\\.|$)") : null;
+                       namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
 
                        // Remove matching events
                        for ( j = 0; j < eventType.length; j++ ) {
@@ -2807,7 +3072,7 @@ jQuery.event = {
                        // Remove generic event handler if we removed something and no more handlers exist
                        // (avoids potential for endless recursion during removal of special event handlers)
                        if ( eventType.length === 0 && origCount !== eventType.length ) {
-                               if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+                               if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
                                        jQuery.removeEvent( elem, type, elemData.handle );
                                }
 
@@ -2817,11 +3082,14 @@ jQuery.event = {
 
                // Remove the expando if it's no longer used
                if ( jQuery.isEmptyObject( events ) ) {
-                       delete elemData.handle;
+                       handle = elemData.handle;
+                       if ( handle ) {
+                               handle.elem = null;
+                       }
 
                        // removeData also checks for emptiness and clears the expando if empty
                        // so use it instead of delete
-                       jQuery.removeData( elem, "events", true );
+                       jQuery.removeData( elem, [ "events", "handle" ], true );
                }
        },
 
@@ -2840,9 +3108,9 @@ jQuery.event = {
                }
 
                // Event object or event type
-               var cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType,
-                       type = event.type || event,
-                       namespaces = [];
+               var type = event.type || event,
+                       namespaces = [],
+                       cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType;
 
                // focus/blur morphs to focusin/out; ensure we're not firing them right now
                if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
@@ -2880,7 +3148,7 @@ jQuery.event = {
                event.isTrigger = true;
                event.exclusive = exclusive;
                event.namespace = namespaces.join( "." );
-               event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : null;
+               event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
                ontype = type.indexOf( ":" ) < 0 ? "on" + type : "";
 
                // Handle a global trigger
@@ -2919,13 +3187,14 @@ jQuery.event = {
 
                        bubbleType = special.delegateType || type;
                        cur = rfocusMorph.test( bubbleType + type ) ? elem : elem.parentNode;
-                       for ( old = elem; cur; cur = cur.parentNode ) {
+                       old = null;
+                       for ( ; cur; cur = cur.parentNode ) {
                                eventPath.push([ cur, bubbleType ]);
                                old = cur;
                        }
 
                        // Only add window if we got to document (e.g., not plain obj or detached DOM)
-                       if ( old === (elem.ownerDocument || document) ) {
+                       if ( old && old === elem.ownerDocument ) {
                                eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]);
                        }
                }
@@ -2987,13 +3256,13 @@ jQuery.event = {
                // Make a writable jQuery.Event from the native event object
                event = jQuery.event.fix( event || window.event );
 
-               var i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related,
-                       handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []),
+               var handlers = ( (jQuery._data( this, "events" ) || {} )[ event.type ] || []),
                        delegateCount = handlers.delegateCount,
-                       args = [].slice.call( arguments ),
+                       args = [].slice.call( arguments, 0 ),
                        run_all = !event.exclusive && !event.namespace,
                        special = jQuery.event.special[ event.type ] || {},
-                       handlerQueue = [];
+                       handlerQueue = [],
+                       i, j, cur, jqcur, ret, selMatch, matched, matches, handleObj, sel, related;
 
                // Use the fix-ed jQuery.Event rather than the (read-only) native event
                args[0] = event;
@@ -3010,12 +3279,12 @@ jQuery.event = {
 
                        // Pregenerate a single jQuery object for reuse with .is()
                        jqcur = jQuery(this);
-                       jqcur.context = this;
+                       jqcur.context = this.ownerDocument || this;
 
                        for ( cur = event.target; cur != this; cur = cur.parentNode || this ) {
 
-                               // Don't process clicks (ONLY) on disabled elements (#6911, #8165, #xxxx)
-                               if ( cur.disabled !== true || event.type !== "click" ) {
+                               // Don't process events on disabled elements (#6911, #8165)
+                               if ( cur.disabled !== true ) {
                                        selMatch = {};
                                        matches = [];
                                        jqcur[0] = cur;
@@ -3024,7 +3293,9 @@ jQuery.event = {
                                                sel = handleObj.selector;
 
                                                if ( selMatch[ sel ] === undefined ) {
-                                                       selMatch[ sel ] = jqcur.is( sel );
+                                                       selMatch[ sel ] = (
+                                                               handleObj.quick ? quickIs( cur, handleObj.quick ) : jqcur.is( sel )
+                                                       );
                                                }
                                                if ( selMatch[ sel ] ) {
                                                        matches.push( handleObj );
@@ -3158,8 +3429,10 @@ jQuery.event = {
                        event.target = event.target.parentNode;
                }
 
-               // For mouse/key events, metaKey==false if it's undefined (#3368, #11328; IE6/7/8)
-               event.metaKey = !!event.metaKey;
+               // For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8)
+               if ( event.metaKey === undefined ) {
+                       event.metaKey = event.ctrlKey;
+               }
 
                return fixHook.filter? fixHook.filter( event, originalEvent ) : event;
        },
@@ -3232,17 +3505,8 @@ jQuery.removeEvent = document.removeEventListener ?
                }
        } :
        function( elem, type, handle ) {
-               var name = "on" + type;
-
                if ( elem.detachEvent ) {
-
-                       // #8545, #7054, preventing memory leaks for custom events in IE6-8 –
-                       // detachEvent needed property on element, by name of that event, to properly expose it to GC
-                       if ( typeof elem[ name ] === "undefined" ) {
-                               elem[ name ] = null;
-                       }
-
-                       elem.detachEvent( name, handle );
+                       elem.detachEvent( "on" + type, handle );
                }
        };
 
@@ -3339,11 +3603,11 @@ jQuery.each({
                bindType: fix,
 
                handle: function( event ) {
-                       var ret,
-                               target = this,
+                       var target = this,
                                related = event.relatedTarget,
                                handleObj = event.handleObj,
-                               selector = handleObj.selector;
+                               selector = handleObj.selector,
+                               ret;
 
                        // For mousenter/leave call the handler if related is outside the target.
                        // NB: No relatedTarget if the mouse left/entered the browser window
@@ -3372,16 +3636,16 @@ if ( !jQuery.support.submitBubbles ) {
                                // Node name check avoids a VML-related crash in IE (#9807)
                                var elem = e.target,
                                        form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
-                               if ( form && !jQuery._data( form, "_submit_attached" ) ) {
+                               if ( form && !form._submit_attached ) {
                                        jQuery.event.add( form, "submit._submit", function( event ) {
                                                event._submit_bubble = true;
                                        });
-                                       jQuery._data( form, "_submit_attached", true );
+                                       form._submit_attached = true;
                                }
                        });
                        // return undefined since we don't need an event listener
                },
-
+               
                postDispatch: function( event ) {
                        // If form was submitted by the user, bubble the event up the tree
                        if ( event._submit_bubble ) {
@@ -3424,9 +3688,8 @@ if ( !jQuery.support.changeBubbles ) {
                                        jQuery.event.add( this, "click._change", function( event ) {
                                                if ( this._just_changed && !event.isTrigger ) {
                                                        this._just_changed = false;
+                                                       jQuery.event.simulate( "change", this, event, true );
                                                }
-                                               // Allow triggered, simulated change events (#11500)
-                                               jQuery.event.simulate( "change", this, event, true );
                                        });
                                }
                                return false;
@@ -3435,13 +3698,13 @@ if ( !jQuery.support.changeBubbles ) {
                        jQuery.event.add( this, "beforeactivate._change", function( e ) {
                                var elem = e.target;
 
-                               if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "_change_attached" ) ) {
+                               if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) {
                                        jQuery.event.add( elem, "change._change", function( event ) {
                                                if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
                                                        jQuery.event.simulate( "change", this.parentNode, event, true );
                                                }
                                        });
-                                       jQuery._data( elem, "_change_attached", true );
+                                       elem._change_attached = true;
                                }
                        });
                },
@@ -3547,10 +3810,9 @@ jQuery.fn.extend({
                return this.on( types, selector, data, fn, 1 );
        },
        off: function( types, selector, fn ) {
-               var handleObj, type;
                if ( types && types.preventDefault && types.handleObj ) {
                        // ( event )  dispatched jQuery.Event
-                       handleObj = types.handleObj;
+                       var handleObj = types.handleObj;
                        jQuery( types.delegateTarget ).off(
                                handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
                                handleObj.selector,
@@ -3560,7 +3822,7 @@ jQuery.fn.extend({
                }
                if ( typeof types === "object" ) {
                        // ( types-object [, selector] )
-                       for ( type in types ) {
+                       for ( var type in types ) {
                                this.off( type, selector, types[ type ] );
                        }
                        return this;
@@ -3599,7 +3861,7 @@ jQuery.fn.extend({
        },
        undelegate: function( selector, types, fn ) {
                // ( namespace ) or ( selector, types [, fn] )
-               return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
+               return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn );
        },
 
        trigger: function( type, data ) {
@@ -3660,6 +3922,10 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl
                        this.trigger( name );
        };
 
+       if ( jQuery.attrFn ) {
+               jQuery.attrFn[ name ] = true;
+       }
+
        if ( rkeyEvent.test( name ) ) {
                jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;
        }
@@ -3668,1595 +3934,1609 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl
                jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;
        }
 });
-/*!\r
- * Sizzle CSS Selector Engine\r
- *  Copyright 2012 jQuery Foundation and other contributors\r
- *  Released under the MIT license\r
- *  http://sizzlejs.com/\r
- */\r
-(function( window, undefined ) {\r
-\r
-var cachedruns,\r
-       dirruns,\r
-       sortOrder,\r
-       siblingCheck,\r
-       assertGetIdNotName,\r
-\r
-       document = window.document,\r
-       docElem = document.documentElement,\r
-\r
-       strundefined = "undefined",\r
-       hasDuplicate = false,\r
-       baseHasDuplicate = true,\r
-       done = 0,\r
-       slice = [].slice,\r
-       push = [].push,\r
-\r
-       expando = ( "sizcache" + Math.random() ).replace( ".", "" ),\r
-\r
-       // Regex\r
-\r
-       // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\r
-       whitespace = "[\\x20\\t\\r\\n\\f]",\r
-       // http://www.w3.org/TR/css3-syntax/#characters\r
-       characterEncoding = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",\r
-\r
-       // Loosely modeled on CSS identifier characters\r
-       // An unquoted value should be a CSS identifier (http://www.w3.org/TR/css3-selectors/#attribute-selectors)\r
-       // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\r
-       identifier = characterEncoding.replace( "w", "w#" ),\r
-\r
-       // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors\r
-       operators = "([*^$|!~]?=)",\r
-       attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +\r
-               "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",\r
-       pseudos = ":(" + characterEncoding + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)",\r
-       pos = ":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)",\r
-       combinators = whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*",\r
-       groups = "(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|" + attributes + "|" + pseudos.replace( 2, 7 ) + "|[^\\\\(),])+",\r
-\r
-       // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\r
-       rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),\r
-\r
-       rcombinators = new RegExp( "^" + combinators ),\r
-\r
-       // All simple (non-comma) selectors, excluding insignifant trailing whitespace\r
-       rgroups = new RegExp( groups + "?(?=" + whitespace + "*,|$)", "g" ),\r
-\r
-       // A selector, or everything after leading whitespace\r
-       // Optionally followed in either case by a ")" for terminating sub-selectors\r
-       rselector = new RegExp( "^(?:(?!,)(?:(?:^|,)" + whitespace + "*" + groups + ")*?|" + whitespace + "*(.*?))(\\)|$)" ),\r
-\r
-       // All combinators and selector components (attribute test, tag, pseudo, etc.), the latter appearing together when consecutive\r
-       rtokens = new RegExp( groups.slice( 19, -6 ) + "\\x20\\t\\r\\n\\f>+~])+|" + combinators, "g" ),\r
-\r
-       // Easily-parseable/retrievable ID or TAG or CLASS selectors\r
-       rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,\r
-\r
-       rsibling = /[\x20\t\r\n\f]*[+~]/,\r
-       rendsWithNot = /:not\($/,\r
-\r
-       rheader = /h\d/i,\r
-       rinputs = /input|select|textarea|button/i,\r
-\r
-       rbackslash = /\\(?!\\)/g,\r
-\r
-       matchExpr = {\r
-               "ID": new RegExp( "^#(" + characterEncoding + ")" ),\r
-               "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),\r
-               "NAME": new RegExp( "^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]" ),\r
-               "TAG": new RegExp( "^(" + characterEncoding.replace( "[-", "[-\\*" ) + ")" ),\r
-               "ATTR": new RegExp( "^" + attributes ),\r
-               "PSEUDO": new RegExp( "^" + pseudos ),\r
-               "CHILD": new RegExp( "^:(only|nth|last|first)-child(?:\\(" + whitespace +\r
-                       "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +\r
-                       "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),\r
-               "POS": new RegExp( pos, "ig" ),\r
-               // For use in libraries implementing .is()\r
-               "needsContext": new RegExp( "^" + whitespace + "*[>+~]|" + pos, "i" )\r
-       },\r
-\r
-       classCache = {},\r
-       cachedClasses = [],\r
-       compilerCache = {},\r
-       cachedSelectors = [],\r
-\r
-       // Mark a function for use in filtering\r
-       markFunction = function( fn ) {\r
-               fn.sizzleFilter = true;\r
-               return fn;\r
-       },\r
-\r
-       // Returns a function to use in pseudos for input types\r
-       createInputFunction = function( type ) {\r
-               return function( elem ) {\r
-                       // Check the input's nodeName and type\r
-                       return elem.nodeName.toLowerCase() === "input" && elem.type === type;\r
-               };\r
-       },\r
-\r
-       // Returns a function to use in pseudos for buttons\r
-       createButtonFunction = function( type ) {\r
-               return function( elem ) {\r
-                       var name = elem.nodeName.toLowerCase();\r
-                       return (name === "input" || name === "button") && elem.type === type;\r
-               };\r
-       },\r
-\r
-       // Used for testing something on an element\r
-       assert = function( fn ) {\r
-               var pass = false,\r
-                       div = document.createElement("div");\r
-               try {\r
-                       pass = fn( div );\r
-               } catch (e) {}\r
-               // release memory in IE\r
-               div = null;\r
-               return pass;\r
-       },\r
-\r
-       // Check if attributes should be retrieved by attribute nodes\r
-       assertAttributes = assert(function( div ) {\r
-               div.innerHTML = "<select></select>";\r
-               var type = typeof div.lastChild.getAttribute("multiple");\r
-               // IE8 returns a string for some attributes even when not present\r
-               return type !== "boolean" && type !== "string";\r
-       }),\r
-\r
-       // Check if getElementById returns elements by name\r
-       // Check if getElementsByName privileges form controls or returns elements by ID\r
-       assertUsableName = assert(function( div ) {\r
-               // Inject content\r
-               div.id = expando + 0;\r
-               div.innerHTML = "<a name='" + expando + "'></a><div name='" + expando + "'></div>";\r
-               docElem.insertBefore( div, docElem.firstChild );\r
-\r
-               // Test\r
-               var pass = document.getElementsByName &&\r
-                       // buggy browsers will return fewer than the correct 2\r
-                       document.getElementsByName( expando ).length ===\r
-                       // buggy browsers will return more than the correct 0\r
-                       2 + document.getElementsByName( expando + 0 ).length;\r
-               assertGetIdNotName = !document.getElementById( expando );\r
-\r
-               // Cleanup\r
-               docElem.removeChild( div );\r
-\r
-               return pass;\r
-       }),\r
-\r
-       // Check if the browser returns only elements\r
-       // when doing getElementsByTagName("*")\r
-       assertTagNameNoComments = assert(function( div ) {\r
-               div.appendChild( document.createComment("") );\r
-               return div.getElementsByTagName("*").length === 0;\r
-       }),\r
-\r
-       // Check if getAttribute returns normalized href attributes\r
-       assertHrefNotNormalized = assert(function( div ) {\r
-               div.innerHTML = "<a href='#'></a>";\r
-               return div.firstChild && typeof div.firstChild.getAttribute !== strundefined &&\r
-                       div.firstChild.getAttribute("href") === "#";\r
-       }),\r
-\r
-       // Check if getElementsByClassName can be trusted\r
-       assertUsableClassName = assert(function( div ) {\r
-               // Opera can't find a second classname (in 9.6)\r
-               div.innerHTML = "<div class='hidden e'></div><div class='hidden'></div>";\r
-               if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {\r
-                       return false;\r
-               }\r
-\r
-               // Safari caches class attributes, doesn't catch changes (in 3.2)\r
-               div.lastChild.className = "e";\r
-               return div.getElementsByClassName("e").length !== 1;\r
-       });\r
-\r
-var Sizzle = function( selector, context, results, seed ) {\r
-       results = results || [];\r
-       context = context || document;\r
-       var match, elem, xml, m,\r
-               nodeType = context.nodeType;\r
-\r
-       if ( nodeType !== 1 && nodeType !== 9 ) {\r
-               return [];\r
-       }\r
-\r
-       if ( !selector || typeof selector !== "string" ) {\r
-               return results;\r
-       }\r
-\r
-       xml = isXML( context );\r
-\r
-       if ( !xml && !seed ) {\r
-               if ( (match = rquickExpr.exec( selector )) ) {\r
-                       // Speed-up: Sizzle("#ID")\r
-                       if ( (m = match[1]) ) {\r
-                               if ( nodeType === 9 ) {\r
-                                       elem = context.getElementById( m );\r
-                                       // Check parentNode to catch when Blackberry 4.6 returns\r
-                                       // nodes that are no longer in the document #6963\r
-                                       if ( elem && elem.parentNode ) {\r
-                                               // Handle the case where IE, Opera, and Webkit return items\r
-                                               // by name instead of ID\r
-                                               if ( elem.id === m ) {\r
-                                                       results.push( elem );\r
-                                                       return results;\r
-                                               }\r
-                                       } else {\r
-                                               return results;\r
-                                       }\r
-                               } else {\r
-                                       // Context is not a document\r
-                                       if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\r
-                                               contains( context, elem ) && elem.id === m ) {\r
-                                               results.push( elem );\r
-                                               return results;\r
-                                       }\r
-                               }\r
-\r
-                       // Speed-up: Sizzle("TAG")\r
-                       } else if ( match[2] ) {\r
-                               push.apply( results, slice.call(context.getElementsByTagName( selector ), 0) );\r
-                               return results;\r
-\r
-                       // Speed-up: Sizzle(".CLASS")\r
-                       } else if ( (m = match[3]) && assertUsableClassName && context.getElementsByClassName ) {\r
-                               push.apply( results, slice.call(context.getElementsByClassName( m ), 0) );\r
-                               return results;\r
-                       }\r
-               }\r
-       }\r
-\r
-       // All others\r
-       return select( selector, context, results, seed, xml );\r
-};\r
-\r
-var Expr = Sizzle.selectors = {\r
-\r
-       // Can be adjusted by the user\r
-       cacheLength: 50,\r
-\r
-       match: matchExpr,\r
-\r
-       order: [ "ID", "TAG" ],\r
-\r
-       attrHandle: {},\r
-\r
-       createPseudo: markFunction,\r
-\r
-       find: {\r
-               "ID": assertGetIdNotName ?\r
-                       function( id, context, xml ) {\r
-                               if ( typeof context.getElementById !== strundefined && !xml ) {\r
-                                       var m = context.getElementById( id );\r
-                                       // Check parentNode to catch when Blackberry 4.6 returns\r
-                                       // nodes that are no longer in the document #6963\r
-                                       return m && m.parentNode ? [m] : [];\r
-                               }\r
-                       } :\r
-                       function( id, context, xml ) {\r
-                               if ( typeof context.getElementById !== strundefined && !xml ) {\r
-                                       var m = context.getElementById( id );\r
-\r
-                                       return m ?\r
-                                               m.id === id || typeof m.getAttributeNode !== strundefined && m.getAttributeNode("id").value === id ?\r
-                                                       [m] :\r
-                                                       undefined :\r
-                                               [];\r
-                               }\r
-                       },\r
-\r
-               "TAG": assertTagNameNoComments ?\r
-                       function( tag, context ) {\r
-                               if ( typeof context.getElementsByTagName !== strundefined ) {\r
-                                       return context.getElementsByTagName( tag );\r
-                               }\r
-                       } :\r
-                       function( tag, context ) {\r
-                               var results = context.getElementsByTagName( tag );\r
-\r
-                               // Filter out possible comments\r
-                               if ( tag === "*" ) {\r
-                                       var elem,\r
-                                               tmp = [],\r
-                                               i = 0;\r
-\r
-                                       for ( ; (elem = results[i]); i++ ) {\r
-                                               if ( elem.nodeType === 1 ) {\r
-                                                       tmp.push( elem );\r
-                                               }\r
-                                       }\r
-\r
-                                       return tmp;\r
-                               }\r
-                               return results;\r
-                       }\r
-       },\r
-\r
-       relative: {\r
-               ">": { dir: "parentNode", first: true },\r
-               " ": { dir: "parentNode" },\r
-               "+": { dir: "previousSibling", first: true },\r
-               "~": { dir: "previousSibling" }\r
-       },\r
-\r
-       preFilter: {\r
-               "ATTR": function( match ) {\r
-                       match[1] = match[1].replace( rbackslash, "" );\r
-\r
-                       // Move the given value to match[3] whether quoted or unquoted\r
-                       match[3] = ( match[4] || match[5] || "" ).replace( rbackslash, "" );\r
-\r
-                       if ( match[2] === "~=" ) {\r
-                               match[3] = " " + match[3] + " ";\r
-                       }\r
-\r
-                       return match.slice( 0, 4 );\r
-               },\r
-\r
-               "CHILD": function( match ) {\r
-                       /* matches from matchExpr.CHILD\r
-                               1 type (only|nth|...)\r
-                               2 argument (even|odd|\d*|\d*n([+-]\d+)?|...)\r
-                               3 xn-component of xn+y argument ([+-]?\d*n|)\r
-                               4 sign of xn-component\r
-                               5 x of xn-component\r
-                               6 sign of y-component\r
-                               7 y of y-component\r
-                       */\r
-                       match[1] = match[1].toLowerCase();\r
-\r
-                       if ( match[1] === "nth" ) {\r
-                               // nth-child requires argument\r
-                               if ( !match[2] ) {\r
-                                       Sizzle.error( match[0] );\r
-                               }\r
-\r
-                               // numeric x and y parameters for Expr.filter.CHILD\r
-                               // remember that false/true cast respectively to 0/1\r
-                               match[3] = +( match[3] ? match[4] + (match[5] || 1) : 2 * ( match[2] === "even" || match[2] === "odd" ) );\r
-                               match[4] = +( ( match[6] + match[7] ) || match[2] === "odd" );\r
-\r
-                       // other types prohibit arguments\r
-                       } else if ( match[2] ) {\r
-                               Sizzle.error( match[0] );\r
-                       }\r
-\r
-                       return match;\r
-               },\r
-\r
-               "PSEUDO": function( match ) {\r
-                       var argument,\r
-                               unquoted = match[4];\r
-\r
-                       if ( matchExpr["CHILD"].test( match[0] ) ) {\r
-                               return null;\r
-                       }\r
-\r
-                       // Relinquish our claim on characters in `unquoted` from a closing parenthesis on\r
-                       if ( unquoted && (argument = rselector.exec( unquoted )) && argument.pop() ) {\r
-\r
-                               match[0] = match[0].slice( 0, argument[0].length - unquoted.length - 1 );\r
-                               unquoted = argument[0].slice( 0, -1 );\r
-                       }\r
-\r
-                       // Quoted or unquoted, we have the full argument\r
-                       // Return only captures needed by the pseudo filter method (type and argument)\r
-                       match.splice( 2, 3, unquoted || match[3] );\r
-                       return match;\r
-               }\r
-       },\r
-\r
-       filter: {\r
-               "ID": assertGetIdNotName ?\r
-                       function( id ) {\r
-                               id = id.replace( rbackslash, "" );\r
-                               return function( elem ) {\r
-                                       return elem.getAttribute("id") === id;\r
-                               };\r
-                       } :\r
-                       function( id ) {\r
-                               id = id.replace( rbackslash, "" );\r
-                               return function( elem ) {\r
-                                       var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");\r
-                                       return node && node.value === id;\r
-                               };\r
-                       },\r
-\r
-               "TAG": function( nodeName ) {\r
-                       if ( nodeName === "*" ) {\r
-                               return function() { return true; };\r
-                       }\r
-                       nodeName = nodeName.replace( rbackslash, "" ).toLowerCase();\r
-\r
-                       return function( elem ) {\r
-                               return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\r
-                       };\r
-               },\r
-\r
-               "CLASS": function( className ) {\r
-                       var pattern = classCache[ className ];\r
-                       if ( !pattern ) {\r
-                               pattern = classCache[ className ] = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" );\r
-                               cachedClasses.push( className );\r
-                               // Avoid too large of a cache\r
-                               if ( cachedClasses.length > Expr.cacheLength ) {\r
-                                       delete classCache[ cachedClasses.shift() ];\r
-                               }\r
-                       }\r
-                       return function( elem ) {\r
-                               return pattern.test( elem.className || (typeof elem.getAttribute !== strundefined && elem.getAttribute("class")) || "" );\r
-                       };\r
-               },\r
-\r
-               "ATTR": function( name, operator, check ) {\r
-                       if ( !operator ) {\r
-                               return function( elem ) {\r
-                                       return Sizzle.attr( elem, name ) != null;\r
-                               };\r
-                       }\r
-\r
-                       return function( elem ) {\r
-                               var result = Sizzle.attr( elem, name ),\r
-                                       value = result + "";\r
-\r
-                               if ( result == null ) {\r
-                                       return operator === "!=";\r
-                               }\r
-\r
-                               switch ( operator ) {\r
-                                       case "=":\r
-                                               return value === check;\r
-                                       case "!=":\r
-                                               return value !== check;\r
-                                       case "^=":\r
-                                               return check && value.indexOf( check ) === 0;\r
-                                       case "*=":\r
-                                               return check && value.indexOf( check ) > -1;\r
-                                       case "$=":\r
-                                               return check && value.substr( value.length - check.length ) === check;\r
-                                       case "~=":\r
-                                               return ( " " + value + " " ).indexOf( check ) > -1;\r
-                                       case "|=":\r
-                                               return value === check || value.substr( 0, check.length + 1 ) === check + "-";\r
-                               }\r
-                       };\r
-               },\r
-\r
-               "CHILD": function( type, argument, first, last ) {\r
-\r
-                       if ( type === "nth" ) {\r
-                               var doneName = done++;\r
-\r
-                               return function( elem ) {\r
-                                       var parent, diff,\r
-                                               count = 0,\r
-                                               node = elem;\r
-\r
-                                       if ( first === 1 && last === 0 ) {\r
-                                               return true;\r
-                                       }\r
-\r
-                                       parent = elem.parentNode;\r
-\r
-                                       if ( parent && (parent[ expando ] !== doneName || !elem.sizset) ) {\r
-                                               for ( node = parent.firstChild; node; node = node.nextSibling ) {\r
-                                                       if ( node.nodeType === 1 ) {\r
-                                                               node.sizset = ++count;\r
-                                                               if ( node === elem ) {\r
-                                                                       break;\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-\r
-                                               parent[ expando ] = doneName;\r
-                                       }\r
-\r
-                                       diff = elem.sizset - last;\r
-\r
-                                       if ( first === 0 ) {\r
-                                               return diff === 0;\r
-\r
-                                       } else {\r
-                                               return ( diff % first === 0 && diff / first >= 0 );\r
-                                       }\r
-                               };\r
-                       }\r
-\r
-                       return function( elem ) {\r
-                               var node = elem;\r
-\r
-                               switch ( type ) {\r
-                                       case "only":\r
-                                       case "first":\r
-                                               while ( (node = node.previousSibling) ) {\r
-                                                       if ( node.nodeType === 1 ) {\r
-                                                               return false;\r
-                                                       }\r
-                                               }\r
-\r
-                                               if ( type === "first" ) {\r
-                                                       return true;\r
-                                               }\r
-\r
-                                               node = elem;\r
-\r
-                                               /* falls through */\r
-                                       case "last":\r
-                                               while ( (node = node.nextSibling) ) {\r
-                                                       if ( node.nodeType === 1 ) {\r
-                                                               return false;\r
-                                                       }\r
-                                               }\r
-\r
-                                               return true;\r
-                               }\r
-                       };\r
-               },\r
-\r
-               "PSEUDO": function( pseudo, argument, context, xml ) {\r
-                       // pseudo-class names are case-insensitive\r
-                       // http://www.w3.org/TR/selectors/#pseudo-classes\r
-                       // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\r
-                       var fn = Expr.pseudos[ pseudo ] || Expr.pseudos[ pseudo.toLowerCase() ];\r
-\r
-                       if ( !fn ) {\r
-                               Sizzle.error( "unsupported pseudo: " + pseudo );\r
-                       }\r
-\r
-                       // The user may set fn.sizzleFilter to indicate\r
-                       // that arguments are needed to create the filter function\r
-                       // just as Sizzle does\r
-                       if ( !fn.sizzleFilter ) {\r
-                               return fn;\r
-                       }\r
-\r
-                       return fn( argument, context, xml );\r
-               }\r
-       },\r
-\r
-       pseudos: {\r
-               "not": markFunction(function( selector, context, xml ) {\r
-                       // Trim the selector passed to compile\r
-                       // to avoid treating leading and trailing\r
-                       // spaces as combinators\r
-                       var matcher = compile( selector.replace( rtrim, "$1" ), context, xml );\r
-                       return function( elem ) {\r
-                               return !matcher( elem );\r
-                       };\r
-               }),\r
-\r
-               "enabled": function( elem ) {\r
-                       return elem.disabled === false;\r
-               },\r
-\r
-               "disabled": function( elem ) {\r
-                       return elem.disabled === true;\r
-               },\r
-\r
-               "checked": function( elem ) {\r
-                       // In CSS3, :checked should return both checked and selected elements\r
-                       // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\r
-                       var nodeName = elem.nodeName.toLowerCase();\r
-                       return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);\r
-               },\r
-\r
-               "selected": function( elem ) {\r
-                       // Accessing this property makes selected-by-default\r
-                       // options in Safari work properly\r
-                       if ( elem.parentNode ) {\r
-                               elem.parentNode.selectedIndex;\r
-                       }\r
-\r
-                       return elem.selected === true;\r
-               },\r
-\r
-               "parent": function( elem ) {\r
-                       return !Expr.pseudos["empty"]( elem );\r
-               },\r
-\r
-               "empty": function( elem ) {\r
-                       // http://www.w3.org/TR/selectors/#empty-pseudo\r
-                       // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),\r
-                       //   not comment, processing instructions, or others\r
-                       // Thanks to Diego Perini for the nodeName shortcut\r
-                       //   Greater than "@" means alpha characters (specifically not starting with "#" or "?")\r
-                       var nodeType;\r
-                       elem = elem.firstChild;\r
-                       while ( elem ) {\r
-                               if ( elem.nodeName > "@" || (nodeType = elem.nodeType) === 3 || nodeType === 4 ) {\r
-                                       return false;\r
-                               }\r
-                               elem = elem.nextSibling;\r
-                       }\r
-                       return true;\r
-               },\r
-\r
-               "contains": markFunction(function( text ) {\r
-                       return function( elem ) {\r
-                               return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\r
-                       };\r
-               }),\r
-\r
-               "has": markFunction(function( selector ) {\r
-                       return function( elem ) {\r
-                               return Sizzle( selector, elem ).length > 0;\r
-                       };\r
-               }),\r
-\r
-               "header": function( elem ) {\r
-                       return rheader.test( elem.nodeName );\r
-               },\r
-\r
-               "text": function( elem ) {\r
-                       var type, attr;\r
-                       // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)\r
-                       // use getAttribute instead to test this case\r
-                       return elem.nodeName.toLowerCase() === "input" &&\r
-                               (type = elem.type) === "text" &&\r
-                               ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === type );\r
-               },\r
-\r
-               // Input types\r
-               "radio": createInputFunction("radio"),\r
-               "checkbox": createInputFunction("checkbox"),\r
-               "file": createInputFunction("file"),\r
-               "password": createInputFunction("password"),\r
-               "image": createInputFunction("image"),\r
-\r
-               "submit": createButtonFunction("submit"),\r
-               "reset": createButtonFunction("reset"),\r
-\r
-               "button": function( elem ) {\r
-                       var name = elem.nodeName.toLowerCase();\r
-                       return name === "input" && elem.type === "button" || name === "button";\r
-               },\r
-\r
-               "input": function( elem ) {\r
-                       return rinputs.test( elem.nodeName );\r
-               },\r
-\r
-               "focus": function( elem ) {\r
-                       var doc = elem.ownerDocument;\r
-                       return elem === doc.activeElement && (!doc.hasFocus || doc.hasFocus()) && !!(elem.type || elem.href);\r
-               },\r
-\r
-               "active": function( elem ) {\r
-                       return elem === elem.ownerDocument.activeElement;\r
-               }\r
-       },\r
-\r
-       setFilters: {\r
-               "first": function( elements, argument, not ) {\r
-                       return not ? elements.slice( 1 ) : [ elements[0] ];\r
-               },\r
-\r
-               "last": function( elements, argument, not ) {\r
-                       var elem = elements.pop();\r
-                       return not ? elements : [ elem ];\r
-               },\r
-\r
-               "even": function( elements, argument, not ) {\r
-                       var results = [],\r
-                               i = not ? 1 : 0,\r
-                               len = elements.length;\r
-                       for ( ; i < len; i = i + 2 ) {\r
-                               results.push( elements[i] );\r
-                       }\r
-                       return results;\r
-               },\r
-\r
-               "odd": function( elements, argument, not ) {\r
-                       var results = [],\r
-                               i = not ? 0 : 1,\r
-                               len = elements.length;\r
-                       for ( ; i < len; i = i + 2 ) {\r
-                               results.push( elements[i] );\r
-                       }\r
-                       return results;\r
-               },\r
-\r
-               "lt": function( elements, argument, not ) {\r
-                       return not ? elements.slice( +argument ) : elements.slice( 0, +argument );\r
-               },\r
-\r
-               "gt": function( elements, argument, not ) {\r
-                       return not ? elements.slice( 0, +argument + 1 ) : elements.slice( +argument + 1 );\r
-               },\r
-\r
-               "eq": function( elements, argument, not ) {\r
-                       var elem = elements.splice( +argument, 1 );\r
-                       return not ? elements : elem;\r
-               }\r
-       }\r
-};\r
-\r
-// Deprecated\r
-Expr.setFilters["nth"] = Expr.setFilters["eq"];\r
-\r
-// Back-compat\r
-Expr.filters = Expr.pseudos;\r
-\r
-// IE6/7 return a modified href\r
-if ( !assertHrefNotNormalized ) {\r
-       Expr.attrHandle = {\r
-               "href": function( elem ) {\r
-                       return elem.getAttribute( "href", 2 );\r
-               },\r
-               "type": function( elem ) {\r
-                       return elem.getAttribute("type");\r
-               }\r
-       };\r
-}\r
-\r
-// Add getElementsByName if usable\r
-if ( assertUsableName ) {\r
-       Expr.order.push("NAME");\r
-       Expr.find["NAME"] = function( name, context ) {\r
-               if ( typeof context.getElementsByName !== strundefined ) {\r
-                       return context.getElementsByName( name );\r
-               }\r
-       };\r
-}\r
-\r
-// Add getElementsByClassName if usable\r
-if ( assertUsableClassName ) {\r
-       Expr.order.splice( 1, 0, "CLASS" );\r
-       Expr.find["CLASS"] = function( className, context, xml ) {\r
-               if ( typeof context.getElementsByClassName !== strundefined && !xml ) {\r
-                       return context.getElementsByClassName( className );\r
-               }\r
-       };\r
-}\r
-\r
-// If slice is not available, provide a backup\r
-try {\r
-       slice.call( docElem.childNodes, 0 )[0].nodeType;\r
-} catch ( e ) {\r
-       slice = function( i ) {\r
-               var elem, results = [];\r
-               for ( ; (elem = this[i]); i++ ) {\r
-                       results.push( elem );\r
-               }\r
-               return results;\r
-       };\r
-}\r
-\r
-var isXML = Sizzle.isXML = function( elem ) {\r
-       // documentElement is verified for cases where it doesn't yet exist\r
-       // (such as loading iframes in IE - #4833)\r
-       var documentElement = elem && (elem.ownerDocument || elem).documentElement;\r
-       return documentElement ? documentElement.nodeName !== "HTML" : false;\r
-};\r
-\r
-// Element contains another\r
-var contains = Sizzle.contains = docElem.compareDocumentPosition ?\r
-       function( a, b ) {\r
-               return !!( a.compareDocumentPosition( b ) & 16 );\r
-       } :\r
-       docElem.contains ?\r
-       function( a, b ) {\r
-               var adown = a.nodeType === 9 ? a.documentElement : a,\r
-                       bup = b.parentNode;\r
-               return a === bup || !!( bup && bup.nodeType === 1 && adown.contains && adown.contains(bup) );\r
-       } :\r
-       function( a, b ) {\r
-               while ( (b = b.parentNode) ) {\r
-                       if ( b === a ) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       };\r
-\r
-/**\r
- * Utility function for retrieving the text value of an array of DOM nodes\r
- * @param {Array|Element} elem\r
- */\r
-var getText = Sizzle.getText = function( elem ) {\r
-       var node,\r
-               ret = "",\r
-               i = 0,\r
-               nodeType = elem.nodeType;\r
-\r
-       if ( nodeType ) {\r
-               if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\r
-                       // Use textContent for elements\r
-                       // innerText usage removed for consistency of new lines (see #11153)\r
-                       if ( typeof elem.textContent === "string" ) {\r
-                               return elem.textContent;\r
-                       } else {\r
-                               // Traverse its children\r
-                               for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\r
-                                       ret += getText( elem );\r
-                               }\r
-                       }\r
-               } else if ( nodeType === 3 || nodeType === 4 ) {\r
-                       return elem.nodeValue;\r
-               }\r
-               // Do not include comment or processing instruction nodes\r
-       } else {\r
-\r
-               // If no nodeType, this is expected to be an array\r
-               for ( ; (node = elem[i]); i++ ) {\r
-                       // Do not traverse comment nodes\r
-                       ret += getText( node );\r
-               }\r
-       }\r
-       return ret;\r
-};\r
-\r
-Sizzle.attr = function( elem, name ) {\r
-       var attr,\r
-               xml = isXML( elem );\r
-\r
-       if ( !xml ) {\r
-               name = name.toLowerCase();\r
-       }\r
-       if ( Expr.attrHandle[ name ] ) {\r
-               return Expr.attrHandle[ name ]( elem );\r
-       }\r
-       if ( assertAttributes || xml ) {\r
-               return elem.getAttribute( name );\r
-       }\r
-       attr = elem.getAttributeNode( name );\r
-       return attr ?\r
-               typeof elem[ name ] === "boolean" ?\r
-                       elem[ name ] ? name : null :\r
-                       attr.specified ? attr.value : null :\r
-               null;\r
-};\r
-\r
-Sizzle.error = function( msg ) {\r
-       throw new Error( "Syntax error, unrecognized expression: " + msg );\r
-};\r
-\r
-// Check if the JavaScript engine is using some sort of\r
-// optimization where it does not always call our comparision\r
-// function. If that is the case, discard the hasDuplicate value.\r
-//   Thus far that includes Google Chrome.\r
-[0, 0].sort(function() {\r
-       return (baseHasDuplicate = 0);\r
-});\r
-\r
-\r
-if ( docElem.compareDocumentPosition ) {\r
-       sortOrder = function( a, b ) {\r
-               if ( a === b ) {\r
-                       hasDuplicate = true;\r
-                       return 0;\r
-               }\r
-\r
-               return ( !a.compareDocumentPosition || !b.compareDocumentPosition ?\r
-                       a.compareDocumentPosition :\r
-                       a.compareDocumentPosition(b) & 4\r
-               ) ? -1 : 1;\r
-       };\r
-\r
-} else {\r
-       sortOrder = function( a, b ) {\r
-               // The nodes are identical, we can exit early\r
-               if ( a === b ) {\r
-                       hasDuplicate = true;\r
-                       return 0;\r
-\r
-               // Fallback to using sourceIndex (in IE) if it's available on both nodes\r
-               } else if ( a.sourceIndex && b.sourceIndex ) {\r
-                       return a.sourceIndex - b.sourceIndex;\r
-               }\r
-\r
-               var al, bl,\r
-                       ap = [],\r
-                       bp = [],\r
-                       aup = a.parentNode,\r
-                       bup = b.parentNode,\r
-                       cur = aup;\r
-\r
-               // If the nodes are siblings (or identical) we can do a quick check\r
-               if ( aup === bup ) {\r
-                       return siblingCheck( a, b );\r
-\r
-               // If no parents were found then the nodes are disconnected\r
-               } else if ( !aup ) {\r
-                       return -1;\r
-\r
-               } else if ( !bup ) {\r
-                       return 1;\r
-               }\r
-\r
-               // Otherwise they're somewhere else in the tree so we need\r
-               // to build up a full list of the parentNodes for comparison\r
-               while ( cur ) {\r
-                       ap.unshift( cur );\r
-                       cur = cur.parentNode;\r
-               }\r
-\r
-               cur = bup;\r
-\r
-               while ( cur ) {\r
-                       bp.unshift( cur );\r
-                       cur = cur.parentNode;\r
-               }\r
-\r
-               al = ap.length;\r
-               bl = bp.length;\r
-\r
-               // Start walking down the tree looking for a discrepancy\r
-               for ( var i = 0; i < al && i < bl; i++ ) {\r
-                       if ( ap[i] !== bp[i] ) {\r
-                               return siblingCheck( ap[i], bp[i] );\r
-                       }\r
-               }\r
-\r
-               // We ended someplace up the tree so do a sibling check\r
-               return i === al ?\r
-                       siblingCheck( a, bp[i], -1 ) :\r
-                       siblingCheck( ap[i], b, 1 );\r
-       };\r
-\r
-       siblingCheck = function( a, b, ret ) {\r
-               if ( a === b ) {\r
-                       return ret;\r
-               }\r
-\r
-               var cur = a.nextSibling;\r
-\r
-               while ( cur ) {\r
-                       if ( cur === b ) {\r
-                               return -1;\r
-                       }\r
-\r
-                       cur = cur.nextSibling;\r
-               }\r
-\r
-               return 1;\r
-       };\r
-}\r
-\r
-// Document sorting and removing duplicates\r
-Sizzle.uniqueSort = function( results ) {\r
-       var elem,\r
-               i = 1;\r
-\r
-       if ( sortOrder ) {\r
-               hasDuplicate = baseHasDuplicate;\r
-               results.sort( sortOrder );\r
-\r
-               if ( hasDuplicate ) {\r
-                       for ( ; (elem = results[i]); i++ ) {\r
-                               if ( elem === results[ i - 1 ] ) {\r
-                                       results.splice( i--, 1 );\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-\r
-       return results;\r
-};\r
-\r
-function multipleContexts( selector, contexts, results, seed ) {\r
-       var i = 0,\r
-               len = contexts.length;\r
-       for ( ; i < len; i++ ) {\r
-               Sizzle( selector, contexts[i], results, seed );\r
-       }\r
-}\r
-\r
-function handlePOSGroup( selector, posfilter, argument, contexts, seed, not ) {\r
-       var results,\r
-               fn = Expr.setFilters[ posfilter.toLowerCase() ];\r
-\r
-       if ( !fn ) {\r
-               Sizzle.error( posfilter );\r
-       }\r
-\r
-       if ( selector || !(results = seed) ) {\r
-               multipleContexts( selector || "*", contexts, (results = []), seed );\r
-       }\r
-\r
-       return results.length > 0 ? fn( results, argument, not ) : [];\r
-}\r
-\r
-function handlePOS( selector, context, results, seed, groups ) {\r
-       var match, not, anchor, ret, elements, currentContexts, part, lastIndex,\r
-               i = 0,\r
-               len = groups.length,\r
-               rpos = matchExpr["POS"],\r
-               // This is generated here in case matchExpr["POS"] is extended\r
-               rposgroups = new RegExp( "^" + rpos.source + "(?!" + whitespace + ")", "i" ),\r
-               // This is for making sure non-participating\r
-               // matching groups are represented cross-browser (IE6-8)\r
-               setUndefined = function() {\r
-                       var i = 1,\r
-                               len = arguments.length - 2;\r
-                       for ( ; i < len; i++ ) {\r
-                               if ( arguments[i] === undefined ) {\r
-                                       match[i] = undefined;\r
-                               }\r
-                       }\r
-               };\r
-\r
-       for ( ; i < len; i++ ) {\r
-               // Reset regex index to 0\r
-               rpos.exec("");\r
-               selector = groups[i];\r
-               ret = [];\r
-               anchor = 0;\r
-               elements = seed;\r
-               while ( (match = rpos.exec( selector )) ) {\r
-                       lastIndex = rpos.lastIndex = match.index + match[0].length;\r
-                       if ( lastIndex > anchor ) {\r
-                               part = selector.slice( anchor, match.index );\r
-                               anchor = lastIndex;\r
-                               currentContexts = [ context ];\r
-\r
-                               if ( rcombinators.test(part) ) {\r
-                                       if ( elements ) {\r
-                                               currentContexts = elements;\r
-                                       }\r
-                                       elements = seed;\r
-                               }\r
-\r
-                               if ( (not = rendsWithNot.test( part )) ) {\r
-                                       part = part.slice( 0, -5 ).replace( rcombinators, "$&*" );\r
-                               }\r
-\r
-                               if ( match.length > 1 ) {\r
-                                       match[0].replace( rposgroups, setUndefined );\r
-                               }\r
-                               elements = handlePOSGroup( part, match[1], match[2], currentContexts, elements, not );\r
-                       }\r
-               }\r
-\r
-               if ( elements ) {\r
-                       ret = ret.concat( elements );\r
-\r
-                       if ( (part = selector.slice( anchor )) && part !== ")" ) {\r
-                               if ( rcombinators.test(part) ) {\r
-                                       multipleContexts( part, ret, results, seed );\r
-                               } else {\r
-                                       Sizzle( part, context, results, seed ? seed.concat(elements) : elements );\r
-                               }\r
-                       } else {\r
-                               push.apply( results, ret );\r
-                       }\r
-               } else {\r
-                       Sizzle( selector, context, results, seed );\r
-               }\r
-       }\r
-\r
-       // Do not sort if this is a single filter\r
-       return len === 1 ? results : Sizzle.uniqueSort( results );\r
-}\r
-\r
-function tokenize( selector, context, xml ) {\r
-       var tokens, soFar, type,\r
-               groups = [],\r
-               i = 0,\r
-\r
-               // Catch obvious selector issues: terminal ")"; nonempty fallback match\r
-               // rselector never fails to match *something*\r
-               match = rselector.exec( selector ),\r
-               matched = !match.pop() && !match.pop(),\r
-               selectorGroups = matched && selector.match( rgroups ) || [""],\r
-\r
-               preFilters = Expr.preFilter,\r
-               filters = Expr.filter,\r
-               checkContext = !xml && context !== document;\r
-\r
-       for ( ; (soFar = selectorGroups[i]) != null && matched; i++ ) {\r
-               groups.push( tokens = [] );\r
-\r
-               // Need to make sure we're within a narrower context if necessary\r
-               // Adding a descendant combinator will generate what is needed\r
-               if ( checkContext ) {\r
-                       soFar = " " + soFar;\r
-               }\r
-\r
-               while ( soFar ) {\r
-                       matched = false;\r
-\r
-                       // Combinators\r
-                       if ( (match = rcombinators.exec( soFar )) ) {\r
-                               soFar = soFar.slice( match[0].length );\r
-\r
-                               // Cast descendant combinators to space\r
-                               matched = tokens.push({ part: match.pop().replace( rtrim, " " ), captures: match });\r
-                       }\r
-\r
-                       // Filters\r
-                       for ( type in filters ) {\r
-                               if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\r
-                                       (match = preFilters[ type ]( match, context, xml )) ) ) {\r
-\r
-                                       soFar = soFar.slice( match.shift().length );\r
-                                       matched = tokens.push({ part: type, captures: match });\r
-                               }\r
-                       }\r
-\r
-                       if ( !matched ) {\r
-                               break;\r
-                       }\r
-               }\r
-       }\r
-\r
-       if ( !matched ) {\r
-               Sizzle.error( selector );\r
-       }\r
-\r
-       return groups;\r
-}\r
-\r
-function addCombinator( matcher, combinator, context ) {\r
-       var dir = combinator.dir,\r
-               doneName = done++;\r
-\r
-       if ( !matcher ) {\r
-               // If there is no matcher to check, check against the context\r
-               matcher = function( elem ) {\r
-                       return elem === context;\r
-               };\r
-       }\r
-       return combinator.first ?\r
-               function( elem, context ) {\r
-                       while ( (elem = elem[ dir ]) ) {\r
-                               if ( elem.nodeType === 1 ) {\r
-                                       return matcher( elem, context ) && elem;\r
-                               }\r
-                       }\r
-               } :\r
-               function( elem, context ) {\r
-                       var cache,\r
-                               dirkey = doneName + "." + dirruns,\r
-                               cachedkey = dirkey + "." + cachedruns;\r
-                       while ( (elem = elem[ dir ]) ) {\r
-                               if ( elem.nodeType === 1 ) {\r
-                                       if ( (cache = elem[ expando ]) === cachedkey ) {\r
-                                               return elem.sizset;\r
-                                       } else if ( typeof cache === "string" && cache.indexOf(dirkey) === 0 ) {\r
-                                               if ( elem.sizset ) {\r
-                                                       return elem;\r
-                                               }\r
-                                       } else {\r
-                                               elem[ expando ] = cachedkey;\r
-                                               if ( matcher( elem, context ) ) {\r
-                                                       elem.sizset = true;\r
-                                                       return elem;\r
-                                               }\r
-                                               elem.sizset = false;\r
-                                       }\r
-                               }\r
-                       }\r
-               };\r
-}\r
-\r
-function addMatcher( higher, deeper ) {\r
-       return higher ?\r
-               function( elem, context ) {\r
-                       var result = deeper( elem, context );\r
-                       return result && higher( result === true ? elem : result, context );\r
-               } :\r
-               deeper;\r
-}\r
-\r
-// ["TAG", ">", "ID", " ", "CLASS"]\r
-function matcherFromTokens( tokens, context, xml ) {\r
-       var token, matcher,\r
-               i = 0;\r
-\r
-       for ( ; (token = tokens[i]); i++ ) {\r
-               if ( Expr.relative[ token.part ] ) {\r
-                       matcher = addCombinator( matcher, Expr.relative[ token.part ], context );\r
-               } else {\r
-                       token.captures.push( context, xml );\r
-                       matcher = addMatcher( matcher, Expr.filter[ token.part ].apply( null, token.captures ) );\r
-               }\r
-       }\r
-\r
-       return matcher;\r
-}\r
-\r
-function matcherFromGroupMatchers( matchers ) {\r
-       return function( elem, context ) {\r
-               var matcher,\r
-                       j = 0;\r
-               for ( ; (matcher = matchers[j]); j++ ) {\r
-                       if ( matcher(elem, context) ) {\r
-                               return true;\r
-                       }\r
-               }\r
-               return false;\r
-       };\r
-}\r
-\r
-var compile = Sizzle.compile = function( selector, context, xml ) {\r
-       var tokens, group, i,\r
-               cached = compilerCache[ selector ];\r
-\r
-       // Return a cached group function if already generated (context dependent)\r
-       if ( cached && cached.context === context ) {\r
-               return cached;\r
-       }\r
-\r
-       // Generate a function of recursive functions that can be used to check each element\r
-       group = tokenize( selector, context, xml );\r
-       for ( i = 0; (tokens = group[i]); i++ ) {\r
-               group[i] = matcherFromTokens( tokens, context, xml );\r
-       }\r
-\r
-       // Cache the compiled function\r
-       cached = compilerCache[ selector ] = matcherFromGroupMatchers( group );\r
-       cached.context = context;\r
-       cached.runs = cached.dirruns = 0;\r
-       cachedSelectors.push( selector );\r
-       // Ensure only the most recent are cached\r
-       if ( cachedSelectors.length > Expr.cacheLength ) {\r
-               delete compilerCache[ cachedSelectors.shift() ];\r
-       }\r
-       return cached;\r
-};\r
-\r
-Sizzle.matches = function( expr, elements ) {\r
-       return Sizzle( expr, null, null, elements );\r
-};\r
-\r
-Sizzle.matchesSelector = function( elem, expr ) {\r
-       return Sizzle( expr, null, null, [ elem ] ).length > 0;\r
-};\r
-\r
-var select = function( selector, context, results, seed, xml ) {\r
-       // Remove excessive whitespace\r
-       selector = selector.replace( rtrim, "$1" );\r
-       var elements, matcher, i, len, elem, token,\r
-               type, findContext, notTokens,\r
-               match = selector.match( rgroups ),\r
-               tokens = selector.match( rtokens ),\r
-               contextNodeType = context.nodeType;\r
-\r
-       // POS handling\r
-       if ( matchExpr["POS"].test(selector) ) {\r
-               return handlePOS( selector, context, results, seed, match );\r
-       }\r
-\r
-       if ( seed ) {\r
-               elements = slice.call( seed, 0 );\r
-\r
-       // To maintain document order, only narrow the\r
-       // set if there is one group\r
-       } else if ( match && match.length === 1 ) {\r
-\r
-               // Take a shortcut and set the context if the root selector is an ID\r
-               if ( tokens.length > 1 && contextNodeType === 9 && !xml &&\r
-                               (match = matchExpr["ID"].exec( tokens[0] )) ) {\r
-\r
-                       context = Expr.find["ID"]( match[1], context, xml )[0];\r
-                       if ( !context ) {\r
-                               return results;\r
-                       }\r
-\r
-                       selector = selector.slice( tokens.shift().length );\r
-               }\r
-\r
-               findContext = ( (match = rsibling.exec( tokens[0] )) && !match.index && context.parentNode ) || context;\r
-\r
-               // Get the last token, excluding :not\r
-               notTokens = tokens.pop();\r
-               token = notTokens.split(":not")[0];\r
-\r
-               for ( i = 0, len = Expr.order.length; i < len; i++ ) {\r
-                       type = Expr.order[i];\r
-\r
-                       if ( (match = matchExpr[ type ].exec( token )) ) {\r
-                               elements = Expr.find[ type ]( (match[1] || "").replace( rbackslash, "" ), findContext, xml );\r
-\r
-                               if ( elements == null ) {\r
-                                       continue;\r
-                               }\r
-\r
-                               if ( token === notTokens ) {\r
-                                       selector = selector.slice( 0, selector.length - notTokens.length ) +\r
-                                               token.replace( matchExpr[ type ], "" );\r
-\r
-                                       if ( !selector ) {\r
-                                               push.apply( results, slice.call(elements, 0) );\r
-                                       }\r
-                               }\r
-                               break;\r
-                       }\r
-               }\r
-       }\r
-\r
-       // Only loop over the given elements once\r
-       // If selector is empty, we're already done\r
-       if ( selector ) {\r
-               matcher = compile( selector, context, xml );\r
-               dirruns = matcher.dirruns++;\r
-\r
-               if ( elements == null ) {\r
-                       elements = Expr.find["TAG"]( "*", (rsibling.test( selector ) && context.parentNode) || context );\r
-               }\r
-               for ( i = 0; (elem = elements[i]); i++ ) {\r
-                       cachedruns = matcher.runs++;\r
-                       if ( matcher(elem, context) ) {\r
-                               results.push( elem );\r
-                       }\r
-               }\r
-       }\r
-\r
-       return results;\r
-};\r
-\r
-if ( document.querySelectorAll ) {\r
-       (function() {\r
-               var disconnectedMatch,\r
-                       oldSelect = select,\r
-                       rescape = /'|\\/g,\r
-                       rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,\r
-                       rbuggyQSA = [],\r
-                       // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\r
-                       // A support test would require too much code (would include document ready)\r
-                       // just skip matchesSelector for :active\r
-                       rbuggyMatches = [":active"],\r
-                       matches = docElem.matchesSelector ||\r
-                               docElem.mozMatchesSelector ||\r
-                               docElem.webkitMatchesSelector ||\r
-                               docElem.oMatchesSelector ||\r
-                               docElem.msMatchesSelector;\r
-\r
-               // Build QSA regex\r
-               // Regex strategy adopted from Diego Perini\r
-               assert(function( div ) {\r
-                       div.innerHTML = "<select><option selected></option></select>";\r
-\r
-                       // IE8 - Some boolean attributes are not treated correctly\r
-                       if ( !div.querySelectorAll("[selected]").length ) {\r
-                               rbuggyQSA.push( "\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)" );\r
-                       }\r
-\r
-                       // Webkit/Opera - :checked should return selected option elements\r
-                       // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\r
-                       // IE8 throws error here (do not put tests after this one)\r
-                       if ( !div.querySelectorAll(":checked").length ) {\r
-                               rbuggyQSA.push(":checked");\r
-                       }\r
-               });\r
-\r
-               assert(function( div ) {\r
-\r
-                       // Opera 10-12/IE9 - ^= $= *= and empty values\r
-                       // Should not select anything\r
-                       div.innerHTML = "<p test=''></p>";\r
-                       if ( div.querySelectorAll("[test^='']").length ) {\r
-                               rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\"\"|'')" );\r
-                       }\r
-\r
-                       // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\r
-                       // IE8 throws error here (do not put tests after this one)\r
-                       div.innerHTML = "<input type='hidden'>";\r
-                       if ( !div.querySelectorAll(":enabled").length ) {\r
-                               rbuggyQSA.push(":enabled", ":disabled");\r
-                       }\r
-               });\r
-\r
-               rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );\r
-\r
-               select = function( selector, context, results, seed, xml ) {\r
-                       // Only use querySelectorAll when not filtering,\r
-                       // when this is not xml,\r
-                       // and when no QSA bugs apply\r
-                       if ( !seed && !xml && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\r
-                               if ( context.nodeType === 9 ) {\r
-                                       try {\r
-                                               push.apply( results, slice.call(context.querySelectorAll( selector ), 0) );\r
-                                               return results;\r
-                                       } catch(qsaError) {}\r
-                               // qSA works strangely on Element-rooted queries\r
-                               // We can work around this by specifying an extra ID on the root\r
-                               // and working up from there (Thanks to Andrew Dupont for the technique)\r
-                               // IE 8 doesn't work on object elements\r
-                               } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {\r
-                                       var old = context.getAttribute("id"),\r
-                                               nid = old || expando,\r
-                                               newContext = rsibling.test( selector ) && context.parentNode || context;\r
-\r
-                                       if ( old ) {\r
-                                               nid = nid.replace( rescape, "\\$&" );\r
-                                       } else {\r
-                                               context.setAttribute( "id", nid );\r
-                                       }\r
-\r
-                                       try {\r
-                                               push.apply( results, slice.call( newContext.querySelectorAll(\r
-                                                       selector.replace( rgroups, "[id='" + nid + "'] $&" )\r
-                                               ), 0 ) );\r
-                                               return results;\r
-                                       } catch(qsaError) {\r
-                                       } finally {\r
-                                               if ( !old ) {\r
-                                                       context.removeAttribute("id");\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-\r
-                       return oldSelect( selector, context, results, seed, xml );\r
-               };\r
-\r
-               if ( matches ) {\r
-                       assert(function( div ) {\r
-                               // Check to see if it's possible to do matchesSelector\r
-                               // on a disconnected node (IE 9)\r
-                               disconnectedMatch = matches.call( div, "div" );\r
-\r
-                               // This should fail with an exception\r
-                               // Gecko does not error, returns false instead\r
-                               try {\r
-                                       matches.call( div, "[test!='']:sizzle" );\r
-                                       rbuggyMatches.push( Expr.match.PSEUDO );\r
-                               } catch ( e ) {}\r
-                       });\r
-\r
-                       // rbuggyMatches always contains :active, so no need for a length check\r
-                       rbuggyMatches = /* rbuggyMatches.length && */ new RegExp( rbuggyMatches.join("|") );\r
-\r
-                       Sizzle.matchesSelector = function( elem, expr ) {\r
-                               // Make sure that attribute selectors are quoted\r
-                               expr = expr.replace( rattributeQuotes, "='$1']" );\r
-\r
-                               // rbuggyMatches always contains :active, so no need for an existence check\r
-                               if ( !isXML( elem ) && !rbuggyMatches.test( expr ) && (!rbuggyQSA || !rbuggyQSA.test( expr )) ) {\r
-                                       try {\r
-                                               var ret = matches.call( elem, expr );\r
-\r
-                                               // IE 9's matchesSelector returns false on disconnected nodes\r
-                                               if ( ret || disconnectedMatch ||\r
-                                                               // As well, disconnected nodes are said to be in a document\r
-                                                               // fragment in IE 9\r
-                                                               elem.document && elem.document.nodeType !== 11 ) {\r
-                                                       return ret;\r
-                                               }\r
-                                       } catch(e) {}\r
-                               }\r
-\r
-                               return Sizzle( expr, null, null, [ elem ] ).length > 0;\r
-                       };\r
-               }\r
-       })();\r
-}\r
-\r
-// Override sizzle attribute retrieval
-Sizzle.attr = jQuery.attr;
-jQuery.find = Sizzle;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[":"] = jQuery.expr.pseudos;
-jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
-\r
-\r
-})( window );\r
-var runtil = /Until$/,
-       rparentsprev = /^(?:parents|prev(?:Until|All))/,
-       isSimple = /^.[^:#\[\.,]*$/,
-       rneedsContext = jQuery.expr.match.needsContext,
-       // methods guaranteed to produce a unique set when starting from a unique set
-       guaranteedUnique = {
-               children: true,
-               contents: true,
-               next: true,
-               prev: true
-       };
 
-jQuery.fn.extend({
-       find: function( selector ) {
-               var i, l, length, n, r, ret,
-                       self = this;
 
-               if ( typeof selector !== "string" ) {
-                       return jQuery( selector ).filter(function() {
-                               for ( i = 0, l = self.length; i < l; i++ ) {
-                                       if ( jQuery.contains( self[ i ], this ) ) {
-                                               return true;
-                                       }
-                               }
-                       });
+
+/*!
+ * Sizzle CSS Selector Engine
+ *  Copyright 2011, The Dojo Foundation
+ *  Released under the MIT, BSD, and GPL Licenses.
+ *  More information: http://sizzlejs.com/
+ */
+(function(){
+
+var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+       expando = "sizcache" + (Math.random() + '').replace('.', ''),
+       done = 0,
+       toString = Object.prototype.toString,
+       hasDuplicate = false,
+       baseHasDuplicate = true,
+       rBackslash = /\\/g,
+       rReturn = /\r\n/g,
+       rNonWord = /\W/;
+
+// Here we check if the JavaScript engine is using some sort of
+// optimization where it does not always call our comparision
+// function. If that is the case, discard the hasDuplicate value.
+//   Thus far that includes Google Chrome.
+[0, 0].sort(function() {
+       baseHasDuplicate = false;
+       return 0;
+});
+
+var Sizzle = function( selector, context, results, seed ) {
+       results = results || [];
+       context = context || document;
+
+       var origContext = context;
+
+       if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
+               return [];
+       }
+
+       if ( !selector || typeof selector !== "string" ) {
+               return results;
+       }
+
+       var m, set, checkSet, extra, ret, cur, pop, i,
+               prune = true,
+               contextXML = Sizzle.isXML( context ),
+               parts = [],
+               soFar = selector;
+
+       // Reset the position of the chunker regexp (start from head)
+       do {
+               chunker.exec( "" );
+               m = chunker.exec( soFar );
+
+               if ( m ) {
+                       soFar = m[3];
+
+                       parts.push( m[1] );
+
+                       if ( m[2] ) {
+                               extra = m[3];
+                               break;
+                       }
                }
+       } while ( m );
 
-               ret = this.pushStack( "", "find", selector );
+       if ( parts.length > 1 && origPOS.exec( selector ) ) {
 
-               for ( i = 0, l = this.length; i < l; i++ ) {
-                       length = ret.length;
-                       jQuery.find( selector, this[i], ret );
+               if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
+                       set = posProcess( parts[0] + parts[1], context, seed );
 
-                       if ( i > 0 ) {
-                               // Make sure that the results are unique
-                               for ( n = length; n < ret.length; n++ ) {
-                                       for ( r = 0; r < length; r++ ) {
-                                               if ( ret[r] === ret[n] ) {
-                                                       ret.splice(n--, 1);
-                                                       break;
-                                               }
-                                       }
+               } else {
+                       set = Expr.relative[ parts[0] ] ?
+                               [ context ] :
+                               Sizzle( parts.shift(), context );
+
+                       while ( parts.length ) {
+                               selector = parts.shift();
+
+                               if ( Expr.relative[ selector ] ) {
+                                       selector += parts.shift();
                                }
+
+                               set = posProcess( selector, set, seed );
                        }
                }
 
-               return ret;
-       },
+       } else {
+               // Take a shortcut and set the context if the root selector is an ID
+               // (but not if it'll be faster if the inner selector is an ID)
+               if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
+                               Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
 
-       has: function( target ) {
-               var i,
-                       targets = jQuery( target, this ),
-                       len = targets.length;
+                       ret = Sizzle.find( parts.shift(), context, contextXML );
+                       context = ret.expr ?
+                               Sizzle.filter( ret.expr, ret.set )[0] :
+                               ret.set[0];
+               }
 
-               return this.filter(function() {
-                       for ( i = 0; i < len; i++ ) {
-                               if ( jQuery.contains( this, targets[i] ) ) {
-                                       return true;
+               if ( context ) {
+                       ret = seed ?
+                               { expr: parts.pop(), set: makeArray(seed) } :
+                               Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
+
+                       set = ret.expr ?
+                               Sizzle.filter( ret.expr, ret.set ) :
+                               ret.set;
+
+                       if ( parts.length > 0 ) {
+                               checkSet = makeArray( set );
+
+                       } else {
+                               prune = false;
+                       }
+
+                       while ( parts.length ) {
+                               cur = parts.pop();
+                               pop = cur;
+
+                               if ( !Expr.relative[ cur ] ) {
+                                       cur = "";
+                               } else {
+                                       pop = parts.pop();
+                               }
+
+                               if ( pop == null ) {
+                                       pop = context;
                                }
+
+                               Expr.relative[ cur ]( checkSet, pop, contextXML );
                        }
-               });
-       },
 
-       not: function( selector ) {
-               return this.pushStack( winnow(this, selector, false), "not", selector);
-       },
+               } else {
+                       checkSet = parts = [];
+               }
+       }
 
-       filter: function( selector ) {
-               return this.pushStack( winnow(this, selector, true), "filter", selector );
-       },
+       if ( !checkSet ) {
+               checkSet = set;
+       }
 
-       is: function( selector ) {
-               return !!selector && (
-                       typeof selector === "string" ?
-                               // If this is a positional/relative selector, check membership in the returned set
-                               // so $("p:first").is("p:last") won't return true for a doc with two "p".
-                               rneedsContext.test( selector ) ?
-                                       jQuery( selector, this.context ).index( this[0] ) >= 0 :
-                                       jQuery.filter( selector, this ).length > 0 :
-                               this.filter( selector ).length > 0 );
-       },
+       if ( !checkSet ) {
+               Sizzle.error( cur || selector );
+       }
 
-       closest: function( selectors, context ) {
-               var cur,
-                       i = 0,
-                       l = this.length,
-                       ret = [],
-                       pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
-                               jQuery( selectors, context || this.context ) :
-                               0;
+       if ( toString.call(checkSet) === "[object Array]" ) {
+               if ( !prune ) {
+                       results.push.apply( results, checkSet );
 
-               for ( ; i < l; i++ ) {
-                       cur = this[i];
+               } else if ( context && context.nodeType === 1 ) {
+                       for ( i = 0; checkSet[i] != null; i++ ) {
+                               if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
+                                       results.push( set[i] );
+                               }
+                       }
 
-                       while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) {
-                               if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
-                                       ret.push( cur );
-                                       break;
+               } else {
+                       for ( i = 0; checkSet[i] != null; i++ ) {
+                               if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
+                                       results.push( set[i] );
                                }
-                               cur = cur.parentNode;
                        }
                }
 
-               ret = ret.length > 1 ? jQuery.unique( ret ) : ret;
+       } else {
+               makeArray( checkSet, results );
+       }
 
-               return this.pushStack( ret, "closest", selectors );
-       },
+       if ( extra ) {
+               Sizzle( extra, origContext, results, seed );
+               Sizzle.uniqueSort( results );
+       }
 
-       // Determine the position of an element within
-       // the matched set of elements
-       index: function( elem ) {
+       return results;
+};
 
-               // No argument, return index in parent
-               if ( !elem ) {
-                       return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;
-               }
+Sizzle.uniqueSort = function( results ) {
+       if ( sortOrder ) {
+               hasDuplicate = baseHasDuplicate;
+               results.sort( sortOrder );
 
-               // index in selector
-               if ( typeof elem === "string" ) {
-                       return jQuery.inArray( this[0], jQuery( elem ) );
+               if ( hasDuplicate ) {
+                       for ( var i = 1; i < results.length; i++ ) {
+                               if ( results[i] === results[ i - 1 ] ) {
+                                       results.splice( i--, 1 );
+                               }
+                       }
+               }
+       }
+
+       return results;
+};
+
+Sizzle.matches = function( expr, set ) {
+       return Sizzle( expr, null, null, set );
+};
+
+Sizzle.matchesSelector = function( node, expr ) {
+       return Sizzle( expr, null, null, [node] ).length > 0;
+};
+
+Sizzle.find = function( expr, context, isXML ) {
+       var set, i, len, match, type, left;
+
+       if ( !expr ) {
+               return [];
+       }
+
+       for ( i = 0, len = Expr.order.length; i < len; i++ ) {
+               type = Expr.order[i];
+
+               if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
+                       left = match[1];
+                       match.splice( 1, 1 );
+
+                       if ( left.substr( left.length - 1 ) !== "\\" ) {
+                               match[1] = (match[1] || "").replace( rBackslash, "" );
+                               set = Expr.find[ type ]( match, context, isXML );
+
+                               if ( set != null ) {
+                                       expr = expr.replace( Expr.match[ type ], "" );
+                                       break;
+                               }
+                       }
+               }
+       }
+
+       if ( !set ) {
+               set = typeof context.getElementsByTagName !== "undefined" ?
+                       context.getElementsByTagName( "*" ) :
+                       [];
+       }
+
+       return { set: set, expr: expr };
+};
+
+Sizzle.filter = function( expr, set, inplace, not ) {
+       var match, anyFound,
+               type, found, item, filter, left,
+               i, pass,
+               old = expr,
+               result = [],
+               curLoop = set,
+               isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
+
+       while ( expr && set.length ) {
+               for ( type in Expr.filter ) {
+                       if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
+                               filter = Expr.filter[ type ];
+                               left = match[1];
+
+                               anyFound = false;
+
+                               match.splice(1,1);
+
+                               if ( left.substr( left.length - 1 ) === "\\" ) {
+                                       continue;
+                               }
+
+                               if ( curLoop === result ) {
+                                       result = [];
+                               }
+
+                               if ( Expr.preFilter[ type ] ) {
+                                       match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+
+                                       if ( !match ) {
+                                               anyFound = found = true;
+
+                                       } else if ( match === true ) {
+                                               continue;
+                                       }
+                               }
+
+                               if ( match ) {
+                                       for ( i = 0; (item = curLoop[i]) != null; i++ ) {
+                                               if ( item ) {
+                                                       found = filter( item, match, i, curLoop );
+                                                       pass = not ^ found;
+
+                                                       if ( inplace && found != null ) {
+                                                               if ( pass ) {
+                                                                       anyFound = true;
+
+                                                               } else {
+                                                                       curLoop[i] = false;
+                                                               }
+
+                                                       } else if ( pass ) {
+                                                               result.push( item );
+                                                               anyFound = true;
+                                                       }
+                                               }
+                                       }
+                               }
+
+                               if ( found !== undefined ) {
+                                       if ( !inplace ) {
+                                               curLoop = result;
+                                       }
+
+                                       expr = expr.replace( Expr.match[ type ], "" );
+
+                                       if ( !anyFound ) {
+                                               return [];
+                                       }
+
+                                       break;
+                               }
+                       }
+               }
+
+               // Improper expression
+               if ( expr === old ) {
+                       if ( anyFound == null ) {
+                               Sizzle.error( expr );
+
+                       } else {
+                               break;
+                       }
+               }
+
+               old = expr;
+       }
+
+       return curLoop;
+};
+
+Sizzle.error = function( msg ) {
+       throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Utility function for retreiving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+var getText = Sizzle.getText = function( elem ) {
+    var i, node,
+               nodeType = elem.nodeType,
+               ret = "";
+
+       if ( nodeType ) {
+               if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+                       // Use textContent || innerText for elements
+                       if ( typeof elem.textContent === 'string' ) {
+                               return elem.textContent;
+                       } else if ( typeof elem.innerText === 'string' ) {
+                               // Replace IE's carriage returns
+                               return elem.innerText.replace( rReturn, '' );
+                       } else {
+                               // Traverse it's children
+                               for ( elem = elem.firstChild; elem; elem = elem.nextSibling) {
+                                       ret += getText( elem );
+                               }
+                       }
+               } else if ( nodeType === 3 || nodeType === 4 ) {
+                       return elem.nodeValue;
+               }
+       } else {
+
+               // If no nodeType, this is expected to be an array
+               for ( i = 0; (node = elem[i]); i++ ) {
+                       // Do not traverse comment nodes
+                       if ( node.nodeType !== 8 ) {
+                               ret += getText( node );
+                       }
+               }
+       }
+       return ret;
+};
+
+var Expr = Sizzle.selectors = {
+       order: [ "ID", "NAME", "TAG" ],
+
+       match: {
+               ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+               CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+               NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
+               ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
+               TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
+               CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
+               POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
+               PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
+       },
+
+       leftMatch: {},
+
+       attrMap: {
+               "class": "className",
+               "for": "htmlFor"
+       },
+
+       attrHandle: {
+               href: function( elem ) {
+                       return elem.getAttribute( "href" );
+               },
+               type: function( elem ) {
+                       return elem.getAttribute( "type" );
+               }
+       },
+
+       relative: {
+               "+": function(checkSet, part){
+                       var isPartStr = typeof part === "string",
+                               isTag = isPartStr && !rNonWord.test( part ),
+                               isPartStrNotTag = isPartStr && !isTag;
+
+                       if ( isTag ) {
+                               part = part.toLowerCase();
+                       }
+
+                       for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
+                               if ( (elem = checkSet[i]) ) {
+                                       while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
+
+                                       checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
+                                               elem || false :
+                                               elem === part;
+                               }
+                       }
+
+                       if ( isPartStrNotTag ) {
+                               Sizzle.filter( part, checkSet, true );
+                       }
+               },
+
+               ">": function( checkSet, part ) {
+                       var elem,
+                               isPartStr = typeof part === "string",
+                               i = 0,
+                               l = checkSet.length;
+
+                       if ( isPartStr && !rNonWord.test( part ) ) {
+                               part = part.toLowerCase();
+
+                               for ( ; i < l; i++ ) {
+                                       elem = checkSet[i];
+
+                                       if ( elem ) {
+                                               var parent = elem.parentNode;
+                                               checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
+                                       }
+                               }
+
+                       } else {
+                               for ( ; i < l; i++ ) {
+                                       elem = checkSet[i];
+
+                                       if ( elem ) {
+                                               checkSet[i] = isPartStr ?
+                                                       elem.parentNode :
+                                                       elem.parentNode === part;
+                                       }
+                               }
+
+                               if ( isPartStr ) {
+                                       Sizzle.filter( part, checkSet, true );
+                               }
+                       }
+               },
+
+               "": function(checkSet, part, isXML){
+                       var nodeCheck,
+                               doneName = done++,
+                               checkFn = dirCheck;
+
+                       if ( typeof part === "string" && !rNonWord.test( part ) ) {
+                               part = part.toLowerCase();
+                               nodeCheck = part;
+                               checkFn = dirNodeCheck;
+                       }
+
+                       checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
+               },
+
+               "~": function( checkSet, part, isXML ) {
+                       var nodeCheck,
+                               doneName = done++,
+                               checkFn = dirCheck;
+
+                       if ( typeof part === "string" && !rNonWord.test( part ) ) {
+                               part = part.toLowerCase();
+                               nodeCheck = part;
+                               checkFn = dirNodeCheck;
+                       }
+
+                       checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
+               }
+       },
+
+       find: {
+               ID: function( match, context, isXML ) {
+                       if ( typeof context.getElementById !== "undefined" && !isXML ) {
+                               var m = context.getElementById(match[1]);
+                               // Check parentNode to catch when Blackberry 4.6 returns
+                               // nodes that are no longer in the document #6963
+                               return m && m.parentNode ? [m] : [];
+                       }
+               },
+
+               NAME: function( match, context ) {
+                       if ( typeof context.getElementsByName !== "undefined" ) {
+                               var ret = [],
+                                       results = context.getElementsByName( match[1] );
+
+                               for ( var i = 0, l = results.length; i < l; i++ ) {
+                                       if ( results[i].getAttribute("name") === match[1] ) {
+                                               ret.push( results[i] );
+                                       }
+                               }
+
+                               return ret.length === 0 ? null : ret;
+                       }
+               },
+
+               TAG: function( match, context ) {
+                       if ( typeof context.getElementsByTagName !== "undefined" ) {
+                               return context.getElementsByTagName( match[1] );
+                       }
+               }
+       },
+       preFilter: {
+               CLASS: function( match, curLoop, inplace, result, not, isXML ) {
+                       match = " " + match[1].replace( rBackslash, "" ) + " ";
+
+                       if ( isXML ) {
+                               return match;
+                       }
+
+                       for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
+                               if ( elem ) {
+                                       if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
+                                               if ( !inplace ) {
+                                                       result.push( elem );
+                                               }
+
+                                       } else if ( inplace ) {
+                                               curLoop[i] = false;
+                                       }
+                               }
+                       }
+
+                       return false;
+               },
+
+               ID: function( match ) {
+                       return match[1].replace( rBackslash, "" );
+               },
+
+               TAG: function( match, curLoop ) {
+                       return match[1].replace( rBackslash, "" ).toLowerCase();
+               },
+
+               CHILD: function( match ) {
+                       if ( match[1] === "nth" ) {
+                               if ( !match[2] ) {
+                                       Sizzle.error( match[0] );
+                               }
+
+                               match[2] = match[2].replace(/^\+|\s*/g, '');
+
+                               // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+                               var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
+                                       match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
+                                       !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
+
+                               // calculate the numbers (first)n+(last) including if they are negative
+                               match[2] = (test[1] + (test[2] || 1)) - 0;
+                               match[3] = test[3] - 0;
+                       }
+                       else if ( match[2] ) {
+                               Sizzle.error( match[0] );
+                       }
+
+                       // TODO: Move to normal caching system
+                       match[0] = done++;
+
+                       return match;
+               },
+
+               ATTR: function( match, curLoop, inplace, result, not, isXML ) {
+                       var name = match[1] = match[1].replace( rBackslash, "" );
+
+                       if ( !isXML && Expr.attrMap[name] ) {
+                               match[1] = Expr.attrMap[name];
+                       }
+
+                       // Handle if an un-quoted value was used
+                       match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
+
+                       if ( match[2] === "~=" ) {
+                               match[4] = " " + match[4] + " ";
+                       }
+
+                       return match;
+               },
+
+               PSEUDO: function( match, curLoop, inplace, result, not ) {
+                       if ( match[1] === "not" ) {
+                               // If we're dealing with a complex expression, or a simple one
+                               if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
+                                       match[3] = Sizzle(match[3], null, null, curLoop);
+
+                               } else {
+                                       var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+
+                                       if ( !inplace ) {
+                                               result.push.apply( result, ret );
+                                       }
+
+                                       return false;
+                               }
+
+                       } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
+                               return true;
+                       }
+
+                       return match;
+               },
+
+               POS: function( match ) {
+                       match.unshift( true );
+
+                       return match;
+               }
+       },
+
+       filters: {
+               enabled: function( elem ) {
+                       return elem.disabled === false && elem.type !== "hidden";
+               },
+
+               disabled: function( elem ) {
+                       return elem.disabled === true;
+               },
+
+               checked: function( elem ) {
+                       return elem.checked === true;
+               },
+
+               selected: function( elem ) {
+                       // Accessing this property makes selected-by-default
+                       // options in Safari work properly
+                       if ( elem.parentNode ) {
+                               elem.parentNode.selectedIndex;
+                       }
+
+                       return elem.selected === true;
+               },
+
+               parent: function( elem ) {
+                       return !!elem.firstChild;
+               },
+
+               empty: function( elem ) {
+                       return !elem.firstChild;
+               },
+
+               has: function( elem, i, match ) {
+                       return !!Sizzle( match[3], elem ).length;
+               },
+
+               header: function( elem ) {
+                       return (/h\d/i).test( elem.nodeName );
+               },
+
+               text: function( elem ) {
+                       var attr = elem.getAttribute( "type" ), type = elem.type;
+                       // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
+                       // use getAttribute instead to test this case
+                       return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );
+               },
+
+               radio: function( elem ) {
+                       return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type;
+               },
+
+               checkbox: function( elem ) {
+                       return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type;
+               },
+
+               file: function( elem ) {
+                       return elem.nodeName.toLowerCase() === "input" && "file" === elem.type;
+               },
+
+               password: function( elem ) {
+                       return elem.nodeName.toLowerCase() === "input" && "password" === elem.type;
+               },
+
+               submit: function( elem ) {
+                       var name = elem.nodeName.toLowerCase();
+                       return (name === "input" || name === "button") && "submit" === elem.type;
+               },
+
+               image: function( elem ) {
+                       return elem.nodeName.toLowerCase() === "input" && "image" === elem.type;
+               },
+
+               reset: function( elem ) {
+                       var name = elem.nodeName.toLowerCase();
+                       return (name === "input" || name === "button") && "reset" === elem.type;
+               },
+
+               button: function( elem ) {
+                       var name = elem.nodeName.toLowerCase();
+                       return name === "input" && "button" === elem.type || name === "button";
+               },
+
+               input: function( elem ) {
+                       return (/input|select|textarea|button/i).test( elem.nodeName );
+               },
+
+               focus: function( elem ) {
+                       return elem === elem.ownerDocument.activeElement;
+               }
+       },
+       setFilters: {
+               first: function( elem, i ) {
+                       return i === 0;
+               },
+
+               last: function( elem, i, match, array ) {
+                       return i === array.length - 1;
+               },
+
+               even: function( elem, i ) {
+                       return i % 2 === 0;
+               },
+
+               odd: function( elem, i ) {
+                       return i % 2 === 1;
+               },
+
+               lt: function( elem, i, match ) {
+                       return i < match[3] - 0;
+               },
+
+               gt: function( elem, i, match ) {
+                       return i > match[3] - 0;
+               },
+
+               nth: function( elem, i, match ) {
+                       return match[3] - 0 === i;
+               },
+
+               eq: function( elem, i, match ) {
+                       return match[3] - 0 === i;
+               }
+       },
+       filter: {
+               PSEUDO: function( elem, match, i, array ) {
+                       var name = match[1],
+                               filter = Expr.filters[ name ];
+
+                       if ( filter ) {
+                               return filter( elem, i, match, array );
+
+                       } else if ( name === "contains" ) {
+                               return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0;
+
+                       } else if ( name === "not" ) {
+                               var not = match[3];
+
+                               for ( var j = 0, l = not.length; j < l; j++ ) {
+                                       if ( not[j] === elem ) {
+                                               return false;
+                                       }
+                               }
+
+                               return true;
+
+                       } else {
+                               Sizzle.error( name );
+                       }
+               },
+
+               CHILD: function( elem, match ) {
+                       var first, last,
+                               doneName, parent, cache,
+                               count, diff,
+                               type = match[1],
+                               node = elem;
+
+                       switch ( type ) {
+                               case "only":
+                               case "first":
+                                       while ( (node = node.previousSibling) ) {
+                                               if ( node.nodeType === 1 ) {
+                                                       return false;
+                                               }
+                                       }
+
+                                       if ( type === "first" ) {
+                                               return true;
+                                       }
+
+                                       node = elem;
+
+                                       /* falls through */
+                               case "last":
+                                       while ( (node = node.nextSibling) ) {
+                                               if ( node.nodeType === 1 ) {
+                                                       return false;
+                                               }
+                                       }
+
+                                       return true;
+
+                               case "nth":
+                                       first = match[2];
+                                       last = match[3];
+
+                                       if ( first === 1 && last === 0 ) {
+                                               return true;
+                                       }
+
+                                       doneName = match[0];
+                                       parent = elem.parentNode;
+
+                                       if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) {
+                                               count = 0;
+
+                                               for ( node = parent.firstChild; node; node = node.nextSibling ) {
+                                                       if ( node.nodeType === 1 ) {
+                                                               node.nodeIndex = ++count;
+                                                       }
+                                               }
+
+                                               parent[ expando ] = doneName;
+                                       }
+
+                                       diff = elem.nodeIndex - last;
+
+                                       if ( first === 0 ) {
+                                               return diff === 0;
+
+                                       } else {
+                                               return ( diff % first === 0 && diff / first >= 0 );
+                                       }
+                       }
+               },
+
+               ID: function( elem, match ) {
+                       return elem.nodeType === 1 && elem.getAttribute("id") === match;
+               },
+
+               TAG: function( elem, match ) {
+                       return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match;
+               },
+
+               CLASS: function( elem, match ) {
+                       return (" " + (elem.className || elem.getAttribute("class")) + " ")
+                               .indexOf( match ) > -1;
+               },
+
+               ATTR: function( elem, match ) {
+                       var name = match[1],
+                               result = Sizzle.attr ?
+                                       Sizzle.attr( elem, name ) :
+                                       Expr.attrHandle[ name ] ?
+                                       Expr.attrHandle[ name ]( elem ) :
+                                       elem[ name ] != null ?
+                                               elem[ name ] :
+                                               elem.getAttribute( name ),
+                               value = result + "",
+                               type = match[2],
+                               check = match[4];
+
+                       return result == null ?
+                               type === "!=" :
+                               !type && Sizzle.attr ?
+                               result != null :
+                               type === "=" ?
+                               value === check :
+                               type === "*=" ?
+                               value.indexOf(check) >= 0 :
+                               type === "~=" ?
+                               (" " + value + " ").indexOf(check) >= 0 :
+                               !check ?
+                               value && result !== false :
+                               type === "!=" ?
+                               value !== check :
+                               type === "^=" ?
+                               value.indexOf(check) === 0 :
+                               type === "$=" ?
+                               value.substr(value.length - check.length) === check :
+                               type === "|=" ?
+                               value === check || value.substr(0, check.length + 1) === check + "-" :
+                               false;
+               },
+
+               POS: function( elem, match, i, array ) {
+                       var name = match[2],
+                               filter = Expr.setFilters[ name ];
+
+                       if ( filter ) {
+                               return filter( elem, i, match, array );
+                       }
+               }
+       }
+};
+
+var origPOS = Expr.match.POS,
+       fescape = function(all, num){
+               return "\\" + (num - 0 + 1);
+       };
+
+for ( var type in Expr.match ) {
+       Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
+       Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
+}
+// Expose origPOS
+// "global" as in regardless of relation to brackets/parens
+Expr.match.globalPOS = origPOS;
+
+var makeArray = function( array, results ) {
+       array = Array.prototype.slice.call( array, 0 );
+
+       if ( results ) {
+               results.push.apply( results, array );
+               return results;
+       }
+
+       return array;
+};
+
+// Perform a simple check to determine if the browser is capable of
+// converting a NodeList to an array using builtin methods.
+// Also verifies that the returned array holds DOM nodes
+// (which is not the case in the Blackberry browser)
+try {
+       Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
+
+// Provide a fallback method if it does not work
+} catch( e ) {
+       makeArray = function( array, results ) {
+               var i = 0,
+                       ret = results || [];
+
+               if ( toString.call(array) === "[object Array]" ) {
+                       Array.prototype.push.apply( ret, array );
+
+               } else {
+                       if ( typeof array.length === "number" ) {
+                               for ( var l = array.length; i < l; i++ ) {
+                                       ret.push( array[i] );
+                               }
+
+                       } else {
+                               for ( ; array[i]; i++ ) {
+                                       ret.push( array[i] );
+                               }
+                       }
+               }
+
+               return ret;
+       };
+}
+
+var sortOrder, siblingCheck;
+
+if ( document.documentElement.compareDocumentPosition ) {
+       sortOrder = function( a, b ) {
+               if ( a === b ) {
+                       hasDuplicate = true;
+                       return 0;
+               }
+
+               if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
+                       return a.compareDocumentPosition ? -1 : 1;
+               }
+
+               return a.compareDocumentPosition(b) & 4 ? -1 : 1;
+       };
+
+} else {
+       sortOrder = function( a, b ) {
+               // The nodes are identical, we can exit early
+               if ( a === b ) {
+                       hasDuplicate = true;
+                       return 0;
+
+               // Fallback to using sourceIndex (in IE) if it's available on both nodes
+               } else if ( a.sourceIndex && b.sourceIndex ) {
+                       return a.sourceIndex - b.sourceIndex;
+               }
+
+               var al, bl,
+                       ap = [],
+                       bp = [],
+                       aup = a.parentNode,
+                       bup = b.parentNode,
+                       cur = aup;
+
+               // If the nodes are siblings (or identical) we can do a quick check
+               if ( aup === bup ) {
+                       return siblingCheck( a, b );
+
+               // If no parents were found then the nodes are disconnected
+               } else if ( !aup ) {
+                       return -1;
+
+               } else if ( !bup ) {
+                       return 1;
+               }
+
+               // Otherwise they're somewhere else in the tree so we need
+               // to build up a full list of the parentNodes for comparison
+               while ( cur ) {
+                       ap.unshift( cur );
+                       cur = cur.parentNode;
+               }
+
+               cur = bup;
+
+               while ( cur ) {
+                       bp.unshift( cur );
+                       cur = cur.parentNode;
+               }
+
+               al = ap.length;
+               bl = bp.length;
+
+               // Start walking down the tree looking for a discrepancy
+               for ( var i = 0; i < al && i < bl; i++ ) {
+                       if ( ap[i] !== bp[i] ) {
+                               return siblingCheck( ap[i], bp[i] );
+                       }
+               }
+
+               // We ended someplace up the tree so do a sibling check
+               return i === al ?
+                       siblingCheck( a, bp[i], -1 ) :
+                       siblingCheck( ap[i], b, 1 );
+       };
+
+       siblingCheck = function( a, b, ret ) {
+               if ( a === b ) {
+                       return ret;
+               }
+
+               var cur = a.nextSibling;
+
+               while ( cur ) {
+                       if ( cur === b ) {
+                               return -1;
+                       }
+
+                       cur = cur.nextSibling;
+               }
+
+               return 1;
+       };
+}
+
+// Check to see if the browser returns elements by name when
+// querying by getElementById (and provide a workaround)
+(function(){
+       // We're going to inject a fake input element with a specified name
+       var form = document.createElement("div"),
+               id = "script" + (new Date()).getTime(),
+               root = document.documentElement;
+
+       form.innerHTML = "<a name='" + id + "'/>";
+
+       // Inject it into the root element, check its status, and remove it quickly
+       root.insertBefore( form, root.firstChild );
+
+       // The workaround has to do additional checks after a getElementById
+       // Which slows things down for other browsers (hence the branching)
+       if ( document.getElementById( id ) ) {
+               Expr.find.ID = function( match, context, isXML ) {
+                       if ( typeof context.getElementById !== "undefined" && !isXML ) {
+                               var m = context.getElementById(match[1]);
+
+                               return m ?
+                                       m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
+                                               [m] :
+                                               undefined :
+                                       [];
+                       }
+               };
+
+               Expr.filter.ID = function( elem, match ) {
+                       var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+
+                       return elem.nodeType === 1 && node && node.nodeValue === match;
+               };
+       }
+
+       root.removeChild( form );
+
+       // release memory in IE
+       root = form = null;
+})();
+
+(function(){
+       // Check to see if the browser returns only elements
+       // when doing getElementsByTagName("*")
+
+       // Create a fake element
+       var div = document.createElement("div");
+       div.appendChild( document.createComment("") );
+
+       // Make sure no comments are found
+       if ( div.getElementsByTagName("*").length > 0 ) {
+               Expr.find.TAG = function( match, context ) {
+                       var results = context.getElementsByTagName( match[1] );
+
+                       // Filter out possible comments
+                       if ( match[1] === "*" ) {
+                               var tmp = [];
+
+                               for ( var i = 0; results[i]; i++ ) {
+                                       if ( results[i].nodeType === 1 ) {
+                                               tmp.push( results[i] );
+                                       }
+                               }
+
+                               results = tmp;
+                       }
+
+                       return results;
+               };
+       }
+
+       // Check to see if an attribute returns normalized href attributes
+       div.innerHTML = "<a href='#'></a>";
+
+       if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+                       div.firstChild.getAttribute("href") !== "#" ) {
+
+               Expr.attrHandle.href = function( elem ) {
+                       return elem.getAttribute( "href", 2 );
+               };
+       }
+
+       // release memory in IE
+       div = null;
+})();
+
+if ( document.querySelectorAll ) {
+       (function(){
+               var oldSizzle = Sizzle,
+                       div = document.createElement("div"),
+                       id = "__sizzle__";
+
+               div.innerHTML = "<p class='TEST'></p>";
+
+               // Safari can't handle uppercase or unicode characters when
+               // in quirks mode.
+               if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
+                       return;
+               }
+
+               Sizzle = function( query, context, extra, seed ) {
+                       context = context || document;
+
+                       // Only use querySelectorAll on non-XML documents
+                       // (ID selectors don't work in non-HTML documents)
+                       if ( !seed && !Sizzle.isXML(context) ) {
+                               // See if we find a selector to speed up
+                               var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
+
+                               if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
+                                       // Speed-up: Sizzle("TAG")
+                                       if ( match[1] ) {
+                                               return makeArray( context.getElementsByTagName( query ), extra );
+
+                                       // Speed-up: Sizzle(".CLASS")
+                                       } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
+                                               return makeArray( context.getElementsByClassName( match[2] ), extra );
+                                       }
+                               }
+
+                               if ( context.nodeType === 9 ) {
+                                       // Speed-up: Sizzle("body")
+                                       // The body element only exists once, optimize finding it
+                                       if ( query === "body" && context.body ) {
+                                               return makeArray( [ context.body ], extra );
+
+                                       // Speed-up: Sizzle("#ID")
+                                       } else if ( match && match[3] ) {
+                                               var elem = context.getElementById( match[3] );
+
+                                               // Check parentNode to catch when Blackberry 4.6 returns
+                                               // nodes that are no longer in the document #6963
+                                               if ( elem && elem.parentNode ) {
+                                                       // Handle the case where IE and Opera return items
+                                                       // by name instead of ID
+                                                       if ( elem.id === match[3] ) {
+                                                               return makeArray( [ elem ], extra );
+                                                       }
+
+                                               } else {
+                                                       return makeArray( [], extra );
+                                               }
+                                       }
+
+                                       try {
+                                               return makeArray( context.querySelectorAll(query), extra );
+                                       } catch(qsaError) {}
+
+                               // qSA works strangely on Element-rooted queries
+                               // We can work around this by specifying an extra ID on the root
+                               // and working up from there (Thanks to Andrew Dupont for the technique)
+                               // IE 8 doesn't work on object elements
+                               } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
+                                       var oldContext = context,
+                                               old = context.getAttribute( "id" ),
+                                               nid = old || id,
+                                               hasParent = context.parentNode,
+                                               relativeHierarchySelector = /^\s*[+~]/.test( query );
+
+                                       if ( !old ) {
+                                               context.setAttribute( "id", nid );
+                                       } else {
+                                               nid = nid.replace( /'/g, "\\$&" );
+                                       }
+                                       if ( relativeHierarchySelector && hasParent ) {
+                                               context = context.parentNode;
+                                       }
+
+                                       try {
+                                               if ( !relativeHierarchySelector || hasParent ) {
+                                                       return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
+                                               }
+
+                                       } catch(pseudoError) {
+                                       } finally {
+                                               if ( !old ) {
+                                                       oldContext.removeAttribute( "id" );
+                                               }
+                                       }
+                               }
+                       }
+
+                       return oldSizzle(query, context, extra, seed);
+               };
+
+               for ( var prop in oldSizzle ) {
+                       Sizzle[ prop ] = oldSizzle[ prop ];
+               }
+
+               // release memory in IE
+               div = null;
+       })();
+}
+
+(function(){
+       var html = document.documentElement,
+               matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;
+
+       if ( matches ) {
+               // Check to see if it's possible to do matchesSelector
+               // on a disconnected node (IE 9 fails this)
+               var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),
+                       pseudoWorks = false;
+
+               try {
+                       // This should fail with an exception
+                       // Gecko does not error, returns false instead
+                       matches.call( document.documentElement, "[test!='']:sizzle" );
+
+               } catch( pseudoError ) {
+                       pseudoWorks = true;
+               }
+
+               Sizzle.matchesSelector = function( node, expr ) {
+                       // Make sure that attribute selectors are quoted
+                       expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
+
+                       if ( !Sizzle.isXML( node ) ) {
+                               try {
+                                       if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
+                                               var ret = matches.call( node, expr );
+
+                                               // IE 9's matchesSelector returns false on disconnected nodes
+                                               if ( ret || !disconnectedMatch ||
+                                                               // As well, disconnected nodes are said to be in a document
+                                                               // fragment in IE 9, so check for that
+                                                               node.document && node.document.nodeType !== 11 ) {
+                                                       return ret;
+                                               }
+                                       }
+                               } catch(e) {}
+                       }
+
+                       return Sizzle(expr, null, null, [node]).length > 0;
+               };
+       }
+})();
+
+(function(){
+       var div = document.createElement("div");
+
+       div.innerHTML = "<div class='test e'></div><div class='test'></div>";
+
+       // Opera can't find a second classname (in 9.6)
+       // Also, make sure that getElementsByClassName actually exists
+       if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
+               return;
+       }
+
+       // Safari caches class attributes, doesn't catch changes (in 3.2)
+       div.lastChild.className = "e";
+
+       if ( div.getElementsByClassName("e").length === 1 ) {
+               return;
+       }
+
+       Expr.order.splice(1, 0, "CLASS");
+       Expr.find.CLASS = function( match, context, isXML ) {
+               if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
+                       return context.getElementsByClassName(match[1]);
+               }
+       };
+
+       // release memory in IE
+       div = null;
+})();
+
+function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+       for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+               var elem = checkSet[i];
+
+               if ( elem ) {
+                       var match = false;
+
+                       elem = elem[dir];
+
+                       while ( elem ) {
+                               if ( elem[ expando ] === doneName ) {
+                                       match = checkSet[elem.sizset];
+                                       break;
+                               }
+
+                               if ( elem.nodeType === 1 && !isXML ){
+                                       elem[ expando ] = doneName;
+                                       elem.sizset = i;
+                               }
+
+                               if ( elem.nodeName.toLowerCase() === cur ) {
+                                       match = elem;
+                                       break;
+                               }
+
+                               elem = elem[dir];
+                       }
+
+                       checkSet[i] = match;
+               }
+       }
+}
+
+function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+       for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+               var elem = checkSet[i];
+
+               if ( elem ) {
+                       var match = false;
+
+                       elem = elem[dir];
+
+                       while ( elem ) {
+                               if ( elem[ expando ] === doneName ) {
+                                       match = checkSet[elem.sizset];
+                                       break;
+                               }
+
+                               if ( elem.nodeType === 1 ) {
+                                       if ( !isXML ) {
+                                               elem[ expando ] = doneName;
+                                               elem.sizset = i;
+                                       }
+
+                                       if ( typeof cur !== "string" ) {
+                                               if ( elem === cur ) {
+                                                       match = true;
+                                                       break;
+                                               }
+
+                                       } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
+                                               match = elem;
+                                               break;
+                                       }
+                               }
+
+                               elem = elem[dir];
+                       }
+
+                       checkSet[i] = match;
+               }
+       }
+}
+
+if ( document.documentElement.contains ) {
+       Sizzle.contains = function( a, b ) {
+               return a !== b && (a.contains ? a.contains(b) : true);
+       };
+
+} else if ( document.documentElement.compareDocumentPosition ) {
+       Sizzle.contains = function( a, b ) {
+               return !!(a.compareDocumentPosition(b) & 16);
+       };
+
+} else {
+       Sizzle.contains = function() {
+               return false;
+       };
+}
+
+Sizzle.isXML = function( elem ) {
+       // documentElement is verified for cases where it doesn't yet exist
+       // (such as loading iframes in IE - #4833)
+       var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
+
+       return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+var posProcess = function( selector, context, seed ) {
+       var match,
+               tmpSet = [],
+               later = "",
+               root = context.nodeType ? [context] : context;
+
+       // Position selectors must be done after the filter
+       // And so must :not(positional) so we move all PSEUDOs to the end
+       while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
+               later += match[0];
+               selector = selector.replace( Expr.match.PSEUDO, "" );
+       }
+
+       selector = Expr.relative[selector] ? selector + "*" : selector;
+
+       for ( var i = 0, l = root.length; i < l; i++ ) {
+               Sizzle( selector, root[i], tmpSet, seed );
+       }
+
+       return Sizzle.filter( later, tmpSet );
+};
+
+// EXPOSE
+// Override sizzle attribute retrieval
+Sizzle.attr = jQuery.attr;
+Sizzle.selectors.attrMap = {};
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.filters;
+jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+})();
+
+
+var runtil = /Until$/,
+       rparentsprev = /^(?:parents|prevUntil|prevAll)/,
+       // Note: This RegExp should be improved, or likely pulled from Sizzle
+       rmultiselector = /,/,
+       isSimple = /^.[^:#\[\.,]*$/,
+       slice = Array.prototype.slice,
+       POS = jQuery.expr.match.globalPOS,
+       // methods guaranteed to produce a unique set when starting from a unique set
+       guaranteedUnique = {
+               children: true,
+               contents: true,
+               next: true,
+               prev: true
+       };
+
+jQuery.fn.extend({
+       find: function( selector ) {
+               var self = this,
+                       i, l;
+
+               if ( typeof selector !== "string" ) {
+                       return jQuery( selector ).filter(function() {
+                               for ( i = 0, l = self.length; i < l; i++ ) {
+                                       if ( jQuery.contains( self[ i ], this ) ) {
+                                               return true;
+                                       }
+                               }
+                       });
+               }
+
+               var ret = this.pushStack( "", "find", selector ),
+                       length, n, r;
+
+               for ( i = 0, l = this.length; i < l; i++ ) {
+                       length = ret.length;
+                       jQuery.find( selector, this[i], ret );
+
+                       if ( i > 0 ) {
+                               // Make sure that the results are unique
+                               for ( n = length; n < ret.length; n++ ) {
+                                       for ( r = 0; r < length; r++ ) {
+                                               if ( ret[r] === ret[n] ) {
+                                                       ret.splice(n--, 1);
+                                                       break;
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               return ret;
+       },
+
+       has: function( target ) {
+               var targets = jQuery( target );
+               return this.filter(function() {
+                       for ( var i = 0, l = targets.length; i < l; i++ ) {
+                               if ( jQuery.contains( this, targets[i] ) ) {
+                                       return true;
+                               }
+                       }
+               });
+       },
+
+       not: function( selector ) {
+               return this.pushStack( winnow(this, selector, false), "not", selector);
+       },
+
+       filter: function( selector ) {
+               return this.pushStack( winnow(this, selector, true), "filter", selector );
+       },
+
+       is: function( selector ) {
+               return !!selector && (
+                       typeof selector === "string" ?
+                               // If this is a positional selector, check membership in the returned set
+                               // so $("p:first").is("p:last") won't return true for a doc with two "p".
+                               POS.test( selector ) ?
+                                       jQuery( selector, this.context ).index( this[0] ) >= 0 :
+                                       jQuery.filter( selector, this ).length > 0 :
+                               this.filter( selector ).length > 0 );
+       },
+
+       closest: function( selectors, context ) {
+               var ret = [], i, l, cur = this[0];
+
+               // Array (deprecated as of jQuery 1.7)
+               if ( jQuery.isArray( selectors ) ) {
+                       var level = 1;
+
+                       while ( cur && cur.ownerDocument && cur !== context ) {
+                               for ( i = 0; i < selectors.length; i++ ) {
+
+                                       if ( jQuery( cur ).is( selectors[ i ] ) ) {
+                                               ret.push({ selector: selectors[ i ], elem: cur, level: level });
+                                       }
+                               }
+
+                               cur = cur.parentNode;
+                               level++;
+                       }
+
+                       return ret;
+               }
+
+               // String
+               var pos = POS.test( selectors ) || typeof selectors !== "string" ?
+                               jQuery( selectors, context || this.context ) :
+                               0;
+
+               for ( i = 0, l = this.length; i < l; i++ ) {
+                       cur = this[i];
+
+                       while ( cur ) {
+                               if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
+                                       ret.push( cur );
+                                       break;
+
+                               } else {
+                                       cur = cur.parentNode;
+                                       if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) {
+                                               break;
+                                       }
+                               }
+                       }
+               }
+
+               ret = ret.length > 1 ? jQuery.unique( ret ) : ret;
+
+               return this.pushStack( ret, "closest", selectors );
+       },
+
+       // Determine the position of an element within
+       // the matched set of elements
+       index: function( elem ) {
+
+               // No argument, return index in parent
+               if ( !elem ) {
+                       return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;
+               }
+
+               // index in selector
+               if ( typeof elem === "string" ) {
+                       return jQuery.inArray( this[0], jQuery( elem ) );
                }
 
                // Locate the position of the desired element
@@ -5276,29 +5556,17 @@ jQuery.fn.extend({
                        jQuery.unique( all ) );
        },
 
-       addBack: function( selector ) {
-               return this.add( selector == null ?
-                       this.prevObject : this.prevObject.filter(selector)
-               );
+       andSelf: function() {
+               return this.add( this.prevObject );
        }
 });
 
-jQuery.fn.andSelf = jQuery.fn.addBack;
-
 // A painfully simple check to see if an element is disconnected
 // from a document (should be improved, where feasible).
 function isDisconnected( node ) {
        return !node || !node.parentNode || node.parentNode.nodeType === 11;
 }
 
-function sibling( cur, dir ) {
-       do {
-               cur = cur[ dir ];
-       } while ( cur && cur.nodeType !== 1 );
-
-       return cur;
-}
-
 jQuery.each({
        parent: function( elem ) {
                var parent = elem.parentNode;
@@ -5311,10 +5579,10 @@ jQuery.each({
                return jQuery.dir( elem, "parentNode", until );
        },
        next: function( elem ) {
-               return sibling( elem, "nextSibling" );
+               return jQuery.nth( elem, 2, "nextSibling" );
        },
        prev: function( elem ) {
-               return sibling( elem, "previousSibling" );
+               return jQuery.nth( elem, 2, "previousSibling" );
        },
        nextAll: function( elem ) {
                return jQuery.dir( elem, "nextSibling" );
@@ -5337,7 +5605,7 @@ jQuery.each({
        contents: function( elem ) {
                return jQuery.nodeName( elem, "iframe" ) ?
                        elem.contentDocument || elem.contentWindow.document :
-                       jQuery.merge( [], elem.childNodes );
+                       jQuery.makeArray( elem.childNodes );
        }
 }, function( name, fn ) {
        jQuery.fn[ name ] = function( until, selector ) {
@@ -5353,11 +5621,11 @@ jQuery.each({
 
                ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
 
-               if ( this.length > 1 && rparentsprev.test( name ) ) {
+               if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
                        ret = ret.reverse();
                }
 
-               return this.pushStack( ret, name, core_slice.call( arguments ).join(",") );
+               return this.pushStack( ret, name, slice.call( arguments ).join(",") );
        };
 });
 
@@ -5385,6 +5653,19 @@ jQuery.extend({
                return matched;
        },
 
+       nth: function( cur, result, dir, elem ) {
+               result = result || 1;
+               var num = 0;
+
+               for ( ; cur; cur = cur[dir] ) {
+                       if ( cur.nodeType === 1 && ++num === result ) {
+                               break;
+                       }
+               }
+
+               return cur;
+       },
+
        sibling: function( n, elem ) {
                var r = [];
 
@@ -5432,6 +5713,10 @@ function winnow( elements, qualifier, keep ) {
                return ( jQuery.inArray( elem, qualifier ) >= 0 ) === keep;
        });
 }
+
+
+
+
 function createSafeFragment( document ) {
        var list = nodeNames.split( "|" ),
        safeFrag = document.createDocumentFragment();
@@ -5448,20 +5733,19 @@ function createSafeFragment( document ) {
 
 var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
                "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
-       rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
+       rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
        rleadingWhitespace = /^\s+/,
-       rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
+       rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
        rtagName = /<([\w:]+)/,
        rtbody = /<tbody/i,
        rhtml = /<|&#?\w+;/,
-       rnoInnerhtml = /<(?:script|style|link)/i,
+       rnoInnerhtml = /<(?:script|style)/i,
        rnocache = /<(?:script|object|embed|option|style)/i,
        rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"),
-       rcheckableType = /^(?:checkbox|radio)$/,
        // checked="checked" or checked
        rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
        rscriptType = /\/(java|ecma)script/i,
-       rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,
+       rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/,
        wrapMap = {
                option: [ 1, "<select multiple='multiple'>", "</select>" ],
                legend: [ 1, "<fieldset>", "</fieldset>" ],
@@ -5472,17 +5756,15 @@ var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figca
                area: [ 1, "<map>", "</map>" ],
                _default: [ 0, "", "" ]
        },
-       safeFragment = createSafeFragment( document ),
-       fragmentDiv = safeFragment.appendChild( document.createElement("div") );
+       safeFragment = createSafeFragment( document );
 
 wrapMap.optgroup = wrapMap.option;
 wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
 wrapMap.th = wrapMap.td;
 
-// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,
-// unless wrapped in a div with non-breaking characters in front of it.
+// IE can't serialize <link> and <script> tags normally
 if ( !jQuery.support.htmlSerialize ) {
-       wrapMap._default = [ 1, "X<div>", "</div>" ];
+       wrapMap._default = [ 1, "div<div>", "</div>" ];
 }
 
 jQuery.fn.extend({
@@ -5561,7 +5843,7 @@ jQuery.fn.extend({
 
        append: function() {
                return this.domManip(arguments, true, function( elem ) {
-                       if ( this.nodeType === 1 || this.nodeType === 11 ) {
+                       if ( this.nodeType === 1 ) {
                                this.appendChild( elem );
                        }
                });
@@ -5569,44 +5851,39 @@ jQuery.fn.extend({
 
        prepend: function() {
                return this.domManip(arguments, true, function( elem ) {
-                       if ( this.nodeType === 1 || this.nodeType === 11 ) {
+                       if ( this.nodeType === 1 ) {
                                this.insertBefore( elem, this.firstChild );
                        }
                });
        },
 
        before: function() {
-               if ( !isDisconnected( this[0] ) ) {
+               if ( this[0] && this[0].parentNode ) {
                        return this.domManip(arguments, false, function( elem ) {
                                this.parentNode.insertBefore( elem, this );
                        });
-               }
-
-               if ( arguments.length ) {
+               } else if ( arguments.length ) {
                        var set = jQuery.clean( arguments );
-                       return this.pushStack( jQuery.merge( set, this ), "before", this.selector );
+                       set.push.apply( set, this.toArray() );
+                       return this.pushStack( set, "before", arguments );
                }
        },
 
        after: function() {
-               if ( !isDisconnected( this[0] ) ) {
+               if ( this[0] && this[0].parentNode ) {
                        return this.domManip(arguments, false, function( elem ) {
                                this.parentNode.insertBefore( elem, this.nextSibling );
                        });
-               }
-
-               if ( arguments.length ) {
-                       var set = jQuery.clean( arguments );
-                       return this.pushStack( jQuery.merge( this, set ), "after", this.selector );
+               } else if ( arguments.length ) {
+                       var set = this.pushStack( this, "after", arguments );
+                       set.push.apply( set, jQuery.clean(arguments) );
+                       return set;
                }
        },
 
        // keepData is for internal use only--do not document
        remove: function( selector, keepData ) {
-               var elem,
-                       i = 0;
-
-               for ( ; (elem = this[i]) != null; i++ ) {
+               for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
                        if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
                                if ( !keepData && elem.nodeType === 1 ) {
                                        jQuery.cleanData( elem.getElementsByTagName("*") );
@@ -5623,10 +5900,7 @@ jQuery.fn.extend({
        },
 
        empty: function() {
-               var elem,
-                       i = 0;
-
-               for ( ; (elem = this[i]) != null; i++ ) {
+               for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
                        // Remove element nodes and prevent memory leaks
                        if ( elem.nodeType === 1 ) {
                                jQuery.cleanData( elem.getElementsByTagName("*") );
@@ -5659,12 +5933,11 @@ jQuery.fn.extend({
                        if ( value === undefined ) {
                                return elem.nodeType === 1 ?
                                        elem.innerHTML.replace( rinlinejQuery, "" ) :
-                                       undefined;
+                                       null;
                        }
 
-                       // See if we can take a shortcut and just use innerHTML
+
                        if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
-                               ( jQuery.support.htmlSerialize || !rnoshimcache.test( value )  ) &&
                                ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
                                !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) {
 
@@ -5693,7 +5966,7 @@ jQuery.fn.extend({
        },
 
        replaceWith: function( value ) {
-               if ( !isDisconnected( this[0] ) ) {
+               if ( this[0] && this[0].parentNode ) {
                        // Make sure that the elements are removed from the DOM before they are inserted
                        // this can help fix replacing a parent with child elements
                        if ( jQuery.isFunction( value ) ) {
@@ -5719,11 +5992,11 @@ jQuery.fn.extend({
                                        jQuery(parent).append( value );
                                }
                        });
+               } else {
+                       return this.length ?
+                               this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
+                               this;
                }
-
-               return this.length ?
-                       this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
-                       this;
        },
 
        detach: function( selector ) {
@@ -5731,78 +6004,78 @@ jQuery.fn.extend({
        },
 
        domManip: function( args, table, callback ) {
-
-               // Flatten any nested arrays
-               args = [].concat.apply( [], args );
-
-               var results, first, fragment, iNoClone,
-                       i = 0,
+               var results, first, fragment, parent,
                        value = args[0],
-                       scripts = [],
-                       l = this.length;
+                       scripts = [];
 
                // We can't cloneNode fragments that contain checked, in WebKit
-               if ( !jQuery.support.checkClone && l > 1 && typeof value === "string" && rchecked.test( value ) ) {
+               if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
                        return this.each(function() {
-                               jQuery(this).domManip( args, table, callback );
+                               jQuery(this).domManip( args, table, callback, true );
                        });
                }
 
                if ( jQuery.isFunction(value) ) {
                        return this.each(function(i) {
                                var self = jQuery(this);
-                               args[0] = value.call( this, i, table ? self.html() : undefined );
+                               args[0] = value.call(this, i, table ? self.html() : undefined);
                                self.domManip( args, table, callback );
                        });
                }
 
                if ( this[0] ) {
-                       results = jQuery.buildFragment( args, this, scripts );
+                       parent = value && value.parentNode;
+
+                       // If we're in a fragment, just use that instead of building a new one
+                       if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
+                               results = { fragment: parent };
+
+                       } else {
+                               results = jQuery.buildFragment( args, this, scripts );
+                       }
+
                        fragment = results.fragment;
-                       first = fragment.firstChild;
 
                        if ( fragment.childNodes.length === 1 ) {
-                               fragment = first;
+                               first = fragment = fragment.firstChild;
+                       } else {
+                               first = fragment.firstChild;
                        }
 
                        if ( first ) {
                                table = table && jQuery.nodeName( first, "tr" );
 
-                               // Use the original fragment for the last item instead of the first because it can end up
-                               // being emptied incorrectly in certain situations (#8070).
-                               // Fragments from the fragment cache must always be cloned and never used in place.
-                               for ( iNoClone = results.cacheable || l - 1; i < l; i++ ) {
+                               for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) {
                                        callback.call(
-                                               table && jQuery.nodeName( this[i], "table" ) ?
-                                                       findOrAppend( this[i], "tbody" ) :
+                                               table ?
+                                                       root(this[i], first) :
                                                        this[i],
-                                               i === iNoClone ?
-                                                       fragment :
-                                                       jQuery.clone( fragment, true, true )
+                                               // Make sure that we do not leak memory by inadvertently discarding
+                                               // the original fragment (which might have attached data) instead of
+                                               // using it; in addition, use the original fragment object for the last
+                                               // item instead of first because it can end up being emptied incorrectly
+                                               // in certain situations (Bug #8070).
+                                               // Fragments from the fragment cache must always be cloned and never used
+                                               // in place.
+                                               results.cacheable || ( l > 1 && i < lastIndex ) ?
+                                                       jQuery.clone( fragment, true, true ) :
+                                                       fragment
                                        );
                                }
                        }
 
-                       // Fix #11809: Avoid leaking memory
-                       fragment = first = null;
-
                        if ( scripts.length ) {
                                jQuery.each( scripts, function( i, elem ) {
                                        if ( elem.src ) {
-                                               if ( jQuery.ajax ) {
-                                                       jQuery.ajax({
-                                                               url: elem.src,
-                                                               type: "GET",
-                                                               dataType: "script",
-                                                               async: false,
-                                                               global: false,
-                                                               "throws": true
-                                                       });
-                                               } else {
-                                                       jQuery.error("no ajax");
-                                               }
+                                               jQuery.ajax({
+                                                       type: "GET",
+                                                       global: false,
+                                                       url: elem.src,
+                                                       async: false,
+                                                       dataType: "script"
+                                               });
                                        } else {
-                                               jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "" ) );
+                                               jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
                                        }
 
                                        if ( elem.parentNode ) {
@@ -5816,8 +6089,11 @@ jQuery.fn.extend({
        }
 });
 
-function findOrAppend( elem, tag ) {
-       return elem.getElementsByTagName( tag )[0] || elem.appendChild( elem.ownerDocument.createElement( tag ) );
+function root( elem, cur ) {
+       return jQuery.nodeName(elem, "table") ?
+               (elem.getElementsByTagName("tbody")[0] ||
+               elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
+               elem;
 }
 
 function cloneCopyEvent( src, dest ) {
@@ -5870,27 +6146,19 @@ function cloneFixAttributes( src, dest ) {
 
        nodeName = dest.nodeName.toLowerCase();
 
+       // IE6-8 fail to clone children inside object elements that use
+       // the proprietary classid attribute value (rather than the type
+       // attribute) to identify the type of content to display
        if ( nodeName === "object" ) {
-               // IE6-10 improperly clones children of object elements using classid.
-               // IE10 throws NoModificationAllowedError if parent is null, #12132.
-               if ( dest.parentNode ) {
-                       dest.outerHTML = src.outerHTML;
-               }
-
-               // This path appears unavoidable for IE9. When cloning an object
-               // element in IE9, the outerHTML strategy above is not sufficient.
-               // If the src has innerHTML and the destination does not,
-               // copy the src.innerHTML into the dest.innerHTML. #10324
-               if ( jQuery.support.html5Clone && (src.innerHTML && !jQuery.trim(dest.innerHTML)) ) {
-                       dest.innerHTML = src.innerHTML;
-               }
+               dest.outerHTML = src.outerHTML;
 
-       } else if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+       } else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {
                // IE6-8 fails to persist the checked state of a cloned checkbox
                // or radio button. Worse, IE6-7 fail to give the cloned element
                // a checked appearance if the defaultChecked value isn't also set
-
-               dest.defaultChecked = dest.checked = src.checked;
+               if ( src.checked ) {
+                       dest.defaultChecked = dest.checked = src.checked;
+               }
 
                // IE6-7 get confused and end up setting the value of a cloned
                // checkbox/radio button to an empty string instead of "on"
@@ -5916,21 +6184,29 @@ function cloneFixAttributes( src, dest ) {
        // Event data gets referenced instead of copied if the expando
        // gets copied too
        dest.removeAttribute( jQuery.expando );
+
+       // Clear flags for bubbling special change/submit events, they must
+       // be reattached when the newly cloned events are first activated
+       dest.removeAttribute( "_submit_attached" );
+       dest.removeAttribute( "_change_attached" );
 }
 
-jQuery.buildFragment = function( args, context, scripts ) {
-       var fragment, cacheable, cachehit,
-               first = args[ 0 ];
+jQuery.buildFragment = function( args, nodes, scripts ) {
+       var fragment, cacheable, cacheresults, doc,
+       first = args[ 0 ];
 
-       // Set context from what may come in as undefined or a jQuery collection or a node
-       context = context || document;
-       context = (context[0] || context).ownerDocument || context[0] || context;
+       // nodes may contain either an explicit document object,
+       // a jQuery collection or context object.
+       // If nodes[0] contains a valid object to assign to doc
+       if ( nodes && nodes[0] ) {
+               doc = nodes[0].ownerDocument || nodes[0];
+       }
 
        // Ensure that an attr object doesn't incorrectly stand in as a document object
        // Chrome and Firefox seem to allow this to occur and will throw exception
        // Fixes #8950
-       if ( typeof context.createDocumentFragment === "undefined" ) {
-               context = document;
+       if ( !doc.createDocumentFragment ) {
+               doc = document;
        }
 
        // Only cache "small" (1/2 KB) HTML strings that are associated with the main document
@@ -5938,26 +6214,26 @@ jQuery.buildFragment = function( args, context, scripts ) {
        // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
        // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
        // Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501
-       if ( args.length === 1 && typeof first === "string" && first.length < 512 && context === document &&
+       if ( args.length === 1 && typeof first === "string" && first.length < 512 && doc === document &&
                first.charAt(0) === "<" && !rnocache.test( first ) &&
                (jQuery.support.checkClone || !rchecked.test( first )) &&
                (jQuery.support.html5Clone || !rnoshimcache.test( first )) ) {
 
-               // Mark cacheable and look for a hit
                cacheable = true;
-               fragment = jQuery.fragments[ first ];
-               cachehit = fragment !== undefined;
+
+               cacheresults = jQuery.fragments[ first ];
+               if ( cacheresults && cacheresults !== 1 ) {
+                       fragment = cacheresults;
+               }
        }
 
        if ( !fragment ) {
-               fragment = context.createDocumentFragment();
-               jQuery.clean( args, context, fragment, scripts );
+               fragment = doc.createDocumentFragment();
+               jQuery.clean( args, doc, fragment, scripts );
+       }
 
-               // Update the cache, but only store false
-               // unless this is a second parsing of the same content
-               if ( cacheable ) {
-                       jQuery.fragments[ first ] = cachehit && fragment;
-               }
+       if ( cacheable ) {
+               jQuery.fragments[ first ] = cacheresults ? fragment : 1;
        }
 
        return { fragment: fragment, cacheable: cacheable };
@@ -5973,19 +6249,17 @@ jQuery.each({
        replaceAll: "replaceWith"
 }, function( name, original ) {
        jQuery.fn[ name ] = function( selector ) {
-               var elems,
-                       i = 0,
-                       ret = [],
+               var ret = [],
                        insert = jQuery( selector ),
-                       l = insert.length,
                        parent = this.length === 1 && this[0].parentNode;
 
-               if ( (parent == null || parent && parent.nodeType === 11 && parent.childNodes.length === 1) && l === 1 ) {
+               if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
                        insert[ original ]( this[0] );
                        return this;
+
                } else {
-                       for ( ; i < l; i++ ) {
-                               elems = ( i > 0 ? this.clone(true) : this ).get();
+                       for ( var i = 0, l = insert.length; i < l; i++ ) {
+                               var elems = ( i > 0 ? this.clone(true) : this ).get();
                                jQuery( insert[i] )[ original ]( elems );
                                ret = ret.concat( elems );
                        }
@@ -6009,26 +6283,39 @@ function getAll( elem ) {
 
 // Used in clean, fixes the defaultChecked property
 function fixDefaultChecked( elem ) {
-       if ( rcheckableType.test( elem.type ) ) {
+       if ( elem.type === "checkbox" || elem.type === "radio" ) {
                elem.defaultChecked = elem.checked;
        }
 }
+// Finds all inputs and passes them to fixDefaultChecked
+function findInputs( elem ) {
+       var nodeName = ( elem.nodeName || "" ).toLowerCase();
+       if ( nodeName === "input" ) {
+               fixDefaultChecked( elem );
+       // Skip scripts, get other children
+       } else if ( nodeName !== "script" && typeof elem.getElementsByTagName !== "undefined" ) {
+               jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
+       }
+}
+
+// Derived From: http://www.iecss.com/shimprove/javascript/shimprove.1-0-1.js
+function shimCloneNode( elem ) {
+       var div = document.createElement( "div" );
+       safeFragment.appendChild( div );
+
+       div.innerHTML = elem.outerHTML;
+       return div.firstChild;
+}
 
 jQuery.extend({
        clone: function( elem, dataAndEvents, deepDataAndEvents ) {
                var srcElements,
                        destElements,
                        i,
-                       clone;
-
-               if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {
-                       clone = elem.cloneNode( true );
-
-               // IE<=8 does not properly clone detached, unknown element nodes
-               } else {
-                       fragmentDiv.innerHTML = elem.outerHTML;
-                       fragmentDiv.removeChild( clone = fragmentDiv.firstChild );
-               }
+                       // IE<=8 does not properly clone detached, unknown element nodes
+                       clone = jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ?
+                               elem.cloneNode( true ) :
+                               shimCloneNode( elem );
 
                if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
                                (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
@@ -6076,17 +6363,17 @@ jQuery.extend({
        },
 
        clean: function( elems, context, fragment, scripts ) {
-               var j, safe, elem, tag, wrap, depth, div, hasBody, tbody, len, handleScript, jsTags,
-                       i = 0,
-                       ret = [];
+               var checkScriptType, script, j,
+                               ret = [];
+
+               context = context || document;
 
-               // Ensure that context is a document
-               if ( !context || typeof context.createDocumentFragment === "undefined" ) {
-                       context = document;
+               // !context.createElement fails in IE with an error but returns typeof 'object'
+               if ( typeof context.createElement === "undefined" ) {
+                       context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
                }
 
-               // Use the already-created safe fragment if context permits
-               for ( safe = context === document && safeFragment; (elem = elems[i]) != null; i++ ) {
+               for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
                        if ( typeof elem === "number" ) {
                                elem += "";
                        }
@@ -6100,17 +6387,27 @@ jQuery.extend({
                                if ( !rhtml.test( elem ) ) {
                                        elem = context.createTextNode( elem );
                                } else {
-                                       // Ensure a safe container in which to render the html
-                                       safe = safe || createSafeFragment( context );
-                                       div = div || safe.appendChild( context.createElement("div") );
-
                                        // Fix "XHTML"-style tags in all browsers
                                        elem = elem.replace(rxhtmlTag, "<$1></$2>");
 
+                                       // Trim whitespace, otherwise indexOf won't work as expected
+                                       var tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(),
+                                               wrap = wrapMap[ tag ] || wrapMap._default,
+                                               depth = wrap[0],
+                                               div = context.createElement("div"),
+                                               safeChildNodes = safeFragment.childNodes,
+                                               remove;
+
+                                       // Append wrapper element to unknown element safe doc fragment
+                                       if ( context === document ) {
+                                               // Use the fragment we've already created for this document
+                                               safeFragment.appendChild( div );
+                                       } else {
+                                               // Use a fragment created with the owner document
+                                               createSafeFragment( context ).appendChild( div );
+                                       }
+
                                        // Go to html and back, then peel off extra wrappers
-                                       tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase();
-                                       wrap = wrapMap[ tag ] || wrapMap._default;
-                                       depth = wrap[0];
                                        div.innerHTML = wrap[1] + elem + wrap[2];
 
                                        // Move to the right depth
@@ -6122,7 +6419,7 @@ jQuery.extend({
                                        if ( !jQuery.support.tbody ) {
 
                                                // String was a <table>, *may* have spurious <tbody>
-                                               hasBody = rtbody.test(elem);
+                                               var hasBody = rtbody.test(elem),
                                                        tbody = tag === "table" && !hasBody ?
                                                                div.firstChild && div.firstChild.childNodes :
 
@@ -6145,8 +6442,33 @@ jQuery.extend({
 
                                        elem = div.childNodes;
 
-                                       // Remember the top-level container for proper cleanup
-                                       div = safe.lastChild;
+                                       // Clear elements from DocumentFragment (safeFragment or otherwise)
+                                       // to avoid hoarding elements. Fixes #11356
+                                       if ( div ) {
+                                               div.parentNode.removeChild( div );
+
+                                               // Guard against -1 index exceptions in FF3.6
+                                               if ( safeChildNodes.length > 0 ) {
+                                                       remove = safeChildNodes[ safeChildNodes.length - 1 ];
+
+                                                       if ( remove && remove.parentNode ) {
+                                                               remove.parentNode.removeChild( remove );
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+
+                       // Resets defaultChecked for any radios and checkboxes
+                       // about to be appended to the DOM in IE 6/7 (#8060)
+                       var len;
+                       if ( !jQuery.support.appendChecked ) {
+                               if ( elem[0] && typeof (len = elem.length) === "number" ) {
+                                       for ( j = 0; j < len; j++ ) {
+                                               findInputs( elem[j] );
+                                       }
+                               } else {
+                                       findInputs( elem );
                                }
                        }
 
@@ -6157,51 +6479,22 @@ jQuery.extend({
                        }
                }
 
-               // Fix #11356: Clear elements from safeFragment
-               if ( div ) {
-                       safe.removeChild( div );
-                       elem = div = safe = null;
-               }
-
-               // Reset defaultChecked for any radios and checkboxes
-               // about to be appended to the DOM in IE 6/7 (#8060)
-               if ( !jQuery.support.appendChecked ) {
-                       for ( i = 0; (elem = ret[i]) != null; i++ ) {
-                               if ( jQuery.nodeName( elem, "input" ) ) {
-                                       fixDefaultChecked( elem );
-                               } else if ( typeof elem.getElementsByTagName !== "undefined" ) {
-                                       jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
-                               }
-                       }
-               }
-
-               // Append elements to a provided document fragment
                if ( fragment ) {
-                       // Special handling of each script element
-                       handleScript = function( elem ) {
-                               // Check if we consider it executable
-                               if ( !elem.type || rscriptType.test( elem.type ) ) {
-                                       // Detach the script and store it in the scripts array (if provided) or the fragment
-                                       // Return truthy to indicate that it has been handled
-                                       return scripts ?
-                                               scripts.push( elem.parentNode ? elem.parentNode.removeChild( elem ) : elem ) :
-                                               fragment.appendChild( elem );
-                               }
+                       checkScriptType = function( elem ) {
+                               return !elem.type || rscriptType.test( elem.type );
                        };
+                       for ( i = 0; ret[i]; i++ ) {
+                               script = ret[i];
+                               if ( scripts && jQuery.nodeName( script, "script" ) && (!script.type || rscriptType.test( script.type )) ) {
+                                       scripts.push( script.parentNode ? script.parentNode.removeChild( script ) : script );
 
-                       for ( i = 0; (elem = ret[i]) != null; i++ ) {
-                               // Check if we're done after handling an executable script
-                               if ( !( jQuery.nodeName( elem, "script" ) && handleScript( elem ) ) ) {
-                                       // Append to fragment and handle embedded scripts
-                                       fragment.appendChild( elem );
-                                       if ( typeof elem.getElementsByTagName !== "undefined" ) {
-                                               // handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration
-                                               jsTags = jQuery.grep( jQuery.merge( [], elem.getElementsByTagName("script") ), handleScript );
+                               } else {
+                                       if ( script.nodeType === 1 ) {
+                                               var jsTags = jQuery.grep( script.getElementsByTagName( "script" ), checkScriptType );
 
-                                               // Splice the scripts into ret after their former ancestor and advance our index beyond them
                                                ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
-                                               i += jsTags.length;
                                        }
+                                       fragment.appendChild( script );
                                }
                        }
                }
@@ -6209,250 +6502,81 @@ jQuery.extend({
                return ret;
        },
 
-       cleanData: function( elems, /* internal */ acceptData ) {
-               var data, id, elem, type,
-                       i = 0,
-                       internalKey = jQuery.expando,
+       cleanData: function( elems ) {
+               var data, id,
                        cache = jQuery.cache,
-                       deleteExpando = jQuery.support.deleteExpando,
-                       special = jQuery.event.special;
+                       special = jQuery.event.special,
+                       deleteExpando = jQuery.support.deleteExpando;
 
-               for ( ; (elem = elems[i]) != null; i++ ) {
+               for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+                       if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
+                               continue;
+                       }
 
-                       if ( acceptData || jQuery.acceptData( elem ) ) {
+                       id = elem[ jQuery.expando ];
 
-                               id = elem[ internalKey ];
-                               data = id && cache[ id ];
+                       if ( id ) {
+                               data = cache[ id ];
 
-                               if ( data ) {
-                                       if ( data.events ) {
-                                               for ( type in data.events ) {
-                                                       if ( special[ type ] ) {
-                                                               jQuery.event.remove( elem, type );
+                               if ( data && data.events ) {
+                                       for ( var type in data.events ) {
+                                               if ( special[ type ] ) {
+                                                       jQuery.event.remove( elem, type );
 
-                                                       // This is a shortcut to avoid jQuery.event.remove's overhead
-                                                       } else {
-                                                               jQuery.removeEvent( elem, type, data.handle );
-                                                       }
+                                               // This is a shortcut to avoid jQuery.event.remove's overhead
+                                               } else {
+                                                       jQuery.removeEvent( elem, type, data.handle );
                                                }
                                        }
 
-                                       // Remove cache only if it was not already removed by jQuery.event.remove
-                                       if ( cache[ id ] ) {
-
-                                               delete cache[ id ];
-
-                                               // IE does not allow us to delete expando properties from nodes,
-                                               // nor does it have a removeAttribute function on Document nodes;
-                                               // we must handle all of these cases
-                                               if ( deleteExpando ) {
-                                                       delete elem[ internalKey ];
-
-                                               } else if ( elem.removeAttribute ) {
-                                                       elem.removeAttribute( internalKey );
+                                       // Null the DOM reference to avoid IE6/7/8 leak (#7054)
+                                       if ( data.handle ) {
+                                               data.handle.elem = null;
+                                       }
+                               }
 
-                                               } else {
-                                                       elem[ internalKey ] = null;
-                                               }
+                               if ( deleteExpando ) {
+                                       delete elem[ jQuery.expando ];
 
-                                               jQuery.deletedIds.push( id );
-                                       }
+                               } else if ( elem.removeAttribute ) {
+                                       elem.removeAttribute( jQuery.expando );
                                }
+
+                               delete cache[ id ];
                        }
                }
        }
 });
-// Limit scope pollution from any deprecated API
-(function() {
-
-var matched, browser;
-
-// Use of jQuery.browser is frowned upon.
-// More details: http://api.jquery.com/jQuery.browser
-// jQuery.uaMatch maintained for back-compat
-jQuery.uaMatch = function( ua ) {
-       ua = ua.toLowerCase();
-
-       var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
-               /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
-               /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
-               /(msie) ([\w.]+)/.exec( ua ) ||
-               ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
-               [];
-
-       return {
-               browser: match[ 1 ] || "",
-               version: match[ 2 ] || "0"
-       };
-};
 
-matched = jQuery.uaMatch( navigator.userAgent );
-browser = {};
-
-if ( matched.browser ) {
-       browser[ matched.browser ] = true;
-       browser.version = matched.version;
-}
-
-// Deprecated, use jQuery.browser.webkit instead
-// Maintained for back-compat only
-if ( browser.webkit ) {
-       browser.safari = true;
-}
 
-jQuery.browser = browser;
 
-jQuery.sub = function() {
-       function jQuerySub( selector, context ) {
-               return new jQuerySub.fn.init( selector, context );
-       }
-       jQuery.extend( true, jQuerySub, this );
-       jQuerySub.superclass = this;
-       jQuerySub.fn = jQuerySub.prototype = this();
-       jQuerySub.fn.constructor = jQuerySub;
-       jQuerySub.sub = this.sub;
-       jQuerySub.fn.init = function init( selector, context ) {
-               if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
-                       context = jQuerySub( context );
-               }
 
-               return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
-       };
-       jQuerySub.fn.init.prototype = jQuerySub.fn;
-       var rootjQuerySub = jQuerySub(document);
-       return jQuerySub;
-};
-       
-})();
-var curCSS, iframe, iframeDoc,
-       ralpha = /alpha\([^)]*\)/i,
+var ralpha = /alpha\([^)]*\)/i,
        ropacity = /opacity=([^)]*)/,
-       rposition = /^(top|right|bottom|left)$/,
+       // fixed for IE9, see #8346
+       rupper = /([A-Z]|^ms)/g,
+       rnum = /^[\-+]?(?:\d*\.)?\d+$/i,
+       rnumnonpx = /^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,
+       rrelNum = /^([\-+])=([\-+.\de]+)/,
        rmargin = /^margin/,
-       rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ),
-       rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ),
-       rrelNum = new RegExp( "^([-+])=(" + core_pnum + ")", "i" ),
-       elemdisplay = {},
 
        cssShow = { position: "absolute", visibility: "hidden", display: "block" },
-       cssNormalTransform = {
-               letterSpacing: 0,
-               fontWeight: 400,
-               lineHeight: 1
-       },
 
+       // order is important!
        cssExpand = [ "Top", "Right", "Bottom", "Left" ],
-       cssPrefixes = [ "Webkit", "O", "Moz", "ms" ],
-
-       eventsToggle = jQuery.fn.toggle;
 
-// return a css property mapped to a potentially vendor prefixed property
-function vendorPropName( style, name ) {
+       curCSS,
 
-       // shortcut for names that are not vendor prefixed
-       if ( name in style ) {
-               return name;
-       }
-
-       // check for vendor prefixed names
-       var capName = name.charAt(0).toUpperCase() + name.slice(1),
-               origName = name,
-               i = cssPrefixes.length;
-
-       while ( i-- ) {
-               name = cssPrefixes[ i ] + capName;
-               if ( name in style ) {
-                       return name;
-               }
-       }
-
-       return origName;
-}
-
-function isHidden( elem, el ) {
-       elem = el || elem;
-       return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
-}
-
-function showHide( elements, show ) {
-       var elem, display,
-               values = [],
-               index = 0,
-               length = elements.length;
-
-       for ( ; index < length; index++ ) {
-               elem = elements[ index ];
-               if ( !elem.style ) {
-                       continue;
-               }
-               values[ index ] = jQuery._data( elem, "olddisplay" );
-               if ( show ) {
-                       // Reset the inline display of this element to learn if it is
-                       // being hidden by cascaded rules or not
-                       if ( !values[ index ] && elem.style.display === "none" ) {
-                               elem.style.display = "";
-                       }
-
-                       // Set elements which have been overridden with display: none
-                       // in a stylesheet to whatever the default browser style is
-                       // for such an element
-                       if ( elem.style.display === "" && isHidden( elem ) ) {
-                               values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) );
-                       }
-               } else {
-                       display = curCSS( elem, "display" );
-
-                       if ( !values[ index ] && display !== "none" ) {
-                               jQuery._data( elem, "olddisplay", display );
-                       }
-               }
-       }
-
-       // Set the display of most of the elements in a second loop
-       // to avoid the constant reflow
-       for ( index = 0; index < length; index++ ) {
-               elem = elements[ index ];
-               if ( !elem.style ) {
-                       continue;
-               }
-               if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
-                       elem.style.display = show ? values[ index ] || "" : "none";
-               }
-       }
-
-       return elements;
-}
-
-jQuery.fn.extend({
-       css: function( name, value ) {
-               return jQuery.access( this, function( elem, name, value ) {
-                       return value !== undefined ?
-                               jQuery.style( elem, name, value ) :
-                               jQuery.css( elem, name );
-               }, name, value, arguments.length > 1 );
-       },
-       show: function() {
-               return showHide( this, true );
-       },
-       hide: function() {
-               return showHide( this );
-       },
-       toggle: function( state, fn2 ) {
-               var bool = typeof state === "boolean";
+       getComputedStyle,
+       currentStyle;
 
-               if ( jQuery.isFunction( state ) && jQuery.isFunction( fn2 ) ) {
-                       return eventsToggle.apply( this, arguments );
-               }
-
-               return this.each(function() {
-                       if ( bool ? state : isHidden( this ) ) {
-                               jQuery( this ).show();
-                       } else {
-                               jQuery( this ).hide();
-                       }
-               });
-       }
-});
+jQuery.fn.css = function( name, value ) {
+       return jQuery.access( this, function( elem, name, value ) {
+               return value !== undefined ?
+                       jQuery.style( elem, name, value ) :
+                       jQuery.css( elem, name );
+       }, name, value, arguments.length > 1 );
+};
 
 jQuery.extend({
        // Add in style property hooks for overriding the default
@@ -6465,6 +6589,8 @@ jQuery.extend({
                                        var ret = curCSS( elem, "opacity" );
                                        return ret === "" ? "1" : ret;
 
+                               } else {
+                                       return elem.style.opacity;
                                }
                        }
                }
@@ -6497,15 +6623,10 @@ jQuery.extend({
                }
 
                // Make sure that we're working with the right name
-               var ret, type, hooks,
-                       origName = jQuery.camelCase( name ),
-                       style = elem.style;
-
-               name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
+               var ret, type, origName = jQuery.camelCase( name ),
+                       style = elem.style, hooks = jQuery.cssHooks[ origName ];
 
-               // gets hook for the prefixed version
-               // followed by the unprefixed version
-               hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+               name = jQuery.cssProps[ origName ] || origName;
 
                // Check if we're setting a value
                if ( value !== undefined ) {
@@ -6513,7 +6634,7 @@ jQuery.extend({
 
                        // convert relative number strings (+= or -=) to relative numbers. #7345
                        if ( type === "string" && (ret = rrelNum.exec( value )) ) {
-                               value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
+                               value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) );
                                // Fixes bug #9237
                                type = "number";
                        }
@@ -6529,7 +6650,7 @@ jQuery.extend({
                        }
 
                        // If a hook was provided, use that value, otherwise just set the specified value
-                       if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
+                       if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
                                // Wrapped to prevent IE from throwing errors when 'invalid' values are provided
                                // Fixes bug #5509
                                try {
@@ -6548,44 +6669,33 @@ jQuery.extend({
                }
        },
 
-       css: function( elem, name, numeric, extra ) {
-               var val, num, hooks,
-                       origName = jQuery.camelCase( name );
+       css: function( elem, name, extra ) {
+               var ret, hooks;
 
                // Make sure that we're working with the right name
-               name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
+               name = jQuery.camelCase( name );
+               hooks = jQuery.cssHooks[ name ];
+               name = jQuery.cssProps[ name ] || name;
 
-               // gets hook for the prefixed version
-               // followed by the unprefixed version
-               hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+               // cssFloat needs a special treatment
+               if ( name === "cssFloat" ) {
+                       name = "float";
+               }
 
                // If a hook was provided get the computed value from there
-               if ( hooks && "get" in hooks ) {
-                       val = hooks.get( elem, true, extra );
-               }
+               if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
+                       return ret;
 
                // Otherwise, if a way to get the computed value exists, use that
-               if ( val === undefined ) {
-                       val = curCSS( elem, name );
-               }
-
-               //convert "normal" to computed value
-               if ( val === "normal" && name in cssNormalTransform ) {
-                       val = cssNormalTransform[ name ];
-               }
-
-               // Return, converting to number if forced or a qualifier was provided and val looks numeric
-               if ( numeric || extra !== undefined ) {
-                       num = parseFloat( val );
-                       return numeric || jQuery.isNumeric( num ) ? num || 0 : val;
+               } else if ( curCSS ) {
+                       return curCSS( elem, name );
                }
-               return val;
        },
 
        // A method for quickly swapping in/out CSS properties to get correct calculations
        swap: function( elem, options, callback ) {
-               var ret, name,
-                       old = {};
+               var old = {},
+                       ret, name;
 
                // Remember the old values, and insert the new ones
                for ( name in options ) {
@@ -6604,51 +6714,49 @@ jQuery.extend({
        }
 });
 
-// NOTE: To any future maintainer, we've used both window.getComputedStyle
-// and getComputedStyle here to produce a better gzip size
-if ( window.getComputedStyle ) {
-       curCSS = function( elem, name ) {
-               var ret, width, minWidth, maxWidth,
-                       computed = getComputedStyle( elem, null ),
+// DEPRECATED in 1.3, Use jQuery.css() instead
+jQuery.curCSS = jQuery.css;
+
+if ( document.defaultView && document.defaultView.getComputedStyle ) {
+       getComputedStyle = function( elem, name ) {
+               var ret, defaultView, computedStyle, width,
                        style = elem.style;
 
-               if ( computed ) {
+               name = name.replace( rupper, "-$1" ).toLowerCase();
 
-                       ret = computed[ name ];
+               if ( (defaultView = elem.ownerDocument.defaultView) &&
+                               (computedStyle = defaultView.getComputedStyle( elem, null )) ) {
+
+                       ret = computedStyle.getPropertyValue( name );
                        if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
                                ret = jQuery.style( elem, name );
                        }
+               }
 
-                       // A tribute to the "awesome hack by Dean Edwards"
-                       // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right
-                       // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
-                       // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
-                       if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
-                               width = style.width;
-                               minWidth = style.minWidth;
-                               maxWidth = style.maxWidth;
-
-                               style.minWidth = style.maxWidth = style.width = ret;
-                               ret = computed.width;
-
-                               style.width = width;
-                               style.minWidth = minWidth;
-                               style.maxWidth = maxWidth;
-                       }
+               // A tribute to the "awesome hack by Dean Edwards"
+               // WebKit uses "computed value (percentage if specified)" instead of "used value" for margins
+               // which is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
+               if ( !jQuery.support.pixelMargin && computedStyle && rmargin.test( name ) && rnumnonpx.test( ret ) ) {
+                       width = style.width;
+                       style.width = ret;
+                       ret = computedStyle.width;
+                       style.width = width;
                }
 
                return ret;
        };
-} else if ( document.documentElement.currentStyle ) {
-       curCSS = function( elem, name ) {
-               var left, rsLeft,
+}
+
+if ( document.documentElement.currentStyle ) {
+       currentStyle = function( elem, name ) {
+               var left, rsLeft, uncomputed,
                        ret = elem.currentStyle && elem.currentStyle[ name ],
                        style = elem.style;
 
                // Avoid setting ret to empty string here
                // so we don't default to auto
-               if ( ret == null && style && style[ name ] ) {
-                       ret = style[ name ];
+               if ( ret == null && style && (uncomputed = style[ name ]) ) {
+                       ret = uncomputed;
                }
 
                // From the awesome hack by Dean Edwards
@@ -6656,9 +6764,7 @@ if ( window.getComputedStyle ) {
 
                // If we're not dealing with a regular pixel number
                // but a number that has a weird ending, we need to convert it to pixels
-               // but not position css attributes, as those are proportional to the parent element instead
-               // and we can't measure the parent instead because it might trigger a "stacking dolls" problem
-               if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {
+               if ( rnumnonpx.test( ret ) ) {
 
                        // Remember the original values
                        left = style.left;
@@ -6682,142 +6788,67 @@ if ( window.getComputedStyle ) {
        };
 }
 
-function setPositiveNumber( elem, value, subtract ) {
-       var matches = rnumsplit.exec( value );
-       return matches ?
-                       Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
-                       value;
-}
-
-function augmentWidthOrHeight( elem, name, extra, isBorderBox ) {
-       var i = extra === ( isBorderBox ? "border" : "content" ) ?
-               // If we already have the right measurement, avoid augmentation
-               4 :
-               // Otherwise initialize for horizontal or vertical properties
-               name === "width" ? 1 : 0,
-
-               val = 0;
-
-       for ( ; i < 4; i += 2 ) {
-               // both box models exclude margin, so add it if we want it
-               if ( extra === "margin" ) {
-                       // we use jQuery.css instead of curCSS here
-                       // because of the reliableMarginRight CSS hook!
-                       val += jQuery.css( elem, extra + cssExpand[ i ], true );
-               }
-
-               // From this point on we use curCSS for maximum performance (relevant in animations)
-               if ( isBorderBox ) {
-                       // border-box includes padding, so remove it if we want content
-                       if ( extra === "content" ) {
-                               val -= parseFloat( curCSS( elem, "padding" + cssExpand[ i ] ) ) || 0;
-                       }
-
-                       // at this point, extra isn't border nor margin, so remove border
-                       if ( extra !== "margin" ) {
-                               val -= parseFloat( curCSS( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
-                       }
-               } else {
-                       // at this point, extra isn't content, so add padding
-                       val += parseFloat( curCSS( elem, "padding" + cssExpand[ i ] ) ) || 0;
-
-                       // at this point, extra isn't content nor padding, so add border
-                       if ( extra !== "padding" ) {
-                               val += parseFloat( curCSS( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
-                       }
-               }
-       }
-
-       return val;
-}
+curCSS = getComputedStyle || currentStyle;
 
 function getWidthOrHeight( elem, name, extra ) {
 
-       // Start with offset property, which is equivalent to the border-box value
+       // Start with offset property
        var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
-               valueIsBorderBox = true,
-               isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing" ) === "border-box";
-
-       if ( val <= 0 ) {
-               // Fall back to computed then uncomputed css if necessary
-               val = curCSS( elem, name );
-               if ( val < 0 || val == null ) {
-                       val = elem.style[ name ];
-               }
-
-               // Computed unit is not pixels. Stop here and return.
-               if ( rnumnonpx.test(val) ) {
-                       return val;
+               i = name === "width" ? 1 : 0,
+               len = 4;
+
+       if ( val > 0 ) {
+               if ( extra !== "border" ) {
+                       for ( ; i < len; i += 2 ) {
+                               if ( !extra ) {
+                                       val -= parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0;
+                               }
+                               if ( extra === "margin" ) {
+                                       val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ] ) ) || 0;
+                               } else {
+                                       val -= parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
+                               }
+                       }
                }
 
-               // we need the check for style in case a browser which returns unreliable values
-               // for getComputedStyle silently falls back to the reliable elem.style
-               valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] );
-
-               // Normalize "", auto, and prepare for extra
-               val = parseFloat( val ) || 0;
+               return val + "px";
        }
 
-       // use the active box-sizing model to add/subtract irrelevant styles
-       return ( val +
-               augmentWidthOrHeight(
-                       elem,
-                       name,
-                       extra || ( isBorderBox ? "border" : "content" ),
-                       valueIsBorderBox
-               )
-       ) + "px";
-}
-
+       // Fall back to computed then uncomputed css if necessary
+       val = curCSS( elem, name );
+       if ( val < 0 || val == null ) {
+               val = elem.style[ name ];
+       }
 
-// Try to determine the default display value of an element
-function css_defaultDisplay( nodeName ) {
-       if ( elemdisplay[ nodeName ] ) {
-               return elemdisplay[ nodeName ];
+       // Computed unit is not pixels. Stop here and return.
+       if ( rnumnonpx.test(val) ) {
+               return val;
        }
 
-       var elem = jQuery( "<" + nodeName + ">" ).appendTo( document.body ),
-               display = elem.css("display");
-       elem.remove();
-
-       // If the simple way fails,
-       // get element's real default display by attaching it to a temp iframe
-       if ( display === "none" || display === "" ) {
-               // Use the already-created iframe if possible
-               iframe = document.body.appendChild(
-                       iframe || jQuery.extend( document.createElement("iframe"), {
-                               frameBorder: 0,
-                               width: 0,
-                               height: 0
-                       })
-               );
+       // Normalize "", auto, and prepare for extra
+       val = parseFloat( val ) || 0;
 
-               // Create a cacheable copy of the iframe document on first call.
-               // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
-               // document to it; WebKit & Firefox won't allow reusing the iframe document.
-               if ( !iframeDoc || !iframe.createElement ) {
-                       iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
-                       iframeDoc.write("<!doctype html><html><body>");
-                       iframeDoc.close();
+       // Add padding, border, margin
+       if ( extra ) {
+               for ( ; i < len; i += 2 ) {
+                       val += parseFloat( jQuery.css( elem, "padding" + cssExpand[ i ] ) ) || 0;
+                       if ( extra !== "padding" ) {
+                               val += parseFloat( jQuery.css( elem, "border" + cssExpand[ i ] + "Width" ) ) || 0;
+                       }
+                       if ( extra === "margin" ) {
+                               val += parseFloat( jQuery.css( elem, extra + cssExpand[ i ]) ) || 0;
+                       }
                }
-
-               elem = iframeDoc.body.appendChild( iframeDoc.createElement(nodeName) );
-
-               display = curCSS( elem, "display" );
-               document.body.removeChild( iframe );
        }
 
-       // Store the correct default display
-       elemdisplay[ nodeName ] = display;
-
-       return display;
+       return val + "px";
 }
 
 jQuery.each([ "height", "width" ], function( i, name ) {
        jQuery.cssHooks[ name ] = {
                get: function( elem, computed, extra ) {
                        if ( computed ) {
-                               if ( elem.offsetWidth !== 0 || curCSS( elem, "display" ) !== "none" ) {
+                               if ( elem.offsetWidth !== 0 ) {
                                        return getWidthOrHeight( elem, name, extra );
                                } else {
                                        return jQuery.swap( elem, cssShow, function() {
@@ -6827,15 +6858,10 @@ jQuery.each([ "height", "width" ], function( i, name ) {
                        }
                },
 
-               set: function( elem, value, extra ) {
-                       return setPositiveNumber( elem, value, extra ?
-                               augmentWidthOrHeight(
-                                       elem,
-                                       name,
-                                       extra,
-                                       jQuery.support.boxSizing && jQuery.css( elem, "boxSizing" ) === "border-box"
-                               ) : 0
-                       );
+               set: function( elem, value ) {
+                       return rnum.test( value ) ?
+                               value + "px" :
+                               value;
                }
        };
 });
@@ -6845,7 +6871,7 @@ if ( !jQuery.support.opacity ) {
                get: function( elem, computed ) {
                        // IE uses filters for opacity
                        return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
-                               ( 0.01 * parseFloat( RegExp.$1 ) ) + "" :
+                               ( parseFloat( RegExp.$1 ) / 100 ) + "" :
                                computed ? "1" : "";
                },
 
@@ -6860,8 +6886,7 @@ if ( !jQuery.support.opacity ) {
                        style.zoom = 1;
 
                        // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
-                       if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" &&
-                               style.removeAttribute ) {
+                       if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) {
 
                                // Setting style.filter to null, "" & " " still leave "filter:" in the cssText
                                // if "filter:" is present at all, clearType is disabled, we want to avoid this
@@ -6882,9 +6907,9 @@ if ( !jQuery.support.opacity ) {
        };
 }
 
-// These hooks cannot be added until DOM ready because the support test
-// for it is not run until after DOM ready
 jQuery(function() {
+       // This hook cannot be added until DOM ready because the support test
+       // for it is not run until after DOM ready
        if ( !jQuery.support.reliableMarginRight ) {
                jQuery.cssHooks.marginRight = {
                        get: function( elem, computed ) {
@@ -6892,35 +6917,22 @@ jQuery(function() {
                                // Work around by temporarily setting element display to inline-block
                                return jQuery.swap( elem, { "display": "inline-block" }, function() {
                                        if ( computed ) {
-                                               return curCSS( elem, "marginRight" );
+                                               return curCSS( elem, "margin-right" );
+                                       } else {
+                                               return elem.style.marginRight;
                                        }
                                });
                        }
                };
        }
-
-       // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
-       // getComputedStyle returns percent when specified for top/left/bottom/right
-       // rather than make the css module depend on the offset module, we just check for it here
-       if ( !jQuery.support.pixelPosition && jQuery.fn.position ) {
-               jQuery.each( [ "top", "left" ], function( i, prop ) {
-                       jQuery.cssHooks[ prop ] = {
-                               get: function( elem, computed ) {
-                                       if ( computed ) {
-                                               var ret = curCSS( elem, prop );
-                                               // if curCSS returns percentage, fallback to offset
-                                               return rnumnonpx.test( ret ) ? jQuery( elem ).position()[ prop ] + "px" : ret;
-                                       }
-                               }
-                       };
-               });
-       }
-
 });
 
 if ( jQuery.expr && jQuery.expr.filters ) {
        jQuery.expr.filters.hidden = function( elem ) {
-               return ( elem.offsetWidth === 0 && elem.offsetHeight === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || curCSS( elem, "display" )) === "none");
+               var width = elem.offsetWidth,
+                       height = elem.offsetHeight;
+
+               return ( width === 0 && height === 0 ) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
        };
 
        jQuery.expr.filters.visible = function( elem ) {
@@ -6934,6 +6946,7 @@ jQuery.each({
        padding: "",
        border: "Width"
 }, function( prefix, suffix ) {
+
        jQuery.cssHooks[ prefix + suffix ] = {
                expand: function( value ) {
                        var i,
@@ -6950,127 +6963,27 @@ jQuery.each({
                        return expanded;
                }
        };
-
-       if ( !rmargin.test( prefix ) ) {
-               jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
-       }
-});
-var r20 = /%20/g,
-       rbracket = /\[\]$/,
-       rCRLF = /\r?\n/g,
-       rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
-       rselectTextarea = /^(?:select|textarea)/i;
-
-jQuery.fn.extend({
-       serialize: function() {
-               return jQuery.param( this.serializeArray() );
-       },
-       serializeArray: function() {
-               return this.map(function(){
-                       return this.elements ? jQuery.makeArray( this.elements ) : this;
-               })
-               .filter(function(){
-                       return this.name && !this.disabled &&
-                               ( this.checked || rselectTextarea.test( this.nodeName ) ||
-                                       rinput.test( this.type ) );
-               })
-               .map(function( i, elem ){
-                       var val = jQuery( this ).val();
-
-                       return val == null ?
-                               null :
-                               jQuery.isArray( val ) ?
-                                       jQuery.map( val, function( val, i ){
-                                               return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-                                       }) :
-                                       { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-               }).get();
-       }
 });
 
-//Serialize an array of form elements or a set of
-//key/values into a query string
-jQuery.param = function( a, traditional ) {
-       var prefix,
-               s = [],
-               add = function( key, value ) {
-                       // If value is a function, invoke it and return its value
-                       value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
-                       s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
-               };
-
-       // Set traditional to true for jQuery <= 1.3.2 behavior.
-       if ( traditional === undefined ) {
-               traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
-       }
-
-       // If an array was passed in, assume that it is an array of form elements.
-       if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
-               // Serialize the form elements
-               jQuery.each( a, function() {
-                       add( this.name, this.value );
-               });
-
-       } else {
-               // If traditional, encode the "old" way (the way 1.3.2 or older
-               // did it), otherwise encode params recursively.
-               for ( prefix in a ) {
-                       buildParams( prefix, a[ prefix ], traditional, add );
-               }
-       }
-
-       // Return the resulting serialization
-       return s.join( "&" ).replace( r20, "+" );
-};
-
-function buildParams( prefix, obj, traditional, add ) {
-       var name;
-
-       if ( jQuery.isArray( obj ) ) {
-               // Serialize array item.
-               jQuery.each( obj, function( i, v ) {
-                       if ( traditional || rbracket.test( prefix ) ) {
-                               // Treat each array item as a scalar.
-                               add( prefix, v );
-
-                       } else {
-                               // If array item is non-scalar (array or object), encode its
-                               // numeric index to resolve deserialization ambiguity issues.
-                               // Note that rack (as of 1.0.0) can't currently deserialize
-                               // nested arrays properly, and attempting to do so may cause
-                               // a server error. Possible fixes are to modify rack's
-                               // deserialization algorithm or to provide an option or flag
-                               // to force array serialization to be shallow.
-                               buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
-                       }
-               });
 
-       } else if ( !traditional && jQuery.type( obj ) === "object" ) {
-               // Serialize object item.
-               for ( name in obj ) {
-                       buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
-               }
 
-       } else {
-               // Serialize scalar item.
-               add( prefix, obj );
-       }
-}
-var // Document location
-       ajaxLocation,
-       // Document location segments
-       ajaxLocParts,
 
+var r20 = /%20/g,
+       rbracket = /\[\]$/,
+       rCRLF = /\r?\n/g,
        rhash = /#.*$/,
        rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
+       rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
        // #7653, #8125, #8152: local protocol detection
        rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
        rnoContent = /^(?:GET|HEAD)$/,
        rprotocol = /^\/\//,
        rquery = /\?/,
        rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
+       rselectTextarea = /^(?:select|textarea)/i,
+       rspacesAjax = /\s+/,
        rts = /([?&])_=[^&]*/,
-       rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
+       rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,
 
        // Keep a copy of the old load method
        _load = jQuery.fn.load,
@@ -7093,6 +7006,12 @@ var // Document location
         */
        transports = {},
 
+       // Document location
+       ajaxLocation,
+
+       // Document location segments
+       ajaxLocParts,
+
        // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
        allTypes = ["*/"] + ["*"];
 
@@ -7122,12 +7041,14 @@ function addToPrefiltersOrTransports( structure ) {
                        dataTypeExpression = "*";
                }
 
-               var dataType, list, placeBefore,
-                       dataTypes = dataTypeExpression.toLowerCase().split( core_rspace ),
-                       i = 0,
-                       length = dataTypes.length;
-
                if ( jQuery.isFunction( func ) ) {
+                       var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
+                               i = 0,
+                               length = dataTypes.length,
+                               dataType,
+                               list,
+                               placeBefore;
+
                        // For each dataType in the dataTypeExpression
                        for ( ; i < length; i++ ) {
                                dataType = dataTypes[ i ];
@@ -7154,11 +7075,11 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX
 
        inspected[ dataType ] = true;
 
-       var selection,
-               list = structure[ dataType ],
+       var list = structure[ dataType ],
                i = 0,
                length = list ? list.length : 0,
-               executeOnly = ( structure === prefilters );
+               executeOnly = ( structure === prefilters ),
+               selection;
 
        for ( ; i < length && ( executeOnly || !selection ); i++ ) {
                selection = list[ i ]( options, originalOptions, jqXHR );
@@ -7201,75 +7122,109 @@ function ajaxExtend( target, src ) {
        }
 }
 
-jQuery.fn.load = function( url, params, callback ) {
-       if ( typeof url !== "string" && _load ) {
-               return _load.apply( this, arguments );
-       }
-
-       // Don't do a request if no elements are being requested
-       if ( !this.length ) {
-               return this;
-       }
-
-       var selector, type, response,
-               self = this,
-               off = url.indexOf(" ");
-
-       if ( off >= 0 ) {
-               selector = url.slice( off, url.length );
-               url = url.slice( 0, off );
-       }
+jQuery.fn.extend({
+       load: function( url, params, callback ) {
+               if ( typeof url !== "string" && _load ) {
+                       return _load.apply( this, arguments );
 
-       // If it's a function
-       if ( jQuery.isFunction( params ) ) {
+               // Don't do a request if no elements are being requested
+               } else if ( !this.length ) {
+                       return this;
+               }
 
-               // We assume that it's the callback
-               callback = params;
-               params = undefined;
+               var off = url.indexOf( " " );
+               if ( off >= 0 ) {
+                       var selector = url.slice( off, url.length );
+                       url = url.slice( 0, off );
+               }
 
-       // Otherwise, build a param string
-       } else if ( typeof params === "object" ) {
-               type = "POST";
-       }
+               // Default to a GET request
+               var type = "GET";
 
-       // Request the remote document
-       jQuery.ajax({
-               url: url,
+               // If the second parameter was provided
+               if ( params ) {
+                       // If it's a function
+                       if ( jQuery.isFunction( params ) ) {
+                               // We assume that it's the callback
+                               callback = params;
+                               params = undefined;
 
-               // if "type" variable is undefined, then "GET" method will be used
-               type: type,
-               dataType: "html",
-               data: params,
-               complete: function( jqXHR, status ) {
-                       if ( callback ) {
-                               self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
+                       // Otherwise, build a param string
+                       } else if ( typeof params === "object" ) {
+                               params = jQuery.param( params, jQuery.ajaxSettings.traditional );
+                               type = "POST";
                        }
                }
-       }).done(function( responseText ) {
 
-               // Save response for use in complete callback
-               response = arguments;
+               var self = this;
 
-               // See if a selector was specified
-               self.html( selector ?
-
-                       // Create a dummy div to hold the results
-                       jQuery("<div>")
+               // Request the remote document
+               jQuery.ajax({
+                       url: url,
+                       type: type,
+                       dataType: "html",
+                       data: params,
+                       // Complete callback (responseText is used internally)
+                       complete: function( jqXHR, status, responseText ) {
+                               // Store the response as specified by the jqXHR object
+                               responseText = jqXHR.responseText;
+                               // If successful, inject the HTML into all the matched elements
+                               if ( jqXHR.isResolved() ) {
+                                       // #4825: Get the actual response in case
+                                       // a dataFilter is present in ajaxSettings
+                                       jqXHR.done(function( r ) {
+                                               responseText = r;
+                                       });
+                                       // See if a selector was specified
+                                       self.html( selector ?
+                                               // Create a dummy div to hold the results
+                                               jQuery("<div>")
+                                                       // inject the contents of the document in, removing the scripts
+                                                       // to avoid any 'Permission Denied' errors in IE
+                                                       .append(responseText.replace(rscript, ""))
+
+                                                       // Locate the specified elements
+                                                       .find(selector) :
+
+                                               // If not, just inject the full result
+                                               responseText );
+                               }
 
-                               // inject the contents of the document in, removing the scripts
-                               // to avoid any 'Permission Denied' errors in IE
-                               .append( responseText.replace( rscript, "" ) )
+                               if ( callback ) {
+                                       self.each( callback, [ responseText, status, jqXHR ] );
+                               }
+                       }
+               });
 
-                               // Locate the specified elements
-                               .find( selector ) :
+               return this;
+       },
 
-                       // If not, just inject the full result
-                       responseText );
+       serialize: function() {
+               return jQuery.param( this.serializeArray() );
+       },
 
-       });
+       serializeArray: function() {
+               return this.map(function(){
+                       return this.elements ? jQuery.makeArray( this.elements ) : this;
+               })
+               .filter(function(){
+                       return this.name && !this.disabled &&
+                               ( this.checked || rselectTextarea.test( this.nodeName ) ||
+                                       rinput.test( this.type ) );
+               })
+               .map(function( i, elem ){
+                       var val = jQuery( this ).val();
 
-       return this;
-};
+                       return val == null ?
+                               null :
+                               jQuery.isArray( val ) ?
+                                       jQuery.map( val, function( val, i ){
+                                               return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+                                       }) :
+                                       { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+               }).get();
+       }
+});
 
 // Attach a bunch of functions for handling common AJAX events
 jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){
@@ -7338,7 +7293,6 @@ jQuery.extend({
                username: null,
                password: null,
                cache: null,
-               throws: false,
                traditional: false,
                headers: {},
                */
@@ -7405,22 +7359,7 @@ jQuery.extend({
                // Force options to be an object
                options = options || {};
 
-               var // ifModified key
-                       ifModifiedKey,
-                       // Response headers
-                       responseHeadersString,
-                       responseHeaders,
-                       // transport
-                       transport,
-                       // timeout handle
-                       timeoutTimer,
-                       // Cross-domain detection vars
-                       parts,
-                       // To know if global events are to be dispatched
-                       fireGlobals,
-                       // Loop variable
-                       i,
-                       // Create the final options object
+               var // Create the final options object
                        s = jQuery.ajaxSetup( {}, options ),
                        // Callbacks context
                        callbackContext = s.context || s,
@@ -7435,13 +7374,26 @@ jQuery.extend({
                        completeDeferred = jQuery.Callbacks( "once memory" ),
                        // Status-dependent callbacks
                        statusCode = s.statusCode || {},
+                       // ifModified key
+                       ifModifiedKey,
                        // Headers (they are sent all at once)
                        requestHeaders = {},
                        requestHeadersNames = {},
+                       // Response headers
+                       responseHeadersString,
+                       responseHeaders,
+                       // transport
+                       transport,
+                       // timeout handle
+                       timeoutTimer,
+                       // Cross-domain detection vars
+                       parts,
                        // The jqXHR state
                        state = 0,
-                       // Default abort message
-                       strAbort = "canceled",
+                       // To know if global events are to be dispatched
+                       fireGlobals,
+                       // Loop variable
+                       i,
                        // Fake xhr
                        jqXHR = {
 
@@ -7487,7 +7439,7 @@ jQuery.extend({
 
                                // Cancel the request
                                abort: function( statusText ) {
-                                       statusText = statusText || strAbort;
+                                       statusText = statusText || "abort";
                                        if ( transport ) {
                                                transport.abort( statusText );
                                        }
@@ -7500,8 +7452,6 @@ jQuery.extend({
                // It is defined here because jslint complains if it is declared
                // at the end of the function (which would be more logical and readable)
                function done( status, nativeStatusText, responses, headers ) {
-                       var isSuccess, success, error, response, modified,
-                               statusText = nativeStatusText;
 
                        // Called once
                        if ( state === 2 ) {
@@ -7526,10 +7476,13 @@ jQuery.extend({
                        // Set readyState
                        jqXHR.readyState = status > 0 ? 4 : 0;
 
-                       // Get response data
-                       if ( responses ) {
-                               response = ajaxHandleResponses( s, jqXHR, responses );
-                       }
+                       var isSuccess,
+                               success,
+                               error,
+                               statusText = nativeStatusText,
+                               response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
+                               lastModified,
+                               etag;
 
                        // If successful, handle type chaining
                        if ( status >= 200 && status < 300 || status === 304 ) {
@@ -7537,13 +7490,11 @@ jQuery.extend({
                                // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
                                if ( s.ifModified ) {
 
-                                       modified = jqXHR.getResponseHeader("Last-Modified");
-                                       if ( modified ) {
-                                               jQuery.lastModified[ ifModifiedKey ] = modified;
+                                       if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {
+                                               jQuery.lastModified[ ifModifiedKey ] = lastModified;
                                        }
-                                       modified = jqXHR.getResponseHeader("Etag");
-                                       if ( modified ) {
-                                               jQuery.etag[ ifModifiedKey ] = modified;
+                                       if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {
+                                               jQuery.etag[ ifModifiedKey ] = etag;
                                        }
                                }
 
@@ -7556,11 +7507,15 @@ jQuery.extend({
                                // If we have data
                                } else {
 
-                                       isSuccess = ajaxConvert( s, response );
-                                       statusText = isSuccess.state;
-                                       success = isSuccess.data;
-                                       error = isSuccess.error;
-                                       isSuccess = !error;
+                                       try {
+                                               success = ajaxConvert( s, response );
+                                               statusText = "success";
+                                               isSuccess = true;
+                                       } catch(e) {
+                                               // We have a parsererror
+                                               statusText = "parsererror";
+                                               error = e;
+                                       }
                                }
                        } else {
                                // We extract error from statusText
@@ -7622,7 +7577,7 @@ jQuery.extend({
                                        }
                                } else {
                                        tmp = map[ jqXHR.status ];
-                                       jqXHR.always( tmp );
+                                       jqXHR.then( tmp, tmp );
                                }
                        }
                        return this;
@@ -7634,7 +7589,7 @@ jQuery.extend({
                s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
 
                // Extract dataTypes list
-               s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( core_rspace );
+               s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
 
                // Determine if a cross-domain request is in order
                if ( s.crossDomain == null ) {
@@ -7656,7 +7611,7 @@ jQuery.extend({
 
                // If request was aborted inside a prefilter, stop there
                if ( state === 2 ) {
-                       return jqXHR;
+                       return false;
                }
 
                // We can fire global events as of now if asked to
@@ -7729,14 +7684,12 @@ jQuery.extend({
 
                // Allow custom headers/mimetypes and early abort
                if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
-                               // Abort if not done already and return
-                               return jqXHR.abort();
+                               // Abort if not done already
+                               jqXHR.abort();
+                               return false;
 
                }
 
-               // aborting is no longer a cancellation
-               strAbort = "abort";
-
                // Install callbacks on deferreds
                for ( i in { success: 1, error: 1, complete: 1 } ) {
                        jqXHR[ i ]( s[ i ] );
@@ -7775,8 +7728,79 @@ jQuery.extend({
                        }
                }
 
-               return jqXHR;
-       },
+               return jqXHR;
+       },
+
+       // Serialize an array of form elements or a set of
+       // key/values into a query string
+       param: function( a, traditional ) {
+               var s = [],
+                       add = function( key, value ) {
+                               // If value is a function, invoke it and return its value
+                               value = jQuery.isFunction( value ) ? value() : value;
+                               s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
+                       };
+
+               // Set traditional to true for jQuery <= 1.3.2 behavior.
+               if ( traditional === undefined ) {
+                       traditional = jQuery.ajaxSettings.traditional;
+               }
+
+               // If an array was passed in, assume that it is an array of form elements.
+               if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+                       // Serialize the form elements
+                       jQuery.each( a, function() {
+                               add( this.name, this.value );
+                       });
+
+               } else {
+                       // If traditional, encode the "old" way (the way 1.3.2 or older
+                       // did it), otherwise encode params recursively.
+                       for ( var prefix in a ) {
+                               buildParams( prefix, a[ prefix ], traditional, add );
+                       }
+               }
+
+               // Return the resulting serialization
+               return s.join( "&" ).replace( r20, "+" );
+       }
+});
+
+function buildParams( prefix, obj, traditional, add ) {
+       if ( jQuery.isArray( obj ) ) {
+               // Serialize array item.
+               jQuery.each( obj, function( i, v ) {
+                       if ( traditional || rbracket.test( prefix ) ) {
+                               // Treat each array item as a scalar.
+                               add( prefix, v );
+
+                       } else {
+                               // If array item is non-scalar (array or object), encode its
+                               // numeric index to resolve deserialization ambiguity issues.
+                               // Note that rack (as of 1.0.0) can't currently deserialize
+                               // nested arrays properly, and attempting to do so may cause
+                               // a server error. Possible fixes are to modify rack's
+                               // deserialization algorithm or to provide an option or flag
+                               // to force array serialization to be shallow.
+                               buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
+                       }
+               });
+
+       } else if ( !traditional && jQuery.type( obj ) === "object" ) {
+               // Serialize object item.
+               for ( var name in obj ) {
+                       buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+               }
+
+       } else {
+               // Serialize scalar item.
+               add( prefix, obj );
+       }
+}
+
+// This is still on the jQuery object... for now
+// Want to move this to jQuery.ajax some day
+jQuery.extend({
 
        // Counter for holding the number of active queries
        active: 0,
@@ -7794,10 +7818,13 @@ jQuery.extend({
  */
 function ajaxHandleResponses( s, jqXHR, responses ) {
 
-       var ct, type, finalDataType, firstDataType,
-               contents = s.contents,
+       var contents = s.contents,
                dataTypes = s.dataTypes,
-               responseFields = s.responseFields;
+               responseFields = s.responseFields,
+               ct,
+               type,
+               finalDataType,
+               firstDataType;
 
        // Fill responseXXX fields
        for ( type in responseFields ) {
@@ -7856,175 +7883,169 @@ function ajaxHandleResponses( s, jqXHR, responses ) {
 // Chain conversions given the request and the original response
 function ajaxConvert( s, response ) {
 
-       var conv, conv2, current, tmp,
-               // Work with a copy of dataTypes in case we need to modify it for conversion
-               dataTypes = s.dataTypes.slice(),
-               prev = dataTypes[ 0 ],
-               converters = {},
-               i = 0;
-
        // Apply the dataFilter if provided
        if ( s.dataFilter ) {
                response = s.dataFilter( response, s.dataType );
        }
 
-       // Create converters map with lowercased keys
-       if ( dataTypes[ 1 ] ) {
-               for ( conv in s.converters ) {
-                       converters[ conv.toLowerCase() ] = s.converters[ conv ];
+       var dataTypes = s.dataTypes,
+               converters = {},
+               i,
+               key,
+               length = dataTypes.length,
+               tmp,
+               // Current and previous dataTypes
+               current = dataTypes[ 0 ],
+               prev,
+               // Conversion expression
+               conversion,
+               // Conversion function
+               conv,
+               // Conversion functions (transitive conversion)
+               conv1,
+               conv2;
+
+       // For each dataType in the chain
+       for ( i = 1; i < length; i++ ) {
+
+               // Create converters map
+               // with lowercased keys
+               if ( i === 1 ) {
+                       for ( key in s.converters ) {
+                               if ( typeof key === "string" ) {
+                                       converters[ key.toLowerCase() ] = s.converters[ key ];
+                               }
+                       }
                }
-       }
-
-       // Convert to each sequential dataType, tolerating list modification
-       for ( ; (current = dataTypes[++i]); ) {
-
-               // There's only work to do if current dataType is non-auto
-               if ( current !== "*" ) {
 
-                       // Convert response if prev dataType is non-auto and differs from current
-                       if ( prev !== "*" && prev !== current ) {
-
-                               // Seek a direct converter
-                               conv = converters[ prev + " " + current ] || converters[ "* " + current ];
-
-                               // If none found, seek a pair
-                               if ( !conv ) {
-                                       for ( conv2 in converters ) {
-
-                                               // If conv2 outputs current
-                                               tmp = conv2.split(" ");
-                                               if ( tmp[ 1 ] === current ) {
-
-                                                       // If prev can be converted to accepted input
-                                                       conv = converters[ prev + " " + tmp[ 0 ] ] ||
-                                                               converters[ "* " + tmp[ 0 ] ];
-                                                       if ( conv ) {
-                                                               // Condense equivalence converters
-                                                               if ( conv === true ) {
-                                                                       conv = converters[ conv2 ];
-
-                                                               // Otherwise, insert the intermediate dataType
-                                                               } else if ( converters[ conv2 ] !== true ) {
-                                                                       current = tmp[ 0 ];
-                                                                       dataTypes.splice( i--, 0, current );
-                                                               }
-
-                                                               break;
+               // Get the dataTypes
+               prev = current;
+               current = dataTypes[ i ];
+
+               // If current is auto dataType, update it to prev
+               if ( current === "*" ) {
+                       current = prev;
+               // If no auto and dataTypes are actually different
+               } else if ( prev !== "*" && prev !== current ) {
+
+                       // Get the converter
+                       conversion = prev + " " + current;
+                       conv = converters[ conversion ] || converters[ "* " + current ];
+
+                       // If there is no direct converter, search transitively
+                       if ( !conv ) {
+                               conv2 = undefined;
+                               for ( conv1 in converters ) {
+                                       tmp = conv1.split( " " );
+                                       if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {
+                                               conv2 = converters[ tmp[1] + " " + current ];
+                                               if ( conv2 ) {
+                                                       conv1 = converters[ conv1 ];
+                                                       if ( conv1 === true ) {
+                                                               conv = conv2;
+                                                       } else if ( conv2 === true ) {
+                                                               conv = conv1;
                                                        }
-                                               }
-                                       }
-                               }
-
-                               // Apply converter (if not an equivalence)
-                               if ( conv !== true ) {
-
-                                       // Unless errors are allowed to bubble, catch and return them
-                                       if ( conv && s["throws"] ) {
-                                               response = conv( response );
-                                       } else {
-                                               try {
-                                                       response = conv( response );
-                                               } catch ( e ) {
-                                                       return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
+                                                       break;
                                                }
                                        }
                                }
                        }
-
-                       // Update prev for next iteration
-                       prev = current;
+                       // If we found no converter, dispatch an error
+                       if ( !( conv || conv2 ) ) {
+                               jQuery.error( "No conversion from " + conversion.replace(" "," to ") );
+                       }
+                       // If found converter is not an equivalence
+                       if ( conv !== true ) {
+                               // Convert with 1 or 2 converters accordingly
+                               response = conv ? conv( response ) : conv2( conv1(response) );
+                       }
                }
        }
-
-       return { state: "success", data: response };
+       return response;
 }
-var oldCallbacks = [],
-       rquestion = /\?/,
-       rjsonp = /(=)\?(?=&|$)|\?\?/,
-       nonce = jQuery.now();
+
+
+
+
+var jsc = jQuery.now(),
+       jsre = /(\=)\?(&|$)|\?\?/i;
 
 // Default jsonp settings
 jQuery.ajaxSetup({
        jsonp: "callback",
        jsonpCallback: function() {
-               var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
-               this[ callback ] = true;
-               return callback;
+               return jQuery.expando + "_" + ( jsc++ );
        }
 });
 
 // Detect, normalize options and install callbacks for jsonp requests
 jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
 
-       var callbackName, overwritten, responseContainer,
-               data = s.data,
-               url = s.url,
-               hasCallback = s.jsonp !== false,
-               replaceInUrl = hasCallback && rjsonp.test( url ),
-               replaceInData = hasCallback && !replaceInUrl && typeof data === "string" &&
-                       !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") &&
-                       rjsonp.test( data );
-
-       // Handle iff the expected data type is "jsonp" or we have a parameter to set
-       if ( s.dataTypes[ 0 ] === "jsonp" || replaceInUrl || replaceInData ) {
-
-               // Get callback name, remembering preexisting value associated with it
-               callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
-                       s.jsonpCallback() :
-                       s.jsonpCallback;
-               overwritten = window[ callbackName ];
-
-               // Insert callback into url or form data
-               if ( replaceInUrl ) {
-                       s.url = url.replace( rjsonp, "$1" + callbackName );
-               } else if ( replaceInData ) {
-                       s.data = data.replace( rjsonp, "$1" + callbackName );
-               } else if ( hasCallback ) {
-                       s.url += ( rquestion.test( url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
-               }
-
-               // Use data converter to retrieve json after script execution
-               s.converters["script json"] = function() {
-                       if ( !responseContainer ) {
-                               jQuery.error( callbackName + " was not called" );
+       var inspectData = ( typeof s.data === "string" ) && /^application\/x\-www\-form\-urlencoded/.test( s.contentType );
+
+       if ( s.dataTypes[ 0 ] === "jsonp" ||
+               s.jsonp !== false && ( jsre.test( s.url ) ||
+                               inspectData && jsre.test( s.data ) ) ) {
+
+               var responseContainer,
+                       jsonpCallback = s.jsonpCallback =
+                               jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,
+                       previous = window[ jsonpCallback ],
+                       url = s.url,
+                       data = s.data,
+                       replace = "$1" + jsonpCallback + "$2";
+
+               if ( s.jsonp !== false ) {
+                       url = url.replace( jsre, replace );
+                       if ( s.url === url ) {
+                               if ( inspectData ) {
+                                       data = data.replace( jsre, replace );
+                               }
+                               if ( s.data === data ) {
+                                       // Add callback manually
+                                       url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;
+                               }
                        }
-                       return responseContainer[ 0 ];
-               };
+               }
 
-               // force json dataType
-               s.dataTypes[ 0 ] = "json";
+               s.url = url;
+               s.data = data;
 
                // Install callback
-               window[ callbackName ] = function() {
-                       responseContainer = arguments;
+               window[ jsonpCallback ] = function( response ) {
+                       responseContainer = [ response ];
                };
 
-               // Clean-up function (fires after converters)
+               // Clean-up function
                jqXHR.always(function() {
-                       // Restore preexisting value
-                       window[ callbackName ] = overwritten;
-
-                       // Save back as free
-                       if ( s[ callbackName ] ) {
-                               // make sure that re-using the options doesn't screw things around
-                               s.jsonpCallback = originalSettings.jsonpCallback;
-
-                               // save the callback name for future use
-                               oldCallbacks.push( callbackName );
+                       // Set callback back to previous value
+                       window[ jsonpCallback ] = previous;
+                       // Call if it was a function and we have a response
+                       if ( responseContainer && jQuery.isFunction( previous ) ) {
+                               window[ jsonpCallback ]( responseContainer[ 0 ] );
                        }
+               });
 
-                       // Call if it was a function and we have a response
-                       if ( responseContainer && jQuery.isFunction( overwritten ) ) {
-                               overwritten( responseContainer[ 0 ] );
+               // Use data converter to retrieve json after script execution
+               s.converters["script json"] = function() {
+                       if ( !responseContainer ) {
+                               jQuery.error( jsonpCallback + " was not called" );
                        }
+                       return responseContainer[ 0 ];
+               };
 
-                       responseContainer = overwritten = undefined;
-               });
+               // force json dataType
+               s.dataTypes[ 0 ] = "json";
 
                // Delegate to script
                return "script";
        }
 });
+
+
+
+
 // Install script dataType
 jQuery.ajaxSetup({
        accepts: {
@@ -8110,15 +8131,19 @@ jQuery.ajaxTransport( "script", function(s) {
                };
        }
 });
-var xhrCallbacks,
-       // #5280: Internet Explorer will keep connections alive if we don't abort on unload
+
+
+
+
+var // #5280: Internet Explorer will keep connections alive if we don't abort on unload
        xhrOnUnloadAbort = window.ActiveXObject ? function() {
                // Abort all pending requests
                for ( var key in xhrCallbacks ) {
                        xhrCallbacks[ key ]( 0, 1 );
                }
        } : false,
-       xhrId = 0;
+       xhrId = 0,
+       xhrCallbacks;
 
 // Functions to create xhrs
 function createStandardXHR() {
@@ -8169,8 +8194,9 @@ if ( jQuery.support.ajax ) {
                                send: function( headers, complete ) {
 
                                        // Get a new xhr
-                                       var handle, i,
-                                               xhr = s.xhr();
+                                       var xhr = s.xhr(),
+                                               handle,
+                                               i;
 
                                        // Open the socket
                                        // Passing null username, generates a login popup on Opera (#2865)
@@ -8223,7 +8249,7 @@ if ( jQuery.support.ajax ) {
                                                        xml;
 
                                                // Firefox throws exceptions when accessing properties
-                                               // of an xhr when a network error occurred
+                                               // of an xhr when a network error occured
                                                // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
                                                try {
 
@@ -8299,13 +8325,11 @@ if ( jQuery.support.ajax ) {
                                                }
                                        };
 
-                                       if ( !s.async ) {
-                                               // if we're in sync mode we fire the callback
+                                       // if we're in sync mode or it's in cache
+                                       // and has been retrieved directly (IE6 & IE7)
+                                       // we need to manually fire the callback
+                                       if ( !s.async || xhr.readyState === 4 ) {
                                                callback();
-                                       } else if ( xhr.readyState === 4 ) {
-                                               // (IE6 & IE7) if it's in cache and has been
-                                               // retrieved directly we need to fire the callback
-                                               setTimeout( callback, 0 );
                                        } else {
                                                handle = ++xhrId;
                                                if ( xhrOnUnloadAbort ) {
@@ -8331,660 +8355,791 @@ if ( jQuery.support.ajax ) {
                }
        });
 }
-var fxNow, timerId,
+
+
+
+
+var elemdisplay = {},
+       iframe, iframeDoc,
        rfxtypes = /^(?:toggle|show|hide)$/,
-       rfxnum = new RegExp( "^(?:([-+])=|)(" + core_pnum + ")([a-z%]*)$", "i" ),
-       rrun = /queueHooks$/,
-       animationPrefilters = [ defaultPrefilter ],
-       tweeners = {
-               "*": [function( prop, value ) {
-                       var end, unit, prevScale,
-                               tween = this.createTween( prop, value ),
-                               parts = rfxnum.exec( value ),
-                               target = tween.cur(),
-                               start = +target || 0,
-                               scale = 1;
-
-                       if ( parts ) {
-                               end = +parts[2];
-                               unit = parts[3] || ( jQuery.cssNumber[ prop ] ? "" : "px" );
-
-                               // We need to compute starting value
-                               if ( unit !== "px" && start ) {
-                                       // Iteratively approximate from a nonzero starting point
-                                       // Prefer the current property, because this process will be trivial if it uses the same units
-                                       // Fallback to end or a simple constant
-                                       start = jQuery.css( tween.elem, prop, true ) || end || 1;
-
-                                       do {
-                                               // If previous iteration zeroed out, double until we get *something*
-                                               // Use a string for doubling factor so we don't accidentally see scale as unchanged below
-                                               prevScale = scale = scale || ".5";
-
-                                               // Adjust and apply
-                                               start = start / scale;
-                                               jQuery.style( tween.elem, prop, start + unit );
-
-                                               // Update scale, tolerating zeroes from tween.cur()
-                                               scale = tween.cur() / target;
-
-                                       // Stop looping if we've hit the mark or scale is unchanged
-                                       } while ( scale !== 1 && scale !== prevScale );
-                               }
-
-                               tween.unit = unit;
-                               tween.start = start;
-                               // If a +=/-= token was provided, we're doing a relative animation
-                               tween.end = parts[1] ? start + ( parts[1] + 1 ) * end : end;
-                       }
-                       return tween;
-               }]
+       rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
+       timerId,
+       fxAttrs = [
+               // height animations
+               [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
+               // width animations
+               [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
+               // opacity animations
+               [ "opacity" ]
+       ],
+       fxNow;
+
+jQuery.fn.extend({
+       show: function( speed, easing, callback ) {
+               var elem, display;
+
+               if ( speed || speed === 0 ) {
+                       return this.animate( genFx("show", 3), speed, easing, callback );
+
+               } else {
+                       for ( var i = 0, j = this.length; i < j; i++ ) {
+                               elem = this[ i ];
+
+                               if ( elem.style ) {
+                                       display = elem.style.display;
+
+                                       // Reset the inline display of this element to learn if it is
+                                       // being hidden by cascaded rules or not
+                                       if ( !jQuery._data(elem, "olddisplay") && display === "none" ) {
+                                               display = elem.style.display = "";
+                                       }
+
+                                       // Set elements which have been overridden with display: none
+                                       // in a stylesheet to whatever the default browser style is
+                                       // for such an element
+                                       if ( (display === "" && jQuery.css(elem, "display") === "none") ||
+                                               !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
+                                               jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) );
+                                       }
+                               }
+                       }
+
+                       // Set the display of most of the elements in a second loop
+                       // to avoid the constant reflow
+                       for ( i = 0; i < j; i++ ) {
+                               elem = this[ i ];
+
+                               if ( elem.style ) {
+                                       display = elem.style.display;
+
+                                       if ( display === "" || display === "none" ) {
+                                               elem.style.display = jQuery._data( elem, "olddisplay" ) || "";
+                                       }
+                               }
+                       }
+
+                       return this;
+               }
+       },
+
+       hide: function( speed, easing, callback ) {
+               if ( speed || speed === 0 ) {
+                       return this.animate( genFx("hide", 3), speed, easing, callback);
+
+               } else {
+                       var elem, display,
+                               i = 0,
+                               j = this.length;
+
+                       for ( ; i < j; i++ ) {
+                               elem = this[i];
+                               if ( elem.style ) {
+                                       display = jQuery.css( elem, "display" );
+
+                                       if ( display !== "none" && !jQuery._data( elem, "olddisplay" ) ) {
+                                               jQuery._data( elem, "olddisplay", display );
+                                       }
+                               }
+                       }
+
+                       // Set the display of the elements in a second loop
+                       // to avoid the constant reflow
+                       for ( i = 0; i < j; i++ ) {
+                               if ( this[i].style ) {
+                                       this[i].style.display = "none";
+                               }
+                       }
+
+                       return this;
+               }
+       },
+
+       // Save the old toggle function
+       _toggle: jQuery.fn.toggle,
+
+       toggle: function( fn, fn2, callback ) {
+               var bool = typeof fn === "boolean";
+
+               if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
+                       this._toggle.apply( this, arguments );
+
+               } else if ( fn == null || bool ) {
+                       this.each(function() {
+                               var state = bool ? fn : jQuery(this).is(":hidden");
+                               jQuery(this)[ state ? "show" : "hide" ]();
+                       });
+
+               } else {
+                       this.animate(genFx("toggle", 3), fn, fn2, callback);
+               }
+
+               return this;
+       },
+
+       fadeTo: function( speed, to, easing, callback ) {
+               return this.filter(":hidden").css("opacity", 0).show().end()
+                                       .animate({opacity: to}, speed, easing, callback);
+       },
+
+       animate: function( prop, speed, easing, callback ) {
+               var optall = jQuery.speed( speed, easing, callback );
+
+               if ( jQuery.isEmptyObject( prop ) ) {
+                       return this.each( optall.complete, [ false ] );
+               }
+
+               // Do not change referenced properties as per-property easing will be lost
+               prop = jQuery.extend( {}, prop );
+
+               function doAnimation() {
+                       // XXX 'this' does not always have a nodeName when running the
+                       // test suite
+
+                       if ( optall.queue === false ) {
+                               jQuery._mark( this );
+                       }
+
+                       var opt = jQuery.extend( {}, optall ),
+                               isElement = this.nodeType === 1,
+                               hidden = isElement && jQuery(this).is(":hidden"),
+                               name, val, p, e, hooks, replace,
+                               parts, start, end, unit,
+                               method;
+
+                       // will store per property easing and be used to determine when an animation is complete
+                       opt.animatedProperties = {};
+
+                       // first pass over propertys to expand / normalize
+                       for ( p in prop ) {
+                               name = jQuery.camelCase( p );
+                               if ( p !== name ) {
+                                       prop[ name ] = prop[ p ];
+                                       delete prop[ p ];
+                               }
+
+                               if ( ( hooks = jQuery.cssHooks[ name ] ) && "expand" in hooks ) {
+                                       replace = hooks.expand( prop[ name ] );
+                                       delete prop[ name ];
+
+                                       // not quite $.extend, this wont overwrite keys already present.
+                                       // also - reusing 'p' from above because we have the correct "name"
+                                       for ( p in replace ) {
+                                               if ( ! ( p in prop ) ) {
+                                                       prop[ p ] = replace[ p ];
+                                               }
+                                       }
+                               }
+                       }
+
+                       for ( name in prop ) {
+                               val = prop[ name ];
+                               // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default)
+                               if ( jQuery.isArray( val ) ) {
+                                       opt.animatedProperties[ name ] = val[ 1 ];
+                                       val = prop[ name ] = val[ 0 ];
+                               } else {
+                                       opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing';
+                               }
+
+                               if ( val === "hide" && hidden || val === "show" && !hidden ) {
+                                       return opt.complete.call( this );
+                               }
+
+                               if ( isElement && ( name === "height" || name === "width" ) ) {
+                                       // Make sure that nothing sneaks out
+                                       // Record all 3 overflow attributes because IE does not
+                                       // change the overflow attribute when overflowX and
+                                       // overflowY are set to the same value
+                                       opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];
+
+                                       // Set display property to inline-block for height/width
+                                       // animations on inline elements that are having width/height animated
+                                       if ( jQuery.css( this, "display" ) === "inline" &&
+                                                       jQuery.css( this, "float" ) === "none" ) {
+
+                                               // inline-level elements accept inline-block;
+                                               // block-level elements need to be inline with layout
+                                               if ( !jQuery.support.inlineBlockNeedsLayout || defaultDisplay( this.nodeName ) === "inline" ) {
+                                                       this.style.display = "inline-block";
+
+                                               } else {
+                                                       this.style.zoom = 1;
+                                               }
+                                       }
+                               }
+                       }
+
+                       if ( opt.overflow != null ) {
+                               this.style.overflow = "hidden";
+                       }
+
+                       for ( p in prop ) {
+                               e = new jQuery.fx( this, opt, p );
+                               val = prop[ p ];
+
+                               if ( rfxtypes.test( val ) ) {
+
+                                       // Tracks whether to show or hide based on private
+                                       // data attached to the element
+                                       method = jQuery._data( this, "toggle" + p ) || ( val === "toggle" ? hidden ? "show" : "hide" : 0 );
+                                       if ( method ) {
+                                               jQuery._data( this, "toggle" + p, method === "show" ? "hide" : "show" );
+                                               e[ method ]();
+                                       } else {
+                                               e[ val ]();
+                                       }
+
+                               } else {
+                                       parts = rfxnum.exec( val );
+                                       start = e.cur();
+
+                                       if ( parts ) {
+                                               end = parseFloat( parts[2] );
+                                               unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" );
+
+                                               // We need to compute starting value
+                                               if ( unit !== "px" ) {
+                                                       jQuery.style( this, p, (end || 1) + unit);
+                                                       start = ( (end || 1) / e.cur() ) * start;
+                                                       jQuery.style( this, p, start + unit);
+                                               }
+
+                                               // If a +=/-= token was provided, we're doing a relative animation
+                                               if ( parts[1] ) {
+                                                       end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start;
+                                               }
+
+                                               e.custom( start, end, unit );
+
+                                       } else {
+                                               e.custom( start, val, "" );
+                                       }
+                               }
+                       }
+
+                       // For JS strict compliance
+                       return true;
+               }
+
+               return optall.queue === false ?
+                       this.each( doAnimation ) :
+                       this.queue( optall.queue, doAnimation );
+       },
+
+       stop: function( type, clearQueue, gotoEnd ) {
+               if ( typeof type !== "string" ) {
+                       gotoEnd = clearQueue;
+                       clearQueue = type;
+                       type = undefined;
+               }
+               if ( clearQueue && type !== false ) {
+                       this.queue( type || "fx", [] );
+               }
+
+               return this.each(function() {
+                       var index,
+                               hadTimers = false,
+                               timers = jQuery.timers,
+                               data = jQuery._data( this );
+
+                       // clear marker counters if we know they won't be
+                       if ( !gotoEnd ) {
+                               jQuery._unmark( true, this );
+                       }
+
+                       function stopQueue( elem, data, index ) {
+                               var hooks = data[ index ];
+                               jQuery.removeData( elem, index, true );
+                               hooks.stop( gotoEnd );
+                       }
+
+                       if ( type == null ) {
+                               for ( index in data ) {
+                                       if ( data[ index ] && data[ index ].stop && index.indexOf(".run") === index.length - 4 ) {
+                                               stopQueue( this, data, index );
+                                       }
+                               }
+                       } else if ( data[ index = type + ".run" ] && data[ index ].stop ){
+                               stopQueue( this, data, index );
+                       }
+
+                       for ( index = timers.length; index--; ) {
+                               if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
+                                       if ( gotoEnd ) {
+
+                                               // force the next step to be the last
+                                               timers[ index ]( true );
+                                       } else {
+                                               timers[ index ].saveState();
+                                       }
+                                       hadTimers = true;
+                                       timers.splice( index, 1 );
+                               }
+                       }
+
+                       // start the next in the queue if the last step wasn't forced
+                       // timers currently will call their complete callbacks, which will dequeue
+                       // but only if they were gotoEnd
+                       if ( !( gotoEnd && hadTimers ) ) {
+                               jQuery.dequeue( this, type );
+                       }
+               });
+       }
+
+});
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+       setTimeout( clearFxNow, 0 );
+       return ( fxNow = jQuery.now() );
+}
+
+function clearFxNow() {
+       fxNow = undefined;
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, num ) {
+       var obj = {};
+
+       jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice( 0, num )), function() {
+               obj[ this ] = type;
+       });
+
+       return obj;
+}
+
+// Generate shortcuts for custom animations
+jQuery.each({
+       slideDown: genFx( "show", 1 ),
+       slideUp: genFx( "hide", 1 ),
+       slideToggle: genFx( "toggle", 1 ),
+       fadeIn: { opacity: "show" },
+       fadeOut: { opacity: "hide" },
+       fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+       jQuery.fn[ name ] = function( speed, easing, callback ) {
+               return this.animate( props, speed, easing, callback );
        };
+});
 
-// Animations created synchronously will run synchronously
-function createFxNow() {
-       setTimeout(function() {
-               fxNow = undefined;
-       }, 0 );
-       return ( fxNow = jQuery.now() );
-}
+jQuery.extend({
+       speed: function( speed, easing, fn ) {
+               var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+                       complete: fn || !fn && easing ||
+                               jQuery.isFunction( speed ) && speed,
+                       duration: speed,
+                       easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+               };
 
-function createTweens( animation, props ) {
-       jQuery.each( props, function( prop, value ) {
-               var collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
-                       index = 0,
-                       length = collection.length;
-               for ( ; index < length; index++ ) {
-                       if ( collection[ index ].call( animation, prop, value ) ) {
+               opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+                       opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
 
-                               // we're done with this property
-                               return;
-                       }
+               // normalize opt.queue - true/undefined/null -> "fx"
+               if ( opt.queue == null || opt.queue === true ) {
+                       opt.queue = "fx";
                }
-       });
-}
 
-function Animation( elem, properties, options ) {
-       var result,
-               index = 0,
-               tweenerIndex = 0,
-               length = animationPrefilters.length,
-               deferred = jQuery.Deferred().always( function() {
-                       // don't match elem in the :animated selector
-                       delete tick.elem;
-               }),
-               tick = function() {
-                       var currentTime = fxNow || createFxNow(),
-                               remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
-                               percent = 1 - ( remaining / animation.duration || 0 ),
-                               index = 0,
-                               length = animation.tweens.length;
-
-                       for ( ; index < length ; index++ ) {
-                               animation.tweens[ index ].run( percent );
-                       }
-
-                       deferred.notifyWith( elem, [ animation, percent, remaining ]);
-
-                       if ( percent < 1 && length ) {
-                               return remaining;
-                       } else {
-                               deferred.resolveWith( elem, [ animation ] );
-                               return false;
-                       }
-               },
-               animation = deferred.promise({
-                       elem: elem,
-                       props: jQuery.extend( {}, properties ),
-                       opts: jQuery.extend( true, { specialEasing: {} }, options ),
-                       originalProperties: properties,
-                       originalOptions: options,
-                       startTime: fxNow || createFxNow(),
-                       duration: options.duration,
-                       tweens: [],
-                       createTween: function( prop, end, easing ) {
-                               var tween = jQuery.Tween( elem, animation.opts, prop, end,
-                                               animation.opts.specialEasing[ prop ] || animation.opts.easing );
-                               animation.tweens.push( tween );
-                               return tween;
-                       },
-                       stop: function( gotoEnd ) {
-                               var index = 0,
-                                       // if we are going to the end, we want to run all the tweens
-                                       // otherwise we skip this part
-                                       length = gotoEnd ? animation.tweens.length : 0;
+               // Queueing
+               opt.old = opt.complete;
 
-                               for ( ; index < length ; index++ ) {
-                                       animation.tweens[ index ].run( 1 );
-                               }
+               opt.complete = function( noUnmark ) {
+                       if ( jQuery.isFunction( opt.old ) ) {
+                               opt.old.call( this );
+                       }
 
-                               // resolve when we played the last frame
-                               // otherwise, reject
-                               if ( gotoEnd ) {
-                                       deferred.resolveWith( elem, [ animation, gotoEnd ] );
-                               } else {
-                                       deferred.rejectWith( elem, [ animation, gotoEnd ] );
-                               }
-                               return this;
+                       if ( opt.queue ) {
+                               jQuery.dequeue( this, opt.queue );
+                       } else if ( noUnmark !== false ) {
+                               jQuery._unmark( this );
                        }
-               }),
-               props = animation.props;
+               };
 
-       propFilter( props, animation.opts.specialEasing );
+               return opt;
+       },
 
-       for ( ; index < length ; index++ ) {
-               result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
-               if ( result ) {
-                       return result;
+       easing: {
+               linear: function( p ) {
+                       return p;
+               },
+               swing: function( p ) {
+                       return ( -Math.cos( p*Math.PI ) / 2 ) + 0.5;
                }
-       }
+       },
+
+       timers: [],
 
-       createTweens( animation, props );
+       fx: function( elem, options, prop ) {
+               this.options = options;
+               this.elem = elem;
+               this.prop = prop;
 
-       if ( jQuery.isFunction( animation.opts.start ) ) {
-               animation.opts.start.call( elem, animation );
+               options.orig = options.orig || {};
        }
 
-       jQuery.fx.timer(
-               jQuery.extend( tick, {
-                       anim: animation,
-                       queue: animation.opts.queue,
-                       elem: elem
-               })
-       );
+});
 
-       // attach callbacks from options
-       return animation.progress( animation.opts.progress )
-               .done( animation.opts.done, animation.opts.complete )
-               .fail( animation.opts.fail )
-               .always( animation.opts.always );
-}
+jQuery.fx.prototype = {
+       // Simple function for setting a style value
+       update: function() {
+               if ( this.options.step ) {
+                       this.options.step.call( this.elem, this.now, this );
+               }
 
-function propFilter( props, specialEasing ) {
-       var index, name, easing, value, hooks;
+               ( jQuery.fx.step[ this.prop ] || jQuery.fx.step._default )( this );
+       },
 
-       // camelCase, specialEasing and expand cssHook pass
-       for ( index in props ) {
-               name = jQuery.camelCase( index );
-               easing = specialEasing[ name ];
-               value = props[ index ];
-               if ( jQuery.isArray( value ) ) {
-                       easing = value[ 1 ];
-                       value = props[ index ] = value[ 0 ];
+       // Get the current size
+       cur: function() {
+               if ( this.elem[ this.prop ] != null && (!this.elem.style || this.elem.style[ this.prop ] == null) ) {
+                       return this.elem[ this.prop ];
                }
 
-               if ( index !== name ) {
-                       props[ name ] = value;
-                       delete props[ index ];
-               }
+               var parsed,
+                       r = jQuery.css( this.elem, this.prop );
+               // Empty strings, null, undefined and "auto" are converted to 0,
+               // complex values such as "rotate(1rad)" are returned as is,
+               // simple values such as "10px" are parsed to Float.
+               return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
+       },
 
-               hooks = jQuery.cssHooks[ name ];
-               if ( hooks && "expand" in hooks ) {
-                       value = hooks.expand( value );
-                       delete props[ name ];
+       // Start an animation from one number to another
+       custom: function( from, to, unit ) {
+               var self = this,
+                       fx = jQuery.fx;
 
-                       // not quite $.extend, this wont overwrite keys already present.
-                       // also - reusing 'index' from above because we have the correct "name"
-                       for ( index in value ) {
-                               if ( !( index in props ) ) {
-                                       props[ index ] = value[ index ];
-                                       specialEasing[ index ] = easing;
+               this.startTime = fxNow || createFxNow();
+               this.end = to;
+               this.now = this.start = from;
+               this.pos = this.state = 0;
+               this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );
+
+               function t( gotoEnd ) {
+                       return self.step( gotoEnd );
+               }
+
+               t.queue = this.options.queue;
+               t.elem = this.elem;
+               t.saveState = function() {
+                       if ( jQuery._data( self.elem, "fxshow" + self.prop ) === undefined ) {
+                               if ( self.options.hide ) {
+                                       jQuery._data( self.elem, "fxshow" + self.prop, self.start );
+                               } else if ( self.options.show ) {
+                                       jQuery._data( self.elem, "fxshow" + self.prop, self.end );
                                }
                        }
-               } else {
-                       specialEasing[ name ] = easing;
+               };
+
+               if ( t() && jQuery.timers.push(t) && !timerId ) {
+                       timerId = setInterval( fx.tick, fx.interval );
                }
-       }
-}
+       },
+
+       // Simple 'show' function
+       show: function() {
+               var dataShow = jQuery._data( this.elem, "fxshow" + this.prop );
 
-jQuery.Animation = jQuery.extend( Animation, {
+               // Remember where we started, so that we can go back to it later
+               this.options.orig[ this.prop ] = dataShow || jQuery.style( this.elem, this.prop );
+               this.options.show = true;
 
-       tweener: function( props, callback ) {
-               if ( jQuery.isFunction( props ) ) {
-                       callback = props;
-                       props = [ "*" ];
+               // Begin the animation
+               // Make sure that we start at a small width/height to avoid any flash of content
+               if ( dataShow !== undefined ) {
+                       // This show is picking up where a previous hide or show left off
+                       this.custom( this.cur(), dataShow );
                } else {
-                       props = props.split(" ");
+                       this.custom( this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur() );
                }
 
-               var prop,
-                       index = 0,
-                       length = props.length;
+               // Start by showing the element
+               jQuery( this.elem ).show();
+       },
+
+       // Simple 'hide' function
+       hide: function() {
+               // Remember where we started, so that we can go back to it later
+               this.options.orig[ this.prop ] = jQuery._data( this.elem, "fxshow" + this.prop ) || jQuery.style( this.elem, this.prop );
+               this.options.hide = true;
 
-               for ( ; index < length ; index++ ) {
-                       prop = props[ index ];
-                       tweeners[ prop ] = tweeners[ prop ] || [];
-                       tweeners[ prop ].unshift( callback );
-               }
+               // Begin the animation
+               this.custom( this.cur(), 0 );
        },
 
-       prefilter: function( callback, prepend ) {
-               if ( prepend ) {
-                       animationPrefilters.unshift( callback );
-               } else {
-                       animationPrefilters.push( callback );
-               }
-       }
-});
+       // Each step of an animation
+       step: function( gotoEnd ) {
+               var p, n, complete,
+                       t = fxNow || createFxNow(),
+                       done = true,
+                       elem = this.elem,
+                       options = this.options;
 
-function defaultPrefilter( elem, props, opts ) {
-       var index, prop, value, length, dataShow, tween, hooks, oldfire,
-               anim = this,
-               style = elem.style,
-               orig = {},
-               handled = [],
-               hidden = elem.nodeType && isHidden( elem );
-
-       // handle queue: false promises
-       if ( !opts.queue ) {
-               hooks = jQuery._queueHooks( elem, "fx" );
-               if ( hooks.unqueued == null ) {
-                       hooks.unqueued = 0;
-                       oldfire = hooks.empty.fire;
-                       hooks.empty.fire = function() {
-                               if ( !hooks.unqueued ) {
-                                       oldfire();
-                               }
-                       };
-               }
-               hooks.unqueued++;
+               if ( gotoEnd || t >= options.duration + this.startTime ) {
+                       this.now = this.end;
+                       this.pos = this.state = 1;
+                       this.update();
 
-               anim.always(function() {
-                       // doing this makes sure that the complete handler will be called
-                       // before this completes
-                       anim.always(function() {
-                               hooks.unqueued--;
-                               if ( !jQuery.queue( elem, "fx" ).length ) {
-                                       hooks.empty.fire();
+                       options.animatedProperties[ this.prop ] = true;
+
+                       for ( p in options.animatedProperties ) {
+                               if ( options.animatedProperties[ p ] !== true ) {
+                                       done = false;
                                }
-                       });
-               });
-       }
+                       }
 
-       // height/width overflow pass
-       if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
-               // Make sure that nothing sneaks out
-               // Record all 3 overflow attributes because IE does not
-               // change the overflow attribute when overflowX and
-               // overflowY are set to the same value
-               opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+                       if ( done ) {
+                               // Reset the overflow
+                               if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {
 
-               // Set display property to inline-block for height/width
-               // animations on inline elements that are having width/height animated
-               if ( jQuery.css( elem, "display" ) === "inline" &&
-                               jQuery.css( elem, "float" ) === "none" ) {
+                                       jQuery.each( [ "", "X", "Y" ], function( index, value ) {
+                                               elem.style[ "overflow" + value ] = options.overflow[ index ];
+                                       });
+                               }
 
-                       // inline-level elements accept inline-block;
-                       // block-level elements need to be inline with layout
-                       if ( !jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay( elem.nodeName ) === "inline" ) {
-                               style.display = "inline-block";
+                               // Hide the element if the "hide" operation was done
+                               if ( options.hide ) {
+                                       jQuery( elem ).hide();
+                               }
 
-                       } else {
-                               style.zoom = 1;
-                       }
-               }
-       }
+                               // Reset the properties, if the item has been hidden or shown
+                               if ( options.hide || options.show ) {
+                                       for ( p in options.animatedProperties ) {
+                                               jQuery.style( elem, p, options.orig[ p ] );
+                                               jQuery.removeData( elem, "fxshow" + p, true );
+                                               // Toggle data is no longer needed
+                                               jQuery.removeData( elem, "toggle" + p, true );
+                                       }
+                               }
 
-       if ( opts.overflow ) {
-               style.overflow = "hidden";
-               if ( !jQuery.support.shrinkWrapBlocks ) {
-                       anim.done(function() {
-                               style.overflow = opts.overflow[ 0 ];
-                               style.overflowX = opts.overflow[ 1 ];
-                               style.overflowY = opts.overflow[ 2 ];
-                       });
-               }
-       }
+                               // Execute the complete function
+                               // in the event that the complete function throws an exception
+                               // we must ensure it won't be called twice. #5684
 
+                               complete = options.complete;
+                               if ( complete ) {
 
-       // show/hide pass
-       for ( index in props ) {
-               value = props[ index ];
-               if ( rfxtypes.exec( value ) ) {
-                       delete props[ index ];
-                       if ( value === ( hidden ? "hide" : "show" ) ) {
-                               continue;
+                                       options.complete = false;
+                                       complete.call( elem );
+                               }
                        }
-                       handled.push( index );
-               }
-       }
 
-       length = handled.length;
-       if ( length ) {
-               dataShow = jQuery._data( elem, "fxshow" ) || jQuery._data( elem, "fxshow", {} );
-               if ( hidden ) {
-                       jQuery( elem ).show();
+                       return false;
+
                } else {
-                       anim.done(function() {
-                               jQuery( elem ).hide();
-                       });
-               }
-               anim.done(function() {
-                       var prop;
-                       jQuery.removeData( elem, "fxshow", true );
-                       for ( prop in orig ) {
-                               jQuery.style( elem, prop, orig[ prop ] );
-                       }
-               });
-               for ( index = 0 ; index < length ; index++ ) {
-                       prop = handled[ index ];
-                       tween = anim.createTween( prop, hidden ? dataShow[ prop ] : 0 );
-                       orig[ prop ] = dataShow[ prop ] || jQuery.style( elem, prop );
+                       // classical easing cannot be used with an Infinity duration
+                       if ( options.duration == Infinity ) {
+                               this.now = t;
+                       } else {
+                               n = t - this.startTime;
+                               this.state = n / options.duration;
 
-                       if ( !( prop in dataShow ) ) {
-                               dataShow[ prop ] = tween.start;
-                               if ( hidden ) {
-                                       tween.end = tween.start;
-                                       tween.start = prop === "width" || prop === "height" ? 1 : 0;
-                               }
+                               // Perform the easing function, defaults to swing
+                               this.pos = jQuery.easing[ options.animatedProperties[this.prop] ]( this.state, n, 0, 1, options.duration );
+                               this.now = this.start + ( (this.end - this.start) * this.pos );
                        }
+                       // Perform the next step of the animation
+                       this.update();
                }
-       }
-}
-
-function Tween( elem, options, prop, end, easing ) {
-       return new Tween.prototype.init( elem, options, prop, end, easing );
-}
-jQuery.Tween = Tween;
-
-Tween.prototype = {
-       constructor: Tween,
-       init: function( elem, options, prop, end, easing, unit ) {
-               this.elem = elem;
-               this.prop = prop;
-               this.easing = easing || "swing";
-               this.options = options;
-               this.start = this.now = this.cur();
-               this.end = end;
-               this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
-       },
-       cur: function() {
-               var hooks = Tween.propHooks[ this.prop ];
 
-               return hooks && hooks.get ?
-                       hooks.get( this ) :
-                       Tween.propHooks._default.get( this );
-       },
-       run: function( percent ) {
-               var eased,
-                       hooks = Tween.propHooks[ this.prop ];
+               return true;
+       }
+};
 
-               this.pos = eased = jQuery.easing[ this.easing ]( percent, this.options.duration * percent, 0, 1, this.options.duration );
-               this.now = ( this.end - this.start ) * eased + this.start;
+jQuery.extend( jQuery.fx, {
+       tick: function() {
+               var timer,
+                       timers = jQuery.timers,
+                       i = 0;
 
-               if ( this.options.step ) {
-                       this.options.step.call( this.elem, this.now, this );
+               for ( ; i < timers.length; i++ ) {
+                       timer = timers[ i ];
+                       // Checks the timer has not already been removed
+                       if ( !timer() && timers[ i ] === timer ) {
+                               timers.splice( i--, 1 );
+                       }
                }
 
-               if ( hooks && hooks.set ) {
-                       hooks.set( this );
-               } else {
-                       Tween.propHooks._default.set( this );
+               if ( !timers.length ) {
+                       jQuery.fx.stop();
                }
-               return this;
-       }
-};
+       },
 
-Tween.prototype.init.prototype = Tween.prototype;
+       interval: 13,
 
-Tween.propHooks = {
-       _default: {
-               get: function( tween ) {
-                       var result;
+       stop: function() {
+               clearInterval( timerId );
+               timerId = null;
+       },
 
-                       if ( tween.elem[ tween.prop ] != null &&
-                               (!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
-                               return tween.elem[ tween.prop ];
-                       }
+       speeds: {
+               slow: 600,
+               fast: 200,
+               // Default speed
+               _default: 400
+       },
 
-                       // passing any value as a 4th parameter to .css will automatically
-                       // attempt a parseFloat and fallback to a string if the parse fails
-                       // so, simple values such as "10px" are parsed to Float.
-                       // complex values such as "rotate(1rad)" are returned as is.
-                       result = jQuery.css( tween.elem, tween.prop, false, "" );
-                       // Empty strings, null, undefined and "auto" are converted to 0.
-                       return !result || result === "auto" ? 0 : result;
+       step: {
+               opacity: function( fx ) {
+                       jQuery.style( fx.elem, "opacity", fx.now );
                },
-               set: function( tween ) {
-                       // use step hook for back compat - use cssHook if its there - use .style if its
-                       // available and use plain properties where available
-                       if ( jQuery.fx.step[ tween.prop ] ) {
-                               jQuery.fx.step[ tween.prop ]( tween );
-                       } else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
-                               jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+
+               _default: function( fx ) {
+                       if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {
+                               fx.elem.style[ fx.prop ] = fx.now + fx.unit;
                        } else {
-                               tween.elem[ tween.prop ] = tween.now;
+                               fx.elem[ fx.prop ] = fx.now;
                        }
                }
        }
-};
-
-// Remove in 2.0 - this supports IE8's panic based approach
-// to setting things on disconnected nodes
+});
 
-Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
-       set: function( tween ) {
-               if ( tween.elem.nodeType && tween.elem.parentNode ) {
-                       tween.elem[ tween.prop ] = tween.now;
-               }
+// Ensure props that can't be negative don't go there on undershoot easing
+jQuery.each( fxAttrs.concat.apply( [], fxAttrs ), function( i, prop ) {
+       // exclude marginTop, marginLeft, marginBottom and marginRight from this list
+       if ( prop.indexOf( "margin" ) ) {
+               jQuery.fx.step[ prop ] = function( fx ) {
+                       jQuery.style( fx.elem, prop, Math.max(0, fx.now) + fx.unit );
+               };
        }
-};
-
-jQuery.each([ "toggle", "show", "hide" ], function( i, name ) {
-       var cssFn = jQuery.fn[ name ];
-       jQuery.fn[ name ] = function( speed, easing, callback ) {
-               return speed == null || typeof speed === "boolean" ||
-                       // special check for .toggle( handler, handler, ... )
-                       ( !i && jQuery.isFunction( speed ) && jQuery.isFunction( easing ) ) ?
-                       cssFn.apply( this, arguments ) :
-                       this.animate( genFx( name, true ), speed, easing, callback );
-       };
 });
 
-jQuery.fn.extend({
-       fadeTo: function( speed, to, easing, callback ) {
-
-               // show any hidden elements after setting opacity to 0
-               return this.filter( isHidden ).css( "opacity", 0 ).show()
+if ( jQuery.expr && jQuery.expr.filters ) {
+       jQuery.expr.filters.animated = function( elem ) {
+               return jQuery.grep(jQuery.timers, function( fn ) {
+                       return elem === fn.elem;
+               }).length;
+       };
+}
 
-                       // animate to the value specified
-                       .end().animate({ opacity: to }, speed, easing, callback );
-       },
-       animate: function( prop, speed, easing, callback ) {
-               var empty = jQuery.isEmptyObject( prop ),
-                       optall = jQuery.speed( speed, easing, callback ),
-                       doAnimation = function() {
-                               // Operate on a copy of prop so per-property easing won't be lost
-                               var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+// Try to restore the default display value of an element
+function defaultDisplay( nodeName ) {
 
-                               // Empty animations resolve immediately
-                               if ( empty ) {
-                                       anim.stop( true );
-                               }
-                       };
+       if ( !elemdisplay[ nodeName ] ) {
 
-               return empty || optall.queue === false ?
-                       this.each( doAnimation ) :
-                       this.queue( optall.queue, doAnimation );
-       },
-       stop: function( type, clearQueue, gotoEnd ) {
-               var stopQueue = function( hooks ) {
-                       var stop = hooks.stop;
-                       delete hooks.stop;
-                       stop( gotoEnd );
-               };
+               var body = document.body,
+                       elem = jQuery( "<" + nodeName + ">" ).appendTo( body ),
+                       display = elem.css( "display" );
+               elem.remove();
 
-               if ( typeof type !== "string" ) {
-                       gotoEnd = clearQueue;
-                       clearQueue = type;
-                       type = undefined;
-               }
-               if ( clearQueue && type !== false ) {
-                       this.queue( type || "fx", [] );
-               }
+               // If the simple way fails,
+               // get element's real default display by attaching it to a temp iframe
+               if ( display === "none" || display === "" ) {
+                       // No iframe to use yet, so create it
+                       if ( !iframe ) {
+                               iframe = document.createElement( "iframe" );
+                               iframe.frameBorder = iframe.width = iframe.height = 0;
+                       }
 
-               return this.each(function() {
-                       var dequeue = true,
-                               index = type != null && type + "queueHooks",
-                               timers = jQuery.timers,
-                               data = jQuery._data( this );
+                       body.appendChild( iframe );
 
-                       if ( index ) {
-                               if ( data[ index ] && data[ index ].stop ) {
-                                       stopQueue( data[ index ] );
-                               }
-                       } else {
-                               for ( index in data ) {
-                                       if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
-                                               stopQueue( data[ index ] );
-                                       }
-                               }
+                       // Create a cacheable copy of the iframe document on first call.
+                       // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
+                       // document to it; WebKit & Firefox won't allow reusing the iframe document.
+                       if ( !iframeDoc || !iframe.createElement ) {
+                               iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
+                               iframeDoc.write( ( jQuery.support.boxModel ? "<!doctype html>" : "" ) + "<html><body>" );
+                               iframeDoc.close();
                        }
 
-                       for ( index = timers.length; index--; ) {
-                               if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
-                                       timers[ index ].anim.stop( gotoEnd );
-                                       dequeue = false;
-                                       timers.splice( index, 1 );
-                               }
-                       }
+                       elem = iframeDoc.createElement( nodeName );
 
-                       // start the next in the queue if the last step wasn't forced
-                       // timers currently will call their complete callbacks, which will dequeue
-                       // but only if they were gotoEnd
-                       if ( dequeue || !gotoEnd ) {
-                               jQuery.dequeue( this, type );
-                       }
-               });
-       }
-});
+                       iframeDoc.body.appendChild( elem );
 
-// Generate parameters to create a standard animation
-function genFx( type, includeWidth ) {
-       var which,
-               attrs = { height: type },
-               i = 0;
-
-       // if we include width, step value is 1 to do all cssExpand values,
-       // if we don't include width, step value is 2 to skip over Left and Right
-       for( ; i < 4 ; i += 2 - includeWidth ) {
-               which = cssExpand[ i ];
-               attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
-       }
+                       display = jQuery.css( elem, "display" );
+                       body.removeChild( iframe );
+               }
 
-       if ( includeWidth ) {
-               attrs.opacity = attrs.width = type;
+               // Store the correct default display
+               elemdisplay[ nodeName ] = display;
        }
 
-       return attrs;
+       return elemdisplay[ nodeName ];
 }
 
-// Generate shortcuts for custom animations
-jQuery.each({
-       slideDown: genFx("show"),
-       slideUp: genFx("hide"),
-       slideToggle: genFx("toggle"),
-       fadeIn: { opacity: "show" },
-       fadeOut: { opacity: "hide" },
-       fadeToggle: { opacity: "toggle" }
-}, function( name, props ) {
-       jQuery.fn[ name ] = function( speed, easing, callback ) {
-               return this.animate( props, speed, easing, callback );
-       };
-});
 
-jQuery.speed = function( speed, easing, fn ) {
-       var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
-               complete: fn || !fn && easing ||
-                       jQuery.isFunction( speed ) && speed,
-               duration: speed,
-               easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
-       };
 
-       opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
-               opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
 
-       // normalize opt.queue - true/undefined/null -> "fx"
-       if ( opt.queue == null || opt.queue === true ) {
-               opt.queue = "fx";
-       }
+var getOffset,
+       rtable = /^t(?:able|d|h)$/i,
+       rroot = /^(?:body|html)$/i;
 
-       // Queueing
-       opt.old = opt.complete;
+if ( "getBoundingClientRect" in document.documentElement ) {
+       getOffset = function( elem, doc, docElem, box ) {
+               try {
+                       box = elem.getBoundingClientRect();
+               } catch(e) {}
 
-       opt.complete = function() {
-               if ( jQuery.isFunction( opt.old ) ) {
-                       opt.old.call( this );
+               // Make sure we're not dealing with a disconnected DOM node
+               if ( !box || !jQuery.contains( docElem, elem ) ) {
+                       return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };
                }
 
-               if ( opt.queue ) {
-                       jQuery.dequeue( this, opt.queue );
-               }
-       };
+               var body = doc.body,
+                       win = getWindow( doc ),
+                       clientTop  = docElem.clientTop  || body.clientTop  || 0,
+                       clientLeft = docElem.clientLeft || body.clientLeft || 0,
+                       scrollTop  = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop  || body.scrollTop,
+                       scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
+                       top  = box.top  + scrollTop  - clientTop,
+                       left = box.left + scrollLeft - clientLeft;
 
-       return opt;
-};
+               return { top: top, left: left };
+       };
 
-jQuery.easing = {
-       linear: function( p ) {
-               return p;
-       },
-       swing: function( p ) {
-               return 0.5 - Math.cos( p*Math.PI ) / 2;
-       }
-};
+} else {
+       getOffset = function( elem, doc, docElem ) {
+               var computedStyle,
+                       offsetParent = elem.offsetParent,
+                       prevOffsetParent = elem,
+                       body = doc.body,
+                       defaultView = doc.defaultView,
+                       prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
+                       top = elem.offsetTop,
+                       left = elem.offsetLeft;
+
+               while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
+                       if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) {
+                               break;
+                       }
 
-jQuery.timers = [];
-jQuery.fx = Tween.prototype.init;
-jQuery.fx.tick = function() {
-       var timer,
-               timers = jQuery.timers,
-               i = 0;
+                       computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle;
+                       top  -= elem.scrollTop;
+                       left -= elem.scrollLeft;
 
-       for ( ; i < timers.length; i++ ) {
-               timer = timers[ i ];
-               // Checks the timer has not already been removed
-               if ( !timer() && timers[ i ] === timer ) {
-                       timers.splice( i--, 1 );
-               }
-       }
+                       if ( elem === offsetParent ) {
+                               top  += elem.offsetTop;
+                               left += elem.offsetLeft;
 
-       if ( !timers.length ) {
-               jQuery.fx.stop();
-       }
-};
+                               if ( jQuery.support.doesNotAddBorder && !(jQuery.support.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {
+                                       top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
+                                       left += parseFloat( computedStyle.borderLeftWidth ) || 0;
+                               }
 
-jQuery.fx.timer = function( timer ) {
-       if ( timer() && jQuery.timers.push( timer ) && !timerId ) {
-               timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
-       }
-};
+                               prevOffsetParent = offsetParent;
+                               offsetParent = elem.offsetParent;
+                       }
 
-jQuery.fx.interval = 13;
+                       if ( jQuery.support.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) {
+                               top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
+                               left += parseFloat( computedStyle.borderLeftWidth ) || 0;
+                       }
 
-jQuery.fx.stop = function() {
-       clearInterval( timerId );
-       timerId = null;
-};
+                       prevComputedStyle = computedStyle;
+               }
 
-jQuery.fx.speeds = {
-       slow: 600,
-       fast: 200,
-       // Default speed
-       _default: 400
-};
+               if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) {
+                       top  += body.offsetTop;
+                       left += body.offsetLeft;
+               }
 
-// Back Compat <1.8 extension point
-jQuery.fx.step = {};
+               if ( jQuery.support.fixedPosition && prevComputedStyle.position === "fixed" ) {
+                       top  += Math.max( docElem.scrollTop, body.scrollTop );
+                       left += Math.max( docElem.scrollLeft, body.scrollLeft );
+               }
 
-if ( jQuery.expr && jQuery.expr.filters ) {
-       jQuery.expr.filters.animated = function( elem ) {
-               return jQuery.grep(jQuery.timers, function( fn ) {
-                       return elem === fn.elem;
-               }).length;
+               return { top: top, left: left };
        };
 }
-var rroot = /^(?:body|html)$/i;
 
 jQuery.fn.offset = function( options ) {
        if ( arguments.length ) {
@@ -8995,35 +9150,18 @@ jQuery.fn.offset = function( options ) {
                        });
        }
 
-       var box, docElem, body, win, clientTop, clientLeft, scrollTop, scrollLeft, top, left,
-               elem = this[ 0 ],
+       var elem = this[0],
                doc = elem && elem.ownerDocument;
 
        if ( !doc ) {
-               return;
+               return null;
        }
 
-       if ( (body = doc.body) === elem ) {
+       if ( elem === doc.body ) {
                return jQuery.offset.bodyOffset( elem );
        }
 
-       docElem = doc.documentElement;
-
-       // Make sure we're not dealing with a disconnected DOM node
-       if ( !jQuery.contains( docElem, elem ) ) {
-               return { top: 0, left: 0 };
-       }
-
-       box = elem.getBoundingClientRect();
-       win = getWindow( doc );
-       clientTop  = docElem.clientTop  || body.clientTop  || 0;
-       clientLeft = docElem.clientLeft || body.clientLeft || 0;
-       scrollTop  = win.pageYOffset || docElem.scrollTop;
-       scrollLeft = win.pageXOffset || docElem.scrollLeft;
-       top  = box.top  + scrollTop  - clientTop;
-       left = box.left + scrollLeft - clientLeft;
-
-       return { top: top, left: left };
+       return getOffset( elem, doc, doc.documentElement );
 };
 
 jQuery.offset = {
@@ -9089,7 +9227,7 @@ jQuery.fn.extend({
 
        position: function() {
                if ( !this[0] ) {
-                       return;
+                       return null;
                }
 
                var elem = this[0],
@@ -9124,7 +9262,7 @@ jQuery.fn.extend({
                        while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
                                offsetParent = offsetParent.offsetParent;
                        }
-                       return offsetParent || document.body;
+                       return offsetParent;
                });
        }
 });
@@ -9140,7 +9278,8 @@ jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( me
 
                        if ( val === undefined ) {
                                return win ? (prop in win) ? win[ prop ] :
-                                       win.document.documentElement[ method ] :
+                                       jQuery.support.boxModel && win.document.documentElement[ method ] ||
+                                               win.document.body[ method ] :
                                        elem[ method ];
                        }
 
@@ -9164,47 +9303,83 @@ function getWindow( elem ) {
                        elem.defaultView || elem.parentWindow :
                        false;
 }
-// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+
+
+
+
+// Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods
 jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
-       jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) {
-               // margin is only for outerHeight, outerWidth
-               jQuery.fn[ funcName ] = function( margin, value ) {
-                       var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
-                               extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
-
-                       return jQuery.access( this, function( elem, type, value ) {
-                               var doc;
-
-                               if ( jQuery.isWindow( elem ) ) {
-                                       // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
-                                       // isn't a whole lot we can do. See pull request at this URL for discussion:
-                                       // https://github.com/jquery/jquery/pull/764
-                                       return elem.document.documentElement[ "client" + name ];
-                               }
-
-                               // Get document width or height
-                               if ( elem.nodeType === 9 ) {
-                                       doc = elem.documentElement;
-
-                                       // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest
-                                       // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it.
-                                       return Math.max(
-                                               elem.body[ "scroll" + name ], doc[ "scroll" + name ],
-                                               elem.body[ "offset" + name ], doc[ "offset" + name ],
-                                               doc[ "client" + name ]
-                                       );
+       var clientProp = "client" + name,
+               scrollProp = "scroll" + name,
+               offsetProp = "offset" + name;
+
+       // innerHeight and innerWidth
+       jQuery.fn[ "inner" + name ] = function() {
+               var elem = this[0];
+               return elem ?
+                       elem.style ?
+                       parseFloat( jQuery.css( elem, type, "padding" ) ) :
+                       this[ type ]() :
+                       null;
+       };
+
+       // outerHeight and outerWidth
+       jQuery.fn[ "outer" + name ] = function( margin ) {
+               var elem = this[0];
+               return elem ?
+                       elem.style ?
+                       parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) :
+                       this[ type ]() :
+                       null;
+       };
+
+       jQuery.fn[ type ] = function( value ) {
+               return jQuery.access( this, function( elem, type, value ) {
+                       var doc, docElemProp, orig, ret;
+
+                       if ( jQuery.isWindow( elem ) ) {
+                               // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
+                               doc = elem.document;
+                               docElemProp = doc.documentElement[ clientProp ];
+                               return jQuery.support.boxModel && docElemProp ||
+                                       doc.body && doc.body[ clientProp ] || docElemProp;
+                       }
+
+                       // Get document width or height
+                       if ( elem.nodeType === 9 ) {
+                               // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
+                               doc = elem.documentElement;
+
+                               // when a window > document, IE6 reports a offset[Width/Height] > client[Width/Height]
+                               // so we can't use max, as it'll choose the incorrect offset[Width/Height]
+                               // instead we use the correct client[Width/Height]
+                               // support:IE6
+                               if ( doc[ clientProp ] >= doc[ scrollProp ] ) {
+                                       return doc[ clientProp ];
                                }
 
-                               return value === undefined ?
-                                       // Get width or height on the element, requesting but not forcing parseFloat
-                                       jQuery.css( elem, type, value, extra ) :
+                               return Math.max(
+                                       elem.body[ scrollProp ], doc[ scrollProp ],
+                                       elem.body[ offsetProp ], doc[ offsetProp ]
+                               );
+                       }
 
-                                       // Set width or height on the element
-                                       jQuery.style( elem, type, value, extra );
-                       }, type, chainable ? margin : undefined, chainable );
-               };
-       });
+                       // Get width or height on the element
+                       if ( value === undefined ) {
+                               orig = jQuery.css( elem, type );
+                               ret = parseFloat( orig );
+                               return jQuery.isNumeric( ret ) ? ret : orig;
+                       }
+
+                       // Set the width or height on the element
+                       jQuery( elem ).css( type, value );
+               }, type, value, arguments.length, null );
+       };
 });
+
+
+
+
 // Expose jQuery to the global object
 window.jQuery = window.$ = jQuery;
 
@@ -9224,4 +9399,6 @@ if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
        define( "jquery", [], function () { return jQuery; } );
 }
 
+
+
 })( window );
diff --git a/resources/mediawiki.language/languages/ar.js b/resources/mediawiki.language/languages/ar.js
deleted file mode 100644 (file)
index d21df7e..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Arabic (العربية) language functions
- */
-
-mediaWiki.language.convertPlural = function( count, forms ) {
-       forms = mediaWiki.language.preConvertPlural( forms, 6 );
-       if ( count == 0 ) {
-               return forms[0];
-       }
-       if ( count == 1 ) {
-               return forms[1];
-       }
-       if ( count == 2 ) {
-               return forms[2];
-       }
-       if ( count % 100 >= 3 && count % 100 <= 10 ) {
-               return forms[3];
-       }
-       if ( count % 100 >= 11 && count % 100 <= 99 ) {
-               return forms[4];
-       }
-       return forms[5];
-};
-
index e737a7c..d35f77e 100644 (file)
@@ -2,17 +2,6 @@
  * Hebrew (עברית) language functions
  */
 
-mediaWiki.language.convertPlural = function( count, forms ) {
-       forms = mediaWiki.language.preConvertPlural( forms, 3 );
-       if ( count == 1 ) {
-               return forms[0];
-       }
-       if ( count == 2 && forms[2] ) {
-               return forms[2];
-       }
-       return forms[1];
-};
-
 mediaWiki.language.convertGrammar = function( word, form ) {
        var grammarForms = mw.language.getData( 'he', 'grammarForms' );
        if ( grammarForms && grammarForms[form] ) {
diff --git a/resources/mediawiki.language/languages/hi.js b/resources/mediawiki.language/languages/hi.js
deleted file mode 100644 (file)
index a22a0e1..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Hindi (हिन्दी) language functions
- */
-
-mediaWiki.language.convertPlural = function( count, forms ) {
-       forms = mediaWiki.language.preConvertPlural( forms, 2 );
-       return ( count <= 1 ) ? forms[0] : forms[1];
-};
diff --git a/resources/mediawiki.language/mediawiki.cldr.js b/resources/mediawiki.language/mediawiki.cldr.js
new file mode 100644 (file)
index 0000000..6660eca
--- /dev/null
@@ -0,0 +1,28 @@
+/**
+ *  CLDR related utility methods
+ */
+( function( mw ) {
+       "use strict";
+
+       var cldr = {
+               /**
+                * For the number, get the plural for index
+                * In case none of the rules passed, we return pluralRules.length
+                * That means it is the "other" form.
+                * @param number
+                * @param pluralRules
+                * @return plural form index
+                */
+               getPluralForm: function( number, pluralRules ) {
+                       var pluralFormIndex = 0;
+                       for ( pluralFormIndex = 0; pluralFormIndex < pluralRules.length; pluralFormIndex++ ) {
+                               if ( mw.libs.pluralRuleParser( pluralRules[pluralFormIndex], number ) ) {
+                                       break;
+                               }
+                       }
+                       return pluralFormIndex;
+               }
+       };
+
+       mw.cldr = cldr;
+} )( mediaWiki );
index 1234637..935d4ff 100644 (file)
@@ -43,11 +43,19 @@ var language = {
         * @param forms array List of plural forms
         * @return string Correct form for quantifier in this language
         */
-       convertPlural: function ( count, forms ){
+       convertPlural: function( count, forms ) {
+               var pluralFormIndex = 0;
                if ( !forms || forms.length === 0 ) {
                        return '';
                }
-               return ( parseInt( count, 10 ) === 1 ) ? forms[0] : forms[1];
+               var pluralRules = mw.language.getData( mw.config.get( 'wgUserLanguage' ), 'pluralRules' );
+               if ( !pluralRules ) {
+                       // default fallback.
+                       return ( count === 1 ) ? forms[0] : forms[1];
+               }
+               pluralFormIndex = mw.cldr.getPluralForm( count, pluralRules );
+               pluralFormIndex = Math.min( pluralFormIndex, forms.length - 1 );
+               return forms[pluralFormIndex];
        },
 
        /**
diff --git a/resources/mediawiki.libs/CLDRPluralRuleParser.js b/resources/mediawiki.libs/CLDRPluralRuleParser.js
new file mode 100644 (file)
index 0000000..bb1491d
--- /dev/null
@@ -0,0 +1,306 @@
+/* This is cldrpluralparser 1.0, ported to MediaWiki ResourceLoader */
+
+/**
+* cldrpluralparser.js
+* A parser engine for CLDR plural rules.
+*
+* Copyright 2012 GPLV3+, Santhosh Thottingal
+*
+* @version 0.1.0-alpha
+* @source https://github.com/santhoshtr/CLDRPluralRuleParser
+* @author Santhosh Thottingal <santhosh.thottingal@gmail.com>
+* @author Timo Tijhof
+* @author Amir Aharoni
+*/
+
+/**
+ * Evaluates a plural rule in CLDR syntax for a number
+ * @param rule
+ * @param number
+ * @return true|false|null
+ */
+( function( mw ) {
+
+function pluralRuleParser(rule, number) {
+       /*
+       Syntax: see http://unicode.org/reports/tr35/#Language_Plural_Rules
+       -----------------------------------------------------------------
+
+       condition     = and_condition ('or' and_condition)*
+       and_condition = relation ('and' relation)*
+       relation      = is_relation | in_relation | within_relation | 'n' <EOL>
+       is_relation   = expr 'is' ('not')? value
+       in_relation   = expr ('not')? 'in' range_list
+       within_relation = expr ('not')? 'within' range_list
+       expr          = 'n' ('mod' value)?
+       range_list    = (range | value) (',' range_list)*
+       value         = digit+
+       digit         = 0|1|2|3|4|5|6|7|8|9
+       range         = value'..'value
+
+       */
+       // Indicates current position in the rule as we parse through it.
+       // Shared among all parsing functions below.
+       var pos = 0;
+
+       var whitespace = makeRegexParser(/^\s+/);
+       var digits = makeRegexParser(/^\d+/);
+
+       var _n_ = makeStringParser('n');
+       var _is_ = makeStringParser('is');
+       var _mod_ = makeStringParser('mod');
+       var _not_ = makeStringParser('not');
+       var _in_ = makeStringParser('in');
+       var _within_ = makeStringParser('within');
+       var _range_ = makeStringParser('..');
+       var _comma_ = makeStringParser(',');
+       var _or_ = makeStringParser('or');
+       var _and_ = makeStringParser('and');
+
+       function debug() {
+               /* console.log.apply(console, arguments);*/
+       }
+
+       debug('pluralRuleParser', rule, number);
+
+       // Try parsers until one works, if none work return null
+       function choice(parserSyntax) {
+               return function () {
+                       for (var i = 0; i < parserSyntax.length; i++) {
+                               var result = parserSyntax[i]();
+                               if (result !== null) {
+                                       return result;
+                               }
+                       }
+                       return null;
+               };
+       }
+
+       // Try several parserSyntax-es in a row.
+       // All must succeed; otherwise, return null.
+       // This is the only eager one.
+       function sequence(parserSyntax) {
+               var originalPos = pos;
+               var result = [];
+               for (var i = 0; i < parserSyntax.length; i++) {
+                       var res = parserSyntax[i]();
+                       if (res === null) {
+                               pos = originalPos;
+                               return null;
+                       }
+                       result.push(res);
+               }
+               return result;
+       }
+
+       // Run the same parser over and over until it fails.
+       // Must succeed a minimum of n times; otherwise, return null.
+       function nOrMore(n, p) {
+               return function () {
+                       var originalPos = pos;
+                       var result = [];
+                       var parsed = p();
+                       while (parsed !== null) {
+                               result.push(parsed);
+                               parsed = p();
+                       }
+                       if (result.length < n) {
+                               pos = originalPos;
+                               return null;
+                       }
+                       return result;
+               };
+       }
+
+       // Helpers -- just make parserSyntax out of simpler JS builtin types
+
+       function makeStringParser(s) {
+               var len = s.length;
+               return function () {
+                       var result = null;
+                       if (rule.substr(pos, len) === s) {
+                               result = s;
+                               pos += len;
+                       }
+                       return result;
+               };
+       }
+
+       function makeRegexParser(regex) {
+               return function () {
+                       var matches = rule.substr(pos).match(regex);
+                       if (matches === null) {
+                               return null;
+                       }
+                       pos += matches[0].length;
+                       return matches[0];
+               };
+       }
+
+       function n() {
+               var result = _n_();
+               if (result === null) {
+                       debug(" -- failed n");
+                       return result;
+               }
+               result = parseInt(number, 10);
+               debug(" -- passed n ", result);
+               return result;
+       }
+
+       var expression = choice([mod, n]);
+
+       function mod() {
+               var result = sequence([n, whitespace, _mod_, whitespace, digits]);
+               if (result === null) {
+                       debug(" -- failed mod");
+                       return null;
+               }
+               debug(" -- passed mod");
+               return parseInt(result[0], 10) % parseInt(result[4], 10);
+       }
+
+       function not() {
+               var result = sequence([whitespace, _not_]);
+               if (result === null) {
+                       debug(" -- failed not");
+                       return null;
+               } else {
+                       return result[1];
+               }
+       }
+
+       function is() {
+               var result = sequence([expression, whitespace, _is_, nOrMore(0, not), whitespace, digits]);
+               if (result !== null) {
+                       debug(" -- passed is");
+                       if (result[3][0] === 'not') {
+                               return result[0] !== parseInt(result[5], 10);
+                       } else {
+                               return result[0] === parseInt(result[5], 10);
+                       }
+               }
+               debug(" -- failed is");
+               return null;
+       }
+
+       function rangeList() {
+               // range_list    = (range | value) (',' range_list)*
+               var result = sequence([choice([range, digits]), nOrMore(0, rangeTail)]);
+               var resultList = [];
+               if (result !== null) {
+                       resultList = resultList.concat(result[0], result[1][0]);
+                       return resultList;
+               }
+               debug(" -- failed rangeList");
+               return null;
+       }
+
+       function rangeTail() {
+               // ',' range_list
+               var result = sequence([_comma_, rangeList]);
+               if (result !== null) {
+                       return result[1];
+               }
+               debug(" -- failed rangeTail");
+               return null;
+       }
+
+       function range() {
+               var result = sequence([digits, _range_, digits]);
+               if (result !== null) {
+                       debug(" -- passed range");
+                       var array = [];
+                       var left = parseInt(result[0], 10);
+                       var right = parseInt(result[2], 10);
+                       for ( i = left; i <= right; i++) {
+                               array.push(i);
+                       }
+                       return array;
+               }
+               debug(" -- failed range");
+               return null;
+       }
+
+       function _in() {
+               // in_relation   = expr ('not')? 'in' range_list
+               var result = sequence([expression, nOrMore(0, not), whitespace, _in_, whitespace, rangeList]);
+               if (result !== null) {
+                       debug(" -- passed _in");
+                       var range_list = result[5];
+                       for (var i = 0; i < range_list.length; i++) {
+                               if (parseInt(range_list[i], 10) === result[0]) {
+                                       return (result[1][0] !== 'not');
+                               }
+                       }
+                       return (result[1][0] === 'not');
+               }
+               debug(" -- failed _in ");
+               return null;
+       }
+
+       function within() {
+               var result = sequence([expression, whitespace, _within_, whitespace, rangeList]);
+               if (result !== null) {
+                       debug(" -- passed within ");
+                       var range_list = result[4];
+                       return (parseInt( range_list[0],10 )<= result[0] && result[0] <= parseInt( range_list[1], 10));
+               }
+               debug(" -- failed within ");
+               return null;
+       }
+
+
+       var relation = choice([is, _in, within]);
+
+       function and() {
+               var result = sequence([relation, whitespace, _and_, whitespace, condition]);
+               if (result) {
+                       debug(" -- passed and");
+                       return result[0] && result[4];
+               }
+               debug(" -- failed and");
+               return null;
+       }
+
+       function or() {
+               var result = sequence([relation, whitespace, _or_, whitespace, condition]);
+               if (result) {
+                       debug(" -- passed or");
+                       return result[0] || result[4];
+               }
+               debug(" -- failed or");
+               return null;
+       }
+
+       var condition = choice([and, or, relation]);
+
+       function start() {
+               var result = condition();
+               return result;
+       }
+
+
+       var result = start();
+
+       /*
+        * For success, the pos must have gotten to the end of the rule
+        * and returned a non-null.
+        * n.b. This is part of language infrastructure, so we do not throw an internationalizable message.
+        */
+       if (result === null || pos !== rule.length) {
+               // throw new Error("Parse error at position " + pos.toString() + " in input: " + rule + " result is " + result);
+       }
+
+       return result;
+}
+
+/* For module loaders, e.g. NodeJS, NPM */
+if (typeof module !== 'undefined' && module.exports) {
+       module.exports = pluralRuleParser;
+}
+
+/* pluralRuleParser ends here */
+mw.libs.pluralRuleParser = pluralRuleParser;
+
+} )( mediaWiki );
index e0c65e8..f0e464d 100644 (file)
@@ -307,7 +307,7 @@ var mw = ( function ( $, undefined ) {
                },
 
                /**
-                * Gets a message string, similar to wfMsg()
+                * Gets a message string, similar to wfMessage()
                 *
                 * @param key string Key of message to get
                 * @param parameters mixed First argument in a list of variadic arguments,
index d1bfd05..7e2bab8 100644 (file)
                 * @return string Address to script (eg. '/w/api.php' )
                 */
                wikiScript: function ( str ) {
-                       return mw.config.get( 'wgScriptPath' ) + '/' + ( str || 'index' ) +
-                               mw.config.get( 'wgScriptExtension' );
+                       str = str || 'index';
+                       if ( str === 'index' ) {
+                               return mw.config.get( 'wgScript' );
+                       } else if ( str === 'load' ) {
+                               return mw.config.get( 'wgLoadScript' );
+                       } else {
+                               return mw.config.get( 'wgScriptPath' ) + '/' + str +
+                                       mw.config.get( 'wgScriptExtension' );
+                       }
                },
 
                /**
index 214d9bc..913c19b 100644 (file)
@@ -84,14 +84,14 @@ class CologneBlueTemplate extends LegacyTemplate {
 
                $s .= '<td class="top" nowrap="nowrap">';
                $s .= '<a href="' . htmlspecialchars( $mainPageObj->getLocalURL() ) . '">';
-               $s .= '<span id="sitetitle">' . wfMsg( 'sitetitle' ) . '</span></a>';
+               $s .= '<span id="sitetitle">' . wfMessage( 'sitetitle' )->escaped() . '</span></a>';
 
                $s .= '</td><td class="top" id="top-syslinks" width="100%">';
                $s .= $this->sysLinks();
                $s .= '</td></tr><tr><td class="top-subheader">';
 
                $s .= '<font size="-1"><span id="sitesub">';
-               $s .= htmlspecialchars( wfMsg( 'sitesubtitle' ) ) . '</span></font>';
+               $s .= wfMessage( 'sitesubtitle' )->escaped() . '</span></font>';
                $s .= '</td><td class="top-linkcollection">';
 
                $s .= '<font size="-1"><span id="langlinks">';
@@ -128,15 +128,11 @@ class CologneBlueTemplate extends LegacyTemplate {
 
                $s .= $this->bottomLinks();
                $s .= $this->getSkin()->getLanguage()->pipeList( array(
-                       "\n<br />" . Linker::link(
-                               Title::newMainPage(),
-                               null,
-                               array(),
-                               array(),
-                               array( 'known', 'noclasses' )
+                       "\n<br />" . Linker::linkKnown(
+                               Title::newMainPage()
                        ),
                        $this->getSkin()->aboutLink(),
-                       $this->searchForm( wfMsg( 'qbfind' ) )
+                       $this->searchForm( wfMessage( 'qbfind' )->text() )
                ) );
 
                $s .= "\n<br />" . $this->pageStats();
@@ -167,16 +163,16 @@ class CologneBlueTemplate extends LegacyTemplate {
                $s = array(
                        $this->getSkin()->mainPageLink(),
                        Linker::linkKnown(
-                               Title::newFromText( wfMsgForContent( 'aboutpage' ) ),
-                               wfMsg( 'about' )
+                               Title::newFromText( wfMessage( 'aboutpage' )->inContentLanguage()->text() ),
+                               wfMessage( 'about' )->text()
                        ),
                        Linker::linkKnown(
-                               Title::newFromText( wfMsgForContent( 'helppage' ) ),
-                               wfMsg( 'help' )
+                               Title::newFromText( wfMessage( 'helppage' )->inContentLanguage()->text() ),
+                               wfMessage( 'help' )->text()
                        ),
                        Linker::linkKnown(
-                               Title::newFromText( wfMsgForContent( 'faqpage' ) ),
-                               wfMsg( 'faq' )
+                               Title::newFromText( wfMessage( 'faqpage' )->inContentLanguage()->text() ),
+                               wfMessage( 'faq' )->text()
                        ),
                        Linker::specialLink( 'Specialpages' )
                );
@@ -191,14 +187,14 @@ class CologneBlueTemplate extends LegacyTemplate {
                if ( $this->data['loggedin'] ) {
                        $s[] = Linker::linkKnown(
                                $lo,
-                               wfMsg( 'logout' ),
+                               wfMessage( 'logout' )->text(),
                                array(),
                                $q
                        );
                } else {
                        $s[] = Linker::linkKnown(
                                $li,
-                               wfMsg( 'login' ),
+                               wfMessage( 'login' )->text(),
                                array(),
                                $q
                        );
@@ -257,8 +253,8 @@ class CologneBlueTemplate extends LegacyTemplate {
                        $s .= '<strong>' . $this->editThisPage() . '</strong>';
 
                        $s .= $sep . Linker::linkKnown(
-                               Title::newFromText( wfMsgForContent( 'edithelppage' ) ),
-                               wfMsg( 'edithelp' )
+                               Title::newFromText( wfMessage( 'edithelppage' )->inContentLanguage()->text() ),
+                               wfMessage( 'edithelp' )->text()
                        );
 
                        if( $this->data['loggedin'] ) {
@@ -309,31 +305,22 @@ class CologneBlueTemplate extends LegacyTemplate {
 
                $s .= $this->menuHead( 'qbmyoptions' );
                if ( $this->data['loggedin'] ) {
-                       $tl = Linker::link(
+                       $tl = Linker::linkKnown(
                                $user->getTalkPage(),
-                               wfMsg( 'mytalk' ),
-                               array(),
-                               array(),
-                               array( 'known', 'noclasses' )
+                               wfMessage( 'mytalk' )->escaped()
                        );
                        if ( $user->getNewtalk() ) {
                                $tl .= ' *';
                        }
 
-                       $s .= Linker::link(
+                       $s .= Linker::linkKnown(
                                        $user->getUserPage(),
-                                       wfMsg( 'mypage' ),
-                                       array(),
-                                       array(),
-                                       array( 'known', 'noclasses' )
+                                       wfMessage( 'mypage' )->escaped()
                                ) . $sep . $tl . $sep . Linker::specialLink( 'Watchlist' )
                                        . $sep .
-                               Linker::link(
+                               Linker::linkKnown(
                                        SpecialPage::getSafeTitleFor( 'Contributions', $user->getName() ),
-                                       wfMsg( 'mycontris' ),
-                                       array(),
-                                       array(),
-                                       array( 'known', 'noclasses' )
+                                       wfMessage( 'mycontris' )->escaped()
                                ) . $sep . Linker::specialLink( 'Preferences' )
                                . $sep . Linker::specialLink( 'Userlogout' );
                } else {
@@ -352,15 +339,12 @@ class CologneBlueTemplate extends LegacyTemplate {
 
                if( $wgSiteSupportPage ) {
                        $s .= $sep . '<a href="' . htmlspecialchars( $wgSiteSupportPage ) . '" class="internal">'
-                                       . wfMsg( 'sitesupport' ) . '</a>';
+                                       . wfMessage( 'sitesupport' )->escaped() . '</a>';
                }
 
-               $s .= $sep . Linker::link(
+               $s .= $sep . Linker::linkKnown(
                        SpecialPage::getTitleFor( 'Specialpages' ),
-                       wfMsg( 'moredotdotdot' ),
-                       array(),
-                       array(),
-                       array( 'known', 'noclasses' )
+                       wfMessage( 'moredotdotdot' )->text()
                );
 
                $s .= $sep . "\n</div>\n";
@@ -372,7 +356,7 @@ class CologneBlueTemplate extends LegacyTemplate {
         * @return string
         */
        function menuHead( $key ) {
-               $s = "\n<h6>" . wfMsg( $key ) . "</h6>";
+               $s = "\n<h6>" . wfMessage( $key )->text() . "</h6>";
                return $s;
        }
 
@@ -392,12 +376,12 @@ class CologneBlueTemplate extends LegacyTemplate {
 
                $s .= "<input type='text' id=\"searchInput{$this->searchboxes}\" class=\"mw-searchInput\" name=\"search\" size=\"14\" value=\""
                        . htmlspecialchars( substr( $search, 0, 256 ) ) . "\" /><br />"
-                       . "<input type='submit' id=\"searchGoButton{$this->searchboxes}\" class=\"searchButton\" name=\"go\" value=\"" . htmlspecialchars( wfMsg( 'searcharticle' ) ) . "\" />";
+                       . "<input type='submit' id=\"searchGoButton{$this->searchboxes}\" class=\"searchButton\" name=\"go\" value=\"" . wfMessage( 'searcharticle' )->escaped() . "\" />";
 
                if( $wgUseTwoButtonsSearchForm ) {
-                       $s .= "<input type='submit' id=\"mw-searchButton{$this->searchboxes}\" class=\"searchButton\" name=\"fulltext\" value=\"" . htmlspecialchars( wfMsg( 'search' ) ) . "\" />\n";
+                       $s .= "<input type='submit' id=\"mw-searchButton{$this->searchboxes}\" class=\"searchButton\" name=\"fulltext\" value=\"" . wfMessage( 'search' )->escaped() . "\" />\n";
                } else {
-                       $s .= '<div><a href="' . $action . '" rel="search">' . wfMsg( 'powersearch-legend' ) . "</a></div>\n";
+                       $s .= '<div><a href="' . $action . '" rel="search">' . wfMessage( 'powersearch-legend' )->escaped() . "</a></div>\n";
                }
 
                $s .= '</form>';
index 98437e2..c3f73e5 100644 (file)
@@ -99,8 +99,8 @@ class NostalgiaTemplate extends LegacyTemplate {
                } else {
                        /* show user page and user talk links */
                        $user = $this->getSkin()->getUser();
-                       $s .= $sep . Linker::link( $user->getUserPage(), wfMsgHtml( 'mypage' ) );
-                       $s .= $sep . Linker::link( $user->getTalkPage(), wfMsgHtml( 'mytalk' ) );
+                       $s .= $sep . Linker::link( $user->getUserPage(), wfMessage( 'mypage' )->escaped() );
+                       $s .= $sep . Linker::link( $user->getTalkPage(), wfMessage( 'mytalk' )->escaped() );
                        if ( $user->getNewtalk() ) {
                                $s .= ' *';
                        }
@@ -109,7 +109,7 @@ class NostalgiaTemplate extends LegacyTemplate {
                        /* show my contributions link */
                        $s .= $sep . Linker::link(
                                SpecialPage::getSafeTitleFor( 'Contributions', $this->data['username'] ),
-                               wfMsgHtml( 'mycontris' ) );
+                               wfMessage( 'mycontris' )->escaped() );
                        /* show my preferences link */
                        $s .= $sep . Linker::specialLink( 'Preferences' );
                        /* show upload file link */
index 1114e7d..e47b35f 100644 (file)
@@ -133,7 +133,7 @@ class StandardTemplate extends LegacyTemplate {
                                        $s.= Linker::specialLink( 'Watchlist' ) ;
                                        $s .= $sep . Linker::linkKnown(
                                                SpecialPage::getTitleFor( 'Contributions' ),
-                                               wfMsg( 'mycontris' ),
+                                               wfMessage( 'mycontris' )->escaped(),
                                                array(),
                                                array( 'target' => $this->data['username'] )
                                        );
@@ -158,34 +158,34 @@ class StandardTemplate extends LegacyTemplate {
                                                case NS_TEMPLATE_TALK:
                                                case NS_HELP_TALK:
                                                case NS_CATEGORY_TALK:
-                                                       $text = wfMsg('viewtalkpage');
+                                                       $text = wfMessage('viewtalkpage');
                                                        break;
                                                case NS_MAIN:
-                                                       $text = wfMsg( 'articlepage' );
+                                                       $text = wfMessage( 'articlepage' );
                                                        break;
                                                case NS_USER:
-                                                       $text = wfMsg( 'userpage' );
+                                                       $text = wfMessage( 'userpage' );
                                                        break;
                                                case NS_PROJECT:
-                                                       $text = wfMsg( 'projectpage' );
+                                                       $text = wfMessage( 'projectpage' );
                                                        break;
                                                case NS_FILE:
-                                                       $text = wfMsg( 'imagepage' );
+                                                       $text = wfMessage( 'imagepage' );
                                                        break;
                                                case NS_MEDIAWIKI:
-                                                       $text = wfMsg( 'mediawikipage' );
+                                                       $text = wfMessage( 'mediawikipage' );
                                                        break;
                                                case NS_TEMPLATE:
-                                                       $text = wfMsg( 'templatepage' );
+                                                       $text = wfMessage( 'templatepage' );
                                                        break;
                                                case NS_HELP:
-                                                       $text = wfMsg( 'viewhelppage' );
+                                                       $text = wfMessage( 'viewhelppage' );
                                                        break;
                                                case NS_CATEGORY:
-                                                       $text = wfMsg( 'categorypage' );
+                                                       $text = wfMessage( 'categorypage' );
                                                        break;
                                                default:
-                                                       $text = wfMsg( 'articlepage' );
+                                                       $text = wfMessage( 'articlepage' );
                                        }
 
                                        $link = $title->getText();
@@ -194,11 +194,11 @@ class StandardTemplate extends LegacyTemplate {
                                                $link = $nstext . ':' . $link;
                                        }
 
-                                       $s .= Linker::link( Title::newFromText( $link ), $text );
+                                       $s .= Linker::link( Title::newFromText( $link ), $text->escaped() );
                                } elseif( $title->getNamespace() != NS_SPECIAL ) {
                                        # we just throw in a "New page" text to tell the user that he's in edit mode,
                                        # and to avoid messing with the separator that is prepended to the next item
-                                       $s .= '<strong>' . wfMsg( 'newpage' ) . '</strong>';
+                                       $s .= '<strong>' . wfMessage( 'newpage' )->escaped() . '</strong>';
                                }
                        }
 
@@ -206,7 +206,7 @@ class StandardTemplate extends LegacyTemplate {
                        if( ( $title->isTalkPage() || $this->getSkin()->getOutput()->showNewSectionLink() ) && $action != 'edit' && !$wpPreview )
                                $s .= '<br />' . Linker::link(
                                        $title,
-                                       wfMsg( 'postcomment' ),
+                                       wfMessage( 'postcomment' )->escaped(),
                                        array(),
                                        array(
                                                'action' => 'edit',
@@ -268,12 +268,11 @@ class StandardTemplate extends LegacyTemplate {
                global $wgSiteSupportPage;
                if( $wgSiteSupportPage ) {
                        $s .= "\n<br /><a href=\"" . htmlspecialchars( $wgSiteSupportPage ) .
-                       '" class="internal">' . wfMsg( 'sitesupport' ) . '</a>';
+                       '" class="internal">' . wfMessage( 'sitesupport' )->escaped() . '</a>';
                }
 
                $s .= "\n<br /></div>\n";
                wfProfileOut( __METHOD__ );
                return $s;
        }
-
 }
index 8e08af3..df819e1 100644 (file)
@@ -1,4 +1,4 @@
-( function () {
+( function ( mw, $ ) {
 var    ajaxUploadDestCheck = mw.config.get( 'wgAjaxUploadDestCheck' ),
        fileExtensions = mw.config.get( 'wgFileExtensions' );
 
@@ -241,10 +241,17 @@ window.fillDestFilename = function(id) {
        }
 
        // Output result
-       var destFile = document.getElementById('wpDestFile');
-       if (destFile) {
-               destFile.value = fname;
-               wgUploadWarningObj.checkNow(fname) ;
+       var destFile = document.getElementById( 'wpDestFile' );
+       if ( destFile ) {
+               // Call decodeURIComponent function to remove possible URL-encoded characters
+               // from the file name (bug 30390). Especially likely with upload-form-url.
+               // decodeURIComponent can throw an exception in input is invalid utf-8
+               try {
+                       destFile.value = decodeURIComponent( fname );
+               } catch ( e ) {
+                       destFile.value = fname;
+               }
+               wgUploadWarningObj.checkNow( fname );
        }
 };
 
@@ -302,4 +309,4 @@ window.wgUploadLicenseObj = {
 
 $( document ).ready( uploadSetup );
 
-}() );
+}( mediaWiki, jQuery ) );
index 1ac8dcb..9d75be4 100644 (file)
@@ -57,10 +57,11 @@ class MakeLanguageSpec extends Maintenance {
                        foreach ( self::$keyToTestArgs as $key => $testArgs ) {
                                foreach ($testArgs as $args) {
                                        // get the raw template, without any transformations
-                                       $template = wfMsgGetKey( $key, /* useDb */ true, $languageCode, /* transform */ false );
+                                       $template = wfMessage( $key )->inLanguage( $languageCode )->plain();
 
                                        // get the magic-parsed version with args
                                        $wfMsgExtArgs = array_merge( array( $key, $wfMsgExtOptions ), $args );
+                                       // @todo FIXME: Use Message class.
                                        $result = call_user_func_array( 'wfMsgExt', $wfMsgExtArgs ); 
 
                                        // record the template, args, language, and expected result
index 0f2165d..5036268 100644 (file)
@@ -1604,6 +1604,23 @@ External links: [IDN ignored character reference in hostname; strip it right off
 </p>
 !! end
 
+# FIXME: This test (the IDN characters in the text of a link) is an inconsistency.
+# Where an external link could easily circumvent the sanitization of the text of
+# a link like this (where an IDN-ignore character is in the URL somewhere), this
+# test demands a higher standard. That's a bit strange.
+#
+# Example:
+#
+# http://e‌xample.com -> [http://example.com|http://example.com]
+# [http://example.com|http://e‌xample.com] -> [http://example.com|http://e‌xample.com]
+#
+# The first example is sanitized, but the second is not. Any security benefits
+# from this production are trivial to circumvent. Either remove this test and
+# let the parser(s) do their thing unaccosted, or fix the inconsistency and change
+# the test accordingly.
+#
+# All our love,
+# The Parsoid team.
 !! test
 External links: IDN ignored character reference in hostname; strip it right off
 !! input
@@ -4967,6 +4984,15 @@ Bug 3090: External links other than http: in image captions
 
 !! end
 
+!! test
+Custom class
+!! input
+[[Image:foobar.jpg|a|class=b]]
+!! result
+<p><a href="/wiki/File:Foobar.jpg" class="image" title="a"><img alt="a" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="b" /></a>
+</p>
+!! end
+
 !! article 
 File:Barfoo.jpg
 !! text
index f99b484..4013734 100644 (file)
Binary files a/tests/phpunit/data/media/exif-gps.jpg and b/tests/phpunit/data/media/exif-gps.jpg differ
diff --git a/tests/phpunit/data/xmp/gps.result.php b/tests/phpunit/data/xmp/gps.result.php
new file mode 100644 (file)
index 0000000..2d1243d
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+
+$result = array( 'xmp-exif' =>
+       array(
+               'GPSAltitude' => -3.14159265301,
+               'GPSDOP' => '5/1',
+               'GPSLatitude' => 88.51805555,
+               'GPSLongitude' => -21.12356945,
+               'GPSVersionID' => '2.2.0.0'
+        )
+);
+
diff --git a/tests/phpunit/data/xmp/gps.xmp b/tests/phpunit/data/xmp/gps.xmp
new file mode 100644 (file)
index 0000000..e52d2c8
--- /dev/null
@@ -0,0 +1,17 @@
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
+<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 7.30'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
+
+ <rdf:Description rdf:about=''
+  xmlns:exif='http://ns.adobe.com/exif/1.0/'>
+  <exif:GPSAltitude>103993/33102</exif:GPSAltitude>
+  <exif:GPSAltitudeRef>1</exif:GPSAltitudeRef>
+  <exif:GPSDOP>5/1</exif:GPSDOP>
+  <exif:GPSLatitude>88,31.083333N</exif:GPSLatitude>
+  <exif:GPSLongitude>21,7.414167W</exif:GPSLongitude>
+  <exif:GPSVersionID>2.2.0.0</exif:GPSVersionID>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+<?xpacket end='w'?>
index 02571b5..17cee6e 100644 (file)
@@ -17,14 +17,14 @@ class ArticleTablesTest extends MediaWikiLangTestCase {
 
                $wgLang = Language::factory( 'fr' );
                $status = $page->doEdit( '{{:{{int:history}}}}', 'Test code for bug 14404', 0, false, $user );
-               $templates1 = $page->getUsedTemplates();
+               $templates1 = $title->getTemplateLinksFrom();
 
                $wgLang = Language::factory( 'de' );
                $page->mPreparedEdit = false; // In order to force the rerendering of the same wikitext
 
                // We need an edit, a purge is not enough to regenerate the tables
                $status = $page->doEdit( '{{:{{int:history}}}}', 'Test code for bug 14404', EDIT_UPDATE, false, $user );
-               $templates2 = $page->getUsedTemplates();
+               $templates2 = $title->getTemplateLinksFrom();
 
                $this->assertEquals( $templates1, $templates2 );
                $this->assertEquals( $templates1[0]->getFullText(), 'Historial' );
index a9088cb..0413b5a 100644 (file)
@@ -146,7 +146,7 @@ class ExtraParserTest extends MediaWikiTestCase {
         */
        function testTrackingCategory() {
                $title = Title::newFromText( __FUNCTION__ );
-               $catName =  wfMsgForContent( 'broken-file-category' );
+               $catName =  wfMessage( 'broken-file-category' )->inContentLanguage()->text();
                $cat = Title::makeTitleSafe( NS_CATEGORY, $catName );
                $expected = array( $cat->getDBkey() );
                $parserOutput = $this->parser->parse( "[[file:nonexistent]]" , $title, $this->options );
index 20199b2..6d82d0c 100644 (file)
@@ -213,6 +213,7 @@ class RevisionStorageTest extends MediaWikiTestCase {
         */
        public function testRevText()
        {
+               $this->hideDeprecated( 'Revision::revText' );
                $orig = $this->makeRevision( array( 'text' => 'hello hello rev.' ) );
                $rev = Revision::newFromId( $orig->getId() );
 
index ef03e83..7a424ae 100644 (file)
@@ -140,4 +140,32 @@ class UserTest extends MediaWikiTestCase {
                        array( 'Ab cd', false, ' Ideographic space' ),
                );
        }
+
+       /**
+        * Test, if for all rights a right- message exist,
+        * which is used on Special:ListGroupRights as help text
+        * Extensions and core
+        */
+       public function testAllRightsWithMessage() {
+               //Getting all user rights, for core: User::$mCoreRights, for extensions: $wgAvailableRights
+               $allRights = User::getAllRights();
+               $allMessageKeys = Language::getMessageKeysFor( 'en' );
+
+               $rightsWithMessage = array();
+               foreach ( $allMessageKeys as $message ) {
+                       // === 0: must be at beginning of string (position 0)
+                       if ( strpos( $message, 'right-' ) === 0 ) {
+                               $rightsWithMessage[] = substr( $message, strlen( 'right-' ) );
+                       }
+               }
+
+               sort( $allRights );
+               sort( $rightsWithMessage );
+
+               $this->assertEquals(
+                       $allRights,
+                       $rightsWithMessage,
+                       'Each user rights (core/extensions) has a corresponding right- message.'
+               );
+       }
 }
index 80aaac2..fff8c0b 100644 (file)
@@ -25,7 +25,7 @@ class ExifTest extends MediaWikiTestCase {
                $expected = array(
                        'GPSLatitude' => 88.5180555556,
                        'GPSLongitude' => -21.12357,
-                       'GPSAltitude' => -200,
+                       'GPSAltitude' => -3.141592653,
                        'GPSDOP' => '5/1',
                        'GPSVersionID' => '2.2.0.0',
                );
index c952b23..942cc3a 100644 (file)
@@ -22,7 +22,7 @@ class XMPTest extends MediaWikiTestCase {
                }
                $reader = new XMPReader;
                $reader->parse( $xmp );
-               $this->assertEquals( $expected, $reader->getResults(), $info );
+               $this->assertEquals( $expected, $reader->getResults(), $info, 0.0000000001 );
        }
 
        public function dataXMPParse() {
@@ -52,6 +52,7 @@ class XMPTest extends MediaWikiTestCase {
                        array( 'utf32BE', 'UTF-32BE encoding' ),
                        array( 'utf32LE', 'UTF-32LE encoding' ),
                        array( 'xmpExt', 'Extended XMP missing second part' ),
+                       array( 'gps', 'Handling of exif GPS parameters in XMP' ),
                 );
                foreach( $xmpFiles as $file ) {
                        $xmp = file_get_contents( $xmpPath . $file[0] . '.xmp' );
index 0380152..ff6e472 100644 (file)
@@ -186,7 +186,7 @@ class NewParserTest extends MediaWikiTestCase {
                if ( !$this->db->selectField( 'image', '1', array( 'img_name' => $image->getName() ) ) ) {
                        $image->recordUpload2(
                                '', // archive name
-                               'Upload of some lame file', 
+                               'Upload of some lame file',
                                'Some lame file',
                                array(
                                        'size'        => 12345,
@@ -197,7 +197,7 @@ class NewParserTest extends MediaWikiTestCase {
                                        'mime'        => 'image/jpeg',
                                        'metadata'    => serialize( array() ),
                                        'sha1'        => wfBaseConvert( '', 16, 36, 31 ),
-                                       'fileExists'  => true ), 
+                                       'fileExists'  => true ),
                                $this->db->timestamp( '20010115123500' ), $user
                        );
                }
@@ -207,8 +207,8 @@ class NewParserTest extends MediaWikiTestCase {
                if ( !$this->db->selectField( 'image', '1', array( 'img_name' => $image->getName() ) ) ) {
                        $image->recordUpload2(
                                '', // archive name
-                               'zomgnotcensored', 
-                               'Borderline image', 
+                               'zomgnotcensored',
+                               'Borderline image',
                                array(
                                        'size'        => 12345,
                                        'width'       => 320,
@@ -218,7 +218,7 @@ class NewParserTest extends MediaWikiTestCase {
                                        'mime'        => 'image/jpeg',
                                        'metadata'    => serialize( array() ),
                                        'sha1'        => wfBaseConvert( '', 16, 36, 31 ),
-                                       'fileExists'  => true ), 
+                                       'fileExists'  => true ),
                                $this->db->timestamp( '20010115123500' ), $user
                        );
                }
@@ -383,7 +383,7 @@ class NewParserTest extends MediaWikiTestCase {
                # The entries saved into RepoGroup cache with previous globals will be wrong.
                RepoGroup::destroySingleton();
                FileBackendGroup::destroySingleton();
-               MessageCache::singleton()->destroyInstance();
+               MessageCache::destroyInstance();
 
                return $context;
        }
index 9ac0f95..7833da7 100644 (file)
@@ -18,31 +18,31 @@ class LanguageHeTest extends MediaWikiTestCase {
 
        /** @dataProvider providerPluralDual */
        function testPluralDual( $result, $value ) {
-               $forms = array( 'one', 'many', 'two' );
+               $forms = array( 'one', 'two', 'other' );
                $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
        }
 
        function providerPluralDual() {
                return array (
-                       array( 'many', 0 ), // Zero -> plural
+                       array( 'other', 0 ), // Zero -> plural
                        array( 'one', 1 ), // Singular
                        array( 'two', 2 ), // Dual
-                       array( 'many', 3 ), // Plural
+                       array( 'other', 3 ), // Plural
                );
        }
 
        /** @dataProvider providerPlural */
        function testPlural( $result, $value ) {
-               $forms = array( 'one', 'many' );
+               $forms = array( 'one', 'other' );
                $this->assertEquals( $result, $this->lang->convertPlural( $value, $forms ) );
        }
 
        function providerPlural() {
                return array (
-                       array( 'many', 0 ), // Zero -> plural
+                       array( 'other', 0 ), // Zero -> plural
                        array( 'one', 1 ), // Singular
-                       array( 'many', 2 ), // Plural, no dual provided
-                       array( 'many', 3 ), // Plural
+                       array( 'other', 2 ), // Plural, no dual provided
+                       array( 'other', 3 ), // Plural
                );
        }
 }
diff --git a/tests/phpunit/languages/utils/CLDRPluralRuleEvaluatorTest.php b/tests/phpunit/languages/utils/CLDRPluralRuleEvaluatorTest.php
new file mode 100644 (file)
index 0000000..033164b
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+/**
+ * @author Niklas Laxström
+ * @file
+ */
+
+class CLDRPluralRuleEvaluatorTest extends MediaWikiTestCase {
+       /**
+        * @dataProvider validTestCases
+        */
+       function testValidRules( $expected, $rules, $number, $comment ) {
+               $result = CLDRPluralRuleEvaluator::evaluate( $number, (array) $rules );
+               $this->assertEquals( $expected, $result, $comment );
+       }
+
+       /**
+        * @dataProvider invalidTestCases
+        * @expectedException CLDRPluralRuleError
+        */
+       function testInvalidRules( $rules, $comment ) {
+               CLDRPluralRuleEvaluator::evaluate( 1, (array) $rules );
+       }
+
+       function validTestCases() {
+               $tests = array(
+                       # expected, number, rule, comment
+                       array( 0, 'n is 1', 1, 'integer number and is' ),
+                       array( 0, 'n is 1', "1", 'string integer number and is' ),
+                       array( 0, 'n is 1', 1.0, 'float number and is' ),
+                       array( 0, 'n is 1', "1.0", 'string float number and is' ),
+                       array( 1, 'n is 1', 1.1, 'float number and is' ),
+                       array( 1, 'n is 1', 2, 'float number and is' ),
+
+                       array( 0, 'n in 1,3,5',     3, '' ),
+                       array( 1, 'n not in 1,3,5', 5, '' ),
+
+                       array( 1, 'n in 1,3,5',     2, '' ),
+                       array( 0, 'n not in 1,3,5', 4, '' ),
+
+                       array( 0, 'n in 1..3',      2, '' ),
+                       array( 0, 'n in 1..3',      3, 'in is inclusive' ),
+                       array( 1, 'n in 1..3',      0, '' ),
+
+                       array( 1, 'n not in 1..3',      2, '' ),
+                       array( 1, 'n not in 1..3',      3, 'in is inclusive' ),
+                       array( 0, 'n not in 1..3',      0, '' ),
+
+                       array( 1, 'n is not 1 and n is not 2 and n is not 3', 1, 'and relation' ),
+                       array( 0, 'n is not 1 and n is not 2 and n is not 4', 3, 'and relation' ),
+
+                       array( 0, 'n is not 1 or n is 1', 1, 'or relation' ),
+                       array( 1, 'n is 1 or n is 2', 3, 'or relation' ),
+
+                       array( 0, 'n              is      1', 1, 'extra whitespace' ),
+
+                       array( 0, 'n mod 3 is 1', 7, 'mod' ),
+                       array( 0, 'n mod 3 is not 1', 4.3, 'mod with floats' ),
+
+                       array( 0, 'n within 1..3', 2, 'within with integer' ),
+                       array( 0, 'n within 1..3', 2.5, 'within with float' ),
+                       array( 0, 'n in 1..3', 2, 'in with integer' ),
+                       array( 1, 'n in 1..3', 2.5, 'in with float' ),
+
+                       array( 0, 'n in 3 or n is 4 and n is 5', 3, 'and binds more tightly than or' ),
+                       array( 1, 'n is 3 or n is 4 and n is 5', 4, 'and binds more tightly than or' ),
+
+                       array( 0, 'n mod 10 in 3..4,9 and n mod 100 not in 10..19,70..79,90..99', 24, 'breton rule' ),
+                       array( 1, 'n mod 10 in 3..4,9 and n mod 100 not in 10..19,70..79,90..99', 25, 'breton rule' ),
+
+                       array( 0, 'n within 0..2 and n is not 2', 0, 'french rule' ),
+                       array( 0, 'n within 0..2 and n is not 2', 1, 'french rule' ),
+                       array( 0, 'n within 0..2 and n is not 2', 1.2, 'french rule' ),
+                       array( 1, 'n within 0..2 and n is not 2', 2, 'french rule' ),
+
+                       array( 1, 'n in 3..10,13..19', 2, 'scottish rule - ranges with comma' ),
+                       array( 0, 'n in 3..10,13..19', 4, 'scottish rule - ranges with comma' ),
+                       array( 1, 'n in 3..10,13..19', 12.999, 'scottish rule - ranges with comma' ),
+                       array( 0, 'n in 3..10,13..19', 13, 'scottish rule - ranges with comma' ),
+
+                       array( 0, '5 mod 3 is n', 2, 'n as result of mod - no need to pass' ),
+               );
+
+               return $tests;
+       }
+
+       function invalidTestCases() {
+               $tests = array(
+                       array( 'n mod mod 5 is 1', 'mod mod' ),
+                       array( 'n', 'just n' ),
+                       array( 'n is in 5', 'is in' ),
+               );
+               return $tests;
+       }
+
+}
index b5eb573..d134438 100644 (file)
@@ -45,7 +45,7 @@ abstract class DumpTestCase extends MediaWikiLangTestCase {
                                return array( $revision_id, $text_id );
                        }
                }
-               throw new MWException( "Could not determine revision id (" . $status->getXML() . ")" );
+               throw new MWException( "Could not determine revision id (" . $status->getWikiText() . ")" );
        }
 
 
index 1cd085f..59ae73c 100644 (file)
@@ -30,6 +30,7 @@ return array(
                        'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.parse.test.js',
                        'tests/qunit/suites/resources/mediawiki.special/mediawiki.special.recentchanges.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js',
+                       'tests/qunit/suites/resources/mediawiki/mediawiki.cldr.test.js',
                ),
                'dependencies' => array(
                        'jquery.autoEllipsis',
@@ -55,6 +56,7 @@ return array(
                        'mediawiki.util',
                        'mediawiki.special.recentchanges',
                        'mediawiki.language',
+                       'mediawiki.cldr',
                ),
                'position' => 'top',
        )
diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.cldr.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.cldr.test.js
new file mode 100644 (file)
index 0000000..09a11b0
--- /dev/null
@@ -0,0 +1,67 @@
+module( 'mediawiki.cldr' );
+
+test( '-- Initial check', function() {
+       expect( 1 );
+       ok( mw.cldr, 'mw.cldr defined' );
+} );
+
+var pluralTestcases = {
+       /*
+        * Sample:
+        *"languagecode" : [
+        *      [ number, [ "form1", "form2", ... ],  "expected", "description" ],
+        * ]
+        */
+       "en": [
+               [ 0, [ "one", "other" ], "other", "English plural test- 0 is other" ],
+               [ 1, [ "one", "other" ], "one", "English plural test- 1 is one" ]
+       ],
+       "hi": [
+               [ 0, [ "one", "other" ], "one", "Hindi plural test- 0 is one" ],
+               [ 1, [ "one", "other" ], "one", "Hindi plural test- 1 is one" ],
+               [ 2, [ "one", "other" ], "other", "Hindi plural test- 2 is other" ]
+       ],
+       "he": [
+               [ 0, [ "one", "other" ], "other", "Hebrew plural test- 0 is other" ],
+               [ 1, [ "one", "other" ], "one", "Hebrew plural test- 1 is one" ],
+               [ 2, [ "one", "other" ], "other", "Hebrew plural test- 2 is other with 2 forms" ],
+               [ 2, [ "one", "dual", "other" ], "dual", "Hebrew plural test- 2 is dual with 3 forms" ]
+       ],
+       "ar": [
+               [ 0, [ "zero", "one", "two", "few", "many", "other" ], "zero", "Arabic plural test - 0 is zero" ],
+               [ 1, [ "zero", "one", "two", "few", "many", "other" ], "one", "Arabic plural test - 1 is one" ],
+               [ 2, [ "zero", "one", "two", "few", "many", "other" ], "two", "Arabic plural test - 2 is two" ],
+               [ 3, [ "zero", "one", "two", "few", "many", "other" ], "few", "Arabic plural test - 3 is few" ],
+               [ 9, [ "zero", "one", "two", "few", "many", "other" ], "few", "Arabic plural test - 9 is few" ],
+               [ "9", [ "zero", "one", "two", "few", "many", "other" ], "few", "Arabic plural test - 9 is few" ],
+               [ 110, [ "zero", "one", "two", "few", "many", "other" ], "few", "Arabic plural test - 110 is few" ],
+               [ 11, [ "zero", "one", "two", "few", "many", "other" ], "many", "Arabic plural test - 11 is many" ],
+               [ 15, [ "zero", "one", "two", "few", "many", "other" ], "many", "Arabic plural test - 15 is many" ],
+               [ 99, [ "zero", "one", "two", "few", "many", "other" ], "many", "Arabic plural test - 99 is many" ],
+               [ 9999, [ "zero", "one", "two", "few", "many", "other" ], "many", "Arabic plural test - 9999 is many" ],
+               [ 100, [ "zero", "one", "two", "few", "many", "other" ], "other", "Arabic plural test - 100 is other" ],
+               [ 102, [ "zero", "one", "two", "few", "many", "other" ], "other", "Arabic plural test - 102 is other" ],
+               [ 1000, [ "zero", "one", "two", "few", "many", "other" ], "other", "Arabic plural test - 1000 is other" ]
+               // FIXME plural rules for decimal numbers does not work
+               // [ 1.7, [ "zero", "one", "two", "few", "many", "other" ], "other", "Arabic plural test - 1.7 is other" ],
+       ]
+};
+
+function pluralTest( langCode, tests ) {
+       QUnit.test('-- Plural Test for ' + langCode, function( assert ) {
+               QUnit.expect( tests.length );
+               for ( var i = 0; i < tests.length; i++ ) {
+                       assert.equal(
+                               mw.language.convertPlural( tests[i][0], tests[i][1] ),
+                               tests[i][2], // Expected plural form
+                               tests[i][3] // Description
+                       );
+               }
+       } );
+}
+
+$.each( pluralTestcases, function( langCode, tests ) {
+       if ( langCode === mw.config.get( 'wgUserLanguage' ) ) {
+               pluralTest( langCode, tests );
+       }
+} );
index d9b2055..ababa8d 100644 (file)
@@ -24,14 +24,17 @@ QUnit.test( 'wikiGetlink', 3, function ( assert ) {
        assert.equal( hrefC, '/wiki/Foobar', 'Default title; Get link for current page ("Foobar")' );
 });
 
-QUnit.test( 'wikiScript', 2, function ( assert ) {
+QUnit.test( 'wikiScript', 4, function ( assert ) {
        mw.config.set({
-               'wgScript': '/w/index.php',
+               'wgScript': '/w/i.php', // customized wgScript for bug 39103
+               'wgLoadScript': '/w/l.php', // customized wgLoadScript for bug 39103
                'wgScriptPath': '/w',
                'wgScriptExtension': '.php'
        });
 
-       assert.equal( mw.util.wikiScript(), mw.config.get( 'wgScript' ), 'Defaults to index.php and is equal to wgScript' );
+       assert.equal( mw.util.wikiScript(), mw.config.get( 'wgScript' ), 'wikiScript() returns wgScript' );
+       assert.equal( mw.util.wikiScript( 'index' ), mw.config.get( 'wgScript' ), "wikiScript( 'index' ) returns wgScript" );
+       assert.equal( mw.util.wikiScript( 'load' ), mw.config.get( 'wgLoadScript' ), "wikiScript( 'load' ) returns wgLoadScript" );
        assert.equal( mw.util.wikiScript( 'api' ), '/w/api.php', 'API path' );
 });
 
index 9cfdae4..5fc4446 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -71,10 +71,9 @@ function wfThumbHandle404() {
        }
        # Just get the URI path (REDIRECT_URL/REQUEST_URI is either a full URL or a path)
        if ( substr( $uriPath, 0, 1 ) !== '/' ) {
-               $bits = wfParseUrl( $uriPath );
-               if ( $bits && isset( $bits['path'] ) ) {
-                       $uriPath = $bits['path'];
-               } else {
+               $uri = new Uri( $uriPath );
+               $uriPath = $uri->getPath();
+               if ( $uriPath === null ) {
                        wfThumbError( 404, 'The source file for the specified thumbnail does not exist.' );
                        return;
                }
@@ -129,13 +128,13 @@ function wfStreamThumb( array $params ) {
                // Format is <timestamp>!<name>
                $bits = explode( '!', $fileName, 2 );
                if ( count( $bits ) != 2 ) {
-                       wfThumbError( 404, wfMsg( 'badtitletext' ) );
+                       wfThumbError( 404, wfMessage( 'badtitletext' )->text() );
                        wfProfileOut( __METHOD__ );
                        return;
                }
                $title = Title::makeTitleSafe( NS_FILE, $bits[1] );
                if ( !$title ) {
-                       wfThumbError( 404, wfMsg( 'badtitletext' ) );
+                       wfThumbError( 404, wfMessage( 'badtitletext' )->text() );
                        wfProfileOut( __METHOD__ );
                        return;
                }
@@ -147,7 +146,7 @@ function wfStreamThumb( array $params ) {
                // Get the name without the timestamp so hash paths are correctly computed
                $title = Title::makeTitleSafe( NS_FILE, isset( $bits[1] ) ? $bits[1] : $fileName );
                if ( !$title ) {
-                       wfThumbError( 404, wfMsg( 'badtitletext' ) );
+                       wfThumbError( 404, wfMessage( 'badtitletext' )->text() );
                        wfProfileOut( __METHOD__ );
                        return;
                }
@@ -172,7 +171,7 @@ function wfStreamThumb( array $params ) {
 
        // Check the source file storage path
        if ( !$img ) {
-               wfThumbError( 404, wfMsg( 'badtitletext' ) );
+               wfThumbError( 404, wfMessage( 'badtitletext' )->text() );
                wfProfileOut( __METHOD__ );
                return;
        }
@@ -243,15 +242,16 @@ function wfStreamThumb( array $params ) {
 
        // Check for thumbnail generation errors...
        $errorMsg = false;
+       $msg = wfMessage( 'thumbnail_error' );
        if ( !$thumb ) {
-               $errorMsg = wfMsgHtml( 'thumbnail_error', 'File::transform() returned false' );
+               $errorMsg = $msg->rawParams( 'File::transform() returned false' )->escaped();
        } elseif ( $thumb->isError() ) {
                $errorMsg = $thumb->getHtmlMsg();
        } elseif ( !$thumb->hasFile() ) {
-               $errorMsg = wfMsgHtml( 'thumbnail_error', 'No path supplied in thumbnail object' );
+               $errorMsg = $msg->rawParams( 'No path supplied in thumbnail object' )->escaped();
        } elseif ( $thumb->fileIsSource() ) {
-               $errorMsg = wfMsgHtml( 'thumbnail_error',
-                       'Image was not scaled, is the requested width bigger than the source?' );
+               $errorMsg = $msg->
+                       rawParams( 'Image was not scaled, is the requested width bigger than the source?' )->escaped();
        }
 
        if ( $errorMsg !== false ) {