Merge "adjust method comment for Ia19f1011"
authorAaron Schulz <aschulz@wikimedia.org>
Mon, 9 Jul 2012 20:25:37 +0000 (20:25 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 9 Jul 2012 20:25:37 +0000 (20:25 +0000)
362 files changed:
.jshintignore [new file with mode: 0644]
.jshintrc [new file with mode: 0644]
README
RELEASE-NOTES-1.20
api.php
docs/export-0.7.xsd
docs/hooks.txt
includes/Article.php
includes/AutoLoader.php
includes/ChangeTags.php
includes/ChangesList.php
includes/DefaultSettings.php
includes/EditPage.php
includes/Exception.php
includes/Export.php
includes/FileDeleteForm.php
includes/GlobalFunctions.php
includes/Linker.php
includes/Namespace.php
includes/OutputPage.php
includes/Pager.php
includes/ProtectionForm.php
includes/RecentChange.php
includes/Revision.php
includes/Sanitizer.php
includes/ScopedPHPTimeout.php
includes/SiteConfiguration.php
includes/SkinLegacy.php
includes/SkinTemplate.php
includes/SpecialPage.php
includes/SpecialPageFactory.php
includes/SquidPurgeClient.php
includes/Title.php
includes/User.php
includes/WikiPage.php
includes/actions/HistoryAction.php
includes/actions/RevisiondeleteAction.php
includes/api/ApiBase.php
includes/api/ApiDelete.php
includes/api/ApiMain.php
includes/api/ApiPurge.php
includes/api/ApiQueryAllImages.php
includes/api/ApiQueryAllLinks.php
includes/api/ApiQueryBacklinks.php
includes/api/ApiQueryDeletedrevs.php
includes/api/ApiQueryIWBacklinks.php
includes/api/ApiQueryImageInfo.php
includes/api/ApiQueryLangBacklinks.php
includes/api/ApiQuerySiteinfo.php
includes/api/ApiUpload.php
includes/cache/HTMLFileCache.php
includes/cache/SquidUpdate.php
includes/dao/IDBAccessObject.php [new file with mode: 0644]
includes/db/DatabaseUtility.php
includes/db/IORMTable.php
includes/db/ORMIterator.php
includes/db/ORMResult.php
includes/db/ORMTable.php
includes/diff/DifferenceEngine.php
includes/filerepo/ForeignAPIRepo.php
includes/filerepo/LocalRepo.php
includes/filerepo/backend/FileBackendStore.php
includes/filerepo/backend/lockmanager/LockManagerGroup.php
includes/filerepo/file/LocalFile.php
includes/installer/CliInstaller.php
includes/installer/Installer.i18n.php
includes/installer/PostgresUpdater.php
includes/logging/LogEventsList.php
includes/logging/LogFormatter.php
includes/logging/LogPage.php
includes/logging/PatrolLog.php
includes/mobile/DeviceDetection.php
includes/objectcache/APCBagOStuff.php
includes/objectcache/BagOStuff.php
includes/objectcache/DBABagOStuff.php
includes/objectcache/EhcacheBagOStuff.php
includes/objectcache/EmptyBagOStuff.php
includes/objectcache/HashBagOStuff.php
includes/objectcache/MemcachedBagOStuff.php
includes/objectcache/MemcachedPeclBagOStuff.php
includes/objectcache/MemcachedPhpBagOStuff.php
includes/objectcache/MultiWriteBagOStuff.php
includes/objectcache/ObjectCache.php
includes/objectcache/SqlBagOStuff.php
includes/objectcache/WinCacheBagOStuff.php
includes/parser/Parser.php
includes/resourceloader/ResourceLoader.php
includes/search/SearchEngine.php
includes/specials/SpecialActiveusers.php
includes/specials/SpecialBlock.php
includes/specials/SpecialBooksources.php
includes/specials/SpecialChangeEmail.php
includes/specials/SpecialContributions.php
includes/specials/SpecialEditWatchlist.php
includes/specials/SpecialLog.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialUpload.php
languages/Names.php
languages/messages/MessagesAf.php
languages/messages/MessagesAn.php
languages/messages/MessagesAr.php
languages/messages/MessagesArc.php
languages/messages/MessagesArz.php
languages/messages/MessagesAs.php
languages/messages/MessagesAst.php
languages/messages/MessagesAz.php
languages/messages/MessagesBcl.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBjn.php
languages/messages/MessagesBr.php
languages/messages/MessagesCa.php
languages/messages/MessagesCdo.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 [new file with mode: 0644]
languages/messages/MessagesEl.php
languages/messages/MessagesEn.php
languages/messages/MessagesEo.php
languages/messages/MessagesEs.php
languages/messages/MessagesEt.php
languages/messages/MessagesExt.php
languages/messages/MessagesFa.php
languages/messages/MessagesFi.php
languages/messages/MessagesFit.php
languages/messages/MessagesFo.php
languages/messages/MessagesFr.php
languages/messages/MessagesFrp.php
languages/messages/MessagesFrr.php
languages/messages/MessagesFur.php
languages/messages/MessagesGl.php
languages/messages/MessagesGsw.php
languages/messages/MessagesGu.php
languages/messages/MessagesHaw.php
languages/messages/MessagesHe.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/MessagesIlo.php
languages/messages/MessagesIs.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesJut.php
languages/messages/MessagesKa.php
languages/messages/MessagesKbd_cyrl.php
languages/messages/MessagesKiu.php
languages/messages/MessagesKk_cyrl.php
languages/messages/MessagesKo.php
languages/messages/MessagesKrc.php
languages/messages/MessagesKsh.php
languages/messages/MessagesKu_latn.php
languages/messages/MessagesKw.php
languages/messages/MessagesKy.php
languages/messages/MessagesLb.php
languages/messages/MessagesLez.php
languages/messages/MessagesLmo.php
languages/messages/MessagesLn.php
languages/messages/MessagesLt.php
languages/messages/MessagesLtg.php
languages/messages/MessagesLus.php
languages/messages/MessagesLv.php
languages/messages/MessagesMg.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMr.php
languages/messages/MessagesMs.php
languages/messages/MessagesMzn.php
languages/messages/MessagesNah.php
languages/messages/MessagesNan.php
languages/messages/MessagesNds_nl.php
languages/messages/MessagesNl.php
languages/messages/MessagesNn.php
languages/messages/MessagesOc.php
languages/messages/MessagesOr.php
languages/messages/MessagesPam.php
languages/messages/MessagesPdc.php
languages/messages/MessagesPl.php
languages/messages/MessagesPms.php
languages/messages/MessagesPt.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQqq.php
languages/messages/MessagesQu.php
languages/messages/MessagesQug.php
languages/messages/MessagesRo.php
languages/messages/MessagesRoa_tara.php
languages/messages/MessagesRu.php
languages/messages/MessagesRue.php
languages/messages/MessagesSah.php
languages/messages/MessagesSc.php
languages/messages/MessagesScn.php
languages/messages/MessagesSe.php
languages/messages/MessagesSgs.php
languages/messages/MessagesSh.php
languages/messages/MessagesSk.php
languages/messages/MessagesSl.php
languages/messages/MessagesSq.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSv.php
languages/messages/MessagesSw.php
languages/messages/MessagesSzl.php
languages/messages/MessagesTa.php
languages/messages/MessagesTet.php
languages/messages/MessagesTg_cyrl.php
languages/messages/MessagesTg_latn.php
languages/messages/MessagesTl.php
languages/messages/MessagesTly.php
languages/messages/MessagesTo.php
languages/messages/MessagesTr.php
languages/messages/MessagesTt_latn.php
languages/messages/MessagesTyv.php
languages/messages/MessagesUk.php
languages/messages/MessagesVi.php
languages/messages/MessagesVot.php
languages/messages/MessagesWa.php
languages/messages/MessagesWar.php
languages/messages/MessagesYi.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
maintenance/cleanupAncientTables.php
maintenance/cleanupCaps.php
maintenance/cleanupImages.php
maintenance/cleanupPreferences.php [new file with mode: 0755]
maintenance/cleanupRemovedModules.php
maintenance/cleanupSpam.php
maintenance/cleanupTable.inc
maintenance/cleanupTitles.php
maintenance/cleanupUploadStash.php
maintenance/cleanupWatchlist.php
maintenance/clear_interwiki_cache.php
maintenance/clear_stats.php
maintenance/compareParsers.php
maintenance/copyFileBackend.php
maintenance/deleteArchivedRevisions.inc
maintenance/deleteBatch.php
maintenance/deleteDefaultMessages.php
maintenance/deleteImageMemcached.php
maintenance/deleteOldRevisions.php
maintenance/deleteOrphanedRevisions.php
maintenance/deleteRevision.php
maintenance/deleteSelfExternals.php
maintenance/doMaintenance.php
maintenance/dumpIterator.php
maintenance/dumpLinks.php
maintenance/dumpSisterSites.php
maintenance/install.php
maintenance/language/messages.inc
maintenance/parse.php
maintenance/runJobs.php
maintenance/updateCollation.php
resources/Resources.php
resources/jquery.tipsy/images/tipsy.png
resources/jquery.ui/themes/vector/images/button-disabled-blue.png
resources/jquery.ui/themes/vector/images/button-disabled-green.png
resources/jquery.ui/themes/vector/images/button-disabled-red.png
resources/jquery.ui/themes/vector/images/button-disabled.png
resources/jquery.ui/themes/vector/images/button-down-blue.png
resources/jquery.ui/themes/vector/images/button-down-green.png
resources/jquery.ui/themes/vector/images/button-down-red.png
resources/jquery.ui/themes/vector/images/button-down.png
resources/jquery.ui/themes/vector/images/button-off-green.png
resources/jquery.ui/themes/vector/images/button-off.png
resources/jquery.ui/themes/vector/images/button-over-green.png
resources/jquery.ui/themes/vector/images/button-over-red.png
resources/jquery.ui/themes/vector/images/button-over.png
resources/jquery.ui/themes/vector/images/close.png
resources/jquery.ui/themes/vector/images/ui-bg_flat_15_cd0a0a_40x100.png
resources/jquery.ui/themes/vector/images/ui-bg_flat_70_000000_40x100.png
resources/jquery.ui/themes/vector/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png
resources/jquery.ui/themes/vector/images/ui-bg_highlight-hard_80_d7ebf9_1x100.png
resources/jquery.ui/themes/vector/images/ui-bg_highlight-soft_100_e4f1fb_1x100.png
resources/jquery.ui/themes/vector/images/ui-bg_highlight-soft_100_ffffff_1x100.png
resources/jquery.ui/themes/vector/images/ui-bg_highlight-soft_25_ffef8f_1x100.png
resources/jquery.ui/themes/vector/images/ui-bg_inset-hard_100_f0f0f0_1x100.png
resources/jquery/images/jquery.arrowSteps.divider-ltr.png
resources/jquery/images/jquery.arrowSteps.divider-rtl.png
resources/jquery/jquery.byteLimit.js
resources/jquery/jquery.cookie.js
resources/jquery/jquery.tablesorter.js
resources/mediawiki.api/mediawiki.api.edit.js
resources/mediawiki.special/mediawiki.special.changeslist.css
resources/mediawiki.special/mediawiki.special.preferences.js
resources/mediawiki/mediawiki.Uri.js
resources/mediawiki/mediawiki.jqueryMsg.js
resources/mediawiki/mediawiki.js
resources/mediawiki/mediawiki.user.js
resources/mediawiki/mediawiki.util.js
skins/Vector.php
skins/common/commonElements.css
skins/common/images/Arr_.png
skins/common/images/ar/button_bold.png
skins/common/images/ar/button_link.png
skins/common/images/ar/button_nowiki.png
skins/common/images/be-tarask/button_bold.png
skins/common/images/button_hr.png
skins/common/images/button_sig.png
skins/common/images/button_template.png
skins/common/images/closewindow.png
skins/common/images/closewindow19x19.png
skins/common/images/cyrl/button_italic.png
skins/common/images/fa/button_italic.png
skins/common/images/fa/button_nowiki.png
skins/common/images/nextredirectltr.png
skins/common/images/nextredirectrtl.png
skins/common/images/tooltip_icon.png
skins/modern/document.png
skins/modern/footer-grad.png
skins/modern/news_icon.png
skins/modern/video.png
skins/monobook/document.png
skins/monobook/news_icon.png
skins/monobook/video.png
skins/vector/images/arrow-down-focus-icon.png
skins/vector/images/arrow-down-icon.png
skins/vector/images/audio-icon.png
skins/vector/images/border.png
skins/vector/images/bullet-icon.png
skins/vector/images/link-icon.png
skins/vector/images/lock-icon.png
skins/vector/images/mail-icon.png
skins/vector/images/page-base.png
skins/vector/images/page-fade.png
skins/vector/images/portal-break.png
skins/vector/images/preferences-base.png
skins/vector/images/preferences-break.png
skins/vector/images/preferences-edge.png
skins/vector/images/preferences-fade.png
skins/vector/images/search-fade.png
skins/vector/images/tab-current-fade.png
skins/vector/images/user-icon.png
skins/vector/images/video-icon.png
tests/parser/parserTests.txt
tests/phpunit/MediaWikiTestCase.php
tests/phpunit/includes/MWNamespaceTest.php
tests/phpunit/includes/SampleTest.php
tests/phpunit/includes/SanitizerTest.php
tests/phpunit/includes/WikiPageTest.php
tests/phpunit/includes/api/generateRandomImages.php
tests/phpunit/includes/filerepo/FileBackendTest.php
tests/phpunit/includes/libs/JavaScriptMinifierTest.php
tests/phpunit/includes/parser/ParserMethodsTest.php [new file with mode: 0644]
tests/phpunit/maintenance/DumpTestCase.php
tests/phpunit/maintenance/backupPrefetchTest.php
tests/phpunit/maintenance/backupTextPassTest.php
tests/qunit/QUnitTestResources.php
tests/qunit/data/load.mock.php [new file with mode: 0644]
tests/qunit/data/testloader.php [deleted file]
tests/qunit/suites/resources/jquery/jquery.byteLimit.test.js
tests/qunit/suites/resources/jquery/jquery.tablesorter.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.Uri.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js [new file with mode: 0644]
tests/qunit/suites/resources/mediawiki/mediawiki.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js

diff --git a/.jshintignore b/.jshintignore
new file mode 100644 (file)
index 0000000..fb2a42f
--- /dev/null
@@ -0,0 +1,20 @@
+# upstream libs
+resources/jquery/jquery.appear.js
+resources/jquery/jquery.async.js
+resources/jquery/jquery.cycle.all.js
+resources/jquery/jquery.cookie.js
+resources/jquery/jquery.farbtastic.js
+resources/jquery/jquery.form.js
+resources/jquery/jquery.js
+resources/jquery/jquery.json.js
+resources/jquery/jquery.mockjax.js
+resources/jquery/jquery.qunit.js
+resources/jquery/jquery.validate.js
+resources/jquery/jquery.xmldom.js
+resources/jquery.effects
+resources/jquery.ui
+tests/jasmine/lib/jasmine-1.0.1/jasmine-html.js
+tests/jasmine/lib/jasmine-1.0.1/jasmine.js
+
+# legacy stuff
+skins/common
diff --git a/.jshintrc b/.jshintrc
new file mode 100644 (file)
index 0000000..4e82155
--- /dev/null
+++ b/.jshintrc
@@ -0,0 +1,10 @@
+{
+       "predef": [
+               "mediaWiki",
+               "jQuery",
+               "QUnit"
+       ],
+       "browser": true,
+       "smarttabs": true,
+       "laxbreak": true
+}
diff --git a/README b/README
index 48cf336..805b8ee 100644 (file)
--- a/README
+++ b/README
@@ -46,8 +46,7 @@ The MediaWiki software was written by:
 * Victor Vasiliev
 * Rotem Liss
 * Platonides
-* Antoine Musso
-* Several others (view CREDITS for a more complete list)
+* Many others (view CREDITS for a more complete list)
 
 The contributors hold the copyright to this work, and it is licensed under the
 terms of the GNU General Public License, version 2 or later (see
index 1577b14..da7b3f9 100644 (file)
@@ -20,11 +20,16 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * `$wgUsePathInfo = true;` is no longer needed to make $wgArticlePath work on servers
   using like nginx, lighttpd, and apache over fastcgi. MediaWiki now always extracts
   path info from REQUEST_URI if it's available.
+* The user right 'upload_by_url' is no longer given to sysops by default.
+  This only affects installations which have $wgAllowCopyUploads set to true.
+* Removed f-prot support from $wgAntivirusSetup.
 
 === New features in 1.20 ===
 * Added TitleIsAlwaysKnown hook which gets called when determining if a page exists.
 * Added NamespaceIsMovable hook which gets called when determining if pages in a
   certain namespace can be moved.
+* Added SpecialPageBeforeExecute hook which gets called before SpecialPage::execute.
+* Added SpecialPageAfterExecute hook which gets called after SpecialPage::execute.
 * (bug 32341) Add upload by URL domain limitation.
 * &useskin=default will now always display the default skin. Useful for users with a
   preference for the non-default skin to look at something using the default skin.
@@ -55,6 +60,8 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * Edit notices can now be translated.
 * (bug 35680) jQuery upgraded to 1.7.2.
 * jQuery UI upgraded to 1.8.21.
+* (bug 35705) QUnit upgraded from v1.2.0 to v1.8.0.
+* (bug 37604) jquery.cookie upgraded to 2011 version.
 * (bug 22887) Add warning and tracking category for preprocessor errors
 * (bug 31704) Allow selection of associated namespace on the watchlist
 * (bug 5445) Now remove autoblocks when a user is unblocked.
@@ -67,13 +74,24 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * New getCreator and getOldestRevision methods added to WikiPage class
 * (bug 4220) the XML dump format schema now have unique identity constraints
   for page and revision identifiers. Patch by Elvis Stansvik.
-* (bug 35705) QUnit upgraded from v1.2.0 to v1.8.0.
 * cleanupSpam.php now can delete spam pages if --delete was specified instead of blanking
   them.
 * Added new hook ChangePasswordForm to allow adding of additional fields in Special:ChangePassword
 * Added new function getDomain to AuthPlugin for getting a user's domain
 * (bug 23427) New magic word {{PAGEID}} which gives the current page ID.
   Will be null on previewing a page being created.
+* (bug 37627) UserNotLoggedIn() exception to show a generic error page whenever
+  a user is not logged in.
+* Watched status in changes lists are no longer indicated by <strong></strong>
+  tags with class "mw-watched". Instead, each line now has a class
+  "mw-changeslist-line-watched" or "mw-changeslist-line-not-watched", and the
+  title itself is surrounded by <span></span> tags with class "mw-title".
+* Added ContribsPager::reallyDoQuery hook allowing extensions to data to MyContribs
+* Added new hook ParserAfterParse to allow extensions to affect parsed output
+  after the parse is complete but before block level processing, link holder
+  replacement, and so on.
+* (bug 34678) Added InternalParseBeforeSanitize hook which gets called during Parser's
+  internalParse method just before the parser removes unwanted/dangerous HTML tags.
 
 === Bug fixes in 1.20 ===
 * (bug 30245) Use the correct way to construct a log page title.
@@ -116,16 +134,32 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (bug 35572) Blocks appear to succeed even if query fails due to wrong DB structure
 * (bug 31757) Add a word-separator between help-messages in HTMLForm
 * (bug 30410) Removed deprecated $wgFilterCallback and the 'filtered' API error.
-* (bug 32604) Some messages needs escaping of wikitext inside username
+* (bug 32604) Some messages needs escaping of wikitext inside username.
 * (bug 36537) Rename wfArrayToCGI to wfArrayToCgi for consistency with wfCgiToArray.
-* (bug 25946) The message on the top of Special:RecentChanges is now displayed
+* (bug 25946) The message on the top of Special:RecentChanges is now displayed.
   in user language instead of content language.
 * (bug 35264) Wrong type used for <ns> in export.xsd
 * (bug 24985) Use $wgTmpDirectory as the default temp directory so that people
   who don't have access to /tmp can specify an alternative.
 * (bug 27283) SqlBagOStuff breaks PostgreSQL transactions.
 * (bug 35727) mw.Api ajax() should put token parameter last.
-* (bug 260) Handle <pre> overflow automatically with a scroll bar.
+* (bug 37708) mw.Uri.clone() should make a deep copy.
+* (bug 38024) ResourceLoader should not create empty stylesheets for modules
+  that don't have stylesheets.
+* (bug 36812) Special:ActiveUsers "Hide bots" should hide users from any group
+  having the "bot" user right, instead of just the default "bot" user group.
+* (bug 35082) mw.util.addPortletLink incorrectly adds link to mutiple <ul> tags.
+* (bug 36495) Sanitizer::fixDeprecatedAttributes should convert "align"
+  attribute to margin or float instead of text-align (for non-table-cells).
+* (bug 36991) jquery.tablesorter should extract date sort format from date
+  string instead of global config. Dates like "April 1 2012" and "1 April 2012"
+  now sort correctly regardless of the content language's DefaultDateFormat.
+* (bug 31895) mw.loader mode now correct when triggered from a $.fn.ready
+  handler that is bound before mediawiki.js's handler (e.g. browser-userscripts
+  like greasemonkey).
+* (bug 38152) jquery.tablesorter: Use .data() instead of .attr(), so that live
+  values are used instead of just the fixed values from when the tablesorter
+  was initialized.
 
 === API changes in 1.20 ===
 * (bug 34316) Add ability to retrieve maximum upload size from MediaWiki API.
@@ -137,13 +171,21 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (bug 32497) API now allows changing of protection level using pageid.
 * (bug 32498) API now allows comparing pages using pageids.
 * (bug 30975) API import of pages with invalid characters in this wiki leads to Fatal Error.
-* (bug 30488) API now allows listing of backlinks/embeddedin/imageusage per pageid
-* (bug 34927) Output media_type for list=filearchive
-* (bug 28814) add properties to output of action=parse
-* (bug 33224) add variants of content language to meta=siteinfo
-* (bug 36761) "Mark pages as visited" now submits previously established filter options
-* (bug 32643) action=purge with forcelinkupdate no longer crashes when ratelimit is reached
-* The paraminfo module now also contains result properties for most modules
+* (bug 30488) API now allows listing of backlinks/embeddedin/imageusage per pageid.
+* (bug 34927) Output media_type for list=filearchive.
+* (bug 28814) add properties to output of action=parse.
+* (bug 33224) add variants of content language to meta=siteinfo.
+* (bug 36761) "Mark pages as visited" now submits previously established filter options.
+* (bug 32643) action=purge with forcelinkupdate no longer crashes when ratelimit is reached.
+* The paraminfo module now also contains result properties for most modules.
+* (bug 32348) Allow descending order for list=alllinks.
+* (bug 31777) Upload unknown error ``fileexists-forbidden''.
+* (bug 32382) Allow descending order for list=iwbacklinks.
+* (bug 32381) Allow descending order for list=backlinks, list=embeddedin and list=imageusage.
+* (bug 32383) Allow descending order for list=langbacklinks.
+* API meta=siteinfo can now return the list of known variable IDs.
+* (bug 30836) siteinfo prop=specialpagealiases will no longer return nonexistent special pages.
+* (bug 35980) list=deletedrevs now honors drdir correctly in "all" mode (mode #3).
 
 === Languages updated in 1.20 ===
 
@@ -151,6 +193,7 @@ MediaWiki supports over 350 languages. Many localisations are updated
 regularly. Below only new and removed languages are listed, as well as
 changes to languages because of Bugzilla reports.
 
+* Emilian (egl) added.
 * Tornedalen Finnish (fit) added.
 * Mizo (lus) added.
 * Santali (sat) added.
diff --git a/api.php b/api.php
index 1cd5497..9e1f5dd 100644 (file)
--- a/api.php
+++ b/api.php
@@ -62,43 +62,6 @@ if ( !$wgEnableAPI ) {
        die(1);
 }
 
-// Selectively allow cross-site AJAX
-
-/**
- * Helper function to convert wildcard string into a regex
- * '*' => '.*?'
- * '?' => '.'
- *
- * @param $search string
- * @return string
- */
-function convertWildcard( $search ) {
-       $search = preg_quote( $search, '/' );
-       $search = str_replace(
-               array( '\*', '\?' ),
-               array( '.*?', '.' ),
-               $search
-       );
-       return "/$search/";
-}
-
-if ( $wgCrossSiteAJAXdomains && isset( $_SERVER['HTTP_ORIGIN'] ) ) {
-       $exceptions = array_map( 'convertWildcard', $wgCrossSiteAJAXdomainExceptions );
-       $regexes = array_map( 'convertWildcard', $wgCrossSiteAJAXdomains );
-       foreach ( $regexes as $regex ) {
-               if ( preg_match( $regex, $_SERVER['HTTP_ORIGIN'] ) ) {
-                       foreach ( $exceptions as $exc ) { // Check against exceptions
-                               if ( preg_match( $exc, $_SERVER['HTTP_ORIGIN'] ) ) {
-                                       break 2;
-                               }
-                       }
-                       header( "Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}" );
-                       header( 'Access-Control-Allow-Credentials: true' );
-                       break;
-               }
-       }
-}
-
 // Set a dummy $wgTitle, because $wgTitle == null breaks various things
 // In a perfect world this wouldn't be necessary
 $wgTitle = Title::makeTitle( NS_MAIN, 'API' );
@@ -107,7 +70,7 @@ $wgTitle = Title::makeTitle( NS_MAIN, 'API' );
  * is some form of an ApiMain, possibly even one that produces an error message,
  * but we don't care here, as that is handled by the ctor.
  */
-$processor = new ApiMain( $wgRequest, $wgEnableWriteAPI );
+$processor = new ApiMain( RequestContext::getMain(), $wgEnableWriteAPI );
 
 // Process data & print results
 $processor->execute();
index 6d02328..4803746 100644 (file)
@@ -23,6 +23,7 @@
        Fix type for <ns> from "positiveInteger" to "nonNegativeInteger" to allow 0
        Moves <logitem> to its right location.
        Add parentid to revision.
+       Fix type for <id> within <contributor> to "nonNegativeInteger"
 
        The canonical URL to the schema document is:
        http://www.mediawiki.org/xml/export-0.7.xsd
        <complexType name="ContributorType">
                <sequence>
                        <element name="username" type="string" minOccurs="0" />
-                       <element name="id" type="positiveInteger" minOccurs="0" />
+                       <element name="id" type="nonNegativeInteger" minOccurs="0" />
 
                        <element name="ip" type="string" minOccurs="0" />
                </sequence>
index 147e524..47654ce 100644 (file)
@@ -427,6 +427,8 @@ $user: the user (object) deleting the article
 $reason: the reason (string) the article is being deleted
 $error: if the deletion was prohibited, the (raw HTML) error message to display
   (added in 1.13)
+$status: Status object, modify this to throw an error. Overridden by $error
+  (added in 1.20)
 
 'ArticleDeleteComplete': after an article is deleted
 $article: the WikiPage that was deleted
@@ -701,10 +703,18 @@ $user: user (object) whose email is being confirmed
 &$pager: Pager object for contributions
 &$queryInfo: The query for the contribs Pager
 
+'ContribsPager::reallyDoQuery': Called before really executing the query for My Contributions
+&$data: an array of results of all contribs queries
+$pager: The ContribsPager object hooked into
+$offset: Index offset, inclusive
+$limit: Exact query limit
+$descending: Query direction, false for ascending, true for descending
+
 'ContributionsLineEnding': Called before a contributions HTML line is finished
 $page: SpecialPage object for contributions
-$ret: the HTML line
+&$ret: the HTML line
 $row: the DB row for this line
+&$classes: the classes to add to the surrounding <li>
 
 'ContributionsToolLinks': Change tool links above Special:Contributions
 $id: User identifier
@@ -1119,8 +1129,16 @@ $prefix: interwiki prefix we are looking for.
 &$iwData: output array describing the interwiki with keys iw_url, iw_local,
   iw_trans and optionally iw_api and iw_wikiid.
 
+'InternalParseBeforeSanitize': during Parser's internalParse method just before the
+parser removes unwanted/dangerous HTML tags and after nowiki/noinclude/includeonly/
+onlyinclude and other processings. Ideal for syntax-extensions after template/parser
+function execution which respect nowiki and HTML-comments.
+&$parser: Parser object
+&$text: string containing partially parsed text
+&$stripState: Parser's internal StripState object
+
 'InternalParseBeforeLinks': during Parser's internalParse method before links
-but after noinclude/includeonly/onlyinclude and other processing.
+but after nowiki/noinclude/includeonly/onlyinclude and other processings.
 &$parser: Parser object
 &$text: string containing partially parsed text
 &$stripState: Parser's internal StripState object
@@ -1460,6 +1478,12 @@ A parser extension which depends on user options should install
 this hook and append its values to the key.
 $hash: reference to a hash key string which can be modified
 
+'ParserAfterParse': Called from Parser::parse() just after the call to
+Parser::internalParse() returns
+$parser: parser object
+$text: text being parsed
+$stripState: stripState used (object)
+
 'ParserAfterStrip': Same as ParserBeforeStrip
 
 'ParserAfterTidy': Called after Parser::tidy() in Parser::parse()
@@ -1828,6 +1852,14 @@ Each key maps to an associative array with a 'msg' (message key) and a 'default'
 hook to remove a core special page
 $list: list (array) of core special pages
 
+'SpecialPageAfterExecute': called after SpecialPage::execute
+$special: the SpecialPage object
+$subPage: the subpage string or null if no subpage was specified
+
+'SpecialPageBeforeExecute': called before SpecialPage::execute
+$special: the SpecialPage object
+$subPage: the subpage string or null if no subpage was specified
+
 'SpecialPasswordResetOnSubmit': when executing a form submission on Special:PasswordReset
 $users: array of User objects
 $data: array of data submitted by the user
index dcde2cf..3b259e2 100644 (file)
@@ -1369,10 +1369,12 @@ class Article extends Page {
 
                        $this->doDelete( $reason, $suppress );
 
-                       if ( $request->getCheck( 'wpWatch' ) && $user->isLoggedIn() ) {
-                               WatchAction::doWatch( $title, $user );
-                       } elseif ( $title->userIsWatching() ) {
-                               WatchAction::doUnwatch( $title, $user );
+                       if ( $user->isLoggedIn() && $request->getCheck( 'wpWatch' ) != $user->isWatched( $title ) ) {
+                               if ( $request->getCheck( 'wpWatch' ) ) {
+                                       WatchAction::doWatch( $title, $user );
+                               } else {
+                                       WatchAction::doUnwatch( $title, $user );
+                               }
                        }
 
                        return;
@@ -1436,7 +1438,7 @@ class Article extends Page {
                } else {
                        $suppress = '';
                }
-               $checkWatch = $user->getBoolOption( 'watchdeletion' ) || $this->getTitle()->userIsWatching();
+               $checkWatch = $user->getBoolOption( 'watchdeletion' ) || $user->isWatched( $this->getTitle() );
 
                $form = Xml::openElement( 'form', array( 'method' => 'post',
                        'action' => $this->getTitle()->getLocalURL( 'action=delete' ), 'id' => 'deleteconfirm' ) ) .
@@ -1520,7 +1522,8 @@ class Article extends Page {
        public function doDelete( $reason, $suppress = false ) {
                $error = '';
                $outputPage = $this->getContext()->getOutput();
-               if ( $this->mPage->doDeleteArticle( $reason, $suppress, 0, true, $error ) ) {
+               $status = $this->mPage->doDeleteArticleReal( $reason, $suppress, 0, true, $error );
+               if ( $status->isGood() ) {
                        $deleted = $this->getTitle()->getPrefixedText();
 
                        $outputPage->setPageTitle( wfMessage( 'actioncomplete' ) );
@@ -1533,8 +1536,9 @@ class Article extends Page {
                } else {
                        $outputPage->setPageTitle( wfMessage( 'cannotdelete-title', $this->getTitle()->getPrefixedText() ) );
                        if ( $error == '' ) {
+                               $errors = $status->getErrorsArray();
                                $outputPage->wrapWikiMsg( "<div class=\"error mw-error-cannotdelete\">\n$1\n</div>",
-                                       array( 'cannotdelete', wfEscapeWikiText( $this->getTitle()->getPrefixedText() ) )
+                                       $errors[0]
                                );
                                $outputPage->addHTML( Xml::element( 'h2', null, LogPage::logName( 'delete' ) ) );
 
index d92aa99..11cf616 100644 (file)
@@ -435,6 +435,9 @@ $wgAutoloadLocalClasses = array(
        'IContextSource' => 'includes/context/IContextSource.php',
        'RequestContext' => 'includes/context/RequestContext.php',
 
+       # includes/dao
+       'IDBAccessObject' => 'includes/dao/IDBAccessObject.php',
+
        # includes/db
        'Blob' => 'includes/db/DatabaseUtility.php',
        'ChronologyProtector' => 'includes/db/LBFactory.php',
@@ -1043,6 +1046,9 @@ $wgAutoloadLocalClasses = array(
        'TestFileIterator' => 'tests/testHelpers.inc',
        'TestRecorder' => 'tests/testHelpers.inc',
 
+       # tests/phpunit/includes/db
+       'ORMRowTest' => 'tests/phpunit/includes/db/ORMRowTest.php',
+
        # tests/parser
        'ParserTest' => 'tests/parser/parserTest.inc',
        'ParserTestParserHook' => 'tests/parser/parserTestsParserHook.php',
index 204df45..34e9eba 100644 (file)
@@ -35,6 +35,8 @@ class ChangeTags {
         *
         */
        static function formatSummaryRow( $tags, $page ) {
+               global $wgLang;
+
                if( !$tags )
                        return array( '', array() );
 
@@ -51,7 +53,7 @@ class ChangeTags {
                        );
                        $classes[] = Sanitizer::escapeClass( "mw-tag-$tag" );
                }
-               $markers = '(' . implode( ', ', $displayTags ) . ')';
+               $markers = wfMessage( 'parentheses' )->rawParams( $wgLang->commaList( $displayTags ) )->text();
                $markers = Xml::tags( 'span', array( 'class' => 'mw-tag-markers' ), $markers );
 
                return array( $markers, $classes );
index 4ddc667..fe0db10 100644 (file)
@@ -123,7 +123,7 @@ class ChangesList extends ContextSource {
                if( !isset( $this->message ) ) {
                        foreach ( explode( ' ', 'cur diff hist last blocklink history ' .
                        'semicolon-separator pipe-separator' ) as $msg ) {
-                               $this->message[$msg] = wfMsgExt( $msg, array( 'escapenoentities' ) );
+                               $this->message[$msg] = $this->msg( $msg )->escaped();
                        }
                }
        }
@@ -192,6 +192,7 @@ class ChangesList extends ContextSource {
                $this->rcCacheIndex = 0;
                $this->lastdate = '';
                $this->rclistOpen = false;
+               $this->getOutput()->addModuleStyles( 'mediawiki.special.changeslist' );
                return '';
        }
 
@@ -199,22 +200,31 @@ class ChangesList extends ContextSource {
         * Show formatted char difference
         * @param $old Integer: bytes
         * @param $new Integer: bytes
+        * @param $context IContextSource context to use
         * @return String
         */
-       public static function showCharacterDifference( $old, $new ) {
-               global $wgRCChangedSizeThreshold, $wgLang, $wgMiserMode;
+       public static function showCharacterDifference( $old, $new, IContextSource $context = null ) {
+               global $wgRCChangedSizeThreshold, $wgMiserMode;
+
+               if ( !$context ) {
+                       $context = RequestContext::getMain();
+               }
+
+               $new = (int)$new;
+               $old = (int)$old;
                $szdiff = $new - $old;
 
-               $code = $wgLang->getCode();
+               $lang = $context->getLanguage();
+               $code = $lang->getCode();
                static $fastCharDiff = array();
                if ( !isset($fastCharDiff[$code]) ) {
-                       $fastCharDiff[$code] = $wgMiserMode || wfMsgNoTrans( 'rc-change-size' ) === '$1';
+                       $fastCharDiff[$code] = $wgMiserMode || $context->msg( 'rc-change-size' )->plain() === '$1';
                }
 
-               $formattedSize = $wgLang->formatNum($szdiff);
+               $formattedSize = $lang->formatNum( $szdiff );
 
                if ( !$fastCharDiff[$code] ) {
-                       $formattedSize = wfMsgExt( 'rc-change-size', array( 'parsemag' ), $formattedSize );
+                       $formattedSize = $context->msg( 'rc-change-size', $formattedSize )->text();
                }
 
                if( abs( $szdiff ) > abs( $wgRCChangedSizeThreshold ) ) {
@@ -234,11 +244,34 @@ class ChangesList extends ContextSource {
                        $formattedSizeClass = 'mw-plusminus-neg';
                }
 
-               $formattedTotalSize = wfMsgExt( 'rc-change-size-new', 'parsemag', $wgLang->formatNum( $new ) );
+               $formattedTotalSize = $context->msg( 'rc-change-size-new' )->numParams( $new )->text();
 
                return Html::element( $tag,
                        array( 'dir' => 'ltr', 'class' => $formattedSizeClass, 'title' => $formattedTotalSize ),
-                       wfMessage( 'parentheses', $formattedSize )->plain() ) . $wgLang->getDirMark();
+                       $context->msg( 'parentheses', $formattedSize )->plain() ) . $lang->getDirMark();
+       }
+
+       /**
+        * Format the character difference of one or several changes.
+        *
+        * @param $old RecentChange
+        * @param $new RecentChange last change to use, if not provided, $old will be used
+        * @return string HTML fragment
+        */
+       public function formatCharacterDifference( RecentChange $old, RecentChange $new = null ) {
+               $oldlen = $old->mAttribs['rc_old_len'];
+
+               if ( $new ) {
+                       $newlen = $new->mAttribs['rc_new_len'];
+               } else {
+                       $newlen = $old->mAttribs['rc_new_len'];
+               }
+
+               if( $oldlen === null || $newlen === null ) {
+                       return '';
+               }
+
+               return self::showCharacterDifference( $oldlen, $newlen, $this->getContext() );
        }
 
        /**
@@ -255,7 +288,7 @@ class ChangesList extends ContextSource {
 
        public function insertDateHeader( &$s, $rc_timestamp ) {
                # Make date header if necessary
-               $date = $this->getLanguage()->date( $rc_timestamp, true, true );
+               $date = $this->getLanguage()->userDate( $rc_timestamp, $this->getUser() );
                if( $date != $this->lastdate ) {
                        if( $this->lastdate != '' ) {
                                $s .= "</ul>\n";
@@ -339,10 +372,8 @@ class ChangesList extends ContextSource {
                if( $this->isDeleted($rc,Revision::DELETED_TEXT) ) {
                        $articlelink = '<span class="history-deleted">' . $articlelink . '</span>';
                }
-               # Bolden pages watched by this user
-               if( $watched ) {
-                       $articlelink = "<strong class=\"mw-watched\">{$articlelink}</strong>";
-               }
+               # To allow for boldening pages watched by this user
+               $articlelink = "<span class=\"mw-title\">{$articlelink}</span>";
                # RTL/LTR marker
                $articlelink .= $this->getLanguage()->getDirMark();
 
@@ -358,7 +389,7 @@ class ChangesList extends ContextSource {
         */
        public function insertTimestamp( &$s, $rc ) {
                $s .= $this->message['semicolon-separator'] .
-                       $this->getLanguage()->time( $rc->mAttribs['rc_timestamp'], true, true ) . ' . . ';
+                       $this->getLanguage()->userTime( $rc->mAttribs['rc_timestamp'], $this->getUser() ) . ' . . ';
        }
 
        /**
@@ -369,7 +400,7 @@ class ChangesList extends ContextSource {
         */
        public function insertUserRelatedLinks( &$s, &$rc ) {
                if( $this->isDeleted( $rc, Revision::DELETED_USER ) ) {
-                       $s .= ' <span class="history-deleted">' . wfMsgHtml( 'rev-deleted-user' ) . '</span>';
+                       $s .= ' <span class="history-deleted">' . $this->msg( 'rev-deleted-user' )->escaped() . '</span>';
                } else {
                        $s .= $this->getLanguage()->getDirMark() . Linker::userLink( $rc->mAttribs['rc_user'],
                                $rc->mAttribs['rc_user_text'] );
@@ -385,12 +416,13 @@ class ChangesList extends ContextSource {
         */
        public function insertLogEntry( $rc ) {
                $formatter = LogFormatter::newFromRow( $rc->mAttribs );
+               $formatter->setContext( $this->getContext() );
                $formatter->setShowUserToolLinks( true );
                $mark = $this->getLanguage()->getDirMark();
                return $formatter->getActionText() . " $mark" . $formatter->getComment();
        }
 
-       /** 
+       /**
         * Insert a formatted comment
         * @param $rc RecentChange
         * @return string
@@ -398,7 +430,7 @@ class ChangesList extends ContextSource {
        public function insertComment( $rc ) {
                if( $rc->mAttribs['rc_type'] != RC_MOVE && $rc->mAttribs['rc_type'] != RC_MOVE_OVER_REDIRECT ) {
                        if( $this->isDeleted( $rc, Revision::DELETED_COMMENT ) ) {
-                               return ' <span class="history-deleted">' . wfMsgHtml( 'rev-deleted-comment' ) . '</span>';
+                               return ' <span class="history-deleted">' . $this->msg( 'rev-deleted-comment' )->escaped() . '</span>';
                        } else {
                                return Linker::commentBlock( $rc->mAttribs['rc_comment'], $rc->getTitle() );
                        }
@@ -422,8 +454,7 @@ class ChangesList extends ContextSource {
                static $cache = array();
                if( $count > 0 ) {
                        if( !isset( $cache[$count] ) ) {
-                               $cache[$count] = wfMsgExt( 'number_of_watching_users_RCview',
-                                       array('parsemag', 'escape' ), $this->getLanguage()->formatNum( $count ) );
+                               $cache[$count] = $this->msg( 'number_of_watching_users_RCview' )->numParams( $count )->escaped();
                        }
                        return $cache[$count];
                } else {
@@ -558,6 +589,10 @@ class OldChangesList extends ChangesList {
                        }
                }
 
+               // Indicate watched status on the line to allow for more
+               // comprehensive styling.
+               $classes[] = $watched ? 'mw-changeslist-line-watched' : 'mw-changeslist-line-not-watched';
+
                // Moved pages (very very old, not supported anymore)
                if( $rc->mAttribs['rc_type'] == RC_MOVE || $rc->mAttribs['rc_type'] == RC_MOVE_OVER_REDIRECT ) {
                // Log entries
@@ -588,9 +623,9 @@ class OldChangesList extends ChangesList {
                # Edit/log timestamp
                $this->insertTimestamp( $s, $rc );
                # Bytes added or removed
-               if( $wgRCShowChangedSize ) {
-                       $cd = $rc->getCharacterDifference();
-                       if( $cd != '' ) {
+               if ( $wgRCShowChangedSize ) {
+                       $cd = $this->formatCharacterDifference( $rc );
+                       if ( $cd !== '' ) {
                                $s .= "$cd  . . ";
                        }
                }
@@ -614,8 +649,7 @@ class OldChangesList extends ChangesList {
 
                # How many users watch this page
                if( $rc->numberofWatchingusers > 0 ) {
-                       $s .= ' ' . wfMsgExt( 'number_of_watching_users_RCview',
-                               array( 'parsemag', 'escape' ), $this->getLanguage()->formatNum( $rc->numberofWatchingusers ) );
+                       $s .= ' ' . $this->numberofWatchingusers( $rc->numberofWatchingusers );
                }
 
                if( $this->watchlist ) {
@@ -667,7 +701,7 @@ class EnhancedChangesList extends ChangesList {
                $curIdEq = array( 'curid' => $rc->mAttribs['rc_cur_id'] );
 
                # If it's a new day, add the headline and flush the cache
-               $date = $this->getLanguage()->date( $rc->mAttribs['rc_timestamp'], true );
+               $date = $this->getLanguage()->userDate( $rc->mAttribs['rc_timestamp'], $this->getUser() );
                $ret = '';
                if( $date != $this->lastdate ) {
                        # Process current cache
@@ -715,7 +749,7 @@ class EnhancedChangesList extends ChangesList {
                        $showdifflinks = false;
                }
 
-               $time = $this->getLanguage()->time( $rc->mAttribs['rc_timestamp'], true, true );
+               $time = $this->getLanguage()->userTime( $rc->mAttribs['rc_timestamp'], $this->getUser() );
                $rc->watched = $watched;
                $rc->link = $clink;
                $rc->timestamp = $time;
@@ -764,7 +798,7 @@ class EnhancedChangesList extends ChangesList {
 
                # Make user links
                if( $this->isDeleted( $rc, Revision::DELETED_USER ) ) {
-                       $rc->userlink = ' <span class="history-deleted">' . wfMsgHtml( 'rev-deleted-user' ) . '</span>';
+                       $rc->userlink = ' <span class="history-deleted">' . $this->msg( 'rev-deleted-user' )->escaped() . '</span>';
                } else {
                        $rc->userlink = Linker::userLink( $rc->mAttribs['rc_user'], $rc->mAttribs['rc_user_text'] );
                        $rc->usertalklink = Linker::userToolLinks( $rc->mAttribs['rc_user'], $rc->mAttribs['rc_user_text'] );
@@ -808,14 +842,16 @@ class EnhancedChangesList extends ChangesList {
                wfProfileIn( __METHOD__ );
 
                # Add the namespace and title of the block as part of the class
+               $classes = array( 'mw-collapsible', 'mw-collapsed', 'mw-enhanced-rc' );
                if ( $block[0]->mAttribs['rc_log_type'] ) {
                        # Log entry
-                       $classes = 'mw-collapsible mw-collapsed mw-enhanced-rc ' . Sanitizer::escapeClass( 'mw-changeslist-log-'
+                       $classes[] = Sanitizer::escapeClass( 'mw-changeslist-log-'
                                        . $block[0]->mAttribs['rc_log_type'] . '-' . $block[0]->mAttribs['rc_title'] );
                } else {
-                       $classes = 'mw-collapsible mw-collapsed mw-enhanced-rc ' . Sanitizer::escapeClass( 'mw-changeslist-ns'
+                       $classes[] = Sanitizer::escapeClass( 'mw-changeslist-ns'
                                        . $block[0]->mAttribs['rc_namespace'] . '-' . $block[0]->mAttribs['rc_title'] );
                }
+               $classes[] = $block[0]->watched ? 'mw-changeslist-line-watched' : 'mw-changeslist-line-not-watched';
                $r = Html::openElement( 'table', array( 'class' => $classes ) ) .
                        Html::openElement( 'tr' );
 
@@ -875,9 +911,9 @@ class EnhancedChangesList extends ChangesList {
                }
 
                $users = ' <span class="changedby">'
-                       . $this->getContext()->msg( 'brackets' )->rawParams(
+                       . $this->msg( 'brackets' )->rawParams(
                                implode( $this->message['semicolon-separator'], $users )
-                       )->plain() . '</span>';
+                       )->escaped() . '</span>';
 
                $tl = '<span class="mw-collapsible-toggle mw-enhancedchanges-arrow"></span>';
                $r .= "<td>$tl</td>";
@@ -895,7 +931,7 @@ class EnhancedChangesList extends ChangesList {
 
                # Article link
                if( $namehidden ) {
-                       $r .= ' <span class="history-deleted">' . wfMsgHtml( 'rev-deleted-event' ) . '</span>';
+                       $r .= ' <span class="history-deleted">' . $this->msg( 'rev-deleted-event' )->escaped() . '</span>';
                } elseif( $allLogs ) {
                        $r .= $this->maybeWatchedLink( $block[0]->link, $block[0]->watched );
                } else {
@@ -909,7 +945,7 @@ class EnhancedChangesList extends ChangesList {
                $n = count($block);
                static $nchanges = array();
                if ( !isset( $nchanges[$n] ) ) {
-                       $nchanges[$n] = wfMsgExt( 'nchanges', array( 'parsemag', 'escape' ), $this->getLanguage()->formatNum( $n ) );
+                       $nchanges[$n] = $this->msg( 'nchanges' )->numParams( $n )->escaped();
                }
                # Total change link
                $r .= ' ';
@@ -970,8 +1006,7 @@ class EnhancedChangesList extends ChangesList {
                                $first--;
                        }
                        # Get net change
-                       $chardiff = $rcObj->getCharacterDifference( $block[$first]->mAttribs['rc_old_len'],
-                               $block[$last]->mAttribs['rc_new_len'] );
+                       $chardiff = $this->formatCharacterDifference( $block[$first], $block[$last] );
 
                        if( $chardiff == '' ) {
                                $r .= ' ';
@@ -1032,8 +1067,11 @@ class EnhancedChangesList extends ChangesList {
                        $r .= ' . . ';
 
                        # Character diff
-                       if( $wgRCShowChangedSize && $rcObj->getCharacterDifference() ) {
-                               $r .= $rcObj->getCharacterDifference() . ' . . ' ;
+                       if ( $wgRCShowChangedSize ) {
+                               $cd = $this->formatCharacterDifference( $rcObj );
+                               if ( $cd !== '' ) {
+                                       $r .= "$cd . . ";
+                               }
                        }
 
                        if ( $rcObj->mAttribs['rc_type'] == RC_LOG ) {
@@ -1082,9 +1120,8 @@ class EnhancedChangesList extends ChangesList {
         * @return String: HTML <img> tag
         */
        protected function sideArrow() {
-               global $wgLang;
-               $dir = $wgLang->isRTL() ? 'l' : 'r';
-               return $this->arrow( $dir, '+', wfMsg( 'rc-enhanced-expand' ) );
+               $dir = $this->getLanguage()->isRTL() ? 'l' : 'r';
+               return $this->arrow( $dir, '+', $this->msg( 'rc-enhanced-expand' )->text() );
        }
 
        /**
@@ -1093,7 +1130,7 @@ class EnhancedChangesList extends ChangesList {
         * @return String: HTML <img> tag
         */
        protected function downArrow() {
-               return $this->arrow( 'd', '-', wfMsg( 'rc-enhanced-hide' ) );
+               return $this->arrow( 'd', '-', $this->msg( 'rc-enhanced-hide' )->text() );
        }
 
        /**
@@ -1118,14 +1155,16 @@ class EnhancedChangesList extends ChangesList {
 
                $type = $rcObj->mAttribs['rc_type'];
                $logType = $rcObj->mAttribs['rc_log_type'];
+               $classes = array( 'mw-enhanced-rc' );
                if( $logType ) {
                        # Log entry
-                       $classes = 'mw-enhanced-rc ' . Sanitizer::escapeClass( 'mw-changeslist-log-'
+                       $classes[] = Sanitizer::escapeClass( 'mw-changeslist-log-'
                                        . $logType . '-' . $rcObj->mAttribs['rc_title'] );
                } else {
-                       $classes = 'mw-enhanced-rc ' . Sanitizer::escapeClass( 'mw-changeslist-ns' .
+                       $classes[] = Sanitizer::escapeClass( 'mw-changeslist-ns' .
                                        $rcObj->mAttribs['rc_namespace'] . '-' . $rcObj->mAttribs['rc_title'] );
                }
+               $classes[] = $rcObj->watched ? 'mw-changeslist-line-watched' : 'mw-changeslist-line-not-watched';
                $r = Html::openElement( 'table', array( 'class' => $classes ) ) .
                        Html::openElement( 'tr' );
 
@@ -1162,20 +1201,22 @@ class EnhancedChangesList extends ChangesList {
                }
                $r .= ' . . ';
                # Character diff
-               if( $wgRCShowChangedSize && ($cd = $rcObj->getCharacterDifference()) ) {
-                       $r .= "$cd . . ";
+               if ( $wgRCShowChangedSize ) {
+                       $cd = $this->formatCharacterDifference( $rcObj );
+                       if ( $cd !== '' ) {
+                               $r .= "$cd . . ";
+                       }
                }
 
                if ( $type == RC_LOG ) {
                        $r .= $this->insertLogEntry( $rcObj );
-               } else { 
+               } else {
                        $r .= ' '.$rcObj->userlink . $rcObj->usertalklink;
                        $r .= $this->insertComment( $rcObj );
                        $this->insertRollback( $r, $rcObj );
                }
 
                # Tags
-               $classes = explode( ' ', $classes );
                $this->insertTags( $r, $rcObj, $classes );
                # Show how many people are watching this if enabled
                $r .= $this->numberofWatchingusers($rcObj->numberofWatchingusers);
index 6e59a86..7441932 100644 (file)
@@ -128,28 +128,6 @@ $wgUsePathInfo =
  */
 $wgScriptExtension  = '.php';
 
-/**
- * The URL path to index.php.
- *
- * Will default to "{$wgScriptPath}/index{$wgScriptExtension}" in Setup.php
- */
-$wgScript = false;
-
-/**
- * The URL path to redirect.php. This is a script that is used by the Nostalgia
- * skin.
- *
- * Will default to "{$wgScriptPath}/redirect{$wgScriptExtension}" in Setup.php
- */
-$wgRedirectScript = false;
-
-/**
- * The URL path to load.php.
- *
- * Defaults to "{$wgScriptPath}/load{$wgScriptExtension}".
- */
-$wgLoadScript = false;
-
 
 /**@}*/
 
@@ -172,7 +150,30 @@ $wgLoadScript = false;
  */
 
 /**
- * The URL path of the skins directory. Will default to "{$wgScriptPath}/skins" in Setup.php
+ * The URL path to index.php.
+ *
+ * Defaults to "{$wgScriptPath}/index{$wgScriptExtension}".
+ */
+$wgScript = false;
+
+/**
+ * The URL path to redirect.php. This is a script that is used by the Nostalgia
+ * skin.
+ *
+ * Defaults to "{$wgScriptPath}/redirect{$wgScriptExtension}".
+ */
+$wgRedirectScript = false;
+
+/**
+ * The URL path to load.php.
+ *
+ * Defaults to "{$wgScriptPath}/load{$wgScriptExtension}".
+ */
+$wgLoadScript = false;
+
+/**
+ * The URL path of the skins directory.
+ * Defaults to "{$wgScriptPath}/skins".
  */
 $wgStylePath = false;
 $wgStyleSheetPath = &$wgStylePath;
@@ -191,7 +192,8 @@ $wgLocalStylePath = false;
 $wgExtensionAssetsPath = false;
 
 /**
- * Filesystem stylesheets directory. Will default to "{$IP}/skins" in Setup.php
+ * Filesystem stylesheets directory.
+ * Defaults to "{$IP}/skins".
  */
 $wgStyleDirectory = false;
 
@@ -199,29 +201,31 @@ $wgStyleDirectory = false;
  * The URL path for primary article page views. This path should contain $1,
  * which is replaced by the article title.
  *
- * Will default to "{$wgScript}/$1" or "{$wgScript}?title=$1" in Setup.php,
+ * Defaults to "{$wgScript}/$1" or "{$wgScript}?title=$1",
  * depending on $wgUsePathInfo.
  */
 $wgArticlePath = false;
 
 /**
- * The URL path for the images directory. Will default to "{$wgScriptPath}/images" in Setup.php
+ * The URL path for the images directory.
+ * Defaults to "{$wgScriptPath}/images".
  */
 $wgUploadPath = false;
 
 /**
- * The maximum age of temporary (incomplete) uploaded files
+ * The filesystem path of the images directory. Defaults to "{$IP}/images".
  */
-$wgUploadStashMaxAge = 6 * 3600; // 6 hours
+$wgUploadDirectory = false;
 
 /**
- * The filesystem path of the images directory. Defaults to "{$IP}/images".
+ * Directory where the cached page will be saved.
+ * Defaults to "{$wgUploadDirectory}/cache".
  */
-$wgUploadDirectory = false;
+$wgFileCacheDirectory = false;
 
 /**
  * The URL path of the wiki logo. The logo size should be 135x135 pixels.
- * Will default to "{$wgStylePath}/common/images/wiki.png" in Setup.php
+ * Defaults to "{$wgStylePath}/common/images/wiki.png".
  */
 $wgLogo = false;
 
@@ -241,14 +245,14 @@ $wgAppleTouchIcon = false;
  * be web accessible.
  *
  * When this setting is set to false, its value will be set through a call
- * to wfTempDir(). See that methods implementation for the actul detection
+ * to wfTempDir(). See that methods implementation for the actual detection
  * logic.
  *
  * Developers should use the global function wfTempDir() instead of this
  * variable.
  *
  * @see wfTempDir()
- * @note Default modified to false in v1.20
+ * @note Default changed to false in MediaWiki 1.20.
  *
  */
 $wgTmpDirectory = false;
@@ -287,6 +291,11 @@ $wgActionPaths = array();
 /** Uploads have to be specially set up to be secure */
 $wgEnableUploads = false;
 
+/**
+ * The maximum age of temporary (incomplete) uploaded files
+ */
+$wgUploadStashMaxAge = 6 * 3600; // 6 hours
+
 /** Allows to move images and other media files */
 $wgAllowImageMoving = true;
 
@@ -460,28 +469,38 @@ $wgUpdateCompatibleMetadata = false;
  * $wgForeignFileRepos variable.
  */
 $wgUseSharedUploads = false;
+
 /** Full path on the web server where shared uploads can be found */
 $wgSharedUploadPath = "http://commons.wikimedia.org/shared/images";
+
 /** Fetch commons image description pages and display them on the local wiki? */
 $wgFetchCommonsDescriptions = false;
+
 /** Path on the file system where shared uploads can be found. */
 $wgSharedUploadDirectory = "/var/www/wiki3/images";
+
 /** DB name with metadata about shared directory. Set this to false if the uploads do not come from a wiki. */
 $wgSharedUploadDBname = false;
+
 /** Optional table prefix used in database. */
 $wgSharedUploadDBprefix = '';
+
 /** Cache shared metadata in memcached. Don't do this if the commons wiki is in a different memcached domain */
 $wgCacheSharedUploads = true;
+
 /**
-* Allow for upload to be copied from an URL. Requires Special:Upload?source=web
-* The timeout for copy uploads is set by $wgHTTPTimeout.
-*/
+ * Allow for upload to be copied from an URL. Requires Special:Upload?source=web
+ * The timeout for copy uploads is set by $wgHTTPTimeout.
+ * You have to assign the user right 'upload_by_url' to a user group, to use this.
+ */
 $wgAllowCopyUploads = false;
+
 /**
  * Allow asynchronous copy uploads.
  * This feature is experimental and broken as of r81612.
  */
 $wgAllowAsyncCopyUploads = false;
+
 /**
  * A list of domains copy uploads can come from
  */
@@ -732,14 +751,19 @@ $wgSVGConverters = array(
        'imgserv' => '$path/imgserv-wrapper -i svg -o png -w$width $input $output',
        'ImagickExt' => array( 'SvgHandler::rasterizeImagickExt' ),
        );
+
 /** Pick a converter defined in $wgSVGConverters */
 $wgSVGConverter = 'ImageMagick';
+
 /** If not in the executable PATH, specify the SVG converter path. */
 $wgSVGConverterPath = '';
+
 /** Don't scale a SVG larger than this */
 $wgSVGMaxSize = 2048;
+
 /** Don't read SVG metadata beyond this point.
- * Default is 1024*256 bytes */
+ * Default is 1024*256 bytes
+ */
 $wgSVGMetadataCutoff = 262144;
 
 /**
@@ -888,20 +912,6 @@ $wgAntivirusSetup = array(
 
                'messagepattern' => '/.*?:(.*)/sim',
        ),
-
-       #setup for f-prot
-       'f-prot' => array (
-               'command' => "f-prot ",
-
-               'codemap' => array (
-                       "0" => AV_NO_VIRUS, # no virus
-                       "3" => AV_VIRUS_FOUND, # virus found
-                       "6" => AV_VIRUS_FOUND, # virus found
-                       "*" => AV_SCAN_FAILED, # else scan failed
-               ),
-
-               'messagepattern' => '/.*?Infection:(.*)$/m',
-       ),
 );
 
 
@@ -1630,7 +1640,8 @@ $wgObjectCaches = array(
 $wgParserCacheExpireTime = 86400;
 
 /**
- * Select which DBA handler <http://www.php.net/manual/en/dba.requirements.php> to use as CACHE_DBA backend
+ * Select which DBA handler <http://www.php.net/manual/en/dba.requirements.php>
+ * to use as CACHE_DBA backend.
  */
 $wgDBAhandler = 'db3';
 
@@ -1742,12 +1753,6 @@ $wgStyleVersion = '303';
  */
 $wgUseFileCache = false;
 
-/**
- * Directory where the cached page will be saved.
- * Will default to "{$wgUploadDirectory}/cache" in Setup.php
- */
-$wgFileCacheDirectory = false;
-
 /**
  * Depth of the subdirectory hierarchy to be created under
  * $wgFileCacheDirectory.  The subdirectories will be named based on
@@ -2631,7 +2636,7 @@ $wgResourceModules = array();
 $wgResourceLoaderSources = array();
 
 /**
- * Default 'remoteBasePath' value for resource loader modules.
+ * Default 'remoteBasePath' value for instances of ResourceLoaderFileModule.
  * If not set, then $wgScriptPath will be used as a fallback.
  */
 $wgResourceBasePath = null;
@@ -3605,7 +3610,6 @@ $wgGroupPermissions['sysop']['reupload']         = true;
 $wgGroupPermissions['sysop']['reupload-shared']  = true;
 $wgGroupPermissions['sysop']['unwatchedpages']   = true;
 $wgGroupPermissions['sysop']['autoconfirmed']    = true;
-$wgGroupPermissions['sysop']['upload_by_url']    = true;
 $wgGroupPermissions['sysop']['ipblock-exempt']   = true;
 $wgGroupPermissions['sysop']['blockemail']       = true;
 $wgGroupPermissions['sysop']['markbotedits']     = true;
@@ -3615,6 +3619,7 @@ $wgGroupPermissions['sysop']['noratelimit']      = true;
 $wgGroupPermissions['sysop']['movefile']         = true;
 $wgGroupPermissions['sysop']['unblockself']      = true;
 $wgGroupPermissions['sysop']['suppressredirect'] = true;
+#$wgGroupPermissions['sysop']['upload_by_url']    = true;
 #$wgGroupPermissions['sysop']['mergehistory']     = true;
 
 // Permission to change users' group assignments
@@ -4186,6 +4191,13 @@ $wgLogExceptionBacktrace = true;
  */
 $wgShowHostnames = false;
 
+/**
+ * Override server hostname detection with a hardcoded value.
+ * Should be a string, default false.
+ * @since 1.20
+ */
+$wgOverrideHostname = false;
+
 /**
  * If set to true MediaWiki will throw notices for some possible error
  * conditions and for deprecated functions.
index 6e6f825..1f526cc 100644 (file)
@@ -756,7 +756,7 @@ class EditPage {
                } elseif ( $wgUser->getOption( 'watchcreations' ) && !$this->mTitle->exists() ) {
                        # Watch creations
                        $this->watchthis = true;
-               } elseif ( $this->mTitle->userIsWatching() ) {
+               } elseif ( $wgUser->isWatched( $this->mTitle ) ) {
                        # Already watched
                        $this->watchthis = true;
                }
@@ -1470,7 +1470,7 @@ class EditPage {
         */
        protected function commitWatch() {
                global $wgUser;
-               if ( $this->watchthis xor $this->mTitle->userIsWatching() ) {
+               if ( $wgUser->isLoggedIn() && $this->watchthis != $wgUser->isWatched( $this->mTitle ) ) {
                        $dbw = wfGetDB( DB_MASTER );
                        $dbw->begin( __METHOD__ );
                        if ( $this->watchthis ) {
@@ -2414,7 +2414,16 @@ HTML
                        '</div>' );
        }
 
+       /**
+        * Get the copyright warning
+        *
+        * Renamed to getCopyrightWarning(), old name kept around for backwards compatibility
+        */
        protected function getCopywarn() {
+               return self::getCopyrightWarning( $this->mTitle );
+       }
+
+       public static function getCopyrightWarning( $title ) {
                global $wgRightsText;
                if ( $wgRightsText ) {
                        $copywarnMsg = array( 'copyrightwarning',
@@ -2425,7 +2434,7 @@ HTML
                                '[[' . wfMsgForContent( 'copyrightpage' ) . ']]' );
                }
                // Allow for site and per-namespace customization of contribution/copyright notice.
-               wfRunHooks( 'EditPageCopyrightWarning', array( $this->mTitle, &$copywarnMsg ) );
+               wfRunHooks( 'EditPageCopyrightWarning', array( $title, &$copywarnMsg ) );
 
                return "<div id=\"editpage-copywarn\">\n" .
                        call_user_func_array( "wfMsgNoTrans", $copywarnMsg ) . "\n</div>";
index 9f6d5bd..6e1325f 100644 (file)
@@ -128,10 +128,10 @@ class MWException extends Exception {
                                '</p><p>Backtrace:</p><p>' . nl2br( htmlspecialchars( $this->getTraceAsString() ) ) .
                                "</p>\n";
                } else {
-                       return 
+                       return
                                "<div class=\"errorbox\">" .
                                '[' . $this->getLogId() . '] ' .
-                               gmdate( 'Y-m-d H:i:s' ) . 
+                               gmdate( 'Y-m-d H:i:s' ) .
                                ": Fatal exception of type " . get_class( $this ) . "</div>\n" .
                                "<!-- Set \$wgShowExceptionDetails = true; " .
                                "at the bottom of LocalSettings.php to show detailed " .
@@ -213,13 +213,20 @@ class MWException extends Exception {
                        $wgOut->output();
                } else {
                        header( "Content-Type: text/html; charset=utf-8" );
+                       echo "<!doctype html>\n" .
+                               '<html><head>' .
+                               '<title>' . htmlspecialchars( $this->getPageTitle() ) . '</title>' .
+                               "</head><body>\n";
+
                        $hookResult = $this->runHooks( get_class( $this ) . "Raw" );
                        if ( $hookResult ) {
-                               die( $hookResult );
+                               echo $hookResult;
+                       } else {
+                               echo $this->getHTML();
                        }
 
-                       echo $this->getHTML();
-                       die(1);
+                       echo "</body></html>\n";
+                       die( 1 );
                }
        }
 
@@ -292,7 +299,13 @@ class ErrorPageError extends MWException {
        public $title, $msg, $params;
 
        /**
+        * @todo document
+        *
         * Note: these arguments are keys into wfMsg(), not text!
+        *
+        * @param $title A title
+        * @param $msg String|Message . In string form, should be a message key
+        * @param $params Array Array to wfMsg()
         */
        function __construct( $title, $msg, $params = null ) {
                $this->title = $title;
@@ -457,6 +470,49 @@ class UserBlockedError extends ErrorPageError {
        }
 }
 
+/**
+ * Shows a generic "user is not logged in" error page.
+ *
+ * This is essentially an ErrorPageError exception which by default use the
+ * 'exception-nologin' as a title and 'exception-nologin-text' for the message.
+ * @see bug 37627
+ *
+ * @par Example:
+ * @code
+ * if( $user->isAnon ) {
+ *     throw new UserNotLoggedIn();
+ * }
+ * @endcode
+ *
+ * Please note the parameters are mixed up compared to ErrorPageError, this
+ * is done to be able to simply specify a reason whitout overriding the default
+ * title.
+ *
+ * @par Example:
+ * @code
+ * if( $user->isAnon ) {
+ *     throw new UserNotLoggedIn( 'action-require-loggedin' );
+ * }
+ * @endcode
+ *
+ * @param $reasonMsg A message key containing the reason for the error.
+ *        Optional, default: 'exception-nologin-text'
+ * @param $titleMsg A message key to set the page title.
+ *        Optional, default: 'exception-nologin'
+ * @param $params Parameters to wfMsg().
+ *        Optiona, default: null
+ */
+class UserNotLoggedIn extends ErrorPageError {
+
+       public function __construct(
+               $reasonMsg = 'exception-nologin-text',
+               $titleMsg  = 'exception-nologin',
+               $params = null
+       ) {
+               parent::__construct( $titleMsg, $reasonMsg, $params );
+       }
+}
+
 /**
  * Show an error that looks like an HTTP server error.
  * Replacement for wfHttpError().
index aa571f4..36d98d6 100644 (file)
@@ -757,7 +757,7 @@ class XmlDumpWriter {
         * @return string
         */
        function writeUploads( $row, $dumpContents = false ) {
-               if ( $row->page_namespace == NS_IMAGE ) {
+               if ( $row->page_namespace == NS_FILE ) {
                        $img = wfLocalFile( $row->page_title );
                        if ( $img && $img->exists() ) {
                                $out = '';
index 9d6ab65..ecdb5ba 100644 (file)
@@ -119,10 +119,12 @@ class FileDeleteForm {
                                // file, otherwise go back to the description page
                                $wgOut->addReturnTo( $this->oldimage ? $this->title : Title::newMainPage() );
 
-                               if ( $wgRequest->getCheck( 'wpWatch' ) && $wgUser->isLoggedIn() ) {
-                                       WatchAction::doWatch( $this->title, $wgUser );
-                               } elseif ( $this->title->userIsWatching() ) {
-                                       WatchAction::doUnwatch( $this->title, $wgUser );
+                               if ( $wgUser->isLoggedIn() && $wgRequest->getCheck( 'wpWatch' ) != $wgUser->isWatched( $this->title ) ) {
+                                       if ( $wgRequest->getCheck( 'wpWatch' ) ) {
+                                               WatchAction::doWatch( $this->title, $wgUser );
+                                       } else {
+                                               WatchAction::doUnwatch( $this->title, $wgUser );
+                                       }
                                }
                        }
                        return;
@@ -154,12 +156,19 @@ class FileDeleteForm {
                        $status = $file->deleteOld( $oldimage, $reason, $suppress );
                        if( $status->ok ) {
                                // Need to do a log item
-                               $log = new LogPage( 'delete' );
                                $logComment = wfMsgForContent( 'deletedrevision', $oldimage );
                                if( trim( $reason ) != '' ) {
                                        $logComment .= wfMsgForContent( 'colon-separator' ) . $reason;
                                }
-                               $log->addEntry( 'delete', $title, $logComment );
+
+                               $logtype = $suppress ? 'suppress' : 'delete';
+
+                               $logEntry = new ManualLogEntry( $logtype, 'delete' );
+                               $logEntry->setPerformer( $user );
+                               $logEntry->setTarget( $title );
+                               $logEntry->setComment( $logComment );
+                               $logid = $logEntry->insert();
+                               $logEntry->publish( $logid );
                        }
                } else {
                        $status = Status::newFatal( 'cannotdelete',
@@ -170,7 +179,10 @@ class FileDeleteForm {
                        try {
                                // delete the associated article first
                                $error = '';
-                               if ( $page->doDeleteArticleReal( $reason, $suppress, 0, false, $error, $user ) >= WikiPage::DELETE_SUCCESS ) {
+                               $deleteStatus = $page->doDeleteArticleReal( $reason, $suppress, 0, false, $error, $user );
+                               // doDeleteArticleReal() returns a non-fatal error status if the page
+                               // or revision is missing, so check for isOK() rather than isGood()
+                               if ( $deleteStatus->isOK() ) {
                                        $status = $file->delete( $reason, $suppress );
                                        if( $status->isOK() ) {
                                                $dbw->commit( __METHOD__ );
@@ -210,7 +222,7 @@ class FileDeleteForm {
                        $suppress = '';
                }
 
-               $checkWatch = $wgUser->getBoolOption( 'watchdeletion' ) || $this->title->userIsWatching();
+               $checkWatch = $wgUser->getBoolOption( 'watchdeletion' ) || $wgUser->isWatched( $this->title );
                $form = Xml::openElement( 'form', array( 'method' => 'post', 'action' => $this->getAction(),
                        'id' => 'mw-img-deleteconfirm' ) ) .
                        Xml::openElement( 'fieldset' ) .
index ba9bf74..7e75958 100644 (file)
@@ -1758,6 +1758,15 @@ function wfDebugDieBacktrace( $msg = '' ) {
 function wfHostname() {
        static $host;
        if ( is_null( $host ) ) {
+
+               # Hostname overriding
+               global $wgOverrideHostname;
+               if( $wgOverrideHostname !== false ) {
+                       # Set static and skip any detection
+                       $host = $wgOverrideHostname;
+                       return $host;
+               }
+
                if ( function_exists( 'posix_uname' ) ) {
                        // This function not present on Windows
                        $uname = posix_uname();
index 9fcac65..526ad0c 100644 (file)
@@ -978,7 +978,7 @@ class Linker {
         * @param $userName String: user name in database.
         * @param $altUserName String: text to display instead of the user name (optional)
         * @return String: HTML fragment
-        * @since 1.19 Method exists for a long time. $displayText was added in 1.19.
+        * @since 1.19 Method exists for a long time. $altUserName was added in 1.19.
         */
        public static function userLink( $userId, $userName, $altUserName = false ) {
                if ( $userId == 0 ) {
@@ -1646,11 +1646,17 @@ class Linker {
         * other users.
         *
         * @param $rev Revision object
+        * @param $context IContextSource context to use or null for the main context.
         * @return string
         */
-       public static function generateRollback( $rev ) {
+       public static function generateRollback( $rev, IContextSource $context = null ) {
+               if ( $context === null ) {
+                       $context = RequestContext::getMain();
+               }
+
                return '<span class="mw-rollback-link">'
-                       . wfMessage( 'brackets' )->rawParams( self::buildRollbackLink( $rev ) )->plain()
+                       . $context->msg( 'brackets' )->rawParams(
+                               self::buildRollbackLink( $rev, $context ) )->plain()
                        . '</span>';
        }
 
@@ -1658,24 +1664,28 @@ class Linker {
         * Build a raw rollback link, useful for collections of "tool" links
         *
         * @param $rev Revision object
+        * @param $context IContextSource context to use or null for the main context.
         * @return String: HTML fragment
         */
-       public static function buildRollbackLink( $rev ) {
-               global $wgRequest, $wgUser;
+       public static function buildRollbackLink( $rev, IContextSource $context = null ) {
+               if ( $context === null ) {
+                       $context = RequestContext::getMain();
+               }
+
                $title = $rev->getTitle();
                $query = array(
                        'action' => 'rollback',
                        'from' => $rev->getUserText(),
-                       'token' => $wgUser->getEditToken( array( $title->getPrefixedText(), $rev->getUserText() ) ),
+                       'token' => $context->getUser()->getEditToken( array( $title->getPrefixedText(), $rev->getUserText() ) ),
                );
-               if ( $wgRequest->getBool( 'bot' ) ) {
+               if ( $context->getRequest()->getBool( 'bot' ) ) {
                        $query['bot'] = '1';
                        $query['hidediff'] = '1'; // bug 15999
                }
                return self::link(
                        $title,
-                       wfMsgHtml( 'rollbacklink' ),
-                       array( 'title' => wfMsg( 'tooltip-rollback' ) ),
+                       $context->msg( 'rollbacklink' )->escaped(),
+                       array( 'title' => $context->msg( 'tooltip-rollback' )->text() ),
                        $query,
                        array( 'known', 'noclasses' )
                );
index c87a12b..2e2b8d6 100644 (file)
@@ -339,6 +339,33 @@ class MWNamespace {
                        return $wgContentNamespaces;
                }
        }
+
+       /**
+        * List all namespace indices which are considered subject, aka not a talk
+        * or special namespace. See also MWNamespace::isSubject
+        *
+        * @return array of namespace indices
+        */
+       public static function getSubjectNamespaces() {
+               return array_filter(
+                       MWNamespace::getValidNamespaces(),
+                       'MWNamespace::isSubject'
+               );
+       }
+
+       /**
+        * List all namespace indices which are considered talks, aka not a subject
+        * or special namespace. See also MWNamespace::isTalk
+        *
+        * @return array of namespace indices
+        */
+       public static function getTalkNamespaces() {
+               return array_filter(
+                       MWNamespace::getValidNamespaces(),
+                       'MWNamespace::isTalk'
+               );
+       }
+
        /**
         * Is the namespace first-letter capitalized?
         *
index 7f0a4e2..c00cfbe 100644 (file)
@@ -237,7 +237,6 @@ class OutputPage extends ContextSource {
        private $mFollowPolicy = 'follow';
        private $mVaryHeader = array(
                'Accept-Encoding' => array( 'list-contains=gzip' ),
-               'Cookie' => null
        );
 
        /**
@@ -1722,6 +1721,16 @@ class OutputPage extends ContextSource {
                $this->mVaryHeader[$header] = array_unique( (array)$this->mVaryHeader[$header] );
        }
 
+       /**
+        * Return a Vary: header on which to vary caches. Based on the keys of $mVaryHeader,
+        * such as Accept-Encoding or Cookie
+        * 
+        * @return String
+        */
+       public function getVaryHeader() {
+               return 'Vary: ' . join( ', ', array_keys( $this->mVaryHeader ) );
+       }
+
        /**
         * Get a complete X-Vary-Options header
         *
@@ -1834,11 +1843,12 @@ class OutputPage extends ContextSource {
                        $response->header( "ETag: $this->mETag" );
                }
 
+               $this->addVaryHeader( 'Cookie' );
                $this->addAcceptLanguage();
 
                # don't serve compressed data to clients who can't handle it
                # maintain different caches for logged-in users and non-logged in ones
-               $response->header( 'Vary: ' . join( ', ', array_keys( $this->mVaryHeader ) ) );
+               $response->header( $this->getVaryHeader() );
 
                if ( $wgUseXVO ) {
                        # Add an X-Vary-Options header for Squid with Wikimedia patches
@@ -2512,13 +2522,15 @@ $templates
        protected function makeResourceLoaderLink( $modules, $only, $useESI = false, array $extraQuery = array(), $loadCall = false ) {
                global $wgResourceLoaderUseESI;
 
+               $modules = (array) $modules;
+
                if ( !count( $modules ) ) {
                        return '';
                }
 
                if ( count( $modules ) > 1 ) {
                        // Remove duplicate module requests
-                       $modules = array_unique( (array) $modules );
+                       $modules = array_unique( $modules );
                        // Sort module names so requests are more uniform
                        sort( $modules );
 
@@ -2535,7 +2547,7 @@ $templates
                // Create keyed-by-group list of module objects from modules list
                $groups = array();
                $resourceLoader = $this->getResourceLoader();
-               foreach ( (array) $modules as $name ) {
+               foreach ( $modules as $name ) {
                        $module = $resourceLoader->getModule( $name );
                        # Check that we're allowed to include this module on this page
                        if ( !$module
@@ -2556,7 +2568,7 @@ $templates
                }
 
                $links = '';
-               foreach ( $groups as $group => $modules ) {
+               foreach ( $groups as $group => $grpModules ) {
                        // Special handling for user-specific groups
                        $user = null;
                        if ( ( $group === 'user' || $group === 'private' ) && $this->getUser()->isLoggedIn() ) {
@@ -2580,10 +2592,10 @@ $templates
                        $context = new ResourceLoaderContext( $resourceLoader, new FauxRequest( $query ) );
                        // Extract modules that know they're empty
                        $emptyModules = array ();
-                       foreach ( $modules as $key => $module ) {
+                       foreach ( $grpModules as $key => $module ) {
                                if ( $module->isKnownEmpty( $context ) ) {
                                        $emptyModules[$key] = 'ready';
-                                       unset( $modules[$key] );
+                                       unset( $grpModules[$key] );
                                }
                        }
                        // Inline empty modules: since they're empty, just mark them as 'ready'
@@ -2601,7 +2613,7 @@ $templates
                        }
 
                        // If there are no modules left, skip this group
-                       if ( $modules === array() ) {
+                       if ( count( $grpModules ) === 0 ) {
                                continue;
                        }
 
@@ -2612,12 +2624,12 @@ $templates
                        if ( $group === 'private' ) {
                                if ( $only == ResourceLoaderModule::TYPE_STYLES ) {
                                        $links .= Html::inlineStyle(
-                                               $resourceLoader->makeModuleResponse( $context, $modules )
+                                               $resourceLoader->makeModuleResponse( $context, $grpModules )
                                        );
                                } else {
                                        $links .= Html::inlineScript(
                                                ResourceLoader::makeLoaderConditionalScript(
-                                                       $resourceLoader->makeModuleResponse( $context, $modules )
+                                                       $resourceLoader->makeModuleResponse( $context, $grpModules )
                                                )
                                        );
                                }
@@ -2633,7 +2645,7 @@ $templates
                        if ( $group === 'user' ) {
                                // Get the maximum timestamp
                                $timestamp = 1;
-                               foreach ( $modules as $module ) {
+                               foreach ( $grpModules as $module ) {
                                        $timestamp = max( $timestamp, $module->getModifiedTime( $context ) );
                                }
                                // Add a version parameter so cache will break when things change
@@ -2641,7 +2653,7 @@ $templates
                        }
 
                        $url = ResourceLoader::makeLoaderURL(
-                               array_keys( $modules ),
+                               array_keys( $grpModules ),
                                $this->getLanguage()->getCode(),
                                $this->getSkin()->getSkinName(),
                                $user,
index bcd6d14..750636d 100644 (file)
@@ -194,6 +194,7 @@ abstract class IndexPager extends ContextSource implements Pager {
                        $queryLimit,
                        $descending
                );
+
                $this->extractResultInfo( $this->mOffset, $queryLimit, $this->mResult );
                $this->mQueryDone = true;
 
@@ -303,7 +304,20 @@ abstract class IndexPager extends ContextSource implements Pager {
         * @param $descending Boolean: query direction, false for ascending, true for descending
         * @return ResultWrapper
         */
-       function reallyDoQuery( $offset, $limit, $descending ) {
+       public function reallyDoQuery( $offset, $limit, $descending ) {
+               list( $tables, $fields, $conds, $fname, $options, $join_conds ) = $this->buildQueryInfo( $offset, $limit, $descending );
+               return $this->mDb->select( $tables, $fields, $conds, $fname, $options, $join_conds );
+       }
+
+       /**
+        * Build variables to use by the database wrapper.
+        *
+        * @param $offset String: index offset, inclusive
+        * @param $limit Integer: exact query limit
+        * @param $descending Boolean: query direction, false for ascending, true for descending
+        * @return array
+        */
+       protected function buildQueryInfo( $offset, $limit, $descending ) {
                $fname = __METHOD__ . ' (' . $this->getSqlComment() . ')';
                $info = $this->getQueryInfo();
                $tables = $info['tables'];
@@ -327,8 +341,7 @@ abstract class IndexPager extends ContextSource implements Pager {
                        $conds[] = $this->mIndexField . $operator . $this->mDb->addQuotes( $offset );
                }
                $options['LIMIT'] = intval( $limit );
-               $res = $this->mDb->select( $tables, $fields, $conds, $fname, $options, $join_conds );
-               return new ResultWrapper( $this->mDb, $res );
+               return array( $tables, $fields, $conds, $fname, $options, $join_conds );
        }
 
        /**
index dbe06d4..31ed87f 100644 (file)
@@ -318,10 +318,12 @@ class ProtectionForm {
                        return false;
                }
 
-               if ( $wgRequest->getCheck( 'mwProtectWatch' ) && $wgUser->isLoggedIn() ) {
-                       WatchAction::doWatch( $this->mTitle, $wgUser );
-               } elseif ( $this->mTitle->userIsWatching() ) {
-                       WatchAction::doUnwatch( $this->mTitle, $wgUser );
+               if ( $wgUser->isLoggedIn() && $wgRequest->getCheck( 'mwProtectWatch' ) != $wgUser->isWatched( $this->mTitle ) ) {
+                       if ( $wgRequest->getCheck( 'mwProtectWatch' ) ) {
+                               WatchAction::doWatch( $this->mTitle, $wgUser );
+                       } else {
+                               WatchAction::doUnwatch( $this->mTitle, $wgUser );
+                       }
                }
                return true;
        }
index cd8a1b5..3327826 100644 (file)
@@ -19,7 +19,7 @@
  *
  * @file
  */
+
 /**
  * Utility class for creating new RC entries
  *
@@ -108,13 +108,7 @@ class RecentChange {
         * @return RecentChange
         */
        public static function newFromId( $rcid ) {
-               $dbr = wfGetDB( DB_SLAVE );
-               $row = $dbr->selectRow( 'recentchanges', '*', array( 'rc_id' => $rcid ), __METHOD__ );
-               if( $row !== false ) {
-                       return self::newFromRow( $row );
-               } else {
-                       return null;
-               }
+               return self::newFromConds( array( 'rc_id' => $rcid ), __METHOD__ );
        }
 
        /**
@@ -126,18 +120,12 @@ class RecentChange {
         */
        public static function newFromConds( $conds, $fname = __METHOD__ ) {
                $dbr = wfGetDB( DB_SLAVE );
-               $res = $dbr->select(
-                       'recentchanges',
-                       '*',
-                       $conds,
-                       $fname
-               );
-               if( $res instanceof ResultWrapper && $res->numRows() > 0 ) {
-                       $row = $res->fetchObject();
-                       $res->free();
+               $row = $dbr->selectRow( 'recentchanges', '*', $conds, $fname );
+               if ( $row !== false ) {
                        return self::newFromRow( $row );
+               } else {
+                       return null;
                }
-               return null;
        }
 
        # Accessors
@@ -781,7 +769,7 @@ class RecentChange {
                        }
                } else {
                        $ip = $wgRequest->getIP();
-                       if( !$ip ) 
+                       if( !$ip )
                                $ip = '';
                }
                return $ip;
index 14bd587..13eaae4 100644 (file)
@@ -23,7 +23,7 @@
 /**
  * @todo document
  */
-class Revision {
+class Revision implements IDBAccessObject {
        protected $mId;
        protected $mPage;
        protected $mUserText;
@@ -47,7 +47,7 @@ class Revision {
        const DELETED_RESTRICTED = 8;
        // Convenience field
        const SUPPRESSED_USER = 12;
-       // Audience options for Revision::getText()
+       // Audience options for accessors
        const FOR_PUBLIC = 1;
        const FOR_THIS_USER = 2;
        const RAW = 3;
@@ -56,11 +56,17 @@ class Revision {
         * Load a page revision from a given revision ID number.
         * Returns null if no such revision can be found.
         *
+        * $flags include:
+        *      IDBAccessObject::LATEST_READ  : Select the data from the master
+        *      IDBAccessObject::LOCKING_READ : Select & lock the data from the master
+        *      IDBAccessObject::AVOID_MASTER : Avoid master queries; data may be stale
+        *
         * @param $id Integer
+        * @param $flags Integer (optional)
         * @return Revision or null
         */
-       public static function newFromId( $id ) {
-               return Revision::newFromConds( array( 'rev_id' => intval( $id ) ) );
+       public static function newFromId( $id, $flags = 0 ) {
+               return self::newFromConds( array( 'rev_id' => intval( $id ) ), $flags );
        }
 
        /**
@@ -68,11 +74,17 @@ class Revision {
         * that's attached to a given title. If not attached
         * to that title, will return null.
         *
+        * $flags include:
+        *      IDBAccessObject::LATEST_READ  : Select the data from the master
+        *      IDBAccessObject::LOCKING_READ : Select & lock the data from the master
+        *      IDBAccessObject::AVOID_MASTER : Avoid master queries; data may be stale
+        *
         * @param $title Title
         * @param $id Integer (optional)
+        * @param $flags Integer Bitfield (optional)
         * @return Revision or null
         */
-       public static function newFromTitle( $title, $id = 0 ) {
+       public static function newFromTitle( $title, $id = 0, $flags = 0 ) {
                $conds = array(
                        'page_namespace' => $title->getNamespace(),
                        'page_title'     => $title->getDBkey()
@@ -80,7 +92,7 @@ class Revision {
                if ( $id ) {
                        // Use the specified ID
                        $conds['rev_id'] = $id;
-               } elseif ( wfGetLB()->getServerCount() > 1 ) {
+               } elseif ( !( $flags & self::AVOID_MASTER ) && wfGetLB()->getServerCount() > 1 ) {
                        // Get the latest revision ID from the master
                        $dbw = wfGetDB( DB_MASTER );
                        $latest = $dbw->selectField( 'page', 'page_latest', $conds, __METHOD__ );
@@ -92,7 +104,7 @@ class Revision {
                        // Use a join to get the latest revision
                        $conds[] = 'rev_id=page_latest';
                }
-               return Revision::newFromConds( $conds );
+               return self::newFromConds( $conds, $flags );
        }
 
        /**
@@ -100,15 +112,21 @@ class Revision {
         * that's attached to a given page ID.
         * Returns null if no such revision can be found.
         *
+        * $flags include:
+        *      IDBAccessObject::LATEST_READ  : Select the data from the master
+        *      IDBAccessObject::LOCKING_READ : Select & lock the data from the master
+        *      IDBAccessObject::AVOID_MASTER : Avoid master queries; data may be stale
+        *
         * @param $revId Integer
         * @param $pageId Integer (optional)
+        * @param $flags Integer Bitfield (optional)
         * @return Revision or null
         */
-       public static function newFromPageId( $pageId, $revId = 0 ) {
+       public static function newFromPageId( $pageId, $revId = 0, $flags = 0 ) {
                $conds = array( 'page_id' => $pageId );
                if ( $revId ) {
                        $conds['rev_id'] = $revId;
-               } elseif ( wfGetLB()->getServerCount() > 1 ) {
+               } elseif ( !( $flags & self::AVOID_MASTER ) && wfGetLB()->getServerCount() > 1 ) {
                        // Get the latest revision ID from the master
                        $dbw = wfGetDB( DB_MASTER );
                        $latest = $dbw->selectField( 'page', 'page_latest', $conds, __METHOD__ );
@@ -119,7 +137,7 @@ class Revision {
                } else {
                        $conds[] = 'rev_id = page_latest';
                }
-               return Revision::newFromConds( $conds );
+               return self::newFromConds( $conds, $flags );
        }
 
        /**
@@ -175,7 +193,7 @@ class Revision {
         * @return Revision or null
         */
        public static function loadFromId( $db, $id ) {
-               return Revision::loadFromConds( $db, array( 'rev_id' => intval( $id ) ) );
+               return self::loadFromConds( $db, array( 'rev_id' => intval( $id ) ) );
        }
 
        /**
@@ -195,7 +213,7 @@ class Revision {
                } else {
                        $conds[] = 'rev_id=page_latest';
                }
-               return Revision::loadFromConds( $db, $conds );
+               return self::loadFromConds( $db, $conds );
        }
 
        /**
@@ -214,7 +232,7 @@ class Revision {
                } else {
                        $matchId = 'page_latest';
                }
-               return Revision::loadFromConds( $db,
+               return self::loadFromConds( $db,
                        array( "rev_id=$matchId",
                                   'page_namespace' => $title->getNamespace(),
                                   'page_title'     => $title->getDBkey() )
@@ -232,7 +250,7 @@ class Revision {
         * @return Revision or null
         */
        public static function loadFromTimestamp( $db, $title, $timestamp ) {
-               return Revision::loadFromConds( $db,
+               return self::loadFromConds( $db,
                        array( 'rev_timestamp'  => $db->timestamp( $timestamp ),
                                   'page_namespace' => $title->getNamespace(),
                                   'page_title'     => $title->getDBkey() )
@@ -243,14 +261,17 @@ class Revision {
         * Given a set of conditions, fetch a revision.
         *
         * @param $conditions Array
+        * @param $flags integer (optional)
         * @return Revision or null
         */
-       public static function newFromConds( $conditions ) {
-               $db = wfGetDB( DB_SLAVE );
-               $rev = Revision::loadFromConds( $db, $conditions );
-               if( is_null( $rev ) && wfGetLB()->getServerCount() > 1 ) {
-                       $dbw = wfGetDB( DB_MASTER );
-                       $rev = Revision::loadFromConds( $dbw, $conditions );
+       private static function newFromConds( $conditions, $flags = 0 ) {
+               $db = wfGetDB( ( $flags & self::LATEST_READ ) ? DB_MASTER : DB_SLAVE );
+               $rev = self::loadFromConds( $db, $conditions, $flags );
+               if ( is_null( $rev ) && wfGetLB()->getServerCount() > 1 ) {
+                       if ( !( $flags & self::LATEST_READ ) && !( $flags & self::AVOID_MASTER ) ) {
+                               $dbw = wfGetDB( DB_MASTER );
+                               $rev = self::loadFromConds( $dbw, $conditions, $flags );
+                       }
                }
                return $rev;
        }
@@ -261,10 +282,11 @@ class Revision {
         *
         * @param $db DatabaseBase
         * @param $conditions Array
+        * @param $flags integer (optional)
         * @return Revision or null
         */
-       private static function loadFromConds( $db, $conditions ) {
-               $res = Revision::fetchFromConds( $db, $conditions );
+       private static function loadFromConds( $db, $conditions, $flags = 0 ) {
+               $res = self::fetchFromConds( $db, $conditions, $flags );
                if( $res ) {
                        $row = $res->fetchObject();
                        if( $row ) {
@@ -285,7 +307,7 @@ class Revision {
         * @return ResultWrapper
         */
        public static function fetchRevision( $title ) {
-               return Revision::fetchFromConds(
+               return self::fetchFromConds(
                        wfGetDB( DB_SLAVE ),
                        array( 'rev_id=page_latest',
                                   'page_namespace' => $title->getNamespace(),
@@ -300,20 +322,25 @@ class Revision {
         *
         * @param $db DatabaseBase
         * @param $conditions Array
+        * @param $flags integer (optional)
         * @return ResultWrapper
         */
-       private static function fetchFromConds( $db, $conditions ) {
+       private static function fetchFromConds( $db, $conditions, $flags = 0 ) {
                $fields = array_merge(
                        self::selectFields(),
                        self::selectPageFields(),
                        self::selectUserFields()
                );
+               $options = array( 'LIMIT' => 1 );
+               if ( $flags & self::FOR_UPDATE ) {
+                       $options[] = 'FOR UPDATE';
+               }
                return $db->select(
                        array( 'revision', 'page', 'user' ),
                        $fields,
                        $conditions,
                        __METHOD__,
-                       array( 'LIMIT' => 1 ),
+                       $options,
                        array( 'page' => self::pageJoinCond(), 'user' => self::userJoinCond() )
                );
        }
@@ -834,7 +861,7 @@ class Revision {
                if( $this->getTitle() ) {
                        $prev = $this->getTitle()->getPreviousRevisionID( $this->getId() );
                        if( $prev ) {
-                               return Revision::newFromTitle( $this->getTitle(), $prev );
+                               return self::newFromTitle( $this->getTitle(), $prev );
                        }
                }
                return null;
@@ -849,7 +876,7 @@ class Revision {
                if( $this->getTitle() ) {
                        $next = $this->getTitle()->getNextRevisionID( $this->getId() );
                        if ( $next ) {
-                               return Revision::newFromTitle( $this->getTitle(), $next );
+                               return self::newFromTitle( $this->getTitle(), $next );
                        }
                }
                return null;
@@ -979,7 +1006,7 @@ class Revision {
                                $text = gzdeflate( $text );
                                $flags[] = 'gzip';
                        } else {
-                               wfDebug( "Revision::compressRevisionText() -- no zlib support, not compressing\n" );
+                               wfDebug( __METHOD__ . " -- no zlib support, not compressing\n" );
                        }
                }
                return implode( ',', $flags );
@@ -998,7 +1025,7 @@ class Revision {
                wfProfileIn( __METHOD__ );
 
                $data = $this->mText;
-               $flags = Revision::compressRevisionText( $data );
+               $flags = self::compressRevisionText( $data );
 
                # Write to external storage if required
                if( $wgDefaultExternalStore ) {
@@ -1048,7 +1075,7 @@ class Revision {
                                        ? $this->getPreviousRevisionId( $dbw )
                                        : $this->mParentId,
                                'rev_sha1'       => is_null( $this->mSha1 )
-                                       ? Revision::base36Sha1( $this->mText )
+                                       ? self::base36Sha1( $this->mText )
                                        : $this->mSha1
                        ), __METHOD__
                );
@@ -1272,7 +1299,7 @@ class Revision {
        static function countByTitle( $db, $title ) {
                $id = $title->getArticleID();
                if( $id ) {
-                       return Revision::countByPageId( $db, $id );
+                       return self::countByPageId( $db, $id );
                }
                return 0;
        }
index 8cd5a37..fed5762 100644 (file)
@@ -692,6 +692,16 @@ class Sanitizer {
                                }
                        }
 
+                       if ( $attribute === 'align' && !in_array( $element, $cells ) ) {
+                               if ( $value === 'center' ) {
+                                       $style .= ' margin-left: auto;';
+                                       $property = 'margin-right';
+                                       $value = 'auto';
+                               } else {
+                                       $property = 'float';
+                               }
+                       }
+
                        $style .= " $property: $value;";
 
                        unset( $attribs[$attribute] );
index 359b20b..d1493c3 100644 (file)
 
 /**
  * Class to expand PHP execution time for a function call.
+ * Use this when performing changes that should not be interrupted.
+ *
  * On construction, set_time_limit() is called and set to $seconds.
+ * If the client aborts the connection, PHP will continue to run.
  * When the object goes out of scope, the timer is restarted, with
  * the original time limit minus the time the object existed.
  */
 class ScopedPHPTimeout {
        protected $startTime; // float; seconds
        protected $oldTimeout; // integer; seconds
+       protected $oldIgnoreAbort; // boolean
 
        protected static $stackDepth = 0; // integer
        protected static $totalCalls = 0; // integer
@@ -50,6 +54,7 @@ class ScopedPHPTimeout {
                        } elseif ( self::$stackDepth > 0 ) { // recursion guard
                                trigger_error( "Resursive invocation of " . __CLASS__ . " attempted." );
                        } else {
+                               $this->oldIgnoreAbort = ignore_user_abort( true );
                                $this->oldTimeout = ini_set( 'max_execution_time', $seconds );
                                $this->startTime = microtime( true );
                                ++self::$stackDepth;
@@ -73,6 +78,7 @@ class ScopedPHPTimeout {
                        // take some measures to prevent this. Track total time and calls.
                        self::$totalElapsed += $elapsed;
                        --self::$stackDepth;
+                       ignore_user_abort( $this->oldIgnoreAbort );
                }
        }
 }
index 6410695..6a861d8 100644 (file)
@@ -138,6 +138,7 @@ class SiteConfiguration {
 
        /**
         * Optional callback to load full configuration data.
+        * @var string|array
         */
        public $fullLoadCallback = null;
 
@@ -155,6 +156,8 @@ class SiteConfiguration {
         * argument and the wiki in the second one.
         * if suffix and lang are passed they will be used for the return value of
         * self::siteFromDB() and self::$suffixes will be ignored
+        *
+        * @var string|array
         */
        public $siteParamsCallback = null;
 
@@ -189,7 +192,7 @@ class SiteConfiguration {
                                if( array_key_exists( $wiki, $thisSetting ) ) {
                                        $retval = $thisSetting[$wiki];
                                        break;
-                               } elseif( array_key_exists( "+$wiki", $thisSetting ) && is_array( $thisSetting["+$wiki"] ) ) {
+                               } elseif ( array_key_exists( "+$wiki", $thisSetting ) && is_array( $thisSetting["+$wiki"] ) ) {
                                        $retval = $thisSetting["+$wiki"];
                                }
 
@@ -203,8 +206,9 @@ class SiteConfiguration {
                                                }
                                                break 2;
                                        } elseif( array_key_exists( "+$tag", $thisSetting ) && is_array($thisSetting["+$tag"]) ) {
-                                               if( !isset( $retval ) )
+                                               if( !isset( $retval ) ) {
                                                        $retval = array();
+                                               }
                                                $retval = self::arrayMerge( $retval, $thisSetting["+$tag"] );
                                        }
                                }
@@ -218,9 +222,10 @@ class SiteConfiguration {
                                                        $retval = $thisSetting[$suffix];
                                                }
                                                break;
-                                       } elseif( array_key_exists( "+$suffix", $thisSetting ) && is_array($thisSetting["+$suffix"]) ) {
-                                               if (!isset($retval))
+                                       } elseif ( array_key_exists( "+$suffix", $thisSetting ) && is_array($thisSetting["+$suffix"]) ) {
+                                               if ( !isset( $retval ) ) {
                                                        $retval = array();
+                                               }
                                                $retval = self::arrayMerge( $retval, $thisSetting["+$suffix"] );
                                        }
                                }
@@ -287,8 +292,9 @@ class SiteConfiguration {
                        }
 
                        $value = $this->getSetting( $varname, $wiki, $params );
-                       if ( $append && is_array( $value ) && is_array( $GLOBALS[$var] ) )
+                       if ( $append && is_array( $value ) && is_array( $GLOBALS[$var] ) ) {
                                $value = self::arrayMerge( $value, $GLOBALS[$var] );
+                       }
                        if ( !is_null( $value ) ) {
                                $localSettings[$var] = $value;
                        }
@@ -408,8 +414,9 @@ class SiteConfiguration {
                }
 
                foreach( $default as $name => $def ){
-                       if( !isset( $ret[$name] ) || ( is_array( $default[$name] ) && !is_array( $ret[$name] ) ) )
+                       if( !isset( $ret[$name] ) || ( is_array( $default[$name] ) && !is_array( $ret[$name] ) ) ) {
                                $ret[$name] = $default[$name];
+                       }
                }
 
                return $ret;
@@ -430,18 +437,21 @@ class SiteConfiguration {
        protected function mergeParams( $wiki, $suffix, /*array*/ $params, /*array*/ $wikiTags ){
                $ret = $this->getWikiParams( $wiki );
 
-               if( is_null( $ret['suffix'] ) )
+               if( is_null( $ret['suffix'] ) ) {
                        $ret['suffix'] = $suffix;
+               }
 
                $ret['tags'] = array_unique( array_merge( $ret['tags'], $wikiTags ) );
 
                $ret['params'] += $params;
 
                // Automatically fill that ones if needed
-               if( !isset( $ret['params']['lang'] ) && !is_null( $ret['lang'] ) )
+               if( !isset( $ret['params']['lang'] ) && !is_null( $ret['lang'] ) ){
                        $ret['params']['lang'] = $ret['lang'];
-               if( !isset( $ret['params']['site'] ) && !is_null( $ret['suffix'] ) )
+               }
+               if( !isset( $ret['params']['site'] ) && !is_null( $ret['suffix'] ) ) {
                        $ret['params']['site'] = $ret['suffix'];
+               }
 
                return $ret;
        }
@@ -455,8 +465,9 @@ class SiteConfiguration {
        public function siteFromDB( $db ) {
                // Allow override
                $def = $this->getWikiParams( $db );
-               if( !is_null( $def['suffix'] ) && !is_null( $def['lang'] ) )
+               if( !is_null( $def['suffix'] ) && !is_null( $def['lang'] ) ) {
                        return array( $def['suffix'], $def['lang'] );
+               }
 
                $site = null;
                $lang = null;
@@ -513,7 +524,7 @@ class SiteConfiguration {
        }
 
        public function loadFullData() {
-               if ($this->fullLoadCallback && !$this->fullLoadDone) {
+               if ( $this->fullLoadCallback && !$this->fullLoadDone ) {
                        call_user_func( $this->fullLoadCallback, $this );
                        $this->fullLoadDone = true;
                }
index e1ec897..18bc29f 100644 (file)
@@ -638,7 +638,7 @@ class LegacyTemplate extends BaseTemplate {
                $title = $this->getSkin()->getTitle();
 
                if ( $wgOut->isArticleRelated() ) {
-                       if ( $title->userIsWatching() ) {
+                       if ( $wgUser->isWatched( $title ) ) {
                                $text = wfMsg( 'unwatchthispage' );
                                $query = array(
                                        'action' => 'unwatch',
index b3dfc9b..4028e78 100644 (file)
@@ -258,7 +258,7 @@ class SkinTemplate extends Skin {
                /* XXX currently unused, might get useful later
                $tpl->set( 'editable', ( !$title->isSpecialPage() ) );
                $tpl->set( 'exists', $title->getArticleID() != 0 );
-               $tpl->set( 'watch', $title->userIsWatching() ? 'unwatch' : 'watch' );
+               $tpl->set( 'watch', $user->isWatched( $title ) ? 'unwatch' : 'watch' );
                $tpl->set( 'protect', count( $title->isProtected() ) ? 'unprotect' : 'protect' );
                $tpl->set( 'helppage', $this->msg( 'helppage' )->text() );
                */
@@ -974,7 +974,7 @@ class SkinTemplate extends Skin {
                                         * a change to that procedure these messages will have to remain as
                                         * the global versions.
                                         */
-                                       $mode = $title->userIsWatching() ? 'unwatch' : 'watch';
+                                       $mode = $user->isWatched( $title ) ? 'unwatch' : 'watch';
                                        $token = WatchAction::getWatchToken( $title, $user, $mode );
                                        $content_navigation['actions'][$mode] = array(
                                                'class' => $onPage && ( $action == 'watch' || $action == 'unwatch' ) ? 'selected' : false,
index 9e6717f..ba6db79 100644 (file)
@@ -589,15 +589,70 @@ class SpecialPage {
                $out->setPageTitle( $this->getDescription() );
        }
 
+       /**
+        * Entry point.
+        *
+        * @since 1.20
+        *
+        * @param $subPage string|null
+        */
+       public final function run( $subPage ) {
+               /**
+                * Gets called before @see SpecialPage::execute.
+                *
+                * @since 1.20
+                *
+                * @param $special SpecialPage
+                * @param $subPage string|null
+                */
+               wfRunHooks( 'SpecialPageBeforeExecute', array( &$this, $subPage ) );
+
+               $this->beforeExecute( $subPage );
+               $this->execute( $subPage );
+               $this->afterExecute( $subPage );
+
+               /**
+                * Gets called after @see SpecialPage::execute.
+                *
+                * @since 1.20
+                *
+                * @param $special SpecialPage
+                * @param $subPage string|null
+                */
+               wfRunHooks( 'SpecialPageAfterExecute', array( &$this, $subPage ) );
+       }
+
+       /**
+        * Gets called before @see SpecialPage::execute.
+        *
+        * @since 1.20
+        *
+        * @param $subPage string|null
+        */
+       protected function beforeExecute( $subPage ) {
+               // No-op
+       }
+
+       /**
+        * Gets called after @see SpecialPage::execute.
+        *
+        * @since 1.20
+        *
+        * @param $subPage string|null
+        */
+       protected function afterExecute( $subPage ) {
+               // No-op
+       }
+
        /**
         * Default execute method
         * Checks user permissions, calls the function given in mFunction
         *
         * This must be overridden by subclasses; it will be made abstract in a future version
         *
-        * @param $par String subpage string, if one was specified
+        * @param $subPage string|null
         */
-       function execute( $par ) {
+       public function execute( $subPage ) {
                $this->setHeaders();
                $this->checkPermissions();
 
@@ -607,7 +662,7 @@ class SpecialPage {
                        require_once( $this->mFile );
                }
                $this->outputHeader();
-               call_user_func( $func, $par, $this );
+               call_user_func( $func, $subPage, $this );
        }
 
        /**
index 02b8d54..1d62e8b 100644 (file)
@@ -490,7 +490,7 @@ class SpecialPageFactory {
                // Execute special page
                $profName = 'Special:' . $page->getName();
                wfProfileIn( $profName );
-               $page->execute( $par );
+               $page->run( $par );
                wfProfileOut( $profName );
                wfProfileOut( __METHOD__ );
                return true;
index 7cd2b03..8eb0f6b 100644 (file)
@@ -44,7 +44,15 @@ class SquidPurgeClient {
         * The socket resource, or null for unconnected, or false for disabled due to error
         */
        var $socket;
-       
+
+       var $readBuffer;
+
+       var $bodyRemaining;
+
+       /**
+        * @param $server string
+        * @param $options array
+        */
        public function __construct( $server, $options = array() ) {
                $parts = explode( ':', $server, 2 );
                $this->host = $parts[0];
@@ -340,6 +348,9 @@ class SquidPurgeClient {
                $this->bodyRemaining = null;
        }
 
+       /**
+        * @param $msg string
+        */
        protected function log( $msg ) {
                wfDebugLog( 'squid', __CLASS__." ($this->host): $msg\n" );
        }
@@ -353,6 +364,9 @@ class SquidPurgeClientPool {
        var $clients = array();
        var $timeout = 5;
 
+       /**
+        * @param $options array
+        */
        function __construct( $options = array() ) {
                if ( isset( $options['timeout'] ) ) {
                        $this->timeout = $options['timeout'];
@@ -372,6 +386,9 @@ class SquidPurgeClientPool {
                $startTime = microtime( true );
                while ( !$done ) {
                        $readSockets = $writeSockets = array();
+                       /**
+                        * @var $client SquidPurgeClient
+                        */
                        foreach ( $this->clients as $clientIndex => $client ) {
                                $sockets = $client->getReadSocketsForSelect();
                                foreach ( $sockets as $i => $socket ) {
index 046fadb..2b1a513 100644 (file)
@@ -1516,6 +1516,7 @@ class Title {
        /**
         * Is $wgUser watching this page?
         *
+        * @deprecated in 1.20; use User::isWatched() instead.
         * @return Bool
         */
        public function userIsWatching() {
@@ -2877,7 +2878,7 @@ class Title {
         *
         * - This is called from WikiPage::doEdit() and WikiPage::insertOn() to allow
         * loading of the new page_id. It's also called from
-        * WikiPage::doDeleteArticle()
+        * WikiPage::doDeleteArticleReal()
         *
         * @param $newid Int the new Article ID
         */
@@ -3284,16 +3285,14 @@ class Title {
         * @return Array of String the URLs
         */
        public function getSquidURLs() {
-               global $wgContLang;
-
                $urls = array(
                        $this->getInternalURL(),
                        $this->getInternalURL( 'action=history' )
                );
 
-               // purge variant urls as well
-               if ( $wgContLang->hasVariants() ) {
-                       $variants = $wgContLang->getVariants();
+               $pageLang = $this->getPageLanguage();
+               if ( $pageLang->hasVariants() ) {
+                       $variants = $pageLang->getVariants();
                        foreach ( $variants as $vCode ) {
                                $urls[] = $this->getInternalURL( '', $vCode );
                        }
index 01407b1..5fc0773 100644 (file)
@@ -65,6 +65,11 @@ class User {
        const MW_USER_VERSION = MW_USER_VERSION;
        const EDIT_TOKEN_SUFFIX = EDIT_TOKEN_SUFFIX;
 
+       /**
+        * Maximum items in $mWatchedItems
+        */
+       const MAX_WATCHED_ITEMS_CACHE = 100;
+
        /**
         * Array of Strings List of member variables which are saved to the
         * shared cache (memcached). Any operation which changes the
@@ -219,6 +224,11 @@ class User {
         */
        private $mBlockedFromCreateAccount = false;
 
+       /**
+        * @var Array
+        */
+       private $mWatchedItems = array();
+
        static $idCacheByName = array();
 
        /**
@@ -2613,14 +2623,34 @@ class User {
                return RequestContext::getMain()->getSkin();
        }
 
+       /**
+        * Get a WatchedItem for this user and $title.
+        *
+        * @param $title Title
+        * @return WatchedItem
+        */
+       public function getWatchedItem( $title ) {
+               $key = $title->getNamespace() . ':' . $title->getDBkey();
+
+               if ( isset( $this->mWatchedItems[$key] ) ) {
+                       return $this->mWatchedItems[$key];
+               }
+
+               if ( count( $this->mWatchedItems ) >= self::MAX_WATCHED_ITEMS_CACHE ) {
+                       $this->mWatchedItems = array();
+               }
+
+               $this->mWatchedItems[$key] = WatchedItem::fromUserTitle( $this, $title );
+               return $this->mWatchedItems[$key];
+       }
+
        /**
         * Check the watched status of an article.
         * @param $title Title of the article to look at
         * @return Bool
         */
        public function isWatched( $title ) {
-               $wl = WatchedItem::fromUserTitle( $this, $title );
-               return $wl->isWatched();
+               return $this->getWatchedItem( $title )->isWatched();
        }
 
        /**
@@ -2628,8 +2658,7 @@ class User {
         * @param $title Title of the article to look at
         */
        public function addWatch( $title ) {
-               $wl = WatchedItem::fromUserTitle( $this, $title );
-               $wl->addWatch();
+               $this->getWatchedItem( $title )->addWatch();
                $this->invalidateCache();
        }
 
@@ -2638,8 +2667,7 @@ class User {
         * @param $title Title of the article to look at
         */
        public function removeWatch( $title ) {
-               $wl = WatchedItem::fromUserTitle( $this, $title );
-               $wl->removeWatch();
+               $this->getWatchedItem( $title )->removeWatch();
                $this->invalidateCache();
        }
 
index c203e4f..8995f3f 100644 (file)
@@ -34,30 +34,6 @@ abstract class Page {}
  * @internal documentation reviewed 15 Mar 2010
  */
 class WikiPage extends Page {
-       // doDeleteArticleReal() return values. Values less than zero indicate fatal errors,
-       // values greater than zero indicate that there were problems not resulting in page
-       // not being deleted
-
-       /**
-        * Delete operation aborted by hook
-        */
-       const DELETE_HOOK_ABORTED = -1;
-
-       /**
-        * Deletion successful
-        */
-       const DELETE_SUCCESS = 0;
-
-       /**
-        * Page not found
-        */
-       const DELETE_NO_PAGE = 1;
-
-       /**
-        * No revisions found to delete
-        */
-       const DELETE_NO_REVISIONS = 2;
-
        // Constants for $mDataLoadedFrom and related
 
        /**
@@ -1205,7 +1181,7 @@ class WikiPage extends Page {
                        $conditions,
                        __METHOD__ );
 
-               $result = $dbw->affectedRows() != 0;
+               $result = $dbw->affectedRows() > 0;
                if ( $result ) {
                        $this->updateRedirectOn( $dbw, $rt, $lastRevIsRedirect );
                        $this->setLastEdit( $revision );
@@ -1511,6 +1487,10 @@ class WikiPage extends Page {
 
                                wfProfileOut( __METHOD__ );
                                return $status;
+                       } elseif ( $oldtext === false ) {
+                               # Sanity check for bug 37225
+                               wfProfileOut( __METHOD__ );
+                               throw new MWException( "Could not find text for current revision {$oldid}." );
                        }
 
                        $revision = new Revision( array(
@@ -1523,6 +1503,9 @@ class WikiPage extends Page {
                                'user_text'  => $user->getName(),
                                'timestamp'  => $now
                        ) );
+                       # Bug 37225: use accessor to get the text as Revision may trim it.
+                       # After trimming, the text may be a duplicate of the current text.
+                       $text = $revision->getText(); // sanity; EditPage should trim already
 
                        $changed = ( strcmp( $text, $oldtext ) != 0 );
 
@@ -1620,6 +1603,9 @@ class WikiPage extends Page {
                        ) );
                        $revisionId = $revision->insertOn( $dbw );
 
+                       # Bug 37225: use accessor to get the text as Revision may trim it
+                       $text = $revision->getText(); // sanity; EditPage should trim already
+
                        # Update the page record with revision data
                        $this->updateRevisionOn( $dbw, $revision, 0 );
 
@@ -2105,7 +2091,10 @@ class WikiPage extends Page {
        }
 
        /**
-        * Same as doDeleteArticleReal(), but returns more detailed success/failure status
+        * Same as doDeleteArticleReal(), but returns a simple boolean. This is kept around for
+        * backwards compatibility, if you care about error reporting you should use
+        * doDeleteArticleReal() instead.
+        *
         * Deletes the article with database consistency, writes logs, purges caches
         *
         * @param $reason string delete reason for deletion log
@@ -2123,8 +2112,8 @@ class WikiPage extends Page {
        public function doDeleteArticle(
                $reason, $suppress = false, $id = 0, $commit = true, &$error = '', User $user = null
        ) {
-               return $this->doDeleteArticleReal( $reason, $suppress, $id, $commit, $error, $user )
-                       == WikiPage::DELETE_SUCCESS;
+               $status = $this->doDeleteArticleReal( $reason, $suppress, $id, $commit, $error, $user );
+               return $status->isGood();
        }
 
        /**
@@ -2141,7 +2130,9 @@ class WikiPage extends Page {
         * @param $commit boolean defaults to true, triggers transaction end
         * @param &$error Array of errors to append to
         * @param $user User The deleting user
-        * @return int: One of WikiPage::DELETE_* constants
+        * @return Status: Status object; if successful, $status->value is the log_id of the
+        *                 deletion log entry. If the page couldn't be deleted because it wasn't
+        *                 found, $status is a non-fatal 'cannotdelete' error
         */
        public function doDeleteArticleReal(
                $reason, $suppress = false, $id = 0, $commit = true, &$error = '', User $user = null
@@ -2150,20 +2141,28 @@ class WikiPage extends Page {
 
                wfDebug( __METHOD__ . "\n" );
 
+               $status = Status::newGood();
+
                if ( $this->mTitle->getDBkey() === '' ) {
-                       return WikiPage::DELETE_NO_PAGE;
+                       $status->error( 'cannotdelete', wfEscapeWikiText( $this->getTitle()->getPrefixedText() ) );
+                       return $status;
                }
 
                $user = is_null( $user ) ? $wgUser : $user;
-               if ( ! wfRunHooks( 'ArticleDelete', array( &$this, &$user, &$reason, &$error ) ) ) {
-                       return WikiPage::DELETE_HOOK_ABORTED;
+               if ( ! wfRunHooks( 'ArticleDelete', array( &$this, &$user, &$reason, &$error, &$status ) ) ) {
+                       if ( $status->isOK() ) {
+                               // Hook aborted but didn't set a fatal status
+                               $status->fatal( 'delete-hook-aborted' );
+                       }
+                       return $status;
                }
 
                if ( $id == 0 ) {
                        $this->loadPageData( 'forupdate' );
                        $id = $this->getID();
                        if ( $id == 0 ) {
-                               return WikiPage::DELETE_NO_PAGE;
+                               $status->error( 'cannotdelete', wfEscapeWikiText( $this->getTitle()->getPrefixedText() ) );
+                               return $status;
                        }
                }
 
@@ -2221,7 +2220,8 @@ class WikiPage extends Page {
 
                if ( !$ok ) {
                        $dbw->rollback( __METHOD__ );
-                       return WikiPage::DELETE_NO_REVISIONS;
+                       $status->error( 'cannotdelete', wfEscapeWikiText( $this->getTitle()->getPrefixedText() ) );
+                       return $status;
                }
 
                $this->doDeleteUpdates( $id );
@@ -2241,7 +2241,8 @@ class WikiPage extends Page {
                }
 
                wfRunHooks( 'ArticleDeleteComplete', array( &$this, &$user, $reason, $id ) );
-               return WikiPage::DELETE_SUCCESS;
+               $status->value = $logid;
+               return $status;
        }
 
        /**
index 50d210f..7393315 100644 (file)
@@ -418,34 +418,11 @@ class HistoryPager extends ReverseChronologicalPager {
                                $batch->add( NS_USER_TALK, $row->rev_user_text );
                        }
                }
-               $this->parentLens = $this->getParentLengths( $revIds );
+               $this->parentLens = Revision::getParentLengths( $this->mDb, $revIds );
                $batch->execute();
                $this->mResult->seek( 0 );
        }
 
-       /**
-        * Do a batched query to get the parent revision lengths
-        * @param $revIds array
-        * @return array
-        * @TODO: stolen from Contributions, refactor
-        */
-       private function getParentLengths( array $revIds ) {
-               $revLens = array();
-               if ( !$revIds ) {
-                       return $revLens; // empty
-               }
-               wfProfileIn( __METHOD__ );
-               $res = $this->mDb->select( 'revision',
-                       array( 'rev_id', 'rev_len' ),
-                       array( 'rev_id' => $revIds ),
-                       __METHOD__ );
-               foreach ( $res as $row ) {
-                       $revLens[$row->rev_id] = $row->rev_len;
-               }
-               wfProfileOut( __METHOD__ );
-               return $revLens;
-       }
-
        /**
         * Creates begin of history list with a submit button
         *
@@ -635,6 +612,7 @@ class HistoryPager extends ReverseChronologicalPager {
 
                if ( $notificationtimestamp && ( $row->rev_timestamp >= $notificationtimestamp ) ) {
                        $s2 .= ' <span class="updatedmarker">' .  $this->msg( 'updatedmarker' )->escaped() . '</span>';
+                       $classes[] = 'mw-history-line-updated';
                }
 
                $tools = array();
@@ -646,7 +624,7 @@ class HistoryPager extends ReverseChronologicalPager {
                        if ( $latest && !count( $this->getTitle()->getUserPermissionsErrors( 'rollback', $this->getUser() ) ) ) {
                                $this->preventClickjacking();
                                $tools[] = '<span class="mw-rollback-link">' .
-                                       Linker::buildRollbackLink( $rev ) . '</span>';
+                                       Linker::buildRollbackLink( $rev, $this->getContext() ) . '</span>';
                        }
 
                        if ( !$rev->isDeleted( Revision::DELETED_TEXT )
index f07e493..14da2fc 100644 (file)
@@ -44,6 +44,6 @@ class RevisiondeleteAction extends FormlessAction {
        public function show() {
                $special = SpecialPageFactory::getPage( 'Revisiondelete' );
                $special->setContext( $this->getContext() );
-               $special->execute( '' );
+               $special->run( '' );
        }
 }
index 6a9be24..a6e3363 100644 (file)
@@ -825,7 +825,7 @@ abstract class ApiBase extends ContextSource {
         */
        protected function getWatchlistValue ( $watchlist, $titleObj, $userOption = null ) {
 
-               $userWatching = $titleObj->userIsWatching();
+               $userWatching = $this->getUser()->isWatched( $titleObj );
 
                switch ( $watchlist ) {
                        case 'watch':
@@ -1307,6 +1307,8 @@ abstract class ApiBase extends ContextSource {
                'specialpage-cantexecute' => array( 'code' => 'specialpage-cantexecute', 'info' => "You don't have permission to view the results of this special page" ),
                'invalidoldimage' => array( 'code' => 'invalidoldimage', 'info' => 'The oldimage parameter has invalid format' ),
                'nodeleteablefile' => array( 'code' => 'nodeleteablefile', 'info' => 'No such old version of the file' ),
+               'fileexists-forbidden' => array( 'code' => 'fileexists-forbidden', 'info' => 'A file with name "$1" already exists, and cannot be overwritten.' ),
+               'fileexists-shared-forbidden' => array( 'code' => 'fileexists-shared-forbidden', 'info' => 'A file with name "$1" already exists in the shared file repository, and cannot be overwritten.' ),
 
                // ApiEditPage messages
                'noimageredirect-anon' => array( 'code' => 'noimageredirect-anon', 'info' => "Anonymous users can't create image redirects" ),
index 1927490..91406af 100644 (file)
@@ -56,13 +56,14 @@ class ApiDelete extends ApiBase {
                $user = $this->getUser();
 
                if ( $titleObj->getNamespace() == NS_FILE ) {
-                       $retval = self::deleteFile( $pageObj, $user, $params['token'], $params['oldimage'], $reason, false );
+                       $status = self::deleteFile( $pageObj, $user, $params['token'], $params['oldimage'], $reason, false );
                } else {
-                       $retval = self::delete( $pageObj, $user, $params['token'], $reason );
+                       $status = self::delete( $pageObj, $user, $params['token'], $reason );
                }
 
-               if ( count( $retval ) ) {
-                       $this->dieUsageMsg( reset( $retval ) ); // We don't care about multiple errors, just report one of them
+               if ( !$status->isGood() ) {
+                       $errors = $this->getErrorsArray();
+                       $this->dieUsageMsg( $errors[0] ); // We don't care about multiple errors, just report one of them
                }
 
                // Deprecated parameters
@@ -75,7 +76,11 @@ class ApiDelete extends ApiBase {
                }
                $this->setWatch( $watch, $titleObj, 'watchdeletion' );
 
-               $r = array( 'title' => $titleObj->getPrefixedText(), 'reason' => $reason );
+               $r = array(
+                       'title' => $titleObj->getPrefixedText(),
+                       'reason' => $reason,
+                       'logid' => $status->value
+               );
                $this->getResult()->addValue( null, $this->getModuleName(), $r );
        }
 
@@ -97,7 +102,7 @@ class ApiDelete extends ApiBase {
         * @param $user User doing the action
         * @param $token String: delete token (same as edit token)
         * @param $reason String: reason for the deletion. Autogenerated if NULL
-        * @return Title::getUserPermissionsErrors()-like array
+        * @return Status
         */
        public static function delete( Page $page, User $user, $token, &$reason = null ) {
                $title = $page->getTitle();
@@ -119,11 +124,7 @@ class ApiDelete extends ApiBase {
 
                $error = '';
                // Luckily, Article.php provides a reusable delete function that does the hard work for us
-               if ( $page->doDeleteArticle( $reason, false, 0, true, $error ) ) {
-                       return array();
-               } else {
-                       return array( array( 'cannotdelete', $title->getPrefixedText() ) );
-               }
+               return $page->doDeleteArticleReal( $reason, false, 0, true, $error );
        }
 
        /**
@@ -133,7 +134,7 @@ class ApiDelete extends ApiBase {
         * @param $oldimage
         * @param $reason
         * @param $suppress bool
-        * @return array|Title
+        * @return Status
         */
        public static function deleteFile( Page $page, User $user, $token, $oldimage, &$reason = null, $suppress = false ) {
                $title = $page->getTitle();
@@ -162,12 +163,7 @@ class ApiDelete extends ApiBase {
                if ( is_null( $reason ) ) { // Log and RC don't like null reasons
                        $reason = '';
                }
-               $status = FileDeleteForm::doDelete( $title, $file, $oldimage, $reason, $suppress );
-               if ( !$status->isGood() ) {
-                       return array( array( 'cannotdelete', $title->getPrefixedText() ) );
-               }
-
-               return array();
+               return FileDeleteForm::doDelete( $title, $file, $oldimage, $reason, $suppress );
        }
 
        public function mustBePosted() {
index 30e9fb6..172a77b 100644 (file)
@@ -354,6 +354,12 @@ class ApiMain extends ApiBase {
         * have been accumulated, and replace it with an error message and a help screen.
         */
        protected function executeActionWithErrorHandling() {
+               // Verify the CORS header before executing the action
+               if ( !$this->handleCORS() ) {
+                       // handleCORS() has sent a 403, abort
+                       return;
+               }
+
                // In case an error occurs during data output,
                // clear the output buffer and print just the error information
                ob_start();
@@ -402,9 +408,94 @@ class ApiMain extends ApiBase {
                ob_end_flush();
        }
 
+       /**
+        * Check the &origin= query parameter against the Origin: HTTP header and respond appropriately.
+        *
+        * If no origin parameter is present, nothing happens.
+        * If an origin parameter is present but doesn't match the Origin header, a 403 status code
+        * is set and false is returned.
+        * If the parameter and the header do match, the header is checked against $wgCrossSiteAJAXdomains
+        * and $wgCrossSiteAJAXdomainExceptions, and if the origin qualifies, the appropriate CORS
+        * headers are set.
+        *
+        * @return bool False if the caller should abort (403 case), true otherwise (all other cases)
+        */
+       protected function handleCORS() {
+               global $wgCrossSiteAJAXdomains, $wgCrossSiteAJAXdomainExceptions;
+               $response = $this->getRequest()->response();
+               $originParam = $this->getParameter( 'origin' ); // defaults to null
+               if ( $originParam === null ) {
+                       // No origin parameter, nothing to do
+                       return true;
+               }
+               // Origin: header is a space-separated list of origins, check all of them
+               $originHeader = isset( $_SERVER['HTTP_ORIGIN'] ) ? $_SERVER['HTTP_ORIGIN'] : '';
+               $origins = explode( ' ', $originHeader );
+               if ( !in_array( $originParam, $origins ) ) {
+                       // origin parameter set but incorrect
+                       // Send a 403 response
+                       $message = HttpStatus::getMessage( 403 );
+                       $response->header( "HTTP/1.1 403 $message", true, 403 );
+                       $response->header( 'Cache-Control: no-cache' );
+                       echo "'origin' parameter does not match Origin header\n";
+                       return false;
+               }
+               if ( self::matchOrigin( $originParam, $wgCrossSiteAJAXdomains, $wgCrossSiteAJAXdomainExceptions ) ) {
+                       $response->header( "Access-Control-Allow-Origin: $originParam" );
+                       $response->header( 'Access-Control-Allow-Credentials: true' );
+                       $this->getOutput()->addVaryHeader( 'Origin' );
+               }
+               return true;
+       }
+
+       /**
+        * Attempt to match an Origin header against a set of rules and a set of exceptions
+        * @param $value string Origin header
+        * @param $rules array Set of wildcard rules
+        * @param $exceptions array Set of wildcard rules
+        * @return bool True if $value matches a rule in $rules and doesn't match any rules in $exceptions, false otherwise
+        */
+       protected static function matchOrigin( $value, $rules, $exceptions ) {
+               foreach ( $rules as $rule ) {
+                       if ( preg_match( self::wildcardToRegex( $rule ), $value ) ) {
+                               // Rule matches, check exceptions
+                               foreach ( $exceptions as $exc ) {
+                                       if ( preg_match( self::wildcardToRegex( $exc ), $value ) ) {
+                                               return false;
+                                       }
+                               }
+                               return true;
+                       }
+               }
+               return false;
+       }
+
+       /**
+        * Helper function to convert wildcard string into a regex
+        * '*' => '.*?'
+        * '?' => '.'
+        *
+        * @param $wildcard string String with wildcards
+        * @return string Regular expression
+        */
+       protected static function wildcardToRegex( $wildcard ) {
+               $wildcard = preg_quote( $wildcard, '/' );
+               $wildcard = str_replace(
+                       array( '\*', '\?' ),
+                       array( '.*?', '.' ),
+                       $wildcard
+               );
+               return "/https?:\/\/$wildcard/";
+       }
+
        protected function sendCacheHeaders() {
                global $wgUseXVO, $wgVaryOnXFP;
                $response = $this->getRequest()->response();
+               $out = $this->getOutput();
+
+               if ( $wgVaryOnXFP ) {
+                       $out->addVaryHeader( 'X-Forwarded-Proto' );
+               }
 
                if ( $this->mCacheMode == 'private' ) {
                        $response->header( 'Cache-Control: private' );
@@ -412,13 +503,9 @@ class ApiMain extends ApiBase {
                }
 
                if ( $this->mCacheMode == 'anon-public-user-private' ) {
-                       $xfp = $wgVaryOnXFP ? ', X-Forwarded-Proto' : '';
-                       $response->header( 'Vary: Accept-Encoding, Cookie' . $xfp );
+                       $out->addVaryHeader( 'Cookie' );
+                       $response->header( $out->getVaryHeader() );
                        if ( $wgUseXVO ) {
-                               $out = $this->getOutput();
-                               if ( $wgVaryOnXFP ) {
-                                       $out->addVaryHeader( 'X-Forwarded-Proto' );
-                               }
                                $response->header( $out->getXVO() );
                                if ( $out->haveCacheVaryCookies() ) {
                                        // Logged in, mark this request private
@@ -435,12 +522,9 @@ class ApiMain extends ApiBase {
                }
 
                // Send public headers
-               if ( $wgVaryOnXFP ) {
-                       $response->header( 'Vary: Accept-Encoding, X-Forwarded-Proto' );
-                       if ( $wgUseXVO ) {
-                               // Bleeeeegh. Our header setting system sucks
-                               $response->header( 'X-Vary-Options: Accept-Encoding;list-contains=gzip, X-Forwarded-Proto' );
-                       }
+               $response->header( $out->getVaryHeader() );
+               if ( $wgUseXVO ) {
+                       $response->header( $out->getXVO() );
                }
 
                // If nobody called setCacheMaxAge(), use the (s)maxage parameters
@@ -784,6 +868,7 @@ class ApiMain extends ApiBase {
                        ),
                        'requestid' => null,
                        'servedby'  => false,
+                       'origin' => null,
                );
        }
 
@@ -809,6 +894,12 @@ class ApiMain extends ApiBase {
                        'maxage' => 'Set the max-age header to this many seconds. Errors are never cached',
                        'requestid' => 'Request ID to distinguish requests. This will just be output back to you',
                        'servedby' => 'Include the hostname that served the request in the results. Unconditionally shown on error',
+                       'origin' => array(
+                               'When accessing the API using a cross-domain AJAX request (CORS), set this to the originating domain.',
+                               'This must match one of the origins in the Origin: header exactly, so it has to be set to something like http://en.wikipedia.org or https://meta.wikimedia.org .',
+                               'If this parameter does not match the Origin: header, a 403 response will be returned.',
+                               'If this parameter matches the Origin: header and the origin is whitelisted, an Access-Control-Allow-Origin header will be set.',
+                       ),
                );
        }
 
index e27068d..d9acba4 100644 (file)
@@ -88,8 +88,7 @@ class ApiPurge extends ApiBase {
                                if ( !$user->pingLimiter() ) {
                                        global $wgParser, $wgEnableParserCache;
 
-                                       $popts = ParserOptions::newFromContext( $this->getContext() );
-                                       $popts->setTidy( true );
+                                       $popts = $page->makeParserOptions( 'canonical' );
                                        $p_result = $wgParser->parse( $page->getRawText(), $title, $popts,
                                                true, true, $page->getLatest() );
 
index ce5aac2..4ab4d72 100644 (file)
@@ -165,7 +165,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase {
                                        break;
                                }
                        } else {
-                               $titles[] = Title::makeTitle( NS_IMAGE, $row->img_name );
+                               $titles[] = Title::makeTitle( NS_FILE, $row->img_name );
                        }
                }
 
index 6b8fe57..70b6656 100644 (file)
@@ -80,12 +80,13 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
                        if ( count( $continueArr ) != 2 ) {
                                $this->dieUsage( 'Invalid continue parameter', 'badcontinue' );
                        }
+                       $op = $params['dir'] == 'descending' ? '<' : '>';
                        $continueTitle = $db->addQuotes( $this->titleToKey( $continueArr[0] ) );
                        $continueFrom = intval( $continueArr[1] );
                        $this->addWhere(
-                               "pl_title > $continueTitle OR " .
+                               "pl_title $op $continueTitle OR " .
                                "(pl_title = $continueTitle AND " .
-                               "pl_from > $continueFrom)"
+                               "pl_from $op= $continueFrom)"
                        );
                }
 
@@ -104,12 +105,13 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
                $limit = $params['limit'];
                $this->addOption( 'LIMIT', $limit + 1 );
 
+               $sort = ( $params['dir'] == 'descending' ? ' DESC' : '' );
+               $orderBy = array();
+               $orderBy[] = 'pl_title' . $sort;
                if ( !$params['unique'] ) {
-                       $this->addOption( 'ORDER BY', array(
-                               'pl_title',
-                               'pl_from'
-                       ));
+                       $orderBy[] = 'pl_from' . $sort;
                }
+               $this->addOption( 'ORDER BY', $orderBy );
 
                $res = $this->select( __METHOD__ );
 
@@ -183,7 +185,14 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_MIN => 1,
                                ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
                                ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
-                       )
+                       ),
+                       'dir' => array(
+                               ApiBase::PARAM_DFLT => 'ascending',
+                               ApiBase::PARAM_TYPE => array(
+                                       'ascending',
+                                       'descending'
+                               )
+                       ),
                );
        }
 
@@ -202,6 +211,7 @@ class ApiQueryAllLinks extends ApiQueryGeneratorBase {
                        'namespace' => 'The namespace to enumerate',
                        'limit' => 'How many total links to return',
                        'continue' => 'When more results are available, use this to continue',
+                       'dir' => 'The direction in which to list',
                );
        }
 
index fcb9c4b..7491bbb 100644 (file)
@@ -40,7 +40,7 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
        private $rootTitle;
 
        private $params, $contID, $redirID, $redirect;
-       private $bl_ns, $bl_from, $bl_table, $bl_code, $bl_title, $bl_sort, $bl_fields, $hasNS;
+       private $bl_ns, $bl_from, $bl_table, $bl_code, $bl_title, $bl_fields, $hasNS;
 
        /**
         * Maps ns and title to pageid
@@ -91,14 +91,12 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                $this->hasNS = $moduleName !== 'imageusage';
                if ( $this->hasNS ) {
                        $this->bl_title = $prefix . '_title';
-                       $this->bl_sort = "{$this->bl_ns}, {$this->bl_title}, {$this->bl_from}";
                        $this->bl_fields = array(
                                $this->bl_ns,
                                $this->bl_title
                        );
                } else {
                        $this->bl_title = $prefix . '_to';
-                       $this->bl_sort = "{$this->bl_title}, {$this->bl_from}";
                        $this->bl_fields = array(
                                $this->bl_title
                        );
@@ -144,7 +142,8 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                $this->addWhereFld( 'page_namespace', $this->params['namespace'] );
 
                if ( !is_null( $this->contID ) ) {
-                       $this->addWhere( "{$this->bl_from}>={$this->contID}" );
+                       $op = $this->params['dir'] == 'descending' ? '<' : '>';
+                       $this->addWhere( "{$this->bl_from}$op={$this->contID}" );
                }
 
                if ( $this->params['filterredir'] == 'redirects' ) {
@@ -155,7 +154,8 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                }
 
                $this->addOption( 'LIMIT', $this->params['limit'] + 1 );
-               $this->addOption( 'ORDER BY', $this->bl_from );
+               $sort = ( $this->params['dir'] == 'descending' ? ' DESC' : '' );
+               $this->addOption( 'ORDER BY', $this->bl_from . $sort );
                $this->addOption( 'STRAIGHT_JOIN' );
        }
 
@@ -186,28 +186,35 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
 
                // We can't use LinkBatch here because $this->hasNS may be false
                $titleWhere = array();
+               $allRedirNs = array();
+               $allRedirDBkey = array();
                foreach ( $this->redirTitles as $t ) {
-                       $titleWhere[] = "{$this->bl_title} = " . $db->addQuotes( $t->getDBkey() ) .
-                                       ( $this->hasNS ? " AND {$this->bl_ns} = {$t->getNamespace()}" : '' );
+                       $redirNs = $t->getNamespace();
+                       $redirDBkey = $t->getDBkey();
+                       $titleWhere[] = "{$this->bl_title} = " . $db->addQuotes( $redirDBkey ) .
+                                       ( $this->hasNS ? " AND {$this->bl_ns} = {$redirNs}" : '' );
+                       $allRedirNs[] = $redirNs;
+                       $allRedirDBkey[] = $redirDBkey;
                }
                $this->addWhere( $db->makeList( $titleWhere, LIST_OR ) );
                $this->addWhereFld( 'page_namespace', $this->params['namespace'] );
 
                if ( !is_null( $this->redirID ) ) {
+                       $op = $this->params['dir'] == 'descending' ? '<' : '>';
                        $first = $this->redirTitles[0];
                        $title = $db->addQuotes( $first->getDBkey() );
                        $ns = $first->getNamespace();
                        $from = $this->redirID;
                        if ( $this->hasNS ) {
-                               $this->addWhere( "{$this->bl_ns} > $ns OR " .
+                               $this->addWhere( "{$this->bl_ns} $op $ns OR " .
                                                "({$this->bl_ns} = $ns AND " .
-                                               "({$this->bl_title} > $title OR " .
+                                               "({$this->bl_title} $op $title OR " .
                                                "({$this->bl_title} = $title AND " .
-                                               "{$this->bl_from} >= $from)))" );
+                                               "{$this->bl_from} $op= $from)))" );
                        } else {
-                               $this->addWhere( "{$this->bl_title} > $title OR " .
+                               $this->addWhere( "{$this->bl_title} $op $title OR " .
                                                "({$this->bl_title} = $title AND " .
-                                               "{$this->bl_from} >= $from)" );
+                                               "{$this->bl_from} $op= $from)" );
                        }
                }
                if ( $this->params['filterredir'] == 'redirects' ) {
@@ -217,7 +224,17 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                }
 
                $this->addOption( 'LIMIT', $this->params['limit'] + 1 );
-               $this->addOption( 'ORDER BY', $this->bl_sort );
+               $orderBy = array();
+               $sort = ( $this->params['dir'] == 'descending' ? ' DESC' : '' );
+               // Don't order by namespace/title if it's constant in the WHERE clause
+               if( $this->hasNS && count( array_unique( $allRedirNs ) ) != 1 ) {
+                       $orderBy[] = $this->bl_ns . $sort;
+               }
+               if( count( array_unique( $allRedirDBkey ) ) != 1 ) {
+                       $orderBy[] = $this->bl_title . $sort;
+               }
+               $orderBy[] = $this->bl_from . $sort;
+               $this->addOption( 'ORDER BY', $orderBy );
                $this->addOption( 'USE INDEX', array( 'page' => 'PRIMARY' ) );
        }
 
@@ -277,7 +294,7 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                                        if ( $this->hasNS ) {
                                                $parentID = $this->pageMap[$row-> { $this->bl_ns } ][$row-> { $this->bl_title } ];
                                        } else {
-                                               $parentID = $this->pageMap[NS_IMAGE][$row-> { $this->bl_title } ];
+                                               $parentID = $this->pageMap[NS_FILE][$row-> { $this->bl_title } ];
                                        }
                                        $this->continueStr = $this->getContinueRedirStr( $parentID, $row->page_id );
                                        break;
@@ -438,6 +455,13 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_ISMULTI => true,
                                ApiBase::PARAM_TYPE => 'namespace'
                        ),
+                       'dir' => array(\r
+                               ApiBase::PARAM_DFLT => 'ascending',\r
+                               ApiBase::PARAM_TYPE => array(\r
+                                       'ascending',\r
+                                       'descending'\r
+                               )\r
+                       ),
                        'filterredir' => array(
                                ApiBase::PARAM_DFLT => 'all',
                                ApiBase::PARAM_TYPE => array(
@@ -467,6 +491,7 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
                        'pageid' => "Pageid to search. Cannot be used together with {$this->bl_code}title",
                        'continue' => 'When more results are available, use this to continue',
                        'namespace' => 'The namespace to enumerate',
+                       'dir' => 'The direction in which to list',
                );
                if ( $this->getModuleName() != 'embeddedin' ) {
                        return array_merge( $retval, array(
index 06f649d..df5e303 100644 (file)
@@ -180,9 +180,10 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                        if ( $params['unique'] ) {
                                $this->addOption( 'GROUP BY', 'ar_title' );
                        } else {
+                               $sort = ( $dir == 'newer' ? '' : ' DESC' );
                                $this->addOption( 'ORDER BY', array(
-                                       'ar_title',
-                                       'ar_timestamp'
+                                       'ar_title' . $sort,
+                                       'ar_timestamp' . $sort
                                ));
                        }
                } else {
index d2837e9..37f347d 100644 (file)
@@ -62,15 +62,16 @@ class ApiQueryIWBacklinks extends ApiQueryGeneratorBase {
                        }
 
                        $db = $this->getDB();
+                       $op = $params['dir'] == 'descending' ? '<' : '>';
                        $prefix = $db->addQuotes( $cont[0] );
                        $title = $db->addQuotes( $this->titleToKey( $cont[1] ) );
                        $from = intval( $cont[2] );
                        $this->addWhere(
-                               "iwl_prefix > $prefix OR " .
+                               "iwl_prefix $op $prefix OR " .
                                "(iwl_prefix = $prefix AND " .
-                               "(iwl_title > $title OR " .
+                               "(iwl_title $op $title OR " .
                                "(iwl_title = $title AND " .
-                               "iwl_from >= $from)))"
+                               "iwl_from $op= $from)))"
                        );
                }
 
@@ -84,22 +85,23 @@ class ApiQueryIWBacklinks extends ApiQueryGeneratorBase {
                $this->addFields( array( 'page_id', 'page_title', 'page_namespace', 'page_is_redirect',
                        'iwl_from', 'iwl_prefix', 'iwl_title' ) );
 
+               $sort = ( $params['dir'] == 'descending' ? ' DESC' : '' );
                if ( isset( $params['prefix'] ) ) {
                        $this->addWhereFld( 'iwl_prefix', $params['prefix'] );
                        if ( isset( $params['title'] ) ) {
                                $this->addWhereFld( 'iwl_title', $params['title'] );
-                               $this->addOption( 'ORDER BY', 'iwl_from' );
+                               $this->addOption( 'ORDER BY', 'iwl_from' . $sort );
                        } else {
                                $this->addOption( 'ORDER BY', array(
-                                       'iwl_title',
-                                       'iwl_from'
+                                       'iwl_title' . $sort,
+                                       'iwl_from' . $sort
                                ));
                        }
                } else {
                        $this->addOption( 'ORDER BY', array(
-                               'iwl_prefix',
-                               'iwl_title',
-                               'iwl_from'
+                               'iwl_prefix' . $sort,
+                               'iwl_title' . $sort,
+                               'iwl_from' . $sort
                        ));
                }
 
@@ -178,6 +180,13 @@ class ApiQueryIWBacklinks extends ApiQueryGeneratorBase {
                                        'iwtitle',
                                ),
                        ),
+                       'dir' => array(
+                               ApiBase::PARAM_DFLT => 'ascending',
+                               ApiBase::PARAM_TYPE => array(
+                                       'ascending',
+                                       'descending'
+                               )
+                       ),
                );
        }
 
@@ -192,6 +201,7 @@ class ApiQueryIWBacklinks extends ApiQueryGeneratorBase {
                                ' iwtitle        - Adds the title of the interwiki',
                        ),
                        'limit' => 'How many total pages to return',
+                       'dir' => 'The direction in which to list',
                );
        }
 
index 969293b..4d2d04b 100644 (file)
@@ -81,14 +81,14 @@ class ApiQueryImageInfo extends ApiQueryBase {
                                }
 
                                $start = $skip ? $fromTimestamp : $params['start'];
-                               $pageId = $pageIds[NS_IMAGE][ $img->getOriginalTitle()->getDBkey() ];
+                               $pageId = $pageIds[NS_FILE][ $img->getOriginalTitle()->getDBkey() ];
 
                                $fit = $result->addValue(
                                        array( 'query', 'pages', intval( $pageId ) ),
                                        'imagerepository', $img->getRepoName()
                                );
                                if ( !$fit ) {
-                                       if ( count( $pageIds[NS_IMAGE] ) == 1 ) {
+                                       if ( count( $pageIds[NS_FILE] ) == 1 ) {
                                                // The user is screwed. imageinfo can't be solely
                                                // responsible for exceeding the limit in this case,
                                                // so set a query-continue that just returns the same
@@ -119,7 +119,7 @@ class ApiQueryImageInfo extends ApiQueryBase {
                                                self::getInfo( $img, $prop, $result,
                                                        $finalThumbParams, $params['metadataversion'] ) );
                                        if ( !$fit ) {
-                                               if ( count( $pageIds[NS_IMAGE] ) == 1 ) {
+                                               if ( count( $pageIds[NS_FILE] ) == 1 ) {
                                                        // See the 'the user is screwed' comment above
                                                        $this->setContinueEnumParameter( 'start',
                                                                wfTimestamp( TS_ISO_8601, $img->getTimestamp() ) );
@@ -149,7 +149,7 @@ class ApiQueryImageInfo extends ApiQueryBase {
                                                self::getInfo( $oldie, $prop, $result,
                                                        $finalThumbParams, $params['metadataversion'] ) );
                                        if ( !$fit ) {
-                                               if ( count( $pageIds[NS_IMAGE] ) == 1 ) {
+                                               if ( count( $pageIds[NS_FILE] ) == 1 ) {
                                                        $this->setContinueEnumParameter( 'start',
                                                                wfTimestamp( TS_ISO_8601, $oldie->getTimestamp() ) );
                                                } else {
index f423719..c7639ee 100644 (file)
@@ -62,15 +62,16 @@ class ApiQueryLangBacklinks extends ApiQueryGeneratorBase {
                        }
 
                        $db = $this->getDB();
+                       $op = $params['dir'] == 'descending' ? '<' : '>';
                        $prefix = $db->addQuotes( $cont[0] );
                        $title = $db->addQuotes( $this->titleToKey( $cont[1] ) );
                        $from = intval( $cont[2] );
                        $this->addWhere(
-                               "ll_lang > $prefix OR " .
+                               "ll_lang $op $prefix OR " .
                                "(ll_lang = $prefix AND " .
-                               "(ll_title > $title OR " .
+                               "(ll_title $op $title OR " .
                                "(ll_title = $title AND " .
-                               "ll_from >= $from)))"
+                               "ll_from $op= $from)))"
                        );
                }
 
@@ -84,22 +85,23 @@ class ApiQueryLangBacklinks extends ApiQueryGeneratorBase {
                $this->addFields( array( 'page_id', 'page_title', 'page_namespace', 'page_is_redirect',
                        'll_from', 'll_lang', 'll_title' ) );
 
+               $sort = ( $params['dir'] == 'descending' ? ' DESC' : '' );
                if ( isset( $params['lang'] ) ) {
                        $this->addWhereFld( 'll_lang', $params['lang'] );
                        if ( isset( $params['title'] ) ) {
                                $this->addWhereFld( 'll_title', $params['title'] );
-                               $this->addOption( 'ORDER BY', 'll_from' );
+                               $this->addOption( 'ORDER BY', 'll_from' . $sort );
                        } else {
                                $this->addOption( 'ORDER BY', array(
-                                       'll_title',
-                                       'll_from'
+                                       'll_title' . $sort,
+                                       'll_from' . $sort
                                ));
                        }
                } else {
                        $this->addOption( 'ORDER BY', array(
-                               'll_lang',
-                               'll_title',
-                               'll_from'
+                               'll_lang' . $sort,
+                               'll_title' . $sort,
+                               'll_from' . $sort
                        ));
                }
 
@@ -178,6 +180,13 @@ class ApiQueryLangBacklinks extends ApiQueryGeneratorBase {
                                        'lltitle',
                                ),
                        ),
+                       'dir' => array(
+                               ApiBase::PARAM_DFLT => 'ascending',
+                               ApiBase::PARAM_TYPE => array(
+                                       'ascending',
+                                       'descending'
+                               )
+                       ),
                );
        }
 
@@ -192,6 +201,7 @@ class ApiQueryLangBacklinks extends ApiQueryGeneratorBase {
                                ' lltitle        - Adds the title of the language ink',
                        ),
                        'limit' => 'How many total pages to return',
+                       'dir' => 'The direction in which to list',
                );
        }
 
index e7102e0..511cbe4 100644 (file)
@@ -93,6 +93,9 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                                case 'showhooks':
                                        $fit = $this->appendSubscribedHooks( $p );
                                        break;
+                               case 'variables':
+                                       $fit = $this->appendVariables( $p );
+                                       break;
                                default:
                                        ApiBase::dieDebug( __METHOD__, "Unknown prop=$p" );
                        }
@@ -121,9 +124,14 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                $data['dbtype'] = $GLOBALS['wgDBtype'];
                $data['dbversion'] = $this->getDB()->getServerVersion();
 
-               $svn = SpecialVersion::getSvnRevision( $GLOBALS['IP'] );
-               if ( $svn ) {
-                       $data['rev'] = $svn;
+               $git = SpecialVersion::getGitHeadSha1( $GLOBALS['IP'] );
+               if ( $git ) {
+                       $data['git-hash'] = $git;
+               } else {
+                       $svn = SpecialVersion::getSvnRevision( $GLOBALS['IP'] );
+                       if ( $svn ) {
+                               $data['rev'] = $svn;
+                       }
                }
 
                // 'case-insensitive' option is reserved for future
@@ -249,8 +257,9 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        protected function appendSpecialPageAliases( $property ) {
                global $wgContLang;
                $data = array();
-               foreach ( $wgContLang->getSpecialPageAliases() as $specialpage => $aliases ) {
-                       $arr = array( 'realname' => $specialpage, 'aliases' => $aliases );
+               $aliases = $wgContLang->getSpecialPageAliases();
+               foreach ( SpecialPageFactory::getList() as $specialpage => $stuff ) {
+                       $arr = array( 'realname' => $specialpage, 'aliases' => $aliases[$specialpage] );
                        $this->getResult()->setIndexedTagName( $arr['aliases'], 'alias' );
                        $data[] = $arr;
                }
@@ -527,6 +536,12 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                return $this->getResult()->addValue( 'query', $property, $hooks );
        }
 
+       public function appendVariables( $property ) {
+               $variables = MagicWord::getVariableIDs();
+               $this->getResult()->setIndexedTagName( $variables, 'v' );
+               return $this->getResult()->addValue( 'query', $property, $variables );
+       }
+
        private function formatParserTags( $item ) {
                return "<{$item}>";
        }
@@ -578,6 +593,7 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                                        'extensiontags',
                                        'functionhooks',
                                        'showhooks',
+                                       'variables',
                                )
                        ),
                        'filteriw' => array(
@@ -613,7 +629,8 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                                ' skins                 - Returns a list of all enabled skins',
                                ' extensiontags         - Returns a list of parser extension tags',
                                ' functionhooks         - Returns a list of parser function hooks',
-                               ' showhooks             - Returns a list of all subscribed hooks (contents of $wgHooks)'
+                               ' showhooks             - Returns a list of all subscribed hooks (contents of $wgHooks)',
+                               ' variables             - Returns a list of variable IDs',
                        ),
                        'filteriw' =>  'Return only local or only nonlocal entries of the interwiki map',
                        'showalldb' => 'List all database servers, not just the one lagging the most',
index db1ee16..aaa4c85 100644 (file)
@@ -687,6 +687,8 @@ class ApiUpload extends ApiBase {
                                array( 'code' => 'stashfailed', 'info' => 'Stashing temporary file failed' ),
                                array( 'code' => 'internal-error', 'info' => 'An internal error occurred' ),
                                array( 'code' => 'asynccopyuploaddisabled', 'info' => 'Asynchronous copy uploads disabled' ),
+                               array( 'fileexists-forbidden' ),
+                               array( 'fileexists-shared-forbidden' ),
                        )
                );
        }
index f9ea135..6bfeed3 100644 (file)
@@ -142,6 +142,8 @@ class HTMLFileCache extends FileCacheBase {
                                wfDebug( __METHOD__ . " uncompressing cache file and sending it\n" );
                                readgzfile( $filename );
                        }
+               } else {
+                       readfile( $filename );
                }
                $context->getOutput()->disable(); // tell $wgOut that output is taken care of
        }
index e8e57cd..423e388 100644 (file)
 class SquidUpdate {
        var $urlArr, $mMaxTitles;
 
-       function __construct( $urlArr = Array(), $maxTitles = false ) {
+       /**
+        * @param $urlArr array
+        * @param $maxTitles bool|int
+        */
+       function __construct( $urlArr = array(), $maxTitles = false ) {
                global $wgMaxSquidPurgeTitles;
                if ( $maxTitles === false ) {
                        $this->mMaxTitles = $wgMaxSquidPurgeTitles;
@@ -121,11 +125,6 @@ class SquidUpdate {
        static function purge( $urlArr ) {
                global $wgSquidServers, $wgHTCPMulticastRouting;
 
-               /*if ( (@$wgSquidServers[0]) == 'echo' ) {
-                       echo implode("<br />\n", $urlArr) . "<br />\n";
-                       return;
-               }*/
-
                if( !$urlArr ) {
                        return;
                }
diff --git a/includes/dao/IDBAccessObject.php b/includes/dao/IDBAccessObject.php
new file mode 100644 (file)
index 0000000..cd5dda9
--- /dev/null
@@ -0,0 +1,32 @@
+<?php
+/**
+ * This file contains database access object related constants.
+ *
+ * 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 Database
+ */
+
+/**
+ * Interface for database access objects
+ */
+interface IDBAccessObject {
+       const LATEST_READ  = 1; // read from the master
+       const FOR_UPDATE   = 2; // lock the rows read
+       const LOCKING_READ = 3; // LATEST_READ | FOR_UPDATE
+       const AVOID_MASTER = 4; // avoiding checking the master
+}
index eacebcf..c846788 100644 (file)
@@ -242,7 +242,11 @@ class FakeResultWrapper extends ResultWrapper {
                        $this->currentRow = false;
                }
                $this->pos++;
-               return $this->currentRow;
+               if ( is_object( $this->currentRow ) ) {
+                       return get_object_vars( $this->currentRow );
+               } else {
+                       return $this->currentRow;
+               }
        }
 
        function seek( $row ) {
index 8fa7220..684f4b4 100644 (file)
@@ -410,7 +410,7 @@ interface IORMTable {
         *
         * @return IORMRow
         */
-       public function newFromDBResult( stdClass $result );
+       public function newRowFromDBResult( stdClass $result );
 
        /**
         * Get a new instance of the class from an array.
@@ -422,7 +422,7 @@ interface IORMTable {
         *
         * @return IORMRow
         */
-       public function newFromArray( array $data, $loadDefaults = false );
+       public function newRow( array $data, $loadDefaults = false );
 
        /**
         * Return the names of the fields.
index f0a6363..090b893 100644 (file)
  */
 interface ORMIterator extends Iterator {
 
-       /**
-        * @see Iterator::current()
-        * @return IORMRow
-        */
-       public function current();
-
 }
\ No newline at end of file
index 1342b02..3f2d803 100644 (file)
@@ -67,7 +67,7 @@ class ORMResult implements ORMIterator {
                if ( $row === false ) {
                        $this->current = false;
                } else {
-                       $this->current = $this->table->newFromDBResult( $row );
+                       $this->current = $this->table->newRowFromDBResult( $row );
                }
        }
 
index b6e2d52..130fdf9 100644 (file)
@@ -117,7 +117,7 @@ abstract class ORMTable implements IORMTable {
                $objects = array();
 
                foreach ( $result as $record ) {
-                       $objects[] = $this->newFromArray( $record );
+                       $objects[] = $this->newRow( $record );
                }
 
                return $objects;
@@ -618,8 +618,9 @@ abstract class ORMTable implements IORMTable {
        }
 
        /**
-        * Get a new instance of the class from a database result.
+        * @see ORMTable::newRowFromFromDBResult
         *
+        * @deprecated use newRowFromFromDBResult instead
         * @since 1.20
         *
         * @param stdClass $result
@@ -627,12 +628,26 @@ abstract class ORMTable implements IORMTable {
         * @return IORMRow
         */
        public function newFromDBResult( stdClass $result ) {
-               return $this->newFromArray( $this->getFieldsFromDBResult( $result ) );
+               return self::newRowFromDBResult( $result );
        }
 
        /**
-        * Get a new instance of the class from an array.
+        * Get a new instance of the class from a database result.
+        *
+        * @since 1.20
+        *
+        * @param stdClass $result
+        *
+        * @return IORMRow
+        */
+       public function newRowFromDBResult( stdClass $result ) {
+               return $this->newRow( $this->getFieldsFromDBResult( $result ) );
+       }
+
+       /**
+        * @see ORMTable::newRow
         *
+        * @deprecated use newRow instead
         * @since 1.20
         *
         * @param array $data
@@ -641,6 +656,20 @@ abstract class ORMTable implements IORMTable {
         * @return IORMRow
         */
        public function newFromArray( array $data, $loadDefaults = false ) {
+               return static::newRow( $data, $loadDefaults );
+       }
+
+       /**
+        * Get a new instance of the class from an array.
+        *
+        * @since 1.20
+        *
+        * @param array $data
+        * @param boolean $loadDefaults
+        *
+        * @return IORMRow
+        */
+       public function newRow( array $data, $loadDefaults = false ) {
                $class = $this->getRowClass();
                return new $class( $this, $data, $loadDefaults );
        }
index e624ec2..08154c7 100644 (file)
@@ -278,7 +278,7 @@ class DifferenceEngine extends ContextSource {
                        if ( $samePage && $this->mNewPage->quickUserCan( 'edit', $user ) ) {
                                if ( $this->mNewRev->isCurrent() && $this->mNewPage->userCan( 'rollback', $user ) ) {
                                        $out->preventClickjacking();
-                                       $rollback = '&#160;&#160;&#160;' . Linker::generateRollback( $this->mNewRev );
+                                       $rollback = '&#160;&#160;&#160;' . Linker::generateRollback( $this->mNewRev, $this->getContext() );
                                }
                                if ( !$this->mOldRev->isDeleted( Revision::DELETED_TEXT ) && !$this->mNewRev->isDeleted( Revision::DELETED_TEXT ) ) {
                                        $undoLink = ' ' . $this->msg( 'parentheses' )->rawParams(
@@ -612,7 +612,7 @@ class DifferenceEngine extends ContextSource {
                        return false;
                }
                // Short-circuit
-               // If mOldRev is false, it means that the 
+               // If mOldRev is false, it means that the
                if ( $this->mOldRev === false || ( $this->mOldRev && $this->mNewRev
                        && $this->mOldRev->getID() == $this->mNewRev->getID() ) )
                {
@@ -1019,7 +1019,7 @@ class DifferenceEngine extends ContextSource {
                // Load the new revision object
                $this->mNewRev = $this->mNewid
                        ? Revision::newFromId( $this->mNewid )
-                       : Revision::newFromTitle( $this->getTitle() );
+                       : Revision::newFromTitle( $this->getTitle(), false, Revision::AVOID_MASTER );
 
                if ( !$this->mNewRev instanceof Revision ) {
                        return false;
index 77b9d04..13de9e6 100644 (file)
@@ -320,11 +320,11 @@ class ForeignAPIRepo extends FileRepo {
                        return false;
                }
 
+
                # @todo FIXME: Delete old thumbs that aren't being used. Maintenance script?
                $backend->prepare( array( 'dir' => dirname( $localFilename ) ) );
-               $op = array( 'op' => 'create', 'dst' => $localFilename, 'content' => $thumb );
-               if( !$backend->doOperation( $op )->isOK() ) {
-                       wfRestoreWarnings();
+               $params = array( 'dst' => $localFilename, 'content' => $thumb );
+               if( !$backend->quickCreate( $params )->isOK() ) {
                        wfDebug( __METHOD__ . " could not write to thumb path '$localFilename'\n" );
                        return $foreignUrl;
                }
index 2beea43..c616e16 100644 (file)
@@ -234,7 +234,8 @@ class LocalRepo extends FileRepo {
                $res = $dbr->select(
                        'image',
                        LocalFile::selectFields(),
-                       array( 'img_sha1' => $hash )
+                       array( 'img_sha1' => $hash ),
+                       __METHOD__
                );
                
                $result = array();
index f2860f3..5fe33ba 100644 (file)
@@ -1600,23 +1600,34 @@ abstract class FileBackendStoreShardListIterator implements Iterator {
        }
 
        /**
-        * @see Iterator::current()
-        * @return string|bool String or false
+        * @see Iterator::key()
+        * @return integer
         */
-       public function current() {
-               if ( is_array( $this->iter ) ) {
-                       return current( $this->iter );
-               } else {
-                       return $this->iter->current();
+       public function key() {
+               return $this->pos;
+       }
+
+       /**
+        * @see Iterator::valid()
+        * @return bool
+        */
+       public function valid() {
+               if ( $this->iter instanceof Iterator ) {
+                       return $this->iter->valid();
+               } elseif ( is_array( $this->iter ) ) {
+                       return ( current( $this->iter ) !== false ); // no paths can have this value
                }
+               return false; // some failure?
        }
 
        /**
-        * @see Iterator::key()
-        * @return integer
+        * @see Iterator::current()
+        * @return string|bool String or false
         */
-       public function key() {
-               return $this->pos;
+       public function current() {
+               return ( $this->iter instanceof Iterator )
+                       ? $this->iter->current()
+                       : current( $this->iter );
        }
 
        /**
@@ -1625,15 +1636,16 @@ abstract class FileBackendStoreShardListIterator implements Iterator {
         */
        public function next() {
                ++$this->pos;
-               if ( is_array( $this->iter ) ) {
-                       next( $this->iter );
-               } else {
-                       $this->iter->next();
-               }
-               // Filter out items that we already listed
-               $this->filterViaNext();
-               // Find the next non-empty shard if no elements are left
-               $this->nextShardIteratorIfNotValid();
+               ( $this->iter instanceof Iterator ) ? $this->iter->next() : next( $this->iter );
+               do {
+                       $continue = false; // keep scanning shards?
+                       $this->filterViaNext(); // filter out duplicates
+                       // Find the next non-empty shard if no elements are left
+                       if ( !$this->valid() ) {
+                               $this->nextShardIteratorIfNotValid();
+                               $continue = $this->valid(); // re-filter unless we ran out of shards
+                       }
+               } while ( $continue );
        }
 
        /**
@@ -1644,41 +1656,32 @@ abstract class FileBackendStoreShardListIterator implements Iterator {
                $this->pos = 0;
                $this->curShard = 0;
                $this->setIteratorFromCurrentShard();
-               // Filter out items that we already listed
-               $this->filterViaNext();
-               // Find the next non-empty shard if this one has no elements
-               $this->nextShardIteratorIfNotValid();
-       }
-
-       /**
-        * @see Iterator::valid()
-        * @return bool
-        */
-       public function valid() {
-               if ( $this->iter === null ) {
-                       return false; // some failure?
-               } elseif ( is_array( $this->iter ) ) {
-                       return ( current( $this->iter ) !== false ); // no paths can have this value
-               } else {
-                       return $this->iter->valid();
-               }
+               do {
+                       $continue = false; // keep scanning shards?
+                       $this->filterViaNext(); // filter out duplicates
+                       // Find the next non-empty shard if no elements are left
+                       if ( !$this->valid() ) {
+                               $this->nextShardIteratorIfNotValid();
+                               $continue = $this->valid(); // re-filter unless we ran out of shards
+                       }
+               } while ( $continue );
        }
 
        /**
         * Filter out duplicate items by advancing to the next ones
         */
        protected function filterViaNext() {
-               while ( $this->iter->valid() ) {
+               while ( $this->valid() ) {
                        $rel = $this->iter->current(); // path relative to given directory
                        $path = $this->params['dir'] . "/{$rel}"; // full storage path
-                       if ( !$this->backend->isSingleShardPathInternal( $path ) ) {
+                       if ( $this->backend->isSingleShardPathInternal( $path ) ) {
+                               break; // path is only on one shard; no issue with duplicates
+                       } elseif ( isset( $this->multiShardPaths[$rel] ) ) {
                                // Don't keep listing paths that are on multiple shards
-                               if ( isset( $this->multiShardPaths[$rel] ) ) {
-                                       $this->iter->next(); // we already listed this path
-                               } else {
-                                       $this->multiShardPaths[$rel] = 1;
-                                       break;
-                               }
+                               ( $this->iter instanceof Iterator ) ? $this->iter->next() : next( $this->iter );
+                       } else {
+                               $this->multiShardPaths[$rel] = 1;
+                               break;
                        }
                }
        }
@@ -1689,10 +1692,7 @@ abstract class FileBackendStoreShardListIterator implements Iterator {
         * If there are none, then it advances to the last container.
         */
        protected function nextShardIteratorIfNotValid() {
-               while ( !$this->valid() ) {
-                       if ( ++$this->curShard >= count( $this->shardSuffixes ) ) {
-                               break; // no more container shards
-                       }
+               while ( !$this->valid() && ++$this->curShard < count( $this->shardSuffixes ) ) {
                        $this->setIteratorFromCurrentShard();
                }
        }
@@ -1701,9 +1701,13 @@ abstract class FileBackendStoreShardListIterator implements Iterator {
         * Set the list iterator to that of the current container shard
         */
        protected function setIteratorFromCurrentShard() {
-               $suffix = $this->shardSuffixes[$this->curShard];
                $this->iter = $this->listFromShard(
-                       "{$this->container}{$suffix}", $this->directory, $this->params );
+                       $this->container . $this->shardSuffixes[$this->curShard],
+                       $this->directory, $this->params );
+               // Start loading results so that current() works
+               if ( $this->iter ) {
+                       ( $this->iter instanceof Iterator ) ? $this->iter->rewind() : reset( $this->iter );
+               }
        }
 
        /**
@@ -1722,9 +1726,7 @@ abstract class FileBackendStoreShardListIterator implements Iterator {
  */
 class FileBackendStoreShardDirIterator extends FileBackendStoreShardListIterator {
        /**
-        * @param string $container
-        * @param string $dir
-        * @param array $params
+        * @see FileBackendStoreShardListIterator::listFromShard()
         * @return Array|null|Traversable
         */
        protected function listFromShard( $container, $dir, array $params ) {
@@ -1737,9 +1739,7 @@ class FileBackendStoreShardDirIterator extends FileBackendStoreShardListIterator
  */
 class FileBackendStoreShardFileIterator extends FileBackendStoreShardListIterator {
        /**
-        * @param string $container
-        * @param string $dir
-        * @param array $params
+        * @see FileBackendStoreShardListIterator::listFromShard()
         * @return Array|null|Traversable
         */
        protected function listFromShard( $container, $dir, array $params ) {
index b830855..8c8c940 100644 (file)
 
 /**
  * Class to handle file lock manager registration
- * 
+ *
  * @ingroup LockManager
  * @author Aaron Schulz
  * @since 1.19
  */
 class LockManagerGroup {
-
        /**
         * @var LockManagerGroup
         */
@@ -61,7 +60,7 @@ class LockManagerGroup {
 
        /**
         * Register lock managers from the global variables
-        * 
+        *
         * @return void
         */
        protected function initFromGlobals() {
@@ -115,4 +114,30 @@ class LockManagerGroup {
                }
                return $this->managers[$name]['instance'];
        }
+
+       /**
+        * Get the default lock manager configured for the site.
+        * Returns NullLockManager if no lock manager could be found.
+        *
+        * @return LockManager
+        */
+       public function getDefault() {
+               return isset( $this->managers['default'] )
+                       ? $this->get( 'default' )
+                       : new NullLockManager( array() );
+       }
+
+       /**
+        * Get the default lock manager configured for the site
+        * or at least some other effective configured lock manager.
+        * Throws an exception if no lock manager could be found.
+        *
+        * @return LockManager
+        * @throws MWException
+        */
+       public function getAny() {
+               return isset( $this->managers['default'] )
+                       ? $this->get( 'default' )
+                       : $this->get( 'fsLockManager' );
+       }
 }
index 2f55ec1..67768c4 100644 (file)
@@ -1456,7 +1456,7 @@ class LocalFile extends File {
         */
        function getDescriptionText() {
                global $wgParser;
-               $revision = Revision::newFromTitle( $this->title );
+               $revision = Revision::newFromTitle( $this->title, false, Revision::AVOID_MASTER );
                if ( !$revision ) return false;
                $text = $revision->getText();
                if ( !$text ) return false;
index 752e214..28b34a8 100644 (file)
@@ -187,7 +187,7 @@ class CliInstaller extends Installer {
 
                if ( !$status->isOk() ) {
                        echo "\n";
-                       exit;
+                       exit( 1 );
                }
        }
 
index ac5b271..e722893 100644 (file)
@@ -602,6 +602,7 @@ Do not translate: <code>php5-mysql</code>.
 
 Parameters:
 * $1 is comma separated list of database types supported by MediaWiki.',
+       'config-no-fts3' => 'A "[[:wikipedia:Front and back ends|backend]]" is a system or component that ordinary users don\'t interact with directly and don\'t need to know about, and that is responsible for a distinct task or service - for example, a storage back-end is a generic system for storing data which other applications can use. Possible alternatives for back-end are "system" or "service", or (depending on context and language) even leave it untranslated.',
        'config-memory-raised' => 'Parameters:
 * $1 is the configured <code>memory_limit</code>.
 * $2 is the value to which <code>memory_limit</code> was raised.',
@@ -620,6 +621,7 @@ Add dir="ltr" to the <nowiki><code></nowiki> for right-to-left languages.',
        'config-suhosin-max-value-length' => 'Message shown when PHP parameter suhosin.get.max_value_length is between 0 and 1023 (that max value is hard set in MediaWiki software)',
        'config-db-host-oracle' => 'TNS = [[:wikipedia:Transparent Network Substrate|Transparent Network Substrate]] (<== wikipedia link)',
        'config-db-wiki-settings' => 'This is more acurate: "Enter identifying or distinguishing data for this wiki" since a MySQL database can host tables of several wikis.',
+       'config-db-account-oracle-warn' => 'A "[[:wikipedia:Front and back ends|backend]]" is a system or component that ordinary users don\'t interact with directly and don\'t need to know about, and that is responsible for a distinct task or service - for example, a storage back-end is a generic system for storing data which other applications can use. Possible alternatives for back-end are "system" or "service", or (depending on context and language) even leave it untranslated.',
        'config-db-account-lock' => "It might be easier to translate ''normal operation'' as \"also after the installation process\"",
        'config-type-mysql' => '{{optional}}',
        'config-type-postgres' => '{{optional}}',
@@ -991,7 +993,7 @@ $messages['am'] = array(
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]",
 );
 
-/** Aragonese (Aragonés)
+/** Aragonese (aragonés)
  * @author Juanpabl
  */
 $messages['an'] = array(
@@ -1065,7 +1067,7 @@ $messages['arc'] = array(
        'config-admin-name' => 'ܫܡܐ ܕܝܠܟ:',
        'config-admin-password' => 'ܡܠܬܐ ܕܥܠܠܐ:',
        'config-admin-password-confirm' => 'ܡܠܬܐ ܕܥܠܠܐ ܙܒܢܬܐ ܐܚܪܬܐ:',
-       'config-admin-email' => 'ܦܪܫÜ\93Ü¢ܐ ܕܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ:',
+       'config-admin-email' => 'Ü¡Ü\98ܢܥܐ ܕܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ:',
        'config-profile-private' => 'ܘܝܩܝ ܦܪܨܘܦܝܐ',
        'config-email-settings' => 'ܛܘܝܒ̈ܐ ܕܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ',
 );
@@ -1222,7 +1224,7 @@ $messages['be'] = array(
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Ліставанне аб выпусках MediaWiki (англ.)]',
 );
 
-/** Belarusian (TaraÅ¡kievica orthography) (â\80ªÐ\91еларуская (тарашкевіца)‬)
+/** Belarusian (TaraÅ¡kievica orthography) (â\80ªÐ±еларуская (тарашкевіца)‬)
  * @author EugeneZelenko
  * @author Jim-by
  * @author Wizardist
@@ -3544,7 +3546,7 @@ Až to dokončíte, můžete '''[$2 vstoupit do své wiki]'''.",
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-mailová konference oznámení MediaWiki]',
 );
 
-/** Kashubian (Kaszëbsczi) */
+/** Kashubian (kaszëbsczi) */
 $messages['csb'] = array(
        'mainpagetext' => "'''MediaWiki òsta zainstalowónô.'''",
 );
@@ -3687,7 +3689,7 @@ Sofern ein gemeinschaftlich genutzter Server für das Hosting verwendet wird, mu
 Sofern PHP selbst kompiliert wurde, muss es mit es neu konfiguriert werden, wobei der Datenbankclient zu aktivierten ist. Hierzu kann beispielsweise <code>./configure --with-mysql</code> ausgeführt werden.
 Sofern PHP über die Paketverwaltung einer Debian- oder Ubuntu-Installation installiert wurde, muss das „php5-mysql“-Paket nachinstalliert werden.',
        'config-outdated-sqlite' => "'''Warnung:''' SQLite $1 ist installiert. Allerdings benötigt MediaWiki SQLite $2 oder höher. SQLite wird daher nicht verfügbar sein.",
-       'config-no-fts3' => "'''Warnung:''' SQLite wurde ohne das [//sqlite.org/fts3.html FTS3-Modul] kompiliert, so dass keine Suchfunktionen zur Verfügung stehen werden.",
+       'config-no-fts3' => "'''Warnung:''' SQLite wurde ohne das [//sqlite.org/fts3.html FTS3-Modul] kompiliert, so dass keine Suchfunktionen für dieses Datenbanksystem zur Verfügung stehen werden.",
        'config-register-globals' => "'''Warnung: Der Parameter <code>[http://php.net/register_globals register_globals]</code> von PHP ist aktiviert.'''
 '''Sie sollte deaktiviert werden, sofern dies möglich ist.'''
 Die MediaWiki-Installation wird zwar laufen, wobei aber der Server für potentielle Sicherheitsprobleme anfällig ist.",
@@ -3887,7 +3889,7 @@ Bitte unten angegebenes Datenverzeichnis sowie den Datenbanknamen überprüfen u
        'config-sqlite-fts3-downgrade' => 'PHP verfügt nicht über FTS3-Unterstützung. Die Tabellen wurden zurückgestuft.',
        'config-can-upgrade' => "Es wurden MediaWiki-Tabellen in dieser Datenbank gefunden.
 Um sie auf MediaWiki $1 zu aktualisieren, bitte auf '''Weiter''' klicken.",
-       'config-upgrade-done' => "Die Aktualisierung ist abgeschlossen.
+       'config-upgrade-done' => "Die Aktualisierung ist nun abgeschlossen.
 
 Das Wiki kann nun [$1 genutzt werden].
 
@@ -4125,7 +4127,7 @@ $3
 Sobald alles erledigt wurde, kann auf das '''[$2 Wiki zugegriffen werden]'''. Wir wünschen viel Spaß und Erfolg mit dem Wiki.",
        'config-download-localsettings' => 'LocalSettings.php herunterladen',
        'config-help' => 'Hilfe',
-       'config-nofile' => 'Datei „$1“ wurde nicht gefunden. Wurde sie gelöscht?',
+       'config-nofile' => 'Die Datei „$1“ konnte nicht gefunden werden. Wurde sie gelöscht?',
        'mainpagetext' => "'''MediaWiki wurde erfolgreich installiert.'''",
        'mainpagedocfooter' => 'Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].
 
@@ -4163,7 +4165,7 @@ $messages['diq'] = array(
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki ra lista serbest-dayışê postey]',
 );
 
-/** Lower Sorbian (Dolnoserbski) */
+/** Lower Sorbian (dolnoserbski) */
 $messages['dsb'] = array(
        'mainpagetext' => "'''MediaWiki jo se wuspěšnje instalěrowało.'''",
        'mainpagedocfooter' => "Pomoc pśi wužywanju softwary wiki namakajoš pód [//meta.wikimedia.org/wiki/Help:Contents User's Guide].
@@ -4228,6 +4230,7 @@ $messages['eo'] = array(
  * @author Platonides
  * @author Sanbec
  * @author Translationista
+ * @author Vivaelcelta
  */
 $messages['es'] = array(
        'config-desc' => 'El instalador para MediaWiki',
@@ -4638,7 +4641,7 @@ Wikipedia utilizaba anteriormente la licencia de documentación libre de GNU (GF
 La GFDL es una licencia válida, pero es difícil de entender.
 También es difícil reutilizar el contenido licenciado bajo la GFDL.",
        'config-email-settings' => 'Configuración de correo electrónico',
-       'config-enable-email' => 'Activar el envío de e-mails',
+       'config-enable-email' => 'Activar el envío de correos electrónicos',
        'config-enable-email-help' => 'Si quieres que el correo electrónico funcione, la [http://www.php.net/manual/en/mail.configuration.php configuración PHP de correo electrónico] debe ser la correcta.
 Si no quieres la funcionalidad de correo electrónico, puedes desactivarla aquí.',
        'config-email-user' => 'Habilitar correo electrónico de usuario a usuario',
@@ -4805,7 +4808,12 @@ $messages['eu'] = array(
        'config-sidebar' => '* [//www.mediawiki.org MediaWiki nagusia]
 * [//www.mediawiki.org/wiki/Help:Contents Erabiltzaileentzako Gida]
 * [//www.mediawiki.org/wiki/Manual:Contents Administratzaileentzako Gida]
-* [//www.mediawiki.org/wiki/Manual:FAQ MEG]',
+* [//www.mediawiki.org/wiki/Manual:FAQ MEG]
+----
+* <doclink href=Readme>Irakur nazazu</doclink>
+* <doclink href=ReleaseNotes>Oharren argitalpena</doclink>
+* <doclink href=Copying>Kopiaketa</doclink>
+* <doclink href=UpgradeDoc>Eguneratzea</doclink>',
        'config-env-php' => 'PHP $1 instalatuta dago.',
        'config-xcache' => '[http://xcache.lighttpd.net/ XCache] instalatuta dago',
        'config-apc' => '[http://www.php.net/apc APC] instalatuta dago',
@@ -5916,7 +5924,7 @@ $messages['gd'] = array(
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Liosta puist nan sgaoilidhean MediaWiki]",
 );
 
-/** Galician (Galego)
+/** Galician (galego)
  * @author Elisardojm
  * @author Toliño
  */
@@ -7213,7 +7221,7 @@ $messages['hr'] = array(
 i [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Vodič za suradnike] za pomoć pri uporabi i podešavanju.',
 );
 
-/** Upper Sorbian (Hornjoserbsce)
+/** Upper Sorbian (hornjoserbsce)
  * @author Michawiki
  */
 $messages['hsb'] = array(
@@ -7313,6 +7321,9 @@ Instalacija móhła so njeporadźić!",
        'config-diff3-bad' => 'GNU diff3 njenamakany.',
        'config-no-uri' => "'''Zmylk:''' Aktualny URI njeda so postajić.
 Instalacija bu přetorhnjena.",
+       'config-no-cli-uri' => "'''Warnowanje''': Žana skriptowa šćežka (--scriptpath) podata, standard so wužiwa: <code>$1</code>.",
+       'config-using-server' => 'Serwerowe mjeno "<nowiki>$1</nowiki>" so wužiwa.',
+       'config-using-uri' => 'Serwerowy URL "<nowiki>$1$2</nowiki>" so wužiwa.',
        'config-db-type' => 'Typ datoweje banki:',
        'config-db-host' => 'Serwer datoweje banki:',
        'config-db-host-oracle' => 'Datowa banka TNS:',
@@ -7540,6 +7551,7 @@ Standardna lisćina sp přeskakuje.",
        'config-install-mainpage-failed' => 'Powěsć njeda so zasunyć: $1',
        'config-download-localsettings' => 'LocalSettings.php sćahnyć',
        'config-help' => 'pomoc',
+       'config-nofile' => 'Dataja "$1" njeje so namakała. Je so zhašała?',
        'mainpagetext' => "'''MediaWiki bu wuspěšnje instalowany.'''",
        'mainpagedocfooter' => 'Prošu hlej [//meta.wikimedia.org/wiki/Help:Contents dokumentaciju] za informacije wo wužiwanju softwary.
 
@@ -8651,6 +8663,7 @@ Post facer isto, tu pote '''[$2 entrar in tu wiki]'''.",
 /** Indonesian (Bahasa Indonesia)
  * @author Farras
  * @author IvanLanin
+ * @author Kenrick95
  * @author Reedy
  */
 $messages['id'] = array(
@@ -9027,7 +9040,7 @@ Konfigurasi hak pengguna yang lebih kompleks tersedia setelah instalasi. Lihat [
        'config-license-none' => 'Tidak ada lisensi',
        'config-license-cc-by-sa' => 'Creative Commons Atribusi Berbagi Serupa',
        'config-license-cc-by' => 'Creative Commons Atribusi',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Atribusi Non-Komersial Berbagi Serupa',
+       'config-license-cc-by-nc-sa' => 'Creative Commons Atribusi Nonkomersial Berbagi Serupa',
        'config-license-cc-0' => 'Creative Commons Zero (Domain Publik)',
        'config-license-gfdl' => 'Lisensi Dokumentasi Bebas GNU 1.3 atau versi terbaru',
        'config-license-pd' => 'Domain Umum',
@@ -9369,17 +9382,17 @@ LocalSettings.phpを変更してこの変数を設定して、『{{int:Config-co
 セッションの有効期間は$1に設定されています。
 php.iniの<code>session.gc_maxlifetime</code>を設定することで、この問題を改善できます。
 インストール作業を再起動させてください。',
-       'config-no-session' => 'ã\82»ã\83\83ã\82·ã\83§ã\83³ã\81®ã\83\87ã\83¼ã\82¿ã\81\8cæ\90\8d失しました!
-php.iniを確認し、<code>session.save_path</code>が適切なディレクトリに設定されていることを確かめて下さい。',
+       'config-no-session' => 'ã\82»ã\83\83ã\82·ã\83§ã\83³ã\81®ã\83\87ã\83¼ã\82¿ã\81\8cæ\88失しました!
+php.iniを確認し、<code>session.save_path</code>が適切なディレクトリに設定されていることを確認してください。',
        'config-your-language' => 'あなたの言語:',
-       'config-your-language-help' => 'インストール作業中に利用する言語を選んで下さい。',
+       'config-your-language-help' => 'インストール作業に使用する言語を選択してください。',
        'config-wiki-language' => 'ウィキの言語:',
-       'config-wiki-language-help' => 'ã\81\9dã\81®ã\82¦ã\82£ã\82­ã\81§ä¸»ã\81«æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\82\8bè¨\80èª\9eã\82\92é\81¸ã\82\93ã\81§ä¸\8bさい。',
+       'config-wiki-language-help' => 'ã\82¦ã\82£ã\82­ã\81§ä¸»ã\81«æ\9b¸ã\81\8dè¾¼ã\81¾ã\82\8cã\82\8bè¨\80èª\9eã\82\92é\81¸æ\8a\9eã\81\97ã\81¦ã\81\8fã\81 さい。',
        'config-back' => '←戻る',
        'config-continue' => '続行→',
        'config-page-language' => '言語',
        'config-page-welcome' => 'MediaWikiへようこそ!',
-       'config-page-dbconnect' => 'ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¸接続',
+       'config-page-dbconnect' => 'ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«接続',
        'config-page-upgrade' => '既存のインストールを更新',
        'config-page-dbsettings' => 'データベースの設定',
        'config-page-name' => '名前',
@@ -9392,18 +9405,18 @@ php.iniを確認し、<code>session.save_path</code>が適切なディレクト
        'config-page-copying' => 'コピー',
        'config-page-upgradedoc' => 'アップグレード',
        'config-page-existingwiki' => '既存のウィキ',
-       'config-help-restart' => 'å\85¥å\8a\9bã\81\95ã\82\8cã\81\9få\85¨ã\81¦ã\81®ä¿\9då­\98ã\83\87ã\83¼ã\82¿ã\82\92æ¶\88å\8e»ã\81\97、インストール作業を再起動しますか?',
+       'config-help-restart' => 'å\85¥å\8a\9bã\81\97ã\81\9fä¿\9då­\98ã\83\87ã\83¼ã\82¿ã\82\92ã\81\99ã\81¹ã\81¦æ¶\88å\8e»ã\81\97ã\81¦、インストール作業を再起動しますか?',
        'config-restart' => 'はい、再起動します',
        'config-welcome' => '=== 環境の確認 ===
 基本的な確認では、現在の環境がMediaWikiのインストールに適しているかを確認します。
-インストール中に助けが必要になった場合は、この確認結果を提供してさい。',
+インストール中に助けが必要になった場合は、この確認結果を提供してください。',
        'config-copyright' => '=== 著作権および規約 ===
 $1
 
-この作品はフリーソフトウェアです。あなたは、フリーソフトウェア財団の発行するGNU一般公衆利用許諾書 (GNU General Public License)(バージョン2、またはそれ以降のライセンス)の規約にもとづき、このライブラリの再配布や改変をすることができます。
+この作品はフリーソフトウェアです。あなたは、フリーソフトウェア財団の発行するGNU一般公衆利用許諾書 (GNU General Public License)(バージョン2、またはそれ以降のライセンス)の規約に基づき、このライブラリを再配布および改変できます。
 
 この作品は、有用であることを期待して配布されていますが、商用あるいは特定の目的に適するかどうかも含めて、暗黙的にも、一切保証されません。
-詳しくは、GNU一般公衆利用許諾書をご覧さい。
+詳しくは、GNU一般公衆利用許諾書をご覧ください。
 
 あなたはこのプログラムと共に、<doclink href=Copying>GNU一般公衆利用許諾契約書の複製</doclink>を一部受け取ったはずです。もし受け取っていなければ、フリーソフトウェア財団(宛先は the Free Software Foundation, Inc., 59Temple Place, Suite 330, Boston, MA 02111-1307 USA)まで請求してください。',
        'config-sidebar' => '* [//www.mediawiki.org MediaWikiのホーム]
@@ -9425,7 +9438,7 @@ MediaWikiのインストールはできません。',
        'config-unicode-using-utf8' => 'Unicode正規化に、Brion Vibberのutf8_normalize.soを使用。',
        'config-unicode-using-intl' => 'Unicode正規化に[http://pecl.php.net/intl intl PECL 拡張機能]を使用。',
        'config-unicode-pure-php-warning' => "'''警告''':Unicode正規化の処理に [http://pecl.php.net/intl intl PECL 拡張機能]が使用可能ではなく、処理の遅いピュア PHP の実装を代わりに用いています。
-高トラフィックのサイトを運営する場合は、[//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode正規化に関するページ]をお読みさい。",
+高トラフィックのサイトを運営する場合は、[//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode正規化に関するページ]をお読みください。",
        'config-unicode-update-warning' => "'''警告''':インストールされているバージョンのUnicode正規化ラッパーは、[http://site.icu-project.org/ ICUプロジェクト]のライブラリの古いバージョンを使用しています。
 Unicodeを少しでも利用する可能性があるなら、[//www.mediawiki.org/wiki/Unicode_normalization_considerations アップグレード]する必要があります。",
        'config-no-db' => '適切なデータベースドライバが見つかりませんでした!PHPにデータベースドライバをインストールする必要があります。
@@ -9477,6 +9490,8 @@ MediaWikiにはUTF-8サポートの関数が必要です。",
 画像のサムネイル生成は無効になります。',
        'config-no-uri' => "'''エラー:'''現在のURIを決定できませんでした。
 インストールは中止されました。",
+       'config-using-server' => 'サーバー名「<nowiki>$1</nowiki>」を使用しています。',
+       'config-using-uri' => 'サーバーURL「<nowiki>$1$2</nowiki>」を使用しています。',
        'config-uploads-not-safe' => "'''警告:'''アップロードの既定ディレクトリ<code>$1</code>が、任意のスクリプト実行に関して脆弱性があります。
 MediaWikiはアップロードされたファイルのセキュリティ上の脅威を確認しますが、アップロードを有効化するまえに、[//www.mediawiki.org/wiki/Manual:Security#Upload_security このセキュリティ上の脆弱性を閉じる]ことが強く推奨されます。",
        'config-brokenlibxml' => 'このシステムで使われているPHPとlibxml2のバージョンのこの組み合わせにはバグがあります。具体的には、MediaWikiやその他のウェブアプリケーションでhiddenデータが破損する可能性があります。
@@ -9488,19 +9503,21 @@ PHP5.3.2以降に更新するか、この([//bugs.php.net/bug.php?id=50394 PHP
        'config-suhosin-max-value-length' => 'Suhosin がインストールされており、GETパラメータの長さを $1 バイトに制限しています。MediaWiki の ResourceLoader コンポーネントはこの制限を回避しますが、パフォーマンスは低下します。可能な限り、php.ini で suhosin.get.max_value_length を 1024 以上に設定し、同じ値を LocalSettings.php 中で $wgResourceLoaderMaxQueryLength に設定してください。',
        'config-db-type' => 'データベースの種類:',
        'config-db-host' => 'データベースのホスト:',
-       'config-db-host-help' => 'データベースサーバーが異なったサーバー上にある場合、ホスト名またはIPアドレスをここに入力してください。
+       'config-db-host-help' => '異なるサーバー上にデータベースサーバーがある場合、ホスト名またはIPアドレスをここに入力してください。
+
+もし、共有されたウェブホスティングを使用している場合、ホスティングプロバイダーは正確なホスト名を解説しているはずです。
 
-もし、共有されたウェブホスティングを使用している場合、ホスティング・プロバイダは正確なホストネームを解説しているはずです
+WindowsでMySQLを使用している場合に、「localhost」は、サーバー名としてはうまく働かないでしょう。もしそのような場合は、ローカルIPアドレスとして「127.0.0.1」を試してみてください
 
-WindowsでMySQLを使用している場合に、「localhost」は、サーバー名としてはうまく働かないでしょう。もしそのような場合は、ローカルIPアドレスとして「127.0.0.1」を試してみてください。',
+PostgreSQLを使用している場合、UNIXソケットで接続するにはこの欄を空欄のままにしてください。',
        'config-db-host-oracle' => 'データベースTNS:',
        'config-db-host-oracle-help' => '有効な[http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm ローカル接続名]を入力してください。tnsnames.oraファイルは、このインストールに対して表示されてなければなりません、<br />もしクライアントライブラリ10gもしくはそれ以上を使用している場合、メソッドの名前を[http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm 簡易接続]で利用できます。',
        'config-db-wiki-settings' => 'このウィキを識別',
        'config-db-name' => 'データベース名:',
-       'config-db-name-help' => 'このウィキを識別する名前を選んで下さい。
-スペースを含めることはできません。
+       'config-db-name-help' => 'このウィキを識別する名前を入力してください。
+空白を含めることはできません。
 
\85±æ\9c\89ã\82¦ã\82§ã\83\96ã\83\9bã\82¹ã\83\88ã\82\92å\88©ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81ã\83\9bã\82¹ã\83\88ã\83»ã\83\97ã\83­ã\83\90ã\82¤ã\83\80ã\83¼ã\81¯ç\89¹å®\9aã\81®å\88©用可能なデータベース名を提供するか、あるいは管理パネルからデータベースを作成できるようにしているでしょう。',
\85±æ\9c\89ã\82¦ã\82§ã\83\96ã\83\9bã\82¹ã\83\88ã\82\92å\88©ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bå ´å\90\88ã\80\81ã\83\9bã\82¹ã\83\86ã\82£ã\83³ã\82°ã\83\97ã\83­ã\83\90ã\82¤ã\83\80ã\83¼ã\81\8cç\89¹å®\9aã\81®ä½¿用可能なデータベース名を提供するか、あるいは管理パネルからデータベースを作成できるようにしているでしょう。',
        'config-db-name-oracle' => 'データベースのスキーマ:',
        'config-db-install-account' => 'インストールのための利用者アカウント',
        'config-db-username' => 'データベースの利用者名:',
@@ -9513,10 +9530,10 @@ WindowsでMySQLを使用している場合に、「localhost」は、サーバ
        'config-db-account-lock' => 'インストール作業終了後も同じ利用者名とパスワードを使用する',
        'config-db-wiki-account' => 'インストール作業終了後の利用者アカウント',
        'config-db-wiki-help' => '通常のウィキ操作中にデータベースへの接続する時に利用する利用者名とパスワードを入力してください。
-アカウントがないが、インストールのアカウントに十分な権限があれば、このユーザーアカウントは、ウィキを操作するうえで最小限の権限を持った状態で作成されます。',
+アカウントが存在せず、インストールのアカウントに十分な権限がある場合は、この利用者アカウントは、ウィキを操作する上で最小限の権限を持った状態で作成されます。',
        'config-db-prefix' => 'データベーステーブルの接頭辞:',
-       'config-db-prefix-help' => 'ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82\92è¤\87æ\95°ã\81®ã\82¦ã\82£ã\82­é\96\93ã\80\81ã\82\82ã\81\97ã\81\8fã\81¯MediaWikiã\81¨ä»\96ã\81®ã\82¦ã\82§ã\83\96ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81§å\85±æ\9c\89ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\80\81è¡\9dçª\81ã\82\92é\81¿ã\81\91ã\82\8bã\81\9fã\82\81ã\81«ã\80\81ã\81\99ã\81¹ã\81¦ã\81®ã\83\86ã\83¼ã\83\96ã\83«å\90\8dã\81«æ\8e¥é ­è¾\9eã\82\92ã\81¤ける必要があります。
-スペースは使用できません。
+       'config-db-prefix-help' => 'ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82\92è¤\87æ\95°ã\81®ã\82¦ã\82£ã\82­é\96\93ã\80\81ã\81\82ã\82\8bã\81\84ã\81¯MediaWikiã\81¨ä»\96ã\81®ã\82¦ã\82§ã\83\96ã\82¢ã\83\97ã\83ªã\82±ã\83¼ã\82·ã\83§ã\83³ã\81§å\85±æ\9c\89ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\80\81è¡\9dçª\81ã\82\92é\81¿ã\81\91ã\82\8bã\81\9fã\82\81ã\81«ã\80\81ã\81\99ã\81¹ã\81¦ã\81®ã\83\86ã\83¼ã\83\96ã\83«å\90\8dã\81«æ\8e¥é ­è¾\9eã\82\92ä»\98ける必要があります。
+空白は使用できません。
 
 このフィールドは、通常は空のままです。',
        'config-db-charset' => 'データベースの文字セット',
@@ -9525,9 +9542,9 @@ WindowsでMySQLを使用している場合に、「localhost」は、サーバ
        'config-charset-mysql4' => 'MySQL 4.0 下位互換UTF-8',
        'config-charset-help' => "'''警告:'''MySQL 4.1+で'''下位互換UTF-8'''を使用し、その後<code>mysqldump</code>でデータベースをバックアップすると、すべての非ASCII文字が破壊され、不可逆的にバップアップが壊れるかもしれません。
 
-'''バイナリー式'''では、MediaWikiは、UTF-8テキストを、データベースのバイナリーフィールドに格納します。
-これは、MySQLのUTF-8形式より効率的で、ユニコード文字の全範囲を利用することが出来るようになります。
-'''UTF-8å½¢å¼\8f'''ã\81§ã\81¯ã\80\81MySQLã\81¯ã\80\81ã\81ªã\82\93ã\81®æ\96\87å­\97é\9b\86å\90\88ã\81\8cã\83\87ã\83¼ã\82¿ã\81®ã\81ªã\81\8bã\81«å\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8bã\82\92ç\9f¥ã\82\8a、それに対して適切な提示と変換をするでしょうが、
+'''バイナリー式'''では、MediaWikiは、UTF-8テキストを、データベースのバイナリーフィールドに格納します。
+これは、MySQLのUTF-8形式より効率的で、Unicode文字の全範囲を利用できるようになります。
+'''UTF-8å½¢å¼\8f'''ã\81§ã\81¯ã\80\81MySQLã\81¯ã\80\81ã\83\87ã\83¼ã\82¿å\86\85ã\81§ã\81©ã\81®æ\96\87å­\97é\9b\86å\90\88ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\81\8bã\82\92ç\9f¥ã\81£ã\81¦ã\81\84ã\81¦、それに対して適切な提示と変換をするでしょうが、
 [//ja.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E8%A8%80%E8%AA%9E%E9%9D%A2 基本多言語面]の外にある文字を格納できるようにはなりません。",
        'config-mysql-old' => 'MySQLの$1以降が要求されています。あなたの所有のものは$2です。',
        'config-db-port' => 'データベースポート:',
@@ -9535,15 +9552,15 @@ WindowsでMySQLを使用している場合に、「localhost」は、サーバ
        'config-db-schema-help' => '上の図式は常に正確です。
 必要である場合のみ、変更してください。',
        'config-sqlite-dir' => 'SQLiteのデータディレクトリ:',
-       'config-sqlite-dir-help' => 'SQLiteは単一のファイル中に全てのデータを保持しています。
+       'config-sqlite-dir-help' => "SQLiteは単一のファイル内にすべてのデータを保持しています。
 
-あなたが供給するディレクトリーはインストール時にウェブサーバーによって書き込み可能でなければならない
+指定したディレクトリは、インストール時にウェブサーバーが書き込める必要があります
 
\82¦ã\82§ã\83\96ã\82\92é\80\9aã\81\97ã\81¦ã\82¢ã\82¯ã\82»ã\82¹å\8f¯è\83½"ä¸\8då\8f¯è\83½"ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82ã\81\93ã\82\8cã\81¯ã\81\82ã\81ªã\81\9fã\81®PHPã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\81\82ã\82\8bæ\89\80ã\81«é\85\8dç½®ä¸\8dè\83½ã\81ª理由です。
\81\93ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81¯ã\82¦ã\82§ã\83\96ã\81\8bã\82\89ã\82¢ã\82¯ã\82»ã\82¹'''ä¸\8då\8f¯è\83½'''ã\81§ã\81\82ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8aã\81¾ã\81\99ã\80\82ã\81\93ã\82\8cã\81\8cPHPã\83\95ã\82¡ã\82¤ã\83«ã\81\8cã\81\82ã\82\8bå ´æ\89\80ã\81«é\85\8dç½®ã\81§ã\81\8dã\81ªã\81\84理由です。
 
\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81¯å\85±ã\81«<code>.htaccess</code>ã\83\95ã\82¡ã\82¤ã\83«ã\82\92æ\9b¸ã\81\8dè¾¼ã\82\80ã\81\93ã\81¨ã\81§ã\81\97ã\82\87ã\81\86ã\80\82ã\81\97ã\81\8bã\81\97ã\80\81ä¾\8bã\81\88失æ\95\97ã\81\97ã\81¦ã\82\82誰ã\81\8bã\81\8cã\81\82ã\81ªã\81\9fã\81®ç\94\9fã\81®ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cå\8f¯è\83½ã\81¨ã\81ªã\82\8bã\81§ã\81\97ã\82\87ã\81\86
\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83©ã\83¼ã\81¯å\90\8cæ\99\82ã\81«<code>.htaccess</code>ã\83\95ã\82¡ã\82¤ã\83«ã\81«æ\9b¸ã\81\8dè¾¼ã\81¿ã\81¾ã\81\99ã\80\82ã\81\97ã\81\8bã\81\97ã\80\81ã\81\93ã\82\8cã\81\8c失æ\95\97ã\81\97ã\81¦ã\82\82誰ã\81\8bã\81\8cã\81\82ã\81ªã\81\9fã\81®ç\94\9fã\81®ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cå\8f¯è\83½ã\81¨ã\81ªã\82\8bã\81§ã\81\97ã\82\87ã\81\86ã\80\82ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¯ç\94\9fã\81®ã\83\87ã\83¼ã\82¿ï¼\88ã\83¡ã\83¼ã\83«ã\82¢ã\83\89ã\83¬ã\82¹ã\80\81ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\81®ã\83\8fã\83\83ã\82·ã\83¥å\80¤ï¼\89ã\81®ä»\96ã\80\81å\89\8aé\99¤ã\81\95ã\82\8cã\81\9fç\89\88ã\80\81ã\81\9dã\81®ä»\96ã\80\81ã\82¦ã\82£ã\82­ä¸\8aã\81®å\88¶é\99\90ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\87ã\83¼ã\82¿ã\82\92å\90«ã\82\93ã\81§ã\81\84ã\81¾ã\81\99
 
-ä¾\8bã\81\88ã\81°<code>/var/lib/mediawiki/yourwiki</code>ã\81®ã\82\88ã\81\86ã\81«ã\80\81å\85¨ã\81\8fé\81\95ã\81\86å ´æ\89\80ã\81«ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82\92é\85\8dç½®ã\81\99ã\82\8bã\81\93ã\81¨ã\82\92è\80\83ã\81\88ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82',
+ä¾\8bã\81\88ã\81°<code>/var/lib/mediawiki/yourwiki</code>ã\81®ã\82\88ã\81\86ã\81«ã\80\81å\88¥ã\81®å ´æ\89\80ã\81«ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82\92é\85\8dç½®ã\81\99ã\82\8bã\81\93ã\81¨ã\82\92æ¤\9cè¨\8eã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82",
        'config-oracle-def-ts' => '既定のテーブル領域:',
        'config-oracle-temp-ts' => '一時的なテーブル領域:',
        'config-type-mysql' => 'MySQL',
@@ -9566,28 +9583,28 @@ $1
        'config-header-sqlite' => 'SQLiteの設定',
        'config-header-oracle' => 'Oracleの設定',
        'config-header-ibm_db2' => 'IBM DB2の設定',
-       'config-invalid-db-type' => '不正なデータベースの種類',
+       'config-invalid-db-type' => '無効なデータベースの種類',
        'config-missing-db-name' => '「データベース名」を入力する必要があります',
        'config-missing-db-host' => '「データベースのホスト」を入力する必要があります',
        'config-missing-db-server-oracle' => '「データベースTNS」に値を入力する必要があります',
-       'config-invalid-db-server-oracle' => '不正なデータベースTNS「$1」です。
-アスキー文字(a-z, A-Z)、数字(0-9)およびアンダーバー(_)とドット(.)のみを使用してください。',
-       'config-invalid-db-name' => '無効なデータベース名 "$1"
-アスキー文字(a-z, A-Z)、数字(0-9)、アンダーバー(_)、ハイフン(-)のみを使用してください。',
-       'config-invalid-db-prefix' => 'ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®æ\8e¥é ­èª\9e "$1" ã\81\8cç\84¡å\8a¹です。
-アスキー字(a-z, A-Z)、数字(0-9)、下線(_)、ハイフン(-)のみを使用してください。',
+       'config-invalid-db-server-oracle' => '「$1」は無効なデータベース TNS です。
+アスキー英字(a-z、A-Z)、数字(0-9)、アンダーバー(_)、ドット(.)のみを使用してください。',
+       'config-invalid-db-name' => '「$1」は無効なデータベース名です
+アスキー英字(a-z、A-Z)、数字(0-9)、アンダーバー(_)、ハイフン(-)のみを使用してください。',
+       'config-invalid-db-prefix' => 'ã\80\8c$1ã\80\8dã\81¯ç\84¡å\8a¹ã\81ªã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹æ\8e¥é ­èª\9eです。
+アスキー字(a-z, A-Z)、数字(0-9)、下線(_)、ハイフン(-)のみを使用してください。',
        'config-connection-error' => '$1。
 
 以下のホスト名、ユーザ名、パスワードをチェックして、再度試してみてください。',
-       'config-invalid-schema' => 'メディアウィキ"$1"における無効な図式です。
-アスキー文字(a-z, A-Z)、数字(0-9)、下線(_)のみを使用してください。',
+       'config-invalid-schema' => 'メディアウィキ「$1」における無効な図式です。
+アスキー英字(a-z、A-Z)、数字(0-9)、下線(_)のみを使用してください。',
        'config-postgres-old' => 'PostgreSQLの$1あるいはそれ以降が必要で、いまのバージョンは$2です。',
        'config-sqlite-name-help' => 'あなたのウェキと同一性のある名前を選んでください。
 空白およびハイフンは使用しないでください。
 SQLiteのデータファイル名として使用されます。',
-       'config-sqlite-parent-unwritable-group' => 'データディレクトリ<code><nowiki>$1</nowiki></code>を作成できません。親ディレクトリ<code><nowiki>$2</nowiki></code>は、ウェブサーバから書き込みできませんでした。
+       'config-sqlite-parent-unwritable-group' => 'ã\83\87ã\83¼ã\82¿ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ª<code><nowiki>$1</nowiki></code>ã\82\92ä½\9cæ\88\90ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82親ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ª<code><nowiki>$2</nowiki></code>ã\81¯ã\80\81ã\82¦ã\82§ã\83\96ã\82µã\83¼ã\83\90ã\83¼ã\81\8bã\82\89æ\9b¸ã\81\8dè¾¼ã\81¿ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\81§ã\81\97ã\81\9fã\80\82
 
-インストール機能は、実行しているウェブサーバのユーザーを特定しました。
\82¤ã\83³ã\82¹ã\83\88ã\83¼ã\83«æ©\9fè\83½ã\81¯ã\80\81å®\9fè¡\8cã\81\97ã\81¦ã\81\84ã\82\8bã\82¦ã\82§ã\83\96ã\82µã\83¼ã\83\90ã\83¼ã\81®ã\83¦ã\83¼ã\82¶ã\83¼ã\82\92ç\89¹å®\9aã\81\97ã\81¾ã\81\97ã\81\9fã\80\82
 続行するには、<code><nowiki>$3</nowiki></code>ディレクトリを書き込み可能にしてください。
 UnixあるいはLinux上では、以下を実行してください:
 
@@ -9598,19 +9615,19 @@ chmod g+w $3</pre>',
        'config-sqlite-parent-unwritable-nogroup' => 'データディレクトリ<code><nowiki>$1</nowiki></code>を作成できません。親ディレクトリ<code><nowiki>$2</nowiki></code>は、ウェブサーバから書き込みできませんでした。
 
 インストール機能は、実行しているウェブサーバのユーザーを特定できませんでした。
-ç¶\9aè¡\8cã\81\99ã\82\8bã\81«ã\81¯ã\80\81<code><nowiki>$3</nowiki></code>ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92ã\80\81ã\82¦ã\82§ã\83\96ã\82µã\83¼ã\83\90ï¼\88ã\81¨ä»\96ã\81®ã\83¦ã\83¼ã\82¶ï¼\81ï¼\89ã\81\8bã\82\89ã\82°ã\83­ã\83¼ã\83\90ã\83«ã\81«æ\9b¸ã\81\8dè¾¼ã\81¿å\87ºæ\9d¥るようにしてください。
+ç¶\9aè¡\8cã\81\99ã\82\8bã\81«ã\81¯ã\80\81<code><nowiki>$3</nowiki></code>ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92ã\80\81ã\82¦ã\82§ã\83\96ã\82µã\83¼ã\83\90ï¼\88ã\81¨ä»\96ã\81®ã\83¦ã\83¼ã\82¶ï¼\81ï¼\89ã\81\8bã\82\89ã\82°ã\83­ã\83¼ã\83\90ã\83«ã\81«æ\9b¸ã\81\8dè¾¼ã\82\81るようにしてください。
 UnixあるいはLinux上では、以下を実行してください:
 
 <pre>cd $2
 mkdir $3
 chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'ã\83\87ã\83¼ã\82¿ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼"$1"ã\82\92ä½\9cæ\88\90ã\81\97ã\81\9fã\81\93ã\81¨ã\81«ã\82\88ã\82\8bã\82¨ã\83©ã\83¼
-場所をチェックして、再度試してください。',
-       'config-sqlite-dir-unwritable' => 'ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼"$1"ã\82\92æ\9b¸ã\81\8dè¾¼ã\82\80ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dません。
\83\91ã\83¼ã\83\9fã\83\83ã\82·ã\83§ã\83³ã\82\92å¤\89æ\9b´ã\81\99ã\82\8cã\81°ã\80\81ã\82¦ã\82§ã\83\96ã\82µã\83¼ã\83\90ã\83¼ã\81\8cæ\9b¸ã\81\8dè¾¼ã\81¿å\8f¯è\83½ã\81¨ã\81ªã\82\8aã\81¾ã\81\99ã\80\82å\86\8d度試してください。',
+       'config-sqlite-mkdir-error' => 'ã\83\87ã\83¼ã\82¿ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\80\8c$1ã\80\8dã\81®ä½\9cæ\88\90中ã\81«ã\82¨ã\83©ã\83¼ã\81\8cç\99ºç\94\9fã\81\97ã\81¾ã\81\97ã\81\9f
+場所を確認してから、再度試してください。',
+       'config-sqlite-dir-unwritable' => 'ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\80\8c$1ã\80\8dã\81«æ\9b¸ã\81\8dè¾¼ã\82\81ません。
\82¦ã\82§ã\83\96ã\82µã\83¼ã\83\90ã\83¼ã\81\8cæ\9b¸ã\81\8dè¾¼ã\82\81ã\82\8bã\82\88ã\81\86ã\81«ã\83\91ã\83¼ã\83\9fã\83\83ã\82·ã\83§ã\83³ã\82\92å¤\89æ\9b´ã\81\97ã\81¦ã\81\8bã\82\89ã\80\81度試してください。',
        'config-sqlite-connection-error' => '$1。
 
»¥ä¸\8bã\81®ã\83\87ã\83¼ã\82¿ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81¨ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\97、再度試してみてください。',
¸\8bè¨\98ã\81®ã\83\87ã\83¼ã\82¿ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81¨ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹å\90\8dã\82\92確èª\8dã\81\97ã\81¦ã\81\8bã\82\89、再度試してみてください。',
        'config-sqlite-readonly' => 'ファイル<code>$1</code>は書き込み不能です。',
        'config-sqlite-cant-create-db' => 'データベースファイル<code>$1</code>を作成できませんでした。',
        'config-sqlite-fts3-downgrade' => 'PHPはFTS3のサポート、テーブルのダウングレードが無効です。',
@@ -9633,7 +9650,7 @@ chmod a+w $3</pre>',
        'config-db-web-account-same' => 'インストールのために同じアカウントを使用してください',
        'config-db-web-create' => '既に存在していないのであれば、アカウントを作成してください',
        'config-db-web-no-create-privs' => 'あなたがインストールのために定義したアカウントは、アカウント作成のための特権としては不充分です。
-あなたがここで特定したアカウントはすでに存在していなければなりません。',
+あなたがここで指定したアカウントは既に存在している必要があります。',
        'config-mysql-engine' => 'ストレージエンジン:',
        'config-mysql-innodb' => 'InnoDB',
        'config-mysql-myisam' => 'MyISAM',
@@ -9641,16 +9658,16 @@ chmod a+w $3</pre>',
 
 '''MyISAM'''は、利用者が1人の場合、あるいは読み込み専用でインストールする場合に、より処理が早くなるでしょう。
 ただし、MyISAMのデータベースは、InnoDBより高頻度で破損する傾向があります。",
-       'config-mysql-charset' => 'データベースの文字セット:',
+       'config-mysql-charset' => 'データベースの文字セット',
        'config-mysql-binary' => 'バイナリ',
        'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "'''バイナリー式'''では、MediaWikiは、UTF-8テキストを、データベースのバイナリーフィールドに格納します。
-これは、MySQLのUTF-8形式より効率的で、ユニコード文字の全範囲を利用することが出来るようになります。
+       'config-mysql-charset-help' => "'''バイナリー式'''では、MediaWikiは、UTF-8テキストを、データベースのバイナリーフィールドに格納します。
+これは、MySQLのUTF-8形式より効率的で、Unicode文字の全範囲を利用できるようになります。
 
-'''UTF-8å½¢å¼\8f'''ã\81§ã\81¯ã\80\81MySQLã\81¯ã\80\81ã\81ªã\82\93ã\81®æ\96\87å­\97é\9b\86å\90\88ã\81\8cã\83\87ã\83¼ã\82¿ã\81®ã\81ªã\81\8bã\81«å\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8bã\81\8bã\82\92ç\9f¥ã\82\8a、それに対して適切な提示と変換をするでしょうが、
+'''UTF-8å½¢å¼\8f'''ã\81§ã\81¯ã\80\81MySQLã\81¯ã\80\81ã\83\87ã\83¼ã\82¿å\86\85ã\81§ã\81©ã\81®æ\96\87å­\97é\9b\86å\90\88ã\82\92使ç\94¨ã\81\97ã\81¦ã\81\84ã\82\8bã\81\8bã\82\92ç\9f¥ã\81£ã\81¦ã\81\84ã\81¦、それに対して適切な提示と変換をするでしょうが、
 [//ja.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E8%A8%80%E8%AA%9E%E9%9D%A2 基本多言語面]の外にある文字を格納できるようにはなりません。",
        'config-site-name' => 'ウィキの名前:',
-       'config-site-name-help' => 'ã\81\93ã\81®äº\8b象ã\81¯ã\83\96ã\83©ã\82¦ã\82¶ã\81®ã\82¿ã\82¤ã\83\88ã\83«ã\83\90ã\83¼ã\81¨ä»\96ã\81®æ§\98ã\80\85ã\81ªå ´æ\89\80ã\81«ã\81\8aã\81\84ã\81¦å\87ºç\8f¾ã\81\99る。',
+       'config-site-name-help' => 'ã\81\93ã\81®äº\8b象ã\81¯ã\83\96ã\83©ã\82¦ã\82¶ã\83¼ã\81®ã\82¿ã\82¤ã\83\88ã\83«ã\83\90ã\83¼ã\81¨ä»\96ã\81®ã\81\95ã\81¾ã\81\96ã\81¾ã\81ªå ´æ\89\80ã\81«ç\8f¾ã\82\8cる。',
        'config-site-name-blank' => 'サイト名を入力してください。',
        'config-project-namespace' => 'プロジェクト名前空間:',
        'config-ns-generic' => 'プロジェクト',
@@ -9673,15 +9690,15 @@ chmod a+w $3</pre>',
 別のユーザ名を指定してください。',
        'config-admin-password-blank' => '管理者アカウントのパスワードを入力してください。',
        'config-admin-password-same' => 'ユーザ名と同じパスワードは使えません。',
-       'config-admin-password-mismatch' => '入力されたつのパスワードが一致しません。',
+       'config-admin-password-mismatch' => '入力された2つのパスワードが一致しません。',
        'config-admin-email' => 'メールアドレス:',
-       'config-admin-email-help' => '電子メールアドレスを入力してください。他のユーザーからの電子メールの受け取りと、パスワードのリセット、ウォッチリストに登録したページの更新通知に用いられます。',
+       'config-admin-email-help' => 'メールアドレスを入力してください。他の利用者からのメールの受け取り、パスワードのリセット、ウォッチリストに登録したページの更新通知に使用します。空欄のままにすることもできます。',
        'config-admin-error-user' => '"<nowiki>$1</nowiki>"という名前の管理者を作成する際に内部エラーが発生しました。',
        'config-admin-error-password' => '管理者"<nowiki>$1</nowiki>"のパスワードを設定する際に内部エラーが発生しました: <pre>$2</pre>',
        'config-subscribe' => '[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce リリース告知のメーリングリスト]を購読する。',
        'config-subscribe-help' => 'これは、リリースの告知(重要なセキュリティに関する案内を含む)に使われる、低容量のメーリングリストです。
 このメーリングリストを購読して、新しいバージョンが出た場合にMediaWikiを更新してください。',
-       'config-almost-done' => 'ã\81\93ã\82\8cã\81§ã\81»ã\81¨ã\82\93ã\81©ã\81\8açµ\82ã\81\84ã\81§ã\81\99
+       'config-almost-done' => 'ã\81\93ã\82\8cã\81§ã\81»ã\81¼çµ\82ã\82\8fã\82\8aã\81¾ã\81\97ã\81\9f
 残りの設定を飛ばして、今すぐにウィキをインストールできます。',
        'config-optional-continue' => '私にもっと質問してください。',
        'config-optional-skip' => 'もう飽きてしまったので、とにかくウィキをインストールしてください。',
@@ -9693,20 +9710,22 @@ chmod a+w $3</pre>',
        'config-profile-help' => "ウィキは、たくさんの人が可能な限りそのウィキを編集できるとき、最も優れた働きをします。
 MediaWikiでは、最近の更新を確認し、神経質な、もしくは悪意を持った利用者からの損害を差し戻すことが、簡単にできます。
 
-しかし一方で、MediaWikiは、さらに様々な形態でもの利用も優れていると言われています。また、時には、すべての人にウィキ手法の利点を説得させるのは容易ではないかもしれません。
+しかし一方で、MediaWikiは、さらにさまざまな形態での利用も優れていると言われています。また、時には、すべての人にウィキ手法の利点を説得させるのは容易ではないかもしれません。
 そこで、選択肢があります。
 
-'''{{int:config-profile-wiki}}'''ã\81¯ã\80\81ã\83­ã\82°ã\82¤ã\83³ã\82\92ã\81\9bã\81\9aã\81¨ã\82\82ã\80\81誰ã\81§ã\82\82ç·¨é\9b\86ã\81\8cå\8f¯è\83½ã\81ªものです。
+'''{{int:config-profile-wiki}}'''ã\81¯ã\80\81ã\83­ã\82°ã\82¤ã\83³ã\81\97ã\81ªã\81\8fã\81¦ã\82\82ã\80\81誰ã\81§ã\82\82ç·¨é\9b\86ã\81§ã\81\8dã\82\8bものです。
 '''{{int:config-profile-no-anon}}'''なウィキは、各編集に対してより強い説明責任を付与しますが、気軽な投稿を阻害するかもしれません。
 
-'''{{int:config-profile-fishbowl}}'''ã\81®ã\82¦ã\82£ã\82­ã\81¯ã\80\81æ\89¿èª\8dã\81\95ã\82\8cã\81\9få\88©ç\94¨è\80\85ã\81¯ç·¨é\9b\86ã\81§ã\81\8dã\80\81ä¸\80æ\96¹ã\80\81ä¸\80è\88¬ã\81®äººã\81¯ã\83\9aã\83¼ã\82¸ï¼\88ã\81¨ã\81\9dã\81®å±¥æ­´ï¼\89ã\81®é\96²è¦§ã\81\8cå\8f¯è\83½ã\81§す。
-'''{{int:config-profile-private}}'''ã\81¯ã\80\81æ\89¿èª\8dã\81\95ã\82\8cã\81\9få\88©ç\94¨è\80\85ã\81\8cã\83\9aã\83¼ã\82¸ã\82\92é\96²è¦§å\8f¯è\83½ã\81§ã\80\81ã\81\9dã\81®ã\82°ã\83«ã\83¼ã\83\97ã\81\8cç·¨é\9b\86å\8f¯è\83½ã\81§す。
+'''{{int:config-profile-fishbowl}}'''ã\81®ã\82¦ã\82£ã\82­ã\81¯ã\80\81æ\89¿èª\8dã\81\95ã\82\8cã\81\9få\88©ç\94¨è\80\85ã\81\8cç·¨é\9b\86ã\81§ã\81\8dã\80\81ä¸\80æ\96¹ã\80\81ä¸\80è\88¬ã\81®äººã\81¯ã\83\9aã\83¼ã\82¸ï¼\88ã\81¨ã\81\9dã\81®å±¥æ­´ï¼\89ã\82\92é\96²è¦§ã\81§ã\81\8dã\81¾す。
+'''{{int:config-profile-private}}'''ã\81¯ã\80\81æ\89¿èª\8dã\81\95ã\82\8cã\81\9få\88©ç\94¨è\80\85ã\81®ã\81¿ã\81\8cã\83\9aã\83¼ã\82¸ã\82\92é\96²è¦§ã\81§ã\81\8dã\80\81ã\81\9dã\81®ã\82°ã\83«ã\83¼ã\83\97ã\81\8cç·¨é\9b\86ã\81§ã\81\8dã\81¾す。
 
-より複雑な利用者権限の設定は、インストール後に設定可能です。詳細は[//www.mediawiki.org/wiki/Manual:User_rights 関連するマニュアル]をご覧ください。",
+より複雑な利用者権限の設定は、インストール後に設定できます。詳細は[//www.mediawiki.org/wiki/Manual:User_rights 関連するマニュアル]をご覧ください。",
        'config-license' => '著作権とライセンス:',
        'config-license-none' => 'ライセンスのフッターを付けない',
        'config-license-cc-by-sa' => 'クリエイティブ・コモンズ 表示-継承',
+       'config-license-cc-by' => 'クリエイティブ・コモンズ 表示',
        'config-license-cc-by-nc-sa' => 'クリエイティブ・コモンズ 表示-非営利-継承',
+       'config-license-gfdl' => 'GNUフリー文書利用許諾契約書1.3以降',
        'config-license-pd' => 'パブリック・ドメイン',
        'config-license-cc-choose' => 'その他のクリエイティブ・コモンズ・ライセンスを選択する',
        'config-license-help' => "多くの公開ウィキでは、すべての寄稿物が[http://freedomdefined.org/Definition フリーライセンス]の元に置かれています。
@@ -9715,41 +9734,42 @@ MediaWikiでは、最近の更新を確認し、神経質な、もしくは悪
 
 ウィキペディアにあるテキストをあなたのウィキで利用し、逆にあなたのウィキにあるテキストをウィキペディアに複製することを許可したい場合には、'''クリエイティブ・コモンズ 表示-継承'''を選択するべきです。
 
-GNUフリー文書利用許諾契約書はウィキペディアが採用していた古いライセンスです。
-今も有効なライセンスではありますが、再利用や解釈を難しくする条項が含まれています。",
-       'config-email-settings' => '電子メールの設定',
-       'config-enable-email' => '電子メール送信の有効',
-       'config-enable-email-help' => "もし、電子メールの作動を欲するならば、[http://www.php.net/manual/en/mail.configuration.php PHP's mail settings]のページが正確に設定されている必要がある。
-もし、電子メールに関するいかなる機能を欲しないのであれば、ここで無効にできます。",
-       'config-email-user' => 'ユーザ間同士の電子メールの許可',
-       'config-email-user-help' => '設定において有効になっている場合、全てのユーザがお互いに電子メールのやりとりを行うことを許可する。',
+ウィキペディアは以前、GNUフリー文書利用許諾契約書(GFDL)を使用していました。
+GFDL は有効なライセンスですが、内容を理解するのは困難です。
+また、GFDL の元に置かれているコンテンツの再利用も困難です。",
+       'config-email-settings' => 'メールの設定',
+       'config-enable-email' => 'メール送信を有効にする',
+       'config-enable-email-help' => 'メールを使用したい場合は、[http://www.php.net/manual/en/mail.configuration.php PHP のメール設定]が正しく設定されている必要があります。
+メールの機能を使用しない場合は、ここで無効にすることができます。',
+       'config-email-user' => '利用者間のメールを有効にする',
+       'config-email-user-help' => '設定において有効になっている場合、すべてのユーザがお互いにメールのやりとりを行うことを許可する。',
        'config-email-usertalk' => 'ユーザのトークページにおける通知を有効にする',
        'config-email-usertalk-help' => '設定で有効にしているならば、ユーザのトークページの変更の通知を受けることをユーザに許可する。',
        'config-email-watchlist' => 'ウォッチリストの通知を有効にする',
-       'config-email-watchlist-help' => '設定で有効にしているならば、閲覧されたページに関する通知を受け取ることをユーザに許可する。',
-       'config-email-auth' => '電子メールの認証を有効にする',
-       'config-email-auth-help' => "ã\81\93ã\81®é\81¸æ\8a\9eè\82¢ã\81\8cæ\9c\89å\8a¹å\8c\96ã\81\95ã\82\8cã\82\8bã\81¨ã\80\81å\88©ç\94¨è\80\85ã\81\8cé\9b»å­\90ã\83¡ã\83¼ã\83«ã\81®アドレスを設定あるいは変更したときに送信されるリンクにより、そのアドレスを確認しなければならなくなります。
+       'config-email-watchlist-help' => '利用者が設定で有効にしている場合、閲覧されたページに関する通知を受け取ることを許可する。',
+       'config-email-auth' => 'メールの認証を有効にする',
+       'config-email-auth-help' => "ã\81\93ã\81®é\81¸æ\8a\9eè\82¢ã\82\92æ\9c\89å\8a¹ã\81«ã\81\99ã\82\8bã\81¨ã\80\81å\88©ç\94¨è\80\85ã\81\8cã\83¡ã\83¼ã\83«アドレスを設定あるいは変更したときに送信されるリンクにより、そのアドレスを確認しなければならなくなります。
 認証済みのアドレスだけが、他の利用者からのメールや、変更通知のメールを受け取ることができます。
 公開ウィキでは、メール機能による潜在的な不正利用の防止のため、この選択肢を設定することが'''推奨'''されます。",
-       'config-email-sender' => '電子メールのアドレスを返す:',
-       'config-email-sender-help' => 'é\80\81ä¿¡ã\83¡ã\83¼ã\83«ã\81®è¿\94ä¿¡ã\82¢ã\83\89ã\83¬ã\82¹ã\81¨ã\81\97ã\81¦å\88©用するメールアドレスを入力してください。
-宛先不明の場合、このアドレスにその通知が送信されます。
-多くのメールサーバーでは、少なくともドメイン名の一部が有効であることが必要になっています。',
+       'config-email-sender' => '返信メールアドレス:',
+       'config-email-sender-help' => 'é\80\81ä¿¡ã\83¡ã\83¼ã\83«ã\81§è¿\94ä¿¡å\85\88ã\81¨ã\81\97ã\81¦ä½¿用するメールアドレスを入力してください。
+このアドレスは、宛先不明の場合の通知の宛先になります。
+多くのメールサーバーでは、少なくともドメイン名部分は有効である必要があります。',
        'config-upload-settings' => '画像およびファイルのアップロード',
        'config-upload-enable' => 'ファイルのアップロードを有効にする',
-       'config-upload-help' => 'ファイルのアップロードは潜在的にあなたのサーバにセキュリティ上の危険をさらします。
+       'config-upload-help' => 'ファイルのアップロードは潜在的にあなたのサーバにセキュリティ上の危険をさらします。
 更なる情報のために、マニュアルの[//www.mediawiki.org/wiki/Manual:Security security section] を読むことをすすめます。
 
\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\82\92å\8f¯è\83½ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\80\81ã\83¡ã\83\87ã\82£ã\82¢ã\82¦ã\82£ã\82­ã\81®ã\83«ã\83¼ã\83\88ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä¸\8bã\81®<code>images</code>ã\82µã\83\96ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®ã\83¢ã\83¼ã\83\89ã\82\92å¤\89æ\9b´ã\81\97ã\81¾ã\81\99ã\80\82ã\81\9dã\81\86ã\81\99ã\82\8bã\81\93ã\81¨ã\81«ã\82\88ã\82\8aã\80\81ã\82¦ã\82§ã\83\96ã\82µã\83¼ã\83\90ã\81¯ã\81\9dã\81\93ã\81«æ\9b¸ã\81\8dè¾¼ã\81¿ã\81\8cå\8f¯è\83½になります。
\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\81«ã\80\81ã\83¡ã\83\87ã\82£ã\82¢ã\82¦ã\82£ã\82­ã\81®ã\83«ã\83¼ã\83\88ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªä¸\8bã\81®<code>images</code>ã\82µã\83\96ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®ã\83¢ã\83¼ã\83\89ã\82\92å¤\89æ\9b´ã\81\97ã\81¾ã\81\99ã\80\82ã\81\9dã\81\86ã\81\99ã\82\8bã\81\93ã\81¨ã\81§ã\80\81ã\82¦ã\82§ã\83\96ã\82µã\83¼ã\83\90ã\83¼ã\81¯ã\81\9dã\81\93ã\81«æ\9b¸ã\81\8dè¾¼ã\82\81ã\82\8bã\82\88ã\81\86になります。
 そして、このオプションを有効にしてください。',
        'config-upload-deleted' => '削除されたファイルのためのディレクトリ:',
        'config-upload-deleted-help' => '削除されるファイルを保存するためのディレクトリを選択してください。
 これがウェブからアクセスできないことが理想です。',
        'config-logo' => 'ロゴのURL:',
-       'config-logo-help' => 'MediaWikiã\81®æ\9cªè¨­å®\9aç\8a¶æ\85\8bã\81®ã\82¹ã\82­ã\83³では、サイドバー上部に135x160ピクセルのロゴ用の余白があります。
-適切なサイズの画像をアップロードし、そのURLをここに入力してください。
+       'config-logo-help' => 'MediaWikiã\81®æ\97¢å®\9aã\81®å¤\96è£\85では、サイドバー上部に135x160ピクセルのロゴ用の余白があります。
\81©å\88\87ã\81ªã\82µã\82¤ã\82ºã\81®ç\94»å\83\8fã\82\92ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\81\97ã\81¦ã\80\81ã\81\9dã\81®URLã\82\92ã\81\93ã\81\93ã\81«å\85¥å\8a\9bã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82
 
\82\82ã\81\97ã\83­ã\82´ã\81\8cè¦\81ã\82\89ã\81ªã\81\84ã\81ªã\82\89ã\81°、このボックスを空白のままにしてください。',
\83­ã\82´ã\81\8cä¸\8dè¦\81ã\81®å ´å\90\88ã\81¯、このボックスを空白のままにしてください。',
        'config-instantcommons' => 'InstantCommons機能を有効にする',
        'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons InstantCommons]は、[//commons.wikimedia.org/ ウィキメディア・コモンズ]のサイトで見つかった画像や音声、その他のメディアをウィキ上で利用することができるようになる機能です。
 これを有効化するには、MediaWikiはインターネットに接続できなければなりません。
@@ -9783,18 +9803,20 @@ GNUフリー文書利用許諾契約書はウィキペディアが採用して
        'config-install-step-failed' => '失敗した',
        'config-install-extensions' => '拡張機能を含む',
        'config-install-database' => 'データベースの構築',
+       'config-install-schema' => 'スキーマの作成',
+       'config-install-pg-schema-not-exist' => 'PostgreSQL スキーマがありません。',
        'config-install-pg-schema-failed' => 'テーブルの作成に失敗した。
 ユーザ"$1"が図式"$2"に書き込みができるようにしてください。',
        'config-install-pg-commit' => '変更を送信',
        'config-install-user' => 'データベースユーザを作成する',
        'config-install-user-grant-failed' => 'ユーザー「$1」に許可を与えることに失敗しました。:$2',
        'config-install-tables' => 'テーブルの作成',
-       'config-install-tables-exist' => "'''è­¦å\91\8a'''ï¼\9aMediaWikiã\83\86ã\83¼ã\83\96ã\83«ã\81\8cã\80\81ã\81\99ã\81§ã\81«å­\98å\9c¨ã\81\97ã\81¦ã\81\84るようです。
+       'config-install-tables-exist' => "'''è­¦å\91\8a'''ï¼\9aMediaWikiã\83\86ã\83¼ã\83\96ã\83«ã\81¯æ\97¢ã\81«å­\98å\9c¨ã\81\99るようです。
 作成を飛ばします。",
        'config-install-tables-failed' => "'''エラー''':テーブルの作成が、次のエラーにより失敗しました:$1",
        'config-install-interwiki' => '既定のウィキ間テーブルを導入しています',
        'config-install-interwiki-list' => 'ファイル<code>interwiki.list</code>を見つけることができませんでした。',
-       'config-install-interwiki-exists' => "'''警告''':ウィキ間テーブルはすでに登録されているようです。
+       'config-install-interwiki-exists' => "'''警告''':ウィキ間テーブルはに登録されているようです。
 既定のテーブルを無視します。",
        'config-install-keys' => '秘密鍵を生成する',
        'config-install-sysop' => '管理者のユーザーアカウントを作成する',
@@ -9806,9 +9828,9 @@ MediaWikiのインストールに成功しました。
 <code>LocalSettings.php</code>ファイルが生成されました。
 すべての設定がそのファイルに含まれています。
 
-それをダウンロードし、ウィキをインストールした基準ディレクトリー(index.phpと同じディレクトリー)に置く必要があります。ダウンロードは自動的に開始しているはずです。
+それをダウンロードし、ウィキをインストールした基準ディレクトリ(index.phpと同じディレクトリ)に設置する必要があります。ダウンロードは自動的に開始しているはずです。
 
\83\80ã\82¦ã\83³ã\83­ã\83¼ã\83\89ã\81\8cé\96\8bå§\8bã\81\97ã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\80\81ã\81¾ã\81\9fã\83\80ã\82¦ã\83³ã\83­ã\83¼ã\83\89ã\82\92ã\82­ã\83£ã\83³ã\82»ã\83«ã\81\97ã\81\9få ´å\90\88ã\81¯ã\80\81以ä¸\8bのリンクからダウンロードを再開することができます:
\83\80ã\82¦ã\83³ã\83­ã\83¼ã\83\89ã\81\8cé\96\8bå§\8bã\81\97ã\81¦ã\81\84ã\81ªã\81\84å ´å\90\88ã\80\81ã\81¾ã\81\9fã\83\80ã\82¦ã\83³ã\83­ã\83¼ã\83\89ã\82\92ã\82­ã\83£ã\83³ã\82»ã\83«ã\81\97ã\81\9få ´å\90\88ã\81¯ã\80\81ä¸\8bè¨\98のリンクからダウンロードを再開することができます:
 
 $3
 
@@ -9817,7 +9839,7 @@ $3
 それを完了すれば、'''[$2 ウィキに入る]'''ことができます。",
        'config-download-localsettings' => 'LocalSettings.phpをダウンロード',
        'config-help' => 'ヘルプ',
-       'mainpagetext' => "'''MediaWikiが正常にインストールされました。'''",
+       'mainpagetext' => "'''MediaWiki のインストールに成功しました。'''",
        'mainpagedocfooter' => 'ウィキソフトウェアの使い方に関する情報は[//meta.wikimedia.org/wiki/Help:Contents 利用者案内]を参照してください。
 
 == はじめましょう ==
@@ -9994,33 +10016,60 @@ $messages['kn'] = array(
  * @author 아라
  */
 $messages['ko'] = array(
-       'config-desc' => 'MediaWiki 설치 마법사',
+       'config-desc' => '미디어위키 설치 마법사',
        'config-title' => 'MediaWiki $1 설치',
        'config-information' => '정보',
        'config-localsettings-upgrade' => '<code>LocalSettings.php</code> 파일이 감지되었습니다.
 이 설치를 업그레이드하려면 아래 상자에 <code>$wgUpgradeKey</code>의 값을 입력해주세요.
 LocalSettings.php에 찾으세요.',
-       'config-localsettings-cli-upgrade' => 'LocalSettings.php 파일이 감지되었습니다. 이 설치를 업그레이드하려면 update.php를 대신 실행하세요',
+       'config-localsettings-cli-upgrade' => 'LocalSettings.php 파일이 감지되었습니다.
+이 설치를 업그레이드하려면 update.php를 대신 실행하세요',
        'config-localsettings-key' => '업그레이드 키:',
        'config-localsettings-badkey' => '제공한 키가 잘못되었습니다.',
-       'config-upgrade-key-missing' => 'MediaWiki의 기존 설치가 감지되었습니다.
+       'config-upgrade-key-missing' => '미디어위키의 기존 설치가 감지되었습니다.
 이 설치를 업그레이드하려면 LocalSettings.php의 아래에 다음 줄을 넣으세요:
 
 $1',
+       'config-localsettings-incomplete' => '기존 LocalSettings.php가 완전하지 않은 것 같습니다.
+$1 변수가 설정되어 있지 않습니다.
+이 변수가 설정되도록 LocalSettings.php를 변경하고 "계속"을 클릭하세요.',
+       'config-localsettings-connection-error' => 'LocalSettings.php 또는 AdminSettings.php에 지정한 설정을 사용하여 데이터베이스에 연결할 때 오류가 발생했습니다. 이러한 설정을 수정하고 다시 시도하세요.
+
+$1',
+       'config-session-error' => '세션 시작 오류: $1',
+       'config-session-expired' => '세션 데이터가 만료된 것 같습니다.
+세션은 $1의 작동 시간 동안 구성됩니다.
+php.ini에 있는 <code>session.gc_maxlifetime</code>에서 설정해 이를 증가시킬 수 있습니다.
+설치 과정을 다시 시작합니다.',
+       'config-no-session' => '세션 데이터가 손실되었습니다!
+php.ini를 확인하고 <code>session.save_path</code>가 적절한 디렉토리로 설정되어 있는지 확인하세요.',
+       'config-your-language' => '설치 언어:',
+       'config-your-language-help' => '설치 과정에서 사용할 언어를 선택하세요.',
        'config-wiki-language' => '위키 언어:',
+       'config-wiki-language-help' => '주로 작성될 위키에 대한 언어를 선택하세요.',
        'config-back' => '← 뒤로',
        'config-continue' => '계속 →',
        'config-page-language' => '언어',
+       'config-page-welcome' => '미디어위키에 온 것을 환영합니다!',
        'config-page-dbconnect' => '데이터베이스에 연결',
+       'config-page-upgrade' => '기존 설치 업그레이드',
+       '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-help-restart' => '당신이 입력한 모든 저장된 데이터를 지우고 설치 과정을 다시 시작하겠습니까?',
        'config-restart' => '예, 다시 시작합니다.',
        'config-welcome' => '=== 사용 환경 검사 ===
 이 환경이 미디어위키 설치에 적합할 지 기본 검사를 실행합니다.
\84¤ì¹\98 ì¤\91 ë\8f\84ì\9b\80ì\9d´ í\95\84ì\9a\94í\95\98ë\8b¤ë©´ ì\9d´ ê²\80ì\82¬ ê²°ê³¼ë¥¼ í\95¨ê»\98 ì \9cê³µí\95´ì£¼ì\85\94야 합니다.',
-       'config-copyright' => "=== ì \80ì\9e\91ê¶\8c ë°\8f ì\82¬용 약관 ===
\84¤ì¹\98 ì¤\91 ë\8f\84ì\9b\80ì\9d´ í\95\84ì\9a\94í\95\98ë\8b¤ë©´ ì\9d´ ê²\80ì\82¬ ê²°ê³¼ë¥¼ í\95¨ê»\98 ì \9cê³µí\95´ì£¼ì\96´야 합니다.',
+       'config-copyright' => "=== ì \80ì\9e\91ê¶\8c ë°\8f ì\9d´용 약관 ===
 
 $1
 
 이 프로그램이 유용하게 사용될 수 있기를 바라지만 '''상용으로 사용'''되거나 '''특정 목적에 맞을 것'''이라는 것을 '''보증하지 않습니다'''.
 자세한 내용은 GNU 일반 공중 사용 허가서를 참고하십시오.
 
-당신은 이 프로그램을 통해 <doclink href=Copying>GNU 일반 공중 사용 허가서 전문</doclink>을 받았습니다; 그렇지 않다면, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA로 편지를 보내주시거나 [http://www.gnu.org/copyleft/gpl.html 온라인으로 읽어보시기] 바랍니다.",
+당신은 이 프로그램을 통해 <doclink href=Copying>GNU 일반 공중 사용 허가서 전문</doclink>을 받았습니다. 그렇지 않다면, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA로 편지를 보내주시거나 [http://www.gnu.org/copyleft/gpl.html 온라인으로 읽어보시기] 바랍니다.",
+       'config-sidebar' => '* [//www.mediawiki.org 미디어위키 홈]
+* [//www.mediawiki.org/wiki/Help:Contents 사용자 가이드]
+* [//www.mediawiki.org/wiki/Manual:Contents 관리자 가이드]
+* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]
+----
+* <doclink href=Readme>읽어보기</doclink>
+* <doclink href=ReleaseNotes>배포 노트</doclink>
+* <doclink href=Copying>전문</doclink>
+* <doclink href=UpgradeDoc>업그레이드하기</doclink>',
        'config-env-good' => '환경이 확인되었습니다.
-MediaWiki를 설치할 수 있습니다.',
+미디어위키를 설치할 수 있습니다.',
        'config-env-bad' => '환경이 확인되었습니다.
-MediaWiki를 설치할 수 없습니다.',
+미디어위키를 설치할 수 없습니다.',
        'config-env-php' => 'PHP $1(이)가 설치되었습니다.',
        'config-env-php-toolow' => 'PHP $1(이)가 설치되었습니다.
 하지만 미디어위키는 PHP $2 이상이 필요합니다.',
-       'config-ctype' => "'''심각''': PHP는 [http://www.php.net/manual/en/ctype.installation.php Ctype 확장 기능]에 대해 지원하여 컴파일해야 합니다.",
+       'config-unicode-using-utf8' => '유니코드 정규화에 대해 Brion Vibber의 utf8_normalize.so를 사용합니다.',
+       'config-unicode-using-intl' => '유니코드 정규화에 대해 [http://pecl.php.net/intl intl PECL 확장]을 사용합니다.',
+       'config-unicode-pure-php-warning' => "'''경고''': [http://pecl.php.net/intl intl PECL 확장]은 PHP만으로 구현하는 데에는 느려질 정도로 성능이 떨어지는 유니코드 정규화를 처리할 수 없습니다.
+높은 트래픽의 사이트에서 실행하려면 [//www.mediawiki.org/wiki/Unicode_normalization_considerations 유니코드 정규화]에 대해 약간 참고해야 합니다.",
+       'config-unicode-update-warning' => "'''경고''': 유니코드 정규화 래퍼의 설치된 버전은 [http://site.icu-project.org/ ICU 프로젝트]의 라이브러리의 이전 버전을 사용합니다.
+만약 유니코드를 사용하는 것에 대해 우려가 된다면 [//www.mediawiki.org/wiki/Unicode_normalization_considerations 업그레이드]해야합니다.",
+       'config-no-db' => '적절한 데이터베이스 드라이버를 찾을 수 없습니다! PHP에 데이터베이스 드라이버를 설치해야 합니다.
+다음 데이터베이스 유형을 지원합니다 : $1.
+
+호스팅을 공유하고 있다면 적절한 데이터베이스 드라이버를 설치하도록 호스팅 제공 업체에 문의하세요.
+PHP를 직접 컴파일할 경우 데이터베이스 클라이언트를 사용하여 활성화하도록 다시 설정하세요. 예들 들어 <code>./configure --with-mysql</code>을 사용합니다.
+데비안이나 우분트 패키지에서 PHP를 설치했다면 php-mysql 모듈도 설치해야 합니다.',
+       'config-outdated-sqlite' => "'''경고''': SQLite 필요한 최소 $2 버전보다 낮은 $1(이)가 있습니다. SQLite는 사용할 수 없습니다.",
+       'config-no-fts3' => "'''경고''': SQLite는 [//sqlite.org/fts3.html FTS3 모듈] 없이 컴파일되어, 검색 기능은 백엔드에 사용할 수 없습니다.",
+       'config-register-globals' => "'''경고: PHP의 <code>[http://php.net/register_globals register_globals]</code> 옵션이 활성화되어 있습니다.'''
+'''가능하면 이를 비활성화하십시오.'''
+미디어위키는 작동하지만 서버에 잠재적인 보안 취약점에 노출됩니다.",
+       'config-magic-quotes-runtime' => "'''치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]이 활성합니다!'''
+이 옵션은 데이터를 입력하는 데 예기치 않는 손상이 일어납니다.
+설치할 수 없습니다. 또는 미디어위키가 사용하지 않는 이 옵션을 비활성화하십시오.",
+       'config-magic-quotes-sybase' => "'''치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]이 활성합니다!'''
+이 옵션은 데이터를 입력하는 데 예기치 않는 손상이 일어납니다.
+설치할 수 없습니다. 또는 미디어위키가 사용하지 않는 이 옵션을 비활성화하십시오.",
+       'config-mbstring' => "'''치명: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]이 활성합니다!'''
+이 옵션은 오류가 발생하고 데이터를 입력하는 데 예기치 않는 손상이 일어날 수 있습니다.
+설치할 수 없습니다. 또는 미디어위키가 사용하지 않는 이 옵션을 비활성화하십시오.",
+       'config-ze1' => "'''치명: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]이 활성합니다!'''
+이 옵션은 미디어위키에 끔찍한 버그를 일으킵니다.
+설치할 수 없습니다. 또는 미디어위키가 사용하지 않는 이 옵션을 비활성화하십시오.",
+       'config-safe-mode' => "'''경고:''' [http://www.php.net/features.safe-mode 안전 모드]이 활성합니다!
+이는 특히 파일을 올리거나 <code>math</code>를 지원하는 데 문제가 발생할 수 있습니다.",
+       'config-xml-bad' => 'PHP의 XML 모듈이 없습니다.
+미디어위키는 이 모듈의 기능이 필요하며 이 설정에서는 작동하지 않습니다.
+Mandrake를 실행하고 있다면 php-xml 패키지를 설치하세요.',
+       'config-pcre' => 'PCRE 지원 모듈이 없는 것 같습니다.
+미디어위키는 Perl 호환 정규 표현식을 작동시켜야 합니다.',
+       'config-pcre-no-utf8' => "'''치명''': PHP의 PCRE 모듈은 RCRE_UTF8 지원 없이 컴파일된 것 같습니다.
+미디어위키가 제대로 작동하려면 UTF-8 지원이 필요합니다.",
+       'config-memory-raised' => 'PHP의 <code>memory_limit</code>는 $1이며 $2(으)로 늘리세요.',
+       'config-memory-bad' => "'''경고:''' PHP의 <code>memory_limit</code>는 $1입니다.
+이는 아마도 너무 낮은 것 같습니다.
+설치가 실패할 수 있습니다!",
+       'config-ctype' => "'''치명''': PHP는 [http://www.php.net/manual/en/ctype.installation.php Ctype 확장 기능]에 대해 지원하여 컴파일해야 합니다.",
+       'config-xcache' => '[http://xcache.lighttpd.net/ XCache]가 설치되었습니다',
        'config-apc' => '[http://www.php.net/apc APC]가 설치되었습니다',
+       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache]가 설치되었습니다',
+       'config-no-cache' => "'''경고:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] 또는 [http://www.iis.net/download/WinCacheForPhp WinCache]를 찾을 수 없습니다.
+개체 캐싱이 활성화되지 않습니다.",
+       'config-mod-security' => "'''경고''': 웹 서버에 [http://modsecurity.org/ mod_security]가 허용되었습니다. 잘못 설정된 경우 미디어위키나 사용자가 임의의 콘텐츠를 게시할 수 있는 다른 소프트웨어에 대한 문제를 일으킬 수 있습니다.
+[http://modsecurity.org/documentation/ mod_security] 문서를 참고하거나 임의의 오류가 발생할 경우 호스트의 지원 요청에 문의하십시오.",
        'config-diff3-bad' => 'GNU diff3를 찾을 수 없습니다.',
        'config-imagemagick' => 'ImageMagick를 찾았습니다: <code>$1</code>.
 올리기를 활성화할 경우 그림 섬네일이 활성화될 것입니다.',
        'config-gd' => '내장된 GD 그래픽 라이브러리를 찾았습니다.
 올리기를 활성화할 경우 그림 섬네일이 활성화될 것입니다.',
-       'config-brokenlibxml' => '시스템에 버그가 있는 PHP와 libxml2의 조합이 있으며 MediaWiki나 다른 웹 어플리케이션에 숨겨진 데이터 손상을 일으킬 수 있습니다.
+       'config-no-scaling' => 'GD 라이브러리나 ImageMagick를 찾을 수 없습니다.
+그림 섬네일이 비활성화될 것입니다.',
+       'config-no-uri' => "'''오류:''' 현재 URI를 확인할 수 없습니다.
+설치가 중단되었습니다.",
+       'config-no-cli-uri' => "'''경고''': 기본값을 사용하여 --scriptpath를 지정하지 않았습니다: <code>$1</code>.",
+       'config-using-server' => '"<nowiki>$1</nowiki>"(을)를 서버 이름으로 사용합니다.',
+       'config-using-uri' => '"<nowiki>$1$2</nowiki>"(을)를 서버 URL로 사용합니다.',
+       'config-uploads-not-safe' => "'''경고:''' 올리기에 대한 기본 디렉토리(<code>$1</code>)는 임의의 스크립트 실행에 취약합니다.
+미디어위키는 보안 위협에 대한 모든 올린 파일을 검사하지만, 이는 올리기를 활성화하기 전에 [//www.mediawiki.org/wiki/Manual:Security#Upload_security 이 보안 취약점을 해결할 것]을 매우 권장합니다.",
+       'config-no-cli-uploads-check' => "'''경고:''' 올리기에 대한 기본 디렉토리(<code>$1</code>)는 CLI를 설치하는 동안 임의의 스크립트 실행에 대한 취약점에 대해 검사되지 않습니다.",
+       'config-brokenlibxml' => '시스템에 버그가 있는 PHP와 libxml2의 조합이 있으며 미디어위키나 다른 웹 어플리케이션에 숨겨진 데이터 손상을 일으킬 수 있습니다.
 PHP 5.2.9 이후와 libxml2 2.7.3 이후로 업그레이드하세요 ([//bugs.php.net/bug.php?id=45996 PHP에 제기한 버그]).
 설치가 중단되었습니다.',
+       'config-using531' => '미디어위키는 <code>__call()</code>을 참고로 매개 변수를 포함하는 버그로 인해 PHP $1(와)과 함께 사용할 수 없습니다.
+문제를 해결하려면 PHP 5.3.2 이상로 업그레이드하거나 PHP 5.3.0으로 다운그레이드를 하세요.
+설치가 중단되었습니다.',
+       'config-suhosin-max-value-length' => 'Suhosin(수호신)이 설치되었고 $1 바이트로 GET 매개 변수 길이를 제한하고 있습니다. 미디어위키의 ResourceLoader 구성 요소는 이 제한을 해결하지만 성능이 저하됩니다. 가능하면 php.ini의 suhosin.get.max_value_length에 1024 이상으로 설정하고 LocalSettings.php의 $wgResourceLoaderMaxQueryLength에 같은 값을 설정해야 합니다.',
        'config-db-type' => '데이터베이스 종류:',
        'config-db-host' => '데이터베이스 호스트:',
        'config-db-host-help' => '데이터베이스 서버가 다른 서버에 있을 경우 여기에 호스트 이름이나 IP 주소를 입력하세요.
@@ -10064,10 +10184,10 @@ PostgreSQL을 사용할 경우 유닉스 소켓을 통해 연결되도록 입력
 이는 공백이 없어야 합니다.
 
 웹 호스팅을 공유해 사용하는 경우 호스팅 제공 업체도 당신에게 제어판을 통해 데이터베이스를 사용하거나 만들 수 있도록 특정 데이터베이스 이름을 제공합니다.',
-       'config-db-name-oracle' => '데이터베이스 스마:',
+       'config-db-name-oracle' => '데이터베이스 스마:',
        'config-db-account-oracle-warn' => '데이터베이스 백엔드로 오라클을 설치하기 위해 지원하는 세 가지 시나리오가 있습니다:
 
\84¤ì¹\98 ê³¼ì \95ì\9d\98 ì\9d¼ë¶\80ë¡\9c ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ ê³\84ì \95ì\9d\84 ë§\8cë\93¤ë ¤ë©´ ì\84¤ì¹\98를 ì\9c\84í\95´ ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ ê³\84ì \95ì\9c¼ë¡\9c SYSDBA ì\97­í\95 ì\9d\84 ê°\80ì§\84 ê³\84ì \95ì\9d\84 ì \9cê³µí\95\98ê³  ì\9b¹ ì\95¡ì\84¸ì\8a¤ ê³\84ì \95ì\97\90 ë\8c\80í\95´ ì\9b\90í\95\98ë\8a\94 ì\9e\90격 ì¦\9dëª\85ì\9d\84 ì§\80ì \95í\95\98ì\84¸ì\9a\94, ê·¸ë \87ì§\80 ì\95\8aì\9c¼ë©´ ì\88\98ë\8f\99ì\9c¼ë¡\9c ì\9b¹ ì\95¡ì\84¸ì\8a¤ ê³\84ì \95ì\9d\84 ë§\8cë\93¤ ì\88\98 ì\9e\88ì\9c¼ë©° (í\95\84ì\9a\94í\95\9c ê²½ì\9a° ê¶\8cí\95\9c ì\8a¤í\82¤ë§\88 ê°\9c체를 ë§\8cë\93¤ì\96´ì\95¼ í\95©ë\8b\88ë\8b¤) ë\98\90ë\8a\94 ë\8b¤ë¥¸ ê³\84ì \95 ë\91\90 ê°\9c를 ë§\8cë\93¤ê³  ê¶\8cí\95\9cì\9d\84 ê°\80ì§\84 í\95\98ë\82\98ì\9d\98 ì\9b¹ ì\95¡ì\84¸ì\8a¤ë¥¼ 위한 제한된 하나를 제공할 수 있습니다.
\84¤ì¹\98 ê³¼ì \95ì\9d\98 ì\9d¼ë¶\80ë¡\9c ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ ê³\84ì \95ì\9d\84 ë§\8cë\93¤ë ¤ë©´ ì\84¤ì¹\98를 ì\9c\84í\95´ ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ ê³\84ì \95ì\9c¼ë¡\9c SYSDBA ì\97­í\95 ì\9d\84 ê°\80ì§\84 ê³\84ì \95ì\9d\84 ì \9cê³µí\95\98ê³  ì\9b¹ ì \91ê·¼ ê³\84ì \95ì\97\90 ë\8c\80í\95´ ì\9b\90í\95\98ë\8a\94 ì\9e\90격 ì¦\9dëª\85ì\9d\84 ì§\80ì \95í\95\98ì\84¸ì\9a\94, ê·¸ë \87ì§\80 ì\95\8aì\9c¼ë©´ ì\88\98ë\8f\99ì\9c¼ë¡\9c ì\9b¹ ì \91ê·¼ ê³\84ì \95ì\9d\84 ë§\8cë\93¤ ì\88\98 ì\9e\88ì\9c¼ë©° (í\95\84ì\9a\94í\95\9c ê²½ì\9a° ê¶\8cí\95\9c ì\8a¤í\82¤ë§\88 ê°\9c체를 ë§\8cë\93¤ì\96´ì\95¼ í\95©ë\8b\88ë\8b¤) ë\98\90ë\8a\94 ë\8b¤ë¥¸ ê³\84ì \95 ë\91\90 ê°\9c를 ë§\8cë\93¤ê³  ê¶\8cí\95\9cì\9d\84 ê°\80ì§\84 í\95\98ë\82\98ì\9d\98 ì\9b¹ ì \91ê·¼ì\9d\84 위한 제한된 하나를 제공할 수 있습니다.
 
 필요한 권한을 가진 계정을 만드는 스크립트는 이 설치의 "maintenance/oracle/" 디렉토리에서 찾을 수 있습니다. 제한된 계정을 사용하면 기본 계정으로 모든 관리 기능을 비활성화할 것을 염두해 두십시오.',
        'config-db-install-account' => '설치를 위한 사용자 계정',
@@ -10076,15 +10196,15 @@ PostgreSQL을 사용할 경우 유닉스 소켓을 통해 연결되도록 입력
        'config-db-password-empty' => '새 데이터베이스 사용자의 비밀번호를 입력하세요: $1.
 비밀번호 없이 사용자를 만들 수도 있지만 이는 안전하지 않습니다.',
        'config-db-install-username' => '설치 과정 중에 데이터베이스에 연결할 때 사용할 사용자 이름을 입력하세요.
-이는 MediaWiki 계정의 사용자 이름이 아닌 데이터베이스에 대한 사용자 이름입니다.',
-       'config-db-install-password' => '설치 과정 중에 데이터베이스에 연결할 때 사용할 비밀번호을 입력하세요. 이는 MediaWiki 계정의 비밀번호가 아닌 데이터베이스에 대한 비밀번호입니다.',
+이는 미디어위키 계정의 사용자 이름이 아닌 데이터베이스에 대한 사용자 이름입니다.',
+       'config-db-install-password' => '설치 과정 중에 데이터베이스에 연결할 때 사용할 비밀번호을 입력하세요. 이는 미디어위키 계정의 비밀번호가 아닌 데이터베이스에 대한 비밀번호입니다.',
        'config-db-install-help' => '설치 과정 중에 데이터베이스에 연결할 때 사용할 사용자 이름과 비밀번호를 입력하세요.',
        'config-db-account-lock' => '정상적으로 작동하는 동안 같은 사용자 이름과 비밀번호를 사용함',
        'config-db-wiki-account' => '정상적인 작동을 위한 사용자 계정',
        'config-db-wiki-help' => '정상적인 위키 작업 동안 데이터베이스에 연결하는 데 사용할 사용자 이름과 비밀 번호를 입력하세요.
 계정이 존재하지 않고 설치 계정에 충분한 권한이 있는 경우 이 사용자 계정은 위키를 작동하는 데 필요한 최소 권한으로 만들어집니다.',
        'config-db-prefix' => '데이터베이스 테이블 접두어:',
-       'config-db-prefix-help' => '여러 위키 사이 또는 MediaWiki와 다른 웹 응용 프로그램 사이에서 하나의 데이터베이스를 공유해야 하는 경우, 충돌을 피하기 위해 모든 테이블 이름에 접두어를 추가하도록 선택할 수 있습니다.
+       'config-db-prefix-help' => '여러 위키 사이 또는 미디어위키와 다른 웹 응용 프로그램 사이에서 하나의 데이터베이스를 공유해야 하는 경우, 충돌을 피하기 위해 모든 테이블 이름에 접두어를 추가하도록 선택할 수 있습니다.
 공백을 사용하지 마세요.
 
 이 필드는 일반적으로 비어있습니다.',
@@ -10094,45 +10214,158 @@ PostgreSQL을 사용할 경우 유닉스 소켓을 통해 연결되도록 입력
        'config-charset-mysql4' => 'MySQL 4.0 UTF-8 하위 호환성',
        'config-charset-help' => "'''경고:''' MySQL 4.1에서 '''UTF-8 하위 호환성'''을 사용하고 나서 <code>mysqldump</code>로 데이터베이스에 백업한다면 이는 모든 ASCII가 아닌 문자를 파괴하고 손상한 백업을 되돌릴 수 없습니다!
 
-'''바이너리 모드'''에서는 MediaWiki는 바이너리 필드의 데이터베이스에 UTF-8 텍스트를 저장합니다.
+'''바이너리 모드'''에서는 미디어위키는 바이너리 필드의 데이터베이스에 UTF-8 텍스트를 저장합니다.
 이는 MySQL의 UTF-8 모드를 보다 더 효율적이고 유니코드 문자의 전체 범위를 사용할 수 있습니다.
 '''UTF-8 모드'''에서는 MySQL은 데이터를 설정하는 어떤 문자열인지를 알 것이며, 표현하고 적절하게 그것을 변환할 수 있지만
-[//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes 기본 다국어 공간] 상의 문자를 저장하지 못하게 될 수 있습니다.",
+[//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes 기본 다국어 범위] 상의 문자를 저장하지 못하게 될 수 있습니다.",
+       'config-mysql-old' => 'MySQL $1 이상이 필요하나 $2(이)가 있습니다.',
        'config-db-port' => '데이터베이스 포트:',
-       'config-db-schema' => 'MediaWiki에 대한 스케마:',
-       'config-db-schema-help' => '이 스케마는 보통 괜찮습니다.
-필요로 알고 있을 경우에만 이를 바꿉니다.',
+       'config-db-schema' => '미디어위키에 대한 스키마:',
+       'config-db-schema-help' => '이 스키마는 보통 괜찮습니다.
+필요로 알고 있을 경우에만 이를 바꾸세요.',
+       'config-pg-test-error' => "'''$1''' 데이터베이스에 연결할 수 없습니다: $2",
+       'config-sqlite-dir' => 'SQLite 데이터 디렉토리:',
+       'config-sqlite-dir-help' => 'SQLite는 하나의 파일에 모든 데이터를 저장합니다.
+
+제공하는 디렉토리는 설치하는 동안 웹 서버에 의해 쓸 수 있어야 합니다.
+
+PHP 파일이 있는 곳을 우리가 이를 맡길 수 없는 이유는 웹을 통해 접근할 수 없다는 것입니다.
+
+설치 마법사가 이과 함께 .htaccess 파일을 만들지만 거기서 실패하면 누군가는 원시 데이터베이스에 접근하는 데 실패합니다.
+이는 원시 사용자 데이터(이메일 주소, 암호 해시) 뿐만 아니라 삭제된 개정판과 위키의 다른 제한된 데이터를 포함합니다.
+
+<code>/var/lib/mediawiki/yourwiki</code>와 같이 모두 다른 곳에서 데이터베이스를 넣어보도록 하세요.',
+       'config-oracle-def-ts' => '기본 테이블공간:',
+       'config-oracle-temp-ts' => '임시 테이블공간:',
+       'config-type-oracle' => '오라클',
+       'config-type-ibm_db2' => 'IBM DB2',
+       'config-support-info' => '미디어위키는 다음의 데이터베이스 시스템을 지원합니다:
+
+$1
+
+데이터베이스 시스템이 표시되지 않을 때 아래에 나열된 다음 지원을 활성화하려면 당신은 위의 링크된 지시에 따라 사용해볼 수도 있습니다.',
+       'config-support-mysql' => '* $1은 미디어위키의 기본 대상으로 가장 잘 지원합니다. ([http://www.php.net/manual/en/mysql.installation.php MySQL을 지원하여 PHP를 컴파일하는 방법])',
+       'config-support-postgres' => '* $1은 MySQL의 대안으로 인기있는 오픈 소스 데이터베이스 시스템입니다. ([http://www.php.net/manual/en/pgsql.installation.php PostgreSQL을 지원하여 PHP를 컴파일하는 방법]) 몇가지 사소한 해결하지 못한 버그가 있을 수 있으며, 이를 제작 환경에서 사용하지 않는 것이 좋습니다.',
+       'config-support-sqlite' => '* $1는 매우 잘 지원하는 가벼운 데이터베이스 시스템입니다. ([http://www.php.net/manual/en/pdo.installation.php SQLite를 지원하여 PHP를 컴파일하는 방법], PDO 사용)',
+       'config-support-oracle' => '* $1은 상용 엔터프라이스 데이터베이스입니다. ([http://www.php.net/manual/en/oci8.installation.php OCI8을 지원하여 PHP를 컴파일하는 방법])',
+       'config-support-ibm_db2' => '* $1는 상용 엔터프라이즈 데이터베이스입니다.',
        'config-header-mysql' => 'MySQL 설정',
        'config-header-postgres' => 'PostgreSQL 설정',
        'config-header-sqlite' => 'SQLite 설정',
        'config-header-oracle' => '오라클 설정',
        'config-header-ibm_db2' => 'IBM DB2 설정',
+       'config-invalid-db-type' => '잘못된 데이터베이스 종류',
+       'config-missing-db-name' => '"데이터베이스 이름"에 대한 값을 입력해야 합니다',
+       'config-missing-db-host' => '"데이터베이스 호스트"에 대한 값을 입력해야 합니다',
+       'config-missing-db-server-oracle' => '"데이터베이스 TNS"에 대한 값을 입력해야 합니다',
+       'config-invalid-db-server-oracle' => '"$1" 데이터베이스 TNS가 잘못됐습니다.
+ASCII 글자 (a-z, A-Z), 숫자 (0-9), 밑줄 (_)과 하이픈 (-)만 사용하세요.',
+       'config-invalid-db-name' => '"$1" 데이터베이스 이름이 잘못되었습니다.
+ASCII 글자 (a-z, A-Z), 숫자 (0-9), 밑줄 (_)과 하이픈 (-)만 사용하세요.',
+       'config-invalid-db-prefix' => '"$1" 데이터베이스 접두어가 잘못됐습니다.
+ASCII 글자 (a-z, A-Z), 숫자 (0-9), 밑줄 (_)과 하이픈 (-)만 사용하세요.',
        'config-connection-error' => '$1.
 
 호스트, 계정 이름과 비밀번호를 확인하고 다시 시도하세요.',
+       'config-invalid-schema' => '미디어위키 "$1"에 대한 스키마가 잘못됐습니다.
+ASCII 글자 (a-z, A-Z), 숫자 (0-9), 밑줄 (_)과 하이픈 (-)만 사용하세요.',
        'config-db-sys-create-oracle' => '설치 마법사는 새 계정을 만들기 위한 SYSDBA 계정만을 지원합니다.',
        'config-db-sys-user-exists-oracle' => '"$1" 사용자 계정이 이미 존재합니다. SYSDBA는 새 계정을 만드는 데에만 사용할 수 있습니다!',
+       'config-postgres-old' => 'PostgreSQL $1 이상이 필요하나 $2(이)가 있습니다.',
+       'config-sqlite-name-help' => '위키를 식별하기 위한 이름을 선택하세요.
+공백이나 하이픈을 사용하지 마십시오.
+이는 SQLite 데이터 파일 이름에 사용됩니다.',
+       'config-sqlite-parent-unwritable-group' => '<code><nowiki>$1</nowiki></code> 데이터 디렉토리를 만들 수 없으며 <code><nowiki>$2</nowiki></code> 상위 디렉토리에 웹 서버에 의해 쓸 수 없기 때문입니다.
+
+설치 마법사는 웹 서버로 실행중인 사용자를 결정할 수 없습니다.
+계속하려면 이를 쓸 수 있는 <code><nowiki>$3</nowiki></code> 디렉토리를 만드세요.
+유닉스/리눅스 시스템에서의 수행:
+
+<pre>cd $2
+mkdir $3
+chgrp $4 $3
+chmod g+w $3</pre>',
+       'config-sqlite-parent-unwritable-nogroup' => '<code><nowiki>$1</nowiki></code> 데이터 디렉토리를 만들 수 없으며 <code><nowiki>$2</nowiki></code> 상위 디렉토리에 웹 서버에 의해 쓸 수 없기 때문입니다.
+
+설치 마법사는 웹 서버로 실행중인 사용자를 결정할 수 없습니다.
+계속하려면 이(와 기타!)를 전역으로 쓸 수 있는 <code><nowiki>$3</nowiki></code> 디렉토리를 만드세요.
+유닉스/리눅스 시스템에서의 수행:
+
+<pre>cd $2
+mkdir $3
+chmod a+w $3</pre>',
+       'config-sqlite-mkdir-error' => '"$1" 데이터 디렉토리를 만드는 중 오류났습니다.
+경로를 확인하고 다시 시도하세요.',
+       'config-sqlite-dir-unwritable' => '"$1" 디렉토리에 쓸 수 없습니다.
+웹 서버를 쓸 수 있도록 권한을 바꾸고 다시 시도하세요.',
+       'config-sqlite-connection-error' => '$1.
+
+호스트, 계정 이름과 비밀번호를 확인하고 다시 시도하세요.',
        'config-sqlite-readonly' => '파일 <code>$1</code>은 쓰기가 불가능합니다.',
-       'config-can-upgrade' => "이 데이터베이스에 MediaWiki 테이블이 있습니다.
-MediaWiki $1(으)로 업그레이드하려면 '''계속'''을 클릭하세요.",
-       'config-db-web-account' => '웹 액세스를 위한 데이터베이스 계정',
-       'config-db-web-help' => '위키의 일반적인 작업 중에 데이터베이스 서버에 연결하는 데 사용할 웹 서버에 대한 계정 이름과 비밀번호를 선택합니다.',
-       'config-db-web-account-same' => '설치를 위해 같은 계정을 사용',
-       'config-db-web-create' => '이 계정이 아직 존재하지 않을 경우 계정을 만들기',
+       'config-sqlite-cant-create-db' => '<code>$1</code> 데이터베이스 파일을 만들 수 없습니다.',
+       'config-sqlite-fts3-downgrade' => 'PHP가 FTS3 지원이 없어졌습니다. 테이블을 다운그레이드하세요.',
+       'config-can-upgrade' => "이 데이터베이스에 미디어위키 테이블이 있습니다.
+미디어위키 $1(으)로 업그레이드하려면 '''계속'''을 클릭하세요.",
+       'config-upgrade-done' => "업그레이드가 완료되었습니다.
+
+이제 [$1 위키를 시작]할 수 있습니다.
+
+만약 <code>LocalSettings.php</code> 파일을 다시 만들기를 원하면 아래의 버튼을 클릭하세요.
+이것은 위키에 문제가 있지 않는 한 '''권장하지 않습니다'''.",
+       'config-upgrade-done-no-regenerate' => '업그레이드가 완료되었습니다.
+
+이제 [$1 위키를 시작]할 수 있습니다.',
+       'config-regenerate' => 'LocalSettings.php 다시 만들기 →',
+       'config-show-table-status' => 'SHOW TABLE STATUS 쿼리 실패!',
+       'config-unknown-collation' => "'''경고:''' 데이터베이스가 인식하지 않는 정렬을 사용하고 있습니다.",
+       'config-db-web-account' => '웹 접근을 위한 데이터베이스 계정',
+       'config-db-web-help' => '위키의 일반적인 작업 중에 데이터베이스 서버에 연결하는 데 사용할 웹 서버에 대한 계정 이름과 비밀번호를 선택하세요.',
+       'config-db-web-account-same' => '설치를 위해 같은 계정 사용',
+       'config-db-web-create' => '이 계정이 아직 존재하지 않을 경우 계정 만들기',
        'config-db-web-no-create-privs' => '설치를 위해 지정한 계정은 계정을 만들 수 있는 충분한 권한이 없습니다.
 여기서 지정한 계정은 이미 존재해야 합니다.',
+       'config-mysql-engine' => '스토리지 엔진:',
+       'config-mysql-innodb' => 'InnoDB',
+       'config-mysql-myisam' => 'MyISAM',
+       'config-mysql-myisam-dep' => "'''경고''': 미디어위키와 함께 사용하도록 권장하지 않는 MySQL에 대한 스토리지 엔진으로 MyISAM을 선택하였습니다. 이유는:
+* 이는 테이블이 잠겨있어 동시성을 거의 지원하지 않습니다
+* 이는 다른 엔진보다 손상이 더 자주 발생합니다.
+* 미디어위키 바탕 코드가 항상 정상적으로 MyISAM을 처리하지 않습니다.
+
+MySQL 설치가 InnoDB를 지원한다면 그 선택 대신에 InnoDB를 선택할 것을 매우 권장합니다.
+MySQL 설치가 InnoDB를 지원하지 않는다면 아마도 업그레이드를 해야 할 수도 있습니다.",
+       'config-mysql-engine-help' => "'''InnoDB'''는 동시적인 지원에 좋기 때문에 거의 항상 최고의 옵션입니다.
+
+'''MyISAM'''은 단일 사용자 또는 읽기 전용 설치에 빠를 수 있습니다.
+MyISAM 데이터베이스는 InnoDB 데이터베이스보다 더 자주 손실될 수 있습니다.",
+       'config-mysql-charset' => '데이터베이스 문자 집합:',
+       'config-mysql-binary' => '바이너리',
        'config-mysql-utf8' => 'UTF-8',
-       'config-ibm_db2-low-db-pagesize' => "당신의 DB2 데이터베이스가 부족한 페이지 크기가 기본 테이블 공간에 있습니다. 페이지 크기는 '''32K''' 이상이어야 합니다.",
-       'config-site-name' => '위키의 이름:',
-       'config-site-name-help' => '이것이 브라우저 제목 표시줄과 다른 여러 곳에 나타날 것입니다.',
+       'config-mysql-charset-help' => "'''바이너리 모드'''에서는 미디어위키는 바이너리 필드의 데이터베이스에 UTF-8 텍스트를 저장합니다.
+이는 MySQL의 UTF-8 모드를 보다 더 효율적이고 유니코드 문자의 전체 범위를 사용할 수 있습니다.
+'''UTF-8 모드'''에서는 MySQL은 데이터를 설정하는 어떤 문자열인지를 알 것이며, 표현하고 적절하게 그것을 변환할 수 있지만
+[//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes 기본 다국어 범위] 상의 문자를 저장하지 못하게 될 수 있습니다.",
+       'config-ibm_db2-low-db-pagesize' => "당신의 DB2 데이터베이스에 부족한 페이지 크기가 기본 테이블 공간에 있습니다. 페이지 크기는 '''32K''' 이상이어야 합니다.",
+       'config-site-name' => '위키 이름:',
+       'config-site-name-help' => '이는 브라우저 제목 표시줄과 다른 여러 곳에 나타날 것입니다.',
        'config-site-name-blank' => '사이트 이름을 입력하세요.',
        'config-project-namespace' => '프로젝트 이름공간:',
        'config-ns-generic' => '프로젝트',
+       'config-ns-site-name' => '위키 이름과 같은 이름: $1',
+       'config-ns-other' => '기타 (지정)',
+       'config-ns-other-default' => '내위키',
+       'config-project-namespace-help' => '위키백과의 예를 따라서, 많은 위키는 "프로젝트 이름공간"에 그들의 콘텐츠 페이지에서 그들의 정책 페이지는 별도로 보관합니다.
+이 이름공간에 있는 모든 페이지의 제목은 여기서 지정할 수 있는 특정 접두어로 시작합니다.
+보통 이 접두어는 위키의 이름에서 파생되지만, 이는 "#" 또는 ":"와 같은 특수 문자를 포함할 수 없습니다.',
+       'config-ns-invalid' => '특정 "<nowiki>$1</nowiki>" 이름공간이 잘못되었습니다.
+다른 프로젝트 이름공간을 지정하세요.',
+       'config-ns-conflict' => '특정 "<nowiki>$1</nowiki>" 이름공간이 기본 미디어위키 이름공간과 충돌합니다.
+다른 프로젝트 이름공간을 지정하세요.',
        'config-admin-box' => '관리자 계정',
        'config-admin-name' => '사용자 이름:',
        'config-admin-password' => '비밀번호:',
        'config-admin-password-confirm' => '비밀번호 확인:',
-       'config-admin-help' => '"í\99\8d길ë\8f\99"ê³¼ ê°\99ì\9d´ ì\97¬ê¸°ì\97\90 ì\9b\90í\95\98ë\8a\94 ì\82¬ì\9a©ì\9e\90 ì\9d´ë¦\84ì\9d\84 ì\9e\85ë ¥í\95©ë\8b\88ë\8b¤.
+       'config-admin-help' => '"í\99\8d길ë\8f\99"ê³¼ ê°\99ì\9d´ ì\97¬ê¸°ì\97\90 ì\9b\90í\95\98ë\8a\94 ì\82¬ì\9a©ì\9e\90 ì\9d´ë¦\84ì\9d\84 ì\9e\85ë ¥í\95\98ì\84¸ì\9a\94.
 이는 위키에 로그인하는 데 사용되는 이름입니다.',
        'config-admin-name-blank' => '관리자의 사용자 이름을 입력하세요.',
        'config-admin-name-invalid' => '특정 "<nowiki>$1</nowiki>" 사용자 이름이 잘못되었습니다.
@@ -10145,85 +10378,161 @@ MediaWiki $1(으)로 업그레이드하려면 '''계속'''을 클릭하세요.",
        'config-admin-error-user' => '"<nowiki>$1</nowiki>" 이름의 관리자를 만드는 중 내부 오류가 발생했습니다.',
        'config-admin-error-password' => '"<nowiki>$1</nowiki>" 관리자의 비밀번호를 설정하는 중 내부 오류가 발생했습니다: <pre>$2</pre>',
        'config-admin-error-bademail' => '이메일 주소를 잘못 입력하였습니다.',
-       'config-almost-done' => '거의 다 됐습니다! 이제 남은 설정을 생략하고 지금 위키를 설치할 수 있습니다.',
+       'config-subscribe' => '[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce 배포 발표 메일링 리스트]에 가입합니다.',
+       'config-subscribe-help' => '이는 중요한 보안 알림을 포함한 배포 알림에 대해 사용되는 로우 볼륨 메일링 리스트입니다.
+당신이 이를 구독하고 나서 새 버전이 나올 때 미디어위키 설치를 업데이트해야합니다.',
+       'config-subscribe-noemail' => '이메일 주소를 제공하지 않고 배포 발표 메일링 리스트에 가입하려 합니다.
+메일링 리스트에 가입하고자 할 경우 이메일 주소를 제공하세요.',
+       'config-almost-done' => '거의 다 완료했습니다! 이제 남은 설정을 생략하고 지금 바로 위키를 설치할 수 있습니다.',
+       'config-optional-continue' => '더 많은 질문을 물어보세요.',
        'config-optional-skip' => '지겨워요, 그냥 위키를 설치할래요.',
+       'config-profile' => '사용자 권한 프로필:',
        'config-profile-wiki' => '평범한 위키',
        'config-profile-no-anon' => '계정 생성 필요',
        'config-profile-fishbowl' => '승인된 편집자만 이용 가능',
        'config-profile-private' => '비공개 위키',
+       'config-profile-help' => "위키는 당신이 가능한 한 많은 사람들이 편집하도록 할 때 최고로 적합합니다.
+미디어위키에서는 최근 바뀜을 검토하고, 선하거나 악의적인 사용자에 의해 수행되는 모든 손실을 되돌리는 것이 쉽습니다.
+
+그러나 많은 사람들이 미디어위키가 다양한 역할의 유용하지만, 때로는 그것이 위키 방식의 장점을 모두 설득하기 쉽지 않음을 발견했습니다.
+그래서 선택할 수 있습니다.
+
+'''{{int:config-profile-wiki}}'''는 로그인하지 않고도 누구나 편집할 수 있습니다.
+'''{{int:config-profile-no-anon}}'''는 추가적으로 필요한 책임을 제공하지만, 기존의 기여자를 망칠 수도 있습니다.
+
+'''{{int:config-profile-fishbowl}}''' 같은 경우는 승인된 사용자만 편집할 수 있지만, 대중은 역사를 포함하여 페이지를 볼 수 있습니다. '''{{int:config-profile-private}}'''는 승인된 사용자만 같은 그룹에서 편집할 수 있고 볼 수 있습니다.
+
+더 복잡한 사용자 권한을 설정하여 설치한 후 사용할 수 있도록 하려면 [//www.mediawiki.org/wiki/Manual:User_rights 관련 매뉴얼 항목]을 참고하세요.",
        'config-license' => '저작권 및 라이선스:',
+       'config-license-none' => '라이선스 바닥글 없음',
        'config-license-cc-by-sa' => '크리에이티브 커먼즈 저작자표시-동일조건변경허락',
        'config-license-cc-by' => '크리에이티브 커먼즈 저작자표시',
        'config-license-cc-by-nc-sa' => '크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락',
-       'config-license-cc-0' => '크리에이티브 커먼즈 CC0 (퍼블릭 도메인)',
+       'config-license-cc-0' => '크리에이티브 커먼즈 제로 (퍼블릭 도메인)',
        'config-license-gfdl' => 'GNU 자유 문서 사용 허가서 1.3 이상',
        'config-license-pd' => '퍼블릭 도메인',
        'config-license-cc-choose' => '다른 크리에이티브 커먼즈 라이선스 선택',
+       'config-license-help' => '많은 공개 위키는 모든 기여를 [http://freedomdefined.org/Definition 자유 라이선스] 하에 넣습니다.
+이럴 경우 커뮤니티 소유권의 이해를 할 수 있도록 하고 장기적인 기여를 장려합니다.
+이는 일반적으로 개인 또는 회사 위키에 대해서는 필요하지 않습니다.
+
+위키백과의 텍스트를 사용할 수 있도록 하고 위키백과가 위키에서 복사한 텍스트를 사용할 수 있도록 원한다면 크리에이티브 커먼즈 저작자표시-동일조건변경허락으로 선택해야 합니다.
+
+위키백과는 이전에 GNU 자유 문서 사용 허가서를 사용했습니다.
+GFDL은 유효한 라이선스이지만 이는 이해하기 어렵습니다.
+이는 GFDL 하에 라이선스 내용을 재사용하는 것도 어렵습니다.',
        'config-email-settings' => '이메일 설정',
-       'config-enable-email' => 'ë°\9cì\8b  ì\9d´ë©\94ì\9d¼ í\97\88ì\9a©',
-       'config-enable-email-help' => '이메일을 작동하려면 [http://www.php.net/manual/en/mail.configuration.php PHP의 메일 설정]을 올바르게 구성해야 합니다.
+       'config-enable-email' => 'ë°\9cì\8b  ì\9d´ë©\94ì\9d¼ í\99\9cì\84±í\99\94',
+       'config-enable-email-help' => '이메일을 작동하려면 [http://www.php.net/manual/en/mail.configuration.php PHP의 메일 설정]을 올바르게 설정해야 합니다.
 이메일 기능을 사용하지 않으려면 이를 비활성화할 수 있습니다.',
-       'config-email-user' => 'ì\82¬ì\9a©ì\9e\90ì\99\80 ì\82¬ì\9a©ì\9e\90 ê°\84 ì\9d´ë©\94ì\9d¼ í\97\88ì\9a©',
-       'config-email-user-help' => 'í\99\98ê²½ ì\84¤ì \95ì\97\90ì\84\9c í\99\9cì\84±í\99\94í\95\9c ê²½ì\9a° ëª¨ë\93  ì\82¬ì\9a©ì\9e\90ê°\80 ì\9d´ë©\94ì\9d¼ì\9d\84 ì\84\9cë¡\9c ë³´ë\82´ë\8f\84ë¡\9d í\97\88ì\9a©합니다.',
-       'config-email-usertalk' => 'ì\82¬ì\9a©ì\9e\90 í\86 ë¡  ë¬¸ì\84\9c ì\95\8c림 í\97\88ì\9a©',
-       'config-email-usertalk-help' => 'í\99\98ê²½ ì\84¤ì \95ì\97\90ì\84\9c í\99\9cì\84±í\99\94í\95\9c ê²½ì\9a° ì\82¬ì\9a©ì\9e\90ë\8a\94 ì\82¬ì\9a©ì\9e\90 í\86 ë¡  ë¬¸ì\84\9cì\9d\98 ë³\80ê²½ ì\95\8c림ì\9d\84 ë°\9bë\8f\84ë¡\9d í\97\88ì\9a©합니다.',
-       'config-email-watchlist' => '주ì\8b\9c문ì\84\9c ëª©ë¡\9d ì\95\8c림 í\97\88ì\9a©',
-       'config-email-watchlist-help' => 'í\99\98ê²½ ì\84¤ì \95ì\97\90ì\84\9c í\99\9cì\84±í\99\94í\95\9c ê²½ì\9a° ì\82¬ì\9a©ì\9e\90ê°\80 ì£¼ì\8b\9cí\95\9c ë¬¸ì\84\9cì\97\90 ë\8c\80í\95\9c ì\95\8c림ì\9d\84 ë°\9bë\8f\84ë¡\9d í\97\88ì\9a©합니다.',
-       'config-email-auth' => 'ì\9d´ë©\94ì\9d¼ ì\9d¸ì¦\9d í\97\88ì\9a©',
-       'config-email-auth-help' => "이 설정이 활성화되어 있으면 사용자는 이메일 주소를 설정하거나 변경할 때마다 그들에게 보낸 링크를 사용하여 확인해야 합니다.
+       'config-email-user' => 'ì\82¬ì\9a©ì\9e\90ì\99\80 ì\82¬ì\9a©ì\9e\90 ê°\84 ì\9d´ë©\94ì\9d¼ í\99\9cì\84±í\99\94',
+       'config-email-user-help' => 'í\99\98ê²½ ì\84¤ì \95ì\97\90ì\84\9c í\99\9cì\84±í\99\94í\95\9c ê²½ì\9a° ëª¨ë\93  ì\82¬ì\9a©ì\9e\90ê°\80 ì\9d´ë©\94ì\9d¼ì\9d\84 ì\84\9cë¡\9c ë³´ë\82´ë\8f\84ë¡\9d í\99\9cì\84±í\99\94합니다.',
+       'config-email-usertalk' => 'ì\82¬ì\9a©ì\9e\90 í\86 ë¡  ë¬¸ì\84\9c ì\95\8c림 í\99\9cì\84±í\99\94',
+       'config-email-usertalk-help' => 'í\99\98ê²½ ì\84¤ì \95ì\97\90ì\84\9c í\99\9cì\84±í\99\94í\95\9c ê²½ì\9a° ì\82¬ì\9a©ì\9e\90ë\8a\94 ì\82¬ì\9a©ì\9e\90 í\86 ë¡  ë¬¸ì\84\9cì\9d\98 ë³\80ê²½ ì\95\8c림ì\9d\84 ë°\9bë\8f\84ë¡\9d í\99\9cì\84±í\99\94합니다.',
+       'config-email-watchlist' => '주ì\8b\9c문ì\84\9c ëª©ë¡\9d ì\95\8c림 í\99\9cì\84±í\99\94',
+       'config-email-watchlist-help' => 'í\99\98ê²½ ì\84¤ì \95ì\97\90ì\84\9c í\99\9cì\84±í\99\94í\95\9c ê²½ì\9a° ì\82¬ì\9a©ì\9e\90ê°\80 ì£¼ì\8b\9cí\95\9c ë¬¸ì\84\9cì\97\90 ë\8c\80í\95\9c ì\95\8c림ì\9d\84 ë°\9bë\8f\84ë¡\9d í\99\9cì\84±í\99\94합니다.',
+       'config-email-auth' => 'ì\9d´ë©\94ì\9d¼ ì\9d¸ì¦\9d í\99\9cì\84±í\99\94',
+       'config-email-auth-help' => "이 설정이 활성화되어 있으면 사용자는 이메일 주소를 설정하거나 변경할 때마다 그들에게 보낸 링크를 사용하여 이메일 주소를 확인해야 합니다.
 인증된 이메일 주소만 다른 사용자로부터의 이메일이나 변경 알림 이메일을 받을 수 있습니다.
-이메일 기능의 남용 가능성이 있기 때문에 이 옵션을 설정하는 것은 공 위키에서 '''권장'''합니다.",
+이메일 기능의 남용 가능성이 있기 때문에 이 옵션을 설정하는 것은 공 위키에서 '''권장'''합니다.",
        'config-email-sender' => '반송 이메일 주소',
-       'config-email-sender-help' => 'ë°\9cì\8b í\95\9c ì\9d´ë©\94ì\9d¼ì\97\90 ë\8c\80í\95\9c ë°\98ì\86¡ ì£¼ì\86\8cë¡\9c ì\82¬ì\9a©í\95  ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c를 ì\9e\85ë ¥í\95©ë\8b\88ë\8b¤.
+       'config-email-sender-help' => 'ë°\9cì\8b í\95\9c ì\9d´ë©\94ì\9d¼ì\97\90 ë\8c\80í\95\9c ë°\98ì\86¡ ì£¼ì\86\8cë¡\9c ì\82¬ì\9a©í\95  ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c를 ì\9e\85ë ¥í\95\98ì\84¸ì\9a\94.
 이는 반송할 때 보내는 주소입니다.
 대부분의 메일 서버는 적어도 도메인 이름 부분은 유효합니다.',
+       'config-upload-settings' => '그림과 파일 올리기',
+       'config-upload-enable' => '파일 올리기 활성화',
+       'config-upload-help' => '파일 올리기는 서버에 잠재적인 보안 위험에 쉽게 노출될 수 있습니다.
+자세한 내용은 매뉴얼의 [//www.mediawiki.org/wiki/Manual:Security 보안 문단]을 읽어보세요.
+
+파일 올리기를 활성화하려면 미디어위키의 루트 디렉토리에 있는 <code>images</code> 하위 디렉토리에서 웹 서버가 기록할 수 있도록 모드를 변경합니다.
+그 다음 이 옵션을 활성화합니다.',
+       'config-upload-deleted' => '삭제된 파일에 대한 디렉토리:',
+       'config-upload-deleted-help' => '삭제된 파일을 보관할 디렉토리를 선택하세요.
+이상적으로 웹에서 접근할 수 없게 해야 합니다.',
        'config-logo' => '로고 URL:',
        'config-logo-help' => '미디어위키 기본 스킨은 사이드바 메뉴 위에 135×160픽셀의 로고를 포함하고 있습니다.
-적당한 크기로 이미지를 올리고 URL을 여기 적어주세요.
+적당한 크기로 이미지를 올리고 URL을 여기에 입력하세요.
+
+로고 사용을 원하지 않으면 이 상자를 비워 두십시오.',
+       'config-instantcommons' => '인스턴트 공용 활성화',
+       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons 인스턴트 공용]은 [//commons.wikimedia.org/ 위키미디어 공용] 사이트에서 찾을 수 있는 그림, 소리 및 다른 미디어를 위키에서 사용할 수 있도록 하는 기능입니다.
+이렇게 하려면 미디어위키가 인터넷에 접근해야합니다.
 
-로고 사용을 원치 않으면 이 상자를 비워 두십시오.',
+위키미디어 공용 외에 기타 위키를 설정하는 방법에 대한 지침을 포함한 기능에 대한 자세한 내용은 [//mediawiki.org/wiki/Manual:$wgForeignFileRepos 매뉴얼]을 참고하세요.',
        'config-cc-error' => '크리에이티브 커먼즈 라이선스 선택기에 결과가 없습니다.
 수동으로 라이선스 이름을 입력하세요.',
        'config-cc-again' => '다시 선택...',
        'config-cc-not-chosen' => '원하는 크리에이티브 커먼즈 라이선스를 선택하고 "진행"을 클릭하세요.',
        'config-advanced-settings' => '고급 설정',
        'config-cache-options' => '개체 캐싱을 위한 설정:',
-       'config-cache-help' => '개체 캐싱은 자주 사용하는 데이터를 캐싱하여 MediaWiki의 속도를 개선하는 데 사용합니다.
+       'config-cache-help' => '개체 캐싱은 자주 사용하는 데이터를 캐싱하여 미디어위키의 속도를 개선하는 데 사용합니다.
 큰 사이트의 규모에는 이를 많이 사용하도록 권장하고 있으며, 소규모 사이트들도 물론 이익을 볼 수 있습니다.',
        'config-cache-none' => '캐시하지 않음 (기능적으로는 삭제되지 않지만 큰 위키 사이트에 속도에 영향을 받을 수 있습니다)',
        'config-cache-accel' => 'PHP 개체 캐싱 (APC, XCache 또는 WinCache)',
-       'config-cache-memcached' => 'Memcached 사용 (추가적인 설정 및 구성이 필요합니다)',
+       'config-cache-memcached' => 'Memcached 사용 (추가적인 설치와 설정이 필요합니다)',
+       'config-memcached-servers' => 'Memcached 서버:',
+       'config-memcached-help' => 'Memcached의 사용하기 위한 IP 주소 목록입니다.
+한 줄에 하나씩 사용할 포트를 지정해야 합니다. 예를 들어 :
+ 127.0.0.1:11211
+ 192.168.1.25:1234',
+       'config-memcache-needservers' => '캐시 종류로 Memcached를 선택했지만 어떠한 서버도 지정하지 않았습니다.',
+       'config-memcache-badip' => 'Memcached에 대해 잘못된 IP 주소를 입력했습니다: $1.',
+       'config-memcache-noport' => 'Memcached 서버에 사용할 포트를 지정하지 않았습니다: $1.
+포트를 모를 경우 기본값은 11211입니다.',
+       'config-memcache-badport' => 'Memcached 포트 번호는 $1(와)과 $2 사이여야 합니다.',
        'config-extensions' => '확장 기능',
        'config-extensions-help' => '위에 나열된 확장 기능이 <code>./extensions</code>에서 발견되었습니다.
 
 이들은 추가적인 설정이 필요할 수 있습니다만 지금 활성화시킬 수 있습니다.',
-       'config-install-alreadydone' => "'''경고:''' 당신은 이미 MediaWiki를 설치하였고 다시 설치하려고 합니다.
+       'config-install-alreadydone' => "'''경고:''' 당신은 이미 미디어위키를 설치하였고 다시 설치하려고 합니다.
 다음 페이지에서 진행하세요.",
-       'config-install-begin' => '"{{int:config-continue}}"을 누르면 MediaWiki의 설치를 시작합니다.
+       'config-install-begin' => '"{{int:config-continue}}"을 누르면 미디어위키의 설치를 시작합니다.
 그래도 변경하는 것을 원한다면 뒤로를 누릅니다.',
+       'config-install-step-done' => '완료',
+       'config-install-step-failed' => '실패',
        'config-install-extensions' => '확장 기능을 포함하는 중',
-       'config-install-database' => '데이터베이스 설정 중',
-       'config-install-pg-commit' => '커밋 바꾸기',
-       'config-install-pg-plpgsql' => 'PL/pgSQL 언어에 대해 확인 중',
-       'config-install-user' => '데이터베이스 사용자 생성 중',
-       'config-install-tables' => '테이블을 생성하는 중',
+       'config-install-database' => '데이터베이스를 설정하는 중',
+       'config-install-schema' => '스키마를 만드는 중',
+       'config-install-pg-schema-not-exist' => 'PostgreSQL 스키마가 존재하지 않습니다.',
+       'config-install-pg-schema-failed' => '테이블을 만드는 데 실패했습니다.
+"$2" 스키마에 쓸 수 있는 "$1" 사용자가 있는지 확인하세요.',
+       'config-install-pg-commit' => '바뀐 사항을 적용하는 중',
+       'config-install-pg-plpgsql' => 'PL/pgSQL 언어에 대해 확인하는 중',
+       'config-pg-no-plpgsql' => '$1 데이터베이스에 PL/pgSQL 언어를 설치해야 합니다',
+       'config-pg-no-create-privs' => '설치를 위한 지정한 계정에 계정을 만드는 데 충분한 권한이 없습니다,',
+       'config-pg-not-in-role' => '웹 사용자에 대해 지정한 계정이 이미 존재합니다.
+설치에 대한 지정한 사용자는 슈퍼 사용자가 아니고, 그것은 웹 사용자의 역할의 구성원이 아니며, 그래서 웹 사용자가 소유한 개체를 만들 수 없습니다.
+
+현재 미디어위키는 테이블을 웹 사용자가 소유해야 합니다. 다른 웹 계정 이름을 지정하거나 "뒤로"를 클릭하고 적절한 권한의 설치할 사용자를 지정하세요.',
+       'config-install-user' => '데이터베이스 사용자를 만드는 중',
+       'config-install-user-alreadyexists' => '"$1" 사용자가 이미 있음',
+       'config-install-user-create-failed' => '"$1" 사용자 만드는 중 실패: $2',
+       'config-install-user-grant-failed' => '"$1" 사용자에 대한 권한 부여 실패: $2',
+       'config-install-user-missing' => '지정한 "$1" 사용자가 존재하지 않습니다.',
+       'config-install-user-missing-create' => '지정된 "$1" 사용자가 존재하지 않습니다.
+이를 만드는 것을 원하면 아래의 "계정 만들기" 확인 상자를 클릭하세요.',
+       'config-install-tables' => '테이블을 만드는 중',
        'config-install-tables-exist' => "'''경고''': 미디어위키 테이블이 이미 있는 것 같습니다.
 테이블 생성을 생략합니다.",
        'config-install-tables-failed' => "'''오류''': 다음 오류와 함께 테이블 생성에 실패했습니다: $1",
-       'config-install-interwiki' => '기본 ì\9d¸í\84°ì\9c\84í\82¤ í\91\9c를 채우는 중',
-       'config-install-interwiki-list' => '<code>interwiki.list</code> 파일을 읽을 수 없습니다.',
-       'config-install-interwiki-exists' => "'''경고''': ì\9d¸í\84°ì\9c\84í\82¤ í\91\9cê°\80 이미 항목을 갖고 있는 것 같습니다.
+       'config-install-interwiki' => '기본 ì\9d¸í\84°ì\9c\84í\82¤ í\85\8cì\9d´ë¸\94ì\9d\84 채우는 중',
+       'config-install-interwiki-list' => '<code>interwiki.list</code> 파일을 불러올 수 없습니다.',
+       'config-install-interwiki-exists' => "'''경고''': ì\9d¸í\84°ì\9c\84í\82¤ í\85\8cì\9d´ë¸\94ì\9d´ 이미 항목을 갖고 있는 것 같습니다.
 기본 목록으로 넘어갑니다.",
+       'config-install-stats' => '통계를 초기화하는 중',
        'config-install-keys' => '보안 키를 만드는 중',
        'config-insecure-keys' => "'''경고:''' 설치 중에 생성한 {{PLURAL:$2|보안 키}} ($1)를 설치하는 동안 완전히 안전하지 {{PLURAL:$2|않습니다}}. 직접 변경을 고려하세요.",
-       'config-install-mainpage' => '기본 콘텐트로 대문을 만드는 중',
-       'config-install-extension-tables' => '활성화된 확장 기능을 위한 표를 만드는 중',
+       'config-install-sysop' => '관리자 사용자 계정을 만드는 중',
+       'config-install-subscribe-fail' => '미디어위키 발표를 구독할 수 없습니다: $1',
+       'config-install-subscribe-notpossible' => 'cURL이 설치되지 않았고 allow_url_fopen를 사용할 수 없습니다.',
+       'config-install-mainpage' => '기본 콘텐츠로 대문을 만드는 중',
+       'config-install-extension-tables' => '활성화된 확장 기능을 위한 테이블을 만드는 중',
        'config-install-mainpage-failed' => '대문을 삽입할 수 없습니다: $1',
        'config-install-done' => "'''축하합니다!'''
-ì\84±ê³µì \81ì\9c¼ë¡\9c MediaWIki를 ì\84¤ì¹\98í\96\88ì\8aµë\8b\88ë\8b¤.
+미ë\94\94ì\96´ì\9c\84í\82¤ê°\80 ì\84±ê³µì \81ì\9c¼ë¡\9c ì\84¤ì¹\98ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤.
 
 설치 마법사가 <code>LocalSettings.php</code> 파일을 만들었습니다.
-이는 모든 구성이 포함되어 있습니다.
+이는 모든 설정이 포함되어 있습니다.
 
 이를 다운로드하여 위키 설치의 거점에 넣어야 합니다 (index.php와 같은 디렉토리). 다운로드가 자동으로 시작됩니다.
 
@@ -10231,12 +10540,12 @@ MediaWiki $1(으)로 업그레이드하려면 '''계속'''을 클릭하세요.",
 
 $3
 
-'''참고''': 지금 이렇게 하지 않으면 이 구성 파일을 다운로드하지 않고 설치를 종료할 경우 만들어진 구성 파일은 나중에 사용할 수 없습니다.
+'''참고''': 지금 이렇게 하지 않으면, 이 설정 파일을 다운로드하지 않고 설치를 종료할 경우 만들어진 설정 파일은 나중에 사용할 수 없습니다.
 
-완료되었으면 '''[$2 당신은 위키에 들어갈 수 있습니다]'''.",
+완료되었으면 '''[$2 위키에 들어갈 수 있습니다]'''.",
        'config-download-localsettings' => 'LocalSettings.php 다운로드',
        'config-help' => '도움말',
-       'config-nofile' => '파일 "$1" 찾을 수 없습니다. 이미 삭제되었나요?',
+       'config-nofile' => '파일 "$1"(을)를 찾을 수 없습니다. 이미 삭제되었나요?',
        'mainpagetext' => "'''미디어위키가 성공적으로 설치되었습니다.'''",
        'mainpagedocfooter' => '[//meta.wikimedia.org/wiki/Help:Contents 이곳]에서 위키 프로그램에 대한 정보를 얻을 수 있습니다.
 
@@ -10361,6 +10670,7 @@ Mer künne met heh dä Daatebangke ömjonn: $1.
 Wann De nit om eijene Rääshner bes, moß De Dinge <i lang="en">provider</i> bedde, dat hä Der ene zopaß Driiver enresht.
 Wann de PHP sellver övversaz häs, donn e Zohjangsprjramm för en Daatebangk enbenge, för e Beishpell met: <code  lang="en">./configure --with-mysql</code> op ene <i lang="en">command shell</i>.
 Wann De PHP uss enem <i lang="en">Debian</i> udder <i lang="en">Ubuntu</i> Pakätt enjeresht häs, moß De dann och noch et <code lang="en">php5-mysql</code> op Dinge Räschner bränge.',
+       'config-outdated-sqlite' => '\'\'\'Opjepaß:\'\'\' <i lang="en">SQLite</i> $1 es enschtaleert. Avver MediaWiki bruch <i lang="en">SQLite</i> $2 udder hühter. <i lang="en">SQLite</i> kann dröm nit enjesaz wääde.',
        'config-no-fts3' => "'''Opjepaß:''' De Projramme vum <i lang=\"en\">SQLite</i> sin der ohne et [//sqlite.org/fts3.html FTS3-Modul] övversaz, dröm wääde de Funxjohne för et Söhke fähle.",
        'config-register-globals' => "'''Opjepaß:''' dem PHP singe Schallder <code lang=\"en\">[http://php.net/register_globals register_globals]</code> es enjeschalldt.
 '''Donn dä ußmaache, wann De kann.'''
@@ -10809,6 +11119,7 @@ Wann domet jet nit jeflupp hät, udder De di Dattei norr_ens han wells, donn op
 Wann De mem Ronger- un widder Huhlaade fäädesh bes, kanns De '''[\$2 en Ding Wiki jonn]'''.",
        'config-download-localsettings' => 'Donn di Dattei <code lang="en">LocalSettings.php</code> eronger laade',
        'config-help' => 'Hölp',
+       'config-nofile' => 'De Dattei „$1“ ham_mer nit jefonge. Es di fottjeschmeße?',
        'mainpagetext' => "'''MediaWiki es jetz enstalleet.'''",
        'mainpagedocfooter' => 'Luur en et (änglesche) [//meta.wikimedia.org/wiki/Help:Contents Handboch] wann De wesse wells wie de Wiki-Soffwär jebruch un bedeent wääde muss.
 
@@ -10823,8 +11134,13 @@ Dat es och all op Änglesch:
  * @author George Animal
  */
 $messages['ku-latn'] = array(
+       'config-information' => 'Agahî',
+       'config-your-language' => 'Zimanê te:',
        'config-page-language' => 'Ziman',
        'config-page-name' => 'Nav',
+       'config-page-options' => 'Vebijêrk',
+       'config-ns-generic' => 'Proje',
+       'config-install-step-done' => 'çêbû',
        'mainpagetext' => "'''MediaWiki serketî hate çêkirin.'''",
        'mainpagedocfooter' => 'Alîkarî ji bo bikaranîn û guherandin yê datayê Wîkî tu di bin [//meta.wikimedia.org/wiki/Help:Contents pirtûka alîkarîyê ji bikarhêneran] da dikarê bibînê.
 
@@ -11049,6 +11365,7 @@ Dir kënnt elo déi Astellungen déi nach iwwreg sinn iwwersprangen an d'Wiki el
        'config-install-mainpage-failed' => "D'Haaptsäit konnt net dragesat ginn: $1",
        'config-download-localsettings' => 'LocalSettings.php eroflueden',
        'config-help' => 'Hëllef',
+       'config-nofile' => 'De Fichier "$1" gouf net fonnt. Gouf e geläscht?',
        'mainpagetext' => "'''MediaWiki gouf installéiert.'''",
        'mainpagedocfooter' => "Kuckt w.e.g. [//meta.wikimedia.org/wiki/Help:Contents d'Benotzerhandbuch] fir den Interface ze personnaliséieren.
 
@@ -14900,18 +15217,19 @@ Depois de terminar o passo anterior, pode '''[$2 entrar na wiki]'''.",
  * @author Giro720
  * @author Gustavo
  * @author Marcionunes
+ * @author 555
  */
 $messages['pt-br'] = array(
        'config-desc' => 'O instalador do MediaWiki',
-       'config-title' => 'Instalação MediaWiki $1',
+       'config-title' => 'Instalação do MediaWiki $1',
        'config-information' => 'Informações',
-       'config-localsettings-upgrade' => "'''Aviso''': Foi detetada a existência de um arquivo <code>LocalSettings.php</code>.
-É possível atualizar o seu software.
-Mova o <code>LocalSettings.php</code> para um lugar seguro e execute o instalador novamente, por favor.",
-       'config-localsettings-cli-upgrade' => 'Foi detectado um arquivo LocalSettings.php.
-Para atualizar esta instalação, por favor, use: --upgrade=yes.',
+       'config-localsettings-upgrade' => 'Foi detectada a existência do arquivo <code>LocalSettings.php</code>.
+Para atualizar esta instalação, insira no box abaixo o valor de <code>$wgUpgradeKey</code>.
+Essa informação pode ser encontrada no arquivo LocalSettings.php',
+       'config-localsettings-cli-upgrade' => 'Foi detectada a existência do arquivo <code>LocalSettings.php</code>.
+Esta instalação deverá ser atualizada através do <code>update.php</code>',
        'config-localsettings-key' => 'Chave de atualização:',
-       'config-localsettings-badkey' => 'A senha inserida está incorreta.',
+       'config-localsettings-badkey' => 'A chave fornecida está incorreta.',
        'config-upgrade-key-missing' => 'Foi detectada uma instalação existente do MediaWiki.
 Para atualizar esta instalação, por favor, coloque a seguinte linha na parte inferior do seu LocalSettings.php:
 
@@ -15627,7 +15945,7 @@ $3
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка уведомлений о выходе новых версий MediaWiki].',
 );
 
-/** Rusyn (Русиньскый)
+/** Rusyn (русиньскый)
  * @author Gazeb
  */
 $messages['rue'] = array(
@@ -16191,7 +16509,7 @@ $messages['sw'] = array(
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Orodha ya utoaji wa habari za MediaWiki]',
 );
 
-/** Silesian (Å\9alůnski)
+/** Silesian (Å\9blůnski)
  * @author Djpalar
  */
 $messages['szl'] = array(
@@ -16610,6 +16928,7 @@ Tiyakin na ang tagagamit na "$1" ay maaaring makasulat sa balangkas na "$2".',
        'config-install-user-alreadyexists' => 'Umiiral na ang tagagamit na "$1"',
        'config-install-user-create-failed' => 'Nabigo ang paglikha ng tagagamit na "$1": $2',
        'config-install-user-grant-failed' => 'Nabigo ang pagbibigay ng pahintulot sa tagagamit na "$1": $2',
+       'config-install-user-missing' => 'Hindi umiiral ang tinukoy na tagagamit na si "$1".',
        'config-install-tables' => 'Nililikha ang mga talahanayan',
        'config-install-tables-exist' => "'''Babala''': Tila umiiral na ang mga talahanayan ng MediaWiki.
 Nilalaktawan ang paglikha.",
@@ -16619,9 +16938,10 @@ Nilalaktawan ang paglikha.",
        'config-install-interwiki-exists' => "'''Babala''': Tila may mga laman na ang talahanayan ng interwiki.
 Nilalaktawan ang likas na nakatakdang talaan.",
        'config-install-stats' => 'Sinisimulan ang estadistika',
-       'config-install-keys' => 'Ginagawa ang lihim na susi',
+       'config-install-keys' => 'Ginagawa ang lihim na mga susi',
        'config-install-sysop' => 'Nililikha ang akawnt ng tagagamit na tagapangasiwa',
-       'config-install-subscribe-fail' => 'Hindi nagawang sumipi mula sa mediawiki-announce',
+       'config-install-subscribe-fail' => 'Hindi nagawang magpasipi mula sa mediawiki-announce: $1',
+       'config-install-subscribe-notpossible' => 'Hindi nakalagak ang cURL at hindi makukuha ang allow_url_fopen',
        'config-install-mainpage' => 'Nililikha ang pangunahing pahina na may likas na nakatakdang nilalaman',
        'config-install-extension-tables' => 'Nililikha ang mga talahanayan para sa pinagaganang mga dugtong',
        'config-install-mainpage-failed' => 'Hindi maisingit ang pangunahing pahina: $1',
@@ -16817,7 +17137,7 @@ $messages['ur'] = array(
        'mainpagetext' => "'''میڈیاوکی کو کامیابی سے چالو کردیا گیا ہے۔.'''",
 );
 
-/** Uzbek (Oʻzbek) */
+/** Uzbek (Oʻzbekcha) */
 $messages['uz'] = array(
        'mainpagetext' => "'''MediaWiki muvaffaqiyatli o'rnatildi.'''",
        'mainpagedocfooter' => "Wiki dasturini ishlatish haqida ma'lumot olish uchun  [//meta.wikimedia.org/wiki/Help:Contents Foydalanuvchi qo'llanmasi] sahifasiga murojaat qiling.
@@ -16892,9 +17212,11 @@ $messages['vro'] = array(
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-postilist, minka andas teedäq MediaWiki vahtsist kujõst].',
 );
 
-/** Walloon (walon) */
+/** Walloon (walon)
+ * @author Srtxg
+ */
 $messages['wa'] = array(
-       'mainpagetext' => "'''Li programe Wiki a stî astalé a l' idêye.'''",
+       'mainpagetext' => "'''Li programe MediaWiki a stî astalé a l' idêye.'''",
 );
 
 /** Waray (Winaray)
@@ -17004,6 +17326,7 @@ $messages['zea'] = array(
 /** Simplified Chinese (‪中文(简体)‬)
  * @author Hydra
  * @author Hzy980512
+ * @author Liangent
  * @author PhiLiP
  * @author Xiaomingyan
  * @author 阿pp
        'mainpagedocfooter' => '请查阅[//meta.wikimedia.org/wiki/Help:Contents 用户指南]以获取使用本wiki软件的信息!
 
 == 入门 ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置设置列表]
+* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki配置设置列表]
 * [//www.mediawiki.org/wiki/Manual:FAQ/zh-hans MediaWiki常见问题]
 * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki发布邮件列表]',
 );
 
 /** Traditional Chinese (‪中文(繁體)‬)
  * @author Hzy980512
+ * @author Liangent
  * @author Mark85296341
  */
 $messages['zh-hant'] = array(
 當本步驟完成後,您可以 '''[$2 進入您的wiki]'''。",
        'config-download-localsettings' => '下載LocalSettings.php',
        'config-help' => '說明',
-       'mainpagetext' => "'''已成功安裝 MediaWiki。'''",
-       'mainpagedocfooter' => '請參閱[//meta.wikimedia.org/wiki/Help:Contents 用戶手冊]以獲得使用此 wiki 軟體的訊息!
+       'mainpagetext' => "'''已成功安裝MediaWiki。'''",
+       'mainpagedocfooter' => '請參閱[//meta.wikimedia.org/wiki/Help:Contents 用戶手冊]以獲得使用此wiki軟體的訊息!
 
 == 入門 ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置設定清單]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 常見問題解答]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵件清單]',
+* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki配置設定清單]
+* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki常見問題解答]
+* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki發佈郵件清單]',
 );
 
 /** Chinese (Hong Kong) (‪中文(香港)‬)
index 43005a8..9aa1a13 100644 (file)
@@ -698,7 +698,7 @@ END;
                }
        }
 
-       protected function dropIndex( $table, $index ) {
+       protected function dropIndex( $table, $index, $patch = '', $fullpath = false ) {
                if ( $this->db->indexExists( $table, $index ) ) {
                        $this->output( "Dropping obsolete index '$index'\n" );
                        $this->db->query( "DROP INDEX \"". $index ."\"" );
index 04df226..ff5fc8a 100644 (file)
  * @file
  */
 
-class LogEventsList {
+class LogEventsList extends ContextSource {
        const NO_ACTION_LINK = 1;
        const NO_EXTRA_USER_LINKS = 2;
        const USE_REVDEL_CHECKBOXES = 4;
 
-       /**
-        * @var Skin
-        */
-       private $skin;
-
-       /**
-        * @var OutputPage
-        */
-       private $out;
        public $flags;
 
        /**
@@ -49,13 +40,38 @@ class LogEventsList {
         */
        protected $mDefaultQuery;
 
-       public function __construct( $skin, $out, $flags = 0 ) {
-               $this->skin = $skin;
-               $this->out = $out;
+       /**
+        * Constructor.
+        * The first two parameters used to be $skin and $out, but now only a context
+        * is needed, that's why there's a second unused parameter.
+        *
+        * @param $context IContextSource Context to use; formerly it was Skin object.
+        * @param $unused void Unused; used to be an OutputPage object.
+        * @param $flags int flags; can be a combinaison of self::NO_ACTION_LINK,
+        *        self::NO_EXTRA_USER_LINKS or self::USE_REVDEL_CHECKBOXES.
+        */
+       public function __construct( $context, $unused = null, $flags = 0 ) {
+               if ( $context instanceof IContextSource ) {
+                       $this->setContext( $context );
+               } else {
+                       // Old parameters, $context should be a Skin object
+                       $this->setContext( $context->getContext() );
+               }
+
                $this->flags = $flags;
                $this->preCacheMessages();
        }
 
+       /**
+        * Deprecated alias for getTitle(); do not use.
+        *
+        * @deprecated in 1.20; use getTitle() instead.
+        * @return Title object
+        */
+       public function getDisplayTitle() {
+               return $this->getTitle();
+       }
+
        /**
         * As we use the same small set of messages in various methods and that
         * they are called often, we call them once and save them in $this->message
@@ -67,7 +83,7 @@ class LogEventsList {
                                'revertmove', 'undeletelink', 'undeleteviewlink', 'revdel-restore', 'hist', 'diff',
                                'pipe-separator', 'revdel-restore-deleted', 'revdel-restore-visible' );
                        foreach( $messages as $msg ) {
-                               $this->message[$msg] = wfMsgExt( $msg, array( 'escapenoentities' ) );
+                               $this->message[$msg] = $this->msg( $msg )->escaped();
                        }
                }
        }
@@ -81,12 +97,13 @@ class LogEventsList {
                wfDeprecated( __METHOD__, '1.19' );
                // If only one log type is used, then show a special message...
                $headerType = (count($type) == 1) ? $type[0] : '';
+               $out = $this->getOutput();
                if( LogPage::isLogType( $headerType ) ) {
                        $page = new LogPage( $headerType );
-                       $this->out->setPageTitle( $page->getName()->text() );
-                       $this->out->addHTML( $page->getDescription()->parseAsBlock() );
+                       $out->setPageTitle( $page->getName()->text() );
+                       $out->addHTML( $page->getDescription()->parseAsBlock() );
                } else {
-                       $this->out->addHTML( wfMsgExt('alllogstext',array('parseinline')) );
+                       $out->addHTML( $this->msg( 'alllogstext' )->parse() );
                }
        }
 
@@ -140,15 +157,15 @@ class LogEventsList {
                }
 
                // Submit button
-               $html .= Xml::submitButton( wfMsg( 'allpagessubmit' ) );
+               $html .= Xml::submitButton( $this->msg( 'allpagessubmit' )->text() );
 
                // Fieldset
-               $html = Xml::fieldset( wfMsg( 'log' ), $html );
+               $html = Xml::fieldset( $this->msg( 'log' )->text(), $html );
 
                // Form wrapping
                $html = Xml::tags( 'form', array( 'action' => $wgScript, 'method' => 'get' ), $html );
 
-               $this->out->addHTML( $html );
+               $this->getOutput()->addHTML( $html );
        }
 
        /**
@@ -156,9 +173,8 @@ class LogEventsList {
         * @return String: Formatted HTML
         */
        private function getFilterLinks( $filter ) {
-               global $wgLang;
                // show/hide links
-               $messages = array( wfMsgHtml( 'show' ), wfMsgHtml( 'hide' ) );
+               $messages = array( $this->msg( 'show' )->escaped(), $this->msg( 'hide' )->escaped() );
                // Option value -> message mapping
                $links = array();
                $hiddens = ''; // keep track for "go" button
@@ -178,18 +194,16 @@ class LogEventsList {
                                $query
                        );
 
-                       $links[$type] = wfMsgHtml( "log-show-hide-{$type}", $link );
+                       $links[$type] = $this->msg( "log-show-hide-{$type}" )->rawParams( $link )->escaped();
                        $hiddens .= Html::hidden( "hide_{$type}_log", $val ) . "\n";
                }
                // Build links
-               return '<small>'.$wgLang->pipeList( $links ) . '</small>' . $hiddens;
+               return '<small>'.$this->getLanguage()->pipeList( $links ) . '</small>' . $hiddens;
        }
 
        private function getDefaultQuery() {
-               global $wgRequest;
-
                if ( !isset( $this->mDefaultQuery ) ) {
-                       $this->mDefaultQuery = $wgRequest->getQueryValues();
+                       $this->mDefaultQuery = $this->getRequest()->getQueryValues();
                        unset( $this->mDefaultQuery['title'] );
                        unset( $this->mDefaultQuery['dir'] );
                        unset( $this->mDefaultQuery['offset'] );
@@ -201,20 +215,6 @@ class LogEventsList {
                return $this->mDefaultQuery;
        }
 
-       /**
-        * Get the Title object of the page the links should point to.
-        * This is NOT the Title of the page the entries should be restricted to.
-        *
-        * @return Title object
-        */
-       public function getDisplayTitle() {
-               return $this->out->getTitle();
-       }
-
-       public function getContext() {
-               return $this->out->getContext();
-       }
-
        /**
         * @param $queryTypes Array
         * @return String: Formatted HTML
@@ -232,14 +232,12 @@ class LogEventsList {
         * @since 1.19
         */
        public function getTypeSelector() {
-               global $wgUser;
-
                $typesByName = array(); // Temporary array
                // First pass to load the log names
                foreach(  LogPage::validTypes() as $type ) {
                        $page = new LogPage( $type );
                        $restriction = $page->getRestriction();
-                       if ( $wgUser->isAllowed( $restriction ) ) {
+                       if ( $this->getUser()->isAllowed( $restriction ) ) {
                                $typesByName[$type] = $page->getName()->text();
                        }
                }
@@ -266,7 +264,7 @@ class LogEventsList {
         */
        private function getUserInput( $user ) {
                return '<span style="white-space: nowrap">' .
-                       Xml::inputLabel( wfMsg( 'specialloguserlabel' ), 'user', 'mw-log-user', 15, $user ) .
+                       Xml::inputLabel( $this->msg( 'specialloguserlabel' )->text(), 'user', 'mw-log-user', 15, $user ) .
                        '</span>';
        }
 
@@ -276,7 +274,7 @@ class LogEventsList {
         */
        private function getTitleInput( $title ) {
                return '<span style="white-space: nowrap">' .
-                       Xml::inputLabel( wfMsg( 'speciallogtitlelabel' ), 'page', 'mw-log-page', 20, $title ) .
+                       Xml::inputLabel( $this->msg( 'speciallogtitlelabel' )->text(), 'page', 'mw-log-page', 20, $title ) .
                        '</span>';
        }
 
@@ -286,7 +284,7 @@ class LogEventsList {
         */
        private function getTitlePattern( $pattern ) {
                return '<span style="white-space: nowrap">' .
-                       Xml::checkLabel( wfMsg( 'log-title-wildcard' ), 'pattern', 'pattern', $pattern ) .
+                       Xml::checkLabel( $this->msg( 'log-title-wildcard' )->text(), 'pattern', 'pattern', $pattern ) .
                        '</span>';
        }
 
@@ -295,14 +293,13 @@ class LogEventsList {
         * @return string
         */
        private function getExtraInputs( $types ) {
-               global $wgRequest;
-               $offender = $wgRequest->getVal('offender');
+               $offender = $this->getRequest()->getVal( 'offender' );
                $user = User::newFromName( $offender, false );
                if( !$user || ($user->getId() == 0 && !IP::isIPAddress($offender) ) ) {
                        $offender = ''; // Blank field if invalid
                }
                if( count($types) == 1 && $types[0] == 'suppress' ) {
-                       return Xml::inputLabel( wfMsg('revdelete-offender'), 'offender',
+                       return Xml::inputLabel( $this->msg( 'revdelete-offender' )->text(), 'offender',
                                'mw-log-offender', 20, $offender );
                }
                return '';
@@ -329,6 +326,7 @@ class LogEventsList {
        public function logLine( $row ) {
                $entry = DatabaseLogEntry::newFromRow( $row );
                $formatter = LogFormatter::newFromEntry( $entry );
+               $formatter->setContext( $this->getContext() );
                $formatter->setShowUserToolLinks( !( $this->flags & self::NO_EXTRA_USER_LINKS ) );
 
                $action = $formatter->getActionText();
@@ -356,9 +354,8 @@ class LogEventsList {
        }
 
        private function logTimestamp( LogEntry $entry ) {
-               global $wgLang;
-               $time = $wgLang->timeanddate( wfTimestamp( TS_MW, $entry->getTimestamp() ), true );
-               return htmlspecialchars( $time );
+               return htmlspecialchars( $this->getLanguage()->userTimeAndDate(
+                       $entry->getTimestamp(), $this->getUser() ) );
        }
 
        /**
@@ -371,7 +368,6 @@ class LogEventsList {
         * @return String
         */
        private function logActionLinks( $row, $title, $paramArray, &$comment ) {
-               global $wgUser;
                if( ( $this->flags & self::NO_ACTION_LINK ) // we don't want to see the action
                        || self::isDeleted( $row, LogPage::DELETED_ACTION ) ) // action is hidden
                {
@@ -388,15 +384,15 @@ class LogEventsList {
                                        array(
                                                'wpOldTitle' => $destTitle->getPrefixedDBkey(),
                                                'wpNewTitle' => $title->getPrefixedDBkey(),
-                                               'wpReason'   => wfMsgForContent( 'revertmove' ),
+                                               'wpReason'   => $this->msg( 'revertmove' )->inContentLanguage()->text(),
                                                'wpMovetalk' => 0
                                        )
                                );
-                               $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
+                               $revert = $this->msg( 'parentheses' )->rawParams( $revert )->escaped();
                        }
                // Show undelete link
                } elseif( self::typeAction( $row, array( 'delete', 'suppress' ), 'delete', 'deletedhistory' ) ) {
-                       if( !$wgUser->isAllowed( 'undelete' ) ) {
+                       if( !$this->getUser()->isAllowed( 'undelete' ) ) {
                                $viewdeleted = $this->message['undeleteviewlink'];
                        } else {
                                $viewdeleted = $this->message['undeletelink'];
@@ -407,7 +403,7 @@ class LogEventsList {
                                array(),
                                array( 'target' => $title->getPrefixedDBkey() )
                         );
-                       $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
+                       $revert = $this->msg( 'parentheses' )->rawParams( $revert )->escaped();
                // Show unblock/change block link
                } elseif( self::typeAction( $row, array( 'block', 'suppress' ), array( 'block', 'reblock' ), 'block' ) ) {
                        $revert = Linker::linkKnown(
@@ -419,7 +415,7 @@ class LogEventsList {
                                        SpecialPage::getTitleFor( 'Block', $row->log_title ),
                                        $this->message['change-blocklink']
                                );
-                               $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
+                               $revert = $this->msg( 'parentheses' )->rawParams( $revert )->escaped();
                // Show change protection link
                } elseif( self::typeAction( $row, 'protect', array( 'modify', 'protect', 'unprotect' ) ) ) {
                        $revert .= Linker::link( $title,
@@ -430,7 +426,7 @@ class LogEventsList {
                                                'offset' => $row->log_timestamp
                                        )
                                );
-                       if( $wgUser->isAllowed( 'protect' ) ) {
+                       if( $this->getUser()->isAllowed( 'protect' ) ) {
                                $revert .= $this->message['pipe-separator'] .
                                        Linker::link( $title,
                                                $this->message['protect_change'],
@@ -438,7 +434,7 @@ class LogEventsList {
                                                array( 'action' => 'protect' ),
                                                'known' );
                        }
-                       $revert = ' ' . wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
+                       $revert = ' ' . $this->msg( 'parentheses' )->rawParams( $revert )->escaped();
                // Show unmerge link
                } elseif( self::typeAction( $row, 'merge', 'merge', 'mergehistory' ) ) {
                        $revert = Linker::linkKnown(
@@ -451,7 +447,7 @@ class LogEventsList {
                                        'mergepoint' => $paramArray[1]
                                )
                        );
-                       $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
+                       $revert = $this->msg( 'parentheses' )->rawParams( $revert )->escaped();
                // If an edit was hidden from a page give a review link to the history
                } elseif( self::typeAction( $row, array( 'delete', 'suppress' ), 'revision', 'deletedhistory' ) ) {
                        $revert = RevisionDeleter::getLogLinks( $title, $paramArray,
@@ -473,7 +469,7 @@ class LogEventsList {
                                                'ids' => $query
                                        )
                                );
-                               $revert = wfMessage( 'parentheses' )->rawParams( $revert )->escaped();
+                               $revert = $this->msg( 'parentheses' )->rawParams( $revert )->escaped();
                        }
                // Do nothing. The implementation is handled by the hook modifiying the passed-by-ref parameters.
                } else {
@@ -491,24 +487,24 @@ class LogEventsList {
         * @return string
         */
        private function getShowHideLinks( $row ) {
-               global $wgUser;
                if( ( $this->flags == self::NO_ACTION_LINK ) // we don't want to see the links
                        || $row->log_type == 'suppress' ) { // no one can hide items from the suppress log
                        return '';
                }
                $del = '';
+               $user = $this->getUser();
                // Don't show useless checkbox to people who cannot hide revisions
-               if( $wgUser->isAllowed( 'deletedhistory' ) ) {
-                       if( $row->log_deleted || $wgUser->isAllowed( 'deleterevision' ) ) {
-                               $canHide = $wgUser->isAllowed( 'deleterevision' );
+               if( $user->isAllowed( 'deletedhistory' ) ) {
+                       if( $row->log_deleted || $user->isAllowed( 'deleterevision' ) ) {
+                               $canHide = $user->isAllowed( 'deleterevision' );
                                if ( $this->flags & self::USE_REVDEL_CHECKBOXES ) { // Show checkboxes instead of links.
-                                       if ( !self::userCan( $row, LogPage::DELETED_RESTRICTED ) ) { // If event was hidden from sysops
+                                       if ( !self::userCan( $row, LogPage::DELETED_RESTRICTED, $user ) ) { // If event was hidden from sysops
                                                $del = Xml::check( 'deleterevisions', false, array( 'disabled' => 'disabled' ) );
                                        } else {
                                                $del = Xml::check( 'showhiderevisions', false, array( 'name' => 'ids[' . $row->log_id . ']' ) );
                                        }
                                } else {
-                                       if ( !self::userCan( $row, LogPage::DELETED_RESTRICTED ) ) { // If event was hidden from sysops
+                                       if ( !self::userCan( $row, LogPage::DELETED_RESTRICTED, $user ) ) { // If event was hidden from sysops
                                                $del = Linker::revDeleteLinkDisabled( $canHide );
                                        } else {
                                                $query = array(
@@ -608,8 +604,8 @@ class LogEventsList {
         *   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'
-        * - offset Set to overwrite offset parameter in $wgRequest
+        *   that are processed with wfMessage
+        * - offset Set to overwrite offset parameter in WebRequest
         *   set to '' to unset offset
         * - wrap String Wrap the message in html (usually something like "<div ...>$1</div>").
         * - flags Integer display flags (NO_ACTION_LINK,NO_EXTRA_USER_LINKS)
@@ -647,9 +643,9 @@ class LogEventsList {
                }
 
                # Insert list of top 50 (or top $lim) items
-               $loglist = new LogEventsList( $context->getSkin(), $context->getOutput(), $flags );
+               $loglist = new LogEventsList( $context, null, $flags );
                $pager = new LogPager( $loglist, $types, $user, $page, '', $conds );
-               if ( isset( $param['offset'] ) ) { # Tell pager to ignore $wgRequest offset
+               if ( isset( $param['offset'] ) ) { # Tell pager to ignore WebRequest offset
                        $pager->setOffset( $param['offset'] );
                }
                if( $lim > 0 ) $pager->mLimit = $lim;
@@ -660,11 +656,11 @@ class LogEventsList {
                                $s = '<div class="mw-warning-with-logexcerpt">';
 
                                if ( count( $msgKey ) == 1 ) {
-                                       $s .= wfMsgExt( $msgKey[0], array( 'parse' ) );
+                                       $s .= $context->msg( $msgKey[0] )->parseAsBlock();
                                } else { // Process additional arguments
                                        $args = $msgKey;
                                        array_shift( $args );
-                                       $s .= wfMsgExt( $msgKey[0], array( 'parse' ), $args );
+                                       $s .= $context->msg( $msgKey[0], $args )->parseAsBlock();
                                }
                        }
                        $s .= $loglist->beginLogEventsList() .
@@ -673,7 +669,7 @@ class LogEventsList {
                } else {
                        if ( $showIfEmpty ) {
                                $s = Html::rawElement( 'div', array( 'class' => 'mw-warning-logempty' ),
-                                       wfMsgExt( 'logempty', array( 'parseinline' ) ) );
+                                       $context->msg( 'logempty' )->parse() );
                        }
                }
                if( $pager->getNumRows() > $pager->mLimit ) { # Show "Full log" link
@@ -692,7 +688,7 @@ class LogEventsList {
                                $urlParam['type'] = $types[0];
                        $s .= Linker::link(
                                SpecialPage::getTitleFor( 'Log' ),
-                               wfMsgHtml( 'log-fulllog' ),
+                               $context->msg( 'log-fulllog' )->escaped(),
                                array(),
                                $urlParam
                        );
index 1ba6a3b..93f3f83 100644 (file)
@@ -496,9 +496,7 @@ class LogFormatter {
         * @return Message
         */
        protected function msg( $key ) {
-               return wfMessage( $key )
-                       ->inLanguage( $this->context->getLanguage() )
-                       ->title( $this->context->getTitle() );
+               return $this->context->msg( $key );
        }
 
        protected function makeUserLink( User $user ) {
index 3891f34..9bb7eb1 100644 (file)
@@ -417,7 +417,8 @@ class LogPage {
                                        # Use the language name for log titles, rather than Log/X
                                        if( $name == 'Log' ) {
                                                $titleLink = Linker::link( $title, LogPage::logName( $par ) );
-                                               $titleLink = wfMessage( 'parentheses' )->rawParams( $titleLink )->escaped();
+                                               $titleLink = wfMessage( 'parentheses' )->inLanguage( $lang )
+                                                       ->rawParams( $titleLink )->escaped();
                                        } else {
                                                $titleLink = Linker::link( $title );
                                        }
@@ -551,7 +552,8 @@ class LogPage {
                        for( $i = 0; $i < count( $flags ); $i++ ) {
                                $flags[$i] = self::formatBlockFlag( $flags[$i], $lang );
                        }
-                       return wfMessage( 'parentheses' )->rawParams( $lang->commaList( $flags ) )->escaped();
+                       return wfMessage( 'parentheses' )->inLanguage( $lang )
+                               ->rawParams( $lang->commaList( $flags ) )->escaped();
                } else {
                        return '';
                }
index 339688d..4fc7637 100644 (file)
@@ -45,24 +45,20 @@ class PatrolLog {
                        }
                }
 
-               $title = Title::makeTitleSafe( $rc->getAttribute( 'rc_namespace' ), $rc->getAttribute( 'rc_title' ) );
-               if( $title ) {
-                       if ( !$user ) {
-                               global $wgUser;
-                               $user = $wgUser;
-                       }
+               if ( !$user ) {
+                       global $wgUser;
+                       $user = $wgUser;
+               }
 
-                       $entry = new ManualLogEntry( 'patrol', 'patrol' );
-                       $entry->setTarget( $title );
-                       $entry->setParameters( self::buildParams( $rc, $auto ) );
-                       $entry->setPerformer( $user );
-                       $logid = $entry->insert();
-                       if ( !$auto ) {
-                               $entry->publish( $logid, 'udp' );
-                       }
-                       return true;
+               $entry = new ManualLogEntry( 'patrol', 'patrol' );
+               $entry->setTarget( $rc->getTitle() );
+               $entry->setParameters( self::buildParams( $rc, $auto ) );
+               $entry->setPerformer( $user );
+               $logid = $entry->insert();
+               if ( !$auto ) {
+                       $entry->publish( $logid, 'udp' );
                }
-               return false;
+               return true;
        }
 
        /**
index bca6985..262665b 100644 (file)
@@ -363,13 +363,15 @@ class DeviceDetection implements IDeviceDetector {
                        $deviceName = 'android';
                        if ( strpos( $userAgent, 'Opera Mini' ) !== false ) {
                                $deviceName = 'operamini';
+                       } elseif ( strpos( $userAgent, 'Opera Mobi' ) !== false ) {
+                               $deviceName = 'operamobile';
                        }
-               } else if ( preg_match( '/MSIE 9.0/', $userAgent ) ||
+               } elseif ( preg_match( '/MSIE 9.0/', $userAgent ) ||
                                preg_match( '/MSIE 8.0/', $userAgent ) ) {
                        $deviceName = 'ie';
-               } else if( preg_match( '/MSIE/', $userAgent ) ) {
+               } elseif( preg_match( '/MSIE/', $userAgent ) ) {
                        $deviceName = 'html';
-               } else if ( strpos( $userAgent, 'Opera Mobi' ) !== false ) {
+               } elseif ( strpos( $userAgent, 'Opera Mobi' ) !== false ) {
                        $deviceName = 'operamobile';
                } elseif ( preg_match( '/iPad.* Safari/', $userAgent ) ) {
                        $deviceName = 'iphone';
@@ -398,10 +400,8 @@ class DeviceDetection implements IDeviceDetector {
                                $deviceName = 'wii';
                        } elseif ( strpos( $userAgent, 'Opera Mini' ) !== false ) {
                                $deviceName = 'operamini';
-                       } elseif ( strpos( $userAgent, 'Opera Mobi' ) !== false ) {
-                               $deviceName = 'iphone';
                        } else {
-                               $deviceName = 'webkit';
+                               $deviceName = 'operamobile';
                        }
                } elseif ( preg_match( '/Kindle\/1.0/', $userAgent ) ) {
                        $deviceName = 'kindle';
index b9a6a69..5a7729b 100644 (file)
  * @ingroup Cache
  */
 class APCBagOStuff extends BagOStuff {
+
+       /**
+        * @param $key string
+        * @return mixed
+        */
        public function get( $key ) {
                $val = apc_fetch( $key );
 
@@ -37,18 +42,32 @@ class APCBagOStuff extends BagOStuff {
                return $val;
        }
 
+       /**
+        * @param $key string
+        * @param $value mixed
+        * @param $exptime int
+        * @return bool
+        */
        public function set( $key, $value, $exptime = 0 ) {
                apc_store( $key, serialize( $value ), $exptime );
 
                return true;
        }
 
+       /**
+        * @param $key string
+        * @param $time int
+        * @return bool
+        */
        public function delete( $key, $time = 0 ) {
                apc_delete( $key );
 
                return true;
        }
 
+       /**
+        * @return Array
+        */
        public function keys() {
                $info = apc_cache_info( 'user' );
                $list = $info['cache_list'];
index e6ba042..0aebfa3 100644 (file)
@@ -153,6 +153,7 @@ abstract class BagOStuff {
        /**
         * @param $key string
         * @param $value mixed
+        * @param $exptime int
         * @return bool success
         */
        public function replace( $key, $value, $exptime = 0 ) {
@@ -166,7 +167,7 @@ abstract class BagOStuff {
         * @param $key String: Key to increase
         * @param $value Integer: Value to add to $key (Default 1)
         * @return null if lock is not possible else $key value increased by $value
-        * @return success
+        * @return bool success
         */
        public function incr( $key, $value = 1 ) {
                if ( !$this->lock( $key ) ) {
index 63ad4de..8483d7e 100644 (file)
@@ -35,6 +35,9 @@
 class DBABagOStuff extends BagOStuff {
        var $mHandler, $mFile, $mReader, $mWriter, $mDisabled;
 
+       /**
+        * @param $params array
+        */
        public function __construct( $params ) {
                global $wgDBAhandler;
 
@@ -63,6 +66,7 @@ class DBABagOStuff extends BagOStuff {
        }
 
        /**
+        * @param $blob string
         * @return array list containing value first and expiry second
         */
        function decode( $blob ) {
@@ -76,6 +80,9 @@ class DBABagOStuff extends BagOStuff {
                }
        }
 
+       /**
+        * @return resource
+        */
        function getReader() {
                if ( file_exists( $this->mFile ) ) {
                        $handle = dba_open( $this->mFile, 'rl', $this->mHandler );
@@ -90,6 +97,9 @@ class DBABagOStuff extends BagOStuff {
                return $handle;
        }
 
+       /**
+        * @return resource
+        */
        function getWriter() {
                $handle = dba_open( $this->mFile, 'cl', $this->mHandler );
 
@@ -100,6 +110,10 @@ class DBABagOStuff extends BagOStuff {
                return $handle;
        }
 
+       /**
+        * @param $key string
+        * @return mixed|null|string
+        */
        function get( $key ) {
                wfProfileIn( __METHOD__ );
                wfDebug( __METHOD__ . "($key)\n" );
@@ -129,6 +143,12 @@ class DBABagOStuff extends BagOStuff {
                return $val;
        }
 
+       /**
+        * @param $key string
+        * @param $value mixed
+        * @param $exptime int
+        * @return bool
+        */
        function set( $key, $value, $exptime = 0 ) {
                wfProfileIn( __METHOD__ );
                wfDebug( __METHOD__ . "($key)\n" );
@@ -148,6 +168,11 @@ class DBABagOStuff extends BagOStuff {
                return $ret;
        }
 
+       /**
+        * @param $key string
+        * @param $time int
+        * @return bool
+        */
        function delete( $key, $time = 0 ) {
                wfProfileIn( __METHOD__ );
                wfDebug( __METHOD__ . "($key)\n" );
@@ -165,6 +190,12 @@ class DBABagOStuff extends BagOStuff {
                return $ret;
        }
 
+       /**
+        * @param $key string
+        * @param $value mixed
+        * @param $exptime int
+        * @return bool
+        */
        function add( $key, $value, $exptime = 0 ) {
                wfProfileIn( __METHOD__ );
 
@@ -197,6 +228,9 @@ class DBABagOStuff extends BagOStuff {
                return $ret;
        }
 
+       /**
+        * @return Array
+        */
        function keys() {
                $reader = $this->getReader();
                $k1 = dba_firstkey( $reader );
index fb31d5c..f86cf15 100644 (file)
@@ -33,6 +33,9 @@ class EhcacheBagOStuff extends BagOStuff {
        
        var $curls = array();
 
+       /**
+        * @param $params array
+        */
        function __construct( $params ) {
                if ( !defined( 'CURLOPT_TIMEOUT_MS' ) ) {
                        throw new MWException( __CLASS__.' requires curl version 7.16.2 or later.' );
@@ -59,6 +62,10 @@ class EhcacheBagOStuff extends BagOStuff {
                );
        }
 
+       /**
+        * @param $key string
+        * @return bool|mixed
+        */
        public function get( $key ) {
                wfProfileIn( __METHOD__ );
                $response = $this->doItemRequest( $key );
@@ -93,6 +100,12 @@ class EhcacheBagOStuff extends BagOStuff {
                return $data;
        }
 
+       /**
+        * @param $key string
+        * @param $value mixed
+        * @param $expiry int
+        * @return bool
+        */
        public function set( $key, $value, $expiry = 0 ) {
                wfProfileIn( __METHOD__ );
                $expiry = $this->convertExpiry( $expiry );
@@ -130,6 +143,11 @@ class EhcacheBagOStuff extends BagOStuff {
                return $result;
        }
 
+       /**
+        * @param $key string
+        * @param $time int
+        * @return bool
+        */
        public function delete( $key, $time = 0 ) {
                wfProfileIn( __METHOD__ );
                $response = $this->doItemRequest( $key,
@@ -145,6 +163,10 @@ class EhcacheBagOStuff extends BagOStuff {
                return $result;
        }
 
+       /**
+        * @param $key string
+        * @return string
+        */
        protected function getCacheUrl( $key ) {
                if ( count( $this->servers ) == 1 ) {
                        $server = reset( $this->servers );
@@ -172,6 +194,13 @@ class EhcacheBagOStuff extends BagOStuff {
                return $this->curls[$cacheUrl];
        }
 
+       /**
+        * @param $key string
+        * @param $data
+        * @param $type
+        * @param $ttl
+        * @return int
+        */
        protected function attemptPut( $key, $data, $type, $ttl ) {
                // In initial benchmarking, it was 30 times faster to use CURLOPT_POST 
                // than CURLOPT_UPLOAD with CURLOPT_READFUNCTION. This was because
@@ -196,6 +225,10 @@ class EhcacheBagOStuff extends BagOStuff {
                }
        }
 
+       /**
+        * @param $key string
+        * @return bool
+        */
        protected function createCache( $key ) {
                wfDebug( __METHOD__.": creating cache for $key\n" );
                $response = $this->doCacheRequest( $key, 
@@ -208,21 +241,26 @@ class EhcacheBagOStuff extends BagOStuff {
                        wfDebug( __CLASS__.": failed to create cache for $key\n" );
                        return false;
                }
-               if ( $response['http_code'] == 201 /* created */ 
-                       || $response['http_code'] == 409 /* already there */ ) 
-               {
-                       return true;
-               } else {
-                       return false;
-               }                       
+               return ( $response['http_code'] == 201 /* created */
+                       || $response['http_code'] == 409 /* already there */ );
        }
 
+       /**
+        * @param $key string
+        * @param $curlOptions array
+        * @return array|bool|mixed
+        */
        protected function doCacheRequest( $key, $curlOptions = array() ) {
                $cacheUrl = $this->getCacheUrl( $key );
                $curl = $this->getCurl( $cacheUrl );
                return $this->doRequest( $curl, $cacheUrl, $curlOptions );
        }
 
+       /**
+        * @param $key string
+        * @param $curlOptions array
+        * @return array|bool|mixed
+        */
        protected function doItemRequest( $key, $curlOptions = array() ) {
                $cacheUrl = $this->getCacheUrl( $key );
                $curl = $this->getCurl( $cacheUrl );
@@ -230,6 +268,13 @@ class EhcacheBagOStuff extends BagOStuff {
                return $this->doRequest( $curl, $url, $curlOptions );
        }
 
+       /**
+        * @param $curl
+        * @param $url string
+        * @param $curlOptions array
+        * @return array|bool|mixed
+        * @throws MWException
+        */
        protected function doRequest( $curl, $url, $curlOptions = array() ) {
                if ( array_diff_key( $curlOptions, $this->curlOptions ) ) {
                        // var_dump( array_diff_key( $curlOptions, $this->curlOptions ) );
index abc6bcf..bd28b24 100644 (file)
  * @ingroup Cache
  */
 class EmptyBagOStuff extends BagOStuff {
+
+       /**
+        * @param $key string
+        * @return bool
+        */
        function get( $key ) {
                return false;
        }
 
+       /**
+        * @param $key string
+        * @param $value mixed
+        * @param $exp int
+        * @return bool
+        */
        function set( $key, $value, $exp = 0 ) {
                return true;
        }
 
+       /**
+        * @param $key string
+        * @param $time int
+        * @return bool
+        */
        function delete( $key, $time = 0 ) {
                return true;
        }
index 26b949f..799f26a 100644 (file)
@@ -34,6 +34,10 @@ class HashBagOStuff extends BagOStuff {
                $this->bag = array();
        }
 
+       /**
+        * @param $key string
+        * @return bool
+        */
        protected function expire( $key ) {
                $et = $this->bag[$key][1];
 
@@ -46,6 +50,10 @@ class HashBagOStuff extends BagOStuff {
                return true;
        }
 
+       /**
+        * @param $key string
+        * @return bool|mixed
+        */
        function get( $key ) {
                if ( !isset( $this->bag[$key] ) ) {
                        return false;
@@ -58,10 +66,22 @@ class HashBagOStuff extends BagOStuff {
                return $this->bag[$key][0];
        }
 
+       /**
+        * @param $key string
+        * @param $value mixed
+        * @param $exptime int
+        * @return bool
+        */
        function set( $key, $value, $exptime = 0 ) {
                $this->bag[$key] = array( $value, $this->convertExpiry( $exptime ) );
+               return true;
        }
 
+       /**
+        * @param $key string
+        * @param $time int
+        * @return bool
+        */
        function delete( $key, $time = 0 ) {
                if ( !isset( $this->bag[$key] ) ) {
                        return false;
@@ -72,6 +92,9 @@ class HashBagOStuff extends BagOStuff {
                return true;
        }
 
+       /**
+        * @return array
+        */
        function keys() {
                return array_keys( $this->bag );
        }
index 1312866..324b3a6 100644 (file)
@@ -119,6 +119,7 @@ class MemcachedBagOStuff extends BagOStuff {
         * the other control characters for compatibility with libmemcached
         * verify_key. We leave other punctuation alone, to maximise backwards
         * compatibility.
+        * @param $key string
         * @return string
         */
        public function encodeKey( $key ) {
@@ -126,6 +127,10 @@ class MemcachedBagOStuff extends BagOStuff {
                        array( $this, 'encodeKeyCallback' ), $key );
        }
 
+       /**
+        * @param $m array
+        * @return string
+        */
        protected function encodeKeyCallback( $m ) {
                return rawurlencode( $m[0] );
        }
index 65d736a..76886eb 100644 (file)
@@ -141,6 +141,7 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
        /**
         * @param $key string
         * @param $value int
+        * @param $exptime int
         * @return Mixed
         */
        public function add( $key, $value, $exptime = 0 ) {
@@ -188,8 +189,9 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
         * the client, but some day we might find a case where it should be
         * different.
         *
-        * @param $key The key used by the caller, or false if there wasn't one.
-        * @param $result The return value
+        * @param $key string The key used by the caller, or false if there wasn't one.
+        * @param $result Mixed The return value
+        * @return Mixed
         */
        protected function checkResult( $key, $result ) {
                if ( $result !== false ) {
index c562134..a46dc71 100644 (file)
@@ -68,7 +68,7 @@ class MemcachedPhpBagOStuff extends MemcachedBagOStuff {
        /**
         * @param $key
         * @param $timeout int
-        * @return
+        * @return bool
         */
        public function lock( $key, $timeout = 0 ) {
                return $this->client->lock( $this->encodeKey( $key ), $timeout );
index fd60e72..e496ddd 100644 (file)
@@ -34,11 +34,12 @@ class MultiWriteBagOStuff extends BagOStuff {
        /**
         * Constructor. Parameters are:
         *
-        *   - caches:   This should have a numbered array of cache parameter 
+        *   - caches:   This should have a numbered array of cache parameter
         *               structures, in the style required by $wgObjectCaches. See
         *               the documentation of $wgObjectCaches for more detail.
         *
         * @param $params array
+        * @throws MWException
         */
        public function __construct( $params ) {
                if ( !isset( $params['caches'] ) ) {
@@ -51,10 +52,17 @@ class MultiWriteBagOStuff extends BagOStuff {
                }
        }
 
+       /**
+        * @param $debug bool
+        */
        public function setDebug( $debug ) {
                $this->doWrite( 'setDebug', $debug );
        }
 
+       /**
+        * @param $key string
+        * @return bool|mixed
+        */
        public function get( $key ) {
                foreach ( $this->caches as $cache ) {
                        $value = $cache->get( $key );
@@ -65,30 +73,68 @@ class MultiWriteBagOStuff extends BagOStuff {
                return false;
        }
 
+       /**
+        * @param $key string
+        * @param $value mixed
+        * @param $exptime int
+        * @return bool
+        */
        public function set( $key, $value, $exptime = 0 ) {
                return $this->doWrite( 'set', $key, $value, $exptime );
        }
 
+       /**
+        * @param $key string
+        * @param $time int
+        * @return bool
+        */
        public function delete( $key, $time = 0 ) {
                return $this->doWrite( 'delete', $key, $time );
        }
 
+       /**
+        * @param $key string
+        * @param $value mixed
+        * @param $exptime int
+        * @return bool
+        */
        public function add( $key, $value, $exptime = 0 ) {
                return $this->doWrite( 'add', $key, $value, $exptime );
        }
 
+       /**
+        * @param $key string
+        * @param $value mixed
+        * @param $exptime int
+        * @return bool
+        */
        public function replace( $key, $value, $exptime = 0 ) {
                return $this->doWrite( 'replace', $key, $value, $exptime );
        }
 
+       /**
+        * @param $key string
+        * @param $value int
+        * @return bool|null
+        */
        public function incr( $key, $value = 1 ) {
                return $this->doWrite( 'incr', $key, $value );
        }
 
+       /**
+        * @param $key string
+        * @param $value int
+        * @return bool
+        */
        public function decr( $key, $value = 1 ) {
                return $this->doWrite( 'decr', $key, $value );
-       }       
+       }
 
+       /**
+        * @param $key string
+        * @param $timeout int
+        * @return bool
+        */
        public function lock( $key, $timeout = 0 ) {
                // Lock only the first cache, to avoid deadlocks
                if ( isset( $this->caches[0] ) ) {
@@ -98,6 +144,10 @@ class MultiWriteBagOStuff extends BagOStuff {
                }
        }
 
+       /**
+        * @param $key string
+        * @return bool
+        */
        public function unlock( $key ) {
                if ( isset( $this->caches[0] ) ) {
                        return $this->caches[0]->unlock( $key );
@@ -106,6 +156,10 @@ class MultiWriteBagOStuff extends BagOStuff {
                }
        }
 
+       /**
+        * @param $method string
+        * @return bool
+        */
        protected function doWrite( $method /*, ... */ ) {
                $ret = true;
                $args = func_get_args();
@@ -120,9 +174,11 @@ class MultiWriteBagOStuff extends BagOStuff {
        }
 
        /**
-        * Delete objects expiring before a certain date. 
+        * Delete objects expiring before a certain date.
         *
         * Succeed if any of the child caches succeed.
+        * @param $date string
+        * @param $progressCallback bool|callback
         * @return bool
         */
        public function deleteObjectsExpiringBefore( $date, $progressCallback = false ) {
index 2e00e16..9b360f3 100644 (file)
@@ -32,9 +32,9 @@ class ObjectCache {
        /**
         * Get a cached instance of the specified type of cache object.
         *
-        * @param $id
+        * @param $id string
         *
-        * @return object
+        * @return ObjectCache
         */
        static function getInstance( $id ) {
                if ( isset( self::$instances[$id] ) ) {
@@ -56,8 +56,9 @@ class ObjectCache {
        /**
         * Create a new cache object of the specified type.
         *
-        * @param $id
+        * @param $id string
         *
+        * @throws MWException
         * @return ObjectCache
         */
        static function newFromId( $id ) {
@@ -76,6 +77,7 @@ class ObjectCache {
         *
         * @param $params array
         *
+        * @throws MWException
         * @return ObjectCache
         */
        static function newFromParams( $params ) {
@@ -99,6 +101,8 @@ class ObjectCache {
         * be an alias to the configured cache choice for that.
         * If no cache choice is configured (by default $wgMainCacheType is CACHE_NONE),
         * then CACHE_ANYTHING will forward to CACHE_DB.
+        * @param $params array
+        * @return ObjectCache
         */
        static function newAnything( $params ) {
                global $wgMainCacheType, $wgMessageCacheType, $wgParserCacheType;
@@ -114,6 +118,8 @@ class ObjectCache {
        /**
         * Factory function referenced from DefaultSettings.php for CACHE_ACCEL.
         *
+        * @param $params array
+        * @throws MWException
         * @return ObjectCache
         */
        static function newAccelerator( $params ) {
index 209975b..5ad7020 100644 (file)
@@ -122,6 +122,7 @@ class SqlBagOStuff extends BagOStuff {
 
        /**
         * Get the table name for a given key
+        * @param $key string
         * @return string
         */
        protected function getTableByKey( $key ) {
@@ -135,6 +136,7 @@ class SqlBagOStuff extends BagOStuff {
 
        /**
         * Get the table name for a given shard index
+        * @param $index int
         * @return string
         */
        protected function getTableByShard( $index ) {
@@ -147,11 +149,19 @@ class SqlBagOStuff extends BagOStuff {
                }
        }
 
+       /**
+        * @param $key string
+        * @return mixed
+        */
        public function get( $key ) {
                $values = $this->getMulti( array( $key ) );
                return $values[$key];
        }
 
+       /**
+        * @param $keys array
+        * @return Array
+        */
        public function getMulti( array $keys ) {
                $values = array(); // array of (key => value)
 
@@ -208,6 +218,12 @@ class SqlBagOStuff extends BagOStuff {
                return $values;
        }
 
+       /**
+        * @param $key string
+        * @param $value mixed
+        * @param $exptime int
+        * @return bool
+        */
        public function set( $key, $value, $exptime = 0 ) {
                $db = $this->getDB();
                $exptime = intval( $exptime );
@@ -247,6 +263,11 @@ class SqlBagOStuff extends BagOStuff {
                return true;
        }
 
+       /**
+        * @param $key string
+        * @param $time int
+        * @return bool
+        */
        public function delete( $key, $time = 0 ) {
                $db = $this->getDB();
 
@@ -266,6 +287,11 @@ class SqlBagOStuff extends BagOStuff {
                return true;
        }
 
+       /**
+        * @param $key string
+        * @param $step int
+        * @return int|null
+        */
        public function incr( $key, $step = 1 ) {
                $db = $this->getDB();
                $tableName = $this->getTableByKey( $key );
@@ -316,6 +342,9 @@ class SqlBagOStuff extends BagOStuff {
                return $newValue;
        }
 
+       /**
+        * @return Array
+        */
        public function keys() {
                $db = $this->getDB();
                $result = array();
@@ -331,10 +360,17 @@ class SqlBagOStuff extends BagOStuff {
                return $result;
        }
 
+       /**
+        * @param $exptime string
+        * @return bool
+        */
        protected function isExpired( $exptime ) {
                return $exptime != $this->getMaxDateTime() && wfTimestamp( TS_UNIX, $exptime ) < time();
        }
 
+       /**
+        * @return string
+        */
        protected function getMaxDateTime() {
                if ( time() > 0x7fffffff ) {
                        return $this->getDB()->timestamp( 1 << 62 );
@@ -366,6 +402,8 @@ class SqlBagOStuff extends BagOStuff {
 
        /**
         * Delete objects from the database which expire before a certain date.
+        * @param $timestamp string
+        * @param $progressCallback bool|callback
         * @return bool
         */
        public function deleteObjectsExpiringBefore( $timestamp, $progressCallback = false ) {
index 4fd3cf4..21aa39e 100644 (file)
@@ -74,6 +74,9 @@ class WinCacheBagOStuff extends BagOStuff {
                return true;
        }
 
+       /**
+        * @return Array
+        */
        public function keys() {
                $info = wincache_ucache_info();
                $list = $info['ucache_entries'];
index 7bd2aab..7991ca6 100644 (file)
@@ -364,6 +364,7 @@ class Parser {
                # No more strip!
                wfRunHooks( 'ParserAfterStrip', array( &$this, &$text, &$this->mStripState ) );
                $text = $this->internalParse( $text );
+               wfRunHooks( 'ParserAfterParse', array( &$this, &$text, &$this->mStripState ) );
 
                $text = $this->mStripState->unstripGeneral( $text );
 
@@ -1121,6 +1122,7 @@ class Parser {
                        $text = $this->replaceVariables( $text );
                }
 
+               wfRunHooks( 'InternalParseBeforeSanitize', array( &$this, &$text, &$this->mStripState ) );
                $text = Sanitizer::removeHTMLtags( $text, array( &$this, 'attributeStripCallback' ), false, array_keys( $this->mTransparentTagHooks ) );
                wfRunHooks( 'InternalParseBeforeLinks', array( &$this, &$text, &$this->mStripState ) );
 
index b3d7e75..8b1452e 100644 (file)
@@ -713,23 +713,27 @@ class ResourceLoader {
                                // Styles
                                $styles = array();
                                if ( $context->shouldIncludeStyles() ) {
-                                       // If we are in debug mode without &only= set, we'll want to return an array of URLs
-                                       // See comment near shouldIncludeScripts() for more details
-                                       if ( $context->getDebug() && !$context->getOnly() && $module->supportsURLLoading() ) {
-                                               $styles = $module->getStyleURLsForDebug( $context );
-                                       } else {
-                                               $styles = $module->getStyles( $context );
-                                               // Minify CSS before embedding in mw.loader.implement call
-                                               // (unless in debug mode)
-                                               if ( !$context->getDebug() ) {
-                                                       foreach ( $styles as $media => $style ) {
-                                                               if ( is_string( $style ) ) {
-                                                                       $styles[$media] = $this->filter( 'minify-css', $style );
+                                       // Don't create empty stylesheets like array( '' => '' ) for modules
+                                       // that don't *have* any stylesheets (bug 38024).
+                                       $stylePairs = $module->getStyles( $context );
+                                       if ( count ( $stylePairs ) ) {
+                                               // If we are in debug mode without &only= set, we'll want to return an array of URLs
+                                               // See comment near shouldIncludeScripts() for more details
+                                               if ( $context->getDebug() && !$context->getOnly() && $module->supportsURLLoading() ) {
+                                                       $styles = $module->getStyleURLsForDebug( $context );
+                                               } else {
+                                                       // Minify CSS before embedding in mw.loader.implement call
+                                                       // (unless in debug mode)
+                                                       if ( !$context->getDebug() ) {
+                                                               foreach ( $stylePairs as $media => $style ) {
+                                                                       if ( is_string( $style ) ) {
+                                                                               $stylePairs[$media] = $this->filter( 'minify-css', $style );
+                                                                       }
                                                                }
                                                        }
+                                                       // Combine styles into @media groups as one big string
+                                                       $styles = array( '' => self::makeCombinedStyles( $stylePairs ) );
                                                }
-                                               // Combine styles for all media types
-                                               $styles = array( '' => self::makeCombinedStyles( $styles ) );
                                        }
                                }
 
@@ -748,7 +752,11 @@ class ResourceLoader {
                                                }
                                                break;
                                        case 'styles':
-                                               $out .= $styles['']; // Code above has set $styles['']
+                                               // We no longer seperate into media, they are all concatenated now with
+                                               // custom media type groups into @media .. {} sections.
+                                               // Module returns either an empty array or an array with '' (no media type) as
+                                               // only key.
+                                               $out .= isset( $styles[''] ) ? $styles[''] : '';
                                                break;
                                        case 'messages':
                                                $out .= self::makeMessageSetScript( new XmlJsCode( $messagesBlob ) );
index 678c530..a8e0437 100644 (file)
@@ -756,7 +756,8 @@ class SearchResult {
        protected function initFromTitle( $title ) {
                $this->mTitle = $title;
                if ( !is_null( $this->mTitle ) ) {
-                       $this->mRevision = Revision::newFromTitle( $this->mTitle );
+                       $this->mRevision = Revision::newFromTitle(
+                               $this->mTitle, false, Revision::AVOID_MASTER );
                        if ( $this->mTitle->getNamespace() === NS_FILE )
                                $this->mImage = wfFindFile( $this->mTitle );
                }
index 06a4694..156b5f2 100644 (file)
@@ -40,7 +40,12 @@ class ActiveUsersPager extends UsersPager {
        /**
         * @var Array
         */
-       protected $groups;
+       protected $hideGroups = array();
+
+       /**
+        * @var Array
+        */
+       protected $hideRights = array();
 
        /**
         * @param $context IContextSource
@@ -73,12 +78,11 @@ class ActiveUsersPager extends UsersPager {
 
                $this->opts->fetchValuesFromRequest( $this->getRequest() );
 
-               $this->groups = array();
                if ( $this->opts->getValue( 'hidebots' ) == 1 ) {
-                       $this->groups['bot'] = true;
+                       $this->hideRights[] = 'bot';
                }
                if ( $this->opts->getValue( 'hidesysops' ) == 1 ) {
-                       $this->groups['sysop'] = true;
+                       $this->hideGroups[] = 'sysop';
                }
        }
 
@@ -127,12 +131,30 @@ class ActiveUsersPager extends UsersPager {
                $lang = $this->getLanguage();
 
                $list = array();
-               foreach( self::getGroups( $row->user_id ) as $group ) {
-                       if ( isset( $this->groups[$group] ) ) {
+               $user = User::newFromId( $row->user_id );
+
+               // User right filter
+               foreach( $this->hideRights as $right ) {
+                       // Calling User::getRights() within the loop so that
+                       // if the hideRights() filter is empty, we don't have to
+                       // trigger the lazy-init of the big userrights array in the
+                       // User object
+                       if ( in_array( $right, $user->getRights() ) ) {
+                               return '';
+                       }
+               }
+
+               // User group filter
+               // Note: This is a different loop than for user rights,
+               // because we're reusing it to build the group links
+               // at the same time
+               foreach( $user->getGroups() as $group ) {
+                       if ( in_array( $group, $this->hideGroups ) ) {
                                return '';
                        }
                        $list[] = self::buildGroupLink( $group, $userName );
                }
+
                $groups = $lang->commaList( $list );
 
                $item = $lang->specialList( $ulinks, $groups );
index 4d74fe1..3c43ed1 100644 (file)
@@ -338,6 +338,8 @@ class SpecialBlock extends FormSpecialPage {
         * @return string
         */
        protected function postText(){
+               $links = array();
+
                # Link to the user's contributions, if applicable
                if( $this->target instanceof User ){
                        $contribsPage = SpecialPage::getTitleFor( 'Contributions', $this->target->getName() );
index bc07d58..87ba0cb 100644 (file)
@@ -143,7 +143,7 @@ class SpecialBookSources extends SpecialPage {
                $page = $this->msg( 'booksources' )->inContentLanguage()->text();
                $title = Title::makeTitleSafe( NS_PROJECT, $page ); # Show list in content language
                if( is_object( $title ) && $title->exists() ) {
-                       $rev = Revision::newFromTitle( $title );
+                       $rev = Revision::newFromTitle( $title, false, Revision::AVOID_MASTER );
                        $this->getOutput()->addWikiText( str_replace( 'MAGICNUMBER', $this->isbn, $rev->getText() ) );
                        return true;
                }
index bd5a443..a1c6fd2 100644 (file)
@@ -201,7 +201,7 @@ class SpecialChangeEmail extends UnlistedSpecialPage {
                if ( !$status->isGood() ) {
                        $this->getOutput()->addHTML(
                                '<p class="error">' .
-                               $this->getOutput()->parseInline( $status->getWikiText( $info ) ) .
+                               $this->getOutput()->parseInline( $status->getWikiText( 'mailerror' ) ) .
                                '</p>' );
                        return false;
                }
index 9465037..e8223e8 100644 (file)
@@ -594,6 +594,66 @@ class ContribsPager extends ReverseChronologicalPager {
                return $query;
        }
 
+       /**
+        * This method basically executes the exact same code as the parent class, though with
+        * a hook added, to allow extentions to add additional queries.
+        *
+        * @param $offset String: index offset, inclusive
+        * @param $limit Integer: exact query limit
+        * @param $descending Boolean: query direction, false for ascending, true for descending
+        * @return ResultWrapper
+        */
+       function reallyDoQuery( $offset, $limit, $descending ) {
+               list( $tables, $fields, $conds, $fname, $options, $join_conds ) = $this->buildQueryInfo( $offset, $limit, $descending );
+               $pager = $this;
+
+               /*
+                * This hook will allow extensions to add in additional queries, so they can get their data
+                * in My Contributions as well. Extensions should append their results to the $data array.
+                *
+                * Extension queries have to implement the navbar requirement as well. They should
+                * - have a column aliased as $pager->getIndexField()
+                * - have LIMIT set
+                * - have a WHERE-clause that compares the $pager->getIndexField()-equivalent column to the offset
+                * - have the ORDER BY specified based upon the details provided by the navbar
+                *
+                * See includes/Pager.php buildQueryInfo() method on how to build LIMIT, WHERE & ORDER BY
+                *
+                * &$data: an array of results of all contribs queries
+                * $pager: the ContribsPager object hooked into
+                * $offset: see phpdoc above
+                * $limit: see phpdoc above
+                * $descending: see phpdoc above
+                */
+               $data = array( $this->mDb->select( $tables, $fields, $conds, $fname, $options, $join_conds ) );
+               wfRunHooks( 'ContribsPager::reallyDoQuery', array( &$data, $pager, $offset, $limit, $descending ) );
+
+               $result = array();
+
+               // loop all results and collect them in an array
+               foreach ( $data as $j => $query ) {
+                       foreach ( $query as $i => $row ) {
+                               // use index column as key, allowing us to easily sort in PHP
+                               $result[$row->{$this->getIndexField()} . "-$i"] = $row;
+                       }
+               }
+
+               // sort results
+               if ( $descending ) {
+                       ksort( $result );
+               } else {
+                       krsort( $result );
+               }
+
+               // enforce limit
+               $result = array_slice( $result, 0, $limit );
+
+               // get rid of array keys
+               $result = array_values( $result );
+
+               return new FakeResultWrapper( $result );
+       }
+
        function getQueryInfo() {
                list( $tables, $index, $userCond, $join_cond ) = $this->getUserCond();
 
@@ -702,7 +762,7 @@ class ContribsPager extends ReverseChronologicalPager {
                $this->mResult->rewind();
                $revIds = array();
                foreach ( $this->mResult as $row ) {
-                       if( $row->rev_parent_id ) {
+                       if( isset( $row->rev_parent_id ) && $row->rev_parent_id ) {
                                $revIds[] = $row->rev_parent_id;
                        }
                }
@@ -714,11 +774,13 @@ class ContribsPager extends ReverseChronologicalPager {
                $batch = new LinkBatch();
                # Give some pointers to make (last) links
                foreach ( $this->mResult as $row ) {
-                       if ( $this->contribs === 'newbie' ) { // multiple users
-                               $batch->add( NS_USER, $row->user_name );
-                               $batch->add( NS_USER_TALK, $row->user_name );
+                       if ( isset( $row->rev_id ) ) {
+                               if ( $this->contribs === 'newbie' ) { // multiple users
+                                       $batch->add( NS_USER, $row->user_name );
+                                       $batch->add( NS_USER_TALK, $row->user_name );
+                               }
+                               $batch->add( $row->page_namespace, $row->page_title );
                        }
-                       $batch->add( $row->page_namespace, $row->page_title );
                }
                $batch->execute();
                $this->mResult->seek( 0 );
@@ -753,123 +815,140 @@ class ContribsPager extends ReverseChronologicalPager {
        function formatRow( $row ) {
                wfProfileIn( __METHOD__ );
 
-               $rev = new Revision( $row );
+               $ret = '';
                $classes = array();
 
-               $page = Title::newFromRow( $row );
-               $link = Linker::link(
-                       $page,
-                       htmlspecialchars( $page->getPrefixedText() ),
-                       array(),
-                       $page->isRedirect() ? array( 'redirect' => 'no' ) : array()
-               );
-               # Mark current revisions
-               $topmarktext = '';
-               if ( $row->rev_id == $row->page_latest ) {
-                       $topmarktext .= '<span class="mw-uctop">' . $this->messages['uctop'] . '</span>';
-                       # Add rollback link
-                       if ( !$row->page_is_new && $page->quickUserCan( 'rollback' )
-                               && $page->quickUserCan( 'edit' ) )
-                       {
-                               $this->preventClickjacking();
-                               $topmarktext .= ' ' . Linker::generateRollback( $rev );
-                       }
-               }
-               $user = $this->getUser();
-               # Is there a visible previous revision?
-               if ( $rev->userCan( Revision::DELETED_TEXT, $user ) && $rev->getParentId() !== 0 ) {
-                       $difftext = Linker::linkKnown(
+               /*
+                * There may be more than just revision rows. To make sure that we'll only be processing
+                * revisions here, let's _try_ to build a revision out of our row (without displaying
+                * notices though) and then trying to grab data from the built object. If we succeed,
+                * we're definitely dealing with revision data and we may proceed, if not, we'll leave it
+                * to extensions to subscribe to the hook to parse the row.
+                */
+               wfSuppressWarnings();
+               $rev = new Revision( $row );
+               $validRevision = $rev->getParentId() !== null;
+               wfRestoreWarnings();
+
+               if ( $validRevision ) {
+                       $classes = array();
+
+                       $page = Title::newFromRow( $row );
+                       $link = Linker::link(
                                $page,
-                               $this->messages['diff'],
+                               htmlspecialchars( $page->getPrefixedText() ),
                                array(),
-                               array(
-                                       'diff' => 'prev',
-                                       'oldid' => $row->rev_id
-                               )
+                               $page->isRedirect() ? array( 'redirect' => 'no' ) : array()
                        );
-               } else {
-                       $difftext = $this->messages['diff'];
-               }
-               $histlink = Linker::linkKnown(
-                       $page,
-                       $this->messages['hist'],
-                       array(),
-                       array( 'action' => 'history' )
-               );
-
-               if ( $row->rev_parent_id === null ) {
-                       // For some reason rev_parent_id isn't populated for this row.
-                       // Its rumoured this is true on wikipedia for some revisions (bug 34922).
-                       // Next best thing is to have the total number of bytes.
-                       $chardiff = ' . . ' . Linker::formatRevisionSize( $row->rev_len ) . ' . . ';
-               } else {
-                       $parentLen = isset( $this->mParentLens[$row->rev_parent_id] ) ? $this->mParentLens[$row->rev_parent_id] : 0;
-                       $chardiff = ' . . ' . ChangesList::showCharacterDifference(
-                                       $parentLen, $row->rev_len ) . ' . . ';
-               }
-
-               $lang = $this->getLanguage();
-               $comment = $lang->getDirMark() . Linker::revComment( $rev, false, true );
-               $date = $lang->userTimeAndDate( $row->rev_timestamp, $user );
-               if ( $rev->userCan( Revision::DELETED_TEXT, $user ) ) {
-                       $d = Linker::linkKnown(
+                       # Mark current revisions
+                       $topmarktext = '';
+                       $user = $this->getUser();
+                       if ( $row->rev_id == $row->page_latest ) {
+                               $topmarktext .= '<span class="mw-uctop">' . $this->messages['uctop'] . '</span>';
+                               # Add rollback link
+                               if ( !$row->page_is_new && $page->quickUserCan( 'rollback', $user )
+                                       && $page->quickUserCan( 'edit', $user ) )
+                               {
+                                       $this->preventClickjacking();
+                                       $topmarktext .= ' ' . Linker::generateRollback( $rev, $this->getContext() );
+                               }
+                       }
+                       # Is there a visible previous revision?
+                       if ( $rev->userCan( Revision::DELETED_TEXT, $user ) && $rev->getParentId() !== 0 ) {
+                               $difftext = Linker::linkKnown(
+                                       $page,
+                                       $this->messages['diff'],
+                                       array(),
+                                       array(
+                                               'diff' => 'prev',
+                                               'oldid' => $row->rev_id
+                                       )
+                               );
+                       } else {
+                               $difftext = $this->messages['diff'];
+                       }
+                       $histlink = Linker::linkKnown(
                                $page,
-                               htmlspecialchars( $date ),
+                               $this->messages['hist'],
                                array(),
-                               array( 'oldid' => intval( $row->rev_id ) )
+                               array( 'action' => 'history' )
                        );
-               } else {
-                       $d = htmlspecialchars( $date );
-               }
-               if ( $rev->isDeleted( Revision::DELETED_TEXT ) ) {
-                       $d = '<span class="history-deleted">' . $d . '</span>';
-               }
 
-               # Show user names for /newbies as there may be different users.
-               # Note that we already excluded rows with hidden user names.
-               if ( $this->contribs == 'newbie' ) {
-                       $userlink = ' . . ' . Linker::userLink( $rev->getUser(), $rev->getUserText() );
-                       $userlink .= ' ' . $this->msg( 'parentheses' )->rawParams(
-                               Linker::userTalkLink( $rev->getUser(), $rev->getUserText() ) )->escaped() . ' ';
-               } else {
-                       $userlink = '';
-               }
+                       if ( $row->rev_parent_id === null ) {
+                               // For some reason rev_parent_id isn't populated for this row.
+                               // Its rumoured this is true on wikipedia for some revisions (bug 34922).
+                               // Next best thing is to have the total number of bytes.
+                               $chardiff = ' . . ' . Linker::formatRevisionSize( $row->rev_len ) . ' . . ';
+                       } else {
+                               $parentLen = isset( $this->mParentLens[$row->rev_parent_id] ) ? $this->mParentLens[$row->rev_parent_id] : 0;
+                               $chardiff = ' . . ' . ChangesList::showCharacterDifference(
+                                               $parentLen, $row->rev_len, $this->getContext() ) . ' . . ';
+                       }
 
-               if ( $rev->getParentId() === 0 ) {
-                       $nflag = ChangesList::flag( 'newpage' );
-               } else {
-                       $nflag = '';
-               }
+                       $lang = $this->getLanguage();
+                       $comment = $lang->getDirMark() . Linker::revComment( $rev, false, true );
+                       $date = $lang->userTimeAndDate( $row->rev_timestamp, $user );
+                       if ( $rev->userCan( Revision::DELETED_TEXT, $user ) ) {
+                               $d = Linker::linkKnown(
+                                       $page,
+                                       htmlspecialchars( $date ),
+                                       array(),
+                                       array( 'oldid' => intval( $row->rev_id ) )
+                               );
+                       } else {
+                               $d = htmlspecialchars( $date );
+                       }
+                       if ( $rev->isDeleted( Revision::DELETED_TEXT ) ) {
+                               $d = '<span class="history-deleted">' . $d . '</span>';
+                       }
 
-               if ( $rev->isMinor() ) {
-                       $mflag = ChangesList::flag( 'minor' );
-               } else {
-                       $mflag = '';
-               }
+                       # Show user names for /newbies as there may be different users.
+                       # Note that we already excluded rows with hidden user names.
+                       if ( $this->contribs == 'newbie' ) {
+                               $userlink = ' . . ' . Linker::userLink( $rev->getUser(), $rev->getUserText() );
+                               $userlink .= ' ' . $this->msg( 'parentheses' )->rawParams(
+                                       Linker::userTalkLink( $rev->getUser(), $rev->getUserText() ) )->escaped() . ' ';
+                       } else {
+                               $userlink = '';
+                       }
 
-               $del = Linker::getRevDeleteLink( $user, $rev, $page );
-               if ( $del !== '' ) {
-                       $del .= ' ';
-               }
+                       if ( $rev->getParentId() === 0 ) {
+                               $nflag = ChangesList::flag( 'newpage' );
+                       } else {
+                               $nflag = '';
+                       }
 
-               $diffHistLinks = $this->msg( 'parentheses' )->rawParams( $difftext . $this->messages['pipe-separator'] . $histlink )->escaped();
-               $ret = "{$del}{$d} {$diffHistLinks}{$chardiff}{$nflag}{$mflag} {$link}{$userlink} {$comment} {$topmarktext}";
+                       if ( $rev->isMinor() ) {
+                               $mflag = ChangesList::flag( 'minor' );
+                       } else {
+                               $mflag = '';
+                       }
 
-               # Denote if username is redacted for this edit
-               if ( $rev->isDeleted( Revision::DELETED_USER ) ) {
-                       $ret .= " <strong>" . $this->msg( 'rev-deleted-user-contribs' )->escaped() . "</strong>";
-               }
+                       $del = Linker::getRevDeleteLink( $user, $rev, $page );
+                       if ( $del !== '' ) {
+                               $del .= ' ';
+                       }
+
+                       $diffHistLinks = $this->msg( 'parentheses' )->rawParams( $difftext . $this->messages['pipe-separator'] . $histlink )->escaped();
+                       $ret = "{$del}{$d} {$diffHistLinks}{$chardiff}{$nflag}{$mflag} {$link}{$userlink} {$comment} {$topmarktext}";
 
-               # Tags, if any.
-               list( $tagSummary, $newClasses ) = ChangeTags::formatSummaryRow( $row->ts_tags, 'contributions' );
-               $classes = array_merge( $classes, $newClasses );
-               $ret .= " $tagSummary";
+                       # Denote if username is redacted for this edit
+                       if ( $rev->isDeleted( Revision::DELETED_USER ) ) {
+                               $ret .= " <strong>" . $this->msg( 'rev-deleted-user-contribs' )->escaped() . "</strong>";
+                       }
+
+                       # Tags, if any.
+                       list( $tagSummary, $newClasses ) = ChangeTags::formatSummaryRow( $row->ts_tags, 'contributions' );
+                       $classes = array_merge( $classes, $newClasses );
+                       $ret .= " $tagSummary";
+               }
 
                // Let extensions add data
-               wfRunHooks( 'ContributionsLineEnding', array( &$this, &$ret, $row ) );
+               wfRunHooks( 'ContributionsLineEnding', array( $this, &$ret, $row, &$classes ) );
 
                $classes = implode( ' ', $classes );
                $ret = "<li class=\"$classes\">$ret</li>\n";
+
                wfProfileOut( __METHOD__ );
                return $ret;
        }
index 67f6d68..091f5ca 100644 (file)
@@ -129,21 +129,28 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
         * @return array
         */
        private function extractTitles( $list ) {
-               $titles = array();
                $list = explode( "\n", trim( $list ) );
                if( !is_array( $list ) ) {
                        return array();
                }
+               $titles = array();
                foreach( $list as $text ) {
                        $text = trim( $text );
                        if( strlen( $text ) > 0 ) {
                                $title = Title::newFromText( $text );
                                if( $title instanceof Title && $title->isWatchable() ) {
-                                       $titles[] = $title->getPrefixedText();
+                                       $titles[] = $title;
                                }
                        }
                }
-               return array_unique( $titles );
+
+               GenderCache::singleton()->doTitlesArray( $titles );
+
+               $list = array();
+               foreach( $titles as $title ) {
+                       $list[] = $title->getPrefixedText();
+               }
+               return array_unique( $list );
        }
 
        public function submitRaw( $data ){
@@ -249,15 +256,22 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
                        __METHOD__
                );
                if( $res->numRows() > 0 ) {
+                       $titles = array();
                        foreach ( $res as $row ) {
                                $title = Title::makeTitleSafe( $row->wl_namespace, $row->wl_title );
                                if ( $this->checkTitle( $title, $row->wl_namespace, $row->wl_title )
                                        && !$title->isTalkPage()
                                ) {
-                                       $list[] = $title->getPrefixedText();
+                                       $titles[] = $title;
                                }
                        }
                        $res->free();
+
+                       GenderCache::singleton()->doTitlesArray( $titles );
+
+                       foreach( $titles as $title ) {
+                               $list[] = $title->getPrefixedText();
+                       }
                }
                $this->cleanupWatchlist();
                return $list;
index 8eee22d..2c96e83 100644 (file)
@@ -131,7 +131,7 @@ class SpecialLog extends SpecialPage {
 
        private function show( FormOptions $opts, array $extraConds ) {
                # Create a LogPager item to get the results and a LogEventsList item to format them...
-               $loglist = new LogEventsList( $this->getSkin(), $this->getOutput(), LogEventsList::USE_REVDEL_CHECKBOXES );
+               $loglist = new LogEventsList( $this->getContext(), null, LogEventsList::USE_REVDEL_CHECKBOXES );
                $pager = new LogPager( $loglist, $opts->getValue( 'type' ), $opts->getValue( 'user' ),
                        $opts->getValue( 'page' ), $opts->getValue( 'pattern' ), $extraConds, $opts->getValue( 'year' ),
                        $opts->getValue( 'month' ), $opts->getValue( 'tagfilter' ) );
index a512ee6..68b180a 100644 (file)
@@ -358,7 +358,7 @@ class MovePageForm extends UnlistedSpecialPage {
                }
 
                $watchChecked = $user->isLoggedIn() && ($this->watch || $user->getBoolOption( 'watchmoves' )
-                       || $this->oldTitle->userIsWatching());
+                       || $user->isWatched( $this->oldTitle ) );
                # Don't allow watching if user is not logged in
                if( $user->isLoggedIn() ) {
                        $out->addHTML( "
@@ -440,8 +440,9 @@ class MovePageForm extends UnlistedSpecialPage {
 
                        $error = ''; // passed by ref
                        $page = WikiPage::factory( $nt );
-                       if ( !$page->doDeleteArticle( $reason, false, 0, true, $error, $user ) ) {
-                               $this->showForm( array( array( 'cannotdelete', wfEscapeWikiText( $nt->getPrefixedText() ) ) ) );
+                       $deleteStatus = $page->doDeleteArticleReal( $reason, false, 0, true, $error, $user );
+                       if ( !$deleteStatus->isGood() ) {
+                               $this->showForm( $deleteStatus->getErrorsArray() );
                                return;
                        }
                }
index 79c051a..6f59135 100644 (file)
@@ -321,11 +321,14 @@ class PageArchive {
         * @param $comment String
         * @param $fileVersions Array
         * @param $unsuppress Boolean
+        * @param $user User doing the action, or null to use $wgUser
         *
         * @return array(number of file revisions restored, number of image revisions restored, log message)
         * on success, false on failure
         */
-       function undelete( $timestamps, $comment = '', $fileVersions = array(), $unsuppress = false ) {
+       function undelete( $timestamps, $comment = '', $fileVersions = array(), $unsuppress = false, User $user = null ) {
+               global $wgContLang, $wgUser;
+
                // If both the set of text revisions and file revisions are empty,
                // restore everything. Otherwise, just restore the requested items.
                $restoreAll = empty( $timestamps ) && empty( $fileVersions );
@@ -354,8 +357,6 @@ class PageArchive {
                }
 
                // Touch the log!
-               global $wgContLang;
-               $log = new LogPage( 'delete' );
 
                if( $textRestored && $filesRestored ) {
                        $reason = wfMsgExt( 'undeletedrevisions-files', array( 'content', 'parsemag' ),
@@ -375,7 +376,17 @@ class PageArchive {
                if( trim( $comment ) != '' ) {
                        $reason .= wfMsgForContent( 'colon-separator' ) . $comment;
                }
-               $log->addEntry( 'restore', $this->title, $reason );
+
+               if ( $user === null ) {
+                       $user = $wgUser;
+               }
+
+               $logEntry = new ManualLogEntry( 'delete', 'restore' );
+               $logEntry->setPerformer( $user );
+               $logEntry->setTarget( $this->title );
+               $logEntry->setComment( $reason );
+               $logid = $logEntry->insert();
+               $logEntry->publish( $logid );
 
                return array( $textRestored, $filesRestored, $reason );
        }
@@ -754,8 +765,8 @@ class SpecialUndelete extends SpecialPage {
                                );
                        } else {
                                // The title is no longer valid, show as text
-                               $title = Title::makeTitle( $row->ar_namespace, $row->ar_title );
-                               $item = htmlspecialchars( $title->getPrefixedText() );
+                               $item = Html::element( 'span', array( 'class' => 'mw-invalidtitle' ),
+                                       Linker::getInvalidTitleDescription( $this->getContext(), $row->ar_namespace, $row->ar_title ) );
                        }
                        $revs = $this->msg( 'undeleterevisions' )->numParams( $row->count )->parse();
                        $out->addHTML( "<li>{$item} ({$revs})</li>\n" );
@@ -1387,7 +1398,9 @@ class SpecialUndelete extends SpecialPage {
                        $this->mTargetTimestamp,
                        $this->mComment,
                        $this->mFileVersions,
-                       $this->mUnsuppress );
+                       $this->mUnsuppress,
+                       $this->getUser()
+               );
 
                if( is_array( $ok ) ) {
                        if ( $ok[1] ) { // Undeleted file count
index 91631f8..3072408 100644 (file)
@@ -516,7 +516,7 @@ class SpecialUpload extends SpecialPage {
                if( $local && $local->exists() ) {
                        // We're uploading a new version of an existing file.
                        // No creation, so don't watch it if we're not already.
-                       return $local->getTitle()->userIsWatching();
+                       return $this->getUser()->isWatched( $local->getTitle() );
                } else {
                        // New page should get watched if that's our option.
                        return $this->getUser()->getOption( 'watchcreations' );
index 9bea07d..bc1809f 100644 (file)
        'arz' => 'مصرى',    # Egyptian Spoken Arabic
        'as' => 'অসমীয়া',   # Assamese
        'ast' => 'asturianu',   # Asturian
-       'av' => 'Ð\90вар',     # Avar
+       'av' => 'авар',     # Avar
        'avk' => 'Kotava', # Kotava
        'ay' => 'Aymar aru',    # Aymara
        'az' => 'azərbaycanca',        # Azerbaijani
-       'ba' => 'Ð\91ашҡортса',   # Bashkir
+       'ba' => 'башҡортса',   # Bashkir
        'bar' => 'Boarisch',    # Bavarian (Austro-Bavarian and South Tyrolean)
-       'bat-smg' => 'Žemaitėška', # Samogitian (deprecated code, 'sgs' in ISO 693-3 since 2010-06-30 )
+       'bat-smg' => 'žemaitėška', # Samogitian (deprecated code, 'sgs' in ISO 693-3 since 2010-06-30 )
        'bcc' => 'بلوچی مکرانی', # Southern Balochi
        'bcl' => 'Bikol Central', # Bikol: Central Bicolano language
        'be' => 'беларуская', #  Belarusian normative
        'brh' => 'Bráhuí',    # Brahui
        'bs' => 'bosanski',             # Bosnian
        'bug' => 'ᨅᨔ ᨕᨘᨁᨗ', # Buginese
-       'bxr' => 'Ð\91уряад',        # Buryat (Russia)
+       'bxr' => 'буряад',        # Buryat (Russia)
        'ca' => 'català',      # Catalan
        'cbk-zam' => 'Chavacano de Zamboanga',  # Zamboanga Chavacano
        'cdo' => 'Mìng-dĕ̤ng-ngṳ̄',       # Min Dong
-       'ce' => 'Ð\9dохчийн',       # Chechen
+       'ce' => 'нохчийн',       # Chechen
        'ceb' => 'Cebuano',     # Cebuano
        'ch' => 'Chamoru',              # Chamorro
        'cho' => 'Choctaw',             # Choctaw
@@ -86,9 +86,9 @@
        'co' => 'corsu',                # Corsican
        'cps' => 'Capiceño', # Capiznon
        'cr' => 'Nēhiyawēwin / ᓀᐦᐃᔭᐍᐏᐣ',                # Cree
-       'crh' => 'Qırımtatarca',   # Crimean Tatar (multiple scripts - defaults to Latin)
-       'crh-latn' => "\xE2\x80\xAAQırımtatarca (Latin)\xE2\x80\xAC",       # Crimean Tatar (Latin)
-       'crh-cyrl' => "\xE2\x80\xAAÐ\9aъырымтатарджа (Кирилл)\xE2\x80\xAC",       # Crimean Tatar (Cyrillic)
+       'crh' => 'qırımtatarca',   # Crimean Tatar (multiple scripts - defaults to Latin)
+       'crh-latn' => "\xE2\x80\xAAqırımtatarca (Latin)\xE2\x80\xAC",       # Crimean Tatar (Latin)
+       'crh-cyrl' => "\xE2\x80\xAAкъырымтатарджа (Кирилл)\xE2\x80\xAC",       # Crimean Tatar (Cyrillic)
        'cs' => 'česky',       # Czech
        'csb' => 'kaszëbsczi', # Cassubian
        'cu' => 'словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ',      # Old Church Slavonic (ancient language)
        'dv' => 'ދިވެހިބަސް',         # Dhivehi
        'dz' => 'ཇོང་ཁ',              # Dzongkha (Bhutan)
        'ee' => 'eʋegbe',      # Éwé
+       'egl' => 'Emiliàn',    # Emilian
        'el' => 'Ελληνικά',     # Greek
        'eml' => 'emiliàn e rumagnòl',        # Emiliano-Romagnolo / Sammarinese
        'en' => 'English',              # English
        'ki' => 'Gĩkũyũ',    # Gikuyu
        'kiu' => 'Kırmancki',  # Kirmanjki
        'kj' => 'Kwanyama',     # Kwanyama
-       'kk' => 'Ò\9aазақша',       # Kazakh (multiple scripts - defaults to Cyrillic)
+       'kk' => 'Ò\9bазақша',       # Kazakh (multiple scripts - defaults to Cyrillic)
        'kk-arab' => "\xE2\x80\xABقازاقشا (تٴوتە)\xE2\x80\xAC",     # Kazakh Arabic
-       'kk-cyrl' => "\xE2\x80\xAAÒ\9aазақша (кирил)\xE2\x80\xAC",     # Kazakh Cyrillic
-       'kk-latn' => "\xE2\x80\xAAQazaqşa (latın)\xE2\x80\xAC",       # Kazakh Latin
+       'kk-cyrl' => "\xE2\x80\xAAÒ\9bазақша (кирил)\xE2\x80\xAC",     # Kazakh Cyrillic
+       'kk-latn' => "\xE2\x80\xAAqazaqşa (latın)\xE2\x80\xAC",       # Kazakh Latin
        'kk-cn' => "\xE2\x80\xABقازاقشا (جۇنگو)\xE2\x80\xAC",       # Kazakh (China)
-       'kk-kz' => "\xE2\x80\xAAÒ\9aазақша (Қазақстан)\xE2\x80\xAC",       # Kazakh (Kazakhstan)
-       'kk-tr' => "\xE2\x80\xAAQazaqşa (Türkïya)\xE2\x80\xAC",      # Kazakh (Turkey)
+       'kk-kz' => "\xE2\x80\xAAÒ\9bазақша (Қазақстан)\xE2\x80\xAC",       # Kazakh (Kazakhstan)
+       'kk-tr' => "\xE2\x80\xAAqazaqşa (Türkïya)\xE2\x80\xAC",      # Kazakh (Turkey)
        'kl' => 'kalaallisut',  # Inuktitut, Greenlandic/Greenlandic/Kalaallisut (kal)
        'km' => 'ភាសាខ្មែរ',  # Khmer, Central
        'kn' => 'ಕನ್ನಡ',      # Kannada
        'ko-kp' => '한국어 (조선)',        # Korean (DPRK)
        'koi' => 'Перем Коми', # Komi-Permyak
        'kr' => 'Kanuri',               # Kanuri, Central
-       'krc' => 'Ð\9aÑ\8aаÑ\80аÑ\87ай-Ð\9cалкъар', # Karachay-Balkar
+       'krc' => 'кÑ\8aаÑ\80аÑ\87ай-малкъар', # Karachay-Balkar
        'kri' => 'Krio', # Krio
        'krj' => 'Kinaray-a', # Kinaray-a
        'ks' => 'कॉशुर / کٲشُر', # Kashmiri (multiple scripts - defaults to Perso-Arabic)
        'ku'  => 'Kurdî',      # Kurdish (multiple scripts - defaults to Latin)
        'ku-latn' => "\xE2\x80\xAAKurdî (latînî)\xE2\x80\xAC",       # Northern Kurdish (Latin script)
        'ku-arab' => "\xE2\x80\xABكوردي (عەرەبی)\xE2\x80\xAC",       # Northern Kurdish (Arabic script) (falls back to ckb)
-       'kv' => 'Ð\9aоми',     # Komi-Zyrian (Cyrillic is common script but also written in Latin script)
+       'kv' => 'коми',     # Komi-Zyrian (Cyrillic is common script but also written in Latin script)
        'kw' => 'kernowek',             # Cornish
        'ky' => 'Кыргызча',     # Kirghiz
        'la' => 'Latina',               # Latin
        'lad' => 'Ladino',      # Ladino
        'lb' => 'Lëtzebuergesch',      # Luxemburguish
-       'lbe' => 'Ð\9bакку',  # Lak
-       'lez' => 'Ð\9bезги',  # Lezgi
+       'lbe' => 'лакку',  # Lak
+       'lez' => 'лезги',  # Lezgi
        'lfn' => 'Lingua Franca Nova',  # Lingua Franca Nova
        'lg' => 'Luganda',              # Ganda
        'li' => 'Limburgs',     # Limburgian
        'lzz' => 'Lazuri',      # Laz
        'mai' => 'मैथिली', # Maithili
        'map-bms' => 'Basa Banyumasan', # Banyumasan
-       'mdf' => 'Ð\9cокшень',              # Moksha
+       'mdf' => 'мокшень',              # Moksha
        'mg' => 'Malagasy',             # Malagasy
        'mh' => 'Ebon',                 # Marshallese
-       'mhr' => 'Ð\9eлÑ\8bк Ð\9cарий', # Eastern Mari
+       'mhr' => 'олÑ\8bк Ð¼арий', # Eastern Mari
        'mi' => 'Māori',       # Maori
        'min' => 'Baso Minangkabau',    # Minangkabau
        'mk' => 'македонски', # Macedonian
        'mn' => 'монгол', # Halh Mongolian (Cyrillic) (ISO 639-3: khk)
        'mo' => 'молдовеняскэ',     # Moldovan, deprecated
        'mr' => 'मराठी',      # Marathi
-       'mrj' => 'Ð\9aырык мары', # Hill Mari
+       'mrj' => 'кырык мары', # Hill Mari
        'ms' => 'Bahasa Melayu',        # Malay
        'mt' => 'Malti',        # Maltese
        'mus' => 'Mvskoke',     # Muskogee/Creek
        'mwl' => 'Mirandés',   # Mirandese
        'my' => 'မြန်မာဘာသာ',               # Burmese
-       'myv' => 'Эрзянь',        # Erzya
+       'myv' => 'эрзянь',        # Erzya
        'mzn' => 'مازِرونی',            # Mazanderani
        'na' => 'Dorerin Naoero',               # Nauruan
        'nah' => 'Nāhuatl',            # Nahuatl, en:Wikipedia writes Nahuatlahtolli, while another form is Náhuatl
        'tum' => 'chiTumbuka',  # Tumbuka
        'tw' => 'Twi',                  # Twi, (FIXME!)
        'ty' => 'Reo Mā`ohi',  # Tahitian
-       'tyv' => 'Тыва дыл',     # Tyvan
-       'udm' => 'Удмурт',        # Udmurt
+       'tyv' => 'тыва дыл',     # Tyvan
+       'udm' => 'удмурт',        # Udmurt
        'ug' => 'ئۇيغۇرچە / Uyghurche', # Uyghur (multiple scripts - defaults to Arabic)
        'ug-arab' => 'ئۇيغۇرچە', # Uyghur (Arabic script) (default)
        'ug-latn' => 'Uyghurche', # Uyghur (Latin script)
        'uk' => 'українська', # Ukrainian
        'ur' => 'اردو',     # Urdu
-       'uz' => 'Oʻzbekcha',   # Uzbek
+       'uz' => 'oʻzbekcha',   # Uzbek
        've' => 'Tshivenda',            # Venda
        'vec' => 'vèneto',     # Venetian
-       'vep' => 'Vepsän kel’',      # Veps
+       'vep' => 'vepsän kel’',      # Veps
        'vi' => 'Tiếng Việt',       # Vietnamese
        'vls' => 'West-Vlams', # West Flemish
        'vmf' => 'Mainfränkisch', # Upper Franconian, Main-Franconian
        'war' => 'Winaray', # Waray-Waray
        'wo' => 'Wolof',                # Wolof
        'wuu' => '吴语',              # Wu Chinese
-       'xal' => 'Хальмг',                # Kalmyk-Oirat (Kalmuk, Kalmuck, Kalmack, Qalmaq, Kalmytskii Jazyk, Khal:mag, Oirat, Volga Oirat, European Oirat, Western Mongolian)
+       'xal' => 'хальмг',                # Kalmyk-Oirat (Kalmuk, Kalmuck, Kalmack, Qalmaq, Kalmytskii Jazyk, Khal:mag, Oirat, Volga Oirat, European Oirat, Western Mongolian)
        'xh' => 'isiXhosa',             # Xhosan
        'xmf' => 'მარგალური', # Mingrelian
        'yi' => 'ייִדיש', # Yiddish
index a9930d0..a9a7a4b 100644 (file)
@@ -594,8 +594,13 @@ Probeer asseblief weer oor 'n paar minute.",
 'ns-specialprotected' => 'Spesiale bladsye kan nie geredigeer word nie.',
 'titleprotected' => "Hierdie titel is beskerm teen skepping deur [[User:$1|$1]].
 Die rede gegee is ''$2''.",
+'filereadonlyerror' => 'Dit was nie moontlik om die lêer "$1" te wysig nie lêerstoor tans lees-alleen is.
+
+Die rede hiervoor is "\'\'$3\'\'".',
 'invalidtitle-knownnamespace' => 'Ongeldige titel met naamruimte "$2" en teks "$3"',
 'invalidtitle-unknownnamespace' => 'Ongeldige titel met onbekende naamruimtenummer $1 en teks "$2"',
+'exception-nologin' => 'Nie aangeteken nie',
+'exception-nologin-text' => 'U moet eers op hierdie wiki aanteken alvorens u hierdie bladsy kan sien of handeling kan uitvoer.',
 
 # Virus scanner
 'virus-badscanner' => "Slegte konfigurasie: onbekende virusskandeerder: ''$1''",
@@ -881,6 +886,7 @@ Onthou dat u eie .css- en .js-bladsye met 'n kleinletter begin, byvoorbeeld {{ns
 'note' => "'''Nota:'''",
 'previewnote' => "'''Onthou dat hierdie slegs 'n voorskou is.'''
 U teks is nog nie gestoor nie!",
+'continue-editing' => 'Wysig verder',
 'previewconflict' => 'Hierdie voorskou vertoon die teks in die boonste teksarea soos dit sou lyk indien u die bladsy stoor.',
 'session_fail_preview' => "'''Jammer! Weens verlies aan sessie-inligting is die wysiging nie verwerk nie.
 Probeer asseblief weer. As dit steeds nie werk nie, probeer om [[Special:UserLogout|af te teken]] en dan weer aan te teken.'''",
@@ -974,6 +980,12 @@ Hierdie parameters is uitgelaat.",
 'parser-template-loop-warning' => "Sjablone is in 'n oneindige lus: [[$1]]",
 'parser-template-recursion-depth-warning' => 'Die rekursiediepte vir sjablone is oorskry ($1)',
 'language-converter-depth-warning' => 'Die dieptelimiet vir die taalomskakelaar is oorskrei ($1)',
+'node-count-exceeded-category' => 'Bladsye waar die maksimum aantal nodes oorskry is',
+'node-count-exceeded-warning' => 'Hierdie bladsy oorskry die maksimum aantal nodes',
+'expansion-depth-exceeded-category' => 'Bladsye waar die uitbreidingsdiepte oorskry is',
+'expansion-depth-exceeded-warning' => 'Die bladsy bevat te veel sjablone',
+'parser-unstrip-loop-warning' => '\'n "Unstrip"-lus is bespreur.',
+'parser-unstrip-recursion-limit' => 'Die rekursielimiet ($1) vir "unstrip" is oorskry',
 
 # "Undo" feature
 'undo-success' => 'Die wysiging kan ongedaan gemaak word.
@@ -2789,6 +2801,9 @@ Die lêer is slegs gedeeltelik opgelaai.',
 'import-invalid-interwiki' => 'Kan nie vanaf die gespesifiseerde importeer nie.',
 'import-error-edit' => 'Die bladsy "$1" is nie geïmporteer nie omdat u nie die regte het om dit te wysig nie.',
 'import-error-create' => 'Die bladsy "$1" is nie geïmporteer nie omdat u nie die regte het om dit te skep nie.',
+'import-error-interwiki' => 'Die bladsy "$1" is nie geïmporteer nie omdat sy naam vir eksterne skakeling (interwiki) gereserveer is.',
+'import-error-special' => 'Die bladsy "$1" is nie geïmporteer nie omdat dit aan \'n spesiale naamruimte behoort waarin geen bladsye geplaas kan word nie.',
+'import-error-invalid' => 'Die bladsy "$1" is nie geïmporteer nie omdat die naam ongeldig is.',
 
 # Import log
 'importlogpage' => 'Invoer logboek',
@@ -2802,6 +2817,11 @@ Die lêer is slegs gedeeltelik opgelaai.',
 'javascripttest' => 'JavaScript toetsing',
 'javascripttest-disabled' => 'Die funksie is nie op hierdie wiki geaktiveer nie.',
 'javascripttest-title' => 'Voer toetse uit vir $1',
+'javascripttest-pagetext-noframework' => 'Hierdie bladsy is gereserveer vir die uitvoer van JavaScript-toetse.',
+'javascripttest-pagetext-unknownframework' => 'Onbekende toetsraamwerk "$1".',
+'javascripttest-pagetext-frameworks' => 'Kies een van die volgende toetsraamwerke: $1',
+'javascripttest-pagetext-skins' => "Kies 'n omslag waarmee die toets uitgevoer moet word:",
+'javascripttest-qunit-intro' => 'Sien die [$1 toetsdokumentasie] op mediawiki.org.',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'U gebruikerbladsy',
@@ -2899,6 +2919,7 @@ Hierdie situasie was waarskynlik deur 'n skakel na 'n eksterne webtuiste op ons
 'spambot_username' => 'MediaWiki opruiming van spam',
 'spam_reverting' => 'Besig met terugrol na die laaste weergawe wat nie skakels na $1 bevat nie',
 'spam_blanking' => "Alle weergawes met 'n skakel na $1 word verwyder",
+'spam_deleting' => 'Alle weergawes bevat verwysings na $1. Bladsy verwyder',
 
 # Info page
 'pageinfo-title' => 'Inligting oor "$1"',
index 0818bdc..b359042 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Aragonese (Aragonés)
+/** Aragonese (aragonés)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -2078,7 +2078,7 @@ Contacto con l\'editor:
 correu-e: $PAGEEDITOR_EMAIL
 wiki: $PAGEEDITOR_WIKI
 
-Si no visita a pachina, no recibirá mas notificacions de futuros cambios cambios.
+Si no visita a pachina, no recibirá mas notificacions de futuros cambios cambios. 
 Tamién puet cambiar o modo de notificación d\'as pachinas que cosira en a suya lista de seguimiento.
 Atentament,
 O servicio de notificacions d\'o prochecto {{SITENAME}}
@@ -2148,7 +2148,7 @@ Torne t'a pachina anterior, recargue a pachina y torne a prebar alavez.",
 
 # Protect
 'protectlogpage' => 'Rechistro de proteccions de pachinas',
-'protectlogtext' => "Contino s'amuestra una lista de cambios en a protección d'as pachinas.
+'protectlogtext' => "Contino s'amuestra una lista de cambios en a protección d'as pachinas. 
 Se veiga a [[Special:ProtectedPages|lista de pachinas protechitas]] ta conoixer a lista de proteccions de pachinas actualment operacional.",
 'protectedarticle' => "s'ha protechito [[$1]]",
 'modifiedarticleprotection' => 's\'ha cambiato o livel de protección de "[[$1]]"',
@@ -3481,7 +3481,7 @@ Tamién puede fer servir o [[Special:EditWatchlist|editor estándar]].",
 'version-license' => 'Licencia',
 'version-poweredby-credits' => "Iste wiki funciona gracias a '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
 'version-poweredby-others' => 'atros',
-'version-license-info' => "MediaWiki ye software libre, puet redistribuyir-lo y/u modificar-lo baixo os terminos d'a Licencia Publica Cheneral GNU publicada por a Free Software Foundation, ya siga d'a suya versión 2 u (a la suya esleción) qualsiquier versión posterior.
+'version-license-info' => "MediaWiki ye software libre, puet redistribuyir-lo y/u modificar-lo baixo os terminos d'a Licencia Publica Cheneral GNU publicada por a Free Software Foundation, ya siga d'a suya versión 2 u (a la suya esleción) qualsiquier versión posterior. 
 
 MediaWiki se distribuye con l'asperanza d'estar d'utilidat, pero SIN GARRA GUARANCIA; nian a guarancia implicita de COMERCIALIZACIÓN u ADEQUACIÓN TA UNA FINALIDAT DETERMINADA. En trobará más detalles en a Licencia Publica General GNU.
 
index 86f78d2..bdce934 100644 (file)
@@ -465,8 +465,8 @@ $messages = array(
 'tog-hidepatrolled' => 'أخف التعديلات المراجعة في أحدث التغييرات',
 'tog-newpageshidepatrolled' => 'أخف الصفحات المراجعة من قائمة الصفحات الجديدة',
 'tog-extendwatchlist' => 'مدد قائمة المراقبة لعرض كل التغييرات، وليس الأحدث فقط',
-'tog-usenewrc' => 'استخدÙ\85 Ø£Ø­Ø¯Ø« Ø§Ù\84تغÙ\8aÙ\8aرات Ø§Ù\84Ù\85حسÙ\86ة (يتطلب جافاسكربت)',
-'tog-numberheadings' => 'رقم العناوين تلقائيا',
+'tog-usenewrc' => 'جÙ\85Ù\91ع Ø§Ù\84تعدÙ\8aÙ\84ات Ø­Ø³Ø¨ Ø§Ù\84صÙ\81حة Ù\81Ù\8a Ø£Ø­Ø¯Ø« Ø§Ù\84تغÙ\8aÙ\8aرات Ù\88Ù\82ائÙ\85Ø© Ø§Ù\84Ù\85راÙ\82بة (يتطلب جافاسكربت)',
+'tog-numberheadings' => 'رقم العناوين تلقائياً',
 'tog-showtoolbar' => 'أظهر شريط التحرير (يتطلب جافاسكربت)',
 'tog-editondblclick' => 'عدل الصفحات عند الضغط المزدوج (جافاسكربت)',
 'tog-editsection' => 'مكن تعديل الأقسام عن طريق وصلات [عدل]',
@@ -488,8 +488,8 @@ $messages = array(
 'tog-shownumberswatching' => 'اعرض عدد المستخدمين المراقبين',
 'tog-oldsig' => 'التوقيع الحالي:',
 'tog-fancysig' => 'عامل التوقيع كنص ويكي (بدون وصلة أوتوماتيكية)',
-'tog-externaleditor' => 'استخدم محررا خارجيا بشكل افتراضي (للخبراء فقط، يحتاج إعدادات خاصة على حاسوبك) ([//www.mediawiki.org/wiki/Manual:External_editors مزيد من المعلومات.])',
-'tog-externaldiff' => 'استخدم فرقا خارجيا بشكل افتراضي (للخبراء فقط، يحتاج إعدادات خاصة على حاسوبك) ([//www.mediawiki.org/wiki/Manual:External_editors للمزيد من المعلومات.])',
+'tog-externaleditor' => 'استخدم محرراً خارجياً بشكل افتراضي (للخبراء فقط، يحتاج إعدادات خاصة على حاسوبك) ([[mw:Manual:External_editors|للمزيد من المعلومات]].)',
+'tog-externaldiff' => 'استخدم فرقاً خارجياً بشكل افتراضي (للخبراء فقط، يحتاج إعدادات خاصة على حاسوبك) ([[mw:Manual:External_editors|للمزيد من المعلومات]].)',
 'tog-showjumplinks' => 'مكن وصلات "اذهب إلى" المساعدة',
 'tog-uselivepreview' => 'استخدم الاستعراض السريع (جافاسكريبت) (تجريبي)',
 'tog-forceeditsummary' => 'نبهني عند إدخال ملخص تعديل فارغ',
@@ -1840,7 +1840,7 @@ $1",
 'recentchangeslinked-title' => 'التغييرات المرتبطة ب "$1"',
 'recentchangeslinked-noresult' => 'لم تحدث تعديلات في الصفحات التي لها وصلات هنا خلال الفترة المحددة.',
 'recentchangeslinked-summary' => "هذه قائمة بالتغييرات التي تمت حديثا للصفحات الموصولة من صفحة معينة (أو إلى الأعضاء ضمن تصنيف معين).
-الصفحات في [[Special:Watchlist|قائمة مراقبتك]] '''عريضة'''",
+الصفحات في [[Special:Watchlist|قائمة مراقبتك]] '''مغلظة'''",
 'recentchangeslinked-page' => 'اسم الصفحة:',
 'recentchangeslinked-to' => 'أظهر التغييرات للصفحات الموصولة للصفحة المعطاة عوضا عن ذلك',
 
index 976a663..18d7c8b 100644 (file)
@@ -112,10 +112,10 @@ $messages = array(
 'tog-editondblclick' => 'ܫܚܠܦ ܦܐܬ̈ܐ ܬܪ ܢܩܪܐ ܙܘܓܢܝܐ (ܣܢܝܩ ܠ JavaScript)',
 'tog-editsection' => 'ܡܫܟܚ ܫܘܚܠܦܐ ܕܦܘܣܩ̈ܐ ܒܐܘܪܚܐ ܕܐܝܨܘܪ̈ܐ  [ܫܚܠܦ]',
 'tog-rememberpassword' => 'ܕܟܘܪ ܥܠܠܬܝ ܥܠ ܡܦܐܬܢܐ ܗܢܐ (ܠܡܬܚܐ ܥܠܝܐ ܕ $1 {{PLURAL:$1|ܝܘܡܐ|ܝܘܡܬ̈ܐ}})',
-'tog-watchcreations' => 'ܐܘܣܦ ܦܐܬܬ̈ܐ ܕܒܪܐ ܐܢܐ ܠܪ̈ܗܝܬܝ',
-'tog-watchdefault' => 'ܐܘܣܦ ܦܐܬܬ̈ܐ ܕܫܚܠܦ ܐܢܐ ܠܪ̈ܗܝܬܝ',
-'tog-watchmoves' => 'ܐܘܣܦ ܦܐܬܬ̈ܐ ܕܫܢܐ ܐܢܐ ܠܪ̈ܗܝܬܝ',
-'tog-watchdeletion' => 'Ü\90Ü\98ܣܦ Ü¦Ü\90ܬܬÌ\88Ü\90 Ü\95ܫܦÜ\90 ܐܢܐ ܠܪ̈ܗܝܬܝ',
+'tog-watchcreations' => 'Ü\90Ü\98ܣܦ Ü¦Ü\90ܬܬÌ\88Ü\90 Ü\95Ü\92ܪÜ\90 Ü\90Ü¢Ü\90 Ü\98ܠܠܦÌ\88Ü\90 Ü\95Ü\90ܣܩ Ü\90Ü¢Ü\90 Ü ÜªÌ\88Ü\97Ü\9dܬÜ\9d',
+'tog-watchdefault' => 'Ü\90Ü\98ܣܦ Ü¦Ü\90ܬܬÌ\88Ü\90 Ü\98ܠܦܦÌ\88Ü\90 Ü\95Ü«Ü\9aܠܦ Ü\90Ü¢Ü\90 Ü ÜªÌ\88Ü\97Ü\9dܬÜ\9d',
+'tog-watchmoves' => 'Ü\90Ü\98ܣܦ Ü¦Ü\90ܬܬÌ\88Ü\90 Ü\98ܠܦܦÌ\88Ü\90 Ü\95Ü«Ü¢Ü\90 Ü\90Ü¢Ü\90 Ü ÜªÌ\88Ü\97Ü\9dܬÜ\9d',
+'tog-watchdeletion' => 'Ü\90Ü\98ܣܦ Ü¦Ü\90ܬܬÌ\88Ü\90 Ü\98ܠܦܦÌ\88Ü\90 Ü\95Ü«Ü\90ܦ ܐܢܐ ܠܪ̈ܗܝܬܝ',
 'tog-watchlisthideown' => 'ܛܫܝ ܫܘܚܠܦ̈ܝ ܡܢ ܪ̈ܗܝܬܐ',
 'tog-watchlisthidebots' => 'ܛܫܝ ܫܘܚܠܦ̈ܐ ܕܒܘܬ ܡܢ ܪ̈ܗܝܬܐ',
 'tog-watchlisthideminor' => 'ܛܫܝ ܫܘܚܠܦ̈ܐ ܙܥܘܪ̈ܐ ܡܢ ܪ̈ܗܝܬܐ',
@@ -624,7 +624,7 @@ $1',
 'searchall' => 'ܟܠ',
 'showingresults' => "ܚܘܘܝܐ ܠܬܚܬ {{PLURAL:$1|'''1''' ܦܠܛܐ|'''$1''' ܦܠܛ̈ܐ}} ܫܪܐ ܡܢ ܡܢܝܢܐ '''$2'''.",
 'showingresultsheader' => "{{PLURAL:$5|ܦܠܛܐ '''$1''' ܡܢ '''$3'''|ܦܠܛ̈ܐ '''$1 - $2''' ܡܢ '''$3'''}} ܠ'''$4'''",
-'search-nonefound' => 'ܠܝܬ ܦܠܛ̈ܐ ܐܘܝ ܠܗܢܐ ܒܨܝܐ.',
+'search-nonefound' => 'ܠܝܬ ܦܠܛ̈ܐ ܐܘܝܢ̈ܐ ܠܗܢܐ ܒܨܝܐ.',
 'powersearch' => 'ܒܨܝܐ ܡܬܩܕܡܢܐ',
 'powersearch-legend' => 'ܒܨܝܐ ܡܬܩܕܡܢܐ',
 'powersearch-ns' => 'ܒܨܝ ܒܚܩܠܬ̈ܐ:',
@@ -802,6 +802,7 @@ $1',
 'rcshowhidebots' => '$1 ܒܘܬ̈ܐ (Bots)',
 'rcshowhideliu' => '$1 ܡܦܠܚܢ̈ܐ ܥܠܝܠ̈ܐ',
 'rcshowhideanons' => '$1 ܡܦܠܚܢܐ ܠܐ ܝܕܝܥܐ',
+'rcshowhidepatr' => '$1 ܫܘܚܠܦ̈ܐ ܬܢܝ̈ܐ',
 'rcshowhidemine' => '$1 ܫܘܚܠܦ̈ܝ',
 'rclinks' => 'ܚܘܝ $1 ܫܘܚܠܦ̈ܐ ܐܚܪ̈ܝܐ ܒ $2 ܝܘܡܬ̈ܐ ܐܚܪ̈ܝܐ<br />$3',
 'diff' => 'ܦܘܪܫܐ',
@@ -988,6 +989,7 @@ $1',
 'protectedpages' => 'ܦܐܬܬ̈ܐ ܢܛܝܪ̈ܬܐ',
 'protectedtitles' => 'ܟܘܢܝ̈ܐ ܢܛܝܪ̈ܐ',
 'protectedtitlestext' => 'ܟܘܢܝ̈ܐ ܗܠܝܢ ܢܛܝܪ̈ܐ ܐܢܘܢ ܠܘܩܒܠ ܒܪܝܐ',
+'protectedtitlesempty' => 'ܠܝܬ ܟܘܢܝ̈ܐ ܢܛܝܪ̈ܐ ܗܫܐܝܬ ܥܡ ܗܠܝܢ ܦܪ̈ܘܫܝܐ',
 'listusers' => 'ܡܟܬܒܘܬܐ ܕܗܕ̈ܡܐ',
 'listusers-editsonly' => 'ܚܘܝ ܡܦܠܚܢ̈ܐ ܥܡ ܫܘܚܠܦ̈ܐ ܒܠܚܘܕ',
 'listusers-creationsort' => 'ܛܟܣ ܐܝܟ ܣܝܩܘܡܐ ܕܒܪܝܐ',
@@ -1045,6 +1047,7 @@ $1',
 
 # Special:LinkSearch
 'linksearch' => 'ܐܣܘܪ̈ܐ ܒܪ̈ܝܐ ܒܨܝܐ',
+'linksearch-pat' => 'ܙܢܐ ܕܒܨܝܐ:',
 'linksearch-ns' => 'ܚܩܠܐ:',
 'linksearch-ok' => 'ܒܨܝ',
 
@@ -1064,6 +1067,7 @@ $1',
 
 # Special:Log/newusers
 'newuserlogpage' => 'ܣܓܠܐ ܕܒܪܝܬܐ ܕܡܦܠܚܢܐ',
+'newuserlogpagetext' => 'ܗܢܘ ܣܓܠܐ ܕܒܪܝܐ ܕܡܦܠܚܢ̈ܐ',
 
 # Special:ListGroupRights
 'listgrouprights' => 'ܙܕ̈ܩܐ ܕܟܢܘܫܬܐ ܕܡܦܠܚܢ̈ܐ',
@@ -1084,6 +1088,8 @@ $1',
 'emailpage' => 'ܫܕܪ ܐܓܪܬܐ ܒܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ ܠܡܦܠܚܢܐ',
 'defemailsubject' => 'ܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ  ܡܢ ܡܦܠܚܢܐ "$1"',
 'noemailtitle' => 'ܠܝܬ ܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ',
+'emailusername' => 'ܫܡܐ ܕܡܦܠܚܢܐ:',
+'emailusernamesubmit' => 'ܫܕܪ',
 'email-legend' => 'ܫܕܪ ܐܓܪܬܐ ܠܡܦܠܚܢܐ ܕ {{SITENAME}} ܐܚܪܢܐ',
 'emailfrom' => 'ܡܢ:',
 'emailto' => 'ܠ:',
@@ -1101,14 +1107,23 @@ $1',
 # Watchlist
 'watchlist' => 'ܪ̈ܗܝܬܝ',
 'mywatchlist' => 'ܪ̈ܗܝܬܝ',
-'watchlistfor2' => 'Ü  $1 $2',
+'watchlistfor2' => 'Ü\95 $1 $2',
 'nowatchlist' => 'ܠܝܬ ܠܟ ܡܕܡ ܒܪ̈ܗܝܬܐ ܕܝܠܟ',
 'watchnologin' => 'ܠܝܬܝܟ ܥܠܝܠܐ',
-'removedwatchtext' => 'ܦܐܬܐ "[[:$1]]" ܐܫܬܩܠܬ ܡܢ [[Special:Watchlist|ܪ̈ܗܝܬܟ]].',
+'watchnologintext' => 'ܐܠܨܐ ܕܬܗܘܐ [[Special:UserLogin|ܥܠܝܠܐ]] ܠܫܚܠܦܬܐ ܕܪ̈ܗܝܬܟ.',
+'addwatch' => 'ܐܘܣܦ ܥܠ ܪ̈ܗܝܬܝ',
+'addedwatchtext' => "ܦܐܬܐ ܕ\"[[:\$1]]\" ܐܬܬܘܣܦܬ ܒ[[Special:Watchlist|ܪ̈ܗܝܬܟ]].
+ܐܝܢܐ ܫܘܚܠܦܐ ܠܦܐܬܐ ܗܕܐ ܒܕܥܬܝܕ ܬܬܓܠܚ ܥܡ ܦܐܬܐ ܕܡܡܠܠܐ ܕܝܠܗ ܬܡܢ, ܘܦܐܬܐ ܬܗܘܐ ܒܣܪܛܐ '''ܚܠܝܡܐ''' ܒܦܐܬܐ ܕ[[Special:RecentChanges|ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ]] ܠܦܫܛܬܐ ܕܫܟܚܬܗ.",
+'removewatch' => 'ܫܩܘܠ ܡܢ ܪ̈ܗܝܬܝ',
+'removedwatchtext' => 'ܦܐܬܐ ܕ "[[:$1]]" ܐܫܬܩܠܬ ܡܢ [[Special:Watchlist|ܪ̈ܗܝܬܟ]].',
 'watch' => 'ܪܗܝ',
 'watchthispage' => 'ܪܗܝ ܗܕܐ ܦܐܬܐ',
 'unwatch' => 'ܠܐ ܪܗܝ',
 'unwatchthispage' => 'ܟܠܝ ܪܗܝܐ',
+'watchnochange' => 'ܐܦܠܐ ܚܕ ܡܢ ܦܐܬܬ̈ܐ ܒܪ̈ܗܝܬܟ ܐܫܬܚܠܦܬ ܒܡܬܚܐ ܕܙܒܢܐ ܓܠܝܚܐ.',
+'watchlist-details' => '{{PLURAL:$1|$1 ܦܐܬܐ|$1 ܦܐܬܬ̈ܐ}} ܒܪ̈ܗܝܬܟ, ܫܒܘܩ ܡܢ ܦܐܬܬ̈ܐ ܕܡܡܠܠܐ.',
+'wlheader-showupdated' => "* ܦܐܬܬ̈ܐ ܕܐܫܬܚܠܦܢ ܡܢ ܒܬܪ ܣܘܥܪܢܟ ܐܚܪܝܐ ܡܬܓܠܚܢ ܒܣܪܛܐ '''ܚܠܝܡܐ'''",
+'wlnote' => "ܠܬܚܬ {{PLURAL:$1|ܫܘܚܠܦܐ ܐܚܪܝܐ| '''$1''' ܫܘܚܠܦ̈ܐ ܐܚܪ̈ܝܐ}} {{PLURAL:$2|ܒܫܥܬܐ ܐܚܪܝܬܐ|'''$2''' ܒܫܥܬ̈ܐ ܐܚܪ̈ܝܬܐ}}, ܠܦܘܬ $3, $4.",
 'wlshowlast' => 'ܚܘܝ $1 ܫܥܬ̈ܐ $2 ܝܘܡܬ̈ܐ ܐܚܪ̈ܝܐ $3',
 'watchlist-options' => 'ܨܒܝܢܝܘܬ̈ܐ ܕܪ̈ܗܝܬܐ',
 
@@ -1116,6 +1131,7 @@ $1',
 'watching' => 'ܪܗܝܐ...',
 'unwatching' => 'ܠܐ ܪܗܝܐ...',
 
+'enotif_reset' => 'ܫܘܕܥ ܟܠ ܦܐܬܬ̈ܐ ܐܝܟ ܣܥܝܪ̈ܐ',
 'enotif_newpagetext' => 'ܗܕܐ ܗܝ ܦܐܬܐ ܚܕܬܐ',
 'enotif_impersonal_salutation' => 'ܡܦܠܚܢܐ {{SITENAME}}',
 'changed' => 'ܐܫܬܚܠܦܬ',
@@ -1170,6 +1186,7 @@ $1',
 'protect-edit-reasonlist' => 'ܫܚܠܦ ܥܠܬܐ ܕܢܛܪܐ',
 'protect-expiry-options' => '1 ܫܥܬܐ:1 hour,1 ܝܘܡܐ:1 day,1 ܫܒܘܥܐ:1 week,2 ܫܒܘܥ̈ܐ:2 weeks,1 ܝܪܚܐ:1 month,3 ܝܪ̈ܚܐ:3 months,6 ܝܪ̈ܚܐ:6 months,1 ܫܢܬܐ:1 year,ܠܥܠܡ:infinite',
 'restriction-type' => 'ܦܣܣܐ:',
+'restriction-level' => 'ܫܘܝܐ ܕܣܘܝܟܐ:',
 'minimum-size' => 'ܡܬܚܐ ܬܚܬܝܐ  ܕܥܓܪܐ',
 'maximum-size' => 'ܡܬܚܐ ܥܠܝܐ ܕܥܓܪܐ',
 'pagesize' => '(ܒܐܝܛ)',
@@ -1363,7 +1380,7 @@ Do you want to change the settings?',
 'tooltip-pt-userpage' => 'ܦܐܬܐ ܕܡܦܠܚܢܐ ܕܝܠܟ',
 'tooltip-pt-mytalk' => 'ܦܐܬܐ ܕܡܡܠܘܟ',
 'tooltip-pt-preferences' => 'Your preferences',
-'tooltip-pt-login' => 'Ü\9bÜ\92 Ü\90ܢܬ Ü\95Ü£Ü\93Ü  Ü¥Ü Ü Ü\90Ø\8c Ü\90Ü Ü\90 Ü\97Ü¢Ü\90 Ü Ü\98 ܐܠܨܝܐ',
+'tooltip-pt-login' => 'ܢܠÜ\92Ü\92 Ü Ü\9f Ü\95Ü£Ü\93Ü  Ü\90ܢܬ Ü¥Ü Ü Ü\90 Ü\95Ü\9dÜ Ü\9fØ\8c Ü\90Ü Ü\90 Ü\97Ü¢Ü\90 Ü Ü\90 Ü\90Ü\9dܬÜ\9dÜ\97Ü\9d ܐܠܨܝܐ',
 'tooltip-pt-logout' => 'ܦܠܛܐ',
 'tooltip-ca-talk' => 'ܡܡܠܠܐ ܥܠ ܚܒܝܫܬܐ ܕܦܐܬܐ',
 'tooltip-ca-addsection' => 'ܫܪܝ ܦܣܘܩܐ ܚܕܬܐ',
@@ -1524,7 +1541,13 @@ $1',
 # Watchlist editor
 '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 ܟܘܢܝ̈ܐ ܐܬܠܚܘܢ}} ܡܢ ܪ̈ܗܝܬܟ:',
+'watchlistedit-raw-title' => 'ܫܚܠܦ ܪ̈ܗܝܬܐ ܦܛܝܪ̈ܬܐ',
+'watchlistedit-raw-legend' => 'ܫܚܠܦ ܪ̈ܗܝܬܐ ܦܛܝܪ̈ܬܐ',
 'watchlistedit-raw-titles' => 'ܟܘܢܝ̈ܐ:',
 'watchlistedit-raw-submit' => 'ܚܕܬ ܪ̈ܗܝܬܐ',
 
@@ -1554,6 +1577,7 @@ $1',
 
 # Special:SpecialPages
 'specialpages' => 'ܦܐܬܬ̈ܐ ܕ̈ܝܠܢܝܬܐ',
+'specialpages-group-maintenance' => 'ܬܫܪܪܐ ܕܚܕܬܘܬܐ',
 'specialpages-group-other' => 'ܦܐܬܬ̈ܐ ܕ̈ܝܠܢܝܬܐ ܐܚܪ̈ܢܝܬܐ',
 'specialpages-group-login' => 'ܥܘܠ / ܒܪܝ',
 'specialpages-group-changes' => 'ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ ܘܣܓܠ̈ܐ',
index 5c322b5..2a35406 100644 (file)
@@ -329,7 +329,7 @@ $messages = array(
 'tog-enotifminoredits' => 'ابعتلى ايميل للتعديلات الصغيره للصفحات',
 'tog-enotifrevealaddr' => 'بين الايميل بتاعى فى ايميلات الاعلام',
 'tog-shownumberswatching' => 'بين عدد اليوزرز المراقبين',
-'tog-oldsig' => 'برÙ\88Ù\81Ù\87 Ù\84Ù\84اÙ\85ضا Ø§Ù\84حاÙ\84Ù\8aÙ\87',
+'tog-oldsig' => 'اÙ\84اÙ\85ضا Ø¯Ù\84Ù\88Ù\82تÙ\89:',
 'tog-fancysig' => 'امضا خام (من غير لينك أوتوماتيك)',
 'tog-externaleditor' => 'استعمل محرر خارجى افتراضيا',
 'tog-externaldiff' => 'استعمل فرق خارجى افتراضيا',
@@ -458,7 +458,7 @@ $messages = array(
 'vector-action-move' => 'نقل',
 'vector-action-protect' => 'حمايه',
 'vector-action-undelete' => 'الغى المسح',
-'vector-action-unprotect' => 'اÙ\84غÙ\89 الحمايه',
+'vector-action-unprotect' => 'غÙ\8aر الحمايه',
 'vector-view-create' => 'اعمل',
 'vector-view-edit' => 'تعديل',
 'vector-view-history' => 'استعراض التاريخ',
@@ -492,8 +492,8 @@ $messages = array(
 'protect' => 'حمايه',
 'protect_change' => 'غيّر',
 'protectthispage' => 'احمى الصفحه دى',
-'unprotect' => 'اÙ\84غÙ\89 Ø§Ù\84Ø­Ù\85اÙ\8aØ©',
-'unprotectthispage' => 'Ø´Ù\8aÙ\84 حماية الصفحه دى',
+'unprotect' => 'غÙ\8aر Ø§Ù\84Ø­Ù\85اÙ\8aÙ\87',
+'unprotectthispage' => 'غÙ\8aر حماية الصفحه دى',
 'newpage' => 'صفحه جديده',
 'talkpage' => 'ناقش الصفحه دى',
 'talkpagelinktext' => 'مناقشه',
@@ -526,6 +526,9 @@ $messages = array(
 لو سمحت تستنا شويه قبل ما تحاول تستعرض الصفحه دى من تانى.
 
 $1',
+'pool-timeout' => 'انتهاء الانتظار للقفل',
+'pool-queuefull' => 'طابور الانتخاب مليان',
+'pool-errorunknown' => 'غلط مش معروف',
 
 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
 'aboutsite' => 'عن {{SITENAME}}',
@@ -707,8 +710,8 @@ $2',
 'createaccountmail' => 'بـ الايميل',
 'createaccountreason' => 'السبب:',
 'badretype' => 'كلمتين السر اللى  كتبتهم مش  زى بعضهم',
-'userexists' => 'اسم اليوزر اللى دخلته بيستعمله يوزر غيرك.
¯Ø®Ù\84 Ø§Ø³Ù\85 تانى.',
+'userexists' => 'اسم اليوزر اللى كتبته بيستعمله يوزر غيرك.
§Ù\83تت Ø§Ø³Ù\85 Ù\8aÙ\88زر تانى.',
 'loginerror' => 'غلط فى الدخول',
 'createaccounterror' => 'مش قادر يعمل الحساب: $1',
 'nocookiesnew' => 'اليوزر خلاص اتفتح له حساب، بس انت لسة ما سجلتش دخولك.
@@ -969,12 +972,12 @@ $2',
 'permissionserrorstext-withaction' => 'أنت ما عندكش الصلاحيات علشان $2، لل{{PLURAL:$1|سبب|أسباب}} ده:',
 'recreate-moveddeleted-warn' => "'''تحذير: انت بتعيد انشاء صفحه اتمسحت قبل كده.'''
 لازم تتأكد من ان الاستمرار فى تحرير الصفحه دى ملائم.
-سجلات الحذف و النقل بتوع الصفحه دى معروضه هنا:",
+سجلات المسح  و النقل بتوع الصفحه دى معروضه هنا:",
 'moveddeleted-notice' => 'الصفحة دى اتمسحت. سجل المسح و سجل النقل بتوع الصفحة معروضين تحت علشان ترجعلهم.',
 'log-fulllog' => 'استعراض السجل بالكامل',
 'edit-hook-aborted' => 'الخطاف ساب التعديل من غير مايدى تفسير.',
-'edit-gone-missing' => 'Ù\84Ù\85 Ù\8aÙ\85Ù\83Ù\86 ØªØ­Ø¯Ù\8aØ« Ø§Ù\84صÙ\81حة.
\8aبدÙ\88 Ø£Ù\86Ù\87 ØªÙ\85 Ø­Ø°Ù\81Ù\87ا.',
+'edit-gone-missing' => 'Ù\85Ø´ Ù\85Ù\85Ù\83Ù\86 ØªØ¹Ø¯Ù\8aÙ\84 Ø§Ù\84صÙ\81Ø­Ù\87.
\8aظÙ\87ر Ø§Ù\86Ù\87ا Ø¥ØªÙ\85سحت.',
 'edit-conflict' => 'تضارب تحريرى.',
 'edit-no-change' => 'تعديلك تم تجاهله، لأن ما حصلش أى تعديل للنص.',
 'edit-already-exists' => 'لم يمكن إنشاء صفحة جديدة.
@@ -1065,7 +1068,7 @@ $2',
 ممكن تكون فيه تفاصيل فى [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} سجل التخبيه].
 كسيسوب ممكن [$1 تشوف الفرق ده] لو إنت عايز تكمل.",
 'rev-deleted-diff-view' => "واحده من نسخ الفرق ده '''اتمسحت'''.
-كسيسوب ممكن تشوف الفرق ده؛ ممكن تكون فيه تفاصيل فى [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} سجل الحذف].",
+كسيسوب ممكن تشوف الفرق ده؛ ممكن تكون فيه تفاصيل فى [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} سجل المسح].",
 'rev-suppressed-diff-view' => "واحده من نسخ الفرق ده '''اتخبت'''.
 كسيسوب ممكن تشوف الفرق ده؛ ممكن تكون فيه تفاصيل فى [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} سجل التخبيه].",
 'rev-delundel' => 'عرض/تخبيه',
@@ -1171,11 +1174,13 @@ $1",
 
 # Diffs
 'history-title' => 'تاريخ تعديل "$1"',
+'difference-multipage' => '(الفرق بين الصفحتين)',
 'lineno' => 'سطر $1:',
 'compareselectedversions' => 'قارن بين النسختين المختارتين',
 'showhideselectedversions' => 'عرض/تخبية المراجعات المختاره.',
 'editundo' => 'استرجاع',
 'diff-multi' => '({{PLURAL:$1|نسخه واحده متوسطه|$1 نسخ متوسطه}} by {{PLURAL:$2|يوزر واحد |$2 يوزرات}}  مش معروضه)',
+'diff-multi-manyusers' => '({{PLURAL:$1|نسخه واحده متوسطه|$1 نسخ متوسطه}} by {{PLURAL:$2|يوزر واحد |$2 يوزرات}}  مش معروضه)',
 
 # Search results
 'searchresults' => 'نتايج التدوير',
@@ -1210,6 +1215,7 @@ $1",
 'searchprofile-everything-tooltip' => 'دور فى  كل المحتوى (شامل صفحات النقاش)',
 'searchprofile-advanced-tooltip' => 'دور فى النطاقات المخصصة',
 'search-result-size' => '$1 ({{PLURAL:$2|1 كلمه|$2 كلام}})',
+'search-result-category-size' => '{{PLURAL:$1|لا أعضاء|عضو واحد|عضوين|$1 أعضاء|$1 عضوًا|$1 عضو}} ({{PLURAL:$2|لا تصانيف فرعية|تصنيف فرعى واحد|تصنيفين فرعيين|$2 تصنيفات فرعية|$2 تصنيف فرعى|$2 تصنيف فرعى}} و{{PLURAL:$3|لا ملفات|ملف واحد|ملفين|$3 ملفات|$3 ملف|$3 ملف}})',
 'search-result-score' => 'الارتباط: $1%',
 'search-redirect' => '(تحويله $1)',
 'search-section' => '(جزء $1)',
@@ -1364,6 +1370,10 @@ $1",
 'prefs-displaywatchlist' => 'اختيارات العرض',
 'prefs-diffs' => 'التغيير',
 
+# User preference: e-mail validation using jQuery
+'email-address-validity-valid' => 'عنوان الإيميل صح',
+'email-address-validity-invalid' => 'عنوان الإيميل غلط',
+
 # User rights
 'userrights' => 'إدارة الحقوق بتاعة اليوزر',
 'userrights-lookup-user' => 'إدارة مجموعات اليوزر',
@@ -1447,6 +1457,7 @@ $1",
 'right-hideuser' => 'منع اسم يوزر، و خبيه عن الناس',
 'right-ipblock-exempt' => 'إتفادى عمليات منع الأيبي، المنع الأوتوماتيكى ومنع النطاق.',
 'right-proxyunbannable' => 'إتفادى عمليات المنع الأوتوماتيكية للبروكسيهات',
+'right-unblockself' => 'رفع المنع عن نفسهم',
 'right-protect' => 'تغيير مستويات الحماية وتعديل الصفحات المحمية',
 'right-editprotected' => 'تعديل الصفحات المحمية (من غير الحماية المتضمنة)',
 'right-editinterface' => 'تعديل الواجهة بتاعة اليوزر',
@@ -1600,6 +1611,8 @@ $1",
 'filetype-banned-type' => "'''\".\$1\"''' مش نوع ملف مسموح بيه.
 {{PLURAL:\$3|نوع الملف المسموح بيه هو|أنواع الملفات المسموح بيها هي}} \$2.",
 'filetype-missing' => 'الملف مالوش امتدا(مثلا ".jpg").',
+'file-too-large' => 'الملف كان كبير جدا.',
+'filetype-banned' => 'نوع الملف ده ممنوع.',
 'large-file' => 'ينصح ان الملفات ماتكونش أكبر من $1؛ الملف ده حجمه $2.',
 'largefileserver' => 'حجم الملف ده أكبر من المسموح بيه على السيرڨر ده .',
 'emptyfile' => 'الظاهر ان الملف اللى انت حملته طلع فاضي.
@@ -2144,7 +2157,7 @@ $UNWATCHURL
 'delete-legend' => 'مسح',
 'historywarning' => "'''تحذير:''' الصفحه اللى ها  تمسحها ليها تاريخ فيه تقريبا $1 {{PLURAL:$1|مراجعة|مراجعة}}:",
 'confirmdeletetext' => 'انت على وشك انك تمسح صفحه أو صوره و كل تاريخها.
-من فضلك  اتأكد انك عايز المسح وبأنك فاهم نتايج  العمليه  دى. عمليات الحذف لازم تتم بناء على [[{{MediaWiki:Policy-url}}|القواعد المتفق عليها]].',
+من فضلك  اتأكد انك عايز المسح وبأنك فاهم نتايج  العمليه  دى. عمليات المسح لازم تتم بناء على [[{{MediaWiki:Policy-url}}|القواعد المتفق عليها]].',
 'actioncomplete' => 'العمليه خلصت',
 'actionfailed' => 'الفعل فشل',
 'deletedtext' => '"$1" اتمسحت.
index b945c5b..2e2cdb5 100644 (file)
@@ -119,12 +119,12 @@ $messages = array(
 'tog-hidepatrolled' => 'সাম্প্ৰতিক সাল-সলনিত তহলদাৰী সম্পাদনা নেদেখুৱাব',
 'tog-newpageshidepatrolled' => 'নতুন পৃষ্ঠা তালিকাত তহলদাৰী পৃষ্ঠাসমূহ নেদেখুৱাব',
 'tog-extendwatchlist' => 'কেৱল সাম্প্ৰতিকেই নহয, লক্ষ্য-তালিকাৰ সকলো সাল-সলনি বহলাই দেখুৱাওক',
-'tog-usenewrc' => 'বৰà§\8dদà§\8dধিত à¦¸à¦¾à¦®à§\8dপà§\8dৰতিà¦\95 à¦¸à¦¾à¦²-সলনি à¦¬à§\8dযবহাৰ à¦\95ৰà¦\95 (à¦\9cাভাসà§\8dà¦\95à§\8dৰিপà§\8dà¦\9fৰ à¦¦à§°à¦\95াৰ)',
+'tog-usenewrc' => 'বৰà§\8dদà§\8dধিত à¦¸à¦¾à¦®à§\8dপà§\8dৰতিà¦\95 à¦¸à¦¾à¦²-সলনি à¦¬à§\8dযৱহাৰ à¦\95ৰà¦\95 (à¦\9cাভাসà§\8dà¦\95à§\8dৰিপà§\8dà¦\9fৰ à¦ªà§\8dৰয়à§\8bà¦\9cন)',
 'tog-numberheadings' => 'শীৰ্ষকত স্বয়ংক্ৰিয়ভাৱে ক্ৰমিক নং দিয়ক',
 'tog-showtoolbar' => 'সম্পাদনা দণ্ডিকা দেখুৱাওক (জাভাস্ক্ৰিপ্টৰ দৰকাৰ)',
 'tog-editondblclick' => 'একেলগে দুবাৰ টিপা মাৰিলে পৃষ্ঠা সম্পাদনা কৰক (জাভাস্ক্ৰিপ্টৰ দৰকাৰ)',
 'tog-editsection' => '[সম্পাদনা] সংযোগৰ দ্বাৰা অনুচ্ছেদ সম্পাদনা কৰা সক্ৰিয় কৰক',
-'tog-editsectiononrightclick' => 'অনুচ্ছেদৰ শিৰোনামাত সোঁ-বুটাম টিপা মাৰি সম্পাদনা কৰাটো সক্ৰিয় কৰক (জাভাস্ক্ৰিপ্ট)',
+'tog-editsectiononrightclick' => 'অনুচ্ছেদৰ শিৰোনামাত সোঁ-বুটাম টিপা মাৰি সম্পাদনা কৰাটো সক্ৰিয় কৰক (জাভাস্ক্ৰিপ্টৰ প্ৰয়োজন)',
 'tog-showtoc' => 'শিৰোনামাৰ সূচী দেখুৱাওক (যিবোৰ পৃষ্ঠাত তিনিটাতকৈ বেছি শিৰোনামা আছে)',
 'tog-rememberpassword' => 'মোৰ প্ৰৱেশ এই কম্পিউটাৰত মনত ৰাখক (সৰ্বাধিক $1 {{PLURAL:$1|দিনলৈ|দিনলৈ}})',
 'tog-watchcreations' => 'মই সৃষ্টি সকলো পৃষ্ঠা মোৰ লক্ষ্য-তালিকাত যোগ কৰক',
@@ -156,7 +156,7 @@ $messages = array(
 'tog-ccmeonemails' => 'মই অন্য সদস্যলৈ পঠোৱা ই-মেইলৰ প্ৰতিলিপি এটা মোলৈও পঠাব',
 'tog-diffonly' => 'পার্থক্যৰ তলত পৃষ্ঠাৰ বিষয়বস্তু নেদেখুৱাব',
 'tog-showhiddencats' => 'নিহিত শ্ৰেণী সমূহ দেখুৱাওক',
-'tog-norollbackdiff' => 'ৰà§\8bলবà§\87à¦\95à§\8d à¦\95ৰা à¦ªà¦¾à¦\9aত পাৰ্থক্য নেদেখুৱাব',
+'tog-norollbackdiff' => 'পà§\82ৰà§\8dবৱত à¦\95ৰা à¦ªà¦¾à¦\9bত পাৰ্থক্য নেদেখুৱাব',
 
 'underline-always' => 'সদায়',
 'underline-never' => 'কেতিয়াও নহয়',
@@ -170,14 +170,14 @@ $messages = array(
 'editfont-serif' => 'চেৰিফ ফন্ট',
 
 # Dates
-'sunday' => 'দেওবাৰ',
+'sunday' => 'দà§\87à¦\93à¦\81বাৰ',
 'monday' => 'সোমবাৰ',
 'tuesday' => 'মঙ্গলবাৰ',
 'wednesday' => 'বুধবাৰ',
 'thursday' => 'বৃহস্পতিবাৰ',
 'friday' => 'শুক্ৰবাৰ',
 'saturday' => 'শণিবাৰ',
-'sun' => 'দেও',
+'sun' => 'দেও',
 'mon' => 'সোম',
 'tue' => 'মংগল',
 'wed' => 'বুধ',
@@ -222,13 +222,13 @@ $messages = array(
 'dec' => 'ডিচেম্বৰ:',
 
 # Categories related messages
-'pagecategories' => '{{PLURAL:$1|শ্ৰেণী|শ্ৰেণী}}',
+'pagecategories' => '{{PLURAL:$1|শ্ৰেণী|শ্ৰেণীসমূহ}}',
 'category_header' => '"$1" শ্ৰেণীৰ পৃষ্ঠাসমূহ',
 'subcategories' => 'উপশ্ৰেণীসমূহ',
 'category-media-header' => '"$1" শ্ৰেণীৰ মিডিয়া',
 'category-empty' => "''এই শ্ৰেণীত বৰ্তমান কোনো পৃষ্ঠা বা মিডিয়া ফাইল নাই ।''",
 'hidden-categories' => '{{PLURAL:$1|নিহিত শ্ৰেণী|নিহিত শ্ৰেণীসমূহ}}',
-'hidden-category-category' => 'অদৃশ্য শ্ৰেণী সমূহ',
+'hidden-category-category' => 'অদৃশ্য শ্ৰেণীসমূহ',
 'category-subcat-count' => '{{PLURAL:$2|এই শ্ৰেণীত নিম্নলিখিত উপশ্ৰেণীসমূহ আছে। মুঠ $2টা উপশ্ৰেণীৰ ভিতৰত এই শ্ৰেণীত নিম্নলিখিত {{PLURAL:$1|এটা উপশ্ৰেণী|$1 টা উপশ্ৰেণী}} আছে।}}',
 'category-subcat-count-limited' => 'এই শ্ৰেণীত নিম্নলিখিত {{PLURAL:$1|টা উপশ্ৰেণী আছে|$1টা উপশ্ৰেণী আছে}}।',
 'category-article-count' => '{{PLURAL:$2|এই শ্ৰেণীটোত কেৱল তলত দিয়া পৃষ্ঠাহে আছে । মুঠ $2 খনৰ ভিতৰত এই শ্ৰেণীটোত তলৰ {{PLURAL:$1|এখন পৃষ্ঠা আছে|$1 খন পৃষ্ঠা আছে}}।}}',
@@ -241,9 +241,9 @@ $messages = array(
 'broken-file-category' => 'অবৈধ ফাইল সংযোগযুক্ত পৃষ্ঠাবোৰ',
 
 'about' => 'বিষয়ে',
-'article' => 'বিষয়বসà§\8dতà§\81 পৃষ্ঠা',
+'article' => 'সমল পৃষ্ঠা',
 'newwindow' => "(নতুন ৱিণ্ড'ত খোল খায়)",
-'cancel' => 'ৰদ à¦\95ৰা à¦¹à¦\93ক',
+'cancel' => 'বাতিল à¦\95ৰক',
 'moredotdotdot' => 'অধিক...',
 'mypage' => 'মোৰ পৃষ্ঠা',
 'mytalk' => 'মোৰ কথা-বতৰা',
@@ -264,7 +264,7 @@ $messages = array(
 
 # Vector skin
 'vector-action-addsection' => 'বিষয় যোগ',
-'vector-action-delete' => 'মà¦\9aি à¦ªà§\87লাà¦\93ক',
+'vector-action-delete' => 'বিলà§\8bপ à¦\95ৰক',
 'vector-action-move' => 'স্থানান্তৰ কৰক',
 'vector-action-protect' => 'সুৰক্ষিত কৰক',
 'vector-action-undelete' => 'পুনৰুদ্ধাৰ কৰক',
@@ -280,7 +280,7 @@ $messages = array(
 'variants' => 'বিকল্পসমূহ',
 
 'errorpagetitle' => 'ভুল',
-'returnto' => '$1 লৈ ঘূৰি যাওক ।',
+'returnto' => '$1লৈ ঘূৰি যাওক ।',
 'tagline' => '{{SITENAME}}ৰ পৰা',
 'help' => 'সহায়',
 'search' => 'সন্ধান',
@@ -305,7 +305,7 @@ $messages = array(
 'protect' => 'সুৰক্ষিত কৰক',
 'protect_change' => 'সলাওক',
 'protectthispage' => 'বৰ্তমান পৃষ্ঠাৰ সংৰক্ষণবিধিৰ পৰিবৰ্তন',
-'unprotect' => 'সà¦\82ৰà¦\95à§\8dষণ সলনি কৰক',
+'unprotect' => 'সà§\81ৰà¦\95à§\8dষা সলনি কৰক',
 'unprotectthispage' => 'এই পৃষ্ঠাৰ সুৰক্ষা সলনি কৰক',
 'newpage' => 'নতুন পৃষ্ঠা',
 'talkpage' => 'এই পৃষ্ঠা সম্পৰ্কে কথা-বতৰা',
@@ -316,20 +316,20 @@ $messages = array(
 'articlepage' => 'সমল পৃষ্ঠা চাওক',
 'talk' => 'আলোচনা',
 'views' => 'দৰ্শন',
-'toolbox' => 'সা-সৰঞ্জাম',
+'toolbox' => 'সা-সৰঞ্জাম',
 'userpage' => 'সদস্য পৃষ্ঠা চাওক',
-'projectpage' => 'প্ৰকল্প পৃষ্ঠা',
-'imagepage' => 'ফাà¦\87ল পৃষ্ঠা চাওক',
+'projectpage' => 'প্ৰকল্প পৃষ্ঠা চাওক',
+'imagepage' => 'নথি পৃষ্ঠা চাওক',
 'mediawikipage' => 'বাৰ্তা পৃষ্ঠা চাওক',
 'templatepage' => 'সাঁচ পৃষ্ঠা চাওক',
 'viewhelppage' => 'সহায় পৃষ্ঠা চাওক',
 'categorypage' => 'শ্ৰেণী পৃষ্ঠা চাওক',
-'viewtalkpage' => 'à¦\95থা-বতৰা চাওক',
-'otherlanguages' => 'আন ভাষাত',
-'redirectedfrom' => '($1 ৰ পৰা পুনঃনিৰ্দেশিত)',
+'viewtalkpage' => 'à¦\86লà§\8bà¦\9aনা চাওক',
+'otherlanguages' => 'à¦\86ন à¦­à¦¾à¦·à¦¾à¦¸à¦®à§\82হত',
+'redirectedfrom' => '($1ৰ পৰা পুনঃনিৰ্দেশিত)',
 'redirectpagesub' => 'পুনঃনিৰ্দেশিত পৃষ্ঠা',
 'lastmodifiedat' => 'এই পৃষ্ঠাখন শেষবাৰৰ কাৰণে $1 তাৰিখে $2 বজাত সলনি কৰা হৈছিল।',
-'viewcount' => 'এই পৃষ্ঠাটো {{PLURAL:$1|এবাৰ|$1}} বাৰ চোৱা হৈছে',
+'viewcount' => 'এই পৃষ্ঠাটো {{PLURAL:$1|এবাৰ|$1 বাৰ}} চোৱা হৈছে',
 'protectedpage' => 'সুৰক্ষিত পৃষ্ঠা',
 'jumpto' => 'গম্যাৰ্থে',
 'jumptonavigation' => 'দিকদৰ্শন',
@@ -339,7 +339,7 @@ $messages = array(
 অনুগ্ৰহ কৰি অলপ পাছত এই পৃষ্ঠা চাবলৈ প্ৰয়াস কৰক ।
 
 $1',
-'pool-timeout' => 'লà¦\95ৰ à¦¬à¦¾à¦¬à§\87 à¦\85পà§\87à¦\95à§\8dষা à¦\95ৰি সময় উকলি গৈছে',
+'pool-timeout' => 'বনà§\8dধ à¦\95ৰাৰ à¦¬à¦¾à¦¬à§\87 à¦\85পà§\87à¦\95à§\8dষা à¦\95ৰাৰ সময় উকলি গৈছে',
 'pool-queuefull' => 'পোল কিউ (pool queue) সমূল',
 'pool-errorunknown' => 'অপৰিচিত ত্ৰুটি',
 
@@ -350,7 +350,7 @@ $1',
 'copyrightpage' => '{{ns:project}}:স্বত্ব',
 'currentevents' => 'সাম্প্ৰতিক ঘটনাৱলী',
 'currentevents-url' => 'Project:শেহতীয়া ঘটনাৱলী',
-'disclaimers' => 'à¦\98à§\8bষণা',
+'disclaimers' => 'দায়লà§\81পà§\8dতি',
 'disclaimerpage' => 'Project:সাধাৰণ দায়লুপ্তি',
 'edithelp' => 'সম্পাদনাৰ বাবে সহায়',
 'edithelppage' => 'Help:সম্পাদনা',
@@ -370,12 +370,12 @@ $1',
 'versionrequired' => 'মিডিয়াৱিকিৰ $1 সংকলন থাকিব লাগিব ।',
 'versionrequiredtext' => 'এই পৃষ্ঠাটো ব্যৱহাৰ কৰিবলৈ মিডিয়াৱিকিৰ $1 সংস্কৰণ থাকিব লাগিব । [[Special:Version|সংস্কৰণ পৃষ্ঠা]] চাওক।',
 
-'ok' => 'à¦\85â\80\99à¦\95ে',
-'retrievedfrom' => '"$1" -ৰ পৰা সংকলিত',
+'ok' => 'ঠিà¦\95 à¦\86à¦\9bে',
+'retrievedfrom' => '"$1"ৰ পৰা সংকলিত',
 'youhavenewmessages' => 'আপোনাৰ কাৰণে $1 আছে। ($2)',
-'newmessageslink' => 'নতà§\81ন à¦¬à¦¾à§°à§\8dতা',
+'newmessageslink' => 'নতà§\81ন à¦¸à¦\82বাদ',
 'newmessagesdifflink' => 'শেহতীয়া সাল-সলনি',
-'youhavenewmessagesmulti' => '$1ত à¦\86পà§\8bনাৰ à¦\95াৰণà§\87 à¦¨à¦¤à§\81ন à¦¬à¦¾à§°à§\8dতা আছে',
+'youhavenewmessagesmulti' => '$1ত à¦\86পà§\8bনাৰ à¦\95াৰণà§\87 à¦¨à¦¤à§\81ন à¦¸à¦\82বাদ আছে',
 'editsection' => 'সম্পাদনা কৰক',
 'editold' => 'সম্পাদনা',
 'viewsourceold' => 'উৎস চাওক',
@@ -407,26 +407,26 @@ $1',
 'nstab-media' => 'মিডিয়া পৃষ্ঠা',
 'nstab-special' => 'বিশেষ পৃষ্ঠা',
 'nstab-project' => 'প্ৰকল্প পৃষ্ঠা',
-'nstab-image' => 'à¦\9aিতà§\8dৰ',
-'nstab-mediawiki' => 'বাৰà§\8dতা',
+'nstab-image' => 'নথি',
+'nstab-mediawiki' => 'সà¦\82বাদ',
 'nstab-template' => 'সাঁচ',
 'nstab-help' => 'সাহায্য পৃষ্ঠা',
 'nstab-category' => 'শ্ৰেণী',
 
 # Main script and global functions
 'nosuchaction' => 'এনে কাৰ্য নাই',
-'nosuchactiontext' => "এই ইউআৰএল-এ নিৰ্ধাৰিত কৰা কাৰ্য্য অবৈধ।
+'nosuchactiontext' => "এই ইউআৰএলে নিৰ্ধাৰিত কৰা কাৰ্য অবৈধ।
 আপুনি বোধহয়  ইউআৰএল ভুলকৈ লিখিছে বা এটা ভুল লিঙ্ক অনুকৰণ কৰিছে ।
-হ'বও পাৰে যে {{SITENAME}}-ত ব্যৱহাৰ হোৱা চফ্টৱেৰত ত্ৰুটি আছে ।",
-'nosuchspecialpage' => 'এনেকুৱা কোনো বিশেষ পৃষ্ঠা নাই',
+{{SITENAME}}ত ব্যৱহাৰ হোৱা চফ্টৱেৰত ত্ৰুটি হ'বও পাৰে ।",
+'nosuchspecialpage' => 'এনে ধৰনৰ কোনো বিশেষ পৃষ্ঠা নাই',
 'nospecialpagetext' => '<strong>আপুনি অবৈধ বিশেষ পৃষ্ঠা এটা অনুৰোধ কৰিছে ।</strong>
 
- বৈধ বিশেষ পৃষ্ঠাসমূহৰ তালিকা ইয়াত পাব [[Special:SpecialPages|{{int:specialpages}}]] ।',
+বৈধ বিশেষ পৃষ্ঠাসমূহৰ তালিকা ইয়াত পাব [[Special:SpecialPages|{{int:specialpages}}]] ।',
 
 # General errors
 'error' => 'ভুল',
 'databaseerror' => 'তথ্যকোষৰ ভুল',
-'dberrortext' => 'Database query-ত ভুল আছে।
+'dberrortext' => 'Database query’ত ত্ৰুটি আছে।
 ছফ্টৱেৰত থকা কোনো বাগৰ বাবে এনে হব পাৰে।
 অন্তিমবাৰ চেষ্টা কৰা ডাটাবেচ কুৱেৰীটো আছিল এনেধৰণৰ:
 <blockquote><tt>$1</tt></blockquote>
@@ -448,30 +448,32 @@ $1',
 বিলোপ কৰা কোনো পৃষ্ঠাৰ সংযোগৰ বাবে সাধাৰণতে এনে ঘটে ।
 
 যদি এনে হোৱা নাই তেন্তে আপুনি ছফ্টৱেৰত কিবা সমস্যা পাইছে ।
-অনুগ্ৰহ কৰি এই সম্পৰ্কে ইউ.আৰ.এল. সহ কোনো [[Special:ListUsers/sysop|প্ৰশাসক]] ক জনাওক ।',
+অনুগ্ৰহ কৰি এই সম্পৰ্কে ইউ.আৰ.এল. সহ কোনো [[Special:ListUsers/sysop|প্ৰশাসক]]ক জনাওক ।',
 'missingarticle-rev' => '(সংস্কৰণ#: $1)',
 'missingarticle-diff' => '(তফাৎ: $1, $2)',
 'readonly_lag' => 'তথ্যকোষ স্বয়ংক্ৰিয়ভাৱে বন্ধ হৈছে যাতে দ্বিতীয় শ্ৰেণীৰ তথ্যকোষৰ চাৰ্ভাৰ প্ৰধান তথ্যকোষৰ চাৰ্ভাৰৰ অৱস্থালৈ আহিব পাৰে ।',
 'internalerror' => 'আভ্যন্তৰীণ ক্ৰুটি',
-'internalerror_info' => 'ভিতৰà§\81ৱা ত্ৰুটি: $1',
-'fileappenderrorread' => 'à¦\9cোৰা দিয়াৰ সময়ত "$1" পাঠ্য কৰা নহ\'ল ।',
+'internalerror_info' => 'à¦\86ভà§\8dযনà§\8dতৰà§\80ণ ত্ৰুটি: $1',
+'fileappenderrorread' => 'যোৰা দিয়াৰ সময়ত "$1" পাঠ্য কৰা নহ\'ল ।',
 'fileappenderror' => '"$2"ৰ লগত "$1"ৰ সংযোগ কৰা নহ\'ল ।',
-'filecopyerror' => '"$1" ফাইলটো "$2" লৈ প্ৰতিলিপি কৰিব পৰা নগ’ল।',
-'filerenameerror' => '"$1" ফাইলৰ নাম সলনি কৰি "$2" কৰিব পৰা নগল ।',
-'filedeleteerror' => '"$1" ফাইলতো বিলোপ কৰিব পৰা নগল।',
-'directorycreateerror' => '"$1" à¦¡à¦¾à¦\87ৰà§\87à¦\95à§\8dà¦\9fৰি সৃষ্টি কৰিব পৰা নগ’ল।',
-'filenotfound' => '"$1" নামৰ ফাইলটো বিচাৰি পোৱা নগল।',
+'filecopyerror' => '"$1" ফাইলটো "$2"লৈ প্ৰতিলিপি কৰিব পৰা নগ’ল।',
+'filerenameerror' => '"$1" ফাইলৰ নাম সলনি কৰি "$2" কৰিব পৰা নগল ।',
+'filedeleteerror' => '"$1" ফাইলতো বিলোপ কৰিব পৰা নগল।',
+'directorycreateerror' => '"$1" à¦¨à¦¿à§°à§\8dদà§\87শিà¦\95া সৃষ্টি কৰিব পৰা নগ’ল।',
+'filenotfound' => '"$1" নামৰ ফাইলটো বিচাৰি পোৱা নগল।',
 'fileexistserror' => '"$1" ফাইলটোত লিখিব নোৱাৰি: ফাইলটো আগৰ পৰাই আছে',
 'unexpected' => 'অনাকাংক্ষিত মূল্য: "$1"="$2".',
 'formerror' => 'ভুল: ফৰ্ম খন জমা দিব পৰা নগ’ল',
 'badarticleerror' => 'এই পৃষ্ঠাটোত এই কামটো কৰিব নোৱাৰি ।',
-'cannotdelete' => '"$1" à¦ªà§\83ষà§\8dঠা à¦¬à¦¾ à¦«à¦¾à¦\87ল à¦®à¦\9aা à¦¸à¦®à§\8dভব à¦¨à¦¹à¦¯à¦¼ ।
-সমà§\8dভৱ à¦\86নà§\87 à¦\86à¦\97à§\87à¦\87 à¦®à¦\9aি à¦¥à§\88ছে ।',
+'cannotdelete' => '"$1" à¦ªà§\83ষà§\8dঠা à¦¬à¦¾ à¦¨à¦¥à¦¿à¦\96ন à¦¬à¦¿à¦²à§\8bপ à¦\95ৰা à¦\85সমà§\8dভৱ ।
+সমà§\8dভৱ à¦\86নà§\87 à¦\86à¦\97à§\87à¦\87 à¦¬à¦¿à¦²à§\8bপ à¦\95ৰিছে ।',
 'cannotdelete-title' => '"$1" পৃষ্ঠা বিলোপ কৰিব নোৱাৰি',
+'delete-hook-aborted' => 'হুকৰ দ্বাৰা সম্পাদনা প্ৰত্যাখ্যান কৰা হৈছে ।
+ইয়াৰ কোনো ব্যাখ্যা নাই ।',
 'badtitle' => 'অগ্ৰহণীয় শিৰোনামা',
 'badtitletext' => 'আপুনি বিচৰা পৃষ্ঠাটোৰ শিৰোনামা অযোগ্য, খালী বা ভুলকৈ জড়িত আন্তৰ্ভাষিক বা আন্তৰ্ৱিকি শিৰোনামা। ইয়াত এক বা ততোধিক বৰ্ণ আছে যাক শিৰোনামাত ব্যৱহাৰ কৰিব নোৱাৰি।',
-'perfcached' => "তলত দিয়া তথ্যখিনি আগতে জমা কৰি থোৱা (cached) আৰু সাম্প্ৰতিক নহ'ব পাৰে। এই তথ্যখিনিত সৰ্বোচ্চ {{PLURAL:$1|এটা ফলফল|$1টা ফলাফল}} উপলব্ধ।",
-'perfcachedts' => 'তলত দিয়া তথ্য খিনি আগতে জমা কৰি থোৱা (cached) আৰু শেষবাৰৰ কাৰণে $1 ত নবীকৰণ কৰা হৈছিল। সৰ্বাধিক {{PLURAL:$4|এটা ফলাফল|$4 টা ফলাফল}} এই cacheত পাব।',
+'perfcached' => "তলত à¦¦à¦¿à¦¯à¦¼à¦¾ à¦¤à¦¥à§\8dযà¦\96িনি à¦\86à¦\97তà§\87 à¦\9cমা à¦\95ৰি à¦¥à§\8bৱা (cached) à¦\86ৰà§\81 à¦¸à¦¾à¦®à§\8dপà§\8dৰতিà¦\95 à¦¨à¦¹'ব à¦ªà¦¾à§°à§\87। à¦\8fà¦\87 à¦¤à¦¥à§\8dযà¦\96িনিত à¦¸à§°à§\8dবà§\8bà¦\9aà§\8dà¦\9a {{PLURAL:$1|à¦\8fà¦\9fা à¦«à¦²à¦¾à¦«à¦²|$1à¦\9fা à¦«à¦²à¦¾à¦«à¦²}} à¦\89পলবà§\8dধ।",
+'perfcachedts' => 'তলত দিয়া তথ্য খিনি আগতে জমা কৰি থোৱা (cached) আৰু শেষবাৰৰ কাৰণে $1 ত নবীকৰণ কৰা হৈছিল। সৰ্বাধিক {{PLURAL:$4|এটা ফলাফল|$4 টা ফলাফল}} এই কেশ্বত পাব।',
 'querypage-no-updates' => 'এই পৃষ্ঠাটো নৱীকৰণ কৰা ৰোধ কৰা হৈছে। ইয়াৰ তথ্য এতিয়া সতেজ কৰিব নোৱাৰি।',
 'wrong_wfQuery_params' => 'wfQuery() ৰ কাৰণে ভুল মাপদণ্ড দিয়া হৈছে <br />
 কাৰ্য: $1<br />পৃষ্ঠা: $2',
@@ -489,15 +491,17 @@ $1',
 'cascadeprotected' => 'এই পৃষ্ঠাখন সম্পাদনাৰ পৰা সুৰক্ষিত কাৰণ এই {{PLURAL:$1|পৃষ্ঠা, যিখন|পৃষ্ঠা, যিবোৰ}} "প্ৰপাতাকাৰ" (cascading) বিকল্পৰ সহযোগত সুৰক্ষিত কৰা হৈছে: 
 $2',
 'namespaceprotected' => "আপোনাৰ '''$1''' নামস্থানৰ পৃষ্ঠাসমূহ সম্পাদনা কৰাৰ অধিকাৰ নাই।",
-'customcssprotected' => 'এই পৃষ্ঠা সম্পাদনা কৰাৰ অধিকাৰ আপোনাৰ নাই, কাৰণ ইয়াত আন সদস্যৰ ব্যক্তিগত চেটিংচ আছে ।',
-'customjsprotected' => 'à¦\8fà¦\87 à¦\9cাভালিপিৰ à¦ªà§\83ষà§\8dঠা à¦¸à¦®à§\8dপাদনা à¦\95ৰাৰ à¦\85ধিà¦\95াৰ à¦\86পà§\8bনাৰ à¦¨à¦¾à¦\87, à¦\95াৰণ à¦\87য়াত à¦\86ন à¦¸à¦¦à¦¸à§\8dযৰ à¦¬à§\8dযà¦\95à§\8dতিà¦\97ত à¦\9aà§\87à¦\9fিà¦\82à¦\9a আছে ।',
+'customcssprotected' => 'এই CSS পৃষ্ঠা সম্পাদনা কৰাৰ অধিকাৰ আপোনাৰ নাই, কাৰণ ইয়াত আন সদস্যৰ ব্যক্তিগত পছন্দসমূহত আছে ।',
+'customjsprotected' => 'à¦\8fà¦\87 à¦\9cাভালিপিৰ à¦ªà§\83ষà§\8dঠা à¦¸à¦®à§\8dপাদনা à¦\95ৰাৰ à¦\85ধিà¦\95াৰ à¦\86পà§\8bনাৰ à¦¨à¦¾à¦\87, à¦\95াৰণ à¦\87য়াত à¦\86ন à¦¸à¦¦à¦¸à§\8dযৰ à¦¬à§\8dযà¦\95à§\8dতিà¦\97ত à¦ªà¦\9bনà§\8dদসমà§\82হত আছে ।',
 'ns-specialprotected' => 'বিশেষ পৃষ্ঠা সম্পাদিত কৰিব নোৱাৰি।',
-'titleprotected' => "[[User:$1|$1]] à¦¸à¦¦à¦¸à§\8dযà¦\9cনà§\87 à¦\8fà¦\87 à¦¶à¦¿à§°à§\8bণামাৰ লিখনী লিখা ৰোধ কৰিছে ।
+'titleprotected' => "[[User:$1|$1]] à¦¸à¦¦à¦¸à§\8dযà¦\9cনà§\87 à¦\8fà¦\87 à¦¶à¦¿à§°à§\8bনাণমাৰ লিখনী লিখা ৰোধ কৰিছে ।
 ইয়াৰ কাৰণ হৈছে ''$2'' ।",
 'filereadonlyerror' => '"$1" ফাইলটোক পৰিৱৰ্তন কৰিব পৰা নগ\'ল কাৰণ ফাইল ভঁৰাল "$2" কেৱল পঢ়িব পৰা অৱস্থাত আছে।
 যিজন প্ৰশাসকে এইটো বন্ধ কৰিছে তেওঁ দৰ্শোৱা কাৰণ হৈছে: \'\'$3\'\'।',
 'invalidtitle-knownnamespace' => 'নামস্থান "$2" আৰু পাঠ্য "$3" থকা অবৈধ শিৰোনাম',
 'invalidtitle-unknownnamespace' => 'অজ্ঞাত নামস্থান সংখ্যা $1 আৰু পাঠ্য "$2" থকা অবৈধ শিৰোনাম',
+'exception-nologin' => 'প্ৰৱেশ কৰা নাই',
+'exception-nologin-text' => 'এই পৃষ্ঠা অথবা কামৰ বাবে আপুনি প্ৰৱেশ কৰা বাধ্যতামূলক',
 
 # Virus scanner
 'virus-badscanner' => "ভুল কনফিগাৰেচন: অজ্ঞাত ভাইৰাছ স্কেনাৰ: ''$1''",
@@ -509,9 +513,9 @@ $2',
 
 আপুনি বেনামী ভাবেও {{SITENAME}} ব্যৱহাৰ কৰিব পাৰে, অথবা আকৌ সেই একে বা বেলেগ নামেৰে [[Special:UserLogin|প্ৰৱেশ]] কৰিব পাৰে।
 মন কৰিব যে যেতিয়ালৈকে আপোনাৰ ব্ৰাউজাৰৰ অস্থায়ী-স্মৃতি (cache memory) খালী নকৰে, তেতিয়ালৈকে কিছুমান পৃষ্ঠাত আপুনি প্ৰৱেশ কৰা বুলি দেখুৱাই থাকিব পাৰে।",
-'welcomecreation' => '== à¦¸à§\8dবাà¦\97তম, $1! ==
+'welcomecreation' => '== à¦\86দৰিà¦\9bà§\8bà¦\81, $1! ==
 আপোনাৰ সদস্যভুক্তি হৈ গ’ল ।
-[[Special:Preferences|{{SITENAME}}  পচন্দসমূহ]]ত আপোনাৰ পচন্দমতে ব্যক্তিগতকৰণ কৰি লবলৈ নাপাহৰে যেন ।',
+[[Special:Preferences|{{SITENAME}}ৰ পছন্দসমূহ]]ত আপোনাৰ পছন্দমতে ব্যক্তিগতকৰণ কৰি ল’বলৈ নাপাহৰে যেন ।',
 'yourname' => 'সদস্যনাম:',
 'yourpassword' => 'আপোনাৰ গুপ্তশব্দ',
 'yourpasswordagain' => 'গুপ্তশব্দ আকৌ এবাৰ লিখক',
@@ -527,8 +531,8 @@ $2',
 'logout' => 'প্ৰস্থান',
 'userlogout' => 'প্ৰস্থান',
 'notloggedin' => 'প্ৰৱেশ কৰা নাই',
-'nologin' => 'আপোনাৰ একাউণ্ট নাই নেকি? $1',
-'nologinlink' => 'নতà§\81ন à¦¸à¦¦à¦¸à§\8dযভà§\81à¦\95à§\8dতি à¦\95ৰক',
+'nologin' => "ৱিকিপিডিয়াত আপোনাৰ একাউণ্ট নাই নেকি? তেনে '''$1'''।",
+'nologinlink' => 'নতà§\81ন à¦\8fà¦\95াà¦\89ণà§\8dà¦\9f à¦\96à§\8bলক',
 'createaccount' => 'সভ্যভুক্ত হবলৈ',
 'gotaccount' => "আপুনি সদস্য হয়নে? '''$1'''",
 'gotaccountlink' => 'প্ৰৱেশ',
@@ -541,9 +545,9 @@ $2',
 'loginerror' => 'প্ৰৱেশ সমস্যা',
 'createaccounterror' => "একাউন্ট সৃষ্টি কৰা নহ'ল: $1",
 'nocookiesnew' => 'আপোনাৰ সদস্যভুক্তি হৈ গৈছে, কিন্তু আপুনি প্ৰৱেশ কৰা নাই।
-{{SITENAME}} ত প্ৰৱেশ কৰিবলৈ কুকি সক্ৰিয় থাকিব লাগিব।
+{{SITENAME}}ত প্ৰৱেশ কৰিবলৈ কুকি সক্ৰিয় থাকিব লাগিব।
 আপুনি কুকি নিষ্ক্ৰিয় কৰি থৈছে।
-অনুগ্ৰহ কৰি কুকি সক্ৰিয় কৰক, আৰু তাৰ পাছত আপোনাৰ সদস্যনামেৰে প্ৰৱেশ কৰক।',
+অনুগ্ৰহ কৰি কুকি সক্ৰিয় কৰক, আৰু তাৰ পাছত আপোনাৰ সদস্য নামেৰে প্ৰৱেশ কৰক।',
 'nocookieslogin' => '{{SITENAME}} ত প্ৰৱেশ কৰিবলৈ কুকি সক্ৰিয় থাকিব লাগিব।
 আপুনি কুকি নিষ্ক্ৰিয় কৰি থৈছে।
 অনুগ্ৰহ কৰি কুকি সক্ৰিয় কৰক, আৰু তাৰ পাছত চেষ্টা কৰক।',
@@ -551,7 +555,7 @@ $2',
 আপোনাৰ কুকি সক্ৰিয় ৰাখক, এই পৃষ্ঠা ৰি-লোড কৰি পুনৰ চেষ্টা কৰক ।',
 'noname' => 'আপুনি বৈধ সদস্যনাম এটা দিয়া নাই।',
 'loginsuccesstitle' => "প্ৰৱেশ অনুমোদিত হ'ল",
-'loginsuccess' => "''' à¦\86পà§\81নি {{SITENAME}}ত \"\$1\" à¦¨à¦¾à¦®à§\87ৰà§\87 à¦ªà§\8dৰবেশ কৰিলে '''",
+'loginsuccess' => "''' à¦\86পà§\81নি {{SITENAME}}ত \"\$1\" à¦¨à¦¾à¦®à§\87ৰà§\87 à¦ªà§\8dৰৱেশ কৰিলে '''",
 'nosuchuser' => '"$1" নামৰ কোনো সদস্য নাই।
 সদস্য নাম আকাৰ সংবেদনশীল।
 আপোনাৰ বানানতো চাওক, বা  [[Special:UserLogin/signup|নতুন সদস্যভুক্তি কৰক]]।',
@@ -565,18 +569,18 @@ $2',
 'password-name-match' => "আপোনাৰ গুপ্তশব্দ আৰু আপোনাৰ সদস্যনাম বেলেগ হ'ব লাগিব",
 'password-login-forbidden' => 'এই সদস্যনাম আৰু গুপ্তশব্দৰ ব্যৱহাৰ নিষিদ্ধ কৰা হৈছে ।',
 'mailmypassword' => 'ই-মেইলত গুপ্তশব্দ পঠিয়াওক',
-'passwordremindertitle' => '{{SITENAME}} ৰ কাৰণে নতুন অস্থায়ী গুপ্তশব্দ',
+'passwordremindertitle' => '{{SITENAME}}ৰ কাৰণে নতুন অস্থায়ী গুপ্তশব্দ',
 'passwordremindertext' => 'কোনোবাই (হয়তো আপুনি, $1 আই-পি ঠিকনাৰ পৰা)
-{{SITENAME}} ত ব্যৱহাৰ কৰিবলৈ নতুন গুপ্তশব্দ বিছাৰিছে ($4) ।
+{{SITENAME}}ত ব্যৱহাৰ কৰিবলৈ নতুন গুপ্তশব্দৰ বাবে অনুৰোধ কৰিছে ($4) ।
 "$2" সদস্যজনৰ কাৰণে এতিয়া নতুন গুপ্তশব্দ হৈছে "$3" ।
 আপুনি এতিয়া প্ৰৱেশ কৰক আৰু গুপ্তশব্দতো সলনি কৰক।
-à¦\86পà§\8bনাৰ à¦\85সà§\8dথায়à§\80 à¦\97à§\81পà§\8dতশবà§\8dদ {{PLURAL:$5|à¦\8fদিনৰ|$5 à¦¦à¦¿à¦¨à§°}} à¦­à¦¿à¦¤à§°à¦¤ à§°à¦¦ কৰা হ\'ব ।
+à¦\86পà§\8bনাৰ à¦\85সà§\8dথায়à§\80 à¦\97à§\81পà§\8dতশবà§\8dদ {{PLURAL:$5|à¦\8fদিনৰ|$5 à¦¦à¦¿à¦¨à§°}} à¦­à¦¿à¦¤à§°à¦¤ à¦¬à¦¾à¦¤à¦¿à¦² কৰা হ\'ব ।
 
 যদি আপুনি এই অনুৰোধ কৰা নাছিল অথবা যদি আপোনাৰ গুপ্তশব্দতো মনত আছে আৰু তাক সলাব নিবিছাৰে, তেনেহলে আপুনি এই বাৰ্তাতো অৱজ্ঞা কৰিব পাৰে আৰু আপোনাৰ আগৰ গুপ্তশব্দটোকে ব্যৱহাৰ কৰি থাকিব পাৰে।',
 'noemail' => '"$1" সদস্যজনৰ কোনো ই-মেইল ঠিকনা সঞ্চিত কৰা নাই।',
 'noemailcreate' => 'আপুনি এটা সঠিক ই-মেইল ঠিকনা দিব লাগিব',
-'passwordsent' => '"$1" à§° à¦\87-মà§\87à¦\87ল à¦ à¦¿à¦\95নাত à¦¨à¦¤à§\81ন à¦\97à§\81পà§\8dতশবà§\8dদ à¦\8fà¦\9fা à¦ªà¦ à§\8bৱা à¦¹à§\88à¦\9bà§\87। à¦\85নà§\81à¦\97à§\8dৰহ à¦\95ৰি à¦¸à§\87য়া à¦ªà§\8bৱাৰ à¦ªà¦¾à¦\9bত à¦ªà§\81নৰ à¦ªà§\8dৰবেশ কৰক।',
-'blocked-mailpassword' => 'আপোনাৰ IP ঠিকনাৰ পৰা সম্পাদনা কৰা বাৰণ কৰা হৈছে, এনে অৱস্থাত দুৰ্ব্যৱহাৰ ৰোধ কৰিবলৈ গুপ্তশব্দ পুনঃউদ্ধাৰ কৰা সুবিধাতো বাতিল কৰা হৈছে।',
+'passwordsent' => '"$1" à§° à¦\87-মà§\87à¦\87ল à¦ à¦¿à¦\95নাত à¦¨à¦¤à§\81ন à¦\97à§\81পà§\8dতশবà§\8dদ à¦\8fà¦\9fা à¦ªà¦ à§\8bৱা à¦¹à§\88à¦\9bà§\87। à¦\85নà§\81à¦\97à§\8dৰহ à¦\95ৰি à¦¸à§\87য়া à¦ªà§\8bৱাৰ à¦ªà¦¾à¦\9bত à¦ªà§\81নৰ à¦ªà§\8dৰৱেশ কৰক।',
+'blocked-mailpassword' => 'আপোনাৰ আইপি ঠিকনাৰ পৰা সম্পাদনা কৰা বাৰণ কৰা হৈছে, এনে অৱস্থাত দুৰ্ব্যৱহাৰ ৰোধ কৰিবলৈ গুপ্তশব্দ পুনঃউদ্ধাৰ কৰা সুবিধাতো বাতিল কৰা হৈছে।',
 'eauthentsent' => 'সঞ্চিত ই-মেইল ঠিকনাত নিশ্চিতকৰণ ই-মেইল এখন পঠোৱা হৈছে।
 আৰু অন্যান্য ই-মেইল পঠোৱাৰ আগতে, আপোনাৰ সদস্যতাৰ নিশ্চিত কৰিবলৈ সেই ই-মেইলত দিয়া নিৰ্দেশনা আপুনি অনু্সৰণ কৰিব লাগিব।',
 'throttled-mailpassword' => 'যোৱা {{PLURAL:$1|এঘণ্টাত|$1 ঘণ্টাত}} গুপ্তশব্দ পুনৰুদ্ধাৰ স্মাৰক পঠিওৱা হৈছে ।
@@ -596,18 +600,18 @@ $2',
 'accountcreated' => "একাউণ্ট সৃষ্টি কৰা হ'ল",
 'accountcreatedtext' => "$1ৰ কাৰণে সদস্য একাউণ্ট সৃষ্টি কৰা হ'ল।",
 'createaccount-title' => '{{SITENAME}}ৰ কাৰণে একাউণ্ট সৃষ্টি কৰক।',
-'createaccount-text' => 'আপোনাৰ ই-মেইল ঠিকনাৰ কাৰণে {{SITENAME}} ($4) ত "$2" নামৰ কোনোবাই, "$3" গুপ্তশব্দ দি সদস্যভুক্তি কৰিছে। অনুগ্ৰহ কৰি আপুনি প্ৰৱেশ কৰক আৰু গুপ্তশব্দটো সলনি কৰক।
+'createaccount-text' => 'আপোনাৰ ই-মেইল ঠিকনাৰ কাৰণে {{SITENAME}} ($4)ত "$2" নামৰ কোনোবাই, "$3" গুপ্তশব্দ দি সদস্যভুক্তি কৰিছে। অনুগ্ৰহ কৰি আপুনি প্ৰৱেশ কৰক আৰু গুপ্তশব্দটো সলনি কৰক।
 
 যদি এইয়া ভুলতে হৈছে, তেনেহলে আপুনি এই বাৰ্তাটো অবজ্ঞা কৰিব পাৰে ।',
-'usernamehasherror' => 'সদসà§\8dযনামত à¦¹à§\87à¦\9aà§\8dâ\80\8c à¦\86à¦\96ৰ থাকিব নোৱাৰে',
+'usernamehasherror' => 'সদসà§\8dযনামত à¦¹à§\87à¦\9aà§\8dâ\80\8c à¦\9aিহà§\8dন থাকিব নোৱাৰে',
 'login-throttled' => 'আপুনি স‍ম্প্ৰতি অজস্ৰবাৰ লগ্‌-ইনৰ প্ৰয়াস কৰিছে ।
 অনুগ্ৰহ কৰি কিছু সময় অপেক্ষা কৰি আকৌ প্ৰয়াস কৰক ।',
 'login-abort-generic' => 'আপোনাৰ প্ৰৱেশ অসফল হৈছে- বাতিল কৰা হ’ল',
 'loginlanguagelabel' => 'ভাষা: $1',
-'suspicious-userlogout' => 'à¦\86পà§\8bনাৰ à¦ªà§\8dৰসà§\8dথানৰ à¦\85নà§\81ৰà§\8bধ à¦¬à¦¾à¦¤à¦¿à¦² à¦\95ৰা à¦¹à§\88à¦\9bà§\87 à¦\95াৰণ à¦¹à¦¯à¦¼à¦¤à§\8b à¦\86পà§\8bনাৰ à¦¬à§\8dৰাà¦\89à¦\9cাৰ à¦\85সমà§\8dপà§\82ৰà§\8dণ à¦¨à¦¤à§\81বা à¦ªà§\82বৰà§\8dবতী তথ্য পঠাইছে ।',
+'suspicious-userlogout' => 'à¦\86পà§\8bনাৰ à¦ªà§\8dৰসà§\8dথানৰ à¦\85নà§\81ৰà§\8bধ à¦¬à¦¾à¦¤à¦¿à¦² à¦\95ৰা à¦¹à§\88à¦\9bà§\87 à¦\95াৰণ à¦¹à¦¯à¦¼à¦¤à§\8b à¦\86পà§\8bনাৰ à¦¬à§\8dৰাà¦\89à¦\9cাৰ à¦\85সমà§\8dপà§\82ৰà§\8dণ à¦¨à¦¤à§\81বা à¦ªà§\82ৰà§\8dবৱতী তথ্য পঠাইছে ।',
 
 # E-mail sending
-'php-mail-error-unknown' => 'পি.এইছ.পি মেইল() কাৰ্যত অজ্ঞাত ত্ৰুটি ।',
+'php-mail-error-unknown' => 'পি.এইছ.পি মেইল () কাৰ্যত অজ্ঞাত ত্ৰুটি ।',
 'user-mail-no-addy' => 'ই-মেইল ঠিকনা নোহোৱাকৈয়ে ই-মেইল পঠোৱাৰ চেষ্টা কৰা হৈছে ।',
 
 # Change password dialog
@@ -617,7 +621,7 @@ $2',
 'resetpass_header' => 'গুপ্তশব্দ সলনি কৰক',
 'oldpassword' => 'পুৰণি গুপ্তশব্দ:',
 'newpassword' => 'নতুন গুপ্তশব্দ:',
-'retypenew' => 'নতà§\81ন à¦\97à§\81পà§\8dতশবà§\8dদ à¦\86à¦\95à§\8c à¦\9fাà¦\87প à¦\95ৰক',
+'retypenew' => 'নতà§\81ন à¦\97à§\81পà§\8dতশবà§\8dদ à¦\86à¦\95à§\8c à¦²à¦¿à¦\96ক',
 'resetpass_submit' => 'গুপ্তশব্দ বহাওক আৰু প্ৰৱেশ কৰক',
 'resetpass_success' => 'আপোনাৰ গুপ্তশব্দ সফলতাৰে সলনি কৰা হৈছে, এতিয়া আপুনি প্ৰৱেশ কৰি আছে...',
 'resetpass_forbidden' => 'গুপ্তশব্দ সলনি কৰিব নোৱাৰি',
@@ -639,7 +643,7 @@ $2',
 'passwordreset-capture' => 'ফলাফল ই-মেইলখন চাওক ?',
 'passwordreset-capture-help' => "আপুনি এই ঘৰটো চিহ্নিত কৰিলে এই ই-মেইল (আৰু অস্থায়ী গুপ্তশব্দ) আপুনি দেখা পোৱাৰ লগতে সদস্যজনলৈও পঠোৱা হ'ব।",
 'passwordreset-email' => 'ই-মেইল ঠিকনা:',
-'passwordreset-emailtitle' => '{{SITENAME}} ত একাউণ্টৰ সবিশেষ তথ্য আছে ।',
+'passwordreset-emailtitle' => '{{SITENAME}}ত একাউণ্টৰ সবিশেষ তথ্য আছে ।',
 'passwordreset-emailtext-ip' => 'কোনোবাই (IP ঠিকনা $1 ৰ পৰা সম্ভৱত: আপুনিয়েই) {{SITENAME}} ($4) ৰ বাবে আপোনাৰ একাউণ্টৰ সবিশেষ তথ্য বিচাৰিছিল । ই-পত্ৰ ঠিকনাটোৰ লগত এই সদস্যৰ {{PLURAL:$3|একাউণ্ট|একাউণ্টবোৰ}} জড়িত হৈ আছে ।
 
 $2
@@ -660,7 +664,7 @@ $2
 'changeemail' => 'ই-মেইল ঠিকনা সলনি কৰক',
 'changeemail-header' => 'একাউণ্টৰ ই-মেইল ঠিকনা সলনি কৰক',
 'changeemail-text' => 'আপোনাৰ ই-মেইল ঠিকনা সলাবলৈ এই প্ৰপত্ৰখন পূৰাওক । এই সালসলনি নিশ্চিত কৰিবলৈ আপোনাৰ গুপ্তশব্দ দিব লাগিব ।',
-'changeemail-no-info' => 'এই পৃষ্ঠা প্ৰত্যক্ষ্ ভাৱে ঢুকি পাবলৈ আপুনি প্ৰৱেশ কৰিব লাগিব ।',
+'changeemail-no-info' => 'এই পৃষ্ঠা প্ৰত্যক্ষ্ ভাৱে ঢুকি পাবলৈ আপুনি প্ৰৱেশ কৰিব লাগিব ।',
 'changeemail-oldemail' => 'বৰ্তমানৰ ই-মেইল ঠিকনা:',
 'changeemail-newemail' => 'নতুন ই-মেইল ঠিকনা:',
 'changeemail-none' => '(নাই)',
@@ -673,9 +677,9 @@ $2
 'italic_sample' => 'হেলনীয়া পাঠ্য',
 'italic_tip' => 'বেঁকা পাঠ্য',
 'link_sample' => 'শিৰোনামা সংযোগ',
-'link_tip' => 'ভিতৰà§\81ৱা সংযোগ',
+'link_tip' => 'à¦\86ভà§\8dযনà§\8dতৰà§\80ণ সংযোগ',
 'extlink_sample' => 'http://www.example.com শীৰ্ষক সংযোগ',
-'extlink_tip' => 'বহিà¦\83সংযোগ (http:// উপসৰ্গ মনত ৰাখিব)',
+'extlink_tip' => 'বাহà§\8dযিà¦\95 সংযোগ (http:// উপসৰ্গ মনত ৰাখিব)',
 'headline_sample' => 'শিৰোনামা পাঠ্য',
 'headline_tip' => 'দ্বিতীয় স্তৰৰ শিৰোনামা',
 'nowiki_sample' => 'নসজোৱা পাঠ্য ইয়াত অন্তৰ্ভুক্ত কৰক',
@@ -719,7 +723,7 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 আপুনি যেতিয়ালৈ [[Special:Preferences|সদস্য পছন্দ]] পৃষ্ঠাত আপোনাৰ ই-মেইল ঠিকনা নিদিয়ে তেতিয়ালৈ ’সদস্যক ই-মেইল পঠাওক’ সুবিধাতো ব্যৱহাৰ কৰিব নোৱাৰিব, আৰু আপোনাক এয়া কৰিবলৈ ৰোধ কৰা হোৱা নাই ।
 আপোনাৰ এতিয়াৰ আই-পি ঠিকনা হল $3, আৰু আপোনাৰ অবৰোধ ক্ৰমিক হৈছে #$5 ।
 এই বিষয়ে হোৱা আলোচনাত ইয়াৰ সবিশেষ সদৰী কৰে যেন।",
-'autoblockedtext' => "আপোনাৰ আই-পি ঠিকনা নিজে নিজে অৱৰোধিত হৈছে, কাৰণ ইয়াক কোনোবাই ব্যৱহাৰ কৰি থাকোতে $1 ৰ দ্বাৰা অৱৰোধ কৰা হৈছে।
+'autoblockedtext' => "আপোনাৰ আই-পি ঠিকনা নিজে নিজে অৱৰোধিত হৈছে, কাৰণ ইয়াক কোনোবাই ব্যৱহাৰ কৰি থাকোতে $1ৰ দ্বাৰা অৱৰোধ কৰা হৈছে।
 ইয়াৰ বাবে দিয়া কাৰণ হৈছে:
 
 :''$2''
@@ -728,11 +732,11 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 * অৱৰোধ সমাপ্তি: $6
 * অৱৰোধ কৰা হৈছে: $7
 
-à¦\86পà§\81নি à¦\8fà¦\87 à¦\85বৰà§\8bধৰ à¦¬à¦¿à¦·à¦¯à¦¼à§\87 à¦\86লà§\8bà¦\9aনা à¦\95ৰিবলà§\88 $1 à¦¬à¦¾ [[{{MediaWiki:Grouppage-sysop}}|পà§\8dৰবনà§\8dধক]]ৰ লগত সম্পৰ্ক স্থাপন কৰিব পাৰে ।
+à¦\86পà§\81নি à¦\8fà¦\87 à¦\85বৰà§\8bধৰ à¦¬à¦¿à¦·à¦¯à¦¼à§\87 à¦\86লà§\8bà¦\9aনা à¦\95ৰিবলà§\88 $1 à¦¬à¦¾ [[{{MediaWiki:Grouppage-sysop}}|পà§\8dৰশাসক]]ৰ লগত সম্পৰ্ক স্থাপন কৰিব পাৰে ।
 
 আপুনি যেতিয়ালৈ [[Special:Preferences|সদস্য পছন্দ]] পৃষ্ঠাত আপোনাৰ ই-মেইল ঠিকনা নিদিয়ে তেতিয়ালৈ ’সদস্যক ই-মেইল পঠাওক’ সুবিধাতো ব্যৱহাৰ কৰিব নোৱাৰে। আপোনাক এয়া কৰিবলৈ ৰোধ কৰা হোৱা নাই ।
-à¦\85পà§\8bনাৰ à¦\8fতিয়াৰ IP à¦ à¦¿à¦\95না à¦¹à§\88à¦\9bà§\87 $3, à¦\85ৰà§\81 à¦\86পà§\8bনাৰ à¦\85বৰোধ ক্ৰমিক হৈছে $5 ।
-এই বিষয়ে হোৱা আলোচনাত ইয়াক ব্যৱহাৰ কৰিবলৈ অনুৰোধ কৰা হল।",
+à¦\86পà§\8bনাৰ à¦\8fতিয়াৰ à¦\86à¦\87 à¦ªà¦¿ à¦ à¦¿à¦\95না à¦¹à§\88à¦\9bà§\87 $3, à¦\86ৰà§\81 à¦\86পà§\8bনাৰ à¦\85ৱৰোধ ক্ৰমিক হৈছে $5 ।
+এই বিষয়ে হোৱা আলোচনাত ইয়াক ব্যৱহাৰ কৰিবলৈ অনুৰোধ কৰা হল।",
 'blockednoreason' => 'কাৰণ দিয়া নাই',
 'whitelistedittext' => 'সম্পাদনা কৰিবলৈ $1 কৰক ।',
 'confirmedittext' => 'সম্পাদনা কৰাৰ আগতে আপুনি আপোনাৰ ই-মেইল ঠিকনাটো প্ৰমানিত কৰিব লাগিব।
@@ -743,8 +747,8 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 'loginreqlink' => 'প্ৰৱেশ',
 'loginreqpagetext' => 'অন্যান্য পৃষ্ঠা চাবলৈ আপুনি $1 কৰিব লাগিব।',
 'accmailtitle' => "গুপ্তশব্দ পঠোৱা হ'ল।",
-'accmailtext' => "[[User talk:$1|$1]]-ৰ কাৰণে যাদৃচ্ছিক ভাৱে উৎপন্ন কৰা গুপ্তশব্দ $2-লৈ পঠোৱা হ'ল । 
-এই নতুন একাউন্টত প্ৰৱেশ কৰি ''[[Special:ChangePassword|change password]]'' পৃষ্ঠাখনত গুপ্তশব্দতো সলনি কৰি ল’ব পাৰিব ।",
+'accmailtext' => "[[User talk:$1|$1]]-ৰ কাৰণে যাদৃচ্ছিক ভাৱে উৎপন্ন কৰা গুপ্তশব্দ $2লৈ পঠোৱা হ'ল । 
+এই নতুন একাউন্টত প্ৰৱেশ কৰি ''[[Special:ChangePassword|গুপ্তশব্দ সলনি কৰক]]'' পৃষ্ঠাখনত গুপ্তশব্দতো সলনি কৰি ল’ব পাৰিব ।",
 'newarticle' => '(নতুন)',
 'newarticletext' => "আপুনি বিচৰা প্ৰবন্ধটো বিচাৰি পোৱা নগ'ল।
 
@@ -773,7 +777,7 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 * '''Google Chrome:''' ''Ctrl-Shift-R'' টিপক (এপল মেকৰ বাবে ''⌘-Shift-R'' )
 * '''Internet Explorer:''' ''Ctrl'' ধৰি ৰাখি ''Refresh'' ক্লিক কৰক, অথবা ''Ctrl-F5'' টিপক
 * '''Konqueror: ''' ''Reload'' ক্লিক কৰক বা ''F5'' টিপক
-* '''Opera:''' ''Tools→Preferences'' ত গৈ Cache মচি পেলাওক",
+* '''Opera:''' ''Tools→Preferences'' ত গৈ কেচ্‌ মচি পেলাওক",
 'usercssyoucanpreview' => "'''পৰামৰ্শ:''' \"{{int:showpreview}}\" বুটাম ব্যৱহাৰ কৰি সাঁচি ৰখাৰ আগতে আপোনাৰ নতুন CSS পৰীক্ষা কৰক ।",
 'userjsyoucanpreview' => "'''পৰামৰ্শ:''' \"{{int:showpreview}}\" বুটাম ব্যৱহাৰ কৰি সাঁচি ৰখাৰ আগতে আপোনাৰ নতুন জাভালিপি পৰীক্ষা কৰক ।",
 'usercsspreview' => "'''মনত ৰাখিব আপুনি কেৱল আপোনাৰ ব্যৱহাৰকাৰী CSS  প্ৰাকদৰ্শন কৰিছে ।''' 
@@ -796,7 +800,7 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 তথাপি যদি নহয় [[Special:UserLogout|প্ৰস্থান]] কৰি আকৌ প্ৰৱেশ কৰক ।",
 'session_fail_preview_html' => "'''দুঃখিত! চেচন ডাটা হেৰাই যোৱাৰ কাৰণে আপোনাৰ সম্পাদনা কৃতকাৰ্য্য নহ'ল ।'''
 
-''যিহেতু {{SITENAME}}-ত নগ্ন এইচ-টি-এম-এল (raw HTML) সক্ৰিয় কৰা আছে, জাভাস্ক্ৰিপ্ট (Javasccript) আক্ৰমণৰ বিৰুদ্ধে সতৰ্কতাৰ খাতিৰত খচৰা আঁৰ কৰা হৈছে ।''
+''যিহেতু {{SITENAME}}ত নগ্ন এইচ-টি-এম-এল (raw HTML) সক্ৰিয় কৰা আছে, জাভাস্ক্ৰিপ্ট আক্ৰমণৰ বিৰুদ্ধে সতৰ্কতাৰ স্বাৰ্থত খচৰা আঁৰ কৰা হৈছে ।''
 
 '''এইয়া যদি এটা বৈধ সম্পাদনা আছিল, তেনে আকৌ চেষ্টা কৰক ।'''
 তথাপি যদি নহয় [[Special:UserLogout|প্ৰস্থান]] কৰি আকৌ প্ৰৱেশ কৰক ।",
@@ -806,8 +810,8 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 'edit_form_incomplete' => "'''এই সম্পাদনাৰ কিছু অংশ চাৰ্ভাৰলৈ নগ’ল; আপোনাৰ সম্পাদনা ঠিকে আছেনে পৰীক্ষা কৰি পুনৰ চেষ্টা কৰক ।'''",
 'editing' => '$1 সম্পাদনা',
 'creating' => '$1 পৃষ্ঠাখন আপুনি সৃষ্টি কৰি আছে',
-'editingsection' => '$1 (বিভাà¦\97) à¦¸à¦®à§\8dপাদনা à¦\95ৰি à¦¥à¦\95া à¦¹à§\88ছে',
-'editingcomment' => '$1 (নতà§\81ন à¦¬à¦¿à¦­à¦¾à¦\97) à¦¸à¦®à§\8dপাদনা à¦\95ৰি à¦¥à¦\95া à¦¹à§\88ছে',
+'editingsection' => '$1 (à¦\85নà§\81à¦\9aà§\8dà¦\9bà§\87দ) à¦¸à¦®à§\8dপাদনা à¦\95ৰি à¦\86ছে',
+'editingcomment' => '$1 (নতà§\81ন à¦\85নà§\81à¦\9aà§\8dà¦\9bà§\87দ) à¦¸à¦®à§\8dপাদনা à¦\95ৰি à¦\86ছে',
 'editconflict' => 'সম্পাদনা দ্বন্দ: $1',
 'explainconflict' => "আপুনি সম্পাদনা আৰম্ভ কৰাৰ পাছত আন কোনোবাই এই পৃষ্ঠাখন সলনি কৰিলে।
 পাঠ্য-স্থানৰ উপৰ ভাগত এই পৃষ্ঠাৰ প্ৰচলিত পাঠ্য দিয়া হৈছে।
@@ -851,8 +855,8 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 'template-semiprotected' => '(অৰ্ধ-সুৰক্ষিত)',
 'hiddencategories' => 'এই পৃষ্ঠা {{PLURAL:$1|১-টা নিহিত শ্ৰেণীৰ|$1-টা নিহিত শ্ৰেণীৰ}} সদস্য:',
 'nocreatetitle' => 'পৃষ্ঠা সৃষ্টি সীমিত',
-'nocreatetext' => '{{SITENAME}} ত নতুন পৃষ্ঠা সৃষ্টিৰ ক্ষমতা সীমাবদ্ধ কৰা হৈছে।
-আপুনি ঘূৰি গৈ বৰ্তমানে থকা পৃষ্ঠা এটা সম্পাদনা কৰিব পাৰে, বা [[Special:UserLogin| নতুন সদস্যভৰ্তি হওক/ প্ৰবেশ কৰক]] ।',
+'nocreatetext' => '{{SITENAME}}ত নতুন পৃষ্ঠা সৃষ্টিৰ ক্ষমতা সীমাবদ্ধ কৰা হৈছে।
+আপুনি ঘূৰি গৈ বৰ্তমানে থকা পৃষ্ঠা এটা সম্পাদনা কৰিব পাৰে, বা [[Special:UserLogin|নতুন সদস্যভৰ্তি হওক/ প্ৰবেশ কৰক]] ।',
 'nocreate-loggedin' => 'নতুন পৃষ্ঠা সৃষ্টি কৰিবলৈ আপোনাৰ অনুমতি নাই ।',
 'sectioneditnotsupported-title' => 'অনুচ্ছেদ সম্পাদনাৰ সমৰ্থন নাই',
 'sectioneditnotsupported-text' => 'এই পৃষ্ঠাত অনুচ্ছেদ সম্পাদনাৰ সমৰ্থন নাই',
@@ -864,7 +868,7 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 এই পৃষ্ঠাটো সম্পাদনা কৰা উচিত হব নে নহয় আপুনি বিবেচনা কৰি চাওক।
 এই পৃষ্ঠাটো বিলোপ আৰু স্থানান্তৰ কৰাৰ অভিলেখ আপোনাৰ সুবিধাৰ্থে ইয়াত দিয়া হৈছে।",
 'moveddeleted-notice' => "এই পৃষ্ঠা বাতিল কৰা হৈছে ।
-পà§\83ষà§\8dঠাà¦\9fিৰ à¦¬à¦¾à¦¤à¦¿à¦² à¦\86ৰà§\81 à¦¸à§\8dথানানà§\8dতৰ à¦\95ৰা à¦²'à¦\97 তলত দিয়া হ'ল ।",
+পà§\83ষà§\8dঠাà¦\9fিৰ à¦¬à¦¾à¦¤à¦¿à¦² à¦\86ৰà§\81 à¦¸à§\8dথানানà§\8dতৰ à¦\95ৰা à¦\85ভিলà§\87à¦\96 তলত দিয়া হ'ল ।",
 'log-fulllog' => 'সম্পূৰ্ণ অভিলেখ চাওক',
 'edit-hook-aborted' => 'হুকৰ দ্বাৰা সম্পাদনা প্ৰত্যাখ্যান কৰা হৈছে ।
 ইয়াৰ কোনো ব্যাখ্যা নাই ।',
@@ -906,30 +910,30 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 
 # Account creation failure
 'cantcreateaccounttitle' => "একাউন্ট সৃষ্টি কৰা নহ'ব",
-'cantcreateaccount-text' => "IP ঠিকনা ('''$1''') ৰ পৰা একাউণ্ট সৃষ্টিত [[User:$3|$3]] এ বাধা প্ৰদান কৰিছে ।
+'cantcreateaccount-text' => "আই পি ঠিকনা ('''$1''')ৰ পৰা একাউণ্ট সৃষ্টিত [[User:$3|$3]]’য়ে বাধা প্ৰদান কৰিছে ।
 
-$3 à¦\8f à¦\86à¦\97বঢ়à§\8bৱা à¦\87য়াৰ à¦\95াৰণ à¦¹â\80\99ল ''$2''",
+$3 à¦¯à¦¼à§\87 à¦\86à¦\97বঢ়à§\8bৱা à¦\87য়াৰ à¦\95াৰণ à¦¹à§\88à¦\9bà§\87 ''$2''",
 
 # History pages
 'viewpagelogs' => 'এই পৃষ্ঠাৰ অভিলেখ চাওক ।',
 'nohistory' => 'এই পৃষ্ঠাৰ কোনো সম্পাদনাৰ ইতিহাস নাই।',
-'currentrev' => 'শà§\87হতà§\80য়া à¦­à¦¾à¦·à§\8dয',
+'currentrev' => 'শà§\87হতà§\80য়া à¦¸à¦\82সà§\8dà¦\95ৰণ',
 'currentrev-asof' => '$1 অনুযায়ী বৰ্তমান সংস্কৰণ',
-'revisionasof' => '$1 ৰ সংস্কৰণ',
-'revision-info' => '$1-লৈ $2-এ কৰা সংশোধন',
+'revisionasof' => '$1ৰ সংস্কৰণ',
+'revision-info' => '$1-লৈ $2 কৰা সংশোধন',
 'previousrevision' => '← আগৰ সংশোধন',
 'nextrevision' => 'সদ্যসংশোধিত',
 'currentrevisionlink' => 'শেহতীয়া ভাষ্য',
 'cur' => 'বৰ্তমান',
 'next' => 'পৰৱৰ্তী',
-'last' => 'পà§\82ৰà§\8dববৰ্তী',
+'last' => 'পà§\82ৰà§\8dবৱৰ্তী',
 'page_first' => 'প্ৰথম',
 'page_last' => 'অন্তিম',
 'histlegend' => "পাৰ্থক্য বাছনি: পাৰ্থক্য চাবলৈ সংকলনবোৰৰ সম্মুখত থকা ৰেডিঅ' বুটামবোৰ বাচনী কৰি এণ্টাৰ টিপক অথবা একেবাৰে তলত দিয়া বুটামতো ক্লিক কৰক <br />
 লিজেণ্ড: '''({{int:cur}})''' = বৰ্তমানৰ সংকলনৰ লগত পাৰ্থক্য,
 '''({{int:last}})''' = আগৰ সংকলনৰ লগত পাৰ্থক্য, '''{{int:minoreditletter}}'' = অগুৰুত্বপূৰ্ণ সম্পাদনা।",
 'history-fieldset-title' => 'ইতিহাসত অনুসন্ধান কৰক',
-'history-show-deleted' => 'মাথà§\8bà¦\81 à¦®à¦\9aি à¦ªà§\87লà§\8bৱা',
+'history-show-deleted' => 'মাথà§\8bà¦\81 à¦¬à¦¿à¦²à§\8bপ à¦\95ৰা',
 'histfirst' => 'আটাইতকৈ পুৰণি',
 'histlast' => 'শেহতীয়া',
 'historysize' => '({{PLURAL:$1|১ বাইট|$1 বাইট}})',
@@ -946,42 +950,42 @@ $3 এ আগবঢ়োৱা ইয়াৰ কাৰণ হ’ল ''$2''",
 # Revision deletion
 'rev-deleted-comment' => "(সম্পাদনা সাৰাংশ আঁতৰোৱা হ'ল)",
 'rev-deleted-user' => '(সদস্যনাম আঁতৰোৱা হ’ল)',
-'rev-deleted-event' => "(ল'à¦\97 à¦\95াৰà§\8dয্য আঁতৰোৱা হ'ল)",
+'rev-deleted-event' => "(à¦\85ভিলà§\87à¦\96 à¦\95াৰ্য আঁতৰোৱা হ'ল)",
 'rev-deleted-user-contribs' => "[সদস্যনাম বা আই-পি ঠিকনা আঁতৰোৱা হ'ল - সম্পাদনা বৰঙনিসমূহৰ পৰা আঁৰ কৰা হৈছে]",
 'rev-deleted-text-permission' => "পৃষ্ঠাৰ এই সংশোধনটি '''বিলোপ''' কৰা হ'ল ।
-সবিশà§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¦\85বলà§\81পà§\8dতি à¦²'à¦\97ত]",
+সবিশà§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¦\85বলà§\81পà§\8dতি à¦\85ভিলà§\87à¦\96ত]",
 'rev-deleted-text-unhide' => "পৃষ্ঠাখনৰ এই সংশোধনটো '''বিলোপ''' কৰা হৈছে | 
-সবিশà§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¦\85ৱলà§\81পà§\8dতি à¦²â\80\99à¦\97]ত
+সবিশà§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¦\85ৱলà§\81পà§\8dতি à¦\85ভিলà§\87à¦\96ত]
 আপুনি মন কৰিলে [$1 এই সংশোধনটো চাব পাৰে]।",
 'rev-suppressed-text-unhide' => "পৃষ্ঠাখনৰ এই সংশোধনটো '''নিবাৰণ''' কৰা হৈছে ।
-সবিশà§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¦¨à¦¿à¦¬à¦¾à§°à¦£ à¦²â\80\99à¦\97ত]।
+সবিশà§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¦¨à¦¿à¦¬à¦¾à§°à¦£ à¦\85ভিলà§\87à¦\96ত]।
 আপুনি মন কৰিলে [$1 এই সংশোধনটো চাব পাৰে]।",
 'rev-deleted-text-view' => "পৃষ্ঠাৰ এই সংশোধনটো '''বিলোপ''' কৰা হ'ল ।
-à¦\86পà§\81নি à¦\8fà¦\87à¦\9fà§\8b à¦\9aাব à¦ªà¦¾à§°à§\87; à¦¸à¦¬à¦¿à¦¶à§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¦\85বলà§\81পà§\8dতি à¦²â\80\99à¦\97ত]।",
+à¦\86পà§\81নি à¦\8fà¦\87à¦\9fà§\8b à¦\9aাব à¦ªà¦¾à§°à§\87; à¦¸à¦¬à¦¿à¦¶à§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¦\85বলà§\81পà§\8dতি à¦\85ভিলà§\87à¦\96ত]।",
 'rev-suppressed-text-view' => "পৃষ্ঠাৰ এই সংশোধনটো '''নিবাৰণ''' কৰা হ’ল।
-à¦\86পà§\81নি à¦\8fà¦\87à¦\9fà§\8b à¦\9aাব à¦ªà¦¾à§°à§\87; à¦¸à¦¬à¦¿à¦¶à§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¦¨à¦¿à¦¬à¦¾à§°à¦£ à¦²â\80\99à¦\97ত]।",
+à¦\86পà§\81নি à¦\8fà¦\87à¦\9fà§\8b à¦\9aাব à¦ªà¦¾à§°à§\87; à¦¸à¦¬à¦¿à¦¶à§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¦¨à¦¿à¦¬à¦¾à§°à¦£ à¦\85ভিলà§\87à¦\96ত]।",
 'rev-deleted-no-diff' => "আপুনি এই পাৰ্থক্য চাব নোৱাৰে কাৰণ এটা সংস্কৰণ '''বিলোপ''' কৰা হৈছে ।
-সবিশà§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¦\85ৱলà§\81পà§\8dতি à¦²'à¦\97] à¦¤ ।",
+সবিশà§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¦\85ৱলà§\81পà§\8dতি à¦\85ভিলà§\87à¦\96ত]।",
 'rev-suppressed-no-diff' => "আপুনি এই পাৰ্থক্য চাব নোৱাৰে কাৰণ এটা সংস্কৰণ '''বিলোপ''' কৰা হৈছে ।",
 'rev-deleted-unhide-diff' => "এই পাৰ্থক্যৰ এটা সংস্কৰণ '''বিলোপ''' কৰা হৈছে ।
-বিসà§\8dতাৰিত à¦\95াৰণ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¦\85ৱলà§\81পà§\8dতি à¦²â\80\99à¦\97] à¦¤ পাব ।
+বিসà§\8dতাৰিত à¦\95াৰণ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¦\85ৱলà§\81পà§\8dতি à¦\85ভিলà§\87à¦\96ত] পাব ।
 আপুনি মন কৰিলে [$1 এই পাৰ্থক্য চাওক] ।",
 'rev-suppressed-unhide-diff' => "এই পাৰ্থক্যৰ এটা সংশোধন '''নিবাৰণ''' কৰা হৈছে ।
-সবিশà§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¦¨à¦¿à¦¬à¦¾à§°à¦£ à¦²â\80\99à¦\97ত] ।
+সবিশà§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¦¨à¦¿à¦¬à¦¾à§°à¦£ à¦\85ভিলà§\87à¦\96ত] ।
 আপুনি মন কৰিলে [$1 এই সংশোধনটো চাব পাৰে] ।",
 'rev-deleted-diff-view' => "এই পাৰ্থক্যৰ এটা সংশোধন '''বিলোপ''' কৰা হ'ল ।
-à¦\86পà§\81নি à¦\8fà¦\87 à¦ªà¦¾à§°à§\8dথà¦\95à§\8dয à¦\9aাব à¦ªà¦¾à§°à§\87; à¦¸à¦¬à¦¿à¦¶à§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¦\85ৱলà§\81পà§\8dতি à¦²â\80\99à¦\97ত]",
+à¦\86পà§\81নি à¦\8fà¦\87 à¦ªà¦¾à§°à§\8dথà¦\95à§\8dয à¦\9aাব à¦ªà¦¾à§°à§\87; à¦¸à¦¬à¦¿à¦¶à§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à¦\85ৱলà§\81পà§\8dতি à¦\85ভিলà§\87à¦\96ত]",
 'rev-suppressed-diff-view' => "এই পাৰ্থক্যৰ এটা সংশোধন '''নিবাৰণ''' কৰা হ’ল ।
-à¦\86পà§\81নি à¦\8fà¦\87 à¦ªà¦¾à§°à§\8dথà¦\95à§\8dয à¦\9aাব à¦ªà¦¾à§°à§\87; à¦¸à¦¬à¦¿à¦¶à§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¦¨à¦¿à¦¬à¦¾à§°à¦£ à¦²â\80\99à¦\97ত] ।",
+à¦\86পà§\81নি à¦\8fà¦\87 à¦ªà¦¾à§°à§\8dথà¦\95à§\8dয à¦\9aাব à¦ªà¦¾à§°à§\87; à¦¸à¦¬à¦¿à¦¶à§\87ষ à¦ªà¦¾à¦¬ [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} à¦¨à¦¿à¦¬à¦¾à§°à¦£ à¦\85ভিলà§\87à¦\96ত] ।",
 'rev-delundel' => 'দেখুৱাওক/নেদেখুৱাব',
 'rev-showdeleted' => 'দেখুৱাওক',
-'revisiondelete' => 'সংকলন বিলোপন কৰক / পুণৰ্স্থাপিত কৰক',
+'revisiondelete' => 'সংকলন বিলোপ কৰক / পুণৰ স্থাপন কৰক',
 'revdelete-nooldid-title' => 'লক্ষ্য সংশোধন যুক্তিসংগত নহয়',
 'revdelete-nooldid-text' => 'কামটো কৰাৰ বাবে আপুনি লক্ষ্য সংশোধন নিৰ্বাচন কৰা নাই, নিৰ্বাচিত সংশোধন নাই, অথবা আপুনি বৰ্তমানৰ সংশোধন লুকুৱাব বিচাৰিছে ।',
-'revdelete-nologtype-title' => 'à¦\95à§\8bনà§\8b à¦²â\80\99à¦\97 প্ৰকাৰ দিয়া হোৱা নাই',
-'revdelete-nologtype-text' => 'à¦\8fà¦\87 à¦\95ামà¦\9fà§\8b à¦\95ৰাৰ à¦¬à¦¾à¦¬à§\87 à¦\86পà§\81নি à¦\95à§\8bনà§\8b à¦²â\80\99à¦\97 প্ৰকাৰ নিৰ্বাচন কৰা নাই ।',
-'revdelete-nologid-title' => 'à¦\85যà§\81à¦\95à§\8dতিসà¦\82à¦\97ত à¦²â\80\99à¦\97 ভৰ্তি',
-'revdelete-nologid-text' => 'à¦\86পà§\81নি à¦\8fà¦\87à¦\9fà§\8b à¦\95ৰাৰ à¦¬à¦¾à¦¬à§\87 à¦\95à§\8bনà§\8b à¦²â\80\99à¦\97 à¦­à§°à§\8dতি à¦¨à¦¿à§°à§\8dবাà¦\9aন à¦\95ৰা à¦¨à¦¾à¦\87 à¦\85থবা à¦¨à¦¿à§°à§\8dবাà¦\9aিত à¦²â\80\99à¦\97 ভৰ্তিটো নাই ।',
+'revdelete-nologtype-title' => 'à¦\95à§\8bনà§\8b à¦\85ভিলà§\87à¦\96 প্ৰকাৰ দিয়া হোৱা নাই',
+'revdelete-nologtype-text' => 'à¦\8fà¦\87 à¦\95ামà¦\9fà§\8b à¦\95ৰাৰ à¦¬à¦¾à¦¬à§\87 à¦\86পà§\81নি à¦\95à§\8bনà§\8b à¦\85ভিলà§\87à¦\96  প্ৰকাৰ নিৰ্বাচন কৰা নাই ।',
+'revdelete-nologid-title' => 'à¦\85যà§\81à¦\95à§\8dতিসà¦\82à¦\97ত à¦\85ভিলà§\87à¦\96 ভৰ্তি',
+'revdelete-nologid-text' => 'à¦\86পà§\81নি à¦\8fà¦\87à¦\9fà§\8b à¦\95ৰাৰ à¦¬à¦¾à¦¬à§\87 à¦\95à§\8bনà§\8b à¦\85ভিলà§\87à¦\96 à¦­à§°à§\8dতি à¦¨à¦¿à§°à§\8dবাà¦\9aন à¦\95ৰা à¦¨à¦¾à¦\87 à¦\85থবা à¦¨à¦¿à§°à§\8dবাà¦\9aিত à¦\85ভিলà§\87à¦\96 ভৰ্তিটো নাই ।',
 'revdelete-no-file' => 'নিৰ্ধাৰিত ফাইলটি নাই ।',
 'revdelete-show-file-confirm' => 'আপুনি "<nowiki>$1</nowiki>"  ফাইলৰ বিলোপ কৰা কৰা সংশোধন $2 তাৰিখৰ পৰা $3 সময়ত চাব বিচাৰিছে নেকি?',
 'revdelete-show-file-submit' => 'হয়',
@@ -1077,7 +1081,7 @@ $1",
 
 # Diffs
 'history-title' => '"$1" ৰ সংশোধনৰ ইতিহাস',
-'difference-title' => '"$1"ৰ à¦¬à¦¿à¦­à¦¿à¦¨à§\8dন à¦¸à¦\82ধà§\8bধনৰ à¦®à¦¾à¦\9cৰ à¦ªà¦¾à§°à§\8dথà¦\95à§\8dযসমà§\82হ',
+'difference-title' => '"$1"ৰ à¦¬à¦¿à¦­à¦¿à¦¨à§\8dন à¦¸à¦\82শà§\8bধনসমà§\82হৰ à¦®à¦¾à¦\9cৰ à¦ªà¦¾à§°à§\8dথà¦\95à§\8dয',
 'difference-title-multipage' => '"$1" আৰু "$2" পৃষ্ঠাৰ মাজৰ পাৰ্থক্যসমূহ',
 'difference-multipage' => '(পৃষ্ঠাসমূহৰ মাজত তফাৎ)',
 'lineno' => '$1 নং শাৰীঃ',
@@ -1492,13 +1496,12 @@ $1",
 'upload_directory_missing' => 'আপলোড ডিৰেক্টৰি ($1)  বিচাৰি পোৱা নগ’ল আৰু ৱেবচাৰ্ভাৰৰ দ্বাৰা তৈয়াৰ কৰিব পৰা নগ’ল ।',
 'upload_directory_read_only' => 'আপল’ড ডিৰেক্টৰি ($1) ৱেবচাৰ্ভাৰৰ দ্বাৰা লিখনযোগ্য নহয় ।',
 'uploaderror' => 'আপল’ডত সমস্যা হৈছে',
-'upload-recreate-warning' => "'''সতৰà§\8dà¦\95বাণà§\80: à¦\8fà¦\87 à¦¨à¦¾à¦®à§° à¦\8fà¦\9fা à¦«à¦¾à¦\87ল à¦¬à¦¿à¦²à§\8bপ à¦¬à¦¾ à¦¸à§\8dথানানà§\8dতত কৰা হৈছে । '''
+'upload-recreate-warning' => "'''সতৰà§\8dà¦\95বাণà§\80: à¦\8fà¦\87 à¦¨à¦¾à¦®à§° à¦\8fà¦\9fা à¦«à¦¾à¦\87ল à¦¬à¦¿à¦²à§\8bপ à¦¬à¦¾ à¦¸à§\8dথানানà§\8dতৰ কৰা হৈছে । '''
 
 এই পৃষ্ঠাৰ অৱলুপ্তি ল’গ আৰু স্থানান্তৰ ল’গ আপোনাৰ সুবিধাৰ্থে তলত দিয়া হ’ল:",
-'uploadtext' => "ফাইল আপল’ড কৰাৰ বাবে তলৰ প্ৰপত্ৰ ব্যৱহাৰ কৰক ।
-পূৰ্বে আপল’ড কৰা ফাইল চাবলৈ বা অনুসন্ধান কৰিবলৈ [[Special:FileList|আপল’ড কৰা ফাইলৰ তালিকা]] লৈ যাওক । (পুনঃ)আপল’ড কৰা ফাইলৰ নাম [[Special:Log/upload|আপল’ড ল’গ]] ত ভৰ্তি হয়, বিলোপ কৰা ফাইলৰ নাম [[Special:Log/delete|অৱলুপ্তি ল’গ]] ত পাব ।
+'uploadtext' => "ফাইল আপল’ড কৰাৰ বাবে তলৰ প্ৰপত্ৰ ব্যৱহাৰ কৰক। পূৰ্বে আপল’ড কৰা ফাইল চাবলৈ বা অনুসন্ধান কৰিবলৈ [[Special:FileList|আপল’ড কৰা ফাইলৰ তালিকা]] লৈ যাওক । (পুনঃ) আপল’ড কৰা ফাইলৰ নাম [[Special:Log/upload|আপল’ড অভিলেখত]] ভৰ্তি হয়, বিলোপ কৰা ফাইলৰ নাম [[Special:Log/delete|অৱলুপ্তি অভিলেখত]] পাব ।
 
-à¦\95à§\8bনà§\8b à¦ªà§\83ষà§\8dঠাত à¦\9bবি à¦¯à§\8bà¦\97 à¦¦à¦¿à¦¬à¦²à§\88 তলৰ প্ৰপত্ৰসমূহত থকা সংযোগ ব্যৱহাৰ কৰক: 
+à¦\95à§\8bনà§\8b à¦ªà§\83ষà§\8dঠাত à¦\9aিতà§\8dৰ à¦¬à¦¾ à¦«à¦¾à¦\87ল à¦¸à¦¨à§\8dনিবিষà§\8dà¦\9f à¦\95ৰিবৰ à¦¬à¦¾à¦¬à§\87 তলৰ প্ৰপত্ৰসমূহত থকা সংযোগ ব্যৱহাৰ কৰক: 
 * '''<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>'''",
@@ -1599,8 +1602,8 @@ $1",
 'upload-description' => 'ফাইলৰ বৰ্ণনা',
 'upload-options' => "আপল'ড বিকল্পসমূহ",
 'watchthisupload' => 'এই ফাইল লক্ষ্য কৰক',
-'filewasdeleted' => 'এই নামৰ এটা ফাইল পূৰ্বতে আপলড কৰি বিলোপ কৰা হৈছে ।
-ইয়াক পুনৰ আপলড কৰাৰ আগেয়ে আপুনি $1 পৰীক্ষা কৰা উচিত ।',
+'filewasdeleted' => 'এই নামৰ এটা ফাইল পূৰ্বতে আপলড কৰি বিলোপ কৰা হৈছে ।
+ইয়াক পুনৰ আপলড কৰাৰ আগেয়ে আপুনি $1 পৰীক্ষা কৰা উচিত ।',
 'filename-bad-prefix' => "আপুনি আপলোড কৰা ফাইলৰ নামটো '''\"\$1\"''' দি আৰম্ভ হৈছে, যিটো ডিজিটেল কেমেৰাই স্বয়ংক্ৰিয়ভাৱে দিয়ে আৰু সি ব্যাখ্যামূলক নহয় ।
 অনুগ্ৰহ কৰি আপোনাৰ ফাইলটোৰ বাবে এটা ব্যাখ্যামূলক নাম বাছি লওক ।",
 'upload-success-subj' => "আপলোড সফল হ'ল",
@@ -1609,7 +1612,7 @@ $1",
 'upload-failure-msg' => '[$2] ৰ পৰা আপুনি কৰা আপল’ডত এটা সমস্যাই দেখা দিছে:
 
 $1',
-'upload-warning-subj' => 'আপলড সতৰ্কীকৰণ',
+'upload-warning-subj' => 'আপলড সতৰ্কীকৰণ',
 'upload-warning-msg' => '[$2] ৰ পৰা আপুনি কৰা আপল’ডত এটা সমস্যাই দেখা দিছে । আপুনি ইয়াক সমাধান কৰিবৰ বাবে [[Special:Upload/stash/$1|আপল’ড প্ৰপত্ৰ]] লৈ ঘূৰি যাব পাৰে ।',
 
 'upload-proto-error' => 'ভুল প্ৰ’ট’ক’ল',
@@ -1853,7 +1856,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'statistics-articles' => 'বিষয়বস্তুৰ পৃষ্ঠা',
 'statistics-pages' => 'পৃষ্ঠাসমূহ',
 'statistics-pages-desc' => 'কথা-বতৰা পৃষ্ঠা, পুন:নিৰ্দেশিত পৃষ্ঠা আদি সহ এই ৱিকিৰ সকলো পৃষ্ঠা',
-'statistics-files' => 'আপলড কৰা ফাইলসমূহ',
+'statistics-files' => 'আপলড কৰা ফাইলসমূহ',
 'statistics-edits' => '{{SITENAME}} স্থাপন কৰাৰেপৰা পৃষ্ঠা সম্পাদনাসমূহ',
 'statistics-edits-average' => 'প্ৰতি পৃষ্ঠাৰ গড় সম্পাদনা',
 'statistics-views-total' => 'সৰ্বমুঠ প্ৰদৰ্শন',
@@ -1865,7 +1868,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'statistics-mostpopular' => 'সৰ্বোচ্চ দৰ্শন কৰা পৃষ্ঠাসমূহ',
 
 'disambiguations' => 'দ্ব্যৰ্থতা-দূৰীকৰণ পৃষ্ঠাসমূহলৈ সংযোগ থকা পৃষ্ঠাসমূহ',
-'disambiguationspage' => 'Template:দ্ব্যৰ্থতা-দূৰীকৰণ',
+'disambiguationspage' => 'সাঁচ:দ্ব্যৰ্থতা-দূৰীকৰণ',
 'disambiguations-text' => "তলৰ পৃষ্ঠাখনসমূহত '''দ্ব্যৰ্থতা দূৰীকৰণ পৃষ্ঠা'''ৰ লগত সংযোগ আছে ।
 ইয়ে উপযুক্ত পৃষ্ঠাৰ লগত সংযোগ কৰিব পাৰে ।
 [[MediaWiki:Disambiguationspage]]ৰ পৰা সংযোগ থকা কোনো সাঁচ ব্যৱহাৰ কৰিলে এখন পৃষ্ঠাক দ্ব্যৰ্থতা দূৰীকৰণ পৃষ্ঠা হিছাপে গণ্য কৰা হ’ব ।",
@@ -1946,7 +1949,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'newpages-username' => 'সদস্যনাম:',
 'ancientpages' => 'আটাইতকৈ পুৰণি পৃষ্ঠাসমূহ',
 'move' => 'স্থানান্তৰ কৰক',
-'movethispage' => 'এই পৃষ্ঠাটো স্থানান্তৰিত কৰক',
+'movethispage' => 'এই পৃষ্ঠাটো স্থানান্তৰ কৰক',
 'unusedimagestext' => 'তলৰ ফাইলসমূহ আছে কিন্তু কোনো পৃষ্ঠাৰ অন্তৰ্গত নহয় ।
 অনুগ্ৰহ কৰি মন কৰিব যে প্ৰত্যক্ষ URL থকা কোনো পৃষ্ঠা আন ৱেবচাইটৰ লগত সংযোগ হৈ থাকিব পাৰে, সেয়ে সক্ৰিয়ভাৱে ব্যৱহাৰ হৈ থকা সত্ত্বেও ইয়াত তালিকাভুক্ত হ’ব পাৰে ।',
 'unusedcategoriestext' => 'তলৰ শ্ৰেণী পৃষ্ঠাসমূহৰ অস্তিত্ব আছে, কিন্তু আন কোনো পৃষ্ঠা বা শ্ৰেণীৰদ্বাৰা ব্যৱহৃত নহয় ।',
@@ -1992,7 +1995,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'allpagessubmit' => 'যাওক',
 'allpagesprefix' => 'এই উপশব্দৰে আৰম্ভ হোৱা পৃষ্ঠা দেখুৱাওক:',
 'allpagesbadtitle' => 'আপুনি দিয়া পৃষ্ঠাটোৰ শিৰোণামা অবৈধ বা তাত এটা আন্তৰ্ভাষিক বা আন্তৰ্ৱিকি উপসৰ্গ আছে । ইয়াত এক বা ততোধিক বৰ্ণ থাকিব পাৰে যাক শিৰোণামাত ব্যৱহাৰ কৰিব নোৱাৰি ।',
-'allpages-bad-ns' => '{{SITENAME}} ত কোনো "$1" নামস্থান নাই ।',
+'allpages-bad-ns' => '{{SITENAME}}ত কোনো "$1" নামস্থান নাই ।',
 'allpages-hide-redirects' => 'পুনঃনিৰ্দেশ লুকুৱাওক',
 
 # SpecialCachedPage
@@ -2015,7 +2018,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'sp-deletedcontributions-contribs' => 'বৰঙণিসমূহ',
 
 # Special:LinkSearch
-'linksearch' => 'বহিà¦\83সংযোগ অনুসন্ধান',
+'linksearch' => 'বাহà§\8dযিà¦\95 সংযোগ অনুসন্ধান',
 'linksearch-pat' => 'অনুসন্ধান আৰ্হি:',
 'linksearch-ns' => 'নামস্থান:',
 'linksearch-ok' => 'অনুসন্ধান',
@@ -2028,7 +2031,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 # Special:ListUsers
 'listusersfrom' => 'ইয়াৰে আৰম্ভ হোৱা ব্যৱহাৰকাৰী সকল দেখুৱাওক:',
 'listusers-submit' => 'দেখুৱাওক',
-'listusers-noresult' => 'ব্যৱহাৰকাৰী বিচাৰি পোৱা নগল',
+'listusers-noresult' => 'ব্যৱহাৰকাৰী বিচাৰি পোৱা নগল',
 'listusers-blocked' => '(বাৰণ কৰা)',
 
 # Special:ActiveUsers
@@ -2102,7 +2105,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'watchlist' => 'মোৰ লক্ষ্য-তালিকা',
 'mywatchlist' => 'মোৰ লক্ষ্য-তালিকা',
 'watchlistfor2' => '$1 ৰ কাৰণে($2)',
-'nowatchlist' => 'à¦\86পà§\8bনাৰ à¦¨à¦¿à§°à§\80à¦\95à§\8dষণ à¦¤à¦¾à¦²à¦¿à¦\95াত à¦\95à§\8bনà§\8b à¦\86à¦\87à¦\9fà§\87ম নাই ।',
+'nowatchlist' => 'à¦\86পà§\8bনাৰ à¦¨à¦¿à§°à§\80à¦\95à§\8dষণ à¦¤à¦¾à¦²à¦¿à¦\95াত à¦\8fà¦\95à§\8b নাই ।',
 'watchlistanontext' => 'আপোনাৰ লক্ষ্য তালিকাত থকা বস্তুবোৰ চাবলৈ বা সম্পাদনা কৰিবলৈ অনুগ্ৰহ কৰি $1 কৰক।',
 'watchnologin' => 'প্ৰৱেশ কৰা নাই',
 'watchnologintext' => 'নিৰীক্ষণ তালিকা পৰিৱৰ্তন কৰিবলৈ আপুনি আগতে [[Special:UserLogin|প্ৰৱেশ]] কৰিব লাগিব ।',
@@ -2160,7 +2163,7 @@ $NEWPAGE
 আপুনি এই পৃষ্ঠাখন নোচোৱালৈকে আন সালসলনিৰ কোনো জাননী দিয়া নহ’ব ।
 আপুনি আপোনাৰ লক্ষ্য-তালিকাৰ পৃষ্ঠাবোৰৰ জাননী ফ্লেগ পূৰ্বৰ অৱস্থালৈও ঘূৰাই নিব পাৰে ।
 
-আপোনাৰ {{SITENAME}} জাননী ব্যৱস্থা
+আপোনাৰ {{SITENAME}} জাননী ব্যৱস্থা
 
 --
 আপোনাৰ ই-মেইল জাননী ছেটিং সলনি কৰিবলৈ এইখন চাওক
@@ -2325,14 +2328,14 @@ $UNWATCHURL
 'undeleteviewlink' => 'দেখুৱাওক',
 'undeletereset' => 'পূৰ্বৰ অৱস্থালৈ লৈ যাওক',
 'undeleteinvert' => 'নিৰ্বাচন ওলোটা কৰক',
-'undeletecomment' => ' কাৰণ:',
+'undeletecomment' => 'কাৰণ:',
 'undeletedrevisions' => '{{PLURAL:$1|১টা সংশোধন|$1টা সংশোধন}} পুনৰুদ্ধাৰ কৰা হৈছে',
-'undeletedrevisions-files' => '{{PLURAL:$1|১টা সংশোধন|$1 টা সংশোধন}} আৰু {{PLURAL:$2|১টা ফাইল|$2 টা ফাইল}} পুনৰুদ্ধাৰ কৰা হ’ল',
-'undeletedfiles' => '{{PLURAL:$1|১à¦\9fা à¦«à¦¾à¦\87ল|$1 à¦\9fা à¦«à¦¾à¦\87ল}} পুনৰুদ্ধাৰ কৰা হ’ল',
+'undeletedrevisions-files' => '{{PLURAL:$1|১টা সংশোধন|$1 টা সংশোধন}} আৰু {{PLURAL:$2|১ খন নথি|$2 খন নথি}} পুনৰুদ্ধাৰ কৰা হ’ল',
+'undeletedfiles' => '{{PLURAL:$1|১à¦\96ন à¦¨à¦¥à¦¿|$1 à¦\96ন à¦¨à¦¥à¦¿}} পুনৰুদ্ধাৰ কৰা হ’ল',
 'cannotundelete' => 'অৱলুপ্তি বিফল হৈছে;
 আন কোনোবাই আগতেই ইয়াক বিলোপ কৰিছে ।',
 'undeletedpage' => "'''$1ক পুনৰুদ্ধাৰ কৰা হৈছে'''
-à¦\85নà§\81à¦\97à§\8dৰহ à¦\95ৰি à¦¶à§\87হতà§\80য়া à¦\85ৱলà§\81পà§\8dতি à¦\86ৰà§\81 à¦ªà§\81নৰà§\81দà§\8dধাৰৰ à¦¬à¦¾à¦¬à§\87 [[Special:Log/delete|à¦\85ৱলà§\81পà§\8dতি à¦²â\80\99à¦\97]] চাওক ।",
+à¦\85নà§\81à¦\97à§\8dৰহ à¦\95ৰি à¦¶à§\87হতà§\80য়া à¦\85ৱলà§\81পà§\8dতি à¦\86ৰà§\81 à¦ªà§\81নৰà§\81দà§\8dধাৰৰ à¦¬à¦¾à¦¬à§\87 [[Special:Log/delete|à¦\85ৱলà§\81পà§\8dতি à¦\85ভিলà§\87à¦\96]] চাওক ।",
 'undelete-header' => 'শেহতীয়াকৈ বিলোপ কৰা পৃষ্ঠাসমূহৰ বাবে [[Special:Log/delete|অৱলুপ্তি ল’গ]] চাওক ।',
 'undelete-search-title' => 'বিলোপ কৰা পৃষ্ঠা অনুসন্ধান কৰক',
 'undelete-search-box' => 'বিলোপ কৰা পৃষ্ঠা অনুসন্ধান কৰক',
@@ -2340,8 +2343,8 @@ $UNWATCHURL
 'undelete-search-submit' => 'সন্ধান',
 'undelete-no-results' => 'অৱলুপ্তি আৰ্কাইভত কোনো মিল থকা পৃষ্ঠা পোৱা নগ’ল ।',
 'undelete-filename-mismatch' => '$1 সময়-মোহৰ থকা ফাইল সংশোধনটো বিলোপ কৰিব পৰা নাযাব: ফাইলৰ নাম মিলা নাই',
-'undelete-bad-store-key' => '$1 à¦¸à¦®à¦¯à¦¼à¦\9aিহà§\8dনৰ à¦¬à¦¿à¦²à§\8bপ à¦\95ৰা à¦«à¦¾à¦\87ল à¦¸à¦\82শà§\8bধনà§\80 à¦\98à§\82ৰাà¦\87 à¦\86নিব à¦¨à§\8bৱাৰি: à¦¬à¦¿à¦²à§\8bপ à¦\95ৰাৰ à¦\86à¦\97à§\87য়à§\87à¦\87 à¦«à¦¾à¦\87লà¦\9fà§\8b নাছিল ।',
-'undelete-cleanup-error' => 'à¦\85বà§\8dযৱহà§\83ত à¦\86ৰà§\8dà¦\95াà¦\87ভ à¦«à¦¾à¦\87ল "$1" বিলোপ কৰাত সমস্যা হৈছে ।',
+'undelete-bad-store-key' => '$1 à¦¸à¦®à¦¯à¦¼à¦\9aিহà§\8dনৰ à¦¬à¦¿à¦²à§\8bপ à¦\95ৰা à¦¨à¦¥à¦¿ à¦¸à¦\82শà§\8bধনà§\80 à¦\98à§\82ৰাà¦\87 à¦\86নিব à¦¨à§\8bৱাৰি: à¦¬à¦¿à¦²à§\8bপ à¦\95ৰাৰ à¦\86à¦\97à§\87য়à§\87à¦\87 à¦¨à¦¥à¦¿à¦\96ন নাছিল ।',
+'undelete-cleanup-error' => 'à¦\85বà§\8dযৱহà§\83ত à¦\86ৰà§\8dà¦\95াà¦\87ভ à¦¨à¦¥à¦¿ "$1" বিলোপ কৰাত সমস্যা হৈছে ।',
 'undelete-missing-filearchive' => 'ফাইল আৰ্কাইভ ID $1 পুনৰুদ্ধাৰ কৰিব পৰা নগ’ল কাৰণ এইটো তথ্যভঁৰালত নাই ।
 এইটো সম্ভৱত: আগতেই পুনৰুদ্ধাৰ কৰা হৈছে ।',
 'undelete-error' => 'পৃষ্ঠা অবিলোপনত ত্ৰুটি হৈছে',
@@ -2349,7 +2352,7 @@ $UNWATCHURL
 'undelete-error-long' => 'ফাইলটোৰ অৱলুপ্তি বাতিল কৰাত কিছু ত্ৰুটি হৈছে:
 
 $1',
-'undelete-show-file-confirm' => 'à¦\86পà§\81নি "<nowiki>$1</nowiki>"  à¦«à¦¾à¦\87লৰ বিলোপ কৰা কৰা সংশোধন $2 তাৰিখৰ $3 সময়ত চাব বিচাৰিছে নেকি ?',
+'undelete-show-file-confirm' => 'à¦\86পà§\81নি "<nowiki>$1</nowiki>"  à¦¨à¦¥à¦¿à¦\96ন বিলোপ কৰা কৰা সংশোধন $2 তাৰিখৰ $3 সময়ত চাব বিচাৰিছে নেকি ?',
 'undelete-show-file-submit' => 'হয়',
 
 # Namespace form on various pages
@@ -2362,9 +2365,9 @@ $1',
 
 # Contributions
 'contributions' => 'সদস্যৰ বৰঙণিসমূহ',
-'contributions-title' => '$1-ৰ বৰঙণিসমূহ',
+'contributions-title' => '$1ৰ বৰঙণিসমূহ',
 'mycontris' => 'মোৰ বৰঙণিসমূহ',
-'contribsub2' => '$1 ৰ কাৰণে($2)',
+'contribsub2' => '$1 ৰ কাৰণে ($2)',
 'nocontribs' => 'এই গুণসমূহৰ লগত মিল থকা কোনো সালসলনি পোৱা নগ’ল ।',
 'uctop' => '(ওপৰত)',
 'month' => 'এই মাহৰ পৰা (আৰু আগৰ):',
@@ -2380,9 +2383,9 @@ $1',
 'sp-contributions-talk' => 'আলোচনা',
 'sp-contributions-userrights' => 'সদস্যৰ অধিকাৰ ব্যৱস্থাপনা',
 'sp-contributions-blocked-notice' => 'এই সদস্যজনক সদ্যহতে বাৰণ কৰা হৈছে ।
-à¦\86পà§\8bনাৰ à¦¸à§\81বিধাৰà§\8dথà§\87 à¦¶à§\87হতà§\80য়া à¦ªà§\8dৰতিবনà§\8dধà¦\95 à¦²â\80\99à¦\97 ভৰ্তি তলত দিয়া হ’ল:',
+à¦\86পà§\8bনাৰ à¦¸à§\81বিধাৰà§\8dথà§\87 à¦¶à§\87হতà§\80য়া à¦ªà§\8dৰতিবনà§\8dধà¦\95 à¦\85ভিলà§\87à¦\96 ভৰ্তি তলত দিয়া হ’ল:',
 'sp-contributions-blocked-notice-anon' => 'এই আই.পি. ঠিকনা সদ্যহতে বাৰণ কৰা হৈছে ।
-à¦\86পà§\8bনাৰ à¦¸à§\81বিধাৰà§\8dথà§\87 à¦¶à§\87হতà§\80য়া à¦ªà§\8dৰতিবনà§\8dধà¦\95 à¦²â\80\99à¦\97 ভৰ্তি তলত দিয়া হ’ল:',
+à¦\86পà§\8bনাৰ à¦¸à§\81বিধাৰà§\8dথà§\87 à¦¶à§\87হতà§\80য়া à¦ªà§\8dৰতিবনà§\8dধà¦\95 à¦\85ভিলà§\87à¦\96 ভৰ্তি তলত দিয়া হ’ল:',
 'sp-contributions-search' => 'বৰঙণিসমূহৰ কাৰণে অনুসন্ধান কৰক',
 'sp-contributions-username' => 'আই.পি. ঠিকনা অথবা ব্যৱহাৰকৰ্তাৰ নাম:',
 'sp-contributions-toponly' => 'কেৱল সাম্প্ৰতিক সংস্কৰণৰ অন্তৰ্গত সম্পাদনাসমূহ দেখুৱাওক',
@@ -2390,19 +2393,19 @@ $1',
 
 # What links here
 'whatlinkshere' => 'এই পৃষ্ঠা ব্যৱহাৰ কৰিছে...',
-'whatlinkshere-title' => '"$1"-লৈ সংযোগ কৰা পৃষ্ঠাসমূহ',
+'whatlinkshere-title' => '"$1"লৈ সংযোজিত পৃষ্ঠাসমূহ',
 'whatlinkshere-page' => 'পৃষ্ঠা:',
 'linkshere' => "এই পৃষ্ঠাটো '''[[:$1]]''' ৰ লগত সংযোজিত:",
 'nolinkshere' => "'''[[:$1]]''' ৰ লগত কোনো পৃষ্ঠা সংযোজিত নহয়।",
-'nolinkshere-ns' => 'নিৰ্বাচিত নামস্থানৰ কোনো পৃষ্ঠাৰ পৰা [[:$1]]-লৈ সংযোগ নাই ।',
+'nolinkshere-ns' => 'নিৰ্বাচিত নামস্থানৰ কোনো পৃষ্ঠাৰ পৰা [[:$1]]লৈ সংযোগ নাই ।',
 'isredirect' => 'পুনঃনিৰ্দেশনা পৃষ্ঠা',
 'istemplate' => 'অন্তৰ্ভুক্ত কৰক',
-'isimage' => 'ফাà¦\87ল সংযোগ',
+'isimage' => 'নথিৰ সংযোগ',
 'whatlinkshere-prev' => '{{PLURAL:$1|পিছৰ|পিছৰ $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|আগৰ|আগৰ $1}}',
 'whatlinkshere-links' => '← সংযোগকেইটা',
 'whatlinkshere-hideredirs' => '$1 পুননিৰ্দেশনাসমূহ',
-'whatlinkshere-hidetrans' => '$1 ট্ৰেন্সক্লুস্বন-সমূহ',
+'whatlinkshere-hidetrans' => '$1 ট্ৰেন্সক্লুস্বনসমূহ',
 'whatlinkshere-hidelinks' => '$1 টা সংযোগ',
 'whatlinkshere-hideimages' => '$1 চিত্ৰ সংযোগসমূহ',
 'whatlinkshere-filters' => 'ছেকনী',
@@ -2430,12 +2433,12 @@ $1',
 ** একাধিক একাউণ্টৰ অপব্যৱহাৰ
 ** অগ্ৰহণযোগ্য সদস্যনাম',
 'ipb-hardblock' => 'এই আই.পি. ঠিকনাৰ পৰা প্ৰৱেশ কৰা সদস্যসকলক সম্পাদনা কৰাৰ পৰা ৰোধ কৰক',
-'ipbcreateaccount' => 'একাউণ্ট সৃষ্টি ৰোধ কৰক',
+'ipbcreateaccount' => 'à¦\8fà¦\95াà¦\89ণà§\8dà¦\9f à¦¸à§\83ষà§\8dà¦\9fি à¦\85বৰà§\8bধ à¦\95ৰà¦\95',
 'ipbemailban' => 'ই-মেইল পঠোৱাৰ পৰা সদস্যক বাৰণ কৰক',
 'ipbenableautoblock' => 'এই সদস্যজনে শেহতীয়াকৈ ব্যৱহাৰ কৰা আৰু ভৱিষ্যতে সম্পাদনাৰ বাবে ব্যৱহাৰ কৰা আই.পি. ঠিকনা স্বয়ংক্ৰিয়ভাৱে বাৰণ কৰক',
 'ipbsubmit' => 'এই সদস্যক বাৰণ কৰক',
 'ipbother' => 'অন্য সময়:',
-'ipboptions' => '২ à¦\98ণà§\8dà¦\9fা:2 hours,১ à¦¦à¦¿à¦¨:1 day,৩ à¦¦à¦¿à¦¨:3 days,১ à¦¸à¦ªà§\8dতাহ:1 week,২ à¦¸à¦ªà§\8dতাহ:2 weeks,১ à¦®à¦¾à¦¹:1 month,৩ à¦®à¦¾à¦¹:3 months,৬ à¦®à¦¾à¦¹:6 months,১ à¦¬à¦\9bৰ:1 year,à¦\85নিৰà§\8dদিস্ট কাল:infinite',
+'ipboptions' => '২ à¦\98ণà§\8dà¦\9fা:2 hours,১ à¦¦à¦¿à¦¨:1 day,৩ à¦¦à¦¿à¦¨:3 days,১ à¦¸à¦ªà§\8dতাহ:1 week,২ à¦¸à¦ªà§\8dতাহ:2 weeks,১ à¦®à¦¾à¦¹:1 month,৩ à¦®à¦¾à¦¹:3 months,৬ à¦®à¦¾à¦¹:6 months,১ à¦¬à¦\9bৰ:1 year,à¦\85নিৰà§\8dদিষ্ট কাল:infinite',
 'ipbotheroption' => 'অন্যান্য',
 'ipbotherreason' => 'অন্য/অতিৰিক্ত কাৰণ:',
 'ipbhidename' => 'সম্পাদনা আৰু তালিকা সমূহৰ পৰা সদস্যনাম আঁৰ দিয়ক',
@@ -2450,14 +2453,14 @@ $1',
 'ipb-blockingself' => 'আপুনি নিজকে বাধাপ্ৰদান কৰিব বিচাৰিছে ! আপুনি নিশ্চিতনে আপুনি এনে কৰিব ?',
 'ipb-confirmhideuser' => 'আপুনি "সদস্য গোপন কৰক" বৈশিষ্ট সক্ৰিয় থকা এজন সদস্যক বাৰণ কৰিবলৈ ওলাইছে । এই কাৰ্যই সকলো তালিকা আৰু ল\'গ ভৰ্তিৰ পৰা তেওঁৰ নাম আঁতৰাই পেলাব । এই কাম কৰিব বুলি আপুনি নিশ্চিতনে ?',
 'ipb-edit-dropdown' => 'প্ৰতিবন্ধকৰ কাৰণসমূহ সম্পাদনা কৰক',
-'ipb-unblock-addr' => '$1-পৰা বাৰণ উঠাই লওক',
+'ipb-unblock-addr' => '$1ৰ পৰা বাৰণ উঠাই লওক',
 'ipb-unblock' => 'সদস্যনাম বা আই.পি. ঠিকনাৰ ওপৰত থকা প্ৰতিবন্ধক আঁতৰ কৰক',
 'ipb-blocklist' => 'বৰ্তমানৰ প্ৰতিবন্ধক চাওক',
-'ipb-blocklist-contribs' => '$1-ৰ বৰঙণিসমূহ',
+'ipb-blocklist-contribs' => '$1ৰ বৰঙণিসমূহ',
 'unblockip' => 'সদস্যৰ প্ৰতিবন্ধক উঠাই লওক',
 'unblockiptext' => 'তলৰ প্ৰপত্ৰখন ব্যৱহাৰ কৰি পূৰ্বে প্ৰতিবন্ধক থকা কোনো আই.পি. ঠিকনা বা সদস্যৰ লিখাৰ অধিকাৰ পুনঃপ্ৰতিষ্ঠা কৰক ।',
 'ipusubmit' => 'এই বাৰণ উঠাই লওক',
-'unblocked' => '[[User:$1|$1]] ৰ প্ৰতিবন্ধক আঁতৰ কৰা হৈছে',
+'unblocked' => '[[User:$1|$1]]ৰ প্ৰতিবন্ধক আঁতৰ কৰা হৈছে',
 'unblocked-range' => '$1ৰ প্ৰতিবন্ধক আঁতৰ কৰা হৈছে',
 'unblocked-id' => '$1 প্ৰতিবন্ধকটো আঁতৰ কৰা হৈছে',
 'blocklist' => 'বাৰণ কৰা সদস্য',
@@ -2494,12 +2497,12 @@ $1',
 $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'blocklogpage' => 'বাৰণ সূচী',
 'blocklog-showlog' => 'এই সদস্যজনক পূৰ্বতে অৱৰোধ কৰা হৈছিল ।
-তথà§\8dযসà§\82তà§\8dৰ à¦¹à¦¿à¦\9bাপà§\87 à¦¤à¦²à¦¤ à¦\85ৱৰà§\8bধ à¦²â\80\99à¦\97 দিয়া হ’ল:',
+পà§\8dৰমাণ à¦¸à§\8dবৰà§\82পà§\87 à¦¤à¦²à¦¤ à¦\85ৱৰà§\8bধৰ à¦\85ভিলà§\87à¦\96 দিয়া হ’ল:',
 'blocklog-showsuppresslog' => 'এই সদস্যজনক পূৰ্বতে অৱৰোধ আৰু গোপন কৰা হৈছিল ।
-তথà§\8dযসà§\82তà§\8dৰ à¦¹à¦¿à¦\9bাপà§\87 à¦¨à¦¿à¦¬à¦¾à§°à¦£ à¦²â\80\99à¦\97 তলত দিয়া হ’ল ।',
+পà§\8dৰà§\8dমাণ à¦¸à§\8dবৰà§\82পà§\87 à¦¨à¦¿à¦¬à¦¾à§°à¦£à§° à¦\85ভিলà§\87à¦\96 তলত দিয়া হ’ল ।',
 'blocklogentry' => '"[[$1]]" ক $2 $3 লৈ সাল-সলনি কৰাৰ পৰা বাৰণ কৰা হৈছে।',
 'reblock-logentry' => '[[$1]]ৰ প্ৰতিবন্ধক ছেটিং ম্যাদ উকলা সময় $2 $3ৰ সৈতে সলনি কৰা হ’ল ।',
-'blocklogtext' => 'à¦\8fà¦\87 à¦²â\80\99à¦\97à¦\96ন অৱৰোধ কৰা আৰু অৱৰোধ আঁতৰ কৰা সদস্য সম্পৰ্কীয়।
+'blocklogtext' => 'à¦\8fà¦\87 à¦\85ভিলà§\87à¦\96 অৱৰোধ কৰা আৰু অৱৰোধ আঁতৰ কৰা সদস্য সম্পৰ্কীয়।
 স্বয়ংক্ৰিয়ভাৱে প্ৰতিবন্ধক পোৱা আই.পি. ঠিকনাবোৰ ইয়াত তালিকাভুক্ত কৰা হোৱা নাই।
 সাম্প্ৰতিক কাৰ্যৰত নিষেধ আৰু প্ৰতিবন্ধকৰ বাবে [[Special:BlockList|প্ৰতিবন্ধক তালিকা]] চাওক।',
 'unblocklogentry' => '$1 বাৰণ উঠাই লোৱা হ’ল',
@@ -2512,7 +2515,7 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'block-log-flags-hiddenname' => 'সদস্যনাম গোপন কৰা হ’ল',
 'range_block_disabled' => 'প্ৰশাসকৰ পৰিসীমা প্ৰতিবন্ধক সৃষ্টি কৰিব পৰা ক্ষমতা নিষ্ক্ৰিয় কৰা হৈছে ।',
 'ipb_expiry_invalid' => 'অবৈধ ম্যাদ উকলা সময়',
-'ipb_expiry_temp' => 'গুপ্ত সদস্যনাম অৱৰোধ স্থায়ী হ;ব লাগিব ।',
+'ipb_expiry_temp' => 'গুপ্ত সদস্যনাম অৱৰোধ স্থায়ী হব লাগিব ।',
 'ipb_hide_invalid' => 'এই বিষয়বস্তু নিবাৰণ কৰিব পৰা নগ’ল; ইয়াত বহুতো সম্পাদনা আছে ।',
 'ipb_already_blocked' => '"$1"ক ইতিমধ্যে অৱৰোধ কৰা হৈছে',
 'ipb-needreblock' => '$1ক ইতিমধ্যে অৱৰোধ কৰা হৈছে । আপুনি ছেটিং সলাব বিচাৰিছে নেকি ?',
@@ -2529,8 +2532,8 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'proxyblockreason' => 'আপোনাৰ আই.পি. ঠিকনা অৱৰোধ কৰা হৈছে কাৰণ এইটো এটা মুক্ত প্ৰক্সী ।
 অনুগ্ৰহ কৰি আপোনাৰ ইণ্টাৰনেট সেৱা প্ৰদানকাৰী বা কাৰিকৰী সহায়কৰ্তাৰ লগত যোগাযোগ কৰক আৰু এই গুৰুতৰ সুৰক্ষা সমস্যাৰ বিষয়ে জনাওক ।',
 'proxyblocksuccess' => 'সম্পন্ন কৰা হ’ল ।',
-'sorbsreason' => '{{SITENAME}}à¦\8f ব্যৱহাৰ কৰা DNSBLত আপোনাৰ আই.পি. ঠিকনা মুক্ত প্ৰক্সী হিছাপে তালিকাভুক্ত হৈ আছে ।',
-'sorbs_create_account_reason' => '{{SITENAME}}à¦\8f ব্যৱহাৰ কৰা DNSBLত আপোনাৰ আই.পি. ঠিকনা মুক্ত প্ৰক্সী হিছাপে তালিকাভুক্ত হৈ আছে ।
+'sorbsreason' => '{{SITENAME}}ত ব্যৱহাৰ কৰা DNSBLত আপোনাৰ আই.পি. ঠিকনা মুক্ত প্ৰক্সী হিছাপে তালিকাভুক্ত হৈ আছে ।',
+'sorbs_create_account_reason' => '{{SITENAME}}ত ব্যৱহাৰ কৰা DNSBLত আপোনাৰ আই.পি. ঠিকনা মুক্ত প্ৰক্সী হিছাপে তালিকাভুক্ত হৈ আছে ।
 আপুনি একাউণ্ট সৃষ্টি কৰিব নোৱাৰে',
 'cant-block-while-blocked' => 'নিজেই অৱৰোধিত হৈ থকা অৱস্থাত আপুনি আন সদস্যক অৱৰোধ কৰিব নোৱাৰে ।',
 'cant-see-hidden-user' => 'আপুনি বাৰণ কৰিব বিচৰা সদস্যজনক ইতিমধ্যেই বাৰণ কৰি গোপন কৰা হৈছে ।
@@ -2573,8 +2576,8 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 ইয়াৰ অৰ্থ এয়ে যে ভুল হলে পৃষ্ঠাখন আগৰ ঠাইতে থাকিব, আৰু আপুনি প্ৰচলিত পৃষ্ঠা এখনক আন পৃষ্ঠা এখনেৰে সলনি কৰিব নোৱাৰে।
 
 '''সতৰ্কবাণী !'''
-জনপ্ৰিয় পৃষ্ঠা এখনৰ বাবে এয়া এক ডাঙৰ আৰু অনাকাংক্ষিত সাল-সলনি হব পাৰে;
-এই কাৰ্য্যৰ পৰিণাম ভালদৰে বিবেচনা কৰি লয় যেন।",
+জনপ্ৰিয় পৃষ্ঠা এখনৰ বাবে এয়া এক ডাঙৰ আৰু অনাকাংক্ষিত সাল-সলনি হব পাৰে;
+এই কাৰ্য পৰিণাম ভালদৰে বিবেচনা কৰি লয় যেন।",
 'movepagetext-noredirectfixer' => "তলৰ প্ৰপত্ৰ ব্যৱহাৰ কৰিলে এই পৃষ্ঠাৰ শিৰোনামা সলনি হ'ব, লগতে সমগ্ৰ ইতিহাস নতুন শিৰোনামালৈ স্থানান্তৰ কৰা হ'ব।
 পুৰণা শিৰোনামাটো নতুন শিৰোনামালৈ এটা পুনৰ্নিৰ্দেশনা হৈ ৰ'ব।
 [[Special:DoubleRedirects|দ্বি পুনৰ্নিৰ্দেশনাসমূহ]] বা [[Special:BrokenRedirects|ভঙা পুনৰ্নিৰ্দেশনসমূহ]] পৰীক্ষা কৰিবলৈ নাপাহৰিব।
@@ -2594,32 +2597,32 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'movearticle' => 'পৃষ্ঠা স্থানান্তৰ কৰক:',
 'moveuserpage-warning' => "'''সতৰ্কবাণী:''' আপুনি এখন সদস্যপৃষ্ঠা স্থানান্তৰ কৰিবলৈ বিছাৰিছে । অনুগ্ৰহ কৰি মন কৰক যে কেৱল সদস্যপৃষ্ঠাখনহে স্থানান্তৰ হ’ব আৰু সদস্যজনৰ পুনঃনামাকৰণ নহ’ব ।",
 'movenologin' => 'প্ৰৱেশ কৰা নাই',
-'movenologintext' => 'পৃষ্ঠা স্থানান্তৰ কৰিবলৈ আপুনি ভুক্ত সদস্য হৈ [[Special:UserLogin|পৱেশ]] কৰিব লাগিব ।',
+'movenologintext' => 'পà§\83ষà§\8dঠা à¦¸à§\8dথানানà§\8dতৰ à¦\95ৰিবলà§\88 à¦\86পà§\81নি à¦­à§\81à¦\95à§\8dত à¦¸à¦¦à¦¸à§\8dয à¦¹à§\88 [[Special:UserLogin|পà§\8dৰৱà§\87শ]] à¦\95ৰিব à¦²à¦¾à¦\97িব à¥¤',
 'movenotallowed' => 'পৃষ্ঠা স্থানান্তৰ কৰিবলৈ আপোনাৰ অনুমতি নাই ।',
-'movenotallowedfile' => 'ফাà¦\87ল স্থানান্তৰ কৰিবলৈ আপোনাৰ অনুমতি নাই ।',
+'movenotallowedfile' => 'নথিà¦\96ন স্থানান্তৰ কৰিবলৈ আপোনাৰ অনুমতি নাই ।',
 'cant-move-user-page' => 'সদস্য পৃষ্ঠা স্থানান্তৰ কৰিবলৈ আপুনাৰ অনুমতি নাই (উপ-পৃষ্ঠাৰ বাহিৰে)।',
 'cant-move-to-user-page' => 'সদস্যপৃষ্ঠালৈ কোনো পৃষ্ঠা স্থানান্তৰ কৰাৰ অনুমতি আপোনাৰ নাই (কেৱল সদস্য উপপৃষ্ঠাৰ বাহিৰে ) ।',
 'newtitle' => 'নতুন শিৰোনামালৈ:',
 'move-watch' => 'এই পৃষ্ঠাখন লক্ষ্য কৰক',
 'movepagebtn' => 'পৃষ্ঠাখন স্থানান্তৰ কৰক',
-'pagemovedsub' => 'স্থানান্তৰ সফল হল',
-'movepage-moved' => "'''“$1” ক “$2” লৈ স্থানান্তৰ কৰা হৈছে'''",
+'pagemovedsub' => 'স্থানান্তৰ সফল হল',
+'movepage-moved' => "'''“$1”ক “$2”লৈ স্থানান্তৰ কৰা হৈছে'''",
 'movepage-moved-redirect' => 'এটি পুনৰ্নিদেশনা সৃষ্টি কৰা হৈছে',
 'movepage-moved-noredirect' => 'পুনৰ্নিৰ্দেশনা সৃষ্টি কৰা নিবাৰণ কৰা হৈছে ।',
 'articleexists' => 'সেই নামৰ পৃষ্ঠা এটা আগৰ পৰাই আছে, বা সেই নামতো অযোগ্য।
 বেলেগ নাম এটা বাছি লওক।',
 'cantmove-titleprotected' => 'আপুনি ইয়ালৈ কোনো পৃষ্ঠা স্থানান্তৰ কৰিব নোৱাৰে, কাৰণ এই নতুন শিৰোনামা সৃষ্টিৰ পৰা সুৰক্ষিত ।',
-'talkexists' => "'''পà§\83ষà§\8dঠাà¦\96ন à¦¸à§\8dথানানà§\8dতৰ à¦\95ৰা à¦¹à§\88à¦\9bà§\87, à¦\95িনà§\8dতà§\81 à¦\87য়াৰ à¦²à¦\97ত à¦\9cড়িত বাৰ্তা পৃষ্ঠাখন স্থানান্তৰ কৰা নহ'ল, কাৰণ নতুন ঠাইত বাৰ্তা পৃষ্ঠা এখন আগৰ পৰাই আছে।
+'talkexists' => "'''পà§\83ষà§\8dঠাà¦\96ন à¦¸à§\8dথানানà§\8dতৰ à¦\95ৰা à¦¹à§\88à¦\9bà§\87, à¦\95িনà§\8dতà§\81 à¦\87য়াৰ à¦²à¦\97ত à¦\9cৰিত বাৰ্তা পৃষ্ঠাখন স্থানান্তৰ কৰা নহ'ল, কাৰণ নতুন ঠাইত বাৰ্তা পৃষ্ঠা এখন আগৰ পৰাই আছে।
 অনুগ্ৰহ কৰি আপুনি নিজৰ হাতেৰে স্থানান্তৰ কৰক ।'''",
-'movedto' => 'লৈ স্থানান্তৰ কৰা হল',
+'movedto' => 'লৈ স্থানান্তৰ কৰা হল',
 'movetalk' => 'সংলগ্ন বাৰ্তা পৃষ্ঠা স্থানান্তৰ কৰক',
-'move-subpages' => 'উপ-পৃষ্ঠাসমূহ স্থানান্তৰ কৰক ($1-লৈ)',
+'move-subpages' => 'উপ-পৃষ্ঠাসমূহ স্থানান্তৰ কৰক ($1লৈ)',
 'move-talk-subpages' => 'আলোচনা পৃষ্ঠাৰ উপ-পৃষ্ঠাসমূহ স্থানান্তৰ কৰক ($1-লৈ)',
 'movepage-page-exists' => '$1 পৃষ্ঠাখন ইতিমধ্যেই আছে আৰু তাৰ ওপৰত স্বয়ংক্ৰিয়ভাৱে লিখিব নোৱাৰি ।',
-'movepage-page-moved' => "$1 পৃষ্ঠাখন $2-লৈ স্থানান্তৰ কৰা হ'ল ।",
-'movepage-page-unmoved' => '$1 পৃষ্ঠাখন $2-লৈ স্থানান্তৰ কৰা সম্ভৱ নহয়',
+'movepage-page-moved' => "$1 পৃষ্ঠাখন $2লৈ স্থানান্তৰ কৰা হ'ল।",
+'movepage-page-unmoved' => '$1 পৃষ্ঠাখন $2লৈ স্থানান্তৰ কৰা সম্ভৱ নহয়',
 'movepage-max-pages' => 'সৰ্বোচ্চ $1 {{PLURAL:$1|পৃষ্ঠা|পৃষ্ঠা}} স্থানান্তৰ কৰা হৈছে আৰু ইয়াতকৈ অধিক স্বয়ংক্ৰিয়ভাৱে স্থানান্তৰ নহ’ব ।',
-'movelogpage' => 'সà§\8dথানানà§\8dতৰন à¦¸à§\82à¦\9aà§\80',
+'movelogpage' => 'সà§\8dথানানà§\8dতৰন à¦\85ভিলà§\87à¦\96',
 'movelogpagetext' => 'সকলো পৃষ্ঠা স্থানান্তৰৰ এখন তালিকা তলত দিয়া হৈছে ।',
 'movesubpage' => '{{PLURAL:$1|খন উপপৃষ্ঠা|খন উপপৃষ্ঠা}}',
 'movesubpagetext' => 'এই পৃষ্ঠাখনৰ তলত দিয়া {{PLURAL:$1|খন উপপৃষ্ঠা|খন উপপৃষ্ঠা}} আছে ।',
@@ -2646,9 +2649,9 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'fix-double-redirects' => 'প্ৰাথমিক প্ৰৱন্ধলৈ আঙুলিয়াই দিয়া যিকোনো পুনৰ্নিৰ্দেশ নবীকৰণ কৰক',
 'move-leave-redirect' => 'এটা পুনঃনিৰ্দেশনা এৰি যাওক',
 'protectedpagemovewarning' => "'''সতৰ্কবাণী: এই পৃষ্ঠা সুৰক্ষিত কৰা হৈছে; কেৱল প্ৰশাসকৰৰ মৰ্যদাৰ সদস্যইহে ইয়াক স্থানান্তৰ কৰিব পাৰিব ।'''
-à¦\86পà§\8bনাৰ à¦¸à§\81বিধাৰ à¦¬à¦¾à¦¬à§\87 à¦ªà§\83ষà§\8dঠাৰ à¦¸à¦¾à¦®à§\8dপà§\8dৰতিà¦\95 à¦²'à¦\97 সংৰক্ষণ তলত দিয়া হ’ল:",
+à¦\86পà§\8bনাৰ à¦¸à§\81বিধাৰ à¦¬à¦¾à¦¬à§\87 à¦ªà§\83ষà§\8dঠাৰ à¦¸à¦¾à¦®à§\8dপà§\8dৰতিà¦\95 à¦\85ভিলà§\87à¦\96 সংৰক্ষণ তলত দিয়া হ’ল:",
 'semiprotectedpagemovewarning' => "'''টোকা:''' এই পৃষ্ঠা সুৰক্ষিত কৰা হৈছে; কেৱল পঞ্জীভূত সদস্যইহে ইয়াক স্থানান্তৰ কৰিব পাৰিব ।'''
-à¦\86পà§\8bনাৰ à¦¸à§\81বিধাৰ à¦¬à¦¾à¦¬à§\87 à¦ªà§\83ষà§\8dঠাৰ à¦¸à¦¾à¦®à§\8dপà§\8dৰতিà¦\95 à¦²'à¦\97 সংৰক্ষণ তলত দিয়া হ’ল:",
+à¦\86পà§\8bনাৰ à¦¸à§\81বিধাৰ à¦¬à¦¾à¦¬à§\87 à¦ªà§\83ষà§\8dঠাৰ à¦¸à¦¾à¦®à§\8dপà§\8dৰতিà¦\95 à¦\85ভিলà§\87à¦\96 সংৰক্ষণ তলত দিয়া হ’ল:",
 'move-over-sharedrepo' => "== ফাইলৰ অস্বিত্ব আছে ==
 [[:$1]] এক উমৈহতীয়া ভঁৰালত আছে । এই শিৰোনামালৈ ফাইল স্থানান্তৰ কৰিলে উমৈহতীয়া ফাইলটোৰ লগত ওপৰা-ওপৰি হ'ব ।",
 'file-exists-sharedrepo' => 'নিৰ্বাচিত ফাইল নামটো ইতিমধ্যে এটা উমৈহতীয়া ভঁৰালত ব্যৱহৃত ।
@@ -2667,20 +2670,20 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'exportcuronly' => 'কেৱল সাম্প্ৰতিক সংশোধনটোহে অন্তৰ্ভুক্ত কৰক, সম্পূৰ্ণ ইতিহাস নহয় ।',
 'exportnohistory' => "----
 '''টোকা:''' কৰ্মদক্ষতা-সম্পৰ্কীয় কাৰণত এই প্ৰপত্ৰৰ মাধ্যমেৰে কোনো পৃষ্ঠাৰ সম্পূৰ্ণ ইতিহাস ৰপ্তানি কৰাটো নিষ্ক্ৰিয় কৰা হৈছে।",
-'exportlistauthors' => 'পà§\8dৰতà§\8dযà§\87à¦\95 à¦ªà§\83ষà§\8dঠাৰ à¦\85ৱদানà¦\95াৰà§\80ৰ সম্পূৰ্ণ তালিকা অন্তৰ্ভুক্ত কৰক',
+'exportlistauthors' => 'পà§\8dৰতà§\8dযà§\87à¦\95 à¦ªà§\83ষà§\8dঠাৰ à¦¬à§°à¦\99নিদাতাৰ সম্পূৰ্ণ তালিকা অন্তৰ্ভুক্ত কৰক',
 'export-submit' => 'ৰপ্তানি কৰক',
 'export-addcattext' => 'এই শ্ৰেণীকেইটাৰ পৰা পৃষ্ঠা যোগ কৰক:',
 'export-addcat' => 'যোগ কৰক',
 'export-addnstext' => 'এই নামস্থানৰ পৰা পৃষ্ঠা যোগ কৰক',
 'export-addns' => 'যোগ কৰক',
-'export-download' => 'ফাà¦\87ল à¦¹à¦¿à¦\9aাবে সংৰক্ষণ কৰক',
+'export-download' => 'নথি à§°à§\82পে সংৰক্ষণ কৰক',
 'export-templates' => 'সাঁচসমূহ অন্তৰ্ভুক্ত কৰক',
 'export-pagelinks' => 'এই স্তৰলৈকে পৃষ্ঠা সংযোগ অন্তৰ্ভুক্ত কৰক:',
 
 # Namespace 8 related
 'allmessages' => 'ব্যৱস্থাৰ বতৰা',
 'allmessagesname' => 'নাম',
-'allmessagesdefault' => "ডিফ'ল্ট বাৰ্তা পাঠ্য",
+'allmessagesdefault' => 'সাধাৰণ বাৰ্তা পাঠ্য',
 'allmessagescurrent' => 'বৰ্তমানৰ বাৰ্তাৰ পাঠ',
 'allmessagestext' => 'মিডিয়াৱিকি নামস্থানত থকা প্ৰণালী বাৰ্তাসমূহৰ তালিকা ইয়াত দিয়া হৈছে ।
 যদি আপুনি মিডিয়াৱিকিৰ স্থানীয়কৰণত আগ্ৰহী, তেন্তে অনুগ্ৰহ কৰি [//www.mediawiki.org/wiki/Localisation মিডিয়াৱিকি স্থানীয়কৰণ] আৰু [//translatewiki.net translatewiki.net] চাওক ।',
@@ -2703,30 +2706,30 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'thumbnail-temp-create' => 'অস্থায়ী থাম্বনেইল নথিপত্ৰ সৃষ্টি কৰিবলে অক্ষম',
 'thumbnail-dest-create' => 'থাম্বনেইলক গন্তব্যত সাঁচিবলে অক্ষম',
 'thumbnail_invalid_params' => 'অবৈধ ক্ষুদ্ৰাকৃতি পাৰামিটাৰ',
-'thumbnail_dest_directory' => 'à¦\97নà§\8dতবà§\8dয à¦¡à¦¿à§°à§\87à¦\95à§\8dà¦\9fৰà§\80 সৃষ্টি কৰিব পৰা নগ’ল',
+'thumbnail_dest_directory' => 'à¦\97নà§\8dতবà§\8dয à¦¨à¦¿à§°à§\8dদà§\87শিà¦\95া সৃষ্টি কৰিব পৰা নগ’ল',
 'thumbnail_image-type' => 'চিত্ৰৰ ধৰণ সমৰ্থিত নহয় ।',
-'thumbnail_gd-library' => 'à¦\85সমà§\8dপà§\82ৰà§\8dণ GD à¦²à¦¾à¦\87বà§\8dৰà§\87ৰà§\80 à¦¸à¦\82ৰà§\82প: à¦¸à¦¨à§\8dধানহিন ফলন $1',
-'thumbnail_image-missing' => 'ফাà¦\87ল সম্ভৱতঃ নাই: $1',
+'thumbnail_gd-library' => 'à¦\85সমà§\8dপà§\82ৰà§\8dণ GD à¦²à¦¾à¦\87বà§\8dৰà§\87ৰà§\80 à¦¸à¦\82ৰà§\82প: à¦¸à¦¨à§\8dধানহà§\80ন ফলন $1',
+'thumbnail_image-missing' => 'নথিà¦\96ন সম্ভৱতঃ নাই: $1',
 
 # Special:Import
 'import' => 'পৃষ্ঠা আমদানি কৰক',
 'importinterwiki' => 'আন্তঃৱিকি আমদানি',
 'import-interwiki-text' => "আমদানি কৰিবলৈ এটা ৱিকি বা পৃষ্ঠাৰ শিৰোনামা নিৰ্বাচন কৰক ।
 সংশোধনৰ তাৰিখ আৰু সম্পাদকৰ নাম সংৰক্ষণ কৰা হ'ব ।
-সà¦\95লà§\8b à¦\86নà§\8dতà¦\83ৱিà¦\95ি à¦\86মদানি [[Special:Log/import|à¦\86মদানি à¦²'à¦\97]]ত লিপিবদ্ধ আছে ।",
+সà¦\95লà§\8b à¦\86নà§\8dতà¦\83ৱিà¦\95ি à¦\86মদানি [[Special:Log/import|à¦\86মদানি à¦\85ভিলà§\87à¦\96]]ত লিপিবদ্ধ আছে ।",
 'import-interwiki-source' => 'উৎস ৱিকি/পৃষ্ঠা:',
-'import-interwiki-history' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাৰ à¦¸à¦\95লà§\8b à¦¸à¦\82শà§\8bধনৰ à¦\87তিহাস à¦\95পà§\80 কৰক',
+'import-interwiki-history' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাৰ à¦¸à¦\95লà§\8b à¦¸à¦\82শà§\8bধনৰ à¦\87তিহাস à¦ªà§\8dৰতিলিপি কৰক',
 'import-interwiki-templates' => 'সকলো সাঁচ অন্তৰ্ভুক্ত কৰক',
 'import-interwiki-submit' => 'আমদানি',
 'import-interwiki-namespace' => 'গন্তব্য নামস্থান:',
-'import-upload-filename' => 'ফাà¦\87লনাম:',
+'import-upload-filename' => 'নথিৰ নাম:',
 'import-comment' => 'মন্তব্য:',
 'importtext' => "অনুগ্ৰহ কৰি [[Special:Export|ৰপ্তানি সুবিধা]] ব্যৱহাৰ কৰি উৎস ৱিকিৰ পৰা ফাইলটো ৰপ্তানি কৰক।
 আপোনাৰ কম্পিউটাৰত সাঁচি ৰাখক আৰু ইয়াত আপল'ড কৰক।",
-'importstart' => 'পৃষ্ঠা আমদানি কৰা হৈছে...',
+'importstart' => 'পৃষ্ঠা আমদানি কৰা হৈ হৈছে...',
 'import-revision-count' => '$1 {{PLURAL:$1|টা সংশোধন|টা সংশোধন}}',
 'importnopages' => 'আমদানি কৰিবলৈ কোনো পৃষ্ঠা নাই ।',
-'imported-log-entries' => "$1 {{PLURAL:$1|à¦\9fা à¦²'à¦\97 à¦­à§°à§\8dতি|à¦\9fা à¦²'à¦\97 ভৰ্তি}} আমদানি কৰা হ'ল ।",
+'imported-log-entries' => "$1 {{PLURAL:$1|à¦\9fা à¦\85ভিলà§\87à¦\96 à¦­à§°à§\8dতি|à¦\9fা à¦\85ভিলà§\87à¦\96 ভৰ্তি}} আমদানি কৰা হ'ল ।",
 'importfailed' => 'আমদানি ব্যৰ্থ হৈছে: <nowiki>$1</nowiki>',
 'importunknownsource' => 'অজ্ঞাত আমদানি উৎসৰ প্ৰকাৰ',
 'importcantopen' => "আমদানি ফাইল খুলিব পৰা নগ'ল",
@@ -2735,12 +2738,12 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'importsuccess' => 'আমদানি সমাপ্ত !',
 'importhistoryconflict' => "পৰস্পৰবিৰোধী ইতিহাস সংশোধনী আছে (এই পৃষ্ঠা আগতেও আমদানি কৰা হ'ব পাৰে)",
 'importnosources' => "কোনো আন্তঃৱিকি আমদানি উৎসৰ সংজ্ঞা দিয়া হোৱা নাই আৰু প্ৰত্যক্ষ ইতিহাস আপল'ড নিষ্ক্ৰিয় কৰা হৈছে ।",
-'importnofile' => "à¦\95à§\8bনà§\8b à¦\86মদানি à¦«à¦¾à¦\87ল আপল'ড কৰা হোৱা নাই ।",
-'importuploaderrorsize' => "à¦\86মদানি à¦«à¦¾à¦\87লৰ à¦\86পল'ড à¦¬à§\8dযৰà§\8dথ হৈছে ।
-à¦\85নà§\81মà§\8bদিত à¦\86পল'ড à¦«à¦¾à¦\87লতà¦\95à§\88 à¦\8fà¦\87 à¦«à¦¾à¦\87লৰ আকাৰ ডাঙৰ ।",
-'importuploaderrorpartial' => "à¦\86মদানি à¦«à¦¾à¦\87লৰ à¦\86পল'ড à¦¬à§\8dযৰà§\8dথ হৈছে ।
-ফাà¦\87লà¦\9fà§\8b কেৱল আংশিকভাৱে আপল'ড কৰা হৈছে ।",
-'importuploaderrortemp' => "à¦\86মদানি à¦«à¦¾à¦\87লৰ à¦\86পল'ড à¦¬à§\8dযৰà§\8dথ হৈছে ।
+'importnofile' => "à¦\95à§\8bনà§\8b à¦\86মদানি à¦¨à¦¥à¦¿ আপল'ড কৰা হোৱা নাই ।",
+'importuploaderrorsize' => "à¦\86মদানি à¦¨à¦¥à¦¿à§° à¦\86পল'ড à¦\85সফল হৈছে ।
+à¦\85নà§\81মà§\8bদিত à¦\86পল'ড à¦¨à¦¥à¦¿à¦¤à¦\95à§\88 à¦\8fà¦\87 à¦¨à¦¥à¦¿ৰ আকাৰ ডাঙৰ ।",
+'importuploaderrorpartial' => "à¦\86মদানি à¦¨à¦¥à¦¿à§° à¦\86পল'ড à¦\85সফল হৈছে ।
+নথিà¦\96ন কেৱল আংশিকভাৱে আপল'ড কৰা হৈছে ।",
+'importuploaderrortemp' => "à¦\86মদানি à¦¨à¦¥à¦¿à§° à¦\86পল'ড à¦¬à¦¿à¦«à¦² হৈছে ।
 এটা অস্থায়ী ফ'ল্ডাৰ হেৰাইছে ।",
 'import-parse-failure' => 'XML আমদানি পাৰ্চ বিফলতা',
 'import-noarticle' => 'আমদানি কৰিবলৈ কোনো পৃষ্ঠা নাই !',
@@ -2757,9 +2760,9 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'import-error-invalid' => '"$1" পৃষ্ঠাখন আমদানি কৰা নহ\'ল কাৰণ ইয়াৰ নামটো অবৈধ।',
 
 # Import log
-'importlogpage' => "আমদানি ল'গ",
+'importlogpage' => 'আমদানিৰ অভিলেখ',
 'importlogpagetext' => 'আন ৱিকিৰ পৰা সম্পাদনা ইতিহাস সহ প্ৰশাসনীয় পৃষ্ঠা আমদানি ।',
-'import-logentry-upload' => "ফাà¦\87ল আপল'ডৰ মাধ্যমেৰে [[$1]] আমদানি কৰা হ'ল",
+'import-logentry-upload' => "নথি আপল'ডৰ মাধ্যমেৰে [[$1]] আমদানি কৰা হ'ল",
 'import-logentry-upload-detail' => '$1 {{PLURAL:$1|টা সংশোধন|টা সংশোধন}}',
 'import-logentry-interwiki' => 'আন্তঃৱিকি-স্থানান্তৰিত $1',
 'import-logentry-interwiki-detail' => '$2ৱে কৰা $1 {{PLURAL:$1|টা সংশোধন|টা সংশোধন}}',
@@ -2784,15 +2787,15 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'tooltip-pt-watchlist' => 'আপুনি সালসলনিৰ গতিবিধি লক্ষ্য কৰি থকা পৃষ্ঠাসমূহৰ সুচী',
 'tooltip-pt-mycontris' => 'আপোনাৰ বৰঙণিৰ তালিকা',
 'tooltip-pt-login' => "বাধ্যতামূলক নহ'লেও প্ৰৱেশ কৰাটো বাঞ্চনীয়",
-'tooltip-pt-anonlogin' => 'বাধà§\8dযতামà§\82লà¦\95 à¦¨à¦¹â\80\99লà§\87à¦\93 à¦²à¦\97-à¦\87ন কৰাটো বাঞ্চনীয়',
+'tooltip-pt-anonlogin' => 'বাধà§\8dযতামà§\82লà¦\95 à¦¨à¦¹â\80\99লà§\87à¦\93 à¦ªà§\8dৰৱà§\87শ কৰাটো বাঞ্চনীয়',
 'tooltip-pt-logout' => 'প্ৰস্থান',
 'tooltip-ca-talk' => 'সংশ্লিষ্ট প্ৰবন্ধ সম্পৰ্কীয় আলোচনা',
 'tooltip-ca-edit' => 'আপুনি এই পৃষ্ঠাটো সালসলনি কৰিব পাৰে, অনুগ্ৰহ কৰি সালসলনি সাচী থোৱাৰ আগতে খচৰা চাই লব',
 'tooltip-ca-addsection' => 'নতুন অনুচ্ছেদ আৰম্ভ কৰক',
-'tooltip-ca-viewsource' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাà¦\96ন à¦¸à¦\82ৰক্ষিত কৰা হৈছে, আপুনি ইয়াৰ উৎস চাব পাৰে।',
+'tooltip-ca-viewsource' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাà¦\96ন à¦¸à§\81ৰক্ষিত কৰা হৈছে, আপুনি ইয়াৰ উৎস চাব পাৰে।',
 'tooltip-ca-history' => 'এই পৃষ্ঠাৰ যোৱা সংস্কৰণসমূহ',
 'tooltip-ca-protect' => 'এই পৃষ্ঠাখন সুৰক্ষিত কৰক',
-'tooltip-ca-unprotect' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাৰ à¦¸à¦\82ৰà¦\95à§\8dষণ সলনি কৰক',
+'tooltip-ca-unprotect' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাৰ à¦¸à§\81ৰà¦\95à§\8dষা সলনি কৰক',
 'tooltip-ca-delete' => 'এই পৃষ্ঠাখন বিলোপ কৰক',
 'tooltip-ca-undelete' => 'বিলোপ কৰাৰ আগেয়ে কৰা পৃষ্ঠাখনৰ সালসলনিসমূহ পুনঃসংস্থাপন কৰক',
 'tooltip-ca-move' => 'এই পৃষ্ঠাখন স্থানান্তৰিত কৰক',
@@ -2811,8 +2814,8 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'tooltip-n-help' => 'সহায়ৰ বাবে ইয়াত ক্লিক কৰক',
 'tooltip-t-whatlinkshere' => 'ইয়ালৈ সংযোজিত সকলো পৃষ্ঠাৰ সুচী',
 'tooltip-t-recentchangeslinked' => 'সংযুক্ত পৃষ্ঠাসমূহৰ শেহতীয়া সালসলনিসমূহ',
-'tooltip-feed-rss' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাৰ à¦¬à¦¾à¦¬à§\87 à¦\86ৰ-à¦\8fà¦\9a-à¦\8fà¦\9a à¦«à¦¿à¦¡',
-'tooltip-feed-atom' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাৰ à¦¬à¦¾à¦¬à§\87 à¦\8fà¦\9fম à¦«à¦¿à¦¡',
+'tooltip-feed-rss' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাৰ à¦¬à¦¾à¦¬à§\87 à¦\86ৰ-à¦\8fà¦\9a-à¦\8fà¦\9a à¦­à§\81à¦\95à§\8dতি',
+'tooltip-feed-atom' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাৰ à¦¬à¦¾à¦¬à§\87 à¦\8fà¦\9fম à¦­à§\81à¦\95à§\8dতি',
 'tooltip-t-contributions' => 'এই সদস্যজনৰ অৰিহনাসমূহৰ সূচী চাওক',
 'tooltip-t-emailuser' => 'এই সদস্যজনলৈ ই-মেইল পঠাওক',
 'tooltip-t-upload' => "ফাইল আপল'ডৰ বাবে",
@@ -2824,9 +2827,9 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'tooltip-ca-nstab-media' => 'মিডিয়া পৃষ্ঠাখন চাওক',
 'tooltip-ca-nstab-special' => 'এইখন এখন বিশেষ পৃষ্ঠা, আপুনি সম্পাদনা কৰিব নোৱাৰে',
 'tooltip-ca-nstab-project' => 'প্ৰকল্প পৃষ্ঠা চাওক',
-'tooltip-ca-nstab-image' => 'ফাà¦\87ল পৃষ্ঠা চাওক',
+'tooltip-ca-nstab-image' => 'নথিৰ পৃষ্ঠা চাওক',
 'tooltip-ca-nstab-mediawiki' => 'প্ৰণালী বাৰ্তা চাওক',
-'tooltip-ca-nstab-template' => 'সাঁচ চাওক',
+'tooltip-ca-nstab-template' => 'সাঁচটো চাওক',
 'tooltip-ca-nstab-help' => 'সহায় পৃষ্ঠা চাওক',
 'tooltip-ca-nstab-category' => 'শ্ৰেণী পৃষ্ঠা চাওক',
 'tooltip-minoredit' => 'ইয়াক অগুৰুত্বপূৰ্ণ সম্পাদনা ৰূপে চিহ্নিত কৰক।',
@@ -2839,7 +2842,7 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'tooltip-watchlistedit-raw-submit' => 'লক্ষ্য-তালিকা আপডেট কৰক',
 'tooltip-recreate' => 'বিলোপ কৰা সত্বেও পৃষ্ঠাখন পুনৰ সৃষ্টি কৰক',
 'tooltip-upload' => "আপল'ড আৰম্ভ কৰক",
-'tooltip-rollback' => '"ৰ\'লবà§\87à¦\95"à¦\8f এটা ক্লিকত এই পৃষ্ঠাৰ শেষ অৱদানকাৰীৰ সম্পাদনা বাতিল কৰি ইয়াক পূৰ্বাৱস্থালৈ ঘূৰাই নিব।',
+'tooltip-rollback' => '"পà§\82ৰà§\8dববত" à¦\95ৰিলà§\87 এটা ক্লিকত এই পৃষ্ঠাৰ শেষ অৱদানকাৰীৰ সম্পাদনা বাতিল কৰি ইয়াক পূৰ্বাৱস্থালৈ ঘূৰাই নিব।',
 'tooltip-undo' => '"বাতিল"এ এই সম্পাদনাক পূৰ্বাৱস্থালৈ ঘূৰাই নিব আৰু প্ৰাক্‌দৰ্শনৰ বাবে সম্পাদনাটো খুলিব। ই সম্পাদনা সাৰাংশত কাৰণ এটা লিখিবলৈ সুযোগ দিব।',
 'tooltip-preferences-save' => 'পছন্দসমূহ সাঁচি থওক',
 'tooltip-summary' => 'চমু সাৰাংশ লিখক',
@@ -2852,7 +2855,7 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'siteuser' => '{{SITENAME}} সদস্য $1',
 'anonuser' => '{{SITENAME}} বেনামী সদস্য $1',
 'lastmodifiedatby' => 'এই পৃষ্ঠাখন শেষবাৰৰ কাৰণে $1 তাৰিখে $2 বজাত $3ৰ দ্বাৰা সলনি কৰা হৈছিল',
-'othercontribs' => '$1 ৰ কাৰ্য্যৰ উপৰত ভিত্তি কৰি',
+'othercontribs' => '$1ৰ কাৰ্যৰ ওপৰত ভিত্তি কৰি',
 'others' => 'অন্যান্য',
 'siteusers' => '{{SITENAME}} {{PLURAL:$2|সদস্য|সদস্যসমূহ}} $1',
 'anonusers' => '{{SITENAME}} বেনামী {{PLURAL:$2|সদস্য|সদস্যসকল}} $1',
@@ -2864,9 +2867,9 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'spamprotectiontext' => 'আপুনি সাঁচিব বিচৰা পাঠখিনিক স্পাম ছেকনীৰ দ্বাৰা বাধা প্ৰদান কৰা হৈছে ।
 সম্ভৱতঃ কোনো ব্লেকলিষ্টেড হোৱা বাহ্যিক সংযোগৰ কাৰণে এনে ঘটিছে ।',
 'spamprotectionmatch' => 'নিম্নলিখিত লিখনীৰ বাবে আমাৰ স্পাম পৰিস্ৰাৱক আৰম্ভ হৈছে: $1',
-'spambot_username' => 'মিডিয়াৱিকি স্পাম পৰিষ্কাৰ কাৰ্য্য',
-'spam_reverting' => '$1 -লে সংযোগ নথকা সৰ্বশেষ পুনৰীক্ষনলে উভতি যোৱা',
-'spam_blanking' => 'সকলো পুনৰীক্ষনৰ $1 -লে সংযোগ আছিল, ৰিক্ত কৰা হৈছে',
+'spambot_username' => 'মিডিয়াৱিকি স্পাম পৰিষ্কাৰ কাৰ্য',
+'spam_reverting' => '$1লৈ সংযোগ নথকা সৰ্বশেষ পুনৰীক্ষনলে উভতাই নিয়া হৈছে',
+'spam_blanking' => 'সকলো পুনৰীক্ষনৰ $1লৈ সংযোগ আছিল, ৰিক্ত কৰা হৈছে',
 'spam_deleting' => 'সকলো পুনৰীক্ষণৰ $1লৈ সংযোগ আছিল, বিলোপ কৰা হৈছে',
 
 # Info page
@@ -2891,23 +2894,23 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'rcpatroldisabledtext' => 'শেহতীয়া সালসলনিৰ নিৰীক্ষণ কাৰ্য বৰ্তমান নিষ্ক্ৰিয় হৈ আছে ।',
 'markedaspatrollederror' => 'নিৰীক্ষিত বুলি চিহ্নিত কৰিব নোৱাৰি',
 'markedaspatrollederrortext' => 'নিৰীক্ষণ কৰা বুলি চিহ্নিত কৰিবলৈ আপুনি এটা পুনৰীক্ষণ ধাৰ্য্য কৰিব লাগিব।',
-'markedaspatrollederror-noautopatrol' => 'à¦\86পà§\8bনাà¦\95 à¦¨à¦¿à¦\9cৰ à¦ªà§°à¦¿à§±à§°à§\8dতনসমà§\82হ à¦¨à§\80ৰিক্ষিত বুলি চিহ্নিত কৰাৰ অনুমতি নাই।',
+'markedaspatrollederror-noautopatrol' => 'à¦\86পà§\8bনাà¦\95 à¦¨à¦¿à¦\9cৰ à¦ªà§°à¦¿à§±à§°à§\8dতনসমà§\82হ à¦¨à¦¿ৰিক্ষিত বুলি চিহ্নিত কৰাৰ অনুমতি নাই।',
 
 # Patrol log
-'patrol-log-page' => "নিৰীক্ষণ ল'গ",
-'patrol-log-header' => "এইখন নিৰীক্ষিত সংশোধনসমূহৰ ল'গ ।",
-'log-show-hide-patrol' => "নিৰীক্ষণ ল'গ $1",
+'patrol-log-page' => 'নিৰীক্ষণ অভিলেখ',
+'patrol-log-header' => 'এইখন নিৰীক্ষিত সংশোধনসমূহৰ অভিলেখ ।',
+'log-show-hide-patrol' => 'নিৰীক্ষণ অভিলেখ $1',
 
 # Image deletion
 'deletedrevision' => 'পুৰণি সংশোধনী $1 বিলোপ কৰা হ’ল',
-'filedeleteerror-short' => 'ফাà¦\87ল বিলোপ কৰাত ত্ৰুটি: $1',
-'filedeleteerror-long' => 'à¦\8fà¦\87 à¦«à¦¾à¦\87লà¦\9fà§\8b বিলোপ কৰাত সমস্যা হৈছে :
+'filedeleteerror-short' => 'নথি বিলোপ কৰাত ত্ৰুটি: $1',
+'filedeleteerror-long' => 'à¦\8fà¦\87 à¦¨à¦¥à¦¿à¦\96ন বিলোপ কৰাত সমস্যা হৈছে :
 
 $1',
-'filedelete-missing' => '"$1" à¦«à¦¾à¦\87লà¦\9fà§\8b বিলোপ কৰিব পৰা নাযাব, কিয়নো ইয়াৰ কোনো অস্তিত্ব নাই ।',
+'filedelete-missing' => '"$1" à¦¨à¦¥à¦¿à¦\96ন বিলোপ কৰিব পৰা নাযাব, কিয়নো ইয়াৰ কোনো অস্তিত্ব নাই ।',
 'filedelete-old-unregistered' => 'নিৰ্ধাৰিত ফাইল সংশোধন "$1" তথ্যকোষত নাই ।',
-'filedelete-current-unregistered' => 'নিৰà§\8dধাৰিত à¦«à¦¾à¦\87ল "$1" তথ্যকোষত নাই ।',
-'filedelete-archive-read-only' => 'à¦\86ৰà§\8dà¦\95াà¦\87ভ à¦¡à¦¾à¦\87ৰà§\87à¦\95à¦\9fৰি "$1" ৱেবচাৰ্ভাৰ দ্বাৰা লিখিব নোৱাৰি।',
+'filedelete-current-unregistered' => 'নিৰà§\8dধাৰিত à¦¨à¦¥à¦¿ "$1" তথ্যকোষত নাই ।',
+'filedelete-archive-read-only' => 'à¦\86ৰà§\8dà¦\95াà¦\87ভ à¦¨à¦¿à§°à§\8dদà§\87শিà¦\95া "$1"ত ৱেবচাৰ্ভাৰ দ্বাৰা লিখিব নোৱাৰি।',
 
 # Browsing diffs
 'previousdiff' => 'প্ৰবীণ সম্পাদনা',
@@ -2924,9 +2927,9 @@ $1',
 'file-info-size-pages' => '$1 × $2 পিক্সেলসমূহ, নথিপত্ৰৰ আকাৰ: $3, MIME ধৰণ: $4, $5 {{PLURAL:$5|page|pages}}',
 'file-nohires' => 'ইয়াতকৈ ডাঙৰকৈ দেখুৱাব নোৱাৰি ।',
 'svg-long-desc' => 'SVG ফাইল, সাধাৰণতঃ $1 × $2 পিক্সেল, ফাইল মাত্ৰা: $3',
-'show-big-image' => 'সম্পূৰ্ণ দৃশ্য',
+'show-big-image' => "সম্পূৰ্ণ ৰিজ'লিউশ্যন",
 'show-big-image-preview' => 'এই খচৰাৰ আকাৰ: $1.',
-'show-big-image-other' => 'আন {{PLURAL:$2|ৰিজলিউচন|ৰিজলিউচনসমূহ}}: $1।',
+'show-big-image-other' => "আন {{PLURAL:$2|ৰিজ'লিউশ্যন|ৰিজ'লিউশ্যনসমূহ}}: $1।",
 'show-big-image-size' => '$1 × $2 পিক্সেল',
 'file-info-gif-looped' => 'লুপকৃত',
 'file-info-gif-frames' => '$1 {{PLURAL:$1|ফ্ৰেম|ফ্ৰেম}}',
@@ -2939,7 +2942,7 @@ $1',
 'imagelisttext' => "তলত '''$1''' {{PLURAL:$1|file|files}} সজোঁৱা $2 -ৰ এটা তালিকা দিয়া আছে।",
 'newimages-summary' => "এই বিশেষ পৃষ্ঠাখনত সৰ্বশেষত আপল'ড কৰা ফাইলসমূহ দেখিব ।",
 'newimages-legend' => 'ছেকনী',
-'newimages-label' => 'ফাà¦\87লনাম (বা তাৰ এটা অংশ)',
+'newimages-label' => 'নথিৰ নাম (বা তাৰ এটা অংশ)',
 'showhidebots' => '(বট $1)',
 'noimages' => 'চাবলৈ একো নাই ।',
 'ilsubmit' => 'সন্ধান কৰক',
@@ -2963,7 +2966,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 # Metadata
 'metadata' => 'মেটাডেটা',
 'metadata-help' => 'এই ফাইলত অতিৰিক্ত খবৰ আছে, হয়তো ডিজিটেল কেমেৰা বা স্কেনাৰ ব্যৱহাৰ কৰি সৃষ্টি বা পৰিৱৰ্তন কৰা হৈছে ।
-এই ফাইলটো আচলৰ পৰা পৰিৱৰ্তন  কৰা হৈছে, সেয়েহে পৰিৱৰ্তিত ফাইলটোৰ সৈতে নিমিলিব পাৰে ।',
+এই ফাইলটো আচলৰ পৰা পৰিৱৰ্তন কৰা হৈছে, সেয়েহে পৰিৱৰ্তিত ফাইলটোৰ সৈতে নিমিলিব পাৰে ।',
 'metadata-expand' => 'বহলাই ইয়াৰ বিষয়ে জনাওক',
 'metadata-collapse' => 'বিষয় বৰ্ণনা নেদেখুৱাবলৈ',
 'metadata-fields' => 'এই সূচীত থকা বিষয়বোৰ চিত্ৰৰ পৃষ্ঠাৰ তলত দেখা যাব ।
@@ -2983,28 +2986,28 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 * gpsaltitude',
 
 # EXIF tags
-'exif-imagewidth' => 'বহল',
+'exif-imagewidth' => 'পà§\8dৰসà§\8dথ',
 'exif-imagelength' => 'উচ্চতা',
 'exif-bitspersample' => 'প্ৰতি অংশৰ বিট',
 'exif-compression' => 'সংকোচন আঁচনি',
 'exif-photometricinterpretation' => 'পিক্সেল গঠন',
 'exif-orientation' => 'দিশবিন্যাস',
 'exif-samplesperpixel' => 'উপাদানৰ সংখ্যা',
-'exif-planarconfiguration' => 'ডà§\87à¦\9fা বিন্যাস',
-'exif-ycbcrsubsampling' => 'Y to C -ৰ হাৰৰ উপনমুনা',
+'exif-planarconfiguration' => 'তথà§\8dয বিন্যাস',
+'exif-ycbcrsubsampling' => 'Y to Cৰ হাৰৰ উপনমুনা',
 'exif-ycbcrpositioning' => 'Y আৰু C অৱস্থান',
-'exif-xresolution' => 'আনুভূমিক ৰিজলিউচন',
-'exif-yresolution' => "উলম্ব ৰিজ'লিউচন",
+'exif-xresolution' => "আনুভূমিক ৰিজ'লিউশ্যন",
+'exif-yresolution' => "উলম্বিক ৰিজ'লিউশ্যন",
 'exif-stripoffsets' => 'ছবিৰ ডেটা অৱস্থান',
 'exif-rowsperstrip' => 'প্ৰতি ষ্ট্ৰিপত শাৰীসমূহৰ সংখ্যা',
 'exif-stripbytecounts' => 'প্ৰতি সংকোচিত স্ট্ৰিপ বাইটসমূহ',
-'exif-jpeginterchangeformat' => 'JPEG SOI -লে অফচেট',
+'exif-jpeginterchangeformat' => 'JPEG SOI’লৈ অফচেট',
 'exif-jpeginterchangeformatlength' => 'JPEG তথ্যৰ বাইটসমূহ',
 'exif-whitepoint' => 'বগা বিন্দুৰ বৰ্ণ',
 'exif-primarychromaticities' => 'প্ৰাথমিকতাৰ বৰ্ণসমূহ',
 'exif-ycbcrcoefficients' => 'ৰঙ স্থান পৰিৱৰ্তন সাঁচৰ গুণকসমূহ',
 'exif-referenceblackwhite' => 'কলা আৰু বগা প্ৰসংগ মানসমূহৰ যোৰ',
-'exif-datetime' => 'ফাà¦\87ল সলনিৰ তাৰিখ আৰু সময়',
+'exif-datetime' => 'নথিৰ সলনিৰ তাৰিখ আৰু সময়',
 'exif-imagedescription' => 'চিত্ৰ শিৰোনামা',
 'exif-make' => 'কেমেৰা নিৰ্মাতা',
 'exif-model' => 'কেমেৰা মডেল',
@@ -3031,7 +3034,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 'exif-exposureprogram' => 'উন্মুক্ত প্ৰগ্ৰাম',
 'exif-spectralsensitivity' => 'বৰ্ণালীৰ সংবেদ্যতা',
 'exif-isospeedratings' => 'ISO গতিৰ হাৰ',
-'exif-shutterspeedvalue' => 'APEX à¦াটাৰ গতি',
+'exif-shutterspeedvalue' => 'APEX à¦\9aাটাৰ গতি',
 'exif-aperturevalue' => 'APEX বিন্ধা',
 'exif-brightnessvalue' => 'APEX উজ্জ্বলতা',
 'exif-exposurebiasvalue' => 'APEX উন্মুক্ত পক্ষপাত',
@@ -3043,9 +3046,9 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 'exif-focallength' => "লেন্‌ছৰ ফ'কেল দৈৰ্ঘ্য",
 'exif-subjectarea' => 'বিষয়বস্তুৰ ক্ষেত্ৰফল',
 'exif-flashenergy' => 'ফ্লেছ শক্তি',
-'exif-focalplanexresolution' => 'X à¦«à§\8bà¦\95াà¦\9a à¦¤à¦²à§° à§°à¦¿à¦\9cà§\8bলà§\8bà¦\9aন',
-'exif-focalplaneyresolution' => 'Y à¦«à§\8bà¦\95াà¦\9a à¦¤à¦²à§° à§°à¦¿à¦\9cà§\8bলà§\8bà¦\9aন',
-'exif-focalplaneresolutionunit' => "ফ'কেল তল ৰিজ'লিউচন একক",
+'exif-focalplanexresolution' => 'X à¦«à§\8bà¦\95াà¦\9a à¦¤à¦²à§° à§°à¦¿à¦\9cলিà¦\89শà§\8dযন',
+'exif-focalplaneyresolution' => 'Y à¦«à§\8bà¦\95াà¦\9a à¦¤à¦²à§° à§°à¦¿à¦\9cলিà¦\89শà§\8dযন',
+'exif-focalplaneresolutionunit' => "ফ'কেল তল ৰিজলিউশ্যন একক",
 'exif-subjectlocation' => 'বিষয়বস্তুৰ স্থান',
 'exif-exposureindex' => 'উন্মুক্ত সূচী',
 'exif-sensingmethod' => 'সংবেদ পদ্ধতি',
@@ -3100,7 +3103,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 'exif-worldregioncreated' => "বিশ্বৰ অঞ্চল য'ত ছবিখন তোলা হৈছিল",
 'exif-countrycreated' => 'যি দেশত চিত্ৰখন গ্ৰহণ কৰা হৈছে',
 'exif-countrycodecreated' => "দেশৰ ক'ড য'ত ছবিখন তোলা হৈছিল",
-'exif-provinceorstatecreated' => "পà§\8dৰদà§\87শ à¦\85থবা à§°à¦¾à¦\9cà§\8dয à¦¯'ত à¦\9bবিà¦\9fà§\8b তোলা হৈছিল",
+'exif-provinceorstatecreated' => "পà§\8dৰদà§\87শ à¦\85থবা à§°à¦¾à¦\9cà§\8dয à¦¯'ত à¦\9bবিà¦\96ন তোলা হৈছিল",
 'exif-citycreated' => 'যি চহৰত চিত্ৰখন গ্ৰহণ কৰা হৈছে',
 'exif-sublocationcreated' => "নগৰৰ উপঅৱস্থান য'ত ছবিখন তোলা হৈছিল",
 'exif-worldregiondest' => 'বিশ্বৰ অঞ্চল দেখুওৱা হল',
@@ -3123,7 +3126,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 'exif-contact' => 'যোগাযোগৰ তথ্য',
 'exif-writer' => 'লেখক',
 'exif-languagecode' => 'ভাষা',
-'exif-iimversion' => 'IIM à¦¸à¦\82স্কৰণ',
+'exif-iimversion' => 'IIM à¦¸à¦\82ষ্কৰণ',
 'exif-iimcategory' => 'শ্ৰেণী',
 'exif-iimsupplementalcategory' => 'পৰিপূৰ্ণ বিভাগসমূহ',
 'exif-datetimeexpires' => 'পিছত ব্যৱহাৰ নকৰিব',
@@ -3136,33 +3139,33 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 'exif-label' => 'লেবেল',
 'exif-datetimemetadata' => 'মেটাডেটাৰ শেষ পৰিৱৰ্তনৰ তাৰিখ',
 'exif-nickname' => 'ছবিৰ খচৰা নাম',
-'exif-rating' => 'ৰà§\87à¦\9fিà¦\82 (out of 5)',
+'exif-rating' => 'মানাà¦\82à¦\95 (৫ৰ à¦­à¦¿à¦¤à§°à¦¤)',
 'exif-rightscertificate' => 'অধিকাৰিত্ব ব্যৱস্থাপনাৰ প্ৰমাণপত্ৰ',
 'exif-copyrighted' => 'স্বত্বাধিকাৰ স্থিতি',
 'exif-copyrightowner' => 'স্বত্বাধিকাৰী',
 'exif-usageterms' => 'ব্যৱহাৰ কৰাৰ চৰ্ত্ত',
-'exif-webstatement' => 'à¦\85নলাà¦\87ন à¦¸à§\8dবতà§\8dবাধিà¦\95াৰ à¦¬à§\8dযà¦\95à§\8dতবà§\8dয',
+'exif-webstatement' => 'অনলাইন স্বত্বাধিকাৰ বক্তব্য',
 'exif-originaldocumentid' => 'মূল ডকুমেণ্টৰ অদ্বিতীয় আই.ডি.',
 'exif-licenseurl' => 'কপিৰাইট অনুজ্ঞাপত্ৰৰ বাবে URL',
 'exif-morepermissionsurl' => 'অতিৰিক্ত অনুজ্ঞাপত্ৰৰ তথ্য',
 'exif-attributionurl' => 'এই কাৰ্যৰ পুনৰ ব্যৱহাৰ কৰিলে অনুগ্ৰহ এই লিংকটো যোগ কৰক',
 'exif-preferredattributionname' => 'এই কাম পুনৰ-ব্যৱহাৰ কৰোতে, অনুগ্ৰহ কৰি কৃতিত্ব দিব',
 'exif-pngfilecomment' => 'পি.এন.জি. ফাইল মন্তব্য',
-'exif-disclaimer' => 'দাবà§\80তà§\8dযাà¦\97',
+'exif-disclaimer' => 'দায়লà§\81পà§\8dতি',
 'exif-contentwarning' => 'বিষয়বস্তু সতৰ্কবাণী',
 'exif-giffilecomment' => 'জি.আই.এফ. ফাইল মন্তব্য',
 'exif-intellectualgenre' => 'আইটেমৰ প্ৰকাৰ',
 'exif-subjectnewscode' => 'বিষয় ক’ড',
 'exif-scenecode' => "IPTC দৃশ্য ক'ড",
 'exif-event' => 'ঘটনা বৰ্ণিত',
-'exif-organisationinimage' => 'সà¦\82à¦\98ঠন বৰ্ণিত',
+'exif-organisationinimage' => 'সà¦\82à¦\97ঠন বৰ্ণিত',
 'exif-personinimage' => 'ব্যক্তি বর্ণিত',
 'exif-originalimageheight' => "ক্ৰ'প কৰাৰ আগত ছবিৰ উচ্চতা",
 'exif-originalimagewidth' => "ক্ৰ'প কৰাৰ আগত ছবিৰ প্ৰস্থতা",
 
 # EXIF attributes
 'exif-compression-1' => 'অসংকুচিত',
-'exif-compression-2' => "CCITT দল ৩ ১-পৰিসৰ পৰিৱৰ্তীত Huffman চলন দৈৰ্ঘ এনক'ডিং",
+'exif-compression-2' => "CCITT দল ৩ ১-পৰিসৰ পৰিৱৰ্তীত Huffman চলন দৈৰ্ঘ্য এনক'ডিং",
 'exif-compression-3' => "CCITT দল ৩ ফেক্স এনক'ডিং",
 'exif-compression-4' => "CCITT দল ৪ ফেক্স এনক'ডিং",
 
@@ -3183,7 +3186,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 'exif-planarconfiguration-1' => 'খণ্ড বিন্যাস',
 'exif-planarconfiguration-2' => 'সমতলীয় বিন্যাস',
 
-'exif-colorspace-65535' => 'মানাংকন নহোৱা',
+'exif-colorspace-65535' => 'মানাà¦\82à¦\95ন à¦¨à§\8bহà§\8bৱা',
 
 'exif-componentsconfiguration-0' => 'অস্তিত্ব নাই',
 
@@ -3192,10 +3195,10 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 'exif-exposureprogram-2' => 'সাধাৰণ প্ৰ’গ্ৰেম',
 'exif-exposureprogram-3' => 'বিন্ধাৰ প্ৰাথমিকতা',
 'exif-exposureprogram-4' => 'শ্বাটাৰ প্ৰাথমিকতা',
-'exif-exposureprogram-5' => 'সà§\83ষà§\8dà¦\9fিমà§\82লà¦\95 à¦ªà§\8dৰà¦\97à§\8dৰাম (à¦\95à§\8dষà§\87তà§\8dৰৰ à¦\97ভà§\80ৰতাৰ à¦ªà§\8dৰতি à¦ªà¦\95à§\8dষপাতি)',
-'exif-exposureprogram-6' => "à¦\95াৰà§\8dযà§\8dযত à¦ªà§\8dৰ'à¦\97à§\8dৰাম (দà§\8dৰà§\81ত à¦¶à§\8dবাà¦\9fাৰ à¦\97তিৰ à¦ªà§\8dৰতি à¦ªà¦\95à§\8dষপাতি)",
-'exif-exposureprogram-7' => 'পà§\8dৰতিà¦\95à§\83তি à¦\85ৱসà§\8dথা (পà¦\9fভà§\82মি à¦«à¦\95াà¦\9aৰ à¦¬à¦¾à¦¹à¦¿à§° à¦¥à¦\95াà¦\95à§\87 à¦\95à§\8dলà§\8cà¦\9cà¦\86প à¦«à¦\9fà§\8bসমূহ)',
-'exif-exposureprogram-8' => 'লà§\87ণà§\8dডসà§\8dà¦\95à§\87à¦\87প à¦\85ৱসà§\8dথা (পà¦\9fভà§\82মি à¦«à¦\95াà¦\9aত à¦¥à¦\95াà¦\95à§\88 à¦²à§\87ণà§\8dডসà§\8dà¦\95à§\87à¦\87প à¦«à¦\9fà§\8bসমূহৰ বাবে)',
+'exif-exposureprogram-5' => 'সà§\83ষà§\8dà¦\9fিমà§\82লà¦\95 à¦ªà§\8dৰà¦\97à§\8dৰাম (à¦\95à§\8dষà§\87তà§\8dৰৰ à¦\97ভà§\80ৰতাৰ à¦ªà§\8dৰতি à¦ªà¦\95à§\8dষপাতবিশিষà§\8dà¦\9f)',
+'exif-exposureprogram-6' => "à¦\95াৰà§\8dযà§\8dযত à¦ªà§\8dৰ'à¦\97à§\8dৰাম (দà§\8dৰà§\81ত à¦¶à§\8dবাà¦\9fাৰ à¦\97তিৰ à¦ªà§\8dৰতি à¦ªà¦\95à§\8dষপাতবিশিষà§\8dà¦\9f)",
+'exif-exposureprogram-7' => 'পà§\8dৰতিà¦\95à§\83তি à¦\85ৱসà§\8dথা (পà¦\9fভà§\82মি à¦«à¦\95াà¦\9aৰ à¦¬à¦¾à¦¹à¦¿à§° à¦¥à¦\95াà¦\95à§\87 à¦\95à§\8dলà¦\9cà¦\86প à¦\9aিতà§\8dৰসমূহ)',
+'exif-exposureprogram-8' => 'লà§\87ণà§\8dডসà§\8dà¦\95à§\87প à¦\85ৱসà§\8dথা (পà¦\9fভà§\82মি à¦«à¦\95াà¦\9aত à¦¥à¦\95াà¦\95à§\88 à¦²à§\87ণà§\8dডসà§\8dà¦\95à§\87প à¦\9aিতà§\8dৰসমূহৰ বাবে)',
 
 'exif-subjectdistance-value' => '$1 মিটাৰ',
 
@@ -3211,7 +3214,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 'exif-lightsource-0' => 'অজ্ঞাত',
 'exif-lightsource-1' => 'দিনৰ পোহৰ',
 'exif-lightsource-2' => 'প্রতিপ্রভ',
-'exif-lightsource-3' => 'à¦\9fাà¦\82ষà§\8dà¦\9fà§\87ন (ভাসà§\8dবৰ পোহৰ)',
+'exif-lightsource-3' => 'à¦\9fাà¦\82ষà§\8dà¦\9fà§\87ন (ভাষà§\8dà¦\95ৰ পোহৰ)',
 'exif-lightsource-4' => 'ফ্লাছ',
 'exif-lightsource-9' => 'ফটফটীয়া বতৰ',
 'exif-lightsource-10' => 'ডাৱৰীয়া বতৰ',
@@ -3250,7 +3253,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 
 'exif-filesource-3' => 'ডিজিটাল স্টিল ক্যামেৰা',
 
-'exif-scenetype-1' => 'à¦\8fà¦\9fা প্ৰত্যক্ষভাৱে তোলা ছবি',
+'exif-scenetype-1' => 'à¦\8fà¦\96ন প্ৰত্যক্ষভাৱে তোলা ছবি',
 
 'exif-customrendered-0' => 'স্বাভাবিক প্রক্রিয়া',
 'exif-customrendered-1' => 'স্বনিৰ্বাচিত প্ৰক্ৰিয়া',
@@ -3263,7 +3266,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 'exif-whitebalance-1' => 'হস্তচালিত বগা ভাৰসাম্য',
 
 'exif-scenecapturetype-0' => 'প্ৰামাণিক',
-'exif-scenecapturetype-1' => 'লà§\87ণà§\8dডসà§\8dà¦\95à§\87à¦\87প',
+'exif-scenecapturetype-1' => 'নà§\88সৰà§\8dà¦\97িà¦\95',
 'exif-scenecapturetype-2' => 'প্ৰতিকৃতি',
 'exif-scenecapturetype-3' => 'ৰাতিৰ দৃশ্য',
 
@@ -3287,7 +3290,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 
 'exif-subjectdistancerange-0' => 'অজ্ঞাত',
 'exif-subjectdistancerange-1' => "মেক্ৰ'",
-'exif-subjectdistancerange-2' => 'à¦\89à¦\9aৰৰ দৃষ্টি',
+'exif-subjectdistancerange-2' => 'নিà¦\95à¦\9f দৃষ্টি',
 'exif-subjectdistancerange-3' => 'দূৰ দৃষ্টি',
 
 # Pseudotags used for GPSLatitudeRef and GPSDestLatitudeRef
@@ -3299,7 +3302,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 'exif-gpslongitude-w' => 'পশ্চিম দ্রাঘিমা',
 
 # Pseudotags used for GPSAltitudeRef
-'exif-gpsaltitude-above-sealevel' => 'সমà§\81দà§\8dৰপà§\83ষà§\8dঠৰ $1 {{PLURAL:$1|মিà¦\9fাৰ|মিà¦\9fাৰ}} à¦\89পৰত',
+'exif-gpsaltitude-above-sealevel' => 'সমà§\81দà§\8dৰপà§\83ষà§\8dঠৰ $1 {{PLURAL:$1|মিà¦\9fাৰ|মিà¦\9fাৰ}} à¦\93পৰত',
 'exif-gpsaltitude-below-sealevel' => 'সমুদ্ৰপৃষ্ঠৰ $1 {{PLURAL:$1|মিটাৰ|মিটাৰ}} তলত',
 
 'exif-gpsstatus-a' => 'পৰিমাপ চলি আছে',
@@ -3321,7 +3324,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 'exif-gpsdop-excellent' => 'অতি উত্তম ($1)',
 'exif-gpsdop-good' => 'ভাল ($1)',
 'exif-gpsdop-moderate' => 'মোটামুটি ($1)',
-'exif-gpsdop-fair' => 'ভাল ($1)',
+'exif-gpsdop-fair' => 'ধà§\81নà§\80য়া ($1)',
 'exif-gpsdop-poor' => 'বেয়া ($1)',
 
 'exif-objectcycle-a' => 'কেৱল পুৱা',
@@ -3335,7 +3338,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 'exif-ycbcrpositioning-1' => 'কেন্দ্ৰিত',
 'exif-ycbcrpositioning-2' => 'সমানভাৱে চাইট কৰা',
 
-'exif-dc-contributor' => 'à¦\85ৱদানà¦\95াৰà§\80সমà§\82হ',
+'exif-dc-contributor' => 'বৰà¦\99ণিদাতাসà¦\95ল',
 'exif-dc-coverage' => 'মাধ্যমৰ ব্যৱধানীক অথবা অস্থায়ী অৱকাশ',
 'exif-dc-date' => 'তাৰিখ(সমূহ)',
 'exif-dc-publisher' => 'প্ৰকাশক',
@@ -3392,7 +3395,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 'confirmemail_send' => 'এটা নিশ্চিতকৰণ সংকেত মেইল কৰক',
 'confirmemail_sent' => 'নিশ্চিতকৰণ ই-মেইল পঠোৱা হৈছে ।',
 'confirmemail_oncreate' => 'আপোনাৰ ই-মেইল ঠিকনালৈ এটা নিশ্চিতকৰণ সংকেত পঠোৱা হৈছে ।
-লà¦\97à§\8dâ\80\8c-à¦\87ন কৰিবলৈ এই সংকেতৰ আৱশ্যক নাই, কিন্তু ৱিকিৰ যিকোনো ই-মেইল ভিত্তিক সেৱা সক্ৰিয় কৰিবলৈ ইয়াৰ প্ৰয়োজন হ’ব ।',
+পà§\8dৰৱà§\87শ কৰিবলৈ এই সংকেতৰ আৱশ্যক নাই, কিন্তু ৱিকিৰ যিকোনো ই-মেইল ভিত্তিক সেৱা সক্ৰিয় কৰিবলৈ ইয়াৰ প্ৰয়োজন হ’ব ।',
 'confirmemail_sendfailed' => '{{SITENAME}}এ আপোনালৈ নিশ্চিতকৰণ ই-মেইল পঠাব পৰা নাই ।
 অনুগ্ৰহ কৰি আপোনাৰ ই-মেইল ঠিকনা ভুল বৰ্ণ আছে নেকি পৰীক্ষা কৰক ।
 
@@ -3401,7 +3404,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 সম্ভৱতঃ ইয়াৰ ম্যাদ উকলি গৈছে ।',
 'confirmemail_needlogin' => 'আপোনাৰ ই-মেইল ঠিকনা নিশ্চিতকৰণৰ বাবে $1 কৰক ।',
 'confirmemail_success' => 'আপোনাৰ ই-মেইল ঠিকনা নিশ্চিতকৰণ কৰা হৈছে ।
-আপুনি এতিয়া [[Special:UserLogin|log in]] কৰক আৰু ৱিকি উপভোগ কৰক ।',
+আপুনি এতিয়া [[Special:UserLogin|প্ৰৱেশ]] কৰক আৰু ৱিকি উপভোগ কৰক ।',
 'confirmemail_loggedin' => 'আপোনাৰ ই-মেইল ঠিকনা নিশ্চিত কৰা হৈছে ।',
 'confirmemail_error' => 'আপোনাৰ নিশ্চিতকৰণ সংৰক্ষণ কৰাত কিছু সমস্যা হৈছে ।',
 'confirmemail_subject' => '{{SITENAME}} ই-মেইল ঠিকনা নিশ্চিতকৰণ',
@@ -3409,7 +3412,7 @@ Any subsequent links on the same line are considered to be exceptions, i.e. page
 এটা একাউণ্ট "$2" পঞ্জীয়ন কৰিছে ।
 
 এই একাউণ্ট আপোনাৰ হয়নে নহয় নিশ্চিত কৰাৰ বাবে আৰু {{SITENAME}}ত ই-মেইল বৈশিষ্টসমূহ সক্ৰিয় কৰাৰ বাবে
-à¦\86পà§\8bনাৰ à¦¬à§\8dৰাà¦\89à¦\9cাৰত à¦\8fà¦\87 à¦¸à¦\82যà§\8bà¦\97à¦\9fà§\8b à¦\96à§\81লক:
+à¦\86পà§\8bনাৰ à¦¬à§\8dৰাà¦\89à¦\9cাৰত à¦\8fà¦\87 à¦¸à¦\82যà§\8bà¦\97à¦\9fà§\8b à¦\96à§\8bলক:
 
 $3
 
@@ -3459,20 +3462,20 @@ $5
 'deletedwhileediting' => "'''সতৰ্কবাণী''': আপুনি সম্পাদনা আৰম্ভ কৰাৰ পিছত পৃষ্ঠাখন বিলোপ কৰা হৈছে !",
 'confirmrecreate' => "আপুনি সম্পাদনা আৰম্ভ কৰাৰ পিছত সদস্য [[User:$1|$1]] ([[User talk:$1|আলোচনা]])য়ে পৃষ্ঠাখন বিলোপ কৰিছে, তাৰ কাৰণ:
 : ''$2''
-à¦\86পà§\81নি à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাà¦\96ন à¦ªà§\81নৰà§\8dনিৰà§\8dমাণ কৰিব খোজাটো নিশ্চিত কৰক ।",
-'confirmrecreate-noreason' => 'à¦\86পà§\81নি à¦¸à¦®à§\8dপাদনা à¦\86ৰমà§\8dভ à¦\95ৰাৰ à¦ªà¦¿à¦\9bত à¦¸à¦¦à¦¸à§\8dয [[User:$1|$1]] ([[User talk:$1|à¦\86লà§\8bà¦\9aনা]])য়à§\87 à¦ªà§\83ষà§\8dঠাà¦\96ন à¦¬à¦¿à¦²à§\8bপ à¦\95ৰিà¦\9bà§\87 à¥¤ à¦\86পà§\81নি à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাà¦\96ন à¦ªà§\81নৰà§\8dনিৰà§\8dমাণ কৰিব খোজাটো অনুগ্ৰহ কৰি নিশ্চিত কৰক ।',
+à¦\86পà§\81নি à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাà¦\96ন à¦\86à¦\95à§\8c à¦¸à§\83ষà§\8dà¦\9fি কৰিব খোজাটো নিশ্চিত কৰক ।",
+'confirmrecreate-noreason' => 'à¦\86পà§\81নি à¦¸à¦®à§\8dপাদনা à¦\86ৰমà§\8dভ à¦\95ৰাৰ à¦ªà¦¿à¦\9bত à¦¸à¦¦à¦¸à§\8dয [[User:$1|$1]] ([[User talk:$1|à¦\86লà§\8bà¦\9aনা]])য়à§\87 à¦ªà§\83ষà§\8dঠাà¦\96ন à¦¬à¦¿à¦²à§\8bপ à¦\95ৰিà¦\9bà§\87 à¥¤ à¦\86পà§\81নি à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাà¦\96ন à¦\86à¦\95à§\8c à¦¸à§\83ষà§\8dà¦\9fি কৰিব খোজাটো অনুগ্ৰহ কৰি নিশ্চিত কৰক ।',
 'recreate' => 'পুনৰ সৃষ্টি কৰক',
 
 # action=purge
-'confirm_purge_button' => "অ'কে",
-'confirm-purge-top' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাৰ à¦\95à§\87শà§\8dবà§\87 খালী কৰা হওক ?',
-'confirm-purge-bottom' => "à¦\8fà¦\96ন à¦ªà§\83ষà§\8dঠাà¦\95 à¦¶à§\8bধিত à¦\95ৰিলà§\87 à¦\95à§\87শà§\8dবà§\87 আতৰি যায় আৰু সকলোতকৈ শেহতীয়া সংশোধন প্ৰদৰ্শিত হ'বলৈ বাধ্য কৰে।",
+'confirm_purge_button' => 'ঠিক আছে',
+'confirm-purge-top' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাৰ à¦\95à§\87à¦\9aà§\8dâ\80\8c খালী কৰা হওক ?',
+'confirm-purge-bottom' => "à¦\8fà¦\96ন à¦ªà§\83ষà§\8dঠাà¦\95 à¦¶à§\8bধিত à¦\95ৰিলà§\87 à¦\95à§\87à¦\9aà§\8dâ\80\8c আতৰি যায় আৰু সকলোতকৈ শেহতীয়া সংশোধন প্ৰদৰ্শিত হ'বলৈ বাধ্য কৰে।",
 
 # action=watch/unwatch
-'confirm-watch-button' => 'à¦\85â\80\99à¦\95ে',
-'confirm-watch-top' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাà¦\96ন à¦\86পà§\8bনাৰ à¦²à¦\95à§\8dষà§\8dয-তালিà¦\95াত à¦¯à§\8bà¦\97 à¦\95ৰা à¦¯à¦¾à¦\93à¦\95 ?',
-'confirm-unwatch-button' => 'à¦\85â\80\99à¦\95ে',
-'confirm-unwatch-top' => 'এই পৃষ্ঠাখন আপোনাৰ লক্ষ্য-তালিকাৰ পৰা আঁতৰ কৰা হওক ?',
+'confirm-watch-button' => 'ঠিà¦\95 à¦\86à¦\9bে',
+'confirm-watch-top' => 'à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাà¦\96ন à¦\86পà§\8bনাৰ à¦²à¦\95à§\8dষà§\8dয-তালিà¦\95াত à¦¯à§\8bà¦\97 à¦\95ৰà¦\95',
+'confirm-unwatch-button' => 'ঠিà¦\95 à¦\86à¦\9bে',
+'confirm-unwatch-top' => 'এই পৃষ্ঠাখন আপোনাৰ লক্ষ্য-তালিকাৰ পৰা আঁতৰাওক',
 
 # Multipage image navigation
 'imgmultipageprev' => '← পূৰ্বৱৰ্তী পৃষ্ঠা',
@@ -3494,37 +3497,37 @@ $5
 
 # Auto-summaries
 'autosumm-blank' => "পৃষ্ঠাখন খালী কৰা হ'ল",
-'autosumm-replace' => 'বিষয়বসà§\8dতà§\81ক "$1"ৰে সলনি কৰা হ\'ল',
+'autosumm-replace' => 'পà§\84ষà§\8dঠাà¦\96নক "$1"ৰে সলনি কৰা হ\'ল',
 'autoredircomment' => "[[$1]]-ক পুনৰ্নিৰ্দেশ কৰা হ'ল",
 'autosumm-new' => '"$1" দি পৃষ্ঠা সৃষ্টি কৰা হ\'ল',
 
 # Live preview
 'livepreview-loading' => "ল'ড হৈ আছে…",
 'livepreview-ready' => "ল'ড হৈ আছে… প্ৰস্তুত!",
-'livepreview-failed' => "à¦\9cà§\80ৱনà§\8dত à¦ªà§\82ৰà§\8dবদৰ্শন ব্যৰ্থ হ'ল!
-সাধাৰণ à¦ªà§\82ৰà§\8dবদৰ্শন চেষ্টা কৰি চাওক।",
+'livepreview-failed' => "à¦\9cà§\80ৱনà§\8dত à¦ªà§\8dৰাà¦\95দৰ্শন ব্যৰ্থ হ'ল!
+সাধাৰণ à¦ªà§\8dৰাà¦\95দৰ্শন চেষ্টা কৰি চাওক।",
 'livepreview-error' => 'সংযোগ কৰিবলে ব্যৰ্থ হল: $1 "$2"।
-সাধাৰণ à¦ªà§\82ৰà§\8dবদৰ্শন চেষ্টা কৰি চাওক।',
+সাধাৰণ à¦ªà§\8dৰাà¦\95দৰ্শন চেষ্টা কৰি চাওক।',
 
 # Friendlier slave lag warnings
-'lag-warn-normal' => '$1 {{PLURAL:$1|ছেকেণ্ড|ছেকেণ্ড}} -কে নতুন পৰিৱৰ্তনসমূহ এই তালিকাত দেখুৱা নহবও পাৰে।',
-'lag-warn-high' => 'উচ্চ ডাটাবেইচ চাৰ্ভাৰ পলমৰ বাবে, $1 {{PLURAL:$1|ছেকেণ্ড|ছেকেণ্ড}} -কে নতুন পৰিৱৰ্তনসমূহ এই তালিকাত দেখুৱা নহবও পাৰে।',
+'lag-warn-normal' => '$1 {{PLURAL:$1|ছেকেণ্ড|ছেকেণ্ড}} তকৈ নতুন পৰিৱৰ্তনসমূহ এই তালিকাত দেখুওৱা নহবও পাৰে।',
+'lag-warn-high' => 'উচ্চ ডাটাবেইচ চাৰ্ভাৰ পলমৰ বাবে, $1 {{PLURAL:$1|ছেকেণ্ড|ছেকেণ্ড}} তকৈ নতুন পৰিৱৰ্তনসমূহ এই তালিকাত দেখুওৱা নহবও পাৰে।',
 
 # Watchlist editor
 'watchlistedit-numitems' => 'কথাবতৰা পৃষ্ঠাসমূহ বাদ দি আপোনাৰ লক্ষ্য-তালিকাত {{PLURAL:$1|এটা শিৰোনামা|$1 টা শিৰোনামা}} আছে ।',
 'watchlistedit-noitems' => 'আপোনাৰ লক্ষ্য-তালিকাত এখনো ঘাই পৃষ্ঠা নাই ।',
 'watchlistedit-normal-title' => 'লক্ষ্য-তালিকা সম্পাদন কৰক',
 'watchlistedit-normal-legend' => 'লক্ষ্য-তালিকাৰ পৰা শিৰোনামা আঁতৰাওক',
-'watchlistedit-normal-explain' => 'Titles on your watchlist are shown below.
-To remove a title, check the box next to it, and click "{{int:Watchlistedit-normal-submit}}".
-You can also [[Special:EditWatchlist/raw|edit the raw list]].',
+'watchlistedit-normal-explain' => 'আপোনাৰ নজৰ তালিকাত থকা সূচীবদ্ধ পৃষ্ঠা তলত দেখুওৱা হৈছে।
+পৃষ্ঠা সূচী আৰৰাবলৈ তাৰ আগত দিয়া বাকচত ক্লিক কৰক, আৰু "{{int:Watchlistedit-normal-submit}}"ত ক্লিক কৰক।
+আপুনি [[Special:EditWatchlist/raw|মূল তালিকাখনো]] সম্পাদনা কৰিব পাৰে।',
 'watchlistedit-normal-submit' => 'শিৰোনামা আঁতৰাওক',
 'watchlistedit-normal-done' => "{{PLURAL:$1|এটা শিৰোনামা|$1 টা শিৰোনামা}} আপোনাৰ লক্ষ্যতালিকাৰ পৰা আঁতৰোৱা হ'ল:",
 'watchlistedit-raw-title' => 'অশোধিত অনুসৰণ-তালিকা সম্পাদন কৰক',
 'watchlistedit-raw-legend' => 'অশোধিত অনুসৰণ-তালিকা সম্পাদন কৰক',
-'watchlistedit-raw-explain' => 'আপোনাৰ দৰ্শনতালিকাত থকা শীৰ্ষকসমূহ তলত দেখুৱা হৈছে, আৰু তালিকালে যোগ কৰি অথবা তালিকাৰ পৰা আতৰাই সম্পাদন কৰিব পাৰি;
+'watchlistedit-raw-explain' => 'আপোনাৰ দৰ্শন তালিকাত থকা শীৰ্ষকসমূহ তলত দেখুওৱা হৈছে, আৰু তালিকালৈ যোগ কৰি অথবা তালিকাৰ পৰা আতৰাই সম্পাদন কৰিব পাৰি;
 প্ৰতি শাৰী এটা শীৰ্ষক হিচাপে।
-যেতিয়া সম্পূৰ্ণ হব, "{{int:Watchlistedit-raw-submit}}" -ত ক্লিক কৰিব।
+যেতিয়া সম্পূৰ্ণ হব, "{{int:Watchlistedit-raw-submit}}"ত ক্লিক কৰিব।
 আপুনি লগতে [[Special:EditWatchlist|প্ৰামাণিক সম্পাদকক ব্যৱহাৰ কৰিব পাৰে]]।',
 'watchlistedit-raw-titles' => 'শিৰোনামা:',
 'watchlistedit-raw-submit' => 'লক্ষ্য-তালিকা আপডেট কৰক',
@@ -3542,7 +3545,7 @@ You can also [[Special:EditWatchlist/raw|edit the raw list]].',
 
 # Core parser functions
 'unknown_extension_tag' => 'অজ্ঞাত এক্সটেনচন টেগ "$1"',
-'duplicate-defaultsort' => '\'\'\'সাৱধান!\'\'\' পূৰ্বনিৰ্ধাৰিত ক্ৰমসূচক "$2"-এ আগৰ ক্ৰমসূচক "$1"-অক বিস্থাপিত কৰিছে।',
+'duplicate-defaultsort' => '\'\'\'সাৱধান!\'\'\' পূৰ্বনিৰ্ধাৰিত ক্ৰমসূচক "$2"-এ আগৰ ক্ৰমসূচক "$1"ক বিস্থাপিত কৰিছে।',
 
 # Special:Version
 'version' => 'সংস্কৰণ',
@@ -3564,10 +3567,10 @@ You can also [[Special:EditWatchlist/raw|edit the raw list]].',
 'version-license' => 'অনুজ্ঞাপত্ৰ',
 'version-poweredby-credits' => "এই ৱিকি '''[//www.mediawiki.org/ মিডিয়াৱিকিৰ]''' দ্বাৰা প্ৰচলিত , কপিৰাইট © ২০০১-$1 $2.",
 'version-poweredby-others' => 'অন্য',
-'version-license-info' => "মিডিয়াৱিà¦\95ি à¦\8fà¦\9fা à¦¬à¦¿à¦¨à¦¾à¦®à§\82লà§\80য়া à¦\9aফà§\8dà¦\9fৱà§\87ৰ; à¦\86পà§\81নি Free Software Foundation -ৰ à¦¦à§\8dবাৰা à¦ªà§\8dৰà¦\95াশিত GNU General Public License -ৰ à¦\9aà§\81à¦\95à§\8dতিসমà§\82হৰ à¦\85নà§\8dতৰà§\8dà¦\97ত à¦\87য়াà¦\95 à¦ªà§\81নৰ à¦¬à¦¿à¦²à¦¾à¦¬ à¦ªà¦¾à§°à¦¿à¦¬ à¦\85থবা à¦¸à¦²à¦¨à¦¿  à¦\95ৰিব à¦ªà¦¾à§°à¦¿à¦¬; à¦¹à¦¯à¦¼à¦¤à§\8b à¦²à¦¾à¦\87à¦\9aà§\87à¦\9eà§\8dà¦\9aৰ সংস্কৰণ ২ 
-à¦\85থবা (à¦\86পà§\81নাৰ বিকল্পত) যিকোনো পৰৱৰ্তী সংস্কৰণ।
+'version-license-info' => "মিডিয়াৱিà¦\95ি à¦\8fà¦\9fা à¦¬à¦¿à¦¨à¦¾à¦®à§\82লà§\80য়া à¦\9aফà§\8dà¦\9fৱà§\87ৰ; à¦\86পà§\81নি Free Software Foundation -ৰ à¦¦à§\8dবাৰা à¦ªà§\8dৰà¦\95াশিত GNU General Public License -ৰ à¦\9aà§\81à¦\95à§\8dতিসমà§\82হৰ à¦\85নà§\8dতৰà§\8dà¦\97ত à¦\87য়াà¦\95 à¦ªà§\81নৰ à¦¬à¦¿à¦¤à§°à¦£ à¦\95ৰিব à¦ªà¦¾à§°à¦¿à¦¬ à¦\85থবা à¦¸à¦²à¦¨à¦¿ à¦\95ৰিব à¦ªà¦¾à§°à¦¿à¦¬; à¦¹à¦¯à¦¼à¦¤à§\8b à¦\85নà§\81à¦\9cà§\8dà¦\9eাপতà§\8dৰৰ সংস্কৰণ ২ 
+à¦\85থবা (à¦\86পà§\8bনাৰ বিকল্পত) যিকোনো পৰৱৰ্তী সংস্কৰণ।
 
-মিডিয়াৱিà¦\95ি à¦\8fà¦\87à¦\9fà§\8b à¦\86শাত à¦¬à¦¿à¦²à§\8bৱা হৈছে যে ই ব্যৱহাৰযোগ্য হ'ব, কিন্তু কোনো ৱাৰেন্টি নথকাকৈ; ব্যৱসায়ীক অথবা কোনো এটা বিশেষ কাৰণৰ যোগ্যতাৰ বাবে বুজোৱা ৱাৰেন্টি নথকাকৈ। 
+মিডিয়াৱিà¦\95ি à¦\8fà¦\87à¦\9fà§\8b à¦\86শাত à¦¬à¦¿à¦¤à§°à¦£ à¦\95ৰা হৈছে যে ই ব্যৱহাৰযোগ্য হ'ব, কিন্তু কোনো ৱাৰেন্টি নথকাকৈ; ব্যৱসায়ীক অথবা কোনো এটা বিশেষ কাৰণৰ যোগ্যতাৰ বাবে বুজোৱা ৱাৰেন্টি নথকাকৈ। 
 অধিক জানিবলৈ GNU General Public License চাওক।
 
 আপুনি এই প্ৰগ্ৰামৰ সৈতে [{{SERVER}}{{SCRIPTPATH}}/COPYING GNU General Public License -ৰ এটা কপি] পাব লাগে; যদি নাই পোৱা, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA অথবা [//www.gnu.org/licenses/old-licenses/gpl-2.0.html ইয়াক অনলাইন পঢ়ক] -লে লিখক।",
@@ -3579,8 +3582,8 @@ You can also [[Special:EditWatchlist/raw|edit the raw list]].',
 'version-entrypoints-header-url' => 'ইউআৰএল',
 
 # Special:FilePath
-'filepath' => 'ফাà¦\87ল পথ',
-'filepath-page' => 'ফাà¦\87ল:',
+'filepath' => 'নথিৰ পথ',
+'filepath-page' => 'নথি:',
 'filepath-submit' => 'যাওক',
 'filepath-summary' => 'এই বিশেষ পৃষ্ঠায় এটা নথিপত্ৰৰ বাবে সম্পূৰ্ণ পথ ঘুৰাই পঠায়।
 ছবিসমূহক সম্পূৰ্ণ বিভেদনত দেখুৱা হয়, অন্য নথিপত্ৰ ধৰণসমূহ সিহতৰ সংলঘ্ন প্ৰগ্ৰামৰ সৈতে প্ৰত্যক্ষভাৱে আৰম্ভ হয়।',
@@ -3589,12 +3592,12 @@ You can also [[Special:EditWatchlist/raw|edit the raw list]].',
 'fileduplicatesearch' => 'প্ৰতিলিপি পৃষ্ঠাসমূহ অনুসন্ধান কৰক',
 'fileduplicatesearch-summary' => 'হেছ্‌ মানসমূহৰ উপৰত নিৰ্ভৰ কৰি প্ৰতিলিপিত নথিপত্ৰসমূহৰ বাবে সন্ধান কৰক।',
 'fileduplicatesearch-legend' => 'প্ৰতিলিপিৰ বাবে অনুসন্ধান কৰক',
-'fileduplicatesearch-filename' => 'ফাইলনাম:',
+'fileduplicatesearch-filename' => 'ফাà¦\87লৰ à¦¨à¦¾à¦®:',
 'fileduplicatesearch-submit' => 'সন্ধান কৰক',
 'fileduplicatesearch-info' => '$1 × $2 পিক্সেল<br /> ফাইলৰ মাত্ৰা: $3<br /> MIME প্ৰকাৰ: $4',
-'fileduplicatesearch-result-1' => '"$1" à¦«à¦¾à¦\87লৰ কোনো প্ৰতিলিপি নাই ।',
+'fileduplicatesearch-result-1' => '"$1" à¦¨à¦¥à¦¿ৰ কোনো প্ৰতিলিপি নাই ।',
 'fileduplicatesearch-result-n' => '"$1" ফাইলৰ {{PLURAL:$2|এটা প্ৰতিলিপি|$2টা প্ৰতিলিপি}} আছে ।',
-'fileduplicatesearch-noresults' => 'à¦\95à§\8bনà§\8b "$1" à¦¨à¦¾à¦®à§° à¦«à¦¾à¦\87ল à¦¸à¦¨à§\8dধান à¦ªà§\8bৱা à¦¨à¦\97ল ।',
+'fileduplicatesearch-noresults' => 'à¦\95à§\8bনà§\8b "$1" à¦¨à¦¾à¦®à§° à¦¨à¦¥à¦¿à§° à¦¸à¦¨à§\8dধান à¦ªà§\8bৱা à¦¨à¦\97â\80\99ল ।',
 
 # Special:SpecialPages
 'specialpages' => 'বিশেষ পৃষ্ঠাসমূহ',
@@ -3605,7 +3608,7 @@ You can also [[Special:EditWatchlist/raw|edit the raw list]].',
 'specialpages-group-maintenance' => 'তত্বাৱধানৰ কাৰ্যবিৱৰণীসমূহ',
 'specialpages-group-other' => 'অন্যান্য বিশেষ পৃষ্ঠাসমূহ',
 'specialpages-group-login' => 'প্ৰৱেশ/সদস্যভুক্তি',
-'specialpages-group-changes' => "সাম্প্ৰতিক সালসলনি আৰু ল'গসমূহ",
+'specialpages-group-changes' => 'সাম্প্ৰতিক সালসলনি আৰু অভিলেখসমূহ',
 'specialpages-group-media' => "মিডিয়া বিৱৰণী আৰু আপল'ডসমূহ",
 'specialpages-group-users' => 'সদস্যবৃন্দ আৰু অধিকাৰসমূহ',
 'specialpages-group-highuse' => 'অধিক ব্যবহৃত পৃষ্ঠাসমূহ',
@@ -3616,13 +3619,13 @@ You can also [[Special:EditWatchlist/raw|edit the raw list]].',
 'specialpages-group-spam' => 'স্পাম সা-সঁজুলি',
 
 # Special:BlankPage
-'blankpage' => 'à¦\96ালà§\80 পৃষ্ঠা',
+'blankpage' => 'à¦\89à¦\95া পৃষ্ঠা',
 'intentionallyblankpage' => 'এই পৃষ্ঠা ইচ্ছাকৃতভাৱে খালী ৰখা হৈছে ।',
 
 # External image whitelist
 'external_image_whitelist' => " #এই শাৰী যেনেকৈ আছে তেনেকৈয়ে ৰাখক<pre>
 #স্বাভাৱিক অভিব্যক্তি অংশসমূহ (কেৱল সেই অংশ যি // মাজেৰে যায়) তলত দিয়ক
-#ইহঁতক বহিৰ্তম (hotlinked) ছবিসমূহৰ URLসমূহৰ সৈতে মিলাই চোৱা হ'ব
+#ইহঁতক বহিৰ্তম (hotlinked) ছবিসমূহৰ URL সমূহৰ সৈতে মিলাই চোৱা হ'ব
 #যিসমূহ মিল খায় সেইসমূহক ছবি হিচাপে প্ৰদৰ্শন কৰা হব, নহলে কেৱল ছবিখনলৈ এটা সংযোগ দেখুওৱা হ'ব
 # # -ৰ সৈতে আৰম্ভ হোৱা শাৰীসমূহক মন্তব্য বুলি ধৰা হয়
 #ই ফলা-সংবেদ্য
@@ -3630,8 +3633,8 @@ You can also [[Special:EditWatchlist/raw|edit the raw list]].',
 #সকলো regex অংশক এই শাৰীৰ ওপৰত দিব। এই শাৰী যেনেকৈ আছে তেনেকৈয়ে ৰাখক</pre>",
 
 # Special:Tags
-'tags' => 'সালসলনি টেগ চাওক',
-'tag-filter' => '[[Special:Tags|Tag]] ছেকনী:',
+'tags' => 'সালসলনি টেগসমূহ চাওক',
+'tag-filter' => '[[Special:Tags|টেগ]] ছেকনী:',
 'tag-filter-submit' => 'সংশোধন',
 'tags-title' => 'টেগসমূহ',
 'tags-intro' => 'ছফ্টৱেৰে সম্পাদনা চিহ্নিত কৰিব পৰা টেগসমূহ আৰু সেইবোৰৰ অৰ্থ এই পৃষ্ঠাত তালিকাভুক্ত কৰা হৈছে ।',
@@ -3662,12 +3665,12 @@ You can also [[Special:EditWatchlist/raw|edit the raw list]].',
 'dberr-info' => '(তথ্যকোষৰ চাৰ্ভাৰৰ লগত যোগাযোগ কৰিব নোৱাৰি: $1)',
 'dberr-usegoogle' => 'এই পৰিস্থিতিত আপুনি গুগলৰ মাধ্যমেৰে অনুসন্ধান কৰিব পাৰে ।',
 'dberr-outofdate' => "মন কৰক যে, আমাৰ বিষয়বস্তু সম্পৰ্কে তেওঁলোকৰ সূচী পুৰণা হ'ব পাৰে ।",
-'dberr-cachederror' => "à¦\8fà¦\87à¦\96ন à¦\85নà§\81ৰà§\8bধ à¦\95ৰা à¦ªà§\83ষà§\8dঠাৰ à¦\95à§\87শà§\8dবà§\8dâ\80\8cড à¦\95পà§\80, à¦¨à¦¬à§\80à¦\95ৰণ à¦¨à¦\95ৰা হ'ব পাৰে ।",
+'dberr-cachederror' => "à¦\8fà¦\87à¦\96ন à¦\85নà§\81ৰà§\8bধ à¦\95ৰা à¦ªà§\83ষà§\8dঠাৰ à¦\95à§\87à¦\9aà§\8dâ\80\8cড à¦²à¦¿à¦ªà¦¿, à¦¯à¦¿à¦\96ন à¦¨à¦¬à§\80à¦\95ৰণ à¦¨à¦\95ৰাà¦\93 হ'ব পাৰে ।",
 
 # HTML forms
-'htmlform-invalid-input' => 'à¦\86পà§\8bনাৰ à¦\95িà¦\9bà§\81মান à¦\87নপà§\81à¦\9fৰ à¦²à¦\97ত সমস্যা হৈছে',
+'htmlform-invalid-input' => 'à¦\86পà§\8bনাৰ à¦\85নà§\8dতৰà§\8dভà§\81à¦\95à§\8dতিত à¦\95িà¦\9bà§\81মান সমস্যা হৈছে',
 'htmlform-select-badoption' => 'আপুনি ধাৰ্য কৰা মান উপযুক্ত বিকল্প নহয়।',
-'htmlform-int-invalid' => 'à¦\85পà§\81নি à¦§à¦¾à§°à§\8dয à¦\95ৰা à¦®à¦¾à¦¨ à¦\87নà§\8dà¦\9fà§\87à¦\9cাৰ (integer) নহয়।',
+'htmlform-int-invalid' => 'à¦\85পà§\81নি à¦§à¦¾à§°à§\8dয à¦\95ৰা à¦®à¦¾à¦¨ à¦\85à¦\96ণà§\8dড à¦¸à¦\82à¦\96à§\8dযা (integer) নহয়।',
 'htmlform-float-invalid' => 'অপুনি ধাৰ্য কৰা মান সংখ্যা নহয়।',
 'htmlform-int-toolow' => 'আপুনি ধাৰ্য কৰা মান ন্যূনতম $1 তকৈ তলত',
 'htmlform-int-toohigh' => 'আপুনি ধাৰ্য কৰা মান অধিকতম $1 তকৈ ওপৰত',
@@ -3681,14 +3684,14 @@ You can also [[Special:EditWatchlist/raw|edit the raw list]].',
 'sqlite-no-fts' => '$1 সম্পূৰ্ণ-পাঠ অনুসন্ধান সমৰ্থন অবিহনে',
 
 # New logging system
-'logentry-delete-delete' => '$1 মচি পেলোৱা হল পৃষ্ঠা $3',
-'logentry-delete-restore' => '$1 পুনৰ সংৰক্ষণ কৰা হল পৃষ্ঠা $3',
+'logentry-delete-delete' => '$1’ৰ দ্বাৰা $3 পৃষ্ঠাখন বিলোপ কৰা হ’ল',
+'logentry-delete-restore' => '$1 পুনৰ সংৰক্ষণ কৰা হল পৃষ্ঠা $3',
 'logentry-delete-event' => '$3: $4 -ত {{PLURAL:$5|এটা লগ ঘটনা|$5 লগ ঘটনাসমূহ}} -ৰ $1 পৰিৱৰ্তন কৰা দৃশ্যমানতা',
-'logentry-delete-revision' => 'পৃষ্ঠা $3: $4 -ত {{PLURAL:$5|এটা পুনৰীক্ষন|$5 পুনৰীক্ষনসমূহ}} -ৰ $1 পৰিৱৰ্তন কৰা হল দৃশ্যমানতা',
-'logentry-delete-event-legacy' => '$3 -ত লগ ঘটনামসমূহৰ $1 changed দৃশ্যমানতা',
-'logentry-delete-revision-legacy' => 'পৃষ্ঠা $3 -ত পুনৰীক্ষনসমূহৰ $1 changed দৃশ্যমানতা',
+'logentry-delete-revision' => 'পৃষ্ঠা $3: $4ত {{PLURAL:$5|এটা পুনৰীক্ষন|$5 পুনৰীক্ষনসমূহ}}ৰ $1 দৃশ্যমানতা পৰিৱৰ্তন কৰা হ’ল',
+'logentry-delete-event-legacy' => '$3ত অভিলেখ ঘটনামসমূহৰ $1 দৃশ্যমানতা পৰিৱৰ্তন কৰা হ’ল',
+'logentry-delete-revision-legacy' => 'পৃষ্ঠা $3ত পুনৰীক্ষনসমূহৰ $1 দৃশ্যমানতা পৰিৱৰ্তন কৰা হল',
 'logentry-suppress-delete' => '$1 সংকোচিত পৃষ্ঠা $3',
-'logentry-suppress-event' => '$3: $4 -ত {{PLURAL:$5|এটা লগ ঘটনা|$5 লগ ঘটনাসমূহ}} -ৰ $1 গোপন পৰিৱৰ্তন কৰা হল দৃশ্যমানতা',
+'logentry-suppress-event' => '$3: $4 -ত {{PLURAL:$5|এটা লগ ঘটনা|$5 লগ ঘটনাসমূহ}} -ৰ $1 গোপন পৰিৱৰ্তন কৰা হল দৃশ্যমানতা',
 'logentry-suppress-revision' => 'পৃষ্ঠা $3: $4 -ত {{PLURAL:$5|এটা পুনৰীক্ষন|$5 পুনৰীক্ষনসমূহ}} -ৰ $1 গোপন পৰিৱৰ্তনসমূহ দৃশ্যমানতা',
 'logentry-suppress-event-legacy' => '$3 -ত লগ ঘটনাসমূহৰ $1 গোপন পৰিৱৰ্তন কৰা হল দৃশ্যমানতা',
 'logentry-suppress-revision-legacy' => 'পৃষ্ঠা $3 -ত পুনৰীক্ষনসমূহৰ $1 গোপন পৰিৱৰ্তন কৰা হল',
@@ -3700,21 +3703,21 @@ You can also [[Special:EditWatchlist/raw|edit the raw list]].',
 'revdelete-uname-unhid' => 'সদস্যনাম মুকলি কৰা হৈছে',
 'revdelete-restricted' => 'এই সীমাবদ্ধতা প্ৰশাসকৰ ক্ষেত্ৰত প্ৰযোজ্য',
 'revdelete-unrestricted' => 'প্ৰশাসকৰ সীমাবদ্ধতা বাতিল কৰা হ’ল',
-'logentry-move-move' => 'পৃষ্ঠা $3 -ৰ পৰা $4 -লে $1 স্থানান্তৰ কৰা হল',
-'logentry-move-move-noredirect' => 'পুনৰ্নিৰ্দেশ নেৰাকৈ $1 স্থানান্তৰ কৰা হল পৃষ্ঠা $3 -ৰ পৰা $4',
-'logentry-move-move_redir' => 'পুনৰ্নিৰ্দেশৰে পৃষ্ঠা $3 -ৰ পৰা $4 $1 স্থানান্তৰ কৰা হল',
+'logentry-move-move' => 'পৃষ্ঠা $3ৰ পৰা $4লৈ $1য়ে স্থানান্তৰ কৰিলে',
+'logentry-move-move-noredirect' => '$1য়ে পুনৰ্নিৰ্দেশ নেৰাকৈ পৃষ্ঠা $3ৰ পৰা $4লৈ স্থানান্তৰ কৰিলে',
+'logentry-move-move_redir' => 'পুনৰ্নিৰ্দেশৰে পৃষ্ঠা $3ৰ পৰা $4 $1লৈ স্থানান্তৰ কৰা হ’ল',
 'logentry-move-move_redir-noredirect' => 'পুনৰ্নিৰ্দেশ নেৰাকৈ এটা পুনৰ্নিৰ্দেশৰ ওপৰেৰে পৃষ্ঠা $3 -ৰ পৰা $4 $1 স্থানান্তৰ কৰা হল',
 'logentry-patrol-patrol' => "পৃষ্ঠা $3 -ৰ $1 চিহ্নিত সংশোধন $4 নিৰীক্ষণ কৰা হ'ল",
 'logentry-patrol-patrol-auto' => "পৃষ্ঠা $3 -ৰ $1 চিহ্নিত সংশোধন $4 স্বচালিতভাৱে নিৰীক্ষণ কৰা হ'ল",
-'logentry-newusers-newusers' => '$1-এ এটা ব্যৱহাৰকাৰী একাউণ্ট সৃষ্টি কৰিলে',
-'logentry-newusers-create' => '$1-এ এটা ব্যৱহাৰকাৰী একাউণ্ট সৃষ্টি কৰিলে',
-'logentry-newusers-create2' => '$1-এ এটা ব্যৱহাৰকাৰী একাউণ্ট $3 সৃষ্টি কৰিলে',
-'logentry-newusers-autocreate' => 'একাউণ্ট $1-ক স্বয়ংক্ৰিয়ভাৱে সৃষ্টি কৰা হৈছিল',
+'logentry-newusers-newusers' => '$1’য়ে এটা ব্যৱহাৰকাৰী একাউণ্ট সৃষ্টি কৰিলে',
+'logentry-newusers-create' => '$1য়ে এটা ব্যৱহাৰকাৰী একাউণ্ট সৃষ্টি কৰিলে',
+'logentry-newusers-create2' => '$1’য়ে এটা ব্যৱহাৰকাৰী একাউণ্ট $3 সৃষ্টি কৰিলে',
+'logentry-newusers-autocreate' => '$1’ৰ একাউণ্ট স্বয়ংক্ৰিয়ভাৱে সৃষ্টি কৰা হৈছিল',
 'newuserlog-byemail' => 'গুপ্তশব্দ ই-মেইল কৰি পঠোৱা হৈছে',
 
 # Feedback
 'feedback-bugornote' => 'যদি আপুনি এটা কাৰিকৰী সমস্যাৰ বিৱৰণ দিবলৈ প্ৰস্তুত, অনুগ্ৰহ কৰি [$1 এটা বাগ ৰিপ\'ৰ্ট কৰক]।
-নহ\'লে আপুনি তলৰ সহজ ফৰ্ম ব্যৱহাৰ কৰিব পাৰিব। আপোনাৰ মন্তব্য আপোনাৰ সদস্যনাম আৰু আপুনি ব্যৱহাৰ কৰা ব্ৰাউজাৰৰ সৈতে "[$3 $2]" -পৃষ্ঠাত যোগ কৰা হ\'ব।',
+নহ\'লে আপুনি তলৰ সহজ ফৰ্ম ব্যৱহাৰ কৰিব পাৰিব। আপোনাৰ মন্তব্য আপোনাৰ সদস্যনাম আৰু আপুনি ব্যৱহাৰ কৰা ব্ৰাউজাৰৰ সৈতে "[$3 $2]" -পৃষ্ঠাত যোগ কৰা হ\'ব।',
 'feedback-subject' => 'বিষয়:',
 'feedback-message' => 'বাৰ্তা:',
 'feedback-cancel' => 'বাতিল কৰক',
@@ -3730,19 +3733,19 @@ You can also [[Special:EditWatchlist/raw|edit the raw list]].',
 
 # API errors
 'api-error-badaccess-groups' => "এই ৱিকিত ফাইল আপল'ড কৰিবলৈ আপোনাৰ অনুমতি নাই।",
-'api-error-badtoken' => 'à¦\86ভà§\8dযনà§\8dতৰà§\80ণ à¦¤à§\8dৰà§\81à¦\9fি: à¦¬à§\87য়া টোকেন।',
-'api-error-copyuploaddisabled' => "ইউ আৰ এল-ৰ মাধ্যমেৰে আপল'ড কৰাটো এই চাৰ্ভাৰত নিষ্ক্ৰিয় কৰা হৈছে।",
+'api-error-badtoken' => 'à¦\86ভà§\8dযনà§\8dতৰà§\80ণ à¦¤à§\8dৰà§\81à¦\9fি: à¦­à§\81ল টোকেন।',
+'api-error-copyuploaddisabled' => "ইউ আৰ এলৰ মাধ্যমেৰে আপল'ড কৰাটো এই চাৰ্ভাৰত নিষ্ক্ৰিয় কৰা হৈছে।",
 'api-error-duplicate' => 'এই চাইটত একে বিষয়বস্তুৰ {{PLURAL:$1|[$2 আন এটা ফাইল]|[$2 আন কিছুমান ফাইল]}} ইতিমধ্যেই আছে।',
 'api-error-duplicate-archive' => 'এই চাইটত একে বিষয়বস্তুৰ {{PLURAL:$1|[$2 আন এটা ফাইল]|[$2 আন কিছুমান ফাইল]}} ইতিমধ্যেই আছিল, কিন্তু {{PLURAL:$1|সেইটো|সেইবোৰ}} বিলোপ কৰা হৈছে।',
-'api-error-duplicate-archive-popup-title' => 'পà§\8dৰতিলিপি {{PLURAL:$1|ফাà¦\87ল|ফাà¦\87ল}} à¦¯à§\8bনà¦\95à§\87à¦\87à¦\9fা à¦\87তিমধà§\8dযà§\87 à¦®à¦\9aা হৈছে।',
-'api-error-duplicate-popup-title' => 'প্ৰতিলিপি {{PLURAL:$1|ফাইল|ফাইল}}।',
-'api-error-empty-file' => 'à¦\86পà§\81নি à¦¦à¦¾à¦\96িল à¦\95ৰা à¦«à¦¾à¦\87লà¦\96ন খালী ।',
+'api-error-duplicate-archive-popup-title' => 'পà§\8dৰতিলিপি {{PLURAL:$1|ফাà¦\87ল|ফাà¦\87ল}} à¦¯à¦¿à¦¸à¦®à§\82হ à¦\87তিমধà§\8dযà§\87 à¦¬à¦¿à¦²à§\8bপ à¦\95ৰা হৈছে।',
+'api-error-duplicate-popup-title' => 'প্ৰতিলিপি {{PLURAL:$1|ফাইল|ফাইলসমূহ}}।',
+'api-error-empty-file' => 'à¦\86পà§\81নি à¦¦à¦¾à¦\96িল à¦\95ৰা à¦«à¦¾à¦\87লà¦\9fà§\8b খালী ।',
 'api-error-emptypage' => 'নতুন, খালী পৃষ্ঠা সৃষ্টি কৰিবলৈ অনুমতি নাই।',
 'api-error-fetchfileerror' => 'আভ্যন্তৰীণ ত্ৰুটি: ফাইলটো অনাত কিবা সমস্যা হৈছে।',
 'api-error-file-too-large' => 'আপুনি দাখিল কৰা ফাইলখন বৰ ডাঙৰ ।',
 'api-error-filename-tooshort' => 'ফাইলৰ নামটো অতি চুটি।',
-'api-error-filetype-banned' => 'à¦\8fà¦\87 à¦§à§°à¦£à§° à¦«à¦¾à¦\87ল à¦¨à¦¿à¦·à§\87ধ ।',
-'api-error-filetype-missing' => 'ফাইলনামটোত এক্সটেন্‌ছন নাই।',
+'api-error-filetype-banned' => 'à¦\8fà¦\87 à¦§à§°à¦£à§° à¦«à¦¾à¦\87ল à¦¨à¦¿à¦·à¦¿à¦¦à§\8dধ।',
+'api-error-filetype-missing' => 'ফাইল নামটোত এক্সটেন্‌ছন নাই।',
 'api-error-hookaborted' => 'আপুনি কৰিব বিচৰা সালসলনি এটা এক্সটেনচনৰ দ্বাৰা বাতিল কৰা হৈছে।',
 'api-error-http' => "আভ্যন্তৰীণ ত্ৰুটি: চাৰ্ভাৰৰ লগত সংযোগ স্থাপন নহ'ল।",
 'api-error-illegal-filename' => 'ফাইলৰ এই নামটো গ্ৰহণযোগ্য নহয় ।',
@@ -3750,14 +3753,14 @@ You can also [[Special:EditWatchlist/raw|edit the raw list]].',
 'api-error-invalid-file-key' => "আভ্যন্তৰীণ ত্ৰুটি: অস্থায়ী ভঁৰালত ফাইলটো পোৱা নগ'ল।",
 'api-error-missingparam' => 'আভ্যন্তৰীণ ত্ৰুটি: অনুৰোধত পেৰামিটাৰৰ কিবা সমস্যা ৰৈছে।',
 'api-error-missingresult' => "আভ্যন্তৰীণ ত্ৰুটি: অনুলিপি সফল হৈছেনে নাই তাক নিশ্চিত কৰিব পৰা নগ'ল।",
-'api-error-mustbeloggedin' => "ফাà¦\87ল à¦\86পল'ড à¦\95ৰিবলà§\88 à¦\86পà§\81নি à¦²à¦\97à§\8dâ\80\8c à¦\87নà§\8dâ\80\8c à¦\95ৰিব à¦²à¦¾à¦\97িব।",
+'api-error-mustbeloggedin' => "ফাà¦\87ল à¦\86পল'ড à¦\95ৰাৰ à¦\86à¦\97à§\87য়à§\87 à¦\86পà§\81নি à¦ªà§\8dৰৱà§\87শ à¦\95ৰাà¦\9fà§\8b à¦¬à¦¾à¦§à§\8dযতামà§\82লà¦\95 ।",
 'api-error-mustbeposted' => 'আভ্যন্তৰীণ ত্ৰুটি: এই অনুৰোধত HTTP POST প্ৰয়োজন।',
 'api-error-noimageinfo' => "আপল'ড সফল হৈছে, কিন্তু চাৰ্ভাৰে ফাইলটোৰ সম্পৰ্কে কোনো তথ্য প্ৰদান কৰা নাই।",
 'api-error-nomodule' => "আভ্যন্তৰীণ ত্ৰুটি: কোনো আপল'ড মডিউল ঠিক কৰা হোৱা নাই।",
 'api-error-ok-but-empty' => 'আভ্যন্তৰীণ ত্ৰুটি: চাৰ্ভাৰে কোনো সঁহাৰি জনোৱা নাই।',
 'api-error-overwrite' => 'এতিয়া থকা ফাইলৰ ওপৰত লিখা নিষেধ।',
 'api-error-stashfailed' => 'আভ্যন্তৰীণ ত্ৰুটি: অস্থায়ী ফাইল সাঁচি ৰখাত চাৰ্ভাৰ অসমৰ্থ হৈছে।',
-'api-error-timeout' => 'à¦\85শা কৰা সময়ৰ ভিতৰত চাৰ্ভাৰটোৱে সঁহাৰি নজনালে।',
+'api-error-timeout' => 'à¦\86শা কৰা সময়ৰ ভিতৰত চাৰ্ভাৰটোৱে সঁহাৰি নজনালে।',
 'api-error-unclassified' => 'এক অজ্ঞাত সমস্যাই দেখা দিছে।',
 'api-error-unknown-code' => 'অজ্ঞাত সমস্যা: "$1"।',
 'api-error-unknown-error' => "আভ্যন্তৰীণ ত্ৰুটি: আপোনাৰ ফাইলটো আপল'ড কৰাত কিবা সমস্যা হৈছে।",
@@ -3777,4 +3780,6 @@ You can also [[Special:EditWatchlist/raw|edit the raw list]].',
 'duration-centuries' => '$1 {{PLURAL:$1|শতাব্দী|শতাব্দী}}',
 'duration-millennia' => '$1 {{PLURAL:$1|সহস্ৰাব্দ|সহস্ৰাব্দ}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => "$1 চাৰ্ভাৰত তলা মোকোলাই দিব পৰা নগ'ল",
 );
index 1803e7b..5ad6fa2 100644 (file)
@@ -65,7 +65,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Anubrir les ediciones vixilaes nos cambeos recientes',
 'tog-newpageshidepatrolled' => 'Anubrir les páxines vixilaes na llista de páxines nueves',
 'tog-extendwatchlist' => "Espander la llista de vixilancia p'amosar tolos cambeos, non solo los más recientes.",
-'tog-usenewrc' => 'Cambeos recientes ameyoraos (necesita JavaScript)',
+'tog-usenewrc' => 'Agrupar los cambeos por páxina nos cambeos recientes y na llista de vixilancia (necesita JavaScript)',
 'tog-numberheadings' => 'Autonumberar los encabezaos',
 'tog-showtoolbar' => "Amosar la barra de ferramientes d'edición (JavaScript)",
 'tog-editondblclick' => 'Editar páxines con doble clic (necesita JavaScript)',
@@ -452,6 +452,8 @@ El motivu conseñáu ye «''$2''».",
 L'alministrador que lu bloquió dio esti motivu: «$3».",
 'invalidtitle-knownnamespace' => 'Títulu non válidu col espaciu de nomes «$2» y el testu «$3»',
 'invalidtitle-unknownnamespace' => "Titulu non válidu col númberu $1 d'espaciu de nomes desconocíu y el testu «$2»",
+'exception-nologin' => 'Non identificáu',
+'exception-nologin-text' => "Esta páxina o aición necesita qu'anicies sesión nesta wiki.",
 
 # Virus scanner
 'virus-badscanner' => "Fallu de configuración: Escáner de virus desconocíu: ''$1''",
index 18c6564..1a04bbb 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Azerbaijani (Azərbaycanca)
+/** Azerbaijani (azərbaycanca)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index e2b8e2c..0e00fa6 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Filipinayzd
+ * @author Geopoet
  * @author Kaganer
  * @author Steven*fung
  * @author Urhixidur
@@ -95,50 +96,63 @@ $specialPageAliases = array(
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'Kurítan an mga takód:',
+'tog-underline' => 'Linyahan an kilyawan:',
 'tog-justify' => 'Pantayón an mga talodtód',
 'tog-hideminor' => 'Tagóon an mga saradít na paghirá sa nakakaági pa sanáng pagbabàgo',
-'tog-hidepatrolled' => 'Tagóon an mga saradít na paghirá sa nakakaági pa sanáng pagbabàgo',
-'tog-newpageshidepatrolled' => 'Tagóon an mga pigbabantayán na pahina sa lista nin mga bàgong pahina',
-'tog-extendwatchlist' => 'Palakbangón an taytáy kan babantayan tanganing mahilíng an gabós na angay na pagbàgo',
-'tog-usenewrc' => 'Gamiton an pinauróg na mga nakaaging pagbàgo (kaipohan nin JavaScript)',
-'tog-numberheadings' => 'Tolos na pagbílang sa mga pamayohán',
-'tog-showtoolbar' => 'Ipahilíng an toolbar nin paghirá (JavaScript)',
-'tog-editondblclick' => 'Hirahón sa dobleng paglagatík an mga pahina (JavaScript)',
-'tog-editsection' => 'Togótan an paghirá kan seksyon sa paági kan mga takód na [hirá]',
-'tog-editsectiononrightclick' => 'Togotan an paghirá kan seksyon sa pag-lagatik sa walá sa mga titulo nin seksyon (JavaScript)',
-'tog-showtoc' => 'Ipahilíng an indise kan mga laog (para sa mga pahinang igwang sobra sa 3 pamayohan)',
-'tog-rememberpassword' => 'Giromdomón an mga paglaóg ko sa panlibotlibot na iní (sa nakaaging $1 {{PLURAL:$1|aldaw|mga aldaw}})',
-'tog-watchcreations' => 'Idúgang an mga pahinang ginigíbo ko sa pigbabantayan ko',
-'tog-watchdefault' => 'Idúgang an mga pahinang pighíhirá ko sa pigbabantayan ko',
-'tog-watchmoves' => 'Idúgang an mga pahinang piglilípat ko sa pigbabantayan ko',
-'tog-watchdeletion' => 'Idúgang an mga pahinang pigpapárà ko sa pigbabantayan ko',
-'tog-minordefault' => 'Markahán an gabos na paghirá nin sadit na paghirá',
+'tog-hidepatrolled' => 'Tagóa an patrolyadong mga paghirá sa nakakaági pa sanáng pagbabàgo',
+'tog-newpageshidepatrolled' => 'Tagóa an patrolyadong mga pahina gikan sa listahan kan bàgong pahina',
+'tog-extendwatchlist' => 'Palakbanga an bantay-listahan (watchlist) na maipahiling an gabos na pinagbago, bako sana an pinakahurihang binago',
+'tog-usenewrc' => 'Grupong mga pagbabago sa kada pahina kan pinakahuring mga binago asin bantay-listahan (minakaipo nin JavaScript)',
+'tog-numberheadings' => 'Tolos-bilang na mga pamayohán',
+'tog-showtoolbar' => 'Ihayag an toolbar nin paghirá (minakaipo nin JavaScript)',
+'tog-editondblclick' => 'Liwaton an mga pahina sa dobleng pagpindot (minakaipo nin JavaScript)',
+'tog-editsection' => 'Paganaha an paghihirá kan seksyon sa paági kan [liwaton] na kilyawan',
+'tog-editsectiononrightclick' => 'Paganaha an paghihirá kan seksyon sa paagi kan patoong pagpindot sa mga titulo kan seksyon (minakaipo nin JavaScript)',
+'tog-showtoc' => 'Ihayag an taytayan nin mga laog (para sa mga pahinang igwang sobra sa 3 pamayohan)',
+'tog-rememberpassword' => 'Giromdoma an sakong paglaóg sa kilyaw (browser) na ini (para sa maximum na $1 {{PLURAL:$1|aldaw|mga aldaw}})',
+'tog-watchcreations' => 'Idagdag sa mga pahina na ako an nagmukna sa sakong bantay-listahan',
+'tog-watchdefault' => 'Idagdag an mga pahina na ako an nagliwat sa sakong bantay-listahan',
+'tog-watchmoves' => 'Idagdag an mga pahina na ako an nagbalyo sa sakong bantay-listahan',
+'tog-watchdeletion' => 'Idagdag an mga pahina na ako an nagpura sa sakong bantay-listahan',
+'tog-minordefault' => 'Markahán gabos na saradit na pagliwat sa paaging panugmad',
 'tog-previewontop' => 'Ipahilíng an patànaw bàgo an kahon nin paghirá',
 'tog-previewonfirst' => 'Ipahilíng an patànaw sa enot na paghirá',
-'tog-nocache' => 'Pugolon an pag-abáng nin mga pahina',
-'tog-enotifwatchlistpages' => 'E-koreohan ako pag pigribayan an pahinang pigbabantayan ko',
+'tog-nocache' => 'Pundoha an pagsaray nin mga pahina sa kilyaw (browser)',
+'tog-enotifwatchlistpages' => 'E-koreohan ako kunsoarin an sarong pahina sa sakong bantay-listahan (watchlist) pinagribayan',
 'tog-enotifusertalkpages' => 'E-koreohan ako pag pigribáyan an pahina kan sakóng olay',
 'tog-enotifminoredits' => 'E-koreohan man giraray ako para sa saradit na paghirá kan mga pahina',
-'tog-enotifrevealaddr' => 'Ibunyág an adres kan sakuyang e-koreo sa mga surat na pag-abiso',
-'tog-shownumberswatching' => 'Ipahilíng an bilang kan nagbabantay na mga parágamit',
-'tog-fancysig' => 'Mga bàgong pirma (mayò nin tolos na pantakod)',
-'tog-externaleditor' => 'Gamíton mùna an panluwas na editor',
-'tog-externaldiff' => 'Gamíton mùna an diff na panluwás',
-'tog-showjumplinks' => 'Maka-"luksó sa" mga takód na pangabót',
-'tog-uselivepreview' => 'Gamíton an patànaw na direkto (JavaScript) (Experimental)',
-'tog-forceeditsummary' => 'Ipaarám sakuyà kun malaog sa sumáriong blanko nin paghirá',
-'tog-watchlisthideown' => 'Tagóon an mga saradít na paghirá sa pigbabantayán',
-'tog-watchlisthidebots' => 'Tagóon an mga paghirá kan bot sa pigbabantayán',
-'tog-watchlisthideminor' => 'Tagóon an mga saradít na paghirá sa pigbabantayán',
-'tog-nolangconversion' => 'Pogólon an pagríbay nin mga lain-lain',
-'tog-ccmeonemails' => 'Padarahán ako nin mga kopya kan e-koreo na pigpadara ko sa ibang mga parágamit',
-'tog-diffonly' => 'Dai ipahilíng an mga laog nin pahina sa babâ kan kaib',
-'tog-showhiddencats' => 'Ipahiling an mga nakatagong kategorya',
+'tog-enotifrevealaddr' => 'Ibuyágyag an sakong e-koreong address sa pan-abisong mga e-koreo',
+'tog-shownumberswatching' => 'Ihayag an numero kan nagbabantay na mga parágamit',
+'tog-oldsig' => 'Tugmadong pirma',
+'tog-fancysig' => 'Trataron an pirma na wiki-teksto (mayo nin awtomatikong kilyaw)',
+'tog-externaleditor' => 'Gamíta nguna an panluwas na editor (para sa mga eksperto sana, minakaipo nin espesyal na mga panuytoy (settings) sa saimong kompyuter.',
+'tog-externaldiff' => 'Gamíta an panluwas na diff nguna (para sa mga eksperto sana, minakaipo nin espesyal na mga panuytoy (settings) sa saimong kompyuter.
+[//www.mediawiki.org/wiki/Manual:External_editors Kadagdagang impormasyon.])',
+'tog-showjumplinks' => 'Paganaha an "luksó sa" kilyaw nin kalangkayan',
+'tog-uselivepreview' => 'Gamíta an buhay na patànaw (minakaipo nin JavaScript) (eksperimental)',
+'tog-forceeditsummary' => 'Ibunyaw sako kun maglalaog sa blangkong kalanyang nin paghirá',
+'tog-watchlisthideown' => 'Tagóa an sakong mga pagliwat gikan sa bantay-listahan',
+'tog-watchlisthidebots' => 'Tagóa an bot na mga pagliwat gikan sa bantay-listahan',
+'tog-watchlisthideminor' => 'Tagóa an saradít na mga pagliwat gikan sa bantay-listahan',
+'tog-watchlisthideliu' => 'Tagoon an mga pagbabagong nahimo kan mga nakalaog na paragamit gikan sa bantayang listahan',
+'tog-watchlisthideanons' => 'Tagoon an mga pagbabagong nahimo kan mga bakong bistadong paragamit gikan sa bantayang listahan',
+'tog-watchlisthidepatrolled' => 'Tagoon an mga patrolyadong pagbabago gikan sa bantayang listahan',
+'tog-nolangconversion' => 'Pundoha an mga palaen na pagbabago',
+'tog-ccmeonemails' => 'Ipadara sako an mga kopya kan e-koreo na pinadara ko sa ibang mga paragamit',
+'tog-diffonly' => 'Dai tabi ihayag an laog kan pahina sa ibaba nin mga diffs',
+'tog-showhiddencats' => 'Ihayag an nakatagong mga kategorya',
+'tog-norollbackdiff' => 'Omidohon an diff matapos himoon an pagbalikot',
 
 'underline-always' => 'Pirmi',
 'underline-never' => 'Nungka',
-'underline-default' => 'Browser na normal',
+'underline-default' => 'Kilyaw na panugmad',
+
+# Font style option in Special:Preferences
+'editfont-style' => 'Baguhon an estilo nin kalwig sa sinasakupan',
+'editfont-default' => 'Kilyawang tugmad',
+'editfont-monospace' => 'Manarong espasyo nin kalwig',
+'editfont-sansserif' => 'Kalwig na Sans-serif',
+'editfont-serif' => 'Kalwig na Serif',
 
 # Dates
 'sunday' => 'Domingo',
@@ -194,120 +208,140 @@ $messages = array(
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorya|Mga kategorya}}',
-'category_header' => 'Mga artikulo sa kategoryang "$1"',
+'category_header' => 'Mga pahina sa kategoryang "$1"',
 'subcategories' => 'Mga sub-kategorya',
 'category-media-header' => 'Media sa kategoryang "$1"',
-'category-empty' => "''Mayò nin laog an kategoryang ini sa ngonyan.''",
+'category-empty' => "''Ining kategorya sa presente mayong laog na mga pahina o media.\"",
 'hidden-categories' => '{{PLURAL:$1|Nakatagong kategorya|Mga nakatagong kategorya}}',
 'hidden-category-category' => 'Mga nakatagong kategorya',
-'category-subcat-count-limited' => 'Igwa nin {{PLURAL:$1|sub-kategorya|$1 mga sub-kategorya}} an artikulong ini.',
-'category-article-count' => '{{PLURAL:$2|An mga minasunod na pahina sana an laog kan kategoryang ini|An mga minasunod na {{PLURAL:$1|pahina|$1 pahina}} an yaon sa kategoryang ini, sa $2 gabos.}}',
-'category-article-count-limited' => 'Yaon sa presenteng kategorya an mga minasunod na {{PLURAL:$1|pahina|$1 pahina}}.',
+'category-subcat-count' => '{{PLURAL:$2|Ining kategorya igwa sana kan minasunod na sub-kategorya.|Ining kategorya igwa kan minasunod {{PLURAL:$1|subcategory|$1 subcategories}}, out of $2 total.}}',
+'category-subcat-count-limited' => 'Ining kategorya igwa kan minasunod na {{PLURAL:$1|sub-kategorya|$1 mga sub-kategorya}}.',
+'category-article-count' => '{{PLURAL:$2|An mga minasunod na pahina sana an laog kan kategoryang ini|An mga minasunod na {{PLURAL:$1|pahina|$1 mga pahina}} an yaon sa kategoryang ini, gikan sa $2 kagabsan.}}',
+'category-article-count-limited' => 'An minasunod na {{PLURAL:$1|pahina|$1 mga pahina}} yaon sa presenteng kategorya.',
+'category-file-count' => '{{PLURAL:$2|Ining kategorya naglalaman sana kan minasunod na sagunson.|An minasunod {{PLURAL:$1|sagunson iyo|$1 na mga sagunson iyo}} sa kategoryang ini, na ginahi sa $2 sa kabilogan.}}',
+'category-file-count-limited' => 'An minasunod {{PLURAL:$1|na sagunson|$1 na mga sagunson}} yaon sa presenteng kategorya.',
 'listingcontinuesabbrev' => 'sunód',
+'index-category' => 'Hinukdoang mga pahina',
+'noindex-category' => 'Bakong hinukdoang mga pahina',
+'broken-file-category' => 'Mga pahina na igwang nagkaparasa na sagunsong kilyawan',
 
 'about' => 'Manonongod',
 'article' => 'Laog na pahina',
 'newwindow' => '(minabukas sa bàgong bintanà)',
-'cancel' => 'Pondohón',
-'moredotdotdot' => 'Dakol pa...',
+'cancel' => 'Kanselaron',
+'moredotdotdot' => 'Kadagdagan...',
 'mypage' => 'An sakóng pahina',
 'mytalk' => 'An sakóng olay',
-'anontalk' => 'Olay para sa IP na ini',
-'navigation' => 'Paglibotlíbot',
+'anontalk' => 'Olay para kaining IP address',
+'navigation' => 'Nabigasyon',
 'and' => '&#32;asin',
 
 # Cologne Blue skin
-'qbfind' => 'Hanápon',
-'qbbrowse' => 'Maghalungkát',
-'qbedit' => 'Hirahón',
+'qbfind' => 'Maghanap',
+'qbbrowse' => 'Halungkáta',
+'qbedit' => 'Liwata',
 'qbpageoptions' => 'Ining pahina',
 'qbpageinfo' => 'Konteksto',
-'qbmyoptions' => 'Mga pahina ko',
+'qbmyoptions' => 'Sakong mga pahina',
 'qbspecialpages' => 'Espesyal na mga pahina',
-'faq' => 'HD',
-'faqpage' => 'Project:HD',
+'faq' => 'PPK (Pirmihang Pighahapot na mga kahaputan)',
+'faqpage' => 'Project:PPK (Pirmihang Pighahapot na mga Kahaputan)',
 
 # Vector skin
-'vector-action-delete' => 'paráon',
+'vector-action-addsection' => 'Idagdag an topic',
+'vector-action-delete' => 'puráon',
 'vector-action-move' => 'Ibalyó',
-'vector-action-protect' => 'Olangán',
-'vector-view-create' => 'Maggíbo',
+'vector-action-protect' => 'Protektaran',
+'vector-action-undelete' => 'Bawion sa pagkapara',
+'vector-action-unprotect' => 'Ribayan an proteksyon',
+'vector-simplesearch-preference' => 'Paganahon an pinapusog na suhestiyon sa paghahanap (Yanong panhanap sana)',
+'vector-view-create' => 'Magmukna',
 'vector-view-edit' => 'Liwatón',
-'vector-view-history' => 'Hilingón an uusipón',
-'vector-view-view' => 'Basáhon',
+'vector-view-history' => 'Tanawon sa historiya',
+'vector-view-view' => 'Basáha',
 'vector-view-viewsource' => 'Hilingón an ginikánan',
-'actions' => 'Mga paghiro',
-'namespaces' => 'Liang-liang',
+'actions' => 'Mga aksyon',
+'namespaces' => 'Mga espasyong ngaran',
+'variants' => 'Mga pinalaen',
 
 'errorpagetitle' => 'Salâ',
-'returnto' => 'Magbwelta sa $1.',
-'tagline' => 'Halì sa {{SITENAME}}',
-'help' => 'Tabang',
-'search' => 'Hanápon',
-'searchbutton' => 'Hanápon',
-'go' => 'Dumanán',
-'searcharticle' => 'Dumanán',
-'history' => 'Uusipón nin pahina',
-'history_short' => 'Uusipón',
-'updatedmarker' => 'nabàgo poon kan huri kong pagdalaw',
-'printableversion' => 'Naipiprentang bersyon',
-'permalink' => 'Permanenteng takod',
-'print' => 'Iprenta',
-'view' => 'Mga paghilíng',
+'returnto' => 'Magbalik sa $1.',
+'tagline' => 'Gikan sa {{SITENAME}}',
+'help' => 'Katabangan',
+'search' => 'Maghanap',
+'searchbutton' => 'Maghanap',
+'go' => 'Dumani',
+'searcharticle' => 'Lakaw',
+'history' => 'Historiya kan pahina',
+'history_short' => 'Historiya',
+'updatedmarker' => 'dinagdagan poon kan sakong huring pagbisita',
+'printableversion' => 'Puwede maimprintang bersyon',
+'permalink' => 'Permanenteng kilyawan',
+'print' => 'Imprintaron',
+'view' => 'Tanawon',
 'edit' => 'Liwatón',
-'create' => 'Maggíbo',
-'editthispage' => 'Hirahón ining pahina',
-'create-this-page' => 'Gibohon ining pahina',
-'delete' => 'Paraon',
-'deletethispage' => 'Paraon ining pahina',
-'undelete_short' => 'Bawion an pagparà {{PLURAL:$1|paghirá|$1 mga paghirá}}',
-'protect' => 'Protehiran',
-'protect_change' => 'ribáyan an proteksyon',
-'protectthispage' => 'Protehiran ining pahina',
-'unprotect' => 'bawion an pagprotehir',
-'unprotectthispage' => 'Bawion an proteksyon kaining pahina',
-'newpage' => 'Bàgong pahina',
-'talkpage' => 'Pag-olayan ining pahina',
-'talkpagelinktext' => 'Pag-oláyan',
+'create' => 'Muknaon',
+'editthispage' => 'Liwata ining pahina',
+'create-this-page' => 'Muknaon ining pahina',
+'delete' => 'Puraon',
+'deletethispage' => 'Puraon ining pahina',
+'undelete_short' => 'Bawia an pagpurà kan {{PLURAL:$1|sarong pagliwat|$1 mga pagliwat}}',
+'viewdeleted_short' => 'Hilngon {{PLURAL:$1|sarong pinara na pagliwat|$1 mga pinara na pagliwat}}',
+'protect' => 'Protektari',
+'protect_change' => 'Ribayan',
+'protectthispage' => 'Protektaran ining pahina',
+'unprotect' => 'Ribayi an proteksyon',
+'unprotectthispage' => 'Ribayi an proteksyon kaining pahina',
+'newpage' => 'Bàguhong pahina',
+'talkpage' => 'Orolayan ining pahina',
+'talkpagelinktext' => 'Olay',
 'specialpage' => 'Espesyal na Pahina',
-'personaltools' => 'Mga gamit na personal',
-'postcomment' => 'Magkomento',
-'articlepage' => 'Hilingón an pahina kan laog',
-'talk' => 'Orólay',
-'views' => 'Mga hilíng',
-'toolbox' => 'Kagamitan',
-'userpage' => 'Hilingón an pahina kan parágamit',
-'projectpage' => 'Hilingón an pahina kan proyekto',
-'imagepage' => 'Hilingón an pahina kan ladawan',
-'mediawikipage' => 'Hilingón an pahina kan mensahe',
-'templatepage' => 'Hilingón an pahina kan templato',
-'viewhelppage' => 'Hilingón an pahina kan tabang',
-'categorypage' => 'Hilingón an pahina kan kategorya',
-'viewtalkpage' => 'Hilingón an orólay',
-'otherlanguages' => 'Sa ibáng mga tatarámon',
+'personaltools' => 'Personal na mga kagamitan',
+'postcomment' => 'Baguhong seksyon',
+'articlepage' => 'Tanawon an laog kan pahina',
+'talk' => 'Orolayan',
+'views' => 'Mga Tanawon',
+'toolbox' => 'Kagamitang kahon',
+'userpage' => 'Tanawon an pahina kan parágamit',
+'projectpage' => 'Tanawon an pahina kan proyekto',
+'imagepage' => 'Hilngón an pahina nin sagunson (file)',
+'mediawikipage' => 'Tanawon an pahina kan mensahe',
+'templatepage' => 'Tanawon an pahina kan panguyog',
+'viewhelppage' => 'Tanawon an pahina nin katabangan',
+'categorypage' => 'Tanawon an pahina nin kategorya',
+'viewtalkpage' => 'Tanawon an orolayan',
+'otherlanguages' => 'Sa ibang mga lengguwahe',
 'redirectedfrom' => '(Piglikay halì sa $1)',
 'redirectpagesub' => 'Ilikáy an pahina',
 'lastmodifiedat' => 'Huring pigbàgo an pahinang iní $2 kan $1.',
 'viewcount' => 'Binukasán ining pahina nin {{PLURAL:$1|sarong beses|nin $1 beses}}.',
 'protectedpage' => 'Protektadong pahina',
-'jumpto' => 'Maglukso sa:',
-'jumptonavigation' => 'paglibotlíbot',
-'jumptosearch' => 'hanápon',
+'jumpto' => 'Magluksó sa:',
+'jumptonavigation' => 'paglibotlibot',
+'jumptosearch' => 'hanapon',
+'view-pool-error' => 'Sori tabi, an mga server kargado sa oras na ini.
+Grabe kadakol an mga paragamit na pinagprubaran mahiling an pahinang ini.
+Makihalat tabi nin kadikit na panahon bago ka magprubara na makapaglaog sa pahinang ini.
+
+$1',
+'pool-timeout' => 'Timeout naghahalat para makapanugpon',
+'pool-queuefull' => 'An grupong panproseso panoon',
+'pool-errorunknown' => 'Bakong bistadong sala',
 
 # 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' => 'Dapít sa {{SITENAME}}',
 'aboutpage' => 'Project:Manonongód',
 'copyright' => 'Makukua an laog sa $1.',
 'copyrightpage' => '{{ns:project}}:Mga derechos nin parásurat',
-'currentevents' => 'Mga panyayári sa ngonyán',
-'currentevents-url' => 'Project:Mga panyayari sa ngonyan',
+'currentevents' => 'Mga pangyayari sa ngunyán',
+'currentevents-url' => 'Project:Mga pangyayari sa ngunyán',
 'disclaimers' => 'Mga pagpabayà',
-'disclaimerpage' => 'Project:Pankagabsán na pagpabayà',
+'disclaimerpage' => 'Project:Pangkagabsán na pagpabayà',
 'edithelp' => 'Paghirá kan pagtabang',
 'edithelppage' => 'Help:Pagliwát',
 'helppage' => 'Help:Mga laóg',
-'mainpage' => 'Pangenot na Pahina',
-'mainpage-description' => 'Pangenot na Pahina',
+'mainpage' => 'Panginot na Pahina',
+'mainpage-description' => 'Panginot na Pahina',
 'policy-url' => 'Project:Palakáw',
 'portal' => 'Portal kan komunidad',
 'portal-url' => 'Project:Portal kan Komunidad',
@@ -316,7 +350,7 @@ $messages = array(
 
 'badaccess' => 'Salang permiso',
 'badaccess-group0' => 'Dai ka tinotogotan na gibohon an aksyon na saimong hinahagad.',
-'badaccess-groups' => 'An aksyon na saimong hinahagad limitado sa mga parágamit sa sarô sa mga grupong $1.',
+'badaccess-groups' => 'An aksyon na saimong pinaghahagad limitado sa mga parágamit na {{PLURAL:$2|an grupo|saro sa mga grupo}}: $1.',
 
 'versionrequired' => 'Kaipuhan an bersyon $1 kan MediaWiki',
 'versionrequiredtext' => 'Kaipuhan an bersyon $1 kan MediaWiki sa paggamit kan pahinang ini. Hilíngón an [[Special:Version|Bersyon kan pahina]].',
@@ -336,6 +370,8 @@ $messages = array(
 'toc' => 'Mga laóg',
 'showtoc' => 'ipahilíng',
 'hidetoc' => 'tagóon',
+'collapsible-collapse' => 'Pinahalipot',
+'collapsible-expand' => 'Pinahalawig',
 'thisisdeleted' => 'Hilingón o isulít an $1?',
 'viewdeleted' => 'Hilingón an $1?',
 'restorelink' => '{{PLURAL:$1|sarong pinarang paghirá|$1 na pinarang paghirá}}',
@@ -347,13 +383,15 @@ $messages = array(
 'page-rss-feed' => '"$1" Hungit na RSS',
 'page-atom-feed' => '"$1" Hungit na Atomo',
 'feed-atom' => 'Atomo',
-'red-link-title' => '$1 (daí pa naisusurat)',
+'red-link-title' => '$1 (an pahina bako pang eksistido)',
+'sort-descending' => 'Suysoy paibaba',
+'sort-ascending' => 'Suysoy paitaas',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Pahina',
 'nstab-user' => 'Pahina nin paragamít',
 'nstab-media' => 'Pahina kan media',
-'nstab-special' => 'Espesyal',
+'nstab-special' => 'Espesyal na pahina',
 'nstab-project' => 'Pahina kan proyekto',
 'nstab-image' => 'File',
 'nstab-mediawiki' => 'Mensahe',
@@ -363,7 +401,9 @@ $messages = array(
 
 # Main script and global functions
 'nosuchaction' => 'Mayong siring na aksyon',
-'nosuchactiontext' => 'An gibo na pinílì nin URL dai bisto kan wiki',
+'nosuchactiontext' => 'An aksyon na pinanungdan kan kilyawan sarong imbalido.
+Baka napasala ka sa pagsurat kan kilyawan, o nagsunod nin salang kilyawan.
+Ini minapanungod man nin sarong kubol (bug) sa ginagamit na software kan {{SITENAME}}.',
 'nosuchspecialpage' => 'Mayong siring na espesyal na páhina',
 'nospecialpagetext' => '<strong>Dai pwede an pahinang espesyal na pinilî mo.</strong>
 
@@ -372,28 +412,36 @@ Pwede mong mahiling an lista nin mga marhay na pahina sa [[Special:SpecialPages|
 # General errors
 'error' => 'Salâ',
 'databaseerror' => 'Salâ sa base nin datos',
-'dberrortext' => 'May salâ sa hapot na sintaksis kan base nin datos.
-Pwedeng may salâ digdi.
-An huring probar na hapót iyo:
+'dberrortext' => 'Sarong datos-sarayan na may napasalang sintaks an nangyari.
+Ini puwedeng minapanungod nin sarong kubol (bug) sa software.
+An pinakahuring pagprubar sa datos-sarayan naghahapot nin:
 <blockquote><tt>$1</tt></blockquote>
-hale sa aksyón "<tt>$2</tt>".
-AnSQL ko nagbalik nin salâ na"<tt>$3: $4</tt>".',
-'dberrortextcl' => 'May salâ sa hapót nin sintaksis kan base nin datos.
-Ini an huring probar na hapót:
+hale sa laog kan punksyon na "<tt>$2</tt>".
+An datos-sarayan nagbalik nin sala na "<tt>$3: $4</tt>".',
+'dberrortextcl' => 'Sarong datos-sarayan na may napasalang sintaks an nangyari.
+An pinakahuring pagprubar sa datos-sarayan naghahapot nin:
 "$1"
-sa aksyón na "$2".
-AnSQL ko nagbalik nin salâ na"$3: $4"',
+na hale sa laog kan punksyon na "$2".
+An datos-sarayan nagbalik nin sala na "<tt>$3: $4</tt>".',
 'laggedslavemode' => 'Patanid: An pahina pwedeng dai nin pagbabâgo sa ngonyan.',
 'readonly' => 'Kandado an base nin datos',
 'enterlockreason' => 'Magkaag tabì nin rason sa pagkandado, asin ikalkulo kun nuarin bubukasón an kandado',
 'readonlytext' => 'Sarado mùna an base nin datos sa mga bàgong entrada asin iba pang mga pagribay, pwede gayod sa rutinang pagmantenir kan base nin datos, despues, mabalik na ini sa normal.
 
 Ini an eksplikasyon kan tagamató na nagkandado kaini: $1',
+'missing-article' => 'An datos-sarayan dae nakanagbo kan teksto nin sarong pahina na dapat kuta nang managboan, pinagngaran na "$1" S2.
+
+Ini pirmeng pinagkakausa sa paagi nin pagsusunod nin sarong lumang diff o historiyang kilyawan na yaon sa sarong pahinang pinagpura na.
+
+Kun iyo ini an kaso, ika nakanagbo nin sarong kubol (bug) sa software.
+Pakireport tabi ini sa [[Special:ListUsers/sysop|administrador]], na naka-antabay sa kilyawan.',
 'missingarticle-rev' => '(pagbàgo#: $1)',
 'missingarticle-diff' => '(Kaibhán: $1, $2)',
-'readonly_lag' => 'Enseguidang nakandado an base nin datos mientras makaabot an base nin datos na esklabo saiyang amo.',
+'readonly_lag' => 'Tulostulos na pagkandado an base nin datos mantang makaabot an base nin datos na esklabo saiyang amo.',
 'internalerror' => 'Panlaog na salâ',
 'internalerror_info' => 'Panlaog na salâ: $1',
+'fileappenderrorread' => 'Dae nakakabasa nin "$1" habang pinagdadagdag.',
+'fileappenderror' => 'Dae nakakapagdagdag nin "$1" sagkod "$2".',
 'filecopyerror' => 'Dai naarog an mga file na "$1" hasta "$2".',
 'filerenameerror' => 'Dai natàwan nin bàgong ngaran an file na "$1" sa "$2".',
 'filedeleteerror' => 'Dai naparà an file na "$1".',
@@ -403,118 +451,218 @@ Ini an eksplikasyon kan tagamató na nagkandado kaini: $1',
 'unexpected' => 'Dai pighuhunà na balór: "$1"="$2".',
 'formerror' => 'Salâ: dai pwedeng isumitir an porma',
 'badarticleerror' => 'Dai pwedeng gibohon ini sa ining páhina.',
-'cannotdelete' => 'Dai naparà an pahina o file na napilî. (Pwede na naparà na ini kan ibang paragamit.)',
+'cannotdelete' => 'An pahina o an sagunson (file) na "$1" dae tabi napupura.
+Ini puwede nang napura kan iba.',
+'cannotdelete-title' => 'Dae mapura an pahina na "$1"',
+'delete-hook-aborted' => 'An pagpura pinundo kan pangawit.
+Ini dae nagtao nin kapaliwanagan.',
 'badtitle' => 'Salâ an titulo',
 'badtitletext' => 'Dai pwede an hinagad na titulo nin pahina, o mayong laog, o sarong titulong pan-ibang tatarámon o pan-ibang wiki na sala an pagkatakód. Pwedengigwa ining sarô o iba pang mga karakter na dai pwedeng gamiton sa mga titulo.',
-'perfcached' => 'Nakaabang an minasunod na mga datos, asin pwede ser na mga lumâ na. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
-'perfcachedts' => 'Nakaabang an nagsusunod na mga datos, asin huring nabâgo sa $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
+'perfcached' => 'An minasunod na datos pinagtago asin bakong gayo napapanahon. An maximum na {{PLURAL:$1|sarong resulta na|$1 mga resulta na}} yaon sana sa pinagtago.',
+'perfcachedts' => 'An minasunod na datos pinagtago, asin huring pinagdagdagan kan $1. An maximum na {{PLURAL:$4|sarong result na |$4 mga resulta na }} yaon sana sa pinagtago.',
 'querypage-no-updates' => 'Pigpopogol mùna an mga pagbabàgo sa pahinang ini. Dai mùna mababàgo an mga datos digdi.',
 'wrong_wfQuery_params' => 'Salâ na parámetro sa wfQuery()<br />
 Acción: $1<br />
 Hapót: $2',
 'viewsource' => 'Hilingón an ginikanan',
+'viewsource-title' => 'Hilnga an piggikanan para sa $1',
+'actionthrottled' => 'An aksyon pinagpugulan',
+'actionthrottledtext' => 'Bilang sarong pangontra sa spam, ika limitadong sanang himoon ining aksyon sa kadakulon na beses sa halipot sanang panahon, asin ika nakasobra na sa limitasyong ini.
+Paki-otroha giraray sa nagkapirang minuto sana.',
 'protectedpagetext' => 'An pahinang ini pigsará tangarig pogolon an paghirá.',
 'viewsourcetext' => 'Pwede mong hilingón asin arógon an ginikanan kan pahinang ini:',
+'viewyourtext' => "Saimong mahihiling asin makokopya an gikanan kan '''saimong mga pinagriliwat''' sa pahinang ini:",
 'protectedinterface' => 'An pahinang ini nagtatao nin interface para sa software, asin sarado tangarig mapondo an pag-abuso.',
-'editinginterface' => "'''Warning:''' You are editing a page which is used to provide interface text for the software.
-Changes to this page will affect the appearance of the user interface for other users.
-For translations, please consider using [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], the MediaWiki localisation project.",
+'editinginterface' => "'''Warning:''' Ika nagliliwat kan pahina na ginagamit sa pagtao nin pantahaw-olay na teksto para sa software.
+An mga pagbabago kaining pahina makaka-apekto sa hitsura kan pantahaw-olay nin paragamit para sa iba man na paragamit.
+Para sa mga pagdadakit-taramon, pakikonsidera man tabi an paggagamit kan [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net], an MediaWiking lokalisasyon kan proyekto.",
 'sqlhidden' => '(nakatagô an hapót nin SQL)',
 'cascadeprotected' => 'Pinoprotehirán ining páhina sa mga paghirá, ta sarô ini sa mga minasunod na {{PLURAL:$1|páhina|mga páhina}} na pinoprotehiran kan opsyón na "katarata" na nakabuká:
 $2',
 'namespaceprotected' => "Mayô kang permisong maghirá kan mga páhina sa '''$1''' ngaran-espacio.",
-'ns-specialprotected' => 'An mga páhinang nasa {{ns:special}} na ngaran-espacio dai pwedeng hirahón.',
+'customcssprotected' => 'Ika mayong permiso sa pagliwat kaining pahinang CSS, nin huli ta ini naglalaman kan personal na panuytoy (settings) kan ibang paragamit.',
+'customjsprotected' => 'Ika mayong permiso sa pagliwat kaining pahinang JavaScript, nin huli ta ini naglalaman kan personal na panuytoy (settings) kan ibang paragamit.',
+'ns-specialprotected' => 'An mga pahinang nasa {{ns:special}} na liang-liang dai pwedeng hirahón.',
+'titleprotected' => 'Ining titulo pinagprotektaran poon pagkamukna ni [[User:$1|$1]].
+An rason na pinagtao iyo na "\'\'$2\'\'".',
+'filereadonlyerror' => 'Dae kinayang baguhon an sagunson (file) "$1$ nin huli ta an repositoryo kan sagunson "$2" yaon sa kamugtakan na basahon sana.
+
+An administrador na iyo an nagkandado kaini nagpahayag kaining kapaliwanagan: "$3".',
+'invalidtitle-knownnamespace' => 'Imbalidong titulo na igwang espasyadong ngaran na "$2" asin teksto na "$3"',
+'invalidtitle-unknownnamespace' => 'Imbalidong titulo na igwang nin bakong bistado na bilang kan espasyadong ngaran na $1 asin teksto na "$2"',
+'exception-nologin' => 'Dae ka nakalaog',
+'exception-nologin-text' => 'Ining pahina o aksyon minakaipo saimo na maglaog kaining wiki.',
 
 # Virus scanner
-'virus-badscanner' => "Saláng konfigurasyon: dai aram an virus scanner: ''$1''",
-'virus-unknownscanner' => 'dai aram an antivirus:',
+'virus-badscanner' => "Raot na kasalansanan: Bakong bistadong virus scanner: ''$1''",
+'virus-scanfailed' => 'An paghingipid (scan) nagpalya (Koda $1)',
+'virus-unknownscanner' => 'bakong bistadong antivirus:',
 
 # Login and logout pages
-'logouttext' => "'''Nakaluwas ka na.'''
+'logouttext' => "'''Ika po sa ngunyan nakaluwas na.'''
 
-Pwede mo pang gamiton an {{SITENAME}} na dai nagpapabisto, o pwede ka giraray lumaog
-bilang pareho o ibang parágamit. Giromdomon tabî na an ibang mga páhina pwedeng mahiling pa na garo nakalaog ka pa, hasta limpyarón mo an abang kan ''browser'' mo.",
-'welcomecreation' => "== Maogmang Pagdagos, $1! ==
-
-Nagibo na an ''account'' mo. Giromdomon tabi na ribayán an saimong mga kabôtan sa {{SITENAME}}.",
+Ika makakadagos pa sa paggamit kan {{SITENAME}} na dai nagpapabisto, o ika [[Special:UserLogin|Maglaog giraray]] bilang pareho o bilang ibang paragamit.
+Giromdoma na an ibang mga pahina mapuwedeng padagos na magpapahiling siring baga na kun ika garo yaon man sana sa laog, sagkod na saimong malinigan mo an sarayan sa kilyawan.",
+'welcomecreation' => '== Maogmang Pag-abot, $1! ==
+An saimong panindog (account) naimukna na tabi.
+Dae ka man tabi malingaw na ribayan an saimong [[Special:Preferences|{{SITENAME}} mga kabôtan]].',
 'yourname' => 'Pangaran kan paragamit:',
-'yourpassword' => 'Sekretong panlaog:',
-'yourpasswordagain' => 'Itaták giraray an sekretong panlaog:',
-'remembermypassword' => 'Giromdomon an paglaog ko sa kompyuter na ini(for a maximum of $1 {{PLURAL:$1|day|days}})',
-'yourdomainname' => "An saimong ''domain'':",
-'externaldberror' => "Igwang nin salang panluwas pantunay kan base nin datos o dai ka pigtotogotan na bâgohon an saimong panluwas na ''account''.",
+'yourpassword' => 'Pasa-taramon:',
+'yourpasswordagain' => 'Pakilaog giraray kan sekretong panlaog:',
+'remembermypassword' => 'Giromdoma an sakong paglaog sa kilyaw (browser) na ini (para sa maksimum na $1 {{PLURAL:$1|aldaw|mga aldaw}})',
+'securelogin-stick-https' => 'Magpirmeng konektado sa HTTPS matapos kang maglaog',
+'yourdomainname' => 'An saimong kasakupan:',
+'externaldberror' => 'Igwa gayod sala sa arinman kan patunay sa datos-sarayan o ika dae pinagtugutan na bâgohon an saimong panluwas na panindog.',
 'login' => 'Maglaog',
-'nav-login-createaccount' => 'Maglaog / maggibo nin account',
-'loginprompt' => 'Kaipuhan may cookies ka para makalaog sa {{SITENAME}}.',
-'userlogin' => 'Maglaog / maggibo nin account',
+'nav-login-createaccount' => 'Maglaog / magmukna nin panindog',
+'loginprompt' => 'Ika kaipong paganahon an mga cookies tanganing makalaog sa {{SITENAME}}.',
+'userlogin' => 'Maglaog / magmukna nin panindog',
+'userloginnocreate' => 'Maglaog ka',
 'logout' => 'Magluwas',
 'userlogout' => 'Magluwás',
-'notloggedin' => 'Mayò sa laog',
-'nologin' => "Mayò ka pa nin entrada? '''$1'''.",
-'nologinlink' => 'Maggibo nin account',
-'createaccount' => 'Maggibo nin account',
-'gotaccount' => "Igwa ka na nin account? '''$1'''.",
+'notloggedin' => 'Dae ka nakalaog',
+'nologin' => 'Mayò ka pa nin panindog (account)? $1.',
+'nologinlink' => 'Magmukna nin panindog',
+'createaccount' => 'Magmukna nin panindog',
+'gotaccount' => 'Igwa ka na tabi nin panindog? $1.',
 'gotaccountlink' => 'Maglaog',
-'createaccountmail' => 'sa e-koreo',
-'badretype' => 'Dai parehas an pigtaták mong mga sekretong panlaog.',
-'userexists' => 'Piggagamit na kan iba an pangaran. Magpili tabî nin iba.',
-'loginerror' => 'Salâ an paglaog',
-'createaccounterror' => 'Daí maggíbo an account: $1.',
-'nocookiesnew' => 'Nagibo na an account kan parágamit, alagad dai ka pa nakalaog. Naggagamit nin cookies an {{SITENAME}} para magpalaog sa mga parágamit. Nakapondo an cookies mo. Paandaron tabì ini, dangan, maglaog gamit an bàgo mong pangaran asin sekretong panlaog.',
-'nocookieslogin' => 'Naggagamit nin mga cookies an {{SITENAME}} para magpalaog nin mga paragamit. Nakapondo an mga cookies mo. Paandaron tabi ini asin probaran giraray.',
-'noname' => 'Dai ka pa nagkaag nin pwedeng gamiton na pangaran.',
-'loginsuccesstitle' => 'Matriumpo an paglaog',
-'loginsuccess' => "'''Nakalaog ka na sa {{SITENAME}} \"\$1\".'''",
-'nosuchuser' => 'Mayong paragamit sa pangaran na "$1". Reparohon an pigsurat mo, o maggibo nin bàgong account.',
-'nosuchusershort' => 'Mayong paragamit sa nagngangaran na "$1". Reparohon an pigsurat mo.',
-'nouserspecified' => 'Kaipuhan mong kaagan nin pangaran.',
-'wrongpassword' => 'Salâ an pigtaták na sekretong panlaog. Probaran giraray tabì.',
-'wrongpasswordempty' => 'Mayong pigkaag na sekretong panlaog. Probaran giraray tabì.',
-'passwordtooshort' => 'Salâ o halìpoton an saimong sekretong panlaog. Igwa dapat ining dai mababà sa {{PLURAL:$1|1 karakter|$1 karakter}} asin iba man sa pinilì mong pangaran.',
-'mailmypassword' => 'Ipadara sa e-koreo an sekretong panlaog',
-'passwordremindertitle' => 'Panpaísi nin sekretong panlaog halì sa {{SITENAME}}',
-'passwordremindertext' => 'Sarong paragamit (pwedeng ika, halì sa IP na $1)
-an naghagad nin bàgong sekretong panlaog para sa {{SITENAME}} ($4).
-"$3" na an bàgong sekretong panlaog ni "$2".
-Kaipuhan maglaog ka asin ibalyó an saimong sekretong panlaog.
-
-Kun ibang tawo an naghagad kaini o kun nagiromdóman mo na an saimong sekretong panlaog asin habô mo nang ribayan ini, dai mo na pagintiendehon ining mensahe. Ipadagos na an paggamit kan dating sekretong panlaog.',
-'noemail' => 'Mayong e-koreo na nakarehistro sa parágamit na "$1".',
-'passwordsent' => 'Igwang bàgong sekretong panlaog na pigpadará sa e-koreong nakarehistro ki "$1".
-Maglaog tabì giraray pagnakua mo na ini.',
-'blocked-mailpassword' => 'Pigbagatan sa paghirá an saimong IP, asin pigpopogolan na magamit an pagbawi kan sekretong panlaog tangarig maibitaran an pagabuso.',
-'eauthentsent' => 'May ipinadarang e-koreong kompirmasyon sa piniling adres nin e-koreo.
-Bàgo pa magpadara nin iba pang e-koreo sa account na ini, kaipuhan tabing sunodon an mga instruksyon na nasa e-koreo, tangarig makompirmar na talagang saimo ining account.',
-'throttled-mailpassword' => 'May pinadara nang paisi nin sekretong panlaog, sa huring
-$1 na oras. Para pogolan an mga pagabuso, sarong paisi sana an ipapadara sa laog nin
-$1 na oras.',
-'mailerror' => 'Salâ an pagpadará nin e-koreo: $1',
-'acct_creation_throttle_hit' => 'Pasensya, nakagibo ka na nin $1 accounts. Dai ka na makakagibo pa.',
-'emailauthenticated' => "An saimong ''e''-surat pinatunayan sa $1.",
-'emailnotauthenticated' => "Dai pa napatunayan an saimong ''e''-surat. Mayong ipapadarang ''e''-surat para sa ano man na minasunod na gamit.",
-'noemailprefs' => "Magpilî tabî nin ''e''-surat tangarig magandar ining mga gamit.",
-'emailconfirmlink' => "Kompirmaron tabî an saimong ''e''-surat",
-'invalidemailaddress' => "Dai matogotan ining ''e''-surat ta garo salâ an ''format'' kaini. Magkaag tabî nin tamâ o dai pagkaagan.",
-'accountcreated' => "Nagibo na an ''account''.",
-'accountcreatedtext' => "Ginibo na an ''account'' para ki $1.",
-'loginlanguagelabel' => 'Tataramon: $1',
+'userlogin-resetlink' => 'Nakalingaw ka sa panlaog mong detalye?',
+'createaccountmail' => 'Sa paagi nin e-koreo',
+'createaccountreason' => 'Rason:',
+'badretype' => 'An mga sekretong panlaog mong pinagtatak bakong pareho.',
+'userexists' => 'Paragamit na ngarang piglaog may naggagamit na.
+Pakipili nin ibang ngaran tabi.',
+'loginerror' => 'An paglaog napasalâ',
+'createaccounterror' => 'Dae tabi maimukna an panindog: $1.',
+'nocookiesnew' => 'An panindog kan paragamit namukna na, pero ika dae pa tabi nakalaog.
+{{SITENAME}} naggagamit nin cookies tanganing makalaog an mga paragamit.
+Ika igwang mga cookies na dae pinagana.
+Tabi paganaha sinda, dangan maglaog ka sa saimong baguhon na pangaran kan paragamit asin sekretong panlaog.',
+'nocookieslogin' => '{{SITENAME}} naggagamit nin mga cookies para sa maglaog na mga paragamit.
+Ika igwang mga cookies na dae pinagana.
+Tabi paganaha sinda asin otroha giraray.',
+'nocookiesfornew' => 'An panindog kan paragamit dae pinagmukna, nin huli ta dae nyamo kumpirmado an pinaggikanan kaini.
+Pakipaseguro na saimong pinagana an cookies, ikarga giraray ining pahina asin probaran mo otro.',
+'noname' => 'Ika dae tabi nakapagkaag nin sarong balidong pangaran nin paragamit.',
+'loginsuccesstitle' => 'Matrayumpo an saimong paglaog',
+'loginsuccess' => "'''Ika ngunyan nakalaog na sa {{SITENAME}} bilang si \"\$1\".'''",
+'nosuchuser' => 'Dae pang paragamit na ginagamit an pangaran na "$1".
+An mga ngaran nin paragamit sensitibo gayo sa tipahan.
+Pakireparo kan saimong espeling, o [[Special:UserLogin/signup|Magmukna nin bagong panindog]].',
+'nosuchusershort' => 'Mayo po tabing paragamit na an pangaran "$1".
+Paki-tsek an saimong espeling.',
+'nouserspecified' => 'Kaipuhan mong magkaag nin sarong pangaran nin paragamit.',
+'login-userblocked' => 'An paragamit na ini pinagkubkob. An paglaog dae pinagtutugutan.',
+'wrongpassword' => 'Salâ an pigtaták na sekretong panlaog.
+Tabi probaran giraray.',
+'wrongpasswordempty' => 'An sekretong panlaog pinagtatak na blangko.
+Tabi probaran giraray.',
+'passwordtooshort' => 'Mga sekretong panlaog dapat igwa nin {{PLURAL:$1|1 karakter|$1 mga karakter}}.',
+'password-name-match' => 'An saimong sekretong panlaog dapat laen sa saimong paragamit na ngaran.',
+'password-login-forbidden' => 'An paggamit kaining pangaran nin paragamit asin sekretong panlaog pinagbabawal.',
+'mailmypassword' => 'Paki-koreo an bagong sekretong panlaog',
+'passwordremindertitle' => 'Bagong temporaryo na sekretong panlaog para sa {{SITENAME}}',
+'passwordremindertext' => 'May sarong tawo (pwedeng ika gayod, gikan sa IP address na $1) naghagad nin sarong bagong sekretong panlaog para sa {{SITENAME}} ($4). Sarong temporaryong sekretong panlaog para sa paragamit "$2" an pinagmukna asin pinagtuytoy na magin "$3". Kun iyo ini an saimong katuyuhan, kaipuhan mong maglaog asin magpili nin sarong bagong sekretong panlaog ngunyan.
+An saimong temporaryong sekretong panlaog mapapaso sa laog nin {{PLURAL:$5|sarong aldaw|$5 aldaw}}. 
+
+Kun ibang tawo an naghimo kaining kahagadan, o kun saimo nang nagiromdoman an saimong sekretong panlaog, asin habo mo nang ribayan ini, ipasapara mo na sana an mensaheng ini asin ipadagos mo nang gamiton an saimong lumang sekretong panlaog.',
+'noemail' => 'Mayo tabing e-koreong address na nakarehistro para sa paragamit na "$1".',
+'noemailcreate' => 'Kaipuhan kang magtao nin sarong balidong address sa e-surat',
+'passwordsent' => 'Sarong baguhon na sekretong panlaog an ipinadara sa e-koreong address na nakarehistro para ki "$1".
+Tabi maglaog giraray matapos mong maresibe ini.',
+'blocked-mailpassword' => 'An saimong IP address pinagkubkob na magliwat, asin kaya dae tinutugutan na gumamit kan pambawi nin sekretong panlaog na punksyon tanganing makalikay sa abuso.',
+'eauthentsent' => 'Sarong e-koreong pankumpirmasyon an ipinadara sa nominadong e-koreong address.
+Bago an ibang e-koreo ipinadara sa panindog, ika igwang pagsunudong na mga instruksyon na yaon sa e-koreo, tanganing kumpirmaron na an panindog tunay talagang saimo.',
+'throttled-mailpassword' => 'Sarong pagiromdom kan sekretong panlaog an ipinadara na, sa laog nin {{PLURAL:$1|hour|$1 hours}}.
+Tangarig malikayan an abuso, saro sanang pagiromdom kan sekretong panlaog an ipinapadara sa lambang {{PLURAL:$1|hour|$1 hours}}.',
+'mailerror' => 'Salâ an pagpadará kan koreo: $1',
+'acct_creation_throttle_hit' => 'Mga bisita kaining wiki na ginagamit an saimong IP address nagmukna nin {{PLURAL:$1|1 panindog|$1 mga panindog}} sa nakaaging aldaw, na iyo ngani an maximum na pinagtutugot sa laog kan peryodong panahon.
+Bilang resulta, an mga bisita na naggagamit kaining IP address dae nguna makakamukna nin mga panindog.',
+'emailauthenticated' => 'An saimong e-koreo awtentikado kan $2 sa $3.',
+'emailnotauthenticated' => 'An saimong e-surat dae pa tabi pinagpatunayan. 
+Mayong e-surat an ipapadara para sa arinman kan minasunod na estima.',
+'noemailprefs' => 'Magkaag nin sarong e-koreong address sa saimong mga kabotan para gumana ining mga estima.',
+'emailconfirmlink' => 'Kompirmaron tabî an saimong e-koreong address',
+'invalidemailaddress' => 'An e-koreo dae akseptado habang ini minapahiling na igwa nin imbalidong panugmad.
+Pakilaog sana tabi nin sarong tugmadong koreo o pabayae na mayong laman an suratan.',
+'cannotchangeemail' => 'An panindog na address sa e-surat dati mariribayan sa Wiki na ini.',
+'emaildisabled' => 'Ining sayt dae makakapagpadara nin mga e-surat.',
+'accountcreated' => 'Panindog pinagmukna na',
+'accountcreatedtext' => 'An paragamit na panindog para sa $1 pinagmukna na.',
+'createaccount-title' => 'Panindog na pagmukna para sa {{SITENAME}}',
+'createaccount-text' => 'May tawong nagmukna nin sarong panindog na gamit an saimong address na e-surat sa {{SITENAME}} ($4) na may ngaran na "$2, na may sikretong panlaog na "$3".',
+'usernamehasherror' => 'Paragamit na ngaran dae puwede na igwang simbolikong mga kabtang',
+'login-throttled' => 'Nakapaghimo ka na nin kadakulon na pagprubar sa paglaog dae pa sana nahaloy. Mapuwede lang po na maghalat bago magprubar giraray.',
+'login-abort-generic' => 'An saimong paglaog dae nakadagos - Pinundo',
+'loginlanguagelabel' => 'Lengguwahe: $1',
+'suspicious-userlogout' => 'An hinahagad mong magluwas pinagpundo nin huli ta ini gayod pinagpadara sa paagi nin sarong pasang kilyaw o proksing hilom.',
+
+# E-mail sending
+'php-mail-error-unknown' => 'Bakong bantog na kasalaan sa PHP mail() function.',
+'user-mail-no-addy' => 'Nagprubar na magpadara nin e-koreo na mayo nin e-koreong address.',
 
 # Change password dialog
-'resetpass' => "Ipwesto giraray an sekretong panlaog kan ''account''",
-'resetpass_announce' => "Nakalaog ka na may kodang temporaryong ''e''-sinurat. Para matapos an paglaog, kaipuhan mong magpwesto nin bâgong sekretong panlaog digdi:",
-'resetpass_text' => '<!-- Magdugang nin teksto digdi -->',
-'resetpass_header' => 'Ibalyó an sekretong panlaog',
-'oldpassword' => 'Lumang sekretong panlaog:',
-'newpassword' => 'Bàgong sekretong panlaog:',
+'resetpass' => 'Ribayan an sekretong panlaog',
+'resetpass_announce' => 'Ika nakalaog na na igwang sarong temporaryong koda sa e-koreo.
+Tanganing tapuson an paglalaog, ika kaipong magkaag nin sarong baguhon na sekretong panlaog digdi:',
+'resetpass_text' => '<!-- Magdagdag nin teksto digdi -->',
+'resetpass_header' => 'Ribayan an panindog na sekretong panlaog',
+'oldpassword' => 'Dating sekretong panlaog:',
+'newpassword' => 'Bàguhon na sekretong panlaog:',
 'retypenew' => 'Itaták giraray an bàgong panlaog:',
 'resetpass_submit' => 'Ipwesto an sekretong panlaog dangan maglaog',
 'resetpass_success' => 'Naribayan na an saimong sekretong panlaog! Pigpapadagos ka na...',
-'resetpass_forbidden' => 'Dai pwedeng ribayan an mga sekretong panlaog sa ining wiki',
+'resetpass_forbidden' => 'An mga sekretong panlaog dae puwedeng maribayan',
+'resetpass-no-info' => 'Ika dapat nakalaog na tanganing direktang makagamit kaining pahina.',
 'resetpass-submit-loggedin' => 'Ribayan an sekretong panlaog',
+'resetpass-submit-cancel' => 'I-kansela',
 'resetpass-wrong-oldpass' => 'Saláng temporaryo o presenteng sekretong panlaog.
 Matriumpo mo nang nailaog an sekretong panlaog o nakua an bàgong temporaryong sekretong panlaog.',
 'resetpass-temp-password' => 'Temporaryong sekretong panlaog:',
 
+# Special:PasswordReset
+'passwordreset' => 'Pakibago kan sekretong panlaog',
+'passwordreset-text' => 'Kumpletoha ining porma tanganing makaresibe nin pampagiromdom na e-koreo kan detalye nin saimong panindog.',
+'passwordreset-legend' => 'Pakibago kan sekretong panlaog',
+'passwordreset-disabled' => 'An pagbago kan sekretong panlaog pinagpundo sa wiking ini.',
+'passwordreset-pretext' => '{{PLURAL:$1||Pakilaog kan saro sa mga pedaso nin datos sa ibaba}}',
+'passwordreset-username' => 'Paragamit-ngaran:',
+'passwordreset-domain' => 'Kasakupan:',
+'passwordreset-capture' => 'Hilngon an kinaluwasang e-koreo?',
+'passwordreset-capture-help' => 'Kun saimong i-tsek ini box, an e-koreo (na igwang temporaryong sekretong panlaog) ipapahiling saimo siring na ini ipagpapadara sa paragamit.',
+'passwordreset-email' => 'E-koreong address:',
+'passwordreset-emailtitle' => 'Mga detalye kan panindog sa {{SITENAME}}',
+'passwordreset-emailtext-ip' => 'May sarong tawo (pwedeng ika gayod, gikan sa IP address na $1) naghagad nin sarong pagiromdom kan detalye kan saimong panindog para sa {{SITENAME}} ($4). An minasunod na paragamit {{PLURAL:$3|panindog iyo an|mga panindog iyo an}} na asosyado kaining e-koreong address:
+
+$2
+
+{{PLURAL:$3|Ining temporaryong sekretong panlaog|Ining mga temporaryong panlaog}} mapapaso sa {{PLURAL:$5|sarong aldaw|$5 mga aldaw}}.
+Ika dapat na maglaog asin magpili nin sarong bagong sekretong panlaog ngunyan. Kun ibang tawo an naghimo kaining kahagadan, o kun saimo nang nagiromdoman an saimong orihinal na sekretong panlaog, asin habo mo nang ribayan ini, ipasapara mo na sana an mensaheng ini asin ipadagos mo nang gamiton an saimong lumang sekretong panlaog.',
+'passwordreset-emailtext-user' => 'Paragamit $1 sa {{SITENAME}} naghahagad nin sarong pagiromdom kan detalye nin saimong panindog para sa {{SITENAME}}
+($4). An minasunod na paragamit {{PLURAL:$3|panindog iyo an|mga panindog iyo an}} na asosyado kaining e-koreong address:
+
+$2
+
+
+{{PLURAL:$3|Ining temporaryong sekretong panlaog|Ining mga temporaryong panlaog}} mapapaso sa {{PLURAL:$5|sarong aldaw|$5 mga aldaw}}.
+Ika dapat na maglaog asin magpili nin sarong bagong sekretong panlaog ngunyan. Kun ibang tawo an naghimo kaining kahagadan, o kun saimo nang nagiromdoman an saimong orihinal na sekretong panlaog, asin habo mo nang ribayan ini, ipasapara mo na sana an mensaheng ini asin ipadagos mo nang gamiton an saimong lumang sekretong panlaog.',
+'passwordreset-emailelement' => 'Paragamit-ngaran: $1
+Temporaryong sekretong panlaog: $2',
+'passwordreset-emailsent' => 'Sarong pampagiromdom na e-koreo ipinadara na.',
+'passwordreset-emailsent-capture' => 'Sarong pampagiromdom na e-koreo ipinadara na, ipinapahiling sa may ibaba.',
+'passwordreset-emailerror-capture' => 'Sarong pampagiromdom na e-koreo pinaghimo na, ipinapahiling sa may ibaba, alagad an pagpapadara kaini sa paragamit nagpalya: $1',
+
+# Special:ChangeEmail
+'changeemail' => 'Ribayan an e-koreong address',
+'changeemail-header' => 'Ribayan an panindog na e-koreong address',
+'changeemail-text' => 'Kumpletoha ining porma tanganing ribayan an saimong e-koreong address. Kinakaipo mong ilaog an saimong sekretong panlaog tanganing kumpirmaron ining pagribay.',
+'changeemail-no-info' => 'Ika dapat nakalaog na tanganing direktang makagamit kaining pahina.',
+'changeemail-oldemail' => 'Presenteng e-koreong address:',
+'changeemail-newemail' => 'Bagong e-koreong address:',
+'changeemail-none' => 'mayo tabi.',
+'changeemail-submit' => 'Ribayan an e-koreo',
+'changeemail-cancel' => 'Kanselaha',
+
 # Edit page toolbar
 'bold_sample' => 'Tekstong mahìbog',
 'bold_tip' => 'Mahìbog na teksto',
@@ -529,9 +677,9 @@ Matriumpo mo nang nailaog an sekretong panlaog o nakua an bàgong temporaryong s
 'nowiki_sample' => "Isaliot digdi an tekstong dai na-''format''",
 'nowiki_tip' => "Dai pagindiendehon pag-''format'' kan wiki",
 'image_sample' => 'Halimbawa.jpg',
-'image_tip' => 'Nakaturay na file',
+'image_tip' => 'Nakalubog na sagunson',
 'media_sample' => 'Halimbawa.ogg',
-'media_tip' => 'Takod nin file',
+'media_tip' => 'Kilyaw nin sagunson (file)',
 'sig_tip' => 'Pirma mo na may taták nin oras',
 'hr_tip' => 'Pabalagbag na linya (use sparingly)',
 
@@ -546,77 +694,114 @@ Matriumpo mo nang nailaog an sekretong panlaog o nakua an bàgong temporaryong s
 'showlivepreview' => 'Patànaw na direkto',
 'showdiff' => 'Hilingón an mga pagbabàgo',
 'anoneditwarning' => "'''Patanid:''' Dai ka nakalaog. Masusurat an saimong IP sa uusipón kan pagbabàgo kan pahinang ini.",
+'anonpreviewwarning' => 'Dae ka tabi nakalaog. An pagtatagama matala kan saimong IP address sa historya nin pagliwat sa pahinang ini.',
 'missingsummary' => "'''Paisi:''' Dai ka nagkaag nin sumád kan paghirâ. Kun pindotón mo giraray an Itagama, maitatagama an hirá mo na mayô kaini.",
 'missingcommenttext' => 'Paki lâgan nin komento sa ibabâ.',
-'missingcommentheader' => "'''Paisi:''' Dai ka nagkaag nin tema/pamayohan para sa ining komentaryo. Kun pindoton mo giraray an Itagama, maitatagama an hira mo na mayô ini.",
+'missingcommentheader' => "'''Pagiromdom:''' Ika dae tabi nagtao nin sarong panultol (subject)/Pamayong linya (headline) para kaining sinambit mo.
+Kun saimong pinduton an \"{{int:savearticle}}\" giraray, an saimong pigliwat matatagama na mayo kaiyan.",
 'summary-preview' => 'Patànaw nin sumada:',
 'subject-preview' => 'Patânaw nin tema/pamayohan:',
 'blockedtitle' => 'Pigbágat an parágamit',
-'blockedtext' => "'''Pigbagat an pangaran o IP mo.'''
+'blockedtext' => "'''An saimong paragamit na ngaran o IP address pinagkubkob.'''
 
-Si $1 an nagbagat. Ini an itinaong rasón, ''$2''.
+An pagkubkob hinimo ni $1.
+An rason na ipinagtao iyo na ''$2''.
 
-* Pagpoon kan pagbagat: $8
-* Pagpasó kan pagbagat: $6
-* Piniling bagaton: $7
+* Pagpoon kan pagkubkob: $8
+* Pagpasó kan pagkubkob: $6
+* Katuyuhan kan parakubkob: $7
 
-Pwede mong suratan si $1 o an iba pang [[{{MediaWiki:Grouppage-sysop}}|administrador]] para pagoralayan an manonongod sa pagbagat.
-Dai mo pwedeng gamiton an ' e-koreohan an paragamit ' kun mayong tamang e-surat sa  [[Special:Preferences|mga kabòtan kan account]] mo asin dai ka pigbagat sa paggamit kaini.
-$3 an presente mong IP, asin #$5 an ID nin pigbagat. Ikaag tabì an arin man o pareho sain man na hapót.",
-'autoblockedtext' => "Enseguidang pigbagat an IP mo ta ginamit ini kan ibang parágamit, na binagat ni \$1.
-Ini an rasón:
+Ika puwedeng magkontak sa $1 or ibang [[{{MediaWiki:Grouppage-sysop}}|administrador]] tanganing pag-orolayan an pagkubkob.
+Ika dae makakagamit kan 'e-koreo kaining paragamit' na panuytuyan laen lang na may sarong balidong e-koreo address na ipinahayag sa saimong [[Special:Preferences|panindog na mga kabotan]] asin ika dae pinagkubkob para sa paggamit kaini.
+An saimong presenteng IP address iyo $3, asin an kubkob ID iyo #$5.
+Pakibale na lang tabi an gabos na mga detalye sa itaas sa anuman na mga kahaputan na saimong himoon.",
+'autoblockedtext' => 'An saimong IP address awtomatikong pinagkubkob nin huli ta ini pinaggamit kan ibang paragamit, na pinagkubkob ni $1.
+An rason na ipinagtao iyo:
 
-:''\$2''
+:\'\'$2\'\'
 
-* Pagpoon kan pagbagat: \$8
-* Pagpasó kan pagbagat: \$6
+* Pagpoon kan pagkubkob: $8
+* Pagpasó kan pagkubkob: $6
+* Katuyuhan kan parakubkob: $7
 
-Pwedeng mong suratan si \$1 o an iba pang mga
-[[{{MediaWiki:Grouppage-sysop}}|administrador]] para pagolayan an manonongod sa pagbagat.
+Puwede mong kontakon si $1 o saro sa [[{{MediaWiki:Grouppage-sysop}}|mga administrador] tanganing pag-orolayan an kubkob.
 
-Giromdomon tabî na pwede mo sanang gamiton an \"''e''-suratan ining parágamit\" na gamit kun igwa kang tamang ''e''-surat na nakarehistro saimong [[Special:Preferences|mga kabôtan nin parágamit]] asin dai ka pigbabagat sa paggamit kaini.
+Patanid tabi dae mo puwedeng gamiton an "e-koreo kaining paragamit" estima laen lang kun ika igwa nin sarong balidong e-koreo address na rehistrado sa saimong [[Special:Preferences|paragamit na mga kabotan]] asin ika dae pinagkubkob para sa paggamit kaini.
 
-\$5 an pigbagat na ID. Ikaag tabî ining ID sa gabos na paghapot mo.",
+An saimong presenteng IP address iyo an $3, asin and Kubkob ID iyo an #$5.
+Pakibale tabi an gabos na mga detalye sa itaas sa anuman na mga kahaputan na saimong himoon.',
 'blockednoreason' => 'mayong itinaong rason',
 'whitelistedittext' => 'Kaipuhan mong $1 tangarig makahirá nin mga páhina.',
 'confirmedittext' => "Kaipuhan mong kompirmaron an saimong ''e''-surat. Ipwesto tabî asin patunayan an saimong ''e''-surat sa [[Special:Preferences|mga kabôtan kan parágamit]].",
-'nosuchsectiontitle' => 'Mayong siring na seksyón',
-'nosuchsectiontext' => 'Mayo man an seksyón an pighihira mo.',
+'nosuchsectiontitle' => 'Dae managboan an seksyon',
+'nosuchsectiontext' => 'Ika nagprubar na liwaton an sarong seksyon na bakong eksistido.
+Ini puwedeng pinagbalyo o pinagpara na habang saimong pinaghihiling an pahina.',
 'loginreqtitle' => 'Kaipuhan Maglaog',
 'loginreqlink' => 'maglaog',
 'loginreqpagetext' => 'Kaipuhan kang $1 tangarig makahilíng nin ibang pahina.',
 'accmailtitle' => 'Napadará na an sekretong panlaog.',
-'accmailtext' => 'An sekretong panlaog ni "$1" naipadará na sa $2.',
+'accmailtext' => "An patsambang pagpuyos kan sekretong panlaog para ki [[User talk:$1|$1]] ipinagpadara na ki $2.
+
+An sekretong panlaog para sa bagong panindog mapuwede tabing maribayan ''[[Special:ChangePassword|Ribayan an sekretong panlaog]]'' na pahina matapos na makalaog.",
 'newarticle' => '(Bàgo)',
 'newarticletext' => 'Sinunod mo an takod sa pahinang mayò pa man.
 Tangarig magibo an pahina, magpoon pagsurat sa kahon sa babâ
 (hilingón an [[{{MediaWiki:Helppage}}|pahina nin tabang]] para sa iba pang impormasyon).
 Kun dai tinuyong nakaabot ka digdi, pindoton sana an back sa browser mo.',
-'anontalkpagetext' => "----''Ini an pahina kan olay kan sarong parágamit na dai bisto na dai pa naggibo nin account o dai naggagamit kaini. Entonces, piggagamit mi an numero nin IP tangarig mabisto siya. Ining IP pwede gamiton kan manlain-lain na mga parágamit. Kun ika sarong paraágamit na dai bisto asin konbensido ka sa pigsasabi ka ining mga komento bakô man dapit saimo,  [[Special:UserLogin|maggibo nin'' account ''o maglaog]] tabì tangarig maibitaran an pagkaribong saimo asin sa ibang mga parágamit na dai bisto.''",
-'noarticletext' => 'Mayò man na teksto sa pahinang iní, pwede mong [[Special:Search/{{PAGENAME}}|hanápon iníng titulo nin pahina]] sa ibáng mga pahina o [{{fullurl:{{FULLPAGENAME}}|action=edit}} hirahón iníng pahina].',
-'clearyourcache' => "'''Pagiromdom:''' Pagkatapos kan pagtagama, pwede ser na kaipuhan mong lawigawan an abang kan ''browser'' para mahiling mo an mga pagbabâgo. '''Mozilla / Firefox / Safari:''' doonan an ''shift'' an ''Shift'' sabay an pagpindot sa ''Reload'', o pindoton an ''Ctrl-Shift-R'' (''Cmd-Shift-R'' sa Apple Mac); '''IE:''' doonan (dai halion an muro) an ''Ctrl'' mientras sabay an pagpindot sa  ''Refresh'', o pindoton an ''Ctrl-F5''; '''Konqueror:''': pindoton sana ''Reload'', o pindoton  an ''F5''; '''Opera''' pwede ser na kaipuhan na halîon an gabos na laog kan abang sa ''Tools→Preferences''.",
-'usercssyoucanpreview' => "'''Tip:''' Gamiton an 'Show preview' para testingon an bâgong CSS bago magtagama.",
-'userjsyoucanpreview' => "'''Tip:''' Gamiton an 'Show preview' para testingon an bâgong JS bago magtagama.",
-'usercsspreview' => "'''Giromdomon tabî na pigpapatânaw sana saimo an CSS nin parágamit, dai pa ini nakatagama!'''",
+'anontalkpagetext' => "----''Ini iyo an pahina kan orolayan para an sarong dae bistadong paragamit na dae pa nakapagmukna nin panindog, o dae pa nakapaggamit kaini.
+Kaya kami kaipong gumamit nin numerikal na IP address sa pagbisto saiya.
+An arog kaining IP address puwedeng maikapagheras sa nagkapirang mga paragamit.
+Kun ika sarong dae pa bistadong paragamit asin mati mo na igwang irelebanteng sambit na pinanungod saimo, tabi paki [[Special:UserLogin/signup|mukna nin panindog]] or [[Special:UserLogin|maglaog ka]] tanganing malikayan an pagkaribong sa pag-iriba kan iba pang mga paragamit.''",
+'noarticletext' => 'Mayo tabi sa presente nin teksto sa pahinang ini.
+Ika mapuwedeng [[Special:Search/{{PAGENAME}}|maghanap para sa titulo kan pahinang ini]] sa iba pang mga pahina,
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} maghanap sa magkasurundong mga talaan],
+o [{{fullurl:{{FULLPAGENAME}}|action=edit}} liwaton ining pahina]</span>.',
+'noarticletext-nopermission' => 'Mayo tabi sa presente nin teksto sa pahinang ini.
+Ika mapuwedeng [[Special:Search/{{PAGENAME}}|maghanap para sa titulo kan pahinang ini]] sa iba pang mga pahina,
+o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} maghanap sa magkasurundong mga talaan]</span>.',
+'userpage-userdoesnotexist' => 'Paragamit na panindog "$1" bako tabing rehistrado.
+Paki-tsek kun ika magustong magmukna/magliwat kaining pahina.',
+'userpage-userdoesnotexist-view' => 'Paragamit na panindog "$1" bako tabing rehistrado.',
+'blocked-notice-logextract' => 'Ining paragamit sa presente nakakubkob.
+An pinakahuring entrada kan pagkubkob nakahaya sa ibaba bilang reperensiya:',
+'clearyourcache' => "'''Note:''' Matapos maitagama, ika mapuwedeng makaluktos sa tagoan kan saimong kilyaw tanganing mahiling an mga naribayan.
+* '''Firefox / Safari:''' Pauntok na duon sa ''Shift'' habang pinipindot an ''Ikarga otro'', o pinduton as maski arin sa ''Ctrl-F5'' o ''Ctrl-R'' (''⌘-R'' para sa Mac)
+* '''Google Chrome:''' Pinduton ''Ctrl-Shift-R'' (''⌘-Shift-R'' para sa Mac)
+* '''Internet Explorer:''' Pauntok na duon sa ''Ctrl'' habang pinipindot an ''Ipresko otro'', o pinduton an ''Ctrl-F5''
+* '''Konqueror:''' Ipindot an ''Ikarga otro'' o pinduton an ''F5''
+* '''Opera:''' Linigan an tagoan sa ''Tools → Mga Kabotan''",
+'usercssyoucanpreview' => "'''Tip:''' Gamita an \"{{int:showpreview}}\" na pindutan tanganing prubaran an saimong baguhong CSS bago ipagtagama.",
+'userjsyoucanpreview' => "'''Tip:''' Gamita an \"{{int:showpreview}}\" na pindutan tanganing prubaran an saimong baguhong JavaScript bago ipagtagama.",
+'usercsspreview' => "'''Giromdoma baya na ika nagtatanaw pa sana kan saimong paragamit sa CSS.'''
+'''Ini dae pa tabi naitatagama!'''",
 'userjspreview' => "'''Giromdomon tabi na pigtetest/pighihiling mo sana an patanaw kan saimong JavaScript nin paragamit, dai pa ini naitagama!'''",
+'sitecsspreview' => "'''Giromdoma baya na ika nagtatanaw pa sana kaining CSS.'''
+'''Ini dae pa tabi naitatagama!'''",
+'sitejspreview' => "'''Giromdoma baya na ika nagtatatanaw pa sana kaining koda sa JavaScript.'''
+'''Ini dae pa tabi naitatagama!'''",
 'userinvalidcssjstitle' => "'''Patanid:''' Mayong ''skin'' na \"\$1\". Giromdomon tabî na an .css asin .js na mga páhina naggagamit nin titulong nakasurat sa sadit na letras, halimbawa {{ns:user}}:Foo/vector.css bakong {{ns:user}}:Foo/Vector.css.",
 'updated' => '(Binàgo)',
 'note' => "'''Paisi:'''",
-'previewnote' => "'''Patànaw sana ini; dai pa naitagama an mga pagbabàgo!'''",
+'previewnote' => "'''Giromdoma na ini sarong patanaw pa sana.'''
+An saimong mga pinagriliwat dae pa tabi naitatagama!",
+'continue-editing' => 'Ipagpadagos an pagliliwat',
 'previewconflict' => 'Mahihilíng sa patànaw na ini an tekstong nasa itaas na lugar nin paghirá arog sa maipapahiling kun ini an itatagama mo.',
 'session_fail_preview' => "'''Despensa! Dai mi naipadagos an paghirá mo huli sa pagkawara nin datos kan sesyon.
 Probaran tabì giraray. Kun dai man giraray magibo, probaran na magluwas dangan maglaog giraray.'''",
-'session_fail_preview_html' => "'''Despensa! Dai mi naipadagos an paghirá mo nin huli sa kawàran kan datos kan sesyon.'''
+'session_fail_preview_html' => "'''Sori po! Dae tabi nyamo maiproseso an saimong pagliwat nin huli sa kawaraan kan datos sa sesyon.'''
 
-''Huli ta ining wiki may HTML na nakaandar, pigtago an patànaw bilang paglikay kontra sa mga atake sa JavaScript.''
+''Nin huli ta {{SITENAME}} igwa nin bakong pang naprosesong HTML pinagpagana, an patanaw ipinagtago bilang pag-ingat kontra sa atake kan JavaScript.''
 
-'''Kun talagang boot mong hirahón ini, probaran giraray. Kun dai pa giraray magibo, magluwas dangan maglaog giraray. '''",
+'''Kun ini sarong lehitimong pagprubar nin pagliwat, paki-otro tabi giraray.'''
+Kun ini dae man giraray guminana, magprubar na [[Special:UserLogout|magluwas]] asin maglaog giraray.",
 'token_suffix_mismatch' => "'''Dai pigtogotan an paghirá mo ta sinabrit kan client mo an punctuation characters.
 Dai pigtogotan ining paghirá tangarig maibitaran na maraot an teksto kan pahina.
 Nanyayari nanggad ini kun naggagamit ka nin bakong maraháy asin dai bistong web-based proxy service.'''",
+'edit_form_incomplete' => "'''An ibang mga parte kan porma nin pagliwat dae nakaabot sa serbidor; paki-dobleng mansay na an saimong mga pinagliwat bilog na yaon pa asin paki-otro giraray.'''",
 'editing' => 'Pigliliwat an $1',
+'creating' => 'Pinagmumukna an $1',
 'editingsection' => 'Pighihira an $1 (seksyon)',
-'editingcomment' => 'Pighihira an $1 (komento)',
+'editingcomment' => 'Pigliliwat an $1 (bagong seksyon)',
 'editconflict' => 'Komplikto sa paghihira: $1',
 'explainconflict' => "May ibang parágamit na nagbàgo kaining pahina kan pagpoon mong paghirá kaini.
 Nahihilíng ang pahina kan teksto sa parteng itaas kan teksto.
@@ -634,35 +819,78 @@ Pigpropromesa mo man samuyà na ika an kagsurat kaini, o kinopya mo ini sa domin
 '''DAI TABÌ MAGSUMITIR NIN MGA GIBONG IPINAPANGALAD NA KOPYAHON NIN MAYONG PERMISO!'''",
 'copyrightwarning2' => "Giromdomon tabì na an gabos na kontribusyon sa {{SITENAME}} pwedeng hirahón, bàgohon o halion kan ibang mga parágamit. Kun habô mong mahirá an saimomg sinurat na mayong pakimàno, pues, dai tabì isumitir iyan digdi.<br />
 Pigpapangakò mo man samuyà na ika an nagsurat kaini, o pigkopya mo ini sa dominiong panpubliko o sarong parehong libreng rekurso (hilingon an $1 para sa mga detalye). '''DAI TABÌ MAGSUMITIR NIN MGA GIBONG IPINAPANGALAD NA KOPYAHON NIN MAYONG PERMISO!'''",
-'longpageerror' => "'''SALÀ: $1 na kilobytes na kalabà an pahinang isinumitir mo, na mas halabà sa hanggan nin $2 na kilobytes. Dai pwede ining itagama.'''",
-'readonlywarning' => "'''PATANID: Nakakandado an base nin datos para sa pagmantinir, pues, dai mo mûna pwede na itagama an mga paghirá mo. Pwede mo pa man na arogon dangan ipaskil ang teksto sa sarong dokumento arog kan MS Word asbp. asin itagama ini para sa atyan.'''",
-'protectedpagewarning' => "'''PATANID:  Nakakandado ining pahina tangarig an mga parágamit na may priblehiyo nin ''sysop'' sana an pwedeng maghira kaini.'''",
-'semiprotectedpagewarning' => "'''Paisi:''' An pahinang ini isinara tangarig mga rehistradong parágamit sana an makahira kaini.",
+'longpageerror' => "'''Ay Sala: An teksto na saimong pinagsumite {{PLURAL:$1|sarong kilobyte|$1 kilobytes}} an laba, mas halaba kesa maksimum na {{PLURAL:$2|sarong kilobyte|$2 kilobytes}}.'''
+Ini dae tabi maitatagama.",
+'readonlywarning' => "'''Patanid tabi: An datos-sarayan nakakandado para sa maintenance, kay ika dae makakapagtagama kan saimong mga pinagriliwat sa ngunyan.'''
+Ika mapuwedeng maikopya an teksto pasiring sa sarong sagunson kan teksto asin para itagama ini sa huri.
+
+An administrador na iyo an nagkandado kaini naghayag kaining kapaliwanagan: $1",
+'protectedpagewarning' => "'''Patanid tabi: Ining pahina pinagprotektaran tanganing an mga paragamit sana na igwang pribilihiyo bilang administrador an makakapagliwat kaini.'''
+An pinakahuring entrada sa talaan pinaghaya sa ibaba bilang reperensiya:",
+'semiprotectedpagewarning' => "'''Note:''' Ining pahina pinagprotektaran na tanganing an mga rehistradong mga paragamit sana an mapuwedeng makapagliwat kaini.
+An pinakahuring entrada sa talaan pinaghaya sa ibaba bilang reperensiya:",
 'cascadeprotectedwarning' => "'''Patanid:''' Nakakandado an pahinang ini tangarig an mga parágamit na igwang pribilehyo nin sysop sana an pwedeng maghirá kaini, huli ta kabali ini sa mga kataratang protektado na {{PLURAL:$1|pahina|mga pahina}}:",
-'templatesused' => 'Mga templato na piggamit sa pahinang ini:',
-'templatesusedpreview' => 'Mga templato na piggamit sa patànaw na ini:',
-'templatesusedsection' => 'Mga templato na piggamit sa seksyon na ini:',
+'titleprotectedwarning' => "'''Patanid tabi: Ining pahina pinagprotektaran na tanganing [[Special:ListGroupRights|espesipikong karapatan]] minakaipo tanganing magmukna kaini.'''
+An pinakahuring entrada sa talaan pinaghaya sa ibaba bilang reperensiya:",
+'templatesused' => '{{PLURAL:$1|Template|Mga Panguyog}} na pinaggamit kaining pahina:',
+'templatesusedpreview' => '{{PLURAL:$1|Template|Mga Panguyog}} na pinaggamit kaining patanaw:',
+'templatesusedsection' => '{{PLURAL:$1|Template|Mga Panguyog}} na pinaggamit kaining seksyon:',
 'template-protected' => '(protektado)',
 'template-semiprotected' => '(semi-protektado)',
+'hiddencategories' => 'Ining pahina sarong miyembro kan {{PLURAL:$1|1 pinagtagong kategorya|$1 pinagtagong mga kategorya}}:',
 'edittools' => '<!-- An teksto digdi mahihiling sa babâ kan mga pormang pighihirá asin pigkakarga. -->',
 'nocreatetitle' => 'Limitado an paggibo nin pahina',
-'nocreatetext' => 'Igwang pagpogol sa paggibo nin bàgong pahina sa site na ini.
-Pwede kang bumalik dangan maghirá nin presenteng pahina, o [[Special:UserLogin|maglaog o magbukas nin account]].',
-'nocreate-loggedin' => 'Mayò ka nin permiso na maggibo nin mga bàgong pahina sa wiki na ini.',
+'nocreatetext' => '{{SITENAME}} pinagpupugol an kakayanan na magmukna nin baguhong mga pahina.
+Ika makakabalik asin magliwat kan eksistidong nang pahina, o [[Special:UserLogin|maglaog ka o magmukna nin sarong panindog]].',
+'nocreate-loggedin' => 'Ika mayo tabi nin permiso tanganing magmukna nin baguhong mga pahina.',
+'sectioneditnotsupported-title' => 'An pagliliwat tabi sa seksyon bakong suportado',
+'sectioneditnotsupported-text' => 'An pagliliwat tabi sa seksyon bakong suportado sa pahinang ini.',
 'permissionserrors' => 'Mga saláng Permiso',
 'permissionserrorstext' => 'Mayò ka nin permiso na gibohon yan, sa minasunod na {{PLURAL:$1|rason|mga rason}}:',
-'recreate-moveddeleted-warn' => "'''Patanid: Piggigíbo mo giraray an pahina na pigparà na dati pa.'''
-
-Dapat mong isipon kun kaipuhan na ipadagos an paghirá kaining pahina.
-An paghalì kan historial para sa pahinang ini yaon digdi para sa saimong kombenyensya:",
+'permissionserrorstext-withaction' => 'Ika mayo tabi nin permiso sa $2, para sa minasunod na {{PLURAL:$1|rason|mga rason}}:',
+'recreate-moveddeleted-warn' => "'''Patanid tabi: Saimong pinagmumukna giraray an sarong pahina na dati nang pinagpura.'''
+
+Saimo tabing ikonsidera kun ini maninigo na ipagpadagos pa an pagliliwat kaining pahina.
+An pagpura asin pagbalyong talaan para sa pahinang ini pinaghaya digde para sa kombenyinsiya:",
+'moveddeleted-notice' => 'Ining pahina pinagpura na.
+An pagpura asin pagbalyong talaan para sa pahina pinaghaya sa ibaba bilang reperensiya.',
+'log-fulllog' => 'Tanawon an bilog na talaan',
+'edit-hook-aborted' => 'An pagliwat pinagpundo sa paagi kan pangawil.
+Ini dae tabi nagtao nin kapaliwanagan.',
+'edit-gone-missing' => 'Dae makakapagdagdag sa pahina.
+Ini minapahiwatig tabi na pinagpura na.',
 'edit-conflict' => 'Igwang iregularidad sa pagliwat.',
+'edit-no-change' => 'An saimong pagliwat pinagbalewala, nin huli ta mayong pagbabago an pinaghimo sa teksto.',
 'edit-already-exists' => 'Dai maggibo an bàgong pahina.
 Igwa na kaini.',
+'defaultmessagetext' => 'Tugmadong mensahe sa teksto',
+
+# Parser/template warnings
+'expensive-parserfunction-warning' => "'''Patanid tabi:''' Ining pahina naglalaman nin grabe kadakulon na ekspensibong programang pambaranga sa punksyon nin mga pag-aapod.
+
+Ini dapat magkaigwa nin menos sanang $2 {{PLURAL:$2|apod|mga apod}}, igwa na {{PLURAL:$1|ngunyan nin $1 apod|ngunyan nin $1 mga apod}}.",
+'expensive-parserfunction-category' => 'Mga pahina na igwa nin grabe kadakulon na mga ekspensibong programang pambaranga sa punksyon nin mga pag-aapod',
+'post-expand-template-inclusion-warning' => "'''Patanid tabi:''' An panguyog (template) igwang sukol na grabe kadakula.
+An ibang mga panguyog dae tabi maipagdadagdag.",
+'post-expand-template-inclusion-category' => 'Mga pahina kun saen an panguyog igwang sukol na sobrado',
+'post-expand-template-argument-warning' => "'''Patanid tabi:''' Ining pahina naglalaman baya nin sarong panguyog na igwang grabe kadakulang kalakbangan sa sukol.
+Ining mga argumento tabi pinagharali na.",
+'post-expand-template-argument-category' => 'Mga pahina na naglalaman kan pinagharaleng mga argumento sa panguyog',
+'parser-template-loop-warning' => 'An kaluktosan kan panguyog namansayan: [[$1]]',
+'parser-template-recursion-depth-warning' => 'An panguyog nin rekursyong panrarom na kasagkodan nagsobra nin ($1)',
+'language-converter-depth-warning' => 'Tagapagbago kan Lengguwaheng panrarom na kasagkodan nagsobra ($1)',
+'node-count-exceeded-category' => 'Mga pahina kun saen an kabilangan nin tagapagsumpay nagsobra',
+'node-count-exceeded-warning' => 'An pahina nagsobra an kabilangan nin tagapagsumpay',
+'expansion-depth-exceeded-category' => 'Mga pahina kun saen an panrarom na kalakbangan nagsobra',
+'expansion-depth-exceeded-warning' => 'An pahina nagsobra sa panrarom na kalakbangan',
+'parser-unstrip-loop-warning' => 'Panul-ot na kaluktusan namansayan',
+'parser-unstrip-recursion-limit' => 'Panul-ot na rekusyong kasagkodan nagsobra ($1)',
 
 # "Undo" feature
 'undo-success' => 'Pwedeng bawion an paghirá. Sosogon tabì an pagkakaiba sa babâ tangarig maberipikár kun ini an boot mong gibohon, dangan itagama an mga pagbabàgo sa babâ tangarig tapuson an pagbawì sa paghirá.',
 'undo-failure' => 'Dai napogol an paghirá ta igwa pang ibang paghirá sa tahaw na nagkokomplikto.',
-'undo-summary' => 'Bawion an pagpakaraháy na $1 ni [[Special:Contributions/$2|$2]] ([[User talk:$2|Pag-oláyan]])',
+'undo-norev' => 'An pagliwat dae tabi magigibo nin huli ta ini bakong eksistido o pinagpura na.',
+'undo-summary' => 'Ibalik tabi an pinagbabago $1 sa paagi [[Special:Contributions/$2|$2]] ([[Paragamit na Olay:$2|olay]])',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Dai makagibo nin account',
@@ -674,6 +902,7 @@ Igwa na kaini.',
 'viewpagelogs' => 'Hilingón an mga usip para sa pahinang ini',
 'nohistory' => 'Mayong paghirá nin uusipón sa pahinang ini.',
 'currentrev' => 'Sa ngonyan na pagpakarháy',
+'currentrev-asof' => 'Pinakahuring pagbabago kan $1',
 'revisionasof' => 'Pagpakarháy sa $1',
 'revision-info' => 'An pagpakarháy sa $1 ni $2',
 'previousrevision' => '←Lumà pang pagpakarhay',
@@ -688,9 +917,10 @@ Igwa na kaini.',
 Legend: (ngonyan) = kaibhán sa ngonyan na bersyon,
 (huri) = kaibhán sa huring bersyon, S = saradít na paghirá.',
 'history-fieldset-title' => 'Rinsayon an uusipon',
+'history-show-deleted' => 'Pinagpura sana',
 'histfirst' => 'Pinakaenot',
 'histlast' => 'Pinakahúri',
-'historysize' => '($1 bytes)',
+'historysize' => '({{PLURAL:$1|sarong byte|$1 mga bytes}})',
 'historyempty' => '(mayong laog)',
 
 # Revision feed
@@ -702,51 +932,154 @@ Pwedeng pigparà na ini sa wiki, o tinàwan nin bàgong pangaran.
 Probaran tabì an [[Special:Search|pighahanap sa wiki]] para sa mga pahinang dapít.',
 
 # Revision deletion
-'rev-deleted-comment' => '(hinalì an komento)',
+'rev-deleted-comment' => '(pagliwat na sumaryo pinaghale)',
 'rev-deleted-user' => '(hinalì an parágamit)',
-'rev-deleted-event' => '(hinalì an ingreso)',
-'rev-deleted-text-permission' => 'Ining pagpakaraháy nin pahina pighalì na sa mga archibong panpubliko.
-Pwedeng igwang mga detalye sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} historial kan pagparà].',
-'rev-deleted-text-view' => 'Ining pagpakaraháy nin pahina pighalì na sa mga archibong panpubliko.
-Pwede mo ining hilingón bilang sarong tagamató kaining site;
-Pwedeng igwang mga detalye sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} historial kan pagparà].',
+'rev-deleted-event' => '(talaan kan aksyon pinaghale)',
+'rev-deleted-user-contribs' => 'Paragamit na ngaran o IP address pinaghale - an pigliwat pinagtago gikan sa mga kontribusyon]',
+'rev-deleted-text-permission' => "An pinagbago tabi kaining pahina '''pinagpura'''.
+An mga detalye mananagboan sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan kan pinagpura].",
+'rev-deleted-text-unhide' => "An pagbabago tabi kaining pahina '''pinagpura'''.
+Mga detaylye puwedeng managboan sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan nin pagpura].
+Ika mapuwedeng [$1 hilingon ining pagbabago] kun ika nagmawot na magpadagos.",
+'rev-suppressed-text-unhide' => "An pagbabago kaining pahina '''pinaglubog'''.
+Mga detalye mapuwedeng managboan sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} talaan kan paglubog].
+Ika mapuwede pa man [$1 matanaw ining pagbabago] kun mawot na magdagos",
+'rev-deleted-text-view' => "An pagbabago tabi kaining pahina '''pinagpura'''.
+Ika mapuwedeng magtanaw kaini; mga detalye puwedeng managboan sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan kan pinagpura].",
+'rev-suppressed-text-view' => "An pagbabago kaining pahina '''pinaglubog'''.
+Ika mapuwedeng matanaw ini; mga detalye puwedeng managboan sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} talaan kan pinaglubog].",
+'rev-deleted-no-diff' => "Ika dae makapagtanaw kaining diff nin huli ta saro kan mga pagbabago '''pinagpura'''.
+Mga detalye puwedeng managboan sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan kan pinuraan].",
+'rev-suppressed-no-diff' => "Ika dae makapagtanaw kaining diff nin huli ta saro sa mga pagbabago '''pinagpura'''.",
+'rev-deleted-unhide-diff' => "Saro sa mga pagbabago kaining diff '''pinagpura'''.
+Mga detalye mapuwedeng managboan sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan kan pinuraan].
+Ika mapuwede pa [$1 magtanaw kaining diff] kun ika nagmawot na magpadagos.",
+'rev-suppressed-unhide-diff' => "Saro sa mga pagbabago kaining diff '''pinaglubog'''.
+Mga detalye mapuwedeng managboan sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} talaan kan pinaglubog].
+Ika mapuwede pa man na [$1 matanaw ining diff] kun ika mawot na magdagos.",
+'rev-deleted-diff-view' => "Saro sa mga pinagbago kaining diff '''pinagpura'''.
+Ika makakapagtanaw kaining diff; mga detalye puwedeng mananagboan sa [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} talaan kan pinuraan].",
+'rev-suppressed-diff-view' => "Saro sa mga pinagbago kaining diff '''pinaglubog'''.
+Ika puwedeng makakatanaw kaining diff; mga detalye puwedeng mananagboan sa [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} talaan kan pinaglubog].",
 'rev-delundel' => 'ipahilíng/itagò',
+'rev-showdeleted' => 'ibuyagyag',
 'revisiondelete' => 'Paraon/bawion an mga pagpakaraháy',
-'revdelete-nooldid-title' => 'Mayong tunggit pagpakaraháy',
-'revdelete-nooldid-text' => 'Dai ka nagpili nin target na pagpakarhay o mga pagpakarhay tangarig magamit ini.',
-'revdelete-selected' => "'''{{PLURAL:$2|Selected revision|Selected revisions}} kan [[:$1]]'''",
-'revdelete-text' => "'''An mga pagpakarhay asin mga panyayari na pigparâ mahihiling pa sa historya asin mga historial kan páhina, pero an ibang parte kan mga laog kaini dai na ipapahiling sa publiko.'''
-
-An ibang mga administrador sa ining wiki pwede pang maghiling kan mga nakatagong laog asin pwede pa nindang bawîon an pagparâ kaini sa paggamit kan parehong ''interface'', kun mayô pang mga ibang restriksyón.",
-'revdelete-legend' => 'Ipwesto an mga restriksyón',
+'revdelete-nooldid-title' => 'Imbalidong target nin pagbabago',
+'revdelete-nooldid-text' => 'Ika dae baya naghayag nin sarong target sa pagbabago tanganing gibohon ining punksyon, an ipinaghayag na pagbabago bako tabing eksistido, o ika nagpuprubar tanganing itago an presentend pagbabago.',
+'revdelete-nologtype-title' => 'Mayong tipo nin talaan na ipinagtao',
+'revdelete-nologtype-text' => 'Ika dae tabi nagpapahayag nin sarong tipo nin talaan tanganing gumibo kaining aksyon dagos.',
+'revdelete-nologid-title' => 'Imbalidong entrada sa talaan',
+'revdelete-nologid-text' => 'Ika dae tabi naghayag nin sarong target talaan nin pangyayari tanganing gumibo kaining punksyon o an pinaghayag na entrada dae tabi eksistido.',
+'revdelete-no-file' => 'An sagunson na pinaghayag dae tabi eksistido.',
+'revdelete-show-file-confirm' => 'Segurado ka tabi na gusto mo matanaw sarong pinagpurang pagbabago kan sagunson "<nowiki>$1</nowiki>" poon $2 sa $3?',
+'revdelete-show-file-submit' => 'Iyo tabi',
+'revdelete-selected' => "'''{{PLURAL:$2|Selected revision|Mga piniling pagbabago}} kan [[:$1]]'''",
+'logdelete-selected' => "'''{{PLURAL:$1|Selected log event|Mga piniling talaan kan mga pangyayari}}:'''",
+'revdelete-text' => "'''Pinagpurang mga pagbabago asin mga pangyayari mahihiling pa man sa historiyang pahina asin mga talaan, pero an mga parte kan saindang laman dae puwedeng magamit kan publiko.'''
+An ibang administrador sa {{SITENAME}} puwede pa man makagamit sa pinagtagong laman asin balewalaon an pagpura kaini giraray sa paagi nin kaparehong panlaog-olay, laen lang kun may kadagdagang pangilin an inilapat.",
+'revdelete-confirm' => 'Pakikumpirma tabi na ika tuyong gumibo kaini, na saimong naintindihan an mga konsekuwensiya, asin ta ika pinaghihimo ini na uyon sa [[{{MediaWiki:Policy-url}}|an palisiya]].',
+'revdelete-suppress-text' => "An paglulubog dapat '''sana''' makakagamit sana para sa minasunod na mga kaso:
+*Potensiyal na libeloso an impormasyon
+*Bakong angay an personal na impormasyon
+*: ''mga address kan harong asin mga numero kan telepono, sosyal na seguridad, iba pa.''",
+'revdelete-legend' => 'Ilapat an mga restriksyon sa bisibilidad',
 'revdelete-hide-text' => 'Tagoon an teksto kan pagpakaraháy',
 'revdelete-hide-image' => 'Tagoon an laog kan file',
 'revdelete-hide-name' => 'Tagoon an aksyon asin target',
 'revdelete-hide-comment' => 'Tagoon an komento sa paghirá',
 'revdelete-hide-user' => 'Tagoon an pangaran kan editor/IP',
-'revdelete-hide-restricted' => 'Ibali sa mga restriksyón na ini an mga sysops asin iba pa',
+'revdelete-hide-restricted' => 'Ilubog an mga datos gikan sa mga administrador asin man kan iba',
+'revdelete-radio-same' => '(dae pagribayan)',
+'revdelete-radio-set' => 'Iyo tabi',
+'revdelete-radio-unset' => 'Bako tabi',
 'revdelete-suppress' => 'Dai ipahilíng an mga datos sa mga sysops asin sa mga iba pa',
 'revdelete-unsuppress' => 'Halîon an mga restriksyón sa mga ibinalík na pagpakarhay',
 'revdelete-log' => 'Rason:',
-'revdelete-submit' => 'Ibílang sa piniling pagpakarhay',
-'revdelete-success' => "'''Nakapwesto na an bisibilidad kan pagpakarhay.'''",
+'revdelete-submit' => 'Ipag-aplay sa mga piniling {{PLURAL:$1|pagbabago|mga pagbabago}}',
+'revdelete-success' => "'''Pagbabago sa bisibilidad matrayumpong pinagdagdagan.'''",
+'revdelete-failure' => "'''Pagbabago sa bisibilidad dae tabi nadagdagan:'''
+$1",
 'logdelete-success' => "'''Nakapuesto na an katalâan kan nangyari.'''",
+'logdelete-failure' => "'''Talaan sa bisibilidad dae tabi nailapat:'''
+$1",
+'revdel-restore' => 'ribayan an bisibilidad',
+'revdel-restore-deleted' => 'pinagpurang mga pagbabago',
+'revdel-restore-visible' => 'lantad na mga pagbabago',
+'pagehist' => 'Pahinang historiya',
+'deletedhist' => 'Pinagpurang historiya',
+'revdelete-hide-current' => 'Napasalang pagtatago kan item petsado $2, $1: Iyo ini an presenteng pagbabago.
+Ini dae tabi naitatago.',
+'revdelete-show-no-access' => 'Napasalang paghahayag kan item petsado $2, $1: Ining item markadong "pinagpangilin".
+Ika mayo tabing pangaputan kaini.',
+'revdelete-modify-no-access' => 'Napasalang pagsasangli kan item petsado $2, $1: Ining item markadong "pinagpangilin".
+Ika mayo tabing pangaputan kaini.',
+'revdelete-modify-missing' => 'Napasalang pagsasangli kan item ID $1: Ini nawawara gikan sa datos-sarayan!',
+'revdelete-no-change' => "'''Patanid tabi:''' An item petsado $2, $1 igwa na tabi kan pinaghahagad na mga panuytoy sa bisibilidad.",
+'revdelete-concurrent-change' => 'Napasalang pagsasangli kan item petsado $2, $1: An status nagpapahiling na pinagribayan kan ibang tawo habang ikan nagprubar na sanglian ini.
+Paki-tsek tabi sa mga talaan.',
+'revdelete-only-restricted' => 'Napasalang pagtatago kan item petsado $2, $1: Ika dae tabi makakapaglubog kan mga item na mahiling kan mga administrador na mayo kang piniling saro sa iba pang bisibilidad na mga pagpipilian.',
+'revdelete-reason-dropdown' => '*Pirmihang mga rason sa pagpura
+**Paglapas kan Copyright
+**Bakong angay na personal na impormasyon
+**Potensiyal na libelosong impormasyon',
+'revdelete-otherreason' => 'Iba pa/kadagdagang rason:',
+'revdelete-reasonotherlist' => 'Ibang rason',
+'revdelete-edit-reasonlist' => 'Liwaton an mga rason sa pagpura',
+'revdelete-offender' => 'Awtor kan pagbabago:',
+
+# Suppression log
+'suppressionlog' => 'Talaan kan paglulubog',
+'suppressionlogtext' => 'Sa ibaba yaon an sarong listahan kan mga pinuraan asin mga kinubkob na imbuwelto sa laman na pinagtatago sa mga administrador.
+Hilnga baya an [[Special:BlockList|listahan kan kinubkob]] para sa listahan kan presenteng operasyonal na mga pinagbabawal asin mga pinagkukubkob.',
+
+# History merging
+'mergehistory' => 'Tiriponon an pahina kan mga historiya',
+'mergehistory-header' => 'Ining pahina minatugot saimo na tiriponon an mga pagbabago kan historiya nin sarong pinaggikanang pahina na magin sarong baguhong pahina.
+Himoon mong segurado na ining pagbabago makapagtala nin historikal na kapadagusang pahina.',
+'mergehistory-box' => 'Tiriponon an mga pagbabago sa duwang mga pahina:',
+'mergehistory-from' => 'Gikanang pahina:',
+'mergehistory-into' => 'Destinasyong pahina:',
+'mergehistory-list' => 'Puwedeng maitiripon na historiya kan pagliwat',
+'mergehistory-merge' => 'An mga minasunod na mga pagbabago sa [[:$1]] mapuwedeng pagtiriponon na magin [[:$2]].
+Gamita an radyong pindutan sa kolum tanganing tiriponon sana an mga pagbabagong pinagmukna asin bago pa man an pinaghahayag na oras.
+Tandaan na an paggagamit kan nabigasyong kilyawan makakapaglapat giraray kaining kolum.',
+'mergehistory-go' => 'Ipahayag an mapuwedeng matiripon na mga pagliwat',
+'mergehistory-submit' => 'Tiripona an mga pagbabago',
+'mergehistory-empty' => 'Mayong mga pagbabago na puwedeng mapagtiripon.',
+'mergehistory-success' => '$3 {{PLURAL:$3|pagbabago|mga pagbabago}} sa [[:$1]] matrayumpong napagtiripon na magin [[:$2]].',
+'mergehistory-fail' => 'Dae tabi makayanan na makapaghimo nin historiyang pagtiripon, tabi pakihiling giraray an pahina asin parametro kan oras.',
+'mergehistory-no-source' => 'Gikanang pahina $1 bakong eksistido.',
+'mergehistory-no-destination' => 'Destinasyong pahina $1 bakong eksistido.',
+'mergehistory-invalid-source' => 'Gikanang pahina kaipuhan magin saro na balidong titulo.',
+'mergehistory-invalid-destination' => 'Destinasyong pahina kaipuhan magin saro na balidong titulo.',
+'mergehistory-autocomment' => 'Pinagtiripon [[:$1]] na magin [[:$2]]',
+'mergehistory-comment' => 'Pinagtiripon [[:$1]] na magin [[:$2]]: $3',
+'mergehistory-same-destination' => 'Gikanan asin destinasyong mga pahina dae puwedeng magkapareho',
+'mergehistory-reason' => 'Rason:',
 
 # Merge log
+'mergelog' => 'Talaan kan pagtiripon',
+'pagemerge-logentry' => 'pinagtiripon [[$1]] na magin [[$2]] (mga pagbabago sagkod sa $3)',
 'revertmerge' => 'Suwayón',
+'mergelogpagetext' => 'Sa ibaba yaon an sarong listahan kan pinakahuring mga pagtitiripon kan sarong pahinang historiya sagkod sa iba pa.',
 
 # Diffs
-'history-title' => 'Uusipón nin pagpakarháy kan "$1"',
+'history-title' => 'Pagbabagong historiya kan "$1"',
+'difference-title' => 'Pagkalaen sa tahaw nin mga pagbabago kan "$1"',
+'difference-title-multipage' => 'Pagkalaen sa tahaw nin mga pahina sa "$1" asin "$2"',
+'difference-multipage' => '(Pagkalaen sa tahaw kan mga pahina)',
 'lineno' => 'Taytáy $1:',
 'compareselectedversions' => 'Ikomparar an mga piniling bersyon',
+'showhideselectedversions' => 'Ihayag/itago mga piniling pagbabago',
 'editundo' => 'isulít',
-'diff-multi' => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} dai ipinahihiling.)',
+'diff-multi' => '({{PLURAL:$1|Saro intermediate na pagbabago|$1 mga intermediate na mga pagbabago}} by {{PLURAL:$2|sarong paragamit|$2 mga paragamit}} dae pinaghahayag)',
+'diff-multi-manyusers' => '({{PLURAL:$1|Sarong intermediate na pagbabago|$1 mga intermediate na mga pagbabago}} na sobra sa $2 {{PLURAL:$2|paragamit|mga paragamit}} dae pinaghahayag)',
 
 # Search results
 'searchresults' => 'Resulta kan paghánap',
 'searchresults-title' => 'Hanápon an resulta para sa "$1"',
 'searchresulttext' => 'Para sa iba pang impormasyon manonongod sa paghanap sa {{SITENAME}}, hilingon tabî an [[{{MediaWiki:Helppage}}|{{int:help}}]].',
-'searchsubtitle' => "Hinanap mo an '''[[:$1]]'''",
+'searchsubtitle' => 'Ika naghanap para sa \'\'\'[[:$1]]\'\'\' ([[Special:Prefixindex/$1|gabos na mga pahina na nagpopoon sa "$1"]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|gabos na mga pahina na nakatakod sa "$1"]])',
 'searchsubtitleinvalid' => "Hinanap mo an '''$1'''",
 'toomanymatches' => 'Kadakol-dakol na angay an ipigbalik, probaran an ibang kahaputan',
 'titlematches' => 'Angay an título kan artíkulo',
@@ -810,12 +1143,33 @@ An ibang mga administrador sa ining wiki pwede pang maghiling kan mga nakatagong
 'savedprefs' => 'Itinagama na an mga kabôtan mo.',
 'timezonelegend' => 'Zona nin oras',
 'localtime' => 'Lokal na oras',
-'servertime' => "Oras kan ''server''",
+'timezoneuseserverdefault' => 'Gamita an panugmad sa wiki ($1)',
+'timezoneuseoffset' => 'Iba pa (ihayag an pambawi)',
+'timezoneoffset' => 'Bawia¹:',
+'servertime' => 'Oras kan serbidor:',
 'guesstimezone' => "Bugtakan an ''browser''",
+'timezoneregion-africa' => 'Aprika',
+'timezoneregion-america' => 'Amerika',
+'timezoneregion-antarctica' => 'Antartika',
+'timezoneregion-arctic' => 'Arktik',
+'timezoneregion-asia' => 'Asya',
+'timezoneregion-atlantic' => 'Atlantikong Kadagatan',
+'timezoneregion-australia' => 'Australya',
+'timezoneregion-europe' => 'Europa',
+'timezoneregion-indian' => 'Indiyang Kadagatan',
+'timezoneregion-pacific' => 'Pasipikong Kadagatan',
 'allowemail' => "Togotan an mga ''e''-surat halî sa ibang mga parágamit",
-'defaultns' => 'Maghilíng mûna sa ining mga ngaran-espacio:',
+'prefs-searchoptions' => 'Pagpipilian sa Paghahanap',
+'prefs-namespaces' => 'Pangarang mga espasyo',
+'defaultns' => 'Kun laen maghanap sa laog kaining pangarang mga espasyo:',
 'default' => 'pwestong normal',
 'prefs-files' => 'Mga dokumento',
+'prefs-custom-css' => 'Kustombreng CSS',
+'prefs-custom-js' => 'Kustombreng JavaScript',
+'prefs-common-css-js' => 'Pinagheras na CSS/JavaScript para sa gabos na mga kalapatan:',
+'prefs-reset-intro' => 'Ika makakagamit kaining pahina tanganing ilapat giraray an saimong mga kabotan sa panugmad kan sayt.
+Ini dae tabi matitingkog.',
+'prefs-emailconfirm-label' => 'Kumpirmasyon sa E-koreo',
 'youremail' => 'E-koreo:',
 'username' => 'Pangaran kan parágamit:',
 'uid' => 'ID kan parágamit:',
@@ -833,49 +1187,171 @@ An ibang mga administrador sa ining wiki pwede pang maghiling kan mga nakatagong
 '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.',
 
+# User preference: e-mail validation using jQuery
+'email-address-validity-invalid' => 'Magkaag nin sarong balidong e-koreong address',
+
 # User rights
 'userrights' => 'Pagmaneho kan mga derecho nin paragamit',
 'userrights-lookup-user' => 'Magmaného kan mga grupo nin parágamit',
 'userrights-user-editname' => 'Ilaog an pangaran kan parágamit:',
 'editusergroup' => 'Hirahón an mga Grupo kan Parágamit',
-'editinguser' => "Pighihira an parágamit na '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
+'editinguser' => "Sinasanglian an paragamit na karapatan kan paragamit '''[[User:$1|$1]]''' $2",
 'userrights-editusergroup' => 'Hirahón an mga grupo kan parágamit',
 'saveusergroups' => 'Itagama an mga Grupo nin Páragamit',
 'userrights-groupsmember' => 'Myembro kan:',
+'userrights-groupsmember-auto' => 'Implisitong miyembro kan:',
+'userrights-groups-help' => 'Ika puwedeng magbago kan mga grupo na kinabalihan kaining paragamit:
+*An natsekan na kahon minapasabot na an paragamit kabali sa grupong yan.
+*An mayong tsek na kahon minapasabot na an paragamit bakong kabali sa grupong yan.
+* A * minapahiwatig na ika dae puwedeng makapaghale kan grupo kun naidagdag mo na ini, or vice versa.',
 'userrights-reason' => 'Rason:',
+'userrights-no-interwiki' => 'Ika mayo tabing permkso na magliwat sa paragamit na karapatan sa ibang wikis.',
+'userrights-nodatabase' => 'An datos-sarayan $1 bakong eksistido o bakong lokal.',
+'userrights-nologin' => 'Ika kaipuhan na [[Special:UserLogin|maglaog ka]] na igwa nin panindog na administrador bago ka makapagtao nin karapatan sa paragamit.',
+'userrights-notallowed' => 'An saimong panindog mayo tabi nin permiso na magdagdag o maghale nin karapatan kan mga paragamit.',
+'userrights-changeable-col' => 'Mga grupo na mapuwede mong baguhon',
+'userrights-unchangeable-col' => 'Mga grupo na dae mo mapuwedeng baguhon',
 
 # Groups
 'group' => 'Grupo:',
+'group-user' => 'Mga Paragamit',
 'group-autoconfirmed' => 'Paragamit na sadiring nagkonpirma',
 'group-bot' => 'Mga bots',
 'group-sysop' => 'Mga sysop',
 'group-bureaucrat' => 'Mga bureaucrat',
+'group-suppress' => 'Mga Tagapagmato',
 'group-all' => '(gabos)',
 
-'group-autoconfirmed-member' => 'Enseguidang nakonpirmar na parágamit',
-'group-sysop-member' => 'Opsys',
-'group-bureaucrat-member' => 'Bureaucrat',
+'group-user-member' => '{{GENDER:$1|paragamit}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|auto-kumpirmadong paragamit}}',
+'group-bot-member' => '{{GENDER:$1|bot}}',
+'group-sysop-member' => '{{GENDER:$1|administrador}}',
+'group-bureaucrat-member' => '{{GENDER:$1|burokrata}}',
+'group-suppress-member' => '{{GENDER:$1|tagapagmato}}',
 
+'grouppage-user' => '{{ns:project}}:Mga Paragamit',
 'grouppage-autoconfirmed' => '{{ns:project}}:Mga enseguidang nakonpirmar na parágamit',
 'grouppage-bot' => '{{ns:project}}:Mga bot',
 'grouppage-sysop' => '{{ns:project}}:Mga tagamató',
 'grouppage-bureaucrat' => '{{ns:project}}:Mga bureaucrat',
+'grouppage-suppress' => '{{ns:project}}:Tagapagmato',
+
+# Rights
+'right-read' => 'Magbasa kan mga pahina',
+'right-edit' => 'Liwaton an mga pahina',
+'right-createpage' => 'Muknaon an mga pahina (na bakong mga pahina nin orolayan)',
+'right-createtalk' => 'Muknaon an mga pahinang orolayan',
+'right-createaccount' => 'Muknaon an baguhong mga panindog nin paragamit',
+'right-minoredit' => 'Markahan an mga pinagliwat bilang menor',
+'right-move' => 'Ibalyo an mga pahina',
+'right-move-subpages' => 'Ibalyo an mga pahina kaiba an saindang mga sub-pahina',
+'right-move-rootuserpages' => 'Ibalyo an ugat nin mga pahina kan paragamit',
+'right-movefile' => 'Ibalyo an mga sagunson',
+'right-suppressredirect' => 'Dae tabi magmukna nin paotrong direksyon gikan sa ginikanang mga pahina kunsoarin magbabalyo nin mga pahina',
+'right-upload' => 'Ipagkarga an mga sagunson (file)',
+'right-reupload' => 'Patungan an mga eksistidong mga sagunson',
+'right-reupload-own' => 'Patungan an eksistido nang mga pahina na ipinagkarga sa paagi mo',
+'right-reupload-shared' => 'Salambawan an mga sagunson sa lokal na pinagheras nin repositoryo kan media',
+'right-upload_by_url' => 'Ipagkara an mga sagunson sa sarong URL',
+'right-purge' => 'Purgaha an sarayan kan sayt para sa sarong pahina na daeng kaipo an kumpirmasyon',
+'right-autoconfirmed' => 'Liwaton an semi-protektadong mga pahina',
+'right-bot' => 'Pagtrataron bilang awtomatikong proseso',
+'right-nominornewtalk' => 'Dae gayod nagkaigwa nin menor na pagliwat sa mga pahina nin orolayan minasulpang nin bunyaw kan bagong mga mensahe',
+'right-apihighlimits' => 'Gumamit nin harahalangkaw na sagkodan sa mga kahaputan kan API',
+'right-writeapi' => 'Gamit kan pagsurat sa API',
+'right-delete' => 'Puraon an mga pahina',
+'right-bigdelete' => 'Puraon an mga pahina na igwang darakulang mga historiya',
+'right-deleterevision' => 'Puraon asin dae puraon an espisipikong pagbabago kan mga pahina',
+'right-deletedhistory' => 'Tanawon an pinagpurang mga entradang historiya, na dae kan saindang asosyadong teksto',
+'right-deletedtext' => 'Tanawon an pinagpurang teksto asin mga karibay sa tahaw kan mga pagbabagong pinagpura na',
+'right-browsearchive' => 'Hanapon an pinagpurang mga pahina',
+'right-undelete' => 'Dae puraon an pahina',
+'right-suppressrevision' => 'Hilngon otro asin balikon an mga pagbabagong itinago gikan sa mga administrador',
+'right-suppressionlog' => 'Tanawon an pribadong mga talaan',
+'right-block' => 'Kubkubon an ibang mga paragamit sa pagliliwat',
+'right-blockemail' => 'Kubkubon an paragamit na makapagpadara nin e-koreo',
+'right-hideuser' => 'Kubkubon an pangaran nin paragamit, itago ini sa publiko',
+'right-ipblock-exempt' => 'Sampawan an pangubkob kan IP, awtomatikong-kubkob asin panhalawig na kubkob',
+'right-proxyunbannable' => 'Sampawan an awtomatikong mga kubkob kan mga proksi',
+'right-unblockself' => 'Dae pagkubkubon sinda',
+'right-protect' => 'Ribayan an kurit kan proteksyon asin liwaton an protektadong mga pahina',
+'right-editprotected' => 'Liwaton an protektadong mga pahina (na bakong pinagsasalansan an proteksyon)',
+'right-editinterface' => 'Liwaton an paragamit na olay-panlaog',
+'right-editusercssjs' => 'Liwaton an CSS asin JavaScript na mga sagunson kan ibang mga paragamit',
+'right-editusercss' => 'Liwaton an CSS na mga sagunson kan ibang mga paragamit',
+'right-edituserjs' => 'Liwaton an JavaScript na mga sagunson kan ibang mga paragamit',
+'right-rollback' => 'Hidaling ibalik an mga niliwat kan huring paragamit na nagliwat nin sarong partikular na pahina',
+'right-markbotedits' => 'Markahan an pinagbalik na mga niliwat bilang bot na panliwat',
+'right-noratelimit' => 'Dae magin apektado sa paagi kan rata nin mga sagkodan',
+'right-import' => 'Importaron an mga pahina gikan sa ibang mga wikis',
+'right-importupload' => 'Importaron an mga pahina gikan sa sarong pangarga nin sagunson',
+'right-patrol' => 'Markahan an mga pagliwat kan iba bilang patrolyado',
+'right-autopatrol' => 'Giboha na an saimong sadiring mga pagliwat awtomatikong markado bilang patrolyado',
+'right-patrolmarks' => 'Tanawon an pinakahuring mga pagbabago na markadong patrol',
+'right-unwatchedpages' => 'Tanawon an listahan kan mayong bantay na mga pahina',
+'right-mergehistory' => 'Pagkasararoon an historiya kan mga pahina',
+'right-userrights' => 'Liwaton gabos an karapatan kan mga paragamit',
+'right-userrights-interwiki' => 'Liwaton an karapatan kan mga paragamit kan ibang mga wikis',
+'right-siteadmin' => 'Kandaduhan asin dae pagkandaduhan an datos-sarayan',
+'right-override-export-depth' => 'Eksportaron an mga pahina kabali na an pinagkilyawan na mga pahina sagkod sa rarom na 5',
+'right-sendemail' => 'Magpadara nin e-koreo sa ibang mga paragamit',
+'right-passwordreset' => 'Tanawon an e-koreo kan pagbabago nin sekretong panlaog',
 
 # User rights log
 'rightslog' => 'Usip nin derechos nin paragamit',
 'rightslogtext' => 'Ini an historial kan mga pagbabâgo sa mga derecho nin parágamit.',
 'rightslogentry' => 'Rinibayab an pagkamyembro ni $1 sa $2 sagkod sa $3',
+'rightslogentry-autopromote' => 'dati na awtomatikong pinagpalangkaw gikan sa $2 sagkod $3',
 'rightsnone' => '(mayô)',
 
 # Associated actions - in the sentence "You do not have permission to X"
+'action-read' => 'basaha ining pahina',
 'action-edit' => 'liwatón ining pahina',
+'action-createpage' => 'magmukna nin mga pahina',
+'action-createtalk' => 'Magmukna nin mga pahina sa orolayan',
+'action-createaccount' => 'Muknaon ining panindog kan paragamit',
+'action-minoredit' => 'marakahan ining pagliwat bilang menor',
+'action-move' => 'ibalyo ining pahina',
+'action-move-subpages' => 'ibalyo ining pahina, asin kaiba an mga sub-pahina',
+'action-move-rootuserpages' => 'ibalyo an ugat kan mga pahina nin mga paragamit',
+'action-movefile' => 'ibalyo ining sagunson',
+'action-upload' => 'ikarga ining mga sagunson',
+'action-reupload' => 'sampawan ining eksistidong sagunson',
+'action-reupload-shared' => 'salambawan ining sagunson sa pinagheras na repositoryo',
+'action-upload_by_url' => 'ikarga ining sagunson gikan sa URL',
+'action-writeapi' => 'gamita an panurat na API',
+'action-delete' => 'puraon ining pahina',
+'action-deleterevision' => 'puraon ining pagbabago',
+'action-deletedhistory' => 'tanawon an pinagpurang historiya kaining pahina',
+'action-browsearchive' => 'hanapon an pinagpurang mga pahina',
+'action-undelete' => 'dae pagpuraon ining pahina',
+'action-suppressrevision' => 'hilngon otro asin ibalik ining pinagtagong pagbabago',
+'action-suppressionlog' => 'tanawon ining pribadong talaan',
+'action-block' => 'kubkubon ining paragamit gikan sa pagliliwat',
+'action-protect' => 'ribayan an kurit nin proteksyon para sa pahinang ini',
+'action-rollback' => 'hidaling ipagbalik an mga pagliwat kan huring paragamit na pinagliwat an sarong partikular na pahina',
+'action-import' => 'importaron ining pahina gikan sa ibang wiki',
+'action-importupload' => 'importaron ining pahina gikan sa sarong ikinargang sagunson',
+'action-patrol' => 'markahan an pagliwat kan iba bilang patrolyado',
+'action-autopatrol' => 'Giboha na an saimong pagliwat markado bilang patrolyado',
+'action-unwatchedpages' => 'tanawon an listahan kan mayong bantay na mga pahina',
+'action-mergehistory' => 'Pagkasararoon an historiya kaining pahina',
+'action-userrights' => 'liwaton gabos na mga karapatan nin paragamit',
+'action-userrights-interwiki' => 'liwaton an paragamit na mga karapatan kan mga paragamit nin ibang wikis',
+'action-siteadmin' => 'ikandado o dae ikandado an datos-sarayan',
+'action-sendemail' => 'magpadara nin mga e-koreo',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|pagbabâgo|mga pagbabâgo}}',
 'recentchanges' => 'Mga nakakaági pa sanáng pagbabàgo',
+'recentchanges-legend' => 'Pinakahuring mga option kan mga pagbabago',
 'recentchanges-summary' => 'Hanapon an mga pinahuring pagbabâgo sa wiki digdi sa páhinang ini.',
 'recentchanges-feed-description' => 'Hanápon an mga pinakahuring pagbabàgo sa wiki sa hungit na ini.',
-'rcnote' => "Mahihiling sa babâ an {{PLURAL:$1| '''1''' pagbabàgo|'''$1''' pagbabàgo}} sa huring {{PLURAL:$2|na aldaw|'''$2''' na aldaw}}, sa $3.",
+'recentchanges-label-newpage' => 'Ining pagliwat nakapagmukna nin sarong baguhon na pahina',
+'recentchanges-label-minor' => 'Ini saro sanang menor na pagliwat',
+'recentchanges-label-bot' => 'Ining pagliwat pinaghimo bilang sarong bot',
+'recentchanges-label-unpatrolled' => 'Ining pagliwat dae pa tabi pinagpatrolyahan',
+'rcnote' => "Yaon sa ibaba iyo {{PLURAL:$1|an '''1''' pagbabago|an mga huring '''$1''' mga pagbabago}} kan nakaaging huring {{PLURAL:$2|aldaw|'''$2''' mga aldaw}}, poon pa kan $5, $4.",
 'rcnotefrom' => "Mahihiling sa babâ an mga pagbabàgo poon kan '''$2''' (hasta '''$1''' ipinapahiling).",
 'rclistfrom' => 'Ipahilíng an mga pagbabàgo poon sa $1',
 'rcshowhideminor' => '$1 saradit na pagligwat',
@@ -892,10 +1368,14 @@ An ibang mga administrador sa ining wiki pwede pang maghiling kan mga nakatagong
 'minoreditletter' => 's',
 'newpageletter' => 'B',
 'boteditletter' => 'b',
-'number_of_watching_users_pageview' => '[$1 nagbabantay na parágamit]',
+'number_of_watching_users_pageview' => '[$1 naka-antabay sa {{PLURAL:$1|paragamit|mga paragamit}}]',
 'rc_categories' => 'Limitado sa mga kategorya (suhayon nin "|")',
 'rc_categories_any' => 'Dawà arín',
+'rc-change-size-new' => '$1 {{PLURAL:$1|byte|bytes}} pagtatapos kan pagbabago',
 'newsectionsummary' => '/* $1 */ bàgong seksyon',
+'rc-enhanced-expand' => 'Magpahiling kan mga detalye (minakaipo nin JavaScript)',
+'rc-enhanced-hide' => 'Itago an mga detalye',
+'rc-old-title' => 'orihinal na pinagmukna bilang "$1"',
 
 # Recent changes linked
 'recentchangeslinked' => 'Mga angay na pagbabàgo',
index d8bbc72..1f9e446 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Belarusian (TaraÅ¡kievica orthography) (â\80ªÐ\91еларуская (тарашкевіца)‬)
+/** Belarusian (TaraÅ¡kievica orthography) (â\80ªÐ±еларуская (тарашкевіца)‬)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -261,7 +261,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Хаваць патруляваныя зьмены ў сьпісе апошніх зьменаў',
 'tog-newpageshidepatrolled' => 'Хаваць правераныя старонкі ў сьпісе новых старонак',
 'tog-extendwatchlist' => 'Пашырыць сьпіс назіраньня, каб ён паказваў усе зьмены, а ня толькі апошнія',
-'tog-usenewrc' => 'Ð\92Ñ\8bкаÑ\80Ñ\8bÑ\81Ñ\82оÑ\9eваÑ\86Ñ\8c Ñ\83даÑ\81каналенÑ\8b Ñ\81Ñ\8cпÑ\96Ñ\81 Ð°Ð¿Ð¾Ñ\88нÑ\96Ñ\85 Ð·Ñ\8cменаў (патрабуе JavaScript)',
+'tog-usenewrc' => 'Ð\93Ñ\80Ñ\83паваÑ\86Ñ\8c Ð·Ñ\8cменÑ\8b Ñ\81Ñ\82аÑ\80онкÑ\96 Ñ\9e Ñ\81Ñ\8cпÑ\96Ñ\81аÑ\85 Ð°Ð¿Ð¾Ñ\88нÑ\96Ñ\85 Ð·Ñ\8cменаÑ\9e Ñ\96 Ð½Ð°Ð·Ñ\96Ñ\80анÑ\8cнÑ\8fў (патрабуе JavaScript)',
 'tog-numberheadings' => 'Аўтаматычная нумарацыя загалоўкаў',
 'tog-showtoolbar' => 'Паказваць панэль інструмэнтаў рэдагаваньня (патрабуе JavaScript)',
 'tog-editondblclick' => 'Рэдагаваць старонкі па падвойным пстрыку (JavaScript)',
@@ -269,17 +269,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Рэдагаваць сэкцыі па правым пстрыку на загалоўку (патрабуе JavaScript)',
 'tog-showtoc' => 'Паказваць зьмест (для старонак з колькасьцю сэкцый болей за 3)',
 'tog-rememberpassword' => 'Запомніць мяне ў гэтым браўзэры (ня больш за $1 {{PLURAL:$1|дзень|дні|дзён}})',
-'tog-watchcreations' => 'Ð\94адаваÑ\86Ñ\8c Ñ\83 Ð¼Ð¾Ð¹ Ñ\81Ñ\8cпÑ\96Ñ\81 Ð½Ð°Ð·Ñ\96Ñ\80анÑ\8cнÑ\8f Ñ\81Ñ\82аÑ\80онкÑ\96, Ñ\8fкÑ\96Ñ\8f Ñ\8f Ð±Ñ\83дÑ\83 Ñ\81Ñ\82ваÑ\80аÑ\86Ñ\8c',
-'tog-watchdefault' => 'Дадаваць у мой сьпіс назіраньня старонкі, якія я буду рэдагаваць',
-'tog-watchmoves' => 'Дадаваць у мой сьпіс назіраньня старонкі, якія я буду пераносіць',
-'tog-watchdeletion' => 'Дадаваць у мой сьпіс назіраньня старонкі, якія я буду выдаляць',
+'tog-watchcreations' => 'Ð\94адаваÑ\86Ñ\8c Ñ\83 Ð¼Ð¾Ð¹ Ñ\81Ñ\8cпÑ\96Ñ\81 Ð½Ð°Ð·Ñ\96Ñ\80анÑ\8cнÑ\8f Ñ\81Ñ\82воÑ\80анÑ\8bÑ\8f Ð¼Ð½Ð¾Ð¹ Ñ\81Ñ\82аÑ\80онкÑ\96 Ñ\96 Ð·Ð°Ð³Ñ\80Ñ\83жанÑ\8bÑ\8f Ð¼Ð½Ð¾Ð¹ Ñ\84айлÑ\8b',
+'tog-watchdefault' => 'Дадаваць у мой сьпіс назіраньня старонкі і файлы якія я рэдагаваў',
+'tog-watchmoves' => 'Дадаваць у мой сьпіс назіраньня старонкі і файлы якія я пераносіў',
+'tog-watchdeletion' => 'Дадаваць у мой сьпіс назіраньня старонкі і файлы, якія я выдаляю',
 'tog-minordefault' => 'Па змоўчаньні пазначаць усе зьмены дробнымі',
 'tog-previewontop' => 'Паказваць папярэдні прагляд старонкі над полем рэдагаваньня',
 'tog-previewonfirst' => 'Папярэдні прагляд пры першым рэдагаваньні',
 'tog-nocache' => 'Адключыць кэшаваньне старонак у браўзэры',
-'tog-enotifwatchlistpages' => 'Паведамляць мне праз электронную пошту пра зьмены старонак у маім сьпісе назіраньня',
+'tog-enotifwatchlistpages' => 'Ð\9fаведамлÑ\8fÑ\86Ñ\8c Ð¼Ð½Ðµ Ð¿Ñ\80аз Ñ\8dлекÑ\82Ñ\80оннÑ\83Ñ\8e Ð¿Ð¾Ñ\88Ñ\82Ñ\83 Ð¿Ñ\80а Ð·Ñ\8cменÑ\8b Ñ\81Ñ\82аÑ\80онак Ñ\96 Ñ\84айлаÑ\9e Ñ\83 Ð¼Ð°Ñ\96м Ñ\81Ñ\8cпÑ\96Ñ\81е Ð½Ð°Ð·Ñ\96Ñ\80анÑ\8cнÑ\8f',
 'tog-enotifusertalkpages' => 'Паведамляць праз электронную пошту пра зьмены маёй старонкі гутарак',
-'tog-enotifminoredits' => 'Паведамляць праз электронную пошту таксама пра дробныя зьмены старонак',
+'tog-enotifminoredits' => 'Паведамляць праз электронную пошту таксама пра дробныя зьмены старонак і файлаў',
 'tog-enotifrevealaddr' => 'Не хаваць мой адрас электроннай пошты ў паведамленьнях',
 'tog-shownumberswatching' => 'Паказваць колькасьць назіральнікаў',
 'tog-oldsig' => 'Цяперашні подпіс:',
@@ -612,6 +612,8 @@ $1',
 'badarticleerror' => 'Гэтае дзеяньне немагчыма выканаць на гэтай старонцы.',
 'cannotdelete' => 'Немагчыма выдаліць старонку альбо файл «$1». Магчыма, яна ўжо выдаленая кімсьці іншым.',
 'cannotdelete-title' => 'Немагчыма выдаліць старонку «$1»',
+'delete-hook-aborted' => 'Выдаленьне скасаванае працэдурай-перахопнікам.
+Тлумачэньняў не было.',
 'badtitle' => 'Няслушная назва',
 'badtitletext' => 'Запытаная назва старонкі няслушная ці пустая, альбо няслушна ўказаная міжмоўная ці інтэрвікі-назва. Яна можа ўтрымліваць сымбалі, якія нельга ўжываць у назвах.',
 'perfcached' => 'Наступныя зьвесткі кэшаваныя і могуць быць састарэлымі. У кэшы {{PLURAL:$1|даступны|даступныя}} ня больш за $1 {{PLURAL:$1|вынік|вынікі|вынікаў}}.',
@@ -645,6 +647,8 @@ $2',
 Адміністратар, які абмежаваў доступ, пазначыў прычыну: «$3».',
 'invalidtitle-knownnamespace' => 'Няслушная назва ў прасторы «$2»: «$3»',
 'invalidtitle-unknownnamespace' => 'Няслушная назва ў невядомай прасторы $1: «$2»',
+'exception-nologin' => 'Вы не ўвайшлі ў сыстэму',
+'exception-nologin-text' => 'Гэтая старонка ці дзеяньне патрабуе, каб вы ўвайшлі ў сыстэму.',
 
 # Virus scanner
 'virus-badscanner' => "Няслушная канфігурацыя: невядомы антывірусны сканэр: ''$1''",
@@ -3857,6 +3861,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 f40423a..eec4ffc 100644 (file)
@@ -3627,8 +3627,8 @@ Gambar ditampaiakan dalam risulusi hibak, janis barakas lain dimula lawan prugra
 Situs ngini mangalami kangalihan teknik.',
 'dberr-again' => 'Cuba hadangi babarapa manit wan muat-pulang.',
 'dberr-info' => '(Kada kawa tasambung ka server databasis: $1)',
-'dberr-usegoogle' => 'Pian kawa cuba manggagai lung Google wayah samantara ni.',
-'dberr-outofdate' => 'Catat nang sidin indiks matan isi kami pina kawa kadaluarsa.',
+'dberr-usegoogle' => 'Pian kawa mancuba manggagai lung Google wayah pahadangan ngini.',
+'dberr-outofdate' => 'Catat nang sidin indéks matan isi kami pinanya hudah kadaluarsa.',
 'dberr-cachederror' => 'Ngini adalah sabuah rekap timbuluk tungkaran nang dipinta, wan pinanya kada pahanyarnya.',
 
 # HTML forms
index 3e4f3ee..ce988d8 100644 (file)
@@ -185,7 +185,7 @@ $messages = array(
 'tog-hidepatrolled' => "Kuzhat ar c'hemmoù evezhiet e-touez ar c'hemmoù diwezhañ",
 'tog-newpageshidepatrolled' => 'Kuzhat ar pajennoù evezhiet diouzh roll ar pajennoù nevez',
 'tog-extendwatchlist' => 'Astenn ar roll evezhiañ a-benn diskouez an holl gemmoù ha neket ar re ziwezhañ hepken.',
-'tog-usenewrc' => "Ober gant ar c'hemmoù nevez gwellaet<br /> (rekis eo JavaScript)",
+'tog-usenewrc' => "Diskouez ar c'hemmoù nevez en ur feson kempennoc'h (rekis eo JavaScript)",
 'tog-numberheadings' => 'Niverenniñ emgefre an titloù',
 'tog-showtoolbar' => 'Diskouez ar varrenn gant ar meuzioù skridaozañ',
 'tog-editondblclick' => 'Daouglikañ evit kemmañ ur bajenn (JavaScript)',
@@ -193,15 +193,15 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Kemmañ ur rann dre glikañ a-zehou<br /> war titl ar rann',
 'tog-showtoc' => 'Diskouez an daolenn<br /> (evit ar pennadoù zo ouzhpenn 3 rann enno)',
 'tog-rememberpassword' => "Derc'hel soñj eus ma ger-tremen war an urzhiataer-mañ (evit $1 devezh{{PLURAL:$1||}} d'ar muiañ)",
-'tog-watchcreations' => 'Evezhiañ ar pajennoù krouet ganin',
-'tog-watchdefault' => 'Evezhiañ ar pennadoù savet pe kemmet ganin',
-'tog-watchmoves' => "Ouzhpennañ da'm roll evezhiañ ar pajennoù adanvet ganin",
-'tog-watchdeletion' => "Ouzhpennañ da'm roll evezhiañ ar pajennoù diverket ganin",
+'tog-watchcreations' => "Ouzhpennañ ar pajennoù krouet ganin da'm roll evezhiañ",
+'tog-watchdefault' => "Ouzhpennañ ar pajennoù kemmet ganin da'm roll evezhiañ",
+'tog-watchmoves' => "Ouzhpennañ ar pajennoù dilec'hiet ganin da'm roll evezhiañ",
+'tog-watchdeletion' => "Ouzhpennañ ar pajennoù diverket ganin da'm roll evezhiañ",
 'tog-minordefault' => "Sellet ouzh ar c'hemmoù degaset ganin<br /> evel kemmoù dister dre ziouer",
 'tog-previewontop' => 'Rakwelet tres ar bajenn a-us ar prenestr skridaozañ',
 'tog-previewonfirst' => 'Rakwelet tres ar bajenn kerkent hag an aozadenn gentañ',
 'tog-nocache' => 'Diweredekaat krubuilh ar pajennoù gant ar merdeer',
-'tog-enotifwatchlistpages' => 'Kas ur postel din pa vez kemmet ur bajenn evezhiet ganin',
+'tog-enotifwatchlistpages' => 'Kas ur postel din pa vez kemmet ur bajenn zo war ma roll evezhiañ',
 'tog-enotifusertalkpages' => 'Kas ur postel din pa vez kemmet ma fajenn gaozeal',
 'tog-enotifminoredits' => 'Kas ur postel din, ha pa vije evit kemenn kemmoù dister',
 'tog-enotifrevealaddr' => "Lakaat ma chomlec'h postel war wel er posteloù kemenn-diwall",
@@ -382,7 +382,7 @@ $messages = array(
 'personaltools' => 'Ostilhoù personel',
 'postcomment' => 'Rann nevez',
 'articlepage' => 'Sellet ouzh ar pennad',
-'talk' => 'Kaozeal',
+'talk' => 'Kaozeadenn',
 'views' => 'Gweladennoù',
 'toolbox' => 'Boest ostilhoù',
 'userpage' => 'Pajenn implijer',
@@ -535,8 +535,11 @@ Kasit keloù d'ur [[Special:ListUsers/sysop|merer]], en ur verkañ dezhañ choml
 'cannotdelete' => 'Dibosupl diverkañ ar bajenn pe ar restr "$1".
 Marteze e o bet diverket gant unan bennak all dija.',
 'cannotdelete-title' => 'N\'haller ket diverkañ ar bajenn "$1"',
+'delete-hook-aborted' => "Nullet ar c'hemmañ gant un astenn.
+Abeg dianav.",
 'badtitle' => 'Titl fall',
-'badtitletext' => "Faziek pe c'houllo eo titl ar bajenn goulennet; pe neuze eo faziek al liamm etreyezhel",
+'badtitletext' => "Faziek pe c'houllo eo titl ar bajenn goulennet; pe neuze eo faziek al liamm etreyezhel pe etrewiki.
+Marteze ez eus ennañ arouezennoù n'haller ket degemer en titloù.",
 'perfcached' => "Krubuilhet eo ar roadennoù da-heul ha marteze n'int ket bet hizivaet. D'ar muiañ e c'haller kaout {{PLURAL:$1|un disoc'h|$1 disoc'h}} er grubuilh.",
 'perfcachedts' => "Krubuilhet eo ar roadennoù da-heul hag hizivaet int bet da ziwezhañ d'an $1. D'ar muiañ e c'haller kaout {{PLURAL:$4|un disoc'h|$4 disoc'h}} er grubuilh.",
 'querypage-no-updates' => 'Diweredekaet eo an hizivaat evit ar bajenn-mañ. Evit poent ne vo ket nevesaet ar roadennoù amañ.',
@@ -566,6 +569,8 @@ Setu amañ perak ''$2''.",
 "\'\'$3\'\'" eo an abeg roet gant ar merour en deus prennet anezhi.',
 'invalidtitle-knownnamespace' => 'Titl direizh gant an esaouenn anv "$2" hag an destenn "$3"',
 'invalidtitle-unknownnamespace' => 'Titl direizh gant an niverenn esaouenn anv $1 hag an destenn "$2" dianav',
+'exception-nologin' => "N'oc'h ket kevreet",
+'exception-nologin-text' => "Ar bajenn-mañ pe an ober-mañ a c'houlenn e vefec'h kevreet er wiki-mañ.",
 
 # Virus scanner
 'virus-badscanner' => "Kefluniadur fall : skanner viruzoù dianav : ''$1''",
@@ -972,7 +977,7 @@ An abeg roet gant $3 zo ''$2''",
 'nextrevision' => "Stumm war-lerc'h →",
 'currentrevisionlink' => 'Gwelet ar stumm red',
 'cur' => 'red',
-'next' => "War-lerc'h",
+'next' => "war-lerc'h",
 'last' => 'kent',
 'page_first' => 'kentañ',
 'page_last' => 'diwezhañ',
@@ -1610,7 +1615,7 @@ Mar fell deoc'h enporzhiañ ho restr memes tra, kit war ho kiz ha grit gant un a
 Mar fell deoc'h enporzhiañ ar restr-mañ da vat, kit war ho kiz hag enporzhiit anezhi adarre dindan un anv all. [[File:$1|thumb|center|$1]]",
 'file-exists-duplicate' => 'Un eil eus ar {{PLURAL:$1|restr|restroù}} da-heul eo ar restr-mañ :',
 'file-deleted-duplicate' => "Diverket ez eus bet c'hoazh ur restr heñvel-poch ouzh ar restr-mañ ([[:$1]]). Gwelloc'h e vefe deoc'h teuler ur sell war istor diverkadenn ar bajenn-se a-raok hec'h enporzhiañ en-dro.",
-'uploadwarning' => 'Diwallit!',
+'uploadwarning' => 'Kemenn diwall en ur ezporzhiañ',
 'uploadwarning-text' => 'Cheñchit deskrivadur ar restr a-is ha klaskit en-dro.',
 'savefile' => 'Enrollañ ar restr',
 'uploadedimage' => '"[[$1]]" enporzhiet',
@@ -1949,7 +1954,7 @@ $1 {{PLURAL:$1|rummad|rummad}}',
 'unusedcategories' => 'Rummadoù dizimplij',
 'unusedimages' => 'Skeudennoù en o-unan',
 'popularpages' => 'Pajennoù sellet ar muiañ',
-'wantedcategories' => 'Rummadoù a vank',
+'wantedcategories' => 'Rummadoù goulennet a vank',
 'wantedpages' => 'Pajennoù goulennet ar muiañ',
 'wantedpages-badtitle' => "Titl direizh er strollad disoc'hoù : $1",
 'wantedfiles' => 'Restroù a vank',
@@ -2042,9 +2047,9 @@ Gallout a rit strishaat ar mod diskwel en ur zibab ar marilh, an anv implijer (d
 
 # Special:Categories
 'categories' => 'Roll ar rummadoù',
-'categoriespagetext' => 'Er {{PLURAL:$1|rummad|rummadoù}}da-heul ez eus pajennoù pe restroù media.
+'categoriespagetext' => 'Er {{PLURAL:$1|rummad|rummadoù}} da-heul ez eus pajennoù pe restroù media.
 Ne ziskouezer ket amañ ar [[Special:UnusedCategories|Rummadoù dizimplij]].
-Gwelet ivez ar [[Special:WantedCategories|rummadoù a vank]].',
+Gwelet ivez ar [[Special:WantedCategories|rummadoù goulennet a vank]].',
 'categoriesfrom' => 'Diskouez ar rummadoù en ur gregiñ gant :',
 'special-categories-sort-count' => 'Urzhiañ dre gont',
 'special-categories-sort-abc' => 'urzh al lizherenneg',
@@ -2162,7 +2167,7 @@ Evit tennañ ar bajenn-mañ a-ziwar ho rollad evezhiañ. klikit war "Paouez da e
 'unwatchthispage' => 'Paouez da evezhiañ',
 'notanarticle' => 'Pennad ebet',
 'notvisiblerev' => 'Stumm diverket',
-'watchnochange' => "Pajenn ebet eus ar re evezhiet ganeoc'h n'eo bet kemmet e-pad ar prantad spisaet",
+'watchnochange' => "N'ez eus elfenn ebet eus ar re evezhiet ganeoc'h a zo bet kemmet e-pad ar prantad spisaet",
 'watchlist-details' => "Lakaet hoc'h eus {{PLURAL:$1|$1 bajenn|$1 pajenn}} dindan evezh, anez kontañ ar pajennoù kaozeal.",
 'wlheader-enotif' => "* War enaou emañ ar c'has posteloù.",
 'wlheader-showupdated' => "* E '''tev''' emañ merket ar pajennoù bet kemmet abaoe ar wezh ziwezhañ hoc'h eus sellet outo",
@@ -2480,11 +2485,8 @@ Roit a-is an abeg resis (o verkañ, da skouer, roll ar pajennoù bet graet gaou
 'ipb-confirm' => 'Kadarnaat ar stankadenn',
 'badipaddress' => "Kamm eo ar chomlec'h IP.",
 'blockipsuccesssub' => 'Stankadenn deuet da benn vat',
-'blockipsuccesstext' => 'Stanket eo bet chomlec\'h IP "$1".
-<br />Gallout a rit sellet ouzh ar [[Special:BlockList|bajenn-mañ]] evit gwelet roll ar chomlec\'hioù IP stanket.
-
-Stanket eo bet [[Special:Contributions/$1|$1]].<br />
-Sellit ouzh [[Special:BlockList|roll ar chomlec\'hioù IP ha kontoù stanket]] evit gwiriañ ar stankadennoù.',
+'blockipsuccesstext' => "Stanket eo bet [[Special:Contributions/$1|$1]].<br />
+Sellit ouzh [[Special:BlockList|roll ar chomlec'hioù IP ha kontoù stanket]] evit gwiriañ ar stankadennoù.",
 'ipb-blockingself' => "Emaoc'h war-nes stankañ ac'hanoc'h hoc'h-unan ! Ha sur oc'h eo se a fell deoc'h ober ?",
 'ipb-confirmhideuser' => 'Emaoc\'h war-nes stankañ un implijer ha gweredekaet hoc\'h eus "kuzhat an implijer". Diverkañ a ra an dra-se anv an implijer en holl rolloù ha monedoù ar marilh.',
 'ipb-edit-dropdown' => 'Kemmañ an abegoù stankañ',
@@ -2529,7 +2531,7 @@ Sellit ouzh [[Special:BlockList|roll ar chomlec\'hioù IP ha kontoù stanket]] e
 'contribslink' => 'degasadennoù',
 'emaillink' => 'Kas ur postel',
 'autoblocker' => 'Emstanket rak implijet eo bet ho chomlec\'h IP gant "[[User:$1|$1]]" nevez zo.
-Setu aze an abeg(où) m\'eo bet stanket $1 : "$2"',
+Setu aze an abeg(où) m\'eo bet stanket $1 : "\'\'$2\'\'"',
 'blocklogpage' => 'Roll ar stankadennoù',
 'blocklog-showlog' => "Stanket eo bet an implijer-mañ c'hoazh. A-is emañ marilh ar stankadennoù, d'ho titouriñ :",
 'blocklog-showsuppresslog' => "Stanket ha kuzhet eo bet an implijer-mañ c'hoazh. A-is emañ marilh ar diverkadennoù, d'ho titouriñ :",
@@ -2700,8 +2702,8 @@ Mard eo se e c'hallit ivez implijout ul liamm a seurt gant [[{{#Special:Export}}
 # Namespace 8 related
 'allmessages' => 'Roll kemennoù ar reizhiad',
 'allmessagesname' => 'Anv',
-'allmessagesdefault' => 'Testenn dre ziouer',
-'allmessagescurrent' => 'Testenn zo bremañ',
+'allmessagesdefault' => 'Kemennadenn dre ziouer',
+'allmessagescurrent' => 'Kemennadenn zo bremañ',
 'allmessagestext' => "Setu roll ar c'hemennadennoù reizhiad a c'haller kaout en esaouennoù anv MediaWiki.
 Kit da welet [//www.mediawiki.org/wiki/Localisation Lec'heladur MediaWiki] ha [//translatewiki.net translatewiki.net] mar fell deoc'h kemer perzh e lec'heladur boutin MediaWiki.",
 'allmessagesnotsupportedDB' => "N'haller ket kaout {{ns:special}}:AllMessages rak diweredekaet eo bet wgUseDatabaseMessages.",
@@ -2915,6 +2917,7 @@ Sur a-walc'h abalamour d'ul liamm enni a gas d'ul lec'hienn ziavaez berzet.",
 'spambot_username' => 'Naetaat ar strob gant MediaWiki',
 'spam_reverting' => "Distreiñ d'ar stumm diwezhañ hep liamm davet $1",
 'spam_blanking' => 'Diverkañ an holl stummoù enno liammoù davet $1',
+'spam_deleting' => 'An holl stummoù enno liammoù war-zu $1, o tiverkañ',
 
 # Info page
 'pageinfo-title' => 'Titouroù evit "$1"',
@@ -2968,8 +2971,8 @@ $1',
 'filedelete-archive-read-only' => 'N\'hall ket ar servijer web skrivañ war ar c\'havlec\'h dielloù "$1".',
 
 # Browsing diffs
-'previousdiff' => '← Stumm kent',
-'nextdiff' => "Stumm nevesoc'h →",
+'previousdiff' => '← Kemm kent',
+'nextdiff' => "Kemm nevesoc'h →",
 
 # Media information
 'mediawarning' => "'''Diwallit :''' Kodoù siek a c'hall bezañ er seurt restr-mañ.
@@ -3806,6 +3809,8 @@ A-hend-all e c'hallit ober gant ar furmskrid eeunaet dindan. Ouzhpennet e vo hoc
 'api-error-empty-file' => "Ar restr hoc'h eus roet a oa goullo.",
 'api-error-emptypage' => "N'eo ket aotreet krouiñ pajennoù goullo.",
 'api-error-fetchfileerror' => 'Fazi diabarzh : aet ez eus un dra bennak a-dreuz en ur glask adtapout ar restr.',
+'api-error-fileexists-forbidden' => 'Bez\' ez eus c\'hoazh eus ur restr anvet "$1" ha n\'hall ket bezañ friket.',
+'api-error-fileexists-shared-forbidden' => "Bez' ez eus c'hoazh eus ur restr anvet \"\$1\" er c'havlec'h kenrannañ restroù ha n'hall ket bezañ friket anezhi.",
 'api-error-file-too-large' => "Ar restr hoc'h eus roet a oa re vras.",
 'api-error-filename-tooshort' => 'Re verr eo anv ar restr.',
 'api-error-filetype-banned' => 'Difennet eo ar seurt restroù',
@@ -3844,4 +3849,6 @@ A-hend-all e c'hallit ober gant ar furmskrid eeunaet dindan. Ouzhpennet e vo hoc
 'duration-centuries' => "$1 {{PLURAL:$1|c'hantved|kantved}}",
 'duration-millennia' => '$1 {{PLURAL:$1|milvloaz|milvoaz}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Dibosupl eo bet tapout ar prennoù war ar servijer $1.',
 );
index ee2dbb1..4d25907 100644 (file)
@@ -199,7 +199,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Amaga edicions patrullades als canvis recents',
 'tog-newpageshidepatrolled' => 'Amaga pàgines patrullades de la llista de pàgines noves',
 'tog-extendwatchlist' => 'Desplega la llista de seguiment per a mostrar tots els canvis afectats, no només els més recents',
-'tog-usenewrc' => 'Usa la presentació millorada dels canvis recents (cal JavaScript)',
+'tog-usenewrc' => 'Utilitza una presentació millorada dels canvis recents (cal JavaScript)',
 'tog-numberheadings' => 'Enumera automàticament els encapçalaments',
 'tog-showtoolbar' => "Mostra la barra d'eines d'edició (cal JavaScript)",
 'tog-editondblclick' => 'Edita les pàgines amb un doble clic (cal JavaScript)',
@@ -207,8 +207,8 @@ $messages = array(
 'tog-editsectiononrightclick' => "Habilita l'edició per seccions en clicar amb el botó dret sobre els títols de les seccions (cal JavaScript)",
 'tog-showtoc' => 'Mostra la taula de continguts (per pàgines amb més de 3 seccions)',
 'tog-rememberpassword' => 'Recorda la sessió al navegador (per un màxim de {{PLURAL:$1|dia|dies}})',
-'tog-watchcreations' => 'Vigila les pàgines que he creat',
-'tog-watchdefault' => 'Afegeix les pàgines que edito a la meua llista de seguiment',
+'tog-watchcreations' => 'Afegeix les pàgines que vagi creant a la llista de seguiment',
+'tog-watchdefault' => 'Afegeix les pàgines que vagi creant a la llista de seguiment',
 'tog-watchmoves' => 'Afegeix les pàgines que reanomeni a la llista de seguiment',
 'tog-watchdeletion' => 'Afegeix les pàgines que elimini a la llista de seguiment',
 'tog-minordefault' => 'Marca totes les contribucions com a edicions menors per defecte',
@@ -550,6 +550,8 @@ Aviseu-ho llavors a un [[Special:ListUsers/sysop|administrador]], deixant-li cla
 'cannotdelete' => "No s'ha pogut esborrar la pàgina o fitxer «$1».
 Potser ja ha estat esborrat per algú altre.",
 'cannotdelete-title' => 'No es pot suprimir la pàgina " $1 "',
+'delete-hook-aborted' => 'Un «hook» ha interromput la supressió.
+No ha donat cap explicació.',
 'badtitle' => 'El títol no és correcte',
 'badtitletext' => 'El títol de la pàgina que heu introduït no és correcte, és en blanc o conté un enllaç trencat amb un altre projecte. També podria contenir algun caràcter no acceptat als títols de pàgina.',
 'perfcached' => "Les dades següents es troben a la memòria cau i podrien no estar al dia. Hi ha un màxim {{PLURAL:$1|d'un resultat|de $1 resultats}} disponibles a la memòria cau.",
@@ -580,6 +582,8 @@ Els seus motius han estat: «''$2''».",
 L\'administrador que l\'ha bloquejat ha donat aquesta explicació: "$3".',
 'invalidtitle-knownnamespace' => "El títol amb l'espai de noms «$2» i text «$3» no és vàlid",
 'invalidtitle-unknownnamespace' => 'Títol no vàlid amb espai de noms desconegut de número «$1» i text «$2»',
+'exception-nologin' => 'No has iniciat sessió',
+'exception-nologin-text' => 'Aquesta pàgina o acció requereix que iniciïs sessió a aquest wiki.',
 
 # Virus scanner
 'virus-badscanner' => "Mala configuració: antivirus desconegut: ''$1''",
@@ -2046,7 +2050,7 @@ Vegeu també [[Special:WantedCategories|les categories soŀlicitades]].",
 'sp-deletedcontributions-contribs' => 'contribucions',
 
 # Special:LinkSearch
-'linksearch' => "Recerca d'enllaços externs",
+'linksearch' => "Cerca d'enllaços externs",
 'linksearch-pat' => 'Patró de cerca:',
 'linksearch-ns' => 'Espai de noms:',
 'linksearch-ok' => 'Cerca',
@@ -2891,6 +2895,7 @@ Això deu ser degut per un enllaç a un lloc extern inclòs a la llista negra.',
 'spambot_username' => 'Neteja de brossa del MediaWiki',
 'spam_reverting' => 'Es reverteix a la darrera versió que no conté enllaços a $1',
 'spam_blanking' => "Totes les revisions contenien enllaços $1, s'està deixant en blanc",
+'spam_deleting' => "S'estan suprimint totes les revisions que contenien enllaços a $1",
 
 # Info page
 'pageinfo-title' => 'Informació de «$1»',
@@ -3764,6 +3769,8 @@ Altrament, podeu fer servir un senzill formulari a continuació. El vostre comen
 'api-error-empty-file' => 'El fitxer que heu tramès està buit.',
 'api-error-emptypage' => 'No es permet la creació de pàgines noves en blanc.',
 'api-error-fetchfileerror' => 'Error intern: quelcom no ha funcionat en accedir al fitxer.',
+'api-error-fileexists-forbidden' => "Ja existeix un fitxer amb el nom «$1» i no pot sobreescriure's.",
+'api-error-fileexists-shared-forbidden' => "Ja existeix un fitxer amb el nom «$1» al repositori de fitxers compartits i no pot sobreescriure's.",
 'api-error-file-too-large' => 'El fitxer que heu tramès és massa gran.',
 'api-error-filename-tooshort' => 'El nom del fitxer és massa curt.',
 'api-error-filetype-banned' => 'Aquest tipus de fitxer està prohibit.',
@@ -3802,4 +3809,6 @@ Altrament, podeu fer servir un senzill formulari a continuació. El vostre comen
 'duration-centuries' => '$1 {{PLURAL:$1|segle|segles}}',
 'duration-millennia' => '$1 {{PLURAL:$1|mil·leni|mil·lenis}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => "No s'han pogut aconseguir els bloquejos al servidor $1.",
 );
index 2988190..d2b0477 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Xqt
  */
 
 $datePreferences = array(
@@ -500,6 +501,8 @@ Siók-mìng: (dāng) = gâe̤ng dék sĭng bēng-buōng bī-piâng, (sèng) = g
 'statistics' => 'Só-gé̤ṳ',
 'statistics-header-users' => 'Ê̤ṳng-hô só-gé̤ṳ',
 
+'disambiguationspage' => 'Template:Gì-ngiê',
+
 'brokenredirects-edit' => 'gāi',
 'brokenredirects-delete' => 'chēng',
 
index f402ab1..62e7ed2 100644 (file)
@@ -361,7 +361,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Skrýt patrolované editace v posledních změnách',
 'tog-newpageshidepatrolled' => 'Skrýt patrolované stránky ze seznamu nových stránek',
 'tog-extendwatchlist' => 'Na seznamu sledovaných stránek zobrazovat všechny změny, ne jen tu poslední',
-'tog-usenewrc' => 'Používat zdokonalené poslední změny (vyžaduje JavaScript)',
+'tog-usenewrc' => 'V posledních změnách a sledovaných stránkách seskupovat změny podle stránek (vyžaduje JavaScript)',
 'tog-numberheadings' => 'Automaticky číslovat nadpisy',
 'tog-showtoolbar' => 'Zobrazit panel nástrojů (vyžaduje JavaScript)',
 'tog-editondblclick' => 'Editovat dvojklikem (JavaScript)',
@@ -369,8 +369,8 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Zapnout možnost editace části stránky pomocí kliknutí pravým tlačítkem na nadpisy stránky (JavaScript)',
 'tog-showtoc' => 'Zobrazovat obsah (na stránkách s více než třemi nadpisy)',
 'tog-rememberpassword' => 'Zapamatovat si mé přihlášení v tomto prohlížeči (maximálně $1 {{PLURAL:$1|den|dny|dní}})',
-'tog-watchcreations' => 'Přidávat mnou založené stránky ke sledovaným',
-'tog-watchdefault' => 'Přidávat mnou editované stránky ke sledovaným',
+'tog-watchcreations' => 'Přidávat mnou založené stránky a načtené soubory ke sledovaným',
+'tog-watchdefault' => 'Přidávat mnou editované stránky a soubory ke sledovaným',
 'tog-watchmoves' => 'Přidávat mnou přesouvané stránky mezi sledované',
 'tog-watchdeletion' => 'Přidávat stránky, které smažu, mezi sledované',
 'tog-minordefault' => 'Označit editaci implicitně jako malá editace',
@@ -712,6 +712,7 @@ Pokud toto není váš případ, možná jste nalezli chybu v software. Prosíme
 'cannotdelete' => 'Nebylo možné smazat stránku nebo soubor „$1“.
 Možná už byl(a) smazán(a) někým jiným.',
 'cannotdelete-title' => 'Stránku „$1“ nelze smazat',
+'delete-hook-aborted' => 'Smazání bylo bez bližšího vysvětlení zrušeno přípojným bodem.',
 'badtitle' => 'Neplatný název',
 'badtitletext' => 'Požadovaný název stránky byl neplatný, prázdný nebo obsahoval nesprávnou předponu mezijazykového či interwiki odkazu. Možná obsahoval znaky, které v názvu nejsou dovoleny.',
 'perfcached' => 'Následující data jsou z cache a nemusí být plně aktuální. Cache může obsahovat maximálně {{PLURAL:$1|jeden výsledek|$1 výsledky|$1 výsledků}}.',
@@ -742,6 +743,8 @@ $2',
 Správce serveru, který úložiště zamkl, poskytl toto zdůvodnění: „''$3''“.",
 'invalidtitle-knownnamespace' => 'Neplatný název se jmenným prostorem „$2“ a textem „$3“',
 'invalidtitle-unknownnamespace' => 'Neplatný název s neznámým číslem jmenného prostoru $1 a textem „$2“',
+'exception-nologin' => 'Nejste přihlášen(a)',
+'exception-nologin-text' => 'Tato stránka nebo akce vyžaduje, abyste byli na této wiki přihlášeni.',
 
 # Virus scanner
 'virus-badscanner' => "Špatná konfigurace: neznámý antivirový program: ''$1''",
@@ -1095,7 +1098,7 @@ Níže vidíte soupis přesunů a smazání této stránky:",
 'moveddeleted-notice' => 'Tato stránka byla smazána.
 Podrobnosti si můžete prohlédnout v níže zobrazeném seznamu provedených přesunů a smazání této stránky.',
 'log-fulllog' => 'Zobrazit všechny záznamy',
-'edit-hook-aborted' => 'Editace byla zrušena přípojným bodem bez bližšího vysvětlení.',
+'edit-hook-aborted' => 'Editace byla bez bližšího vysvětlení zrušena přípojným bodem.',
 'edit-gone-missing' => 'Stránku se nepodařilo aktualizovat.
 Zřejmě byla smazána.',
 'edit-conflict' => 'Editační konflikt.',
@@ -1107,7 +1110,7 @@ Zřejmě byla smazána.',
 'expensive-parserfunction-warning' => 'Varování: Tato stránka obsahuje příliš mnoho volání výkonnostně náročných funkcí parseru.
 
 Povolený limit je $2, v současné chvíli však {{PLURAL:$1|zde jedno volání je|zde jsou $2 volání|zde je $2 volání}}.',
-'expensive-parserfunction-category' => 'Stránky s příliš vysokým počtem volání funkcí parseru.',
+'expensive-parserfunction-category' => 'Stránky s příliš mnoho voláními náročných funkcí parseru',
 'post-expand-template-inclusion-warning' => 'Varování: Objem vkládaných šablon je příliš velký.
 Některé šablony nebudou vloženy.',
 'post-expand-template-inclusion-category' => 'Stránky překračující povolenou velikost vložených šablon',
@@ -4001,6 +4004,8 @@ Jinak můžete využít jednoduchý formulář níže. Váš komentář bude př
 'api-error-empty-file' => 'Načtený soubor je prázdný.',
 'api-error-emptypage' => 'Zakládání prázdných stránek není dovoleno.',
 'api-error-fetchfileerror' => 'Vnitřní chyba: došlo k chybě při stahování souboru.',
+'api-error-fileexists-forbidden' => 'Soubor s názvem „$1“ už existuje a nelze ho přepsat.',
+'api-error-fileexists-shared-forbidden' => 'Soubor s názvem „$1“ už existuje ve sdíleném úložišti a nelze ho přepsat.',
 'api-error-file-too-large' => 'Načtený soubor je příliš velký.',
 'api-error-filename-tooshort' => 'Název souboru je příliš krátký.',
 'api-error-filetype-banned' => 'Tento typ souboru je zakázán.',
index eeef532..61de1fb 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Kashubian (Kaszëbsczi)
+/** Kashubian (kaszëbsczi)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 73eed18..283d58d 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Church Slavic (Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ)
+/** Church Slavic (словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 63baaa3..8edcbe4 100644 (file)
@@ -124,7 +124,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Cuddio golygiadau sydd wedi derbyn ymweliad patrôl rhag y rhestr newidiadau diweddar',
 'tog-newpageshidepatrolled' => 'Cuddio tudalennau sydd wedi derbyn ymweliad patrôl rhag y rhestr dudalennau newydd',
 'tog-extendwatchlist' => "Ehangu'r rhestr wylio i ddangos pob golygiad yn hytrach na'r diweddaraf yn unig",
-'tog-usenewrc' => 'Defnyddio newidiadau diweddar gwell (angen JavaScript)',
+'tog-usenewrc' => "Yn dangos newidiadau i un dudalen gyda'i gilydd - ar 'newidiadau diweddar' a'r 'rhestr wylio' (angen JavaScript)",
 'tog-numberheadings' => "Rhifo penawdau'n awtomatig",
 'tog-showtoolbar' => 'Dangos y bar offer golygu (angen JavaScript)',
 'tog-editondblclick' => 'Golygu tudalennau wrth glicio ddwywaith (angen JavaScript)',
@@ -505,6 +505,8 @@ Rhoddwyd y rheswm hwn - ''$2''.",
 Y rheswm a roddwyd gan y gweinyddwr a roddodd y ffeil dan glo yw "\'\'$3\'\'".',
 'invalidtitle-knownnamespace' => 'Teitl annilys o\'r enw "$3" yn y parth "$2"',
 'invalidtitle-unknownnamespace' => 'Teitl annilys ag iddi\'r rhif parth anhysbys $1 a\'r enw "$2"',
+'exception-nologin' => 'Nid ydych wedi mewngofnodi',
+'exception-nologin-text' => "Rhaid mewngofnodi i'r wici er mwyn gweld y dudalen neu gyflawni'r weithred.",
 
 # Virus scanner
 'virus-badscanner' => "Cyfluniad gwael: sganiwr firysau anhysbys: ''$1''",
@@ -876,6 +878,8 @@ Cafodd yr argiau hyn eu hepgor.",
 'node-count-exceeded-warning' => 'Mae nifer y nodau yn y dudalen yn ormod',
 'expansion-depth-exceeded-category' => "Tudalennau â dyfnder ehangu tu hwnt i'r terfyn",
 'expansion-depth-exceeded-warning' => "Mae dyfnder ehangu'r dudalen y tu hwnt i'r terfyn",
+'parser-unstrip-loop-warning' => 'Wedi darganfod dolen dad-blicio (unstrip loop)',
+'parser-unstrip-recursion-limit' => 'Wedi mynd dros ben y terfyn ar ddychweliad dad-blicio (unstrip recursion) ($1)',
 
 # "Undo" feature
 'undo-success' => "Gellir dadwneud y golygiad. Byddwch gystal â gwirio'r gymhariaeth isod i sicrhau mai dyma sydd arnoch eisiau gwneud, ac yna rhowch y newidiadau ar gadw i gwblhau'r gwaith o ddadwneud y golygiad.",
@@ -1936,6 +1940,7 @@ Gallwch weld chwiliad mwy penodol trwy ddewis y math o lòg, enw'r defnyddiwr, n
 Sylwer bod llythrennau mawr neu fach o bwys i'r chwiliad.",
 'logempty' => 'Does dim eitemau yn cyfateb yn y lòg.',
 'log-title-wildcard' => "Chwilio am deitlau'n dechrau gyda'r geiriau hyn",
+'showhideselectedlogentries' => 'Dewis dangos neu guddio cofnodion lòg',
 
 # Special:AllPages
 'allpages' => 'Pob tudalen',
@@ -2789,7 +2794,7 @@ Mae ffolder dros dro yn eisiau.',
 'tooltip-rollback' => "Yn troi golygiad(au) y defnyddiwr diwethaf i'r dudalen hon yn ôl gydag un clic.",
 'tooltip-undo' => 'Mae "dadwneud" yn troi\'r golygiad hwn yn ôl ac yn dangos rhagolwg o\'r golygiad adferedig.
 Gellir ychwanegu rheswm dros y dadwneud yn y crynodeb.',
-'tooltip-preferences-save' => "Rhoi'r dewisiadau ar gadw",
+'tooltip-preferences-save' => 'Rhodder y dewisiadau ar gadw',
 'tooltip-summary' => 'Rhowch grynodeb byr',
 
 # Metadata
@@ -2813,8 +2818,9 @@ Gellir ychwanegu rheswm dros y dadwneud yn y crynodeb.',
 Achos hyn yn fwy na thebyg yw presenoldeb cysylltiad i wefan ar y rhestr waharddedig.',
 'spamprotectionmatch' => "Dyma'r testun gyneuodd ein hidlydd amddiffyn rhag sbam: $1",
 'spambot_username' => 'Teclyn clirio sbam MediaWiki',
-'spam_reverting' => "Yn troi nôl i'r diwygiad diweddaraf sydd ddim yn cynnwys cysylltiadau i $1",
-'spam_blanking' => 'Roedd cysylltiadau i $1 gan bob golygiad, yn blancio',
+'spam_reverting' => 'Wedi adfer y diwygiad diweddaraf na sydd yn cynnwys cysylltiadau i $1',
+'spam_blanking' => 'Roedd cysylltiadau i $1 gan bob golygiad, felly gwacawyd y dudalen',
+'spam_deleting' => 'Roedd pob diwygiad yn cynnwys cysylltiadau â $1, felly fe ddilëwyd y dudalen',
 
 # Info page
 'pageinfo-title' => 'Manylion "$1"',
@@ -3710,4 +3716,6 @@ Dangosir delweddau ar eu maint llawn, dechreuir ffeiliau o fathau eraill yn unio
 'duration-centuries' => '$1 {{PLURAL:$1|canmlwydd|ganmlwydd|ganmlwydd|canmlwydd|chanmlwydd|canmlwydd}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milflwydd|filflwydd|filflwydd|milflwydd|milflwydd|milflwydd}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Wedi methu sicrhau cloion ar y gweinydd $1.',
 );
index f0f7a76..7b279c3 100644 (file)
@@ -193,7 +193,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Skjul patruljerede redigeringer i seneste ændringer',
 'tog-newpageshidepatrolled' => 'Skjul patruljerede sider på listen over nye sider',
 'tog-extendwatchlist' => 'Udvid overvågningslisten til at vise alle ændringer og ikke kun den nyeste',
-'tog-usenewrc' => 'Brug forbedret liste over seneste ændringer (kræver JavaScript)',
+'tog-usenewrc' => 'Gruppér ændringerne per side i listen over seneste ændringer og overvågningslisten (kræver JavaScript)',
 'tog-numberheadings' => 'Automatisk nummerering af overskrifter',
 'tog-showtoolbar' => 'Vis værktøjslinje til redigering (JavaScript)',
 'tog-editondblclick' => 'Redigér sider med dobbeltklik (JavaScript)',
@@ -574,6 +574,8 @@ $2',
 Administratoren, som skrivebeskyttede den, gav følgende begrundelse: "$3".',
 'invalidtitle-knownnamespace' => 'Ugyldig titel med navnerummet "$2" og teksten "$3"',
 'invalidtitle-unknownnamespace' => 'Ugyldig titel med ukendt navnerum nummer $1 og tekst "$2"',
+'exception-nologin' => 'Ikke logget på',
+'exception-nologin-text' => 'Denne side eller handling kræver, at du er logget på denne wiki.',
 
 # Virus scanner
 'virus-badscanner' => "Konfigurationsfejl: ukendt virus-scanner: ''$1''",
@@ -2856,6 +2858,7 @@ Dette skyldes sandsynligvis en henvisning til et sortlistet eksternt websted.',
 'spambot_username' => 'MediaWiki spam-rensning',
 'spam_reverting' => 'Sidste version uden henvisning til $1 gendannet.',
 'spam_blanking' => 'Alle versioner, som indeholdt henvisninger til $1, er renset.',
+'spam_deleting' => 'Alle versioner indeholder henvisninger til $1, sletter',
 
 # Info page
 'pageinfo-title' => 'Information om "$1"',
index 7a95d18..6344d99 100644 (file)
@@ -404,7 +404,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Kontrollierte Änderungen in den „Letzten Änderungen“ ausblenden',
 'tog-newpageshidepatrolled' => 'Kontrollierte Seiten bei den „Neuen Seiten“ ausblenden',
 'tog-extendwatchlist' => 'Erweiterte Beobachtungsliste zur Anzeige aller Änderungen',
-'tog-usenewrc' => 'Erweiterte Darstellung der „Letzten Änderungen“ (benötigt JavaScript)',
+'tog-usenewrc' => 'Seitenbezogene Gruppierung bei den „Letzten Änderungen“ und auf der Beobachtungsliste (benötigt JavaScript)',
 'tog-numberheadings' => 'Überschriften automatisch nummerieren',
 'tog-showtoolbar' => 'Bearbeiten-Werkzeugleiste anzeigen (benötigt JavaScript)',
 'tog-editondblclick' => 'Seiten mit Doppelklick bearbeiten (benötigt JavaScript)',
@@ -412,24 +412,24 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Einzelne Abschnitte per Rechtsklick bearbeiten (benötigt JavaScript)',
 'tog-showtoc' => 'Anzeige eines Inhaltsverzeichnisses auf Seiten mit mehr als drei Überschriften',
 'tog-rememberpassword' => 'Mit diesem Browser dauerhaft angemeldet bleiben (maximal $1 {{PLURAL:$1|Tag|Tage}})',
-'tog-watchcreations' => 'Selbst erstellte Seiten automatisch beobachten',
-'tog-watchdefault' => 'Selbst geänderte Seiten automatisch beobachten',
-'tog-watchmoves' => 'Selbst verschobene Seiten automatisch beobachten',
-'tog-watchdeletion' => 'Selbst gelöschte Seiten automatisch beobachten',
+'tog-watchcreations' => 'Selbst erstellte Seiten und hochgeladene Dateien automatisch beobachten',
+'tog-watchdefault' => 'Selbst geänderte Seiten und Dateien automatisch beobachten',
+'tog-watchmoves' => 'Selbst verschobene Seiten und Dateien automatisch beobachten',
+'tog-watchdeletion' => 'Selbst gelöschte Seiten und Dateien automatisch beobachten',
 'tog-minordefault' => 'Eigene Änderungen standardmäßig als geringfügig markieren',
 'tog-previewontop' => 'Vorschau oberhalb des Bearbeitungsfensters anzeigen',
 'tog-previewonfirst' => 'Beim ersten Bearbeiten immer die Vorschau anzeigen',
 'tog-nocache' => 'Seitencache des Browsers deaktivieren',
-'tog-enotifwatchlistpages' => 'Bei Änderungen an beobachteten Seiten E-Mails senden',
+'tog-enotifwatchlistpages' => 'Bei Änderungen an beobachteten Seiten oder Dateien E-Mails senden',
 'tog-enotifusertalkpages' => 'Bei Änderungen an meiner Benutzer-Diskussionsseite E-Mails senden',
-'tog-enotifminoredits' => 'Auch bei kleinen Änderungen an Seiten E-Mails senden',
+'tog-enotifminoredits' => 'Auch bei kleinen Änderungen an Seiten und Dateien E-Mails senden',
 'tog-enotifrevealaddr' => 'Meine E-Mail-Adresse in Benachrichtigungs-E-Mails anzeigen',
 'tog-shownumberswatching' => 'Anzahl der beobachtenden Benutzer anzeigen',
 'tog-oldsig' => 'Vorhandene Signatur:',
 'tog-fancysig' => 'Signatur als Wikitext behandeln (ohne automatische Verlinkung)',
 'tog-externaleditor' => 'Externen Editor standardmäßig nutzen (nur für Experten, erfordert spezielle Einstellungen auf dem eigenen Computer. [//www.mediawiki.org/wiki/Manual:External_editors Weitere Informationen hierzu.])',
 'tog-externaldiff' => 'Externes Programm standardmäßig für Versionsunterschiede nutzen (nur für Experten, erfordert spezielle Einstellungen auf dem eigenen Computer. [//www.mediawiki.org/wiki/Manual:External_editors Weitere Informationen hierzu.])',
-'tog-showjumplinks' => '„Wechseln zu“-Links aktivieren',
+'tog-showjumplinks' => '„Wechseln-zu“-Links aktivieren',
 'tog-uselivepreview' => 'Vorschau sofort anzeigen (benötigt JavaScript) (experimentell)',
 'tog-forceeditsummary' => 'Warnen, sofern beim Speichern die Zusammenfassung fehlt',
 'tog-watchlisthideown' => 'Eigene Bearbeitungen in der Beobachtungsliste ausblenden',
@@ -754,6 +754,8 @@ Falls dies nicht  zutrifft, hast du eventuell einen Fehler in der Software gefun
 'cannotdelete' => 'Die Seite oder Datei „$1“ kann nicht gelöscht werden.
 Möglicherweise wurde sie bereits von jemand anderem gelöscht.',
 'cannotdelete-title' => 'Seite „$1“ kann nicht gelöscht werden',
+'delete-hook-aborted' => 'Die Löschung wurde von einer Softwareerweiterung zu MediaWiki verhindert.
+Es ist hierzu keine Erklärung verfügbar.',
 'badtitle' => 'Ungültiger Titel',
 'badtitletext' => 'Der Titel der angeforderten Seite ist ungültig, leer oder ein ungültiger Sprachlink von einem anderen Wiki.',
 'perfcached' => 'Die folgenden Daten stammen aus dem Cache und sind möglicherweise nicht aktuell. Maximal {{PLURAL:$1|ein Ergebnis ist|$1 Ergebnisse sind}} im Cache verfügbar.',
@@ -775,7 +777,7 @@ Bitte versuche es in ein paar Minuten erneut.',
 'editinginterface' => "'''Warnung:''' Diese Seite enthält von der MediaWiki-Software genutzten Text.
 Änderungen auf dieser Seite wirken sich auf die Benutzeroberfläche aus.
 Ziehe bitte im Fall von Übersetzungen in Betracht, diese bei [//translatewiki.net/wiki/Main_Page?setlang=de translatewiki.net], der Lokalisierungsplattform für MediaWiki, durchzuführen.",
-'sqlhidden' => '(SQL-Abfrage versteckt)',
+'sqlhidden' => "''Die SQL-Datenbankabfrage ist verborgen.''",
 'cascadeprotected' => 'Diese Seite ist zur Bearbeitung gesperrt. Sie ist in die {{PLURAL:$1|folgende Seite|folgenden Seiten}} eingebunden, die mittels der Kaskadensperroption geschützt {{PLURAL:$1|ist|sind}}:
 $2',
 'namespaceprotected' => "Du hast nicht die erforderliche Berechtigung, um Seiten im Namensraum '''$1''' bearbeiten zu können.",
@@ -789,6 +791,8 @@ Die Sperre wurde durch [[User:$1|$1]] mit der Begründung ''„$2“'' eingerich
 Der Administrator, der den Schreibzugriff sperrte, gab folgenden Grund an: „$3“.',
 'invalidtitle-knownnamespace' => 'Ungültiger Titel mit Namensraum „$2“ und Text „$3“',
 'invalidtitle-unknownnamespace' => 'Ungültiger Titel mit unbekannter Namensraumnummer $1 und Text „$2“',
+'exception-nologin' => 'Nicht angemeldet',
+'exception-nologin-text' => 'Diese Seite oder Aktion erfordert, dass du auf diesem Wiki angemeldet bist.',
 
 # Virus scanner
 'virus-badscanner' => "Fehlerhafte Konfiguration: unbekannter Virenscanner: ''$1''",
@@ -2152,7 +2156,7 @@ Jede Zeile enthält Links zur ersten und zweiten Weiterleitung sowie dem Ziel de
 'fewestrevisions' => 'Seiten mit den wenigsten Versionen',
 
 # Miscellaneous special pages
-'nbytes' => '$1 {{PLURAL:$1|Byte|Bytes}}',
+'nbytes' => '$1 {{PLURAL:$1|Byte|Byte}}',
 'ncategories' => '$1 {{PLURAL:$1|Kategorie|Kategorien}}',
 'nlinks' => '{{PLURAL:$1|1 Link|$1 Links}}',
 'nmembers' => '{{PLURAL:$1|1 Eintrag|$1 Einträge}}',
@@ -4022,6 +4026,8 @@ Anderenfalls kannst du auch das untenstehende einfache Formular nutzen. Dein Kom
 'api-error-empty-file' => 'Die hochgeladene Datei war leer.',
 'api-error-emptypage' => 'Es ist nicht erlaubt, neue leere Seiten zu erstellen.',
 'api-error-fetchfileerror' => 'Interner Fehler: Beim Abrufen der Datei ist ein Fehler aufgetreten.',
+'api-error-fileexists-forbidden' => 'Eine Datei namens „$1“ ist bereits vorhanden und kann nicht überschrieben werden.',
+'api-error-fileexists-shared-forbidden' => 'Eine Datei namens „$1“ ist bereits im gemeinsamen Dateirepositorium vorhanden und kann daher nicht überschrieben werden.',
 'api-error-file-too-large' => 'Die hochgeladene Datei war zu groß.',
 'api-error-filename-tooshort' => 'Der Dateiname ist zu kurz.',
 'api-error-filetype-banned' => 'Diese Dateiendung ist gesperrt.',
index a39c436..2fc5505 100644 (file)
@@ -11,6 +11,7 @@
  * @author Aspar
  * @author Belekvor
  * @author Erdemaslancan
+ * @author George Animal
  * @author Kaganer
  * @author Mirzali
  * @author Reedy
@@ -580,7 +581,7 @@ $1',
 'nstab-mediawiki' => 'Mesac',
 'nstab-template' => 'Şablon',
 'nstab-help' => 'Pela peşti',
-'nstab-category' => 'Kategori',
+'nstab-category' => 'Kategoriye',
 
 # Main script and global functions
 'nosuchaction' => 'Fealiyeto wınasi çıniyo',
@@ -1662,7 +1663,7 @@ wexta şima qayîl e yew peli re dosya bierzî, formanê cêrinan ra yewi bişux
 'fileuploadsummary' => 'Xulasa:',
 'filereuploadsummary' => 'Vurnayîşê dosyayî:',
 'filestatus' => 'Weziyetê heqê telifiye:',
-'filesource' => 'Çımey:',
+'filesource' => 'Çıme:',
 'uploadedfiles' => 'Dosyayê ke bar biye',
 'ignorewarning' => 'Îkazi kebul meke u dosya reyna bar bike',
 'ignorewarnings' => 'Îkazi kebul meke',
@@ -2107,7 +2108,7 @@ Xo vira mekerê ke, sıteyê webiê bini şenê direkt ebe URLi yew dosya ra gı
 'booksources-invalid-isbn' => 'ISBN raşt nêasena bıewnê çımeyê orjinali, raşt kopya biya nê nêbiyaya?',
 
 # Special:Log
-'specialloguserlabel' => 'Weskedar:',
+'specialloguserlabel' => 'Kerdoğ:',
 'speciallogtitlelabel' => 'Menzil (sernuşte yana karber):',
 'log' => 'Qeydi',
 'all-logs-page' => 'Loganê umum yê hemî',
@@ -2497,7 +2498,7 @@ $1',
 # Contributions
 'contributions' => 'İştirakê karberi',
 'contributions-title' => '$1 de iştırakê karberi',
-'mycontris' => 'İştırakê mı',
+'mycontris' => 'İştıraqê mı',
 'contribsub2' => 'Qandê $1 ($2)',
 'nocontribs' => 'Ena kriteriya de vurnayîş çini yo.',
 'uctop' => '(ser)',
@@ -3329,7 +3330,7 @@ Eg ena dosya, kondisyonê orcinali ra bıvuriya, belki detayanê hemi nıeseno.'
 'exif-writer' => 'Nuştekar',
 'exif-languagecode' => 'Zıwan',
 'exif-iimversion' => 'Verqaydê IIM',
-'exif-iimcategory' => 'Kategori',
+'exif-iimcategory' => 'Kategoriye',
 'exif-iimsupplementalcategory' => 'Oleyê Kategoriyan',
 'exif-datetimeexpires' => 'No peyra mekarênê',
 'exif-datetimereleased' => 'Bıroşe',
index 9774b3b..8478b7d 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Lower Sorbian (Dolnoserbski)
+/** Lower Sorbian (dolnoserbski)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -166,7 +166,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Doglědowane změny w aktualnych změnach schowaś',
 'tog-newpageshidepatrolled' => 'Doglědowane boki z lisćiny nowych bokow schowaś',
 'tog-extendwatchlist' => 'Wobglědowańku wócyniś, aby wšě změny pokazał, nic jano nejnowše',
-'tog-usenewrc' => 'Rozšyrjonu lisćinu aktualnych změnow (JavaScript trěbny) wužywaś',
+'tog-usenewrc' => 'Kupkowe změny pó boku w aktualnych změnach a wobglědowanjach (trjeba JavaScript)',
 'tog-numberheadings' => 'Nadpisma awtomatiski numerěrowaś',
 'tog-showtoolbar' => 'Wobźěłańsku lejstwu pokazaś (JavaScript)',
 'tog-editondblclick' => 'Boki z dwójnym kliknjenim wobźěłaś (JavaScript)',
@@ -174,17 +174,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Wobźěłanje wótstawkow pśez kliknjenje z pšaweju tastu myški zmóžniś (JavaScript)',
 'tog-showtoc' => 'Wopśimjeśe pokazaś, jolic ma bok wěcej nježli 3 nadpisma',
 'tog-rememberpassword' => 'Z toś tym wobglědowakom pśizjawjony wóstaś (za maksimalnje $1 {{PLURAL:$1|źeń|dnja|dny|dnjow}})',
-'tog-watchcreations' => 'Boki, kótarež załožyjom, awtomatiski wobglědowaś',
-'tog-watchdefault' => 'Boki, kótarež změnijom, awtomatiski wobglědowaś',
-'tog-watchmoves' => 'Boki, kótarež som pśesunuł, awtomatiski wobglědowaś',
-'tog-watchdeletion' => 'Boki, kótarež som wulašował, awtomatiski wobglědowaś',
+'tog-watchcreations' => 'Boki, kótarež napórajom a dataje, kótarež nagrawam, wobglědowaś',
+'tog-watchdefault' => 'Boki a dataje , kótarež změnijom, wobglědowaś',
+'tog-watchmoves' => 'Boki a dataje, kótarež som pśesunuł, wobglědowaś',
+'tog-watchdeletion' => 'Boki a dataje, kótarež som wulašował, wobglědowaś',
 'tog-minordefault' => 'Wšykne móje změny ako małe markěrowaś',
 'tog-previewontop' => 'Zespominanje wušej wobźěłowańskego póla pokazaś',
 'tog-previewonfirst' => 'Pśi prědnem wobźěłanju pśecej zespominanje pokazaś',
 'tog-nocache' => 'Cache bokow wobglědowaka znjemóžniś',
-'tog-enotifwatchlistpages' => 'E-mail pósłaś, jolic se wobglědowany bok změnja',
+'tog-enotifwatchlistpages' => 'E-mail pósłaś, jolic se wobglědowany bok abo wobglědowana dataja  změnja',
 'tog-enotifusertalkpages' => 'E-mail pósłaś, změnijo-lic se mój diskusijny bok',
-'tog-enotifminoredits' => 'E-mail teke małych změnow dla pósłaś',
+'tog-enotifminoredits' => 'E-mail teke małych změnow bokow a datajow dla pósłaś',
 'tog-enotifrevealaddr' => 'Móju e-mailowu adresu w e-mailowych pówěźeńkach pokazaś',
 'tog-shownumberswatching' => 'Licbu wobglědujucych wužywarjow pokazaś',
 'tog-oldsig' => 'Eksistěrujuca signatura:',
@@ -515,6 +515,8 @@ Pšosym daj to a pśisłušny URL [[Special:ListUsers/sysop|administratoroju]] k
 'badarticleerror' => 'Akcija njedajo se na toś tom boku wuwjasć.',
 'cannotdelete' => 'Njejo móžno było bok abo dataju "$1" wulašowaś. Snaź jo to južo něchten drugi cynił.',
 'cannotdelete-title' => 'Bok "$1" njedajo se lašowaś',
+'delete-hook-aborted' => 'Wulašowanje pśez kokulu pśetergnjone.
+Njejo žedno wujasnjenje.',
 'badtitle' => 'Njepłaśecy nadpis',
 'badtitletext' => 'Nadpis pominanego boka jo był njepłaśecy, prozny abo njekorektny nadpis, póchadajucy z mjazyrěcnego abo interwikijowego wótkaza. Snaź wopśimjejo jadno abo wěcej znamuškow, kótarež njejsu w nadpisach dowólone.',
 'perfcached' => 'Toś te daty póchadaju z pufrowaka a mógu snaź njeaktualne byś. Maksimalnje {{PLURAL:$1|jaden wuslědk stoj|$1 wuslědka stojtej|$1 wuslědki stoje|$1 wuslědkow stoj}} w pufrowaku k dispoziciji.',
@@ -544,6 +546,8 @@ Wótpšašanje: $2',
 Administrator, kenž jo jen zastajił, jo toś tu pśicynu pódał: "$3".',
 'invalidtitle-knownnamespace' => 'Njepłaśiwy titel z mjenjowym rumom "$2" a tekstom "$3"',
 'invalidtitle-unknownnamespace' => 'Njepłaśiwy titel z njeznatym mjenjowym rumom $1 a tekstom "$2"',
+'exception-nologin' => 'Njejsy se pśizjawił',
+'exception-nologin-text' => 'Toś ten bok abo toś ta akcija pomina, až sy na toś tom wikiju pśizjawjony.',
 
 # Virus scanner
 'virus-badscanner' => "Špatna konfiguracija: njeznaty wirusowy scanner: ''$1''",
@@ -876,7 +880,7 @@ Pšosym pśespytuj kradosćiwje, lěc jo gódnje z wobźěłowanim boka pokšaco
 Protokol wulašowanjow a pśesunjenjow za toś ten bok so how za informaciju pódawa:",
 'moveddeleted-notice' => 'Toś ten bok jo se wulašował. Protokol wulašowanjow a pśesunjenjow za toś ten bok pódawa se dołojce ako referenca.',
 'log-fulllog' => 'Dopołny protokol se woglědaś',
-'edit-hook-aborted' => 'Wobźěłanje pśez kokulu pśetergnjony.
+'edit-hook-aborted' => 'Wobźěłanje pśez kokulu pśetergnjone.
 Njejo žedno wujasnjenje.',
 'edit-gone-missing' => 'Njejo móžno było bok aktualizěrowaś.
 Zda sem až jo wulašowany.',
@@ -3688,6 +3692,8 @@ Hować móžoš slědujucy jadnory formular wužywaś. Twój komentar pśidajo s
 'api-error-empty-file' => 'Dataja, kótaruž sy nagrał, jo prozna była.',
 'api-error-emptypage' => 'Napóranje nowych, proznych bokow njejo dowólone.',
 'api-error-fetchfileerror' => 'Nutśikowna zmólka: Pśii wobstarowanju dataje jo se něco njeraźiło.',
+'api-error-fileexists-forbidden' => 'Dataja z mjenim "$1" južo eksistěrujo, a njedajo se pśepisaś.',
+'api-error-fileexists-shared-forbidden' => 'Dataja z mjenim "$1" južo eksistěrujo w zgromadnem datajowem repozitoriumje a njedajo se pśepisaś.',
 'api-error-file-too-large' => 'Dataja, kótaruž sy nagrał, jo pśewjelika była.',
 'api-error-filename-tooshort' => 'Datajowe mě jo pśekrotke.',
 'api-error-filetype-banned' => 'Toś ten datajowy typ jo zakazany.',
diff --git a/languages/messages/MessagesEgl.php b/languages/messages/MessagesEgl.php
new file mode 100644 (file)
index 0000000..cb1e053
--- /dev/null
@@ -0,0 +1,696 @@
+<?php
+/** Emiliàn (Emiliàn)
+ *
+ * See MessagesQqq.php for message documentation incl. usage of parameters
+ * To improve a translation please visit http://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ *
+ * @author Reder
+ */
+
+$fallback = 'it';
+
+$messages = array(
+# Dates
+'sun' => 'Dum',
+'mon' => 'Lün',
+'tue' => 'Mär',
+'wed' => 'Mer',
+'thu' => 'Giu',
+'fri' => 'Van',
+'sat' => 'Sab',
+'january' => 'Znär',
+'february' => 'Farvär',
+'march' => 'März',
+'april' => 'April',
+'may_long' => "Magg'",
+'june' => 'Giügn',
+'july' => 'Lüi',
+'august' => 'Agust',
+'september' => 'Steimbar',
+'october' => 'Uttubar',
+'november' => 'Nueimbar',
+'december' => 'Dzeimbar',
+'january-gen' => 'Znär',
+'february-gen' => 'Farvär',
+'march-gen' => 'März',
+'april-gen' => 'April',
+'may-gen' => "Magg'",
+'june-gen' => 'Giügn',
+'july-gen' => 'Lüi',
+'august-gen' => 'Agust',
+'september-gen' => 'Steimbar',
+'october-gen' => 'Uttubar',
+'november-gen' => 'Nueimbar',
+'december-gen' => 'Dzeimbar',
+'jan' => 'Znä',
+'feb' => 'Far',
+'mar' => 'Mär',
+'apr' => 'Apr',
+'may' => 'Mag',
+'jun' => 'Giü',
+'jul' => 'Lüi',
+'aug' => 'Agu',
+'sep' => 'Ste',
+'oct' => 'Utt',
+'nov' => 'Nue',
+'dec' => 'Dze',
+
+# Categories related messages
+'hidden-categories' => '{{PLURAL:$1|Categuria nascost|Categuri nascost}}',
+
+'about' => 'Informaziun',
+'cancel' => ' 
+Cancellä',
+'mytalk' => 'Le mé discüssion',
+'navigation' => 'Navigazion',
+'and' => '&#32;e',
+
+# Cologne Blue skin
+'qbfind' => 'Trov',
+'qbedit' => 'Mudifich',
+'qbpageoptions' => "Opzion d'la pàgina",
+'qbmyoptions' => 'Le mé pàgin',
+'qbspecialpages' => 'Pàgin speciäl',
+'faq' => 'Dumand frequeint',
+
+# Vector skin
+'vector-action-delete' => 'Cancellä',
+'vector-action-move' => 'Spusta',
+'vector-action-protect' => "Prutegg'",
+'vector-view-create' => 'Creä',
+'vector-view-edit' => 'Mudifich',
+'vector-view-history' => 'Väda la storia',
+'vector-view-view' => "Legg'",
+'vector-view-viewsource' => 'Vadä la surgìnt',
+'actions' => 'Azion',
+'namespaces' => 'Namespace',
+'variants' => 'Variänt',
+
+'errorpagetitle' => 'Errur',
+'tagline' => 'Da {{SITENAME}}',
+'help' => 'Aiüt',
+'search' => 'Cercä',
+'searchbutton' => 'Cercä',
+'go' => 'Vé',
+'searcharticle' => 'Vé',
+'history' => "Storia d'la pàgina",
+'history_short' => 'Storia',
+'permalink' => 'Link permaneint',
+'print' => 'Stampa',
+'view' => 'Vada',
+'edit' => 'Mudifich',
+'create' => 'Creä',
+'delete' => 'Cancellä',
+'deletethispage' => 'Cancellä custa pàgina ché',
+'undelete_short' => 'Recuperä {{PLURAL:$1|una revision|$1 revision}}',
+'viewdeleted_short' => 'Vadä {{PLURAL:$1|una mudfich cancellät|$1 mudfich cancellät}}',
+'protect' => "Prutegg'",
+'protect_change' => 'Cambia',
+'protectthispage' => "Prutegg' custa pàgina ché",
+'unprotect' => 'Cambiä la prutezion',
+'unprotectthispage' => 'Cambiä la prutezion par custa pàgina ché',
+'newpage' => 'Pàgina növa',
+'talkpage' => 'Pàgina ad discüssion',
+'talkpagelinktext' => 'Discüssion',
+'specialpage' => 'Pàgina speciäl',
+'personaltools' => 'Strümeint parsunäl',
+'postcomment' => 'Sezion növa',
+'articlepage' => 'Vadä la pàgina ad contenüt',
+'talk' => 'Discüssion',
+'views' => 'Visit',
+'toolbox' => 'Strümeint',
+'userpage' => "Vadä la pàgina ad l'uteint",
+'projectpage' => 'Vadä la pàgina dal prugett',
+'imagepage' => 'Vadä la pàgina dal file',
+'mediawikipage' => "Vadä al messagg'",
+'templatepage' => 'Vadä al template',
+'viewhelppage' => "Vadä la pàgina d'aiüt",
+'categorypage' => 'Vadä la categoria',
+'viewtalkpage' => 'Vadä la discüssion',
+'otherlanguages' => 'Ätar leingav',
+'redirectedfrom' => '(Reindirizzameint da <b>$1</b>)',
+'redirectpagesub' => 'Pàgina ad reindirizzameint',
+'lastmodifiedat' => "Ültim mudifich d'la pàgina: $2, $1.",
+'viewcount' => "Custa pàgina ché l'è stata letta {{PLURAL:$1|vüna volta|$1 volte}}.",
+'protectedpage' => 'Pàgina bluccä',
+'jumpto' => 'Andä a',
+'jumptonavigation' => 'navigazion',
+'jumptosearch' => 'cercä',
+'pool-queuefull' => "La cua dal pool l'è piena",
+'pool-errorunknown' => 'Errur mia cugnussü',
+
+# 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' => 'Infurmazion su {{SITENAME}}',
+'aboutpage' => 'Project:Infurmäzion',
+'copyright' => "Contenüt suggètt a licinza d'üs $1.",
+'copyrightpage' => '{{ns:project}}:Copyright',
+'currentevents' => 'Eveint curreint',
+'currentevents-url' => 'Project:Eveint curreint',
+'disclaimers' => 'Informazion legäl',
+'disclaimerpage' => 'Project:Avvartenza generäl',
+'edithelp' => 'Libar di spiegazión',
+'edithelppage' => 'Help:Mudifich',
+'helppage' => "Help:Tütt l'argumeint",
+'mainpage' => 'Prima pàgina',
+'mainpage-description' => 'Pàgina principäl',
+'policy-url' => 'Project:Policy',
+'portal' => "Purtäda d'la cumünitä",
+'portal-url' => "Project:Purtäda d'la cumünitä",
+'privacy' => "Legg' l'informazion parsunäl",
+
+'ok' => 'OK',
+'newmessageslink' => "növ messagg'",
+'editsection' => 'cambi',
+'editold' => 'mudifich',
+'viewsourceold' => 'vadä la surgìnt',
+'editlink' => 'mudifich',
+'viewsourcelink' => 'vadä la surgìnt',
+'editsectionhint' => 'Mudifich la seziòn: $1',
+'toc' => 'Indez',
+'showtoc' => 'mustra',
+'hidetoc' => 'nascond',
+'collapsible-collapse' => 'Comprim',
+'collapsible-expand' => 'Espand',
+'thisisdeleted' => 'Vadä o ripristinä $1?',
+'viewdeleted' => 'Vadä $1?',
+'restorelink' => '{{PLURAL:$1|vüna mudfich cancellät|$1 mudfich cancellät}}',
+'feedlinks' => 'Feed:',
+'feed-invalid' => "La mudalitä ad sottoscrizion dal feed l'è mia valid.",
+'feed-unavailable' => 'I feed al son mia dispunibil',
+'site-rss-feed' => 'Emissiòn RSS ad $1',
+'site-atom-feed' => 'Emission Atom ad $1',
+'page-rss-feed' => 'Emissiòn RSS par $1',
+'page-atom-feed' => 'Emission Atom par $1',
+'red-link-title' => "$1 (la pàgina a l'esist mia)",
+'sort-descending' => 'Ordinamient decrescent',
+'sort-ascending' => 'Ordinamient cresceint',
+
+# Short words for each namespace, by default used in the namespace tab in monobook
+'nstab-main' => 'Pàgina',
+'nstab-user' => 'Pàgina uteint',
+'nstab-media' => 'File multimediäl',
+'nstab-special' => 'Pàgina speciäl',
+'nstab-project' => 'Pàgina ad sërvizi',
+'nstab-image' => 'Immàgin',
+'nstab-mediawiki' => "Messagg'",
+'nstab-template' => 'Mudell',
+'nstab-help' => 'Aiüt',
+'nstab-category' => 'Categuria',
+
+# General errors
+'error' => 'Errur',
+'databaseerror' => 'Errur dal database',
+'readonly' => 'Database bluccä',
+'missingarticle-rev' => '(revision n°: $1)',
+'missingarticle-diff' => '(Diff: $1, $2)',
+'internalerror' => 'Errur interiur',
+'internalerror_info' => 'Errur interiur: $1',
+'viewsource' => 'Vadä la surgìnt',
+'viewsource-title' => 'Vadä la surgìnt ad $1',
+
+# Login and logout pages
+'yourname' => 'Nom uteint:',
+'yourpassword' => 'Password:',
+'yourpasswordagain' => 'Ripett la password:',
+'login' => 'Enträ',
+'nav-login-createaccount' => 'Enträ / Creä un account',
+'userlogin' => 'Enträ / Creä un account',
+'userloginnocreate' => 'Enträ',
+'logout' => 'Üscì',
+'userlogout' => 'Üscì',
+'notloggedin' => 'Si mia enträ',
+'nologinlink' => 'Creä un cunt',
+'createaccount' => 'Creä cunt',
+'gotaccountlink' => 'Enträ',
+'createaccountmail' => 'Via e-mail',
+'createaccountreason' => 'Mutiv:',
+'loginerror' => 'Errur ad enträ',
+'accountcreated' => 'Account creä',
+'loginlanguagelabel' => 'Leingua: $1',
+
+# Change password dialog
+'resetpass' => 'Cambiä la password',
+'oldpassword' => "Vecc' password:",
+'newpassword' => 'Növa password:',
+'resetpass-submit-loggedin' => 'Cambiä la password',
+'resetpass-submit-cancel' => 'Cancellä',
+'resetpass-temp-password' => 'Password tempural:',
+
+# Special:PasswordReset
+'passwordreset' => 'Cambiä la password',
+'passwordreset-legend' => 'Cambiä la password',
+'passwordreset-username' => 'Nom uteint:',
+'passwordreset-domain' => 'Dumini:',
+
+# Edit page toolbar
+'bold_sample' => 'Grassètt',
+'italic_sample' => 'Cursìv',
+'media_tip' => 'Cullegameint al file',
+
+# Edit pages
+'summary' => 'Summari:',
+'savearticle' => 'Sälv la pàgina',
+'preview' => 'Vadä prima',
+'showpreview' => "Vadä l'antepeima",
+'showdiff' => 'Vadä li cambiameint',
+'blockedtitle' => 'Uteint bluccä',
+'newarticle' => '(Növ)',
+'note' => "'''Nota:'''",
+'editing' => 'Mudifich ad $1',
+'editingsection' => 'Mudifich ad $1 (sezion)',
+'editingcomment' => 'Mudifich ad $1 (növ sezion)',
+'editconflict' => 'Conflitt ad mudifich: $1',
+'yourtext' => 'Al tò test',
+'yourdiff' => 'Differeinz',
+'template-protected' => '(prutett)',
+'template-semiprotected' => '(mézz-prutett)',
+'log-fulllog' => 'Vadä al log cumplet',
+'edit-conflict' => 'Conflitt ad mudifich.',
+
+# History pages
+'viewpagelogs' => 'Vadä li log ad custa pàgina ché',
+'currentrev' => 'Ültima version',
+'currentrev-asof' => 'Ültima version dle $1',
+'revisionasof' => 'Version dle $1',
+'revision-info' => 'Version dle $1, avtur: $2',
+'previousrevision' => "← Version piö vecc'",
+'nextrevision' => 'Versiòn piö növ →',
+'currentrevisionlink' => 'Ültima version',
+'cur' => 'curr',
+'next' => 'succ',
+'last' => 'prec',
+'page_first' => 'prima',
+'page_last' => 'ültim',
+
+# Revision feed
+'history-feed-item-nocomment' => '$1 al $2',
+
+# Revision deletion
+'rev-delundel' => 'vadä/anscönd',
+'revdelete-radio-set' => 'Sì',
+'revdelete-radio-unset' => 'No',
+'revdelete-reasonotherlist' => 'Ätar ragion',
+
+# Merge log
+'revertmerge' => "Annullä l'ünion",
+
+# Diffs
+'lineno' => 'Riga $1:',
+'editundo' => 'cancellä',
+
+# Search results
+'searchresults' => "Risultät d'la ricerch",
+'searchresults-title' => 'Risultät d\'la ricerch ad "$1"',
+'viewprevnext' => 'Väda ($1 {{int:pipe-separator}} $2) ($3).',
+'searchprofile-articles' => 'Pàgin ad cuntinüt',
+'searchprofile-images' => 'Multimëdi',
+'searchprofile-everything' => 'Tütt',
+'searchprofile-advanced' => 'Avanzät',
+'searchprofile-articles-tooltip' => 'Cercä in $1',
+'searchprofile-project-tooltip' => 'Cercä in $1',
+'searchprofile-images-tooltip' => 'Cercä immàgin',
+'search-result-size' => '$1 ({{PLURAL:$2|1 parola|$2 paroli}})',
+'search-redirect' => '(redirect $1)',
+'search-section' => '(sezion $1)',
+'search-interwiki-caption' => 'Prugett fradel',
+'search-interwiki-default' => 'Risültä da $1:',
+'search-interwiki-more' => '(ätar)',
+'searchall' => 'tütt',
+'powersearch-toggleall' => 'Tütt',
+'powersearch-togglenone' => 'Ansöin',
+
+# Quickbar
+'qbsettings' => 'Quickbar',
+'qbsettings-none' => 'Ansöin',
+'qbsettings-fixedleft' => 'Fiss a sinistar',
+'qbsettings-fixedright' => 'Fiss a destar',
+'qbsettings-floatingleft' => 'Fluttuant a sinistar',
+'qbsettings-floatingright' => 'Fluttuant a destar',
+
+# Preferences page
+'preferences' => 'Prefereinz',
+'mypreferences' => 'Al me prefereinz',
+'prefs-edits' => 'Nümar ad mudifich:',
+'prefsnologin' => 'Si mia enträ',
+'changepassword' => 'Cambiä la password',
+'prefs-skin' => 'Skin',
+'skin-preview' => 'Vadä prima',
+'datedefault' => 'Ansiön prefereinz',
+'prefs-beta' => 'Funzionalitä beta',
+'saveprefs' => 'Salvä',
+'prefs-editing' => 'Mudificä',
+'rows' => 'Righe',
+'searchresultshead' => 'Cercä',
+'timezoneregion-africa' => 'Africa',
+'timezoneregion-america' => 'América',
+'timezoneregion-antarctica' => 'Antartide',
+'timezoneregion-arctic' => 'Artide',
+'timezoneregion-asia' => 'Asia',
+'timezoneregion-atlantic' => 'Ucean Atlantich',
+'timezoneregion-australia' => 'Australia',
+'timezoneregion-europe' => 'Europa',
+'timezoneregion-indian' => 'Ucean Indian',
+'timezoneregion-pacific' => 'Ucean Pacifich',
+'youremail' => 'E-mail:',
+'username' => 'Nom uteint',
+'uid' => 'ID uteint',
+'prefs-memberingroups' => 'Membar {{PLURAL:$1|dal grüpp|dei grüpp}}:',
+'yourrealname' => 'Nom ver:',
+'yourlanguage' => 'Leingua',
+'email' => 'E-mail',
+
+# Groups
+'group' => 'Grüpp:',
+'group-user' => 'Uteint',
+'group-autoconfirmed' => 'Uteint autoconvalidät',
+'group-bot' => 'Bot',
+'group-sysop' => 'Amministradór',
+'group-bureaucrat' => 'Bürocrat',
+'group-suppress' => 'Oversight',
+'group-all' => '(tütt)',
+
+'group-user-member' => '{{GENDER:$1|uteint}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|uteint autoconvalidät}}',
+'group-bot-member' => '{{GENDER:$1|bot}}',
+'group-sysop-member' => '{{GENDER:$1|amministradór}}',
+'group-bureaucrat-member' => '{{GENDER:$1|bürocrat}}',
+'group-suppress-member' => '{{GENDER:$1|oversight}}',
+
+'grouppage-user' => '{{ns:project}}:Uteint',
+'grouppage-autoconfirmed' => '{{ns:project}}:Uteint autoconvalidät',
+'grouppage-bot' => '{{ns:project}}:Bot',
+'grouppage-sysop' => '{{ns:project}}:Amministradór',
+'grouppage-bureaucrat' => '{{ns:project}}:Bürocrat',
+'grouppage-suppress' => '{{ns:project}}:Oversight',
+
+# Rights
+'right-read' => "Legg' pàgin",
+'right-edit' => 'Mudifich pàgin',
+
+# User rights log
+'rightsnone' => '(ansöin)',
+
+# Associated actions - in the sentence "You do not have permission to X"
+'action-read' => "legg' custa pàgina ché",
+'action-edit' => 'mudifch custa pàgina ché',
+'action-createpage' => 'creä pàgin',
+'action-move' => 'spustä custa pàgina ché',
+'action-movefile' => 'spustä cust file ché',
+'action-upload' => 'caricä cust file ché',
+'action-delete' => 'cancellä custa pàgina ché',
+
+# Recent changes
+'recentchanges' => 'Ültim cambiameint',
+'rcshowhidebots' => '$1 i bot',
+'rcshowhidemine' => '$1 le mé mudifich',
+'diff' => 'diff',
+'hist' => 'cron',
+'hide' => 'Nascond',
+'show' => 'mustra',
+'minoreditletter' => 'm',
+'newpageletter' => 'N',
+'boteditletter' => 'b',
+'number_of_watching_users_pageview' => '[usservä da {{PLURAL:$1|vün uteint|$1 uteint}}]',
+'rc_categories_any' => 'Qualsía',
+
+# Upload
+'upload' => 'Cärga un file',
+
+'license' => 'Licinza:',
+'license-header' => 'Licinza',
+'nolicense' => 'Ansöna licinza seleziunä',
+
+# Special:ListFiles
+'listfiles_date' => 'Data',
+'listfiles_name' => 'Nom',
+'listfiles_user' => 'Uteint',
+
+# File description page
+'file-anchor-link' => 'Immàgin',
+'filehist' => 'Storia dal file',
+'filehist-current' => 'curreint',
+'filehist-datetime' => 'Data/Ura',
+'filehist-thumb' => 'Miniadüra',
+'filehist-user' => 'Uteint',
+'filehist-dimensions' => 'Dimension',
+'filehist-comment' => 'Uggett',
+'imagelinks' => 'Cullegameint al file',
+
+# File deletion
+'filedelete-submit' => 'Cancellä',
+
+# Random page
+'randompage' => 'Una pàgina a cäs',
+
+'brokenredirects-edit' => 'cambi',
+
+# Miscellaneous special pages
+'nbytes' => '$1 {{PLURAL:$1|byte|byte}}',
+'newpages' => 'Pàgin növ',
+'move' => 'Spusta',
+
+# Book sources
+'booksources-go' => 'Vé',
+
+# Special:AllPages
+'alphaindexline' => 'da $1 a $2',
+'allpagessubmit' => 'Vé',
+
+# Special:ListUsers
+'listusers-submit' => 'Mustra',
+
+# Special:ListGroupRights
+'listgrouprights-group' => 'Grüpp',
+
+# E-mail user
+'emailfrom' => 'Da:',
+'emailto' => 'A:',
+'emailsubject' => 'Uggett:',
+'emailmessage' => "Messagg'",
+
+# Watchlist
+'mywatchlist' => 'Le mé üsservat speciäl',
+'watchlistfor2' => "Dall'uteint $1 $2",
+'watchnologin' => 'Si mia enträ',
+'watch' => 'Vadä',
+'watchthispage' => 'Vadä custa pàgina ché',
+'unwatch' => "N'la vadär piö",
+
+'changed' => 'mudifegat',
+'created' => 'creät',
+
+# Delete
+'delete-confirm' => 'Cancellä "$1"',
+'delete-legend' => 'Cancellä',
+
+# Rollback
+'rollback_short' => 'Turne indré',
+'rollbacklink' => 'Avé indré la mudifech ad prima',
+'rollbackfailed' => 'Si mia riussì a turnä indré',
+
+# Protect
+'pagesize' => '(byte)',
+
+# Restrictions (nouns)
+'restriction-edit' => 'Mudifich',
+'restriction-move' => 'Spusta',
+'restriction-create' => 'Creä',
+'restriction-upload' => 'Caricä',
+
+# Undelete
+'undeletelink' => 'vada/turna indré',
+'undeleteviewlink' => 'vada',
+'undelete-show-file-submit' => 'Sì',
+
+# Namespace form on various pages
+'namespace' => 'Namespace:',
+'blanknamespace' => '(Principäl)',
+
+# Contributions
+'contributions' => "Contribüdi de l'uteint",
+'contributions-title' => 'Contribüdi ed $1',
+'mycontris' => 'Le mé contribüdi',
+'contribsub2' => 'Par $1 ($2)',
+'uctop' => '(ültim par la pàgin)',
+
+'sp-contributions-submit' => 'Cercä',
+
+# What links here
+'whatlinkshere-page' => 'Pàgina:',
+'whatlinkshere-links' => '← cullegameint',
+
+# Block/unblock
+'block' => "Bluccä l'uteint",
+'unblock' => "Sbluccä l'uteint",
+'blockip' => "Bluccä l'uteint",
+'blockip-title' => "Bluccä l'uteint",
+'blockip-legend' => "Bluccä l'uteint",
+'ipbotheroption' => 'ätar',
+'ipb-unblock-addr' => 'Sbluccä $1',
+'unblockip' => "Sbluccä l'uteint",
+'blocklist' => 'Uteint bluccä',
+'ipblocklist-submit' => 'Cercä',
+'ipblocklist-otherblocks' => 'Ätar {{PLURAL:$1|blocc|blocc}}',
+'blocklink' => 'blocc',
+'unblocklink' => 'sblocc',
+'change-blocklink' => 'cambiä al blocc',
+'contribslink' => 'cuntribüti',
+'unblocklogentry' => "l'à sbluccä $1",
+
+# Move page
+'move-page' => 'Spustameint ad $1',
+'move-page-legend' => 'Spustä la pàgina',
+'movearticle' => 'Spustä la pàgina:',
+'movenologin' => 'Si mia enträ',
+'movepagebtn' => 'Spustä la pàgina',
+'movelogpage' => 'Spustameint',
+'revertmove' => 'Turné indré',
+
+# Export
+'export-submit' => 'Esporta',
+
+# Namespace 8 related
+'allmessages-filter-all' => 'Tütt',
+'allmessages-language' => 'Leingua:',
+'allmessages-filter-submit' => 'Vé',
+
+# Thumbnails
+'thumbnail-more' => 'Allargä',
+
+# Special:Import
+'import-upload-filename' => 'Nom dal file:',
+'import-comment' => 'Uggett:',
+'import-upload' => 'Caricä dat XML',
+
+# Tooltip help for the actions
+'tooltip-pt-logout' => 'Üscì',
+'tooltip-ca-move' => 'Spustä custa pàgina ché',
+'tooltip-search' => 'Cercä deintar ad {{SITENAME}}',
+'tooltip-p-logo' => 'Väda la pàgina principäl',
+'tooltip-n-mainpage' => 'Väda la pàgina principäl',
+'tooltip-n-mainpage-description' => 'Väda la pàgina principäl',
+'tooltip-n-randompage' => 'Fa vëd una pàgina a cäs',
+'tooltip-n-help' => 'Pàgin di aiüt',
+'tooltip-t-upload' => 'Cärag file multimediäl',
+'tooltip-ca-nstab-project' => 'Vadä la pàgina dal prugett',
+'tooltip-ca-nstab-image' => ' 
+Vadä la pàgina dal file',
+'tooltip-ca-nstab-template' => 'Väda la template',
+'tooltip-ca-nstab-help' => "Vadä la pàgina d'aiüt",
+'tooltip-ca-nstab-category' => "Vadä la pàgina d'la categoria",
+'tooltip-save' => 'Salvä li tò cambiameint',
+
+# Attribution
+'others' => 'ätar',
+
+# Info page
+'pageinfo-header-edits' => 'Mudifich',
+'pageinfo-header-views' => 'Visit',
+'pageinfo-subjectpage' => 'Pàgina',
+'pageinfo-talkpage' => 'Pàgina ad discüssion',
+'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'",
+'nextdiff' => 'Mudifich piö növa →',
+
+# Media information
+'file-info-gif-looped' => 'ciclich',
+'file-info-png-looped' => 'ciclich',
+
+# Special:NewFiles
+'newimages-legend' => 'Nom dal file',
+'showhidebots' => '($1 i bot)',
+'ilsubmit' => 'Cercä',
+'bydate' => 'par data',
+
+# Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'ago' => '$1 fa',
+
+# Metadata
+'metadata' => 'Metadat',
+
+# EXIF tags
+'exif-exposuretime-format' => '$1 s ($2)',
+'exif-gpsareainformation' => "Nom d'la zona GPS",
+'exif-gpsdatestamp' => 'Data GPS',
+'exif-source' => 'Font',
+'exif-languagecode' => 'Leingva',
+'exif-iimcategory' => 'Categuria',
+'exif-identifier' => 'Identificativ',
+
+# 'all' in various places, this might be different for inflected languages
+'watchlistall2' => 'tütt',
+'namespacesall' => 'tütt',
+'monthsall' => 'tütt',
+'limitall' => 'tütt',
+
+# Delete conflict
+'recreate' => 'Creä ad növ',
+
+# action=purge
+'confirm_purge_button' => 'OK',
+
+# action=watch/unwatch
+'confirm-watch-button' => 'OK',
+'confirm-unwatch-button' => 'OK',
+
+# Multipage image navigation
+'imgmultigo' => 'Vé!',
+'imgmultigoto' => "Vé in s'la pàgina $1",
+
+# Table pager
+'ascending_abbrev' => 'cresc',
+'descending_abbrev' => 'decresc',
+'table_pager_first' => 'Prima pàgina',
+'table_pager_last' => 'Ültima pàgina',
+'table_pager_limit_submit' => 'Vé',
+
+# Watchlist editor
+'watchlistedit-raw-titles' => 'Titul:',
+
+# Special:Version
+'version' => 'Version',
+'version-specialpages' => 'Pàgin speciäl',
+'version-other' => 'Ätar',
+'version-version' => '(Version $1)',
+'version-license' => 'Licinza',
+'version-poweredby-others' => 'ätar',
+
+# Special:FilePath
+'filepath-page' => 'Immàgin:',
+'filepath-submit' => 'Vé',
+
+# Special:FileDuplicateSearch
+'fileduplicatesearch-filename' => 'Nom dal file:',
+'fileduplicatesearch-submit' => 'Cercä',
+
+# Special:SpecialPages
+'specialpages' => 'Pàgin speciäl',
+
+# Special:Tags
+'tags-edit' => 'mudifich',
+
+# Special:ComparePages
+'compare-page1' => 'Pàgina 1',
+'compare-page2' => 'Pàgina 2',
+'compare-rev1' => 'Revisiòn 1',
+'compare-rev2' => 'Revisiòn 2',
+
+# HTML forms
+'htmlform-reset' => 'Turna indré cul la mudifich',
+'htmlform-selectorother-other' => 'Ätar',
+
+# Feedback
+'feedback-subject' => 'Uggett:',
+'feedback-message' => "Messagg':",
+'feedback-cancel' => 'Cancellä',
+
+);
index f609f4c..f701a65 100644 (file)
@@ -1276,7 +1276,7 @@ $1",
 'mergelogpagetext' => 'Παρακάτω είναι μια λίστα με τις πιο πρόσφατες συγχωνεύσεις ιστορικού μιας σελίδας σε άλλο.',
 
 # Diffs
-'history-title' => 'Ιστορικό εκδόσεων για τη σελίδα "$1"',
+'history-title' => '"$1": Ιστορικό εκδόσεων',
 'difference-title' => 'Διαφορά μεταξύ των αναθεωρήσεων του "$1"',
 'difference-title-multipage' => 'Διαφορά μεταξύ των σελίδων "$1" και "$2"',
 'difference-multipage' => '(Διαφορές μεταξύ των σελίδων)',
index 2b62593..ffef8a1 100644 (file)
@@ -645,17 +645,17 @@ XHTML id names.
 'tog-editsectiononrightclick' => 'Enable section editing by right clicking on section titles (requires JavaScript)',
 'tog-showtoc'                 => 'Show table of contents (for pages with more than 3 headings)',
 'tog-rememberpassword'        => 'Remember my login on this browser (for a maximum of $1 {{PLURAL:$1|day|days}})',
-'tog-watchcreations'          => 'Add pages I create to my watchlist',
-'tog-watchdefault'            => 'Add pages I edit to my watchlist',
-'tog-watchmoves'              => 'Add pages I move to my watchlist',
-'tog-watchdeletion'           => 'Add pages I delete to my watchlist',
+'tog-watchcreations'          => 'Add pages I create and files I upload to my watchlist',
+'tog-watchdefault'            => 'Add pages and files I edit to my watchlist',
+'tog-watchmoves'              => 'Add pages and files I move to my watchlist',
+'tog-watchdeletion'           => 'Add pages and files I delete to my watchlist',
 'tog-minordefault'            => 'Mark all edits minor by default',
 'tog-previewontop'            => 'Show preview before edit box',
 'tog-previewonfirst'          => 'Show preview on first edit',
 'tog-nocache'                 => 'Disable browser page caching',
-'tog-enotifwatchlistpages'    => 'E-mail me when a page on my watchlist is changed',
+'tog-enotifwatchlistpages'    => 'E-mail me when a page or file on my watchlist is changed',
 'tog-enotifusertalkpages'     => 'E-mail me when my user talk page is changed',
-'tog-enotifminoredits'        => 'E-mail me also for minor edits of pages',
+'tog-enotifminoredits'        => 'E-mail me also for minor edits of pages and files',
 'tog-enotifrevealaddr'        => 'Reveal my e-mail address in notification e-mails',
 'tog-shownumberswatching'     => 'Show the number of watching users',
 'tog-oldsig'                  => 'Existing signature:',
@@ -1008,6 +1008,8 @@ Please report this to an [[Special:ListUsers/sysop|administrator]], making note
 'cannotdelete'         => 'The page or file "$1" could not be deleted.
 It may have already been deleted by someone else.',
 'cannotdelete-title'   => 'Cannot delete page "$1"',
+'delete-hook-aborted'  => 'Deletion aborted by hook.
+It gave no explanation.',
 '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.',
@@ -1087,6 +1089,8 @@ Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
 Please choose a different name.',
 'loginerror'                 => 'Login error',
 'createaccounterror'         => 'Could not create account: $1',
+'exception-nologin'          => 'Not logged in',
+'exception-nologin-text'     => 'This page or action requires you to be logged in on this wiki.',
 'nocookiesnew'               => 'The user account was created, but you are not logged in.
 {{SITENAME}} uses cookies to log in users.
 You have cookies disabled.
@@ -3058,7 +3062,7 @@ It may have already been undeleted.',
 $1',
 'undelete-show-file-confirm'   => 'Are you sure you want to view the deleted revision of the file "<nowiki>$1</nowiki>" from $2 at $3?',
 'undelete-show-file-submit'    => 'Yes',
-'undelete-revisionrow'        => "$1 $2 $3 $4 . . $5 $6 $7",
+'undelete-revisionrow'        => "$1 $2 ($3) $4 . . $5 $6 $7",
 
 # Namespace form on various pages
 'namespace'                     => 'Namespace:',
@@ -3196,8 +3200,8 @@ See the [[Special:BlockList|block list]] to review blocks.',
 'expiringblock'                   => 'expires on $1 at $2',
 'anononlyblock'                   => 'anon. only',
 'noautoblockblock'                => 'autoblock disabled',
-'createaccountblock'              => 'account creation blocked',
-'emailblock'                      => 'e-mail blocked',
+'createaccountblock'              => 'account creation disabled',
+'emailblock'                      => 'e-mail disabled',
 'blocklist-nousertalk'            => 'cannot edit own talk page',
 'ipblocklist-empty'               => 'The block list is empty.',
 'ipblocklist-no-results'          => 'The requested IP address or username is not blocked.',
@@ -3222,7 +3226,7 @@ See the [[Special:BlockList|block list]] for the list of currently operational b
 'block-log-flags-anononly'        => 'anonymous users only',
 'block-log-flags-nocreate'        => 'account creation disabled',
 'block-log-flags-noautoblock'     => 'autoblock disabled',
-'block-log-flags-noemail'         => 'e-mail blocked',
+'block-log-flags-noemail'         => 'e-mail disabled',
 'block-log-flags-nousertalk'      => 'cannot edit own talk page',
 'block-log-flags-angry-autoblock' => 'enhanced autoblock enabled',
 'block-log-flags-hiddenname'      => 'username hidden',
@@ -4635,7 +4639,7 @@ You can also [[Special:EditWatchlist|use the standard editor]].',
 'version-svn-revision'          => '(r$2)', # only translate this message to other languages if you have to change it
 'version-license'               => 'License',
 'version-poweredby-credits'     => "This wiki is powered by '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
-'version-poweredby-others'      => 'others',
+'version-poweredby-others'      => '[{{SERVER}}{{SCRIPTPATH}}/CREDITS others]',
 'version-license-info'          => 'MediaWiki 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.
 
 MediaWiki 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.
@@ -4840,6 +4844,8 @@ Otherwise, you can use the easy form below. Your comment will be added to the pa
 'api-error-emptypage'                     => 'Creating new, empty pages is not allowed.',
 'api-error-fetchfileerror'                => 'Internal error: Something went wrong while fetching the file.',
 'api-error-file-too-large'                => 'The file you submitted was too large.',
+'api-error-fileexists-forbidden'          => 'A file with name "$1" already exists, and cannot be overwritten.',
+'api-error-fileexists-shared-forbidden'   => 'A file with name "$1" already exists in the shared file repository, and cannot be overwritten.',
 'api-error-filename-tooshort'             => 'The filename is too short.',
 'api-error-filetype-banned'               => 'This type of file is banned.',
 'api-error-filetype-missing'              => 'The filename is missing an extension.',
index 1f7eea9..40b1b11 100644 (file)
@@ -1370,6 +1370,7 @@ indekso pro troŝarĝita servilo. Intertempe, vi povas serĉi per <i>guglo</i> a
 'prefs-beta' => 'Ecoj de Beta',
 'prefs-datetime' => 'Dato kaj horo',
 'prefs-labs' => 'Ecoj el Laboratorio',
+'prefs-user-pages' => 'Uzanto paĝoj',
 'prefs-personal' => 'Uzanta profilo',
 'prefs-rc' => 'Lastaj ŝanĝoj',
 'prefs-watchlist' => 'Atentaro',
@@ -3134,7 +3135,7 @@ La komenca ligilo de linio devas esti ligilo al malbona bildo.
 Sekvaj ligilo en la sama linio estas konsiderata kiel esceptoj (paĝoj kiel la bildo rajtas esti montrata.)',
 
 # Metadata
-'metadata' => 'Metadatenoj',
+'metadata' => 'Metadatumoj',
 'metadata-help' => 'Ĉi tiu dosiero enhavas plian informon, verŝajne aldonitan de la cifereca fotilo aŭ skanilo uzita por krei aŭ skani ĝin. Se la dosiero estis modifita de sia originala stato, iuj detaloj eble ne konformos al efektiva stato de la modifita bildo.',
 'metadata-expand' => 'Montri etendajn detalojn',
 'metadata-collapse' => 'Kaŝi etendajn detalojn',
index 201259a..a41f196 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author -jem-
  * @author Aleator
  * @author Alhen
  * @author Alpertron
@@ -351,7 +352,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Ocultar ediciones patrulladas en los cambios recientes',
 'tog-newpageshidepatrolled' => 'Ocultar páginas patrulladas de la lista de páginas nuevas',
 'tog-extendwatchlist' => 'Expandir la lista de seguimiento a todos los cambios, no sólo a los más recientes.',
-'tog-usenewrc' => 'Cambios recientes mejorados (requiere JavaScript)',
+'tog-usenewrc' => 'Agrupar los cambios por página en los cambios recientes y en la lista de vigilancia (requiere JavaScript)',
 'tog-numberheadings' => 'Numerar automáticamente los encabezados',
 'tog-showtoolbar' => 'Mostrar la barra de edición (requiere JavaScript)',
 'tog-editondblclick' => 'Editar páginas con doble clic (requiere JavaScript)',
@@ -367,7 +368,7 @@ $messages = array(
 'tog-previewontop' => 'Mostrar previsualización antes del cuadro de edición',
 'tog-previewonfirst' => 'Mostrar previsualización en la primera edición',
 'tog-nocache' => 'Desactivar la caché de páginas del navegador',
-'tog-enotifwatchlistpages' => 'Enviarme un correo electrónico cuando se modifique una página en mi lista de seguimiento',
+'tog-enotifwatchlistpages' => 'Enviarme un correo electrónico cuando se modifique una página o un archivo de mi lista de seguimiento',
 'tog-enotifusertalkpages' => 'Enviarme un correo electrónico cuando se modifique mi página de discusión',
 'tog-enotifminoredits' => 'Notificarme también los cambios menores de páginas',
 'tog-enotifrevealaddr' => 'Revelar mi dirección de correo electrónico en los correos de notificación',
@@ -702,6 +703,7 @@ Por favor, avisa a un [[Special:ListUsers/sysop|administrador]], tomando nota de
 'cannotdelete' => 'La página o archivo «$1» no se pudo borrar.
 Puede que ya haya sido borrado por alguien más.',
 'cannotdelete-title' => 'No se puede borrar la página «$1»',
+'delete-hook-aborted' => 'La modificación que intentaste hacer fue cancelada por un gancho de extensión. No hay explicación disponible.',
 'badtitle' => 'Título incorrecto',
 'badtitletext' => 'El título de la página solicitada está vacío, no es válido, o es un enlace interidioma o interwiki incorrecto.
 Puede que contenga uno o más caracteres que no se pueden usar en los títulos.',
@@ -733,6 +735,8 @@ El motivo dado fue: "\'\'$2\'\'".',
 El administrador que lo ha bloqueado ofrece esta explicación: "$3".',
 'invalidtitle-knownnamespace' => 'Título no válido con el espacio de nombres "$2" y el texto "$3"',
 'invalidtitle-unknownnamespace' => 'Título no válido con número de espacio de nombres desconocido  $1  y el texto "$2"',
+'exception-nologin' => 'No has iniciado sesión',
+'exception-nologin-text' => 'Esta página o acción requiere que inicies sesión en este wiki.',
 
 # Virus scanner
 'virus-badscanner' => "Error de configuración: Antivirus desconocido: ''$1''",
@@ -765,7 +769,7 @@ No olvides personalizar [[Special:Preferences|tus preferencias]].',
 'notloggedin' => 'No has iniciado sesión',
 'nologin' => '¿No tienes una cuenta? $1.',
 'nologinlink' => 'Crear una cuenta',
-'createaccount' => 'Crear cuenta',
+'createaccount' => 'Crear una cuenta',
 'gotaccount' => '¿Ya tienes una cuenta? $1.',
 'gotaccountlink' => 'Entrar',
 'userlogin-resetlink' => '¿Olvidaste tus datos de acceso?',
@@ -3293,11 +3297,11 @@ Existen otros campos que se mantendrán ocultos por defecto.
 'exif-meteringmode' => 'Modo de medición',
 'exif-lightsource' => 'Fuente de luz',
 'exif-flash' => 'Flash',
-'exif-focallength' => 'Longitud de la lente focal',
+'exif-focallength' => 'Longitud focal de la lente',
 'exif-subjectarea' => 'Área del sujeto',
 'exif-flashenergy' => 'Energía del flash',
-'exif-focalplanexresolution' => 'Resolución X plano focal',
-'exif-focalplaneyresolution' => 'Resolución Y plano focal',
+'exif-focalplanexresolution' => 'Resolución X del plano focal',
+'exif-focalplaneyresolution' => 'Resolución Y del plano focal',
 'exif-focalplaneresolutionunit' => 'Unidad de resolución del plano focal',
 'exif-subjectlocation' => 'Localización del sujeto',
 'exif-exposureindex' => 'Índice de exposición',
@@ -3334,7 +3338,7 @@ Existen otros campos que se mantendrán ocultos por defecto.
 'exif-gpstrackref' => 'Referencia para la dirección del movimiento',
 'exif-gpstrack' => 'Dirección del movimiento',
 'exif-gpsimgdirectionref' => 'Referencia de la dirección de imágen',
-'exif-gpsimgdirection' => 'Dirección de imágen',
+'exif-gpsimgdirection' => 'Dirección de imagen',
 'exif-gpsmapdatum' => 'Utilizados datos de medición geodésica',
 'exif-gpsdestlatituderef' => 'Referencia para la latitud del destino',
 'exif-gpsdestlatitude' => 'Destino de latitud',
@@ -3419,7 +3423,7 @@ Existen otros campos que se mantendrán ocultos por defecto.
 'exif-compression-3' => 'Codificación de fax CCITT grupo 3',
 'exif-compression-4' => 'Codificación de fax CCITT grupo 4',
 
-'exif-copyrighted-true' => 'Copyrighted',
+'exif-copyrighted-true' => 'Con derechos de autor',
 'exif-copyrighted-false' => 'Dominio público',
 
 'exif-unknowndate' => 'Fecha desconocida',
@@ -3985,6 +3989,8 @@ En otro caso, puedes usar el siguiente formulario. Tu comentario será añadido
 'api-error-empty-file' => 'El archivo que enviaste estaba vacío.',
 'api-error-emptypage' => 'No se pueden crear páginas nuevas que estén vacías.',
 'api-error-fetchfileerror' => 'Error interno: Algo salió mal mientras se obtenía el archivo.',
+'api-error-fileexists-forbidden' => 'Ya existe el archivo "$1" y no se puede sobreescribir.',
+'api-error-fileexists-shared-forbidden' => 'Ya existe "$1" en el repositorio de archivos compartidos y no se puede sobreescribir.',
 'api-error-file-too-large' => 'El archivo que enviaste era demasiado grande.',
 'api-error-filename-tooshort' => 'El nombre de archivo es demasiado corto.',
 'api-error-filetype-banned' => 'Este tipo de archivo está prohibido.',
@@ -4023,4 +4029,6 @@ En otro caso, puedes usar el siguiente formulario. Tu comentario será añadido
 'duration-centuries' => '$1 {{PLURAL:$1|siglo|siglos}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milenio|milenios}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'No se pudieron obtener bloqueos en el servidor $1.',
 );
index 2f2e77e..132d383 100644 (file)
@@ -295,7 +295,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Peida viimaste muudatuste loetelus jälgimisloendis esitatavad muudatused',
 'tog-newpageshidepatrolled' => 'Peida uute lehtede loendis kontrollitud leheküljed',
 'tog-extendwatchlist' => 'Laienda jälgimisloendit, et näha kõiki muudatusi, mitte vaid kõige värskemaid',
-'tog-usenewrc' => 'Laiendatud viimased muudatused (nõutav JavaScripti olemasolu)',
+'tog-usenewrc' => 'Rühmita viimased muudatused ja muudatused jälgimisloendis lehekülje järgi (vaja JavaScripti)',
 'tog-numberheadings' => 'Pealkirjade automaatnummerdus',
 'tog-showtoolbar' => 'Redigeerimise tööriistariba näitamine',
 'tog-editondblclick' => 'Artiklite redigeerimine topeltklõpsu peale (JavaScript)',
@@ -321,7 +321,7 @@ $messages = array(
 'tog-externaleditor' => 'Kasuta vaikimisi välist redaktorit (ainult asjatundjatele, tarvis arvuti eriseadistust – [//www.mediawiki.org/wiki/Manual:External_editors lisateave])',
 'tog-externaldiff' => 'Kasuta vaikimisi välist võrdlusvahendit (ainult asjatundjatele, tarvis arvuti eriseadistust – [//www.mediawiki.org/wiki/Manual:External_editors lisateave])',
 'tog-showjumplinks' => 'Kuva lehekülje ülaservas "mine"-lingid',
-'tog-uselivepreview' => 'Kasuta elavat eelvaadet (nõutav JavaScript) (testimisel)',
+'tog-uselivepreview' => 'Kasuta elavat eelvaadet (vaja JavaScripti) (katseline)',
 'tog-forceeditsummary' => 'Nõua redigeerimisel resümee välja täitmist',
 'tog-watchlisthideown' => 'Peida minu redaktsioonid jälgimisloendist',
 'tog-watchlisthidebots' => 'Peida robotid jälgimisloendist',
@@ -558,7 +558,7 @@ Vaata [[Special:Version|versiooni lehekülge]].',
 'viewsourceold' => 'vaata lähteteksti',
 'editlink' => 'redigeeri',
 'viewsourcelink' => 'vaata lähteteksti',
-'editsectionhint' => 'Redigeeri alaosa $1',
+'editsectionhint' => 'Redigeeri alaosa "$1"',
 'toc' => 'Sisukord',
 'showtoc' => 'näita',
 'hidetoc' => 'peida',
@@ -677,6 +677,8 @@ $2',
 Administraator lukustas selle järgmisel põhjusel: "$3".',
 'invalidtitle-knownnamespace' => 'Vigane pealkiri nimeruumis "$2" tekstiga "$3"',
 'invalidtitle-unknownnamespace' => 'Vigane pealkiri nimeruuminumbriga $1 ja tekstiga "$2"',
+'exception-nologin' => 'Sisse logimata',
+'exception-nologin-text' => 'Selle lehekülje või toimingu jaoks pead selles vikis olema sisse loginud.',
 
 # Virus scanner
 'virus-badscanner' => "Viga konfiguratsioonis: tundmatu viirusetõrje: ''$1''",
@@ -1488,7 +1490,7 @@ See ei tohi olla pikem kui $1 {{PLURAL:$1|sümbol|sümbolit}}.',
 'right-read' => 'Lugeda lehekülgi',
 'right-edit' => 'Redigeerida lehekülje sisu',
 'right-createpage' => 'Luua lehekülgi (mis pole arutelu leheküljed)',
-'right-createtalk' => 'Luua arutelu lehekülgi',
+'right-createtalk' => 'Luua arutelulehekülgi',
 'right-createaccount' => 'Luua uusi kasutajakontosid',
 'right-minoredit' => 'Märkida muudatusi pisimuudatustena',
 'right-move' => 'Teisaldada lehekülgi',
@@ -2103,6 +2105,7 @@ Pane tähele, et teised võrgukohad võivad viidata failile otselingiga ja seega
 Valiku kitsendamiseks vali logitüüp, sisesta kasutajanimi (tõstutundlik) või huvipakkuva lehekülje pealkiri (samuti tõstutundlik).',
 'logempty' => 'Logis puuduvad vastavad kirjed.',
 'log-title-wildcard' => 'Selle tekstiga algavad pealkirjad',
+'showhideselectedlogentries' => 'Näita valitud logisissekandeid või peida need',
 
 # Special:AllPages
 'allpages' => 'Kõik leheküljed',
@@ -2459,7 +2462,7 @@ Link võib olla kõlbmatu või redaktsioon võib olla taastatud või arhiivist e
 [[Special:Log/delete|Kustutamise logist]] võib leida loendi viimastest kustutamistest ja taastamistest.",
 'undelete-header' => 'Hiljuti kustutatud leheküljed leiad [[Special:Log/delete|kustutamislogist]].',
 'undelete-search-title' => 'Kustutatud lehekülgede otsimine',
-'undelete-search-box' => 'Otsi kustutatud lehekülgi',
+'undelete-search-box' => 'Kustutatud lehekülgede otsimine',
 'undelete-search-prefix' => 'Näita lehekülgi, mille pealkiri algab nii:',
 'undelete-search-submit' => 'Otsi',
 'undelete-no-results' => 'Kustutatud lehekülgede arhiivist sellist lehekülge ei leidunud.',
@@ -2991,6 +2994,7 @@ See on ilmselt põhjustatud linkimisest mustas nimekirjas olevasse välisvõrguk
 'spambot_username' => 'MediaWiki spämmieemaldus',
 'spam_reverting' => 'Taastan viimase versiooni, mis ei sisalda linke aadressile $1.',
 'spam_blanking' => 'Kõik versioonid sisaldasid linke veebilehele $1. Lehekülg tühjendatud.',
+'spam_deleting' => 'Kustutatud kõik redaktsioonid, mis viitasid aadressile $1.',
 
 # Info page
 'pageinfo-title' => 'Teave lehekülje "$1" kohta',
@@ -3830,6 +3834,8 @@ Kui ei, kasuta allolevat lihtsat vormi. Sinu kommentaar lisatakse koos kasutajan
 'api-error-empty-file' => 'Üleslaaditav fail on tühi.',
 'api-error-emptypage' => 'Uute tühjade lehekülgede loomine pole lubatud.',
 'api-error-fetchfileerror' => 'Sisemine tõrge: Midagi läks faili kättesaamisel valesti.',
+'api-error-fileexists-forbidden' => 'Fail nimega "$1" on juba olemas ja seda ei saa üle kirjutada.',
+'api-error-fileexists-shared-forbidden' => 'Fail nimega "$1" on jagatud failivaramus juba olemas ja seda ei saa üle kirjutada.',
 'api-error-file-too-large' => 'Üleslaaditav fail on liiga suur.',
 'api-error-filename-tooshort' => 'Failinimi on liiga lühike.',
 'api-error-filetype-banned' => 'Antud failitüüp on keelatud.',
index 1a18c19..15e16c9 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Extremaduran (Estremeñu)
+/** Extremaduran (estremeñu)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 734b00c..32b6804 100644 (file)
@@ -438,7 +438,7 @@ $messages = array(
 'tog-hidepatrolled' => 'ویرایش‌های گشت‌خورده از فهرست تغییرات اخیر پنهان شوند',
 'tog-newpageshidepatrolled' => 'صفحه‌های نهگبانی‌شده از فهرست صفحه‌های تازه پنهان شوند',
 'tog-extendwatchlist' => 'گسترش فهرست پی‌گیری‌ها برای نمایش همهٔ تغییرات، نه فقط آخرین‌ها',
-'tog-usenewrc' => 'از تغییرات اخیر گسترش‌یافته استفاده شود (نیازمند جاوااسکریپت)',
+'tog-usenewrc' => 'گروه تغییرات بر پایه صفحه در تغییرات اخیر و فهرست پیگیری‌ها (نیازمند جاوااسکریپت)',
 'tog-numberheadings' => 'شماره‌گذاری خودکار عنوان‌ها',
 'tog-showtoolbar' => 'نوار ابزار جعبهٔ ویرایش نمایش یابد (نیازمند جاوااسکریپت)',
 'tog-editondblclick' => 'ویرایش صفحه‌ها با دوکلیک (نیازمند جاوااسکریپت)',
@@ -795,6 +795,8 @@ $1',
 'cannotdelete' => 'امکان حذف صفحه یا تصویر «$1» وجود ندارد.
 ممکن است قبلاً فرد دیگری آن را حذف کرده باشد.',
 'cannotdelete-title' => 'نمی‌توان صفحهٔ «$1» را حذف کرد',
+'delete-hook-aborted' => 'ویرایش توسط قلاب لغو شد.
+توضیحی در این مورد داده نشد.',
 'badtitle' => 'عنوان بد',
 'badtitletext' => 'عنوان درخواستی نامعتبر، خالی، یا عنوانی میان‌زبانی یا میان‌ویکی‌ای با پیوند نادرست بود.
 ممکن است حاوی یک یا چند نویسه باشد که نمی‌توانند در عنوان‌ها استفاده شوند.',
@@ -831,6 +833,8 @@ $2',
 مدیری که آن را قفل کرده چنین توضیحی را ذکر کرده:  ''$3''.",
 'invalidtitle-knownnamespace' => 'عنوان نامعتبر با فضای نام «$2» و متن «$3»',
 'invalidtitle-unknownnamespace' => 'عنوان نامعتبر با فضای نام ناشناختهٔ شمارهٔ $1 و متن «$2»',
+'exception-nologin' => 'به سامانه وارد نشده‌اید',
+'exception-nologin-text' => 'در این ویکی انجام این عمل نیازمند وارد شدن به سیستم  است.',
 
 # Virus scanner
 'virus-badscanner' => "پیکربندی بد: پویشگر ویروس ناشناخته: ''$1''",
@@ -1161,7 +1165,7 @@ $2
 'storedversion' => 'نسخهٔ ذخیره شده',
 'nonunicodebrowser' => "'''هشدار: مرورگر شما با استانداردهای یونیکد سازگار نیست.'''
 راه حلی به کار گرفته شده تا شما بتوانید صفحه‌ها را با امنیت ویرایش کنید: کاراکترهای غیر ASCII به صورت کدهایی در مبنای شانزده به شما نشان داده می‌شوند.",
-'editingold' => "'''هشدار: شما در حال ویرایش نسخه‌ای قدیمی از این صفحه هستید.''
+'editingold' => "'''هشدار: شما در حال ویرایش نسخه‌ای قدیمی از این صفحه هستید.'''
 اگر ذخیره‌اش کنید، هر تغییری که پس از این نسخه انجام شده‌است از بین خواهد رفت.",
 'yourdiff' => 'تفاوت‌ها',
 'copyrightwarning' => "لطفاً توجه داشته باشید که فرض می‌شود کلیهٔ مشارکت‌های شما با {{SITENAME}} تحت «$2» منتشر می‌شوند (برای جزئیات بیشتر به $1 مراجعه کنید).
@@ -4148,6 +4152,8 @@ $5
 '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 13f27ce..0ea99ab 100644 (file)
@@ -11,6 +11,7 @@
  * @author Centerlink
  * @author Cimon Avaro
  * @author Crt
+ * @author ElmA
  * @author Harriv
  * @author Jaakonam
  * @author Jack Phoenix
@@ -325,15 +326,15 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Muokkaa osioita napsauttamalla otsikkoa hiiren oikealla painikkeella (JavaScript)',
 'tog-showtoc' => 'Näytä sisällysluettelo sivuille, joilla yli 3 otsikkoa',
 'tog-rememberpassword' => 'Muista kirjautumisen tässä selaimessa (enintään $1 {{PLURAL:$1|päivä|päivää}})',
-'tog-watchcreations' => 'Lisää luomani sivut tarkkailulistalle',
-'tog-watchdefault' => 'Lisää muokkaamani sivut tarkkailulistalle',
-'tog-watchmoves' => 'Lisää siirtämäni sivut tarkkailulistalle',
-'tog-watchdeletion' => 'Lisää poistamani sivut tarkkailulistalle',
+'tog-watchcreations' => 'Lisää luomani sivut tarkkailulistalleni',
+'tog-watchdefault' => 'Lisää muokkaamani sivut tarkkailulistalleni',
+'tog-watchmoves' => 'Lisää siirtämäni sivut tarkkailulistalleni',
+'tog-watchdeletion' => 'Lisää poistamani sivut tarkkailulistalleni',
 'tog-minordefault' => 'Muutokset ovat oletuksena pieniä',
 'tog-previewontop' => 'Näytä esikatselu muokkauskentän yläpuolella',
 'tog-previewonfirst' => 'Näytä esikatselu heti, kun muokkaus aloitetaan',
 'tog-nocache' => 'Älä tallenna sivuja selaimen välimuistiin',
-'tog-enotifwatchlistpages' => 'Lähetä sähköpostiviesti tarkkailtujen sivujen muutoksista',
+'tog-enotifwatchlistpages' => 'Lähetä sähköpostiviesti tarkkailulistallani olevien sivujen muutoksista',
 'tog-enotifusertalkpages' => 'Lähetä sähköpostiviesti, kun käyttäjäsivun keskustelusivu muuttuu',
 'tog-enotifminoredits' => 'Lähetä sähköpostiviesti myös pienistä muokkauksista',
 'tog-enotifrevealaddr' => 'Näytä sähköpostiosoitteeni muille lähetetyissä ilmoituksissa',
@@ -696,6 +697,8 @@ Syynä on: ''$2''.",
 Lukituksen asettanut ylläpitäjä on antanut seuraavan syyn toimenpiteelle: "$3".',
 'invalidtitle-knownnamespace' => 'Virheellinen sivunimi, nimiavaruus "$2" ja teksti "$3"',
 'invalidtitle-unknownnamespace' => 'Virheellinen sivunimi, tuntematon nimiavaruus numero $1 ja teksti $2',
+'exception-nologin' => 'Et ole kirjautuneena',
+'exception-nologin-text' => 'Tämä sivu tai toiminto edellyttää sisäänkirjautumista tähän wikiin.',
 
 # Virus scanner
 'virus-badscanner' => "Virheellinen asetus: Tuntematon virustutka: ''$1''",
@@ -1226,7 +1229,7 @@ Uuden ja vanhan sivun muutoksien pitää muodostaa jatkumo – ne eivät saa men
 
 # Diffs
 'history-title' => 'Sivun "$1" muutoshistoria',
-'difference-title' => 'Ero sivun "$1" versioiden välillä',
+'difference-title' => 'Ero sivun ”$1” versioiden välillä',
 'difference-title-multipage' => 'Erot sivujen "$1" ja "$2" välillä',
 'difference-multipage' => '(Sivujen välinen eroavaisuus)',
 'lineno' => 'Rivi $1:',
@@ -1782,8 +1785,12 @@ $1',
 'backend-fail-read' => 'Tiedostoa $1 ei voitu lukea.',
 'backend-fail-create' => 'Tiedostoa $1 ei voitu luoda.',
 'backend-fail-maxsize' => 'Tiedostoa $1 ei voitu luoda, koska se on suurempi kuin {{PLURAL:$2|yksi tavu|$2 tavua}}.',
+'backend-fail-readonly' => 'Taustajärjestelmä "$1" on tällä hetkellä vain lukutilassa. Syy tähän on: "\'\'$2\'\'"',
+'backend-fail-synced' => 'Tiedoston "$1" tila ei vastaa tiedoston tilaa sisäisissä taustajärjestelmissä.',
 'backend-fail-connect' => 'Varastojärjestelmään "$1" ei saada yhteyttä.',
+'backend-fail-internal' => 'Tuntematon virhe taustajärjestelmässä "$1".',
 'backend-fail-contenttype' => 'Tiedostoa ei voitu tallentaa kohteeseen $1, koska tiedostomuotoa ei voitu määrittää.',
+'backend-fail-batchsize' => 'Taustajärjestelmälle on annettu $1 {{PLURAL:$1|tiedostotoiminto|toimintoa}}; enimmäismäärä on $2 {{PLURAL:$2|tiedostotoiminto|toimintoa}}.',
 'backend-fail-usable' => 'Ei voitu luoda tiedostoa $1, koska käyttöoikeudet eivät riittäneet tai hakemisto puuttuu.',
 
 # Lock manager
@@ -2405,7 +2412,7 @@ Viimeisimmän muokkauksen on tehnyt käyttäjä [[User:$3|$3]] ([[User talk:$3|k
 
 # Undelete
 'undelete' => 'Palauta poistettuja sivuja',
-'undeletepage' => 'Katsele ja palauta poistettuja sivuja',
+'undeletepage' => 'Tarkastele ja palauta poistettuja sivuja',
 'undeletepagetitle' => "'''Poistetut versiot sivusta [[:$1]]'''.",
 'viewdeletedpage' => 'Poistettujen sivujen selaus',
 'undeletepagetext' => '{{PLURAL:$1|Seuraava sivu|Seuraavat sivut}} on poistettu, mutta {{PLURAL:$1|se löytyy|ne löytyvät}} vielä arkistosta, joten {{PLURAL:$1|se on|ne ovat}} palautettavissa. Arkisto saatetaan tyhjentää aika ajoin.',
@@ -3841,6 +3848,8 @@ Muussa tapauksessa voit käyttää alla olevaa helpompaa lomaketta. Kommenttisi
 'api-error-empty-file' => 'Määrittämäsi tiedosto on tyhjä.',
 'api-error-emptypage' => 'Ei ole sallittua luoda uutta, tyhjää sivua.',
 'api-error-fetchfileerror' => 'Sisäinen virhe: jotakin meni pieleen tiedoston haussa.',
+'api-error-fileexists-forbidden' => 'Tiedosto nimellä "$1" on jo olemassa eikä sitä voi korvata.',
+'api-error-fileexists-shared-forbidden' => 'Tiedosto nimeltä "$1" on jo olemassa yhteisessä tietovarastossa eikä sitä voi korvata.',
 'api-error-file-too-large' => 'Määrittämäsi tiedosto on liian iso.',
 'api-error-filename-tooshort' => 'Tiedoston nimi on liian lyhyt.',
 'api-error-filetype-banned' => 'Tämän tyyppisiä tiedosta ei voi tallentaa.',
index 567e114..a20078a 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Meänkieli (Meänkieli)
+/** meänkieli (meänkieli)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 394f985..e50f273 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Faroese (Føroyskt)
+/** Faroese (føroyskt)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 7a7823b..14ceb55 100644 (file)
@@ -371,7 +371,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Masquer les modifications surveillées dans les modifications récentes',
 'tog-newpageshidepatrolled' => 'Masquer les pages surveillées parmi les nouvelles pages',
 'tog-extendwatchlist' => 'Étendre la liste de suivi pour afficher toutes les modifications et non seulement les plus récentes',
-'tog-usenewrc' => 'Utiliser les modifications récentes améliorées (nécessite JavaScript)',
+'tog-usenewrc' => 'Grouper les changements dans les modifications récentes et la liste de suivi (nécessite JavaScript)',
 'tog-numberheadings' => 'Numéroter automatiquement les titres de section',
 'tog-showtoolbar' => "Montrer la barre d'outils de modification (nécessite JavaScript)",
 'tog-editondblclick' => 'Modifier des pages sur double-clic (nécessite JavaScript)',
@@ -379,17 +379,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Activer la modification de sections par clic droit sur leurs titres (nécessite JavaScript)',
 'tog-showtoc' => 'Afficher la table des matières (pour les pages ayant plus de 3 sections)',
 'tog-rememberpassword' => 'Se souvenir de mon identification avec ce navigateur (au maximum $1 {{PLURAL:$1|jour|jours}})',
-'tog-watchcreations' => 'Ajouter les pages que je crée à ma liste de suivi',
-'tog-watchdefault' => 'Ajouter les pages que je modifie à ma liste de suivi',
-'tog-watchmoves' => 'Ajouter les pages que je renomme à ma liste de suivi',
-'tog-watchdeletion' => 'Ajouter les pages que je supprime à ma liste de suivi',
+'tog-watchcreations' => 'Ajouter les pages que je crée et les fichiers que j’importe à ma liste de suivi',
+'tog-watchdefault' => 'Ajouter les pages et les fichiers que je modifie à ma liste de suivi',
+'tog-watchmoves' => 'Ajouter les pages et les fichiers que je renomme à ma liste de suivi',
+'tog-watchdeletion' => 'Ajouter les pages et les fichiers que je supprime à ma liste de suivi',
 'tog-minordefault' => 'Marquer mes modifications comme mineures par défaut',
 'tog-previewontop' => 'Afficher la prévisualisation au-dessus de la zone de modification',
 'tog-previewonfirst' => 'Afficher la prévisualisation lors de la première modification',
 'tog-nocache' => 'Désactiver le cache des pages par le navigateur',
-'tog-enotifwatchlistpages' => 'M’avertir par courriel lorsqu’une page de ma liste de suivi est modifiée',
+'tog-enotifwatchlistpages' => 'M’avertir par courriel lorsqu’une page ou un fichier de ma liste de suivi est modifiée',
 'tog-enotifusertalkpages' => 'M’avertir par courriel si ma page de discussion est modifiée',
-'tog-enotifminoredits' => "M'avertir par courriel même en cas de modifications mineures des pages",
+'tog-enotifminoredits' => "M'avertir par courriel même en cas de modifications mineures des pages ou des fichiers",
 'tog-enotifrevealaddr' => 'Afficher mon adresse de courriel dans les courriels de notification',
 'tog-shownumberswatching' => 'Afficher le nombre d’utilisateurs qui suivent cette page',
 'tog-oldsig' => 'Signature existante :',
@@ -722,6 +722,8 @@ Veuillez le signaler à un [[Special:ListUsers/sysop|administrateur]] sans oubli
 'cannotdelete' => 'Impossible de supprimer la page ou le fichier « $1 ».
 La suppression a peut-être déjà été effectuée par quelqu’un d’autre.',
 'cannotdelete-title' => 'Impossible de supprimer la page « $1 »',
+'delete-hook-aborted' => "Suppression annulée par une extension.
+Aucune explication n'a été fournie.",
 'badtitle' => 'Mauvais titre',
 'badtitletext' => 'Le titre de la page demandée est invalide, vide, ou il s’agit d’un titre inter-langue ou inter-projet mal lié. Il contient peut-être un ou plusieurs caractères qui ne peuvent pas être utilisés dans les titres.',
 'perfcached' => 'Les données suivantes sont en cache et peuvent ne pas être à jour. Un maximum de {{PLURAL:$1|un résultat|$1 résultats}} est disponible dans le cache.',
@@ -754,6 +756,8 @@ Le motif avancé est « ''$2'' ».",
 L’administrateur qui l’a verrouillé a fourni ce motif: « $3 ».',
 'invalidtitle-knownnamespace' => 'Titre invalide avec l’espace de noms « $2 » et l’intitulé « $3 »',
 'invalidtitle-unknownnamespace' => 'Titre invalide avec le numéro d’espace de noms $1 et l’intitulé « $2 » inconnus',
+'exception-nologin' => 'Non connecté',
+'exception-nologin-text' => "Cette page ou cette action nécessite d'être connecté sur ce wiki.",
 
 # Virus scanner
 'virus-badscanner' => "Mauvaise configuration : scanneur de virus inconnu : ''$1''",
@@ -4015,6 +4019,8 @@ Sinon, vous pouvez utiliser le formulaire simplifié ci-dessous. Votre commentai
 'api-error-empty-file' => 'Le fichier que vous avez soumis était vide.',
 'api-error-emptypage' => "Création de pages vide n'est pas autorisée.",
 'api-error-fetchfileerror' => 'Erreur interne : Quelque chose s’est mal passé lors de la récupération du fichier.',
+'api-error-fileexists-forbidden' => 'Un fichier nommé "$1" existe déjà, et ne peut pas être écrasé.',
+'api-error-fileexists-shared-forbidden' => 'Un fichier nommé "$1" existe déjà dans le répertoire des fichiers partagés, et ne peut pas être écrasé.',
 'api-error-file-too-large' => 'Le fichier que vous avez soumis était trop grand.',
 'api-error-filename-tooshort' => 'Le nom du fichier est trop court.',
 'api-error-filetype-banned' => 'Ce type de fichier est interdit.',
index 0dd57ec..a101aaf 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Franco-Provençal (Arpetan)
+/** Franco-Provençal (arpetan)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -312,59 +312,59 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'Solegnér los lims :',
 'tog-justify' => 'Èxplicar los paragrafos',
-'tog-hideminor' => 'Cachiér los petiôts changements des dèrriérs changements',
-'tog-hidepatrolled' => 'Cachiér los changements survelyês des dèrriérs changements',
-'tog-newpageshidepatrolled' => 'Cachiér les pâges survelyês de la lista de les pâges novèles',
+'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ês entre-mié 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' => 'Utilisar los dèrriérs changements mèlyorâs (at fôta de JavaScript)',
-'tog-numberheadings' => 'Numerotar ôtomaticament los titros de sèccions',
-'tog-showtoolbar' => 'Montrar la bârra d’outils d’èdicion (at fôta de JavaScript)',
-'tog-editondblclick' => 'Doblo-clicar pèrmèt de changiér una pâge (at fôta de JavaScript)',
-'tog-editsection' => 'Activar los lims « [changiér] » por changiér una sèccion',
-'tog-editsectiononrightclick' => 'Fâre un clic drêt sur un titro de sèccion pèrmèt de changiér ceta (at fôta de JavaScript)',
+'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',
+'tog-showtoolbar' => 'Fâre vêre la bârra d’outils de changement (at fôta de JavaScript)',
+'tog-editondblclick' => 'Changiér des pâges sur doblo-clic (at fôta de JavaScript)',
+'tog-editsection' => 'Activar lo changement de sèccions avouéc los lims « [changiér] »',
+'tog-editsectiononrightclick' => 'Activar lo changement de sèccions per clic drêt sur lors titros (at fôta de JavaScript)',
 'tog-showtoc' => '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 branchement sur ceti navigator (por $1 jorn{{PLURAL:$1||s}} u més)',
+'tog-rememberpassword' => 'Sè rapelar de mon contresegno sur ceti navigator (por $1 jorn{{PLURAL:$1||s}} u més)',
 'tog-watchcreations' => 'Apondre les pâges que fé a ma lista de survelyence',
 'tog-watchdefault' => 'Apondre les pâges que chanjo a ma lista de survelyence',
 'tog-watchmoves' => 'Apondre les pâges que renomo a ma lista de survelyence',
 'tog-watchdeletion' => 'Apondre les pâges que suprimo a ma lista de survelyence',
-'tog-minordefault' => 'Marcar per dèfôt mos changements coment petiôts',
-'tog-previewontop' => 'Montrar la prèvisualisacion en-dessus de la bouèta d’èdicion',
-'tog-previewonfirst' => 'Montrar la prèvisualisacion pendent la premiére èdicion',
+'tog-minordefault' => 'Marcar per dèfôt tôs los changements coment petiôts',
+'tog-previewontop' => 'Fâre vêre la prèvisualisacion en-dessus de la zona de changement',
+'tog-previewonfirst' => 'Fâre vêre la prèvisualisacion pendent lo premiér changement',
 'tog-nocache' => 'Dèsactivar lo cache de les pâges per lo navigator',
-'tog-enotifwatchlistpages' => 'M’avèrtir per mèssageria èlèctronica quand una pâge de ma lista de survelyence est changiê',
-'tog-enotifusertalkpages' => 'M’avèrtir per mèssageria èlèctronica quand ma pâge de discussion est changiê',
-'tog-enotifminoredits' => 'M’avèrtir per mèssageria èlèctronica mémo en câs de petiôts changements',
-'tog-enotifrevealaddr' => 'Fâre vêre mon adrèce èlèctronica dens los mèssâjos d’avèrtissement',
-'tog-shownumberswatching' => 'Fâre vêre lo nombro d’usanciérs que siuvont les pâges',
+'tog-enotifwatchlistpages' => 'Mè mandar un mèssâjo quand na pâge de ma lista de survelyence est changiê',
+'tog-enotifusertalkpages' => 'Mè mandar un mèssâjo quand ma pâge de discussion est changiê',
+'tog-enotifminoredits' => 'Mè mandar un mèssâjo mémo en câs de petiôts changements de les pâges',
+'tog-enotifrevealaddr' => 'Fâre vêre mon adrèce èlèctronica dens los mèssâjos de notificacion',
+'tog-shownumberswatching' => 'Fâre vêre lo nombro d’utilisators que siuvont na pâge',
 'tog-oldsig' => 'Signatura ègzistenta :',
 'tog-fancysig' => 'Trètar la signatura coment de vouiquitèxto (sen lim ôtomatico)',
-'tog-externaleditor' => 'Utilisar per dèfôt un èditor de tèxto de defôr (solament por los usanciérs avanciês, at fôta d’una configuracion spèciâla sur voutron ordenator. [//www.mediawiki.org/wiki/Manual:External_editors Més d’enformacions.])',
-'tog-externaldiff' => 'Utilisar per dèfôt un comparator de defôr (solament por los usanciérs avanciês, at fôta d’una configuracion spèciâla sur voutron ordenator. [//www.mediawiki.org/wiki/Manual:External_editors Més d’enformacions.])',
-'tog-showjumplinks' => 'Activar los lims « navigacion » et « rechèrche » d’amont la pâge',
+'tog-externaleditor' => 'Utilisar per dèfôt un changior de tèxto de defôr (solament por los utilisators avanciês, at fôta d’una configuracion spèciâla sur voutron ordenator. [//www.mediawiki.org/wiki/Manual:External_editors Més d’enformacions.])',
+'tog-externaldiff' => 'Utilisar per dèfôt un comparator de defôr (solament por los utilisators avanciês, at fôta d’una configuracion spèciâla sur voutron ordenator. [//www.mediawiki.org/wiki/Manual:External_editors Més d’enformacions.])',
+'tog-showjumplinks' => 'Activar los lims d’accèssibilitât « {{int:jumpto}} »',
 'tog-uselivepreview' => 'Utilisar l’apèrçu vito fêt (at fôta de JavaScript) (èxpèrimentâl)',
 'tog-forceeditsummary' => 'M’avèrtir quand j’é pas spècefiâ de rèsumâ de changement',
-'tog-watchlisthideown' => 'Cachiér mos prôpros changements dens la lista de survelyence',
-'tog-watchlisthidebots' => 'Cachiér los changements fêts per des bots dens la lista de survelyence',
-'tog-watchlisthideminor' => 'Cachiér los petiôts changements dens la lista de survelyence',
-'tog-watchlisthideliu' => 'Cachiér los changements fêts per des usanciérs branchiês dens la lista de survelyence',
-'tog-watchlisthideanons' => 'Cachiér los changements fêts per des usanciérs pas encartâs dens la lista de survelyence',
-'tog-watchlisthidepatrolled' => 'Cachiér los changements survelyês dens la lista de survelyence',
-'tog-nolangconversion' => 'Dèsactivar la convèrsion de les variantes de lengoua',
-'tog-ccmeonemails' => 'Mè mandar una copia des mèssâjos que mando ux ôtros usanciérs',
-'tog-diffonly' => 'Pas montrar lo contegnu de les pâges desot los difs',
+'tog-watchlisthideown' => 'Cachiér mos prôpros changements dedens la lista de survelyence',
+'tog-watchlisthidebots' => 'Cachiér los changements fêts per des bots dedens la lista de survelyence',
+'tog-watchlisthideminor' => 'Cachiér los petiôts changements dedens la lista de survelyence',
+'tog-watchlisthideliu' => 'Cachiér los changements fêts per des utilisators branchiês dedens la lista de survelyence',
+'tog-watchlisthideanons' => 'Cachiér los changements fêts per des utilisators anonimos dedens la lista de survelyence',
+'tog-watchlisthidepatrolled' => 'Cachiér los changements survelyês dedens la lista de survelyence',
+'tog-nolangconversion' => 'Dèsactivar la convèrsion de les variantes lengouistiques',
+'tog-ccmeonemails' => 'Mè mandar na copia des mèssâjos que mando ux ôtros utilisators',
+'tog-diffonly' => 'Pas fâre vêre lo contegnu de les pâges desot los difs',
 'tog-showhiddencats' => 'Fâre vêre les catègories cachiês',
-'tog-noconvertlink' => 'Dèsactivar la convèrsion des titros',
-'tog-norollbackdiff' => 'Pas montrar lo dif pendent una rèvocacion',
+'tog-noconvertlink' => 'Dèsactivar la convèrsion des titros des lims',
+'tog-norollbackdiff' => 'Pas fâre vêre lo dif pendent na rèvocacion',
 
-'underline-always' => 'tojorn',
-'underline-never' => 'jamés',
-'underline-default' => 'd’aprés lo navigator',
+'underline-always' => 'Tojorn',
+'underline-never' => 'Jamés',
+'underline-default' => 'Valor per dèfôt du navigator',
 
 # Font style option in Special:Preferences
-'editfont-style' => 'Stilo de la police de la bouèta d’èdicion :',
+'editfont-style' => 'Stilo de police de la zona de changement :',
 'editfont-default' => 'Celi du navigator per dèfôt',
-'editfont-monospace' => 'Police monoèspâciê',
+'editfont-monospace' => 'Police de chace fixa',
 'editfont-sansserif' => 'Police sen empiotament',
 'editfont-serif' => 'Police avouéc empiotaments',
 
@@ -422,18 +422,18 @@ $messages = array(
 
 # Categories related messages
 'pagecategories' => 'Catègorie{{PLURAL:$1||s}}',
-'category_header' => 'Pâges dens la catègorie « $1 »',
+'category_header' => 'Pâges dedens la catègorie « $1 »',
 'subcategories' => 'Sot-catègories',
-'category-media-header' => 'Fichiérs mèdia dens la catègorie « $1 »',
-'category-empty' => "''Ora, ceta catègorie contint gins de pâge ou ben de fichiér mèdia.''",
+'category-media-header' => 'Fichiérs mèdia dedens la catègorie « $1 »',
+'category-empty' => "''Ora, ceta catègorie contint gins de pâge ou de fichiér mèdia.''",
 'hidden-categories' => '{{PLURAL:$1|Catègorie cachiê|Catègories cachiês}}',
 'hidden-category-category' => 'Catègories cachiês',
-'category-subcat-count' => 'Ceta catègorie at {{PLURAL:$2|ren que la sot-catègorie|$2 sot-catègories, que {{PLURAL:$1|cela|les $1}}}} ce-desot.',
-'category-subcat-count-limited' => 'Ceta catègorie at {{PLURAL:$1|la sot-catègorie|les $1 sot-catègories}} ce-desot.',
-'category-article-count' => 'Ceta catègorie contint {{PLURAL:$2|ren que la pâge|$2 pâges, que {{PLURAL:$1|cela|les $1}}}} ce-desot.',
-'category-article-count-limited' => '{{PLURAL:$1|Ceta pâge figure|Cetes $1 pâges figuront}} dens la presenta catègorie.',
-'category-file-count' => 'Ceta catègorie contint {{PLURAL:$2|ren que lo fichiér|$2 fichiérs, que {{PLURAL:$1|celi|los $1}}}} ce-desot.',
-'category-file-count-limited' => '{{PLURAL:$1|Ceti fichiér figure|Cetos $1 fichiérs figuront}} dens la presenta catègorie.',
+'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-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-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-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âs',
 'noindex-category' => 'Pâges pas endèxâs',
@@ -441,7 +441,7 @@ $messages = array(
 
 'about' => 'A propôs',
 'article' => 'Pâge de contegnu',
-'newwindow' => '(ôvre una fenétra novèla)',
+'newwindow' => '(ôvre na fenétra novèla)',
 'cancel' => 'Anular',
 'moredotdotdot' => 'Et ples...',
 'mypage' => 'Ma pâge',
@@ -671,8 +671,8 @@ La suprèssion at pôt-étre ja étâ fêta per quârqu’un d’ôtro.',
 'badtitle' => 'Crouyo titro',
 'badtitletext' => 'Lo titro de pâge demandâ est fôx, vouedo, ou ben o est un titro entèrlengoua ou entèrvouiqui mâl-liyê.
 Contint sûrement yon ou ben un mouél de caractèros que pôvont pas étre utilisâs dens los titros.',
-'perfcached' => 'Cetes balyês sont en cache et pôvont pas étre a jorn. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
-'perfcachedts' => 'Cetes balyês sont en cache, sont vêr pas forciêment a jorn. La dèrriére actualisacion dâte du $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
+'perfcached' => 'Cetes balyês sont en cache et pôvont pas étre a jorn. {{PLURAL:$1|Yon rèsultat|$1 rèsultats}} u més {{PLURAL:$1|est disponiblo|sont disponiblos}} dedens lo cache.',
+'perfcachedts' => 'Cetes balyês sont en cache et ont étâ betâs a jorn por lo dèrriér côp a $1. {{PLURAL:$4|Yon rèsultat|$4 rèsultats}} u més {{PLURAL:$1|est disponiblo|sont disponiblos}} dedens lo cache.',
 'querypage-no-updates' => 'Ora, les mises a jorn por ceta pâge sont dèsactivâs.
 Les balyês ce-desot sont pas betâs a jorn.',
 'wrong_wfQuery_params' => 'Paramètres fôx dessus wfQuery()<br />
@@ -699,6 +699,7 @@ $2',
 'ns-specialprotected' => 'Les pâges dens l’èspâço de noms « {{ns:special}} » pôvont pas étre changiês.',
 'titleprotected' => "Cél titro at étâ protègiê a la crèacion per [[User:$1|$1]].
 La rêson balyê est « ''$2'' ».",
+'exception-nologin' => 'Pas branchiê',
 
 # Virus scanner
 'virus-badscanner' => "Crouye configuracion : scanor de virus encognu : ''$1''",
@@ -796,6 +797,7 @@ Nion mèssâjo serat mandâ por châcuna de cetes fonccions.',
 'invalidemailaddress' => 'Ceta adrèce èlèctronica pôt pas étre accèptâ perce que semble avêr un format fôx.
 Volyéd buchiér una adrèce bien formatâ ou ben lèssiér cél champ vouedo.',
 'cannotchangeemail' => 'Les adrèces èlèctroniques des comptos pôvont pas étre changiês sur ceti vouiqui.',
+'emaildisabled' => 'Ceti seto pôt pas mandar des mèssâjos.',
 'accountcreated' => 'Compto fêt.',
 'accountcreatedtext' => 'Lo compto usanciér por $1 at étâ fêt.',
 'createaccount-title' => 'Crèacion d’un compto por {{SITENAME}}',
@@ -1006,8 +1008,9 @@ La dèrriére entrâ du jornal des blocâjos est disponibla ce-desot :',
 Rapelâd-vos que les pâges a sè avouéc èxtensions .css et .js utilisont des titros en petiôtes lètres, per ègzemplo {{ns:user}}:Foo/vector.css et pas {{ns:user}}:Foo/Vector.css.",
 'updated' => '(Betâ a jorn)',
 'note' => "'''Nota :'''",
-'previewnote' => "'''Rapelâd-vos que ceti tèxto est ren qu’una prèvisualisacion.'''
-'''Il at p’oncor étâ sôvâ !'''",
+'previewnote' => "'''Rapelâd-vos qu’o est ren qu’una prèvisualisacion.'''
+Voutros changements ont p’oncor étâ sôvâ !",
+'continue-editing' => 'Continuar lo changement',
 'previewconflict' => 'Ceta prèvisualisacion montre lo tèxto de la bouèta d’èdicion de d’amont coment aparètrat se vos chouèsésséd de lo sôvar.',
 'session_fail_preview' => "'''Dèsolâ ! Nos povens pas encartar voutron changement a côsa d’una pèrta d’enformacions en rapôrt avouéc voutra sèance.'''
 Volyéd tornar èprovar.
@@ -1048,7 +1051,7 @@ Vos nos assurâd asse-ben que vos éd cen ècrit vos-mémo, ou ben que vos l’
 Se vos voléd pas que voutros ècrits seyont changiês sen gins de rèstriccion, adonc los volyéd pas sometre ique.<br />
 Vos nos assurâd asse-ben que vos éd cen ècrit vos-mémo, ou ben que vos l’éd copiyê d’una sôrsa que vint du domêno publico, ou ben d’una ressôrsa libra (vêde $1 por més de dètalys).
 '''Utilisâd gins d’ôvra desot drêt d’ôtor sen pèrmission èxprèssa !'''",
-'longpageerror' => "'''ÈRROR : lo tèxto que vos éd somês fât $1 Kio, cen que dèpâsse la limita fixâ a $2 Kio.'''
+'longpageerror' => "'''ÈRROR : lo tèxto que vos éd somês fât {{PLURAL:$1|yon Kio|$1 Kio}}, cen que dèpâsse la limita fixâ a {{PLURAL:$2|yon Kio|$2 Kio}}.'''
 Lo tèxto pôt pas étre sôvâ.",
 'readonlywarning' => "'''Atencion : la bâsa de balyês at étâ vèrrolyê por mantegnence, vos porréd vêr pas sôvar voutros changements d’abôrd.'''
 Vos pouede copiyér lo tèxto dens un fichiér tèxto et pués lo sôvar por ples târd.
@@ -1093,6 +1096,7 @@ Semble qu’el èye étâ suprimâ.',
 'edit-no-change' => 'Voutron changement at étâ ignorâ perce que nion changement at étâ fêt u tèxto.',
 'edit-already-exists' => 'La pâge novèla at pas possu étre fêta.
 Ègziste ja.',
+'defaultmessagetext' => 'Mèssâjo per dèfôt',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Atencion : ceta pâge contint trop d’apèls que revegnont chiers de fonccions du parsor.
@@ -1252,7 +1256,7 @@ Volyéd controlar los jornals.',
 # Suppression log
 'suppressionlog' => 'Jornal de les suprèssions',
 'suppressionlogtext' => 'Vê-que la lista de les suprèssions et des blocâjos qu’ont de contegnu cachiê ux administrators.
-Vêde la [[Special:BlockList|lista ux usanciérs et a les adrèces IP blocâs]] por vêre los banissements et los blocâjos que sont ora opèracionèls.',
+Vêde la [[Special:BlockList|lista des blocâjos]] por vêre los banissements et los blocâjos que sont ora opèracionèls.',
 
 # History merging
 'mergehistory' => 'Fusionar los historicos de les pâges',
@@ -1287,6 +1291,8 @@ Notâd bien que l’usâjo des lims de navigacion tornerat inicialisar cela colo
 
 # Diffs
 'history-title' => 'Historico de les vèrsions de « $1 »',
+'difference-title' => 'Difèrences entre les vèrsions de « $1 »',
+'difference-title-multipage' => 'Difèrences entre les pâges « $1 » et « $2 »',
 'difference-multipage' => '(Difèrences entre les pâges)',
 'lineno' => 'Legne $1 :',
 'compareselectedversions' => 'Comparar les vèrsions chouèsies',
@@ -1384,6 +1390,7 @@ Atencion, lor endèxacion du contegnu de {{SITENAME}} pôt pas étre a jorn.',
 'prefs-beta' => 'Fonccionalitâts « Bèta »',
 'prefs-datetime' => 'Dâta et hora',
 'prefs-labs' => 'Fonccionalitâts « Laboratiors »',
+'prefs-user-pages' => 'Pâges utilisator',
 'prefs-personal' => 'Enformacions a sè',
 'prefs-rc' => 'Dèrriérs changements',
 'prefs-watchlist' => 'Lista de survelyence',
@@ -1864,7 +1871,7 @@ Se lo problèmo continue, veriéd-vos vers un [[Special:ListUsers/sysop|administ
 'backend-fail-writetemp' => 'Empossiblo d’ècrire dedens lo fichiér temporèro.',
 'backend-fail-closetemp' => 'Empossiblo de cllôre lo fichiér temporèro.',
 'backend-fail-read' => 'Empossiblo de liére lo fichiér $1.',
-'backend-fail-create' => 'Empossiblo de fâre lo fichiér $1.',
+'backend-fail-create' => 'Empossiblo d’ècrire lo fichiér $1.',
 
 # Lock manager
 'lockmanager-notlocked' => 'Empossiblo de dèvèrrolyér « $1 » ; el est pas vèrrolyê.',
@@ -1900,7 +1907,7 @@ Pôt pas étre controlâ tot drêt por la sècuritât.',
 'img-auth-nopathinfo' => 'PATH_INFO manquent.
 Voutron sèrvor est pas dèfeni por passar cela enformacion.
 Fonccione pôt-étre en CGI et pués recognêt pas img_auth.
-[https://www.mediawiki.org/wiki/Manual:Image_Authorization Vêde los drêts d’émâge.]',
+Vêde https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'img-auth-notindir' => 'Lo chemin demandâ est pas lo rèpèrtouèro de tèlèchargement configurâ.',
 'img-auth-badtitle' => 'Empossiblo de construire un titro valido dês « $1 ».',
 'img-auth-nologinnWL' => 'Vos éte pas branchiê et pués « $1 » est pas dens la lista blanche.',
@@ -2201,6 +2208,9 @@ Contint sûrement yon ou ben un mouél de caractèros que pôvont pas étre util
 'allpages-bad-ns' => '{{SITENAME}} at gins d’èspâço de noms « $1 ».',
 'allpages-hide-redirects' => 'Cachiér les redirèccions',
 
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'Vêre lo ples novél.',
+
 # Special:Categories
 'categories' => 'Catègories',
 'categoriespagetext' => '{{PLURAL:$1|Ceta catègorie contint|Cetes catègories contegnont}} des pâges ou ben des fichiérs mèdia.
@@ -2650,7 +2660,7 @@ Balyéd ce-desot una rêson justa (per ègzemplo en citent les pâges qu’ont 
 'badipaddress' => 'L’adrèce IP est fôssa.',
 'blockipsuccesssub' => 'Blocâjo reussi',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] at étâ blocâ.<br />
-Vêde la [[Special:BlockList|lista a les adrèces IP blocâs]] por revêre los blocâjos.',
+Vêde la [[Special:BlockList|lista des blocâjos]] por revêre los blocâjos.',
 'ipb-blockingself' => 'Vos éte prèst a vos blocar vos-mémo !  Éte-vos de sûr de lo volêr fâre ?',
 'ipb-confirmhideuser' => 'Vos éte prèst a blocar un usanciér avouéc « cachiér l’usanciér » activâ.  Cen suprime lo nom a l’usanciér dens totes les listes et les entrâs du jornal.  Éte-vos de sûr de lo volêr fâre ?',
 'ipb-edit-dropdown' => 'Changiér les rêsons de blocâjo',
@@ -2705,7 +2715,7 @@ Lo jornal de les suprèssions est disponiblo ce-desot :',
 'reblock-logentry' => 'at changiê los paramètres du blocâjo a [[$1]] avouéc una èxpiracion u $2 $3',
 'blocklogtext' => 'O est lo jornal des blocâjos et des dèblocâjos ux usanciérs.
 Les adrèces IP blocâs ôtomaticament sont pas listâs.
-Vêde la [[Special:BlockList|lista ux usanciérs et a les adrèces IP blocâs]] por vêre los banissements et los blocâjos que sont ora opèracionèls.',
+Vêde la [[Special:BlockList|lista des blocâjos]] por vêre los banissements et los blocâjos que sont ora opèracionèls.',
 'unblocklogentry' => 'at dèblocâ $1',
 'block-log-flags-anononly' => 'solament los usanciérs pas encartâs',
 'block-log-flags-nocreate' => 'crèacion de compto dèfendua',
@@ -2868,6 +2878,7 @@ lo rèsultat pôt adonc étre importâ dens un ôtro vouiqui qu’utilise la pro
 Por èxportar des pâges, buchiéd lors titros dens la bouèta de tèxto ce-desot, yon titro per legne, et pués chouèsésséd se vos voléd ou pas la vèrsion d’ora avouéc totes les vielyes vèrsions, avouéc les legnes de l’historico de la pâge, ou ben simplament la pâge d’ora avouéc des enformacions sur lo dèrriér changement.
 
 Dens cél dèrriér câs, vos pouede asse-ben utilisar un lim, coment [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] por la pâge « [[{{MediaWiki:Mainpage}}]] ».',
+'exportall' => 'Èxportar totes les pâges',
 'exportcuronly' => 'Èxportar ren que la vèrsion d’ora, sen l’historico complèt',
 'exportnohistory' => "----
 '''Nota :''' l’èxportacion de l’historico complèt de les pâges avouéc ceti formulèro at étâ dèsactivâ por des rêsons de capacitât.",
@@ -2884,7 +2895,7 @@ Dens cél dèrriér câs, vos pouede asse-ben utilisar un lim, coment [[{{#Speci
 # Namespace 8 related
 'allmessages' => 'Mèssâjos sistèmo',
 'allmessagesname' => 'Nom du mèssâjo',
-'allmessagesdefault' => 'Tèxto per dèfôt',
+'allmessagesdefault' => 'Mèssâjo per dèfôt',
 'allmessagescurrent' => 'Tèxto d’ora',
 'allmessagestext' => 'O est la lista des mèssâjos sistèmo disponiblos dens l’èspâço MediaWiki.
 Volyéd visitar la [//www.mediawiki.org/wiki/Localisation localisacion de MediaWiki] et pués [//translatewiki.net translatewiki.net] se vos voléd contribuar a la localisacion g·ènèrica de MediaWiki.',
@@ -2965,6 +2976,12 @@ Volyéd tornar èprovar.',
 'import-logentry-interwiki' => 'at importâ $1 per entèrvouiqui',
 'import-logentry-interwiki-detail' => '$1 vèrsion{{PLURAL:$1||s}} dês $2',
 
+# JavaScriptTest
+'javascripttest' => 'Èprôva de JavaScript',
+'javascripttest-title' => 'Èprôves de $1 en cors',
+'javascripttest-qunit-intro' => 'Vêde la [$1 documentacion de les èprôves] dessus mediawiki.org.',
+'javascripttest-qunit-heading' => 'Suita d’èprôva QUnit de JavaScript dessus MediaWiki',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Voutra pâge usanciér',
 'tooltip-pt-anonuserpage' => 'La pâge usanciér de l’adrèce IP avouéc laquinta vos contribuâd',
@@ -3095,6 +3112,7 @@ O est probâblament diu a un lim de vers un seto de defôr qu’aparêt sur la l
 'spambot_username' => 'Neteyâjo de spame per MediaWiki',
 'spam_reverting' => 'Rètablissement de la dèrriére vèrsion que contint gins de lim de vers $1',
 'spam_blanking' => 'Totes les vèrsions que contegnont des lims de vers $1 sont blanchies',
+'spam_deleting' => 'Totes les vèrsions que contegnont des lims de vers $1 sont suprimâs',
 
 # Info page
 'pageinfo-title' => 'Enformacions por « $1 »',
@@ -3889,6 +3907,9 @@ Vos devriâd avêr reçu un [{{SERVER}}{{SCRIPTPATH}}/COPYING ègzemplèro de la
 'version-software' => 'Programeries enstalâs',
 'version-software-product' => 'Marchandie',
 'version-software-version' => 'Vèrsion',
+'version-entrypoints' => 'URL de pouent d’entrâ',
+'version-entrypoints-header-entrypoint' => 'Pouent d’entrâ',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Chemin d’accès du fichiér',
@@ -4077,4 +4098,15 @@ Les émâges sont montrâs dens lor plêna rèsolucion, los ôtros fichiérs son
 'api-error-uploaddisabled' => 'Lo tèlèchargement est dèsactivâ sur ceti vouiqui.',
 'api-error-verification-error' => 'Cél fichiér pôt étre corrompu, ou ben son èxtension est fôssa.',
 
+# Durations
+'duration-seconds' => '$1 second{{PLURAL:$1|a|es}}',
+'duration-minutes' => '$1 menut{{PLURAL:$1|a|es}}',
+'duration-hours' => '$1 hor{{PLURAL:$1|a|es}}',
+'duration-days' => '$1 jorn{{PLURAL:$1||s}}',
+'duration-weeks' => '$1 seman{{PLURAL:$1|a|es}}',
+'duration-years' => '$1 an{{PLURAL:$1||s}}',
+'duration-decades' => '$1 dècèni{{PLURAL:$1|a|es}}',
+'duration-centuries' => '$1 sièclo{{PLURAL:$1||s}}',
+'duration-millennia' => '$1 milènèro{{PLURAL:$1||s}}',
+
 );
index cc8bee6..39b419a 100644 (file)
@@ -25,7 +25,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Latje änringe fersteege',
 'tog-newpageshidepatrolled' => 'Kontroliirde side aw e list "Naie side" fersteege',
 'tog-extendwatchlist' => 'Ütwidede wåchelist tun wisen foon åle änringe',
-'tog-usenewrc' => 'Ütwidede deerstaling foon da "Leeste Änringe" (brükt JavaScript)',
+'tog-usenewrc' => "Ütwidede deerstaling foon da ''Leeste Änringe'' än aw da ''Eefterkiikliste'' (brükt JavaScript)",
 'tog-numberheadings' => 'Ouerschrafte automatisch numeriire',
 'tog-showtoolbar' => 'Beårbe-wärktjüch wise',
 'tog-editondblclick' => 'Side ma dööweltklik beårbe (brükt JavaScript)',
@@ -379,6 +379,7 @@ Wan dåt ai di fål as, hääst dü eewäntuäl en fäägel önj e software fün
 'cannotdelete' => 'Jü sid unti dootäi "$1" köö ai straagen wårde.
 Dåt as flicht ål straagen foon huum ouders.',
 'cannotdelete-title' => 'Sidj „$1“ koon ei stregen wurd.',
+'delete-hook-aborted' => 'Det striken as faan en software-feranerang faan MediaWiki ferhanert wurden. Di grünj as ei bekäänd.',
 'badtitle' => 'Ferkiirde tiitel',
 'badtitletext' => 'Di tiitel foon jü anfrååged sid as üngülti, lääsi unti n üngültigen spräklink foon en ouder wiki.',
 'perfcached' => 'Jodiar dooten kem faan a cache an san ferlicht ei muar aktuel. Huuchstens {{PLURAL:$1|ian resultoot as|$1 resultooten san}} uun a cache.',
@@ -393,7 +394,7 @@ Ouffrååch: $2',
 'actionthrottledtext' => 'Dü hääst jüdeer aksjoon tu oofding bane en kort tidrüm ütfjard. Wees sü gödj än täiw en påår minuute än fersäk dåt et dan foon naien.',
 'protectedpagetext' => 'Jüdeer sid as for dåt beårben späred.',
 'viewsourcetext' => 'Dü koost jü kwäle foon jüdeer sid bekiike än kopiire.',
-'viewyourtext' => "Dü könst di code faan '''din feranerang''' faan detheer sidj uunluke an kopiare:",
+'viewyourtext' => "Dü könst di code faan '''din feranrang''' faan detdiar sidj uunluke an kopiare:",
 'protectedinterface' => 'Jüdeer sid önjthålt takst for ju brükerouerfläche foon e software än as späred, am masbrük tu ferhanern.',
 'editinginterface' => "'''Paase üüb:''' Üüb detdiar sidj stäänt tekst, diar faan't MediaWiki software brükt woort. Wan dü diar wat feranerst, feranerst dü di skak faan't Nuurdfresk Wikipedia.
 Wan dü wat auersaat wel, maage det mä [//translatewiki.net/wiki/Main_Page?setlang=frr Translatewiki], det as det MediaWiki lokalisiarangsprojekt.",
@@ -411,6 +412,7 @@ Jü späre wörd döör [[User:$1|$1]] ma grün "$2" inruchted.',
 Di grünj faan di administraator as: „$3“.',
 'invalidtitle-knownnamespace' => 'Ferkiard auerskraft uun di nöömrüm „$2“ an tekst „$3“',
 'invalidtitle-unknownnamespace' => 'Ferkiard auerskraft uun di ünbekäänd nöömrüm „$1“ an tekst „$2“',
+'exception-nologin' => 'Ei uunmeldet',
 
 # Virus scanner
 'virus-badscanner' => "Hiinje konfigurasjoon: ünbekånde fiirusscanner: ''$1''",
@@ -570,14 +572,14 @@ Tidwis paasuurd: $2',
 'passwordreset-emailerror-capture' => 'Detdiar E-Mail, wat oner uunwiset woort, wiar tu di onerwais, oober küd ei ufsjüürd wurd: $1',
 
 # Special:ChangeEmail
-'changeemail' => 'Feranere det E-Mail-adres',
-'changeemail-header' => 'Feranere det E-Mail-adres',
-'changeemail-text' => 'Fal detheer formulaar hialandaal ütj, am din E-Mail-adres tu feranerin. Diarför skel dü din paaswurd uundu.',
+'changeemail' => 'Feranre det E-Mail-adres',
+'changeemail-header' => 'Feranre det E-Mail-adres',
+'changeemail-text' => 'Fal detdiar formulaar hialandaal ütj, am din E-Mail-adres tu feranrin. Diarför skel dü din paaswurd uundu.',
 'changeemail-no-info' => 'Dü möist önjmälded weese am ju sid diräkt tu tu gripen.',
 'changeemail-oldemail' => 'Aktuel e-mail adres',
 'changeemail-newemail' => 'Nei e-mail adres',
 'changeemail-none' => '(niin)',
-'changeemail-submit' => 'E-mail adres feranere',
+'changeemail-submit' => 'E-mail adres feranre',
 'changeemail-cancel' => 'Ufbreeg',
 
 # Edit page toolbar
@@ -604,10 +606,10 @@ Tidwis paasuurd: $2',
 'minoredit' => 'Bloot kleenihäide wörden feränred',
 'watchthis' => 'Kiike eefter jüdeer sid',
 'savearticle' => 'Sidj seekre',
-'preview' => 'Forlök',
-'showpreview' => 'Forlök wise',
-'showlivepreview' => 'Live-forkiik',
-'showdiff' => 'Änringe wise',
+'preview' => 'Iarst ans luke',
+'showpreview' => 'Iarst ans luke',
+'showlivepreview' => 'Glik uunluke',
+'showdiff' => 'Feranrangen wise',
 'anoneditwarning' => "Dü beårbest jüdeer sid ünönjmälded. Wan dü spikerst, wård din aktuäle IP-adräs önj e fesjoonshistoori aptiikned än as deerma for åltens '''ålgemiin''' sichtboor.",
 'anonpreviewwarning' => "''Dü bast ai önjmälded. Bai t spiikern wårt din IP-adräs önj e fersjoonshistoori awtiikned.''",
 'missingsummary' => "'''Haanewising:\"' Dü heest niinj tuhuupefooting önjjääwen.
@@ -673,12 +675,12 @@ Dü koost dideere tiitel aw da ouder side [[Special:Search/{{PAGENAME}}|säke]],
 'noarticletext-nopermission' => 'Jüdeer sid önjhålt uugenblaklik nuch nån täkst.
 Dü koost dideere tiitel aw da oudre side [[Special:Search/{{PAGENAME}}|säke]],
 unti<span class="plainlinks">önj da deertuhiirende [{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} logböke säke] </span>.',
-'userpage-userdoesnotexist' => 'Dåt benjüterkonto "<nowiki>$1</nowiki>" as ai deer.
-Wees sü gödj än präif, weer dü jüdeer sid wörklik mååge/beårbe wååt.',
+'userpage-userdoesnotexist' => "Det brükerkonto ''$1'' as ei diar.
+Wel dü detdiar sidj würelk maage/bewerke?",
 'userpage-userdoesnotexist-view' => 'Benjüterkonto "$1" bestoont ai.',
 'blocked-notice-logextract' => 'Dideer benjüter as tutids spärd.
 For informasjoon füliet di leeste üttooch üt dåt benjüterspär-logbök:',
-'clearyourcache' => "'''Beaachte:''' Maage di cache faan dan browser leesag, wan dü a feranerangen sä wel.
+'clearyourcache' => "'''Beaachte:''' Maage di cache faan dan browser leesag, wan dü a feranrangen sä wel.
 * '''Firefox / Safari:''' Hual ''Shift'' bi't aktualisiarin, of trak ''Strg an F5'' of ''Strg an R'' (''⌘an R'' üüb en Mac)
 * '''Google Chrome:''' Trak ''Strg an Shift an R'' (''⌘an Shift an R'' üüb en Mac)
 * '''Internet Explorer:''' Hual ''Strg'' bi't aktualisiarin, of trak ''Strg an F5''
@@ -721,8 +723,8 @@ Wees so gud an kontroliare ales noch ans.",
 'editingcomment' => 'Beårben foon $1 (naien oufsnaas)',
 'editconflict' => 'Beårbingskonflikt: $1',
 'explainconflict' => "Hoker ööders hää detheer sidj feranert, üs dü jüst diarmä uun a gang wiarst.
-Boowen könst dü di aktuel stant sä. Oner stun din fernanerangen.
-Bluas wat '''boowen''' stäänt, woort seekert. Diaram kopiare din feranerangen boowen iin.
+Boowen könst dü di aktuel stant sä. Oner stun din fernanrangen.
+Bluas wat '''boowen''' stäänt, woort seekert. Diaram kopiare din feranrangen boowen iin.
 An do trak „{{int:savearticle}}“.",
 'yourtext' => 'Din täkst',
 'storedversion' => 'Spiikerd färsjoon',
@@ -799,8 +801,8 @@ Deer {{PLURAL:$2|mötj ai mör ås 1 apteel|mönje ai mör ås $1 apteele}} wees
 'parser-unstrip-recursion-limit' => 'Tuföl jinsidjag ferwisangen bi $1',
 
 # "Undo" feature
-'undo-success' => 'Detheer feranerang koon turag nimen wurd. 
-Luke oner, of dü det uk würelk du wel, an do seekre din feranerangen.',
+'undo-success' => 'Detdiar feranrang koon turag nimen wurd. 
+Luke oner, of dü det uk würelk du wel, an do seekre din feranrangen.',
 'undo-failure' => 'Jü änring köö ai tunintemååged wårde, deer di bedrååwede oufsnaas intwasche feränred wörd.',
 'undo-norev' => 'Jü beårbing köö ai tunintemååged wårde, deer jü ai bestoont unti sleeked wörd.',
 'undo-summary' => 'Änring $1 foon [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskusjoon]]) tunintemååged.',
@@ -926,7 +928,7 @@ Dü heest deeraw nåån tugraawe.',
 'revdelete-modify-missing' => "Bi't bewerkin faan ID $1 as wat skiaf gingen: At waant uun a dootenbeenk!",
 'revdelete-no-change' => "'''Waarskau:''' Di iindrach faan di $1, am a klook $2 hää al jodiar iinstelangen.",
 'revdelete-concurrent-change' => "Bi't bewerkin faan di iindrach di $1, am a klook $2 as wat skiaf gingen: At sjocht so ütj, üs wan hoker ööders det bewerket hää, iar dü det bewerke wulst. Luke iin uun a logbuken.",
-'revdelete-only-restricted' => "Bi't fersteegen faan di iindrach di $1, am a klook $2 as wat skiaf gingen: Dü könst di iindrach ei föör administratooren fersteeg, saner ööder iinstelangen tu feranerin.",
+'revdelete-only-restricted' => "Bi't fersteegen faan di iindrach di $1, am a klook $2 as wat skiaf gingen: Dü könst di iindrach ei föör administratooren fersteeg, saner ööder iinstelangen tu feranrin.",
 'revdelete-reason-dropdown' => "*Grünjer för't striken san miast
 ** Copyright woort ei iinhäälen
 ** Persöönelk informatsjuunen, diar näämen wat uungung",
@@ -1059,9 +1061,9 @@ A nawigatsjuun links saat ales weder turag üüb di ual stant.',
 # Preferences page
 'preferences' => 'Önjstalinge',
 'mypreferences' => 'Önjstalinge',
-'prefs-edits' => 'Taal faan feranerangen:',
+'prefs-edits' => 'Taal faan feranrangen:',
 'prefsnologin' => 'Ai önjmälded',
-'prefsnologintext' => 'Dü skel <span class="plainlinks">[{{fullurl:{{#special:UserLogin}}|returnto=$1}} uunmeldet]</span> wees, am din iinstelangen tu feranerin.',
+'prefsnologintext' => 'Dü skel <span class="plainlinks">[{{fullurl:{{#special:UserLogin}}|returnto=$1}} uunmeldet]</span> wees, am din iinstelangen tu feranrin.',
 'changepassword' => 'Pååsuurd änre',
 'prefs-skin' => 'Skak',
 'skin-preview' => 'Forlök',
@@ -1075,12 +1077,12 @@ A nawigatsjuun links saat ales weder turag üüb di ual stant.',
 'prefs-watchlist' => "Uun't uug behual",
 'prefs-watchlist-days' => "So föl daar uun't uug behual:",
 'prefs-watchlist-days-max' => 'Ei muar üs {{PLURAL:$1|ään dai|$1 daar}}',
-'prefs-watchlist-edits' => 'Ei muar feranerangen üs:',
+'prefs-watchlist-edits' => 'Ei muar feranrangen üs:',
 'prefs-watchlist-edits-max' => 'Ai mör as 1000',
 'prefs-watchlist-token' => "Token för uun't uug behualen:",
 'prefs-misc' => 'Dit än dat',
 'prefs-resetpass' => 'Pååsuurd änre',
-'prefs-changeemail' => 'Feranere det E-Mail-adres',
+'prefs-changeemail' => 'Feranre det E-Mail-adres',
 'prefs-setemail' => 'E-Mail-adres fäästlei:',
 'prefs-email' => 'E-Mail iinstelangen',
 'prefs-rendering' => 'Skak',
@@ -1095,10 +1097,10 @@ A nawigatsjuun links saat ales weder turag üüb di ual stant.',
 'resultsperpage' => 'So fölsis komt det föör per sidj:',
 'stub-threshold' => 'Formatiarang faan links <a href="#" class="stub">för letj sidjen</a> (uun Byte):',
 'stub-threshold-disabled' => 'Ufsteld',
-'recentchangesdays' => 'Soföl daar skel a „leetst feranerangen“ uunwise:',
+'recentchangesdays' => 'Soföl daar skel a „leetst feranrangen“ uunwise:',
 'recentchangesdays-max' => 'Ei muar üs {{PLURAL:$1|ään dai|$1 daar}}',
-'recentchangescount' => 'Soföl feranerangen skel uunwiset wurd:',
-'prefs-help-recentchangescount' => 'Det san a leetst feranerangen, wersjuunen an logbuken.',
+'recentchangescount' => 'Soföl feranrangen skel uunwiset wurd:',
+'prefs-help-recentchangescount' => 'Det san a leetst feranrangen, wersjuunen an logbuken.',
 'prefs-help-watchlist-token' => "Wan dü detdiar fial mä en hiamelken code ütjfalst, woort en RSS-feed iinracht. Arken mä didiar code koon do sä, wat dü uun't uug behual wel. Diaram skul hi ei so ianfach wees, nem dach didiar: $1",
 'savedprefs' => 'Din iinstelangen san seekert wurden.',
 'timezonelegend' => 'Tidjsoon:',
@@ -1178,45 +1180,45 @@ Do san jo ual iinstelangen wech.',
 'userrights-lookup-user' => 'Brükersköölen bewerke',
 'userrights-user-editname' => 'Brükernööm:',
 'editusergroup' => 'Brükersköölen bewerke',
-'editinguser' => "Brükerrochten faan '''[[User:$1|$1]]''' $2 feranere",
+'editinguser' => "Brükerrochten faan '''[[User:$1|$1]]''' $2 feranre",
 'userrights-editusergroup' => 'Lasmootskap tu brükersköölen bewerke',
 'saveusergroups' => 'Brükersköölen seekre',
 'userrights-groupsmember' => 'Lasmoot faan:',
 'userrights-groupsmember-auto' => 'Faan salew lasmoot faan:',
-'userrights-groups-help' => 'Dü könst feranere, tu hün brükerskööl di brüker hiirt:
+'userrights-groups-help' => 'Dü könst feranre, tu hün brükerskööl di brüker hiirt:
 * En uunkrüsagt kasche ment, di brüker hiirt diartu.
 * En ei uunkrüsagt kasche ment, di brüker hiart ei diartu.
 * En * ment, dat dü det brükerrocht ei weder wechnem könst (of amkiard).',
 'userrights-reason' => 'Grünj:',
-'userrights-no-interwiki' => 'Dü heest ei det rocht, am brükerrochten uun ööder wikis tu feranerin.',
+'userrights-no-interwiki' => 'Dü heest ei det rocht, am brükerrochten uun ööder wikis tu feranrin.',
 'userrights-nodatabase' => 'Det dootenbeenk $1 jaft at ei, tumanst ei lokaal.',
-'userrights-nologin' => 'Dü mutst di mä en administraator-brükerkonto [[Special:UserLogin|uunmelde]], wan dü brükerrochten feranere wel.',
-'userrights-notallowed' => 'Dü heest ei det rocht, am brükerrochten tu feranerin.',
-'userrights-changeable-col' => 'Lasmootskapen, diar dü feranere könst',
-'userrights-unchangeable-col' => 'Lasmootskapen, diar dü ei feranere könst',
+'userrights-nologin' => 'Dü mutst di mä en administraator-brükerkonto [[Special:UserLogin|uunmelde]], wan dü brükerrochten feranre wel.',
+'userrights-notallowed' => 'Dü heest ei det rocht, am brükerrochten tu feranrin.',
+'userrights-changeable-col' => 'Lasmootskapen, diar dü feranre könst',
+'userrights-unchangeable-col' => 'Lasmootskapen, diar dü ei feranre könst',
 
 # Groups
 'group' => 'Skööl:',
-'group-user' => 'Brükere',
-'group-autoconfirmed' => 'Registriirde brükere',
+'group-user' => 'Brükern',
+'group-autoconfirmed' => 'Registriaret brükern',
 'group-bot' => 'Bots',
-'group-sysop' => 'Administratoore',
-'group-bureaucrat' => 'Bürokraate',
+'group-sysop' => 'Administratooren',
+'group-bureaucrat' => 'Bürokraaten',
 'group-suppress' => 'Oversighter',
 'group-all' => '(aaltumaal)',
 
 'group-user-member' => '{{GENDER:$1|brüker}}',
-'group-autoconfirmed-member' => '{{GENDER:$1|gudkäänd brüker}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|registriaret brüker}}',
 'group-bot-member' => '{{GENDER:$1|bot}}',
 'group-sysop-member' => '{{GENDER:$1|administraator}}',
 'group-bureaucrat-member' => '{{GENDER:$1|bürokraat}}',
 'group-suppress-member' => '{{GENDER:$1|oversighter}}',
 
-'grouppage-user' => '{{ns:project}}:Brükere',
-'grouppage-autoconfirmed' => '{{ns:project}}:Registriirde brükere',
+'grouppage-user' => '{{ns:project}}:Brükern',
+'grouppage-autoconfirmed' => '{{ns:project}}:Registriaret brükern',
 'grouppage-bot' => '{{ns:project}}:Bots',
-'grouppage-sysop' => '{{ns:project}}:Administratoore',
-'grouppage-bureaucrat' => '{{ns:project}}:Bürokraate',
+'grouppage-sysop' => '{{ns:project}}:Administratooren',
+'grouppage-bureaucrat' => '{{ns:project}}:Bürokraaten',
 'grouppage-suppress' => '{{ns:project}}:Oversighter',
 
 # Rights
@@ -1225,7 +1227,7 @@ Do san jo ual iinstelangen wech.',
 'right-createpage' => 'Sidjen maage (saner diskusjuunssidjen)',
 'right-createtalk' => 'Diskusjuunssidjen maage',
 'right-createaccount' => 'Brükerkonto iinracht',
-'right-minoredit' => 'Feranerangen üs letj kääntiakne.',
+'right-minoredit' => 'Feranrangen üs letj kääntiakne',
 'right-move' => 'Sidjen fersküüw',
 'right-move-subpages' => 'Sidjen mä onersidjen fersküüw',
 'right-move-rootuserpages' => 'Hood-brükersidj fersküüw',
@@ -1239,16 +1241,18 @@ Do san jo ual iinstelangen wech.',
 'right-purge' => 'Sidjen-cache leesag maage saner efterfraagin',
 'right-autoconfirmed' => 'Hualew-seekert sidjen bewerke',
 'right-bot' => 'Automatisiaret bewerke',
-'right-nominornewtalk' => 'Letj feranerangen üüb diskusjuunssidjen wurd ei üs „nei noorachten“ uunwiset.',
+'right-nominornewtalk' => 'Letj feranrangen üüb diskusjuunssidjen wurd ei üs „nei noorachten“ uunwiset.',
 'right-apihighlimits' => 'Huuger taalen für API-uunfraagen brük',
 'right-writeapi' => 'Write-API brük',
 'right-delete' => 'Sidjen strik',
 'right-bigdelete' => 'Sidjen mä föl wersjuunen strik',
 'right-deleterevision' => 'Enkelt wersjuunen faan en sidj strik of turaghaale',
+'right-browsearchive' => 'Sjük stregen sidjen',
 'right-sendemail' => 'E-mails tu oudere brükere schake',
 
 # User rights log
 'rightslog' => 'Ruchte-logbök',
+'rightsnone' => '(-)',
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => 'jüdeer sid leese',
@@ -1256,29 +1260,34 @@ Do san jo ual iinstelangen wech.',
 'action-createpage' => 'side mååge',
 'action-createtalk' => 'diskusjoonside mååge',
 'action-createaccount' => 'jüdeer brükerkonto mååge',
-'action-minoredit' => 'detdiar feranerang üs letj kääntiakne',
+'action-minoredit' => 'detdiar feranrang üs letj kääntiakne',
 'action-move' => 'jüdeer sid ferschüwe',
 'action-move-subpages' => 'jüdeer sid än unerside ferschüwe',
+'action-move-rootuserpages' => 'hood-brükersidj fersküüw',
 'action-movefile' => 'jüdeer sid ferschüwe',
+'action-delete' => 'detdiar sidj strik',
+'action-browsearchive' => 'sjük stregen sidjen',
+'action-undelete' => 'detdiar sidj weder iinstel',
+'action-sendemail' => 'e-mails sjüür',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|änring|änringe}}',
 'recentchanges' => 'Leeste änringe',
 'recentchanges-legend' => 'Wis-opsjoone',
-'recentchanges-summary' => "Üüb detheer sidj könst dü a leetst feranerangen faan't Nuurdfresk Wikipedia ferfulge.",
+'recentchanges-summary' => "Üüb detdiar sidj könst dü a leetst feranrangen faan't Nuurdfresk Wikipedia ferfulge.",
 'recentchanges-feed-description' => 'Ferfülie ma dåtheer feed da leeste änringe önj {{SITENAME}}.',
 'recentchanges-label-newpage' => 'Nei sidj uunlaanj',
-'recentchanges-label-minor' => 'Letj feranerang',
-'recentchanges-label-bot' => 'Feranerang faan en bot',
-'recentchanges-label-unpatrolled' => 'Detheer feranerang as noch ei efterluket wurden',
+'recentchanges-label-minor' => 'Letj feranrang',
+'recentchanges-label-bot' => 'Feranrang faan en bot',
+'recentchanges-label-unpatrolled' => 'Detdiar feranrang as noch ei efterluket wurden',
 'rcnote' => "Wised {{PLURAL:\$1|wård '''1''' änring|wårde da leeste '''\$''' änringe}} {{PLURAL:\$2|foon e leest däi|foon da leeste '''\$2''' deege}}. Stånd: \$4, am e klook \$5.",
-'rcnotefrom' => "Diar wurd a feranerangen sant '''$2'''uunwiset (ei muar üs '''$1''' feranerangen).",
+'rcnotefrom' => "Diar wurd a feranrangen sant '''$2'''uunwiset (ei muar üs '''$1''' feranrangen).",
 'rclistfrom' => 'Bloot änringe sunt $1 wise.',
 'rcshowhideminor' => 'Latje änringe $1',
 'rcshowhidebots' => 'Bots $1',
 'rcshowhideliu' => 'Önjmäldede brükere $1',
 'rcshowhideanons' => 'Anonymen brüker $1',
-'rcshowhidepatr' => '$1 efterluket feranerangen',
+'rcshowhidepatr' => '$1 efterluket feranrangen',
 'rcshowhidemine' => 'Äine tujeefte $1',
 'rclinks' => 'Wis da leeste $1 änringe foon da leeste $2 deege.<br />$3',
 'diff' => 'ferschääl',
@@ -1287,29 +1296,48 @@ Do san jo ual iinstelangen wech.',
 'show' => 'önjbläne',
 'minoreditletter' => 'L',
 'newpageletter' => 'N',
-'boteditletter' => 'b',
+'boteditletter' => 'B',
 'rc-enhanced-expand' => 'Detaile wise (JavaScript as nüsi)',
 'rc-enhanced-hide' => 'Detaile fersteege',
+'rc-old-title' => 'tuiarst maaget üs „$1“',
 
 # Recent changes linked
-'recentchangeslinked' => 'Änringe bai ferlinkte side',
-'recentchangeslinked-toolbox' => 'Feranerangen bi ferlinkt sidjen',
-'recentchangeslinked-title' => 'Änringe bai side, da foon "$1" ferlinked san',
-'recentchangeslinked-noresult' => 'Uun detdiar tidj san jo ferwiset sidjen ei feranert wurden.',
+'recentchangeslinked' => 'Feranrangen bi ferlinket sidjen',
+'recentchangeslinked-feed' => 'Feranrangen bi ferlinket sidjen',
+'recentchangeslinked-toolbox' => 'Feranrangen bi ferlinket sidjen',
+'recentchangeslinked-title' => 'Feranrangen bi sidjen, diar faan "$1" ferlinket san',
+'recentchangeslinked-noresult' => 'Uun detdiar tidj san jo ferlinket sidjen ei feranert wurden.',
 'recentchangeslinked-summary' => "Jüdeer speetsjoolsid listet da leeste änringe bai da ferlinked side ap (btw. bai kategoriie tu da lasmoote foon jüdeer kategorii). Side aw din [[Special:Watchlist|eefterkiikliste]] san '''fåt''' deerstald.",
 'recentchangeslinked-page' => 'Sid:',
 'recentchangeslinked-to' => 'Wis änringe aw side, da heerjurt ferlinke',
 
 # Upload
 'upload' => 'Huuchschake',
+'uploadbtn' => 'Datei huuchsjüür',
 'uploadnologin' => 'Ai önjmälded',
 'uploadnologintext' => 'Dü möist [[Special:UserLogin|önjmälded weese]], am dat dü dootäie huuchsiinje koost.',
 'upload_directory_missing' => 'Dåt aplees-fertiiknis ($1) breecht än köö ai foon di wäbsärwer mååged wårde.',
 'upload_directory_read_only' => 'Dåt aplees-fertiiknis ($1) koon ai foon e wäbsärver beschraawen wårde.',
 'uploaderror' => 'Aplees-fäägel',
+'uploadlog' => 'datei logbuk',
 'uploadlogpage' => 'Dåtäi-logbök',
 'filedesc' => 'Beskriiwang',
+'fileuploadsummary' => 'Beskriiwang',
+'filesource' => 'Kwel',
+'uploadedfiles' => 'Huuchsjüürd dateien',
 'uploadedimage' => 'heet "[[$1]]" huuchsånd',
+'watchthisupload' => 'Luke efter detdiar datei',
+
+'upload-file-error' => 'Diar as wat skiaf gingen',
+
+# File backend
+'backend-fail-stream' => 'Det datei $1 küd ei auerdraanj wurd.',
+'backend-fail-delete' => 'Det datei $1 küd ei stregen wurd.',
+'backend-fail-store' => 'Det datei $1 küd ei oner $2 seekert wurd.',
+'backend-fail-copy' => 'Det datei $1 küd ei efter $2 kopiaret wurd.',
+'backend-fail-move' => 'Det datei $1 küd ei efter $2 fersköwen wurd.',
+'backend-fail-read' => 'Det datei $1 küd ei leesen wurd.',
+'backend-fail-create' => 'Det datei $1 küd ei seekert wurd.',
 
 'license' => 'Lisens:',
 'license-header' => 'Lisens',
@@ -1342,7 +1370,7 @@ Det beskriiwang faan't [$2 beskriiwangssidj] woort oner uunwiset.",
 'randompage' => 'Tufali sid',
 
 # Statistics
-'statistics' => 'Statistiik',
+'statistics' => 'Statistik',
 
 'disambiguationspage' => 'Template:Muardüüdag artiikel',
 
@@ -1772,11 +1800,15 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 'monthsall' => 'åle',
 'limitall' => 'åle',
 
+# Table pager
+'ascending_abbrev' => 'ap',
+'descending_abbrev' => 'deel',
+
 # Auto-summaries
-'autosumm-blank' => 'Det sidj wurd leesagd.',
-'autosumm-replace' => 'Di iinhual wurd ütjbütjet mä "$1"',
+'autosumm-blank' => 'Det sidj as leesag maaget wurden.',
+'autosumm-replace' => 'Di tekst as ütjbütjet wurden mä "$1"',
 'autoredircomment' => 'Sidj tu [[$1]] widjerfeerd',
-'autosumm-new' => 'Det sidj wurd nei uunlaanj: "$1"',
+'autosumm-new' => 'Det sidj as nei uunlaanj wurden: "$1"',
 
 # Watchlist editing tools
 'watchlisttools-view' => 'Eefterkiiklist: änringe',
@@ -1811,6 +1843,17 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 'htmlform-selectorother-other' => 'Oudere',
 
 # New logging system
+'logentry-delete-delete' => '$1 hää det sidj $3 stregen',
+'logentry-delete-restore' => '$1 hää det sidj $3 weder iinsteld',
+'logentry-delete-event' => '$1 hää det uunlukin feranert faan {{PLURAL:$5|en logbuk iindrach|$5 logbuk iindracher}} üüb $3: $4',
+'logentry-delete-revision' => '$1 hää det uunlukin feranert faan {{PLURAL:$5|ian wersjuun|$5 wersjuunen}} faan det sidj $3: $4',
+'logentry-delete-event-legacy' => '$1 hää det uunlukin feranert faan logbuk iindracher üüb $3',
+'logentry-delete-revision-legacy' => '$1 hää det uunlukin feranert faan wersjuunen faan det sidj $3',
+'logentry-suppress-delete' => '$1 hää det sidj $3 wechtrakt',
+'logentry-suppress-event' => '$1 hää stalswigin det uunlukin feranert faan {{PLURAL:$5|en logbuk iindrach|$5 logbuk iindracher}} üüb $3: $4',
+'logentry-suppress-revision' => '$1 hää stalswigin det uunlukin feranert faan {{PLURAL:$5|ian wersjuun|$5 wersjuunen}} faan det sidj $3: $4',
+'logentry-suppress-event-legacy' => '$1 hää stalswigin det uunlukin fernanert faan logbuk iindracher üüb $3',
+'logentry-suppress-revision-legacy' => '$1 hää stalswigin det uunlukin feranert faan wersjuunen faan det sidj $3',
 'revdelete-uname-hid' => 'brükernoome ferstäägen',
 'revdelete-uname-unhid' => 'brükernoome frijääwen',
 'revdelete-restricted' => 'gränse jüle uk for administratoore',
@@ -1820,4 +1863,15 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 'logentry-move-move_redir' => '$1 hää det sidj $3 efter $4 fersköwen an diarbi en widjerfeerang auerskrewen.',
 'logentry-move-move_redir-noredirect' => '$1 hää det sidj $3 efter $4 fersköwen an diarbi en widjerfeerang auerskrewen saner salew en widjerfeerang uuntuleien.',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|sekund|sekunden}}',
+'duration-minutes' => '$1 {{PLURAL:$1|minüüt|minüüten}}',
+'duration-hours' => '$1 {{PLURAL:$1|stünj|stünjen}}',
+'duration-days' => '$1 {{PLURAL:$1|dai|daar}}',
+'duration-weeks' => '$1 {{PLURAL:$1|weg|wegen}}',
+'duration-years' => '$1 {{PLURAL:$1|juar|juaren}}',
+'duration-decades' => '$1 {{PLURAL:$1|juartjiint|juartjiinten}}',
+'duration-centuries' => '$1 {{PLURAL:$1|juarhunert|juarhunerten}}',
+'duration-millennia' => '$1 {{PLURAL:$1|juardüüsen|juardüüsenen}}',
+
 );
index e4f32ab..2fe2c25 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Friulian (Furlan)
+/** Friulian (furlan)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 66f4e7b..9629923 100644 (file)
@@ -225,29 +225,29 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'Subliñar as ligazóns:',
 'tog-justify' => 'Xustificar os parágrafos',
-'tog-hideminor' => 'Agochar as edicións pequenas na páxina de cambios recentes',
+'tog-hideminor' => 'Agochar as edicións pequenas nos cambios recentes',
 'tog-hidepatrolled' => 'Agochar as edicións patrulladas nos cambios recentes',
 'tog-newpageshidepatrolled' => 'Agochar as páxinas revisadas da lista de páxinas novas',
 'tog-extendwatchlist' => 'Expandir a lista de vixilancia para mostrar todos os cambios e non só os máis recentes',
-'tog-usenewrc' => 'Usar os cambios recentes avanzados (cómpre JavaScript)',
+'tog-usenewrc' => 'Agrupar as modificacións por páxina nos cambios recentes e na lista de vixilancia (cómpre JavaScript)',
 'tog-numberheadings' => 'Numerar automaticamente as cabeceiras',
 'tog-showtoolbar' => 'Mostrar a caixa de ferramentas de edición (cómpre JavaScript)',
 'tog-editondblclick' => 'Editar as páxinas logo de facer dobre clic (cómpre JavaScript)',
 'tog-editsection' => 'Permitir a edición de seccións mediante as ligazóns "[editar]"',
 'tog-editsectiononrightclick' => 'Permitir a edición de seccións premendo co botón dereito nos títulos das seccións (cómpre JavaScript)',
-'tog-showtoc' => 'Mostrar o índice (para páxinas con máis de tres cabeceiras)',
+'tog-showtoc' => 'Mostrar o índice (para as páxinas con máis de tres cabeceiras)',
 'tog-rememberpassword' => 'Lembrar o meu contrasinal neste navegador (ata $1 {{PLURAL:$1|día|días}})',
-'tog-watchcreations' => 'Engadir as páxinas que cree á miña lista de vixilancia',
-'tog-watchdefault' => 'Engadir as páxinas que edite á miña lista de vixilancia',
-'tog-watchmoves' => 'Engadir as páxinas que mova á miña lista de vixilancia',
-'tog-watchdeletion' => 'Engadir as páxinas que borre á miña lista de vixilancia',
+'tog-watchcreations' => 'Engadir as páxinas que cree e os ficheiros que cargue á miña lista de vixilancia',
+'tog-watchdefault' => 'Engadir as páxinas e os ficheiros que edite á miña lista de vixilancia',
+'tog-watchmoves' => 'Engadir as páxinas e os ficheiros que mova á miña lista de vixilancia',
+'tog-watchdeletion' => 'Engadir as páxinas e os ficheiros que borre á miña lista de vixilancia',
 'tog-minordefault' => 'Marcar por omisión todas as edicións como pequenas',
-'tog-previewontop' => 'Mostrar o botón de vista previa antes da caixa de edición e non despois dela',
+'tog-previewontop' => 'Mostrar a vista previa antes da caixa de edición',
 'tog-previewonfirst' => 'Mostrar a vista previa na primeira edición',
 'tog-nocache' => 'Desactivar a memoria caché do navegador',
-'tog-enotifwatchlistpages' => 'Enviádeme unha mensaxe de correo electrónico cando unha páxina da miña lista de vixilancia cambie',
+'tog-enotifwatchlistpages' => 'Enviádeme unha mensaxe de correo electrónico cando unha páxina ou un ficheiro da miña lista de vixilancia sufra un cambio',
 'tog-enotifusertalkpages' => 'Enviádeme unha mensaxe de correo electrónico cando a miña páxina de conversa cambie',
-'tog-enotifminoredits' => 'Enviádeme tamén unha mensaxe de correo electrónico cando se produzan edicións pequenas nas páxinas',
+'tog-enotifminoredits' => 'Enviádeme tamén unha mensaxe de correo electrónico cando se produzan edicións pequenas nas páxinas ou nos ficheiros',
 'tog-enotifrevealaddr' => 'Revelar o meu enderezo de correo electrónico nos correos de notificación',
 'tog-shownumberswatching' => 'Mostrar o número de usuarios que están a vixiar',
 'tog-oldsig' => 'Sinatura actual:',
@@ -264,8 +264,8 @@ $messages = array(
 'tog-watchlisthideanons' => 'Agochar as edicións dos usuarios anónimos na lista de vixilancia',
 'tog-watchlisthidepatrolled' => 'Agochar as edicións patrulladas na lista de vixilancia',
 'tog-nolangconversion' => 'Desactivar a conversión de variantes',
-'tog-ccmeonemails' => 'Enviar ao meu enderezo copia das mensaxes que envíe a outros usuarios',
-'tog-diffonly' => 'Non mostrar o contido da páxina debaixo das diferenzas entre edicións (dif)',
+'tog-ccmeonemails' => 'Enviádeme ao meu enderezo unha copia das mensaxes de correo electrónico que envíe a outros usuarios',
+'tog-diffonly' => 'Non mostrar o contido da páxina debaixo das diferenzas entre edicións',
 'tog-showhiddencats' => 'Mostrar as categorías ocultas',
 'tog-noconvertlink' => 'Desactivar a conversión dos títulos de ligazón',
 'tog-norollbackdiff' => 'Omitir as diferenzas despois de levar a cabo unha reversión de edicións',
@@ -580,6 +580,8 @@ Por favor, comuníquello a un [[Special:ListUsers/sysop|administrador]] tomando
 'cannotdelete' => 'Non se puido borrar a páxina ou imaxe "$1".
 Se cadra, xa a borrou alguén.',
 'cannotdelete-title' => 'Non se pode borrar a páxina "$1"',
+'delete-hook-aborted' => 'O borrado foi abortado polo asociador.
+Este non deu ningunha explicación.',
 'badtitle' => 'Título incorrecto',
 'badtitletext' => 'O título da páxina pedida non era válido, estaba baleiro ou proviña dunha ligazón interlingua ou interwiki incorrecta.
 Pode conter un ou máis caracteres dos que non se poden empregar nos títulos.',
@@ -615,6 +617,8 @@ O motivo achegado é ''$2''.",
 O administrador que bloqueou o repositorio achegou este motivo: "$3".',
 'invalidtitle-knownnamespace' => 'Título inválido co espazo de nomes "$2" e o texto "$3"',
 'invalidtitle-unknownnamespace' => 'Título inválido cun número de espazo de nomes, $1, descoñecido e o texto "$2"',
+'exception-nologin' => 'Non accedeu ao sistema',
+'exception-nologin-text' => 'Esta páxina ou acción necesita que vostede acceda ao sistema neste wiki.',
 
 # Virus scanner
 'virus-badscanner' => "Configuración errónea: escáner de virus descoñecido: ''$1''",
@@ -1303,7 +1307,7 @@ Note que os seus índices do contido de {{SITENAME}} poden estar desactualizados
 'prefs-rc' => 'Cambios recentes',
 'prefs-watchlist' => 'Lista de vixilancia',
 'prefs-watchlist-days' => 'Número de días que mostrar na lista de vixilancia:',
-'prefs-watchlist-days-max' => 'Máximo $1 {{PLURAL:$1|día|días}}',
+'prefs-watchlist-days-max' => 'Máximo: $1 {{PLURAL:$1|día|días}}',
 'prefs-watchlist-edits' => 'Número máximo de edicións que mostrar na lista de vixilancia completa:',
 'prefs-watchlist-edits-max' => 'Número máximo: 1000',
 'prefs-watchlist-token' => 'Pase para a lista de vixilancia:',
@@ -1325,7 +1329,7 @@ Note que os seus índices do contido de {{SITENAME}} poden estar desactualizados
 'stub-threshold' => 'Límite superior para o formato de <a href="#" class="stub">ligazóns de bosquexo</a> (bytes):',
 'stub-threshold-disabled' => 'Desactivado',
 'recentchangesdays' => 'Número de días a mostrar nos cambios recentes:',
-'recentchangesdays-max' => 'Máximo $1 {{PLURAL:$1|día|días}}',
+'recentchangesdays-max' => 'Máximo: $1 {{PLURAL:$1|día|días}}',
 'recentchangescount' => 'Número de edicións a mostrar por defecto:',
 'prefs-help-recentchangescount' => 'Isto inclúe os cambios recentes, os historiais e mais os rexistros.',
 'prefs-help-watchlist-token' => 'Ao encher este campo cunha clave secreta xerarase unha fonte de novas RSS para a súa lista de vixilancia.
@@ -1916,7 +1920,7 @@ Poida que queira editar a descrición da [$2 páxina de descrición do ficheiro]
 '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 */',
 
 # File reversion
-'filerevert' => 'Desfacer $1',
+'filerevert' => 'Reverter $1',
 'filerevert-legend' => 'Reverter o ficheiro',
 'filerevert-intro' => 'Está a piques de reverter o ficheiro "\'\'\'[[Media:$1|$1]]\'\'\'" ata a [$4 versión do $2 ás $3].',
 'filerevert-comment' => 'Motivo:',
@@ -2582,7 +2586,7 @@ Olle a [[Special:BlockList|lista de bloqueos]] para revisalo.',
 'unblockip' => 'Desbloquear o usuario',
 'unblockiptext' => 'Use o seguinte formulario para dar de novo acceso de escritura a un enderezo IP ou usuario que estea bloqueado.',
 'ipusubmit' => 'Retirar este bloqueo',
-'unblocked' => '"[[User:$1|$1]]" foi desbloqueado',
+'unblocked' => '[[User:$1|$1]] foi {{GENDER:$1|desbloqueado|desbloqueada}}',
 'unblocked-range' => '$1 foi desbloqueado',
 'unblocked-id' => 'O bloqueo $1 foi eliminado',
 'blocklist' => 'Usuarios bloqueados',
@@ -2795,7 +2799,7 @@ No último caso, pode usar tamén unha ligazón, por exemplo [[{{#Special:Export
 'export-pagelinks' => 'Engadir as páxinas ligadas a unha profundidade de:',
 
 # Namespace 8 related
-'allmessages' => 'Todas as mensaxes do sistema',
+'allmessages' => 'Mensaxes do sistema',
 'allmessagesname' => 'Nome',
 'allmessagesdefault' => 'Texto predeterminado',
 'allmessagescurrent' => 'Texto actual',
@@ -3900,6 +3904,8 @@ En caso contrario, pode empregar o formulario sinxelo inferior. O seu comentario
 'api-error-empty-file' => 'O ficheiro que enviou estaba baleiro.',
 'api-error-emptypage' => 'Non está permitida a creación de páxinas novas que estean baleiras.',
 'api-error-fetchfileerror' => 'Erro interno: Houbo un problema ao buscar o ficheiro.',
+'api-error-fileexists-forbidden' => 'Xa existe un ficheiro co nome "$1". Non se pode sobrescribir.',
+'api-error-fileexists-shared-forbidden' => 'Xa existe un ficheiro co nome "$1" no repositorio de ficheiros compartidos. Non se pode sobrescribir.',
 'api-error-file-too-large' => 'O ficheiro que enviou era grande de máis.',
 'api-error-filename-tooshort' => 'O nome do ficheiro é curto de máis.',
 'api-error-filetype-banned' => 'Este tipo de ficheiro está prohibido.',
index 69f8b78..94fb929 100644 (file)
@@ -1434,7 +1434,7 @@ Des cha nimmi ruckgängig gmacht wäre.',
 'nchanges' => '$1 {{PLURAL:$1|Änderig|Änderige}}',
 'recentchanges' => 'Letschti Änderige',
 'recentchanges-legend' => 'Optione vu dr Aazeig',
-'recentchanges-summary' => 'Uff däre Syte chönne Si die letschte Änderige in däm Wiki aaluege.',
+'recentchanges-summary' => 'Uf däre Syte chasch di letschte Änderige in däm Wiki aaluege.',
 'recentchanges-feed-description' => 'Di letschten Änderige vo {{SITENAME}} i däm Feed abonniere.',
 'recentchanges-label-newpage' => 'Die Bearbeitig het e neji Syte aagleit',
 'recentchanges-label-minor' => 'Des isch e chleini Änderig',
index f6d58d5..0bd6727 100644 (file)
@@ -154,7 +154,7 @@ $messages = array(
 'tog-hidepatrolled' => 'હાલના સલામતી માટે કરવામાં આવેલાં થયેલા ફેરફારો છુપાવો.',
 'tog-newpageshidepatrolled' => 'નવાં પાનાંની યાદીમાંથી દેખરેખ હેઠળનાં પાનાં છુપાવો',
 'tog-extendwatchlist' => 'ધ્યાનસૂચિને વિસ્તૃત કરો જેથી,ફક્ત તાજેતરનાજ નહીં, બધા આનુષાંગિક ફેરફારો જોઇ શકાય',
-'tog-usenewrc' => 'તાજેતરનાં વર્ધિત ફેરફારો (જાવાસ્ક્રીપ્ટ જરૂરી)',
+'tog-usenewrc' => 'તાજેતરનાં વર્ધિત ફેરફારો વાપરો(જાવાસ્ક્રીપ્ટ જરૂરી)',
 'tog-numberheadings' => 'મથાળાંઓને આપો-આપ ક્રમ (ઑટો નંબર) આપો',
 'tog-showtoolbar' => 'ફેરફારો માટેનો ટૂલબાર બતાવો (જાવા સ્ક્રિપ્ટ)',
 'tog-editondblclick' => 'ડબલ ક્લિક દ્વારા ફેરફાર કરો (જાવાસ્ક્રિપ્ટ જરૂરી)',
@@ -176,7 +176,7 @@ $messages = array(
 'tog-enotifrevealaddr' => 'નોટીફીકેશનના ઇમેલમાં મારૂ ઇમેલ એડ્રેસ બતાવો',
 'tog-shownumberswatching' => 'ધ્યાનમાં રાખતા સભ્યોની સંખ્યા બતાવો',
 'tog-oldsig' => 'હાલના હસ્તાક્ષર',
-'tog-fancysig' => 'સà«\8dવાàª\9aાલિત àª\95ડà«\80 àªµàª\97રનà«\80 (àª\95ાàª\9aà«\80) àª¸àª¹à«\80',
+'tog-fancysig' => 'હસà«\8dતાàª\95à«\8dષરનà«\8b àªµàª¿àª\95િલàª\96ાણ àª¤àª°à«\80àª\95à«\87 àª\89પયà«\8bàª\97 àª\95રà«\8b (સà«\8dવàª\9aાલિત àª\95ડà«\80 àªµàª\97ર)',
 'tog-externaleditor' => 'બીજું એડીટર વાપરો. (ફક્ત એકસપર્ટ માટે, તમારા કમ્પ્યુટરમાં સેટીંગ્સ બદલવા પડશે. [//www.mediawiki.org/wiki/Manual:External_editors More information.])',
 'tog-externaldiff' => 'Use external diff by default (for experts only, needs special settings on your computer. [//www.mediawiki.org/wiki/Manual:External_editors More information.])',
 'tog-showjumplinks' => "''આના પર જાવ'' કડીને સક્રીય કરો.",
@@ -841,7 +841,7 @@ $2
 'updated' => '(સંવર્ધીત)',
 'note' => "'''નોંધ:'''",
 'previewnote' => "'''આ ફક્ત પૂર્વાવલોકન છે;'''
-ફેરફારો હજુ સાચવવામાં નથી આવ્યા!",
+તમારા àª«à«\87રફારà«\8b àª¹àª\9cà«\81 àª¸àª¾àª\9aવવામાàª\82 àª¨àª¥à«\80 àª\86વà«\8dયા!",
 'previewconflict' => 'જો તમે આ પાનું સાચવશો તો આ પ્રિવ્યુમાં દેખાય છે તેવું સચવાશે.',
 'session_fail_preview' => "'''અફસોસ છે! સત્ર માહિતી ખોઇ દેવાને કારણે અમે તમારું કાર્ય સાચવી ન શક્યાં.'''
 કૃપયા ફરી પ્રયત્ન કરો.
@@ -868,7 +868,7 @@ $2
 'yourtext' => 'તમારું લખાણ',
 'storedversion' => 'રક્ષિત પુનરાવર્તન',
 'nonunicodebrowser' => "'''ચેતવણી: તમારું બ્રાઉઝર યુનિકોડ ઉકેલવા સક્ષમ નથી.'''
-àª\85હà«\80àª\82 àª¤àª®à«\87 àª¸à«\81રàª\95à«\8dષà«\80ત àª°à«\80તà«\87 àª«à«\87રફરà«\8b àª¨àª¹à«\80àª\82 àª\95રà«\80 àª¶àª\95à«\8b: ASCII àª¸àª¿àªµàª¾àª¯àª¨àª¾ àª\85àª\95à«\8dષરà«\8b àª«à«\87રફાર ચોકઠામાં હેક્સાડેસિમલ સ્વરૂપે દેખાશે.",
+àª\85હà«\80àª\82 àª¤àª®à«\87 àª¸à«\81રàª\95à«\8dષિત àª°à«\80તà«\87 àª«à«\87રફારà«\8b àª¨àª¹à«\80àª\82 àª\95રà«\80 àª¶àª\95à«\8b: ASCII àª¸àª¿àªµàª¾àª¯àª¨àª¾ àª\85àª\95à«\8dષરà«\8b àª¸àª\82પાદન ચોકઠામાં હેક્સાડેસિમલ સ્વરૂપે દેખાશે.",
 'editingold' => "'''ચેતવણી: તમે કાલાતિત ફેરફારો ને બદલી રહ્યાં છો.'''
 જો તમે તેને સાચવશો , વચમાં થયેલ ફેરફારો સાચવી ન શકાય.",
 'yourdiff' => 'ભેદ',
@@ -890,9 +890,9 @@ $2
 તમારા સંદર્ભ માટે તાજેતરની લોગ યાદિ આપી છે:",
 'semiprotectedpagewarning' => "'''નોંધ : આ પાના પર સંરક્ષણ વિકલ્પ સક્રીય છે અને માત્ર પ્રબંધકો જ આમાં ફેરફાર કરી શકે.'''
 તમારા સંદર્ભ માટે તાજેતરની લોગ યાદિ આપી છે:",
-'cascadeprotectedwarning' => "'''àª\9aà«\87તવણà«\80:''' àª\86 àªªàª¾àª¨à«\81àª\82 àª¸àª\82રàª\95à«\8dષà«\80ત àª\9bà«\87.  àªªà«\8dરબàª\82ધન àª\85ધિàª\95ાર àª§àª°àª¾àªµàª¤àª¾ àª¸àª­à«\8dયà«\8bàª\9c àª\86માàª\82 àª«à«\87રફાર àª\95રà«\80 àª¶àª\95à«\87 àª\9bà«\87. àª\86 àªªàª¾àª¨àª¾àª¨à«\87 àª¨à«\80àª\9aà«\87ના àªªàª\97થિયામય àª¸àª\82રàª\95à«\8dષણ{{PLURAL:$1|page|pages}} àª¦à«\8dવારા àª¸à«\81રàª\95à«\8dષà«\80ત છે.",
-'titleprotectedwarning' => "'''ચેતવણી:  આ પાનું સંરક્ષીત છે  આની રચના માટે [[Special:ListGroupRights|specific rights]] ની જરૂર છે.'''
-તà«\87 àª¸àª\82બàª\82ધà«\80 àª¤àª¾àª\9cà«\87તરનà«\80 àª«à«\87રફાર àª¯àª¾àª¦àª¿ તમારા સંદર્ભ માટે આપેલી છે:",
+'cascadeprotectedwarning' => "'''àª\9aà«\87તવણà«\80:''' àª\86 àªªàª¾àª¨à«\81àª\82 àª¸àª\82રàª\95à«\8dષિત àª\9bà«\87. àªªà«\8dરબàª\82ધન àª\85ધિàª\95ાર àª§àª°àª¾àªµàª¤àª¾ àª¸àª­à«\8dયà«\8b àª\9c àª\86માàª\82 àª«à«\87રફાર àª\95રà«\80 àª¶àª\95à«\87 àª\9bà«\87. àª\86 àªªàª¾àª¨à«\81àª\82 àª¨à«\80àª\9aà«\87ના àªªàª\97થિયામય àª¸àª\82રàª\95à«\8dષણ{{PLURAL:$1|પાના|પાનાàª\93}} àª¦à«\8dવારા àª¸à«\81રàª\95à«\8dષિત છે.",
+'titleprotectedwarning' => "'''ચેતવણી: આ પાનું સંરક્ષિત છે આથી આની રચના માટે [[Special:ListGroupRights|વિશેષ અધિકારો]]ની જરૂર છે.'''
+તà«\87 àª¸àª\82બàª\82ધà«\80 àª¤àª¾àª\9cà«\87તરનà«\80 àª«à«\87રફાર àª¯àª¾àª¦à«\80 તમારા સંદર્ભ માટે આપેલી છે:",
 'templatesused' => 'આ પાનામાં વપરાયેલ {{PLURAL:$1|ઢાંચો|ઢાંચાઓ}}:',
 'templatesusedpreview' => 'આ પૂર્વાવલોકનમાં વપરાયેલ {{PLURAL:$1|ઢાંચો|ઢાંચાઓ}}:',
 'templatesusedsection' => 'આ ખંડ માં વપરાયેલા {{PLURAL:$1|ઢાંચો|ઢાંચા}} :',
@@ -1083,8 +1083,8 @@ $1",
 
 # Suppression log
 'suppressionlog' => 'દાબ નોંધ',
-'suppressionlogtext' => 'નà«\80àª\9aà«\87 àªªà«\8dરબàª\82ધàª\95à«\8bથà«\80 àª\9bà«\81પાયà«\87લ àª\8fવા àª¹àª\9fાવ àª\85નà«\87 àª°à«\8bàª\95નà«\80 àª¯àª¾àª¦àª¿ આપેલી છે.
-હાલમાં સક્રીય એવા  પ્રતિબંધ અને રોકની યાદિ અહીં [[Special:BlockList|IP block list]]  આપેલ છે.',
+'suppressionlogtext' => 'નà«\80àª\9aà«\87 àªªà«\8dરબàª\82ધàª\95à«\8bથà«\80 àª\9bà«\81પાયà«\87લ àª\8fવા àª¹àª\9fાવ àª\85નà«\87 àª°à«\8bàª\95નà«\80 àª¯àª¾àª¦à«\80 આપેલી છે.
+હાલમાં સક્રીય એવા પ્રતિબંધ અને રોકની યાદિ [[Special:BlockList|અહીં]] આપેલ છે.',
 
 # History merging
 'mergehistory' => 'પાનાનાં ઇતિહાસોનું વિલીનીકરણ',
@@ -1409,7 +1409,7 @@ HTML નાકું ચકાસો',
 'right-ipblock-exempt' => 'IP દ્વારા, સ્વયં ચાલિત રીતે અને સમૂહ રોકને અવગનીને આગળ વધો',
 'right-proxyunbannable' => 'અવેજીના અવયંચાલિત ખંડોને ટાળો',
 'right-unblockself' => 'તેમને જાતે અપ્રતિબંધિત થવા દો',
-'right-protect' => 'સàª\82રàª\95à«\8dષણ àª¸à«\8dતર àª¬àª¦àª²à«\8b àª\85નà«\87 àª¸àª\82રàª\95à«\8dષà«\80ત àªªàª¾àª¨àª¾માં ફેરફાર કરો.',
+'right-protect' => 'સàª\82રàª\95à«\8dષણ àª¸à«\8dતર àª¬àª¦àª²à«\8b àª\85નà«\87 àª¸àª\82રàª\95à«\8dષિત àªªàª¾àª¨àª¾àª\93માં ફેરફાર કરો.',
 'right-editprotected' => 'સંરક્ષિત પાનામાં ફેરફાર કરો (પગથિયામય સુરક્ષા વગર)',
 'right-editinterface' => 'સભ્ય સંભાષણ પટલમાં ફેરફાર કરો',
 'right-editusercssjs' => 'અન્ય સભ્યોની CSS અને JavaScript ફાઇલમાં ફેરફાર કરો',
@@ -1492,7 +1492,7 @@ HTML નાકું ચકાસો',
 'rcshowhideminor' => 'નાના ફેરફારો $1',
 'rcshowhidebots' => 'બૉટો $1',
 'rcshowhideliu' => 'લૉગ ઇન થયેલાં સભ્યો $1',
-'rcshowhideanons' => 'àª\85નામિ સભ્યો $1',
+'rcshowhideanons' => 'àª\85નામà«\80 સભ્યો $1',
 'rcshowhidepatr' => ' $1 ચોકીયાત ફેરફારો',
 'rcshowhidemine' => 'મારા ફેરફારો $1',
 'rclinks' => 'છેલ્લાં $2 દિવસમાં થયેલા છેલ્લાં $1 ફેરફારો દર્શાવો<br />$3',
@@ -1871,7 +1871,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'randomredirect-nopages' => 'નામ સ્થળ "$1" માં કોઇ દિશા નિર્દેશન નથી',
 
 # Statistics
-'statistics' => 'àª\86àª\82àª\95ડાàª\95િય àª®àª¾àª¹àª¿àª¤àª¿',
+'statistics' => 'àª\86àª\82àª\95ડાàª\95à«\80ય àª®àª¾àª¹àª¿àª¤à«\80',
 'statistics-header-pages' => 'પાના સંબંધી આંકડાકીય માહિતી',
 'statistics-header-edits' => 'આંકડાકીય માહિતી બદલો',
 'statistics-header-views' => 'આંકડાકીય માહિતી જુઓ',
@@ -1929,10 +1929,10 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'specialpage-empty' => 'આ પાનું ખાલી છે.',
 'lonelypages' => 'અનાથ પાના',
 'lonelypagestext' => 'નીચે બતાવેલા પાના {{SITENAME}} પર કે થી કડી દ્વારા જોડાયેલ નથી',
-'uncategorizedpages' => 'àª\85વરà«\8dàª\97િકૃત પાનાં',
-'uncategorizedcategories' => 'àª\85વરà«\8dàª\97િકૃત શ્રેણીઓ',
-'uncategorizedimages' => 'àª\85વરà«\8dàª\97િકૃત દસ્તાવેજો',
-'uncategorizedtemplates' => 'àª\85વરà«\8dàª\97િકૃત ઢાંચાઓ',
+'uncategorizedpages' => 'àª\85વરà«\8dàª\97à«\80કૃત પાનાં',
+'uncategorizedcategories' => 'àª\85વરà«\8dàª\97à«\80કૃત શ્રેણીઓ',
+'uncategorizedimages' => 'àª\85વરà«\8dàª\97à«\80કૃત દસ્તાવેજો',
+'uncategorizedtemplates' => 'àª\85વરà«\8dàª\97à«\80કૃત ઢાંચાઓ',
 'unusedcategories' => 'વણ વપરાયેલી શ્રેણીઓ',
 'unusedimages' => 'વણ વપરાયેલાં દસ્તાવેજો',
 'popularpages' => 'પ્રખ્યાત પાના',
@@ -1959,8 +1959,8 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'protectedpages-indef' => 'ફક્ત અનિશ્ચિત સુરક્ષા ધરાવતા પાના',
 'protectedpages-cascade' => 'માત્ર પગથિયામય સુરક્ષા વાળા પગ',
 'protectedpagestext' => 'નીચેના પાના કોઈ ફેરફાર કે હટાવવા થી સુરકક્ષીત કરાયા છે',
-'protectedpagesempty' => 'àª\86 àªµàª¿àª\95લà«\8dપà«\8b àª¦à«\8dવારા àª\95à«\8bàª\88 àªªàª¾àª¨àª¾ àª¸à«\81રàª\95à«\8dષà«\80ત àª\95રાયા àª¨àª¥à«\80',
-'protectedtitles' => 'સàª\82રàª\95à«\8dષà«\80ત શીર્ષકો',
+'protectedpagesempty' => 'àª\86 àªµàª¿àª\95લà«\8dપà«\8b àª¦à«\8dવારા àª\95à«\8bàª\88 àªªàª¾àª¨àª¾ àª¸à«\81રàª\95à«\8dષિત àª\95રાયા àª¨àª¥à«\80.',
+'protectedtitles' => 'સàª\82રàª\95à«\8dષિત શીર્ષકો',
 'protectedtitlestext' => 'આ શીર્ષકો રચના માટે આરક્ષીત છે',
 'protectedtitlesempty' => 'આ પરિબળો દ્વારા કોઇ પણ શીર્ષકો સચવાયા નથી.',
 'listusers' => 'સભ્યોની યાદી',
@@ -2325,8 +2325,8 @@ Deleting it may disrupt database operations of {{SITENAME}};',
 'restriction-upload' => 'ફાઇલ ચઢાવો',
 
 # Restriction levels
-'restriction-level-sysop' => 'સંપૂર્ણા સંરક્ષીત',
-'restriction-level-autoconfirmed' => 'àª\85રà«\8dધ àª¸àª\82રàª\95à«\8dષà«\80ત',
+'restriction-level-sysop' => 'સંપૂર્ણ સંરક્ષિત',
+'restriction-level-autoconfirmed' => 'àª\85રà«\8dધ àª¸àª\82રàª\95à«\8dષિત',
 'restriction-level-all' => 'કોઈ પણ સ્તર',
 
 # Undelete
@@ -2476,8 +2476,8 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 'ipb-confirm' => 'પ્રતિબંધ પુષ્ટિ',
 'badipaddress' => 'અવૈધ IP સરનામું',
 'blockipsuccesssub' => 'સફળ પ્રતિબંધ મુકાયો',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] પરા રોક લગાવાઈ છે<br />
-રà«\8bàª\95 àª²àª\97ાવà«\87લ àª¸àª­à«\8dયà«\8bનà«\80 àª¯àª¾àª¦àª¿ [[Special:BlockList|IP block list]].',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] પર રોક લગાવાઈ છે.<br />
+સમà«\80àª\95à«\8dષા àª®àª¾àª\9fà«\87 [[Special:BlockList|રà«\8bàª\95 àª²àª\97ાવાયà«\87લ àª¸àª­à«\8dયà«\8bનà«\80 àª¯àª¾àª¦à«\80]] àª\9cà«\81àª\93.',
 'ipb-blockingself' => 'તમે પોતાના પર પ્રતિબંધ મુકવા જાઓ છો! શું તમે સાચેજમાં આ કરવા માગો છો?',
 'ipb-confirmhideuser' => 'તમે "સભ્ય છુપાવો" સક્રિય રાખીને આ સભ્ય પર પ્રતિબંધ મુકવા જઇ રહ્યાં છો. આના કારણે કોઇપણ યાદી કે નોંધમાં સભ્યનું નામ જોઇ નહી શકાય. શું તમે ખરેખર આમ કરવા માંગો છો?',
 'ipb-edit-dropdown' => 'પ્રતિબંધ કારણોમાં ફેરફાર કરો',
@@ -2530,9 +2530,9 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 રોક લગાવાયેલા સભ્યોની યાદિ આ મુજબ છે',
 'blocklogentry' => '[[$1]] પર પ્રતિબંધ $2 $3 સુધી મુકવામાં આવ્યો છે.',
 'reblock-logentry' => '[[$1]] ની પ્રતિબંધ વિકલ્પો બદલ્યા જે નો કલાતિત સમય છે   $2 $3',
-'blocklogtext' => 'àª\86 àª¸àª­à«\8dયà«\8b àªªàª° àª°à«\8bàª\95 àª²àª\97ાવવા àª\85નà«\87 àª¹àª\9fાવવા àª¸àª\82બàª\82ધિત àª¯àª¾àª¦àª¿ છે.
-સà«\8dવયàª\82àª\9aાલિત àª°à«\80તà«\87 àª°à«\8bàª\95 àª²àª\97ાવાયà«\87લ IP àª¸àª°àª¨àª¾àª®àª¾àª¨à«\80 àª¯àª¾àª¦àª¿ અહીં નથી આપી.
-હાલમાàª\82 àªªà«\8dરવરà«\8dતમાન àª°à«\8bàª\95 àª¨à«\80 àª¯àª¾àª¦àª¿ àª\85હà«\80àª\82 àª\9cà«\81àª\93 [[Special:BlockList|IP block list]].',
+'blocklogtext' => 'àª\86 àª¸àª­à«\8dયà«\8b àªªàª° àª°à«\8bàª\95 àª²àª\97ાવવા àª\85નà«\87 àª¹àª\9fાવવા àª¸àª\82બàª\82ધિત àª¯àª¾àª¦à«\80 છે.
+સà«\8dવયàª\82àª\9aાલિત àª°à«\80તà«\87 àª°à«\8bàª\95 àª²àª\97ાવાયà«\87લ IP àª¸àª°àª¨àª¾àª®àª¾àª¨à«\80 àª¯àª¾àª¦à«\80 અહીં નથી આપી.
+હાલમાàª\82 àªªà«\8dરવરà«\8dતમાન àªªà«\8dરતિબàª\82ધ àª\85નà«\87 àª°à«\8bàª\95 àª¨à«\80 [[Special:BlockList|યાદà«\80 àª\85હà«\80àª\82 àª\9cà«\81àª\93]].',
 'unblocklogentry' => '$1 પરનો પ્રતિબંધ ઉઠાવ્યો',
 'block-log-flags-anononly' => 'માત્ર અજ્ઞાત સભ્ય',
 'block-log-flags-nocreate' => 'ખાતું ખોલવા પર પ્રતિબંધ છે',
@@ -2714,8 +2714,8 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 'allmessagesname' => 'નામ',
 'allmessagesdefault' => 'મૂળ સંદેશ',
 'allmessagescurrent' => 'વર્તમાન દસ્તાવેજ',
-'allmessagestext' => 'આ મિડિયાવિકિ નામ સ્થળમાં આવેલ પ્રણાલીજનિત સંદેશાની યાદિ આ મુજબ છે.
-àª\95à«\83પયા [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] àª\85નà«\87 [//translatewiki.net translatewiki.net]નà«\80 àª®à«\81લાàª\95ાત àª²à«\8b àª\9cà«\8b àª¤ àª®àª¿àª¡àª¿àª¯àª¾àª¯àª¾àªµàª¿àª\95િના àª¸à«\8dથાનિય àª\95રણમાàª\82 àª®àª¦àª¦àª°à«\82પ àª¥àªµàª¾ àª\87àª\9aà«\8dàª\9bતા àª¹à«\8bવ.',
+'allmessagestext' => 'આ મિડિયાવિકિ નામસ્થળમાં આવેલ પ્રણાલીજનિત સંદેશાની યાદી આ મુજબ છે.
+àª\9cà«\8b àª¤àª®à«\87 àª®àª¿àª¡àª¿àª¯àª¾àª¯àª¾àªµàª¿àª\95િના àª¸à«\8dથાનà«\80યàª\95રણમાàª\82 àª®àª¦àª¦àª°à«\82પ àª¥àªµàª¾ àª\87àª\9aà«\8dàª\9bતા àª¹à«\8bવ àª¤à«\8b àª\95à«\83પયા [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] àª\85નà«\87 [//translatewiki.net translatewiki.net]નà«\80 àª®à«\81લાàª\95ાત àª²à«\8b.',
 'allmessagesnotsupportedDB' => "આ પાનું ન વાપરી શકાશે કેમકે '''\$wgUseDatabaseMessages'''  નિષ્ક્રીય કરાયું છે",
 'allmessages-filter-legend' => 'ચાળણી',
 'allmessages-filter' => 'સ્થાનીયકરણ સ્થિતિ દ્વારા ચાળો',
@@ -2743,11 +2743,11 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 # Special:Import
 'import' => 'પાના આયાત કરો',
 'importinterwiki' => 'ટ્રાંસ વિકિ આયાત',
-'import-interwiki-text' => 'આયાત કરવાના વિકિ અને પાનાનું શીર્ષક પસંદ કરો.
-ફà«\87રફરનà«\80 àª¤àª¾àª°à«\80àª\96 àª\85નà«\87 àª²à«\87àª\96àª\95à«\8b àªµàª¿àª·à«\87 àª¨à«\80 àª®àª¾àª¹àª¿àª¤à«\80 àª¸àª\9aવાશે.
-àª\86àª\82તર àªµàª¿àª\95િ àª\86યાત àª\86દિ [[Special:Log/import|import log]] àª®àª¾àª\82 àª\85àª\82àª\95િત àª¥ાય છે.',
+'import-interwiki-text' => 'આયાત કરવા માટેનાં પાનાનું શીર્ષક અને વિકિ પસંદ કરો.
+ફà«\87રફારનà«\80 àª¤àª¾àª°à«\80àª\96 àª\85નà«\87 àª²à«\87àª\96àª\95à«\8b àªµàª¿àª·à«\87નà«\80 àª®àª¾àª¹àª¿àª¤à«\80 àª\9cà«\87મનà«\80 àª¤à«\87મ àª°àª¾àª\96વામાàª\82 àª\86વશે.
+બધા àª\9c àª\86àª\82તરવિàª\95િ àª\86યાતનà«\80 àª¨à«\8bàª\82ધ [[Special:Log/import|import log]]માàª\82 àª°àª\96ાય છે.',
 'import-interwiki-source' => 'સ્રોત વિકિ/પાનું:',
-'import-interwiki-history' => 'àª\86 àªªàª¾àª¨àª¾ àª¬àª§àª¾ àª\90તિહાસà«\80àª\95 àª«à«\87રફારà«\8bનà«\80 àª¨àª\95લ કરો',
+'import-interwiki-history' => 'àª\86 àªªàª¾àª¨à«\81àª\82 àª¬àª§àª¾ àª«à«\87રફારà«\8bના àª\87તિહાસ àª¸àª¾àª¥à«\87 àª\86યાત કરો',
 'import-interwiki-templates' => 'બધા ઢાંચા શામિલ કરો',
 'import-interwiki-submit' => 'આયાત કરો',
 'import-interwiki-namespace' => 'લક્ષ્ય નામ સ્થળ',
@@ -2798,7 +2798,7 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 
 # JavaScriptTest
 'javascripttest' => 'જાવા સ્ક્રીપ્ટ પરીક્ષણ',
-'javascripttest-disabled' => 'àª\86 àª¸à«\82તà«\8dર (ફàª\82àª\95શન) àª¨àª¿àª·à«\8dàª\95à«\8dરà«\80ય àª\95રાયà«\8b',
+'javascripttest-disabled' => 'àª\86 àª¸à«\82તà«\8dર (ફàª\82àª\95શન) àª\86 àªµàª¿àª\95િ àªªàª° àª\95ારà«\8dયરત àª\95રાયà«\87લà«\81àª\82 àª¨àª¥à«\80.',
 'javascripttest-title' => '$1 પરીક્ષણ જારી',
 'javascripttest-pagetext-noframework' => 'આ પાનું જાવા સ્ક્રીપ્ટ ચલાવવા આરક્ષિત છે.',
 'javascripttest-pagetext-unknownframework' => 'અજાણ ચકાસણી ફ્રેમવર્ક "$1".',
@@ -3196,7 +3196,7 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 'exif-compression-3' => 'CCITT સમૂહ 3 ફેક્સ ઍનકોડિંગ',
 'exif-compression-4' => 'CCITT સમૂહ 3 ફેક્સ ઍનકોડિંગ',
 
-'exif-copyrighted-true' => 'પà«\8dરàª\95શન àª\85ધિàª\95ારથà«\80 àª¸à«\81રàª\95à«\8dષà«\80ત',
+'exif-copyrighted-true' => 'પà«\8dરàª\95ાશન àª\85ધિàª\95ારથà«\80 àª¸à«\81રàª\95à«\8dષિત',
 'exif-copyrighted-false' => 'સાર્વજનિક ડોમેન',
 
 'exif-unknowndate' => 'અજ્ઞાત તારીખ',
@@ -3403,7 +3403,7 @@ To perform a selective restoration, check the boxes corresponding to the revisio
 
 # External editor support
 'edit-externally' => 'બાહ્ય સોફ્ટવેર વાપરીને આ ફાઇલમાં ફેરફાર કરો',
-'edit-externally-help' => '(વધà«\81 àª®àª¾àª¹àª¿àª¤àª¿ àª®àª¾àª\9fà«\87 [//www.mediawiki.org/wiki/Manual:External_editors àª¸à«\87àª\9f-àª\85પ àª¸à«\81ચનાઓ] જુઓ)',
+'edit-externally-help' => '(વધà«\81 àª®àª¾àª¹àª¿àª¤à«\80 àª®àª¾àª\9fà«\87 [//www.mediawiki.org/wiki/Manual:External_editors àª¸à«\87àª\9f-àª\85પ àª¸à«\82ચનાઓ] જુઓ)',
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'બધા',
@@ -3511,7 +3511,7 @@ $5
 'table_pager_first' => 'પહેલું પાનું',
 'table_pager_last' => 'છેલ્લું પાનું',
 'table_pager_limit' => 'પ્રતિ પાને $1 વસ્તુ બતાવો',
-'table_pager_limit_label' => 'વસà«\8dતિàª\93 àªªà«\8dરતિ àªªàª¾àª¨à«\87',
+'table_pager_limit_label' => 'પà«\8dરતિ àªªàª¾àª¨à«\87 àªµàª¿àª\97તà«\8b:',
 'table_pager_limit_submit' => 'જાઓ',
 'table_pager_empty' => 'કોઇ પરિણામ નથી',
 
@@ -3595,6 +3595,7 @@ $5
 'version-software' => 'બેસાડેલા સોફ્ટવેર',
 'version-software-product' => 'ઉત્પાદ',
 'version-software-version' => 'આવૃત્તિ',
+'version-entrypoints-header-entrypoint' => 'પ્રવેશ સ્થળ',
 
 # Special:FilePath
 'filepath' => 'ફાઈલ પથ',
@@ -3788,6 +3789,10 @@ $5
 'duration-minutes' => '$1 {{PLURAL:$1|મિનિટ|મિનિટો}}',
 'duration-hours' => '$1 {{PLURAL:$1|કલાક|કલાકો}}',
 'duration-days' => '$1 {{PLURAL:$1|દિવસ|દિવસો}}',
+'duration-weeks' => '$1 {{PLURAL:$1|અઠવાડિયું|અઠવાડિયા}}',
 'duration-years' => '$1 {{PLURAL:$1|વર્ષ|વર્ષો}}',
+'duration-decades' => '$1 {{PLURAL:$1|દાયકો|દાયકાઓ}}',
+'duration-centuries' => '$1 {{PLURAL:$1|શતાબ્દી|શતાબ્દીઓ}}',
+'duration-millennia' => '$1 {{PLURAL:$1|સહસ્ત્રાબ્દી|સહસ્ત્રાબ્દીઓ}}',
 
 );
index 88d6881..3776098 100644 (file)
@@ -12,6 +12,7 @@
  * @author Kolonahe
  * @author Node ue
  * @author Singularity
+ * @author Xqt
  */
 
 $namespaceNames = array(
@@ -589,6 +590,8 @@ E ʻoluʻolu, e hōʻoia i ka hoʻokūkū ʻana i lalo, a laila, e mālama i nā
 # Statistics
 'statistics' => 'Papa helu',
 
+'disambiguationspage' => 'Template:Huaʻōlelo puana like',
+
 'brokenredirects-edit' => 'e ho‘ololi',
 'brokenredirects-delete' => 'e kāpae',
 
index e60fbb9..f2f3162 100644 (file)
@@ -359,7 +359,7 @@ $messages = array(
 'tog-hidepatrolled' => 'הסתרת שינויים בדוקים ברשימת השינויים האחרונים',
 'tog-newpageshidepatrolled' => 'הסתרת דפים בדוקים ברשימת הדפים החדשים',
 'tog-extendwatchlist' => 'הרחבת רשימת המעקב כך שתציג את כל השינויים, לא רק את השינויים האחרונים בכל דף',
-'tog-usenewrc' => 'ש×\99×\9e×\95ש ×\91רש×\99×\9eת ×©×\99× ×\95×\99×\99×\9d ×\90×\97ר×\95× ×\99×\9d ×\9eש×\95פרת (דרוש JavaScript)',
+'tog-usenewrc' => 'ק×\99×\91×\95×¥ ×\94ש×\99× ×\95×\99×\99×\9d ×\9cפ×\99 ×\93×£ ×\91ש×\99× ×\95×\99×\99×\9d ×\94×\90×\97ר×\95× ×\99×\9d ×\95×\91רש×\99×\9eת ×\94×\9eעק×\91 (דרוש JavaScript)',
 'tog-numberheadings' => 'מספור כותרות אוטומטי',
 'tog-showtoolbar' => 'הצגת סרגל העריכה (דרוש JavaScript)',
 'tog-editondblclick' => 'עריכת דפים בלחיצה כפולה (דרוש JavaScript)',
@@ -712,6 +712,8 @@ $1',
 'cannotdelete' => 'לא ניתן היה למחוק את הדף או הקובץ "$1".
 ייתכן שהוא נמחק כבר על ידי מישהו אחר.',
 'cannotdelete-title' => 'לא ניתן למחוק את הדף "$1"',
+'delete-hook-aborted' => 'המחיקה הופסקה על־ידי מבנה Hook.
+לא ניתן הסבר.',
 'badtitle' => 'כותרת שגויה',
 'badtitletext' => 'כותרת הדף המבוקש הייתה בלתי־תקינה, ריקה, או קישור שגוי לשפה אחרת או למיזם אחר.
 ייתכן שהיא מכילה תו אחד או יותר שאינו יכול לשמש בכותרות.',
@@ -746,6 +748,8 @@ $2',
 מנהל המערכת שנעל את המאגר סיפק את ההסבר הבא: "\'\'\'$3\'\'\'".',
 'invalidtitle-knownnamespace' => 'כותרת בלתי־תקינה עם מרחב השם "$2" ושם דף "$3"',
 'invalidtitle-unknownnamespace' => 'כותרת בלתי־תקינה עם מרחב שם בלתי־ידוע מספר $1 ושם דף "$2"',
+'exception-nologin' => 'לא בחשבון',
+'exception-nologin-text' => 'כדי לראות את הדף הזה או לבצע את הפעולה הזאת צריך להיכנס לחשבון באתר הוויקי הזה.',
 
 # Virus scanner
 'virus-badscanner' => "הגדרות שגויות: סורק הווירוסים אינו ידוע: ''$1''",
@@ -3896,7 +3900,7 @@ $5
 'version-version' => '(גרסה $1)',
 'version-license' => 'רישיון',
 'version-poweredby-credits' => "אתר הוויקי הזה מופעל על ידי '''[//www.mediawiki.org/ מדיה־ויקי]''', © 2001–$1 $2.",
-'version-poweredby-others' => 'אחרים',
+'version-poweredby-others' => '[{{SERVER}}{{SCRIPTPATH}}/CREDITS אחרים]',
 'version-license-info' => "מדיה־ויקי היא תוכנה חופשית; באפשרותכם להפיץ אותה מחדש ו/או לשנות אותה לפי תנאי הרישיון הציבורי הכללי של גנו המפורסם על ידי המוסד לתוכנה חופשית: גרסה 2 של רישיון זה, או (לפי בחירתכם) כל גרסה מאוחרת יותר.
 
 מדיה־ויקי מופצת בתקווה שהיא תהיה שימושית, אך '''ללא כל הבטחה לאחריות'''; אפילו לא אחריות משתמעת של '''יכולת להיסחר''' או '''התאמה למטרה מסוימת'''. ראו את הרישיון הציבורי הכללי של גנו לפרטים נוספים.
@@ -4068,6 +4072,8 @@ $5
 '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 80c55df..0a077ed 100644 (file)
@@ -24,7 +24,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Pahraa dewa gais badlao ke nawaa badlao me se lukao',
 'tog-newpageshidepatrolled' => 'Pahraa dewa gais badlao ke nawaa panna me se lukao',
 'tog-extendwatchlist' => 'Dhyaan suchi ke khol ke sab badlao ke dekhao, khaali nawaa waala nai',
-'tog-usenewrc' => 'Sadasya se enhance karaa gais nawaa badlao (reguires Javascript)',
+'tog-usenewrc' => 'Dher jan se badla gais panna, haali ke badlao aur dhyan suchi me (Javascript maange hae)',
 'tog-numberheadings' => 'Sab heading ke apne se number karo',
 'tog-showtoolbar' => 'Badle waala aujaar ke toolbar ke dekhao (JavaScript ke jarurat hai)',
 'tog-editondblclick' => 'Dugnaa click pe panna ke badlo (JavaScript ke jarurat hai)',
@@ -373,6 +373,8 @@ Iske, URL ke likh ke, koi administrator ke report karo.',
 'badarticleerror' => 'Ii chij ke ii panna me nai karaa jae sake hai.',
 'cannotdelete' => '{{PLURAL:$1|Template|Template}} ke ii jhalak me kaam me lawa gais hae:',
 'cannotdelete-title' => 'Panna "$1" ke mitae nai saktaa hae',
+'delete-hook-aborted' => 'Mitae ke kisis ke hook rok diis hae.
+Uu koi kaaran nai dis hae.',
 'badtitle' => 'Kharaab title',
 'badtitletext' => 'Jon panna aap mangta hai uske page title invalid, galat, nai to an incorrectly linked inter-language or inter-wiki title. Isme sait ek yah jaada character hoi jon ki title me nai kaam me lawa jae sake hai.',
 'perfcached' => 'Niche likha data ke cache karaa gais hai aur sait purana hoi. Jaada se jaada {{PLURAL:$1|ek result |$1 results}} cache me hae.',
@@ -402,6 +404,12 @@ $2',
 'ns-specialprotected' => 'Khaas panna ke badla nai jae sake hai.',
 'titleprotected' => "Ii title ke banae se [[User:$1|$1]] rokis hai.
 Iske kaaran hai ''$2''.",
+'filereadonlyerror' => 'File "$1" ke nai badle sakaa hae, kaahe ki ii file repository "$2" me hae aur iske khaali parrha jaae sake hae.
+Jon administrator iske lock karis hae, koi kaaran nai diis hae: "$3"',
+'invalidtitle-knownnamespace' => 'Namespace "$2" aur text "$3" ke kharaab title hae.',
+'invalidtitle-unknownnamespace' => 'Title gaer kaanuni hae aur iske namespace number "$1" aur text "$2" ke nai jaana jaawe hae',
+'exception-nologin' => 'Logged in nai hae',
+'exception-nologin-text' => 'Ii panna nai to aap ke action ke khatir ii wiki me login hoe ke jarurui hae',
 
 # Virus scanner
 'virus-badscanner' => "Kharaab ruup dewa gais hae: virus khoje waala software nawaa hae: ''$1''",
index 70c06b3..20a65da 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Croatian (Hrvatski)
+/** Croatian (hrvatski)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -15,6 +15,7 @@
  * @author Dnik
  * @author Ex13
  * @author Excaliboor
+ * @author FriedrickMILBarbarossa
  * @author Herr Mlinka
  * @author Kaganer
  * @author Luka Krstulovic
@@ -2266,7 +2267,7 @@ Molim potvrdite svoju namjeru, da razumijete posljedice i da ovo radite u skladu
 'actionfailed' => 'Radnja nije uspjela',
 'deletedtext' => '"$1" je izbrisana.
 Vidi $2 za evidenciju nedavnih brisanja.',
-'dellogpage' => 'Evidencija_brisanja',
+'dellogpage' => 'Evidencija brisanja',
 'dellogpagetext' => 'Dolje je popis nedavnih brisanja.
 Sva vremena su prema poslužiteljevom vremenu.',
 'deletionlog' => 'evidencija brisanja',
index 304cf3d..e4d78b2 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Upper Sorbian (Hornjoserbsce)
+/** Upper Sorbian (hornjoserbsce)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -160,7 +160,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Dohladawane změny w aktualnych změnach schować',
 'tog-newpageshidepatrolled' => 'Dohladowane strony z lisćiny nowych stronow schować',
 'tog-extendwatchlist' => 'Lisćinu wobkedźbowankow wočinić, zo by wšě změny widźał, nic jenož najnowše',
-'tog-usenewrc' => 'Rozšěrjenu lisćinu aktualnych změnow (trjeba JavaScript) wužiwać',
+'tog-usenewrc' => 'Skupinske změny po stronje w aktualnych změnach a wobkedźbowankach (trjeba JavaScript)',
 'tog-numberheadings' => 'Nadpisma awtomatisce čisłować',
 'tog-showtoolbar' => 'Gratowu lajstu pokazać (wužaduje sej JavaScript)',
 'tog-editondblclick' => 'Strony z dwójnym kliknjenjom wobdźěłować (wužaduje sej JavaScript)',
@@ -168,17 +168,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Wobdźěłowanje jednotliwych wotrězkow přez kliknjenje z prawej tastu na nadpisma wotrězkow zmóžnić (wužaduje sej JavaScript)',
 'tog-showtoc' => 'Zapis wobsaha pokazać (za strony z wjace hač 3 nadpismami)',
 'tog-rememberpassword' => 'Přizjewjenje na tutym wobhladowaku sej spomjatkować (za maksimalnje $1 {{PLURAL:$1|dźeń|dnjej|dny|dnjow}})',
-'tog-watchcreations' => 'Strony, kotrež wutworjam, swojim wobkedźbowankam přidać',
-'tog-watchdefault' => 'Strony, kotrež wobdźěłuju, swojim wobkedźbowankam přidać',
-'tog-watchmoves' => 'Sam přesunjene strony wobkedźbowankam přidać',
-'tog-watchdeletion' => 'Sam wušmórnjene strony wobkedźbowankam přidać',
+'tog-watchcreations' => 'Strony, kotrež wutworjam a dataje, kotrež nahrawam, swojim wobkedźbowankam přidać',
+'tog-watchdefault' => 'Strony a dataje, kotrež wobdźěłuju, swojim wobkedźbowankam přidać',
+'tog-watchmoves' => 'Sam přesunjene strony a dataje wobkedźbowankam přidać',
+'tog-watchdeletion' => 'Sam wušmórnjene strony a dataje wobkedźbowankam přidać',
 'tog-minordefault' => 'Wšě změny standardnje jako snadne woznamjenić',
 'tog-previewontop' => 'Přehlad před wobdźěłanskim polom pokazać',
 'tog-previewonfirst' => 'Při prěnim wobdźěłanju přehlad pokazać',
 'tog-nocache' => 'Pufrowanje stronow wobhladowaka znjemóžnić',
-'tog-enotifwatchlistpages' => 'E-mejlku pósłać, hdyž so strona z wobkedźbowankow změni',
+'tog-enotifwatchlistpages' => 'E-mejlku pósłać, hdyž so strona abo dataja z wobkedźbowankow změni',
 'tog-enotifusertalkpages' => 'E-mejlku pósłać, hdyž so moja wužiwarska diskusijna strona změni',
-'tog-enotifminoredits' => 'Tež dla snadnych změnow e-mejlki pósłać',
+'tog-enotifminoredits' => 'Tež za snadne změny stronow a datajow e-mejl pósłać',
 'tog-enotifrevealaddr' => 'Moju e-mejlowu adresu w e-mejlowych zdźělenkach wotkryć',
 'tog-shownumberswatching' => 'Ličbu wobkedźbowacych wužiwarjow pokazać',
 'tog-oldsig' => 'Eksistowaca signatura:',
@@ -325,7 +325,7 @@ $messages = array(
 'returnto' => 'Wróćo k stronje $1.',
 'tagline' => 'z {{GRAMMAR:genitiw|{{SITENAME}}}}',
 'help' => 'Pomoc',
-'search' => 'Pytać',
+'search' => 'pytać',
 'searchbutton' => 'Pytać',
 'go' => 'Pytać',
 'searcharticle' => 'Pytać',
@@ -509,6 +509,8 @@ Zdźěl to prošu [[Special:ListUsers/sysop|admininistratorej]] podawajo wotpow
 'cannotdelete' => 'Strona abo dataja "$1" njeje so dała wušmórnyć.
 Móže być, zo je hižo wot někoho druheho wušmórnjena.',
 'cannotdelete-title' => 'Strona "$1" njehodźi so zhašeć',
+'delete-hook-aborted' => 'Zhašenje přez hoku přetorhnjene.
+Njeje žane wujasnjenje podała.',
 'badtitle' => 'Wopačny titul',
 'badtitletext' => 'Požadane mjeno strony běše njepłaćiwy, prózdny abo njekorektny titul z mjezyrěčneho abo interwikijoweho wotkaza. Snano wobsahuje jedne znamješko abo wjacore znamješka, kotrež w titulach dowolene njejsu.',
 'perfcached' => 'Slědowace daty pochadźeja z pufrowaka a njejsu snano cyle aktualne. Maksimalnje {{PLURAL:$1|jedyn wuslědk|$1 wuslědkaj|$1 wuslědki|$1 wuslědkow}} w pufrowaku k dispoziciji {{PLURAL:$1|steji|stejitej|steja|steji}}.',
@@ -540,6 +542,8 @@ Podata přičina je \'\'"$2"\'\'.',
 Administrator, kiž je jón zawrěł, je tule přičinu podał: "$3".',
 'invalidtitle-knownnamespace' => 'Njepłaćiwy titul z mjenowym rumom "$2" a tekstom "$3"',
 'invalidtitle-unknownnamespace' => 'Njepłaćiwy titul z njeznatym mjenowym rumom $1 a tekstom "$2"',
+'exception-nologin' => 'Njejsy přizjewjeny',
+'exception-nologin-text' => 'Tuta strona abo akcija sej wužaduje, zo sy na tutym wikiju přizjewjeny.',
 
 # Virus scanner
 'virus-badscanner' => "Špatna konfiguracija: Njeznaty wirusowy skener: ''$1''",
@@ -3678,6 +3682,8 @@ Hewak móžeš slědowacy jednory formular wužiwać. Twój komentar přida so s
 'api-error-empty-file' => 'Dataja, kotruž sy nahrał, je prózdna.',
 'api-error-emptypage' => 'Wutworjenje nowych, prózdnych stronow njeje dowolene.',
 'api-error-fetchfileerror' => 'Nutřkowny zmylk: při wobstarowanju dataje je so něšto nimokuliło.',
+'api-error-fileexists-forbidden' => 'Dataja z mjenom "$1" hižo eksistuje, a njeda so přepisać.',
+'api-error-fileexists-shared-forbidden' => 'Dataja z mjenom "$1" hižo eksistuje w zhromadnym datajowym repozitoriju a njeda so přepisać.',
 'api-error-file-too-large' => 'Dataja, kotruž sy nahrał, bě přewulka.',
 'api-error-filename-tooshort' => 'Datajowe mjeno překrótko',
 'api-error-filetype-banned' => 'Tutón datajowy typ je zawrjeny.',
index c507c68..0d7362b 100644 (file)
@@ -29,6 +29,7 @@
  * @author R-Joe
  * @author Samat
  * @author Sucy
+ * @author TK-999
  * @author Terik
  * @author Tgr
  * @author Xbspiro
@@ -313,12 +314,12 @@ $linkTrail = '/^([a-záéíóúöüőűÁÉÍÓÚÖÜŐŰ]+)(.*)$/sDu';
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Hivatkozások aláhúzása:',
-'tog-justify' => 'Sorkizárt fejezetek',
+'tog-justify' => 'Bekezdések sorkizárása',
 'tog-hideminor' => 'Apró változtatások elrejtése a friss változtatások lapon',
 'tog-hidepatrolled' => 'Az ellenőrzött szerkesztések elrejtése a friss változtatások lapon',
 'tog-newpageshidepatrolled' => 'Ellenőrzött lapok elrejtése az új lapok listájáról',
 'tog-extendwatchlist' => 'A figyelőlistán az összes változtatás látszódjon, ne csak az utolsó',
-'tog-usenewrc' => 'Fejlettebb friss változások listája (JavaScript-alapú)',
+'tog-usenewrc' => 'Fejlettebb friss változások használata (JavaScript-alapú)',
 'tog-numberheadings' => 'Fejezetcímek automatikus számozása',
 'tog-showtoolbar' => 'Szerkesztőeszközsor megjelenítése (JavaScript-alapú)',
 'tog-editondblclick' => 'A lapok szerkesztése dupla kattintásra (JavaScript-alapú)',
@@ -334,9 +335,9 @@ $messages = array(
 'tog-previewontop' => 'Előnézet megjelenítése a szerkesztőablak előtt',
 'tog-previewonfirst' => 'Előnézet első szerkesztésnél',
 'tog-nocache' => 'A lapok gyorstárazásának letiltása a böngészőben',
-'tog-enotifwatchlistpages' => 'Kapjak értesítést e-mailben, ha egy általam figyelt lap megváltozik',
+'tog-enotifwatchlistpages' => 'Kapjak értesítést e-mailben, ha egy általam figyelt lap vagy fájl megváltozik',
 'tog-enotifusertalkpages' => 'Kapjak értesítést e-mailben, ha megváltozik a vitalapom',
-'tog-enotifminoredits' => 'Kapjak értesítést e-mailben a lapok apró változtatásairól',
+'tog-enotifminoredits' => 'Kapjak értesítést e-mailben a lapok és fájlok apró változtatásairól',
 'tog-enotifrevealaddr' => 'Jelenjen meg az e-mail címem a figyelmeztető e-mailekben',
 'tog-shownumberswatching' => 'A lapot figyelő szerkesztők számának megjelenítése',
 'tog-oldsig' => 'A jelenlegi aláírás:',
index ce350d1..c572a41 100644 (file)
@@ -15,6 +15,7 @@
  * @author Togaed
  * @author Vacio
  * @author Xelgen
+ * @author Համլետ
  * @author לערי ריינהארט
  */
 
@@ -739,6 +740,9 @@ $2',
 Խնդրում ենք սպասել որոշ ժամանակ կրկին փորձելուց առաջ։',
 'loginlanguagelabel' => 'Լեզու. $1',
 
+# E-mail sending
+'php-mail-error-unknown' => 'Անհայտ սխալ PHP-ի mail() ֆունկցիայում',
+
 # Change password dialog
 'resetpass' => 'Փոխել գաղտնաբառը',
 'resetpass_announce' => 'Դուք ներկայացել եք էլ-փոստով ստացված ժամանակավոր գաղտնաբառով։ Համակարգ մուտքի համար անհրաժեշտ է նոր գաղտնաբառ ընտրել այստեղ.',
@@ -758,12 +762,15 @@ $2',
 'resetpass-temp-password' => 'Ժամանակավոր գաղտնաբառ.',
 
 # Special:PasswordReset
+'passwordreset-legend' => 'Վերականգնել գաղտնաբառը',
 'passwordreset-username' => 'Մասնակցի անուն.',
 'passwordreset-emailelement' => 'Մասնակցային անուն. $1
 Ժամանակավոր գաղտնաբառ. $2',
 
 # Special:ChangeEmail
 'changeemail' => 'Փոխել էլ. հասցեն',
+'changeemail-submit' => 'Խմբագրել էլ․ հասցեն',
+'changeemail-cancel' => 'Չեղարկել',
 
 # Edit page toolbar
 'bold_sample' => 'Թավատառ տեքստ',
@@ -939,6 +946,7 @@ $2',
 'log-fulllog' => 'Դիտել ամբողջական տեղեկամատյանը',
 'edit-conflict' => 'Խմբագրման ընհարում։',
 'edit-no-change' => 'Ձեր խմբագրումը անտեսվել է, քանի որ ոչ մի փոփոխություն չի կատարվել տեքստի մեջ։',
+'defaultmessagetext' => 'Լռելյան տեքստը',
 
 # "Undo" feature
 'undo-success' => 'Խմբագրումը կարող է հետ շրջվել։ Ստուգեք տարբերակների համեմատությունը ստորև, որպեսզի համոզվեք, որ դա է ձեզ հետաքրքրող փոփոխությունը և մատնահարեք «Հիշել էջը»՝ գործողությունն ավարտելու համար։',
@@ -1044,7 +1052,7 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 
 # Diffs
 'history-title' => '«$1» էջի փոփոխումների պատմություն',
-'difference-title' => '$1: Խմագրումների տարբերություն',
+'difference-title' => '$1: Ô½Õ´Õ¢Õ¡Õ£Ö\80Õ¸Ö\82Õ´Õ¶Õ¥Ö\80Õ« Õ¿Õ¡Ö\80Õ¢Õ¥Ö\80Õ¸Ö\82Õ©ÕµÕ¸Ö\82Õ¶',
 'difference-title-multipage' => '$1 և $2: Խմբագրումների տարբերություն',
 'difference-multipage' => '(Էջերի տարերություն)',
 'lineno' => 'Տող  $1.',
@@ -2557,7 +2565,7 @@ $3
 'revdelete-summary-hid' => 'անտեսանելի դարձվեց խմբագրման ամփոփումը',
 'revdelete-uname-hid' => 'անտեսանելի դարձվեց մասնակցի անունը',
 'revdelete-content-unhid' => 'տեսանելի դարձվեց բովանդակությունը',
-'revdelete-summary-unhid' => 'տեսնելի դարձվեց խմագրման ամփոփումը',
+'revdelete-summary-unhid' => 'Õ¿Õ¥Õ½Õ¶Õ¥Õ¬Õ« Õ¤Õ¡Ö\80Õ±Õ¾Õ¥Ö\81 Õ­Õ´Õ¢Õ¡Õ£Ö\80Õ´Õ¡Õ¶ Õ¡Õ´Ö\83Õ¸Ö\83Õ¸Ö\82Õ´Õ¨',
 'revdelete-uname-unhid' => 'տեսանելի դարձվեց մասնակցի անունը',
 'logentry-move-move' => '$1 տեղափոխեց էջը «$3»-ից «$4»',
 'logentry-move-move-noredirect' => '$1 տեղափոխեց էջը «$3»-ից «$4» առանց վերահղում թողնելու',
index 00ab080..9964ee2 100644 (file)
@@ -149,7 +149,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Celar le modificationes patruliate in le modificationes recente',
 'tog-newpageshidepatrolled' => 'Celar le paginas patruliate del lista de nove paginas',
 'tog-extendwatchlist' => 'Displicar le observatorio pro monstrar tote le modificationes, non solmente les plus recente',
-'tog-usenewrc' => 'Usar le modificationes recente meliorate (require JavaScript)',
+'tog-usenewrc' => 'Gruppar modificationes per pagina in modificationes recente e observatorio (require JavaScript)',
 'tog-numberheadings' => 'Numerar titulos automaticamente',
 'tog-showtoolbar' => 'Monstrar instrumentario de modification (require JavaScript)',
 'tog-editondblclick' => 'Duple clic pro modificar un pagina (require JavaScript)',
@@ -157,17 +157,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Activar modification de sectiones con clic-a-dextra super lor titulos (require JavaScript)',
 'tog-showtoc' => 'Monstrar tabula de contento (in paginas con plus de 3 sectiones)',
 'tog-rememberpassword' => 'Memorar mi contrasigno in iste navigator (pro un maximo de $1 {{PLURAL:$1|die|dies}})',
-'tog-watchcreations' => 'Adder le paginas que io crea a mi observatorio',
-'tog-watchdefault' => 'Adder le paginas que io modifica a mi observatorio',
-'tog-watchmoves' => 'Adder le paginas que io renomina a mi observatorio',
-'tog-watchdeletion' => 'Adder le paginas que io dele a mi observatorio',
+'tog-watchcreations' => 'Adder le paginas que io crea e le files que io incarga a mi observatorio',
+'tog-watchdefault' => 'Adder le paginas e files que io modifica a mi observatorio',
+'tog-watchmoves' => 'Adder le paginas e files que io renomina a mi observatorio',
+'tog-watchdeletion' => 'Adder le paginas e files que io dele a mi observatorio',
 'tog-minordefault' => 'Marcar omne modificationes initialmente como minor',
 'tog-previewontop' => 'Monstrar previsualisation ante le quadro de modification',
 'tog-previewonfirst' => 'Monstrar previsualisation al prime modification',
 'tog-nocache' => "Disactivar le ''cache'' de paginas in le navigator",
-'tog-enotifwatchlistpages' => 'Notificar me via e-mail quando un pagina in mi observatorio es modificate',
+'tog-enotifwatchlistpages' => 'Notificar me per e-mail quando un pagina o file in mi observatorio es modificate',
 'tog-enotifusertalkpages' => 'Notificar me via e-mail quando mi pagina de discussion es modificate',
-'tog-enotifminoredits' => 'Notificar me etiam de modificationes minor de paginas',
+'tog-enotifminoredits' => 'Notificar me etiam de modificationes minor de paginas e files',
 'tog-enotifrevealaddr' => 'Revelar mi adresse de e-mail in messages de notification',
 'tog-shownumberswatching' => 'Monstrar le numero de usatores que observa le pagina',
 'tog-oldsig' => 'Signatura existente:',
@@ -501,6 +501,8 @@ Per favor reporta isto a un [[Special:ListUsers/sysop|administrator]], faciente
 'cannotdelete' => 'Le pagina o file "$1" non poteva esser delite.
 Es possibile que un altere persona lo ha ja delite.',
 'cannotdelete-title' => 'Non pote deler le pagina "$1"',
+'delete-hook-aborted' => 'Le deletion ha essite abortate per un extension.
+Nulle explication es disponibile.',
 'badtitle' => 'Titulo invalide',
 'badtitletext' => 'Le titulo de pagina requestate es invalide, vacue, o un titulo interlingual o interwiki incorrectemente ligate.
 Es possibile que illo contine un o plure characteres que non pote esser usate in titulos.',
@@ -531,11 +533,13 @@ $2',
 'ns-specialprotected' => 'Le paginas special non es modificabile.',
 'titleprotected' => "Iste titulo ha essite protegite contra creation per [[User:$1|$1]].
 Le motivo specificate es ''$2''.",
-'filereadonlyerror' => 'Impossibile modificar le file "$1" perque le deposito de files "$2" es in modo de lectura sol.
+'filereadonlyerror' => 'Impossibile modificar le file "$1" perque le repositorio de files "$2" es in modo de lectura sol.
 
 Le administrator qui lo blocava offereva iste explication: "$3".',
 'invalidtitle-knownnamespace' => 'Titulo invalide con spatio de nomines "$2" e texto "$3"',
 'invalidtitle-unknownnamespace' => 'Titulo invalide con spatio de nomines incognite $1 e texto "$2"',
+'exception-nologin' => 'Non identificate',
+'exception-nologin-text' => 'Iste pagina o action necessita que tu aperi session in iste wiki.',
 
 # Virus scanner
 'virus-badscanner' => "Configuration incorrecte: programma antivirus non cognoscite: ''$1''",
@@ -799,7 +803,7 @@ Per favor entra e valida tu adresse de e-mail per medio de tu [[Special:Preferen
 'nosuchsectiontitle' => 'Section non trovate',
 'nosuchsectiontext' => 'Tu ha tentate modificar un section que non existe.
 Illo pote haber essite displaciate o delite durante que tu legeva le pagina.',
-'loginreqtitle' => 'Identification requirite',
+'loginreqtitle' => 'Identification necessari',
 'loginreqlink' => 'aperir un session',
 'loginreqpagetext' => 'Tu debe $1 pro poter vider altere paginas.',
 'accmailtitle' => 'Contrasigno inviate.',
@@ -1466,7 +1470,7 @@ Si tu opta pro dar lo, isto essera usate pro dar te attribution pro tu contribut
 'action-movefile' => 'renominar iste file',
 'action-upload' => 'incargar iste file',
 'action-reupload' => 'superscriber iste file existente',
-'action-reupload-shared' => 'supplantar iste file in un deposito commun',
+'action-reupload-shared' => 'supplantar iste file in un repositorio commun',
 'action-upload_by_url' => 'incargar iste file ab un adresse URL',
 'action-writeapi' => 'usar le API de scriptura',
 'action-delete' => 'deler iste pagina',
@@ -1623,7 +1627,7 @@ 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.
 Si tu vole ancora incargar iste file, per favor retorna e usa un nove nomine. [[File:$1|thumb|center|$1]]',
-'fileexists-shared-forbidden' => 'Un file con iste nomine existe ja in le deposito de files commun.
+'fileexists-shared-forbidden' => 'Un file con iste nomine existe ja in le repositorio de files commun.
 Si tu vole totevia incargar iste file, per favor retorna e usa un nove nomine. [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'Iste file es un duplicato del sequente {{PLURAL:$1|file|files}}:',
 'file-deleted-duplicate' => 'Un file identic a iste file ([[:$1]]) esseva ja delite anteriormente. Tu deberea verificar le registro de deletiones concernente iste file ante de re-incargar lo.',
@@ -1847,7 +1851,7 @@ Tu vole forsan modificar le description in le [$2 pagina de description del file
 'filepage-nofile-link' => 'Nulle file con iste nomine existe, ma tu pote [$1 incargar lo].',
 'uploadnewversion-linktext' => 'Incargar un nove version de iste file',
 'shared-repo-from' => 'ab $1',
-'shared-repo' => 'un deposito pro uso in commun',
+'shared-repo' => 'un repositorio partite',
 
 # File reversion
 'filerevert' => 'Reverter $1',
@@ -1976,8 +1980,8 @@ Le entratas <del>cancellate</del> ha essite resolvite.',
 'wantedpages' => 'Paginas plus demandate',
 'wantedpages-badtitle' => 'Titulo invalide in le gruppo de resultatos: $1',
 'wantedfiles' => 'Files desirate',
-'wantedfiletext-cat' => 'Le sequente files es usate ma non existe. Le files ab depositos distante pote esser listate malgrado que illos existe. Omne tal false positives essera <del>cancellate</del>. In addition, paginas que incorpora files que non existe es listate in [[:$1]].',
-'wantedfiletext-nocat' => 'Le sequente files es usate ma non existe. Files ab depositos distante pote esser listate malgrado que illos existe. Omne tal false positives essera <del>cancellate</del>.',
+'wantedfiletext-cat' => 'Le sequente files es usate ma non existe. Le files ab repositorios externe pote esser listate malgrado que illos existe. Omne tal false positivos essera <del>cancellate</del>. In addition, paginas que incorpora files que non existe es listate in [[:$1]].',
+'wantedfiletext-nocat' => 'Le sequente files es usate ma non existe. Files ab repositorios externe pote esser listate malgrado que illos existe. Omne tal false positivos essera <del>cancellate</del>.',
 'wantedtemplates' => 'Patronos desirate',
 'mostlinked' => 'Paginas le plus ligate',
 'mostlinkedcategories' => 'Categorias le plus ligate',
@@ -2726,8 +2730,8 @@ non pote renominar un pagina al mesme titulo.',
 'protectedpagemovewarning' => "'''Attention:''' Iste pagina ha essite protegite de sorta que solmente usatores con privilegios de administrator pote renominar lo. Le ultime entrata del registro es fornite hic infra pro referentia:",
 'semiprotectedpagemovewarning' => "'''Nota:''' Iste pagina ha essite protegite de sorta que solmente usatores registrate pote renominar lo. Le ultime entrata del registro es fornite hic infra pro referentia:",
 'move-over-sharedrepo' => '== File existe ==
-[[:$1]] existe ja in un deposito usate in commun. Si tu renomina le file a iste titulo, illo supplantara le file del deposito.',
-'file-exists-sharedrepo' => 'Le nomine de file seligite es ja in uso in un deposito usate in commun.
+[[:$1]] existe in un repositorio partite. Si le file es renominate a iste titulo, illo supplantara le file partite.',
+'file-exists-sharedrepo' => 'Le nomine de file seligite es ja in uso in un repositorio partite.
 Per favor selige un altere nomine.',
 
 # Export
@@ -3846,6 +3850,8 @@ Si non, tu pote usar le formulario facile hic infra. Tu commento essera addite a
 'api-error-empty-file' => 'Le file que tu submitteva es vacue.',
 'api-error-emptypage' => 'Le creation de nove paginas vacue non es permittite.',
 'api-error-fetchfileerror' => 'Error interne: qualcosa errava durante le obtention del file.',
+'api-error-fileexists-forbidden' => 'Un file con le nomine "$1" jam existe, e non pote esser superscribite.',
+'api-error-fileexists-shared-forbidden' => 'Un file con le nomine "$1" jam existe in le repositorio commun de files, e non pote esser superscribite.',
 'api-error-file-too-large' => 'Le file que tu submitteva es troppo grande.',
 'api-error-filename-tooshort' => 'Le nomine del file es troppo curte.',
 'api-error-filetype-banned' => 'Iste typo de file es prohibite.',
index 348424a..4867b60 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Joemaza
  * @author Kaganer
  * @author Lam-ang
  * @author Saluyot
@@ -37,11 +38,11 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'Pinag-ugisan ti silpo:',
 'tog-justify' => 'Limpiaen dagiti parapo',
-'tog-hideminor' => 'Ilemmeng dagiti babassit a panag-urnos kadagiti naudi a sinuk-sukatan',
+'tog-hideminor' => 'Ilemmeng dagiti bassit a panagbaliw kadagiti naudi a panagisukat',
 'tog-hidepatrolled' => 'Ilemmeng dagiti napatruliaan nga inurnos kadagiti naudi a sinuk-sukatan',
 'tog-newpageshidepatrolled' => 'Ilemmeng dagiti napatruliaan a panid idiay baro a listaan ti panid',
 'tog-extendwatchlist' => 'Ipalawa ti listaan ti bambantayan tapno maipakita amin a nasukatan, tapno saan laeng a dagiti nabiit',
-'tog-usenewrc' => 'Usaren ti napasayaat a kinaudi a sinuk-sukatan (masapul ti JavaScript)',
+'tog-usenewrc' => 'Dagiti grupo panagbaliw babaen ti panid kadagiti kinaudi a panagbaliw ken banbantayan  (masapul ti JavaScript)',
 'tog-numberheadings' => 'Automatiko a pabilangan dagiti paulo',
 'tog-showtoolbar' => 'Ipakita ti ramit ti panag-urnos (masapul ti JavaScript)',
 'tog-editondblclick' => 'Urnosen dagiti panid iti mamindua a panagtakla (masapul ti JavaScript)',
@@ -50,7 +51,7 @@ $messages = array(
 'tog-showtoc' => 'Ipakita ti tabla dagiti linaon (para kadagiti panid nga addan ti ad-adu ngem dagiti 3 a paulo)',
 'tog-rememberpassword' => 'Laglagipem ti iseserrekko iti daytoy a pagbasabasa (iti kaadu nga $1 {{PLURAL:$1|aldaw|al-aldaw}})',
 'tog-watchcreations' => 'Inayon dagiti inaramidko a pampanid iti listaan ti bambantayak',
-'tog-watchdefault' => 'Inayon dagiti inurnos ko a pampanid iti listaan ti bambantayak',
+'tog-watchdefault' => 'Inayon dagiti inurnosko a pampanid iti listaan ti bambantayak',
 'tog-watchmoves' => 'Inayon dagiti inyalisko a pampanid iti listaan ti bambantayak',
 'tog-watchdeletion' => 'Inayon dagiti inikkatko a pampanid iti listaan ti bambantayak',
 'tog-minordefault' => 'Markaan amin nga  inurnos a kas sigud a bassit',
@@ -69,7 +70,7 @@ $messages = array(
 'tog-showjumplinks' => 'Ikkan ti pakabaelan  a  "mapan iti"  agpalaka a sumrek kadagiti panagsilpo',
 'tog-uselivepreview' => 'Usaren ti panag-padas tattan (masapul ti JavaScript) (suuten laeng)',
 'tog-forceeditsummary' => 'Pakaammuannak no sumrek ti blanko a pakabuklan ti panag-urnos',
-'tog-watchlisthideown' => 'Ilemmeng idiay listaan ti bambantayan dagiti inurnos ko',
+'tog-watchlisthideown' => 'Ilemmeng idiay listaan ti bambantayan dagiti inurnosko',
 'tog-watchlisthidebots' => 'Ilemmeng idiay listaan ti bambantayan dagiti inurnos ti bot',
 'tog-watchlisthideminor' => 'Ilemmeng idiay listaan ti bambantayan dagiti bassit nga  inurnos',
 'tog-watchlisthideliu' => 'Ilemmeng idiay listaan ti bambantayan dagiti inurnos ti nakastrek nga agar-aramat',
@@ -391,6 +392,8 @@ Panngaasi nga  ibagam kadagiti [[Special:ListUsers/sysop|administrador]], isurat
 'cannotdelete' => 'Ti panid wenno ti papeles "$1" ket saan a maikkat.
 Amangan no addan sabali a nangikkat.',
 'cannotdelete-title' => 'Saan a maikkat ti panid  "$1"',
+'delete-hook-aborted' => 'Inukas ti kawit ti panagborra.
+Awan ti intedna a palawag.',
 'badtitle' => 'Madi a titulo',
 'badtitletext' => 'Ti nakiddaw a titulo ti panid ket imbalido, blanko, wenno saan nga umno a naisilpo a titulo a maki-pagsasao wenno maki-wiki.
 Adda ngata nagyan a maysa wenno ad-adu pay a kababalin a saan a mausar iti titulo.',
@@ -427,6 +430,8 @@ Ti naited a rason ket ''$2''.",
 Ti administrador a nagserra ket nagited iti daytoy a panagilawlawag "\'\'$3\'\'".',
 'invalidtitle-knownnamespace' => 'Imbalido a titulo nga adda ti nagan ti lugar "$2" ken testo "$3"',
 'invalidtitle-unknownnamespace' => 'Imbalido a titulo nga adda di-amammo a nagan ti lugar a numero $1 ken testo "$2"',
+'exception-nologin' => 'Saan a nakastrek',
+'exception-nologin-text' => 'Daytoy a panid wenno aramid ket makasapul kenka ti sumrek iti daytoy a wiki.',
 
 # Virus scanner
 'virus-badscanner' => 'Madi di panaka-aramidna: Di am-ammo a birus a panagskan: "$1"',
@@ -1592,6 +1597,7 @@ No ti parikut ket agsubli latta, kontaken ti [[Special:ListUsers/sysop|administr
 'backend-fail-connect' => 'Saan a makaikapet idiay pagidulinan a kalikudan  "$1".',
 'backend-fail-internal' => 'Adda di amammo a biddut ti napasamak idiay pagidulinan a kalikudan "$1".',
 'backend-fail-contenttype' => 'Saan a maammoan ti kita ti linaon ti papeles nga idulin idiay "$1".',
+'backend-fail-batchsize' => 'Nagited ti nagipenpenan ti bunggoy iti $1 a papeles {{PLURAL:$1|nga aramid|nga ar-aramid}}; ti patingga ket $2 {{PLURAL:$2|nga aramid|nga ar-aramid}}.',
 'backend-fail-usable' => 'Saan a masuratan ti papeles $1 gapu ta awan ti makaanay a pammalubos wenno awan dagiti direktorio/pangikabilan.',
 
 # Lock manager
@@ -3667,6 +3673,8 @@ Nupay kasta, mau-sarmo ti nakabuklan dita baba. Ti komentario nga itedmo ket mai
 'api-error-empty-file' => 'Ti papeles nga intedmo ket awan ti nagyan na.',
 'api-error-emptypage' => 'Agar-aramid ti baro, dagiti awan ti linaon na a panid ket saan a maipalubos.',
 'api-error-fetchfileerror' => 'Kinauneg a biddut: Addaan ti dakes a napasamak idi agalala ti papeles.',
+'api-error-fileexists-forbidden' => 'Ti papeles nga agnagan ti "$1" ket addan, ken saan a mabalin a masuratan manen.',
+'api-error-fileexists-shared-forbidden' => 'Ti papeles nga agnagan ti "$1" ket adda idiay pagbibingayan a repositorio ti papeles, ken saan a mabalin a masuratan manen.',
 'api-error-file-too-large' => 'Ti papeles nga intedmo ket dakkel unay.',
 'api-error-filename-tooshort' => 'Ti nagan daytoy a papeles ket bassit unay.',
 'api-error-filetype-banned' => 'Ti kita daytoy a papeles ket maiparit.',
@@ -3705,4 +3713,6 @@ Nupay kasta, mau-sarmo ti nakabuklan dita baba. Ti komentario nga itedmo ket mai
 'duration-centuries' => '$1 {{PLURAL:$1|siglo|sig-siglo}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milenio|mil-milenio}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Saan a makaala kadagiti kandado ti server $1.',
 );
index 62e2fcd..024b453 100644 (file)
@@ -475,7 +475,7 @@ $1',
 'helppage' => 'Help:Efnisyfirlit',
 'mainpage' => 'Forsíða',
 'mainpage-description' => 'Forsíða',
-'policy-url' => 'Project:Stjórnarstefnur',
+'policy-url' => 'Project:Samþykktir',
 'portal' => 'Samfélagsgátt',
 'portal-url' => 'Project:Samfélagsgátt',
 'privacy' => 'Meðferð persónuupplýsinga',
index 25ab632..7b19079 100644 (file)
@@ -269,7 +269,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Nascondi le modifiche verificate nelle ultime modifiche',
 'tog-newpageshidepatrolled' => "Nascondi le pagine verificate dall'elenco delle pagine più recenti",
 'tog-extendwatchlist' => "Mostra tutte le modifiche agli osservati speciali, non solo l'ultima",
-'tog-usenewrc' => 'Utilizza le ultime modifiche avanzate (richiede JavaScript)',
+'tog-usenewrc' => 'Raggruppa le modifiche per pagina nelle ultime modifiche e negli osservati speciali (richiede JavaScript)',
 'tog-numberheadings' => 'Numerazione automatica dei titoli di sezione',
 'tog-showtoolbar' => 'Mostra barra degli strumenti di modifica (richiede JavaScript)',
 'tog-editondblclick' => 'Modifica delle pagine tramite doppio clic (richiede JavaScript)',
@@ -277,17 +277,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Modifica delle sezioni tramite clic destro sul titolo (richiede JavaScript)',
 'tog-showtoc' => "Mostra l'indice per le pagine con più di 3 sezioni",
 'tog-rememberpassword' => 'Ricorda la password su questo browser (per un massimo di $1 {{PLURAL:$1|giorno|giorni}})',
-'tog-watchcreations' => 'Aggiungi le pagine create agli osservati speciali',
-'tog-watchdefault' => 'Aggiungi le pagine modificate agli osservati speciali',
-'tog-watchmoves' => 'Aggiungi le pagine spostate agli osservati speciali',
-'tog-watchdeletion' => 'Aggiungi le pagine cancellate agli osservati speciali',
+'tog-watchcreations' => 'Aggiungi le pagine create e i file caricati agli osservati speciali',
+'tog-watchdefault' => 'Aggiungi le pagine e i file modificati agli osservati speciali',
+'tog-watchmoves' => 'Aggiungi le pagine e i file spostati agli osservati speciali',
+'tog-watchdeletion' => 'Aggiungi le pagine e i file cancellati agli osservati speciali',
 'tog-minordefault' => 'Indica ogni modifica come minore (solo come predefinito)',
 'tog-previewontop' => "Mostra l'anteprima sopra la casella di modifica e non sotto",
 'tog-previewonfirst' => "Mostra l'anteprima per la prima modifica",
 'tog-nocache' => 'Disabilitare la cache delle pagine del browser',
-'tog-enotifwatchlistpages' => 'Segnalami via e-mail le modifiche alle pagine osservate',
+'tog-enotifwatchlistpages' => 'Inviami una email quando viene modificata una pagina o un file presente tra gli osservati speciali',
 'tog-enotifusertalkpages' => 'Segnalami via e-mail le modifiche alla mia pagina di discussione',
-'tog-enotifminoredits' => 'Segnalami via e-mail anche le modifiche minori',
+'tog-enotifminoredits' => 'Inviami una email anche per le modifiche minori di pagine e file',
 'tog-enotifrevealaddr' => 'Rivela il mio indirizzo e-mail nei messaggi di avviso',
 'tog-shownumberswatching' => 'Mostra il numero di utenti che hanno la pagina in osservazione',
 'tog-oldsig' => 'Firma attuale:',
@@ -620,6 +620,8 @@ Si prega di segnalare l\'accaduto a un [[Special:ListUsers/sysop|amministratore]
 'cannotdelete' => 'Non è stato possibile cancellare il file "$1".
 Potrebbe essere stato già cancellato da qualcun altro.',
 'cannotdelete-title' => 'Impossibile eliminare la pagina "$1"',
+'delete-hook-aborted' => "La cancellazione è stata annullata dall'hook.
+Non è stata restituita alcuna spiegazione.",
 'badtitle' => 'Titolo non corretto',
 'badtitletext' => 'Il titolo della pagina richiesta è vuoto, errato o con caratteri non ammessi oppure deriva da un errore nei collegamenti tra siti wiki diversi o versioni in lingue diverse dello stesso sito.',
 'perfcached' => "I dati che seguono sono estratti da una copia ''cache'' del database, e potrebbero non essere aggiornati. Un massimo di {{PLURAL:$1|un risultato è disponibile|$1 risultati sono disponibili}} in cache.",
@@ -652,6 +654,8 @@ La motivazione è la seguente: ''$2''.",
 L\'amministratore che lo ha bloccato ha fornito questa motivazione: "$3".',
 'invalidtitle-knownnamespace' => 'Titolo non valido con namespace "$2" e testo "$3"',
 'invalidtitle-unknownnamespace' => 'Titolo non valido con namespace sconosciuto "$1" e testo "$2"',
+'exception-nologin' => 'Accesso non effettuato',
+'exception-nologin-text' => "Questa pagina o azione richiede che tu abbia effettuato l'accesso su questo wiki.",
 
 # Virus scanner
 'virus-badscanner' => "Errore di configurazione: antivirus sconosciuto: ''$1''",
@@ -1297,7 +1301,7 @@ Vedi l'[[Special:BlockList|elenco dei blocchi]] per l'elenco dei bandi e dei blo
 'prefs-watchlist-days-max' => 'Massimo $1 {{PLURAL:$1|giorno|giorni}}',
 'prefs-watchlist-edits' => 'Numero di modifiche da mostrare con le funzioni avanzate:',
 'prefs-watchlist-edits-max' => 'Numero massimo: 1000',
-'prefs-watchlist-token' => 'Token Osservati speciali:',
+'prefs-watchlist-token' => 'Token osservati speciali:',
 'prefs-misc' => 'Varie',
 'prefs-resetpass' => 'Cambia password',
 'prefs-changeemail' => 'Modifica e-mail',
@@ -3470,7 +3474,7 @@ I collegamenti successivi, sulla stessa riga, sono considerati come eccezioni (o
 'limitall' => 'tutti',
 
 # E-mail address confirmation
-'confirmemail' => 'Conferma indirizzo e-mail',
+'confirmemail' => 'Conferma indirizzo email',
 'confirmemail_noemail' => 'Non è stato indicato un indirizzo e-mail valido nelle proprie [[Special:Preferences|preferenze]].',
 'confirmemail_text' => "{{SITENAME}} richiede la verifica dell'indirizzo e-mail prima di poter usare le relative funzioni. Premere il pulsante qui sotto per inviare una richiesta di conferma al proprio indirizzo; nel messaggio è presente un collegamento che contiene un codice. Visitare il collegamento con il proprio browser per confermare che l'indirizzo e-mail è valido.",
 'confirmemail_pending' => "Il codice di conferma è già stato spedito via posta elettronica; se l'account è stato
@@ -3826,6 +3830,8 @@ Le immagini vengono mostrate alla massima risoluzione disponibile, per gli altri
 'api-error-empty-file' => 'Il file selezionato era vuoto.',
 'api-error-emptypage' => 'La creazione di nuove pagine vuote non è consentita.',
 'api-error-fetchfileerror' => "Errore interno: c'è stato un problema durante il recupero del documento.",
+'api-error-fileexists-forbidden' => 'Un file di nome "$1" già esiste e non può essere sovrascritto.',
+'api-error-fileexists-shared-forbidden' => 'Un file di nome "$1" già esiste nel repository condiviso e non può essere sovrascritto.',
 'api-error-file-too-large' => 'Il file selezionato era troppo grande.',
 'api-error-filename-tooshort' => 'Il nome del file è troppo breve.',
 'api-error-filetype-banned' => 'Questo tipo di file non è accettato.',
index 0273ed7..cc2ca02 100644 (file)
@@ -797,9 +797,9 @@ $2',
 他の名前を選んでください。',
 'loginerror' => 'ログインのエラー',
 'createaccounterror' => 'アカウントを作成できませんでした: $1',
-'nocookiesnew' => 'å\88©ç\94¨è\80\85ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\82\92ä½\9cæ\88\90ã\81\97ましたが、ログインしていません。
+'nocookiesnew' => 'å\88©ç\94¨è\80\85ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\81¯ä½\9cæ\88\90ã\81\95ã\82\8cましたが、ログインしていません。
 {{SITENAME}}ではログインにCookieを使用します。
-Cookieを無効にしているようです。
+ご使用のブラウザではCookieが無効になっています。
 Cookieを有効にしてから、新しい利用者名とパスワードでログインしてください。',
 'nocookieslogin' => '{{SITENAME}}ではログインにCookieを使用します。
 Cookieを無効にしているようです。
@@ -1357,7 +1357,7 @@ $1",
 'difference-multipage' => '(ページ間の差分)',
 'lineno' => '$1行:',
 'compareselectedversions' => '選択した版同士を比較',
-'showhideselectedversions' => '選択した版を表示もしくは非表示',
+'showhideselectedversions' => '選択した版を表示/非表示',
 'editundo' => '取り消し',
 'diff-multi' => '({{PLURAL:$2|$2人の利用者}}による、{{PLURAL:$1|間の$1版}}が非表示)',
 'diff-multi-manyusers' => '({{PLURAL:$2|$2人を超える利用者}}による、{{PLURAL:$1|間の$1版}}が非表示)',
@@ -1757,7 +1757,7 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'recentchangeslinked-title' => '「$1」と関連する変更',
 'recentchangeslinked-noresult' => '指定期間中に指定ページのリンク先に変更はありませんでした。',
 'recentchangeslinked-summary' => "これは、指定したページからリンクされている(または指定したカテゴリに含まれている)ページへの最近の変更の一覧です。
-[[Special:Watchlist|è\87ªå\88\86ã\81®ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88]]ã\81«ã\81\82ã\82\8bã\83\9aã\83¼ã\82¸ã\81¯'''太å­\97'''ã\81§è¡¨ç¤ºã\81\95ã\82\8cã\81¦ã\81\84ます。",
+[[Special:Watchlist|è\87ªå\88\86ã\81®ã\82¦ã\82©ã\83\83ã\83\81ã\83ªã\82¹ã\83\88]]ã\81«ã\81\82ã\82\8bã\83\9aã\83¼ã\82¸ã\81¯'''太å­\97'''ã\81«ã\81ªã\82\8aます。",
 'recentchangeslinked-page' => 'ページ名:',
 'recentchangeslinked-to' => '代わりに、指定したページへのリンク元での変更を表示',
 
@@ -2268,6 +2268,7 @@ contenttype/subtypeの形式で入力してください(例:<tt>image/jpeg</
 記録の種類、実行した利用者(大文字小文字は区別)、影響を受けたページ(大文字小文字は区別)による絞り込みができます。',
 'logempty' => '該当する記録はありません。',
 'log-title-wildcard' => 'この文字列で始まるページ名を検索',
+'showhideselectedlogentries' => '選択した記録の項目を表示/非表示',
 
 # Special:AllPages
 'allpages' => '全ページ',
@@ -2531,7 +2532,7 @@ $2による直前の版へ変更されました。',
 'protectedarticle' => '「[[$1]]」を保護しました',
 'modifiedarticleprotection' => '「[[$1]]」の保護レベルを変更しました',
 'unprotectedarticle' => '「[[$1]]」の保護を解除しました',
-'movedarticleprotection' => '保護の設定を「[[$2]]」から「[[$1]]」へ移動しました',
+'movedarticleprotection' => ' が保護の設定を「[[$2]]」から「[[$1]]」へ移動しました',
 'protect-title' => '「$1」の保護レベルを変更',
 'protect-title-notallowed' => '「$1」の保護レベルを表示',
 'prot_1movedto2' => '[[$1]] を [[$2]] へ移動',
@@ -2664,7 +2665,7 @@ $1',
 'month' => 'これ以前の月:',
 'year' => 'これ以前の年:',
 
-'sp-contributions-newbies' => '新規利用者の投稿のみ表示',
+'sp-contributions-newbies' => '新しい利用者からの投稿のみ表示',
 'sp-contributions-newbies-sub' => '新規利用者のみ',
 'sp-contributions-newbies-title' => '新規利用者の投稿記録',
 'sp-contributions-blocklog' => 'ブロック記録',
@@ -3092,7 +3093,7 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'tooltip-ca-unwatch' => 'このページをウォッチリストから除去する',
 'tooltip-search' => '{{SITENAME}}内を検索する',
 'tooltip-search-go' => '厳密に一致する名前のページが存在すれば、そのページへ移動する',
-'tooltip-search-fulltext' => '入力した文字列が含まれるページを検索する',
+'tooltip-search-fulltext' => 'この文字列が含まれるページを探す',
 'tooltip-p-logo' => 'メインページに移動する',
 'tooltip-n-mainpage' => 'メインページに移動する',
 'tooltip-n-mainpage-description' => 'メインページに移動する',
@@ -3114,7 +3115,7 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'tooltip-ca-nstab-main' => '本文を閲覧',
 'tooltip-ca-nstab-user' => '利用者ページを表示',
 'tooltip-ca-nstab-media' => 'メディアページを表示',
-'tooltip-ca-nstab-special' => 'これは特別ページです。編集できません。',
+'tooltip-ca-nstab-special' => 'ã\81\93ã\82\8cã\81¯ç\89¹å\88¥ã\83\9aã\83¼ã\82¸ã\81§ã\81\99ã\80\82ç·¨é\9b\86ã\81¯ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\80\82',
 'tooltip-ca-nstab-project' => 'プロジェクトページを表示',
 'tooltip-ca-nstab-image' => 'ファイルページを表示',
 'tooltip-ca-nstab-mediawiki' => 'システムメッセージを表示',
@@ -4088,14 +4089,14 @@ MediaWikiは、有用であることを期待して配布されていますが
 'intentionallyblankpage' => 'このページは意図的に白紙にされています。',
 
 # External image whitelist
-'external_image_whitelist' => '  #ã\81\93ã\81®è¡\8cã\81¯ã\81\9dのままにしておいてください<pre>
+'external_image_whitelist' => '  #ã\81\93ã\81®è¡\8cã\81¯ã\81\93のままにしておいてください<pre>
 #この下に正規表現(//の間に入る記述)を置いてください
 #外部の(ホットリンクされている)画像の URL と一致するか検査されます
 #一致する場合は画像として、一致しない場合は画像へのリンクとして表示されます
 #行の頭に # を付けるとコメントとして扱われます
 #大文字と小文字は区別されません
 
-#æ­£è¦\8f表ç\8f¾ã\81¯ã\81\99ã\81¹ã\81¦ã\81\93ã\81®è¡\8cã\81®ä¸\8aã\81«ç½®ã\81\84ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82ã\81\93ã\81®è¡\8cã\82\92å¤\89æ\9b´ã\81\97ã\81ªã\81\84ã\81§ください</pre>',
+#æ­£è¦\8f表ç\8f¾ã\81¯ã\81\99ã\81¹ã\81¦ã\81\93ã\81®è¡\8cã\81®ä¸\8aã\81«ç½®ã\81\84ã\81¦ã\81\8fã\81 ã\81\95ã\81\84ã\80\82ã\81\93ã\81®è¡\8cã\81¯ã\81\93ã\81®ã\81¾ã\81¾ã\81«ã\81\97ã\81¦ã\81\8aã\81\84ã\81¦ください</pre>',
 
 # Special:Tags
 'tags' => '有効な変更タグ',
index 2f6704b..e3e527f 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Jutish (Jysk)
+/** Jutish (jysk)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 828abd5..f11e38f 100644 (file)
@@ -156,7 +156,7 @@ $messages = array(
 'tog-hidepatrolled' => 'დამალეთ შესწორებული რედაქტირებები ბოლო ცვლილებებში',
 'tog-newpageshidepatrolled' => 'დამალეთ შემოწმებული გვერდები ახალი გვერდების სიიდან',
 'tog-extendwatchlist' => 'გავრცობილი კონტროლის სია ყველა დაკავშირებული ცვლილების ჩვენების ჩათვლით',
-'tog-usenewrc' => 'á\83\92á\83\90á\83\9bá\83\9dá\83\98á\83§á\83\94á\83\9cá\83\94 á\83\91á\83\9dá\83\9aá\83\9d á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\94á\83\91á\83\98á\83¡ á\83£á\83\99á\83\94á\83\97á\83\94á\83¡á\83\98 á\83¡á\83\98á\83\90 (ჯავასკრიპტი)',
+'tog-usenewrc' => 'á\83\91á\83\9dá\83\9aá\83\9d á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\94á\83\91á\83\98á\83¡ á\83\93á\83\90 á\83\99á\83\9dá\83\9cá\83¢á\83 á\83\9dá\83\9aá\83\98á\83¡ á\83¡á\83\98á\83\98á\83¡ á\83ªá\83\95á\83\9aá\83\98á\83\9aá\83\94á\83\91á\83\94á\83\91á\83\98á\83¡ á\83\93á\83\90á\83¯á\83\92á\83£á\83¤á\83\94á\83\91á\83\90 (á\83¡á\83\90á\83­á\83\98á\83 á\83\9dá\83\90 ჯავასკრიპტი)',
 'tog-numberheadings' => 'ავტომატურად დანომრე ქვესათაურები',
 'tog-showtoolbar' => 'რედაქტირების ინსტრუმენტების ჩვენება (ჯავასკრიპტი)',
 'tog-editondblclick' => 'გვერდების რედაქტირება ორმაგი დაწკაპუნებით (ჯავასკრიპტი)',
@@ -546,6 +546,8 @@ $2',
 ადმინისტრატორი რომელმაც ის დაბლოკა მიუთითა შემდეგი მიზეზი: "$3".',
 'invalidtitle-knownnamespace' => 'დაუშვებელი სათაური სახელთა სივრცე "$2" და ტექსტი "$3"-თან',
 'invalidtitle-unknownnamespace' => 'დაუშვებელი სათაური უცნობი სახელთა სივრცის ნომერი $1 და ტექსტი "$2"-ით',
+'exception-nologin' => 'შესვლა არ განხორციელდა',
+'exception-nologin-text' => 'ამ გვერდის სანახავად ან მოთხოვნილი მოქმედების შესასრულებლად საჭიროა სისტემაში შესვლა.',
 
 # Virus scanner
 'virus-badscanner' => "შეცდომა. ვირუსთა უცნობი სკანერი: ''$1''",
@@ -3884,4 +3886,6 @@ MediaWiki ვრცელდება იმ იმედით, რომ ი
 'duration-centuries' => '$1 {{PLURAL:$1|საუკუნე|საუკუნე}}',
 'duration-millennia' => '$1 {{PLURAL:$1|ათასწლეული|ათასწლეული}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'ვერ მოხერხდა ბლოკირების მიღება სერვერზე $1.',
 );
index d68e560..bca56ac 100644 (file)
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'ТехьэпIэхэр щIэтхъэн:',
-'tog-justify' => 'БгъуагъкIэ напэкIуэцIыр зэгъэзэхуэн',
-'tog-hideminor' => 'ГъэпщкIун: кIуэдкIэ зыхэмылэжьыхьа, щIэуэ яхъуэжа тхылъым',
-'tog-hidepatrolled' => 'ГъэпшкIун гъэтэрэзыгъуэ щIэлъыплъахэм я тхылъ гъэтэрэзыгъуэщIэхэр',
-'tog-newpageshidepatrolled' => 'Ð\93Ñ\8aÑ\8dпÑ\88кIÑ\83н Ð½Ð°Ð¿Ñ\8dкIÑ\83Ñ\8dÑ\86I Ñ\89\8dлÑ\8aÑ\8bплÑ\8aаÑ\85Ñ\8dм Ñ\8f Ñ\82Ñ\85Ñ\8bлÑ\8a Ð½Ð°Ð¿Ñ\8dкIÑ\83Ñ\8dÑ\86I-Ñ\89\8dÑ\85Ñ\8dÑ\80',
+'tog-underline' => 'ТехьэпӀэхэр щӀэтхъэн:',
+'tog-justify' => 'БгъуагъкӀэ напэкӀуэцӀыр зэгъэзэхуэн',
+'tog-hideminor' => 'Гъэтэрэзыгъуэ цӀыкӀухэр гъэпшкӀун, щӀэуэ яхъуэжахэм я тхылъым',
+'tog-hidepatrolled' => 'Гъэтэрэзыгъуэ зыщӀэлъыплъахэр гъэпшкӀун, щӀэуэ яхъуэжахэм я тхылъым',
+'tog-newpageshidepatrolled' => 'Ð\9dапÑ\8dкÓ\80Ñ\83Ñ\8dÑ\86Ó\80 Ð·Ñ\8bÑ\89Ó\80Ñ\8dлÑ\8aÑ\8bплÑ\8aаÑ\85Ñ\8dÑ\80 Ð³Ñ\8aÑ\8dпÑ\88кÓ\80Ñ\83н, Ð½Ð°Ð¿Ñ\8dкÓ\80Ñ\83Ñ\8dÑ\86Ó\80 Ñ\89Ó\80Ñ\8dÑ\85Ñ\8dм Ñ\8f Ñ\82Ñ\85Ñ\8bлÑ\8aÑ\8bм',
 'tog-extendwatchlist' => 'ЩӀэлъыплъыгъуэм и тхылъышхуэ, яужырэй къуэдейхэм нэмыщӀу зэхъуэкӀыгъуэ псори хэту',
 'tog-usenewrc' => 'Гъэтэрэзыгъуэ щӀэхэм я тхылъ нэхъыфӀыр къэгъэсэбэпын (JavaScript хуэныкъуэ)',
 'tog-numberheadings' => 'Псалъащхьэхэм автоматику номер ятын',
@@ -143,6 +143,7 @@ $messages = array(
 'listingcontinuesabbrev' => '(кӀэлъыкуэгъуэ)',
 'index-category' => 'Индекс зырат напэкӀуэцӀхэр',
 'noindex-category' => 'НапэкӀуэцӀ индекс зыхуэмыныкуъэхэр',
+'broken-file-category' => 'Файл техьэпӀэхэр здэмылажэ напэкӀуэцӀхэр',
 
 'about' => 'И гугъу',
 'article' => 'Тхыгъэ',
@@ -199,7 +200,7 @@ $messages = array(
 'print' => 'КъыдэгъэкӀын',
 'view' => 'Еплъын',
 'edit' => 'Гъэтэрэзын',
-'create' => 'ЩIын',
+'create' => 'ЩӀын',
 'editthispage' => 'Мы напэкIуэцIыр гъэтэрэзын',
 'create-this-page' => 'Мыбы и напэкӀуэцӀ щӀын',
 'delete' => 'Ихын',
@@ -225,7 +226,7 @@ $messages = array(
 'projectpage' => 'Проэктым и напэкӀуэцӀым еплъын',
 'imagepage' => 'Файлым и напэкIуэцIым еплъын',
 'mediawikipage' => 'Тхыгъэм и напэкIуэцIым еплъын',
-'templatepage' => 'ШаблонÑ\8bм Ð¸ Ð½Ð°Ð¿Ñ\8dкIÑ\83Ñ\8dÑ\86\8bм Ñ\85Ñ\8dплÑ\8aÑ\8dн',
+'templatepage' => 'ЩапÑ\85Ñ\8aÑ\8dм Ð¸ Ð½Ð°Ð¿Ñ\8dкIÑ\83Ñ\8dÑ\86\8bм ÐµÐ¿Ð»Ñ\8aÑ\8bн',
 'viewhelppage' => 'ЩIэупщIэм и напэкIуэцI',
 'categorypage' => 'Категорием и напэкIуэцIым хэплъэн',
 'viewtalkpage' => 'Тепсэлъыхьыгъуэм еплъын',
@@ -302,6 +303,8 @@ $1',
 'page-rss-feed' => '$1 — RSS-тыныгъэ',
 'page-atom-feed' => '$1 — Atom-тыныгъэ',
 'red-link-title' => '$1 (апхуэдэ напэкӀуэцӀ щыӀэкъым)',
+'sort-descending' => 'Нэхъ цӀыкӀумкӀэ/жьымкӀэ екӀуэкӀыу зэгъэзэхуэн',
+'sort-ascending' => 'Нэхъ инымкӀэ/щӀэмкӀэ екӀуэкӀыу зэгъэзэхуэн',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Тхыгъэ',
@@ -309,9 +312,9 @@ $1',
 'nstab-media' => 'Медиэ напэкӀуэцӀ',
 'nstab-special' => 'Лэжыгъэ напэкӀуэцӀ',
 'nstab-project' => 'Проэктым теухуауэ',
-'nstab-image' => 'Файл',
+'nstab-image' => 'ТеплÑ\8aÑ\8d',
 'nstab-mediawiki' => 'Тхыгъэ',
-'nstab-template' => 'Шаблон',
+'nstab-template' => 'ЩапÑ\85Ñ\8aÑ\8d',
 'nstab-help' => 'ДэIэпыкъуэгъу',
 'nstab-category' => 'Категориэ',
 
@@ -367,6 +370,7 @@ $1',
 'badarticleerror' => 'А лэжьыгъэр мы напэкӀуэцӀым егъэкӀуэкӀыфынукъым.',
 'cannotdelete' => 'НапэкӀуэцӀыр иэ файл «$1»-р ихыфкъым.
 НэмыщӀ гуэрэм ирихагъэнкӀ хъун.',
+'cannotdelete-title' => 'НапэкӀуэцӀ «$1» ипх хъунукъым',
 'badtitle' => 'ЦӀэр хъунукъым',
 'badtitletext' => 'УзщӀэупщӀэ напэкӀуэцӀым и цӀэр тэрэзкъым, нэщӀ, мытэрэзу интервикир иэ бзэ-зэхуэкур щытщ. И цӀэм дэмыгъэ емыкӀуэалъэ хэтынкӀи хъун.',
 'perfcached' => 'Мы Ӏохугъуэхэр кэшым къыхахэ, яужырей зэхъуэкӀыгъуэхэр химыубыдэнкӀи мэхъу. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
@@ -377,11 +381,13 @@ $1',
 Функциэ: $1<br />
 ЩӀэлъэуэгъуэ: $2',
 'viewsource' => 'Хэплъэн',
+'viewsource-title' => 'НапэкӀуэцӀ $1 и япэрей тхыгъэ щытыкӀэм ухуоплъэщ',
 'actionthrottled' => 'ЩӀэхыгъэм убыдыгъэ иӀэ',
 'actionthrottledtext' => 'Анти-спамым пэщытыным шъхьэкӀэ, зэманыгъуэ кӀэщӀым уигугъэр куэду и къэгъэсэбэпыныр теубыдауэ щытщ. 
 Дэкъикъэ зытӀущ тегъэкӀи, иджыри зэ щӀыж.',
 'protectedpagetext' => 'Мы напэкӀуэцӀыр и гъэтэрэзыным теубыдауэ щытщ',
 'viewsourcetext' => 'Мы напэкӀуэцӀым и нэхъыщхьэ тхылъыр мыбдежьым уэплъыфыну, и копиэри ипхыфыну:',
+'viewyourtext' => "Мы напэкӀуэцӀым '''уи гъэтэрызыгъуэхэм''' я тхылъым уеплъыфынущ, тхылъым и копиэри пщӀыфынущ:",
 'protectedinterface' => 'Мы напэкӀуэцӀым интерфейс тхылъ хэтщ, программэтыныгъэм еуэ. Хьэуэйн имыӀэн щхьэкӀэ, и гъэтэрэзыныр теубыдауэ щытщ.',
 'editinginterface' => "'''Гу лъытэ:''' Бгъэтэрэз напэкӀуэцӀым интерфэйс тхылъ хэтщ, программэтыгъэм еуэ.
 И зэхъуэкӀыгъуэм интерфэйсым и сурэтым хэуэну адрей цӀыхухэтхэм щхьэкӀэ.
@@ -533,8 +539,8 @@ $2',
 'headline_tip' => 'ТІуанэ щхьэгъэ псалъащхьэ',
 'nowiki_sample' => 'Формациэ мыщӀа тхыгъэр мыбдеж игъэувэ',
 'nowiki_tip' => 'Вики-форматыр Iухын',
-'image_tip' => 'Файл кӀуэцӀылъу',
-'media_tip' => 'ФайлÑ\8bм и техьэпӀэ',
+'image_tip' => 'ТеплÑ\8aÑ\8d кӀуэцӀылъу',
+'media_tip' => 'ТеплÑ\8aÑ\8dм и техьэпӀэ',
 'sig_tip' => 'Уи ӀэпэщӀэдзымрэ зэман щытехуэмрэ',
 'hr_tip' => 'ЩӀэтхъэгъуэ щӀыхь (куэдрэ къэвмыгъэмэбэп)',
 
@@ -613,10 +619,10 @@ $2',
 'blocked-notice-logextract' => 'Мы цӀыхухэтыр иджыпсту теубыдауэ щытщ.
 ИщӀагъымкӀэ теубыдыгъэ тхылъым и яужырей итхэгъуэр гъэлъэгъуа:',
 'clearyourcache' => "'''Къэохугъуэ:'''Итха яуж зэхъуэкӀыгъу хъуар къэнэн щхьэкӀэ, уи браузэрым и кэшыр гъэкъэбзэн хуэй: '''Mozilla / Firefox''': ''Ctrl+Shift+R'', '''IE:''' ''Ctrl+F5'', '''Safari''': ''Cmd+Shift+R'', '''Konqueror''': ''F5'', '''Opera''': ''Tools→Preferences''-мкӀэ уикӀын хуэй.",
-'usercssyoucanpreview' => "'''Ð\94Ñ\8dÓ\80Ñ\8dпÑ\8bкÑ\8aÑ\83Ñ\8dгÑ\8aÑ\83 Ð¿Ñ\81алÑ\8aÑ\8d.''' Ð¢ÐµÐºÑ\8aÑ\83зÑ\8d Â«{{int:showpreview}}» Ñ\83и CSS-Ñ\84айлÑ\8bм еплъын щхьэкӀэ итхэным ипэкӀэ.",
-'userjsyoucanpreview' => "'''Ð\94Ñ\8dÓ\80Ñ\8dпÑ\8bкÑ\8aÑ\83Ñ\8dгÑ\8aÑ\83 Ð¿Ñ\81алÑ\8aÑ\8d.''' Ð¢ÐµÐºÑ\8aÑ\83зÑ\8d Â«{{int:showpreview}}» Ñ\83и JS-Ñ\84айл щӀэм еплъыным щхьэкӀэ итхэным ипэкӀэ.",
-'usercsspreview' => 'Уигу игъэлъ, мыр иджыри уи CSS-файлым и пыухыкӀа еплъыгъуэкъым , ар иджыри хъумакъым.',
-'userjspreview' => "'''Ð\97Ñ\8bÑ\89Ñ\83мгÑ\8aÑ\8dгÑ\8aÑ\83пÑ\88Ñ\8d, Ð¼Ñ\8bÑ\80 Ñ\8fпÑ\8d-еплÑ\8a ÐºÑ\8aÑ\83Ñ\8dдей Ñ\83и javascript-Ñ\84айлÑ\8bм, иджыри итхауэ щыткъым!'''",
+'usercssyoucanpreview' => "'''Ð\94Ñ\8dÓ\80Ñ\8dпÑ\8bкÑ\8aÑ\83Ñ\8dгÑ\8aÑ\83 Ð¿Ñ\81алÑ\8aÑ\8d.''' Ð¢ÐµÐºÑ\8aÑ\83зÑ\8d Â«{{int:showpreview}}» Ñ\83и CSS-Ñ\82еплÑ\8aÑ\8dм еплъын щхьэкӀэ итхэным ипэкӀэ.",
+'userjsyoucanpreview' => "'''Ð\94Ñ\8dÓ\80Ñ\8dпÑ\8bкÑ\8aÑ\83Ñ\8dгÑ\8aÑ\83 Ð¿Ñ\81алÑ\8aÑ\8d.''' Ð¢ÐµÐºÑ\8aÑ\83зÑ\8d Â«{{int:showpreview}}» Ñ\83и JS-Ñ\82еплÑ\8aÑ\8d щӀэм еплъыным щхьэкӀэ итхэным ипэкӀэ.",
+'usercsspreview' => "'''Гу лъытэ, мыр япэ-еплъ къуэдейщ уи CSS-теплъэм, иджыри итхауэ щыткъым!'''",
+'userjspreview' => "'''Ð\93Ñ\83 Ð»Ñ\8aÑ\8bÑ\82Ñ\8d, Ð¼Ñ\8bÑ\80 Ñ\8fпÑ\8d-еплÑ\8a ÐºÑ\8aÑ\83Ñ\8dдейÑ\89 Ñ\83и javascript-Ñ\82еплÑ\8aÑ\8dм, иджыри итхауэ щыткъым!'''",
 'sitecsspreview' => "'''Зыщумгъэгъупшэ, мыр япэ-еплъ къуэдеуэ щытщ мы CSS-м.'''
 '''Иджыри итхауэ щыткъым!'''",
 'sitejspreview' => "'''Зыщумгъэгъупшэ, мыр япэ-еплъ къуэдеуэ щытщ мы JavaScript-кодым.'''
@@ -625,6 +631,7 @@ $2',
 'updated' => '(КъэгъэщӀырыщӀащ)',
 'note' => "'''Гулъытыгъуэ:'''",
 'previewnote' => "'''Мыр япэ-еплъ къуэдей, тхылъыр иджыри итхакъым!'''",
+'continue-editing' => 'Гъэтэрэзыгъуэм тегъэзэжьын',
 'previewconflict' => 'Мы япэ-еплъым тхылъыр редакторым и ищхьэ лъэныкъуэм дежь егъэлъыгъуэ зэрщытыным хуэду, иптхэн уигугъэ хъумэ.',
 'session_fail_preview' => "'''Хэукъуэгъуэ къыхэкӀа, серверым у гъэтэрэзыгъуэр къиштэфакъым сессиэм и идентификациэр фӀэкӀуэдри.
 Иджыри зэ щӀыжьи еплъ.
@@ -638,7 +645,9 @@ $2',
 'token_suffix_mismatch' => "'''Уи гъэтэрэзыгъуэр къэштауэ щыткъым, уи программэм тэрэзу дэмыгъэ пыгъэувэхэм зэремылэжьым щхьэкӀэ 
 гъэтэрэзыгъуэ лъэныкъуэгъым. Гъэтэрэзыгъуэр къыкӀимыштар тхыгъэм и тхылъыр къуаншэ мыхъун щхьэкӀэ.
 Апхуэдэ хэукъуэгъуэхэр къызхэкӀыфынур аноним зыщӀ уэб-проксихэм, хэукъуэгъуэ зыхэлъхэм.'''",
+'edit_form_incomplete' => "'''Гъэтэрэзыгъуэ формэм и Ӏыхьэ гуэрэхэр серверым нэсакъым. Хэплъэ, уи гъэтэрэзыгъуэхэр зэӀымхьами, иджыри зэ гъэкӀуэж.'''",
 'editing' => 'Гъэтэрэзын: $1',
+'creating' => 'ЩӀын $1',
 'editingsection' => 'Гъэтэрэзын $1 (секцэр)',
 'editingcomment' => 'Гъэтэрэзыгъуэ $1 (лъэныкъуэгъу/секциэ щӀэ)',
 'editconflict' => 'Редактированием зэпэщӀэуэныгъэ: $1',
@@ -675,9 +684,9 @@ $2',
 'cascadeprotectedwarning' => "'''Гу лъытэ:''' Мы напэкӀуэцӀыр згъэтэрэзыфынухэр «Тхьэмадэхэр» щыщ гупым хэтхэра, {{PLURAL:$1|напэкӀуэцӀ къыкӀэлъыкӀуэм щхьэкӀэ|напэкӀуэцӀ къыкӀэлъыкӀуэхэм щхьэкӀэ}} каскад хъунэныгъэ зэрателъым теухуауэ:",
 'titleprotectedwarning' => "'''Гу лъытэ. Мы напэкӀуэцӀыр зэхъуэкӀыныгъэхэм щхьэкӀэ ятеубыдауэ щытщ, зэзхъуэкӀыфынухэр [[Special:ListGroupRights|абым теухуа пӀалъэ]] зиӀэ цӀыхухэтхэм.''' 
 ИщӀагъымкӀэ тхыдэтхылъым и яужырей тхыгъэр итщ:",
-'templatesused' => '{{PLURAL:$1|Шаблон|Шаблонхэр}} напэкӀуэцӀым и версиэ екӀуэкӀым хэтхэр:',
-'templatesusedpreview' => '{{PLURAL:$1|Шаблон|Шаблонхэр}} напэкӀуэцӀым и япэ-еплъым хэтхэр:',
-'templatesusedsection' => 'Ð\9cÑ\8b Ð»Ñ\8aÑ\8dнÑ\8bкÑ\8aÑ\83Ñ\8dгÑ\8aÑ\83м {{PLURAL:$1|Шаблон ÐºÑ\8aагÑ\8aÑ\8dÑ\89Ñ\85Ñ\8cÑ\8dпаÑ\80|Шаблон ÐºÑ\8aагъэщхьэпахэр}}:',
+'templatesused' => 'НапэкӀуэцӀым и версиэ екӀуэкӀым {{PLURAL:$1|щапхъэ|щапхъэ}} хэтхахэр:',
+'templatesusedpreview' => 'НапэкӀуэцӀым и япэ-еплъым {{PLURAL:$1|щапхъэ|щапхъэ}} хэтхахэр:',
+'templatesusedsection' => 'Ð\9cÑ\8b ÐºÑ\8aÑ\83дамÑ\8dм {{PLURAL:$1|Ñ\89апÑ\85Ñ\8aÑ\8d ÐºÑ\8aÑ\8dгÑ\8aÑ\8dÑ\89Ñ\85Ñ\8cÑ\8dпаÑ\80\89апÑ\85Ñ\8aÑ\8d ÐºÑ\8aÑ\8dгъэщхьэпахэр}}:',
 'template-protected' => '(теубыдащ)',
 'template-semiprotected' => '(иныкъуэр теубыдащ)',
 'hiddencategories' => 'Мы напэкӀуэцӀыр зхэхьэр $1 {{PLURAL:$1|1 категориэ зэхуэща|$1 категориэ зэхуэщахэр}}:',
@@ -705,21 +714,28 @@ $2',
 'edit-no-change' => 'Уи гъэтэрэзыгъуэр хахыжащ, тхыгъэм зэхъуэкӀыгъуэ зэрхэмыхьэм щхьэкӀэ.',
 'edit-already-exists' => 'НапэкӀуэцӀыщӀэ щӀыфынукъым.
 ЩыӀэщ апхуэдэ.',
+'defaultmessagetext' => 'КъыхигъэкӀа тхыгъэхэр',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Гу лъытэ. Мы напэкӀуэцӀым ресурсышхуэ хэзылъхьэ функциэ куэд хэлъщ.
 
 Хэлъхьэгъуэ хэтыфынур здынэгъэсар $2 {{PLURAL:$2|хэлъхьэгъу|хэлъхьэгъуэху}}, мыбдежым хуэныкъу щӀын хуэйр {{PLURAL:$1|$1 хэлъхьэгъуэ|$1 хэлъхьэгъу}}.',
 'expensive-parserfunction-category' => 'Ресурсышхуэ хэзылъхьэ функциэ куэду зыхэлъ напэкӀуэцӀхэр',
-'post-expand-template-inclusion-warning' => "'''Ð\93Ñ\83 Ð»Ñ\8aÑ\8bÑ\82Ñ\8d:''' Ñ\88аблон хэтхэм я бжыгъэр зэфӀэкӀыгъуэм къехъу щытщ.
¨Ð°Ð±Ð»Ð¾Ð½Ñ\85Ñ\8dм Ñ\8fÑ\89Ñ\8bÑ\89 Ð³Ñ\83Ñ\8dÑ\80Ñ\8dÑ\85Ñ\8dÑ\80 Ñ\85Ñ\8dгÑ\8aÑ\8dкÓ\80Ñ\8bжаÑ\83Ñ\8d ÐºÑ\8aÑ\8dнÑ\8dнÑ\83Ñ\85Ñ\8dщ.",
-'post-expand-template-inclusion-category' => 'Ð\9dапÑ\8dкÓ\80Ñ\83Ñ\8dÑ\86Ó\80Ñ\85Ñ\8dÑ\80, Ñ\88аблон я хэтхэм я бжыгъэр зэфӀэкӀыгъуэм къехъу щытхэр',
-'post-expand-template-argument-warning' => "'''Гу лъытэ:''' Мы напэкӀуэцӀым шаблоным и зы аргумент хэт, зэгъэзэнщӀэным щхьэкӀэ иныщу щыту.
+'post-expand-template-inclusion-warning' => "'''Ð\93Ñ\83 Ð»Ñ\8aÑ\8bÑ\82Ñ\8d:''' Ñ\89апÑ\85Ñ\8aÑ\8d хэтхэм я бжыгъэр зэфӀэкӀыгъуэм къехъу щытщ.
©Ð°Ð¿Ñ\85Ñ\8aÑ\8dÑ\85Ñ\8dм Ñ\8fÑ\89Ñ\8bÑ\89 Ð³Ñ\83Ñ\8dÑ\80Ñ\8dÑ\85Ñ\8dÑ\80 Ñ\85Ñ\8dмÑ\8bÑ\82Ñ\85аÑ\83Ñ\8d ÐºÑ\8aÑ\8dнÑ\8dнÑ\83щ.",
+'post-expand-template-inclusion-category' => 'Ð\9dапÑ\8dкÓ\80Ñ\83Ñ\8dÑ\86Ó\80Ñ\85Ñ\8dÑ\80, Ñ\89апÑ\85Ñ\8aÑ\8d я хэтхэм я бжыгъэр зэфӀэкӀыгъуэм къехъу щытхэр',
+'post-expand-template-argument-warning' => "'''Гу лъытэ!''' мы напэкӀуэцӀым зы щапхъэ, мынэхъмащӀэу хэтщ, и аргумент зэгъэзэнщӀэныр иныщэу щыту.
 Апхуэдэ аргументхэм гулъытэгъуэ ирамтауэ щытщ.",
-'post-expand-template-argument-category' => 'Шаблонхэм я аргументхэр хэзмыубыда напэкӀуэцӀхэр',
-'parser-template-loop-warning' => 'Ð¥Ñ\8dÑ\83кÑ\8aÑ\83Ñ\8dгÑ\8aÑ\83Ñ\8d ÐºÑ\8aÑ\8bÑ\85Ñ\8dкÓ\80аÑ\89 Ñ\88аблонхэм: [[$1]]',
-'parser-template-recursion-depth-warning' => 'ШаблонÑ\8bм Ð¸ Ñ\80екÑ\83Ñ\80Ñ\81иÑ\8d Ð·Ñ\8dÑ\84Ó\80Ñ\8dкÓ\80Ñ\8bгÑ\8aÑ\83Ñ\8dр къегъэхъуауэ щытщ (1$)',
+'post-expand-template-argument-category' => 'ЩапÑ\85Ñ\8aÑ\8dхэм я аргументхэр хэзмыубыда напэкӀуэцӀхэр',
+'parser-template-loop-warning' => 'Ð¥Ñ\8dÑ\83кÑ\8aÑ\83Ñ\8dгÑ\8aÑ\83Ñ\8d ÐºÑ\8aÑ\8bÑ\85Ñ\8dкÓ\80аÑ\89 Ñ\89апÑ\85Ñ\8aÑ\8dхэм: [[$1]]',
+'parser-template-recursion-depth-warning' => 'ЩапÑ\85Ñ\8aÑ\8d Ñ\80екÑ\83Ñ\80Ñ\81иÑ\8dм Ð¸ ÐºÑ\83Ñ\83агÑ\8aÑ\8bр къегъэхъуауэ щытщ (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)',
 
 # "Undo" feature
 'undo-success' => 'Гъэтэрэзыгъуэр хахыжьыфынущ. Версиэхэм я зэгъэпшыгъуэ егъэкӀуэкӀ, узхуэныкъуэхэрамэ пщӀам еплъи «НапэкӀуэцӀыр итхэн»-ым текъузэ, зэхъуэкӀыгъуэхэр хэхьэным щхьэкӀэ.',
@@ -864,14 +880,44 @@ $1",
 'suppressionlogtext' => 'ИщӀагъымкӀэ гъэлъэгъуауэ щыт яужырей ихыгъуэхэмрэ теубыдэгъуэхэмрэ я тхылъ, тхьэмадэхэм ямгъэлъэгъуа хъыбархэр хэтху.
 Еплъ [[Special:IPBlockList|IP-теубыдыгъуэхэм я тхылъ]], екӀуэкӀ теубыдэгъуэхэр лъагъун щхьэкӀэ.',
 
+# History merging
+'mergehistory' => 'Гъэтэрэзыгъуэхэм я тхыдэ зыуэ зэхэгъэхьа',
+'mergehistory-header' => 'Мы напэкӀуэцӀым деж зы пщӀыфынущ зэщымыщ напэкӀуэцӀытӀым я гъэтэрэзыгъуэ тхыдэр.
+Гу лъытэ, уи гъэтэрэзыгъуэм напэкӀуэцӀым и тхыдэр псоуэ къигъэнэн зэрыхуейм.',
+'mergehistory-box' => 'НапэкӀуэцӀитӀым я гъэтэрэзыгъуэ тхыдэр зы щӀын:',
+'mergehistory-from' => 'Япэреуэ напэкӀуэцӀыр:',
+'mergehistory-into' => 'НапэкӀуэцӀыр псоуэ:',
+'mergehistory-list' => 'Гъэтэрэзыгъуэхэм я тхыдэ зы хъур',
+'mergehistory-go' => 'Гъэтэрэзыгъуэ зы хъухэр гъэлъэгъуэн',
+'mergehistory-submit' => 'Гъэтэрэзыгъуэхэр зы щӀын',
+'mergehistory-empty' => 'Гъэтэрэзыгъуэ зы щӀынхэр къэгъуэтакъым.',
+'mergehistory-success' => '$3 {{PLURAL:$3|гъэтэрэзыгъуэ}} [[:$1]] щыщхэр {{PLURAL:$3|ехьэкӀащ|ехьэкӀахэщ}} [[:$2]].',
+'mergehistory-fail' => 'НапэкӀуэцӀхэм я тхыдэр зы щӀын хъуакъым, напэкӀуэцӀым и щыпхъэхэм еплъщ я зэфӀэкӀыгъуэхэм.',
+'mergehistory-no-source' => 'Япэрей щытыкӀэу напӀэкӀуэцӀ «$1» гъуэтакъым.',
+'mergehistory-invalid-source' => 'КъыхэхыпӀэм псалъащхьэ захуэ иӀэн хуейщ.',
+'mergehistory-invalid-destination' => 'НапэкӀуэцӀ псоуэ щытым псалъащхьэ зауэ иӀэн хуейщ.',
+'mergehistory-autocomment' => 'ЕхьэкӀыгъуэ [[:$1]] къыхэхауэ [[:$2]] гъэкӀуэн',
+'mergehistory-comment' => 'ЕхьэкӀыгъуэ [[:$1]] къыхэхауэ [[:$2]] гъэкӀуэн: $3',
+'mergehistory-same-destination' => 'Япэрейуэ щыт напэкӀуэцӀымрэ напэкӀуэцӀ псоуэ щытымрэ зэщхьэщыкӀын хуейщ',
+'mergehistory-reason' => 'Зытеухуар:',
+
 # Merge log
+'mergelog' => 'Зэхэгъэхьэгъуэхэм я тхылъ',
+'pagemerge-logentry' => 'Зы щӀащ [[$1]]-рэ [[$2]]-рэ (версиэхэр $3 нэгъунэ)',
 'revertmerge' => 'Зыхэдзын',
+'mergelogpagetext' => 'ИщӀагъымкӀэ зэхэгъэхьэгъуэхэм я тхыдэм и тхылъыр напэкӀуэцӀым еуэ гъэлъэгъуащ',
 
 # Diffs
-'history-title' => '$1 - зэхъуэкIыныгъэм и тхыдэ',
+'history-title' => '"$1" и зэхъуэкIыныгъэм и тхыдэр',
+'difference-title' => '"$1" версиэм я зэщхьэщыкӀыгъуэ',
+'difference-title-multipage' => 'НапэкӀуэцӀ "$1"-рэ "$2"-рэ я зэщхьэщыкӀыгъуэхэр',
+'difference-multipage' => '(НапэкӀуэцӀхэм я зэщхьэщыкӀыгъуэр)',
 'lineno' => 'Сатыр $1:',
 'compareselectedversions' => 'Хэха версиэхэр зэгъэпщэн',
+'showhideselectedversions' => 'Гъэлъэгъуэн/гъэпшкӀун версиэ хэхахэр',
 'editundo' => 'щӀегъуэжын',
+'diff-multi' => '({{PLURAL:$1|курыт версиэ $1-м ер гъэлъэгъуакъым|курыт версиэхэр $1-м ер гъэлъэгъуакъым}} {{PLURAL:$2|цӀыхухэт 2$|цӀыхухэтхэм 2$}})',
+'diff-multi-manyusers' => '({{PLURAL:$1|курыт версиэ $1-м ер гъэлъэгъуащ|курыт версиэхэр $1-м ер гъэлъэгъуащ}}, щӀахэщ $2 нэхъыбэу {{PLURAL:$2|цӀыхухэт|цӀыхухэтхэм}})',
 
 # Search results
 'searchresults' => 'Лъыхъуэным къыхэкӀахэр',
@@ -895,12 +941,17 @@ $1",
 'search-interwiki-more' => '(иджыри)',
 'search-mwsuggest-enabled' => 'чэнджэш иӀэу',
 'search-mwsuggest-disabled' => 'чэнджэщыншэу',
-'nonefound' => "'''Гулъытыгъуэ.''' Тэрэзу имытхамэ узхуэныкъуэр, лъыхъуэгъуэр лъэныкъу хъуамкӀи ирегъэкӀуэкӀ. Къэгъэсэбэп ''all:'' пыгъувэгъуэр, зэгъэзэхуэгъуэ иӀэн щхьэкӀэ (хэтхэм я тепсэлъыхьыныгъэр, шаблонхэр, нымыщӀхэр джоуэ хиубыдэным щхьэ), иэ узхуэныкъуэ лъэныкъуэр итхэ.",
+'nonefound' => "'''Гулъытыгъуэ.''' Тэрэзу имытхамэ узхуэныкъуэр, лъыхъуэгъуэр лъэныкъу хъуамкӀи ирегъэкӀуэкӀ. Къэгъэсэбэп ''all:'' пыгъувэгъуэр, зэгъэзэхуэгъуэ иӀэн щхьэкӀэ (хэтхэм я тепсэлъыхьыныгъэр, щапхъэхэр, нымыщӀхэр джоуэ хиубыдэным щхьэ), иэ узхуэныкъуэ лъэныкъуэр итхэ.",
+'search-nonefound' => 'Узлъыхъуэм техуэу щыӀэкъым.',
 'powersearch' => 'Убгъуауэ лъыхъу',
 'powersearch-legend' => 'Убгъуауэ лъыхъу',
 'powersearch-ns' => 'ЦIэзэхэтыгъуэм щылъыхъуэн',
 'powersearch-redir' => 'ЕгъэзэкӀахэри гъэлъэгъуэн',
 'powersearch-field' => 'Лъыхъуэн',
+'powersearch-togglelabel' => 'Къыхэхын:',
+'powersearch-toggleall' => 'Псори',
+'powersearch-togglenone' => 'Зыри/пари',
+'search-external' => 'ХэкӀауэ лъыхъуэн',
 
 # Preferences page
 'preferences' => 'Зэгъэзэхуэпхъэхэр',
index 2037d87..50b14bb 100644 (file)
@@ -1062,7 +1062,7 @@ Cêr [$2 pela arezekerdena dosya de] arezekerdene asnina.',
 'booksources-go' => 'So',
 
 # Special:Log
-'specialloguserlabel' => 'Karber:',
+'specialloguserlabel' => 'Kerdoğ:',
 'speciallogtitlelabel' => 'Sernuste:',
 'log' => 'Qeydi',
 
@@ -1224,7 +1224,7 @@ Tı şikina sewiya sevekiyaena na pele bıvurnê, hema yê nae sevekiyaena qedem
 # Contributions
 'contributions' => 'İştırakê karberi',
 'contributions-title' => '$1 de iştırakê karberi',
-'mycontris' => 'İştırakê mı',
+'mycontris' => 'İştıraqê mı',
 'contribsub2' => 'Serba $1 ($2)',
 'uctop' => '(ser)',
 'month' => 'Asme ra (u ravêr):',
index 93ff9dd..6e412ea 100644 (file)
@@ -1021,7 +1021,7 @@ IP-мекенжайыңыз бұл беттің түзету тарихында
 Бет мәтіні бүлінбеу үшін өңдемеңіз тайдырылады.
 Бұл кей уақытта қатесі толған веб-негізінде тіркелуі жоқ прокси-серверді пайдаланған болуы мүмкін.'''",
 'editing' => 'Өңделуде: $1',
-'creating' => 'Ð\91астау: $1',
+'creating' => 'Ð\96аңадан Ð±астау: $1',
 'editingsection' => 'Өңделуде: $1 (бөлімі)',
 'editingcomment' => 'Өңделуде: $1 (жаңа бөлім)',
 'editconflict' => 'Өңдемелер қақтығысы: $1',
@@ -1460,9 +1460,9 @@ $3 келтірілген себебі: ''$2''",
 'right-suppressredirect' => 'Тиісті атауға бетті жылжытқанда айдағышты жасамау',
 'right-upload' => 'Файлдарды жүктеу',
 'right-reupload' => 'Бар файл үстіне жазу',
-'right-reupload-own' => 'Өзі қотарып берген файл үстіне жазу',
+'right-reupload-own' => 'Өзі жүктеген файл үстіне жазу',
 'right-reupload-shared' => 'Таспа ортақ қоймасындағы файлдарды жергіліктілермен асыру',
-'right-upload_by_url' => 'Файлды URL мекенжайынан қотарып беру',
+'right-upload_by_url' => 'Файлды URL мекенжайдан жүктеу',
 'right-purge' => 'Бетті торап бүркемесінен құптаусыз тазарту',
 'right-autoconfirmed' => 'Жартылай қорғалған беттерді өңдеу',
 'right-bot' => 'Өздіктік үдеріс деп есептелу',
@@ -1492,7 +1492,7 @@ $3 келтірілген себебі: ''$2''",
 'right-markbotedits' => 'Шегіндірлген өңдемелерді боттардікі деп белгілеу',
 'right-noratelimit' => 'Еселік шектелімдері ықпал етпейді',
 'right-import' => 'Басқа уикилерден беттерді сырттан алу',
-'right-importupload' => 'Файл қотарып беруімен беттерді сырттан алу',
+'right-importupload' => 'Файлдарды жүктеу арқылы беттерді сырттан алу',
 'right-patrol' => 'Басқарардың өңдемелерін зерттелді деп белгілеу',
 'right-autopatrol' => 'Өз өңдемелерін зерттелді деп өздіктік белгілеу',
 'right-patrolmarks' => 'Жуықтағы өзгерістердегі зерттеу белгілерін көру',
@@ -1571,10 +1571,10 @@ $3 келтірілген себебі: ''$2''",
 'reuploaddesc' => 'Жүктеу пішініне қайта келу.',
 'upload-tryagain' => 'Файл сипаттамасының өзгерістерін жөнелту',
 'uploadnologin' => 'Кірмегенсіз',
-'uploadnologintext' => 'Файлдарды қотарып беру үшін [[{{#special:Userlogin}}|кіруіңіз]] жөн.',
+'uploadnologintext' => 'Файлдарды жүктеу үшін  [[Special:UserLogin|кіруіңіз]] жөн.',
 'upload_directory_missing' => 'Қотарып бермек қалтасы ($1) жетіспейді және веб-сервер жарата алмайды.',
 'upload_directory_read_only' => 'Қотарып бермек қалтасына ($1) веб-сервер жаза алмайды.',
-'uploaderror' => 'Қотарып беру қатесі',
+'uploaderror' => 'Жүктеу қатесі',
 'uploadtext' => "Төмендегі пішінді файлдарды қотарып беру үшін қолданыңыз.
 Алдында қотарылып берілген файлдарды қарау не іздеу үшін [[{{#special:FileList}}|қотарып берілген файлдар тізіміне]] барыңыз, тағы да қотарып беруі мен жоюы  [[{{#special:Log}}/upload|қотарып беру журналына]] жазылып алынады.
 
@@ -1634,7 +1634,7 @@ $3 келтірілген себебі: ''$2''",
 'uploadwarning' => 'Қотарып беру жөнінде құлақтандыру',
 'savefile' => 'Файлды сақтау',
 'uploadedimage' => '«[[$1]]» файлын жүктеді',
-'overwroteimage' => '«[[$1]]» файлынның жаңа нұсқасын қотарып берді',
+'overwroteimage' => '«[[$1]]» деген файлдың жаңа нұсқасын жүктеді',
 'uploaddisabled' => 'Қотарып беру өшірілген',
 'copyuploaddisabled' => 'URL арқылы жүктеу өшірілген.',
 'uploaddisabledtext' => '{{SITENAME}} жобасында файл қотарып беруі өшірілген.',
@@ -1756,7 +1756,7 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'mimesearch-summary' => 'Бұл бетте файлдарды MIME түрімен сүзгілеуі қосылған.
 Кірісі: мағлұмат_түрі/түр_тарауы, мысалы <tt>image/jpeg</tt>.',
 'mimetype' => 'MIME түрі:',
-'download' => 'қотарып алу',
+'download' => 'жүктеп алу',
 
 # Unwatched pages
 'unwatchedpages' => 'Бақыланылмаған беттер',
@@ -2128,7 +2128,7 @@ $2 соңғы нұсқасына өзгертті.',
 'restriction-edit' => 'Өңдеуге',
 'restriction-move' => 'Жылжытуға',
 'restriction-create' => 'Бастауға',
-'restriction-upload' => 'Қотарып беруге',
+'restriction-upload' => 'Жүктеу',
 
 # Restriction levels
 'restriction-level-sysop' => 'толықтай қорғалған',
@@ -2474,20 +2474,20 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'importsuccess' => 'Сырттан алу аяқталды!',
 'importhistoryconflict' => 'Тарихында қақтығысты түзету бар (бұл бет алдында сырттан алынған сияқты)',
 'importnosources' => 'Уики-апару үшін сырттан алынатын еш қайнар көзі анықталмаған, және тарихын тікелей қотарып беруі өшірілген.',
-'importnofile' => 'Сырттан алынған файл қотарып берілген жоқ.',
-'importuploaderrorsize' => 'Сырттан алынған файлдың қотарып берілуі сәтсіз өтті. Файл мөлшері қотарып берілуге руқсат етілгеннен асады.',
-'importuploaderrorpartial' => 'Сырттан алынған файлдың қотарып берілуі сәтсіз өтті. Осы файлдың тек бөліктері қотарылып берілді.',
-'importuploaderrortemp' => 'Сырттан алынған файлдың қотарып берілуі сәтсіз өтті. Уақытша қалта табылмады.',
+'importnofile' => 'Сырттан алынған файл жүктелген жоқ.',
+'importuploaderrorsize' => 'Сырттан алынған файлдың жүктелуі сәтсіз өтті. Файл мөлшері рұқсат етілгеннен мөлшерден асады.',
+'importuploaderrorpartial' => 'Сырттан алынған файлдың жүктелуі сәтсіз өтті. Осы файлдың тек бөліктері жүктелді.',
+'importuploaderrortemp' => 'Сырттан алынған файлдың жүктелуі сәтсіз өтті. Уақытша қалта табылмады.',
 'import-parse-failure' => 'Сырттан алынған XML файл құрылымын талдатқанда сәтсіздік болды',
 'import-noarticle' => 'Сырттан алынатын еш бет жоқ!',
 'import-nonewrevisions' => 'Барлық түзетулері алдында сырттан алынған.',
 'xml-error-string' => '$1 нөмір $2 жолда, баған $3 (байт $4): $5',
-'import-upload' => 'XML деректерін қотарып беру',
+'import-upload' => 'XML деректерін жүктеу',
 
 # Import log
 'importlogpage' => 'Сырттан алу журналы',
 'importlogpagetext' => 'Беттерді түзету тарихымен бірге сыртқы уикилерден әкімші ретінде алу.',
-'import-logentry-upload' => '«[[$1]]» дегенді файл қотарып беру арқылы сырттан алды',
+'import-logentry-upload' => '«[[$1]]» дегенді файл жүктеу арқылы сырттан алды',
 'import-logentry-upload-detail' => '$1 түзету',
 'import-logentry-interwiki' => 'уики-апарылған $1',
 'import-logentry-interwiki-detail' => '$2 дегеннен $1 түзету',
@@ -2531,7 +2531,7 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'tooltip-feed-atom' => 'Бұл беттің Atom арнасы',
 'tooltip-t-contributions' => 'Осы қатысушының үлес тізімін қарау',
 'tooltip-t-emailuser' => 'Осы қатысушыға хат жөнелту',
-'tooltip-t-upload' => 'Файлдарды қотарып беру',
+'tooltip-t-upload' => 'Файлдарды жүктеу',
 'tooltip-t-specialpages' => 'Барлық арнайы беттер тізімі',
 'tooltip-t-print' => 'Бұл беттің басып шығарышқа арналған нұсқасы',
 'tooltip-t-permalink' => 'Мына беттің осы нұсқасының тұрақты сілтемесі',
@@ -2552,7 +2552,7 @@ MediaWiki жүйесінің [[{{#special:Import}}|сырттан алу бет
 'tooltip-compareselectedversions' => 'Беттің екі бөлектенген нұсқасы айырмасын қарау.',
 'tooltip-watch' => 'Бұл бетті бақылау тізіміңізге үстеу',
 'tooltip-recreate' => 'Бет жойылғанына қарамастан қайта бастау',
-'tooltip-upload' => 'Қотарып беруді бастау',
+'tooltip-upload' => 'Жүктеуді бастау',
 'tooltip-rollback' => '"Шегіндіру" сілтемесін бір рет басу арқылы соңға редактордың барлық қатар өңдемелерін өшіру',
 'tooltip-summary' => 'Қысқаша сипаттамасын жазыңыз',
 
@@ -2654,7 +2654,7 @@ $1',
 # Special:NewFiles
 'newimages' => 'Жаңа файлдар көрмесі',
 'imagelisttext' => "Төменде $2 сұрыпталған '''$1''' файл тізімі.",
-'newimages-summary' => 'Ð\91ұл Ð°Ñ\80найÑ\8b Ð±ÐµÑ\82Ñ\96нде Ñ\81оңÒ\93Ñ\8b Ò\9bоÑ\82аÑ\80Ñ\8bп Ð±ÐµÑ\80Ñ\96лген файлдар көрсетіледі',
+'newimages-summary' => 'Ð\91ұл Ð°Ñ\80найÑ\8b Ð±ÐµÑ\82Ñ\82е Ñ\81оңÒ\93Ñ\8b Ð¶Ò¯ÐºÑ\82елген файлдар көрсетіледі',
 'newimages-legend' => 'Сүзгі',
 'showhidebots' => '(боттарды $1)',
 'noimages' => 'Көретін ештеңе жоқ.',
@@ -3171,7 +3171,7 @@ $5
 'specialpages-group-other' => 'Тағы басқа арнайы беттер',
 'specialpages-group-login' => 'Кіру / тіркелу',
 'specialpages-group-changes' => 'Жуықтағы өзгерістер мен журналдар',
-'specialpages-group-media' => 'Таспа баянаттары және қотарып берілгендер',
+'specialpages-group-media' => 'Таспа баянаттары және жүктелгендер',
 'specialpages-group-users' => 'Қатысушылар және олардың құқықтары',
 'specialpages-group-highuse' => 'Өте көп қолданылған беттер',
 'specialpages-group-pages' => 'Беттер тізімі',
@@ -3185,9 +3185,17 @@ $5
 'intentionallyblankpage' => 'Бұл бет әдейі бос қалдырылған',
 
 # New logging system
+'logentry-delete-delete' => '$1 $3 деген бетті жойды',
 'revdelete-restricted' => 'әкімшілерге тиымдар қолдады',
 'revdelete-unrestricted' => 'әкімшілерден тиымдарды аластады',
+'logentry-move-move' => '$1 $3 бетін $4 бетіне жылжытты',
 'logentry-move-move-noredirect' => '$1 $3 бетін $4 бетіне жылжытты (айдатқыш қалдырылмады)',
+'logentry-move-move_redir' => '$1 $3 бетін $4 деген айдатқыш үстіне жылжытты',
 'logentry-move-move_redir-noredirect' => '$1 $3 бетін $4 деген айдатқыш үстіне жылжытты (айдатқыш қалдырылмады)',
+'logentry-newusers-newusers' => '$1 жаңадан аккаунт тіркеді',
+'logentry-newusers-create' => '$1 жаңадан аккаунт тіркеді',
+'logentry-newusers-create2' => '$1 $3 деген аккаунт тіркеді',
+'logentry-newusers-autocreate' => '$1 аккаунты автоматты түрде тіркелді',
+'newuserlog-byemail' => 'Құпия сөз e-mail арқылы жіберілді',
 
 );
index b96a426..80e65fa 100644 (file)
@@ -340,43 +340,43 @@ $messages = array(
 'tog-underline' => '링크에 밑줄 표시하기:',
 'tog-justify' => '문단 정렬하기',
 'tog-hideminor' => '사소한 편집을 최근 바뀜에서 숨기기',
-'tog-hidepatrolled' => '최근 바뀜에서 검토ë\90\9c í\8e¸ì§\91ì\9d\84 ì\88¨ê¸°ê¸°',
-'tog-newpageshidepatrolled' => '새 문서 목록에서 검토ë\90\9c ë¬¸ì\84\9c를 ì\88¨ê¸°ê¸°',
+'tog-hidepatrolled' => '최근 바뀜에서 검토í\95\9c í\8e¸ì§\91ì\9d\84 ì\88¨ê¸°ê¸°',
+'tog-newpageshidepatrolled' => '새 문서 목록에서 검토í\95\9c ë¬¸ì\84\9c를 ì\88¨ê¸°ê¸°',
 'tog-extendwatchlist' => '주시문서 목록에서 가장 최근의 편집만이 아닌 모든 편집을 보기',
-'tog-usenewrc' => '향상된 최근 바뀜 (자바스크립트)',
+'tog-usenewrc' => '최근 바뀜 및 주시 문서 목록에서 문서별 그룹 바뀜 (자바스크립트 필요)',
 'tog-numberheadings' => '머릿글 번호 매기기',
-'tog-showtoolbar' => '편집창에 툴바 보이기 (자바스크립트)',
-'tog-editondblclick' => '더블클릭으로 문서 편집하기 (자바스크립트)',
+'tog-showtoolbar' => '편집창에 툴바 보이기 (자바스크립트 필요)',
+'tog-editondblclick' => '더블 클릭으로 문서 편집하기 (자바스크립트 필요)',
 'tog-editsection' => '[편집] 링크로 부분 편집하기',
-'tog-editsectiononrightclick' => '제목을 오른쪽 클릭해서 부분 편집하기 (자바스크립트)',
+'tog-editsectiononrightclick' => '제목을 오른쪽 클릭해서 부분 편집하기 (자바스크립트 필요)',
 'tog-showtoc' => '문서의 차례 보여주기 (머릿글이 4개 이상인 경우)',
 'tog-rememberpassword' => '이 브라우저에서 로그인 상태를 저장하기 (최대 $1일)',
-'tog-watchcreations' => '내가 처음 만드는 문서를 주시문서 목록에 추가',
-'tog-watchdefault' => '내가 편집하는 문서 주시문서 목록에 추가',
-'tog-watchmoves' => '내가 이동하는 문서 주시문서 목록에 추가',
-'tog-watchdeletion' => '내가 삭제하는 문서 주시문서 목록에 추가',
-'tog-minordefault' => '‘사소한 편집’을 기본적으로 선택하기',
-'tog-previewontop' => '편집ì\83\81ì\9e\90 ì\95\9eì\97\90 ë¯¸ë¦¬ë³´ê¸° ë³´ì\9d´ê¸°',
-'tog-previewonfirst' => '처음 편집할 때 미리보기 보기',
+'tog-watchcreations' => '내가 만드는 문서와 내가 올린 파일을 주시문서 목록에 추가',
+'tog-watchdefault' => '내가 편집하는 문서와 파일을 주시문서 목록에 추가',
+'tog-watchmoves' => '내가 이동하는 문서와 파일을 주시문서 목록에 추가',
+'tog-watchdeletion' => '내가 삭제하는 문서와 파일을 주시문서 목록에 추가',
+'tog-minordefault' => '사소한 편집을 기본적으로 선택하기',
+'tog-previewontop' => '편집 ì\83\81ì\9e\90 ì\95\9eì\97\90 ë¯¸ë¦¬ ë³´ê¸° ë³´ê¸°',
+'tog-previewonfirst' => '처음 편집할 때 미리 보기 보기',
 'tog-nocache' => '브라우저의 문서 캐시 끄기',
-'tog-enotifwatchlistpages' => '주시문서 바뀌면 이메일로 알림',
+'tog-enotifwatchlistpages' => '주시문서 목록에 속한 문서나 파일이 바뀌면 이메일로 알림',
 'tog-enotifusertalkpages' => '내 토론 문서가 바뀌면 이메일로 알림',
-'tog-enotifminoredits' => '사소한 편집도 이메일로 알림',
+'tog-enotifminoredits' => '문서나 파일의 사소한 편집도 이메일로 알림',
 'tog-enotifrevealaddr' => '알림 메일에 내 이메일 주소를 밝히기',
 'tog-shownumberswatching' => '주시 사용자 수 보기',
 'tog-oldsig' => '현재 서명:',
 'tog-fancysig' => '서명을 위키텍스트로 취급 (자동으로 링크를 걸지 않음)',
-'tog-externaleditor' => '외부 편집기를 기본 편집기로 사용 (숙련자용. 컴퓨터에 특별한 설정이 필요, [//www.mediawiki.org/wiki/Manual:External_editors 자세한 정보 보기])',
-'tog-externaldiff' => '외부 비교 도구를 기본 도구로 사용 (숙련자용. 컴퓨터에 특별한 설정이 필요, [//www.mediawiki.org/wiki/Manual:External_editors 자세한 설명 보기])',
+'tog-externaleditor' => '외부 편집기를 기본 편집기로 사용 (숙련자용. 컴퓨터에 특별한 설정이 필요. [//www.mediawiki.org/wiki/Manual:External_editors 자세한 정보 보기])',
+'tog-externaldiff' => '외부 비교 도구를 기본 도구로 사용 (숙련자용. 컴퓨터에 특별한 설정이 필요. [//www.mediawiki.org/wiki/Manual:External_editors 자세한 설명 보기])',
 'tog-showjumplinks' => '접근성을 위한 "이동" 링크 쓰기 (일부 스킨에서만 작동)',
-'tog-uselivepreview' => '실시간 미리 보기 사용하기 (자바스크립트 사용, 시험 중)',
+'tog-uselivepreview' => '실시간 미리 보기 사용하기 (자바스크립트 필요) (시험 기능)',
 'tog-forceeditsummary' => '편집 요약을 쓰지 않았을 때 알려주기',
 'tog-watchlisthideown' => '주시문서 목록에서 내 편집을 숨기기',
 'tog-watchlisthidebots' => '주시문서 목록에서 봇 편집을 숨기기',
 'tog-watchlisthideminor' => '주시문서 목록에서 사소한 편집을 숨기기',
 'tog-watchlisthideliu' => '주시문서 목록에서 로그인한 사용자의 편집을 숨기기',
-'tog-watchlisthideanons' => '주시문서 목록에서 비등록 사용자의 편집을 숨기기',
-'tog-watchlisthidepatrolled' => '주시문서 목록에서 검토ë\90\9c í\8e¸ì§\91ì\9d\84 ì\88¨ê¸°ê¸°',
+'tog-watchlisthideanons' => '주시문서 목록에서 익명 사용자의 편집을 숨기기',
+'tog-watchlisthidepatrolled' => '주시문서 목록에서 검토í\95\9c í\8e¸ì§\91ì\9d\84 ì\88¨ê¸°ê¸°',
 'tog-nolangconversion' => '변형 변환을 비활성화',
 'tog-ccmeonemails' => '이메일을 보낼 때 내 이메일로 복사본을 보내기',
 'tog-diffonly' => '편집 차이를 비교할 때 문서 내용을 보지 않기',
@@ -449,19 +449,19 @@ $messages = array(
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|분류}}',
-'category_header' => '‘$1’ 분류에 속하는 문서',
+'category_header' => '"$1" 분류에 속하는 문서',
 'subcategories' => '하위 분류',
-'category-media-header' => '‘$1’ 분류에 속하는 자료',
+'category-media-header' => '"$1" 분류에 속하는 자료',
 'category-empty' => '이 분류에 속하는 문서나 자료가 없습니다.',
 'hidden-categories' => '{{PLURAL:$1|숨은 분류}}',
 'hidden-category-category' => '숨은 분류',
-'category-subcat-count' => '{{PLURAL:$2|이 분류에는 하위 분류 1 개만이 속해 있습니다.|다음은 이 분류에 속하는 하위 분류 $2 개 가운데 $1 개입니다.}}',
-'category-subcat-count-limited' => '이 분류에 하위분류가 $1개 있습니다.',
-'category-article-count' => '{{PLURAL:$2|이 분류에는 문서 1 개만이 속해 있습니다.|다음은 이 분류에 속하는 문서 $2 개 가운데 $1 개입니다.}}',
-'category-article-count-limited' => '이 분류에 문서가 $1개 있습니다.',
-'category-file-count' => '{{PLURAL:$2|이 분류에는 파일 1 개만이 속해 있습니다.|다음은 이 분류에 속하는 파일 $2 개 가운데 $1 개입니다.}}',
-'category-file-count-limited' => '이 분류에 파일이 $1개 있습니다.',
-'listingcontinuesabbrev' => ' (계속)',
+'category-subcat-count' => '{{PLURAL:$2|이 분류에는 하위 분류 1개만이 속해 있습니다.|다음은 이 분류에 속하는 하위 분류 $2개 가운데 $1개입니다.}}',
+'category-subcat-count-limited' => '이 분류에 하위 분류 $1개가 있습니다.',
+'category-article-count' => '{{PLURAL:$2|이 분류에는 문서 1개만이 속해 있습니다.|다음은 이 분류에 속하는 문서 $2개 가운데 $1개입니다.}}',
+'category-article-count-limited' => '이 분류에 문서 $1개가 있습니다.',
+'category-file-count' => '{{PLURAL:$2|이 분류에는 파일 1개만이 속해 있습니다.|다음은 이 분류에 속하는 파일 $2개 가운데 $1개입니다.}}',
+'category-file-count-limited' => '이 분류에 파일 $1개가 있습니다.',
+'listingcontinuesabbrev' => '(계속)',
 'index-category' => '색인된 문서',
 'noindex-category' => '색인에서 제외되는 문서',
 'broken-file-category' => '잘못된 파일 링크가 포함된 문서',
@@ -545,7 +545,7 @@ $messages = array(
 'toolbox' => '도구모음',
 'userpage' => '사용자 문서 보기',
 'projectpage' => '프로젝트 문서 보기',
-'imagepage' => '자료 문서 보기',
+'imagepage' => '파일 문서 보기',
 'mediawikipage' => '메시지 문서 보기',
 'templatepage' => '틀 문서 보기',
 'viewhelppage' => '도움말 문서 보기',
@@ -554,7 +554,7 @@ $messages = array(
 'otherlanguages' => '다른 언어',
 'redirectedfrom' => '($1에서 넘어옴)',
 'redirectpagesub' => '넘겨주기 문서',
-'lastmodifiedat' => '이 문서는 $1 $2 에 마지막으로 바뀌었습니다.',
+'lastmodifiedat' => '이 문서는 $1 $2에 마지막으로 바뀌었습니다.',
 'viewcount' => '이 문서는 $1번 읽혔습니다.',
 'protectedpage' => '보호된 문서',
 'jumpto' => '이동:',
@@ -594,10 +594,11 @@ $1',
 'badaccess-groups' => '요청한 동작은 {{PLURAL:$2|다음|다음 중 하나의}} 권한을 가진 사용자에게만 가능합니다: $1.',
 
 'versionrequired' => '미디어위키 $1 버전 필요',
-'versionrequiredtext' => '이 문서를 사용하려면 $1 버전 미디어위키가 필요합니다. [[Special:Version|설치된 미디어위키 버전]]을 확인해주세요.',
+'versionrequiredtext' => '이 문서를 사용하려면 $1 버전 미디어위키가 필요합니다.
+[[Special:Version|설치된 미디어위키 버전]]을 참고하세요.',
 
 'ok' => '확인',
-'retrievedfrom' => '원본 주소 ‘$1’',
+'retrievedfrom' => '원본 주소 "$1"',
 'youhavenewmessages' => '다른 사용자가 $1란에 글을 남겼습니다. ($2)',
 'newmessageslink' => '사용자 토론',
 'newmessagesdifflink' => '바뀐 내용 비교',
@@ -615,13 +616,13 @@ $1',
 'collapsible-expand' => '보이기',
 'thisisdeleted' => '$1을 보거나 되살리겠습니까?',
 'viewdeleted' => '$1을 보겠습니까?',
-'restorelink' => '삭제된 편집 $1 개',
+'restorelink' => '삭제된 편집 $1개',
 'feedlinks' => '피드:',
 'feed-invalid' => '잘못된 구독 피드 방식입니다.',
 'feed-unavailable' => '피드 서비스는 제공하지 않습니다',
 'site-rss-feed' => '$1 RSS 피드',
 'site-atom-feed' => '$1 Atom 피드',
-'page-rss-feed' => '‘$1’ RSS 피드',
+'page-rss-feed' => '"$1" RSS 피드',
 'page-atom-feed' => '"$1" Atom 피드',
 'red-link-title' => '$1 (없는 문서)',
 'sort-descending' => '내림차순 정렬',
@@ -644,7 +645,7 @@ $1',
 'nosuchactiontext' => 'URL로 요청한 동작이 잘못되었습니다.
 당신은 URL을 잘못 입력하였거나, 잘못된 링크를 따라갔을 수 있습니다.
 이것은 {{SITENAME}}의 버그일 수도 있습니다.',
-'nosuchspecialpage' => '해당하는 특수기능이 없습니다.',
+'nosuchspecialpage' => '해당하는 특수 문서가 없습니다.',
 'nospecialpagetext' => '<strong>요청한 특수 문서가 존재하지 않습니다.</strong>
 
 특수 문서의 목록은 [[Special:SpecialPages|여기]]에서 볼 수 있습니다.',
@@ -669,7 +670,7 @@ $1',
 'readonlytext' => '데이터베이스가 잠겨 있어서 문서를 편집할 수 없습니다. 데이터베이스 관리가 끝난 후에는 정상으로 돌아올 것입니다.
 
 관리자가 데이터베이스를 잠글 때 남긴 메시지는 다음과 같습니다: $1',
-'missing-article' => '데이터베이스에서 ‘$1’ 문서$2를 찾지 못했습니다.
+'missing-article' => '데이터베이스에서 "$1" 문서의 $2 텍스트를 찾지 못했습니다.
 
 삭제된 문서의 역사/비교 문서를 보려고 시도할 때 이러한 문제가 발생할 수 있습니다.
 
@@ -679,25 +680,32 @@ $1',
 'readonly_lag' => '슬레이브 데이터베이스가 마스터 서버의 자료를 갱신하는 중입니다. 데이터베이스가 자동으로 잠겨 있습니다.',
 'internalerror' => '내부 오류',
 'internalerror_info' => '내부 오류: $1',
-'fileappenderrorread' => '‘$1’ 파일을 읽을 수 없습니다. 해당 파일에 내용을 덧붙일 수 없습니다.',
-'fileappenderror' => '‘$1’ 파일을 ‘$2’에 덧붙일 수 없습니다.',
-'filecopyerror' => '‘$1’ 파일을 ‘$2’(으)로 복사할 수 없습니다.',
-'filerenameerror' => '‘$1’ 파일을 ‘$2’(으)로 옮길 수 없습니다.',
-'filedeleteerror' => '‘$1’ 파일을 삭제할 수 없습니다.',
-'directorycreateerror' => '‘$1’ 디렉토리를 만들 수 없습니다.',
-'filenotfound' => '‘$1’ 파일을 찾을 수 없습니다.',
+'fileappenderrorread' => '내용을 덧붙이다가 "$1" 파일을 읽을 수 없습니다.',
+'fileappenderror' => '"$1" 파일을 "$2"에 덧붙일 수 없습니다.',
+'filecopyerror' => '"$1" 파일을 "$2"로 복사할 수 없습니다.',
+'filerenameerror' => '"$1" 파일을 "$2"로 옮길 수 없습니다.',
+'filedeleteerror' => '"$1" 파일을 삭제할 수 없습니다.',
+'directorycreateerror' => '"$1" 디렉토리를 만들 수 없습니다.',
+'filenotfound' => '"$1" 파일을 찾을 수 없습니다.',
 'fileexistserror' => '"$1" 파일이 이미 있어 여기에 쓸 수 없습니다.',
 'unexpected' => '예상되지 않은 값: "$1"="$2"',
 'formerror' => '오류: 양식을 제출할 수 없습니다.',
 'badarticleerror' => '지금의 명령은 이 문서에서는 실행할 수 없습니다.',
-'cannotdelete' => '"$1" 문서나 파일을 삭제할 수 없습니다. 이미 삭제되었을 수도 있습니다.',
+'cannotdelete' => '"$1" 문서나 파일을 삭제할 수 없습니다.
+이미 삭제되었을 수도 있습니다.',
 'cannotdelete-title' => '"$1" 문서를 삭제할 수 없습니다.',
+'delete-hook-aborted' => '훅에 의해 삭제가 중단되었습니다.
+아무런 설명도 주어지지 않았습니다.',
 'badtitle' => '잘못된 제목',
-'badtitletext' => '문서 제목이 잘못되었거나 비어있습니다.',
+'badtitletext' => '문서 제목이 잘못되었거나 비어있습니다. 또는 잘못된 인터위키 제목으로 링크했습니다.
+문서 제목에 사용할 수 없는 문자를 사용했을 수 있습니다.',
 'perfcached' => '다음 자료는 캐시된 것이므로 현재 상황을 반영하지 않을 수 있습니다. 캐시에 최대 {{PLURAL:$1|결과 $1개}}가 있습니다.',
-'perfcachedts' => '다음 자료는 캐시된 것으로, $1에 마지막으로 갱신되었습니다.  캐시에 최대 {{PLURAL:$4|결과 $4개}}가 있습니다.',
-'querypage-no-updates' => '이 문서의 갱신이 현재 비활성화되어 있습니다. 자료가 잠시 갱신되지 않을 것입니다.',
-'wrong_wfQuery_params' => 'wfQuery()에서 잘못된 매개변수 발생<br />함수: $1<br />쿼리: $2',
+'perfcachedts' => '다음 자료는 캐시된 것으로, $1에 마지막으로 새로 고쳐졌습니다.  캐시에 최대 {{PLURAL:$4|결과 $4개}}가 있습니다.',
+'querypage-no-updates' => '이 문서의 갱신이 현재 비활성화되어 있습니다.
+자료가 잠시 새로 고치지 않을 것입니다.',
+'wrong_wfQuery_params' => 'wfQuery()에서 잘못된 매개변수 발생<br />
+함수: $1<br />
+쿼리: $2',
 'viewsource' => '내용 보기',
 'viewsource-title' => '$1 문서 내용 보기',
 'actionthrottled' => '동작 중지',
@@ -707,24 +715,28 @@ $1',
 'viewsourcetext' => '문서의 원본을 보거나 복사할 수 있습니다:',
 'viewyourtext' => "당신은 이 문서에 남긴 '''당신의 편집''' 내용을 보거나 복사할 수 있습니다:",
 'protectedinterface' => '이 문서는 소프트웨어 인터페이스에 쓰이는 문서로, 잠겨 있습니다.',
-'editinginterface' => "'''경고''': 소프트웨어에서 사용하는 메시지 문서를 고치고 있습니다. 이것은 모든 사용자에게 영향을 끼칩니다. 번역되지 않은 메시지를 번역하려는 경우에는, [//translatewiki.net/wiki/Main_Page?setlang=ko translatewiki.net]에 참여하면 메시지 번역을 미디어위키에 직접 반영할 수 있습니다.",
+'editinginterface' => "'''경고''': 소프트웨어에서 사용하는 메시지 문서를 고치고 있습니다.
+이는 모든 사용자에게 영향을 끼칩니다.
+번역되지 않은 메시지를 번역하려는 경우에는 [//translatewiki.net/wiki/Main_Page?setlang=ko translatewiki.net]에 참여하면 메시지 번역을 미디어위키에 직접 반영할 수 있습니다.",
 'sqlhidden' => '(SQL 쿼리 숨겨짐)',
-'cascadeprotected' => '이 문서는 연쇄보호가 걸린 {{PLURAL:$1|문서}}에 포함되어 있어 함께 보호됩니다. 연쇄 보호된 문서:
+'cascadeprotected' => '이 문서는 연쇄 보호가 걸린 {{PLURAL:$1|문서}}에 포함되어 있어 함께 보호됩니다. 연쇄 보호된 문서:
 $2',
-'namespaceprotected' => "'''$1''' 네임스페이스를 편집할 수 있는 권한이 없습니다.",
+'namespaceprotected' => "'''$1''' 이름공간을 편집할 수 있는 권한이 없습니다.",
 'customcssprotected' => '여기에는 다른 사용자의 개인 설정이 포함되어 있기 때문에 당신은 이 CSS 문서를 편집할 수 없습니다.',
 'customjsprotected' => '여기에는 다른 사용자의 개인 설정이 포함되어 있기 때문에 당신은 이 자바스크립트 문서를 편집할 수 없습니다.',
-'ns-specialprotected' => '{{ns:special}} ë\84¤ì\9e\84ì\8a¤í\8e\98ì\9d´ì\8a¤ì\9d\98 ë¬¸ì\84\9cë\8a\94 í\8e¸ì§\91í\95  ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤.',
-'titleprotected' => '[[User:$1|$1]] 사용자가 문서 생성을 금지했습니다.
-이유는 다음과 같습니다. ‘$2’',
-'filereadonlyerror' => '‘$2’ 파일 저장소가 읽기 전용이기 때문에 ‘$1’ 파일을 변경할 수 없습니다.
+'ns-specialprotected' => 'í\8a¹ì\88\98 ë¬¸ì\84\9cë\8a\94 í\8e¸ì§\91í\95  ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤.',
+'titleprotected' => '[[User:$1|$1]] 사용자가 문서 만들기를 금지했습니다.
+이유는 다음과 같습니다. "$2"',
+'filereadonlyerror' => '"$2" 파일 저장소가 읽기 전용이기 때문에 "$1" 파일을 변경할 수 없습니다.
 
-저장소 관리자가 파일 저장소를 잠근 이유에 대해 "\'\'$3\'\'"이라는 설명을 남겼습니다.',
-'invalidtitle-knownnamespace' => '제목 오류: 이름공간 "$2"와 텍스트 "$3"',
-'invalidtitle-unknownnamespace' => '제목 오류: 알 수 없는 이름공간 번호 "$1"과, 텍스트 "$2"',
+저장소 관리자가 파일 저장소를 잠근 이유에 대한 설명을 남겼습니다: "$3".',
+'invalidtitle-knownnamespace' => '제목 오류: "$2" 이름공간과 "$3" 텍스트',
+'invalidtitle-unknownnamespace' => '제목 오류: 알 수 없는 $1 이름공간 번호와, "$2" 텍스트',
+'exception-nologin' => '로그인하지 않음',
+'exception-nologin-text' => '이 문서나 행동은 이 위키에 로그인을 해야 합니다.',
 
 # Virus scanner
-'virus-badscanner' => "잘못된 설정: 알 수 없는 바이러스 검사기: ''$1''",
+'virus-badscanner' => "잘못된 설정: 알 수 없는 바이러스 검사기: '''$1'''",
 'virus-scanfailed' => '검사 실패 (코드 $1)',
 'virus-unknownscanner' => '알려지지 않은 백신:',
 
@@ -738,11 +750,11 @@ $2',
 [[Special:Preferences|{{SITENAME}} 사용자 환경 설정]]을 바꿀 수 있습니다.',
 'yourname' => '계정 이름:',
 'yourpassword' => '비밀번호:',
-'yourpasswordagain' => '비밀번호 입력:',
+'yourpasswordagain' => '비밀번호 다시 입력:',
 'remembermypassword' => '이 컴퓨터에서 로그인 상태를 저장하기 (최대 $1일)',
-'securelogin-stick-https' => '로그인 후에도 HTTPS 연결 상태를 유지합니다.',
-'yourdomainname' => '도메인 이름',
-'externaldberror' => '외부 인증 데이터베이스에 오류가 있거나, 외부 계정을 갱신할 권한이 없습니다.',
+'securelogin-stick-https' => '로그인 후에도 HTTPS 연결 상태를 유지합니다',
+'yourdomainname' => '도메인 이름:',
+'externaldberror' => '외부 인증 데이터베이스에 오류가 있거나 외부 계정을 갱신할 권한이 없습니다.',
 'login' => '로그인',
 'nav-login-createaccount' => '로그인 / 계정 만들기',
 'loginprompt' => '{{SITENAME}}에 로그인하려면 쿠키를 사용할 수 있어야 합니다.',
@@ -752,10 +764,10 @@ $2',
 'userlogout' => '로그아웃',
 'notloggedin' => '로그인하지 않음',
 'nologin' => '계정이 없나요? $1.',
-'nologinlink' => '계정 만들기',
+'nologinlink' => '계정을 만들 수 있습니다',
 'createaccount' => '계정 만들기',
 'gotaccount' => "계정이 이미 있다면, '''$1'''.",
-'gotaccountlink' => '로그인',
+'gotaccountlink' => '로그인하세요',
 'userlogin-resetlink' => '계정 이름이나 비밀번호를 잊으셨나요?',
 'createaccountmail' => '이메일로 보내기',
 'createaccountreason' => '이유:',
@@ -763,22 +775,29 @@ $2',
 'userexists' => '입력하신 사용자 이름이 이미 등록되어 있습니다.
 다른 이름을 선택해주십시오.',
 'loginerror' => '로그인 오류',
-'createaccounterror' => '계정을 생성하지 못했습니다: $1',
-'nocookiesnew' => '사용자 계정을 만들었지만, 아직 로그인하지 않았습니다. {{SITENAME}}에서는 로그인 정보를 저장하기 위해 쿠키를 사용합니다. 지금 사용하는 웹 브라우저는 쿠키를 사용하지 않도록 설정되어 있습니다. 로그인하기 전에 웹 브라우저에서 쿠키를 사용하도록 설정해주세요.',
-'nocookieslogin' => '{{SITENAME}}에서는 로그인을 위해 쿠키를 사용합니다. 당신의 웹 브라우저에서 쿠키가 비활성되어 있습니다. 쿠키 사용을 활성화한 다음 로그인해 주세요.',
-'nocookiesfornew' => '요청의 출처를 확인할 수 없기 때문에 사용자 계정이 생성되지 않았습니다.
+'createaccounterror' => '계정을 만들지 못했습니다: $1',
+'nocookiesnew' => '사용자 계정을 만들었지만, 아직 로그인하지 않았습니다.
+{{SITENAME}}에서는 로그인 정보를 저장하기 위해 쿠키를 사용합니다.
+지금 사용하는 웹 브라우저는 쿠키를 사용하지 않도록 설정되어 있습니다.
+로그인하기 전에 웹 브라우저에서 쿠키를 사용하도록 설정해주세요.',
+'nocookieslogin' => '{{SITENAME}}에서는 로그인을 위해 쿠키를 사용합니다.
+당신의 웹 브라우저에서 쿠키가 비활성되어 있습니다.
+쿠키 사용을 활성화한 다음 로그인해 주세요.',
+'nocookiesfornew' => '요청의 출처를 확인할 수 없기 때문에 사용자 계정이 만들어지지 않았습니다.
 쿠키를 허용한 것을 확인한 후에 다시 시도해 보십시오.',
 'noname' => '사용자 이름이 올바르지 않습니다.',
 'loginsuccesstitle' => '로그인 성공',
-'loginsuccess' => "'''{{SITENAME}}에 ‘$1’ 계정으로 로그인했습니다.'''",
+'loginsuccess' => "'''{{SITENAME}}에 \"\$1\" 계정으로 로그인했습니다.'''",
 'nosuchuser' => '"$1" 사용자가 존재하지 않습니다.
 사용자 이름은 대소문자를 구별합니다. 철자가 맞는지 확인해주세요.
 [[Special:UserLogin/signup|새 계정을 만들 수도 있습니다]].',
-'nosuchusershort' => '이름이 ‘$1’인 사용자는 없습니다. 철자가 맞는지 확인해 주세요.',
+'nosuchusershort' => '이름이 ‘$1’인 사용자는 없습니다.
+철자가 맞는지 확인해 주세요.',
 'nouserspecified' => '사용자 이름을 입력하지 않았습니다.',
 'login-userblocked' => '이 사용자는 차단되었습니다. 로그인할 수 없습니다.',
-'wrongpassword' => '입력한 비밀번호가 다릅니다. 다시 시도해 주세요.',
-'wrongpasswordempty' => '비밀번호를 쓰지 않았습니다.
+'wrongpassword' => '입력한 비밀번호가 다릅니다.
+다시 시도해 주세요.',
+'wrongpasswordempty' => '비밀번호를 입력하지 않았습니다.
 다시 시도해 주세요.',
 'passwordtooshort' => '비밀번호는 $1 문자 이상이어야 합니다.',
 'password-name-match' => '비밀번호는 사용자 이름과 반드시 달라야 합니다.',
@@ -786,61 +805,69 @@ $2',
 'mailmypassword' => '새 비밀번호를 이메일로 보내기',
 'passwordremindertitle' => '{{SITENAME}}의 새 임시 비밀번호',
 'passwordremindertext' => '$1 IP 주소에서 누군가가 아마 자신이 {{SITENAME}} ($4)의 새 비밀번호를 요청했습니다.
-‘$2’ 사용자의 임시 비밀번호는 ‘$3’로 설정되었습니다. 이것이 자신이 의도한 바라면 지금 로그인하여 새로운 비밀번호를 만드십시오.
-당신의 임시 비밀번호는 $5일 후에 무효화됩니다.
-
-이 요청을 다른 사람이 했거나 이전 비밀번호를 기억해 내서 바꿀 필요가 없으면 이 메시지를 무시하고 이전 비밀번호를 계속 사용할 수 있습니다.',
-'noemail' => '‘$1’ 사용자는 이메일 주소를 등록하지 않았습니다.',
-'noemailcreate' => '바른 이메일 주소를 써야 합니다.',
-'passwordsent' => '‘$1’ 계정의 새로운 비밀번호를 이메일로 보냈습니다. 비밀번호를 받고 다시 로그인해 주세요.',
+"$2" 사용자의 임시 비밀번호는 "$3"로 설정되었습니다. 이것이 자신이 의도한 바라면
+지금 로그인하여 새로운 비밀번호를 만드세요.
+당신의 임시 비밀번호는 $5일 후에 만료됩니다.
+
+이 요청을 다른 사람이 했거나 이전 비밀번호를 기억해 내서 바꿀 필요가 없으면
+이 메시지를 무시하고 이전 비밀번호를 계속 사용할 수 있습니다.',
+'noemail' => '"$1" 사용자는 이메일 주소를 등록하지 않았습니다.',
+'noemailcreate' => '바른 이메일 주소를 제공해야 합니다.',
+'passwordsent' => '"$1" 계정의 새로운 비밀번호를 이메일로 보냈습니다.
+비밀번호를 받고 다시 로그인해 주세요.',
 'blocked-mailpassword' => '당신의 IP 주소는 편집을 할 수 없게 차단되어 있어서 악용하지 못하도록 비밀번호 되살리기 기능 사용이 금지됩니다.',
-'eauthentsent' => '확인 이메일을 보냈습니다. 이메일 내용의 지시대로 계정 확인 절차를 실행해 주십시오.',
-'throttled-mailpassword' => '비밀번호 확인 이메일을 이미 최근 $1 시간 안에 보냈습니다. 악용을 방지하기 위해 비밀번호 확인 메일은 $1 시간마다 오직 하나씩만 보낼 수 있습니다.',
+'eauthentsent' => '입력한 이메일로 확인 이메일을 보냈습니다.
+게정에서 다른 이메일로 보내기 전에 이메일 내용의 지시대로 계정 확인 절차를 실행해 주십시오.',
+'throttled-mailpassword' => '비밀번호 확인 이메일을 이미 최근 $1시간 안에 보냈습니다.
+악용을 방지하기 위해 비밀번호 확인 메일은 $1시간마다 오직 하나씩만 보낼 수 있습니다.',
 'mailerror' => '메일 보내기 오류: $1',
-'acct_creation_throttle_hit' => '당신의 IP 주소를 이용한 방문자가 이전에 이미 계정을 $1개 생성하여, 계정 생성 한도를 초과하였습니다.
+'acct_creation_throttle_hit' => '당신의 IP 주소를 이용한 방문자가 이전에 이미 계정을 $1개 만들어, 계정 만들기 한도를 초과하였습니다.
 따라서 지금은 이 IP 주소로는 더 이상 계정을 만들 수 없습니다.',
 'emailauthenticated' => '당신의 이메일 주소는 $2 $3에 인증되었습니다.',
-'emailnotauthenticated' => '이메일 주소를 인증하지 않았습니다. 이메일 확인 절차를 거치지 않으면 다음 이메일 기능을 사용할 수 없습니다.',
-'noemailprefs' => '이 기능을 사용하기 위해서는 환경설정에서 이메일 주소를 설정해야 합니다.',
+'emailnotauthenticated' => '이메일 주소를 인증하지 않았습니다.
+이메일 확인 절차를 거치지 않으면 다음 이메일 기능을 사용할 수 없습니다.',
+'noemailprefs' => '이 기능을 사용하기 위해서는 사용자 환경 설정에서 이메일 주소를 설정해야 합니다.',
 'emailconfirmlink' => '이메일 주소 확인',
 'invalidemailaddress' => '이메일 주소의 형식이 잘못되어 인식할 수 없습니다.
 정상적인 형식의 이메일을 입력하거나 칸을 비워 주세요.',
 'cannotchangeemail' => '이 위키에서는 계정의 이메일 주소를 바꿀 수 없습니다.',
 'emaildisabled' => '이 사이트에서는 이메일을 보낼 수 없습니다.',
 'accountcreated' => '계정 만들어짐',
-'accountcreatedtext' => '‘$1’ 사용자 계정이 만들어졌습니다.',
+'accountcreatedtext' => '"$1" 사용자 계정이 만들어졌습니다.',
 'createaccount-title' => '{{SITENAME}} 계정 만들기',
-'createaccount-text' => '누군가가 {{SITENAME}} ($4)에서 계정 이름 ‘$2’, 비밀번호 ‘$3’로 당신의 이메일 주소가 등록된 계정을 만들었습니다. 지금 로그인하여 비밀번호를 바꾸십시오.
+'createaccount-text' => '누군가가 {{SITENAME}} ($4)에서 계정 이름 ‘$2’, 비밀번호 ‘$3’로 당신의 이메일 주소가 등록된 계정을 만들었습니다. 
+지금 로그인하여 비밀번호를 바꾸십시오.
 
 실수로 계정을 잘못 만들었다면 이 메시지는 무시해도 됩니다.',
-'usernamehasherror' => 'ê³\84ì \95 ì\9d´ë¦\84ì\97\90ë\8a\94 í\95´ì\8b\9c ë¬¸ì\9e\90ê°\80 ë\93¤ì\96´ê°\80ì\84\9cë\8a\94 ì\95\88 ë\90©니다.',
+'usernamehasherror' => 'ê³\84ì \95 ì\9d´ë¦\84ì\97\90ë\8a\94 í\95´ì\8b\9c ë¬¸ì\9e\90ê°\80 ë\93¤ì\96´ê°\88 ì\88\98 ì\97\86ì\8aµ니다.',
 'login-throttled' => '로그인에 연속으로 실패하였습니다.
 잠시 후에 다시 시도해주세요.',
 'login-abort-generic' => '로그인에 실패했습니다 - 중지됨',
 'loginlanguagelabel' => '언어: $1',
-'suspicious-userlogout' => 'ë¸\8cë\9d¼ì\9a°ì \80ì\9d\98 이상이 있거나 캐싱 프록시에서 로그아웃을 요청했기 때문에 로그아웃이 거부되었습니다.',
+'suspicious-userlogout' => 'ë¸\8cë\9d¼ì\9a°ì \80ì\97\90 이상이 있거나 캐싱 프록시에서 로그아웃을 요청했기 때문에 로그아웃이 거부되었습니다.',
 
 # E-mail sending
 'php-mail-error-unknown' => 'PHP의 mail() 함수에서 알 수 없는 오류가 발생했습니다.',
-'user-mail-no-addy' => '받는 이의 이메일 주소가 없다면 이메일을 보낼 수 없습니다.',
+'user-mail-no-addy' => '받는이의 이메일 주소가 없으면 이메일을 보낼 수 없습니다.',
 
 # Change password dialog
 'resetpass' => '비밀번호 바꾸기',
-'resetpass_announce' => '이메일로 받은 임시 비밀번호로 로그인했습니다. 로그인을 마치려면 새 비밀번호를 여기에서 설정해야 합니다:',
+'resetpass_announce' => '이메일로 받은 임시 비밀번호로 로그인했습니다.
+로그인을 마치려면 새 비밀번호를 여기에서 설정해야 합니다:',
 'resetpass_text' => '<!-- 여기에 텍스트를 추가하세요 -->',
-'resetpass_header' => 'ë¹\84ë°\80ë²\88í\98¸ ë³\80ê²½',
+'resetpass_header' => 'ë¹\84ë°\80ë²\88í\98¸ ë°\94꾸기',
 'oldpassword' => '이전 비밀번호:',
 'newpassword' => '새 비밀번호:',
 'retypenew' => '새 비밀번호 재입력:',
 'resetpass_submit' => '비밀번호를 설정하고 로그인하기',
-'resetpass_success' => '비밀번호를 변경했습니다!
-이제...사용하십시오.',
-'resetpass_forbidden' => '비밀번호 변경 불가',
+'resetpass_success' => '비밀번호를 성공적으로 바꿨습니다!
+이제 로그인을 합니다...',
+'resetpass_forbidden' => '비밀번호를 바꿀 수 없음',
 'resetpass-no-info' => '이 특수 문서에 직접 접근하려면 반드시 로그인해야 합니다.',
-'resetpass-submit-loggedin' => 'ë¹\84ë°\80ë²\88í\98¸ ë³\80ê²½',
+'resetpass-submit-loggedin' => 'ë¹\84ë°\80ë²\88í\98¸ ë°\94꾸기',
 'resetpass-submit-cancel' => '취소',
 'resetpass-wrong-oldpass' => '비밀번호가 잘못되었거나 현재의 비밀번호와 같습니다.
\8b¹ì\8b ì\9d\80 ì\9d´ë¯¸ ë¹\84ë°\80ë²\88í\98¸ë¥¼ ì\84±ê³µì \81ì\9c¼ë¡\9c ë³\80ê²½í\95\98ì\98\80거나 새 임시 비밀번호를 발급받았을 수 있습니다.',
\8b¹ì\8b ì\9d\80 ì\9d´ë¯¸ ë¹\84ë°\80ë²\88í\98¸ë¥¼ ì\84±ê³µì \81ì\9c¼ë¡\9c ë°\94꾸ì\97\88거나 새 임시 비밀번호를 발급받았을 수 있습니다.',
 'resetpass-temp-password' => '임시 비밀번호:',
 
 # Special:PasswordReset
@@ -848,25 +875,29 @@ $2',
 'passwordreset-text' => '이메일을 통해 계정 정보를 받을 수 있습니다. 아래의 칸을 채워주세요.',
 'passwordreset-legend' => '비밀번호 재설정',
 'passwordreset-disabled' => '이 위키에서는 비밀번호를 재설정할 수 없습니다.',
-'passwordreset-pretext' => '{{PLURAL:$1||ì\95\84ë\9e\98ì\97\90 í\95\9c ê°\80ì§\80 ì \95보를 ì\9e\85ë ¥í\95´ì£¼ì\8b­ì\8b\9cì\98¤}}',
+'passwordreset-pretext' => '{{PLURAL:$1||ì\95\84ë\9e\98ì\97\90 í\95\9c ê°\80ì§\80 ì \95보를 ì\9e\85ë ¥í\95\98ì\84¸ì\9a\94}}',
 'passwordreset-username' => '계정 이름:',
 'passwordreset-domain' => '도메인:',
 'passwordreset-capture' => '발송 결과 이메일을 보시겠습니까?',
 'passwordreset-capture-help' => '이 상자에 체크하면 이메일이 발송된 즉시 임시 비밀번호가 담긴 이메일을 볼 수 있습니다.',
 'passwordreset-email' => '이메일 주소:',
 'passwordreset-emailtitle' => '{{SITENAME}} 계정 상세 정보',
-'passwordreset-emailtext-ip' => 'IP 주소 $1을 사용하는 누군가(아마도 당신이), {{SITENAME}} ($4)의 비밀번호 찾기를 요청하였습니다. 이 이메일 주소와 연관된 계정의 목록입니다:
+'passwordreset-emailtext-ip' => 'IP 주소 $1을 사용하는 누군가(아마도 당신이), {{SITENAME}} ($4)의 비밀번호 찾기를 요청하였습니다.
+이 이메일 주소와 연관된 계정의 목록입니다:
 
 $2
 
-이 {{PLURAL:$3|임시 비밀번호}}의 효력은 $5일 후 만료됩니다.
-이 비밀번호로 로그인한 후 비밀번호를 변경하십시오. 만약 당신이 아닌 다른 사람이 요청하였거나, 원래의 비밀번호를 기억해냈다면, 이 메시지를 무시하고 이전의 비밀번호를 계속 사용할 수 있습니다.',
-'passwordreset-emailtext-user' => '{{SITENAME}} ($4)의 사용자 $1이 비밀번호 찾기를 요청하였습니다. 이 이메일 주소와 연관된 계정의 목록입니다:
+이 {{PLURAL:$3|임시 비밀번호}}는 $5일 후에 만료됩니다.
+이 비밀번호로 로그인한 후 비밀번호를 바꾸십시오. 만약 당신이 아닌 다른 사람이 요청하였거나,
+원래의 비밀번호를 기억해냈다면, 이 메시지를 무시하고 이전의 비밀번호를 계속 사용할 수 있습니다.',
+'passwordreset-emailtext-user' => '{{SITENAME}} ($4)의 사용자 $1이 비밀번호 찾기를 요청하였습니다.
+이 이메일 주소와 연관된 계정의 목록입니다:
 
 $2
 
-이 {{PLURAL:$3|임시 비밀번호}}의 효력은 $5일 후 만료됩니다.
-이 비밀번호로 로그인한 후 비밀번호를 변경하십시오. 만약 당신이 아닌 다른 사람이 요청하였거나, 원래의 비밀번호를 기억해냈다면, 이 메시지를 무시하고 이전의 비밀번호를 계속 사용할 수 있습니다.',
+이 {{PLURAL:$3|임시 비밀번호}}는 $5일 후에 만료됩니다.
+이 비밀번호로 로그인한 후 비밀번호를 바꾸십시오. 만약 당신이 아닌 다른 사람이 요청하였거나,
+원래의 비밀번호를 기억해냈다면, 이 메시지를 무시하고 이전의 비밀번호를 계속 사용할 수 있습니다.',
 'passwordreset-emailelement' => '계정 이름: $1
 임시 비밀번호: $2',
 'passwordreset-emailsent' => '비밀번호 찾기 이메일을 보냈습니다.',
@@ -874,14 +905,14 @@ $2
 'passwordreset-emailerror-capture' => '비밀번호 찾기 이메일이 생성되어 아래에 표시되었지만 발송하는 데에는 실패했습니다: $1',
 
 # Special:ChangeEmail
-'changeemail' => 'E-mail 주소 변경',
-'changeemail-header' => 'ê³\84ì \95 ë©\94ì\9d¼ ì£¼ì\86\8c ë³\80ê²½',
-'changeemail-text' => 'ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c를 ë°\94꾸려면 ì\9d´ ì\96\91ì\8b\9dì\9d\84 ì±\84ì\9b\8c주ì\8b­ì\8b\9cì\98¤. ë³\80ê²½ ë\82´ì\9a©ì\9d\84 í\99\95ì\9d¸í\95\98기 ì\9c\84í\95´ ë\8b¹ì\8b ì\9d\98 ë¹\84ë°\80ë²\88í\98¸ë¥¼ ì\9e\85ë ¥í\95´ì\95¼합니다.',
+'changeemail' => '이메일 주소 바꾸기',
+'changeemail-header' => 'ê³\84ì \95 ë©\94ì\9d¼ ì£¼ì\86\8c ë°\94꾸기',
+'changeemail-text' => 'ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c를 ë°\94꾸려면 ì\9d´ ì\96\91ì\8b\9dì\9d\84 ì±\84ì\9a°ì\84¸ì\9a\94. ë³\80ê²½ ë\82´ì\9a©ì\9d\84 í\99\95ì\9d¸í\95\98기 ì\9c\84í\95´ ë\8b¹ì\8b ì\9d\98 ë¹\84ë°\80ë²\88í\98¸ë¥¼ ì\9e\85ë ¥í\95´ì\95¼ 합니다.',
 'changeemail-no-info' => '이 특수 문서에 직접 접근하려면 반드시 로그인해야 합니다.',
 'changeemail-oldemail' => '현재 E-mail 주소 :',
 'changeemail-newemail' => '새 이메일 주소:',
 'changeemail-none' => '(없음)',
-'changeemail-submit' => 'ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c ë³\80ê²½',
+'changeemail-submit' => 'ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c ë°\94꾸기',
 'changeemail-cancel' => '취소',
 
 # Edit page toolbar
@@ -912,24 +943,28 @@ $2
 'showpreview' => '미리 보기',
 'showlivepreview' => '실시간 미리 보기',
 'showdiff' => '차이 보기',
-'anoneditwarning' => "'''주의''': 로그인하고 있지 않습니다. 당신의 IP 주소가 문서 역사에 남게 됩니다.",
+'anoneditwarning' => "'''주의''': 로그인하고 있지 않습니다.
+당신의 IP 주소가 문서 역사에 남게 됩니다.",
 'anonpreviewwarning' => "'''당신은 지금 로그인하고 있지 않습니다. 문서를 저장하면 당신의 IP 주소가 문서 역사에 남게 됩니다.'''",
-'missingsummary' => "'''알림:''' 편집 요약을 적지 않았습니다. 그대로 저장하면 편집 요약 없이 저장됩니다.",
+'missingsummary' => "'''알림:''' 편집 요약을 적지 않았습니다.
+이대로 \"{{int:savearticle}}\"을 클릭하면 편집 요약 없이 저장됩니다.",
 'missingcommenttext' => '아래에 내용을 채워 넣어 주세요.',
 'missingcommentheader' => "'''알림:''' 글의 제목을 입력하지 않았습니다.
-다시 {{int:savearticle}} 버튼을 클릭하면 글이 제목 없이 저장됩니다.",
+다시 \"{{int:savearticle}}\" 버튼을 클릭하면 글이 제목 없이 저장됩니다.",
 'summary-preview' => '편집 요약 미리 보기:',
 'subject-preview' => '주제/제목 미리 보기:',
 'blockedtitle' => '차단됨',
 'blockedtext' => "'''당신의 계정 혹은 IP 주소가 차단되었습니다.'''
 
-차단한 사람은 $1이고, 차단한 이유는 다음과 같습니다: $2
+차단한 사람은 $1입니다.
+차단한 이유는 다음과 같습니다: $2
 
 * 차단이 시작된 시간: $8
 * 차단이 끝나는 시간: $6
 * 차단된 사용자: $7
 
-$1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대해 문의할 수 있습니다. [[Special:Preferences|계정 환경 설정]]에 올바른 이메일 주소가 있어야만 '이메일 보내기' 기능을 사용할 수 있습니다. 또 이메일 보내기 기능이 차단되어 있으면 이메일을 보낼 수 없습니다.
+$1 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대해 문의할 수 있습니다.
+[[Special:Preferences|계정 환경 설정]]에 올바른 이메일 주소가 있어야만 '이메일 보내기' 기능을 사용할 수 있습니다. 또 이메일 보내기 기능이 차단되어 있으면 이메일을 보낼 수 없습니다.
 지금 당신의 IP 주소는 $3이고, 차단 ID는 #$5입니다.
 문의할 때에 이 정보를 같이 알려주세요.",
 'autoblockedtext' => "당신의 IP 주소는 $1이 차단한 사용자가 사용했던 IP이기 때문에 자동으로 차단되었습니다. 차단된 이유는 다음과 같습니다:
@@ -940,7 +975,7 @@ $1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 
 * 차단이 끝나는 시간: $6
 * 차단된 사용자: $7
 
-$1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대해 문의할 수 있습니다.
+$1 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대해 문의할 수 있습니다.
 
 [[Special:Preferences|계정 환경 설정]]에 올바른 이메일 주소가 있어야만 '이메일 보내기' 기능을 사용할 수 있습니다. 또한 이메일 보내기 기능이 차단되어 있으면 이메일을 보낼 수 없습니다.
 
@@ -948,59 +983,75 @@ $1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 
 문의할 때에 이 정보를 같이 알려주세요.",
 'blockednoreason' => '이유를 입력하지 않음',
 'whitelistedittext' => '문서를 편집하려면 $1해야 합니다.',
-'confirmedittext' => '문서를 고치려면 이메일 인증 절차가 필요합니다. [[Special:Preferences|사용자 환경 설정]]에서 이메일 주소를 입력하고 이메일 주소 인증을 해 주시기 바랍니다.',
-'nosuchsectiontitle' => '칸을 찾을 수 없음',
-'nosuchsectiontext' => '존재하지 않는 칸을 편집하려 했습니다.
-이 문서를 보는 동안 칸이 이동되었거나 삭제되었을 수 있습니다.',
+'confirmedittext' => '문서를 고치려면 이메일 인증 절차가 필요합니다.
+[[Special:Preferences|사용자 환경 설정]]에서 이메일 주소를 입력하고 이메일 주소 인증을 해주시기 바랍니다.',
+'nosuchsectiontitle' => '문단을 찾을 수 없음',
+'nosuchsectiontext' => '존재하지 않는 문단을 편집하려 했습니다.
+이 문서를 보는 동안 문단이 이동되었거나 삭제되었을 수 있습니다.',
 'loginreqtitle' => '로그인 필요',
 'loginreqlink' => '로그인',
 'loginreqpagetext' => '다른 문서를 보기 위해서는 $1해야 합니다.',
 'accmailtitle' => '비밀번호를 보냈습니다.',
 'accmailtext' => '[[User talk:$1|$1]] 사용자의 비밀번호가 임의로 만들어져 $2로 전송되었습니다.
 
\83\88 ë¹\84ë°\80ë²\88í\98¸ë\8a\94 ë¡\9cê·¸ì\9d¸í\95\9c í\9b\84 [[Special:ChangePassword|ë³\80ê²½]]í\95  수 있습니다.',
\83\88 ë¹\84ë°\80ë²\88í\98¸ë\8a\94 ë¡\9cê·¸ì\9d¸í\95\9c í\9b\84 [[Special:ChangePassword|ë¹\84ë°\80ë²\88í\98¸ë¥¼ ë°\94ê¿\80]] 수 있습니다.',
 'newarticle' => '(새 문서)',
-'newarticletext' => "이 문서는 아직 만들어지지 않았습니다. 새 문서를 만들려면 아래의 상자에 문서 내용을 입력하면 됩니다(자세한 내용은 [[{{MediaWiki:Helppage}}|도움말]]을 읽어 주세요).
-만약 잘못 찾아온 문서라면, 웹 브라우저의 '''뒤로''' 버튼을 눌러 주세요.",
+'newarticletext' => "이 문서는 아직 만들어지지 않았습니다.
+새 문서를 만들려면 아래의 상자에 문서 내용을 입력하면 됩니다(자세한 내용은 [[{{MediaWiki:Helppage}}|도움말]]을 읽어 주세요).
+만약 잘못 찾아온 문서라면 웹 브라우저의 '''뒤로''' 버튼을 눌러 주세요.",
 'anontalkpagetext' => '----
-여기는 계정을 만들지 않았거나 사용하고 있지 않은 비등록 사용자를 위한 토론 문서입니다. 비등록 사용자를 구별하기 위해서는 숫자로 된 IP 주소를 사용해야만 합니다. IP 주소는 여러 사용자가 공유할 수 있습니다. 자신과 관계없는 의견이 자신에게 남겨져 있어 불쾌하다고 생각하는 비등록 사용자는 [[Special:UserLogin/signup|계정을 만들고]] [[Special:UserLogin|로그인 하여]] 나중에 다른 비등록 사용자에게 줄 혼란을 줄일 수 있습니다.',
+여기는 계정을 만들지 않았거나 사용하고 있지 않은 익명 사용자를 위한 토론 문서입니다.
+익명 사용자를 구별하기 위해서는 숫자로 된 IP 주소를 사용해야만 합니다.
+IP 주소는 여러 사용자가 공유할 수 있습니다.
+자신과 관계없는 의견이 자신에게 남겨져 있어 불쾌하다고 생각하는 익명 사용자는 [[Special:UserLogin/signup|계정을 만들고]] [[Special:UserLogin|로그인 하여]] 나중에 다른 익명 사용자에게 줄 혼란을 줄일 수 있습니다.',
 'noarticletext' => '이 문서가 존재하지 않습니다.
-이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|검색]]하거나, 이 문서에 관련된 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 기록]을 확인하거나, 문서를 직접 [{{fullurl:{{FULLPAGENAME}}|action=edit}} 편집]</span>할 수 있습니다.',
-'noarticletext-nopermission' => '‘{{FULLPAGENAME}}’ 문서가 존재하지 않습니다.
-이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|검색]]하거나, 이 문서에 관련된 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 기록]을 확인할 수 있습니다.</span>',
-'userpage-userdoesnotexist' => '‘<nowiki>$1</nowiki>’ 계정은 등록되어 있지 않습니다. 이 문서를 만들거나 편집하려면 계정이 존재 하는지 확인해주세요.',
+이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|검색]]하거나,
+이 문서에 관련된 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 기록]을 확인하거나,
+문서를 직접 [{{fullurl:{{FULLPAGENAME}}|action=edit}} 편집]</span>할 수 있습니다.',
+'noarticletext-nopermission' => '이 문서가 존재하지 않습니다.
+이 문서와 제목이 비슷한 문서가 있는지 [[Special:Search/{{PAGENAME}}|검색]]하거나,
+이 문서에 관련된 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 기록]을 확인할 수 있습니다.</span>',
+'userpage-userdoesnotexist' => '‘$1’ 계정은 등록되어 있지 않습니다.
+이 문서를 만들거나 편집하려면 계정이 존재 하는지 확인해주세요.',
 'userpage-userdoesnotexist-view' => '"$1" 사용자 계정은 등록되지 않았습니다.',
 'blocked-notice-logextract' => '이 사용자는 현재 차단되어 있습니다.
 해당 사용자의 최근 차단 기록을 참고하십시오:',
-'clearyourcache' => "'''참고:''' 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 갱신해야 합니다.
+'clearyourcache' => "'''참고:''' 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.
 * '''파이어폭스 / 사파리''': ''Shift'' 키를 누르면서 새로 고침을 클릭하거나, ''Ctrl-F5'' 또는 ''Ctrl-R'' 을 입력 (Mac에서는 ''⌘-R'')
 * '''구글 크롬''': ''Ctrl-Shift-R''키를 입력 (Mac에서는 ''⌘-Shift-R'')
 * '''인터넷 익스플로러''': ''Ctrl'' 키를 누르면서 새로 고침을 클릭하거나, ''Ctrl-F5''를 입력.
 * '''컨커러''': ''새로고침''을 클릭하거나 ''F5''를 입력
-* '''오페라''': 도구→설정에서 캐시를 비움",
-'usercssyoucanpreview' => "'''안내''': CSS 문서를 저장하기 전에 ‘{{int:showpreview}}’ 기능을 통해 작동을 확인해주세요.",
-'userjsyoucanpreview' => "'''안내''': JS 문서를 저장하기 전에 ‘{{int:showpreview}}’ 기능을 통해 작동을 확인해주세요.",
-'usercsspreview' => "'''이것은 사용자 CSS의 미리 보기이며, 아직 저장하지 않았다는 것을 주의해 주세요!'''",
-'userjspreview' => "'''이것은 자바스크립트 미리 보기로, 아직 저장하지 않았다는 것을 주의해 주세요!'''",
+* '''오페라''': ''도구→설정''에서 캐시를 비움",
+'usercssyoucanpreview' => "'''안내''': CSS 문서를 저장하기 전에 \"{{int:showpreview}}\" 기능을 통해 작동을 확인해주세요.",
+'userjsyoucanpreview' => "'''안내''': 자바스크립트 문서를 저장하기 전에 \"{{int:showpreview}}\" 기능을 통해 작동을 확인해주세요.",
+'usercsspreview' => "'''이것은 사용자 CSS의 미리 보기입니다.'''
+'''아직 저장하지 않았다는 것을 기억해두세요!'''",
+'userjspreview' => "'''이것은 자바스크립트 미리 보기입니다'''
+'''아직 저장하지 않았다는 것을 기억해두세요!'''",
 'sitecsspreview' => "'''이것은 이 CSS의 미리 보기일 뿐입니다.'''
-'''아직 저장하지 않았다는 것을 주의해 주세요!'''",
+'''아직 저장하지 않았다는 것을 기억해두세요!'''",
 'sitejspreview' => "'''이것은 이 자바스크립트 코드의 미리 보기일 뿐입니다.'''
-'''아직 저장하지 않았다는 것을 주의해 주세요!'''",
-'userinvalidcssjstitle' => "'''경고''': ‘$1’ 스킨은 없습니다.
+'''아직 저장하지 않았다는 것을 기억해두세요!'''",
+'userinvalidcssjstitle' => "'''경고''': \"\$1\" 스킨은 없습니다.
 .css와 .js 문서의 제목은 {{ns:user}}:Foo/vector.css 처럼 소문자로 써야 합니다. {{ns:user}}:Foo/Vector.css 와 같이 대문자로 쓸 경우 작동하지 않습니다.",
 'updated' => '(바뀜)',
-'note' => "'''주의:'''",
-'previewnote' => "'''이 화면은 미리 보기입니다'''. 편집한 내용은 아직 저장되지 않았습니다!",
+'note' => "'''참고:'''",
+'previewnote' => "'''이 화면은 미리 보기입니다.'''
+편집한 내용은 아직 저장되지 않았습니다!",
 'continue-editing' => '계속 편집하기',
-'previewconflict' => '이 미리 보기는 저장할 때의 모습, 즉 위쪽 편집창의 문서를 반영합니다.',
-'session_fail_preview' => "'''세션 데이터가 없어져 편집을 저장하지 못했습니다.
-다시 시도해도 되지 않으면 [[Special:UserLogout|로그아웃]]한 다음 다시 로그인해 보십시오.'''",
+'previewconflict' => '이 미리 보기는 저장할 때의 모습으로 위쪽 편집창의 문서를 반영합니다.',
+'session_fail_preview' => "'''세션 데이터가 없어져 편집을 저장하지 못했습니다.'''
+다시 시도하세요.
+다시 시도해도 되지 않으면 [[Special:UserLogout|로그아웃]]한 다음 다시 로그인하세요.",
 'session_fail_preview_html' => "'''세션 데이터가 없어져 편집을 저장하지 못했습니다.'''
 
 {{SITENAME}}에서 HTML 입력을 허용하기 때문에, 자바스크립트 공격을 막기 위해 미리 보기는 숨겨져 있습니다.
 
-'''다시 시도해도 되지 않으면 [[Special:UserLogout|로그아웃]]한 다음 다시 로그인을 해 보십시오.'''",
-'token_suffix_mismatch' => "'''저장하려는 내용의 문장 부호가 망가져 있습니다. 문서 보호를 위해 해당 내용을 저장하지 않습니다. 버그가 있는 익명 프록시 서비스 등을 사용할 때 이런 문제가 발생할 수 있습니다.'''",
+'''적합하게 편집을 시도했다면 다시 시도하세요'''
+다시 시도해도 되지 않으면 [[Special:UserLogout|로그아웃]]한 다음 다시 로그인하세요.",
+'token_suffix_mismatch' => "'''저장하려는 내용의 문장 부호가 망가져 있습니다.'''
+문서 보호를 위해 해당 내용을 저장하지 않습니다.
+버그가 있는 익명 프록시 서비스 등을 사용할 때 이런 문제가 발생할 수 있습니다.",
 'edit_form_incomplete' => "'''편집의 일부 내용이 서버에 전달되지 않았습니다. 당신의 편집이 손상되지 않았는지 확인하고 다시 시도해 주십시오.'''",
 'editing' => '$1 편집하기',
 'creating' => '$1 만들기',
@@ -1013,39 +1064,42 @@ $1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 
 \"{{int:savearticle}}\"을 누르면 '''위쪽의 편집 내역만''' 저장됩니다.",
 'yourtext' => '당신의 편집',
 'storedversion' => '현재 문서',
-'nonunicodebrowser' => "'''주의: 당신의 웹 브라우저가 유니코드를 완벽하게 지원하지 않습니다. 몇몇 문자가 16진수 코드로 나타날 수 있습니다.'''",
-'editingold' => "'''경고:
-지금 옛날 버전의 문서를 고치고 있습니다.
-이것을 저장하면 최근에 편집된 부분이 사라질 수 있습니다.'''",
+'nonunicodebrowser' => "'''주의: 당신의 웹 브라우저가 유니코드를 완벽하게 지원하지 않습니다.'''
+아스키가 아닌 문자가 16진수 코드로 나타날 수 있습니다.",
+'editingold' => "'''경고: 지금 이전 버전의 문서를 고치고 있습니다.'''
+이것을 저장하면 최근에 편집된 부분이 사라질 수 있습니다.",
 'yourdiff' => '차이',
-'copyrightwarning' => "{{SITENAME}}에서의 모든 기여는 $2 라이선스로 배포된다는 점을 유의해 주세요 (자세한 내용에 대해서는 $1 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.<br />
+'copyrightwarning' => "{{SITENAME}}에서의 모든 기여는 $2 라이선스로 배포된다는 점을 유의해 주세요 (자세한 내용에 대해서는 $1 문서를 읽어주세요).
+만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.<br />
 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
 '''저작권이 있는 내용을 허가 없이 저장하지 마세요!'''",
-'copyrightwarning2' => "{{SITENAME}}에서의 모든 기여는 다른 사용자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.<br />
+'copyrightwarning2' => "{{SITENAME}}에서의 모든 기여는 다른 사용자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요.
+만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.<br />
 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 내용에 대해서는 $1 문서를 읽어 주세요).
 '''저작권이 있는 내용을 허가 없이 저장하지 마세요!'''",
 'longpageerror' => "'''오류: 문서의 크기가 {{PLURAL:$1|$1킬로바이트}}로 최대 크기인 {{PLURAL:$2|$2킬로바이트}}보다 큽니다.'''
 저장할 수 없습니다.",
-'readonlywarning' => "'''주의: 데이터베이스가 관리를 위해 잠겨 있습니다. 따라서 문서를 편집한 내용을 지금 저장할 수 없습니다.
-편집 내용을 복사 붙여넣기 등을 사용하여 일단 다른 곳에 저장한 후, 나중에 다시 시도해 주세요.'''
+'readonlywarning' => "'''주의: 데이터베이스가 관리를 위해 잠겨 있습니다. 따라서 문서를 편집한 내용을 지금 저장할 수 없습니다.'''
+편집 내용을 복사 붙여넣기 등을 사용하여 일단 다른 곳에 저장한 후, 나중에 다시 시도해 주세요.
 
 잠근 관리자가 남긴 설명은 다음과 같습니다: $1",
 'protectedpagewarning' => "'''경고: 이 문서는 관리자만 편집할 수 있도록 보호되어 있습니다.'''
 이 문서의 최근 기록을 참고하십시오:",
-'semiprotectedpagewarning' => "'''ì\95\88ë\82´:''' 이 문서는 계정을 등록한 사용자만이 편집할 수 있도록 잠겨 있습니다.
+'semiprotectedpagewarning' => "'''참고:''' 이 문서는 계정을 등록한 사용자만이 편집할 수 있도록 잠겨 있습니다.
 이 문서의 최근 기록을 참고하십시오:",
 'cascadeprotectedwarning' => "'''주의''': 이 문서는 잠겨 있어 관리자만 편집할 수 있습니다. 연쇄적 보호가 걸린 다음 {{PLURAL:$1|문서}}에서 이 문서를 사용하고 있습니다:",
-'titleprotectedwarning' => "'''경고: 이 문서는 잠겨 있어, 문서를 생성하려면 [[Special:ListGroupRights|특정 권한]]이 필요합니다.'''
+'titleprotectedwarning' => "'''경고: 이 문서는 잠겨 있어, 문서를 만드려면 [[Special:ListGroupRights|특정 권한]]이 필요합니다.'''
 아래 문서의 최근 기록을 참고하십시오:",
 'templatesused' => '이 문서에서 사용한 {{PLURAL:$1|틀}}:',
 'templatesusedpreview' => '이 미리 보기에서 사용하고 있는 {{PLURAL:$1|틀}}:',
-'templatesusedsection' => '이 에서 사용하고 있는 {{PLURAL:$1|틀}}:',
+'templatesusedsection' => '이 문단에서 사용하고 있는 {{PLURAL:$1|틀}}:',
 'template-protected' => '(보호됨)',
 'template-semiprotected' => '(준보호됨)',
-'hiddencategories' => '이 문서는 다음 숨은 분류 $1 개에 속해 있습니다:',
+'hiddencategories' => '이 문서는 다음 숨은 분류 $1개에 속해 있습니다:',
 'edittools' => '<!-- 이 문서는 편집 창과 파일 올리기 창에 출력됩니다. -->',
-'nocreatetitle' => '문서 생성 제한',
-'nocreatetext' => '{{SITENAME}}에서 새로운 문서를 생성하는 것은 제한되어 있습니다. 이미 존재하는 다른 문서를 편집하거나, [[Special:UserLogin|로그인하거나 계정을 만들 수 있습니다]].',
+'nocreatetitle' => '문서 만들기 제한',
+'nocreatetext' => '{{SITENAME}}에서 새로운 문서를 만드는 것은 제한되어 있습니다.
+이미 존재하는 다른 문서를 편집하거나, [[Special:UserLogin|로그인하거나 계정을 만들 수 있습니다]].',
 'nocreate-loggedin' => '새 문서를 만들 권한이 없습니다.',
 'sectioneditnotsupported-title' => '부분 편집 지원 안됨',
 'sectioneditnotsupported-text' => '이 문서에서는 문단 편집을 지원하지 않습니다.',
@@ -1056,14 +1110,15 @@ $1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 
 
 이 문서를 계속 편집하는 것이 적합한 것인지 확인해주세요.
 편의를 위해 삭제와 이동 기록을 다음과 같이 제공합니다:",
-'moveddeleted-notice' => '이 문서는 삭제되었습니다. 이 문서의 삭제/이동 기록은 다음과 같습니다.',
+'moveddeleted-notice' => '이 문서는 삭제되었습니다.
+이 문서의 삭제 및 이동 기록은 다음과 같습니다.',
 'log-fulllog' => '전체 기록 보기',
 'edit-hook-aborted' => '훅에 의해 편집이 중단되었습니다.
 아무런 설명도 주어지지 않았습니다.',
 'edit-gone-missing' => '문서를 저장하지 못했습니다.
 문서가 삭제된 것 같습니다.',
 'edit-conflict' => '편집 충돌.',
-'edit-no-change' => '문서에 아무런 변화가 없기 때문에, 당신의 편집은 무시되었습니다.',
+'edit-no-change' => '문서에 아무런 변화가 없기 때문에 당신의 편집은 무시되었습니다.',
 'edit-already-exists' => '새 문서를 만들 수 없습니다.
 그 문서는 이미 존재합니다.',
 'defaultmessagetext' => '기본 메세지 내용',
@@ -1073,8 +1128,8 @@ $1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 
 
 $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'expensive-parserfunction-category' => '느린 파서 함수 호출을 너무 많이 하는 문서',
-'post-expand-template-inclusion-warning' => '경고: 틀 포함 크기가 너무 큽니다.
-일부 틀은 포함되지 않을 수 있습니다.',
+'post-expand-template-inclusion-warning' => "'''경고:''' 틀 포함 크기가 너무 큽니다.
+일부 틀은 포함되지 않을 수 있습니다.",
 'post-expand-template-inclusion-category' => '사용한 틀의 크기가 지나치게 큰 문서의 목록',
 'post-expand-template-argument-warning' => "'''경고:''' 이 문서는 전개 후 크기가 너무 큰 틀 변수가 하나 이상 포함되어 있습니다.
 이 변수들은 생략되었습니다.",
@@ -1086,13 +1141,14 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'node-count-exceeded-warning' => '페이지가 노드 수를 초과하였습니다.',
 'expansion-depth-exceeded-category' => '페이지가 확장 깊이를 초과하였습니다.',
 'expansion-depth-exceeded-warning' => '페이지가 확장 깊이를 초과하였습니다',
-'parser-unstrip-loop-warning' => 'ì\8a¤í\8a¸ë¦½í\95\98ì§\80 ì\95\8aë\8a\94 ë°\98ë³µì\9d´ ê°\90ì§\80ë\90¨',
+'parser-unstrip-loop-warning' => 'ì\8a¤í\8a¸ë¦½í\95\98ì§\80 ì\95\8aë\8a\94 ë°\98ë³µì\9d´ ê°\90ì§\80ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤',
 'parser-unstrip-recursion-limit' => '스트립하지 않는 재귀 한도가 초과됨 ($1)',
 
 # "Undo" feature
-'undo-success' => '이 편집을 되돌리려면 아래의 변경되는 사항을 확인한 후 저장해주세요.',
+'undo-success' => '편집을 되돌릴 수 있습니다.
+편집 되돌리기를 완료하려면 이 편집을 되돌리려면 아래의 변경되는 사항을 확인한 후 저장해주세요.',
 'undo-failure' => '중간의 다른 편집과 충돌하여 이 편집을 되돌릴 수 없습니다.',
-'undo-norev' => '문서가 없거나 삭제되었기 때문에, 편집을 되돌릴 수 없습니다.',
+'undo-norev' => '문서가 없거나 삭제되었기 때문에 편집을 되돌릴 수 없습니다.',
 'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|토론]]) 의 $1판 편집을 되돌림',
 
 # Account creation failure
@@ -1107,7 +1163,7 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'currentrev' => '최신판',
 'currentrev-asof' => '$1 기준 최신판',
 'revisionasof' => '$1 판',
-'revision-info' => '$2 사용자의 $1 버전',
+'revision-info' => '$2 사용자의 $1 ',
 'previousrevision' => '← 이전 판',
 'nextrevision' => '다음 판 →',
 'currentrevisionlink' => '최신판',
@@ -1117,9 +1173,8 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'page_first' => '처음',
 'page_last' => '마지막',
 'histlegend' => "비교하려는 판을 선택한 다음 엔터나 아래의 버튼을 누르세요.<br />
-설명: '''({{int:cur}})''' = 최신 판과 비교,
-'''({{int:last}})''' = 이전 판과 비교, '''{{int:minoreditletter}}'''= 사소한 편집",
-'history-fieldset-title' => '문서의 변경 내력 찾기',
+설명: '''({{int:cur}})''' = 최신 판과 비교, '''({{int:last}})''' = 이전 판과 비교, '''{{int:minoreditletter}}'''= 사소한 편집",
+'history-fieldset-title' => '문서의 바뀐 내력 찾기',
 'history-show-deleted' => '삭제된 것만',
 'histfirst' => '초기',
 'histlast' => '최신',
@@ -1137,8 +1192,8 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 # Revision deletion
 'rev-deleted-comment' => '(편집 요약 삭제됨)',
 'rev-deleted-user' => '(계정 이름 삭제됨)',
-'rev-deleted-event' => '(로그 삭제됨)',
-'rev-deleted-user-contribs' => '[계정 이름/IP 주소 삭제됨 -  기여 목록에서 숨겨짐]',
+'rev-deleted-event' => '(기록 동작 삭제됨)',
+'rev-deleted-user-contribs' => '[계정 이름 또는 IP 주소 삭제됨 -  기여 목록에서 숨겨짐]',
 'rev-deleted-text-permission' => "해당 편집이 문서 역사에서 '''삭제'''되었습니다.
 자세한 사항은 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 볼 수 있습니다.",
 'rev-deleted-text-unhide' => "해당 편집이 문서 역사에서 '''삭제'''되었습니다.
@@ -1148,24 +1203,24 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 자세한 사항은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 볼 수 있습니다.
 이 편집을 보기를 원하신다면 [$1 해당 편집]을 볼 수 있습니다.",
 'rev-deleted-text-view' => "이 문서의 편집은 역사에서 '''삭제'''되었습니다.
-삭제된 편집을 볼 수 있으며, [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 자세한 내용을 볼 수 있습니다.",
+삭제된 편집을 볼 수 있으며 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 자세한 내용을 볼 수 있습니다.",
 'rev-suppressed-text-view' => "이 문서의 편집은 역사에서 '''숨겨져''' 있습니다.
-숨겨진 편집을 볼 수 있으며, [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 자세한 내용을 볼 수 있습니다.",
+숨겨진 편집을 볼 수 있으며 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에서 자세한 내용을 볼 수 있습니다.",
 'rev-deleted-no-diff' => "특정 판이 문서 역사에서 '''삭제'''되었기 때문에 비교할 수 없습니다.
 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에서 자세한 내용을 볼 수 있습니다.",
 'rev-suppressed-no-diff' => "두 판 중 일부가 '''삭제'''되었기 때문에 문서 편집 내용을 비교할 수 없습니다.",
 'rev-deleted-unhide-diff' => "이 비교에 사용된 판 가운데 하나가 '''삭제'''되었습니다.
 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 삭제 기록]에 자세한 내용을 찾아볼 수 있습니다.
 계속 작업하고 싶다면 여전히 [$1 비교 보기]를 계속할 수 있습니다.",
-'rev-suppressed-unhide-diff' => "ì\9d´ ë¹\84êµ\90ì\97\90 ì\82¬ì\9a©ë\90\9c í\8c\90 ê°\80ì\9a´ë\8d° í\95\98ë\82\98ê°\80 '''ì\88¨ê¹\80'''ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤.
+'rev-suppressed-unhide-diff' => "ì\9d´ ë¹\84êµ\90ì\97\90 ì\82¬ì\9a©ë\90\9c í\8c\90 ê°\80ì\9a´ë\8d° í\95\98ë\82\98ê°\80 '''ì\88¨ê²¨ì ¸''' ì\9e\88ì\8aµë\8b\88ë\8b¤.
 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 숨김 기록]에 자세한 내용이 있을 수 있습니다.
 계속 작업하고 싶다면 [$1 해당 편집]을 볼 수도 있습니다.",
 'rev-deleted-diff-view' => "비교 대상 중 어느 한 판이 '''삭제'''되었습니다.
-삭제된 판과 다른 판의 비교를 할 수 있습니다; ì\9e\90ì\84¸í\95\9c ê²\83ì\9d\80 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ì\82­ì \9c ê¸°ë¡\9d\9d\84 ì°¸ê³ í\95\98ì\8b­ì\8b\9cì\98¤.",
+삭제된 판과 다른 판의 비교를 할 수 있습니다. ì\9e\90ì\84¸í\95\9c ë\82´ì\9a©ì\9d\80 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ì\82­ì \9c ê¸°ë¡\9d\97\90ì\84\9c ì°¾ì\95\84ë³¼ ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤.",
 'rev-suppressed-diff-view' => "비교하려는 판 중 일부가 '''숨겨져''' 있습니다.
-숨겨진 판과 이 판의 편집 비교가 가능합니다. 자세한 내용은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 해당 숨김 기록]에서 볼 수 있습니다.",
+숨겨진 판과 이 판의 편집 비교를 할 수 있습니다. 자세한 내용은 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 해당 숨김 기록]에서 찾아볼 수 있습니다.",
 'rev-delundel' => '보이기/숨기기',
-'rev-showdeleted' => '표시',
+'rev-showdeleted' => '보이기',
 'revisiondelete' => '판 삭제/복구',
 'revdelete-nooldid-title' => '대상 판이 잘못되었습니다.',
 'revdelete-nooldid-text' => '이 기능을 수행할 특정 판을 제시하지 않았거나 해당 판이 없습니다. 또는 현재 판을 숨기려 하고 있을 수도 있습니다.',
@@ -1176,18 +1231,19 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'revdelete-no-file' => '해당 파일이 존재하지 않습니다.',
 'revdelete-show-file-confirm' => '정말 "<nowiki>$1</nowiki>" 파일의 삭제된 $2 $3 버전을 보시겠습니까?',
 'revdelete-show-file-submit' => '예',
-'revdelete-selected' => "'''[[:$1]]의 {{PLURAL:$2|선택ë\90\9c í\8c\90}}:'''",
-'logdelete-selected' => "{{PLURAL:$1}}'''선택한 로그:'''",
+'revdelete-selected' => "'''[[:$1]]의 {{PLURAL:$2|선택í\95\9c í\8c\90}}:'''",
+'logdelete-selected' => "'''{{PLURAL:$1|선택한 기록}}:'''",
 'revdelete-text' => "'''삭제된 판과 기록은 문서 역사와 기록에 계속 나타나지만, 내용은 공개되지 않을 것입니다.'''
 {{SITENAME}}의 다른 관리자는 다른 제한이 설정되어 있지 않는 한, 숨겨진 내용을 볼 수 있고, 같은 도구를 이용해 복구할 수 있습니다.",
 'revdelete-confirm' => '이 작업을 수행하는 것의 결과를 알고 있으며, [[{{MediaWiki:Policy-url}}|정책]]에 맞는 행동인지 확인해주세요.',
 'revdelete-suppress-text' => "숨기기는 '''다음 경우에만''' 사용되어야 합니다:
+* 잠재적인 비방 정보
 * 부적절한 개인 정보
 *: 집 주소, 전화번호, 주민등록번호 등",
 'revdelete-legend' => '보이기 제한을 설정',
 'revdelete-hide-text' => '판의 내용을 숨기기',
 'revdelete-hide-image' => '파일을 숨기기',
-'revdelete-hide-name' => '로그 내용과 대상을 숨기기',
+'revdelete-hide-name' => '기록 내용과 대상을 숨기기',
 'revdelete-hide-comment' => '편집 요약을 숨기기',
 'revdelete-hide-user' => '편집자의 계정 이름/IP를 숨기기',
 'revdelete-hide-restricted' => '관리자도 보지 못하게 숨기기',
@@ -1198,13 +1254,13 @@ $2개 보다 적게 써야 하지만 지금은 $1개를 쓰고 있습니다.",
 'revdelete-unsuppress' => '복구된 판에 대한 제한을 해제',
 'revdelete-log' => '이유:',
 'revdelete-submit' => '선택한 {{PLURAL:$1|판}}에 적용',
-'revdelete-success' => "'''í\8c\90ì\9d\98 ë³´ì\9d´ê¸° ì\84¤ì \95ì\9d´ ì\84±ê³µì \81ì\9c¼ë¡\9c ë³\80ê²½ë\90\98었습니다.'''",
+'revdelete-success' => "'''í\8c\90ì\9d\98 ë³´ì\9d´ê¸° ì\84¤ì \95ì\9d\84 ì\84±ê³µì \81ì\9c¼ë¡\9c ë°\94꾸었습니다.'''",
 'revdelete-failure' => "'''특정 판 보기 설정을 바꾸지 못했습니다:'''
 $1",
-'logdelete-success' => "'''로그의 보이기 설정이 성공적으로 변경되었습니다.'''",
-'logdelete-failure' => "'''로그 보이기 설정을 바꾸지 못했습니다:'''
+'logdelete-success' => "'''기록 보이기 설정을 성공적으로 바꾸었습니다.'''",
+'logdelete-failure' => "'''기록 보이기 설정을 바꾸지 못했습니다:'''
 $1",
-'revdel-restore' => 'ë³´ì\9d´ê¸° ì\84¤ì \95 ë³\80ê²½',
+'revdel-restore' => 'ë³´ì\9d´ê¸° ì\84¤ì \95 ë°\94꾸기',
 'revdel-restore-deleted' => '삭제된 판',
 'revdel-restore-visible' => '공개된 판',
 'pagehist' => '문서 역사',
@@ -1217,12 +1273,13 @@ $1",
 여기에 접근할 수 없습니다.',
 'revdelete-modify-missing' => '판 ID $1을 수정하는 중 오류 발생: 데이터베이스에 존재하지 않습니다!',
 'revdelete-no-change' => "'''경고:''' $1 $2에 해당하는 항목은 이미 같은 보이기 설정이 설정되어 있습니다.",
-'revdelete-concurrent-change' => '$1 $2에 수정된 항목을 ê°±ì\8b í\95\98ë©´ì\84\9c ì\98¤ë¥\98 ë°\9cì\83\9d: ì\9d´ë\9f° í\98\84ì\83\81ì\9d\80 ë\8b¹ì\8b ì\9d´ ë¬¸ì\84\9c를 í\8e¸ì§\91í\95\98ê³  ì\9e\88ì\9d\84 ë\95\8c ë\8b¤ë¥¸ ì\82¬ë\9e\8cì\9d´ ë¬¸ì\84\9c를 í\8e¸ì§\91í\96\88기 ë\95\8c문ì\97\90 ë°\9cì\83\9dí\95©ë\8b\88ë\8b¤.
-관련 로그를 확인해 보세요.',
+'revdelete-concurrent-change' => '$1 $2에 수정된 항목을 ì\83\88ë¡\9c ê³ ì¹\98ë©´ì\84\9c ì\98¤ë¥\98 ë°\9cì\83\9d: ì\9d´ë\9f° í\98\84ì\83\81ì\9d\80 ë\8b¹ì\8b ì\9d´ ë¬¸ì\84\9c를 í\8e¸ì§\91í\95\98ê³  ì\9e\88ì\9d\84 ë\95\8c ë\8b¤ë¥¸ ì\82¬ë\9e\8cì\9d´ ë¬¸ì\84\9c를 í\8e¸ì§\91í\96\88기 ë\95\8c문ì\97\90 ë°\9cì\83\9dí\95©ë\8b\88ë\8b¤.
+관련 기록을 확인해 보세요.',
 'revdelete-only-restricted' => '$1 $2 버전 숨기기 오류: 다른 숨기기 설정을 같이 설정하지 않고 관리자가 보지 못하도록 특정 판을 숨길 수 없습니다.',
 'revdelete-reason-dropdown' => '*일반적인 삭제 이유
 ** 저작권 침해
-** 부적절한 개인 정보',
+** 부적절한 개인 정보
+** 잠재적인 비방 정보',
 'revdelete-otherreason' => '다른 이유/부가적인 이유',
 'revdelete-reasonotherlist' => '다른 이유',
 'revdelete-edit-reasonlist' => '삭제 이유 편집',
@@ -1230,8 +1287,8 @@ $1",
 
 # Suppression log
 'suppressionlog' => '숨기기 기록',
-'suppressionlogtext' => '다음은 관리자로부터 숨겨진 내용에 관한 삭제, 차단 기록입니다.
-현재 차단된 사용자 목록을 보시려면 [[Special:BlockList|차단된 사용자 목록]]을 참조하십시오.',
+'suppressionlogtext' => '다음은 관리자로부터 숨겨진 내용에 관한 삭제 차단 기록입니다.
+현재 차단된 사용자 목록을 보려면 [[Special:BlockList|차단된 사용자 목록]]을 참고하세요.',
 
 # History merging
 'mergehistory' => '문서 역사 합치기',
@@ -1259,7 +1316,7 @@ $1",
 'mergehistory-reason' => '이유:',
 
 # Merge log
-'mergelog' => '합병 기록',
+'mergelog' => '병합 기록',
 'pagemerge-logentry' => '[[$1]]을 [[$2]]에 병합 ($3판이 위로 옮겨짐)',
 'revertmerge' => '병합 해제',
 'mergelogpagetext' => '다음은 한 문서의 역사를 다른 문서의 역사와 합친 최근 기록입니다.',
@@ -1267,8 +1324,8 @@ $1",
 # Diffs
 'history-title' => '"$1"  문서의 변경 내력',
 'difference-title' => '"$1"의 두 판 사이의 차이',
-'difference-title-multipage' => '문서 "$1"과 "$2" 간의 차이',
-'difference-multipage' => '(문서의 차이)',
+'difference-title-multipage' => '문서 "$1"(와)과 "$2" 사이의 차이',
+'difference-multipage' => '(문서 사이의 차이)',
 'lineno' => '$1번째 줄:',
 'compareselectedversions' => '선택한 판을 비교하기',
 'showhideselectedversions' => '선택한 판을 보이기/숨기기',
@@ -1277,11 +1334,11 @@ $1",
 'diff-multi-manyusers' => '({{PLURAL:$2|한 사용자의|사용자 $2명 이상의}} 중간의 편집 $1개 숨겨짐)',
 
 # Search results
-'searchresults' => '검색 결과',
-'searchresults-title' => '"$1"에 대한 검색 결과',
+'searchresults' => '찾기 결과',
+'searchresults-title' => '"$1"에 대한 찾기 결과',
 'searchresulttext' => '{{SITENAME}}의 찾기 기능에 대한 자세한 정보는 [[{{MediaWiki:Helppage}}|{{int:help}}]] 문서를 참고해주세요.',
-'searchsubtitle' => "'''[[:$1]]''' 문서를 검색하고 있습니다. ([[Special:Prefixindex/$1|이름이 ‘$1’ 접두어로 시작하는 문서 목록]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|‘$1’ 문서를 가리키는 문서 목록]])",
-'searchsubtitleinvalid' => "검색 단어 '''$1'''",
+'searchsubtitle' => "'''[[:$1]]''' 문서를 고 있습니다. ([[Special:Prefixindex/$1|이름이 ‘$1’ 접두어로 시작하는 문서 목록]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|‘$1’ 문서를 가리키는 문서 목록]])",
+'searchsubtitleinvalid' => "찾은 단어 '''$1'''",
 'toomanymatches' => '일치하는 결과가 너무 많습니다. 다른 검색어를 입력해주세요.',
 'titlematches' => '문서 제목 일치',
 'notitlematches' => '해당하는 제목 없음',
@@ -1291,29 +1348,29 @@ $1",
 'nextn' => '뒤로 $1개',
 'prevn-title' => '이전 결과 $1개',
 'nextn-title' => '다음 결과 $1개',
-'shown-title' => '쪽마다 결과 $1 개씩 보이기',
+'shown-title' => '쪽마다 결과 $1개씩 보이기',
 'viewprevnext' => '보기: ($1 {{int:pipe-separator}} $2) ($3).',
-'searchmenu-legend' => '검색 설정',
+'searchmenu-legend' => '찾기 설정',
 'searchmenu-exists' => "'''이 위키에 \"[[:\$1]]\"의 이름을 가진 문서가 있습니다.'''",
-'searchmenu-new' => "'''ì\9d´ ì\9c\84í\82¤ì\97\90 \"[[:\$1]]\" ë¬¸ì\84\9c를 ë§\8cë\93\9cì\8b­ì\8b\9cì\98¤!'''",
+'searchmenu-new' => "'''ì\9d´ ì\9c\84í\82¤ì\97\90 \"[[:\$1]]\" ë¬¸ì\84\9c를 ë§\8cë\93\9cì\84¸ì\9a\94!'''",
 'searchhelp-url' => 'Help:목차',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|이 접두어로 시작하는 문서 찾기]]',
 'searchprofile-articles' => '일반 문서',
 'searchprofile-project' => '도움말 및 프로젝트 문서',
 'searchprofile-images' => '멀티미디어',
-'searchprofile-everything' => '모든 문서 검색',
-'searchprofile-advanced' => '고급 검색',
+'searchprofile-everything' => '모든 문서 찾기',
+'searchprofile-advanced' => '고급 찾기',
 'searchprofile-articles-tooltip' => '$1에서 찾기',
 'searchprofile-project-tooltip' => '$1에서 찾기',
 'searchprofile-images-tooltip' => '파일 찾기',
 'searchprofile-everything-tooltip' => '토론 문서를 포함한 모든 문서 찾기',
-'searchprofile-advanced-tooltip' => '다음 설정ë\90\9c ì\9d´ë¦\84ê³µê°\84ì\97\90ì\84\9c ì°¾ê¸°',
+'searchprofile-advanced-tooltip' => '다음 설정í\95\9c ì\9d´ë¦\84ê³µê°\84ì\97\90ì\84\9c ì°¾ê¸°',
 'search-result-size' => '$1 ($2 단어)',
 'search-result-category-size' => '문서 {{PLURAL:$1|1|$1}}개, 하위 분류 {{PLURAL:$2|1|$2}}개, 파일 {{PLURAL:$3|1|$3}}',
 'search-result-score' => '유사도: $1%',
 'search-redirect' => '($1에서 넘어옴)',
 'search-section' => '($1 문단)',
-'search-suggest' => '$1 문서를 찾고 계신가요?',
+'search-suggest' => '$1 문서를 찾고 있나요?',
 'search-interwiki-caption' => '자매 프로젝트',
 'search-interwiki-default' => '$1 결과:',
 'search-interwiki-more' => '(더 보기)',
@@ -1326,19 +1383,21 @@ $1",
 'searchall' => '모두',
 'showingresults' => '<strong>$2</strong>번 부터의 <strong>결과 $1개</strong>입니다.',
 'showingresultsnum' => "'''$2'''번 부터의 '''결과 $3개''' 입니다.",
-'showingresultsheader' => "'''$4''' 검색어에 대하여 '''$3'''개의 결과 중 {{PLURAL:$5|'''$1'''개|'''$1 - $2'''번째}}를 보여 주고 있습니다.",
-'nonefound' => "'''참고''': 몇개의 이름공간만 기본 검색 범위입니다. 토론이나 틀 등의 모든 자료를 검색하기 위해서는 접두어로 '''all:''' 어떤 이름공간을 위해서는 접두어로 그 이름공간을 쓸 수 있습니다.",
-'search-nonefound' => '검색 결과가 없습니다.',
-'powersearch' => '찾기',
-'powersearch-legend' => '고급 검색',
+'showingresultsheader' => "'''$4''' 검색어에 대하여 결과 '''$3'''개 중 {{PLURAL:$5|'''$1'''개|'''$1 - $2'''번째}}를 보여 주고 있습니다.",
+'nonefound' => "'''참고''': 몇개의 이름공간만 기본 찾을 범위입니다. 토론이나 틀 등의 모든 자료를 찾하기 위해서는 접두어로 '''all:''' 어떤 이름공간을 위해서는 접두어로 그 이름공간을 쓸 수 있습니다.",
+'search-nonefound' => '찾은 결과가 없습니다.',
+'powersearch' => '고급 찾기',
+'powersearch-legend' => '고급 찾기',
 'powersearch-ns' => '다음의 이름공간에서 찾기:',
 'powersearch-redir' => '넘겨주기 목록',
-'powersearch-field' => '검색',
+'powersearch-field' => '찾기',
 'powersearch-togglelabel' => '확인:',
 'powersearch-toggleall' => '모두 선택',
 'powersearch-togglenone' => '모두 선택하지 않음',
-'search-external' => '외부 검색',
-'searchdisabled' => '{{SITENAME}} 검색 기능이 비활성화되어 있습니다. 기능이 작동하지 않는 동안에는 구글(Google)을 이용해 검색할 수 있습니다. 검색 엔진의 내용은 최근 것이 아닐 수 있다는 점을 주의해주세요.',
+'search-external' => '외부 찾기',
+'searchdisabled' => '{{SITENAME}} 찾기 기능이 비활성화되어 있습니다.
+기능이 작동하지 않는 동안에는 구글(Google)을 이용해 찾을 수 있습니다.
+검색 엔진의 내용은 최신이 아닐 수 있다는 점을 주의해주세요.',
 
 # Quickbar
 'qbsettings' => '빨리가기 맞춤',
@@ -1370,7 +1429,7 @@ $1",
 'prefs-watchlist-days-max' => '최대 $1{{PLURAL:$1|일}}',
 'prefs-watchlist-edits' => '주시문서 목록에서 볼 편집 수:',
 'prefs-watchlist-edits-max' => '최대 개수: 1000',
-'prefs-watchlist-token' => '주시문서 토큰:',
+'prefs-watchlist-token' => '주시문서 목록 토큰:',
 'prefs-misc' => '기타',
 'prefs-resetpass' => '비밀번호 바꾸기',
 'prefs-changeemail' => '이메일 주소 바꾸기',
@@ -1380,7 +1439,7 @@ $1",
 'saveprefs' => '저장',
 'resetprefs' => '저장하지 않은 설정 되돌리기',
 'restoreprefs' => '모두 기본 설정으로 되돌리기',
-'prefs-editing' => '편집상자',
+'prefs-editing' => '편집 상자',
 'prefs-edit-boxsize' => '편집 창의 크기',
 'rows' => '줄 수:',
 'columns' => '열 수:',
@@ -1389,10 +1448,10 @@ $1",
 'stub-threshold' => '링크를 <a href="#" class="stub">토막글</a> 형식으로 표시할 문서 크기 (바이트 수):',
 'stub-threshold-disabled' => '비활성화됨',
 'recentchangesdays' => '최근 바뀜에 표시할 날짜 수:',
-'recentchangesdays-max' => '(최대 $1일)',
+'recentchangesdays-max' => '최대 $1일',
 'recentchangescount' => '기본으로 표시할 편집 수:',
 'prefs-help-recentchangescount' => '이 설정은 최근 바뀜, 문서 역사와 기록에 적용됩니다.',
-'prefs-help-watchlist-token' => '아래에 비밀 값을 넣으면 주시문서에 대한 RSS 피드가 생성됩니다.
+'prefs-help-watchlist-token' => '아래에 비밀 값을 넣으면 주시문서 목록에 대한 RSS 피드가 생성됩니다.
 비밀 값을 알고 있는 사람이라면 누구나 피드를 읽을 수 있으므로 안전한 값을 입력해주세요.
 임의로 만들어진 다음 값을 사용할 수도 있습니다: $1',
 'savedprefs' => '설정을 저장했습니다.',
@@ -1414,15 +1473,15 @@ $1",
 'timezoneregion-indian' => '인도양',
 'timezoneregion-pacific' => '태평양',
 'allowemail' => '다른 사용자가 보낸 이메일을 받음',
-'prefs-searchoptions' => '검색 설정',
+'prefs-searchoptions' => '찾기 설정',
 'prefs-namespaces' => '이름공간',
-'defaultns' => '다음 이름공간에서 검색하기:',
+'defaultns' => '다음 이름공간에서 기:',
 'default' => '기본값',
 'prefs-files' => '파일',
 'prefs-custom-css' => '사용자 CSS',
 'prefs-custom-js' => '사용자 자바스크립트',
 'prefs-common-css-js' => '모든 스킨에 적용되는 공통 CSS/자바스크립트:',
-'prefs-reset-intro' => '이 사이트의 기본 값으로 환경 설정을 되돌릴 수 있습니다.
+'prefs-reset-intro' => '이 사이트의 기본값으로 환경 설정을 되돌릴 수 있습니다.
 복구할 수 없습니다.',
 'prefs-emailconfirm-label' => '이메일 인증:',
 'prefs-textboxsize' => '편집창의 크기',
@@ -1437,17 +1496,20 @@ $1",
 'prefs-help-variant' => '위키 내용을 표시할 때 사용할 언어 변종이나 철자 체계를 선택해주세요.',
 'yournick' => '새 서명:',
 'prefs-help-signature' => '토론 문서에 글을 쓴 후에는 마지막에 서명을 해야 합니다.  “<nowiki>~~~~</nowiki>” 기호를 추가하면 서명과 글 작성 시각이 자동으로 입력됩니다.',
-'badsig' => '서명이 잘못되었습니다. HTML 태그를 확인해주세요.',
+'badsig' => '서명이 잘못되었습니다.
+HTML 태그를 확인하세요.',
 'badsiglength' => '서명이 너무 깁니다.
 서명은 $1자보다 짧아야 합니다.',
 'yourgender' => '성별:',
 'gender-unknown' => '무응답',
 'gender-male' => '남성',
 'gender-female' => '여성',
-'prefs-help-gender' => '선택 사항: 소프트웨어에서 성별에 따른 언어 문제를 해결하기 위해 사용됩니다. 이 정보는 공개됩니다.',
+'prefs-help-gender' => '선택 사항: 소프트웨어에서 성별에 따른 언어 문제를 해결하기 위해 사용됩니다.
+이 정보는 공개됩니다.',
 'email' => '이메일',
-'prefs-help-realname' => '실명 기입은 자유입니다. 실명을 입력할 경우 문서 기여에 자신의 이름이 들어가게 됩니다.',
-'prefs-help-email' => '이메일 주소 입력은 선택 사항입니다. 다만 비밀번호를 잊었을 때 비밀번호 변경을 위해 필요합니다.',
+'prefs-help-realname' => '실명 기입은 자유입니다.
+실명을 입력할 경우 문서 기여에 자신의 이름이 들어가게 됩니다.',
+'prefs-help-email' => '이메일 주소 입력은 선택 사항입니다. 다만 비밀번호를 잊었을 때 비밀번호 바꾸기를 위해 필요합니다.',
 'prefs-help-email-others' => '당신은 자신의 문서나 토론 문서에 있는 이메일 보내기 링크로 다른 사용자가 연락할 수 있게 할 수도 있습니다.
 이 경우에도 당신의 이메일 주소는 다른 사용자가 연락할 때 공개되지 않습니다.',
 'prefs-help-email-required' => '이메일 주소가 필요합니다.',
@@ -1462,13 +1524,13 @@ $1",
 'prefs-advancedsearchoptions' => '고급 설정',
 'prefs-advancedwatchlist' => '고급 설정',
 'prefs-displayrc' => '보이기 설정',
-'prefs-displaysearchoptions' => '표시 설정',
+'prefs-displaysearchoptions' => '보이기 설정',
 'prefs-displaywatchlist' => '표시 설정',
 'prefs-diffs' => '차이',
 
 # User preference: e-mail validation using jQuery
 'email-address-validity-valid' => '이메일 주소가 유효한 것으로 보입니다.',
-'email-address-validity-invalid' => 'ì\9c í\9a¨í\95\9c ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c를 ì\9e\85ë ¥í\95´ì£¼ì\8b­ì\8b\9cì\98¤.',
+'email-address-validity-invalid' => 'ì\9c í\9a¨í\95\9c ì\9d´ë©\94ì\9d¼ ì£¼ì\86\8c를 ì\9e\85ë ¥í\95´ì£¼ì\84¸ì\9a\94.',
 
 # User rights
 'userrights' => '사용자 권한 관리',
@@ -1519,17 +1581,17 @@ $1",
 # Rights
 'right-read' => '문서 읽기',
 'right-edit' => '문서 편집',
-'right-createpage' => '문서 생성 (토론 문서 제외)',
-'right-createtalk' => '토론 문서 생성',
+'right-createpage' => '문서 만들기 (토론 문서 제외)',
+'right-createtalk' => '토론 문서 만들기',
 'right-createaccount' => '새 계정 만들기',
 'right-minoredit' => '사소한 편집 사용 가능',
 'right-move' => '문서 이동',
 'right-move-subpages' => '문서와 하위 문서 이동하기',
 'right-move-rootuserpages' => '최상위 사용자 문서 이동',
-'right-movefile' => '파일 옮기기',
-'right-suppressredirect' => '문ì\84\9c ì\9d´ë\8f\99í\95  ë\95\8c ì\98\9bë\82  이름으로 된 넘겨주기를 남기지 않기',
+'right-movefile' => '파일 옮기기',
+'right-suppressredirect' => '문ì\84\9c ì\9d´ë\8f\99í\95  ë\95\8c ì\9d´ì \84 이름으로 된 넘겨주기를 남기지 않기',
 'right-upload' => '파일 올리기',
-'right-reupload' => 'ì\9d´ë¯¸ ì¡´ì\9e¬í\95\98ë\8a\94 í\8c\8cì\9d¼ì\9d\84 ë\8b¤ì\8b\9c ì\97\85ë¡\9cë\93\9c',
+'right-reupload' => 'ì\9d´ë¯¸ ì¡´ì\9e¬í\95\98ë\8a\94 í\8c\8cì\9d¼ì\9d\84 ë\8b¤ì\8b\9c ì\98¬ë¦¬ê¸°',
 'right-reupload-own' => '자신이 이미 올린 파일 덮어쓰기',
 'right-reupload-shared' => '공용의 파일을 무시하고 로컬에서 파일 올리기',
 'right-upload_by_url' => 'URL 주소에서 파일 올리기',
@@ -1544,7 +1606,7 @@ $1",
 'right-deleterevision' => '문서의 특정 판을 삭제 및 복구',
 'right-deletedhistory' => '삭제된 문서의 내용을 제외한 역사를 보기',
 'right-deletedtext' => '삭제된 문서의 내용과 편집상의 차이를 보기',
-'right-browsearchive' => '삭제된 문서 검색',
+'right-browsearchive' => '삭제된 문서 찾기',
 'right-undelete' => '삭제된 문서 복구',
 'right-suppressrevision' => '관리자도 보지 못하도록 숨겨진 판의 확인 및 복구',
 'right-suppressionlog' => '숨겨진 기록을 보기',
@@ -1557,18 +1619,18 @@ $1",
 'right-protect' => '보호 수준 변경 및 보호된 문서 편집',
 'right-editprotected' => '보호된 문서 편집 (연쇄적 보호 제외)',
 'right-editinterface' => '사용자 인터페이스를 편집',
-'right-editusercssjs' => '다른 사용자의 CSS와 JS 문서를 편집',
+'right-editusercssjs' => '다른 사용자의 CSS와 자바스크립트 문서를 편집',
 'right-editusercss' => '다른 사용자의 CSS 문서를 편집',
-'right-edituserjs' => '다른 사용자의 JS 문서를 편집',
+'right-edituserjs' => '다른 사용자의 자바스크립트 문서를 편집',
 'right-rollback' => '특정 문서를 편집한 마지막 사용자의 편집을 신속하게 되돌리기',
 'right-markbotedits' => '되돌리기를 봇의 편집으로 취급 가능',
 'right-noratelimit' => '편집이나 다른 행동 속도의 제한을 받지 않음',
 'right-import' => '다른 위키에서 문서 가져오기',
-'right-importupload' => 'í\8c\8cì\9d¼ ì\97\85ë¡\9cë\93\9c를 통해 문서 가져오기',
+'right-importupload' => 'í\8c\8cì\9d¼ ì\98¬ë¦¬ê¸°를 통해 문서 가져오기',
 'right-patrol' => '다른 사용자의 편집을 검토',
 'right-autopatrol' => '자신의 편집을 자동으로 검토',
 'right-patrolmarks' => '최근 바뀜에서 검토 표시를 보기',
-'right-unwatchedpages' => '주시되지 않 문서 목록 보기',
+'right-unwatchedpages' => '주시되지 않 문서 목록 보기',
 'right-mergehistory' => '문서의 역사를 합침',
 'right-userrights' => '모든 사용자의 권한 조정',
 'right-userrights-interwiki' => '다른 위키의 사용자 권한을 조정',
@@ -1580,15 +1642,15 @@ $1",
 # User rights log
 'rightslog' => '사용자 권한 기록',
 'rightslogtext' => '사용자 권한 조정 기록입니다.',
-'rightslogentry' => '$1ì\9d\98 ê¶\8cí\95\9cì\9d\84 $2ì\97\90ì\84\9c $3(ì\9c¼)ë¡\9c ë³\80ê²½',
-'rightslogentry-autopromote' => 'ì\82¬ì\9a©ì\9e\90ì\9d\98 ê¶\8cí\95\9cì\9d´ ì\9e\90ë\8f\99ì \81ì\9c¼ë¡\9c $2ì\97\90ì\84\9c $3ì\9c¼ë¡\9c ë³\80ê²½ë\90\98었습니다.',
+'rightslogentry' => '$1ì\9d\98 ê¶\8cí\95\9cì\9d\84 $2ì\97\90ì\84\9c $3(ì\9c¼)ë¡\9c ë°\94ê¿\88',
+'rightslogentry-autopromote' => 'ì\82¬ì\9a©ì\9e\90ì\9d\98 ê¶\8cí\95\9cì\9d´ ì\9e\90ë\8f\99ì \81ì\9c¼ë¡\9c $2ì\97\90ì\84\9c $3ì\9c¼ë¡\9c ë°\94ë\80\8c었습니다.',
 'rightsnone' => '(없음)',
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => '이 문서를 읽기',
 'action-edit' => '문서 편집',
-'action-createpage' => '문서 생성',
-'action-createtalk' => '토론 문서 생성하기',
+'action-createpage' => '문서 만들기',
+'action-createtalk' => '토론 문서 만들기',
 'action-createaccount' => '새 계정 만들기',
 'action-minoredit' => '이 편집을 사소한 편집으로 표시하기',
 'action-move' => '이 문서 옮기기',
@@ -1614,7 +1676,7 @@ $1",
 'action-importupload' => '파일 올리기를 통해 문서를 가져올',
 'action-patrol' => '다른 사용자의 편집을 검토된 것으로 표시하기',
 'action-autopatrol' => '자신의 편집을 검토된 것으로 표시할',
-'action-unwatchedpages' => '주시되지 않 문서 목록 보기',
+'action-unwatchedpages' => '주시되지 않 문서 목록 보기',
 'action-mergehistory' => '이 문서의 역사 합치기',
 'action-userrights' => '모든 사용자의 권한을 조정',
 'action-userrights-interwiki' => '다른 위키의 사용자 권한을 조정',
@@ -1630,9 +1692,9 @@ $1",
 'recentchanges-label-newpage' => '새로운 문서',
 'recentchanges-label-minor' => '사소한 편집',
 'recentchanges-label-bot' => '봇의 편집',
-'recentchanges-label-unpatrolled' => '아직 검토ë\90\98ì§\80 ì\95\8aì\9d\80 í\8e¸ì§\91',
-'rcnote' => "다음은 $4 $5 까지의 '''$2'''일동안 바뀐 '''$1'''ê°\9cì\9d\98 ë¬¸ì\84\9cì\9e\85ë\8b\88ë\8b¤.",
-'rcnotefrom' => "다음은 '''$2'''에서부터 바뀐 '''$1'''ê°\9cì\9d\98 ë¬¸ì\84\9cì\9e\85ë\8b\88ë\8b¤.",
+'recentchanges-label-unpatrolled' => '아직 검토í\95\98ì§\80 ì\95\8aì\9d\80 í\8e¸ì§\91',
+'rcnote' => "다음은 $4 $5 까지의 '''$2'''일동안 바뀐 ë¬¸ì\84\9c '''$1'''ê°\9cì\9e\85ë\8b\88ë\8b¤.",
+'rcnotefrom' => "다음은 '''$2'''에서부터 바뀐 ë¬¸ì\84\9c '''$1'''ê°\9cì\9e\85ë\8b\88ë\8b¤.",
 'rclistfrom' => '$1 이래로 바뀐 문서',
 'rcshowhideminor' => '사소한 편집을 $1',
 'rcshowhidebots' => '봇을 $1',
@@ -1640,7 +1702,7 @@ $1",
 'rcshowhideanons' => '익명 사용자를 $1',
 'rcshowhidepatr' => '검토된 편집을 $1',
 'rcshowhidemine' => '내 편집을 $1',
-'rclinks' => 'ìµ\9cê·¼ $2ì\9d¼ê°\84ì\9d\98 $1ê°\9c ë³\80ê²½ 기록 보기<br />$3',
+'rclinks' => 'ìµ\9cê·¼ $2ì\9d¼ê°\84ì\9d\98 $1ê°\9c ë°\94ë\80\9c 기록 보기<br />$3',
 'diff' => '비교',
 'hist' => '역사',
 'hide' => '숨기기',
@@ -1649,19 +1711,19 @@ $1",
 'newpageletter' => '새글',
 'boteditletter' => '봇',
 'number_of_watching_users_pageview' => '[$1명이 주시하고 있음]',
-'rc_categories' => '다음 분류로 제한 (‘|’로 구분)',
+'rc_categories' => '다음 분류로 제한 ("|"로 구분)',
 'rc_categories_any' => '모두',
-'rc-change-size-new' => 'ë³\80ê²½ 후 $1 {{PLURAL:$1|바이트}}',
+'rc-change-size-new' => 'ë°\94ê¾¼ 후 $1 {{PLURAL:$1|바이트}}',
 'newsectionsummary' => '새 주제: /* $1 */',
-'rc-enhanced-expand' => 'ì\84¸ë¶\80 기록 보기 (자바스크립트 필요)',
-'rc-enhanced-hide' => 'ì\84¸ë¶\80기록 숨기기',
+'rc-enhanced-expand' => 'ì\9e\90ì\84¸í\95\9c 기록 보기 (자바스크립트 필요)',
+'rc-enhanced-hide' => 'ì\9e\90ì\84¸í\95\9c 기록 숨기기',
 'rc-old-title' => '처음에  "$1"라는 제목으로 만들어짐',
 
 # Recent changes linked
 'recentchangeslinked' => '가리키는 글의 바뀜',
 'recentchangeslinked-feed' => '가리키는 글의 바뀜',
 'recentchangeslinked-toolbox' => '가리키는 글의 바뀜',
-'recentchangeslinked-title' => '‘$1’ 문서에 관련된 문서 바뀜',
+'recentchangeslinked-title' => '"$1" 문서에 관련된 문서 바뀜',
 'recentchangeslinked-noresult' => '이 문서에서 링크하는 문서 중, 해당 기간에 바뀐 문서가 없습니다.',
 'recentchangeslinked-summary' => "여기를 가리키는 문서(분류일 경우 이 분류에 포함된 문서)에 대한 최근 바뀜이 나와 있습니다.
 [[Special:Watchlist|주시하는 문서]]는 '''굵은''' 글씨로 나타납니다.",
@@ -1682,7 +1744,7 @@ $1",
 
 이 문서의 최근 삭제 기록과 이동 기록을 참고하십시오:",
 'uploadtext' => "파일을 올리기 위해서는 아래의 양식을 채워주세요.
-[[Special:FileList|파일 목록]]에서 이전에 올라온 파일을 찾을 수 있습니다. [[Special:Log/upload|올리기 기록]]에는 파일이 올라온 기록이 남습니다. 삭제 기록은 [[Special:Log/delete|삭제 로그]]에서 볼 수 있습니다.
+[[Special:FileList|파일 목록]]에서 이전에 올라온 파일을 찾을 수 있습니다. [[Special:Log/upload|올리기 기록]]에는 파일이 올라온 기록이 남습니다. 삭제 기록은 [[Special:Log/delete|삭제 기록]]에서 볼 수 있습니다.
 
 문서에 파일을 넣으려면 아래 방법 중 하나를 사용하세요.
 * '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' 파일의 온전한 모양을 사용하고자 할 때.
@@ -1702,18 +1764,21 @@ $1",
 'filestatus' => '저작권 상태:',
 'filesource' => '출처:',
 'uploadedfiles' => '파일 올리기',
-'ignorewarning' => '경고를 무시하고 저장합니다',
+'ignorewarning' => '경고를 무시하고 파일 저장',
 'ignorewarnings' => '모든 경고 무시하기',
 'minlength1' => '파일 이름은 적어도 1글자 이상이어야 합니다.',
-'illegalfilename' => '파일 이름 "$1"에는 문서 제목으로 허용되지 않는 글자가 포함되어 있습니다. 이름을 바꾸어 다시 시도해 주세요.',
+'illegalfilename' => '파일 이름 "$1"에는 문서 제목으로 허용되지 않는 글자가 포함되어 있습니다.
+이름을 바꾸어 다시 시도해 주세요.',
 'filename-toolong' => '파일 이름은 240바이트를 넘을 수 없습니다.',
-'badfilename' => '파일 이름이 ‘$1’(으)로 바뀌었습니다.',
+'badfilename' => '파일 이름이 "$1"로 바뀌었습니다.',
 'filetype-mime-mismatch' => '파일 확장자 ".$1"와 이 파일의 MIME($2)가 일치하지 않습니다.',
-'filetype-badmime' => '‘$1’ MIME을 가진 파일은 올릴 수 없습니다.',
+'filetype-badmime' => '"$1" MIME을 가진 파일은 올릴 수 없습니다.',
 'filetype-bad-ie-mime' => '인터넷 익스플로러가 잠재적으로 위험한 파일 형식으로 판단되어 사용이 금지된 "$1"로 인식할 수 있기 때문에 이 파일을 올릴 수 없습니다.',
-'filetype-unwanted-type' => "'''\".\$1\"''' 확장자는 추천하지 않습니다. 추천하는 {{PLURAL:\$3|파일 확장자}}는 \$2입니다.",
-'filetype-banned-type' => '{{PLURAL:$3$4}}\'\'\'".$1"\'\'\' 형식의 파일은 올릴 수 없습니다. $2 형식만 사용할 수 있습니다.',
-'filetype-missing' => '파일에 확장자(‘.jpg’ 등)가 없습니다.',
+'filetype-unwanted-type' => "'''\".\$1\"''' 확장자는 추천하지 않습니다.
+추천하는 {{PLURAL:\$3|파일 확장자}}는 \$2입니다.",
+'filetype-banned-type' => '{{PLURAL:$3$4}}\'\'\'".$1"\'\'\' 형식의 파일은 올릴 수 없습니다.
+$2 형식만 사용할 수 있습니다.',
+'filetype-missing' => '파일에 확장자(".jpg" 등)가 없습니다.',
 'empty-file' => '당신이 올린 파일이 비어 있습니다.',
 'file-too-large' => '올리려는 파일이 너무 큽니다.',
 'filename-tooshort' => '파일 이름이 너무 짧습니다.',
@@ -1723,16 +1788,16 @@ $1",
 'illegal-filename' => '이 파일 이름은 허용되지 않습니다.',
 'overwrite' => '기존 파일을 덮어쓰는 것은 허용되지 않습니다.',
 'unknown-error' => '알 수 없는 오류가 발생했습니다.',
-'tmp-create-error' => '임시 파일을 생성할 수 없습니다.',
+'tmp-create-error' => '임시 파일을 만들 수 없습니다.',
 'tmp-write-error' => '임시 파일을 작성하는 데 오류가 발생했습니다.',
-'large-file' => '파일 크기는 $1을 넘지 않는 것을 추천합니다. 이 파일의 크기는 $2입니다.',
+'large-file' => '파일 크기는 $1을 넘지 않는 것을 추천합니다.
+이 파일의 크기는 $2입니다.',
 'largefileserver' => '이 파일의 크기가 서버에서 허용된 설정보다 큽니다.',
 'emptyfile' => '올리려는 파일이 빈 파일입니다.
 파일 이름을 잘못 입력했을 수도 있습니다.
 올리려는 파일을 다시 한 번 확인해 주시기 바랍니다.',
 'windows-nonascii-filename' => '이 위키에서는 특수 문자가 포함된 파일 이름을 지원하지 않습니다.',
-'fileexists' => "같은 이름의 파일이 이미 있습니다.
-파일을 바꾸고 싶지 않다면 '''<tt>[[:$1]]</tt>''' 파일을 확인해 주세요.
+'fileexists' => "같은 이름의 파일이 이미 있습니다. 파일을 바꾸고 싶지 않다면 '''<tt>[[:$1]]</tt>''' 파일을 확인해 주세요.
 [[$1|thumb]]",
 'filepageexists' => "이 파일의 설명 문서가 '''<tt>[[:$1]]</tt>'''에 존재하지만, 이 이름을 가진 파일이 존재하지 않습니다.
 당신이 입력한 설명은 설명 문서에 반영되지 않을 것입니다.
@@ -1742,30 +1807,34 @@ $1",
 * 올리려는 파일 이름: '''<tt>[[:$1]]</tt>'''
 * 존재하는 파일 이름: '''<tt>[[:$2]]</tt>'''
 다른 이름으로 시도해 주세요.",
-'fileexists-thumbnail-yes' => "이 파일은 원본 그림이 아닌, 다른 그림의 크기를 줄인 섬네일 파일인 것 같습니다. [[$1|thumb]]
+'fileexists-thumbnail-yes' => "이 파일은 원본 그림이 아닌, 다른 그림의 크기를 줄인 섬네일 파일인 것 같습니다.
+[[$1|thumb]]
 '''<tt>[[:$1]]</tt>''' 파일을 확인해주세요.
 해당 파일이 현재 올리려는 파일과 같다면, 더 작은 크기의 그림을 올릴 필요는 없습니다.",
 'file-thumbnail-no' => "파일 이름이 '''<tt>$1</tt>'''으로 시작합니다.
 이 파일은 원본 그림이 아닌, 다른 그림의 크기를 줄인 섬네일 파일인 것 같습니다.
 더 해상도가 좋은 파일이 있다면 그 파일을 올려주세요. 아니면 올리려는 파일 이름을 바꾸어 주세요.",
 'fileexists-forbidden' => '같은 이름의 파일이 이미 있고, 덮어쓸 수 없습니다.
-그래도 파일을 올리시려면, 뒤로 돌아가서 다른 이름으로 시도해 주시기 바랍니다. [[File:$1|thumb|center|$1]]',
+그래도 파일을 올리시려면, 뒤로 돌아가서 다른 이름으로 시도해 주시기 바랍니다.
+[[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => '같은 이름의 파일이 이미 위키미디어 공용에 있습니다.
-파일을 업로드하길 원하신다면 뒤로 돌아가서 다른 이름으로 시도해 주시기 바랍니다. [[File:$1|thumb|center|$1]]',
-'file-exists-duplicate' => '{{PLURAL:$1}}현재 올리고 있는 파일이 아래 파일과 중복됩니다:',
+파일을 업로드하길 원하신다면 뒤로 돌아가서 다른 이름으로 시도해 주시기 바랍니다.
+[[File:$1|thumb|center|$1]]',
+'file-exists-duplicate' => '현재 올리고 있는 {{PLURAL:$1|파일}}이 아래 파일과 중복됩니다:',
 'file-deleted-duplicate' => '이 파일과 같은 파일 ([[:$1]])이 이전에 삭제된 적이 있습니다. 파일을 다시 올리기 전에 문서의 삭제 기록을 확인해 주시기 바랍니다.',
 'uploadwarning' => '올리기 경고',
 'uploadwarning-text' => '아래의 파일 설명을 수정하고 다시 시도해 주세요.',
 'savefile' => '파일 저장',
-'uploadedimage' => '‘[[$1]]’ 파일을 올렸습니다.',
-'overwroteimage' => '‘[[$1]]’ 파일의 새 버전을 올렸습니다.',
+'uploadedimage' => '"[[$1]]" 파일을 올렸습니다.',
+'overwroteimage' => '"[[$1]]" 파일의 새 판을 올렸습니다.',
 'uploaddisabled' => '올리기 비활성화됨',
 'copyuploaddisabled' => 'URL로 파일 올리기가 비활성화되어 있습니다.',
 'uploadfromurl-queued' => '당신의 올리기 명령이 기록되었습니다.',
 'uploaddisabledtext' => '파일 올리기 기능이 비활성화되어 있습니다.',
 'php-uploaddisabledtext' => 'PHP 파일 올리기가 비활성화되었습니다. 파일 올리기 설정을 확인하십시오.',
 'uploadscripted' => '이 파일에는 HTML이나 다른 스크립트 코드가 포함되어 있어, 웹 브라우저에서 오류를 일으킬 수 있습니다.',
-'uploadvirus' => '파일이 바이러스를 포함하고 있습니다! 상세 설명: $1',
+'uploadvirus' => '파일이 바이러스를 포함하고 있습니다!
+자세한 설명: $1',
 'uploadjava' => '이 ZIP 파일은 자바의 .class 파일을 포함하고 있습니다.
 보안을 위한 제한을 우회할 수 있기 때문에 자바 파일을 올리는 것이 허용되지 않습니다.',
 'upload-source' => '원본 파일',
@@ -1776,9 +1845,9 @@ $1",
 'upload-description' => '파일의 설명',
 'upload-options' => '올리기 설정',
 'watchthisupload' => '이 파일 주시하기',
-'filewasdeleted' => '같은 이름을 가진 파일이 올라온 적이 있었고, 그 후에 삭제되었습니다. 올리기 전에 $1을 확인해 주시기 바랍니다.',
-'filename-bad-prefix' => '올리려고 하는 파일 이름이 \'\'\'"$1"\'\'\'(으)로 시작합니다.
-"$1"은(는) 디지털 사진기가 자동으로 붙이는 의미없는 이름입니다.
+'filewasdeleted' => '같은 이름을 가진 파일이 올라온 적이 있었고 그 후에 삭제되었습니다.
+올리기 전에 $1을 확인해 주시기 바랍니다.',
+'filename-bad-prefix' => '올리려고 하는 파일 이름이 \'\'\'"$1"\'\'\'(으)로 시작합니다. "$1"은(는) 디지털 사진기가 자동으로 붙이는 의미없는 이름입니다.
 파일에 대해 알기 쉬운 이름을 골라주세요.',
 'filename-prefix-blacklist' => ' #<!-- 이 줄은 그대로 두십시오 --> <pre>
 # 문법은 다음과 같습니다:
@@ -1806,9 +1875,12 @@ $1',
 'upload-proto-error' => '잘못된 프로토콜',
 'upload-proto-error-text' => '파일을 URL로 올리려면 <code>http://</code>이나 <code>ftp://</code>로 시작해야 합니다.',
 'upload-file-error' => '내부 오류',
-'upload-file-error-text' => '서버에 임시 파일을 만드는 과정에서 내부 오류가 발생했습니다. [[Special:ListUsers/sysop|관리자]]에게 연락해주세요.',
+'upload-file-error-text' => '서버에 임시 파일을 만드는 과정에서 내부 오류가 발생했습니다.
+[[Special:ListUsers/sysop|관리자]]에게 연락해주세요.',
 'upload-misc-error' => '알 수 없는 파일 올리기 오류',
-'upload-misc-error-text' => '파일을 올리는 중 알 수 없는 오류가 발생했습니다. URL이 올바르고 접근 가능한지를 확인하고 다시 시도해주세요. 문제가 계속되면 [[Special:ListUsers/sysop|관리자]]에게 연락해주세요.',
+'upload-misc-error-text' => '파일을 올리는 중 알 수 없는 오류가 발생했습니다.
+URL이 올바르고 접근 가능한지를 확인하고 다시 시도해주세요.
+문제가 계속되면 [[Special:ListUsers/sysop|관리자]]에게 연락해주세요.',
 'upload-too-many-redirects' => 'URL이 너무 많은 넘겨주기에 연결되어 있습니다.',
 'upload-unknown-size' => '크기를 알 수 없음',
 'upload-http-error' => 'HTTP 오류 발생: $1',
@@ -1832,25 +1904,25 @@ $1',
 'backend-fail-read' => '$1 파일을 읽을 수 없습니다.',
 'backend-fail-create' => '$1 파일을 저장하지 못했습니다.',
 'backend-fail-maxsize' => '$2{{PLURAL:$2|바이트}}보다 커서 $1 파일을 저장하지 못했습니다.',
-'backend-fail-readonly' => '‘$1’ 저장 백엔드가 읽기 전용입니다. 자세한 이유는 다음과 같습니다: “$2”',
+'backend-fail-readonly' => '"$1" 저장 백엔드가 읽기 전용입니다. 자세한 이유는 다음과 같습니다: "$2"',
 'backend-fail-synced' => '파일 "$1"은 내부 저장 백엔드에 불안정한 상태로 있습니다.',
-'backend-fail-connect' => "'$1' 저장 백엔드에 접속하지 못했습니다.",
+'backend-fail-connect' => '"$1" 저장 백엔드에 접속하지 못했습니다.',
 'backend-fail-internal' => '"$1" 저장 백엔드에 알 수 없는 오류가 발생했습니다.',
 'backend-fail-contenttype' => '"$1"에 저장하기 위한 파일의 내용 유형을 판별하지 못했습니다.',
-'backend-fail-batchsize' => '저장 백엔드에서 파일 {{PLURAL:$1|작업}} $1개가 쌓여 있습니다; 한계는 $2개입니다.',
+'backend-fail-batchsize' => '저장 백엔드에서 파일 {{PLURAL:$1|작업}} $1개가 쌓여 있습니다. 한계는 $2개입니다.',
 'backend-fail-usable' => '파일 저장 권한이 없거나 저장 위치가 빠졌기 때문에 $1 파일을 저장할 수 없습니다.',
 
 # File journal errors
-'filejournal-fail-dbconnect' => '저장소 백엔드 ‘$1’에 대한 저널 데이터베이스에 연결할 수 없습니다.',
-'filejournal-fail-dbquery' => '저장소 백엔드 â\80\98$1â\80\99ì\97\90 ë\8c\80í\95\9c ì \80ë\84\90 ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ì\97\90ì\84\9c ê°±ì\8b í\95  ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤.',
+'filejournal-fail-dbconnect' => '저장소 백엔드 "$1"에 대한 저널 데이터베이스에 연결할 수 없습니다.',
+'filejournal-fail-dbquery' => '저장소 백엔드 "$1"ì\97\90 ë\8c\80í\95\9c ì \80ë\84\90 ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ì\97\90ì\84\9c ì\83\88ë¡\9c ê³ ì¹  ì\88\98 ì\97\86ì\8aµë\8b\88ë\8b¤.',
 
 # Lock manager
-'lockmanager-notlocked' => '‘$1’ 경로의 잠금을 풀 수 없습니다. 해당 경로는 잠겨 있지 않습니다.',
-'lockmanager-fail-closelock' => '‘$1’에 대한 잠금 파일을 닫지 못했습니다.',
-'lockmanager-fail-deletelock' => '‘$1’에 대한 잠금 파일을 삭제하지 못했습니다.',
-'lockmanager-fail-acquirelock' => '‘$1’에 대한 잠금이 실패했습니다.',
-'lockmanager-fail-openlock' => '‘$1’에 대한 잠금 파일을 열지 못했습니다.',
-'lockmanager-fail-releaselock' => '‘$1’에 대한 잠금을 해제하지 못했습니다.',
+'lockmanager-notlocked' => '"$1" 경로의 잠금을 풀 수 없습니다. 해당 경로는 잠겨 있지 않습니다.',
+'lockmanager-fail-closelock' => '"$1"에 대한 잠금 파일을 닫지 못했습니다.',
+'lockmanager-fail-deletelock' => '"$1"에 대한 잠금 파일을 삭제하지 못했습니다.',
+'lockmanager-fail-acquirelock' => '"$1"에 대한 잠금이 실패했습니다.',
+'lockmanager-fail-openlock' => '"$1"에 대한 잠금 파일을 열지 못했습니다.',
+'lockmanager-fail-releaselock' => '"$1"에 대한 잠금을 해제하지 못했습니다.',
 'lockmanager-fail-db-bucket' => '데이터베이스의 버킷 $1의 잠금을 풀지 못했습니다.',
 'lockmanager-fail-db-release' => '데이터베이스 $1의 잠금을 풀지 못했습니다.',
 'lockmanager-fail-svr-release' => '서버 $1의 잠금을 풀지 못했습니다.',
@@ -1865,33 +1937,36 @@ $1',
 
 # Special:UploadStash
 'uploadstash' => '파일 올리기 임시 저장',
-'uploadstash-summary' => '이 페이지는 위키에 등록되지는 않았지만 올리는 과정 중에 있는 파일을 열람할 수 있습니다. 이 파일들은 올린이 외에는 볼 수 없습니다.',
+'uploadstash-summary' => '이 문서는 위키에 등록되지는 않았지만 올리는 과정 중에 있는 파일을 열람할 수 있습니다. 이 파일들은 올린이 외에는 볼 수 없습니다.',
 'uploadstash-clear' => '임시 저장한 파일 제거하기',
 'uploadstash-nofiles' => '임시 저장한 파일이 없습니다.',
-'uploadstash-badtoken' => 'ì\9d´ ë\8f\99ì\9e\91ì\9d\84 ì\88\98í\96\89í\95\98ë\8a\94 ë\8d° ì\8b¤í\8c¨í\96\88ì\8aµë\8b\88ë\8b¤. í\8e¸ì§\91 í\86 í\81°ì\9d´ ë§\8cë£\8cë\90\98ì\97\88ì\9d\84 ê°\80ë\8a¥ì\84±ì\9d´ ì\9e\88ì\8aµë\8b\88ë\8b¤. ë\8b¤ì\8b\9c ì\8b\9cë\8f\84í\95´ ë³´ì\8b­ì\8b\9cì\98¤.',
+'uploadstash-badtoken' => 'ì\9d´ ë\8f\99ì\9e\91ì\9d\84 ì\88\98í\96\89í\95\98ë\8a\94 ë\8d° ì\8b¤í\8c¨í\96\88ì\8aµë\8b\88ë\8b¤. í\8e¸ì§\91 í\86 í\81°ì\9d´ ë§\8cë£\8cë\90\98ì\97\88ì\9d\84 ê°\80ë\8a¥ì\84±ì\9d´ ì\9e\88ì\8aµë\8b\88ë\8b¤. ë\8b¤ì\8b\9c ì\8b\9cë\8f\84í\95\98ì\84¸ì\9a\94.',
 'uploadstash-errclear' => '파일을 제거하는 데 실패했습니다.',
 'uploadstash-refresh' => '파일 목록을 새로고침',
 'invalid-chunk-offset' => '청크 오프셋이 잘못되었습니다.',
 
 # img_auth script messages
 'img-auth-accessdenied' => '접근 거부됨',
-'img-auth-nopathinfo' => '서버가 이 정보를 받을 수 있도록 설정되어 있지 않습니다.
+'img-auth-nopathinfo' => 'PATH_INFO를 잃었습니다.
+서버가 이 정보를 받을 수 있도록 설정되어 있지 않습니다.
 이러한 경우는 서버가 CGI 기반이고 img_auth를 지원하지 않을 때 나타날 수 있습니다.
 https://www.mediawiki.org/wiki/Manual:Image_Authorization 을 참고하십시오.',
-'img-auth-notindir' => 'ì\9a\94ì²­í\95\9c ê²½ë¡\9cê°\80 ì\84¤ì \95í\95\9c ì\97\85ë¡\9cë\93\9c 디렉토리에 없습니다.',
-'img-auth-badtitle' => '"$1"에서 바른 제목을 만들 수 없습니다.',
+'img-auth-notindir' => 'ì\9a\94ì²­í\95\9c ê²½ë¡\9cê°\80 ì\84¤ì \95í\95\9c ì\98¬ë¦¬ê¸° 디렉토리에 없습니다.',
+'img-auth-badtitle' => '"$1"에서 바른 제목을 만들 수 없습니다.',
 'img-auth-nologinnWL' => '당신은 로그인하지 않았으며 "$1" 파일은 화이트리스트에 존재하지 않습니다.',
 'img-auth-nofile' => '"$1" 파일이 없습니다.',
 'img-auth-isdir' => '"$1" 디렉토리에 접근을 시도했습니다.
 파일에만 접근할 수 있습니다.',
-'img-auth-streaming' => '‘$1’ 파일을 전송하는 중입니다.',
-'img-auth-public' => 'img_auth.php는 개인 위키 파일을 외부 사이트로 전송하는 기능입니다. 이 기능은 기본적으로 공개적인 위키에서 사용하도록 설계되어 있으며, 보안적인 문제로 기본적으로 img_auth.php 기능은 비활성화되어 있습니다.',
-'img-auth-noread' => '‘$1’ 파일을 볼 권한이 없습니다.',
+'img-auth-streaming' => '"$1" 파일을 전송하는 중입니다.',
+'img-auth-public' => 'img_auth.php는 개인 위키 파일을 외부 사이트로 전송하는 기능입니다.
+이 기능은 기본적으로 공개적인 위키에서 사용하도록 설계되어 있습니다.
+보안적인 문제로 기본적으로 img_auth.php 기능은 비활성화되어 있습니다.',
+'img-auth-noread' => '"$1" 파일을 볼 권한이 없습니다.',
 'img-auth-bad-query-string' => 'URL에 잘못된 쿼리 문자열이 있습니다.',
 
 # HTTP errors
 'http-invalid-url' => '잘못된 URL: $1',
-'http-invalid-scheme' => '‘$1’로 시작하는 URL은 지원되지 않습니다.',
+'http-invalid-scheme' => '"$1"로 시작하는 URL은 지원되지 않습니다.',
 'http-request-error' => '알 수 없는 오류로 HTTP 요청에 실패했습니다.',
 'http-read-error' => 'HTTP 읽기 오류.',
 'http-timed-out' => 'HTTP 요청 시간 초과.',
@@ -1904,7 +1979,9 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization 을 참고하십시오
 'upload-curl-error6-text' => 'URL에 접근할 수 없습니다.
 URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'upload-curl-error28' => '업로드 시간 초과',
-'upload-curl-error28-text' => '사이트에서 응답하는 시간이 너무 깁니다. 사이트 접속이 가능한지 확인한 다음 다시 시도해주세요. 해당 사이트에 접속이 많을 경우, 접속이 원활한 시간대에 시도해주세요.',
+'upload-curl-error28-text' => '사이트에서 응답하는 시간이 너무 깁니다.
+사이트 접속이 가능한지 확인한 다음 다시 시도해주세요.
+해당 사이트에 접속이 많을 경우 접속이 원활한 시간대에 시도해주세요.',
 
 'license' => '라이선스:',
 'license-header' => '라이선스',
@@ -1937,7 +2014,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'filehist-current' => '최신',
 'filehist-datetime' => '날짜/시간',
 'filehist-thumb' => '섬네일',
-'filehist-thumbtext' => '$1 버전의 파일',
+'filehist-thumbtext' => '$1 의 파일',
 'filehist-nothumb' => '섬네일 없음',
 'filehist-user' => '사용자',
 'filehist-dimensions' => '크기',
@@ -1968,7 +2045,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'shared-repo-from' => '($1)',
 'shared-repo' => '공용 저장소',
 'shared-repo-name-wikimediacommons' => '위키미디어 공용',
-'filepage.css' => '/* 이 CSS 설정은 파일 설명 페이지에 포함되며, 또한 해외 클라이언트 위키에 포함됩니다 */',
+'filepage.css' => '/* 이 CSS 설정은 파일 설명 문서에 포함되며, 또한 해외 클라이언트 위키에 포함됩니다 */',
 
 # File reversion
 'filerevert' => '$1 되돌리기',
@@ -2001,8 +2078,9 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'filedelete-maintenance-title' => '파일을 삭제할 수 없습니다',
 
 # MIME search
-'mimesearch' => 'MIME 검색',
-'mimesearch-summary' => 'MIME 타입에 해당하는 파일을 검색합니다. MIME 값을 <tt>image/jpeg</tt> 형태로 입력해주세요.',
+'mimesearch' => 'MIME 찾기',
+'mimesearch-summary' => 'MIME 타입에 해당하는 파일을 찾습니다.
+다음 형태로 입력해주세요: 내용종류/하위종류, 예를 들어 <tt>image/jpeg</tt>',
 'mimetype' => 'MIME 종류:',
 'download' => '다운로드',
 
@@ -2015,7 +2093,6 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 # Unused templates
 'unusedtemplates' => '사용하지 않는 틀 목록',
 'unusedtemplatestext' => '다른 문서에서 사용하지 않는 {{ns:template}} 이름공간 문서의 목록입니다.
-
 삭제하기 전에 사용 여부를 다시 확인해 주세요.',
 'unusedtemplateswlh' => '다른 링크',
 
@@ -2036,12 +2113,12 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'statistics-header-hooks' => '기타 통계',
 'statistics-articles' => '일반 문서',
 'statistics-pages' => '전체 문서',
-'statistics-pages-desc' => '토론 문서, 넘겨주기 문서 등을 포함.',
+'statistics-pages-desc' => '토론 문서, 넘겨주기 문서 등을 포함하는 모든 문서.',
 'statistics-files' => '올려져 있는 파일',
 'statistics-edits' => '{{SITENAME}} 설치 후 문서의 전체 편집 횟수',
 'statistics-edits-average' => '문서당 평균 편집 횟수',
 'statistics-views-total' => '총 방문 수',
-'statistics-views-total-desc' => '존재하지 않는 문서나 특수 문서에 대한 방문수는 집계ë\90\98ì§\80 ì\95\8aì\95\98ì\8aµë\8b\88ë\8b¤.',
+'statistics-views-total-desc' => '존재하지 않는 문서나 특수 문서에 대한 방문수는 집계í\95\98ì§\80 ì\95\8aì\95\98ì\8aµë\8b\88ë\8b¤.',
 'statistics-views-peredit' => '편집당 방문 횟수',
 'statistics-users' => '등록된 [[Special:ListUsers|사용자]]',
 'statistics-users-active' => '활동적인 사용자',
@@ -2049,7 +2126,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'statistics-mostpopular' => '가장 많이 읽힌 문서',
 
 'disambiguations' => '동음이의 문서를 가리키는 문서 목록',
-'disambiguationspage' => 'Template:Disambig',
+'disambiguationspage' => 'Template:disambig',
 'disambiguations-text' => "다음의 문서들은 '''동음이의 문서'''를 가리키고 있습니다.
 그 링크를 다른 적절한 문서로 연결해 주어야 합니다.<br />
 [[MediaWiki:Disambiguationspage]]에서 링크된 틀을 사용하는 문서를 동음이의 문서로 간주합니다.",
@@ -2058,7 +2135,8 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'doubleredirectstext' => '이 문서는 다른 넘겨주기 문서로 넘겨주고 있는 문서의 목록입니다.
 매 줄에는 첫 번째 문서와 두 번째 문서의 링크가 있습니다. 그리고 보통 첫 번째 문서가 넘겨주어야 할 "실제" 문서인 두 번째 넘겨주기의 대상이 있습니다.
 <del>취소선이 그인</del> 부분은 이미 해결되었습니다.',
-'double-redirect-fixed-move' => '[[$1]] 문서를 옮겼습니다. 이 문서는 이제 [[$2]] 문서로 넘겨줍니다.',
+'double-redirect-fixed-move' => '[[$1]] 문서를 옮겼습니다.
+이 문서는 이제 [[$2]] 문서로 넘겨줍니다.',
 'double-redirect-fixed-maintenance' => '[[$1]]에서 [[$2]]로 이중 넘겨주기를 고치는 중',
 'double-redirect-fixer' => '넘겨주기 수리꾼',
 
@@ -2081,8 +2159,8 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'nmembers' => '문서 $1개',
 'nrevisions' => '편집 $1개',
 'nviews' => '$1회 읽음',
-'nimagelinks' => '{{PLURAL:$1}}ê°\9c ë¬¸ì\84\9cì\97\90ì\84\9c ì\82¬ì\9a© ì¤\91',
-'ntransclusions' => '{{PLURAL:$1}}ê°\9c ë¬¸ì\84\9cì\97\90ì\84\9c ì\82¬ì\9a© ì¤\91',
+'nimagelinks' => '문ì\84\9c $1ê°\9cì\97\90ì\84\9c ì\82¬ì\9a© ì¤\91',
+'ntransclusions' => '문ì\84\9c $1ê°\9cì\97\90ì\84\9c ì\82¬ì\9a© ì¤\91',
 'specialpage-empty' => '명령에 대한 결과가 없습니다.',
 'lonelypages' => '외톨이 문서 목록',
 'lonelypagestext' => '{{SITENAME}}에서 다른 모든 문서에서 링크되거나 틀로 포함되지 않은 문서의 목록입니다.',
@@ -2123,8 +2201,8 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'listusers' => '사용자 목록',
 'listusers-editsonly' => '기여가 있는 사용자만 보기',
 'listusers-creationsort' => '계정 등록일 순으로 정렬',
-'usereditcount' => '편집 $1',
-'usercreated' => '$1 $2에 계정 {{GENDER:$3|생성됨}}',
+'usereditcount' => '편집 $1',
+'usercreated' => '$1 $2에 계정 {{GENDER:$3|만들어짐}}',
 'newpages' => '새 문서 목록',
 'newpages-username' => '이름:',
 'ancientpages' => '오래된 문서 목록',
@@ -2147,7 +2225,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'booksources-search-legend' => '책 찾기',
 'booksources-go' => '찾기',
 'booksources-text' => '아래의 목록은 새 책이나 중고 책을 판매하는 외부 사이트로, 원하는 책의 정보를 얻을 수 있습니다:',
-'booksources-invalid-isbn' => '입력한 ISBN이 잘못된 것으로 보입니다; 원본과 대조해 보십시오.',
+'booksources-invalid-isbn' => '입력한 ISBN이 잘못된 것으로 보입니다. 원본과 대조해 보세요.',
 
 # Special:Log
 'specialloguserlabel' => '작업 수행자:',
@@ -2174,8 +2252,9 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'allpagesnext' => '다음',
 'allpagessubmit' => '표시',
 'allpagesprefix' => '다음으로 시작하는 문서 보기:',
-'allpagesbadtitle' => '문서 제목이 잘못되었거나 다른 사이트로 연결되는 인터위키를 가지고 있습니다. 문서 제목에 사용할 수 없는 문자를 사용했을 수 있습니다.',
-'allpages-bad-ns' => '{{SITENAME}}에서는 ‘$1’ 이름공간을 사용하지 않습니다.',
+'allpagesbadtitle' => '문서 제목이 잘못되었거나 다른 사이트로 연결되는 인터위키를 가지고 있습니다.
+문서 제목에 사용할 수 없는 문자를 사용했을 수 있습니다.',
+'allpages-bad-ns' => '{{SITENAME}}에서는 "$1" 이름공간을 사용하지 않습니다.',
 'allpages-hide-redirects' => '넘겨주기 숨기기',
 
 # SpecialCachedPage
@@ -2237,18 +2316,18 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'listgrouprights-rights' => '권한',
 'listgrouprights-helppage' => 'Help:사용자 권한 그룹',
 'listgrouprights-members' => '(사용자 목록)',
-'listgrouprights-addgroup' => '{{PLURAL:$2}}권한 부여: $1',
-'listgrouprights-removegroup' => '{{PLURAL:$2}}권한 회수: $1',
+'listgrouprights-addgroup' => '{{PLURAL:$2|권한}} 부여: $1',
+'listgrouprights-removegroup' => '{{PLURAL:$2|권한}} 회수: $1',
 'listgrouprights-addgroup-all' => '모든 권한을 부여',
 'listgrouprights-removegroup-all' => '모든 권한을 회수',
-'listgrouprights-addgroup-self' => '자신에게 다음 {{PLURAL:$2|권한|권한}}을 부여: $1',
-'listgrouprights-removegroup-self' => '자신에게서 다음 {{PLURAL:$2|권한|권한}}을 해제: $1',
+'listgrouprights-addgroup-self' => '자신에게 다음 {{PLURAL:$2|권한}}을 부여: $1',
+'listgrouprights-removegroup-self' => '자신에게서 다음 {{PLURAL:$2|권한}}을 해제: $1',
 'listgrouprights-addgroup-self-all' => '자신에게 모든 권한을 부여',
 'listgrouprights-removegroup-self-all' => '자신의 계정에서 모든 권한을 해제',
 
 # E-mail user
 'mailnologin' => '보낼 이메일 주소가 없음',
-'mailnologintext' => '다른 사용자에게 이메일을 보내려면, [[Special:UserLogin|로그인]]한 다음 [[Special:Preferences|사용자 환경 설정]]에서 자신의 이메일 주소를 저장해야 합니다.',
+'mailnologintext' => '다른 사용자에게 이메일을 보내려면 [[Special:UserLogin|로그인]]한 다음 [[Special:Preferences|사용자 환경 설정]]에서 자신의 이메일 주소를 저장해야 합니다.',
 'emailuser' => '이메일 보내기',
 'emailpage' => '사용자에게 이메일 보내기',
 'emailpagetext' => '이 사용자가 환경 설정에 올바른 이메일 주소를 적었다면, 아래 양식을 통해 이메일을 보낼 수 있습니다.
@@ -2262,7 +2341,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'nowikiemailtitle' => '이메일이 허용되지 않음',
 'nowikiemailtext' => '이 사용자는 다른 사용자로부터의 이메일을 받지 않도록 설정하였습니다.',
 'emailnotarget' => '수신자로 없는 사용자를 지정하였거나 계정 이름이 잘못되었습니다.',
-'emailtarget' => '수신자 계정 입력',
+'emailtarget' => '수신자 계정 이름 입력',
 'emailusername' => '계정 이름:',
 'emailusernamesubmit' => '확인',
 'email-legend' => '{{SITENAME}}의 다른 사용자에게 이메일을 보내기',
@@ -2275,7 +2354,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'emailccsubject' => '$1에게 보낸 메일 사본: $2',
 'emailsent' => '이메일 보냄',
 'emailsenttext' => '이메일을 보냈습니다.',
-'emailuserfooter' => '이 이메일은 {{SITENAME}}의 $1 사용자가 $2 사용자에게 "이메일 보내기" 기능을 통해 ì \84ì\86¡ë\90\98ì\97\88ì\8aµë\8b\88ë\8b¤.',
+'emailuserfooter' => '이 이메일은 {{SITENAME}}의 $1 사용자가 $2 사용자에게 "이메일 보내기" 기능을 통해 ë³´ë\83\88ì\8aµë\8b\88ë\8b¤.',
 
 # User Messenger
 'usermessage-summary' => '시스템 메시지 남기기',
@@ -2310,7 +2389,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'watchlistcontains' => '문서 $1개를 주시하고 있습니다.',
 'iteminvalidname' => '"$1" 항목에 문제가 발생했습니다. 이름이 잘못되었습니다...',
 'wlnote' => "다음은 최근 '''$2'''시간 동안 바뀐 문서 '''$1'''개 입니다. ($3 $4 기준)",
-'wlshowlast' => '최근 $1 시간 $2 일 또는 $3 동안에 바뀐 문서',
+'wlshowlast' => '최근 $1시간 $2일 또는 $3 동안에 바뀐 문서',
 'watchlist-options' => '주시문서 목록 설정',
 
 # Displayed when you click the "watch" button and it is in the process of watching
@@ -2343,7 +2422,7 @@ $NEWPAGE
 이 문서를 열기 전에는 다른 알림 이메일을 더 이상 보내지 않습니다.
 모든 주시 문서의 알림 딱지를 초기화할 수도 있습니다.
 
-             {{SITENAME}} 알림 시스템
+{{SITENAME}} 알림 시스템
 
 --
 이메일 알림 설정을 바꾸시려면 이곳을 방문해주세요:
@@ -2361,19 +2440,21 @@ $UNWATCHURL
 # Delete
 'deletepage' => '문서 삭제하기',
 'confirm' => '확인',
-'excontent' => '내용: ‘$1’',
-'excontentauthor' => "내용: ‘$1’ (유일한 편집자는 '[[Special:Contributions/$2|$2]]')",
-'exbeforeblank' => '비우기 전의 내용: ‘$1’',
+'excontent' => '내용: "$1"',
+'excontentauthor' => '내용: "$1" (유일한 편집자는 "[[Special:Contributions/$2|$2]]")',
+'exbeforeblank' => '비우기 전의 내용: "$1"',
 'exblank' => '빈 문서',
-'delete-confirm' => '‘$1’ 삭제',
+'delete-confirm' => '"$1" 삭제',
 'delete-legend' => '삭제',
 'historywarning' => "'''주의:''' 삭제하려는 문서에 과거 편집 내역 약 $1개가 있습니다:",
-'confirmdeletetext' => '문서와 문서 역사를 삭제하려고 합니다. 삭제하려는 문서가 맞는지, 이 문서를 삭제하는 것이 [[{{MediaWiki:Policy-url}}|정책]]에 맞는 행동인지를 확인해 주세요.',
+'confirmdeletetext' => '문서와 문서 역사를 삭제하려고 합니다.
+삭제하려는 문서가 맞는지, 이 문서를 삭제하는 것이 [[{{MediaWiki:Policy-url}}|정책]]에 맞는 행동인지를 확인해 주세요.',
 'actioncomplete' => '명령 완료',
 'actionfailed' => '명령 실패',
-'deletedtext' => '‘$1’ 문서를 삭제했습니다. 최근 삭제 기록은 $2에 있습니다.',
+'deletedtext' => '"$1" 문서를 삭제했습니다.
+최근 삭제 기록은 $2에 있습니다.',
 'dellogpage' => '삭제 기록',
-'dellogpagetext' => '아래의 목록은 최근에 삭제된 문서입니다.',
+'dellogpagetext' => '아래의 목록은 최근에 삭제된 문서입니다.',
 'deletionlog' => '삭제 기록',
 'reverted' => '이전 버전으로 되돌렸습니다.',
 'deletecomment' => '이유:',
@@ -2382,9 +2463,10 @@ $UNWATCHURL
 'deletereason-dropdown' => '*일반적인 삭제 이유
 ** 작성자의 요청
 ** 저작권 침해
-** 잘못된 문서',
+** 훼손 행위',
 'delete-edit-reasonlist' => '삭제 이유 편집',
-'delete-toobig' => '이 문서에는 편집 역사가 $1개 있습니다. 편집 역사가 긴 문서를 삭제하면 {{SITENAME}}에 큰 혼란을 줄 수 있기 때문에 삭제할 수 없습니다.',
+'delete-toobig' => '이 문서에는 편집 역사가 $1개 있습니다.
+편집 역사가 긴 문서를 삭제하면 {{SITENAME}}에 큰 혼란을 줄 수 있기 때문에 삭제할 수 없습니다.',
 'delete-warning-toobig' => '이 문서에는 편집 역사가 $1개 있습니다.
 편집 역사가 긴 문서를 삭제하면 {{SITENAME}} 데이터베이스 동작에 큰 영향을 줄 수 있습니다.
 주의해 주세요.',
@@ -2394,29 +2476,33 @@ $UNWATCHURL
 'rollback_short' => '되돌리기',
 'rollbacklink' => '되돌리기',
 'rollbackfailed' => '되돌리기 실패',
-'cantrollback' => '편집을 되돌릴 수 없습니다. 문서를 편집한 사용자가 한명뿐입니다.',
-'alreadyrolled' => '[[:$1]]에서 [[User:$2|$2]] ([[User talk:$2|토론]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) 의 편집을 되돌릴 수 없습니다; 누군가가 이미 문서를 고치거나 되돌렸습니다.
+'cantrollback' => '편집을 되돌릴 수 없습니다.
+문서를 편집한 사용자가 한명뿐입니다.',
+'alreadyrolled' => '[[:$1]]에서 [[User:$2|$2]] ([[User talk:$2|토론]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]])의 편집을 되돌릴 수 없습니다.
+누군가가 이미 문서를 고치거나 되돌렸습니다.
 
-마지막으로 이 문서를 편집한 사용자는 [[User:$3|$3]] ([[User talk:$3|토론]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]) 입니다.',
-'editcomment' => "편집 요약: ''$1''",
+마지막으로 이 문서를 편집한 사용자는 [[User:$3|$3]] ([[User talk:$3|토론]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]])입니다.',
+'editcomment' => '편집 요약: "$1"',
 'revertpage' => '[[Special:Contributions/$2|$2]]([[User talk:$2|토론]])의 편집을 [[User:$1|$1]]의 마지막 버전으로 되돌림',
 'revertpage-nouser' => '(계정 이름 삭제됨)의 편집을 [[User:$1|$1]]의 마지막 편집으로 되돌림',
 'rollback-success' => '$1의 편집을 $2의 마지막 버전으로 되돌렸습니다.',
 
 # Edit tokens
 'sessionfailure-title' => '세션 손실',
-'sessionfailure' => '로그인 세션에 문제가 발생한 것 같습니다. 세션 하이재킹을 막기 위해 동작이 취소되었습니다. 브라우저의 "뒤로" 버튼을 누르고 문서를 새로고침한 후에 다시 시도해 주세요.',
+'sessionfailure' => '로그인 세션에 문제가 발생한 것 같습니다.
+세션 하이재킹을 막기 위해 동작이 취소되었습니다.
+브라우저의 뒤로 버튼을 누르고 문서를 새로 고침한 후에 다시 시도해 주세요.',
 
 # Protect
 'protectlogpage' => '문서 보호 기록',
-'protectlogtext' => 'ì\95\84ë\9e\98ì\9d\98 ëª©ë¡\9dì\9d\80 ë¬¸ì\84\9c ë³´í\98¸ì\97\90 ê´\80í\95\9c ë³\80ê²½ 사항에 대한 기록입니다.
+'protectlogtext' => 'ì\95\84ë\9e\98ì\9d\98 ëª©ë¡\9dì\9d\80 ë¬¸ì\84\9c ë³´í\98¸ì\97\90 ê´\80í\95\9c ë°\94ë\80\9c 사항에 대한 기록입니다.
 현재 보호된 문서의 목록에 대해서는 [[Special:ProtectedPages|보호된 문서 목록]]을 참고하십시오.',
-'protectedarticle' => '‘[[$1]]’ 문서를 보호함',
-'modifiedarticleprotection' => '‘[[$1]]’ 문서의 보호 설정을 변경함',
-'unprotectedarticle' => '‘[[$1]]’ 문서를 보호 해제함',
+'protectedarticle' => '"[[$1]]" 문서를 보호함',
+'modifiedarticleprotection' => '"[[$1]]" 문서의 보호 설정을 바꿈',
+'unprotectedarticle' => '"[[$1]]" 문서를 보호 해제함',
 'movedarticleprotection' => '문서의 보호 설정을 "[[$2]]"에서 "[[$1]]"으로 옮김',
-'protect-title' => '‘$1’ 보호하기',
-'protect-title-notallowed' => '‘$1’ 문서의 보호 수준 보기',
+'protect-title' => '"$1" 보호하기',
+'protect-title-notallowed' => '"$1" 문서의 보호 수준 보기',
 'prot_1movedto2' => '[[$1]] 문서를 [[$2]] 문서로 이동함',
 'protect-badnamespace-title' => '보호할 수 없는 이름공간',
 'protect-badnamespace-text' => '이 이름공간에 있는 문서는 보호할 수 없습니다.',
@@ -2426,14 +2512,17 @@ $UNWATCHURL
 'protect_expiry_invalid' => '보호 기간이 잘못되었습니다.',
 'protect_expiry_old' => '기한을 과거로 입력했습니다.',
 'protect-unchain-permissions' => '다른 보호 설정을 수동으로 설정하기',
-'protect-text' => "'''$1''' 문서의 보호 수준을 보거나 변경할 수 있습니다.",
-'protect-locked-blocked' => "차단된 동안에는 보호 설정을 바꿀 수 없습니다. '''$1''' 문서의 보호 설정은 다음과 같습니다:",
-'protect-locked-dblock' => "데이터베이스가 잠겨 문서 보호 설정을 바꿀 수 없습니다. '''$1''' 문서의 현재 설정은 다음과 같습니다:",
-'protect-locked-access' => "문서 보호 수준을 변경할 권한이 없습니다. '''$1''' 문서의 권한은 다음과 같습니다.",
+'protect-text' => "'''$1''' 문서의 보호 수준을 보거나 바꿀 수 있습니다.",
+'protect-locked-blocked' => "차단된 동안에는 보호 설정을 바꿀 수 없습니다.
+'''$1''' 문서의 보호 설정은 다음과 같습니다:",
+'protect-locked-dblock' => "데이터베이스가 잠겨 문서 보호 설정을 바꿀 수 없습니다.
+'''$1''' 문서의 현재 설정은 다음과 같습니다:",
+'protect-locked-access' => "문서 보호 수준을 바꿀 권한이 없습니다.
+'''$1''' 문서의 권한은 다음과 같습니다.",
 'protect-cascadeon' => '다음 {{PLURAL:$1|문서}}에 연쇄적 보호가 작동하고 있어 그 문서에 속한 이 문서도 현재 보호됩니다.
-사용자께서는 이 문서의 보호 설정을 바꾸실 수 있지만, 연쇄적 보호에는 영향을 주지 않습니다.',
+사용자는 이 문서의 보호 설정을 바꾸실 수 있지만 연쇄적 보호에는 영향을 주지 않습니다.',
 'protect-default' => '모든 사용자에게 허용',
-'protect-fallback' => '‘$1’ 권한 필요',
+'protect-fallback' => '"$1" 권한 필요',
 'protect-level-autoconfirmed' => '등록된 사용자만 가능',
 'protect-level-sysop' => '관리자만 가능',
 'protect-summary-cascade' => '연쇄적',
@@ -2484,7 +2573,8 @@ $UNWATCHURL
 'undeleterevisions' => '판 $1개 보관중',
 'undeletehistory' => '문서를 되살리면 모든 역사가 같이 복구됩니다.
 문서가 삭제된 뒤 같은 이름의 문서가 만들어졌다면, 복구되는 역사는 지금 역사의 과거 부분에 나타날 것입니다.',
-'undeleterevdel' => '복구하려는 문서의 최신판이 삭제되어 있는 경우 문서를 복구시킬 수 없습니다. 이러한 경우, 삭제된 최신판 문서의 체크박스를 선택 해제하거나 숨김을 해제해야 합니다.',
+'undeleterevdel' => '복구하려는 문서의 최신판이 삭제되어 있는 경우 문서를 복구시킬 수 없습니다.
+이러한 경우, 삭제된 최신판 문서의 체크박스를 선택 해제하거나 숨김을 해제해야 합니다.',
 'undeletehistorynoadmin' => '이 문서는 삭제되었습니다.
 삭제된 이유와 삭제되기 전에 이 문서를 편집한 사용자들이 아래에 나와 있습니다.
 삭제된 문서의 내용을 보려면 관리자 권한이 필요합니다.',
@@ -2505,7 +2595,7 @@ $UNWATCHURL
 다른 사용자가 이미 복구했을 수도 있습니다.',
 'undeletedpage' => "'''$1 문서가 복구되었습니다.'''
 
-[[Special:Log/delete|삭제 기록]]에서 최근의 삭제/복구 기록을 볼 수 있습니다.",
+[[Special:Log/delete|삭제 기록]]에서 최근의 삭제와 복구 기록을 볼 수 있습니다.",
 'undelete-header' => '최근에 삭제한 문서에 대한 기록은 [[Special:Log/delete|여기]]에서 볼 수 있습니다.',
 'undelete-search-title' => '삭제된 문서 찾기',
 'undelete-search-box' => '삭제된 문서 찾기',
@@ -2519,7 +2609,7 @@ $UNWATCHURL
 이미 복구되었을 수 있습니다.',
 'undelete-error' => '문서 복구 중 오류',
 'undelete-error-short' => '파일 복구 오류: $1',
-'undelete-error-long' => '파일을 복구하는 중 오류 발생:
+'undelete-error-long' => '파일을 복구하는 중 오류가 발생했습니다:
 
 $1',
 'undelete-show-file-confirm' => '정말 "<nowiki>$1</nowiki>" 파일의 삭제된 $2 $3 버전을 보시겠습니까?',
@@ -2530,7 +2620,7 @@ $1',
 'invert' => '선택 반전',
 'tooltip-invert' => '선택한 이름공간에 있는 문서의 바뀜을 숨기려면 이 상자에 체크해주세요.',
 'namespace_association' => '관련된 이름공간',
-'tooltip-namespace_association' => '선택한 이름공간과 관련된 토론/본문 이름공간을 같이 선택합니다.',
+'tooltip-namespace_association' => '선택한 이름공간과 관련된 토론이나 본문 이름공간을 같이 선택합니다.',
 'blanknamespace' => '(일반)',
 
 # Contributions
@@ -2552,10 +2642,11 @@ $1',
 'sp-contributions-logs' => '기록',
 'sp-contributions-talk' => '토론',
 'sp-contributions-userrights' => '사용자 권한 관리',
-'sp-contributions-blocked-notice' => '이 사용자는 현재 차단되어 있습니다. 해당 사용자의 차단 기록은 다음과 같습니다.',
+'sp-contributions-blocked-notice' => '이 사용자는 현재 차단되어 있습니다.
+해당 사용자의 차단 기록은 다음과 같습니다:',
 'sp-contributions-blocked-notice-anon' => '이 IP 주소는 현재 차단되어 있습니다.
\95\84ë\9e\98ì\9d\98 ìµ\9cê·¼ ì°¨ë\8b¨ ê¸°ë¡\9dì\9d\84 ì°¸ê³ í\95\98ì\8b­ì\8b\9cì\98¤.',
-'sp-contributions-search' => '기여 검색',
°¨ë\8b¨ ê¸°ë¡\9dì\9d\80 ë\8b¤ì\9d\8cê³¼ ê°\99ì\8aµë\8b\88ë\8b¤:',
+'sp-contributions-search' => '기여 찾기',
 'sp-contributions-username' => 'IP 주소 혹은 계정 이름:',
 'sp-contributions-toponly' => '최신판만 보기',
 'sp-contributions-submit' => '찾기',
@@ -2612,19 +2703,19 @@ $1',
 'ipbotheroption' => '수동으로 지정',
 'ipbotherreason' => '다른 이유/추가적인 이유:',
 'ipbhidename' => '사용자 이름을 편집 역사에서 숨기기',
-'ipbwatchuser' => '이 사용자 문서와 사용자토론 문서를 주시하기',
-'ipb-disableusertalk' => '차단된 동안 자신의 사용자토론 문서를 편집하지 못하도록 막기',
+'ipbwatchuser' => '이 사용자 문서와 사용자 토론 문서를 주시하기',
+'ipb-disableusertalk' => '차단된 동안 자신의 사용자 토론 문서를 편집하지 못하도록 막기',
 'ipb-change-block' => '이 설정으로 이 사용자를 다시 차단합니다',
 'ipb-confirm' => '차단 확인',
 'badipaddress' => '잘못된 IP 주소',
 'blockipsuccesssub' => '차단 완료',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] 사용자가 차단되었습니다.<br />
 차단된 사용자 목록은 [[Special:BlockList|여기]]에서 볼 수 있습니다.',
-'ipb-blockingself' => '자기 자신을 차단하려고 합니다. 정말로 실행할까요?',
+'ipb-blockingself' => '자기 자신을 차단하려고 합니다! 정말로 실행할까요?',
 'ipb-confirmhideuser' => '당신은 사용자를 차단하면서 "계정 숨기기" 설정을 선택했습니다. 이로써 모든 기록에서 이 사용자의 계정 이름을 숨기게 됩니다. 정말로 계정을 숨기시겠습니까?',
 'ipb-edit-dropdown' => '차단 이유 목록 편집하기',
 'ipb-unblock-addr' => '$1 차단 해제하기',
-'ipb-unblock' => '사용자/IP 주소 차단 해제하기',
+'ipb-unblock' => '사용자 또는 IP 주소 차단 해제하기',
 'ipb-blocklist' => '현재 차단 기록 보기',
 'ipb-blocklist-contribs' => '$1의 기여',
 'unblockip' => '사용자 차단 해제',
@@ -2640,7 +2731,7 @@ $1',
 'blocklist-tempblocks' => '기한이 정해진 차단을 숨기기',
 'blocklist-addressblocks' => '당일 IP 차단을 숨기기',
 'blocklist-rangeblocks' => '광역 차단을 숨기기',
-'blocklist-timestamp' => '날짜/시각',
+'blocklist-timestamp' => '날짜·시각',
 'blocklist-target' => '차단 대상',
 'blocklist-expiry' => '차단 기한',
 'blocklist-by' => '차단한 관리자',
@@ -2648,34 +2739,36 @@ $1',
 'blocklist-reason' => '이유',
 'ipblocklist-submit' => '찾기',
 'ipblocklist-localblock' => '로컬 차단',
-'ipblocklist-otherblocks' => '다른 {{PLURAL:$1|}}차단 기록',
+'ipblocklist-otherblocks' => '다른 {{PLURAL:$1|차단}} 기록',
 'infiniteblock' => '무기한',
 'expiringblock' => '$1 $2에 해제',
 'anononlyblock' => '익명 사용자만',
 'noautoblockblock' => '자동 차단 비활성화됨',
-'createaccountblock' => '계정 생성 금지됨',
+'createaccountblock' => '계정 만들기 금지됨',
 'emailblock' => '이메일 차단됨',
 'blocklist-nousertalk' => '자신의 토론 문서 편집 불가',
 'ipblocklist-empty' => '차단된 사용자가 없습니다.',
 'ipblocklist-no-results' => '당신이 입력한 IP 주소나 사용자는 차단되지 않았습니다.',
 'blocklink' => '차단',
 'unblocklink' => '차단 해제',
-'change-blocklink' => 'ì°¨ë\8b¨ ì\84¤ì \95 ë³\80ê²½',
+'change-blocklink' => 'ì°¨ë\8b¨ ì\84¤ì \95 ë°\94꾸기',
 'contribslink' => '기여',
 'emaillink' => '이메일 보내기',
 'autoblocker' => '당신의 IP 주소는 최근에 "[[User:$1|$1]]" 사용자가 사용하였기 때문에 자동으로 차단되었습니다.
 $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'blocklogpage' => '차단 기록',
-'blocklog-showlog' => '이 사용자는 과거에 차단된 기록이 있습니다. 해당 사용자의 차단 기록은 다음과 같습니다.',
-'blocklog-showsuppresslog' => '이 사용자는 과거에 차단된 적이 있으며, 그 기록이 숨겨져 있습니다. 해당 사용자의 차단 기록은 다음과 같습니다.',
+'blocklog-showlog' => '이 사용자는 과거에 차단된 기록이 있습니다.
+해당 사용자의 차단 기록은 다음과 같습니다:',
+'blocklog-showsuppresslog' => '이 사용자는 과거에 차단된 적이 있으며, 그 기록이 숨겨져 있습니다.
+해당 사용자의 차단 기록은 다음과 같습니다:',
 'blocklogentry' => '[[$1]] 사용자를 $2 차단함 $3',
-'reblock-logentry' => '[[$1]] ì\82¬ì\9a©ì\9e\90ì\9d\98 ì°¨ë\8b¨ ê¸°ê°\84ì\9d\84 $2(ì\9c¼)ë¡\9c ë³\80ê²½ $3',
+'reblock-logentry' => '[[$1]] ì\82¬ì\9a©ì\9e\90ì\9d\98 ì°¨ë\8b¨ ê¸°ê°\84ì\9d\84 $2(ì\9c¼)ë¡\9c ë°\94ê¿\88 $3',
 'blocklogtext' => '이 목록은 사용자 차단/차단 해제 기록입니다.
 자동으로 차단된 IP 주소는 여기에 나오지 않습니다.
 [[Special:BlockList|여기]]에서 현재 차단된 사용자 목록을 볼 수 있습니다.',
 'unblocklogentry' => '$1을 차단 해제했습니다.',
 'block-log-flags-anononly' => 'IP만 막음',
-'block-log-flags-nocreate' => '계정 생성 막음',
+'block-log-flags-nocreate' => '계정 만들기 금지됨',
 'block-log-flags-noautoblock' => '자동 차단 비활성화됨',
 'block-log-flags-noemail' => '이메일 막음',
 'block-log-flags-nousertalk' => '자신의 토론 문서 편집 불가',
@@ -2687,10 +2780,9 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'ipb_hide_invalid' => '해당 계정은 막을 수 없습니다. 기여량이 너무 많습니다.',
 'ipb_already_blocked' => '"$1" 사용자는 이미 차단됨',
 'ipb-needreblock' => '$1 사용자는 이미 차단되었습니다. 차단 설정을 바꾸시겠습니까?',
-'ipb-otherblocks-header' => '다른 {{PLURAL:$1|}}차단 기록',
+'ipb-otherblocks-header' => '다른 {{PLURAL:$1|차단}} 기록',
 'unblock-hideuser' => '이 계정 이름이 숨겨져 있기 때문에 이 사용자를 차단 해제할 수 없습니다.',
-'ipb_cant_unblock' => '오류: 차단 ID $1이(가) 존재하지 않습니다.
-이미 차단 해제되었을 수 있습니다.',
+'ipb_cant_unblock' => '오류: 차단 ID $1이(가) 존재하지 않습니다. 이미 차단 해제되었을 수 있습니다.',
 'ipb_blocked_as_range' => '오류: IP 주소 $1은 직접 차단되지 않았기 때문에 차단 해제할 수 없습니다.
 하지만 $2로 광역 차단되었기 때문에, 광역 차단 해제로 차단을 해제할 수 있습니다.',
 'ip_range_invalid' => 'IP 범위가 잘못되었습니다.',
@@ -2698,55 +2790,59 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'blockme' => '자가 차단',
 'proxyblocker' => '프록시 차단',
 'proxyblocker-disabled' => '이 기능은 비활성되어 있습니다.',
-'proxyblockreason' => '당신의 IP 주소는 공개 프록시로 밝혀져 자동으로 차단됩니다. 만약 인터넷 사용에 문제가 있다면 인터넷 서비스 공급자에게 문의해주세요.',
+'proxyblockreason' => '당신의 IP 주소는 공개 프록시로 밝혀져 자동으로 차단됩니다.
+만약 인터넷 사용에 문제가 있다면 인터넷 서비스 공급자나 기술 지원팀에게 문의해주세요.',
 'proxyblocksuccess' => '완료.',
 'sorbsreason' => '당신의 IP 주소는 {{SITENAME}}에서 사용하는 DNSBL 공개 프록시 목록에 들어 있습니다.',
-'sorbs_create_account_reason' => '당신의 IP 주소는 {{SITENAME}}에서 사용하는 DNSBL 공개 프록시 목록에 들어 있습니다. 계정을 만들 수 없습니다.',
+'sorbs_create_account_reason' => '당신의 IP 주소는 {{SITENAME}}에서 사용하는 DNSBL 공개 프록시 목록에 들어 있습니다.
+계정을 만들 수 없습니다.',
 'cant-block-while-blocked' => '당신이 차단되어 있는 동안에는 다른 사용자를 차단할 수 없습니다.',
-'cant-see-hidden-user' => '당신이 차단하려 하는 사용자는 이미 차단되었고 계정 숨김 처리되었습니다. 당신이 계정 숨기기 권한을 갖고 있지 않기 때문에, 이 사용자의 차단 기록을 보거나 차단 설정을 변경할 수 없습니다.',
+'cant-see-hidden-user' => '당신이 차단하려 하는 사용자는 이미 차단되었고 계정 숨김 처리되었습니다.
+당신이 계정 숨기기 권한을 갖고 있지 않기 때문에, 이 사용자의 차단 기록을 보거나 차단 설정을 바꿀 수 없습니다.',
 'ipbblocked' => '당신은 차단되어 있기 때문에 다른 사용자를 차단하거나 차단을 해제할 수 없습니다.',
 'ipbnounblockself' => '당신은 자기 스스로를 차단 해제할 수 없습니다.',
 
 # Developer tools
 'lockdb' => '데이터베이스 잠그기',
 'unlockdb' => '데이터베이스 잠금 해제',
-'lockdbtext' => 'ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ë¥¼ ì\9e ê·¸ë©´ ëª¨ë\93  ì\82¬ì\9a©ì\9e\90ì\9d\98 í\8e¸ì§\91, í\99\98ê²½ ì\84¤ì \95 ë³\80ê²½, 주시문서 편집 등 데이터베이스를 요구하는 모든 기능이 정지됩니다.
+'lockdbtext' => 'ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ë¥¼ ì\9e ê·¸ë©´ ëª¨ë\93  ì\82¬ì\9a©ì\9e\90ì\9d\98 í\8e¸ì§\91, í\99\98ê²½ ì\84¤ì \95 ë°\94꾸기, 주시문서 편집 등 데이터베이스를 요구하는 모든 기능이 정지됩니다.
 정말로 잠가야 하는지를 다시 한번 확인해주세요. 관리 작업이 끝난 뒤에는 데이터베이스 잠금을 풀어야 합니다.',
-'unlockdbtext' => 'ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ë¥¼ ì\9e ê¸\88 í\95´ì \9cí\95\98ë©´ ëª¨ë\93  ì\82¬ì\9a©ì\9e\90ì\9d\98 í\8e¸ì§\91, í\99\98ê²½ ì\84¤ì \95 ë³\80ê²½, 주시문서 편집 등 데이터베이스를 요구하는 모든 기능이 복구됩니다.
+'unlockdbtext' => 'ë\8d°ì\9d´í\84°ë² ì\9d´ì\8a¤ë¥¼ ì\9e ê¸\88 í\95´ì \9cí\95\98ë©´ ëª¨ë\93  ì\82¬ì\9a©ì\9e\90ì\9d\98 í\8e¸ì§\91, í\99\98ê²½ ì\84¤ì \95 ë°\94꾸기, 주시문서 편집 등 데이터베이스를 요구하는 모든 기능이 복구됩니다.
 정말로 잠금을 해제하려는지를 다시 한번 확인해주세요.',
 'lockconfirm' => '네, 데이터베이스를 잠급니다.',
 'unlockconfirm' => '네, 데이터베이스를 잠금 해제합니다.',
 'lockbtn' => '데이터베이스 잠그기',
 'unlockbtn' => '데이터베이스 잠금 해제',
-'locknoconfirm' => 'í\99\95ì\9d¸ ì²´í\81¬ë°\95ì\8a¤를 선택하지 않았습니다.',
+'locknoconfirm' => 'í\99\95ì\9d¸ ì\83\81ì\9e\90를 선택하지 않았습니다.',
 'lockdbsuccesssub' => '데이터베이스 잠김',
 'unlockdbsuccesssub' => '데이터베이스 잠금 해제됨',
 'lockdbsuccesstext' => '데이터베이스가 잠겼습니다.<br />
 관리가 끝나면 잊지 말고 [[Special:UnlockDB|잠금을 풀어]] 주세요.',
 'unlockdbsuccesstext' => '데이터베이스 잠금 상태가 해제되었습니다.',
-'lockfilenotwritable' => '데이터베이스 잠금 파일에 쓰기 권한이 없습니다. 데이터베이스를 잠그거나 잠금 해제하려면, 웹 서버에서 이 파일의 쓰기 권한을 설정해야 합니다.',
+'lockfilenotwritable' => '데이터베이스 잠금 파일에 쓰기 권한이 없습니다.
+데이터베이스를 잠그거나 잠금 해제하려면, 웹 서버에서 이 파일의 쓰기 권한을 설정해야 합니다.',
 'databasenotlocked' => '데이터베이스가 잠겨 있지 않습니다.',
 'lockedbyandtime' => '($1이 $2 $3에 잠금)',
 
 # Move page
 'move-page' => '이동 $1',
 'move-page-legend' => '문서 이동하기',
-'movepagetext' => "아래 양식을 채워 문서의 이름을 바꾸고 모든 역사를 새 이름으로 옮길 수 있습니다.
-기존의 문서는 새 문서로 넘겨주는 문서가 됩니다.
-원래 이름을 가리키는 넘겨주기를 자동으로 ê°±ì\8b í\95  ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤.
+'movepagetext' => "아래의 양식을 사용해 문서의 이름을 바꾸고 문서의 모든 역사를 옮깁니다.
+이전의 제목은 새 제목으로 넘겨줄 것입니다.
+원래 이름을 가리키는 넘겨주기를 자동으로 ì\83\88ë¡\9c ê³ ì¹  ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤.
 만약 이 설정을 선택하지 않았다면 [[Special:DoubleRedirects|이중 넘겨주기]]와 [[Special:BrokenRedirects|끊긴 넘겨주기]]를 확인해주세요.
\8b¹ì\8b ì\9d\80 ë§\81í\81¬ê°\80 ì\9d\98ë\8f\84í\95\9c ë¬¸ì\84\9c를 ê°\80리í\82¤ê²\8c 할 책임이 있습니다.
\8b¹ì\8b ì\9d\80 ë\84\98겨주기 ë§\81í\81¬ê°\80 ì \9cë\8c\80ë¡\9c í\96¥할 책임이 있습니다.
 
 만약 문서의 새 이름으로 된 문서가 존재할 때, 그 문서가 비었거나 넘겨주기 문서이고 문서 역사가 없을 때에만 이동합니다. 그렇지 않을 경우에는 이동하지 '''않습니다'''.
 이것은 실수로 이동한 문서를 되돌릴 수는 있지만, 이미 존재하는 문서 위에 덮어씌울 수는 없다는 것을 의미합니다.
 
 '''주의!'''
\9e\90주 ì\82¬ì\9a©í\95\98ë\8a\94 ë¬¸ì\84\9c를 ì\9d´ë\8f\99í\95\98ë©´ ì\9c\84í\97\98í\95\9c ê²°ê³¼ë¥¼ ê°\80ì ¸ì\98¬ 수 있습니다.
-이동하기 전에, 이 문서를 이동해도 문제가 없다는 것을 확인해주세요.",
-'movepagetext-noredirectfixer' => "ì\9d´ ì\96\91ì\8b\9dì\9d\84 ì\9d´ì\9a©í\95´ ë¬¸ì\84\9cì\9d\98 ì\9d´ë¦\84ì\9d\84 ë°\94꾸고 ë¬¸ì\84\9cì\9d\98 ëª¨ë\93  ì\97­ì\82¬ë¥¼ ì\98®ê¸¸ ê²\83ì\9e\85니다.
\9d¸ê¸° ì\9e\88ë\8a\94 ë¬¸ì\84\9cì\9d¼ ê²½ì\9a° ì\8b¬ê°\81í\95\98ê³  ì\98\88ì\83\81í\95\98ì§\80 ëª»í\95\9c ë¬¸ì \9c를 ì´\88ë\9e\98í\95  수 있습니다.
+문서를 이동하기 전에 이러한 행동이 초래할 수 있는 결과에 대해 숙지하시기 바랍니다.",
+'movepagetext-noredirectfixer' => "ì\95\84ë\9e\98ì\9d\98 ì\96\91ì\8b\9dì\9d\84 ì\82¬ì\9a©í\95´ ë¬¸ì\84\9cì\9d\98 ì\9d´ë¦\84ì\9d\84 ë°\94꾸고 ë¬¸ì\84\9cì\9d\98 ëª¨ë\93  ì\97­ì\82¬ë¥¼ ì\98®ê¹\81니다.
 이전의 제목은 새 제목으로 넘겨줄 것입니다.
-[[Special:DoubleRedirects|ì\9d´ì¤\91 ë\84\98겨주기]]ë\82\98 [[Special:BrokenRedirects|ë\81\8a긴 ë\84\98겨주기]]ê°\80 ì\9e\88ë\8a\94ì§\80 í\99\95ì\9d¸í\95´ì£¼ì\8b­ì\8b\9cì\98¤.
\8b¹ì\8b ì\9d\80 ë\84\98겨주기 ë§\81í\81¬ê°\80 ì \9cë\8c\80ë¡\9c í\96¥í\95\98ê³  ì\9e\88ë\8a\94ì§\80 í\99\95ì\9d¸í\95\98ì\97¬ì\95¼ í\95©니다.
+[[Special:DoubleRedirects|ì\9d´ì¤\91 ë\84\98겨주기]]ë\82\98 [[Special:BrokenRedirects|ë\81\8a긴 ë\84\98겨주기]]ê°\80 ì\9e\88ë\8a\94ì§\80 í\99\95ì\9d¸í\95´ì£¼ì\84¸ì\9a\94.
\8b¹ì\8b ì\9d\80 ë\84\98겨주기 ë§\81í\81¬ê°\80 ì \9cë\8c\80ë¡\9c í\96¥í\95  ì±\85ì\9e\84ì\9d´ ì\9e\88ì\8aµ니다.
 
 참고로 새 제목을 가진 문서가 이미 있다면 다음 경우에 해당하지 않으면 이 문서는 옮겨지지 '''않을''' 것입니다.
 * 비어 있거나,
@@ -2755,7 +2851,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 이는 당신이 실수로 문서를 옮겼을 때 되돌릴 수 있으며 이미 있는 문서를 덮어쓸 수 없음을 의미합니다.
 
 '''경고!'''
-방문 수나 이 문서를 향하는 링크가 많은 문서일 경우 심각한 문제를 초래할 수 있습니다.
+인기 있는 문서일 경우 심각하고 예상하지 못한 문제를 초래할 수 있습니다.
 문서를 이동하기 전에 이러한 행동이 초래할 수 있는 결과에 대해 숙지하시기 바랍니다.",
 'movepagetalktext' => "딸린 토론 문서도 자동으로 이동합니다. 하지만 다음의 경우는 '''이동하지 않습니다''':
 * 이동할 이름으로 된 문서가 이미 있는 경우
@@ -2763,7 +2859,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 
 이 경우에는 문서를 직접 이동하거나 두 문서를 합쳐야 합니다.",
 'movearticle' => '문서 이동하기',
-'moveuserpage-warning' => "'''경고:''' 당신은 사용자 문서를 옮기려 하고 있습니다. 사용자 문서만 이동되며 계정 이름이 바뀌지 않는다는 점을 명심해주시기 바랍니다.",
+'moveuserpage-warning' => "'''경고:''' 당신은 사용자 문서를 옮기려 하고 있습니다. 사용자 문서만 이동되며 계정 이름이 바뀌지 '''않는다'''는 점을 명심해주시기 바랍니다.",
 'movenologin' => '로그인하지 않음',
 'movenologintext' => '문서를 이동하려면 [[Special:UserLogin|로그인]]해야 합니다.',
 'movenotallowed' => '문서를 이동할 권한이 없습니다.',
@@ -2774,7 +2870,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'move-watch' => '문서 주시하기',
 'movepagebtn' => '이동',
 'pagemovedsub' => '문서 이동함',
-'movepage-moved' => "'''‘$1’ 문서를 ‘$2’ 문서로 이동했습니다.'''",
+'movepage-moved' => '\'\'\'"$1" 문서를 "$2" 문서로 이동했습니다.\'\'\'',
 'movepage-moved-redirect' => '넘겨주기 문서를 만들었습니다.',
 'movepage-moved-noredirect' => '넘겨주기 문서를 남기지 않았습니다.',
 'articleexists' => '문서가 이미 존재하거나 이름이 올바르지 않습니다.
@@ -2785,25 +2881,25 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'movetalk' => '딸린 토론도 함께 이동합니다.',
 'move-subpages' => '하위 문서도 함께 ($1개 이하) 이동합니다.',
 'move-talk-subpages' => '토론 문서의 하위 문서도 ($1개까지) 함께 이동합니다.',
-'movepage-page-exists' => '이동할 수 없습니다. ‘$1’ 문서가 이미 존재합니다.',
-'movepage-page-moved' => '‘$1’ 문서를 ‘$2’ 문서로 이동했습니다.',
-'movepage-page-unmoved' => '‘$1’ 문서를 ‘$2’ 문서로 이동할 수 없습니다.',
+'movepage-page-exists' => '이동할 수 없습니다. "$1" 문서가 이미 존재합니다.',
+'movepage-page-moved' => '"$1" 문서를 "$2" 문서로 이동했습니다.',
+'movepage-page-unmoved' => '"$1" 문서를 "$2" 문서로 이동할 수 없습니다.',
 'movepage-max-pages' => '문서를 최대 $1개 이동했습니다. 나머지 문서는 자동 이동하지 않습니다.',
 'movelogpage' => '이동 기록',
-'movelogpagetext' => 'ì\95\84ë\9e\98ë\8a\94 ì\98®ê²¨ì§\84 문서의 목록입니다.',
-'movesubpage' => '{{PLURAL:$1}}하위 문서',
+'movelogpagetext' => 'ì\95\84ë\9e\98ë\8a\94 ì\9d´ë\8f\99í\95\9c 문서의 목록입니다.',
+'movesubpage' => '{{PLURAL:$1|하위 문서}}',
 'movesubpagetext' => '이 문서에는 다음 하위 문서 $1개가 있습니다.',
 'movenosubpage' => '이 문서에는 하위 문서가 존재하지 않습니다.',
 'movereason' => '이유:',
 'revertmove' => '되돌리기',
 'delete_and_move' => '삭제하고 이동',
 'delete_and_move_text' => '== 삭제 필요 ==
-
-이동하려는 제목으로 된 ‘[[:$1]]’ 문서가 이미 존재합니다.
+이동하려는 제목으로 된 "[[:$1]]" 문서가 이미 존재합니다.
 삭제하고 이동할까요?',
 'delete_and_move_confirm' => '네. 문서를 삭제합니다',
 'delete_and_move_reason' => '"[[$1]]"에서 문서를 이동하기 위해 삭제함',
-'selfmove' => '이동하려는 제목이 원래 제목과 같습니다. 이동할 수 없습니다.',
+'selfmove' => '이동하려는 제목이 원래 제목과 같습니다.
+이동할 수 없습니다.',
 'immobile-source-namespace' => '"$1" 이름공간에 속한 문서는 이동시킬 수 없습니다.',
 'immobile-target-namespace' => '"$1" 이름공간에 속한 문서는 이동시킬 수 없습니다.',
 'immobile-target-namespace-iw' => '인터위키 링크를 넘어 문서를 이동할 수 없습니다.',
@@ -2813,13 +2909,13 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'nonfile-cannot-move-to-file' => '파일이 아닌 문서를 파일 이름공간으로 옮길 수 없습니다.',
 'imagetypemismatch' => '새 파일의 확장자가 원래의 확장자와 일치하지 않습니다.',
 'imageinvalidfilename' => '새 파일 이름이 잘못되었습니다.',
-'fix-double-redirects' => '기존 이름을 가리키는 넘겨주기를 갱신',
+'fix-double-redirects' => '기존 이름을 가리키는 넘겨주기를 새로 고침',
 'move-leave-redirect' => '이동 후 넘겨주기를 남기기',
 'protectedpagemovewarning' => "'''경고:''' 이 문서는 관리자만이 이동할 수 있도록 잠겨 있습니다.
-최근의 기록을 참용으로 제공합니다:",
+최근의 기록을 참용으로 제공합니다:",
 'semiprotectedpagemovewarning' => "'''알림:''' 이 문서는 등록된 사용자만이 이동할 수 있도록 잠겨 있습니다.
-ìµ\9cê·¼ ê¸°ë¡\9d ë\82´ì\9a©ì\9d´ ì°¸ì¡°ì\9a©ì\9c¼ë¡\9c ì \9cê³µë\90©ë\8b\88ë\8b¤:",
-'move-over-sharedrepo' => '== í\8c\8cì\9d¼ì\9d´ ì¡´ì\9e¬í\95©ë\8b\88ë\8b¤ ==
+ìµ\9cê·¼ ê¸°ë¡\9d ë\82´ì\9a©ì\9d\84 ì°¸ê³ ì\9a©ë¡\9c ì \9cê³µí\95©ë\8b\88ë\8b¤:",
+'move-over-sharedrepo' => '== í\8c\8cì\9d¼ì\9d´ ì¡´ì\9e¬í\95¨ ==
 [[:$1]] 파일이 공용 저장소에 있습니다. 이 이름으로 파일을 옮기면 공용의 파일을 덮어쓰게 될 것입니다.',
 'file-exists-sharedrepo' => '당신이 선택한 파일 이름은 공용 저장소에서 사용 중입니다.
 다른 이름을 선택해주세요.',
@@ -2830,7 +2926,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 
 문서를 내보내려면, 내보내려는 문서 제목을 한 줄에 하나씩 입력해주세요. 그리고 문서의 전체 역사가 필요한지, 혹은 현재 버전만이 필요한지를 선택해 주세요.
 
-특정 문서를 내보내려면, 예를 들어 ‘[[{{MediaWiki:Mainpage}}]]’ 문서를 내보내려면 [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] 링크를 사용할 수도 있습니다.',
+특정 문서를 내보내려면, 예를 들어 "[[{{MediaWiki:Mainpage}}]]" 문서를 내보내려면 [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] 링크를 사용할 수도 있습니다.',
 'exportall' => '모든 문서를 내보내기',
 'exportcuronly' => '현재 버전만 포함하고, 전체 역사는 포함하지 않음',
 'exportnohistory' => "----
@@ -2850,8 +2946,9 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'allmessagesname' => '이름',
 'allmessagesdefault' => '기본 내용',
 'allmessagescurrent' => '현재 문자열',
-'allmessagestext' => '미디어위키 이름공간에 있는 모든 시스템 메시지의 목록입니다. 미디어위키의 번역 작업에 관심이 있으면 [//www.mediawiki.org/wiki/Localisation 미디어위키 지역화]나 [//translatewiki.net translatewiki.net]에 참가해주세요.',
-'allmessagesnotsupportedDB' => "'''\$wgUseDatabaseMessages'''가 해제되어 있어서 이 문서는 쓸 수 없습니다.",
+'allmessagestext' => '미디어위키 이름공간에 있는 모든 시스템 메시지의 목록입니다.
+미디어위키의 번역 작업에 관심이 있으면 [//www.mediawiki.org/wiki/Localisation 미디어위키 지역화]나 [//translatewiki.net translatewiki.net]에 참가해주세요.',
+'allmessagesnotsupportedDB' => "'''\$wgUseDatabaseMessages'''가 비활성화되어 있어서 이 문서를 사용할 수 없습니다.",
 'allmessages-filter-legend' => '필터',
 'allmessages-filter' => '수정 상태로 거르기:',
 'allmessages-filter-unmodified' => '수정되지 않음',
@@ -2867,18 +2964,18 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'thumbnail_error' => '섬네일을 만드는 중 오류 발생: $1',
 'djvu_page_error' => 'DjVu 페이지 범위 벗어남',
 'djvu_no_xml' => 'DjVu 파일의 XML 정보를 읽을 수 없음',
-'thumbnail-temp-create' => '임시 섬네일 파일을 생성할 수 없습니다.',
+'thumbnail-temp-create' => '임시 섬네일 파일을 만들 수 없습니다.',
 'thumbnail-dest-create' => '대상 경로에 섬네일을 저장할 수 없습니다.',
 'thumbnail_invalid_params' => '섬네일 매개변수가 잘못되었습니다.',
-'thumbnail_dest_directory' => '새 목적 디렉토리를 생성할 수 없습니다.',
+'thumbnail_dest_directory' => '새 목적 디렉토리를 만들 수 없습니다.',
 'thumbnail_image-type' => '해당 파일 형식은 지원하지 않습니다',
-'thumbnail_gd-library' => 'GD 라이브러리 설정이 잘못되었습니다. $1 함수를 찾을 수 없습니다.',
+'thumbnail_gd-library' => 'GD 라이브러리 설정이 잘못되었습니다: $1 함수를 찾을 수 없습니다.',
 'thumbnail_image-missing' => '파일을 찾을 수 없습니다: $1',
 
 # Special:Import
 'import' => '문서 가져오기',
 'importinterwiki' => '다른 위키에서 문서 가져오기',
-'import-interwiki-text' => '문서를 가져올 위키를 선택하고, 문서 제목을 입력해주세요.
+'import-interwiki-text' => '문서를 가져올 위키를 선택하고 문서 제목을 입력해주세요.
 편집 날짜와 편집자의 이름이 보존될 것입니다.
 모든 가져오기는 [[Special:Log/import|가져오기 기록]]에 기록될 것입니다.',
 'import-interwiki-source' => '원본 위키/문서:',
@@ -2888,12 +2985,12 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'import-interwiki-namespace' => '새 이름공간:',
 'import-upload-filename' => '파일 이름:',
 'import-comment' => '이유:',
-'importtext' => 'ì\9b\90본 ì\9c\84í\82¤ì\97\90ì\84\9c [[Special:Export|ë\82´ë³´ë\82´ê¸°]] ê¸°ë\8a¥ì\9d\84 ì\82¬ì\9a©í\95´ í\8c\8cì\9d¼ì\9d\84 ë\82´ë ¤ë°\9bì\9c¼ì\8b­ì\8b\9cì\98¤.
+'importtext' => 'ì\9b\90본 ì\9c\84í\82¤ì\97\90ì\84\9c [[Special:Export|ë\82´ë³´ë\82´ê¸°]] ê¸°ë\8a¥ì\9d\84 ì\82¬ì\9a©í\95´ í\8c\8cì\9d¼ì\9d\84 ë\82´ë ¤ë°\9bì\9c¼ì\84¸ì\9a\94.
 그리고 당신의 컴퓨터에 저장해 둔 후 여기에 올려주세요.',
 'importstart' => '문서를 가져오는 중...',
 'import-revision-count' => '판 $1개',
 'importnopages' => '가져올 문서가 없습니다.',
-'imported-log-entries' => '로그 항목 $1개를 가져왔습니다.',
+'imported-log-entries' => '기록 항목 $1개를 가져왔습니다.',
 'importfailed' => '가져오기 실패: <nowiki>$1</nowiki>',
 'importunknownsource' => '알 수 없는 가져오기 자료 유형',
 'importcantopen' => '파일을 열 수 없습니다.',
@@ -2902,11 +2999,11 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'importsuccess' => '가져오기 완료!',
 'importhistoryconflict' => '문서 역사가 충돌하는 판이 있습니다. (이전에 이 문서를 가져온 적이 있을 수도 있습니다)',
 'importnosources' => '문서를 가져올 출처가 정의되지 않았고, 문서 역사 올리기가 비활성화되었습니다.',
-'importnofile' => 'ê°\80ì ¸ì\98¤ê¸°ì\9a© í\8c\8cì\9d¼ì\9d´ ì\97\85ë¡\9cë\93\9cë\90\98지 않았습니다.',
+'importnofile' => 'ê°\80ì ¸ì\98¤ê¸°ì\9a© í\8c\8cì\9d¼ì\9d´ ì\98¬ë ¤ì§\80지 않았습니다.',
 'importuploaderrorsize' => '파일 올리기를 통한 가져오기에 실패했습니다.
 파일이 허용된 크기 제한보다 큽니다.',
 'importuploaderrorpartial' => '가져오기 파일을 올리는 데 실패하였습니다.
\8c\8cì\9d¼ì\9d´ ë¶\80ë¶\84ì \81ì\9c¼ë¡\9cë§\8c ì\97\85ë¡\9cë\93\9cë\90\98ì\97\88습니다.',
\8c\8cì\9d¼ì\9d´ ë¶\80ë¶\84ì \81ì\9c¼ë¡\9cë§\8c ì\98¬ë ¤ì¡\8c습니다.',
 'importuploaderrortemp' => '가져오기 파일을 올리는 데 실패했습니다.
 임시 폴더가 존재하지 않습니다.',
 'import-parse-failure' => 'XML 문서 분석 실패',
@@ -2925,7 +3022,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 # Import log
 'importlogpage' => '가져오기 기록',
 'importlogpagetext' => '다른 위키에서 가져온 문서 기록입니다.',
-'import-logentry-upload' => ' 사용자가 파일 올리기를 통해 [[$1]] 문서를 가져왔습니다.',
+'import-logentry-upload' => '사용자가 파일 올리기를 통해 [[$1]] 문서를 가져왔습니다.',
 'import-logentry-upload-detail' => '판 $1개',
 'import-logentry-interwiki' => '$1 문서를 다른 위키에서 가져왔습니다.',
 'import-logentry-interwiki-detail' => '$2에서 판 $1개를 가져옴',
@@ -3022,7 +3119,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'simple.css' => '/* 이 CSS 설정은 모든 심플 스킨에 적용됩니다 */',
 'modern.css' => '/* 이 CSS 설정은 모든 모던 스킨에 적용됩니다 */',
 'vector.css' => '/* 이 CSS 설정은 모든 벡터 스킨에 적용됩니다 */',
-'print.css' => '/* ì\9d´ CSS ì\84¤ì \95ì\9d\80 ì\9cë ¥/ì\9d¸ì\87\84 화면에 적용됩니다 */',
+'print.css' => '/* ì\9d´ CSS ì\84¤ì \95ì\9d\80 ì\9d¸ì\87\84 ì¶\9cë ¥ 화면에 적용됩니다 */',
 'handheld.css' => '/* 이 CSS 설정은 $wgHandheldStyle에 설정한 스킨을 기반으로 한 휴대 기기에 적용됩니다 */',
 'noscript.css' => '/* 이 CSS 설정은 자바스크립트를 비활성화한 사용자에 적용됩니다 */',
 'group-autoconfirmed.css' => '/* 이 CSS 설정은 자동 인증된 사용자에만 적용됩니다 */',
@@ -3778,7 +3875,7 @@ $5
 
 미디어위키가 유용하게 사용될 수 있기를 바라지만 '''상용으로 사용'''되거나 '''특정 목적에 맞을 것'''이라는 것을 '''보증하지 않습니다'''. 자세한 내용은 GNU 일반 공중 사용 허가서 전문을 참고하십시오.
 
-당신은 이 프로그램을 통해 [{{SERVER}}{{SCRIPTPATH}}/COPYING GNU 일반 공중 사용 허가서 전문]을 받았습니다; 그렇지 않다면, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA로 편지를 보내주시거나 [//www.gnu.org/licenses/old-licenses/gpl-2.0.html 온라인으로 읽어보시기] 바랍니다.",
+당신은 이 프로그램을 통해 [{{SERVER}}{{SCRIPTPATH}}/COPYING GNU 일반 공중 사용 허가서 전문]을 받았습니다. 그렇지 않다면, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA로 편지를 보내주시거나 [//www.gnu.org/licenses/old-licenses/gpl-2.0.html 온라인으로 읽어보시기] 바랍니다.",
 'version-software' => '설치된 프로그램',
 'version-software-product' => '제품',
 'version-software-version' => '버전',
@@ -3865,7 +3962,8 @@ $5
 
 # Database error messages
 'dberr-header' => '이 위키에 문제가 있습니다.',
-'dberr-problems' => '죄송합니다. 이 사이트는 기술적인 문제가 있습니다.',
+'dberr-problems' => '죄송합니다!
+이 사이트는 기술적인 문제가 있습니다.',
 'dberr-again' => '잠시 후에 다시 시도해주세요.',
 'dberr-info' => '(데이터베이스에 접속할 수 없습니다: $1)',
 'dberr-usegoogle' => '그 동안 구글을 통해 검색할 수도 있습니다.',
@@ -3947,6 +4045,8 @@ $5
 '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' => '이런 형식의 파일은 올릴 수 없습니다.',
@@ -3985,4 +4085,6 @@ $5
 'duration-centuries' => '$1{{PLURAL:$1|세기}}',
 'duration-millennia' => '$1{{PLURAL:$1|천년}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => '서버 $1의 잠금을 걸지 못했습니다.',
 );
index 1fd6c5c..f484421 100644 (file)
@@ -47,7 +47,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Джангы тюрлениулени списогунда тинтилген тюрлениулени кёргюзме',
 'tog-newpageshidepatrolled' => 'Джангы бетлени списогунда тинтилген бетлени кёргюзме',
 'tog-extendwatchlist' => 'Кёзде тургъан тизмени, къуру ахыр тюл, бютеу тюрлениулени кёрюр ючюн кенгерт',
-'tog-usenewrc' => 'Ð\94жангÑ\8b Ñ\82Ñ\8eÑ\80лениÑ\83лени Ð¸Ð³Ð¸Ð»ÐµÐ½Ð½Ð³ÐµÐ½ Ñ\81пиÑ\81огÑ\83н Ñ\85айÑ\8bÑ\80ландÑ\8bÑ\80 (JavaScript керекди)',
+'tog-usenewrc' => 'Ð\90Ñ\85Ñ\8bÑ\80 Ñ\82Ñ\8eÑ\80лениÑ\83леде Ñ\8dм ÐºÑ\91здеги Ñ\82измеде Ð±ÐµÑ\82лени ÐºÑ\8aаÑ\83Ñ\83м Ñ\82Ñ\8eÑ\80лениÑ\83леÑ\80и (JavaScript керекди)',
 'tog-numberheadings' => 'Башлыкъланы (бёлюмлени атлары) автомат номерленсинле',
 'tog-showtoolbar' => 'Тюрлендирген сагъатда, башындагъы инструмент панелни кёргюз (JavaScript)',
 'tog-editondblclick' => 'Эки басыу бла тюрлендириу бет ачылсын (JavaScript)',
@@ -1481,6 +1481,7 @@ URL-адрес тюз болгъанын осмакълагъыз эмда дж
 
 # Special:UploadStash
 'uploadstash' => 'Джашыртын джюклеу',
+'uploadstash-clear' => 'Джашырылгъан файлланы ариула',
 'uploadstash-nofiles' => 'Сизни джашырылгъан файлларыгъыз джокъду',
 'uploadstash-refresh' => 'Файлланы тизмесин джангырт',
 
@@ -1566,6 +1567,7 @@ URL-ни тюз , сайтны ачыкъ болгъанына ишексиз б
 [[Special:WhatLinksHere/$2|Толу спиосок]] барды.',
 'nolinkstoimage' => 'Бу файлгъа джиберген бет джокъду.',
 'morelinkstoimage' => 'Бу файлгъа [[Special:WhatLinksHere/$1|къалгъан джибериулеге]] къара.',
+'linkstoimage-redirect' => '$1 (файл редирект) $2',
 'duplicatesoffile' => '{{PLURAL:$1|файл|$1 файл}}, бу файлны дубликатыды ([[Special:FileDuplicateSearch/$2|анданда кёб ангылатыу]]):',
 'sharedupload' => 'Бу файл $1денди эм башха проектледе хайырландыргъа боллукъду.',
 'sharedupload-desc-there' => 'Бу файл $1 базадан башха проектледе хайырландырыргъа боллукъду.
@@ -1776,6 +1778,7 @@ URL-ни тюз , сайтны ачыкъ болгъанына ишексиз б
 'allpagesprefix' => 'Былайда джазгъан харифледен башланнган бетлени список эт:',
 'allpagesbadtitle' => 'Кирилген бет аты тиллени арасы байлм неда викилени арасында байлам болгъаны себебли джараусузду. Башлыкълада хайырланыуу джасакъ болгъан бир неда андан аслам символ тутаргъа болур.',
 'allpages-bad-ns' => '{{SITENAME}} сайтда «$1» ат алам джокъду.',
+'allpages-hide-redirects' => 'Башха бетлеге джиберген бетлени (редиректлени) джашыр',
 
 # Special:Categories
 'categories' => 'Категорияла',
index 0f2bd3f..41f89bf 100644 (file)
@@ -226,17 +226,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Avschnedde met Räächs-Klicke op de Üvverschrefte ändere (bruch Java_Skripp)',
 'tog-showtoc' => 'Zeich en Enhaldsüvversich bei Sigge met mieh wie drei Üvverschrefte dren',
 'tog-rememberpassword' => 'Op Duur enlogge op dämm Kompjuter un för dää Brauser (hält {{PLURAL:$1|för eine Daach|bes op $1 Dääsch|bloß för hück}})',
-'tog-watchcreations' => 'Dun de Sigge, die ich neu aanläje, för ming Oppassliss vürschlage',
-'tog-watchdefault' => 'Dun de Sigge för ming Oppassliss vürschlage, die ich aanpacken un änder',
-'tog-watchmoves' => 'Dun ming selfs ömjenante Sigge automatisch för ming Oppassliss vürschlage',
-'tog-watchdeletion' => 'Dun Sigge, die ich fottjeschmesse han, för ming Oppassliss vürschlage',
+'tog-watchcreations' => 'Donn Sigge beim neu Aanlääje automattesch för ming Oppaßlėß vörschlonn',
+'tog-watchdefault' => 'Donn Sigge beim Ändere automattesch för ming Oppaßlėß vörschlonn',
+'tog-watchmoves' => 'Donn Sigge beim Ömnänne automattesch för ming Oppaßlėß vörschlonn',
+'tog-watchdeletion' => 'Donn Sigge beim Fottschmiiße automattesch för ming Oppaßlėß vörschlonn',
 'tog-minordefault' => 'Dun all ming Änderunge jedes Mol als klein Mini-Änderunge vürschlage',
 'tog-previewontop' => 'Zeich de Vör-Aansich üvver däm Feld för dä Tex enzejevve aan.',
 'tog-previewonfirst' => 'Zeich de Vör-Aansich tirek för et eetste Mol beim Bearbeide aan',
 'tog-nocache' => 'Dun et Sigge Zweschespeichere en Dingem Brauser avschalte',
-'tog-enotifwatchlistpages' => 'Scheck en E-Mail, wann en Sigg us ming Oppassliss jeändert wood',
+'tog-enotifwatchlistpages' => 'Scheck mer en <i lang="en">e-mail</i>, wann en Sigg us minge Oppaßlėß verändert woode es',
 'tog-enotifusertalkpages' => 'Scheck mer en E-Mail, wann ming Klaaf Sigg jeändert weed',
-'tog-enotifminoredits' => 'Scheck mer och en E-Mail för de klein Mini-Änderunge',
+'tog-enotifminoredits' => 'Scheck mer och en <i lang="en">e-mail</i> för de klein Mini-Änderonge',
 'tog-enotifrevealaddr' => 'Zeich dä Andere ming E-Mail Adress aan, en de Benohrichtijunge per E-Mail',
 'tog-shownumberswatching' => 'Zeich de Aanzahl Metmaacher, die op die Sigg am oppasse sin',
 'tog-oldsig' => 'Esu&nbsp;süht&nbsp;Ding „Ongerschreff“&nbsp;us:',
@@ -341,7 +341,7 @@ $messages = array(
 'noindex-category' => 'Sigge, di de Söhkmaschine nit opnämme sulle',
 'broken-file-category' => 'Sigge met kappodde Lengks op Datteije',
 
-'about' => 'Ã\9cvver',
+'about' => 'Ã\96vver',
 'article' => 'Atikkel',
 'newwindow' => '(Mäht e neu Finster op, wann Dinge Brauser dat kann)',
 'cancel' => 'Stopp! Avbreche!',
@@ -568,6 +568,8 @@ un doht em och de URL vun dä Sigg heh sage.',
 'badarticleerror' => 'Dat jeiht met heh dä Sigg nit ze maache.',
 'cannotdelete' => 'De Sigg oder de Datei „$1“ fottzeschmieße es nit müjjelich. Maach sin, dat ene andere Metmaacher flöcker wor, hät et vürher jedon, un jetz es se ald fott.',
 'cannotdelete-title' => 'Mer künne di Sigg „$1“ nit fott schmiiße.',
+'delete-hook-aborted' => 'Et Fottschmiiße wood affjebroche övver ene sujenannte „Hoke“ en de ẞoffwäer.
+Ene Jrond weße mer nit.',
 'badtitle' => 'Verkihrte Üvverschreff',
 'badtitletext' => 'De Üvverschreff es esu nit en Odenung. Et muss jet dren stonn.
 Et künnt sin, dat ein vun de speziell Zeiche dren steiht,
@@ -619,6 +621,8 @@ $2',
 Dä Wiki_Köbes dovun hät beim Deeschmaache als Jrond aanjejovve: „$3“',
 'invalidtitle-knownnamespace' => '„$3“ es ene onjöltijje Tittel för em Appachtemang „$2“',
 'invalidtitle-unknownnamespace' => '„$2“ es ene onjöltijje Tittel för e Appachtemang met dä verkehte Nommer $1.',
+'exception-nologin' => 'Nit enjelogg',
+'exception-nologin-text' => 'Heh di Sigg udder heh dä Opdraach jeiht blooß, wann De heh em Wiki enjelogg bes.',
 
 # Virus scanner
 'virus-badscanner' => "Fääler en de Enstellunge: Dat Projramm ''$1'' fö noh Kompjuterwiere ze söke, dat kenne mer nit.",
@@ -646,8 +650,8 @@ Denk dran, Do künnts Der [[Special:Preferences|Ding Enstellunge heh för {{GRAM
 'loginprompt' => 'Öm heh enlogge ze künne, muss De de <i lang="en">Cookies</i> en Dingem Brauser enjeschalt han.',
 'userlogin' => 'Enlogge odder Metmaacher wääde',
 'userloginnocreate' => 'Enlogge',
-'logout' => 'Uslogge',
-'userlogout' => 'Uslogge',
+'logout' => 'Ußlogge',
+'userlogout' => 'Ußlogge',
 'notloggedin' => 'Nit enjelogg',
 'nologin' => "Wann De Dich noch nit aanjemeldt häs, dann dun Dich '''$1'''.",
 'nologinlink' => 'neu aanmelde',
@@ -2334,7 +2338,7 @@ Mieh övver de einzel Rääschte fenkt Er op de [[{{MediaWiki:Listgrouprights-he
 Adress en Dinge [[Special:Preferences|ming Enstellunge]] stonn han, öm en E-Mail aan andere Metmaacher ze
 schecke.',
 'emailuser' => 'E-mail aan dä Metmaacher',
-'emailpage' => 'E-mail aan ene Metmaacher',
+'emailpage' => 'Verscheck <i lang="en">e-mail</i> aan ene Metmaacher',
 'emailpagetext' => 'Wann heh dä Metmaacher en Adräß för sing <i lang="en">e-mail</i> aanjejovve hätt en singe Enstellunge,
 un die deit et och, dann kanns De met däm Fomular hee unge en einzel <i lang="en">e-mail</i> aan dä Metmaacher schecke.
 
@@ -2362,7 +2366,7 @@ Alles klor?',
 'emailsend' => 'Avschecke',
 'emailccme' => 'Scheck mer en Kopie vun dä E-Mail.',
 'emailccsubject' => 'En Kopie vun Dinger E-Mail aan $1: $2',
-'emailsent' => 'E-Mail es ungerwähs',
+'emailsent' => 'De <i lang="en">e-mail</i> es ongerwähs',
 'emailsenttext' => 'Ding E-Mail es jetz lossjescheck woode.',
 'emailuserfooter' => 'Hee di e-mail hät dä „$1“ an dä „$2“ jescheck, un doför {{GRAMMAR:en dative|{{SITENAME}}}} dat „{{int:emailuser}}“ jebruch.',
 
@@ -3053,7 +3057,7 @@ Bes esu joot, un versök et noch ens.',
 'tooltip-pt-mycontris' => 'en Liss met Dinge eije Beidräch',
 'tooltip-pt-login' => 'Do moß Desch nit Enlogge, kannz_E ävver jähn maache!',
 'tooltip-pt-anonlogin' => 'Wöhr nett wann De enlogge dääts, moß ävver nit.',
-'tooltip-pt-logout' => 'Uslogge',
+'tooltip-pt-logout' => 'Ußlogge',
 'tooltip-ca-talk' => 'Dun die Sigg met däm Klaaf övver heh de Sigg aanzeije',
 'tooltip-ca-edit' => 'De kanns die Sigg heh ändere — für em Avspeichere, donn eetß ens enen Bleck op de Vör-Aansich',
 'tooltip-ca-addsection' => 'Donn heh enne neue Afschnett opmaache.',
@@ -3171,6 +3175,7 @@ Esu kam_mer noch en Aanmerkung en „{{int:summary}}“ maache.',
 'spambot_username' => 'SPAM fottschmieße',
 'spam_reverting' => 'De letzte Version ohne de Links op „$1“ widder zerröckjehollt.',
 'spam_blanking' => 'All die Versione hatte Links op „$1“, die sin jetz erus jemaht.',
+'spam_deleting' => 'All di Versione met Lenks op „$1“ wääde fott jeschmeße',
 
 # Info page
 'pageinfo-title' => 'Övver di Sigg: „$1“',
@@ -3436,7 +3441,7 @@ Donoh kumme, en däsellve Reih, Links op Sigge wo die Datei trotz dämm jenehm e
 'exif-objectcycle' => 'De Daachszick, för wann dat Denge zom Verdeile jedaach es',
 'exif-contact' => 'Kuntak',
 'exif-writer' => 'Schriiver',
-'exif-languagecode' => 'Shprooch',
+'exif-languagecode' => 'Schprooch',
 'exif-iimversion' => 'Dem <i lang="en">IIM</i> sing Version',
 'exif-iimcategory' => 'Saachjrupp udder Zoot',
 'exif-iimsupplementalcategory' => 'Extra Saachjroppe udder Zoote',
@@ -3490,6 +3495,7 @@ Donoh kumme, en däsellve Reih, Links op Sigge wo die Datei trotz dämm jenehm e
 'exif-copyrighted-true' => 'Häd_en Urhävverrääsch',
 'exif-copyrighted-false' => 'Es en de Allmende (jemeinfrei, <i lang="en">public domain</i>)',
 
+'exif-photometricinterpretation-2' => 'RJB',
 'exif-photometricinterpretation-6' => '<i lang="en">YCbCr</i>',
 
 'exif-unknowndate' => 'Dattum onbikannt',
@@ -3513,6 +3519,7 @@ Donoh kumme, en däsellve Reih, Links op Sigge wo die Datei trotz dämm jenehm e
 'exif-colorspace-65535' => 'De Färve sin nit kallibreert',
 
 'exif-componentsconfiguration-0' => 'Jidd_et nit',
+'exif-componentsconfiguration-5' => 'J',
 
 'exif-exposureprogram-0' => 'Nit faßjelaat',
 'exif-exposureprogram-1' => 'Vun Hand',
@@ -3851,6 +3858,17 @@ Wells Do jetz met en neu Version die Sigg widder neu aanläje?',
 'size-megabytes' => '$1 MB',
 'size-gigabytes' => '$1 GB',
 
+# Bitrate units
+'bitrate-bits' => '$1&nbps;bps',
+'bitrate-kilobits' => '$1&nbps;Kbps',
+'bitrate-megabits' => '$1&nbps;Mbps',
+'bitrate-gigabits' => '$1&nbps;Gbps',
+'bitrate-terabits' => '$1&nbps;Tbps',
+'bitrate-petabits' => '$1&nbps;Pbps',
+'bitrate-exabits' => '$1&nbps;Ebps',
+'bitrate-zetabits' => '$1&nbps;Zbps',
+'bitrate-yottabits' => '$1&nbps;Ybps',
+
 # Live preview
 'livepreview-loading' => 'Ben am Lade …',
 'livepreview-ready' => 'Fädesch jelaade.',
@@ -3911,7 +3929,7 @@ De könnts Ding Oppassliss ävver och [[Special:EditWatchlist|övver e Fomulaa m
 
 # Signatures
 'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|Klaafe]])',
-'timezone-utc' => 'UTC',
+'timezone-utc' => '<i lang="en">UTC</i>',
 
 # Core parser functions
 'unknown_extension_tag' => '„<code>$1</code>“ es en zosäzlejje Kennzeichnung, die kenne mer nit.',
@@ -4114,6 +4132,8 @@ Wat De doh enjiß, kütt met Dingem Metmaachername un Dingem Brauser op die Sigg
 'api-error-empty-file' => 'En dä huhjelaade Dattei wohr jaa_nix dren.',
 'api-error-emptypage' => 'Neu läddijje Sigge aanzelääje es verbodde.',
 'api-error-fetchfileerror' => 'Fähler: Beim eronger Laade hät jät nit jeflupp.',
+'api-error-fileexists-forbidden' => 'En Dattei mem Name „$1“ es ald doh un mer künne se nit övverschriive.',
+'api-error-fileexists-shared-forbidden' => 'En Dattei mem Name „$1“ es ald en ene jemeinsamme Sammlong, un mer künne se nit övverschriive.',
 'api-error-file-too-large' => 'De huhjelaade Dattei wohr ze jruß.',
 'api-error-filename-tooshort' => 'Der Name för di Dattei es ze koot.',
 'api-error-filetype-banned' => 'Di Zoot Dattei es nit zohjelohße.',
index f3cd5d0..1c55804 100644 (file)
@@ -117,7 +117,7 @@ $messages = array(
 'tog-enotifminoredits' => 'Ji bo guhertinên biçûk jî E-nameyekê ji min re bişîne',
 'tog-enotifrevealaddr' => 'Navnîşana e-nameya min di agahdariyên e-nameyan de nîşan bide',
 'tog-shownumberswatching' => 'Nîşan bide, çiqas bikarhêner dişopînin',
-'tog-oldsig' => 'Pêşdîtina îmzeya heyî',
+'tog-oldsig' => 'Pêşdîtina îmzeya heye:',
 'tog-fancysig' => 'Di îmzeyê de girêdana otomatîk a bikarhêner betal bike',
 'tog-externaleditor' => 'Edîtorekî derve bike "standard" (ji yên bi ezmûn re, tercîhên taybet di komputerê de hewce ne)',
 'tog-externaldiff' => 'Birnemijekî derve biguherîne "standard" (ji yên bi ezmûn re, tercîhên taybet di komputerê de hewce ne)',
@@ -173,7 +173,7 @@ $messages = array(
 'february-gen' => 'Reşemî',
 'march-gen' => 'Adar',
 'april-gen' => 'Avrêl',
-'may-gen' => 'Gulan',
+'may-gen' => 'gulan',
 'june-gen' => 'pûşper',
 'july-gen' => 'Tîrmeh',
 'august-gen' => 'Gelawêj',
@@ -185,7 +185,7 @@ $messages = array(
 'feb' => 'reş',
 'mar' => 'adr',
 'apr' => 'avr',
-'may' => 'gul',
+'may' => 'gulan',
 'jun' => 'pûş',
 'jul' => 'tîr',
 'aug' => 'teb',
@@ -427,13 +427,13 @@ Pirs: $2',
 'protectedpagetext' => 'Ev rûpel ji bo nenivîsandinê hatiye parastin.',
 'viewsourcetext' => 'Tu dikarî li çavkaniya vê rûpelê binêrî û wê kopî bikî:',
 'protectedinterface' => "Di vê rûpelê da nivîsandin ji bo interface'î zimanan yê vê software'ê ye. Ew tê parstin ji bo vandalîzm li vê derê çênebe.",
-'editinginterface' => "'''Hişyarî:''' Tu rûpeleke ku di Wîkîpediya de ji bo sîstemê girîng e diguherînî. Guherandinên di vê rûpelê de wê ji aliyê hemû bikarhêneran ve werin dîtin. Ji bo wergerê ji kerema xwe di [//translatewiki.net/wiki/Main_Page?setlang=ku translatewiki.net] de bixebite, projeya MediaWiki.",
+'editinginterface' => "'''Hişyarî:''' Tu rûpeleke ku di Wîkîpediya de ji bo sîstemê girîng e diguherînî. Guherandinên di vê rûpelê de wê ji aliyê hemû bikarhêneran ve werin dîtin. Ji bo wergerê ji kerema xwe di [//translatewiki.net/wiki/Main_Page?setlang=ku-latn translatewiki.net] de bixebite, projeya MediaWiki.",
 'sqlhidden' => '(Jêpirskirina SQL hatiye veşartin)',
 'cascadeprotected' => 'Ev rûpel hatiye parastin ji ber guherandinê, ji ber ku ev rûpela di {{PLURAL:$1|vê rûpelê|van rûpelan da}} tê bikaranîn:
 $2',
 'namespaceprotected' => "Destûra te ji bo guhertina vê rûpelê '''$1''' di valahiya nav de nîne.",
 'ns-specialprotected' => 'Rûpelên taybet {{ns:special}} nikarin werin guherandin.',
-'titleprotected' => "Rûpelek bi vî navî nikare were çêkirin. Ev astengkirin ji [[User:$1|$1]] bi sedema ''$2'' hate çêkirin.",
+'titleprotected' => "Rûpelek bi vî navî nikare bê çêkirin. Ev astengkirin ji [[User:$1|$1]] bi sedema ''$2'' hatiye çêkirin.",
 
 # Virus scanner
 'virus-unknownscanner' => 'Antîvîrusa nenas:',
@@ -529,7 +529,7 @@ Ji bo xelaskirina tomarkirinê, divê tu niha şîfreyeke nû binivîsî:',
 'resetpass_success' => 'Şîfreya te hate guherandin! Niha tu tê qeydkirin...',
 'resetpass_forbidden' => 'Şîfre nikarin werin guhertin',
 'resetpass-submit-loggedin' => 'Şîfre biguherîne',
-'resetpass-submit-cancel' => 'Betalkirin',
+'resetpass-submit-cancel' => 'Betal bike',
 'resetpass-temp-password' => 'Şîfreya niha:',
 
 # Special:PasswordReset
@@ -577,9 +577,9 @@ Ji bo xelaskirina tomarkirinê, divê tu niha şîfreyeke nû binivîsî:',
 'watchthis' => 'Vê gotarê bişopîne',
 'savearticle' => 'Rûpelê tomar bike',
 'preview' => 'Pêşdîtin',
-'showpreview' => 'Pêşdîtin',
+'showpreview' => 'Pêşdîtinê nîşan bide',
 'showlivepreview' => 'Pêşdîtina zindî',
-'showdiff' => 'Guherandinê nîşan bide',
+'showdiff' => 'Guherandinan nîşan bide',
 'anoneditwarning' => "'''Hişyarî:''' Tu netêketî yî! Navnîşana IP'ya te wê di dîroka guherandina vê rûpelê de bê tomarkirin.",
 'anonpreviewwarning' => "''Tu ne têketî yî. Tomarkirin wê navnîşana IP'ya te di dîroka guhertinan de nîşan bide.''",
 'missingsummary' => "<span style=\"color:#990000;\">'''Zanibe:'''</span> Te nivîsekî kurt ji bo guherandinê ra nenivîsand. Eger tu niha carekî din li Tomar xê, guherandinê te vê nivîsekî kurt yê were tomarkirin.",
@@ -630,8 +630,8 @@ Zanibe ku tu nikarî e-nameya bişînî heta tu di [[Special:Preferences|tercih
 'newarticletext' => "Ev rûpel hîn tune. Eger tu bixwazî vê rûpelê çêkî, dest bi nivîsandinê bike û piştre qeyd bike. '''Wêrek be''', biceribîne!<br />
 Ji bo alîkariyê binêre: [[{{MediaWiki:Helppage}}|Alîkarî]].<br />
 Heke tu bi şaşîtî hatî, bizîvire rûpela berê.",
-'anontalkpagetext' => "----''Ev rûpela gotûbêjê ye ji bo bikarhênerên nediyarkirî ku hîn hesabekî xwe çênekirine an jî bikarnaînin. Ji ber vê yekê divê em wan bi navnîşana IP ya hejmarî nîşan bikin. Navnîşaneke IP dikare ji aliyê gelek kesan ve were bikaranîn. Heger tu bikarhênerekî nediyarkirî bî û bawerdikî ku nirxandinên bê peywend di der barê te de hatine kirin ji kerema xwe re [[Special:UserLogin|hesabekî xwe veke an jî têkeve]] da ku tu xwe ji tevlîheviyên bi bikarhênerên din re biparêzî.''",
-'noarticletext' => 'Ev rûpel niha vala ye, tu dikarî [[Special:Search/{{PAGENAME}}|Di nav gotarên din de li "{{PAGENAME}}" bigere]] an [{{fullurl:{{FULLPAGENAME}}|action=edit}} vê rûpelê biguherînî].',
+'anontalkpagetext' => "----''Ev rûpela gotûbêjê ye ji bo bikarhênerên nediyarkirî ku hîn hesabekî xwe çênekirine an jî bikarnaînin. Ji ber vê yekê divê em wan bi navnîşana IP ya hejmarî nîşan bikin. Navnîşaneke IP dikare ji aliyê gelek kesan ve were bikaranîn. Heger tu bikarhênerekî nediyarkirî bî û bawerdikî ku nirxandinên bê peywend di der barê te de hatine kirin ji kerema xwe re [[Special:UserLogin/signup|hesabekî xwe veke an jî têkeve]] da ku tu xwe ji tevlîheviyên bi bikarhênerên din re biparêzî.''",
+'noarticletext' => 'Ev rûpel niha vala ye, tu dikarî [[Special:Search/{{PAGENAME}}|Di nav gotarên din de li "{{PAGENAME}}" bigerî]] an jî [{{fullurl:{{FULLPAGENAME}}|action=edit}} vê rûpelê biguherînî].',
 'noarticletext-nopermission' => 'Ev rûpel niha vala ye. 
 Tu dikarî [[Special:Search/{{PAGENAME}}|Di nav gotarên din de li "{{PAGENAME}}" bigere]] 
 an <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} vê rûpelê biguherînî]</span>.',
@@ -639,7 +639,11 @@ an <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}
 'userpage-userdoesnotexist-view' => 'Hesabê bikarhêner  "$1"  nehatiye qeyd kirin.',
 'blocked-notice-logextract' => 'Ev bikarhêner hatiye astengkirin.
 Astengkirina dawî bi referansa li jêr hatiye piştrastkirin:',
-'clearyourcache' => "'''Zanibe:''' Piştî tomarkirinê, tu gireke cache'a browser'î xwe dîsa wînê ji bo dîtina guherandinan. '''Mozilla / Firefor /Safari:''' Kepsa ''Shift'' bigre û li ''Reload'' xe, ya ''Ctrl-Shift-R'' bikepsîne (''Cmd-Shift-R'' li cem Apple Mac); '''IE:''' Kepsa ''Ctrl'' bigre û li ''Reload'' xe, ya li ''Ctrl-F5''; '''Konqueror:''' bes li ''Reload'' xe ya li kepsa ''F5'' xe; bikarhênerên '''Opera''' girekin belkî cache'a xwe tevda di bin ''Tools → Preferences'' da valabikin.",
+'clearyourcache' => "'''Zanibe:''' Piştî tomarkirinê, tu gireke cache'a browser'î xwe dîsa wînê ji bo dîtina guherandinan.
+* '''Firefor / Safari: ''' Kepsa ''Shift'' bigre û li ''Reload'' xe, ya ''Ctrl-Shift-R'' bikepsîne (''Cmd-Shift-R'' li cem Apple Mac)
+* '''IE:''' Kepsa ''Ctrl'' bigre û li ''Reload'' xe, ya li ''Ctrl-F5''
+* '''Konqueror:''' Bes li ''Reload'' xe ya li kepsa ''F5'' xe
+* '''Opera:''' Girekin belkî cache'a xwe tevda di bin ''Tools → Preferences'' da valabikin",
 'usercssyoucanpreview' => "'''Tîp:''' 'Pêşdîtin' bikarwîne ji bo tu bibînê çawa CSS'ê te yê nuh e berî tomarkirinê.",
 'userjsyoucanpreview' => "'''Tîp:''' 'Pêşdîtin' bikarwîne ji bo tu bibînê çawa JS'ê te yê nuh e berî tomarkirinê.",
 'usercsspreview' => "'''Zanibe ku tu bes pêşdîtina CSS dibînî.'''
@@ -672,8 +676,8 @@ Tu soz didî ku te ev bi xwe nivîsand an jî ji çavkaniyekê azad an geliyane
 'protectedpagewarning' => "'''Hişyarî:  Ev rûpel tê parastin. Bi tenê bikarhênerên ku xwediyên mafên \"koordînatoriyê\" ne, dikarin vê rûpelê biguherînin.'''",
 'semiprotectedpagewarning' => "'''Hişyarî:''' Ev rûpel tê parastin, lewma bes bikarhênerên tomarkirî dikarin vê biguherînin.
 Guhertina herî dawî bi referansa li jêr hatiye piştrastkirin:",
-'templatesused' => 'Şablon di van rûpelan de tê bikaranîn',
-'templatesusedpreview' => 'Şablonên ku di vê pêşdîtinê de tên bikaranîn:',
+'templatesused' => '{{PLURAL:$1|Şablona|Şablonên}} ku li ser vê rûpelê {{PLURAL:$1|tê|tên}} bikaranîn:',
+'templatesusedpreview' => '{{PLURAL:$1|Şablona|Şablonên}} di vê pêşdîtinê de {{PLURAL:$1|tê|tên}} bikaranîn:',
 'templatesusedsection' => 'Şablonên ku di vê parçeyê de tên bikaranîn:',
 'template-protected' => '(tê parastin)',
 'template-semiprotected' => '(nîv-parastî)',
@@ -786,7 +790,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'compareselectedversions' => 'Guhertoyan bide ber hev',
 'showhideselectedversions' => 'Revîzyonên bijartî nîşan bide/veşêre',
 'editundo' => 'betal bike',
-'diff-multi' => '({{PLURAL:$1|Guhertoyeke di navbera herduyan de|$1 guhertoyên di navbera herduyan de}} tê(n) dîtin.)',
+'diff-multi' => '({{PLURAL:$1|Guhertoyeke|Guhertoyên {{PLURAL:$2|bikarhêner|bikarhêneran}} di navbera herduyan de}} {{PLURAL:$1|nayê|nayên}} dîtin.)',
 
 # Search results
 'searchresults' => 'Encamên lêgerînê',
@@ -836,7 +840,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'powersearch' => 'Lê bigere',
 'powersearch-legend' => 'Lê bigere',
 'powersearch-ns' => 'Di valahiya navan de lêbigere:',
-'powersearch-redir' => "Lîsteya redirect'an",
+'powersearch-redir' => 'Lîsteya beralîkirinan',
 'powersearch-field' => 'Bigere li',
 'powersearch-togglelabel' => 'Kontrol bike:',
 'powersearch-toggleall' => 'Hemû',
@@ -1049,7 +1053,7 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'recentchangeslinked-page' => 'Navê rûpelê',
 
 # Upload
-'upload' => 'Wêneyekî barbike',
+'upload' => 'Wêneyekî bar bike',
 'uploadbtn' => 'Wêneyekî bar bike',
 'reuploaddesc' => 'Barkirinê biskîne û dîsa here rûpela barkirinê.',
 'uploadnologin' => 'Xwe tomar nekir',
@@ -1068,7 +1072,7 @@ anjî ji bo file'ên dengî '''<nowiki>[[</nowiki>{{ns:media}}:File.ogg<nowiki>]
 'uploadlog' => 'Têketina barkirinê',
 'uploadlogpage' => 'Têketina barkirinê',
 'filename' => 'Navê pelê',
-'filedesc' => 'Kurte',
+'filedesc' => 'Danasîn',
 'fileuploadsummary' => 'Kurte:',
 'filereuploadsummary' => 'Guhertinên pelê:',
 'filestatus' => 'Rewşa telîfê:',
@@ -1126,8 +1130,8 @@ Xêra xwe navekî din bibîne.",
 'upload-unknown-size' => 'Mezinahiya nayê zanîn',
 
 'license' => 'Lîsans:',
-'license-header' => 'Lîsens:',
-'nolicense' => 'ya hilbijartî nîne',
+'license-header' => 'Lîsans',
+'nolicense' => 'Ya hilbijartî nîne',
 'license-nopreview' => 'Pêşdîtin ne gengaz e.',
 
 # Special:ListFiles
@@ -1154,7 +1158,7 @@ Xêra xwe navekî din bibîne.",
 'filehist-user' => 'Bikarhêner',
 'filehist-dimensions' => 'Mezinahî',
 'filehist-filesize' => 'Mezinahiya pelê',
-'filehist-comment' => 'Nivîs',
+'filehist-comment' => 'Şîrove',
 'filehist-missing' => 'Pel nîne',
 'imagelinks' => 'Girêdanên vî wêneyî',
 'linkstoimage' => 'Di van rûpelan de lînkek ji vî wêneyî re heye:',
@@ -1224,7 +1228,7 @@ Agahdariya li ser [$2 rûpela danasîna pelê] li jêr tê nîşandan.',
 'statistics-users-active' => 'Bikarhênerên çalak',
 'statistics-mostpopular' => 'Rûpelên herî lênerî',
 
-'disambiguations' => 'Rûpelên cudakirinê',
+'disambiguations' => 'Rûpelên girêdayî rûpelên cudakirinê',
 'disambiguationspage' => 'Template:disambig',
 
 'doubleredirects' => 'Beralîkirinên ducarî',
@@ -1236,7 +1240,7 @@ Agahdariya li ser [$2 rûpela danasîna pelê] li jêr tê nîşandan.',
 
 'withoutinterwiki' => 'Rûpelên bê girêdanên ziman',
 'withoutinterwiki-legend' => 'Pêşbendik',
-'withoutinterwiki-submit' => 'Nîşan bide',
+'withoutinterwiki-submit' => 'nîşan bide',
 
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|byte}}',
@@ -1310,6 +1314,7 @@ Tu dikarî ji xwe re têketinekê hilbijêrî, navê bikarhêneriyê an navê r
 'allpagesprefix' => 'Rûpelên bi pêşbendik nîşan bide:',
 'allpagesbadtitle' => 'Sernavê rûpelê qedexe bû ya "interwiki"- ya "interlanguage"-pêşnavekî xwe hebû. Meqûle ku zêdertirî tiştekî nikanin werin bikaranîn di sernavê da.',
 'allpages-bad-ns' => 'Namespace\'a "$1" di {{SITENAME}} da tune ye.',
+'allpages-hide-redirects' => 'Beralîkirinan nîşan bide',
 
 # Special:Categories
 'categories' => 'Kategorî',
@@ -1322,15 +1327,15 @@ Li [[Special:WantedCategories|kategoriyên xwestî]] binêre.',
 # Special:DeletedContributions
 'deletedcontributions' => 'Beşdariyên bikarhênerekî yê jêbirî',
 'deletedcontributions-title' => 'Guherandinên bikarhêner yê jêbirî',
-'sp-deletedcontributions-contribs' => 'tevkarî',
+'sp-deletedcontributions-contribs' => 'beşdari',
 
 # Special:LinkSearch
-'linksearch' => 'Girêdanên derveyî',
+'linksearch' => 'Lêgerîna girêdanên derve',
 'linksearch-ns' => 'Valahiya nav:',
 'linksearch-ok' => 'Lêgerîn',
 
 # Special:ListUsers
-'listusers-submit' => 'Nîşan bide',
+'listusers-submit' => 'nîşan bide',
 'listusers-noresult' => 'Bikarhêner nehate dîtin.',
 'listusers-blocked' => '(hate astengkirin)',
 
@@ -1395,7 +1400,7 @@ Gava tu bixwazî wê rûpelê ji nav lîsteya xwe ya şopandinê derbixî, li se
 'unwatchthispage' => 'Êdî neşopîne',
 'notanarticle' => 'Ne gotar e',
 'watchnochange' => 'Ne rûpelek, yê tu dişopînê, hate xeyrandin di vê wextê da, yê tu dixazê bibînê.',
-'watchlist-details' => '* {{PLURAL:$1|Rûpelek tê|$1 rûpel tên}} şopandin, rûpelên gotûbêjê nayên jimartin.',
+'watchlist-details' => '{{PLURAL:$1|Rûpeleka|$1 rûpel}} li ser lîsteya te ya şopandinê, rûpelên gotûbêjê nayên jimartin.',
 'wlheader-enotif' => '* Agahdariya E-nameyê pêk tê.',
 'wlheader-showupdated' => "* Ev rûpela hatî guhertin dema te lê meyzand bi '''nivîsa stûr''' tê xuyakirin.",
 'watchlistcontains' => 'Di lîsteya şopandina te de {{PLURAL:$1|rûpelek heye|$1 rûpel hene}}.',
@@ -1482,7 +1487,7 @@ Guhertoya dawî bi [[User:$3|$3]] ([[User talk:$3|gotûbêj]]).',
 'protectlogpage' => 'Têketina parastinê',
 'protectedarticle' => 'parastî [[$1]]',
 'modifiedarticleprotection' => 'parastina "[[$1]]" guherand',
-'unprotectedarticle' => '"[[$1]]" niha vê parastin e',
+'unprotectedarticle' => 'parastina "[[$1]]" rakir',
 'protect-title' => 'parastina "$1" biguherîne',
 'prot_1movedto2' => '$1 çû cihê $2',
 'protect-legend' => 'Parastinê teyîd bike',
@@ -1562,8 +1567,8 @@ Ji bo jêbirinan û çêkirinên nû, ji kerema xwe li [[{{ns:special}}:Log/dele
 'sp-contributions-newbies' => 'Tenê beşdariyên bikarhênerên nû nîşan bide',
 'sp-contributions-newbies-sub' => 'Ji bikarhênerên nû re',
 'sp-contributions-newbies-title' => 'Tevkariyên bikarhêner ji bo hesabên nû',
-'sp-contributions-blocklog' => 'Astengkirina bikarhêner',
-'sp-contributions-deleted' => 'Guherandinên bikarhênerekî yê jêbirî',
+'sp-contributions-blocklog' => 'Astengkirina têketinê',
+'sp-contributions-deleted' => 'beşdariyên bikarhêner yên jêbirî',
 'sp-contributions-uploads' => 'yên barkirî',
 'sp-contributions-logs' => 'têketin',
 'sp-contributions-talk' => 'gotûbêj',
@@ -1734,7 +1739,7 @@ da bikarî navê wê rûpelê biguherînî.',
 'delete_and_move_text' => '== Jêbirin gireke ==
 
 Rûpela "[[:$1]]" berê heye. Tu rast dixazê wê jêbibê ji bo navguherandinê ra?',
-'delete_and_move_confirm' => 'Erê, wê rûpelê jêbibe',
+'delete_and_move_confirm' => 'Erê, rûpelê jê bibe',
 'delete_and_move_reason' => 'Jêbir ji bo navguherandinê',
 'immobile-source-page' => 'Navê vê rûpelê nikare were guherandin.',
 
@@ -1801,13 +1806,13 @@ Tu dikarî tenê li çavkaniyê binêrî.',
 'tooltip-search-go' => 'Here rûpeleke tev bi vî navî, heke hebe',
 'tooltip-search-fulltext' => 'Di nav rûpelan de li vê nivîsê bigerre',
 'tooltip-p-logo' => 'Here Destpêkê',
-'tooltip-n-mainpage' => 'Biçe Destpêkê',
+'tooltip-n-mainpage' => 'Here Destpêkê',
 'tooltip-n-mainpage-description' => 'Here Destpêkê',
 'tooltip-n-portal' => 'Agahdarî li ser {{SITENAME}}, tu dikarî çi bikî, tu dikarî çi li ku bîbînî',
-'tooltip-n-recentchanges' => "Lîsteya guherandinên dawî di vê Wîkî'yê da.",
+'tooltip-n-recentchanges' => 'Lîsteya guherandinên dawî di vê wîkiyê da',
 'tooltip-n-randompage' => 'Rûpeleka ketober bar bike',
 'tooltip-n-help' => 'Bersivên ji bo pirsên te.',
-'tooltip-t-whatlinkshere' => 'Lîsteya hemû rûpelên ku pê ve girêdayî ne.',
+'tooltip-t-whatlinkshere' => 'Lîsteya hemû rûpelên ku pê ve girêdayî ne',
 'tooltip-t-recentchangeslinked' => 'Recent changes in pages linking to this page',
 'tooltip-feed-rss' => "RSS feed'ên ji bo rûpelê",
 'tooltip-feed-atom' => "Atom feed'ên ji bo vê rûpelê",
@@ -1989,7 +1994,7 @@ Ji ber ku girêdaneke derve di wê rûpelê de heye ev pirsgirêk pêk hat.',
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'hemû',
-'namespacesall' => 'Hemû',
+'namespacesall' => 'hemû',
 'monthsall' => 'hemû',
 'limitall' => 'hemû',
 
@@ -2018,7 +2023,7 @@ Ji kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
 'recreate' => 'Dîsa çêke',
 
 # action=purge
-'confirm_purge_button' => 'Temam',
+'confirm_purge_button' => 'Baş e',
 'confirm-purge-top' => 'Bîra vê rûpelê jêbîbe ?',
 
 # Multipage image navigation
@@ -2032,7 +2037,7 @@ Ji kerema xwe zanibe ku tu bi rastî dixwazî vê rûpelê dîsa çêkî.",
 'table_pager_prev' => 'Rûpela berî',
 'table_pager_first' => 'Rûpela pêşîn',
 'table_pager_last' => 'Rûpela dawî',
-'table_pager_limit_submit' => 'Biçe',
+'table_pager_limit_submit' => 'Here',
 
 # Auto-summaries
 'autosumm-blank' => 'Rûpel hate vala kirin',
index 9b8b641..d41c07b 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Cornish (Kernowek)
+/** Cornish (kernowek)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index f829ef2..726c146 100644 (file)
@@ -224,8 +224,8 @@ $messages = array(
 'mainpage-description' => 'Башбарак',
 'portal' => 'Жамаат порталы',
 'portal-url' => 'Project:Жамаат порталы',
-'privacy' => 'Ð\96аÑ\88Ñ\8bÑ\80Ñ\83Ñ\83ндÑ\83Ñ\83лÑ\83к Ñ\82аÑ\80Ñ\82иби',
-'privacypage' => 'Project:Ð\96аÑ\88Ñ\8bÑ\80Ñ\83Ñ\83ндÑ\83Ñ\83лÑ\83к Ñ\82аÑ\80Ñ\82иби',
+'privacy' => 'Ð\9cаалÑ\8bмаÑ\82Ñ\82Ñ\8b ÐºÑ\83пÑ\83Ñ\8f Ñ\81акÑ\82оо Ñ\81аÑ\8fÑ\81аÑ\82Ñ\8b',
+'privacypage' => 'Project:Ð\9cаалÑ\8bмаÑ\82Ñ\82Ñ\8b ÐºÑ\83пÑ\83Ñ\8f Ñ\81акÑ\82оо Ñ\81аÑ\8fÑ\81аÑ\82Ñ\8b',
 
 'retrievedfrom' => '"$1" булагындан алынды',
 'youhavenewmessages' => 'Сизге $1 ($2) бар.',
@@ -290,14 +290,16 @@ $messages = array(
 'yourname' => 'Колдонуучунун аты',
 'yourpassword' => 'Сырсөз',
 'yourpasswordagain' => 'Сырсөздү кайра жазыңыз',
-'remembermypassword' => 'Ð\91Ñ\83л Ð±Ñ\80аÑ\83зеÑ\80де ÐºÐ°Ñ\82Ñ\82оо Ð¶Ð°Ð·Ñ\83Ñ\83мдÑ\83 Ñ\8dÑ\81Ñ\82е тут (эң көп $1 {{PLURAL:$1|күн|күн}})',
+'remembermypassword' => 'Ð\91Ñ\83л Ð±Ñ\80аÑ\83зеÑ\80де ÐºÐ°Ñ\82Ñ\82оо Ð¼Ð°Ð°Ð»Ñ\8bмаÑ\82Ñ\82аÑ\80Ñ\8bмдÑ\8b Ñ\8dÑ\81ке тут (эң көп $1 {{PLURAL:$1|күн|күн}})',
 'yourdomainname' => 'Сиздин домен',
 'login' => 'Кирүү',
 'nav-login-createaccount' => 'Кирүү / Каттоо',
 'loginprompt' => '{{SITENAME}} сайтына кирүү үчүн «cookies» колдонууга уруксатыңыз керек .',
 'userlogin' => 'Кирүү / Каттоо',
+'userloginnocreate' => 'Кирүү',
 'logout' => 'Чыгуу',
 'userlogout' => 'Чыгуу',
+'notloggedin' => 'Сиз системага кире элексиз',
 'nologin' => 'Каттала элексизби? $1.',
 'nologinlink' => 'Каттоону башта',
 'createaccount' => 'Жаңы колдонуучуну катта',
@@ -305,6 +307,12 @@ $messages = array(
 'gotaccountlink' => 'Кирүү',
 'userlogin-resetlink' => 'Кирүүчү маалыматарыңызды унутуп калдыңызбы?',
 'createaccountmail' => 'Электрондук дарек боюнча',
+'createaccountreason' => 'Себеби:',
+'badretype' => 'Сиз киргизген сырсөздөр дал келишпейт',
+'userexists' => 'Сиз тандаган колдонуучунун аты бош эмес.',
+'loginerror' => 'Колдонуучуну таанууда ката кетти',
+'createaccounterror' => '$1 эсебин түзүү мүмкүн эмес',
+'loginsuccesstitle' => 'Сиз ийгиликтүү кирдиңиз',
 'wrongpassword' => 'Ката сырсөз киргизилди. Кайтадан аракет кылып көрүңүз.',
 'wrongpasswordempty' => 'Сырсөз киргизилген жок. Кайтадан аракет кылып көрүңүз.',
 'mailmypassword' => 'Жаңы сырсөздү электрондук дарекке жибер',
@@ -341,6 +349,7 @@ $messages = array(
 'savearticle' => 'Баракты сактап кой',
 'preview' => 'Алдын ала көрүү',
 'showpreview' => 'Алдын ала көрсөт',
+'showlivepreview' => 'Ылдам карап чыгуу',
 'showdiff' => 'Өзгөртүүлөрдү көрсөт',
 'anoneditwarning' => "'''Эскертүү:''' Сиз каттоодон өткөн жоксуз.
 IP дарегиңиз бул барактын оңдоо тарыхына жазылат.",
@@ -349,7 +358,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'loginreqtitle' => 'Колдонуучунун аты талап кылынат',
 'loginreqlink' => 'Кирүү',
 'accmailtitle' => 'Сырсөз жөнөтүлдү.',
-'accmailtext' => '"$1" үчүн сырсөз $2 ге жөнөтүлдү.',
+'accmailtext' => ' [[User talk:$1|$1]] үчүн сырсөз $2 ге жөнөтүлдү.',
 'newarticle' => '(Жаңы)',
 'newarticletext' => "Сиз ачыла элек баракка шилтемени бастыңыз.
 Бул баракты ачуу үчүн, ылдый жактагы терезечеге жаза баштаңыз (кошумча маалымат алуу үчүн [[{{MediaWiki:Helppage}}|жардам барагы]] караңыз).
@@ -372,7 +381,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'editingcomment' => ' $1 оңдолууда (жаңы бөлүм)',
 'yourtext' => 'Текстиңиз',
 'yourdiff' => 'Айырмалар',
-'templatesused' => 'Бул баракта колдонулган {{PLURAL:$1|шаблон |шаблон}}:',
+'templatesused' => 'Бул баракта колдонулган {{PLURAL:$1|калып |калыптар}}:',
 'template-protected' => '(корголгон)',
 'template-semiprotected' => '(жарым-жартылай корголгон)',
 'hiddencategories' => 'Бул барак {{PLURAL:$1|1 жашыруун категориянын|$1 жашыруун категориялардын}} мүчөсү:',
@@ -390,9 +399,10 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'post-expand-template-inclusion-warning' => "'''Эскертүү:''' Камтылган калыптардын өлчөмү өтө чоң.
 Кээ бир калыптар камтылбайт.",
 'post-expand-template-inclusion-category' => 'Камтылган калыптардын өлчөмү ашып кеткен барактар',
-'post-expand-template-argument-warning' => "'''Эскертүү:''' Бул барак жаюуга өтө чоң көлөмдүү эң аз дегенде бир шаблон жүйөсүн камтыйт.
-Ушул сыяктуу жүйөлөр аттатылышты.",
-'post-expand-template-argument-category' => 'Аттатылган шаблон жүйөлөрүн камтыган барактар',
+'post-expand-template-argument-warning' => "'''Эскертүү:''' Бул барак, жок дегенде, абдан чоң көлөмдүү калыптын бир жүйөсүн камтыйт жана  жайылганда өлчөмү абдан чоң болуп кетет. 
+Ушул сыяктуу жүйөлөр аттатылды.",
+'post-expand-template-argument-category' => 'Калыптардын аттатылган жүйөлөрүн камтыган барактар',
+'parser-template-loop-warning' => 'Калыптарда айланма бар:[[$1]]',
 
 # History pages
 'viewpagelogs' => 'Бул барак үчүн тизмелерди кара',
@@ -415,6 +425,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'history-show-deleted' => 'Өчүрүлгөндөрдү гана',
 'histfirst' => 'Эң эски',
 'histlast' => 'Соңку',
+'historyempty' => 'бош',
 
 # Revision feed
 'history-feed-title' => 'Өзгөртүүлөр тарыхы',
@@ -527,7 +538,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'rcshowhideminor' => 'Майда оңдоолорду $1',
 'rcshowhidebots' => 'ботторду $1',
 'rcshowhideliu' => '$1 катталган колдонуучу',
-'rcshowhideanons' => 'Ð\96аÑ\88Ñ\8bÑ\80Ñ\8bн ÐºÐ¾Ð»Ð´Ð¾Ð½Ñ\83Ñ\83Ñ\87Ñ\83лаÑ\80дÑ\8b $1',
+'rcshowhideanons' => 'Ð\96аÑ\88Ñ\8bÑ\80Ñ\83Ñ\83н ÐºÐ¾Ð»Ð´Ð¾Ð½Ñ\83Ñ\83Ñ\87Ñ\83лаÑ\80 $1',
 'rcshowhidepatr' => 'Көзөмөл алдындагы оңдоолорду $1',
 'rcshowhidemine' => 'Оңдоолорумду $1',
 'rclinks' => 'Соңку $2 кундө жасалган акыркы $1 өзгөртүүлөрдү көрсөт<br />$3',
@@ -561,6 +572,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'uploadedfiles' => 'Жүктөлгөн файлдар',
 'savefile' => 'Файлды сактап кой',
 'uploadedimage' => '"[[$1]]" жүктөлдү',
+'upload-success-subj' => 'Ийгиликтүү жүктөлдү',
 
 'license' => 'Лицензиялоо:',
 'license-header' => 'Лицензиялоо:',
@@ -853,8 +865,8 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'metadata' => 'Метамаалыматтар',
 'metadata-help' => 'Бул файл адатта санарип камера же сканнер кошуучу маалыматтарды камтыйт. 
 Эгерде файл баштапкы абалынан өзгөртүлсө, анда анын кээ бир сыпаттары толук чагылдырылбашы мүмкүн.',
-'metadata-fields' => 'Төмөндө тизмеленген сүрөт метамаалыматтарынын саптары метамаалыматтардын жадыбалы түрүлгөндө сүрөт барагына кошумчаланат.
-Калгандары сөз байлашуу менен жашырылат.
+'metadata-fields' => 'Төмөндө тизмеленген сүрөт метамаалыматтарынын саптары метамаалыматтардын жадыбалы түрүлүү учурда сүрөт барагына кошумчаланат.
+Калгандары баштапкы абалда (өзгөртүлбөсө) көргөзүлбөйт.
 * make
 * model
 * datetimeoriginal
@@ -897,7 +909,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'watchlisttools-raw' => 'Жетиле элек көзөмөл тизмени оңдо',
 
 # Core parser functions
-'duplicate-defaultsort' => '\'\'\'Ð\90байлаÑ\82Ñ\83Ñ\83:\'\'\' "$2" белгиленген ылгоочу ачкыч "$1" мурунку белгиленген ылгоочу ачкычты жокко чыгарат.',
+'duplicate-defaultsort' => '\'\'\'ЭÑ\81кеÑ\80Ñ\82Ò¯Ò¯:\'\'\' "$2" белгиленген ылгоочу ачкыч "$1" мурунку белгиленген ылгоочу ачкычты жокко чыгарат.',
 
 # Special:Version
 'version' => 'Версия',
index fd2bbc9..f2c488b 100644 (file)
@@ -534,6 +534,8 @@ Mellt dëst w.e.g. bei engem [[Special:ListUsers/sysop|Administrateur]] a vergie
 'cannotdelete' => 'D\'Bild oder d\'Säit "$1" konnt net geläscht ginn.
 Et ka sinn datt et scho vun engem Anere geläscht gouf.',
 'cannotdelete-title' => 'D\'Säit "$1" kann net geläscht ginn',
+'delete-hook-aborted' => "D'Läsche gouf vun enger Schnëttstell (hook) ofgebrach.
+Eng Erklärung gouf net ginn.",
 'badtitle' => 'Schlechten Titel',
 'badtitletext' => 'De gewënschten Titel ass net valabel, eidel, oder een net korrekten Interwiki Link.',
 'perfcached' => 'Dës Date kommen aus dem Tëschespäicher a si méiglecherweis net aktuell. Maximal {{PLURAL:$1|ee Resultat ass|$1 Resultater sinn}} am Tësche späicher disponibel.',
@@ -561,6 +563,8 @@ $2',
 'titleprotected' => "Eng Säit mat dësem Numm kann net ugeluecht ginn. Dës Spär gouf vum [[User:$1|$1]] gemaach deen als Grond ''$2'' uginn huet.",
 'invalidtitle-knownnamespace' => 'Net valabelen Titel mam Nummraum "$2" a mam Text "$3"',
 'invalidtitle-unknownnamespace' => 'Net valabelen Titel mat der onbekannter Nummraum-Zuel $1 a mam Text "$2"',
+'exception-nologin' => 'Net ageloggt',
+'exception-nologin-text' => 'Dës Säit oder Aktioun erfuerdert datt Dir op dëser Wiki ageloggt sidd.',
 
 # Virus scanner
 'virus-badscanner' => "Schlecht Configuratioun: onbekannte  Virescanner: ''$1''",
@@ -568,11 +572,11 @@ $2',
 'virus-unknownscanner' => 'onbekannten Antivirus:',
 
 # Login and logout pages
-'logouttext' => "'''Dir sidd elo ofgemellt.'''
+'logouttext' => "'''Dir sidd elo ausgeloggt.'''
 
-Dir kënnt {{SITENAME}} elo anonym benotzen, oder Iech [[Special:UserLogin|erëm umellen]].
+Dir kënnt {{SITENAME}} elo anonym benotzen, oder Iech [[Special:UserLogin|erëm aloggen]].
 
-Opgepasst: Op verschiddene Säite gesäit et nach esou aus, wéi wann Dir nach ugemellt wiert, bis Dir Ärem Browser säin Tëschespäicher (cache) eidel maacht.",
+Opgepasst: Op verschiddene Säite kann et nach esou aus gesinn, wéi wann Dir nach ageloggt wiert, bis Dir Ärem Browser säin Tëschespäicher (cache) eidel maacht.",
 'welcomecreation' => '== Wëllkomm, $1! ==
 Äre Kont gouf kreéiert.
 Denkt drun, Är [[Special:Preferences|{{SITENAME}}-Astellungen]] unzepassen.',
@@ -583,7 +587,7 @@ Denkt drun, Är [[Special:Preferences|{{SITENAME}}-Astellungen]] unzepassen.',
 'securelogin-stick-https' => 'Nom Umelle mat HTTPS verbonn bleiwen',
 'yourdomainname' => 'Ären Domain',
 'externaldberror' => 'Entweder ass e Feeler bei der externer Authentifizéierung geschitt, oder Dir däerft Ären externe Benotzerkont net aktualiséieren.',
-'login' => 'Umellen',
+'login' => 'Aloggen',
 'nav-login-createaccount' => 'Aloggen / Benotzerkont uleeën',
 'loginprompt' => "Fir sech op {{SITENAME}} aloggen ze kënnen, mussen d'Cookien aktivéiert sinn.",
 'userlogin' => 'Aloggen / Benotzerkont uleeën',
@@ -682,7 +686,7 @@ Fir är Umeldung ofzeschléissen, musst Dir elo hei een neit Passwuert uginn:',
 'oldpassword' => 'Aalt Passwuert:',
 'newpassword' => 'Neit Passwuert:',
 'retypenew' => 'Neit Passwuert nach eemol antippen:',
-'resetpass_submit' => 'Passwuert aginn an umellen',
+'resetpass_submit' => 'Passwuert aginn an aloggen',
 'resetpass_success' => 'Äert Passwuert gouf geännert!
 Loggt Iech elo an ...',
 'resetpass_forbidden' => 'Passwierder kënnen net geännert ginn.',
@@ -1731,8 +1735,8 @@ Kuckt w.e.g. no op kee Feeler an der URL ass an op de Site och online ass.',
 'upload-curl-error28' => "D'Eroplueden huet ze laang gedauert (timeout)",
 'upload-curl-error28-text' => "Dëse Site huet ze laang gebraucht fir z'äntwerten. Kuckt w. e. g. no, ob dëse Site online ass, waart een Ament a probéiert et dann nach eng Kéier. Et ka sënnvoll sinn, et nach eng Kéier méi spéit ze versichen.",
 
-'license' => 'Lizenzéiert:',
-'license-header' => 'Lizenzéieren',
+'license' => 'Lizenz',
+'license-header' => 'Lizenz',
 'nolicense' => 'Keng Lizenz ausgewielt',
 'license-nopreview' => '(Kucken ouni ofzespäichere geet net)',
 'upload_source_url' => ' (gëlteg, ëffentlech zougänglech URL)',
@@ -3712,6 +3716,7 @@ Soss kënnt Dir den einfache Formulär hei drënner benotzen. Är Bemierkung gë
 'api-error-empty-file' => 'De Fichier deen Dir geschéckt hutt war eidel.',
 'api-error-emptypage' => 'Et ass net erlaabt nei, eidel Säiten unzeleeën.',
 'api-error-fetchfileerror' => 'Interne Feeler: beim Opruffe vum Fichier huet eppes net fonctionnéiert.',
+'api-error-fileexists-forbidden' => 'E Fichier mam Numm "$1" gëtt et schonn an e kann net iwwerschriwwe ginn.',
 'api-error-file-too-large' => 'De Fichier deen Dir geschéckt hutt war ze grouss.',
 'api-error-filename-tooshort' => 'Den Numm vum Fichier ass ze kuerz.',
 'api-error-filetype-banned' => 'Dësen Typ vu Fichier ass net zougelooss.',
index e731e91..787e1be 100644 (file)
@@ -30,7 +30,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Мукьвара хьайи дегишвилера авай къаравулвал авунвай дуьзар хъувунар чуьнуьхун',
 'tog-newpageshidepatrolled' => 'ЦIийи ччинрин сиягьда къаравулвал авунвай ччинар чуьнуьхун',
 'tog-extendwatchlist' => 'ЧӀехи сиягь килигунин, кутазвай вири дегишунар, амма са эхирбур туш',
-'tog-usenewrc' => 'ЦIийи Ð´ÐµÐ³Ð¸Ñ\88вилеÑ\80ин Ñ\81иÑ\8fгÑ\8c ÐºÐ°Ñ\80дик ÐºÑ\83Ñ\82Ñ\83н (JavaScript герекзава)',
+'tog-usenewrc' => 'Ð\9cÑ\83кÑ\8cваÑ\80а Ñ\85Ñ\8cайи Ð¼Ð°Ñ\81акIавилеÑ\80ин Ñ\87Ñ\87ина Ð²Ð° Ð²Ð¸Ð»Ð¸Ð² Ñ\85Ñ\83Ñ\8cнин Ñ\81иÑ\8fгÑ\8cда  Ð´Ñ\83Ñ\8cзаÑ\80 Ñ\85Ñ\8aÑ\83вÑ\83наÑ\80 ÐºIеÑ\80еÑ\82\80из Ñ\87Ñ\87аÑ\80а Ð°Ð²Ñ\83н. (JavaScript герекзава)',
 'tog-numberheadings' => 'Кьилин цӀарариз автоматдаказ номерар эцигун',
 'tog-showtoolbar' => 'Дуьзар хъувунин алатрин кьвати къалура (JavaScript)',
 'tog-editondblclick' => 'Ччинар кьве тIампIуналди дуьзар хъувун (JavaScript герекзава)',
@@ -448,7 +448,7 @@ $messages = array(
 Квевай и ччинин туьхкlуьрунин гереквилиз килигиз тIалабзава.
 Агъадихъ и ччинин алудун ва тIвар эхцигунин журнал къалурнава.",
 'moveddeleted-notice' => 'И ччин алуднава. 
-Агъадихъ малумат патал и ччинин алудун ва тIвар эхцигунин журнал къалурнава.',
+Агъадихъ малумат патал и ччинин алудунин ва тIвар эхцигунин журнал къалурнава.',
 'log-fulllog' => 'Вири журналдиз килигун',
 'edit-conflict' => 'Дуьзар хъувунрин акьунар',
 
@@ -1025,7 +1025,7 @@ $messages = array(
 
 # Contributions
 'contributions' => 'Уртахди кутур крар',
-'contributions-title' => '$1 уртахдин кутур крар',
+'contributions-title' => '$1 уртахди кутур крар',
 'mycontris' => 'За кутур кар',
 'contribsub2' => '($1)-ин кутур пай  ($2)',
 'uctop' => '(вини кьил)',
index 3ac73c3..1625953 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Lumbaart (Lumbaart)
+/** lumbaart (lumbaart)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 9597ca9..bf0b9d6 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Lingala (Lingála)
+/** Lingala (lingála)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index aa7144a..1467dea 100644 (file)
@@ -192,10 +192,10 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Įjungti skyrelių redagavimą paspaudus skyrelio pavadinimą dešiniuoju pelės klavišu (JavaScript)',
 'tog-showtoc' => 'Rodyti turinį, jei puslapyje daugiau nei 3 skyreliai',
 'tog-rememberpassword' => 'Prisiminti prisijungimo informaciją šioje naršyklėje (daugiausiai $1 {{PLURAL:$1|dieną|dienas|dienų}})',
-'tog-watchcreations' => 'Pridėti puslapius, kuriuos sukuriu, į stebimų sąrašą',
-'tog-watchdefault' => 'Pridėti puslapius, kuriuos redaguoju, į stebimų sąrašą',
-'tog-watchmoves' => 'Pridėti puslapius, kuriuos perkeliu, į stebimų sąrašą',
-'tog-watchdeletion' => 'Pridėti puslapius, kuriuos ištrinu, į stebimų sąrašą',
+'tog-watchcreations' => 'Pridėti puslapius, kuriuos aš sukuriu, į stebimų sąrašą',
+'tog-watchdefault' => 'Pridėti puslapius, kuriuos aš redaguoju, į stebimų sąrašą',
+'tog-watchmoves' => 'Pridėti puslapius, kuriuos aš perkeliu, į stebimų sąrašą',
+'tog-watchdeletion' => 'Pridėti puslapius, kuriuos aš ištrinu, į stebimų sąrašą',
 'tog-minordefault' => 'Pagal nutylėjimą pažymėti redagavimus kaip smulkius',
 'tog-previewontop' => 'Rodyti peržiūrą virš redagavimo lauko',
 'tog-previewonfirst' => 'Rodyti peržiūrą pirmą kartą pakeitus',
@@ -366,7 +366,7 @@ $messages = array(
 'create-this-page' => 'Sukurti šį puslapį',
 'delete' => 'Trinti',
 'deletethispage' => 'Ištrinti šį puslapį',
-'undelete_short' => 'Atstatyti $1 {{PLURAL:$1:redagavimą|redagavimus|redagavimų}}',
+'undelete_short' => 'Atkurti $1 {{PLURAL:$1:redagavimą|redagavimus|redagavimų}}',
 'viewdeleted_short' => 'Peržiūrėti $1 {{PLURAL:$1|ištrintą keitimą|ištrintus keitimus|ištrintų keitimų}}',
 'protect' => 'Užrakinti',
 'protect_change' => 'keisti',
@@ -1114,8 +1114,8 @@ Prašome patikrinti sąrašus.',
 
 # Diffs
 'history-title' => '„$1“ versijų istorija',
-'difference-title' => '$1: Skirtumas tarp redakcijų',
-'difference-title-multipage' => '$1 ir $2: Skirtumas tarp puslapių',
+'difference-title' => '$1: Skirtumas tarp puslapio versijų',
+'difference-title-multipage' => 'Skirtumas tarp puslapių „$1 ir $2“',
 'difference-multipage' => '(Skirtumai tarp puslapių)',
 'lineno' => 'Eilutė $1:',
 'compareselectedversions' => 'Palyginti pasirinktas versijas',
@@ -1210,6 +1210,7 @@ Prašome patikrinti sąrašus.',
 'prefs-beta' => 'Beta funkcijos',
 'prefs-datetime' => 'Data ir laikas',
 'prefs-labs' => 'Bandomosios funkcijos',
+'prefs-user-pages' => 'Naudotojo puslapiai',
 'prefs-personal' => 'Naudotojo profilis',
 'prefs-rc' => 'Naujausi keitimai',
 'prefs-watchlist' => 'Stebimų sąrašas',
@@ -1390,12 +1391,12 @@ teisės",
 'right-writeapi' => 'Naudoti rašymo API',
 'right-delete' => 'Trinti puslapius',
 'right-bigdelete' => 'Ištrinti puslapius su ilga istorija',
-'right-deleterevision' => 'Ištrinti ir atstatyti specifines puslapių versijas',
+'right-deleterevision' => 'Ištrinti ir atkurti specifines puslapių versijas',
 'right-deletedhistory' => 'Žiūrėti ištrintų puslapių istoriją nerodant susieto teksto',
 'right-deletedtext' => 'Peržiūrėti ištrintą tekstą ir skirtumus tarp ištrintų puslapio versijų.',
 'right-browsearchive' => 'Ieškoti ištrintų puslapių',
-'right-undelete' => 'Atstatyti puslapį',
-'right-suppressrevision' => 'Peržiūrėti ir atstatyti versijas, paslėptas nuo administratorių',
+'right-undelete' => 'Atkurti puslapį',
+'right-suppressrevision' => 'Peržiūrėti ir atkurti versijas, paslėptas nuo administratorių',
 'right-suppressionlog' => 'Žiūrėti privačius įvykių sąrašus',
 'right-block' => 'Blokuoti redagavimo galimybę kitiems naudotojams',
 'right-blockemail' => 'Blokuoti elektroninio pašto siuntimo galimybę naudotojui',
@@ -1854,10 +1855,10 @@ Informacija iš [$2 failo aprašymo puslapio] yra pateikiama žemiau.',
 'statistics-pages-desc' => 'Visi puslapiai, tarp jų aptarimo, nukreipimų, ir kiti puslapiai.',
 'statistics-files' => 'Įkelti failai',
 'statistics-edits' => 'Puslapių redagavimų skaičius nuo {{SITENAME}} sukūrimo',
-'statistics-edits-average' => 'Vidutinis redakcijų kiekis puslapiui',
+'statistics-edits-average' => 'Vidutinis puslapio keitimų skaičius',
 'statistics-views-total' => 'Iš viso peržiūrų',
 'statistics-views-total-desc' => 'Neegzistuojančių ir specialiųjų puslapių parodymai neįtraukti',
-'statistics-views-peredit' => 'Peržiūrų skaičius redakcijai',
+'statistics-views-peredit' => 'Peržiūrų skaičius puslapio versijai',
 'statistics-users' => 'Registruotų [[Special:ListUsers|naudotojų]]',
 'statistics-users-active' => 'Aktyvių naudotojų',
 'statistics-users-active-desc' => 'Naudotojai, kurie per {{PLURAL:$1|paskutinę dieną|paskutines $1 dienų}} padarė keitimų',
@@ -2269,9 +2270,10 @@ Dabar veikiančių puslapių apsaugų sąrašą rasite [[Special:ProtectedPages|
 'protect-otherreason-op' => 'Kita priežastis',
 'protect-dropdown' => '*Įprastos užrakinimo priežastys
 ** Intensyvus vandalizmas
-** Intensyvus nuorodų reklamavimas
-** Neproduktyvus redagavimo karas
-** Didelės svarbos puslapis',
+** Nuolatinis nepageidautinų nuorodų dėliojimas
+** Beprasmis redagavimo karas
+** Didelės svarbos puslapis
+** Pakartotinis ištrinto puslapio atkūrinėjimas',
 'protect-edit-reasonlist' => 'Keisti užrakinimo priežastis',
 'protect-expiry-options' => '1 valanda:1 hour,1 diena:1 day,1 savaitė:1 week,2 savaitės:2 weeks,1 mėnuo:1 month,3 mėnesiai:3 months,6 mėnesiai:6 months,1 metai:1 year,neribotai:infinite',
 'restriction-type' => 'Leidimas:',
@@ -2292,15 +2294,15 @@ Dabar veikiančių puslapių apsaugų sąrašą rasite [[Special:ProtectedPages|
 'restriction-level-all' => 'bet koks',
 
 # Undelete
-'undelete' => 'Atstatyti ištrintą puslapį',
+'undelete' => 'Atkurti ištrintą puslapį',
 'undeletepage' => 'Rodyti ir atkurti ištrintus puslapius',
 'undeletepagetitle' => "'''Tai sudaryta iš ištrintų [[:$1]] versijų'''.",
 'viewdeletedpage' => 'Rodyti ištrintus puslapius',
 'undeletepagetext' => '{{PLURAL:$1|Šis $1 puslapis buvo ištrintas|Šie $1 puslapiai buvo ištrinti|Šie $1 puslapių buvo ištrinti}}, bet dar yra archyve ir gali būti {{PLURAL:$1|atkurtas|atkurti|atkurti}}.
 Archyvas gali būti periodiškai valomas.',
-'undelete-fieldset-title' => 'Atstatyti versijas',
+'undelete-fieldset-title' => 'Atkurti versijas',
 'undeleteextrahelp' => "Norėdami atkurti visą puslapio istoriją, palikite visas varneles nepažymėtas ir spauskite '''''{{int:undeletebtn}}'''''.
-Norėdami atlikti pasirinktinį atstatymą, pažymėkite varneles tų versijų, kurias norėtumėte atstatyti, ir spauskite '''''{{int:undeletebtn}}'''''.",
+Norėdami atlikti pasirinktinį atkūrimą, pažymėkite varneles tų versijų, kurias norėtumėte atkurti, ir spauskite '''''{{int:undeletebtn}}'''''.",
 'undeleterevisions' => '$1 {{PLURAL:$1|versija|versijos|versijų}} suarchyvuota',
 'undeletehistory' => 'Jei atstatysite puslapį, istorijoje bus atstatytos visos versijos.
 Jei po ištrynimo buvo sukurtas puslapis tokiu pačiu pavadinimu, atstatytos versijos atsiras ankstesnėje istorijoje.',
@@ -2311,7 +2313,7 @@ Tokiais atvejais, jums reikia atžymėti arba atslėpti naujausią ištrintą ve
 'undeleterevision-missing' => 'Neteisinga arba dingusi versija. Jūs turbūt turite blogą nuorodą, arba versija buvo atkurta arba pašalinta iš archyvo.',
 'undelete-nodiff' => 'Nerasta jokių ankstesnių versijų.',
 'undeletebtn' => 'Atkurti',
-'undeletelink' => 'žiūrėti/atstatyti',
+'undeletelink' => 'žiūrėti/atkurti',
 'undeleteviewlink' => 'žiūrėti',
 'undeletereset' => 'Iš naujo',
 'undeleteinvert' => 'Žymėti priešingai',
@@ -2397,30 +2399,30 @@ Paskutinis blokavimo įrašas pateikiamas žemiau:',
 'whatlinkshere-filters' => 'Filtrai',
 
 # Block/unblock
-'autoblockid' => 'Autoblock # $1',
+'autoblockid' => 'Automatinis blokavimas # $1',
 'block' => 'Blokuoti naudotoją',
 'unblock' => 'Atblokuoti naudotoją',
 'blockip' => 'Blokuoti naudotoją',
 'blockip-title' => 'Blokuoti naudotoją',
 'blockip-legend' => 'Blokuoti naudotoją',
-'blockiptext' => 'Naudokite šią formą norėdami uždrausti rašymo teises nurodytui IP adresui ar naudotojui. Tai turėtų būti atliekama tam, kad sustabdytumėte vandalizmą, ir pagal [[{{MediaWiki:Policy-url}}|politiką]].
-Žemiau nurodykite tikslią priežastį (pavyzdžiui, nurodydami sugadintus puslapius).',
+'blockiptext' => 'Naudokite šią formą, kad uždraustumėte redagavimo prieigą pasirinktam IP adresui ar naudotojui. Tai turėtų būti atliekama tik tam, kad sustabdytumėte vandalizmą, ir neprieštarauti [[{{MediaWiki:Policy-url}}|projekte galiojančioms taisyklėms]].
+Žemiau pateikite tikslią priežastį (pavyzdžiui, nurodydami sugadintus puslapius).',
 'ipadressorusername' => 'IP adresas arba naudotojo vardas',
 'ipbexpiry' => 'Galiojimo laikas',
 'ipbreason' => 'Priežastis:',
 'ipbreasonotherlist' => 'Kita priežastis',
 'ipbreason-dropdown' => '*Bendrosios blokavimo priežastys
-** Melagingos informacijos įterpimas
+** Klaidingos informacijos įterpimas
 ** Turinio šalinimas iš puslapių
 ** Kitų svetainių reklamavimas
-** Nesąmonių/bet ko įterpimas į puslapius
-** GÄ\85sdinimai/Ä®žeidinėjimai
+** Nesusijusio arba beprasmio teksto įterpimas į puslapius
+** GÄ\85sdinimai/įžeidinėjimai
 ** Piktnaudžiavimas keliomis paskyromis
 ** Nepriimtinas naudotojo vardas',
-'ipb-hardblock' => 'Neleisti prisijungusius naudotojus nuo redagavimo iš šio IP adreso',
+'ipb-hardblock' => 'Neleisti prisijungusiems naudotojams redaguoti iš šio IP adreso',
 'ipbcreateaccount' => 'Neleisti kurti paskyrų',
 'ipbemailban' => 'Neleisti naudotojui siųsti el. pašto',
-'ipbenableautoblock' => 'Automatiškai blokuoti šio naudotojo paskiausiai naudotą IP adresą, bei bet kokius vėlesnius IP adresus, iš kurių jie mėgina redaguoti',
+'ipbenableautoblock' => 'Automatiškai blokuoti paskutinį naudotojo naudotą IP adresą ir visus kitus adresus, iš kurių jis bandys redaguoti',
 'ipbsubmit' => 'Blokuoti šį naudotoją',
 'ipbother' => 'Kitoks laikas',
 'ipboptions' => '2 valandos:2 hours,1 diena:1 day,3 dienos:3 days,1 savaitė:1 week,2 savaitės:2 weeks,1 mėnesis:1 month,3 mėnesiai:3 months,6 mėnesiai:6 months,1 metai:1 year,neribotai:infinite',
@@ -2428,22 +2430,22 @@ Paskutinis blokavimo įrašas pateikiamas žemiau:',
 'ipbotherreason' => 'Kita/papildoma priežastis',
 'ipbhidename' => 'Slėpti naudotojo vardą keitimuose bei sąrašuose',
 'ipbwatchuser' => 'Stebėti šio naudotojo puslapį ir jo aptarimų puslapį',
-'ipb-disableusertalk' => 'Neleiskite šiam nuo redagavimo savo aptarimų puslapis naudotojui užblokuotas',
-'ipb-change-block' => 'Perblokuoti šį naudotoją su šiais nustatymais',
-'ipb-confirm' => 'Patvirtinkite blokas',
+'ipb-disableusertalk' => 'Neleisti redaguoti savo naudotojo aptarimo puslapio',
+'ipb-change-block' => 'Iš naujo užblokuoti naudotoją, naudojant šiuos nustatymus',
+'ipb-confirm' => 'Patvirtinkite blokavimą',
 'badipaddress' => 'Neleistinas IP adresas',
 'blockipsuccesssub' => 'Užblokavimas pavyko',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] buvo užblokuotas.<br />
 Aplankykite [[Special:BlockList|IP blokavimų istoriją]] norėdami jį peržiūrėti.',
-'ipb-blockingself' => 'Jūs ruošiatės blokuoti sau! Ar tikrai norite tai padaryti?',
-'ipb-confirmhideuser' => 'Jūs ruošiatės užblokuoti tam tikro vartotojo su "slėpti vartotojo" įjungtas. Tai bus nuslopinti vartotojo vardą visuose sąrašuose ir žurnalo įrašus. Ar tikrai norite tai padaryti?',
+'ipb-blockingself' => 'Jūs ruošiatės užblokuoti save! Ar tikrai norite tai padaryti?',
+'ipb-confirmhideuser' => 'Jūs ruošiatės užblokuoti naudotoją, pasirinkę „slėpti naudotoją“ nustatymą. Tai paslėps naudotojo vardą visuose sąrašuose ir žurnalo įrašuose. Ar tikrai norite tai padaryti?',
 'ipb-edit-dropdown' => 'Redaguoti blokavimų priežastis',
 'ipb-unblock-addr' => 'Atblokuoti $1',
 'ipb-unblock' => 'Atblokuoti naudotojo vardą arba IP adresą',
-'ipb-blocklist' => 'Rodyti egzistuončius blokavimus',
+'ipb-blocklist' => 'Rodyti egzistuojančius blokavimus',
 'ipb-blocklist-contribs' => '$1 indėlis',
 'unblockip' => 'Atblokuoti naudotoją',
-'unblockiptext' => 'Naudokite šią formą, kad atkurtumėte rašymo teises
+'unblockiptext' => 'Naudokite šią formą, kad atkurtumėte redagavimo galimybę
 ankščiau užblokuotam IP adresui ar naudotojui.',
 'ipusubmit' => 'Atblokuoti šį adresą',
 'unblocked' => '[[User:$1|$1]] buvo atblokuotas',
@@ -2452,15 +2454,15 @@ ankščiau užblokuotam IP adresui ar naudotojui.',
 'blocklist' => 'Blokuoti naudotojai',
 'ipblocklist' => 'Blokuoti naudotojai',
 'ipblocklist-legend' => 'Rasti užblokuotą naudotoją',
-'blocklist-userblocks' => 'Slėpti į blokus',
+'blocklist-userblocks' => 'Slėpti paskyrų blokavimus',
 'blocklist-tempblocks' => 'Slėpti laikinus blokavimus',
-'blocklist-addressblocks' => 'Slėpti vieną IP blokų',
-'blocklist-rangeblocks' => 'Slėpti diapazono blokai',
-'blocklist-timestamp' => 'Laiko žymė',
-'blocklist-target' => 'Tikslinė',
+'blocklist-addressblocks' => 'Slėpti vieno IP adreso blokavimus',
+'blocklist-rangeblocks' => 'Slėpti IP adresų sričių blokavimus',
+'blocklist-timestamp' => 'Laiko žyma',
+'blocklist-target' => 'Užblokuotasis',
 'blocklist-expiry' => 'Galioja iki',
-'blocklist-by' => 'Blokavimo admin',
-'blocklist-params' => 'Blokuoti duomenys',
+'blocklist-by' => 'Užblokavęs administratorius',
+'blocklist-params' => 'Blokavimo nustatymai',
 'blocklist-reason' => 'Priežastis',
 'ipblocklist-submit' => 'Ieškoti',
 'ipblocklist-localblock' => 'Vietinis blokavimas',
@@ -2473,12 +2475,12 @@ ankščiau užblokuotam IP adresui ar naudotojui.',
 'emailblock' => 'el. paštas užblokuotas',
 'blocklist-nousertalk' => 'negali redaguoti savo aptarimų puslapio',
 'ipblocklist-empty' => 'Blokavimų sąrašas tuščias.',
-'ipblocklist-no-results' => 'Prašomas IP adresas ar naudotojo vardas nėra užblokuotas.',
+'ipblocklist-no-results' => 'Pasirinktas IP adresas ar naudotojo vardas nėra užblokuotas.',
 'blocklink' => 'blokuoti',
 'unblocklink' => 'atblokuoti',
 'change-blocklink' => 'keisti blokavimo nustatymus',
 'contribslink' => 'įnašas',
-'emaillink' => 'pasiųsti e-mail laišką',
+'emaillink' => 'siųsti el. laišką',
 'autoblocker' => 'Jūs buvote automatiškai užblokuotas, nes jūsų IP adresą neseniai naudojo „[[User:$1|$1]]“. Nurodyta naudotojo $1 blokavimo priežastis: „$2“.',
 'blocklogpage' => 'Blokavimų istorija',
 'blocklog-showlog' => 'Šis naudotojas buvo užblokuotas.
@@ -2498,26 +2500,26 @@ Jei norite pamatyti dabar blokuojamus adresus, žiūrėkite [[Special:BlockList|
 'block-log-flags-nousertalk' => 'negali redaguoti savo naudotojo aptarimo puslapio',
 'block-log-flags-angry-autoblock' => 'išplėstasis automatinis blokavimas įjungtas',
 'block-log-flags-hiddenname' => 'naudotojo vardas paslėptas',
-'range_block_disabled' => 'Administratoriaus galimybė kurti intevalinius blokus yra išjungta.',
+'range_block_disabled' => 'Administratoriams neleidžiama blokuoti IP adresų sričių.',
 'ipb_expiry_invalid' => 'Galiojimo laikas neleistinas.',
-'ipb_expiry_temp' => 'Paslėptų naudotojų vardų blokavimas turi būti nuolatinis.',
+'ipb_expiry_temp' => 'Paslėptų naudotojų vardų blokavimas turi būti neribotas.',
 'ipb_hide_invalid' => 'Negalima paslėpti šios paskyros; ji gali turėti per daug keitimų.',
 'ipb_already_blocked' => '„$1“ jau užblokuotas',
 'ipb-needreblock' => '$1 jau yra užblokuotas. Ar norite pakeisti nustatymus?',
 'ipb-otherblocks-header' => '{{PLURAL:$1|Kitas blokavimas|Kiti blokavimai}}',
-'unblock-hideuser' => 'Jūs negalite atblokuoti vartotoją, nes jų vardas buvo paslėpta.',
+'unblock-hideuser' => 'Jūs negalite atblokuoti šio naudotojo, nes jo vardas buvo paslėptas.',
 'ipb_cant_unblock' => 'Klaida: Blokavimo ID $1 nerastas. Galbūt jis jau atblokuotas.',
 'ipb_blocked_as_range' => 'Klaida: IP $1 nebuvo užblokuotas tiesiogiai, tad negali būti atblokuotas. Tačiau jis buvo užblokuotas kaip srities $2 dalis, kuri gali būti atblokuota.',
 'ip_range_invalid' => 'Neleistina IP sritis.',
 'ip_range_toolarge' => 'Didesni nei /$1 blokai neleidžiami.',
 'blockme' => 'Užblokuoti mane',
-'proxyblocker' => 'Tarpinių serverių blokuotojas',
+'proxyblocker' => 'Tarpinių serverių („proxy“) blokavimo priemonė',
 'proxyblocker-disabled' => 'Ši funkcija yra išjungta.',
 'proxyblockreason' => 'Jūsų IP adresas yra užblokuotas, nes jis yra atvirasis tarpinis serveris. Prašome susisiekti su savo interneto paslaugų tiekėju ar technine pagalba ir praneškite jiems apie šią svarbią saugumo problemą.',
 'proxyblocksuccess' => 'Atlikta.',
 'sorbsreason' => 'Jūsų IP adresas yra įtrauktas į atvirųjų tarpinių serverių DNSBL sąrašą, naudojamą šios svetainės.',
 'sorbs_create_account_reason' => 'Jūsų IP adresas yra įtrauktas į atvirųjų tarpinių serverių DNSBL sąrašą, naudojamą šios svetainės. Jūs negalite sukurti paskyros',
-'cant-block-while-blocked' => 'Jūs negalite blokuoti kitų naudotojų kuomet pats esate užblokuotas.',
+'cant-block-while-blocked' => 'Jūs negalite blokuoti kitų naudotojų, pats būdamas užblokuotas.',
 'cant-see-hidden-user' => 'Naudotojas, kurį bandote užblokuoti, jau yra užblokuotas arba paslėptas.
 Kadangi jūs neturi hideuser teisės, jūs negalite pamatyti arba pakeisti naudotojo blokavimo.',
 'ipbblocked' => 'Jūs negalite blokuoti ar atblokuoti kitų naudotojų, nes pats esate užblokuotas',
@@ -2588,7 +2590,7 @@ dėl to šį veiksmą vykdykite tik įsitikinę, kad suprantate visas pasekmes."
 
 Šiais atvejais jūs savo nuožiūra turite perkelti arba apjungti aptarimo puslapį.",
 'movearticle' => 'Pervardinti puslapį:',
-'moveuserpage-warning' => "'''Dėmesio:''' Jūs ruošiatės perkelti naudotojo puslapį. Atkreipkite dėmesį, kad bus perkeltas tik puslapis, naudotojas ''nebus'' pervadintas.",
+'moveuserpage-warning' => "'''Dėmesio:''' Jūs ruošiatės perkelti naudotojo puslapį. Atkreipkite dėmesį, kad bus perkeltas tik puslapis, naudotojas ''nebus'' pervadintas.",
 'movenologin' => 'Neprisijungęs',
 'movenologintext' => 'Norėdami pervadinti puslapį, turite būti užsiregistravęs naudotojas ir būti  [[Special:UserLogin|prisijungęs]].',
 'movenotallowed' => 'Jūs neturite teisių pervadinti puslapių.',
@@ -2792,7 +2794,7 @@ Išsaugokite jį savo kompiuteryje ir įkelkite jį čia.',
 'tooltip-search' => 'Ieškoti šiame projekte',
 'tooltip-search-go' => 'Eiti į puslapį su tokiu pavadinimu, jei toks yra',
 'tooltip-search-fulltext' => 'Ieškoti puslapių su šiuo tekstu',
-'tooltip-p-logo' => 'Pradinis puslapis',
+'tooltip-p-logo' => 'Eiti į pradinį puslapį',
 'tooltip-n-mainpage' => 'Eiti į pradinį puslapį',
 'tooltip-n-mainpage-description' => 'Eiti į pradinį puslapį',
 'tooltip-n-portal' => 'Apie projektą, ką galima daryti, kur ką rasti',
@@ -2861,11 +2863,12 @@ Leidžia pridėti atmetimo priežastį komentaruose',
 
 # Spam protection
 'spamprotectiontitle' => 'Priešreklaminis filtras',
-'spamprotectiontext' => 'Puslapis, kurį norėjote išsaugoti buvo užblokuotas priešreklaminio filtro. Tai turbūt sukėlė nuoroda į juodajame sąraše esančią svetainę.',
+'spamprotectiontext' => 'Tekstas, kurį norėjote išsaugoti, buvo užblokuotas priešreklaminio filtro. Taip turbūt įvyko dėl nuorodos į juodajame sąraše esančią svetainę.',
 'spamprotectionmatch' => 'Šis tekstas buvo atpažintas priešreklaminio filtro: $1',
 'spambot_username' => 'MediaWiki reklamų šalinimas',
 'spam_reverting' => 'Atkuriama į ankstesnę versiją, neturinčios nuorodų į $1',
 'spam_blanking' => 'Visos versijos turėjo nuorodų į $1, išvaloma',
+'spam_deleting' => 'Visos versijos turėjo nuorodų į $1, ištrinama',
 
 # Info page
 'pageinfo-title' => '„$1“ informacija',
@@ -3706,29 +3709,44 @@ Paveikslėliai yra rodomi pilna raiška, kiti failų tipai paleidžiami tiesiogi
 'newuserlog-byemail' => 'slaptažodis nusiųstas elektroniniu paštu',
 
 # Feedback
+'feedback-bugornote' => 'Jei jūs esate pasirengę aprašyti techninę problemą išsamiau, [$1 praneškite apie programinę klaidą].
+Kitu atveju, galite naudotis žemiau esančia paprastesne forma. Jūsų komentaras bus įtrauktas į puslapį „[$3 $2]“, kartu su jūsų naudotojo vardu ir jūsų naudojama naršykle.',
 'feedback-subject' => 'Tema:',
 'feedback-message' => 'Pranešimas:',
 'feedback-cancel' => 'Atšaukti',
 'feedback-submit' => 'Siųsti Atsiliepimą',
 'feedback-adding' => 'Pridedamas atsiliepimas į puslapį ...',
+'feedback-error1' => 'Klaida: Neatpažįstamas rezultatas iš API',
 'feedback-error2' => 'Klaida: Redagavimas nepavyko',
+'feedback-error3' => 'Klaida: Jokio atsakymo iš API',
+'feedback-thanks' => 'Ačiū! Jūsų atsiliepimas buvo užregistruotas puslapyje „[$2 $1]“.',
 'feedback-close' => 'Atlikta',
+'feedback-bugcheck' => 'Puiku! Tiesiog patikrinkite, ar tai ne viena [$1 jau žinomų klaidų].',
+'feedback-bugnew' => 'Patikrinau. Pranešti apie naują klaidą',
 
 # API errors
 'api-error-badaccess-groups' => 'Jums neleidžiama įkelti failus į šią wiki.',
 'api-error-copyuploaddisabled' => 'Siuntimas pagal URL yra išjungtas šiame serveryje.',
 'api-error-duplicate-popup-title' => 'Dubliuoti  {{PLURAL:$1|failą|failus}}',
 'api-error-empty-file' => 'Pateikta failas buvo tuščias.',
+'api-error-emptypage' => 'Kurti naujus, tuščius puslapius neleidžiama.',
+'api-error-fetchfileerror' => 'Vidinė klaida: Kažkas nutiko gaunant failą.',
 'api-error-file-too-large' => 'Failą, kurį pateikėte buvo per didelis.',
 'api-error-filename-tooshort' => 'Failo vardas yra per trumpas.',
 'api-error-filetype-banned' => 'Šis failų tipas yra uždraustas.',
+'api-error-filetype-missing' => 'Failas neturi galūnės.',
+'api-error-hookaborted' => 'Pakeitimą, kurį bandėte atlikti, nutraukė priedas.',
 'api-error-http' => 'Vidinė klaida: nepavyko prisijungti prie serverio.',
 'api-error-illegal-filename' => 'Failo vardas neleidžiamas.',
 'api-error-invalid-file-key' => 'Vidinė klaida: failas nerastas saugykloje.',
+'api-error-missingresult' => 'Vidinė klaida: nepavyko nustatyti, ar pavyko nukopijuoti.',
 'api-error-mustbeloggedin' => 'Jūs turite būti prisijungęs kad galėtumėte įkelti failus.',
 'api-error-mustbeposted' => 'Vidinė klaida: prašymas reikalauja HTTP POST.',
+'api-error-noimageinfo' => 'Įkelti pavyko, bet serveris nepateikė mums jokios informacijos apie failą.',
 'api-error-ok-but-empty' => 'Vidinė klaida: nėra atsakymo iš serverio.',
 'api-error-overwrite' => 'Perrašymas esamą failą neleidžiamas.',
+'api-error-stashfailed' => 'Vidinė klaida: serveriui nepavyko išsaugoti laikinąjį failą.',
+'api-error-timeout' => 'Serveris neatsakė per numatytą laiką.',
 'api-error-unclassified' => 'Įvyko nežinoma klaida',
 'api-error-unknown-code' => 'Nežinoma klaida: " $1 "',
 'api-error-unknown-error' => 'Vidinė klaida: kažkas nutiko bandant įkelti failą.',
index 497b6c4..69f914d 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Latgalian (Latgaļu)
+/** Latgalian (latgaļu)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index d327b31..8f09ec9 100644 (file)
@@ -22,9 +22,9 @@ $messages = array(
 'tog-usenewrc' => 'Tihdanglam thar belhchhan hmang rawh (JavaScript a ngai)',
 'tog-numberheadings' => 'A thupuite amahin nambar inpêktir rawh',
 'tog-showtoolbar' => 'Siamţhatna hmanraw-liang tilang rawh (JavaScript a ngai)',
-'tog-editondblclick' => 'Vawihnih klikin phêk siamţha rawh (JavaScript a ngai)',
+'tog-editondblclick' => 'Hmehphìrin phêk siamţha rawh (JavaScript a ngai)',
 'tog-editsection' => 'Hlawm hrang siamţhatna [siamţhatna] zawmna hmangin awmtir rawh',
-'tog-editsectiononrightclick' => 'Hlawm thupui ding-klik hmangin hlawm siamţhat theihna awmtir rawh (JavaScript a ngai)',
+'tog-editsectiononrightclick' => 'Hlawm thupui ding-hmeh hmangin hlawm siamţhat theihna awmtir rawh (JavaScript a ngai)',
 'tog-showtoc' => 'A chhunga thu awm te tilang rawh (thupui 3 aia tam phêk tan)',
 'tog-rememberpassword' => 'He ka rangpuifannaah hian min hre reng rawh (a rei berah ni $1  {{PLURAL:$1}})',
 'tog-watchcreations' => 'Ka phêk siamte ka ralvèn zing-ah telh rawh',
@@ -402,7 +402,7 @@ I [[Special:Preferences|{{SITENAME}}duhdàn]] siam danglam theihnghilh suh ang c
 'yourname' => 'Hmangtuhming:',
 'yourpassword' => 'Thurûk:',
 'yourpasswordagain' => 'Thurûk ziak nawn leh rawh le:',
-'remembermypassword' => 'He ka rangpuifanna hman mék (browser)-ah hian ka luhna (a rei berah ni {{PLURAL:$1||}}) min vawnsak rawh, thurûk ziah nawn ngai lo tùrin.',
+'remembermypassword' => 'He ka rangpuifanna hman mék (browser)-ah hian ka luhna (a rei berah ni {{PLURAL:$1||}}$1) min vawnsak rawh, thurûk ziah nawn ngai lo tùrin.',
 'securelogin-stick-https' => 'Luh hnuah HTTPS-ah hian chëng reng rawh.',
 'yourdomainname' => 'I ram:',
 'externaldberror' => 'Insawifiahna felfai lo a awm lo a nih loh vëk pawhin i pawnlam siangchan tihdanglam phalsak i ni lo a ni ang.',
index 289d5c4..1f6799d 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Latvian (Latviešu)
+/** Latvian (latviešu)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 08045b6..56660e9 100644 (file)
@@ -110,7 +110,7 @@ $namespaceAliases = array(
        'Utilisateur' => NS_USER,
        'Discussion_Utilisateur' => NS_USER_TALK,
        'Discussion_$1' => NS_PROJECT_TALK,
-       'Discussion_Image' => NS_IMAGE_TALK,
+       'Discussion_Image' => NS_FILE_TALK,
        'Discussion_MediaWiki' => NS_MEDIAWIKI_TALK,
        'Modèle' => NS_TEMPLATE,
        'Discussion_Modèle' => NS_TEMPLATE_TALK,
@@ -1728,6 +1728,7 @@ Tsindrio eo amin'ny lohan-tsanganana raha hanova ny laharam-pisehoana.",
 'listfiles_search_for' => 'Hitady anarana media :',
 'imgfile' => 'rakitra',
 'listfiles' => "Lisitran'ny rakitra",
+'listfiles_thumb' => 'Sary nakelezina',
 'listfiles_date' => 'Daty',
 'listfiles_name' => 'Anarana',
 'listfiles_user' => 'Mpikambana',
@@ -1868,6 +1869,8 @@ Aza manadino manamarina raha tsy misy rohy makany amin'ny endrika hafa alohan'ny
 'nmembers' => '{{PLURAL:$1|mpikambana|mpikambana}} $1',
 'nrevisions' => '{{PLURAL:$1|fanovana|fanovana}} $1',
 'nviews' => '{{PLURAL:}}Tsidika $1',
+'nimagelinks' => "Ampiasain'ny pejy miisa{{PLURAL:}} $1",
+'ntransclusions' => "Ampiasaina eo amin'ny pejy miisa $1 {{PLURAL:}}",
 'specialpage-empty' => 'Tsy misy valiny ho aseho.',
 'lonelypages' => 'Pejy manirery',
 'lonelypagestext' => "Ireo pejy ireo dia tsy voarohy sy tsy ampiasain'ny pejin' ity wiki ity.",
@@ -2283,6 +2286,8 @@ Vakio ny [[Special:Log/delete|laogim-pamafana]] ho an'ny lisitry ny famafana sy
 'undelete-filename-mismatch' => "Tsy afaka averina ny santiônan'ilay rakitra tamin'ny $1 : tsy mifanaraka ny anaran-drakitra.",
 'undelete-bad-store-key' => "Tsy mety averina ny santiônan'ilay rakitra tamin'ny $1 : mbola tsy tao ilay rakitra talohan'ny famafana.",
 'undelete-cleanup-error' => 'Tsy fetezana teo am-pamafana ilay rakitra an-tahiry tsy miasa « $1 ».',
+'undelete-missing-filearchive' => "Tsy afaka atao ny mamerina ilay rakitra tahiry miaraka amin'ny ID $1 satria tsy ao amin'ny banky angona izy io.
+Mety efa naverina angamba izy io.",
 'undelete-error-short' => 'Tsi-fetezana teo am-pamerenana ilay rakitra : $1',
 'undelete-error-long' => 'Nisy tsi-fetezana nitranga teo am-pamerenana ilay rakitra :
 
@@ -2444,6 +2449,8 @@ ny lisitry ny fisakanana sy fandrarana na tanteraka misy ankehitriny.",
 'ipb-otherblocks-header' => '{{PLURAL:$1}}sakana hafa',
 'ipb_cant_unblock' => 'Tsy fetezana : Marik ny fanakanana $1 tsy hita.
 Mety efa natao angamba ny fanalana sakana.',
+'ipb_blocked_as_range' => "Hadisoana : tsy nosakanana manokana ny adiresy IP $1 ka noho izany tsy afaka alàna ny sakany.
+Ao amin'ny laharana $2 izay afaka alàna sakana anefa izy io.",
 'ip_range_invalid' => 'Tsy mety io IP io.',
 'ip_range_toolarge' => 'Ny fanidiana laharana IP ngeza nohonny /$1 dia tsy azo atao.',
 'blockme' => 'Sakano ahy',
@@ -2534,6 +2541,7 @@ mifanaraka amin'ilay anarana vaovao. Azafady mba atambaro izay pejin-dresaka iza
 'movepage-page-exists' => 'Efa misy ny pejy $1 ary tsy afaka soloina ho azy.',
 'movepage-page-moved' => 'Voaova anarana lasa $2 ilay pejy $1.',
 'movepage-page-unmoved' => 'Tsy afaka novaina anarana $2 ilay pejy $1.',
+'movepage-max-pages' => 'Efa tratra ny isam-pejy farafahabetsany izay azo ovaina anarana (pejy $1){{PLURAL:}}, ka tsy ho voaova anarana ho azy intsony ny pejy hafa.',
 'movelogpage' => 'Ny laogim-panisahana',
 'movelogpagetext' => 'Lisitry ny pejy nafindra toerana.',
 'movesubpage' => 'Zana-pejy{{PLURAL:$1||}} $1',
@@ -2554,6 +2562,7 @@ Efa misy ny lahatsoratra hoe "[[:$1]]". Irinao ve ny hamafana azy mba hahafahana
 'immobile-source-page' => 'Tsy azo ovaina anarana ity pejy ity.',
 'immobile-target-page' => "Tsy afaka ovaina anarana makany amin'io lohateny io ilay pejy.",
 'imagenocrossnamespace' => 'Tsy mety ovaina anarana makany amina anaran-tsehatra hafa afatsy rakitra ihany ny rakitra.',
+'nonfile-cannot-move-to-file' => "Tsy afaka manova anaran'ny pejy tsy rakitra any amin'ny anaran-tsehatry ny rakitra.",
 'imagetypemismatch' => "Tsy mifanaraka amin'ny karazany ny fanitaran'ity rakitra ity.",
 'imageinvalidfilename' => 'Diso ny anaran-drakitra tanjona',
 'fix-double-redirects' => "Hanao update ny fihodinana makany amin'ny lohateny fotony",
@@ -2880,6 +2889,7 @@ Tokony sary tsy misy na sary tsy izy ny rohy voalohany anaty andalana iray .
 'exif-copyright' => 'Mpanana ilay copyright',
 'exif-exifversion' => 'Santiôna EXIF',
 'exif-flashpixversion' => 'Santiôna FlashPix',
+'exif-colorspace' => 'Valan-doko',
 'exif-pixelydimension' => 'Haavon-tsary ekena',
 'exif-pixelxdimension' => 'Halalan-tsary ekena',
 'exif-usercomment' => 'Diniky ny mpikambana',
@@ -2887,8 +2897,10 @@ Tokony sary tsy misy na sary tsy izy ny rohy voalohany anaty andalana iray .
 'exif-datetimeoriginal' => 'Daty fangalana niaviana',
 'exif-datetimedigitized' => 'Daty nanaovana numerisation',
 'exif-subsectime' => 'Daty nanovana',
+'exif-exposuretime' => 'Fitaona famakiana',
 'exif-exposuretime-format' => '$1 s ($2 s)',
 'exif-fnumber' => 'Isa F',
+'exif-exposureprogram' => 'Fomba famakiana',
 'exif-isospeedratings' => 'ISO',
 'exif-aperturevalue' => 'Sanasana',
 'exif-lightsource' => 'Loharanon-kazavana',
index 3122454..97f612f 100644 (file)
@@ -334,7 +334,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Скриј испатролирани уредувања во скорешните промени',
 'tog-newpageshidepatrolled' => 'Скриј испатролирани страници од списокот на нови страници',
 'tog-extendwatchlist' => 'Прошири го список на набљудувања за приказ на сите промени, не само скорешните',
-'tog-usenewrc' => 'Ð\9aоÑ\80иÑ\81Ñ\82и Ð¿Ð¾Ð´Ð¾Ð±Ñ\80ени скорешни промени (бара JavaScript)',
+'tog-usenewrc' => 'Ð\9fÑ\80омени Ð²Ð¾ Ð³Ñ\80Ñ\83пи Ð¿Ð¾ Ñ\81Ñ\82Ñ\80аниÑ\86и Ð²Ð¾ Ñ\81пиÑ\81окоÑ\82 Ð½Ð° скорешни промени (бара JavaScript)',
 'tog-numberheadings' => 'Авто нумерирање на заглавијата',
 'tog-showtoolbar' => 'Прикажи алатник за уредување (JavaScript)',
 'tog-editondblclick' => 'Уредување на страници при двојно кликнување (JavaScript)',
@@ -342,17 +342,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Овозможи уредување на заглавија со десен клик на нивниот наслов (JavaScript)',
 'tog-showtoc' => 'Покажи содржина (за страници со повеќе од 3 заглавија)',
 'tog-rememberpassword' => 'Запомни ме на овој прелистувач (највеќе до $1 {{PLURAL:$1|ден|дена}})',
-'tog-watchcreations' => 'Додавај ги страниците што ги создавам во списокот на набљудувања',
-'tog-watchdefault' => 'Додавај ги страниците што ги уредувам во списокот на набљудувања',
-'tog-watchmoves' => 'Додавај ги страниците што ги преместувам во списокот на набљудувања',
-'tog-watchdeletion' => 'Додавај ги страниците што ги бришам во списокот на набљудувања',
+'tog-watchcreations' => 'Ð\94одаваÑ\98 Ð³Ð¸ Ñ\81Ñ\82Ñ\80аниÑ\86иÑ\82е Ñ\88Ñ\82о Ð³Ð¸ Ñ\81оздавам Ð¸ Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82екиÑ\82е Ñ\88Ñ\82о Ð³Ð¸ Ð¿Ð¾Ð´Ð¸Ð³Ð°Ð¼ Ð²Ð¾ Ñ\81пиÑ\81окоÑ\82 Ð½Ð° Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83ваÑ\9aа',
+'tog-watchdefault' => 'Додавај ги страниците и податотеките што ги уредувам во списокот на набљудувања',
+'tog-watchmoves' => 'Додавај ги страниците и податотеките што ги преместувам во списокот на набљудувања',
+'tog-watchdeletion' => 'Додавај ги страниците и податотеките што ги бришам во списокот на набљудувања',
 'tog-minordefault' => 'Обележувај ги сите уредувања како ситни по основно',
 'tog-previewontop' => 'Прикажи го прегледот пред кутијата за уредување',
 'tog-previewonfirst' => 'Прикажи преглед на првото уредување',
 'tog-nocache' => 'Оневозможи кеширање на страниците во прелистувачот',
-'tog-enotifwatchlistpages' => 'Испраќај ми е-пошта при промена на страница од мојот список на набљудувања',
+'tog-enotifwatchlistpages' => 'Ð\98Ñ\81пÑ\80аÑ\9cаÑ\98 Ð¼Ð¸ Ðµ-поÑ\88Ñ\82а Ð¿Ñ\80и Ð¿Ñ\80омена Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86а Ð¸Ð»Ð¸ Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82ека Ð¾Ð´ Ð¼Ð¾Ñ\98оÑ\82 Ñ\81пиÑ\81ок Ð½Ð° Ð½Ð°Ð±Ñ\99Ñ\83дÑ\83ваÑ\9aа',
 'tog-enotifusertalkpages' => 'Испраќај ми е-пошта при промена на мојата страница за разговор',
-'tog-enotifminoredits' => 'Испраќај ми е-пошта и за ситни промени во страниците',
+'tog-enotifminoredits' => 'Испраќај ми е-пошта и за ситни промени во страниците и податотеките',
 'tog-enotifrevealaddr' => 'Откриј ја мојата е-поштенска адреса во пораките за известување',
 'tog-shownumberswatching' => 'Прикажи го бројот на корисници кои набљудуваат',
 'tog-oldsig' => 'Постоечки потпис:',
@@ -691,6 +691,8 @@ $1',
 'cannotdelete' => 'Страницата или податотеката „$1“ не можеше да се избрише.
 Можеби некој друг веќе ја избришал.',
 'cannotdelete-title' => 'Не можам да ја избришам страницата „$1“',
+'delete-hook-aborted' => 'Бришењето е прекинато со кука.
+Не е дадено никакво образложение.',
 'badtitle' => 'Лош наслов',
 'badtitletext' => 'Бараниот наслов е грешен, празен или неисправно поврзан меѓујазичен или меѓувики наслов. 
 Може да содржи недопуштени знаци.',
@@ -727,6 +729,8 @@ $2',
 Администраторот што ја заклучи го понуди следново образложение: „''$3''“.",
 'invalidtitle-knownnamespace' => 'Неважечки наслов со именски простор „$2“ и текст „$3“',
 'invalidtitle-unknownnamespace' => 'Неважечки наслов со именски простор бр. $1 и текст „$2“',
+'exception-nologin' => 'Не сте најавени',
+'exception-nologin-text' => 'Оваа страница или постапка бара да сте најавени на викито.',
 
 # Virus scanner
 'virus-badscanner' => "Лоша поставка: непознат проверувач на вируси: ''$1''",
@@ -4179,6 +4183,8 @@ $5
 '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 5b2f840..e7dea16 100644 (file)
@@ -334,7 +334,7 @@ $messages = array(
 'tog-hidepatrolled' => 'റോന്തുചുറ്റിയ തിരുത്തുകൾ പുതിയമാറ്റങ്ങളിൽ പ്രദർശിപ്പിക്കാതിരിക്കുക',
 'tog-newpageshidepatrolled' => 'റോന്തുചുറ്റിയ താളുകൾ പുതിയതാളുകളുടെ പട്ടികയിൽ പ്രദർശിപ്പിക്കാതിരിക്കുക',
 'tog-extendwatchlist' => 'ഏറ്റവും പുതിയവ മാത്രമല്ല, എല്ലാ മാറ്റങ്ങളും ദൃശ്യമാകുന്ന വിധത്തിൽ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടിക വികസിപ്പിക്കുക.',
-'tog-usenewrc' => 'വിപàµ\81à´²àµ\80à´\95àµ\83à´¤ à´ªàµ\81തിയ à´®à´¾à´±àµ\8dà´±à´\99àµ\8dà´\99ൾ à´\89പയàµ\8bà´\97ിക്കുക (ജാവാസ്ക്രിപ്റ്റ് ആവശ്യമാണ്)',
+'tog-usenewrc' => 'സമàµ\80à´ªà´\95ാല à´®à´¾à´±àµ\8dà´±à´\99àµ\8dà´\99ൾ à´¤à´¾à´³à´¿à´²àµ\81à´\82 à´¶àµ\8dà´°à´¦àµ\8dധിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dനവയàµ\81à´\9fàµ\86 à´ªà´\9fàµ\8dà´\9fà´¿à´\95യിലàµ\81à´\82 à´®à´¾à´±àµ\8dà´±à´\99àµ\8dà´\99ൾ à´¤à´¾à´³à´¿à´¨à´¨àµ\81സരിà´\9aàµ\8dà´\9aàµ\8d à´\97ണമായി à´ªàµ\8dരദർശിപàµ\8dà´ªിക്കുക (ജാവാസ്ക്രിപ്റ്റ് ആവശ്യമാണ്)',
 'tog-numberheadings' => 'ഉപവിഭാഗങ്ങൾക്ക് ക്രമസംഖ്യ കൊടുക്കുക',
 'tog-showtoolbar' => 'തിരുത്തൽ റ്റൂൾബാർ  പ്രദർശിപ്പിക്കുക (ജാവാസ്ക്രിപ്റ്റ്)',
 'tog-editondblclick' => 'താളുകളിൽ ഇരട്ട ക്ലിക്ക് ചെയ്യുമ്പോൾ തിരുത്താനനുവദിക്കുക (ജാവാസ്ക്രിപ്റ്റ്)',
@@ -342,15 +342,15 @@ $messages = array(
 'tog-editsectiononrightclick' => 'ഉപവിഭാഗങ്ങളുടെ തലക്കെട്ടിൽ റൈറ്റ് ക്ലിക്ക് ചെയ്യുന്നതു വഴി തിരുത്താനനുവദിക്കുക (ജാവാസ്ക്രിപ്റ്റ്)',
 'tog-showtoc' => 'ഉള്ളടക്കപ്പട്ടിക പ്രദർശിപ്പിക്കുക (മൂന്നിൽ കൂടുതൽ ഉപശീർഷകങ്ങളുള്ള താളുകൾക്കു മാത്രം)',
 'tog-rememberpassword' => 'എന്റെ പ്രവേശനം ഈ ബ്രൗസറിൽ ({{PLURAL:$1|ഒരു ദിവസം|$1 ദിവസം}}) ഓർത്തുവെക്കുക',
-'tog-watchcreations' => 'à´\9eാൻ à´¸àµ\83à´·àµ\8dà´\9fà´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´¤à´¾à´³àµ\81à´\95ൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
-'tog-watchdefault' => 'à´\9eാൻ à´¤à´¿à´°àµ\81à´¤àµ\8dà´¤àµ\81à´¨àµ\8dà´¨ à´¤à´¾à´³àµ\81à´\95ൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
-'tog-watchmoves' => 'à´\9eാൻ à´¤à´²à´\95àµ\8dà´\95àµ\86à´\9fàµ\8dà´\9fàµ\81 à´®à´¾à´±àµ\8dà´±àµ\81à´¨àµ\8dà´¨ à´¤à´¾à´³àµ\81à´\95ൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
-'tog-watchdeletion' => 'à´\9eാൻ à´¨àµ\80à´\95àµ\8dà´\95à´\82 à´\9aàµ\86à´¯àµ\8dà´¯àµ\81à´¨àµ\8dà´¨ à´¤à´¾à´³àµ\81à´\95ൾ ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
+'tog-watchcreations' => 'à´\9eാൻ à´¸àµ\83à´·àµ\8dà´\9fà´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´¤à´¾à´³àµ\81à´\95à´³àµ\81à´\82 à´\9eാൻ à´\85à´ªàµ\8dâ\80\8cà´²àµ\8bà´¡àµ\8d à´\9aàµ\86à´¯àµ\8dà´¯àµ\81à´¨àµ\8dà´¨ à´ªàµ\8dരമാണà´\99àµ\8dà´\99à´³àµ\81à´\82 ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
+'tog-watchdefault' => 'à´\9eാൻ à´¤à´¿à´°àµ\81à´¤àµ\8dà´¤àµ\81à´¨àµ\8dà´¨ à´¤à´¾à´³àµ\81à´\95à´³àµ\81à´\82 à´ªàµ\8dരമാണà´\99àµ\8dà´\99à´³àµ\81à´\82 ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
+'tog-watchmoves' => 'à´\9eാൻ à´¤à´²à´\95àµ\8dà´\95àµ\86à´\9fàµ\8dà´\9fàµ\81 à´®à´¾à´±àµ\8dà´±àµ\81à´¨àµ\8dà´¨ à´¤à´¾à´³àµ\81à´\95à´³àµ\81à´\82 à´ªàµ\8dരമാണà´\99àµ\8dà´\99à´³àµ\81à´\82 ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
+'tog-watchdeletion' => 'à´\9eാൻ à´¨àµ\80à´\95àµ\8dà´\95à´\82 à´\9aàµ\86à´¯àµ\8dà´¯àµ\81à´¨àµ\8dà´¨ à´¤à´¾à´³àµ\81à´\95à´³àµ\81à´\82 à´ªàµ\8dരമാണà´\99àµ\8dà´\99à´³àµ\81à´\82 ശ്രദ്ധിക്കുന്ന താളുകളുടെ പട്ടികയിൽ ചേർക്കുക',
 'tog-minordefault' => 'എല്ലാ തിരുത്തലുകളും സ്വതേ ചെറുതിരുത്തലുകളായി അടയാളപ്പെടുത്തുക',
 'tog-previewontop' => 'തിരുത്തൽ പെട്ടിക്കു മുകളിൽ പ്രിവ്യൂ കാണിക്കുക',
 'tog-previewonfirst' => 'ആദ്യത്തെ തിരുത്തലിന്റെ പ്രിവ്യൂ കാണിക്കുക',
 'tog-nocache' => 'ബ്രൗസറിൽ താളുകൾ തദ്ദേശീയമായി സംഭരിച്ചുവയ്ക്കുന്നത് നിർജ്ജീവമാക്കുക',
-'tog-enotifwatchlistpages' => 'à´\9eാൻ à´¶àµ\8dà´°à´¦àµ\8dധിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´¤à´¾à´³àµ\81à´\95ൾà´\95àµ\8dà´\95àµ\81 മാറ്റം സംഭവിച്ചാൽ എനിക്കു ഇമെയിൽ അയക്കുക',
+'tog-enotifwatchlistpages' => 'à´\9eാൻ à´¶àµ\8dà´°à´¦àµ\8dധിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´¤à´¾à´³àµ\81à´\95ൾà´\95àµ\8dà´\95àµ\8b à´ªàµ\8dരമാണà´\99àµ\8dà´\99ൾà´\95àµ\8dà´\95àµ\8b മാറ്റം സംഭവിച്ചാൽ എനിക്കു ഇമെയിൽ അയക്കുക',
 'tog-enotifusertalkpages' => 'എന്റെ സം‌വാദം താളിനു മാറ്റം സംഭവിച്ചാൽ ഇമെയിൽ അയക്കുക',
 'tog-enotifminoredits' => 'ചെറുതിരുത്തലുകൾക്കും എനിക്ക് ഇമെയിൽ അയയ്ക്കുക',
 'tog-enotifrevealaddr' => 'വിജ്ഞാപന മെയിലുകളിൽ എന്റെ ഇമെയിൽ വിലാസം വെളിവാക്കാൻ അനുവദിക്കുക',
@@ -684,6 +684,8 @@ $1',
 'cannotdelete' => '"$1" എന്ന താൾ അഥവാ പ്രമാണം നീക്കം ചെയ്യാൻ കഴിഞ്ഞില്ല.
 അതു മിക്കവാറും മറ്റാരെങ്കിലും നീക്കം ചെയ്തിട്ടുണ്ടാവാം.',
 'cannotdelete-title' => '"$1" എന്ന താൾ മായ്ക്കാൻ കഴിയില്ല',
+'delete-hook-aborted' => 'മായ്ക്കൽ കൊളുത്തിനാൽ റദ്ദാക്കിയിരിക്കുന്നു.
+വിശദീകരണമൊന്നും നൽകിയിട്ടില്ല.',
 'badtitle' => 'അസാധുവായ തലക്കെട്ട്',
 'badtitletext' => 'താങ്കൾ ആവശ്യപ്പെട്ട തലക്കെട്ടുള്ള ഒരു താൾ നിലവിലില്ല. ഇതു തെറ്റായി അന്തർഭാഷാ/അന്തർവിക്കി കണ്ണി ചെയ്യപ്പെട്ടതു മൂലമോ, തലക്കെട്ടിൽ ഉപയോഗിക്കരുതാത്ത അക്ഷരരൂപങ്ങൾ ഉപയോഗിച്ചതു മൂലമോ സംഭവിച്ചതായിരിക്കാം.',
 'perfcached' => 'താഴെ കൊടുത്തിരിക്കുന്ന വിവരം ശേഖരിച്ചു വെച്ചിരിക്കുന്നതാണ്, അതുകൊണ്ട് ചിലപ്പോൾ പുതിയതായിരിക്കണമെന്നില്ല. പരമാവധി {{PLURAL:$1|ഒരു ഫലം|$1 ഫലങ്ങൾ}} ശേഖരിച്ചുവെച്ചിരിക്കുന്നവയിൽ ഉണ്ട്.',
@@ -715,6 +717,8 @@ $2',
 ബന്ധിച്ച കാര്യ‌നിർവാഹക(ൻ) നൽകിയിരിക്കുന്ന കാരണം "\'\'$3\'\'" എന്നാണ്.',
 'invalidtitle-knownnamespace' => 'നാമമേഖല "$2", എഴുത്ത് "$3" എന്നിവ ഉപയോഗിച്ചുള്ള അസാധുവായ തലക്കെട്ട്',
 'invalidtitle-unknownnamespace' => 'അപരിചിതമായ നാമമേഖലാ സംഖ്യ $1, എഴുത്ത് "$2" എന്നിവ ഉപയോഗിച്ചുള്ള അസാധുവായ തലക്കെട്ട്',
+'exception-nologin' => 'ലോഗിൻ ചെയ്തിട്ടില്ല',
+'exception-nologin-text' => 'ഈ വിക്കിയിൽ ഈ താൾ അല്ലെങ്കിൽ പ്രവൃത്തി ലഭ്യമാകാൻ താങ്കൾ ലോഗിൻ ചെയ്തിരിക്കേണ്ടതാണ്.',
 
 # Virus scanner
 'virus-badscanner' => "തെറ്റായ ക്രമീകരണങ്ങൾ: അപരിചിതമായ വൈറസ് തിരച്ചിൽ ഉപാധി :  ''$1''",
@@ -1053,8 +1057,8 @@ $1 ആണ് ഈ തടയൽ നടത്തിയത്. ''$2'' എന്ന
 'moveddeleted-notice' => 'ഈ താൾ മായ്ക്കപ്പെട്ടിരിക്കുന്നു.
 ഈ താളിന്റെ മായ്ക്കൽ രേഖ പരിശോധനയ്ക്കായി താഴെ കൊടുത്തിരിക്കുന്നു',
 'log-fulllog' => 'എല്ലാ രേഖകളും കാണുക',
-'edit-hook-aborted' => 'à´\95àµ\8aà´³àµ\81à´¤àµ\8dà´¤àµ\8d à´\9bàµ\87ദിà´\9aàµ\8dà´\9a à´¤à´¿à´°àµ\81à´¤àµ\8dà´¤àµ\8d.
-à´\87à´¤àµ\8d à´\92à´°àµ\81 à´µà´¿à´¶à´¦àµ\80à´\95രണവും നൽകിയിട്ടില്ല.',
+'edit-hook-aborted' => 'തിരàµ\81à´¤àµ\8dതൽ à´\95àµ\8aà´³àµ\81à´¤àµ\8dതിനാൽ à´±à´¦àµ\8dദാà´\95àµ\8dà´\95ിയിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨àµ\81.
+വിശദàµ\80à´\95രണമàµ\8aà´¨àµ\8dà´¨ും നൽകിയിട്ടില്ല.',
 'edit-gone-missing' => 'ഈ താൾ പുതുക്കുവാൻ സാധിക്കുകയില്ല.
 ഇത് മായ്ക്കപ്പെട്ടതായി കാണുന്നു.',
 'edit-conflict' => 'തിരുത്തൽ സമരസപ്പെടായ്ക.',
@@ -1558,7 +1562,7 @@ $1",
 'right-edituserjs' => 'മറ്റ് ഉപയോക്താക്കളുടെ JS പ്രമാണങ്ങൾ തിരുത്തുക',
 'right-rollback' => 'ഒരു പ്രത്യേക താളിൽ അവസാനം തിരുത്തൽ നടത്തിയ ഉപയോക്താവിന്റെ തിരുത്തൽ പെട്ടെന്ന് ഒഴിവാക്കുക',
 'right-markbotedits' => 'മുൻപ്രാപനം നടത്തിയ തിരുത്തലുകൾ യാന്ത്രിക തിരുത്തലുകളായി അടയാളപ്പെടുത്തുക',
-'right-noratelimit' => 'നിലവാരമിà´\9fലിനàµ\8dà´±àµ\86 പരിധികൾ ബാധകമല്ല',
+'right-noratelimit' => 'à´ªàµ\8dരവർതàµ\8dതനà´\99àµ\8dà´\99ൾà´\95àµ\8dà´\95àµ\8d പരിധികൾ ബാധകമല്ല',
 'right-import' => 'മറ്റുള്ള വിക്കികളിൽ നിന്നും താളുകൾ ഇറക്കുമതി ചെയ്യുക',
 'right-importupload' => 'അപ്‌‌ലോഡ് ചെയ്ത പ്രമാണത്തിൽ നിന്നും താളുകൾ ഇറക്കുമതി ചെയ്യുക',
 'right-patrol' => 'മറ്റുള്ളവരുടെ തിരുത്തലുകൾ റോന്തുചുറ്റിയതായി അടയാളപ്പെടുത്തുക',
@@ -3913,6 +3917,8 @@ $5
 '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 81c228d..2d7ee74 100644 (file)
@@ -28,6 +28,7 @@
  * @author Rahuldeshmukh101
  * @author Rdeshmuk
  * @author Sankalpdravid
+ * @author Sau6402
  * @author Shantanoo
  * @author Shreewiki
  * @author Shreyas19
@@ -958,6 +959,7 @@ $2',
 'updated' => '(बदल झाला आहे.)',
 'note' => "'''सूचना:'''",
 'previewnote' => "'''लक्षात ठेवा की ही फक्त झलक आहे''', बदल अजून जतन करण्यात आलेले नाहीत.",
+'continue-editing' => 'संपादन चालु राहुदे',
 'previewconflict' => 'वरील संपादन क्षेत्रातील मजकूर जतन केल्यावर या झलकेप्रमाणे दिसेल.',
 'session_fail_preview' => "'''क्षमस्व! सत्र विदेच्या क्षयामुळे आम्ही तुमची संपादन प्रक्रीया पार पाडू शकलो नाही.कृपया पुन्हा प्रयत्न करा.जर एवढ्याने काम झाले नाही तर सदस्य खात्यातून बाहेर पडून पुन्हा प्रवेश करून पहा.'''",
 'session_fail_preview_html' => "'''क्षमस्व! सत्र विदेच्या क्षयामुळे आम्ही तुमची संपादन प्रक्रीया पार पाडू शकलो नाही.'''
@@ -970,6 +972,7 @@ $2',
 असे कदाचित तुम्ही अनामिक proxy वापरत असल्याने होऊ शकते.'''",
 'edit_form_incomplete' => '”’तुमच्या संपादनाचा काही भाग सर्व्हरपर्यंत पोचला नाही; तुमचे संपादन पूर्ण आहे का याची पुन्हा खात्री करा.',
 'editing' => '$1 चे संपादन होत आहे.',
+'creating' => '$1 ची निर्मिती सुरु आहे',
 'editingsection' => '$1 (विभाग) संपादन',
 'editingcomment' => '$1 चे संपादन (प्रतिक्रिया)',
 'editconflict' => 'वादग्रस्त संपादन: $1',
@@ -1219,6 +1222,8 @@ $1",
 
 # Diffs
 'history-title' => '"$1" चा संपादन इतिहास',
+'difference-title' => '"$1" च्या विविध उजळण्या',
+'difference-title-multipage' => '"$1" व "$2" या पानान मधला फरक',
 'difference-multipage' => '(पानांमधील फरक)',
 'lineno' => 'ओळ $1:',
 'compareselectedversions' => 'निवडलेल्या आवृत्त्यांमधील बदल पहा',
@@ -1313,6 +1318,7 @@ $1",
 'prefs-beta' => 'बीटा चेहेरेपट्टी',
 'prefs-datetime' => 'दिनांक आणि वेळ',
 'prefs-labs' => 'प्रायोगिक वैशिष्ट्ये',
+'prefs-user-pages' => 'सदस्य पान',
 'prefs-personal' => 'सदस्य व्यक्तिरेखा',
 'prefs-rc' => 'अलीकडील बदल',
 'prefs-watchlist' => 'नित्य पहाण्याची सूची',
@@ -1755,7 +1761,8 @@ $1',
 'backend-fail-writetemp' => 'तात्पुरत्या संचिकेत लिहिणे जमले नाही.',
 'backend-fail-closetemp' => 'तात्पुरती संचिका बंद करणे जमले नाही.',
 'backend-fail-read' => '$1 ही संचिका वाचता आली नाही.',
-'backend-fail-create' => '$1 ही संचिका बनवता आली नाही.',
+'backend-fail-create' => '$1 ही संचिका लिहिता आली नाही.',
+'backend-fail-maxsize' => '$1 ही संचिका लिहिता आली नाही कारण ती {{PLURAL:$2|one byte|$2 bytes}} पेक्षा मोठी आहे.',
 'backend-fail-readonly' => 'पार्श्वभौमीक साठवण "$1" “फक्त वाचा” असे आहे. दिलेले कारण "$2" आहे.',
 'backend-fail-synced' => 'अंतर्गत पार्श्वभौमीक साठवणीतील फाईल "$1" विसंगत आहे.',
 'backend-fail-connect' => 'पार्श्वभौमीक साठा "$1"शी संबंध जोडू शकत नाही.',
@@ -2086,6 +2093,9 @@ Input:contenttype/subtype, e.g. <tt>image/jpeg</tt>.',
 'allpagesbadtitle' => 'दिलेले शीर्षक चुकीचे किंवा आंतरभाषीय किंवा आंतरविकि शब्दाने सुरू होणारे होते. त्यात एक किंवा अधिक शीर्षकात न वापरता येणारी अक्षरे असावीत.',
 'allpages-bad-ns' => '{{SITENAME}}मध्ये "$1" हे नामविश्व नाही.',
 
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'आखेरचे दृश्य',
+
 # Special:Categories
 'categories' => 'वर्ग',
 'categoriespagetext' => 'विकिवर खालील वर्ग {{PLURAL:$1|आहे|आहेत}}.
@@ -3626,6 +3636,9 @@ $5
 'version-software' => 'स्थापित संगणक प्रणाली (Installed software)',
 'version-software-product' => 'उत्पादन',
 'version-software-version' => 'आवृत्ती',
+'version-entrypoints' => 'आत येणारी यू॰आर॰एल',
+'version-entrypoints-header-entrypoint' => 'आत येण्याचा मार्ग',
+'version-entrypoints-header-url' => 'यू॰आर॰एल',
 
 # Special:FilePath
 'filepath' => 'संचिका मार्ग',
@@ -3809,4 +3822,16 @@ $5
 'api-error-uploaddisabled' => 'चढवण्याचे कार्य ह्या विकिवर अवरुद्ध करण्यात आले आहे',
 'api-error-verification-error' => 'ही संचिका भ्रष्ट(करप्ट) झाली किंवा चुकिचा विस्तार(एक्सटेंशन) असलेली असू शकते.',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|सेकंदापूर्वी|सेकंदांपूर्वी}}',
+'duration-minutes' => '$1 {{PLURAL:$1|मिनिटापूर्वी|मिनिटांपूर्वी}}',
+'duration-hours' => '$1 {{PLURAL:$1|तासापूर्वी|तासांपूर्वी}}',
+'duration-days' => '$1 {{PLURAL:$1|दिवसापूर्वी|दिवसांपूर्वी}}',
+'duration-weeks' => '$1 {{PLURAL:$1|आठवड्यापूर्वी | आठवड्यांपूर्वी}}',
+'duration-years' => '$1 {{PLURAL:$1|वर्षापूर्वी|वर्षांपूर्वी}}',
+'duration-decades' => '$1 {{PLURAL:$1|दशकापूर्वी|दशकांपूर्वी }}',
+'duration-centuries' => '$1 {{PLURAL:$1|शतकापूर्वी|शतकांपूर्वी }}',
+
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'सर्व्हर "$1" वरील कुलूप उघडू शकत नाही',
 );
index b39fecf..3f0e6c4 100644 (file)
@@ -198,7 +198,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Sorokkan suntingan yang telah dironda daripada senarai perubahan terkini',
 'tog-newpageshidepatrolled' => 'Sorokkan laman yang telah dironda daripada senarai laman baru',
 'tog-extendwatchlist' => 'Kembangkan senarai pantau untuk memaparkan semua perubahan, bukan hanya yang terkini',
-'tog-usenewrc' => 'Guna peningkatan perubahan terkini (perlukan JavaScript)',
+'tog-usenewrc' => 'Perubahan kumpulan mengikut laman dalam perubahan terkini dan senarai pantau (memerlukan JavaScript)',
 'tog-numberheadings' => 'Nomborkan tajuk secara automatik',
 'tog-showtoolbar' => 'Tunjukkan bar sunting (JavaScript)',
 'tog-editondblclick' => 'Klik ganda untuk sunting halaman (JavaScript)',
@@ -555,6 +555,8 @@ Sila catat URL bagi laman ini dan laporkan perkara ini kepada seorang [[Special:
 'cannotdelete' => 'Laman atau fail $1 tidak dapat dihapuskan.
 Ia mungkin telah pun dihapuskan oleh orang lain.',
 'cannotdelete-title' => 'Laman "$1" tidak dapat dihapuskan',
+'delete-hook-aborted' => 'Penghapusan dibatalkan oleh penyangkuk.
+Tiada sebab diberikan.',
 'badtitle' => 'Tajuk tidak sah',
 'badtitletext' => 'Tajuk laman yang diminta tidak sah, kosong, ataupun tajuk antara bahasa atau tajuk antara wiki yang salah dipaut. Ia mungkin mengandungi aksara yang tidak dibenarkan.',
 'perfcached' => 'Data yang berikut disimpan dalam cache dan mungkin tidak terkemas kini. Semaksimum {{PLURAL:$1|satu hasil|$1 hasil}} terdapat dalam cache.',
@@ -585,6 +587,8 @@ Pertanyaan: $2',
 Pentadbir yang menguncinya memberikan penjelasan yang berikut: "$3".',
 'invalidtitle-knownnamespace' => 'Tajuk tidak sah dengan ruang nama "$2" dan teks "$3"',
 'invalidtitle-unknownnamespace' => 'Tajuk tidak sah dengan nombor ruang nama tidak dikenali $1 dan teks "$2"',
+'exception-nologin' => 'Belum log masuk',
+'exception-nologin-text' => 'Halaman atau tindakan ini memerlukan anda untuk log masuk ke dalam wiki ini.',
 
 # Virus scanner
 'virus-badscanner' => "Konfigurasi rosak: pengimbas virus yang tidak diketahui: ''$1''",
@@ -2881,7 +2885,7 @@ Simpan dalam komputer anda dan muat naiknya di sini.',
 'tooltip-rollback' => 'Balikkan semua suntingan oleh penyumbang terakhir pada laman ini dengan satu klik.',
 'tooltip-undo' => 'Balikkan suntingan ini dan buka borang sunting dalam mod pralihat. Sebab boleh dinyatakan dalam ruangan ringkasan.',
 'tooltip-preferences-save' => 'Simpan keutamaan',
-'tooltip-summary' => 'Masukkan ringkasan pendek',
+'tooltip-summary' => 'Berikan ringkasan',
 
 # Stylesheets
 'common.css' => '/* CSS yang terletak di sini akan digunakan pada semua kulit */',
@@ -3803,6 +3807,8 @@ Ataupun, anda boleh menggunakan borang yang mudah di bawah. Ulasan anda akan dic
 'api-error-empty-file' => 'Fail yang anda serahkan adalah kosong.',
 'api-error-emptypage' => 'Anda tidak dibenarkan membuat laman baru yang kosong.',
 'api-error-fetchfileerror' => 'Ralat dalaman: ada malasah ketika mengambil fail itu.',
+'api-error-fileexists-forbidden' => 'Fail bernama "$1" sudah wujud, dan tidak boleh ditulis ganti.',
+'api-error-fileexists-shared-forbidden' => 'Fail bernama "$1" sudah wujud dalam repositori fail kongsian, dan tidak boleh ditulis ganti.',
 'api-error-file-too-large' => 'Fail yang anda serahkan adalah terlalu besar.',
 'api-error-filename-tooshort' => 'Nama fail ini terlalu pendek.',
 'api-error-filetype-banned' => 'Fail jenis ini adalah dilarang.',
index 0f1552c..6eacf0b 100644 (file)
@@ -136,7 +136,7 @@ $messages = array(
 'tog-extendwatchlist' => 'گت تر هکردن دمبال هکرده‌ئون فهرست تموم دگارسه‌ئون سر، و نا فقط آخرین  موردون',
 'tog-usenewrc' => 'استفاده از تازه دگاردسته‌ئون گت‌تر بَیی (نیازمند جاوااسکریپت)',
 'tog-numberheadings' => 'شماره بشتن خدکار عناوین',
-'tog-showtoolbar' => 'نشون هدائن نوار ابزار جعبه دچی ین',
+'tog-showtoolbar' => 'دچی‌ین جعبه نوار ابزار ره سِراق هدائن',
 'tog-editondblclick' => 'دچی ین ولگون با دتا کلیک (نیازمند جاوااسکریپت)',
 'tog-editsection' => 'به کار دمبدائن تیکه‌ئون دچی‌ین از طریق پیوندون [دچی‌ین]',
 'tog-editsectiononrightclick' => 'به کار دمبدائن دچی‌ین قسمت‌ئون با راست کیلیک<br />عناوین قسمت‌ئون ِرو (جاوااسکریپت)',
@@ -154,7 +154,7 @@ $messages = array(
 'tog-enotifusertalkpages' => 'هر گادر منه کاروری صفخه‌ی گپ دله ات چی بنویشنه مه سّه ایمیل بزن',
 'tog-enotifminoredits' => 'هرگادر صحه ها دله اتا خورد چی ره عوض هکردنه مه وسّه ایمیل بزن',
 'tog-enotifrevealaddr' => 'منه ایمیل نامه ئون ایطیلاع رسونی دله دواشه',
-'tog-shownumberswatching' => 'نشون هدائن کارورن دمبال کوننده',
+'tog-shownumberswatching' => 'دمبالکرونِ سِراق هدائن',
 'tog-oldsig' => 'پیش نیمایش ایمضای موجود:',
 'tog-fancysig' => 'ایمضا ره ویکی متن نظر بیرین (بدون لینک هایتن)',
 'tog-externaleditor' => 'به شیکل پیش فرض خارجی ویرایشگرون جه ایستیفاده بواشه',
@@ -330,14 +330,14 @@ $messages = array(
 'talk' => 'گپ',
 'views' => 'هارشی‌ئون',
 'toolbox' => 'أبـزار جـا',
-'userpage' => 'کارور صفحه ره نشون هدائن',
+'userpage' => 'کارور صفحه ره سِراق هدائن',
 'projectpage' => 'بدی‌ین پروژه‌ی ِصفحه',
 'imagepage' => 'بدی‌ین ِعکس ِصفحه',
 'mediawikipage' => 'پیغوم ره بدی‌ین',
 'templatepage' => 'بدی‌ین شابلون',
 'viewhelppage' => 'راهنما صفحه هارشی‌ین',
 'categorypage' => 'بدی‌ین رج',
-'viewtalkpage' => 'گپ ئون ره نشون هدائن',
+'viewtalkpage' => 'گپون ره سِراق هدائن',
 'otherlanguages' => 'بقیه زوون‌ئون',
 'redirectedfrom' => '($1 جه بموئه)',
 'redirectpagesub' => 'گجگی‌بَیتـِن',
@@ -363,7 +363,7 @@ $2، $1',
 'edithelp' => 'دچی‌ین رانما',
 'edithelppage' => 'Help:دَچی‌ین',
 'helppage' => 'Help:راهنما',
-'mainpage' => 'گت ولگ',
+'mainpage' => 'گت صفحه',
 'mainpage-description' => 'گت صفحه',
 'policy-url' => 'Project:سیاستون',
 'portal' => 'کارورون ِلوش',
@@ -545,7 +545,7 @@ $2، $1',
 'watchthis' => 'این صفحه ره دمبال هـاکاردن',
 'savearticle' => 'جادکتن ِصفحه',
 'preview' => 'پیش نمایش',
-'showpreview' => 'پیش‌نمایش نشون هدائن',
+'showpreview' => 'پیش‌نمایش ره سِراق هدائن',
 'showlivepreview' => 'پیش‌نمایش آنلاین',
 'showdiff' => 'نمایش تغییرات',
 'blockedtext' => "'''شمه آی پی دوسته بیّه.'''
@@ -599,7 +599,7 @@ $2، $1',
 'historyempty' => '(خالی)',
 
 # Revision deletion
-'rev-delundel' => 'نشون هدائن/فرو بوردن',
+'rev-delundel' => 'دیار بیّن/فرو بوردن',
 'revdelete-text' => "'''نسخه‌ئون و حذف بئی موارد ره بشنه سیاهه جا و صفحه تاریخچه دله بدین، ولی اتی قسمت از وشونه محتواره بقیه کارورون نتوننه بوینن.'''
 {{SITENAME}} بقیه مدیرون بتوننه اینتا پنهون بئیه محتوا ره هارشن و وشونه حذف بئیون ره احیاء هاکنن، مگر اینکه اتی سری محدودیت ونه رو اعمال بئی باشه.",
 'revdel-restore' => 'دیاری تغییر هدائن',
@@ -880,13 +880,15 @@ $2، $1',
 'blockip-title' => 'کارور ره دَوستن',
 'blockip-legend' => 'کارور ره دَوستن',
 'ipbsubmit' => 'ای کارور دأبه‌س بأوه',
+'ipboptions' => '۲ ساعت:2 hours,۱ روز:1 day,۳ روز:3 days,۱ هفته:1 week,۲ هفته:2 weeks,۱ ماه:1 month,۳ ماه:3 months,۶ ماه:6 months,۱ سال:1 year,بی‌پایون:infinite',
 'ipblocklist' => 'IP نـه‌شـونـی‌ئون ئو کـارورنـوم‌ئونی کـه دأبـه‌سـتـوونـه',
 'infiniteblock' => 'بی‌پایون',
+'expiringblock' => '$1 دله، ساعت $2 دِرِس وونه',
 'blocklink' => 'دَوستن',
 'unblocklink' => 'وا هـه‌کـارده‌ن',
 'change-blocklink' => 'قطع دسترسی تغییر هدائن',
 'contribslink' => 'کایری‌ئون',
-'blocklogentry' => '[[$1]] دأبـه‌سـتـو بـأیـه ئو وه‌نـه دأبه‌ستو بوئه‌ن زأمـون، تـا  $2 $3 هـأسـه',
+'blocklogentry' => '[[$1]] دَوسته بیّه و ونه دَوسته بی‌ین گادِر $2 تا $3 هسته',
 
 # Move page
 'newtitle' => 'ترنه نوم:',
index c8a4181..86ed4e1 100644 (file)
@@ -1041,7 +1041,7 @@ In āxcān tlachiyaliztli onca īpan $PAGETITLE_URL
 $NEWPAGE
 
 In tlapatlaliztli īxtlamatiliztli cah: $PAGESUMMARY $PAGEMINOREDIT
-
 Xicnotzāz in tlapatlani:
 Correo electrónico: {{canonicalurl:Special:Emailuser|target=$PAGEEDITOR}}
 Huiqui: {{canonicalurl:User:$PAGEEDITOR}}
index 2f002b9..8d3edf6 100644 (file)
@@ -25,7 +25,10 @@ $dateFormats = array(
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Liân-kiat oē té-sûn:',
+'tog-justify' => 'pâi-chê  tōaⁿ-lo̍h',
 'tog-hideminor' => 'Am chòe-kīn ê sió kái-piàn',
+'tog-hidepatrolled' => 'Am chòe-kīn sûn koè--ê  kái-piàn',
+'tog-newpageshidepatrolled' => 'Sin-ia̍h ê chheng-toaⁿ am sûn koè--ê',
 'tog-extendwatchlist' => 'Khok-chhiong kàm-sī-toaⁿ kàu hián-sī só͘-ū ê kái-piàn',
 'tog-usenewrc' => 'Ka-kiông pán ê chòe-kīn-ê-kái-piàn (su-iàu JavaScript)',
 'tog-numberheadings' => 'Phiau-tê chū-tōng pian-hō',
@@ -43,22 +46,37 @@ $messages = array(
 'tog-previewontop' => 'Sûn-khoàⁿ ê lōe-iông tī pian-chi̍p keh-á thâu-chêng',
 'tog-previewonfirst' => 'Thâu-pái pian-chi̍p seng khoàⁿ-māi',
 'tog-nocache' => 'Koaiⁿ-tiāu ia̍h ê cache',
+'tog-enotifwatchlistpages' => 'Kam-sī-tuann ū ē bûn-tsiunn nā ū kái-piàn, kià tiān-tsú-phue hōo guá.',
+'tog-enotifusertalkpages' => 'Guá ê thó-lūn ia̍h  nā ū lâng kái,  kià tiān-tsú-phue hōo guá.',
+'tog-enotifminoredits' => 'Sió pian-chi̍p mā kià tiān-tsú-phue hōo guá.',
+'tog-enotifrevealaddr' => 'Hō͘ pat-lâng khoàⁿ ê tio̍h oá ê tiān-chú-phoe tē-chí',
+'tog-shownumberswatching' => 'Hián-sī tng leh khoàⁿ ê iōng-chiá sò͘-bo̍k',
+'tog-oldsig' => 'Chit-má ê chhiam-miâ:',
 'tog-fancysig' => 'Chhiam-miâ mài chò liân-kiat',
 'tog-externaleditor' => 'Iōng gōa-pō· pian-chi̍p-khì',
 'tog-externaldiff' => 'Iōng gōa-pō· diff',
+'tog-showjumplinks' => 'Hō͘ "thiàu khì" chit ê liân-chiap ē-sái',
+'tog-uselivepreview' => 'Ēng sui khoàⁿ-māi (ài ū JavaScript) (chhì-giām--ê)',
 'tog-forceeditsummary' => 'Pian-chi̍p khài-iàu bô thiⁿ ê sî-chūn, kā goá thê-chhéⁿ',
 'tog-watchlisthideown' => 'Kàm-sī-toaⁿ bián hián-sī goá ê pian-chi̍p',
 'tog-watchlisthidebots' => 'Kàm-sī-toaⁿ bián hián-sī ki-khì pian-chi̍p',
 'tog-watchlisthideminor' => 'Kàm-sī-toaⁿ bián hián-sī sió siu-kái',
+'tog-watchlisthideliu' => 'Kàm-sī-toaⁿ bián hián-sī iōng-chiá ū teng-ji̍p ê pian-chi̍p',
+'tog-watchlisthideanons' => 'Kàm-sī-toaⁿ bián hián-sī bû-bêng-sī ê pian-chi̍p',
+'tog-watchlisthidepatrolled' => 'Kàm-sī-toaⁿ bián hián-sī khoàⁿ-koè--ê pian-chi̍p',
 'tog-ccmeonemails' => 'Kià hō͘ pa̍t-lâng ê email sūn-soà kià copy hō͘ goá',
 'tog-diffonly' => 'Diff ē-pêng bián hián-sī ia̍h ê loē-iông',
+'tog-showhiddencats' => 'Hián-sī chhàng khí--lâi ê lūi-pia̍t',
+'tog-norollbackdiff' => 'ká tńg-khí liáu bián-koán cheng-chha goā-chē',
 
 'underline-always' => 'Tiāⁿ-tio̍h',
 'underline-never' => 'Tiāⁿ-tio̍h mài',
 'underline-default' => 'Tòe liû-lám-khì ê default',
 
 # Font style option in Special:Preferences
+'editfont-style' => 'Pian-chi̍p sî ēng ê jī-thé hêng-sek:',
 'editfont-default' => 'Tòe liû-lám-khì ê default',
+'editfont-monospace' => 'Monospaced jī-thé',
 'editfont-sansserif' => 'Sans-serif jī-thé',
 'editfont-serif' => 'Serif jī-thé',
 
@@ -137,6 +155,7 @@ $messages = array(
 'article' => 'Loē-iông ia̍h',
 'newwindow' => '(ē khui sin thang-á hián-sī)',
 'cancel' => 'Chhú-siau',
+'moredotdotdot' => 'Iáu-ū',
 'mypage' => 'Góa ê ia̍h',
 'mytalk' => 'Góa ê thó-lūn',
 'anontalk' => 'Chit ê IP ê thó-lūn-ia̍h',
@@ -387,6 +406,7 @@ Chhiaⁿ chù-ì: ū-kóa ia̍h ū khó-lêng khoàⁿ-tio̍h bē-su lí iû-go
 'nav-login-createaccount' => 'Teng-ji̍p / khui sin kháu-chō',
 'loginprompt' => 'Thiⁿ ē-kha ê chu-liāu thang khui sin hō·-thâu a̍h-sī teng-ji̍p {{SITENAME}}.',
 'userlogin' => 'Teng-ji̍p / khui sin kháu-chō',
+'userloginnocreate' => 'Teng-ji̍p',
 'logout' => 'Teng-chhut',
 'userlogout' => 'Teng-chhut',
 'notloggedin' => 'Bô teng-ji̍p',
@@ -396,6 +416,7 @@ Chhiaⁿ chù-ì: ū-kóa ia̍h ū khó-lêng khoàⁿ-tio̍h bē-su lí iû-go
 'gotaccount' => "Í-keng ū kháu-chō? '''$1'''.",
 'gotaccountlink' => 'Teng-ji̍p',
 'createaccountmail' => 'Thàu koè tiān-chú-phoe',
+'createaccountreason' => 'Lí-iû:',
 'badretype' => 'Lí su-ji̍p ê 2-cho· bi̍t-bé bô tùi.',
 'userexists' => 'Lí beh ti̍h ê iōng-chiá miâ-chheng í-keng ū lâng iōng. Chhiáⁿ kéng pa̍t-ê miâ.',
 'loginerror' => 'Teng-ji̍p chhò-gō·',
index 0f2f267..3ca1d4e 100644 (file)
@@ -314,25 +314,25 @@ $messages = array(
 'tog-hidepatrolled' => 'Wiezigingen die emarkeerd bin verbargen in leste wiezigingen',
 'tog-newpageshidepatrolled' => "Pagina's die emarkeerd bin, verbargen in de lieste mit nieje artikels",
 'tog-extendwatchlist' => 'Volglieste uutbreien, zodat alle wiezigingen zichtbaor bin, en niet allinnig de leste wieziging',
-'tog-usenewrc' => "Gebruuk de pagina uutebreiden leste wiezigingen (hierveur he'j JavaScript neudig)",
+'tog-usenewrc' => "Groepeer wiezigingen per pagina in de liesten leste wiezigingen en mien volglieste (hierveur he'j JavaScript neudig)",
 'tog-numberheadings' => 'Koppen vanzelf nummeren',
 'tog-showtoolbar' => 'Laot de warkbalke zien',
 'tog-editondblclick' => 'Mit dubbelklik bewarken (JavaScript)',
 'tog-editsection' => 'Mit bewarkgedeeltes',
 'tog-editsectiononrightclick' => 'Bewarkgedeelte mit rechtermuusknoppe bewarken (JavaScript)',
-'tog-showtoc' => 'Samenvatting van de onderwarpen laoten zien (mit meer as dree onderwarpen)',
+'tog-showtoc' => 'Samenvatting laoten zien van de zaken die an bod koemen (mit meer as dree onderwarpen)',
 'tog-rememberpassword' => 'Vanzelf anmelden (hooguut $1 {{PLURAL:$1|dag|dagen}})',
-'tog-watchcreations' => "Pagina's die'k anmake op mien volglieste zetten",
-'tog-watchdefault' => "Pagina's die'k wiezige op mien volglieste zetten",
-'tog-watchmoves' => "Pagina's die'k herneume op mien volglieste zetten",
-'tog-watchdeletion' => "Pagina's die'k vortdo op mien volglieste zetten",
+'tog-watchcreations' => "Pagina's die'k anmake en bestaanden die'k opsture op mien volglieste zetten",
+'tog-watchdefault' => "Pagina's en bestaanden die'k wiezige op mien volglieste zetten",
+'tog-watchmoves' => "Pagina's en bestaanden die'k herneume op mien volglieste zetten",
+'tog-watchdeletion' => "Pagina's en bestaanden die'k vortdo op mien volglieste zetten",
 'tog-minordefault' => "Markeer alle veraanderingen as 'kleine wieziging'",
 'tog-previewontop' => 'De naokiekpagina boven t bewarkingsveld zetten',
 'tog-previewonfirst' => 'Naokieken bie eerste wieziging',
 'tog-nocache' => 'De tussenopslag van de webkieker uutzetten',
-'tog-enotifwatchlistpages' => 'Stuur mien n berichjen over paginawiezigingen.',
+'tog-enotifwatchlistpages' => 'Stuur mien n berichjen over pagina- of bestaandswiezigingen uut mien volglieste.',
 'tog-enotifusertalkpages' => 'Stuur mien n berichjen as mien overlegpagina ewiezigd is.',
-'tog-enotifminoredits' => 'Stuur mien oek n berichjen bie kleine bewarkingen',
+'tog-enotifminoredits' => "Stuur mien oek n berichjen bie kleine bewarkingen van pagina's en bestaanden",
 'tog-enotifrevealaddr' => 'Mien netpostadres laoten zien in netposttiejigen',
 'tog-shownumberswatching' => 't Antal gebrukers bekieken die disse pagina volgt',
 'tog-oldsig' => 'Bestaonde haandtekening:',
@@ -579,7 +579,7 @@ $1",
 'editlink' => 'bewark',
 'viewsourcelink' => 'brontekste bekieken',
 'editsectionhint' => 'Bewarkingsveld: $1',
-'toc' => 'Onderwarpen',
+'toc' => 'Kömp an bod',
 'showtoc' => 'Bekieken',
 'hidetoc' => 'Verbarg',
 'collapsible-collapse' => 'Inklappen',
@@ -665,10 +665,12 @@ Meld t dan effen bie n [[Special:ListUsers/sysop|systeembeheerder]] van {{SITENA
 'cannotdelete' => 'De pagina of t bestaand "$1" kon niet vortedaon wörden.
 t Kan ween dat n aander t al vortedaon hef.',
 'cannotdelete-title' => 'Pagina "$1" kan niet vortedaon wörden',
+'delete-hook-aborted' => 't Vortdoon wörden in t wiere eschopt deur n MediaWiki-programmatuuruutbreiding.
+Der is gien veerdere informasie beschikbaor.',
 'badtitle' => 'Ongeldige naam',
 'badtitletext' => 'De naam van de op-evreugen pagina is niet geldig, leeg, of n interwiki-verwiezing naor n onbekende of ongeldige wiki.',
-'perfcached' => 'Disse gegevens koemen uut t tussengeheugen en bin misschien niet aktueel. Der {{PLURAL:$1|is maximaal een resultaot|bin maximaal $1 resultaoten}} beschikbaor in t tussengeheugen.',
-'perfcachedts' => 'Disse gegevens koemen uut t tussengeheugen die veur t lest bie-ewörken is op $2 um $3. Der {{PLURAL:$4|is maximaal een resultaot|bin maximaal $4 resultaoten}} beschikbaor in t tussengeheugen.',
+'perfcached' => 'Disse gegevens koemen uut t tussengeheugen en bin misschien niet aktueel. Der {{PLURAL:$1|is hooguut een resultaot|bin hooguut $1 resultaoten}} beschikbaor in t tussengeheugen.',
+'perfcachedts' => 'Disse gegevens koemen uut t tussengeheugen die veur t lest bie-ewörken is op $2 um $3. Der {{PLURAL:$4|is hooguut een resultaot|bin hooguut $4 resultaoten}} beschikbaor in t tussengeheugen.',
 'querypage-no-updates' => "'''Disse pagina wörden niet meer bie-ewörken.'''",
 'wrong_wfQuery_params' => 'Parameters veur wfQuery() waren verkeerd<br />
 Funksie: $1<br />
@@ -691,9 +693,13 @@ $2',
 'ns-specialprotected' => "Spesiale pagina's kunnen niet bewarkt wörden.",
 'titleprotected' => "t Anmaken van disse pagina is beveiligd deur [[User:$1|$1]].
 De op-egeven reden is ''$2''.",
-'filereadonlyerror' => 'Kon t bestaand "$1" niet anpassen umdat de bestaandsmap "$2" op dit moment allinnig-lezen is.
+'filereadonlyerror' => 'Kon t bestaand "$1" niet anpassen umdat de bestaandsmap "$2" op dit moment op allinnig-lezen steet.
 
-De op-egeven reden is "\'\'$3\'\'".',
+De beheerder gaf hierveur de volgende reden: "$3".',
+'invalidtitle-knownnamespace' => 'Ongeldige titel mit naamruumte "$2" en tekste "$3"',
+'invalidtitle-unknownnamespace' => 'Ongeldige titel mit onbekend naamruumtenummer $1 en tekste "$2"',
+'exception-nologin' => 'Niet an-emeld',
+'exception-nologin-text' => "Um disse pagina te bekieken of disse haandeling uut te kunnen voeren mu'j an-emeld ween bie disse wiki.",
 
 # Virus scanner
 'virus-badscanner' => "Slichte konfigurasie: onbekend antivirusprogramma: ''$1''",
@@ -785,6 +791,7 @@ Um misbruuk te veurkoemen wörden der mer één wachtwoordherinnering per {{PLUR
 'invalidemailaddress' => 't Netpostadres kon niet aksepteerd wörden umdat de opmaak ongeldig is.
 Voer de juuste opmaak van t adres in of laot t veld leeg.',
 'cannotchangeemail' => 't Netpostadres veur n gebruker kan op disse wiki niet ewiezigd wörden.',
+'emaildisabled' => 'Disse webstee kan gien netpost versturen.',
 'accountcreated' => 'Gebrukersprofiel is an-emaakt',
 'accountcreatedtext' => 'De gebrukersnaam veur $1 is an-emaakt.',
 'createaccount-title' => 'Gebrukers anmaken veur {{SITENAME}}',
@@ -980,7 +987,9 @@ De leste regel uut t blokkeerlogboek steet hieronder as referensie:',
 'userinvalidcssjstitle' => "'''Waorschuwing:''' der is gien uutvoering mit de naam \"\$1\". Vergeet niet dat joew eigen .css- en .js-pagina's beginnen mit n kleine letter, bv. \"{{ns:user}}:Naam/'''v'''ector\" in plaotse van \"{{ns:user}}:Naam/'''V'''ector.css\".",
 'updated' => '(Bewark)',
 'note' => "'''Opmarking:'''",
-'previewnote' => "'''NB: je bin de pagina allinnig nog mer an t naokieken; de tekste is nog niet op-esleugen!'''",
+'previewnote' => "'''Waort je: dit is n kontrolepagina.'''
+Joew tekste is niet op-esleugen!",
+'continue-editing' => 'Deurgaon mit bewarken',
 'previewconflict' => "Disse versie laot zien hoe de tekste in t bovenste veld deruut kump te zien a'j de tekste opslaon.",
 'session_fail_preview' => "'''De bewarking kan niet verwarkt wörden wegens n verlies an data.'''
 Probeer t laoter weer.
@@ -994,6 +1003,7 @@ As t dan nog problemen geef, probeer dan um [[Special:UserLogout|opniej an te me
 'token_suffix_mismatch' => "'''De bewarking is eweigerd umdat de webkieker de leestekens in t bewarkingstoken verkeerd behaandeld hef. De bewarking is eweigerd um verminking van de paginatekste te veurkoemen. Dit gebeurt soms as der n web-ebaseerden proxydienst gebruukt wörden waor fouten in zitten.'''",
 'edit_form_incomplete' => "'''Partie delen van t bewarkingsformulier hebben de server niet bereikt. Kiek eers nao of de bewarkingen kloppen en probeer t opniej.'''",
 'editing' => 'Bewark: $1',
+'creating' => 'Bezig mit t anmaken van $1',
 'editingsection' => 'Bewark: $1 (deelpagina)',
 'editingcomment' => 'Bewark: $1 (niej onderwarp)',
 'editconflict' => 'Bewarkingskonflikt: $1',
@@ -1057,6 +1067,7 @@ t Schient dat t vortedaon is.',
 'edit-no-change' => 'Joew bewarking is enegeerd, umdat der gien wieziging an de tekste edaon is.',
 'edit-already-exists' => 'De pagina kon niet an-emaakt wörden.
 t Besteet al.',
+'defaultmessagetext' => 'Standardtekste',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Waorschuwing: disse pagina gebruukt te veule kostbaore parserfunksies.
@@ -1071,6 +1082,12 @@ Sommigen mallen wörden niet in-evoegd.',
 'parser-template-loop-warning' => 'Der is n kringloop in mallen waoreneumen: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Der is over de rekursiediepte veur mallen is hinne gaon ($1)',
 'language-converter-depth-warning' => 'Je hebben t dieptelimiet veur de taalumzetter bereikt ($1)',
+'node-count-exceeded-category' => "Pagina's die t knuppenantal overschrejen hebben.",
+'node-count-exceeded-warning' => 'Op de pagina is t maximale antal nodes overschrejen',
+'expansion-depth-exceeded-category' => "Pagina's waor de expansiediepte overschrejen is",
+'expansion-depth-exceeded-warning' => 'In disse pagina staon te veul mallen',
+'parser-unstrip-loop-warning' => 'Der is n "unstrip"-lusse evunnen',
+'parser-unstrip-recursion-limit' => 'De rekursielimiet ($1) veur "unstrip" is overschrejen',
 
 # "Undo" feature
 'undo-success' => 'De bewarking kan weerummedreid wörden. Kiek de vergelieking hieronder nao um der wisse van de ween dat alles goed is, en slao de de pagina op um de bewarking weerumme te dreien.',
@@ -1210,7 +1227,8 @@ Kiek de logboeken nao.',
 
 # Suppression log
 'suppressionlog' => 'Verbargingslogboek',
-'suppressionlogtext' => "In de onderstaande lieste staon de vortedaone pagina's en blokkeringen die veur beheerders verbörgen bin. In de [[Special:BlockList|IP-blokkeerlieste]] bin de blokkeringen, die noen van toepassing bin, te bekieken.",
+'suppressionlogtext' => "In de onderstaande lieste staon de vortedaone pagina's en blokkeringen die veur beheerders verbörgen bin. 
+In de [[Special:BlockList|blokkeerlieste]] bin de blokkeringen, die noen van toepassige bin, te bekieken.",
 
 # History merging
 'mergehistory' => "Geschiedenisse van pagina's bie mekaar doon",
@@ -1241,7 +1259,9 @@ Kiek de logboeken nao.',
 'mergelogpagetext' => "Hieronder zie'j n lieste van de leste samenvoegingen van n paginageschiedenisse naor n aandere.",
 
 # Diffs
-'history-title' => 'Geschiedenisse van "$1"',
+'history-title' => 'Versiegeschiedenisse van "$1"',
+'difference-title' => 'Verschil tussen versies van "$1"',
+'difference-title-multipage' => 'Verschil tussen pagina\'s "$1" en "$2"',
 'difference-multipage' => "(Verschil tussen pagina's)",
 'lineno' => 'Regel $1:',
 'compareselectedversions' => 'Vergeliek de ekeuzen versies',
@@ -1336,11 +1356,12 @@ Kiek de logboeken nao.',
 'prefs-beta' => 'Bètafunksies',
 'prefs-datetime' => 'Daotum en tied',
 'prefs-labs' => 'Alphafunksies',
+'prefs-user-pages' => "Gebrukerspagina's",
 'prefs-personal' => 'Gebrukersgegevens',
 'prefs-rc' => 'Leste wiezigingen',
 'prefs-watchlist' => 'Volglieste',
 'prefs-watchlist-days' => 'Antal dagen in de volglieste bekieken:',
-'prefs-watchlist-days-max' => 'Maximaal $1 {{PLURAL:$1|dag|dagen}}',
+'prefs-watchlist-days-max' => 'Hooguut $1 {{PLURAL:$1|dag|dagen}}',
 'prefs-watchlist-edits' => 'Antal wiezigingen in de uutebreiden volglieste:',
 'prefs-watchlist-edits-max' => 'Maximale antal: 1.000',
 'prefs-watchlist-token' => 'Volgliestesleutel',
@@ -1362,7 +1383,7 @@ Kiek de logboeken nao.',
 'stub-threshold' => 'Verwiezingsformattering van <a href="#" class="stub">beginnetjes</a>:',
 'stub-threshold-disabled' => 'uuteschakeld',
 'recentchangesdays' => 'Antal dagen die de lieste "leste wiezigingen" laot zien:',
-'recentchangesdays-max' => '(maximaal $1 {{PLURAL:$1|dag|dagen}})',
+'recentchangesdays-max' => '(hooguut $1 {{PLURAL:$1|dag|dagen}})',
 'recentchangescount' => 'Standard antal bewarkingen um te laoten zien:',
 'prefs-help-recentchangescount' => "Dit geldt veur leste wiezigingen, paginageschiedenisse en logboekpagina's",
 'prefs-help-watchlist-token' => "A'j in dit veld n geheime kode invullen, dan maakt t RSS-voer an veur joew volglieste.
@@ -1792,14 +1813,15 @@ As t probleem zo blif, neem dan kontakt op mit één van de [[Special:ListUsers/
 'backend-fail-writetemp' => 'Kon niet naor n tiedelik bestaand schrieven.',
 'backend-fail-closetemp' => 'Kon niet n tiedelik bestaand sluten.',
 'backend-fail-read' => 'Kon t bestaand $1 niet lezen.',
-'backend-fail-create' => 'Kon t bestaand $1 niet anmaken.',
-'backend-fail-maxsize' => 'Kon t bestaand $1 niet anmaken umdat t groter is as {{PLURAL:$2|één byte|$2 bytes}}.',
+'backend-fail-create' => 'Kon t bestaand $1 niet schrieven.',
+'backend-fail-maxsize' => 'Kon t bestaand $1 niet schrieven umdat t groter is as {{PLURAL:$2|één byte|$2 bytes}}.',
 'backend-fail-readonly' => 'Van de opslag "$1" kan op dit moment allinnig elezen wörden. De op-egeven reden was: "$2"',
 'backend-fail-synced' => 't Bestaand "$1" bevient zich in n inkonsistente toestaand in de interne opslagbackends.',
 'backend-fail-connect' => 'Kon gien verbiending maken mit t opslagbackend "$1".',
 'backend-fail-internal' => 'Der is n onbekende fout op-etreden in t opslagbackend "$1".',
 'backend-fail-contenttype' => 'Kon t inhoudstype van t bestaand um op "$1" op te slaon niet bepaolen.',
 'backend-fail-batchsize' => 'Reeks van $1 bestaands{{PLURAL:$1|operasie|operasies}} in de opslagbackend; de limiet is $2 {{PLURAL:$2|operasie|operasies}}.',
+'backend-fail-usable' => 'Kon t bestaand $1 niet schrieven vanwegen te min rechten of niet-anwezige mappen of houwers.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Kon gien verbiending maken mit de journaaldatabanke veur t opslagbackend "$1".',
@@ -1919,6 +1941,10 @@ De [[Special:WhatLinksHere/$2|hele lieste]] is oek beschikbaor.',
 'sharedupload' => "Dit is n edeeld bestaand op $1 en ku'j oek gebruken veur aandere projekten.",
 'sharedupload-desc-there' => "Dit is n edeeld bestaand op $1 en ku'j oek gebruken veur aandere projekten. Bekiek de [$2 beschrieving van t bestaand] veur meer informasie.",
 'sharedupload-desc-here' => "Dit is n edeeld bestaand op $1 en ku'j oek gebruken veur aandere projekten. De [$2 beschrieving van t bestaand] dergindse, steet hieronder.",
+'sharedupload-desc-edit' => 'Dit besatand kömp van $1 en kan oek in aandere projekten gebruukt wörden.
+Je kunnen de [$2 pagina mit de bestaandsbeschrieving] daor bewarken.',
+'sharedupload-desc-create' => 'Dit besatand kömp van $1 en kan oek in aandere projekten gebruukt wörden.
+Je kunnen de [$2 pagina mit de bestaandsbeschrieving] daor bewarken.',
 'filepage-nofile' => 'Der besteet gien bestaand mit disse naam.',
 'filepage-nofile-link' => 'Der besteet gien bestaand mit disse naam, mer je kunnen t [$1 opsturen].',
 'uploadnewversion-linktext' => 'n Niejere versie van dit bestaand opsturen.',
@@ -2115,6 +2141,7 @@ n Bestaand kan hier dus verkeerd op-eneumen ween.",
 Je kunnen oek kiezen veur bepaolde logboeken en filteren op gebruker (heufdlettergeveulig) en titel (heufdlettergeveulig).',
 'logempty' => 'Der steet gien passende informasie in t logboek.',
 'log-title-wildcard' => 'Zeuk naor titels die beginnen mit disse tekste:',
+'showhideselectedlogentries' => 'Ekeuzen logboekregels laoten zien of verbargen',
 
 # Special:AllPages
 'allpages' => "Alle pagina's",
@@ -2132,6 +2159,12 @@ Je kunnen oek kiezen veur bepaolde logboeken en filteren op gebruker (heufdlette
 'allpagesprefix' => "Pagina's bekieken die beginnen mit:",
 'allpagesbadtitle' => 'De op-egeven paginanaam is ongeldig of der steet n interwikiveurvoegsel in. Meugelikerwieze staon der karakters in de naam die niet gebruukt maggen wörden in paginanamen.',
 'allpages-bad-ns' => '{{SITENAME}} hef gien "$1"-naamruumte.',
+'allpages-hide-redirects' => 'Deurverwiezingen verbargen',
+
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'Je bekieken noen n versie uut t tussengeheugen van disse pagina, die hooguut $1 oud is.',
+'cachedspecial-viewing-cached-ts' => 'Je bekieken noen n versie uut t tussengeheugen van disse pagina, t kan ween dat t niet helemaole bie de tied is.',
+'cachedspecial-refresh-now' => 'Leste bekieken.',
 
 # Special:Categories
 'categories' => 'Kategorieën',
@@ -2567,7 +2600,7 @@ De leste regel uut t blokkeerlogboek steet as referensie',
 'badipaddress' => 'Ongeldig IP-adres of onbestaonde gebrukersnaam',
 'blockipsuccesssub' => 'Suksesvol eblokkeerd',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] is noen eblokkeerd.<br />
-Op de [[Special:BlockList|IP-blokkeerlieste]] steet n lieste mit alle blokkeringen.',
+Op de [[Special:BlockList|blokkeerlieste]] steet n lieste mit alle blokkeringen.',
 'ipb-blockingself' => "Hiermee blokkeer je je eigen. Wi'j dat?",
 'ipb-confirmhideuser' => "Hiermee blokkeer je n verbörgen gebruker. Hierveur wörden gebrukersnamen in alle liesten en logboekregels verbörgen. Wi'j dat?",
 'ipb-edit-dropdown' => 'Blokkeerredens bewarken',
@@ -2619,7 +2652,7 @@ t Blokkeerlogboek steet hieronder as referensie:',
 t Logboek mit onderdrokten versies steet hieronder as referensie:',
 'blocklogentry' => 'blokkeren "[[$1]]" veur $2 $3',
 'reblock-logentry' => 'hef de instellingen veur de blokkering van [[$1]] ewiezigd t Löp noen of over $2 $3',
-'blocklogtext' => "Hier zie'j n lieste van de leste blokkeringen en deblokkeringen. Automatiese blokkeringen en deblokkeringen koemen niet in t logboek te staon. Zie de [[Special:BlockList|IP-blokkeerlieste]] veur de lieste van adressen die noen eblokkeerd bin.",
+'blocklogtext' => "Hier zie'j n lieste van de leste blokkeringen en deblokkeringen. Automatiese blokkeringen en deblokkeringen koemen niet in t logboek te staon. Zie de [[Special:BlockList|blokkeerlieste]] veur de lieste van adressen die noen eblokkeerd bin.",
 'unblocklogentry' => 'blokkering van $1 is op-eheven',
 'block-log-flags-anononly' => 'allinnig anoniemen',
 'block-log-flags-nocreate' => 'anmaken van gebrukersprofielen uuteschakeld',
@@ -2976,6 +3009,7 @@ Meestentieds kump dit deur n uutgaonde verwiezing die op de zwarte lieste steet.
 'spambot_username' => 'MediaWiki ongewunste zooi oprumen',
 'spam_reverting' => 'Bezig mit t weerummezetten naor de leste versie die gien verwiezing hef naor $1',
 'spam_blanking' => 'Alle wiezigingen mit n verwiezing naor $1 wörden vortehaold',
+'spam_deleting' => 'In alle versies staon verwiezingen naor $1. Pagina vortedaon',
 
 # Info page
 'pageinfo-title' => 'Informasie over "$1"',
@@ -3269,8 +3303,8 @@ Aandere velden wörden verbörgen.
 'exif-contentwarning' => 'Waorschuwing over inhoud',
 'exif-giffilecomment' => 'Opmarking bie GIF-bestaand',
 'exif-intellectualgenre' => 'Soort onderwarp',
-'exif-subjectnewscode' => 'Onderwarpcode',
-'exif-scenecode' => 'IPTC-scènecode',
+'exif-subjectnewscode' => 'Onderwarpkode',
+'exif-scenecode' => 'IPTC-scènekode',
 'exif-event' => 'Aofebeelden gebeurtenisse',
 'exif-organisationinimage' => 'Aofebeelden organisasie',
 'exif-personinimage' => 'Aofebeeld persoon',
@@ -3591,8 +3625,8 @@ De bevestigingskode zal verlopen op $4.',
 'table_pager_prev' => 'Veurige',
 'table_pager_first' => 'Eerste pagina',
 'table_pager_last' => 'Leste pagina',
-'table_pager_limit' => 'Laot $1 onderwarpen per pagina zien',
-'table_pager_limit_label' => 'Onderwarpen per pagina:',
+'table_pager_limit' => 'Laot $1 resultaoten per pagina zien',
+'table_pager_limit_label' => 'Zaken per pagina:',
 'table_pager_limit_submit' => 'Zeuk',
 'table_pager_empty' => 'Gien resultaoten',
 
@@ -3602,6 +3636,9 @@ De bevestigingskode zal verlopen op $4.',
 'autoredircomment' => 'deurverwiezing naor [[$1]]',
 'autosumm-new' => "Nieje pagina: '$1'",
 
+# Size units
+'size-kilobytes' => '$1 kB',
+
 # Live preview
 'livepreview-loading' => 'An t laojen…',
 'livepreview-ready' => 'An t laojen… ree!',
@@ -3677,6 +3714,9 @@ Samen mit dit programma heur je n [{{SERVER}}{{SCRIPTPATH}}/COPYING kopie van de
 'version-software' => 'Programmatuur die installeerd is',
 'version-software-product' => 'Produkt',
 'version-software-version' => 'Versie',
+'version-entrypoints' => 'Webadressen veur ingangen',
+'version-entrypoints-header-entrypoint' => 'Ingang',
+'version-entrypoints-header-url' => 'Webadres',
 
 # Special:FilePath
 'filepath' => 'Bestaandslokasie',
@@ -3839,6 +3879,8 @@ Aanders ku\'j oek t eenvoudige formulier hieronder gebruken. Joew opmarkingen zu
 'api-error-empty-file' => "t Bestaand da'j op-estuurd hebben is leeg.",
 'api-error-emptypage' => "Je maggen gien lege nieje pagina's anmaken.",
 'api-error-fetchfileerror' => 'Interne fout: der is iets verkeerd egaon mit t ophaolen van t bestaand.',
+'api-error-fileexists-forbidden' => 'Der besteet al n bestaand mit de naam "$1" die niet overschreven kan wörden.',
+'api-error-fileexists-shared-forbidden' => 'Der besteet al n bestaand mit de naam "$1" in de edeelden bestaandsarchief dat niet overschreven kan wörden.',
 'api-error-file-too-large' => "t Bestaand da'j op-estuurd hebben is te groot.",
 'api-error-filename-tooshort' => 'De bestaandsnaam is te kort.',
 'api-error-filetype-banned' => 'Dit bestaandstype is niet toe-estaon.',
@@ -3866,4 +3908,17 @@ Aanders ku\'j oek t eenvoudige formulier hieronder gebruken. Joew opmarkingen zu
 'api-error-uploaddisabled' => 'Je kunnen gien bestaanden opsturen in deze wiki.',
 'api-error-verification-error' => 'Dit bestaand is meugelik beschaodigd of hef n onjuuste extensie.',
 
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|sekonde|sekonden}}',
+'duration-minutes' => '$1 {{PLURAL:$1|minuut|minuten}}',
+'duration-hours' => '$1 {{PLURAL:$1|uur|uren}}',
+'duration-days' => '$1 {{PLURAL:$1|dag|dagen}}',
+'duration-weeks' => '$1 {{PLURAL:$1|weke|weken}}',
+'duration-years' => '$1 {{PLURAL:$1|jaor|jaoren}}',
+'duration-decades' => '$1 {{PLURAL:$1|desennium|desennia}}',
+'duration-centuries' => '$1 {{PLURAL:$1|eeuw|eeuwen}}',
+'duration-millennia' => '$1 {{PLURAL:$1|millennium|millennia}}',
+
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Kon gien vergrendeling op server $1 zetten.',
 );
index 65daa50..1bd7c73 100644 (file)
@@ -353,7 +353,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Gemarkeerde wijzigingen verbergen in recente wijzigingen',
 'tog-newpageshidepatrolled' => "Gemarkeerde pagina's verbergen in de lijst met nieuwe pagina's",
 'tog-extendwatchlist' => 'Uitgebreide volglijst gebruiken om alle wijzigingen te bekijken, en niet alleen de laatste',
-'tog-usenewrc' => 'Uitgebreide Recente Wijzigingen-pagina gebruiken (vereist JavaScript)',
+'tog-usenewrc' => 'Wijzigingen per pagina weergeven in recente wijzigingen en volglijst (vereist JavaScript)',
 'tog-numberheadings' => 'Koppen automatisch nummeren',
 'tog-showtoolbar' => 'Bewerkingswerkbalk weergeven (vereist JavaScript)',
 'tog-editondblclick' => 'Dubbelklikken voor bewerken (vereist JavaScript)',
@@ -705,6 +705,8 @@ Maak hiervan melding bij een [[Special:ListUsers/sysop|beheerder]] van {{SITENAM
 'cannotdelete' => 'De pagina of het bestand "$1" kon niet verwijderd worden.
 Mogelijk is deze al door iemand anders verwijderd.',
 'cannotdelete-title' => 'Pagina "$1" kan niet verwijderd worden',
+'delete-hook-aborted' => 't Vortdoon is aofebreuken deur n haak.
+Der is gien informasie over beschikbaor.',
 'badtitle' => 'Ongeldige paginanaam',
 'badtitletext' => 'De naam van de opgevraagde pagina was ongeldig, leeg of bevatte een verkeerde intertaal- of interwikinaamverwijzing.
 Wellicht bevat de paginanaam niet toegestane tekens.',
@@ -743,6 +745,8 @@ De gegeven reden is ''$2''.",
 De opgegeven reden is "\'\'$3\'\'".',
 'invalidtitle-knownnamespace' => 'Ongeldige titel met naamruimte "$2" en tekst "$3"',
 'invalidtitle-unknownnamespace' => 'Ongeldige titel met onbekend naamruimtenummer $1 en tekst "$2"',
+'exception-nologin' => 'Niet aangemeld',
+'exception-nologin-text' => 'Om deze pagina te bekijken of deze handeling uit te kunnen voeren moet u aangemeld zijn bij deze wiki.',
 
 # Virus scanner
 'virus-badscanner' => "Onjuiste configuratie: onbekende virusscanner: ''$1''.",
@@ -2765,8 +2769,8 @@ Zie de [[Special:BlockList|blokkadelijst]] voor recente blokkades.',
 'expiringblock' => 'vervalt op $1 om $2',
 'anononlyblock' => 'alleen anoniemen',
 'noautoblockblock' => 'autoblokkeren uitgeschakeld',
-'createaccountblock' => 'registreren gebruikers geblokkeerd',
-'emailblock' => 'e-mail geblokkeerd',
+'createaccountblock' => 'registreren gebruikers uitgeschakeld',
+'emailblock' => 'e-mail uitgeschakeld',
 'blocklist-nousertalk' => 'kan eigen overlegpagina niet bewerken',
 'ipblocklist-empty' => 'De blokkeerlijst is leeg.',
 'ipblocklist-no-results' => 'Dit IP-adres of deze gebruikersnaam is niet geblokkeerd.',
@@ -2790,7 +2794,7 @@ Zie ook de [[Special:BlockList|blokkadelijst]] voor de op dit moment actieve blo
 'block-log-flags-anononly' => 'alleen anoniemen',
 'block-log-flags-nocreate' => 'registreren gebruikers geblokkeerd',
 'block-log-flags-noautoblock' => 'autoblokkeren is uitgeschakeld',
-'block-log-flags-noemail' => 'e-mail geblokkeerd',
+'block-log-flags-noemail' => 'e-mail uitgeschakeld',
 'block-log-flags-nousertalk' => 'kan eigen overlegpagina niet bewerken',
 'block-log-flags-angry-autoblock' => 'uitgebreide automatische blokkade ingeschakeld',
 'block-log-flags-hiddenname' => 'gebruiker verborgen',
@@ -3184,9 +3188,9 @@ U kunt wel de broncode bekijken.',
 Meestal wordt dit door een externe verwijzing op een zwarte lijst veroorzaakt.',
 'spamprotectionmatch' => 'De volgende tekst veroorzaakte een alarm van de spamfilter: $1',
 'spambot_username' => 'MediaWiki opschoning spam',
-'spam_reverting' => 'Bezig met terugdraaien naar de laatste versie die geen verwijzing heeft naar $1',
-'spam_blanking' => 'Alle wijzigingen met een verwijzing naar $1 worden verwijderd',
-'spam_deleting' => 'Alle versies bevatten verwijzingen naar $1. Bezig met verwijderen...',
+'spam_reverting' => 'Teruggedraaid naar de laatste versie die geen verwijzing bevat naar $1',
+'spam_blanking' => 'Alle versies bevatten een verwijzing naar $1. Pagina leeggemaakt',
+'spam_deleting' => 'Alle versies bevatten verwijzingen naar $1. Pagina verwijderd',
 
 # Info page
 'pageinfo-title' => 'Informatie over "$1"',
@@ -4084,6 +4088,8 @@ Anders kunt u ook het eenvoudige formulier hieronder gebruiken. Uw reactie wordt
 'api-error-empty-file' => 'Het bestand dat u hebt geüpload is leeg.',
 'api-error-emptypage' => "Het aanmaken van nieuwe, lege pagina's is niet toegestaan.",
 'api-error-fetchfileerror' => 'Interne fout: er is iets misgegaan bij het ophalen van het bestand.',
+'api-error-fileexists-forbidden' => 'Er bestaat al een bestand met de naam "$1" dat niet overschreven kan worden.',
+'api-error-fileexists-shared-forbidden' => 'Er bestaat al een bestand met de naam "$1" in de gedeelde repository dat niet overschreven kan worden.',
 'api-error-file-too-large' => 'Het bestand dat u hebt geüpload is te groot.',
 'api-error-filename-tooshort' => 'De bestandsnaam is te kort.',
 'api-error-filetype-banned' => 'Dit bestandstype mag niet geüpload worden.',
index 6d5496a..b06c4c9 100644 (file)
@@ -1549,7 +1549,7 @@ Dette kan ikke tilbakestillast.',
 'recentchanges-legend' => 'Alternativ for siste endringar',
 'recentchanges-summary' => 'På denne sida ser du dei sist endra sidene i {{SITENAME}}.',
 'recentchanges-feed-description' => 'Fylg med på dei siste endringane på denne wikien med dette abonnementet.',
-'recentchanges-label-newpage' => 'Denne redigeringa oppretta ei ny side',
+'recentchanges-label-newpage' => 'Denne endringa oppretta ei ny side',
 'recentchanges-label-minor' => 'Dette er ei mindre endring',
 'recentchanges-label-bot' => 'Denne endringa vart gjort av ein bot',
 'recentchanges-label-unpatrolled' => 'Denne endringa er ikkje patruljert enno',
index de04157..188f114 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Occitan (Occitan)
+/** Occitan (occitan)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 036e10b..ccc53c4 100644 (file)
@@ -279,7 +279,7 @@ $messages = array(
 'tog-previewontop' => 'ଏଡ଼ିଟ ବାକ୍ସ ଆଗରୁ ଦେଖଣା ଦେଖାଇବେ',
 'tog-previewonfirst' => 'ପ୍ରଥମ ବଦଳର ଦେଖଣା ଦେଖାଇବେ',
 'tog-nocache' => 'ବ୍ରାଉଜର ପୃଷ୍ଠା ସଂରକ୍ଷଣକୁ ଅଚଳ କରିବେ',
-'tog-enotifwatchlistpages' => 'ମୋ ଦେଖଣାତାଲିକାରେ ଥିବା ପୃଷ୍ଠାରେ କିଛି ବଦଳ ହେଲେ ମୋତେ ଇ-ମେଲ କରିବେ',
+'tog-enotifwatchlistpages' => 'ମୋ ଦେଖଣାତାଲିକାରେ ଥିବା ପୃଷ୍ଠା ବା ଫାଇଲରେ କିଛି ବଦଳ ହେଲେ ମୋତେ ଇ-ମେଲ କରିବେ',
 'tog-enotifusertalkpages' => 'ମୋର ଆଲୋଚନା ପୃଷ୍ଠାରେ କିଛି ବଦଳ ହେଲେ ମୋତେ ଇ-ମେଲ କରିବେ',
 'tog-enotifminoredits' => 'ପୃଷ୍ଠାରେ ଛୋଟ ଛୋଟ ବଦଳ ହେଲେ ବି ମୋତେ ଇ-ମେଲ କରିବେ',
 'tog-enotifrevealaddr' => 'ସୂଚନା ଇ-ମେଲ ରେ ମୋର ଇ-ମେଲ ଠିକଣା ଦେଖାଇବେ',
@@ -501,8 +501,8 @@ $1',
 'mainpage' => 'ପ୍ରଧାନ ପୃଷ୍ଠା',
 'mainpage-description' => 'ପ୍ରଧାନ ପୃଷ୍ଠା',
 'policy-url' => 'Project:ନୀତି',
-'portal' => 'ସà¬\99à­\8dà¬\98 à¬\86ଲà­\8bà¬\9aନା à¬¸à¬­à¬¾',
-'portal-url' => 'Project:ସà¬\99à­\8dà¬\98 à¬\86ଲà­\8bà¬\9aନା à¬¸à¬­à¬¾',
+'portal' => 'ସà¬\99à­\8dà¬\98 à¬¸à­\82à¬\9aନା à¬«à¬³à¬\95',
+'portal-url' => 'Project:ସà¬\99à­\8dà¬\98 à¬¸à­\82à¬\9aନା à¬«à¬³à¬\95',
 'privacy' => 'ଗୁମର ନୀତି',
 'privacypage' => 'Project:ଗୁମର ନୀତି',
 
@@ -520,10 +520,10 @@ $1',
 'newmessageslink' => 'ନୂଆ ମେସେଜ',
 'newmessagesdifflink' => 'ଶେଷ ବଦଳ',
 'youhavenewmessagesmulti' => '$1 ତାରିଖରେ ନୂଆ ଚିଠିଟିଏ ଆସିଛି',
-'editsection' => '<big>ଏହାକୁ ବଦଳାନ୍ତୁ</big>',
-'editold' => '<big>ଏହାକୁ ବଦଳାନ୍ତୁ</big>',
+'editsection' => 'ସମ୍ପାଦନ',
+'editold' => 'ଏହାକୁ ବଦଳାନ୍ତୁ',
 'viewsourceold' => 'ମୂଳାଧାର ଦେଖିବେ',
-'editlink' => '<big>ଏହାକୁ ବଦଳାନ୍ତୁ</big>',
+'editlink' => 'ସମ୍ପାଦନ',
 'viewsourcelink' => 'ମୂଳାଧାର ଦେଖିବେ',
 'editsectionhint' => '$1 ଭାଗଟିକୁ ବଦଳାଇବେ',
 'toc' => 'ଭିତର ଚିଜ',
@@ -2006,7 +2006,7 @@ A page is treated as disambiguation page if it uses a template which is linked f
 
 'brokenredirects' => 'ଭଙ୍ଗା ପୁନପ୍ରେରଣ',
 'brokenredirectstext' => 'ତଳଲିଖିତ ପୁନପ୍ରେରଣ ସବୁ ସ୍ଥିତିହିନ ପୃଷ୍ଠାମାନଙ୍କୁ ପୁନପ୍ରେରିତ ହୋଇଥାଏ :',
-'brokenredirects-edit' => "<big>'''ଏହାକୁ ବଦଳାନ୍ତୁ'''</big>",
+'brokenredirects-edit' => 'ସମ୍ପାଦନ',
 'brokenredirects-delete' => 'ଲିଭାଇବେ',
 
 'withoutinterwiki' => 'ଭାଷାର ଲିଙ୍କ ନଥିବା ପୃଷ୍ଠାମାନ',
@@ -2409,7 +2409,7 @@ $2ଙ୍କ ଦେଇ ଶେଷଥର ହୋଇଥିବା ସଂସ୍କର
 'pagesize' => '(ବାଇଟ)',
 
 # Restrictions (nouns)
-'restriction-edit' => '<big>ଏହାକୁ ବଦଳାନ୍ତୁ</big>',
+'restriction-edit' => 'ଏହାକୁ ବଦଳାନ୍ତୁ',
 'restriction-move' => 'ଘୁଞ୍ଚାଇବେ',
 'restriction-create' => 'ଗଢ଼ନ୍ତୁ',
 'restriction-upload' => 'ଅପଲୋଡ଼ କରନ୍ତୁ',
@@ -3738,7 +3738,7 @@ MediaWiki ଉପଯୋଗୀ ହେବା ଲକ୍ଷରେ ବଣ୍ଟାଯ
 'tags-display-header' => 'ବଦଳ ତାଲିକାରେ ଦେଖଣା',
 'tags-description-header' => 'ଅର୍ଥର ପୁରା ବିବରଣୀ',
 'tags-hitcount-header' => 'ଚିହ୍ନିତ ବଦଳ',
-'tags-edit' => '<big>ଏହାକୁ ବଦଳାନ୍ତୁ</big>',
+'tags-edit' => 'ସମ୍ପାଦନ',
 'tags-hitcount' => '$1 {{PLURAL:$1|ବଦଳ|ବଦଳସବୁ}}',
 
 # Special:ComparePages
index db1ff10..f9d073d 100644 (file)
@@ -76,35 +76,35 @@ Pabusten ing pamanaliling dake kapamilatan [alilan] ning suglung',
 'tue' => 'Mrt',
 'wed' => 'Mie',
 'thu' => 'Jue',
-'fri' => 'Vie',
+'fri' => 'Bie',
 'sat' => 'Sab',
 'january' => 'Eneru',
-'february' => 'Febreru',
-'march' => 'Marzu',
+'february' => 'Pebreru',
+'march' => 'Marsu',
 'april' => 'Abril',
 'may_long' => 'Mayu',
 'june' => 'Juniu',
 'july' => 'Juliu',
 'august' => 'Agostu',
-'september' => 'Setiembri',
+'september' => 'Septiembri',
 'october' => 'Octubri',
 'november' => 'Nobiembri',
-'december' => 'Diciembri',
+'december' => 'Disiembri',
 'january-gen' => 'Eneru',
-'february-gen' => 'Febreru',
-'march-gen' => 'Marzu',
+'february-gen' => 'Pebreru',
+'march-gen' => 'Marsu',
 'april-gen' => 'Abril',
 'may-gen' => 'Mayu',
 'june-gen' => 'Juniu',
 'july-gen' => 'Juliu',
 'august-gen' => 'Agostu',
-'september-gen' => 'Setiembri',
-'october-gen' => 'Octobri',
-'november-gen' => 'Noviembri',
-'december-gen' => 'Diciembri',
+'september-gen' => 'Septiembri',
+'october-gen' => 'Octubri',
+'november-gen' => 'Nobiembri',
+'december-gen' => 'Disiembri',
 'jan' => 'Ene',
 'feb' => 'Peb',
-'mar' => 'Mrz',
+'mar' => 'Mrs',
 'apr' => 'Abr',
 'may' => 'Myu',
 'jun' => 'Jnu',
@@ -154,10 +154,19 @@ Pabusten ing pamanaliling dake kapamilatan [alilan] ning suglung',
 'faqpage' => 'Project:MAK',
 
 # Vector skin
+'vector-action-addsection' => 'Dagdagan ing pisasabian',
+'vector-action-delete' => 'Buran',
 'vector-action-move' => 'Iyalis',
 'vector-action-protect' => 'Protectan/kambilan',
 'vector-action-undelete' => 'Isubli/iurung ya pangabura',
 'vector-action-unprotect' => 'Idayu ya panga-protecta',
+'vector-view-create' => 'Maglalang',
+'vector-view-edit' => 'Alilan',
+'vector-view-history' => 'Lawen ya ing amlat',
+'vector-view-view' => 'Basan',
+'vector-view-viewsource' => 'Lawen ya ing pikuanan',
+'namespaces' => 'Karinanlagiu',
+'variants' => 'Aliwapa',
 
 'errorpagetitle' => 'Mali',
 'returnto' => 'Magbalik king $1.',
@@ -173,6 +182,7 @@ Pabusten ing pamanaliling dake kapamilatan [alilan] ning suglung',
 'printableversion' => 'Kopiang malyaring i-print',
 'permalink' => 'Suglung a permanenti',
 'print' => 'I-print',
+'view' => 'Lawen',
 'edit' => 'Alilan',
 'create' => 'Maglalang',
 'editthispage' => 'I-edit ya ing bulung a ini',
@@ -275,7 +285,7 @@ Pabusten ing pamanaliling dake kapamilatan [alilan] ning suglung',
 'nstab-project' => 'Bulung ding proyektu',
 'nstab-image' => 'Simpan (File)',
 'nstab-mediawiki' => 'Mensahi',
-'nstab-template' => 'Modelu (template)',
+'nstab-template' => 'Ulma (template)',
 'nstab-help' => 'Saup bulung',
 'nstab-category' => 'Kategoriya',
 
@@ -644,6 +654,7 @@ Ini ing sangkan a binie nang $3: ''$2''",
 Kabaldugan: (ngeni)=pamiyaliwa king salukuyan a bersion (bersion ngeni),
 (tauli)=pamiyaliwa ketang sadyang (tauling) bersion, M = malating edit.',
 'history-fieldset-title' => 'Amlat da reng pamaglawe',
+'history-show-deleted' => 'Milako yamu',
 'histfirst' => 'Minunang dili',
 'histlast' => 'Pekabayu',
 'historysize' => '({{PLURAL:$1|1 a byte|byte}})',
@@ -748,7 +759,9 @@ Gamitan me ing radio button column bang bukud mung detang miyalilan aniang o bay
 'prevn' => 'minunang {{PLURAL:$1|$1}}',
 'nextn' => 'tutuking {{PLURAL:$1|$1}}',
 'viewprevnext' => 'Lon ($1 {{int:pipe-separator}} $2) ($3)',
+'searchmenu-exists' => "'''Atin bulung a mikilagiung \"[[:\$1]]\" keng wiking ini.'''",
 'searchhelp-url' => 'Help:Kalamnan',
+'searchprofile-everything' => 'Eganagana',
 'search-result-size' => '$1 ({{PLURAL:$2|1 a kataya|$2 kataya}})',
 'search-result-score' => 'Kaugnayan (relevance): $1%',
 'search-redirect' => '(pamanalis direksiun $1)',
@@ -1294,6 +1307,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 
 # Special:LinkSearch
 'linksearch' => 'Suglung palual',
+'linksearch-line' => '$1 makasuglung ibat $2',
 
 # Special:ListUsers
 'listusersfrom' => 'Ipakit la reng talagamit magumpisa king:',
@@ -1583,7 +1597,7 @@ $1',
 'nolinkshere-ns' => "Alang bulung a makatuglung king '''[[:$1]]''' ketang mepiling pirinan lagyu (namespace).",
 'isredirect' => 'Bulung ning pamanaliling direksiun',
 'istemplate' => 'misingit',
-'isimage' => 'suglung king larawan',
+'isimage' => 'Isuglung king larawan',
 'whatlinkshere-prev' => '{{PLURAL:$1|minunang|minunang $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|next|tutuking $1}}',
 'whatlinkshere-links' => '← suglung',
@@ -2080,6 +2094,14 @@ Detang aliwa tambing (by default) lang makasalikut.
 'exif-gpsareainformation' => 'Lagyu ning lugal king GPS',
 'exif-gpsdatestamp' => 'Petsa ning GPS',
 'exif-gpsdifferential' => 'Pamanulid king pamialiwa ning GPS (GPS differential correction)',
+'exif-worldregioncreated' => 'Labuad nung nu ya meyakua ing litratu',
+'exif-countrycreated' => 'Bangsa nung nokarin ya meyakua ing litratu',
+'exif-countrydest' => 'Bangsang makalto',
+'exif-provinceorstatedest' => 'Lalawigan o bangsang makalto',
+'exif-citydest' => 'Lakanbalen makalto',
+'exif-objectname' => 'Makuyad a bansag',
+'exif-source' => 'Pikuanan',
+'exif-cameraownername' => 'Mikibandi keng paglitratu',
 
 # EXIF attributes
 'exif-compression-1' => 'E makapitpit (uncompressed)',
index cf649e0..de6af95 100644 (file)
@@ -126,6 +126,7 @@ $messages = array(
 'subcategories' => 'Unnerabdeeling',
 'category-media-header' => 'Media in Abdeeling „$1“',
 'category-empty' => "''Die Abdeeling hot zu daere Zeit kene Bledder oder Feils.''",
+'hidden-categories' => '{{PLURAL:$1|Versteckelte Abdeeling|Verstecktelte Abdeelinge}}',
 'category-article-count-limited' => '{{PLURAL:$1|Sell Blatt iss|Selle $1 Bledder sin}} in daer Abdeeling drin:',
 'category-file-count-limited' => '{{PLURAL:$1|Sell Feil iss|Selle $1 Feils sin}} in daer Abdeeling drin:',
 'listingcontinuesabbrev' => '(weider)',
@@ -276,6 +277,7 @@ Wenns des net iss, hoscht verleicht en Fehler in de Daadebank gfunne. Bitte meld
 'missingarticle-diff' => '(Unnerschidd zwische Versione: $1, $2)',
 'internalerror' => 'Interner Fehler',
 'internalerror_info' => 'Interner Fehler: $1',
+'badtitle' => 'Tidl net gildich',
 'ns-specialprotected' => 'Besunnere Bledder sinn net zum Ennere.',
 
 # Virus scanner
index a0cd772..67cd743 100644 (file)
@@ -293,11 +293,11 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'Podkreślenie linków',
 'tog-justify' => 'Wyrównuj tekst w akapitach do obu marginesów',
-'tog-hideminor' => 'Ukryj drobne modyfikacje w ostatnich zmianach',
+'tog-hideminor' => 'Ukryj drobne edycje w ostatnich zmianach',
 'tog-hidepatrolled' => 'Ukryj sprawdzone edycje w ostatnich zmianach',
 'tog-newpageshidepatrolled' => 'Ukryj sprawdzone strony na liście nowych stron',
 'tog-extendwatchlist' => 'Pokaż na liście obserwowanych wszystkie zmiany, nie tylko ostatnie',
-'tog-usenewrc' => 'Zastosuj rozbudowany widok ostatnich zmian (JavaScript)',
+'tog-usenewrc' => 'Grupuj zmiany według stron na liście ostatnich zmian i obserwowanych (Wymaga JavaScript)',
 'tog-numberheadings' => 'Automatyczna numeracja nagłówków',
 'tog-showtoolbar' => 'Pokaż pasek narzędzi (JavaScript)',
 'tog-editondblclick' => 'Podwójne kliknięcie rozpoczyna edycję (JavaScript)',
@@ -309,12 +309,12 @@ $messages = array(
 'tog-watchdefault' => 'Dodaj do obserwowanych strony, które edytuję',
 'tog-watchmoves' => 'Dodaj do obserwowanych strony, które przenoszę',
 'tog-watchdeletion' => 'Dodaj do obserwowanych strony, które usuwam',
-'tog-minordefault' => 'Wszystkie zmiany oznaczaj domyślnie jako drobne',
+'tog-minordefault' => 'Wszystkie edycje domyślnie oznaczaj jako drobne',
 'tog-previewontop' => 'Pokazuj podgląd powyżej obszaru edycji',
 'tog-previewonfirst' => 'Pokazuj podgląd strony podczas pierwszej edycji',
 'tog-nocache' => 'Wyłącz pamięć podręczną przeglądarki',
-'tog-enotifwatchlistpages' => 'Wyślij do mnie e‐mail, jeśli strona z listy moich obserwowanych zostanie zmodyfikowana',
-'tog-enotifusertalkpages' => 'Wyślij do mnie e‐mail, jeśli moja strona dyskusji zostanie zmodyfikowana',
+'tog-enotifwatchlistpages' => 'Wyślij do mnie e‐mail kiedy strona z mojej listy obserwowanych zostanie zmodyfikowana',
+'tog-enotifusertalkpages' => 'Wyślij do mnie e‐mail kiedy moja strona dyskusji zostanie zmodyfikowana',
 'tog-enotifminoredits' => 'Wyślij e‐mail także w przypadku drobnych zmian na stronach',
 'tog-enotifrevealaddr' => 'Nie ukrywaj mojego adresu e‐mail w powiadomieniach',
 'tog-shownumberswatching' => 'Pokaż liczbę użytkowników obserwujących stronę',
@@ -327,7 +327,7 @@ $messages = array(
 'tog-forceeditsummary' => 'Informuj o niewypełnieniu opisu zmian',
 'tog-watchlisthideown' => 'Ukryj moje edycje na liście obserwowanych',
 'tog-watchlisthidebots' => 'Ukryj edycje botów na liście obserwowanych',
-'tog-watchlisthideminor' => 'Ukrywaj drobne zmiany na liście obserwowanych',
+'tog-watchlisthideminor' => 'Ukryj drobne zmiany na liście obserwowanych',
 'tog-watchlisthideliu' => 'Ukryj edycje zalogowanych użytkowników na liście obserwowanych',
 'tog-watchlisthideanons' => 'Ukryj edycje anonimowych użytkowników na liście obserwowanych',
 'tog-watchlisthidepatrolled' => 'Ukryj sprawdzone edycje na liście obserwowanych',
@@ -648,6 +648,8 @@ Można zgłosić ten fakt [[Special:ListUsers/sysop|administratorowi]], podając
 'cannotdelete' => 'Strona lub plik „$1” nie mogą zostać usunięte.
 Możliwe, że zostały już usunięte przez kogoś innego.',
 'cannotdelete-title' => 'Nie można usunąć strony „$1”.',
+'delete-hook-aborted' => 'Usuwanie przerwane przez zaczep.
+Przyczyna nieokreślona.',
 'badtitle' => 'Niepoprawny tytuł',
 'badtitletext' => 'Podano niepoprawny tytuł strony. Prawdopodobnie jest pusty lub zawiera znaki, których użycie jest zabronione.',
 'perfcached' => 'Poniższe dane są kopią z pamięci podręcznej i mogą być nieaktualne. Maksymalnie {{PLURAL:$1|jeden wynik jest|$1 wyniki są|$1 wyników jest}} w pamięci podręcznej.',
@@ -681,6 +683,8 @@ Uzasadnienie blokady: ''$2''.",
 Administrator blokujący go podał następujący powód "\'\'$3\'\'".',
 'invalidtitle-knownnamespace' => 'Nieprawidłowa nazwa w obszarze nazw "$2" o treści "$3"',
 'invalidtitle-unknownnamespace' => 'Nieprawidłowa nazwa z nieznaną liczbą przestrzeni nazw  $1  o treści "$2"',
+'exception-nologin' => 'Nie jesteś zalogowany/a',
+'exception-nologin-text' => 'Ta strona lub akcja wymaga bycia zalogowanym na tej wiki.',
 
 # Virus scanner
 'virus-badscanner' => "Zła konfiguracja – nieznany skaner antywirusowy ''$1''",
@@ -2533,7 +2537,7 @@ $1',
 'tooltip-invert' => 'Zaznacz to pole, aby ukryć zmiany na stronach w wybranych przestrzeniach nazw (oraz związanych z nimi innymi przestrzeniami nazw, jeśli zaznaczono)',
 'namespace_association' => 'powiązana przestrzeń nazw',
 'tooltip-namespace_association' => 'Zaznacz to pole, aby uwzględnić strony dyskusji i tematu związane z wybranymi przestrzeniami nazw',
-'blanknamespace' => '(główna)',
+'blanknamespace' => '(Główna)',
 
 # Contributions
 'contributions' => 'Wkład użytkownika',
@@ -2975,7 +2979,7 @@ Brak katalogu dla plików tymczasowych.',
 'tooltip-n-currentevents' => 'Informacje o aktualnych wydarzeniach',
 'tooltip-n-recentchanges' => 'Lista ostatnich zmian na {{GRAMMAR:MS.lp|{{SITENAME}}}}.',
 'tooltip-n-randompage' => 'Pokaż stronę wybraną losowo',
-'tooltip-n-help' => 'Tutaj możesz się wielu rzeczy dowiedzieć.',
+'tooltip-n-help' => 'Tutaj możesz się dowiedzieć wielu rzeczy.',
 'tooltip-t-whatlinkshere' => 'Pokaż listę wszystkich stron linkujących do tej strony',
 'tooltip-t-recentchangeslinked' => 'Ostatnie zmiany w stronach, do których ta strona linkuje',
 'tooltip-feed-rss' => 'Kanał RSS dla tej strony',
@@ -3062,6 +3066,7 @@ Najprawdopodobniej zostało to spowodowane przez link do zewnętrznej strony int
 'spambot_username' => 'MediaWiki – usuwanie spamu',
 'spam_reverting' => 'Przywracanie ostatniej wersji nie zawierającej linków do $1',
 'spam_blanking' => 'Wszystkie wersje zawierały odnośniki do $1. Czyszczenie strony.',
+'spam_deleting' => 'Wszystkie wersje zawierały linki do $1, usuwam.',
 
 # Info page
 'pageinfo-title' => 'Informacje o „$1“',
@@ -3995,6 +4000,8 @@ W przeciwnym wypadku można użyć prostego formularza poniżej. Komentarz zosta
 'api-error-empty-file' => 'Przesłany przez Ciebie plik jest pusty.',
 'api-error-emptypage' => 'Tworzenie nowych, pustych stron jest niedozwolone.',
 'api-error-fetchfileerror' => 'Błąd wewnętrzny – wystąpił błąd w trakcie pobierania pliku.',
+'api-error-fileexists-forbidden' => 'Plik o nazwie "$1" już istnieje i nie może być nadpisany.',
+'api-error-fileexists-shared-forbidden' => 'Plik o nazwie "$1" już istnieje we współdzielonym repozytorium i nie może być nadpisany.',
 'api-error-file-too-large' => 'Przesłany przez Ciebie plik jest zbyt duży.',
 'api-error-filename-tooshort' => 'Nazwa pliku jest zbyt krótka.',
 'api-error-filetype-banned' => 'Zabroniony format pliku.',
@@ -4033,4 +4040,6 @@ W przeciwnym wypadku można użyć prostego formularza poniżej. Komentarz zosta
 'duration-centuries' => '$1 {{PLURAL:$1|stulecie|stulecia|stuleci}}',
 'duration-millennia' => '$1 {{PLURAL:$1|tysiąclecie|tysiąclecia|tysiącleci}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Nie udało się uzyskać blokady na serwerze $1.',
 );
index cbfb15e..72a40a5 100644 (file)
@@ -48,7 +48,7 @@ $messages = array(
 'tog-hidepatrolled' => "Stërma le modìfiche verificà ant j'ùltime modìfiche",
 'tog-newpageshidepatrolled' => 'Stërma le pàgine verificà da la lista dle pàgine neuve',
 'tog-extendwatchlist' => 'Slarga la funsion "ten sot euj" an manera che a la smon-a tute le modìfiche, nen mach l\'ùltima',
-'tog-usenewrc' => "Deuvra j'ùltime modìfiche an bela forma (a-i va JavaScript)",
+'tog-usenewrc' => "Deuvra j'ùltime modìfiche ameliorà (a-i và JavaScript)",
 'tog-numberheadings' => 'Tìtoj ëd paràgraf<br />che as nùmero daspërlor',
 'tog-showtoolbar' => "Mostra la bara dj'utiss (a-i va Javascript)",
 'tog-editondblclick' => "Dobia sgnacà për modifiché l'artìcol<br />(a-i va JavaScript)",
@@ -399,6 +399,8 @@ Për piasì, fa rapòrt a n'[[Special:ListUsers/sysop|aministrator]], pijand nò
 'cannotdelete' => "La pàgina o l'archivi \"\$1\" a peul pa esse scancelà.
 Peul desse ch'a l'é già stàit ëscancelà da cheidun d'àutr.",
 'cannotdelete-title' => 'A peul pa scancelesse la pàgina «$1»',
+'delete-hook-aborted' => "Modìfica anulà da n'estension.
+A l'ha smonù gnun-e spiegassion.",
 'badtitle' => 'Tìtol nen giust',
 'badtitletext' => "La pàgina che a l'ha ciamà a peul pa esse mostrà. A podrìa tratesse ëd na pàgina nen bon-a, veujda, ò pura a podrìa ëdcò esse n'eror ant n'anliura antra lenghe diferente ò tra diferente version ëd {{SITENAME}}.",
 'perfcached' => "Ij dat sì-dapress a sòn ëstàit memorisà an local e a peulo esse nen agiornà. Al pi {{PLURAL:$1|n'arzultà a l'é disponìbil|$1 arzultà a son disponìbij}} ant la memòria local.",
@@ -429,6 +431,8 @@ Coma rason a l'ha butà: ''$2''.",
 L'aministrator ch'a l'ha blocalo a l'ha lassà sta spiegassion: «$3».",
 'invalidtitle-knownnamespace' => 'Tìtol pa bon con spassi nominal "$2" e test "$3"',
 'invalidtitle-unknownnamespace' => 'Tìtol pa bon con spassi nominal sconossù nùmer $1 e test "$2"',
+'exception-nologin' => 'Nen rintrà ant ël sistema',
+'exception-nologin-text' => "Costa pàgina o assion a ciama ch'a sia rintrà an costa wiki.",
 
 # Virus scanner
 'virus-badscanner' => "Configurassion falà: antivìrus nen conossù: ''$1''",
@@ -2634,18 +2638,18 @@ Che as lo salva ansima a sò ordinator e peui che a lo caria ambelessì.",
 'importfailed' => 'Amportassion falìa: $1',
 'importunknownsource' => "Sorgiss d'amportassion ëd na sòrt nen conossùa",
 'importcantopen' => "L'archivi da amporté a l'é pa podusse deurbe",
-'importbadinterwiki' => 'Anliura antra wiki diferente malfaita',
-'importnotext' => 'Veujd ò sensa pa gnun test',
-'importsuccess' => 'Amportassion andaita a bon fin!',
-'importhistoryconflict' => "A-i son dle stòrie dë sta pàgina-sì che as contradisso un-a con l'àutra (a peul esse che sta pàgina-sì a l'avèissa già amportala)",
-'importnosources' => "A l'é pa staita definìa gnun-a sorgiss d'amportassion da na wiki diferenta, e carié mach le stòrie as peul nen.",
+'importbadinterwiki' => 'Liura antra wiki diferente cioca',
+'importnotext' => 'Veujd o con gnun test',
+'importsuccess' => 'Amportassion finìa!',
+'importhistoryconflict' => "A-i son dle stòrie dë sta pàgina-sì che as contradiso un-a con l'àutra (a peul esse che sta pàgina-sì a l'avèissa già amportala)",
+'importnosources' => "A l'é pa stàita definìa gnun-a sorgiss d'amportassion da na wiki diferenta, e carié mach le stòrie as peul nen.",
 'importnofile' => "Pa gnun archivi d'amportassion carià.",
 'importuploaderrorsize' => "A l'é falìe la caria dl'archivi d'amporté. L'archivi a resta pì gròss che lòn ch'as peul cariesse.",
 'importuploaderrorpartial' => "A l'é falìe la caria dl'archivi d'amporté. L'archivi a resta carià mach për un tòch.",
 'importuploaderrortemp' => "A l'é falìe la caria dl'archivi d'amporté. A-i manca un dossié provisòri.",
 'import-parse-failure' => "Eror dë scomposission XML ant l'amportassion",
 'import-noarticle' => "Pa gnun-a pàgina d'amporté.",
-'import-nonewrevisions' => "Tute le revision a l'ero già stàite amportà.",
+'import-nonewrevisions' => "Tute le revision a j'ero già stàite amportà.",
 'xml-error-string' => '$1 ant la riga $2, colòna $3 (byte $4): $5',
 'import-upload' => 'Carìa dat XML',
 'import-token-mismatch' => 'Perdù ij dat ëd session.
@@ -3670,6 +3674,8 @@ Dësnò, a peule dovré ël formlari semplificà sì-sota. Sò coment a sarà gi
 'api-error-empty-file' => "L'archivi ch'a l'ha mandà a l'era veuid.",
 'api-error-emptypage' => "La creassion ëd pagine neuve veujde a l'é pa përmëttùa.",
 'api-error-fetchfileerror' => "Eror antern: quaicòs a l'é andàit mal an mente as arcuperava l'archivi",
+'api-error-fileexists-forbidden' => "N'archivi con nòm «$1» a esist già, e a peul pa esse dzorascrivù.",
+'api-error-fileexists-shared-forbidden' => 'N\'archivi con nòm "$1" a esist già ant ël depòsit condivis ëd j\'archivi, e a peul pa esse dzorascrivù.',
 'api-error-file-too-large' => "L'archivi ch'a l'ha mandà a l'era tròp gròss.",
 'api-error-filename-tooshort' => "Ël nòm ëd l'archivi a l'é tròp curt.",
 'api-error-filetype-banned' => "Costa sòrt d'archivi a l'é proibìa.",
@@ -3708,4 +3714,6 @@ Dësnò, a peule dovré ël formlari semplificà sì-sota. Sò coment a sarà gi
 'duration-centuries' => '$1 {{PLURAL:$1|sécol|sécoj}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milenari|milenari}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'As peul pa butesse le saradure an sël servent $1.',
 );
index 8cfc8b6..29715a9 100644 (file)
@@ -2277,7 +2277,7 @@ Encontram-se disponíveis [[{{MediaWiki:Listgrouprights-helppage}}|informações
 # E-mail user
 'mailnologin' => 'Nenhum endereço de envio',
 'mailnologintext' => 'Precisa de estar [[Special:UserLogin|autenticado]] e possuir um endereço de correio válido nas suas [[Special:Preferences|preferências]], para poder enviar correio electrónico a outros utilizadores.',
-'emailuser' => 'Enviar-lhe um e-mail',
+'emailuser' => 'Enviar um e-mail ao utilizador',
 'emailpage' => 'Contactar utilizador',
 'emailpagetext' => 'Pode usar o formulário abaixo para enviar uma mensagem por correio electrónico para este utilizador.
 O endereço de correio que introduziu nas suas [[Special:Preferences|preferências]] irá aparecer no campo do remetente da mensagem "De:", para que o destinatário lhe possa responder directamente.',
index 3236db2..eda037f 100644 (file)
@@ -315,11 +315,11 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'Sublinhar links:',
 'tog-justify' => 'Justificar parágrafos',
-'tog-hideminor' => 'Esconder edições secundárias nas mudanças recentes',
-'tog-hidepatrolled' => 'Esconder edições patrulhadas nas mudanças recentes',
-'tog-newpageshidepatrolled' => 'Esconder páginas patrulhadas da lista de páginas novas',
+'tog-hideminor' => 'Ocultar edições menores nas mudanças recentes',
+'tog-hidepatrolled' => 'Ocultar edições patrulhadas nas mudanças recentes',
+'tog-newpageshidepatrolled' => 'Ocultar páginas patrulhadas da lista de páginas novas',
 'tog-extendwatchlist' => 'Expandir a lista de páginas vigiadas para mostrar todas as alterações aplicáveis, não apenas as mais recentes',
-'tog-usenewrc' => 'Utilizar mudanças recentes melhoradas (requer JavaScript)',
+'tog-usenewrc' => 'Agrupar alterações por páginas nas mudanças recentes e páginas vigiadas (requer JavaScript)',
 'tog-numberheadings' => 'Auto-numerar cabeçalhos',
 'tog-showtoolbar' => 'Mostrar barra de edição (JavaScript)',
 'tog-editondblclick' => 'Editar páginas quando houver clique duplo (JavaScript)',
@@ -347,12 +347,12 @@ $messages = array(
 'tog-showjumplinks' => 'Ativar links 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' => 'Esconder as minhas edições da lista de páginas vigiadas',
-'tog-watchlisthidebots' => 'Esconder edições efetuadas por robôs da lista de páginas vigiadas',
-'tog-watchlisthideminor' => 'Esconder edições menores da lista de páginas vigiadas',
+'tog-watchlisthideown' => 'Ocultar as minhas edições da lista de páginas vigiadas',
+'tog-watchlisthidebots' => 'Ocultar edições automatizadas por bots da lista de páginas vigiadas',
+'tog-watchlisthideminor' => 'Ocultar edições menores da lista de páginas vigiadas',
 'tog-watchlisthideliu' => 'Ocultar edições de usuários autenticados da lista de páginas vigiadas',
 'tog-watchlisthideanons' => 'Ocultar edições de usuários anônimos da lista de páginas vigiadas',
-'tog-watchlisthidepatrolled' => 'Esconder edições patrulhadas na lista de páginas vigiadas',
+'tog-watchlisthidepatrolled' => 'Ocultar edições patrulhadas na lista de páginas vigiadas',
 'tog-nolangconversion' => 'Desabilitar conversão de variantes de idioma',
 'tog-ccmeonemails' => 'Receber cópias de e-mails que eu enviar a outros usuários',
 'tog-diffonly' => 'Não mostrar o conteúdo da página ao comparar duas edições',
@@ -704,6 +704,8 @@ Quem o protegeu foi [[User:$1|$1]], com a justificativa: ''$2''.",
 O administrador que bloqueou ofereceu a seguinte explicação: "$3".',
 'invalidtitle-knownnamespace' => 'Título inválido para o espaço nominal "$2" e texto "$3"',
 'invalidtitle-unknownnamespace' => 'Título inválido para o espaço nominal de número desconhecido ($1) e texto "$2"',
+'exception-nologin' => 'Não está autenticado',
+'exception-nologin-text' => 'Esta página ou ação requer que você esteja autenticado neste wiki.',
 
 # Virus scanner
 'virus-badscanner' => "Má configuração: antivírus desconhecido: ''$1''",
@@ -757,8 +759,8 @@ Certifique-se de que tem os cookies ativados, recarregue esta página e tente no
 'loginsuccesstitle' => 'Login bem sucedido',
 'loginsuccess' => "'''Agora você está {{GENDER:autenticado|autenticada}} ao wiki {{SITENAME}} como \"\$1\"'''.",
 'nosuchuser' => 'Não existe nenhum usuário com o nome "$1".
-Os nomes de usuário são sensíveis à capitalização.
-Verifique a ortografia, ou [[Special:UserLogin/signup|crie uma nova conta]].',
+Os nomes de usuário são sensíveis a letras maiúsculas.
+Verifique o que foi digitado ou [[Special:UserLogin/signup|crie uma nova conta]].',
 'nosuchusershort' => 'Não existe um usuário com o nome "$1". Verifique o nome que introduziu.',
 'nouserspecified' => 'Você precisa especificar um nome de usuário.',
 'login-userblocked' => 'Este usuário está bloqueado. Entrada proibida.',
@@ -796,9 +798,10 @@ Como resultado, visitantes que usam este endereço IP não podem criar mais nenh
 'accountcreated' => 'Conta criada',
 'accountcreatedtext' => 'A conta de usuário para $1 foi criada.',
 'createaccount-title' => 'Criação de conta em {{SITENAME}}',
-'createaccount-text' => 'Alguém criou uma conta de nome $2 para o seu endereço de email no wiki {{SITENAME}} ($4), tendo como senha "$3". Você deve se autenticar e alterar sua senha.
+'createaccount-text' => 'Alguém criou uma conta de nome $2 para o seu endereço de email no wiki {{SITENAME}} ($4), tendo como senha "$3".
+Você deve se autenticar e alterar sua senha.
 
-Você pode ignorar esta mensagem caso a conta tenha sido criada por engano.',
+Ignore esta mensagem caso a conta tenha sido criada por engano.',
 'usernamehasherror' => 'Nome de usuário não pode conter o símbolo de cardinal (#).',
 'login-throttled' => 'Você fez tentativas demais de se autenticar com esta conta recentemente.
 Por favor aguarde antes de tentar novamente.',
@@ -1183,8 +1186,8 @@ Outros administradores no {{SITENAME}} continuarão podendo acessar ao conteúdo
 'revdelete-hide-text' => 'Ocultar texto da edição',
 'revdelete-hide-image' => 'Ocultar conteúdos do arquivo',
 'revdelete-hide-name' => 'Ocultar ação e alvo',
-'revdelete-hide-comment' => 'Esconder comentário de edição',
-'revdelete-hide-user' => 'Esconder nome de usuário/IP do editor',
+'revdelete-hide-comment' => 'Ocultar o sumário de edição',
+'revdelete-hide-user' => 'Ocultar nome de usuário/IP do editor',
 'revdelete-hide-restricted' => 'Suprimir dados de administradores assim como de outros',
 'revdelete-radio-same' => '(não altere)',
 'revdelete-radio-set' => 'Sim',
@@ -1265,7 +1268,7 @@ Certifique-se de que tal alteração manterá a continuidade das ações.',
 'difference-multipage' => '(Diferenças entre páginas)',
 'lineno' => 'Linha $1:',
 'compareselectedversions' => 'Compare as versões selecionadas',
-'showhideselectedversions' => 'Mostrar/esconder versões selecionadas',
+'showhideselectedversions' => 'Exibir/ocultar edições selecionadas',
 'editundo' => 'desfazer',
 'diff-multi' => '({{PLURAL:$1|Uma edição intermediária|$1 edições intermediárias}} de {{PLURAL:$2|um usuário|$2 usuários}} {{PLURAL:$1|não apresentada|não apresentadas}})',
 'diff-multi-manyusers' => '({{PLURAL:$1|Uma edição intermediária|$1 edições intermediárias}} de mais de {{PLURAL:$2|um usuário|$2 usuário}} não {{PLURAL:$1|apresentada|apresentadas}})',
@@ -1622,7 +1625,7 @@ Caso decida fornecê-lo, este será utilizado para dar-lhe crédito pelo seu tra
 'nchanges' => '$1 {{PLURAL:$1|alteração|alterações}}',
 'recentchanges' => 'Mudanças recentes',
 'recentchanges-legend' => 'Opções das mudanças recentes',
-'recentchanges-summary' => 'Veja as mais novas mudanças na {{SITENAME}} nesta página.',
+'recentchanges-summary' => 'Acompanhe nesta página as mudanças mais recentes deste wiki.',
 'recentchanges-feed-description' => 'Acompanhe neste feed as mudanças mais recentes do wiki.',
 'recentchanges-label-newpage' => 'Esta edição criou uma nova página',
 'recentchanges-label-minor' => 'Esta é uma edição menor',
@@ -3047,6 +3050,7 @@ Tal bloqueio foi provavelmente causado por uma ligação para um ''website'' ext
 'spambot_username' => 'MediaWiki limpeza de spam',
 'spam_reverting' => 'Revertendo para a última versão que não contém links para $1',
 'spam_blanking' => 'Todas revisões contendo links para $1, limpando',
+'spam_deleting' => 'Eliminada por todas as suas edições conterem links para $1',
 
 # Info page
 'pageinfo-title' => 'Informações sobre "$1"',
@@ -3924,6 +3928,8 @@ Caso contrário, você poderá usar o formulário simplificado a seguir. Seu com
 'api-error-empty-file' => 'O arquivo que você enviou está vazio.',
 'api-error-emptypage' => 'Não é permitido criar páginas novas vazias.',
 'api-error-fetchfileerror' => 'Erro interno: ocorreu um problema indeterminado ao acessar o arquivo.',
+'api-error-fileexists-forbidden' => 'Já existe um arquivo com o nome "$1". Não é possível substituí-lo.',
+'api-error-fileexists-shared-forbidden' => 'Já existe, no repositório de arquivos partilhados, um arquivo com o nome "$1". Não é possível substituí-lo.',
 'api-error-file-too-large' => 'O arquivo que você enviou é muito grande.',
 'api-error-filename-tooshort' => 'O nome do arquivo é curto demais.',
 'api-error-filetype-banned' => 'Este tipo do arquivo é proibido.',
index aa09166..ef9dff1 100644 (file)
@@ -74,6 +74,7 @@
  * @author Mihai
  * @author Mormegil
  * @author Mpradeep
+ * @author Murma174
  * @author Najami
  * @author Nemo bis
  * @author Niels
@@ -138,7 +139,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Option in Recent changes tab of [[Special:Preferences]] (if [[mw:Manual:$wgUseRCPatrol|$wgUseRCPatrol]] is enabled). {{Gender}}',
 'tog-newpageshidepatrolled' => 'Toggle in [[Special:Preferences]], section "Recent changes" (if [[mw:Manual:$wgUseRCPatrol|$wgUseRCPatrol]] is enabled). {{Gender}}',
 'tog-extendwatchlist' => "[[Special:Preferences]], tab 'Watchlist'. Offers user to show all applicable changes in watchlist (by default only the last change to a page on the watchlist is shown). {{Gender}}",
-'tog-usenewrc' => "[[Special:Preferences]], tab 'Recent changes'. Offers user to use alternative reprsentation of [[Special:RecentChanges]] and watchlist. {{Gender}}",
+'tog-usenewrc' => "[[Special:Preferences]], tab 'Recent changes'. Offers user to use alternative representation of [[Special:RecentChanges]] and watchlist. {{Gender}}",
 'tog-numberheadings' => "[[Special:Preferences]], tab 'Misc'. Offers numbered headings on content pages to user. {{Gender}}",
 'tog-showtoolbar' => "[[Special:Preferences]], tab 'Edit'. Offers user to show edit toolbar in page edit screen. {{Gender}}
 
@@ -168,7 +169,7 @@ Is only shown if {{msg-mw|tog-enotifusertalkpages}} or/and {{msg-mw|tog-enotifwa
 'tog-fancysig' => 'In user preferences under the signature box.  {{Gender}}',
 'tog-externaleditor' => "[[Special:Preferences]], tab 'Edit'. Offers user to use an external editor by default. {{Gender}}",
 'tog-externaldiff' => "[[Special:Preferences]], tab 'Edit'. Offers user to use an external diff program by default. {{Gender}}",
-'tog-showjumplinks' => 'Toggle option used in [[Special:Preferences]]. The "jump to" part should be the same with {{msg-mw|jumpto}} (or you can use <nowiki>{{int:jumpto}}</nowiki>). Thess links are shown in some of the older skins as "jump to: navigation, search" but they are hidden by default (you can enable them with this option). {{Gender}}',
+'tog-showjumplinks' => 'Toggle option used in [[Special:Preferences]]. The "jump to" part should be the same with {{msg-mw|jumpto}} (or you can use <nowiki>{{int:jumpto}}</nowiki>). These links are shown in some of the older skins as "jump to: navigation, search" but they are hidden by default (you can enable them with this option). {{Gender}}',
 'tog-uselivepreview' => 'Toggle option used in [[Special:Preferences]]. Live preview is an experimental feature (unavailable by default) to use edit preview without loading the page again. {{Gender}}',
 'tog-forceeditsummary' => "Toggle option used in [[Special:Preferences]] to force an edit ''{{msg-mw|summary}}''. {{Gender}}",
 'tog-watchlisthideown' => "[[Special:Preferences]], tab 'Watchlist'. Offers user to hide own edits from watchlist. {{Gender}}",
@@ -664,6 +665,7 @@ HTML markup cannot be used.
 $1 is a filename, I think.',
 'cannotdelete-title' => 'Title of error page when the user cannot delete a page
 * $1 is the page name',
+'delete-hook-aborted' => 'Error message shown when an extension hook prevents a page deletion, but does not provide an error message.',
 'badtitle' => 'The page title when a user requested a page with invalid page name. The content will be {{msg-mw|badtitletext}}.',
 'badtitletext' => 'The message shown when a user requested a page with invalid page name. The page title will be {{msg-mw|badtitle}}.',
 'perfcached' => 'Like {{msg-mw|perfcachedts}} but used when we do not know how long ago page was cached (unlikely to happen). Parameters:
@@ -696,6 +698,8 @@ $1 is a filename, I think.',
 'invalidtitle-unknownnamespace' => 'Displayed when an invalid title was encountered (generally in a list) and the namespace number is unknown.
 * $1 is the namespace number
 * $2 is the part of the title after the namespace (e.g. SomeName for the page User:SomeName)',
+'exception-nologin' => 'Generic page title used on error page when a user is not logged in. Message used by the UserNotLoggedIn exception.',
+'exception-nologin-text' => 'Generic reason displayed on error page when a user is not logged in. Message used by the UserNotLoggedIn exception.',
 
 # Login and logout pages
 'logouttext' => 'Log out message',
@@ -1122,6 +1126,7 @@ Used in History and [[Special:Contributions]].',
 'rev-deleted-user-contribs' => 'Part of revision deletion.',
 'rev-deleted-text-unhide' => 'This message is very similar to {{msg-mw|rev-suppressed-unhide-diff}}. Parameters:
 * $1 is a HTML link to the diff',
+'rev-deleted-text-view' => 'I believe this is an error message which appears if a user tries to view a past revision of a page, where the revision has been hidden from view, although later revisions of the page still exist.',
 'rev-suppressed-unhide-diff' => 'This message is very similar to {{msg-mw|rev-deleted-unhide-diff}} and to {{msg-mw|rev-suppressed-text-unhide}}. Parameters:
 * $1 is a HTML link to the diff',
 'rev-delundel' => 'Link in page history for oversight (see also {{msg-mw|rev-showdeleted}})',
@@ -3359,7 +3364,12 @@ See also {{msg-mw|Anonuser}} and {{msg-mw|Siteusers}}.',
 'nocredits' => 'This message is shown when viewing the credits of a page (example: {{fullurl:Main Page|action=credits}}) but when there are no credits available. Note that the credits action is disabled by default (currently enabled on translatewiki.net).',
 
 # Spam protection
-'spam_reverting' => '{{Identical|Revert}}',
+'spam_reverting' => 'Edit summary for spam cleanup script. Used when a page is reverted because all later revisions contained a particular link. Parameters:
+* $1 is a spammed domain name.',
+'spam_blanking' => 'Edit summary for spam cleanup script. Used when a page is blanked (made to have no content, but still exist) because the script could not find an appropriate revision to set the page to. Parameters:
+* $1 is a spammed domain name.',
+'spam_deleting' => 'Edit summary for spam cleanup script. Used when a page is deleted because all revisions contained a particular link. Parameters:
+* $1 is a spammed domain name.',
 
 # Info page
 'pageinfo-title' => 'Page title for action=info.
@@ -4710,6 +4720,8 @@ $4 is the gender of the target user.',
 'api-error-empty-file' => 'API error message that can be used for client side localisation of API errors.',
 'api-error-emptypage' => 'API error message that can be used for client side localisation of API errors.',
 'api-error-fetchfileerror' => 'API error message that can be used for client side localisation of API errors.',
+'api-error-fileexists-forbidden' => 'API error message that can be used for client side localisation of API errors.',
+'api-error-fileexists-shared-forbidden' => 'API error message that can be used for client side localisation of API errors.',
 'api-error-file-too-large' => 'API error message that can be used for client side localisation of API errors.',
 'api-error-filename-tooshort' => 'API error message that can be used for client side localisation of API errors.',
 'api-error-filetype-banned' => 'API error message that can be used for client side localisation of API errors.',
index 4fef2a4..c994d0c 100644 (file)
@@ -2236,7 +2236,7 @@ Kay p\'anqata mana musuqmanta watukamuptiykiqa, manam huk hukchasqakunamanta wil
 
 --
 E-chaski willaykuy allinkachinakunata hukchanaykipaqqa kay p\'anqatam qhaway:
-{{canonicalurl:{{#special:Preferences}}}}
+{{canonicalurl:{{#special:Preferences}}}} 
 
 Watiqana sutisuyuykipaq allinkachinakunata hukchanaykipaqqa kay p\'anqatam qhaway:
 {{canonicalurl:{{#special:EditWatchlist}}}}
index db2a52b..85a7390 100644 (file)
@@ -241,7 +241,7 @@ $messages = array(
 'jumpto' => 'Chayman rina',
 'jumptonavigation' => 'Wampuna',
 'jumptosearch' => 'Maskana',
-'view-pool-error' => 'Atatay, kunan ratupi pankayuk antawakuna yapa trabajuta charinmi.
+'view-pool-error' => 'Atatay, kunan ratupi pankayuk antawakuna yapa trabajuta charinmi. 
 Yapa runakuna kay pankata rikukunmi.
 Ama shinachu kapay, ashakuta shuyapay, kipalla kutin pankata rikunkapak shamupay.
 
@@ -327,7 +327,7 @@ $1',
 'databaseerror' => 'Yachayyuk ukupi pantay',
 'laggedslavemode' => "'''Rikupay''': Kay pankapi, shina kakpi, mushuk killkaykuna illankacha.",
 'missing-article' => "Hatun kamupi shuk killkayta mana tarin, shinapash chay killkayta tiyanami kan. Paypa chay shutima kan : «$1» $2.
-Icha shuk ñawpak pachamanta ''diff'' ñamana tiyanchu, icha kay tinkika shuk pichashka pankapa shutimi kan.
+Icha shuk ñawpak pachamanta ''diff'' ñamana tiyanchu, icha kay tinkika shuk pichashka pankapa shutimi kan. 
 Mana shina kakpi, shuk [[Special:ListUsers/sysop|kamachyik]]man willapay, payta URL killkata willapay.",
 'missingarticle-rev' => '(Killkay#: $1)',
 'internalerror' => 'Antawa ukupi pantay tiyarka',
@@ -420,7 +420,7 @@ Pakpak shutita [[Special:Search/{{PAGENAME}}|shuk pankakunapi maskanata]], <span
 
 Tapuripay, kaypi killkanata allimi, mana allimi kanchu.
 Uraypi apakunakunapa pichanakunapa kamuta rikuchiwanchik:",
-'moveddeleted-notice' => 'Kaypankaka pichashkami kan.
+'moveddeleted-notice' => 'Kaypankaka pichashkami kan. 
 Uraypi apakuykunpa, pichaykunapa kamuta rikuchinchik:',
 
 # Parser/template warnings
@@ -505,7 +505,7 @@ Kay (kaykunachu) kachashkakunaka cunkashkami kashka.",
 'searchrelated' => 'tinkishka',
 'searchall' => 'tukuy',
 'showingresultsheader' => "{{PLURAL:$5|Maskashka panka: '''$1''', '''$3'''-manta|Maskashka pankakuna: '''$1 - $2''', '''$3'''-manta}}, '''$4''' maskashpaka",
-'nonefound' => "'''Musyay''': kikinka mana shina rimakpika, mana tukuy shuti-suyupi maskapanki.
+'nonefound' => "'''Musyay''': kikinka mana shina rimakpika, mana tukuy shuti-suyupi maskapanki. 
 Icha ''all:'' rimaywan (icha shuk shutisuyupa rimaywan) kikinpa killkata kallarikpika taripankimi.",
 'search-nonefound' => 'Kikinka maskashka rimaykunaka mana tiyanchu.',
 'powersearch' => 'Ashtawan alli maskana',
@@ -896,7 +896,7 @@ Shuk aspipi, shukniki tinkika ima tinkita wichkashkami kanka nin, kay aspipi shu
 'external_image_whitelist' => "  #Kay aspita kay shinallami sakipay<pre>
 #Uraypi ''regex'' samikunata churapay (// chawpipilla)
 #Kay samikunaka hawa rikchakunapa URLwan taripachishkami kanka.
-#Alli taripashkakunaka rikcha shinami rikushishkami kanka, shukkunaka tinki shinallami riksichinka,
+#Alli taripashkakunaka rikcha shinami rikushishkami kanka, shukkunaka tinki shinallami riksichinka, 
 #«#» llikawan kallarik aspikunaka willaykunallami kanka
 #Uchilla, hatun llikakunatapash churanata ushapanki, kaypi shinallami kan
 
index f60e793..20daf46 100644 (file)
@@ -305,7 +305,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Ascunde în schimbări recente editările patrulate',
 'tog-newpageshidepatrolled' => 'Ascunde paginile patrulate din lista de pagini noi',
 'tog-extendwatchlist' => 'Extinde lista de articole urmărite pentru a arăta toate schimbările efectuate, nu doar pe cele mai recente',
-'tog-usenewrc' => 'Afișează varianta îmbunătățită a schimbărilor recente (necesită JavaScript)',
+'tog-usenewrc' => 'Grupează modificările după pagină în cadrul schimbărilor recente și listei paginilor urmărite (necesită JavaScript)',
 'tog-numberheadings' => 'Numerotează automat secțiunile',
 'tog-showtoolbar' => 'Afișează bara de unelte pentru modificare (JavaScript)',
 'tog-editondblclick' => 'Activează modificarea paginii prin dublu clic (JavaScript)',
@@ -314,17 +314,17 @@ $messages = array(
 pe titlul secțiunii (JavaScript)',
 'tog-showtoc' => 'Arată cuprinsul (pentru paginile cu mai mult de 3 paragrafe cu titlu)',
 'tog-rememberpassword' => 'Autentificare automată de la acest navigator (expiră după $1 {{PLURAL:$1|zi|zile|de zile}})',
-'tog-watchcreations' => 'Adaugă paginile pe care le creez la lista mea de urmărire',
-'tog-watchdefault' => 'Adaugă paginile pe care le modific la lista mea de urmărire',
-'tog-watchmoves' => 'Adaugă paginile pe care le redenumesc la lista de pagini urmărite',
-'tog-watchdeletion' => 'Adaugă paginile pe care le șterg în lista de pagini urmărite',
+'tog-watchcreations' => 'Adaugă paginile pe care le creez și fișierele pe care le încarc la lista mea de urmărire',
+'tog-watchdefault' => 'Adaugă paginile și fișierele pe care le modific la lista mea de urmărire',
+'tog-watchmoves' => 'Adaugă paginile și fișierele pe care le redenumesc la lista mea de urmărire',
+'tog-watchdeletion' => 'Adaugă paginile și fișierele pe care le șterg la lista mea de urmărire',
 'tog-minordefault' => 'Marchează din oficiu toate modificările ca fiind minore',
 'tog-previewontop' => 'Arată previzualizarea deasupra căsuței de modificare',
 'tog-previewonfirst' => 'Arată previzualizarea la prima modificare',
 'tog-nocache' => 'Dezactivează opțiunea navigatorului de memorare în cache a paginilor',
-'tog-enotifwatchlistpages' => 'Trimite-mi un email la modificările paginilor',
+'tog-enotifwatchlistpages' => 'Trimite-mi un e-mail atunci când o pagină sau un fișier din lista mea de pagini urmărite suferă modificări',
 'tog-enotifusertalkpages' => 'Trimite-mi un email când pagina mea de discuții este modificată',
-'tog-enotifminoredits' => 'Trimite-mi un email de asemenea pentru modificările minore ale paginilor',
+'tog-enotifminoredits' => 'Trimite-mi, de asemenea, un e-mail în caz de modificări minore asupra paginilor și fișierelor',
 'tog-enotifrevealaddr' => 'Descoperă-mi adresa email în mesajele de notificare',
 'tog-shownumberswatching' => 'Arată numărul utilizatorilor care urmăresc',
 'tog-oldsig' => 'Semnătură actuală:',
@@ -659,6 +659,8 @@ Te rog anunță acest aspect unui [[Special:ListUsers/sysop|administrator]], ind
 'cannotdelete' => 'Pagina sau fișierul „$1” nu a putut fi șters.
 S-ar putea ca acesta să fi fost deja șters de altcineva.',
 'cannotdelete-title' => 'Imposibil de șters pagina „$1”',
+'delete-hook-aborted' => 'Ștergerea a fost abandonată din cauza unui hook.
+Nicio explicație furnizată.',
 'badtitle' => 'Titlu incorect',
 'badtitletext' => 'Titlul căutat a fost invalid, gol sau o legătură invalidă inter-linguală sau inter-wiki.
 
@@ -695,6 +697,8 @@ Motivul invocat este ''$2''.",
 Administratorul care a efectuat blocarea a furnizat explicația: „$3”.',
 'invalidtitle-knownnamespace' => 'Titlu invalid cu spațiul de nume „$2” și textul „$3”',
 'invalidtitle-unknownnamespace' => 'Titlu invalid cu numărul spațiului de nume $1 necunoscut și textul „$2”',
+'exception-nologin' => 'Neautentificat{{GENDER:||ă}}.',
+'exception-nologin-text' => 'Această pagină sau acțiune necesită ca dumneavoastră să fiți autentificat{{GENDER:||ă}} pe acest wiki.',
 
 # Virus scanner
 'virus-badscanner' => "Configurație greșită: scaner de virus necunoscut: ''$1''",
@@ -886,7 +890,7 @@ Parolă temporară: $2',
 # Edit pages
 'summary' => 'Rezumat:',
 'subject' => 'Subiect / titlu:',
-'minoredit' => 'Aceasta este o editare minoră',
+'minoredit' => 'Aceasta este o modificare minoră',
 'watchthis' => 'Monitorizează această pagină',
 'savearticle' => 'Salvare pagină',
 'preview' => 'Previzualizare',
@@ -1058,7 +1062,7 @@ Jurnalul ștergerilor și al mutărilor pentru această pagină este disponibil:
 Jurnalul ștergerilor și al mutărilor este disponibil mai jos.',
 'log-fulllog' => 'Vezi tot jurnalul',
 'edit-hook-aborted' => 'Modificarea a fost abandonată din cauza unui hook.
-Fără nicio explicație.',
+Nicio explicație furnizată.',
 'edit-gone-missing' => 'Pagina nu s-a putut actualiza.
 Se pare că a fost ștearsă.',
 'edit-conflict' => 'Conflict de modificare.',
@@ -1097,7 +1101,7 @@ Acsete argumente au fost omise.',
 Motivul invocat de $3 este ''$2''",
 
 # History pages
-'viewpagelogs' => 'Vezi jurnalele pentru această pagină',
+'viewpagelogs' => 'Afișează jurnalele paginii',
 'nohistory' => 'Nu există istoric pentru această pagină.',
 'currentrev' => 'Versiunea curentă',
 'currentrev-asof' => 'Versiunea curentă din $1',
@@ -1469,7 +1473,7 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 # User rights
 'userrights' => 'Administrare permisiuni de utilizator',
 'userrights-lookup-user' => 'Administrare grupuri de utilizatori',
-'userrights-user-editname' => 'Introdu un nume de utilizator:',
+'userrights-user-editname' => 'Introduceți un nume de utilizator:',
 'editusergroup' => 'Modificare grup de utilizatori',
 'editinguser' => "Modificare permisiuni de utilizator pentru '''[[User:$1|$1]]''' $2",
 'userrights-editusergroup' => 'Modificare grup de utilizatori',
@@ -1576,7 +1580,7 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 # User rights log
 'rightslog' => 'Jurnal permisiuni de utilizator',
 'rightslogtext' => 'Acest jurnal cuprinde modificările permisiunilor utilizatorilor.',
-'rightslogentry' => 'a schimbat pentru $1 apartenența la un grup de la $2 la $3',
+'rightslogentry' => 'a schimbat permisiunile pentru $1 de la $2 la $3',
 'rightslogentry-autopromote' => 'a fost promovat în mod automat de la $2 la $3',
 'rightsnone' => '(niciunul)',
 
@@ -2276,7 +2280,7 @@ Adresa de e-mail introdusă de tine în [[Special:Preferences|preferințele de u
 'mywatchlist' => 'Pagini urmărite',
 'watchlistfor2' => 'Pentru $1 $2',
 'nowatchlist' => 'Nu ați ales să urmăriți nici o pagină.',
-'watchlistanontext' => 'Te rugăm să $1 pentru a vizualiza sau edita itemii de pe lista ta de urmărire.',
+'watchlistanontext' => 'Vă rugăm să vă $1 pentru a vizualiza sau edita elementele din lista dumneavoastră de pagini urmărite.',
 'watchnologin' => 'Nu sunteți autentificat',
 'watchnologintext' => 'Trebuie să fiți [[Special:UserLogin|autentificat]] pentru a vă modifica lista de pagini urmărite.',
 'addwatch' => 'Adăugă la lista de pagini urmărite',
@@ -2550,7 +2554,7 @@ Iată aici ultima înregistrare relevantă din jurnalul blocărilor:',
 'sp-contributions-search' => 'Căutare contribuții',
 'sp-contributions-username' => 'Adresă IP sau nume de utilizator:',
 'sp-contributions-toponly' => 'Afișează numai versiunile recente',
-'sp-contributions-submit' => 'Caută',
+'sp-contributions-submit' => 'Căutare',
 
 # What links here
 'whatlinkshere' => 'Ce trimite aici',
@@ -2762,7 +2766,7 @@ automat odată cu aceasta '''afară de cazul că''':
 manual paginile de discuții, dacă dorești 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 ești autentificat',
+'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.',
@@ -3666,7 +3670,7 @@ Vă rugăm să confirmați faptul că într-adevăr doriți să recreați acest
 'table_pager_prev' => 'Pagina anterioară',
 'table_pager_first' => 'Prima pagină',
 'table_pager_last' => 'Ultima pagină',
-'table_pager_limit' => 'Arată $1 itemi pe pagină',
+'table_pager_limit' => 'Arată $1 elemente pe pagină',
 'table_pager_limit_label' => 'Elemente pe pagină:',
 'table_pager_limit_submit' => 'Du-te',
 'table_pager_empty' => 'Niciun rezultat',
@@ -3913,6 +3917,8 @@ Imaginile sunt afișate la rezoluția lor maximă, în timp ce alte tipuri de fi
 'api-error-empty-file' => 'Fișierul încărcat de dumneavoastră este gol.',
 'api-error-emptypage' => 'Crearea paginilor noi, goale nu este permisă.',
 'api-error-fetchfileerror' => 'Eroare internă: ceva nu a funcționat corect la prelucrarea fișierului.',
+'api-error-fileexists-forbidden' => 'Un fișier cu numele „$1” există deja și nu poate fi suprascris.',
+'api-error-fileexists-shared-forbidden' => 'Un fișier cu numele „$1” există deja în depozitul de fișiere partajate, și nu poate fi suprascris.',
 'api-error-file-too-large' => 'Fișierul pe care l-ați trimis este prea mare.',
 'api-error-filename-tooshort' => 'Numele fișierului este prea scurt.',
 'api-error-filetype-banned' => 'Acest tip de fișiere este interzis.',
index 47048cc..6a8fff5 100644 (file)
@@ -30,7 +30,7 @@ $messages = array(
 'tog-hidepatrolled' => "Scunne le cangiaminde condrollete jndr'à le cangiaminde recende",
 'tog-newpageshidepatrolled' => "Scunne le pàggene tenute sotte condrolle da 'a liste de le pàggene nuève",
 'tog-extendwatchlist' => "Spanne 'a liste de le pàggene condrollete pe fa vedè tutte le cangiaminde fatte, none sulamende l'urteme",
-'tog-usenewrc' => "Ause le cangiaminde recende migliorate (richiede 'u JavaScript)",
+'tog-usenewrc' => "Ause le cangiaminde recende migliorate (vole 'u JavaScript)",
 'tog-numberheadings' => 'Testete auto-numerete',
 'tog-showtoolbar' => "Fà vedè 'a barra de le cangiaminde (JavaScript)",
 'tog-editondblclick' => "Cange le pàggene cu 'nu doppie clic (JavaScript)",
index 579b1bb..fabf34e 100644 (file)
@@ -399,7 +399,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Скрывать патрулированные правки в списке свежих правок',
 'tog-newpageshidepatrolled' => 'Скрывать отпатрулированные страницы в списке новых страниц',
 'tog-extendwatchlist' => 'Расширенный список наблюдения, включающий все изменения, а не только последние',
-'tog-usenewrc' => 'Ð\98Ñ\81полÑ\8cзоваÑ\82Ñ\8c Ñ\83лÑ\83Ñ\87Ñ\88еннÑ\8bй Ñ\81пиÑ\81ок Ñ\81вежиÑ\85 Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ (требуется JavaScript)',
+'tog-usenewrc' => 'Ð\93Ñ\80Ñ\83ппиÑ\80оваÑ\82Ñ\8c Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ\8f Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86е Ñ\81вежиÑ\85 Ð¿Ñ\80авок Ð¸ Ð² Ñ\81пиÑ\81ке Ð½Ð°Ð±Ð»Ñ\8eдениÑ\8f (требуется JavaScript)',
 'tog-numberheadings' => 'Автоматически нумеровать заголовки',
 'tog-showtoolbar' => 'Показывать верхнюю панель инструментов при редактировании (JavaScript)',
 'tog-editondblclick' => 'Править страницы по двойному щелчку (JavaScript)',
@@ -750,6 +750,8 @@ $1',
 'cannotdelete' => 'Невозможно удалить страницу или файл «$1».
 Возможно, страница уже оказалась удалена.',
 'cannotdelete-title' => 'Нельзя удалить страницу «$1»',
+'delete-hook-aborted' => 'Правка отменена процедурой-перехватчиком.
+Дополнительных пояснений не приведено.',
 'badtitle' => 'Недопустимое название',
 'badtitletext' => 'Запрашиваемое название страницы неправильно, пусто, либо неправильно указано межъязыковое или интервики название. Возможно, в названии используются недопустимые символы.',
 'perfcached' => 'Следующие данные взяты из кэша и могут не учитывать последних изменений. В кэше хранится не более $1 {{PLURAL:$1|записи|записей|записей}}.',
@@ -784,6 +786,8 @@ $2',
 Установивший этот режим администратор оставил следующее разъяснение: «''$3''».",
 'invalidtitle-knownnamespace' => 'Недопустимый заголовок с пространством имен «$2» и текстом «$3»',
 'invalidtitle-unknownnamespace' => 'Недопустимый заголовок с неизвестным номером пространства $1 и текстом «$2»',
+'exception-nologin' => 'Вы не представились системе',
+'exception-nologin-text' => 'Для просмотра этой станицы или выполнения запрошенного действия необходимо представиться системе.',
 
 # Virus scanner
 'virus-badscanner' => "Ошибка настройки. Неизвестный сканер вирусов: ''$1''",
@@ -4130,6 +4134,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 e037443..2831ac9 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Rusyn (Русиньскый)
+/** Rusyn (русиньскый)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -1084,7 +1084,7 @@ $1",
 'prefs-datetime' => 'Датум і час',
 'prefs-labs' => 'Експеріменталны функції',
 'prefs-user-pages' => 'Сторінкы хоснователя',
-'prefs-personal' => 'Інформації о хоснователёві',
+'prefs-personal' => 'Інформації о хоснователёви',
 'prefs-rc' => 'Послїднї зміны',
 'prefs-watchlist' => 'Слїдованы сторінкы',
 'prefs-watchlist-days' => 'Чісло днїв зображеных в слїдованых сторінках:',
@@ -1915,7 +1915,7 @@ $1',
 # E-mail user
 'mailnologin' => 'Без адресы одосланя',
 'mailnologintext' => 'Кідь хочете посылати ел. пошту іншым хоснователям, мусите ся [[Special:UserLogin|приголосити]] і мати платну адресу ел. пошты в своїм [[Special:Preferences|наставлїню]].',
-'emailuser' => 'Послати е-маіл тому хоснователёві',
+'emailuser' => 'Послати е-маіл тому хоснователёви',
 'emailpage' => 'Пошлийте е-пошту',
 'emailpagetext' => 'Помочов ниже зображеного формуларя можете тому хоснователёви послати повідомлїня ел. поштов.
 Адреса ел. пошты, котру мате зазначену в [[Special:Preferences|наставлїня]],ся обявить як адреса одосылателя пошты, жебы вам адресат міг одповісти прямо.',
@@ -1931,7 +1931,7 @@ $1',
 'emailtarget' => 'Уведьте імя хоснователя-адресата',
 'emailusername' => 'Імя хоснователя:',
 'emailusernamesubmit' => 'Одослати',
-'email-legend' => 'Одосыланя ел. пошты іншому хоснователёві {{GRAMMAR:2sg|{{SITENAME}}}}',
+'email-legend' => 'Одосыланя ел. пошты іншому хоснователёви {{GRAMMAR:2sg|{{SITENAME}}}}',
 'emailfrom' => 'Од:',
 'emailto' => 'Кому:',
 'emailsubject' => 'Тема:',
@@ -1941,7 +1941,7 @@ $1',
 'emailccsubject' => 'Копія вашого повідомлїня про хоснователя $1: $2',
 'emailsent' => 'Пошта одослана',
 'emailsenttext' => 'Ваше повідомлїня было послане.',
-'emailuserfooter' => 'Тота ел. пошта была послана з {{grammar:2sg|{{SITENAME}}}} за помочі функції „Послати ел, пошту“; одослав го хоснователь $1 хоснователёві $2',
+'emailuserfooter' => 'Тота ел. пошта была послана з {{grammar:2sg|{{SITENAME}}}} за помочі функції „Послати ел, пошту“; одослав го хоснователь $1 хоснователёви $2',
 
 # User Messenger
 'usermessage-summary' => 'Зохабити сістемове повідомлїня',
@@ -2263,7 +2263,7 @@ $1',
 ** Невгодне мено хоснователя',
 'ipb-hardblock' => 'Заборонити приголошеным хоснователям едітовати з той IP-адресы',
 'ipbcreateaccount' => 'Не доволити реґістрацію новых хоснователїв',
-'ipbemailban' => 'Заборонити хоснователёві посылати ел. пошту',
+'ipbemailban' => 'Заборонити хоснователёви посылати ел. пошту',
 'ipbenableautoblock' => 'Автоматічно блоковати IP адресы хоснованы тым хоснователём',
 'ipbsubmit' => 'Заблоковати',
 'ipbother' => 'Іншый час:',
@@ -2627,7 +2627,7 @@ $1',
 'tooltip-feed-rss' => 'RSS канал про тоту сторінку',
 'tooltip-feed-atom' => 'Atom канал про гевсю сторінку',
 'tooltip-t-contributions' => 'Перегляд приспевків того хоснователя',
-'tooltip-t-emailuser' => 'Послати е-маіл тому хоснователёві',
+'tooltip-t-emailuser' => 'Послати е-маіл тому хоснователёви',
 'tooltip-t-upload' => 'Награти файлы',
 'tooltip-t-specialpages' => 'Список вшыткых шпеціалных сторінок',
 'tooltip-t-print' => 'Верзія той сторінкы про друк',
index cfc70f2..e2c6f1c 100644 (file)
@@ -58,7 +58,7 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Сиэксийэ баһыгар уҥа тимэҕинэн<br />баттаан сиэксийэни көннөрүү (JavaScript)',
 'tog-showtoc' => 'Иһинээҕитин көрдөр (ыстатыйа үстэн ордук бас тыллаах буоллаҕына)',
 'tog-rememberpassword' => 'Миигин бу браузерга сигээ ($1 {{PLURAL:$1|күн|күнтэн ордуга суох}})',
-'tog-watchcreations' => 'Суруйбут ыстатыйаларбын кэтээн көрүүгэ киллэрэн ис',
+'tog-watchcreations' => 'Суруйбут ыстатыйаларбын уонна укпут билэлэрбин кэтээн көрүүгэ киллэрэн ис',
 'tog-watchdefault' => 'Уларыппыт сирэйдэрбин кэтээн көрүү испииһэгэр киллэрэн ис',
 'tog-watchmoves' => 'Аатын уларыппыт сирэйдэрбин кэтээн көрүү испииһэгэр киллэрэн ис',
 'tog-watchdeletion' => 'Соппут сирэйдэрбин кэтээн көрүү испииһэгэр киллэрэн ис',
@@ -397,6 +397,8 @@ $1',
 'cannotdelete' => '«$1» сирэй эбэтэр билэ сотуллар кыаҕа суох.
 Ким эрэ инники сотторбут буолуон сөп.',
 'cannotdelete-title' => '«$1» сирэйи сотор сатаммат',
+'delete-hook-aborted' => 'Көннөрүү төттөрү көннөрүллүбүт.
+Эбии туох да быһаарыллыбатах.',
 'badtitle' => 'Табыллыбат аат',
 'badtitletext' => 'Ыйытыллыбыт сирэй аата сыыһа, иччитэх, эбэтэр сыыһа ыйынньыктаах тыллар ыккардыларынааҕы дуу, биикилэр ыккардыларынааҕы дуу аат.',
 'perfcached' => 'Бу кээстэн ылыллыбыт онон бүтэһик уларыйыылары аахсымыан сөп. Кээскэ {{PLURAL:$1|соҕотох суруктан|$1 суруктан}} ордук хараллыбат.',
@@ -427,6 +429,9 @@ $2',
 
 Бу эрэсиими туруорбут дьаһабыл маннык быһаарыыны хаалларбыт: «''$3''».",
 'invalidtitle-knownnamespace' => '«$2» аат далыгар маннык тиэкистээх «$3» сатаммат аат',
+'invalidtitle-unknownnamespace' => 'Биллибэт аат дала $1 нүөмэрдээх, "$2" тиэкистээх сатаммат аат',
+'exception-nologin' => 'Ааккын билиһиннэрбэтэххин',
+'exception-nologin-text' => 'Маны көрөргө эбэтэр оҥорорго ааккын билиһиннэриэхтээххин.',
 
 # Virus scanner
 'virus-badscanner' => "Сатаммата. Вирус сканера биллибэтэ: ''$1''",
@@ -520,6 +525,7 @@ $2',
 'invalidemailaddress' => 'Киллэрбит аадырыһыҥ эл. почта аадырыһыгар майгыннаабат.
 Сөпкө суруй эбэтэр кураанах хааллар.',
 'cannotchangeemail' => 'Бу биикигэ бу аакка баайыллыбыт электроннай почта аадырыһа уларытыллар кыаҕа суох эбит.',
+'emaildisabled' => 'Бу ситим-сир сурук ыыппат эбит.',
 'accountcreated' => 'Саҥа аат иҥэрилиннэ',
 'accountcreatedtext' => 'Кыттааччы $1 диэн ааттанна.',
 'createaccount-title' => '{{SITENAME}} бырайыакка саҥа аат оҥоруу',
@@ -801,6 +807,7 @@ IP-аадырыһа эрэ көстөр.
 'edit-no-change' => 'Эн көннөрүүҥ киирбэтэ, тоҕо диэтэххэ тугу да уларыппатаххын.',
 'edit-already-exists' => 'Саҥа сирэйи оҥорор табыллыбат.
 Маннык сирэй баар эбит.',
+'defaultmessagetext' => 'Туспа этиллибэтэҕинэ суруллар тиэкис',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Болҕой. Бу сирэй наһаа элбэх көмпүүтэри ноҕуруускалыыр ресурсаларга сигэнэр.
@@ -816,6 +823,10 @@ IP-аадырыһа эрэ көстөр.
 '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-warning' => 'Сирэйгэ угуллубут билэлэр аһара элбээбиттэр',
+'parser-unstrip-recursion-limit' => 'Рекурсия ахсаана таһынан барбыт ($1)',
 
 # "Undo" feature
 'undo-success' => 'Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.',
@@ -995,6 +1006,8 @@ $1",
 
 # Diffs
 'history-title' => 'Көннөрүү сурунаала "$1"',
+'difference-title' => '$1 — барыллар ыккардыларынааҕы ураты',
+'difference-title-multipage' => '"$1" сирэйдэр "$2" уратылара',
 'difference-multipage' => '(Сирэйдэр ыккардыларынааҕы уратылар)',
 'lineno' => '$1 строка:',
 'compareselectedversions' => 'Талыллыбыт торумнары тэҥнээ',
@@ -1089,6 +1102,7 @@ $1",
 'prefs-beta' => 'Бета-туруоруулар',
 'prefs-datetime' => 'Күнэ-дьыла уонна кэмэ',
 'prefs-labs' => 'Тургутуллар туруоруулар',
+'prefs-user-pages' => 'Кыттааччы сирэйдэрэ',
 'prefs-personal' => 'Кыттааччы туруоруулара',
 'prefs-rc' => 'Кэлиҥҥи уларытыылар',
 'prefs-watchlist' => 'Кэтээһин',
@@ -1381,6 +1395,7 @@ $1 {{PLURAL:$1|бэлиэттэн|бэлиэттэн (буукубаттан)}}
 'newsectionsummary' => '/* $1 */ саҥа сиэксийэ',
 'rc-enhanced-expand' => 'Сиһилии көрдөр (JavaScript туһаныллар)',
 'rc-enhanced-hide' => 'Сиһилиитин көрдөрүмэ',
+'rc-old-title' => 'бастаан бу аатынан суруллубут "$1"',
 
 # Recent changes linked
 'recentchangeslinked' => 'Сигэнэр уларытыылар',
@@ -3454,6 +3469,7 @@ MediaWiki туһалаах буоллун диэн тарҕатыллар, ол
 'version-software' => 'Туруоруллубут бырагырааммалар',
 'version-software-product' => 'Бородуукта',
 'version-software-version' => 'Барыл (торум)',
+'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
 'filepath' => 'Билэ суола',
@@ -3615,6 +3631,7 @@ MediaWiki туһалаах буоллун диэн тарҕатыллар, ол
 'api-error-empty-file' => 'Ыыппыт билэҥ кураанах.',
 'api-error-emptypage' => 'Саҥа кураанах сирэйи оҥорор табыллыбат.',
 'api-error-fetchfileerror' => 'Ис алҕас: билэни ыларга туох эрэ сатаммата.',
+'api-error-fileexists-forbidden' => 'Маннык "$1" ааттаах билэ хайыы үйэ баар уонна хат суруллар кыаҕа суох эбит.',
 'api-error-file-too-large' => 'Ыыппыт билэҥ наһаа улахан эбит.',
 'api-error-filename-tooshort' => 'Билэҥ аата наһаа кылгас.',
 'api-error-filetype-banned' => 'Маннык көрүҥнээх билэлэр бобуулаахтар.',
@@ -3642,4 +3659,15 @@ MediaWiki туһалаах буоллун диэн тарҕатыллар, ол
 'api-error-uploaddisabled' => 'Бу биикигэ хачайдыыр араарыллыбыт эбит.',
 'api-error-verification-error' => 'Бу билэ алдьаммыт эбэтэр табыгаһа суох кэҥэтиилээх.',
 
+# Durations
+'duration-seconds' => '$1 сөкүүндэ',
+'duration-minutes' => '$1 мүнүүтэ',
+'duration-hours' => '$1 чаас',
+'duration-days' => '$1 хонук',
+'duration-weeks' => '$1 нэдиэлэ',
+'duration-years' => '$1 сыл',
+'duration-decades' => '$1 декаада',
+'duration-centuries' => '$1 үйэ',
+'duration-millennia' => '$1 тыһыынча сыл',
+
 );
index 05dd5ea..e7eb926 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Sardinian (Sardu)
+/** Sardinian (sardu)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 4a74cb9..2f1f1dc 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Sicilian (Sicilianu)
+/** Sicilian (sicilianu)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index be89336..ddedea5 100644 (file)
@@ -170,13 +170,13 @@ $messages = array(
 'mar' => 'njuk',
 'apr' => 'cuoŋ',
 'may' => 'mies',
-'jun' => 'geassemánnu',
-'jul' => 'suoidnemánnu',
-'aug' => 'borgemánnu',
-'sep' => 'čakčamánnu',
-'oct' => 'golggotmánnu',
-'nov' => 'skábmamánnu',
-'dec' => 'juovlamánnu',
+'jun' => 'geas',
+'jul' => 'suoi',
+'aug' => 'borg',
+'sep' => 'čakč',
+'oct' => 'golg',
+'nov' => 'skáb',
+'dec' => 'juov',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Luohkká|Luohkát}}',
@@ -309,7 +309,7 @@ $messages = array(
 'nstab-main' => 'Siidu',
 'nstab-user' => 'Geavaheaddjisiidu',
 'nstab-media' => 'Media',
-'nstab-special' => 'Erenomáš',
+'nstab-special' => 'Erenoamáš',
 'nstab-project' => 'Prošeaktasiidu',
 'nstab-image' => 'Fiila',
 'nstab-mediawiki' => 'Dieđáhus',
@@ -348,9 +348,9 @@ $messages = array(
 'sqlhidden' => '(SQL-jearahallan lea čihkojuvvon)',
 
 # Login and logout pages
-'logouttext' => "'''Leat dál čálligoahtán olggos {{GRAMMAR:elative|{{SITENAME}}}}.'''
+'logouttext' => "'''Don leat dál loggen olggos {{GRAMMAR:elative|{{SITENAME}}}}s.'''
 
-Sáhtát joatkit {{GRAMMAR:genitive|{{SITENAME}}}} geavaheami anonyman, dahje čálligoahtit ođđasit sisa.",
+Sáhtát joatkit {{GRAMMAR:genitive|{{SITENAME}}}} geavaheami anonyman dahje logget ođđasit sisa",
 'welcomecreation' => '== Bures boahtin, $1! ==
 Du geavaheaddjidovddaldat lea dál anus.
 Ále vajáldahte rievdadit {{GRAMMAR:genitive|{{SITENAME}}}} iežat ásahusaid.',
@@ -447,7 +447,7 @@ Du geavaheaddjidovddaldat lea dál anus.
 'showpreview' => 'Geahča ovdalgiihtii',
 'showlivepreview' => 'Ovdalgeahčastan',
 'showdiff' => 'Čájet rievdadusaid',
-'anoneditwarning' => "'''Váruhus:''' It leat čálligoahtán sisa. Du IP-čujuhus báhcá dán siiddu ođasmahttinhistorjái.",
+'anoneditwarning' => "'''Váruhus:''' It leat loggen sisa. Du IP-čujuhus báhcá dán siiddu rievdadushistorjái.",
 'missingsummary' => 'It leat čállán čoahkkáigeasu. Jus válljet Vurke ođđasit, de rievdadusat maid ráhkadit vurkejuvvo čoahkkáigeasuhaga.',
 'missingcommenttext' => 'Čále čoahkkáigeasu vuollái.',
 'missingcommentheader' => 'It leat čállán bajilčállaga du oaivilii. Vállje <em>Vurke</em>, jus it hálit čállit bajilčállaga.',
@@ -552,12 +552,13 @@ Eará bajasdoallit sáhtet lohkat čihkojuvvon sisdoalu ja máhcahit dan.",
 'history-title' => 'Siiddu «$1» historjá',
 'lineno' => 'Gurgadas $1:',
 'compareselectedversions' => 'Veardde válljejuvvon veršuvnnaid',
+'showhideselectedversions' => 'Čájet/čiega válljejuvvon veršuvnnaid',
 'editundo' => 'šluhtte',
 'diff-multi' => '(Veršuvnnaid gaskas {{PLURAL:$1|okta rievdadus|$1 eará rievdadusa}}.)',
 
 # Search results
 'searchresults' => 'Ohcanbohtosat',
-'searchresults-title' => 'Ohcanbohtosat: "$1"',
+'searchresults-title' => 'Ohcanbohtosat: «$1»',
 'searchsubtitle' => 'Ohcan tearpmain [[:$1]]',
 'searchsubtitleinvalid' => 'Ohcan tearpmain $1',
 'notitlematches' => 'Ohcansátni ii dihtton ovttasge bájilčállagis',
@@ -566,6 +567,7 @@ Eará bajasdoallit sáhtet lohkat čihkojuvvon sisdoalu ja máhcahit dan.",
 'viewprevnext' => 'Čájet [$3] oktanaga.
 
 $1 {{int:pipe-separator}} $2',
+'searchmenu-new' => "'''Álggat siiddu ''[[:$1]]'' dán Wikipediai'''",
 'searchhelp-url' => 'Help:Rávvagat',
 'searchprofile-articles' => 'Sisdoallosiiddut',
 'searchprofile-project' => 'Veahkke- ja prošeaktasiiddut',
@@ -606,7 +608,7 @@ $1 {{int:pipe-separator}} $2',
 'saveprefs' => 'Vurke ásahusaid',
 'resetprefs' => 'Máhcat vurkejuvvon ásahusaid',
 'prefs-editing' => 'Rievdadeapmi',
-'rows' => 'Gurgadasat',
+'rows' => 'Gurgadasa:',
 'columns' => 'Kolumnat',
 'searchresultshead' => 'Ohcan',
 'resultsperpage' => 'Bohtosa juohke siiddus',
@@ -621,14 +623,20 @@ $1 {{int:pipe-separator}} $2',
 'allowemail' => 'Suova e-postta sádden čujuhussii',
 'prefs-files' => 'Fiillat',
 'youremail' => 'E-poastačujuhus',
-'username' => 'Dovddaldat',
-'uid' => 'Nummir',
+'username' => 'Geavaheaddjenamma:',
+'uid' => 'Geavaheaddji-ID:',
+'prefs-memberingroups' => 'Miellahttu/lahttu {{PLURAL:$1|joavkkus|joavkkuin}}:',
+'prefs-registration' => 'Registrerenáigi:',
 'yourrealname' => 'Rivttes namma',
 'yourlanguage' => 'Geavahanvuođu giella',
 'yourvariant' => 'Giellavarianta:',
 'yournick' => 'Vuolláičálus',
 'badsig' => 'Vuolláičálus ii dohke.',
 'badsiglength' => 'Vuolláičálus lea menddo guhki - vuolláičálus sáhttá leat eanemusta $1 mearka.',
+'yourgender' => 'Sohkabealli:',
+'gender-unknown' => 'Ii diehtu',
+'gender-male' => 'Dievdu',
+'gender-female' => 'Nisson',
 'email' => 'E-poastadoaimmat',
 'prefs-help-realname' => 'Eaktodahtolaš. Du namma čájehuvvo geavaheaddjidovddaldaga sajis siiddu dahkkilogahallamis.',
 'prefs-help-email' => 'Eaktodahtolaš. Eará geavaheaddjit sáhttet váldit dunnje oktavuođa e-poasttain nu ahte du e-poastačujuhus ii dihtto.',
@@ -722,6 +730,7 @@ $1 {{int:pipe-separator}} $2',
 'uploadwarning' => 'Lasihanvaruhus',
 'savefile' => 'Vurke',
 'uploadedimage' => 'vurkii fiilla [[$1]]',
+'overwroteimage' => 'vurkii ođđa veršuvnna fiillas «[[$1]]»',
 'uploaddisabled' => '{{GRAMMAR:genitive|{{SITENAME}}}} ii sáhte lasihit fiillaid.',
 'uploaddisabledtext' => 'Fiillaid vurken lea váldojuvvon eret anus.',
 'uploadscripted' => 'Dát fiila sisdisdoalla HTML-koda dahje skriptaid, maid neahttabláđejeaddji sáhttá vahagis dahkat.',
@@ -899,7 +908,7 @@ $1 {{int:pipe-separator}} $2',
 'booksources-text' => 'Vuolábealde leat liŋkkat olggobeal siidduide, main vuvdojuvvot ođđa ja boares girjjid. Siiddui sáhttá maid leat lassedieđut girjjiin.',
 
 # Special:Log
-'specialloguserlabel' => 'Geavaheaddji',
+'specialloguserlabel' => 'Geavaheaddji:',
 'speciallogtitlelabel' => 'Mearri',
 'log' => 'Loggat',
 'all-logs-page' => 'Buot loggat',
@@ -926,6 +935,9 @@ $1 {{int:pipe-separator}} $2',
 [[Special:UnusedCategories|Unused categories]] are not shown here.
 Also see [[Special:WantedCategories|wanted categories]].',
 
+# Special:LinkSearch
+'linksearch-ok' => 'Oza',
+
 # Special:ListUsers
 'listusers-submit' => 'Oza',
 'listusers-noresult' => 'Geavaheaddjit eai dihtton. Dárkis maid sierra bustávasturrodagat.',
@@ -960,6 +972,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'emailccsubject' => 'Kopiija sáddejuvvon sánis čujuhussii $1: $2',
 'emailsent' => 'E-poastasátni lea sáddejuvvon',
 'emailsenttext' => 'E-poastasátni lea sáddejuvvon.',
+'emailuserfooter' => 'Dán e-poastta sáddii geavaheaddji $1 geavaheaddjái $2 {{SITENAME}} "E-mailUser"-doaimmain.',
 
 # Watchlist
 'watchlist' => 'Čuovvunlistu',
@@ -1005,7 +1018,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'deletepage' => 'Sihko siiddu',
 'confirm' => 'Daga',
 'excontent' => 'sisdisdolii: ”$1”',
-'exbeforeblank' => 'sisdoallu ovdal gurrema: ”$1”',
+'exbeforeblank' => 'sisdoallu ovdal gurrema: «$1»',
 'exblank' => 'lei guoros',
 'historywarning' => 'Siiddu, man aiggot sihkut, lea rievdaduvvon dávjit go oktii:',
 'confirmdeletetext' => 'Leat sihkumin siiddu dahje fiilla ja buot dan historjjá. Ádde dagu váikkuhsaid ja sihko {{GRAMMAR:genitive|{{SITENAME}}}} [[{{MediaWiki:Policy-url}}|geavahaid]] mielde.',
@@ -1063,7 +1076,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 
 # Restrictions (nouns)
 'restriction-edit' => 'rievdádeapmi',
-'restriction-move' => 'sirdin',
+'restriction-move' => 'Sirdin',
 'restriction-upload' => 'Fiilla vurken',
 
 # Restriction levels
@@ -1143,7 +1156,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'ipbsubmit' => 'Eastte',
 'ipbother' => 'Eará áigi',
 'ipboptions' => '2 diimma:2 hours,1 beaivi:1 day,3 beaivve:3 days,1 vahkku:1 week,2 vahkku:2 weeks,1 mánotbádji:1 month,3 mánotbaji:3 months,6 mánotbaji:6 months,1 jahki:1 year,bissovaš:infinite',
-'ipbotheroption' => 'Eará',
+'ipbotheroption' => 'eará',
 'ipbotherreason' => 'Eará sivva',
 'badipaddress' => 'IP-čujuhus lea boastut.',
 'blockipsuccesssub' => 'Easttan lihkosmuvai',
@@ -1203,7 +1216,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 
 # Special:Import
 'import-comment' => 'Sivva',
-'import-revision-count' => '$1 {{PLURAL:$1|veršuvdna|veršuvnna}}',
+'import-revision-count' => '$1 {{PLURAL:$1|veršuvdna|veršuvnnat}}',
 
 # Import log
 'import-logentry-upload-detail' => '$1 veršuvdna/veršuvnna',
@@ -1288,6 +1301,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 # Special:NewFiles
 'newimages' => 'Ođđa govat',
 'imagelisttext' => "Vuolábealde lea '''$1''' fiilla ordnejuvvon $2.",
+'noimages' => 'Ii oaidnámus.',
 'ilsubmit' => 'Oza',
 'bydate' => 'beaivemeari mielde',
 'sp-newimages-showfrom' => 'Čájet ođđa govaid $1 rájes',
@@ -1414,6 +1428,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 
 # New logging system
 'logentry-delete-delete' => '$1 sihkui siiddu $3',
+'logentry-delete-restore' => '$1 máhcahii siiddu $3',
 'logentry-move-move' => '$1 sirddii siiddu $3 nammii $4',
 'logentry-move-move_redir-noredirect' => '$1 sirddii siiddu $3 nammii $4 iige ráhkadan ođđasitstivrema',
 'logentry-newusers-create' => '$1 ráhkadii dovddaldaga',
index 1b99be8..1cba767 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Samogitian (Žemaitėška)
+/** Samogitian (žemaitėška)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 52ab42f..17e5e31 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Serbo-Croatian (Srpskohrvatski)
+/** Serbo-Croatian (srpskohrvatski / српскохрватски)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 0111218..29c8f18 100644 (file)
@@ -288,7 +288,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Skryť strážené úpravy v Posledných úpravách',
 'tog-newpageshidepatrolled' => 'Skryť strážené stránky zo zoznamu nových stránok',
 'tog-extendwatchlist' => 'Rozšíriť zoznam sledovaných, aby zobrazoval všetky zmeny, nie len posledné',
-'tog-usenewrc' => 'Použiť rozšírené zobrazenie posledných úprav (vyžaduje JavaScript)',
+'tog-usenewrc' => 'Zoskupiť zmeny v posledných úpravách a zoznamoch sledovaných (vyžaduje JavaScript)',
 'tog-numberheadings' => 'Automaticky číslovať nadpisy',
 'tog-showtoolbar' => 'Zobraziť panel nástrojov úprav',
 'tog-editondblclick' => 'Upravovať stránky po dvojitom kliknutí (JavaScript)',
@@ -639,6 +639,8 @@ Oznámte to prosím [[Special:ListUsers/sysop|správcovi]] a uveďte URL.',
 'cannotdelete' => 'Nebolo možné zmazať stránku alebo súbor „$1“.
 Možno ju už zmazal nieto iný.',
 'cannotdelete-title' => 'Nemôžete zmazať stránku "$1"',
+'delete-hook-aborted' => 'Zmazanie zrušila prídavná funkcia (prípojný bod syntaktického analyzátora).
+Neudala vysvetlenie.',
 'badtitle' => 'Neplatný nadpis',
 'badtitletext' => 'Požadovaný nadpis bol neplatný, nezadaný, alebo nesprávne odkazovaný z inej jazykovej verzie {{GRAMMAR:genitív|{{SITENAME}}}}. Mohol tiež obsahovať jeden alebo viac znakov, ktoré nie je možné použiť v nadpisoch.',
 'perfcached' => 'Nasledujúce údaje pochádzajú z vyrovnávacej pamäte a nemusia byť úplne aktuálne. Vo vyrovnávacej pamäti {{PLURAL:$1|je dostupný|sú dostupné|je dostupných}} najviac {{PLURAL:$1|jeden výsledok|$1 výsledky|$1 výsledkov}}.',
@@ -670,6 +672,8 @@ Udaný dôvod: ''$2''.",
 Správca, ktorý ho zamkol ponúkol toto vysvetlenie: „$3“.',
 'invalidtitle-knownnamespace' => 'Neplatný názov s menným priestorom „$2“ a textom „$3“',
 'invalidtitle-unknownnamespace' => 'Neplatný názov s neznámym číslom menného priestoru „$1“ a textom „$2“',
+'exception-nologin' => 'Nie ste prihlásený',
+'exception-nologin-text' => 'Táto stránka alebo operácia vyžaduje, aby ste boli na tejto wiki prihlásení.',
 
 # Virus scanner
 'virus-badscanner' => "Chybná konfigurácia: neznámy antivírus: ''$1''",
@@ -2130,6 +2134,7 @@ na ktorý/-ého chcete aplikovať túto funkciu.',
 Môžete zúžiť rozsah, ak zvolíte typ záznamu, používateľské meno alebo dotyčnú stránku (záleží na veľkosti písmen).',
 'logempty' => 'V zázname neboli nájdené zodpovedajúce položky.',
 'log-title-wildcard' => 'Hľadať názvy začínajúce týmto textom',
+'showhideselectedlogentries' => 'Zobraziť/skryť vybraté položky záznamu',
 
 # Special:AllPages
 'allpages' => 'Všetky stránky',
@@ -3042,6 +3047,7 @@ Pravdepodobne to spôsobil odkaz na externú internetovú lokalitu, ktorá sa na
 'spambot_username' => 'MediaWiki čistenie spamu',
 'spam_reverting' => 'Vraciam poslednú verziu, ktorá neobsahuje odkazy na $1',
 'spam_blanking' => 'Všetky revízie obsahovali odkaz na $1, odstraňujem obsah',
+'spam_deleting' => 'Všetky revízie obsahovali odkaz na $1, odstraňuje sa',
 
 # Info page
 'pageinfo-title' => 'Informácie o „$1“',
@@ -3923,6 +3929,8 @@ V opačnom prípade môžete použiť zjednodušený formulár nižšie. Váš k
 'api-error-empty-file' => 'Súbor, ktorý ste poslali bol prázdny.',
 'api-error-emptypage' => 'Vytváranie nových, prázdnych stránok nie je dovolené.',
 'api-error-fetchfileerror' => 'Vnútorná chyba: Niečo pokazilo počas sťahovania súboru.',
+'api-error-fileexists-forbidden' => 'Súbor s názvom „$1“ už existuje a nie je možné prepísať ho.',
+'api-error-fileexists-shared-forbidden' => 'Súbor s názvom „$1“ už neexistuje v repozitári zdieľaných súborov a nie je možné prepísať ho.',
 'api-error-file-too-large' => 'Súbor, ktorý ste poslali bol príliš veľký.',
 'api-error-filename-tooshort' => 'Názov súboru je príliš krátky.',
 'api-error-filetype-banned' => 'Tento typ súboru je zakázaný.',
@@ -3961,4 +3969,6 @@ V opačnom prípade môžete použiť zjednodušený formulár nižšie. Váš k
 'duration-centuries' => '$1 {{PLURAL:$1|storočie|storočia|storočí}}',
 'duration-millennia' => '$1 {{PLURAL:$1|tisícročie|tisícročia|tisícročí}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Nepodarilo sa získať zámky na serveri $1.',
 );
index d66db69..2408a3b 100644 (file)
@@ -191,7 +191,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Skrij pregledana urejanja v zadnjih spremembah',
 'tog-newpageshidepatrolled' => 'Skrij pregledane strani iz seznama novih strani',
 'tog-extendwatchlist' => 'Razširi spisek nadzorov, da bo prikazoval vse spremembe, ne le najnovejše',
-'tog-usenewrc' => 'Izboljšane zadnje spremembe (zahteva JavaScript)',
+'tog-usenewrc' => 'Združi spremembe posamezne strani na zadnjih spremembah in spisku nadzorov (zahteva JavaScript)',
 'tog-numberheadings' => 'Samodejno številči poglavja',
 'tog-showtoolbar' => 'Prikaži urejevalno orodno vrstico',
 'tog-editondblclick' => 'Omogoči urejanje strani z dvojnim klikom (zahteva JavaScript)',
@@ -541,6 +541,8 @@ Prosimo, da o tem obvestite [[Special:ListUsers/sysop|administratorja]] (ne poza
 'cannotdelete' => 'Strani ali datoteke »$1« ni mogoče izbrisati.
 Morda jo je izbrisal že kdo drug.',
 'cannotdelete-title' => 'Ne morem izbrisati strani »$1«',
+'delete-hook-aborted' => 'Zanka je prekinila brisanje.
+Vrnila ni nobene razlage.',
 'badtitle' => 'Nepravilen naslov',
 'badtitletext' => 'Navedeni naslov strani je neveljaven, prazen, napačno povezan k drugim jezikom oziroma wikiprojektom.
 Morda vsebuje enega ali več nepodprtih znakov.',
@@ -576,6 +578,8 @@ Podani razlog je bil »''$2''«.",
 Administrator, ki ga je zaklenil, je podal naslednje pojasnilo: »$3«.',
 'invalidtitle-knownnamespace' => 'Neveljaven naslov z imenskim prostorom »$2« in besedilom »$3«',
 'invalidtitle-unknownnamespace' => 'Neveljaven naslov z neznano številko imenskega prostora $1 in besedilom »$2«',
+'exception-nologin' => 'Niste prijavljeni',
+'exception-nologin-text' => 'Izbrana stran ali dejanje zahteva, da ste na tem wikiju prijavljeni.',
 
 # Virus scanner
 'virus-badscanner' => "Slaba konfiguracija: neznani virus skener: ''$1''",
@@ -3836,6 +3840,8 @@ V nasprotnem primeru lahko uporabite preprost obrazec spodaj. Vašo pripombo bom
 'api-error-empty-file' => 'Poslana datoteka je prazna.',
 'api-error-emptypage' => 'Ustvarjanje novih, praznih strani ni dovoljeno.',
 'api-error-fetchfileerror' => 'Notranja napaka: pri pridobivanju datoteke je nekaj šlo narobe.',
+'api-error-fileexists-forbidden' => 'Datoteka »$1« že obstaja in je ni mogoče prepisati.',
+'api-error-fileexists-shared-forbidden' => 'Datoteka »$1« že obstaja v skupnem skladišču datotek in je ni mogoče prepisati.',
 'api-error-file-too-large' => 'Poslana datoteka je prevelika.',
 'api-error-filename-tooshort' => 'Ime datoteke je prekratko.',
 'api-error-filetype-banned' => 'Ta vrsta datoteke je prepovedana.',
index 97fb200..55d4ab4 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Albanian (Shqip)
+/** Albanian (shqip)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 2400634..d3e5d9c 100644 (file)
@@ -406,7 +406,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Сакриј прегледане измене у списку скорашњих измена',
 'tog-newpageshidepatrolled' => 'Сакриј прегледане странице са списка нових страница',
 'tog-extendwatchlist' => 'Прошири списак надгледања за приказ свих измена, не само скорашњих',
-'tog-usenewrc' => 'Побољшани списак скорашњих измена (јаваскрипт)',
+'tog-usenewrc' => 'Промене у групи по страници у списку скорашњих измена и надгледаних страница (захтева јаваскрипт)',
 'tog-numberheadings' => 'Самостално нумериши поднаслове',
 'tog-showtoolbar' => 'Трака с алаткама за уређивање (јаваскрипт)',
 'tog-editondblclick' => 'Уређивање страница двоструким кликом (јаваскрипт)',
@@ -766,6 +766,8 @@ $1',
 'cannotdelete' => 'Не могу да обришем страницу или датотеку „$1“.
 Вероватно ју је неко други обрисао.',
 'cannotdelete-title' => 'Не могу да обришем страницу „$1“',
+'delete-hook-aborted' => 'Брисање је прекинула кука.
+Није дато никакво образложење.',
 'badtitle' => 'Неисправан наслов',
 'badtitletext' => 'Наслов странице је неисправан, празан или је међујезички или међувики наслов погрешно повезан.
 Можда садржи знакове који се не могу користити у насловима.',
@@ -801,6 +803,8 @@ $2',
 Администратор који ју је закључао понудио је следеће објашњење: „$3“.',
 'invalidtitle-knownnamespace' => 'Неисправан наслов с именским простором „$2“ и текстом „$3“',
 'invalidtitle-unknownnamespace' => 'Неисправан наслов с именским простором бр. $1 и текстом „$2“',
+'exception-nologin' => 'Нисте пријављени',
+'exception-nologin-text' => 'Ова страница или радња захтева да будете пријављени на вики.',
 
 # Virus scanner
 'virus-badscanner' => "Неисправна поставка: непознати скенер за вирусе: ''$1''",
@@ -1174,8 +1178,8 @@ $2
 'moveddeleted-notice' => 'Ова страница је обрисана.
 Историја њеног брисања и премештања налази се испод:',
 'log-fulllog' => 'Погледај целу историју',
-'edit-hook-aborted' => 'Измена је прекинута куком.
\9eбÑ\80азложеÑ\9aе Ð½Ð¸Ñ\98е Ð¿Ð¾Ð½Ñ\83Ñ\92ено.',
+'edit-hook-aborted' => 'Измену је прекинула кука.
\9dиÑ\98е Ð´Ð°Ñ\82о Ð½Ð¸ÐºÐ°ÐºÐ²Ð¾ Ð¾Ð±Ñ\80азложеÑ\9aе.',
 'edit-gone-missing' => 'Не могу да ажурирам страницу.
 Изгледа да је обрисана.',
 'edit-conflict' => 'Сукоб измена.',
@@ -1383,8 +1387,8 @@ $1",
 'mergelogpagetext' => 'Испод се налази списак скорашњих спајања историја страница.',
 
 # Diffs
-'history-title' => 'Историја измена за „$1“',
-'difference-title' => 'Разлика између измена странице „$1“',
+'history-title' => 'Историја измена странице „$1“',
+'difference-title' => 'Разлика између измена на страници „$1“',
 'difference-title-multipage' => 'Разлика између страница „$1“ и „$2“',
 'difference-multipage' => '(разлике између страница)',
 'lineno' => 'Ред $1:',
@@ -1483,6 +1487,7 @@ $1",
 'prefs-beta' => 'Бета могућности',
 'prefs-datetime' => 'Датум и време',
 'prefs-labs' => 'Пробне могућности',
+'prefs-user-pages' => 'Корисничке странице',
 'prefs-personal' => 'Профил',
 'prefs-rc' => 'Скорашње измене',
 'prefs-watchlist' => 'Списак надгледања',
@@ -1968,14 +1973,15 @@ $1',
 'backend-fail-writetemp' => 'Не могу да пишем у привременој датотеци.',
 'backend-fail-closetemp' => 'Не могу да затворим привремену датотеку.',
 'backend-fail-read' => 'Не могу да прочитам датотеку $1.',
-'backend-fail-create' => 'Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð½Ð°Ð¿Ñ\80авим датотеку $1.',
-'backend-fail-maxsize' => 'Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð½Ð°Ð¿Ñ\80авим датотеку $1 јер је већа од {{PLURAL:$2|$2 бајта|$2 бајта|$2 бајтова}}.',
+'backend-fail-create' => 'Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð·Ð°Ð¿Ð¸Ñ\88ем датотеку $1.',
+'backend-fail-maxsize' => 'Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ð·Ð°Ð¿Ð¸Ñ\88ем датотеку $1 јер је већа од {{PLURAL:$2|$2 бајта|$2 бајта|$2 бајтова}}.',
 'backend-fail-readonly' => 'Складишна основа „$1“ тренутно не може да се записује. Наведени разлог гласи: „$2“',
 'backend-fail-synced' => 'Датотека „$1“ је недоследна између унутрашњих складишних основа',
 'backend-fail-connect' => 'Не могу да се повежем са складишном основом „$1“.',
 'backend-fail-internal' => 'Дошло је до непознате грешке у складишној основи „$1“.',
 'backend-fail-contenttype' => 'Не могу да утврдим какав садржај има датотека коју треба да сместим у „$1“.',
 'backend-fail-batchsize' => 'Складишна основа је добила блокаду од $1 {{PLURAL:$1|операције|операције|операција}}; ограничење је $2 {{PLURAL:$2|операција|операције|операција}}.',
+'backend-fail-usable' => 'Не могу да запишем датотеку $1 јер немате довољно дозвола или вам недостају фасцикле/садржаоци.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Не могу да се повежем с новинарском базом за складишну основу „$1“.',
@@ -2302,6 +2308,7 @@ $1',
 Можете сузити приказ одабирући врсту историје, корисничког имена или тражене странице.',
 'logempty' => 'Нема пронађених ставки у историји.',
 'log-title-wildcard' => 'тражи наслове који почињу с овим текстом',
+'showhideselectedlogentries' => 'Прикажи/сакриј изабране записе',
 
 # Special:AllPages
 'allpages' => 'Све странице',
@@ -3232,7 +3239,8 @@ $1',
 'spamprotectionmatch' => 'Следећи текст је изазвао наш филтер за непожељне поруке: $1',
 'spambot_username' => 'Чишћење непожељних порука у Медијавикији',
 'spam_reverting' => 'Враћам на последњу измену која не садржи везе до $1',
-'spam_blanking' => 'Све измене које садрже везе до $1, бришем',
+'spam_blanking' => 'Све измене садрже везе до $1. Чистим',
+'spam_deleting' => 'Све измене садрже везе до $1. Бришем',
 
 # Info page
 'pageinfo-title' => 'Подаци о „$1“',
@@ -4287,6 +4295,8 @@ $5
 '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' => 'Ова врста датотеке је забрањена.',
@@ -4325,4 +4335,6 @@ $5
 'duration-centuries' => '$1 {{PLURAL:$1|век|века|векова}}',
 'duration-millennia' => '$1 {{PLURAL:$1|миленијум|миленијума|миленијума}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Не могу да добијем катанце на серверу $1.',
 );
index 9ea4aad..66ecaa6 100644 (file)
@@ -341,7 +341,7 @@ $messages = array(
 'tog-nocache' => 'Stäng av cachelagring för sidor',
 'tog-enotifwatchlistpages' => 'Skicka e-post till mig när en sida på min bevakningslista ändras',
 'tog-enotifusertalkpages' => 'Skicka e-post till mig när något händer på min diskussionssida',
-'tog-enotifminoredits' => 'Skicka mig e-post även för mindre ändringar',
+'tog-enotifminoredits' => 'Skicka mig e-post även för mindre ändringar av sidor och filer',
 'tog-enotifrevealaddr' => 'Visa min e-postadress i e-postmeddelanden om ändringar som skickas till andra',
 'tog-shownumberswatching' => 'Visa antalet användare som bevakar',
 'tog-oldsig' => 'Nuvarande signatur:',
@@ -675,6 +675,8 @@ Rapportera gärna problemet till någon [[Special:ListUsers/sysop|administratör
 'cannotdelete' => 'Sidan eller filen "$1" kunde inte raderas.
 Den kanske redan har raderats av någon annan.',
 'cannotdelete-title' => 'Sidan "$1" kan inte raderas',
+'delete-hook-aborted' => 'Borttagning avbruten av hook.
+Den gav ingen förklaring.',
 'badtitle' => 'Felaktig titel',
 'badtitletext' => 'Den begärda sidtiteln är antingen ogiltig eller tom, eller så är titeln felaktigt länkad från en annan wiki.
 Den kan innehålla ett eller flera tecken som inte får användas i sidtitlar.',
@@ -706,6 +708,8 @@ Den uppgivna anledningen är "\'\'$2\'\'".',
 Den administratören som låste den gav denna anledning: "\'\'$3\'\'".',
 'invalidtitle-knownnamespace' => 'Ogiltig titel med namnrymden "$2" och texten "$3"',
 'invalidtitle-unknownnamespace' => 'Ogiltig titel med okänt namnrymdsnummer $1 och texten "$2"',
+'exception-nologin' => 'Inte inloggad',
+'exception-nologin-text' => 'Denna sida eller åtgärd kräver att du måste vara inloggad på denna wiki.',
 
 # Virus scanner
 'virus-badscanner' => "Dålig konfigurering: okänd virusskanner: ''$1''",
@@ -3950,6 +3954,8 @@ Annars kan du använda det enkla formuläret nedan. Din kommentar kommer att lä
 'api-error-empty-file' => 'Filen du skickade var tom.',
 'api-error-emptypage' => 'Det är inte tillåtet att skapa nya, tomma sidor.',
 'api-error-fetchfileerror' => 'Internt fel: något gick fel vid hämtningen av filen.',
+'api-error-fileexists-forbidden' => 'En fil med namnet "$1" finns redan och kan inte skrivas över.',
+'api-error-fileexists-shared-forbidden' => 'En fil med namnet "$1" finns redan i det delade filarkivet och kan inte skrivas över.',
 'api-error-file-too-large' => 'Filen du skickade var för stor.',
 'api-error-filename-tooshort' => 'Filnamnet är för kort.',
 'api-error-filetype-banned' => 'Denna typ av fil är förbjuden.',
index 3310dc9..ece11b7 100644 (file)
@@ -131,7 +131,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Ficha kurasa zilizofanyiwa doria kwenye mabadiliko ya karibuni',
 'tog-newpageshidepatrolled' => 'Ficha kurasa zilizofanyiwa doria kwenye orodha ya kurasa mpya',
 'tog-extendwatchlist' => 'Tanua orodha ya maangalizi ili kuonyesha mabadiliko yote yaliyofanyika, si hilo la mwisho tu.',
-'tog-usenewrc' => 'Mabadiliko ya karibuni yenye maelezo mengine (inatumia JavaScript)',
+'tog-usenewrc' => 'Mabadiliko ya kundi kwa kurasa kwenye mabadiliko ya karibuni na maangalizi (JavaScript inahitajika)',
 'tog-numberheadings' => 'Vichwa vya habari vijipange namba-vyenyewe',
 'tog-showtoolbar' => 'Onyesha mwambaa wa zana za kuhariria (JavaScript)',
 'tog-editondblclick' => 'Hariri ukurasa kwa kubonyeza mara mbili',
@@ -945,10 +945,10 @@ Bado unaweza [$1 kutazama sahihisho hili] iwapo utapenda kuendelea.",
 'rev-suppressed-text-unhide' => "Pitio la ukurasa huu '''limefichwa'''.
 Maelezo yanaweza kupatikana kwenye [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} kumbukumbu ya ufichaji].
 Bado unaweza [$1 kutazama sahihisho hili] iwapo utapenda kuendelea.",
-'rev-deleted-text-view' => "Pitio hilo la ukurasa '''lilifutwa'''.
-Kwa sababu u mkabidhi, bado unaweza kulitazama; maelezo mengine yapo kwenye [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} kumbukumbu ya kufuta].",
-'rev-suppressed-text-view' => "Pitio hilo la ukurasa '''lilifichwa'''.
-Kwa sababu u mkabidhi, bado unaweza kulitazama; maelezo mengine yapo kwenye [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} kumbukumbu ya kuficha].",
+'rev-deleted-text-view' => "Pitio hilo la ukurasa huu '''limefutwa'''.
+Unaweza kulitazama; maelezo mengine yapo kwenye [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} kumbukumbu ya ufutaji].",
+'rev-suppressed-text-view' => "Pitio la ukurasa huu '''limefichwa'''.
+Unaweza kulitazama; maelezo mengine yapo kwenye [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} kumbukumbu ya ufichaji].",
 'rev-delundel' => 'onyesha/ficha',
 'rev-showdeleted' => 'onyesha',
 'revisiondelete' => 'Kufuta/kurudisha mapitio',
@@ -1197,7 +1197,7 @@ Hutaweza kulibatilisha tendo hili baadaye.',
 'prefs-registration' => 'Wakati wa kusajili:',
 'yourrealname' => 'Jina lako halisi:',
 'yourlanguage' => 'Lugha:',
-'yourvariant' => 'Variant:',
+'yourvariant' => 'Kadiri ya lugha ya wiki:',
 'yournick' => 'Sahihi:',
 'prefs-help-signature' => 'Unapoandika kwenye kurasa za majadiliano tafadhali utie sahihi kwa kuandika "<nowiki>~~~~</nowiki>"; itaonekana jina lako pamoja na saa na tarehe ya kuhifadhi.',
 'badsig' => 'Umeweka sahihi batili.
@@ -1326,7 +1326,7 @@ Taarifa hii itakuwa wazi.',
 'right-userrights-interwiki' => 'Kuhariri wezo za watumiaji kwenye wiki zingine',
 'right-siteadmin' => 'Kufunga na kufungua hifadhidata',
 'right-sendemail' => 'Kutuma barua-pepe kwa watumiaji wengine',
-'right-passwordreset' => 'Kuona barua pepe zinazoweka neno la siri upya',
+'right-passwordreset' => 'Onesha barua pepe zinazoweka neno la siri upya',
 
 # User rights log
 'rightslog' => 'Kumbukumbu za vyeo vya watumiaji',
@@ -1474,7 +1474,7 @@ faili hili lina $2.',
 'emptyfile' => 'Faili ulilolipakia linaonekana kuwa tupu.
 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 maalum.',
+'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.
@@ -1515,7 +1515,7 @@ Tafadhali utazame kipimo cha file_uploads.',
 'uploadvirus' => 'Faili lina kirusi!
 Maelezo mengine: $1',
 'uploadjava' => 'Faili ZIP hili lina faili Java .class humo ndani.
-Hairuhusiki kupakia mafaili ya Java, kwa sababu yanawezesha kuambaa vizuio vya usalama.',
+Hairuhusiki kupakia mafaili ya Java, kwa sababu yanawezesha kusababisha vizuio vya usalama kuzungukwa.',
 'upload-source' => 'Faili la chanzo',
 'sourcefilename' => 'Jina la faili la chanzo:',
 'sourceurl' => 'URL ya chanzo:',
@@ -1596,8 +1596,7 @@ Unaweza kujaribu wakati tovuti haina kazi nyingi.',
 
 # Special:ListFiles
 'listfiles-summary' => 'Ukurasa huu maalum unaonyesha mafaili yote yaliyopakiwa.
-Kwa kawaida mafaili ya mwisho kupakiwa yanaonekana juu kabisa ya orodha.
-Ukibofya kichwa cha safu mtindo wa kupanga orodha utabadilika.',
+Ikichujwa na mtumiaji, toleo la mafaili pekee ambayo mtumiaji ameyapakia hivi karibuni ndiyo yatakayoonekana.',
 'listfiles_search_for' => 'Tafuta jina la faili:',
 'imgfile' => 'faili',
 'listfiles' => 'Orodha ya mafaili',
@@ -1790,7 +1789,7 @@ Sasa unaelekeza kwa [[$2]].',
 'deadendpagestext' => 'Kurasa zifuatazo haziungana na kurasa zingine katika {{SITENAME}}.',
 'protectedpages' => 'Kurasa zinazolindwa',
 'protectedpages-indef' => 'Ulinzi kwa muda usiojulikana tu',
-'protectedpages-cascade' => 'zinazokuwa na ulindaji kwa kurasa chini zake tu',
+'protectedpages-cascade' => 'Mpangilio wa ulindaji tu',
 'protectedpagestext' => 'Kurasa zifuatazo zinalindwa zisisogezwe wala kuhaririwa',
 'protectedpagesempty' => 'Hakuna kurasa zinazolindwa kwa sasa kwa vigezo hivi.',
 'protectedtitles' => 'Majina yanayozuluiwa',
@@ -1815,11 +1814,11 @@ Sasa unaelekeza kwa [[$2]].',
 'booksources' => 'Vyanzo vya vitabu',
 'booksources-search-legend' => 'Tafuta mahali panopopatikana kitabu',
 'booksources-go' => 'Nenda',
-'booksources-invalid-isbn' => 'ISBN iliyoandikwa haonekani kuwa halali; hakikisha kwamba ni sawa na ISBN ya asili.',
+'booksources-invalid-isbn' => 'ISBN iliyoandikwa haonekani kuwa halali; hakikisha kwamba ni sawa na chanzo halisi cha ISBN.',
 
 # Special:Log
-'specialloguserlabel' => 'Mtumiaji:',
-'speciallogtitlelabel' => 'Cheo:',
+'specialloguserlabel' => 'Mtendaji:',
+'speciallogtitlelabel' => 'Kusudio (jina la ukurasa au mtumiaji):',
 'log' => 'Kumbukumbu',
 'all-logs-page' => 'Kumbukumbu zote zilizo wazi',
 'alllogstext' => 'Hapa panaonyeshwa kumbukumbu zote za {{SITENAME}} kwa pamoja.
@@ -1865,10 +1864,11 @@ Tazama pia [[Special:WantedCategories|jamii zinazohitajika]].',
 'linksearch-pat' => 'Herufi zitakazotafutwa:',
 'linksearch-ns' => 'Eneo la wiki:',
 'linksearch-ok' => 'Tafuta',
-'linksearch-text' => 'Alama maalum za kutafuta kama "*.wikipedia.org" zinaweza kutumika.<br />
-Itifaki zinazoungwa mkono: <tt>$1</tt>',
+'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).',
 'linksearch-line' => '$2 umeungwa kutoka $1',
-'linksearch-error' => 'Alama maalum za kutafuta zinaweza kutumika mwanzoni mwa URL tu.',
+'linksearch-error' => 'Alama maalumu zinaweza kuonekana mwanzoni mwa URL tu.',
 
 # Special:ListUsers
 'listusersfrom' => 'Onyesha watumiaji kuanzia:',
@@ -1965,7 +1965,7 @@ Ukitaka kufuta ukurasa huo kutoka maangalizi yako baadaye, bonyeza \"Acha kufuat
 'watchnochange' => 'Hakuna kitu kati ya maangalizi yako kilichohaririwa katika kipindi kilichotajwa.',
 'watchlist-details' => 'Unafuatilia {{PLURAL:$1|ukurasa $1|kurasa $1}} bila kuzingatia kurasa za majadiliano.',
 'wlheader-enotif' => '* Huduma ya kuarifu kwa barua pepe imewezeshwa.',
-'wlheader-showupdated' => "* Kurasa zilizobadilika tangu ulipoziona mwishoni zinaonyeshwa '''kooze'''",
+'wlheader-showupdated' => "* Kurasa zilizobadilika tangu ulivyotembelea mara ya mwisho zinaonyeshwa katika hali ya '''kukooza'''",
 'watchmethod-recent' => 'kupitia madabiliko ya karibuni ili kupata kurasa za maangalizi',
 'watchmethod-list' => 'kupitia kurasa za maangalizi ili kupata madabiliko ya karibuni',
 'watchlistcontains' => 'Orodha ya maangalizi yako ina {{PLURAL:$1|kitu|vitu}} $1.',
index b705e0f..8bc74a7 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Silesian (Å\9alůnski)
+/** Silesian (Å\9blůnski)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -411,19 +411,22 @@ Eli tak ńy je, możno śe trefił feler we softwaru MediaWiki. Kej ja, pedz uo
 'formerror' => 'Feler: ńy idźe wysuać formulařa',
 'badarticleerror' => 'Tyj uoperacyje ńy idźe zrobić lo tyj zajty.',
 'cannotdelete' => 'Ńy idźe wyćepać podanyj zajty abo grafiki $1.',
+'cannotdelete-title' => 'Ńy idźie wyćepać zajty "$1".',
 'badtitle' => 'Felerno tytůua',
 'badtitletext' => 'Podano felerny titel zajty. Prawdopodańy sům w ńim znoki, kerych ńy wolno užywać we titlach abo je pusty.',
-'perfcached' => 'To co sam je naškryflane, to ino kopja s pamjyńći podrynčnyj a može ńy być aktualne. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.',
-'perfcachedts' => 'To co sam je naškryflane, to ino kopja s pamjyńći podrynčnyj a bůuo uaktualńůne $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
+'perfcached' => 'To co sam je naszkryflane, to ino kopja s pamjyńći podryncznyj a może ńy być aktualne. Nojwjyncyj {{PLURAL:$1|jydyn wynik je|$1 wyniki sům}} w tyj pamjyńći.',
+'perfcachedts' => 'To co sam je naszkryflane, to ino kopja s pamjyńći podryncznyj a bůło uaktualńůne $1. Nojwjyncyj {{PLURAL:$4|jeden wynik je|$4 wyniki sům}} dostympne.',
 'querypage-no-updates' => 'Uaktualńyńo lo tyj zajty sům terozki zawarte. Dane, kere sam sům, ńy zostouy uodśwjyžůne.',
 'wrong_wfQuery_params' => 'Felerne parametry překozane do wfQuery()<br />
 Funkcyjo: $1<br />
 Zapytańy: $2',
 'viewsource' => 'Zdrzůdłowy tekst',
+'viewsource-title' => 'Uobocz zdrzůdło lo $1',
 'actionthrottled' => 'Akcyjo wstřimano',
 'actionthrottledtext' => 'Mechańizm uobrůny před spamym uograńičo ličba wykonań tyj čynnośći we jednostce času. Průbowoužeś go uocygańić. Proša, sprůbuj na nowo za pora minut.',
-'protectedpagetext' => 'Ta zajta je zawarto před sprowjańym.',
-'viewsourcetext' => 'We tekst zdřůduowy tyj zajty možno dali filować, idźe go tyž kopjować.',
+'protectedpagetext' => 'Ta zajta je zawarto przed sprowjańym.',
+'viewsourcetext' => 'We tekst zdrzůduowy tyj zajty możno dali filować, idźe go tyż kopjyrować.',
+'viewyourtext' => 'We tekst zdrzůduowy tyj zajty możno dali filować, idźe go tyż kopjować.',
 'protectedinterface' => 'Na tyj zajće znojduje śe tekst interfejsu uoprogramowańo, bestož uůna je zawarto uod sprowjańo.',
 'editinginterface' => "''''Dej pozůr:''' Sprowjosz zajta, na keryj je tekst interfejsu uoprogramowańo. Pomjyńyńa na tyj zajće zmjyńům wyglůnd interfejsu lo inkšych užytkowńikůw.",
 'sqlhidden' => '(schowano zapytańy SQL)',
@@ -435,6 +438,10 @@ $2',
 'ns-specialprotected' => 'Ńy idźe sprowjać zajtůw we přestřyni mjan {{ns:special}}.',
 'titleprotected' => "Wćepańy sam zajty uo takim mjańe zawar [[User:$1|$1]].
 Powůd zawarćo: ''$2''.",
+'filereadonlyerror' => 'Ńy idźe pomjyńać plika "$1" abo repozytorjum "$2" terozki je zawarte.
+
+Administrator kery zawarł wćepał kůmyntorz: "$3".',
+'invalidtitle-knownnamespace' => 'Felerne mjano "$3" w przestrzeńy "$2".',
 
 # Virus scanner
 'virus-badscanner' => "Felerno konfiguracyjo – ńyznany skaner antywirusowy ''$1''",
@@ -450,7 +457,7 @@ Dej pozůr, co na ńykerych zajtach přeglůndarka može dali pokozywać co jež
 Uotwarli my sam lo Ćebje kůnto.
 Ńy zapomńij poštalować [[Special:Preferences|preferencyji lo {{GRAMMAR:D.lp|{{SITENAME}}}}]].',
 'yourname' => 'Mjano użytkowńika:',
-'yourpassword' => 'Hasuo:',
+'yourpassword' => 'Hasło:',
 'yourpasswordagain' => 'Naszkryflej ausdruk zaś',
 'remembermypassword' => 'Pamjyntej můj ausdruk na tym kůmputrze (nojdalij bez $1 {{PLURAL:$1|dźyń|dńůw}})',
 'securelogin-stick-https' => 'Po zalogowańy mjyj połonczenie bez HTTPS',
@@ -464,9 +471,9 @@ Uotwarli my sam lo Ćebje kůnto.
 'logout' => 'Wyloguj',
 'userlogout' => 'Uodloguj śe',
 'notloggedin' => 'Ńy ježeś zalůgowany',
-'nologin' => "Ńy moš kůnta? '''$1'''.",
+'nologin' => "Ńy mosz kůnta? '''$1'''.",
 'nologinlink' => 'Twůrz kůnto',
-'createaccount' => 'Zouůž nowe kůnto',
+'createaccount' => 'Twůrz nowe kůnto',
 'gotaccount' => "Mosz już kůnto? '''$1'''.",
 'gotaccountlink' => 'Naloguj śe',
 'userlogin-resetlink' => 'Zapomńoł żeś dane lo nalogowańo?',
@@ -487,13 +494,13 @@ Sprowdź szrajbůng, abo [[Special:UserLogin/signup|utwůrz nowe kůnto]].',
 'nosuchusershort' => 'Ńy mo sam užytkowńika uo mjańe "$1".',
 'nouserspecified' => 'Podej mjano użytkowńika.',
 'login-userblocked' => 'Tyn sprowjorz ma zawrzite sprowjyńa. Ńy możno sie zalgować.',
-'wrongpassword' => 'Hasuo kere žeś naškryflou je felerne. Poprůbůj naškryflać je ješče roz.',
+'wrongpassword' => 'Hasło kere żeś naszkryfloł je felerne. Poprůbůj naszkryflać je jeszcze roz.',
 'wrongpasswordempty' => 'Hasuo kere žeś podou je puste. Naškryflej je ješče roz.',
 'passwordtooshort' => 'Hasło kere żeś podoł je felerne abo za krůtke.
 Hasło muśi mjeć przinojmńij {{PLURAL:$1|1 buchsztaba|$1 buchsztabůw}} a być inksze od mjana użytkowńika.',
 'password-name-match' => 'Hasło musi być inne niż nazwa użytkownika.',
 'password-login-forbidden' => 'Ńy wolno mjyć takij nazwy a hasua.',
-'mailmypassword' => 'Wyślij mi nowe hasuo bez e-brif',
+'mailmypassword' => 'Wyślij mi nowe hasło bez e-brif',
 'passwordremindertitle' => 'Nowe tymčasowe hasuo dla {{SITENAME}}',
 'passwordremindertext' => 'Ftůś (cheba Ty, s IP $1)
 pado, aże chce nowe hasło do {{SITENAME}} ($4).
@@ -507,8 +514,8 @@ Jak ktůś inkszy chćoł nowe hasło abo jak Ci śe przipůmńouo stare a ńy c
 'passwordsent' => 'Nowe hasuo pošuo na e-brifa uod užytkowńika "$1".
 Zalůguj śe zaś jak dostańyš tygo brifa.',
 'blocked-mailpassword' => 'Twůj adres IP zostou zawarty a ńy možeš užywać funkcyje odzyskiwańo hasua skuli možliwośći jeji nadužywańo.',
-'eauthentsent' => 'Potwjerdzeńy zostouo wysuane na e-brifa.
-Jak bydźeš chćou, coby wysyuouo Ći e-brify, pjyrwyj go přečytej. Bydźeš tam mjou instrukcyjo co moš zrobić, coby pokozać, aže tyn adres je Twůj.',
+'eauthentsent' => 'Potwjerdzeńy zostoło posłane na e-brifa.
+Jak bydźesz chćoł, coby wysyłouo Ći e-brify, pjyrwyj go przeczytej. Bydźesz tam mjoł instrukcyjo co mosz zrobić, coby pokozać, aże tyn ausdruk je Twůj.',
 'throttled-mailpassword' => 'Připůmńyńy hasua bůuo juž wysuane bez {{PLURAL:$1|uostatńo godźina|uostatńe $1 godźin}}.
 Coby powstřimać nadužyća, možliwość wysyuańa připůmńeń naštalowano na jydne bez {{PLURAL:$1|godźina|$1 godźiny}}.',
 'mailerror' => 'Při wysyuańu e-brifa zdořiu śe feler: $1',
@@ -519,10 +526,11 @@ Coby powstřimać nadužyća, možliwość wysyuańa připůmńeń naštalowano
 'emailconfirmlink' => 'Potwjerdź swůj adres e-brifa',
 'invalidemailaddress' => 'E-brif ńy bydźe zaakceptůwany skiž tygo co jego format ńy speuńo formalnych wymagań. Proša naškryflać poprowny adres e-brifa abo wyčyśćić pole.',
 'cannotchangeemail' => 'Ńy możno pomjyńyc ausdruku e-mail.',
+'emaildisabled' => 'Ta zajta ńy je mogebna posyłać e-brify.',
 'accountcreated' => 'Utwůřůno kůnto',
 'accountcreatedtext' => 'Kůnto lo $1 zostouo utwůřůne.',
 'createaccount-title' => 'Stwořyńy kůnta na {{GRAMMAR:MS.lp|{{SITENAME}}}}',
-'createaccount-text' => 'Ktoś utwořiu na {{GRAMMAR:MS.lp|{{SITENAME}}}} ($4) dla Twojego adresa e-brif kůnto "$2". Aktualne hasuo to "$3". Powińežeś śe terozki zalogůwać a je zmjyńić.',
+'createaccount-text' => 'Ktoś utworził na {{GRAMMAR:MS.lp|{{SITENAME}}}} ($4) dla Twojego adresa e-brif kůnto "$2". Aktualne hasło to "$3". Powińeżeś śe terozki zalogůwać a je zmjyńić.',
 'usernamehasherror' => 'Nazwa sprowjorza ńy może mjyć buchsztaby "#".',
 'login-throttled' => '!Wykonołżeś za wjela průb zalůgowańo śe na te kůnto. Poczekej chwila ńym zaś sprůbujesz.',
 'login-abort-generic' => 'Felerne logowańe',
@@ -534,12 +542,12 @@ Coby powstřimać nadužyća, možliwość wysyuańa připůmńeń naštalowano
 'user-mail-no-addy' => 'Próba wysłania e‐maila bez adresu odbiorcy',
 
 # Change password dialog
-'resetpass' => 'Zmjyń hasło',
+'resetpass' => 'Pomjyńaj hasło',
 'resetpass_announce' => 'Zalůgowoužeś śe s tymčasowym kodym uotřimanym bez e-brif. Coby zakůńčyć proces logůwańo muśiš naštalować nowe hasuo:',
 'resetpass_header' => 'Zmjyń hasło lů swojygo kůnta',
-'oldpassword' => 'Stare hasuo',
-'newpassword' => 'Nowe hasuo',
-'retypenew' => 'Naškryflej ješče roz nowe hasuo:',
+'oldpassword' => 'Stare hasło',
+'newpassword' => 'Nowe hasło',
+'retypenew' => 'Naszkryflej jeszcze roz nowe hasło:',
 'resetpass_submit' => 'Naštaluj hasuo a zalůguj',
 'resetpass_success' => 'Twoje hasuo zostouo půmyślńy pomjyńone! Trwo logůwańe...',
 'resetpass_forbidden' => 'Ńy idźe sam půmjyńyć hasuůw.',
@@ -583,7 +591,7 @@ Tymczasowe hasło: $2',
 'changeemail-header' => 'Pomjyno ausduku e-mail',
 'changeemail-text' => 'Wypełnij formularz, podej nowy ausdruk a hasło.',
 'changeemail-no-info' => 'Muśysz być zalogowany, coby uzyskać bezpostrzedńi dostymp do tyj zajty.',
-'changeemail-oldemail' => 'Łobecny ausdruk:',
+'changeemail-oldemail' => 'Uobecny ausdruk:',
 'changeemail-newemail' => 'Nowy adresu e-brif',
 'changeemail-none' => 'podstawowo',
 'changeemail-submit' => 'Zapisz nowy',
@@ -665,8 +673,8 @@ Hasło można pomjyńyć [[Special:ChangePassword|tu]].',
 'newarticle' => '(Nowy)',
 'newarticletext' => 'Ńy mo sam jeszcze artikla uo takijj titli. Eli chcesz go sprowjać, naszkryflej niżyj jego tekst (wjyncy informacyj nojdźesz [[{{MediaWiki:Helppage}}|na zajće půmocy]]). Eli żeś chćoł zrobić cosik inksze, naćiś ino knefel "Nazod".',
 'anontalkpagetext' => "---- ''To je zajta godki lo anůnimowych używoczy  - takich, kerzi ńy majům jeszcze swojigo kůnta abo ńy chcům go terozki używać.
-By jeich idyntyfikować, używomy numerůw IP.
-Eli jeżeś anůnimowym używoczym a wydowo Ći śe, aże zamjyszczůne sam kůmyntorze ńy sům skjyrowane do Ćebje, [[Special:UserLogin|utwůrz prosza kůnto]] abo [[Special:UserLogin|zalůguj śe]] - bez tůż uńikńesz potym podobnych ńyporozumjyń.''",
+By jejich idyntyfikować, używomy numerůw IP.
+Eli jeżeś anůnimowym używoczym a wydowo Ći śe, aże zamjyszczůne sam kůmyntorze ńy sům skjyrowane do Ćebje, [[Special:UserLogin|utwůrz prosza kůnto]] abo [[Special:UserLogin|zalůguj śe]] - beztůż uńikńesz potym podobnych ńyporozumjyń.''",
 'noarticletext' => 'Ńy můmy zajta uo takij titli. Mogesz [{{fullurl:{{FULLPAGENAME}}|action=edit}} wćepać artikel {{FULLPAGENAME}}] abo [[Special:Search/{{PAGENAME}}|sznupać {{PAGENAME}} we inkszych]].',
 'noarticletext-nopermission' => 'Na tyj zajće ńy mo jeszcze artikla.
 Mogesz [[Special:Search/{{PAGENAME}}|wysznupać ta titla]] we treśći inkszych zajtůw
@@ -687,6 +695,7 @@ abo <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}
 'updated' => '(Pomjyńano)',
 'note' => "'''Pozůr:'''",
 'previewnote' => "'''To je ino podglůnd - artikel jeszcze ńy je spamjyntany!'''",
+'continue-editing' => 'Sprowjej dalej',
 'previewconflict' => 'Wersyjo podglůndano uodnośi śe do tekstu s pola edycyje na wjyrchu. Tak bydźe wyglůndać zajta jeli zdecyduješ śe jům naškryflać.',
 'session_fail_preview' => "'''Přeprašomy! Serwer ńy može přetwořyć tygo sprowjyńo skuli utraty danych ze sesyji. Sprůbuj ješče roz. Kejby to ńy pomoguo - wylůguj śe i zalogůj uod nowa.'''",
 'session_fail_preview_html' => "'''Přeprašomy! Serwer ńy može přetwořyć tygo sprowjyńo skuli utraty danych ze sesyji.'''
@@ -696,8 +705,9 @@ abo <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}
 '''Jeli to je prawiduowo průba sprowjańo, sprůbuj ješče roz. Kejby to ńy pomoguo - wylůguj śe a zalůguj na nowo.'''",
 'token_suffix_mismatch' => "'''Twoje sprowjyńy zostouo uodćepńynte skuli tego, co twůj klijynt pomjyšou znaki uod interpůnkcyji w žetůńe sprowjyń. Twoje sprowjyńy zostouo uodćepńynte coby zapobjec zńyščyńu tekstu zajty. Take průblymy zdořajům śe w roźe kůřistańo s felernych anůnimowych śećowych usuůg proxy.'''",
 'editing' => 'Sprowjosz $1',
+'creating' => 'Tworzyńy $1',
 'editingsection' => 'Sprowjosz $1 (sekcyjo)',
-'editingcomment' => 'Sprowjosz "$1" (kůmyntorz)',
+'editingcomment' => 'Sprowjosz "$1" (nowy kůmyntorz)',
 'editconflict' => 'Kůnflikt sprowjyń: $1',
 'explainconflict' => "Ktoś zdůnžyu wćepać swoja wersyjo artikla ńim žeś naškryflou sprowjyńy.
 We polu edycyji na wjyrchu moš tekst zajty aktůalńy naškryflany w baźe danych.
@@ -714,17 +724,20 @@ By wćepać swoje pomjyńańo muśiš pomjyńać tekst w polu na wjyrchu.
 'copyrightwarning2' => "Pamjyntej uo tym, aže couki wkuod do {{GRAMMAR:MS.lp|{{SITENAME}}}} može być sprowjany, pomjyńany abo wyćepany bez inkšych užytkownikůw. Jak ńy chceš, coby koždy můg go zmjyńać i dali rozpowšychńać bez uograničyń, ńy wćepuj go sam.<br />
 Škryflajůnc sam tukej pośwjadčoš tyž, co te pisańy je twoje wuasne, abo žeś go wźůn(a) s matyrjouůw kere sům na public domain, abo kůmpatybilne (kuknij tyž: $1).
 '''PROŠA ŃY WĆEPYWAĆ SAM MATYRJOUŮW KERE SŮM CHRŮŃONE PRAWYM AUTORSKIM BEZ DOZWOLEŃO WUAŚĆIĆELA!'''",
-'longpageerror' => "'''Feler: Tekst kery žeś sam wćepywou mo $1 kilobajtůw. Maksymalno dugość tekstu ńy može być wjynkšo kej $2 kilobajtůw. Twůj tekst ńy bydźe sam naškryflany.'''",
+'longpageerror' => "''Feler: Tekst kery żeś sam wćepywoł mo {{PLURAL:$1|jedyn kilobajt|$1 kilobajtůw}}. Maksymalno dugość tekstu ńy może być srogszo kej {{PLURAL:$2|jedyn kilobajt|$2 kilobajtůw}}. Twůj tekst ńy bydźe sam naszkryflany.'''",
 'readonlywarning' => "'''Dej pozůr: Baza danych zostoua filowo zawarto skuli potřeb admińistracyjnych. Bestůž ńy do śe terozki naškryflać Twojich pomjyńań. Radzymy přećepać nowy tekst kajś do plika tekstowego (wytnij/wklej) a wćepać sam zaś po uodymkńyńću bazy.'''
 
 Admińistrator kery zawar baza dou take wyjaśńyńe: $1",
-'protectedpagewarning' => "'''Dej pozůr: Sprowjańe tyj zajty zostouo zawarte. Mogům jům sprowjać ino užytkowńicy s uprawńyńami admińistratora.'''",
-'semiprotectedpagewarning' => "'''Pozůr:''' Ta zajta zostoua zawarto a ino zaregišterowani užytkownicy mogům jům sprowjać.",
+'protectedpagewarning' => "'''Dej pozůr: Sprowjańe tyj zajty zostoło zawarte. Mogům jům sprowjać ino użytkowńicy s uprawńyńami admińistratora.'''
+Uostatńy wpis w rejerze je poniżej.",
+'semiprotectedpagewarning' => "'''Pozůr:''' Ta zajta zostoła zawarto a ino zaregiszterowani użytkownicy mogům jům sprowjać.
+Uostotńy wpis w rejerze je ńyżej.",
 'cascadeprotectedwarning' => "'''Dej pozůr:''' Ta zajta zostoua zawarto a ino užytkowńicy s uprawńyńami admińistratora mogům jům sprowjać. Zajta ta je podpjynto pod {{PLURAL:$1|nastympujůnco zajta, kero zostoua zawarto|nastympujůncych zajtach, kere zostouy zawarte}} ze zauůnčonům opcjům dźedźičyńo:",
-'titleprotectedwarning' => "'''DEJ POZŮR: Zajta uo tym titlu zostoua zawarto a ino ńykeři užytkowńicy mogům jům wćepać.'''",
+'titleprotectedwarning' => "'''Dej pozůr: Zajta uo tym titlu zostoła zawarto a ino [[Special:ListGroupRights|ńykerzi użytkowńicy]] mogům jům wćepać.'''
+Uostatńy wpis z rejera je ńyżej.",
 'templatesused' => '{{PLURAL:$1|Szablon|Szablůny}} użyte na tyj zajće:',
-'templatesusedpreview' => 'Šablůny užyte we tym podglůńdźe:',
-'templatesusedsection' => 'Šablůny užyte w tyj tajli:',
+'templatesusedpreview' => '{{PLURAL:$1|Szablon|Szablůny}} użyte na tyj zajće:',
+'templatesusedsection' => '{{PLURAL:$1|Szablon|Szablůny}} użyte w tyj tajli:',
 'template-protected' => '(zawrzity uod sprowjańo)',
 'template-semiprotected' => '(tajlowo zawarte)',
 'hiddencategories' => 'Ta zajta je {{PLURAL:$1|w jednyj schrůńunyj katygoryji|we $1 schrůńunych katygoryjach}}:',
@@ -732,6 +745,8 @@ Admińistrator kery zawar baza dou take wyjaśńyńe: $1",
 'nocreatetext' => 'Na {{GRAMMAR:MS.lp|{{SITENAME}}}} twořyńy nowych zajtůw uograńičůno.
 Možeš sprowjać te co juž sům, abo [[Special:UserLogin|zalogować śe, abo zauožyć konto]].',
 'nocreate-loggedin' => 'Ńy moš uprowńyń do twořyńo nowych zajtůw.',
+'sectioneditnotsupported-title' => 'Sprowjańy tajli ńymogebne',
+'sectioneditnotsupported-text' => 'Sprowjańy tajli ńymogebne na tyj zajće.',
 'permissionserrors' => 'Felerne uprowńyńa',
 'permissionserrorstext' => 'Ńy moš uprowńyń do takij akcyje {{PLURAL:$1|skuli tego, co:|bestůž, co:}}',
 'permissionserrorstext-withaction' => 'Ńy mogesz $2, ze {{PLURAL:$1|takigo powodu|takich powodůw}}:',
@@ -749,6 +764,7 @@ Zdowo śe, co zostoua wyćepano.',
 'edit-no-change' => 'Twoje sprowjyńe uostouo zignorowane pů takymu, co ńic žeś we tekśće ńy zmjyńiu.',
 'edit-already-exists' => 'Ńy idźe utwořić nowyj zajty.
 Tako zajta juž sam je.',
+'defaultmessagetext' => 'Tekst důmyślny',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Dej pozůr: ta zajta mo za dužo uodwouań do funkcyji parsera, kere mocno uobćůnžajům systym.
@@ -816,9 +832,12 @@ Možeš tyž [[Special:Search|šnupać]] za tům zajtům.',
 Atoli kej admińistrator {{GRAMMAR:MS.lp|{{SITENAME}}}} možeš jům uobejřeć.
 Powody wyćepańo idźe znejść we [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} rejeře wyćepań]',
 'rev-delundel' => 'ukoż/schrůń',
+'rev-showdeleted' => 'ukoż',
 'revisiondelete' => 'Wyćep/wćep nazod wersyje',
 'revdelete-nooldid-title' => 'Ńy wybrano wersyji',
 'revdelete-nooldid-text' => 'Ńy wybrano wersyji na kerych mo zostać wykůnano ta uoperacyjo.',
+'revdelete-no-file' => 'Ńy mo tygo plika.',
+'revdelete-show-file-confirm' => 'Jeżeś echt pewny co chcesz uobejzdrzeć wyćepano wersyjo plika „<nowiki>$1</nowiki>” s $2 $3?',
 'revdelete-show-file-submit' => 'Ja',
 'revdelete-selected' => "'''{{PLURAL:$2|Wybrano wersyja|Wybrane wersyje}} zajty [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Wybrane zdařyńy s rejeru|Wybrane zdařyńa s rejeru}}:'''",
@@ -867,7 +886,7 @@ $1',
 
 # Suppression log
 'suppressionlog' => 'Log schrůńyńć',
-'suppressionlogtext' => 'Půńiżyj je lista nojnowszych wyćepań i zawarć s uwzglyndńyńym treśći schrůńůnej lo admińistratorůw. Coby przřejrzeć lista aktualnych banůw i zawarć, uobezdrzij [[Special:BlockList|IP block list]].',
+'suppressionlogtext' => 'Půńiżyj je lista nojnowszych wyćepań a zawarć s uwzglyndńyńym treśći schrůńůnej lo admińistratorůw. Coby przejrzeć lista teroźnych banůw a zawarć, uobezdrzij [[Special:BlockList|IP block list]].',
 
 # History merging
 'mergehistory' => 'Pouůnč historyjo půmjyńań zajtůw',
@@ -898,7 +917,7 @@ $1',
 'mergelogpagetext' => 'Půńižej znojduje śe lista uostatńich pouůnčyń historyji půmjyńań zajtůw.',
 
 # Diffs
-'history-title' => 'Historyjo sprowjyń "$1"',
+'history-title' => 'Gyszichta sprowjyń "$1"',
 'difference-multipage' => '(Porůwnańje zajt)',
 'lineno' => 'Lińijo $1:',
 'compareselectedversions' => 'zrůwnej uobrane wersyje',
@@ -982,7 +1001,7 @@ $1',
 # Preferences page
 'preferences' => 'Preferyncyje',
 'mypreferences' => 'Moje preferyncyje',
-'prefs-edits' => 'Ličba sprowjyń:',
+'prefs-edits' => 'Liczba sprowjyń:',
 'prefsnologin' => 'Ńy ježeś zalůgowany',
 'prefsnologintext' => 'Muśiš śe <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} zalůgować]</span> coby štalować swoje preferyncyje.',
 'changepassword' => 'Zmjana hasua',
@@ -992,19 +1011,22 @@ $1',
 'prefs-beta' => 'Testowe funkcyje',
 'prefs-datetime' => 'Data a czas',
 'prefs-labs' => 'Funkcyje "labs"',
+'prefs-user-pages' => 'Zajty używaczy',
 'prefs-personal' => 'Dane užytkowńika',
 'prefs-rc' => 'Ńydowno pomjyńane',
 'prefs-watchlist' => 'Pozůrlista',
 'prefs-watchlist-days' => 'Ličba dńi widočnych na liśće artikli, na kere dowoš pozůr:',
-'prefs-watchlist-days-max' => 'Maximum $1 {{PLURAL:$1|day|days}}',
+'prefs-watchlist-days-max' => 'Max $1 {{PLURAL:$1|dźień|dńi}}',
 'prefs-watchlist-edits' => 'Ličba půmjyńań pokazywanych we rozšyřůnyj liśće artiklůw, na kere dowoš pozůr:',
 'prefs-watchlist-edits-max' => 'Maksymalno liczba: 1000',
 'prefs-watchlist-token' => 'ID půzorlisty:',
 'prefs-misc' => 'Roztůmajte',
 'prefs-resetpass' => 'Zmjyń hasło',
+'prefs-changeemail' => 'Pomjyno ausdruka e-brif',
+'prefs-setemail' => 'Nastow e-brif',
 'prefs-email' => 'E-brif',
 'prefs-rendering' => 'Wyglůnd',
-'saveprefs' => 'Naškryflej',
+'saveprefs' => 'Spamjyntej',
 'resetprefs' => 'Preferencyje důmyślne',
 'restoreprefs' => 'Wćep wszyjskie důmyślne preferencyje',
 'prefs-editing' => 'Sprowjańy',
@@ -1046,19 +1068,23 @@ $1',
 'youremail' => 'E-brif:',
 'username' => 'Mjano użytkowńika:',
 'uid' => 'ID užytkowńika:',
-'prefs-memberingroups' => 'Naležy do {{PLURAL:$1|grupy|grup:}}',
+'prefs-memberingroups' => 'Należy do {{PLURAL:$1|grupy|grup:}}',
+'prefs-registration' => 'Czas twůrzyńa kůnta:',
 'yourrealname' => 'Prawdźiwe mjano',
 'yourlanguage' => 'Godka interfejsu',
 'yournick' => 'Twoja šrajba:',
 'badsig' => 'Felerno šrajba, sprowdź značńiki HTML.',
-'badsiglength' => 'Twůj šrajbůng je za dugi. Maksymalno jego dugość to $1 {{PLURAL:$1|buchštaby|buchštabůw}}',
+'badsiglength' => 'Twůj szrajbůng je za dugi. Maksymalno jego dugość to $1 {{PLURAL:$1|buchsztaby|buchsztabůw}}',
+'yourgender' => 'Płeć',
+'gender-unknown' => 'ńyznana',
 'gender-male' => 'chop',
 'gender-female' => 'baba',
 'email' => 'E-brif',
-'prefs-help-realname' => '* Mjano a nazwisko (uopcjůnalÅ\84y): jak Å¾eÅ\9b zdecydowou aže je podoÅ¡, bydům užyte, coby Twoja robota mjoua atrybucyjo.',
+'prefs-help-realname' => '* Mjano a nazwisko (uopcjůnalÅ\84y): jak Å¼eÅ\9b zdecydowoÅ\82 aże je podosz, bydům użyte, coby Twoja robota mjoÅ\82a atrybucyjo.',
 'prefs-help-email' => 'Ukozańy e-brifowygo adresu ńy je powinne, nale nutne, coby resetować ausdruk, eli zapomńisz.',
 'prefs-help-email-others' => 'Mogesz tyż uůmożnić inkszym używoczům posłać ci e-brif bez twojo zajta używocza abo zajta dyskusyje. Twůj e-brifowy adres śe ńy ukoże.',
 'prefs-help-email-required' => 'Wymogany je adres e-brifa.',
+'prefs-diffs' => 'Diffy',
 
 # User rights
 'userrights' => 'Zařůndzańy prowami užytkowńikůw',
@@ -1077,29 +1103,29 @@ $1',
 'userrights-no-interwiki' => 'Ńy moš dostympu do sprowjańo uprawńyń.',
 'userrights-nodatabase' => 'Baza danych $1 ńy istńije abo ńy je lokalno.',
 'userrights-nologin' => 'Muśiš [[Special:UserLogin|zalůgować śe]] na kůnto admińistratora, coby nadować uprawńyńo užytkowńikům.',
-'userrights-notallowed' => 'Ńy moš dostympu do nadawańo uprawńyń užytkowńikům.',
+'userrights-notallowed' => 'Ńy mosz dostympu do nadawańo uprawńyń używaczom.',
 'userrights-changeable-col' => 'Grupy, kere možeš wybrać',
 'userrights-unchangeable-col' => 'Grupy, kerych ńy možeš wybrać',
 
 # Groups
 'group' => 'Grupa:',
-'group-user' => 'UžytkowÅ\84iki',
-'group-autoconfirmed' => 'Autůmatyčńy zatwjerdzůne užytkowńiki',
+'group-user' => 'Używacze',
+'group-autoconfirmed' => 'Autůmatyczńy zatwjerdzůne używacze',
 'group-bot' => 'Boty',
 'group-sysop' => 'Admińi',
 'group-bureaucrat' => 'Bjurokraty',
 'group-suppress' => 'Rewizoře',
 'group-all' => '(wšyjscy)',
 
-'group-user-member' => 'Sprowjorz',
-'group-autoconfirmed-member' => 'Autůmatyčńy zatwjerdzůny užytkowńik',
-'group-bot-member' => 'Bot',
-'group-sysop-member' => 'Admin',
-'group-bureaucrat-member' => 'Bjurokrata',
-'group-suppress-member' => 'Rewizůr',
+'group-user-member' => '{{GENDER:$1|używacz}}',
+'group-autoconfirmed-member' => 'Autůmatyczńy zatwjerdzůny używacz',
+'group-bot-member' => '{{GENDER:$1|bot}}',
+'group-sysop-member' => '{{GENDER:$1|admin}}',
+'group-bureaucrat-member' => '{{GENDER:$1|bjurokrata}}',
+'group-suppress-member' => '{{GENDER:$1|rewizůr}}',
 
 'grouppage-user' => '{{ns:project}}:Sprowjorze',
-'grouppage-autoconfirmed' => '{{ns:project}}:Autůmatyčńy zatwjerdzyńi užytkowńiki',
+'grouppage-autoconfirmed' => '{{ns:project}}:Autůmatyczńy zatwjerdzyńi używacze',
 'grouppage-bot' => '{{ns:project}}:Boty',
 'grouppage-sysop' => '{{ns:project}}:Admińistratory',
 'grouppage-bureaucrat' => '{{ns:project}}:Bjurokraty',
@@ -1115,6 +1141,7 @@ $1',
 'right-move' => 'Přećepane zajty',
 'right-move-subpages' => 'Přećep zajty wroz s jejich podzajtůma',
 'right-move-rootuserpages' => 'Překludzańy zajtůw uod užytkowńikůw',
+'right-movefile' => 'Przećepańe plikůw',
 'right-suppressredirect' => 'Ńy twůrz przekerowańo ze starygo mjana jak przećepujesz zajta',
 'right-upload' => 'Wćepane pliki',
 'right-reupload' => 'Nadpisuj pliki kere sam juž sům wćepane',
@@ -1176,6 +1203,7 @@ $1',
 'action-move' => 'přećepańe tyj zajty',
 'action-move-subpages' => 'přećepańo tyj zajty uoroz s jeij podzajtůma',
 'action-move-rootuserpages' => 'Překludzańy zajtůw uod užytkowńikůw (nale bes jeich podzajtůw)',
+'action-movefile' => 'przećepańe tygo plika',
 'action-upload' => 'wćepńyńćo tygo plika',
 'action-reupload' => 'nadpisańo tygo plika',
 'action-reupload-shared' => 'nadpisańo tygo plika we wspůlnym repozytorjům',
@@ -1204,7 +1232,7 @@ $1',
 'nchanges' => '$1 {{PLURAL:$1|pomjyńańe|pomjyńańa|pomjyńań}}',
 'recentchanges' => 'Ńydowno půmjyńane',
 'recentchanges-legend' => 'Uopcyje ńydowno půmjyńanych',
-'recentchanges-summary' => 'Ta zajta předstawjo historyjo uostatńich půmjyńań na tyj wiki',
+'recentchanges-summary' => 'Ta zajta ukozuje gyszichta uostatńich půmjyńań na tyj wiki.',
 'recentchanges-feed-description' => 'Dowej pozůr na půmjyńane na uostatku na tyj wiki.',
 'recentchanges-label-newpage' => 'Tym sprowjyńym stworzůno nowa zajta',
 'recentchanges-label-minor' => 'To je ńywjelge sprowjyńy',
@@ -1284,6 +1312,9 @@ Přelyź na zajta [[Special:NewFiles|galeryje nowych plikůw]], coby uobejzdře
 'filetype-unwanted-type' => "'''\".\$1\"''' ńy je zalecanym typym plika. Preferowane sům pliki we {{PLURAL:\$3|formaće|formatach}} \$2.",
 'filetype-banned-type' => "'''\".\$1\"''' je ńydozwolůnym typym plika. Dopuščalne sům pliki we {{PLURAL:\$3|formaće|formatach}} \$2.",
 'filetype-missing' => 'Plik ńy mo rozšyřyńo (np. ".jpg").',
+'empty-file' => 'Plik kery wćepałżeś je pusty.',
+'file-too-large' => 'Plik kery wćepałżeś je za srogi.',
+'filename-tooshort' => 'Mjano plika je za krůtkje.',
 '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.',
@@ -1306,13 +1337,14 @@ Idź nazod i wćepej tyn plik pod inkšym mjanym. [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'Tyn plik je kopjům {{PLURAL:$1|plika|nastypujůncych plikůw:}}',
 'file-deleted-duplicate' => 'Identyczny plik jak tyn plik ([[:$1]]) zostoł wyćepany. Sprowdź historyja wyćepań tamtygo plika ńim wćepńesz go nazod.',
 'uploadwarning' => 'Uostřežyńe uo wćepywańu',
-'savefile' => 'Naškryflej plik',
+'savefile' => 'Spamjyntej plik',
 'uploadedimage' => 'wćepano "[[$1]]"',
-'overwroteimage' => 'wćepano nowšo wersyjo "[[$1]]"',
+'overwroteimage' => 'wćepano nowszo wersyjo "[[$1]]"',
 'uploaddisabled' => 'Wćepywanie sam plikůw je zawarte',
 'uploaddisabledtext' => 'Wćepywańe plikůw je zawarte.',
 'uploadscripted' => 'Tyn plik zawjyro kod HTML abo skrypt kery može zostać felerńe zinterpretowany bez přyglůndarka internetowo.',
 'uploadvirus' => 'W tym pliku je wirus! Ščygůuy: $1',
+'upload-source' => 'Plik zdrzůdłowy',
 'sourcefilename' => 'Mjano oryginalne:',
 'destfilename' => 'Mjano docylowe:',
 'upload-maxfilesize' => 'Maksymalny rozmior plika: $1',
@@ -1404,9 +1436,9 @@ Niżyj sům informacyje ze [$2 zajty popisu] tygo pliku.',
 'filedelete-nofile-old' => "Ńy ma sam zarchiwizowanyj wersje '''$1''' o atrybutach jake žeś podou.",
 'filedelete-otherreason' => 'Inkšy powůd:',
 'filedelete-reason-otherlist' => 'Inkszy powůd',
-'filedelete-reason-dropdown' => '* Nojčynstše powody wyćepańa
-** Narušyńy praw autorskych
-** Kopja plika kery juž sam jest',
+'filedelete-reason-dropdown' => '* Nojczynstsze powody wyćepańa
+** Naruszyńy praw autorskych
+** Kopja plika kery już sam jest',
 'filedelete-edit-reasonlist' => 'Sprowjańe powodůw wyćepańo zajty',
 
 # MIME search
@@ -1545,7 +1577,7 @@ Zajta uznawano je za ujydnoznačńajůnco kej zawiyro šablůn uokreślůny we [
 'specialloguserlabel' => 'Užytkowńik:',
 'speciallogtitlelabel' => 'Titel:',
 'log' => 'Register dźołano',
-'all-logs-page' => 'Wšyjstkie uoperacyje',
+'all-logs-page' => 'Wszyjstke uoperacyje',
 'alllogstext' => 'Wspůlny rejer wszyjstkych typůw uoperacyji do {{SITENAME}}.
 Możesz zawyńźić liczba wyńikůw wybjerajůnc typ rejeru, mjano użytkowńika abo titel zajty (wjelge a mołe buchsztaby majům znoczyńy).',
 'logempty' => 'Ńy ma wpisůw we rejeře',
@@ -1558,15 +1590,16 @@ Możesz zawyńźić liczba wyńikůw wybjerajůnc typ rejeru, mjano użytkowńik
 'prevpage' => 'Popředńo zajta ($1)',
 'allpagesfrom' => 'Zajty začynojůnce śe na:',
 'allpagesto' => 'Zajty uo titlach kere na zadku majům:',
-'allarticles' => 'Wšyskie zajty',
-'allinnamespace' => 'Wšyjstke zajty (we přestřyńi mjan $1)',
-'allnotinnamespace' => 'Wšyjstke zajty (ino bes přestřyńi mjan $1)',
-'allpagesprev' => 'Popředńo',
+'allarticles' => 'Wszyske zajty',
+'allinnamespace' => 'Wszyjstke zajty (we przestrzyńi mjan $1)',
+'allnotinnamespace' => 'Wszyjstke zajty (ino bes przestrzyńi mjan $1)',
+'allpagesprev' => 'Poprzedńo',
 'allpagesnext' => 'Nastympno',
 'allpagessubmit' => 'Ukoż',
-'allpagesprefix' => 'Pokož artikle s prefiksym:',
-'allpagesbadtitle' => 'Podane mjano je felerne, zawjera prefiks mjyndzyprojektowy abo mjyndzyjynzykowy. Može uůne tyž zawjerać jako buchštaba abo inkše znaki, kerych ńy wolno užywać we titlach.',
-'allpages-bad-ns' => '{{GRAMMAR:MS.lp|{{SITENAME}}}} ńy mo přestřyńi mjan „$1”.',
+'allpagesprefix' => 'Ukoż artikle s prefiksym:',
+'allpagesbadtitle' => 'Podane mjano je felerne, zawjera prefiks mjyndzyprojektowy abo mjyndzyjynzykowy. Może uůne tyż zawjerać jako buchsztaba abo inksze znaki, kerych ńy wolno używać we mjanach.',
+'allpages-bad-ns' => '{{GRAMMAR:MS.lp|{{SITENAME}}}} ńy mo przestrzyńi mjan „$1”.',
+'allpages-hide-redirects' => 'Ukoż pukńyńća',
 
 # Special:Categories
 'categories' => 'Kategoryje',
@@ -1596,22 +1629,30 @@ Uobsůgiwane protokoły: <tt>$1</tt>',
 'listusers-submit' => 'Pokož',
 'listusers-noresult' => 'Ńy znejdźůno žodnygo užytkowńika.',
 
+# Special:ActiveUsers
+'activeusers-hidebots' => 'Schrůń boty',
+'activeusers-hidesysops' => 'Schrůń adminy',
+'activeusers-noresult' => 'Ńy sům używacze.',
+
 # Special:Log/newusers
 'newuserlogpage' => 'Nowe użytkowniki',
 'newuserlogpagetext' => 'To je rejer uostatńo utworzůnych kůnt użytkowńikůw',
 
 # Special:ListGroupRights
-'listgrouprights' => 'UprawÅ\84\84o grup užytkowńikůw',
+'listgrouprights' => 'UprawÅ\84\84o grup użytkowńikůw',
 'listgrouprights-summary' => 'Půńiży znojdowo śe spis grup użytkowńikůw zdefińjowanych na tyj wiki, s wyszczygůlńyńym przidźelůnych im prow dostympu.
 Sprowdź zajta [[{{MediaWiki:Listgrouprights-helppage}}|s dodatkowymi informacjami]] uo uprowńyńach użytkowńikůw.',
+'listgrouprights-key' => '* <span class="listgrouprights-granted">Dane uprawńyńy</span>
+* <span class="listgrouprights-revoked">Uodebrane uprawńyńy</span>',
 'listgrouprights-group' => 'Grupa',
 'listgrouprights-rights' => 'Uprawńyńo',
-'listgrouprights-helppage' => 'Help:UprawÅ\84\84o grup užytkowńikůw',
-'listgrouprights-members' => '(lista čuůnkůw grupy)',
+'listgrouprights-helppage' => 'Help:UprawÅ\84\84o grup użytkowńikůw',
+'listgrouprights-members' => '(listo człůnkůw grupy)',
 'listgrouprights-addgroup' => 'Idźe dodać do {{PLURAL:$2|grupy|grup}}: $1',
 'listgrouprights-removegroup' => 'Idźe wyćepać s {{PLURAL:$2|grupy|grup}}: $1',
 'listgrouprights-addgroup-all' => 'Idźe dodać do kożdyj grupy',
 'listgrouprights-removegroup-all' => 'Idźe wyćepać s wszyjstkich grup',
+'listgrouprights-addgroup-self' => 'Je mogebny dać swe konto do {{PLURAL:$2|grupy|grup:}} $1',
 
 # E-mail user
 'mailnologin' => 'Brak adresu',
@@ -1621,9 +1662,15 @@ Sprowdź zajta [[{{MediaWiki:Listgrouprights-helppage}}|s dodatkowymi informacja
 'emailpagetext' => 'Możesz użyć půńiższygo formularza, coby wysłać wjadůmość e-brif do tygo użytkowńika.
 Adres e-brifa, kery zostoł bez Ćebje wkludzůny we [[Special:Preferences|Twojich sztalowańach]], pojawi śe we polu „Uod”, bez cůż uodbjorca bydźe můg Ći uodpedźeć.',
 'usermailererror' => 'Moduu uobsůgi počty zwrůćiu feler:',
-'defemailsubject' => 'Wjadůmość uod {{GRAMMAR:D.pl|{{SITENAME}}}}',
+'defemailsubject' => '{{SITENAME}} - e-brif uod używacza "$1"',
+'usermaildisabled' => 'E-brif używacza ńy załůnczony',
 'noemailtitle' => 'Brak adresu e-brif',
-'noemailtext' => 'Tyn užytkowńik ńy podou poprawnygo adresu e-brif, albo zadecydowou, co ńy chce uotřimywać wjadůmośći e-brif uod inkšych užytkowńikůw',
+'noemailtext' => 'Tyn używacz ńy podoł dobrygo e-brifa, abo zadecydowoł, co ńy chce uotrzimywać wjadůmośći e-brif uod inkszych używaczy.',
+'nowikiemailtitle' => 'E-brify ńyzwolone',
+'nowikiemailtext' => 'Tyn sprowjorz ńy chcy e-brifůw uod inkszych używaczy.',
+'emailtarget' => 'Podej adresata',
+'emailusername' => 'Mjano używacza:',
+'emailusernamesubmit' => 'Poślij',
 'email-legend' => 'Wyślij e-brif ku inkszymu użytkowńikowi {{GRAMMAR:MS.lp|{{SITENAME}}}}',
 'emailfrom' => 'Uod:',
 'emailto' => 'Ku:',
@@ -1724,9 +1771,9 @@ Pomoc:
 'deletecomment' => 'Čymu:',
 'deleteotherreason' => 'Inkšy powůd:',
 'deletereasonotherlist' => 'Inkszy powůd',
-'deletereason-dropdown' => '* Nojčynstše přičyny wyćepańa
+'deletereason-dropdown' => '* Nojczynstsze prziczyny wyćepańa
 ** Prośba autora
-** Narušyńy praw autorskych
+** Naruszyńy praw autorskych
 ** Wandalizm',
 'delete-edit-reasonlist' => 'Sprowjańe listy powodůw wyćepańo zajty',
 'delete-toobig' => 'Ta zajta mo fest dugo historyja sprowjyń, wjyncyj jak $1 {{PLURAL:$1|půmjyńańy|půmjyńańo|půmjyńań}}.
@@ -1903,7 +1950,7 @@ $1',
 'nolinkshere' => "Žodno zajta ńy je adrésowana do '''[[:$1]]'''.",
 'nolinkshere-ns' => "Žodno zajta ńy je adresowano do '''[[:$1]]''' we wybrany přestřyni mjan.",
 'isredirect' => 'překerowujůnca zajta',
-'istemplate' => 'douůnčona šablôna',
+'istemplate' => 'dołůnczony muster',
 'isimage' => 'Link do plika',
 'whatlinkshere-prev' => '{{PLURAL:$1|popředńe|popředńe $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|nastympne|nastympne $1}}',
@@ -2072,7 +2119,7 @@ Wybjer inkše mjano.',
 'movepage-page-moved' => 'Zajta $1 uostoła przekludzůno ku $2.',
 'movepage-page-unmoved' => 'Mjana zajty $1 ńy idźe půmjyńić na $2.',
 'movepage-max-pages' => 'Przekludzůnych uostało $1 {{PLURAL:$1|zajta|zajty|zajtůw}}. Wjynkszyj liczby ńy idźe przekludźić automatyczńy.',
-'movelogpage' => 'Přećepńynte',
+'movelogpage' => 'Przećepńynte',
 'movelogpagetext' => 'Uoto lista zajtůw, kere uostatńo zostouy přećepane.',
 'movereason' => 'Čymu:',
 'revertmove' => 'cofej',
@@ -2779,7 +2826,7 @@ Naškryflej sam mjano plika bez prefiksu „{{ns:file}}:”.',
 'specialpages-group-login' => 'Lůgowańy / rejerowańy',
 'specialpages-group-changes' => 'Pomjyńane na uostatku a rejery',
 'specialpages-group-media' => 'Pliki',
-'specialpages-group-users' => 'Užytkowńiki i uprawńyńa',
+'specialpages-group-users' => 'Użytkowńiki i uprawńyńa',
 'specialpages-group-highuse' => 'Zajty čynsto užywane',
 'specialpages-group-pages' => 'Zajty',
 'specialpages-group-pagetools' => 'Nořyńdźa zajtůw',
index 5c6f837..bed45fd 100644 (file)
@@ -86,7 +86,7 @@ $messages = array(
 'tog-hidepatrolled' => 'அண்மைய மாற்றங்களில் பலமுறை பார்வையிட்ட தொகுப்புகளை மறைக்கவும்',
 'tog-newpageshidepatrolled' => 'பலமுறை பார்வையிட்ட பக்கங்களைப் புதியபக்கங்களின் பட்டியலில் காட்டவேண்டாம்.',
 'tog-extendwatchlist' => 'அனைத்து பொருத்தமான மாற்றங்களைக் காட்டுமாறு கவனிப்புப் பட்டியலை விரிவாக்கு',
-'tog-usenewrc' => 'à®®à¯\87à®®à¯\8dபà®\9fà¯\81தà¯\8dதபà¯\8dபà®\9fà¯\8dà®\9f à®\85ணà¯\8dà®®à¯\88ய à®®à®¾à®±à¯\8dà®±à®\99à¯\8dà®\95ளà¯\8d (ஜாவாஸ்கிரிப்ட் தேவை)',
+'tog-usenewrc' => 'à®\85ணà¯\8dà®®à¯\88ய à®®à®¾à®±à¯\8dà®±à®\99à¯\8dà®\95ளà¯\8d à®®à®±à¯\8dà®±à¯\81à®®à¯\8d à®\95வனிபà¯\8dபà¯\81பà¯\8d à®ªà®\9fà¯\8dà®\9fியலà¯\8d à®ªà®\95à¯\8dà®\95தà¯\8dதிலà¯\8d à®®à®¾à®±à¯\8dà®±à®\99à¯\8dà®\95ளà¯\88 à®ªà®\95à¯\8dà®\95தà¯\8dதà¯\88 à®ªà¯\8aà®±à¯\81தà¯\8dதà¯\81 à®\95à¯\81à®´à¯\81வாà®\95à¯\8dà®\95à¯\81 (ஜாவாஸ்கிரிப்ட் தேவை)',
 'tog-numberheadings' => 'தலைப்புகளுக்கு தானியங்கி இலக்கமிடு',
 'tog-showtoolbar' => 'கருவிப் பட்டையைக் காட்டு (ஜாவாஸ்கிரிப்ட் தேவை)',
 'tog-editondblclick' => 'இரட்டைச் சொடுக்கில் பக்கங்களைத் தொகு (ஜாவாஸ்கிரிப்ட் தேவை)',
@@ -698,9 +698,8 @@ $1 பயனரையோ அல்லது வேறு [[{{MediaWiki:Grouppage
 இந்த புதிய கணக்கிற்கான கடவுச்சொல்லை புகுபதிகை செய்தவுடன் மாற்றிக்கொள்ளவும் ''[[Special:ChangePassword|கடவுச்சொல்லை மாற்று]]''.",
 'newarticle' => '(புதிது)',
 'newarticletext' => 'ஒரு இணைப்பினூடாக நீங்கள் வந்துள்ள இப்பக்கம் இன்னும் உருவாக்கப்படவில்லை. பக்கத்தை உருவாக்குவதற்குக் கீழேயுள்ள கட்டத்துள் தட்டச்சிடத் தொடங்குங்கள். (மேலதிக விபரங்களுக்கு [[{{MediaWiki:Helppage}}|உதவிப் பக்கத்தைப்]] பார்க்கவும்). நீங்கள் தவறுதலாக இங்கே வந்திருந்தால், உங்கள் உலாவியின் பின் செல்வதற்கான பொத்தானைச் சொடுக்கவும்.',
-'anontalkpagetext' => "----''தாங்கள், தமிழ் விக்கிப்பீடியாவின் பயனர் கணக்கு உருவாக்காத புதியவராகவோ அல்லது பயனர் கணக்கு உருவாக்கி, புகுபதிகை செய்ய மறந்த நிலையில் இப்பக்கத்திற்கு வந்தவராகவோ இருக்கலாம். தற்போதைய நிலையில் அடையாளம் காணமுடியாதவராக தாங்கள் இருப்பதால், தங்களைத் தாங்கள் உபயோகித்த இணைய விதிமுறை இலக்கம் (I.P.Number)கொண்டு அடையாளப்படுத்த வேண்டியுள்ளது. இந்த நிலையைத் தவிர்க்கத் தமிழ் விக்கிப்பீடியாவில் தங்களுக்கென ஒரு பயனர் பக்கத்தை உருவாக்கிக் கொள்ளலாம். இந்தப் பயனர் பக்கத்தின் உரையாடல் பக்கம் தங்களுடன் தொடர்பு கொள்வதற்கும், கருத்துப் பரிமாற்றத்திற்கும் உதவியாக இருக்கும். 
-
-தங்களுக்காக ஒரு பயனர் பக்கம் உருவாக்கிக் கொள்வது என்பது மிகவும் எளிதானது. [[Special:UserLogin/signup|இங்கு தங்களுக்கான புதிய கணக்கொன்றைத் தொடங்கி]] உங்களுக்கான பயனர் பக்கத்தை உருவாக்கிக் கொள்ள வேண்டுகிறோம், அல்லது [[Special:UserLogin|புகுபதிகை]] செய்திட வேண்டுகிறோம்.''",
+'anontalkpagetext' => "----''இது இன்னும் கணக்கொன்று ஏற்படுத்தாத அல்லது வழமையாக பயனர் கணக்கை பயன்படுத்தாத பயனர்களுக்குரிய கலந்துரையாடல் பக்கமாகும். அதனால் நாங்கள் இவரை அடையாளம் காண்பதற்கு எண்சார்ந்த ஐபி முகவரியைப் பயன்படுத்த வேண்டியதாய் இருக்கின்றது. இவ்வாறான ஐபி முகவரிகள் பல பயனர்களினால் பகிர்ந்துகொள்ளப்படலாம்.
+நீங்கள் ஒரு முகவரியற்ற பயனராயிருந்து, தொடர்பற்ற கருத்துக்கள் உங்களைக் குறித்துச் சொல்லப்பட்டிருப்பதாக நீங்கள் உணர்ந்தால், முகவரியற்ற ஏனைய பயனர்களுடனான குழப்பங்களை எதிர்காலத்தில் தவிர்ப்பதற்கு, தயவுசெய்து [[Special:UserLogin/signup|புதிய கணக்கொன்றை ஏற்படுத்துங்கள்]] அல்லது [[Special:UserLogin|புகுபதிகை]] செய்யுங்கள்.''",
 'noarticletext' => 'இப் பக்கத்தில் தற்பொழுது உள்ளடக்கம் எதுவுமில்லை. நீங்கள் இப்பக்க [[Special:Search/{{PAGENAME}}|தலைப்பை வேறு பக்கங்களில் தேடவோ]] அல்லது [{{fullurl:{{FULLPAGENAME}}|action=edit}} இப்பக்கத்தை தொகுக்கவோ] முடியும்.',
 'noarticletext-nopermission' => 'தற்பொழுது இப்பக்கத்தில் உரை எதுவும் இல்லை.
 நீங்கள் [[Special:Search/{{PAGENAME}}|பக்கத் தலைப்பை வைத்து]] அல்லது மற்ற பக்கங்களில்,
@@ -995,7 +994,7 @@ $1",
 'mergelogpagetext' => 'பின்வருவது அண்மையில் செய்யப்பட்ட பக்க வரலாறு இணைப்புகளின் பட்டியலாகும்.',
 
 # Diffs
-'history-title' => '"$1" பக்கத்தின் திருத்த வரலாறு',
+'history-title' => 'திருத்த வரலாறு - "$1"',
 'difference-multipage' => 'பக்கங்களுக்கு இடையேயான வேறுபாடு',
 'lineno' => 'வரிசை $1:',
 'compareselectedversions' => 'தெரிவு செய்யப்பட்ட பதிப்புக்களை ஒப்பிடவும்',
@@ -1960,7 +1959,7 @@ $1',
 'mywatchlist' => 'என் கவனிப்புப் பட்டியல்',
 'watchlistfor2' => '$1 பயனரின் ($2)',
 'nowatchlist' => 'உங்களுடைய கவனிப்புப் பட்டியலில் ஒரு விடயமும் இல்லை.',
-'watchlistanontext' => 'à®\89மதà¯\81 à®\95வனிபà¯\8dபà¯\81பà¯\8d à®ªà®\9fà¯\8dà®\9fியலà¯\88 à®ªà®¾à®°à¯\8dà®\95 à®\85லà¯\8dலதà¯\81 à®¤à¯\8aà®\95à¯\81à®\95à¯\8dà®\95 à®\85à®°à¯\81ளà¯\8d à®\95à¯\82à®°à¯\8dநà¯\8dதà¯\81 $1.',
+'watchlistanontext' => 'à®\89à®\99à¯\8dà®\95ளà¯\8d à®\95வனிபà¯\8dபà¯\81பà¯\8d à®ªà®\9fà¯\8dà®\9fியலà¯\88பà¯\8d à®ªà®¾à®°à¯\8dà®\95à¯\8dà®\95 à®\85லà¯\8dலதà¯\81 à®¤à¯\8aà®\95à¯\81à®\95à¯\8dà®\95 à®\85à®°à¯\81ளà¯\8d à®\95à¯\82à®°à¯\8dநà¯\8dதà¯\81 $1 à®\9aà¯\86யà¯\8dயà¯\81à®\99à¯\8dà®\95ளà¯\8d.',
 'watchnologin' => 'புகுபதிகை செய்யப்படவில்லை.',
 'watchnologintext' => 'உங்கள் கவனிப்புப் பட்டியலில் திருத்தம் செய்வதற்கு, நீங்கள்[[Special:UserLogin|புகுபதிகை செய்திருக்கவேண்டும்]].',
 'addwatch' => 'கவனிப்புப் பட்டியலில் சேர்',
@@ -2144,7 +2143,7 @@ $NEWPAGE
 'undelete' => 'நீக்கப்பட்ட பக்கங்களைப் பார்',
 'undeletepage' => 'பார்ப்பதுடன், நீக்கப்பட்ட பக்கங்களை மீட்டெடு',
 'undeletepagetitle' => "'''[[:$1]] பக்கத்துக்கான நீக்கப்பட்ட திருத்தங்கள் கீழே தரப்பட்டுள்ளன'''.",
-'viewdeletedpage' => 'நà¯\80à®\95à¯\8dà®\95à¯\8dà®\95பà¯\8dபà®\9fà¯\8dà®\9f à®ªà®\95à¯\8dà®\95à®\99à¯\8dà®\95ளà¯\88பà¯\8d à®ªà®¾à®°à¯\8d',
+'viewdeletedpage' => 'நீக்கப்பட்ட பக்கங்களைப் பார்',
 'undeletepagetext' => 'பின்வரும் {{PLURAL:$1|பக்கம் நீக்கப்பட்டுவிட்டது எனினும் அது|$1 பக்கங்கள் நீக்கப்பட்டுவிட்டன எனினும் அவை}} காப்பகத்தில் உள்ளதால், மீட்டெடுக்க முடியும். காப்பகம் காலத்துக்குக் காலம் சுத்தப்படுத்தப்படலாம்.',
 'undelete-fieldset-title' => 'மாற்றங்களை பழையபடிக்கு கொண்டுவரவும்',
 'undeleteextrahelp' => "இந்த பக்கத்தின் முழு வரலாற்றை மீட்டமைக்க அனைத்து தேர்வுகளையும் நீக்கி விட்டு '''''{{int:undeletebtn}}''''' இதனை சொடுக்கவும்.
index f43a031..4ba5883 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Tetum (Tetun)
+/** Tetum (tetun)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index bb12ce2..534440a 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Tajik (Cyrillic script) (Тоҷикӣ)
+/** Tajik (Cyrillic script) (тоҷикӣ)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 325d0ea..2ab317f 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Tajik (Latin script) (Tojikī)
+/** Tajik (Latin script) (tojikī)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 9eae0b5..6a7aac9 100644 (file)
@@ -140,7 +140,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Ikubli ang napatrolyang mga pagbabagong nasa kamakailang mga pagbabago',
 'tog-newpageshidepatrolled' => 'Itago ang napatrolyang mga pahina mula talaan ng bagong pahina',
 'tog-extendwatchlist' => 'Palawigin ang talaan ng mga binabantayan upang maipakita ang lahat ng mga pagbabago, hindi lamang ang pinakakamakailan lamang',
-'tog-usenewrc' => 'Gamitin ang pinadagdagang huling binago (kailangan ng JavaScript)',
+'tog-usenewrc' => 'Mga pagbabago ng pangkat ayon sa pahina sa kamakailang mga pagbabago at bantayan (nangangailangan ng JavaScript)',
 'tog-numberheadings' => 'Automatikong bilangin ang mga pamagat',
 'tog-showtoolbar' => "Ipakita ang ''toolbar'' ng pagbabago (JavaScript)",
 'tog-editondblclick' => 'Magbago ng mga pahina sa dalawahang pagpindot (JavaScript)',
@@ -148,17 +148,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Payagan ang mga pagbabagong panseksyon sa pakanang pagpindot ng mga panseksyong pamagat (JavaScript)',
 'tog-showtoc' => 'Ipakita ang talaan ng mga nilalaman (sa mga pahinang may higit sa 3 punong pamagat)',
 'tog-rememberpassword' => 'Tandaan ang paglagda ko sa panghanaphanap na ito (pinakamarami na ang $1 {{PLURAL:$1|araw|mga araw}})',
-'tog-watchcreations' => 'Idagdag ang mga pahinang nilikha ko sa aking tala ng mga binabantayan',
-'tog-watchdefault' => 'Idagdag ang mga pahinang binago ko sa aking tala ng mga binabantayan',
-'tog-watchmoves' => 'Idagdag ang mga pahinang inilipat ko sa aking tala ng mga binabantayan',
-'tog-watchdeletion' => 'Idagdag mga pahinang ibinura ko sa aking tala ng mga binabantayan',
+'tog-watchcreations' => 'Idagdag sa aking tala ng mga binabantayan ang mga pahinang nilikha ko at mga talaksang ikinarga kong paitaas',
+'tog-watchdefault' => 'Idagdag sa aking tala ng mga binabantayan ang mga pahina at mga talaksang binago ko',
+'tog-watchmoves' => 'Idagdag sa aking tala ng mga binabantayan ang mga pahina at mga talaksang inilipat ko',
+'tog-watchdeletion' => 'Idagdag sa aking tala ng mga binabantayan ang mga pahina at mga talaksang binura ko',
 'tog-minordefault' => 'Markahan ang lahat ng pagbabago bilang maliit nang nakatakda',
 'tog-previewontop' => 'Ipakita ang paunang tingin bago ang kahon ng pagbabago',
 'tog-previewonfirst' => 'Ipakita ang paunang tingin sa unang pagbabago',
 'tog-nocache' => 'Huwag paganahin ang pagtatago ng pahinang pantingintingin',
-'tog-enotifwatchlistpages' => 'Padalhan ako ng e-liham kapag nabago ang isa sa mga pahinang binabantayan ko',
+'tog-enotifwatchlistpages' => 'Padalhan ako ng e-liham kapag nabago ang isa sa pahina o talaksang binabantayan ko',
 'tog-enotifusertalkpages' => 'Padalhan ako ng e-liham kapag binago ang aking pahina ng usapan',
-'tog-enotifminoredits' => 'Padalhan din ako ng e-liham para sa mga maliliit na pagbabago ng mga pahina',
+'tog-enotifminoredits' => 'Padalhan din ako ng e-liham para sa mga maliliit na mga pagbabago ng mga pahina at mga talaksan',
 'tog-enotifrevealaddr' => 'Ipakita ang aking direksiyong e-liham sa loob ng mga e-liham ng pagpapahayag',
 'tog-shownumberswatching' => 'Ipakita ang bilang ng mga nagbabantay na tagagamit',
 'tog-oldsig' => 'Umiiral na lagda:',
@@ -492,6 +492,8 @@ Pakiulat ito sa isang [[Special:ListUsers/sysop|tagapangasiwa]], na ibinibigay a
 'cannotdelete' => 'Hindi mabura ang pahina o talaksang "$1".
 Maaaring ibinura na ito ng iba.',
 'cannotdelete-title' => 'Hindi maibura ang pahinang "$1"',
+'delete-hook-aborted' => 'Pinigil ng sungkit ang pagbura.
+Walang ibinigay na paliwanag.',
 'badtitle' => 'Hindi kanais-nais na pamagat',
 'badtitletext' => 'Ang hiniling na pamagat ng pahina ay hindi katanggap-tanggap, wala, o isang may-maling kawing na pamagat na pangugnayang-wika (interwika) o pangugnayang wiki (interwiki).
 Maaaring naglalaman ito ng isa o higit pang mga panitik (karakter) na hindi maaaring gamitin para sa mga pamagat.',
@@ -528,6 +530,8 @@ Ang ibinigay na dahilan ay ''$2''.",
 Ang tagapangasiwang nagkandado nito ay nag-alok ng ganitong paliwanag: "$3".',
 'invalidtitle-knownnamespace' => 'Hindi katanggap-tanggap na pamagat na may puwang na pampangalang "$2" at tekstong "$3"',
 'invalidtitle-unknownnamespace' => 'Hindi katanggap-tanggap na pamagat na mayroong hindi nalalamang bilang na pampuwang ng pangalan na $1 at tekstong "$2"',
+'exception-nologin' => 'Hindi nakalagda',
+'exception-nologin-text' => 'Ang pahina o kilos na ito ay nangangailangan ng paglagda mo sa wiking ito.',
 
 # Virus scanner
 'virus-badscanner' => "Masamang kompigurasyon: hindi kilalang tagahagilap (iskaner) ng birus: ''$1''",
@@ -894,7 +898,7 @@ Ang pinakahuling entrada sa talaan ay ibinigay sa baba para sa inyong pagsasangg
 'nocreatetitle' => 'May hangganan ang paglikha ng pahina',
 'nocreatetext' => 'Naglagay ng hangganan (restriksyon/limitasyon) ang {{SITENAME}} sa kakayahang makalikha ng bagong mga pahina.
 Maaari kang bumalik at magbago ng isang umiiral na pahina, o kaya [[Special:UserLogin|lumagda o lumikha ng kuwenta/akawnt]].',
-'nocreate-loggedin' => 'Walang kang pahintulot para lumikha ng bagong mga pahina.',
+'nocreate-loggedin' => 'Wala kang pahintulot para lumikha ng bagong mga pahina.',
 'sectioneditnotsupported-title' => 'Hindi sinusuportahan ang pagpapatnugot ng seksyon',
 'sectioneditnotsupported-text' => 'Hindi sinusuportahan ang pagpapatnugot ng seksyon sa pahinang ito.',
 'permissionserrors' => 'Mga kamalian sa mga pahintulot',
@@ -2840,7 +2844,7 @@ Sagipin mo ito sa iyong kompyuter at papaitaas na ikarga ito rito.',
 'tooltip-upload' => 'Simulan ang pagkarga',
 'tooltip-rollback' => 'Ibinabalik ng "Pagulungin pabalik sa dati" ang (mga) pagbabago sa pahinang ito patungo sa huling bersyon ng huling tagapagambag sa pamamagitan ng isang pindot lamang.',
 'tooltip-undo' => 'Ibinabalit ng "Ibalik" ang pagbabagong ito at binubuksan ang pahinang gawaan ng pagbabago sa anyong paunang-tingin muna.  Nagpapahintulot na makapagdagdag ng dahilan sa buod.',
-'tooltip-preferences-save' => 'Itakda ang mga kagustuhan',
+'tooltip-preferences-save' => 'Sagipin ang mga nais',
 'tooltip-summary' => 'Magbigay ng maikling buod',
 
 # Stylesheets
@@ -3809,6 +3813,8 @@ O kaya, maaari mong gamitin ang maginhawang pormularyo sa ibaba. Ang iyong pagpu
 'api-error-empty-file' => 'Walang laman ang ipinasa mong talaksan.',
 'api-error-emptypage' => 'Lumilikha ng bago, hindi pinapayagan ang mga pahinang walang laman.',
 'api-error-fetchfileerror' => 'Panloob na kamalian: may naganap na pagkakamali habang kinukuha ang talaksan.',
+'api-error-fileexists-forbidden' => 'Isang talaksan na may pangalang "$1" ang umiiral na, at hindi maaaring patungan ng muling pagsusulat.',
+'api-error-fileexists-shared-forbidden' => 'Isang talaksang may pangalang "$1" ang umiiral na sa loob ng repository ng pinagsasaluhang talaksan, at hindi maaaring patungan ng muling pagsusulat.',
 'api-error-file-too-large' => 'Napakalaki ng talaksang ipinasa mo.',
 'api-error-filename-tooshort' => 'Napakaiksi ng pangalan ng talaksan.',
 'api-error-filetype-banned' => 'Ipinagbabawal ang ganitong uri ng talaksan.',
index 5b7947c..98ff709 100644 (file)
@@ -39,14 +39,14 @@ $messages = array(
 'tog-hideminor' => 'Охоминә дәгишонәдә гәдә дәгишон нишо мәдә.',
 'tog-hidepatrolled' => 'Нујә дәгишон сијоһијәдә дәвинә кардә быә дәгишон нишо мәкә.',
 'tog-newpageshidepatrolled' => 'Нијони огәтеј ноғо доә быә сәһифон бә тожә сәһифон сијоһиәдә',
-'tog-usenewrc' => 'Охоминә дәгишон ән чокә сијоһи око дој (гәрәке JavaScript)',
+'tog-usenewrc' => 'Охоминә дәгишон сәһифәдә ијән ноғо доә сијоһијәдә дәгишон бә дәстон ҹо кардеј (гәрәке JavaScript)',
 'tog-numberheadings' => 'Автоматик башлығон нумрәләмиш быкә',
 'tog-showtoc' => 'Мындәриҹоти сијоһи нишо быдә (3 сәрловһәсә веј быә сәһифон)',
-'tog-watchcreations' => 'Зијод кардеј чымы офәјә быә сәһифон бә ноғо доә сијоһи',
-'tog-watchdefault' => 'Зијод кардеј демы дәгиш кардә быә сәһифон бә ноғо доә сијоһи',
-'tog-watchmoves' => 'Зијод кардеј ном дәгиш кардә быә сәһифон бә ноғо доә сијоһи',
-'tog-watchdeletion' => 'Ð\97иÑ\98од ÐºÐ°Ñ\80деÑ\98 Ñ\81Ó\99һиÑ\84он комон аз рәдд кардәме бә ноғо доә сијоһи',
-'tog-enotifwatchlistpages' => 'Ноғо доә сијоһиәдә кејнә сәһифон дәгиш бәбен бәмы е-номә бывығанд',
+'tog-watchcreations' => 'Ð\97иÑ\98од ÐºÐ°Ñ\80деÑ\98 Ñ\87Ñ\8bмÑ\8b Ð¾Ñ\84Ó\99Ñ\98Ó\99 Ð±Ñ\8bÓ\99 Ñ\81Ó\99һиÑ\84он Ð¸Ñ\98Ó\99н Ñ\84аÑ\98лон Ð±Ó\99 Ð½Ð¾Ò\93о Ð´Ð¾Ó\99 Ñ\81иÑ\98оһи',
+'tog-watchdefault' => 'Ð\97иÑ\98од ÐºÐ°Ñ\80деÑ\98 Ð´ÐµÐ¼Ñ\8b Ð´Ó\99гиÑ\88 ÐºÐ°Ñ\80дÓ\99 Ð±Ñ\8bÓ\99 Ñ\81Ó\99һиÑ\84он Ð¸Ñ\98Ó\99н Ñ\84аÑ\98лон Ð±Ó\99 Ð½Ð¾Ò\93о Ð´Ð¾Ó\99 Ñ\81иÑ\98оһи',
+'tog-watchmoves' => 'Зијод кардеј фајлон ијән ном дәгиш кардә быә сәһифон бә ноғо доә сијоһи',
+'tog-watchdeletion' => 'Ð\97иÑ\98од ÐºÐ°Ñ\80деÑ\98 Ñ\84аÑ\98лон Ð¸Ñ\98Ó\99н Ñ\81Ó\99һиÑ\84он, комон аз рәдд кардәме бә ноғо доә сијоһи',
+'tog-enotifwatchlistpages' => 'Ноғо доә сијоһиәдә кејнә сәһифон ја фајлон дәгиш бәбен бәмы е-номә бывығанд',
 'tog-watchlisthideown' => 'Чымы дәгишон ноғо доә сијһиәдә нијо кардеј',
 'tog-watchlisthidebots' => 'Нијо кардеј ботон дәгишон ноғо доә сијоһиәдә',
 'tog-watchlisthideminor' => 'Нијо кардеј гәдә дәгишон ноғо доә сијоһиәдә',
@@ -479,7 +479,7 @@ $messages = array(
 
 # Preferences page
 'preferences' => 'Чичсә печыније',
-'mypreferences' => 'Ð\9fеÑ\87Ñ\8bниÑ\98е',
+'mypreferences' => 'Ð\9aÑ\83кон',
 'prefsnologin' => 'Ыштәни едаштәнијоне',
 'prefsnologintext' => 'Шымә бәбе <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} ыштәни едәштән]</span> бо иштирокәкә пеғәндон дәгиш кардеј.',
 'changepassword' => 'Пароли дәгиш кардеј',
@@ -509,7 +509,7 @@ $messages = array(
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|дәгиши|дәгишон}}',
 'recentchanges' => 'Ән нујә дәгишон',
-'recentchanges-legend' => 'Ó\98н Ð½Ñ\83Ñ\98Ó\99 Ð´Ó\99гиÑ\88он Ð¿ÐµÑ\87Ñ\8bниÑ\98е',
+'recentchanges-legend' => 'Ó\98н Ð½Ñ\83Ñ\98Ó\99 Ð´Ó\99гиÑ\88он ÐºÑ\83кон',
 'recentchanges-summary' => 'Тәмшо быкән бы сәһифәдә че вики охоминә дәгишон нишо доә быән.',
 'recentchanges-feed-description' => 'Ым каналәдә быә охонә дәгишон дығғәтәдә огәт.',
 'recentchanges-label-newpage' => 'Де ым дәгиши тожә сәһифә сохтә бе',
@@ -737,7 +737,7 @@ $messages = array(
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Шымә иштирокәкә сәһифә',
 'tooltip-pt-mytalk' => 'Шымә мызокирон сәһифә',
-'tooltip-pt-preferences' => 'ШÑ\8bмÓ\99 Ð¿ÐµÑ\87Ñ\8bниÑ\98Ó\99Ñ\98оне',
+'tooltip-pt-preferences' => 'ШÑ\8bмÓ\99 ÐºÑ\83кон',
 'tooltip-pt-watchlist' => 'Сәһифон сијоһи, конҹо шымә де дығғәти дијә кардејдәјон бә дәгишон',
 'tooltip-pt-mycontris' => 'Шымә гәнҹон сијоһи',
 'tooltip-pt-login' => 'Ијо бәбе ыштәни ғејд кардовнијеј системәдә, интаси ым һукман ни',
index 0b9588d..5e103d6 100644 (file)
@@ -508,7 +508,7 @@ Ko e ʻuhinga loka ko e $1 ia.",
 
 # Recent changes
 'recentchanges' => 'Ngaahi toki liliu',
-'recentchangestext' => 'Fakatotolo ʻa e ngaahi toki liliu ki he wiki ʻi he pēsí ni.',
+'recentchanges-summary' => 'Fakatotolo ʻa e ngaahi toki liliu ki he wiki ʻi he pēsí ni.',
 'rcnote' => 'ʻOku ʻasi ʻi lalo ʻa e liliu fakamuimui ʻe <strong>$1</strong> lolotonga ʻa e ʻaho fakamuimui ʻe <strong>$2</strong> mei he taimi: $4, $5',
 'rcnotefrom' => "ʻOku ʻasi ʻi lalo ʻa e liliu talu mei '''$2''' (aʻu ki he '''$1''').",
 'rclistfrom' => 'ʻAsi mai ha ngaahi liliu foʻou ʻo kamata mei he $1',
index c7ba9d4..308fc66 100644 (file)
@@ -714,8 +714,8 @@ Verilen sebep: ''$2''.",
 # Login and logout pages
 'logouttext' => "'''Oturumu kapattınız.'''
 
-Şimdi kimliğinizi belirtmeksizin {{SITENAME}} sitesini kullanmaya devam edebilirsiniz, ya da [[Special:UserLogin|yeniden oturum açabilirsiniz]] (ister aynı kullanıcı adıyla, ister başka bir kullanıcı adıyla).
-Web tarayıcınızın önbelleğini temizleyene kadar bazı sayfalar sanki hala oturumunuz açıkmış gibi görünebilir.",
+Şimdi kimliğinizi belirtmeksizin {{SITENAME}} sitesini kullanmaya devam edebilirsiniz ya da aynı kullanıcı adıyla ya da ister başka bir kullanıcı adıyla [[Special:UserLogin|yeniden oturum açabilirsiniz]].
+Tarayıcınızın önbelleğini temizleyene kadar bazı sayfalar sanki hâlâ oturumunuz açıkmış gibi görünebilir.",
 'welcomecreation' => '== Hoş geldin, $1! ==
 
 Hesabınız açıldı.
@@ -1258,6 +1258,7 @@ Gezinti bağlantılarının bu sütunu sıfırlayacağını unutmayın.',
 
 # Diffs
 'history-title' => '"$1" sayfasının geçmişi',
+'difference-title' => '"$1" sayfasının sürümleri arasındaki fark',
 'difference-multipage' => '(Sayfalar arasındaki fark)',
 'lineno' => '$1. satır:',
 'compareselectedversions' => 'Seçilen sürümleri karşılaştır',
@@ -2142,8 +2143,9 @@ Ayrıca [[Special:WantedCategories|İstenen kategoriler]]'e bakınız.",
 'linksearch-pat' => 'Motif ara:',
 'linksearch-ns' => 'Ad alanı:',
 'linksearch-ok' => 'Ara',
-'linksearch-text' => '"*.wikipedia.org" gibi jokerler kullanılabilir.<br />
-Desteklenen iletişim kuralları: <tt>$1</tt>',
+'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).',
 'linksearch-line' => "$1'e $2'den bağlantı verilmiş",
 'linksearch-error' => 'Jokerler sadece ana makine adının başında görünebilir.',
 
index 611be9e..af7b3b2 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Tatar (Latin script) (Tatarça)
+/** Tatar (Latin script) (tatarça)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
index 8334af7..6dd36aa 100644 (file)
@@ -524,6 +524,7 @@ Please check if you want to create/edit this page.',
 'nextn-title' => 'Дараазында $1 {{PLURAL:$1|бижик|бижик}}',
 'shown-title' => 'Арынга $1 {{PLURAL:$1|түңнелди|түңнелди}} көргүзери',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) көөрү',
+'searchmenu-exists' => "'''Бо викиде \"[[:\$1]]\" деп арын бар.'''",
 'searchmenu-new' => "'''Бо викиде «[[:$1]]» арынны чогаадыры'''",
 'searchhelp-url' => 'Help:Допчузу',
 'searchprofile-articles' => 'үндезин арыннар',
@@ -537,6 +538,7 @@ Please check if you want to create/edit this page.',
 'searchprofile-everything-tooltip' => 'Шупту арыннардан дилээри (сумележиишкиннерден база)',
 'searchprofile-advanced-tooltip' => 'Айыткан аттар делгемнеринден дилээри',
 'search-result-size' => '$1 ({{PLURAL:$2|$2 сөс}})',
+'search-redirect' => '(шигледир $1)',
 'search-section' => '(«$1» деп салбыр)',
 'search-suggest' => 'Силер «$1» деп бодадыңар чадавас',
 'search-interwiki-more' => '(артык)',
@@ -668,6 +670,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'recentchanges-feed-description' => 'Бо агымда викиниң сөөлгү өскерлиишкиннерин көөрү.',
 'recentchanges-label-newpage' => 'Бо өскерлиишкин чаа арынны чогааткан.',
 'recentchanges-label-minor' => 'Бо өскерлиишкин бичии-дир',
+'recentchanges-label-bot' => 'Бо эдилгени робот күүсетти.',
 'recentchanges-label-unpatrolled' => 'Бо өскерлиишкин истенмейн каан',
 'rclistfrom' => 'Starting from $1 чаа өскерлиишкиннерни көргүзери',
 'rcshowhideminor' => 'Бичии өскерлиишкиннерни $1',
@@ -683,7 +686,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'show' => 'көргүзери',
 'minoreditletter' => 'б',
 'newpageletter' => 'Ч',
-'boteditletter' => 'б',
+'boteditletter' => 'р',
 'number_of_watching_users_pageview' => '[$1 хайгаараар {{PLURAL:$1|ажыглакчы}}]',
 'newsectionsummary' => '/* $1 */ чаа салбыр',
 'rc-enhanced-expand' => 'Тодаларны көргүзери (JavaScript херек)',
@@ -815,6 +818,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'longpages' => 'Узун арыннар',
 'protectedpages' => 'Камгалаган арыннар',
 'listusers' => 'Ажыглакчылар даңзызы',
+'usereditcount' => '$1 {{PLURAL:$1|эдилге}}',
 'newpages' => 'Чаа арыннар',
 'newpages-username' => 'Ажыглакчының ады:',
 'ancientpages' => 'Эң эрги арыннар',
@@ -889,6 +893,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'watchthispage' => 'Бо арынны хайгаараары',
 'unwatch' => 'Хайгааравас',
 'unwatchthispage' => 'Бо арынны хайгаарабас',
+'watchlist-details' => 'Not counting talk pages, хайгаарал даңзыңарда {{PLURAL:$1|$1 арын}} бар.',
 'wlshowlast' => 'Сөөлү $1 шак болгаш $2 хүн иштинде $3 көргүзери',
 'watchlist-options' => 'Хайгаарал даңзының эдиглери',
 
@@ -898,6 +903,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 
 'enotif_newpagetext' => 'Бо чаа арын-дыр.',
 'enotif_impersonal_salutation' => '{{grammar:genitive|{{SITENAME}}}} ажыглакчызы',
+'changed' => 'өскертти',
 'enotif_anon_editor' => 'ат эвес ажыглакчы $1',
 
 # Delete
index e348dad..51e38fd 100644 (file)
@@ -354,7 +354,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Приховувати патрульовані редагування у списку нових редагувань',
 'tog-newpageshidepatrolled' => 'Приховувати патрульовані сторінки у списку нових сторінок',
 'tog-extendwatchlist' => 'Розширений список спостереження, що містить усі зміни, а не лише останню',
-'tog-usenewrc' => 'Ð\92икоÑ\80иÑ\81Ñ\82овÑ\83ваÑ\82и Ð¿Ð¾ÐºÑ\80аÑ\89ений Ñ\81пиÑ\81ок Ð¾Ñ\81Ñ\82аннÑ\96Ñ\85 Ð·Ð¼Ñ\96н (JavaScript)',
+'tog-usenewrc' => 'Ð\9dа Ñ\81Ñ\82оÑ\80Ñ\96нкаÑ\85 Ð¾Ñ\81Ñ\82аннÑ\96Ñ\85 Ð·Ð¼Ñ\96н Ñ\82а Ð² Ñ\81пиÑ\81кÑ\83 Ñ\81поÑ\81Ñ\82еÑ\80еженнÑ\8f Ð³Ñ\80Ñ\83пÑ\83ваÑ\82и Ñ\80едагÑ\83ваннÑ\8f (поÑ\82Ñ\80Ñ\96бен JavaScript)',
 'tog-numberheadings' => 'Автоматично нумерувати заголовки',
 'tog-showtoolbar' => 'Показувати панель інструментів (JavaScript)',
 'tog-editondblclick' => 'Редагувати сторінки при подвійному клацанні мишкою (JavaScript)',
@@ -362,17 +362,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Редагувати розділи при клацанні правою кнопкою мишки на заголовку (JavaScript)',
 'tog-showtoc' => 'Показувати зміст (для сторінок з більш ніж трьома заголовками)',
 'tog-rememberpassword' => "Запам'ятати мій обліковий запис для цього браузера (на строк не більше $1 {{PLURAL:$1|дня|днів}})",
-'tog-watchcreations' => 'Додавати створені мною сторінки до мого списку спостереження',
-'tog-watchdefault' => 'Додавати змінені мною сторінки до мого списку спостереження',
-'tog-watchmoves' => 'Додавати перейменовані мною сторінки до мого списку спостереження',
-'tog-watchdeletion' => 'Додавати вилучені мною сторінки до мого списку спостереження',
+'tog-watchcreations' => 'Додавати створені мною сторінки і завантажені мною файли до мого списку спостереження',
+'tog-watchdefault' => 'Додавати змінені мною сторінки та файли до мого списку спостереження',
+'tog-watchmoves' => 'Додавати перейменовані мною сторінки та файли до мого списку спостереження',
+'tog-watchdeletion' => 'Додавати вилучені мною сторінки та файли до мого списку спостереження',
 'tog-minordefault' => 'Спочатку позначати всі зміни незначними',
 'tog-previewontop' => 'Показувати попередній перегляд перед вікном редагування, а не після',
 'tog-previewonfirst' => 'Показувати попередній перегляд під час першого редагування',
 'tog-nocache' => 'Відключити кешування сторінок браузером',
-'tog-enotifwatchlistpages' => 'Повідомляти електронною поштою, коли сторінка з мого списку спостереження змінилася',
+'tog-enotifwatchlistpages' => 'Повідомляти електронною поштою при зміні сторінки або файлу з мого списку спостереження',
 'tog-enotifusertalkpages' => 'Повідомляти електронною поштою про зміну моєї сторінки обговорення',
-'tog-enotifminoredits' => 'Надсилати мені електронного листа навіть при незначних редагуваннях',
+'tog-enotifminoredits' => 'Надсилати мені електронного листа навіть при незначних редагуваннях сторінок та файлів',
 'tog-enotifrevealaddr' => 'Показувати мою поштову адресу в повідомленнях',
 'tog-shownumberswatching' => 'Показувати кількість користувачів, які додали сторінку до свого списку спостереження',
 'tog-oldsig' => 'Існуючий підпис:',
@@ -712,6 +712,8 @@ $1',
 'cannotdelete' => 'Неможливо вилучити сторінку або файл "$1".
 Можливо, її (його) вже вилучив хтось інший.',
 'cannotdelete-title' => 'Не вдається видалити сторінку «$1»',
+'delete-hook-aborted' => 'Вилучення було скасовано процедурою-перехоплювачем. 
+Ніяких поясненень надано не було.',
 'badtitle' => 'Неприпустима назва',
 'badtitletext' => 'Запитана назва сторінки неправильна, порожня, або неправильно зазначена міжмовна чи міжвікі назва.
 Можливо, в назві використовуються недопустимі символи.',
@@ -741,6 +743,9 @@ $1',
 'filereadonlyerror' => "Неможливо змінити файл «$1» тому, що файловий архів «$2» перебуває в режимі «лише для читання».
 Адміністратор, що заблокував його, залишив таке пояснення: «''$3''».",
 'invalidtitle-knownnamespace' => 'Неприйнятна назва у просторі імен «$2» і текстом «$3»',
+'invalidtitle-unknownnamespace' => 'Неправильний заголовок з невідомим номером простору імен ($1) і текстом: «$2»',
+'exception-nologin' => 'Не виконано вхід',
+'exception-nologin-text' => 'Ця сторінка чи дія потребує, щоб Ви ввійшли до цієї Вікі.',
 
 # Virus scanner
 'virus-badscanner' => "Помилка налаштування: невідомий сканер вірусів: ''$1''",
@@ -837,6 +842,7 @@ $1',
 'invalidemailaddress' => 'Уведена адреса не може бути прийнята, бо вона не відповідає формату адрес електронної пошти.
 Будь ласка, введіть коректну адресу або залиште поле порожнім.',
 'cannotchangeemail' => 'У цій вікі не можна міняти свою адресу ел. пошти.',
+'emaildisabled' => 'Цей сайт не може надіслати електронні листи.',
 'accountcreated' => 'Обліковий запис створено.',
 'accountcreatedtext' => 'Обліковий запис для $1 створено.',
 'createaccount-title' => 'Створення облікового запису для {{SITENAME}}',
@@ -1118,6 +1124,7 @@ $2
 'edit-no-change' => 'Ваше редагування відхилене, оскільки в тексті не було зроблено змін.',
 'edit-already-exists' => 'Неможливо створити нову сторінку.
 Вона вже існує.',
+'defaultmessagetext' => 'Текст «за замовчування»',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Увага: Ця сторінка містить дуже багато викликів ресурсомістких функцій.
@@ -1133,7 +1140,12 @@ $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' => 'Виявлено незакритий тег (такий, як <pre>)',
+'parser-unstrip-recursion-limit' => 'Перевищено межу вкладеної рекурсії ($1) для парсера.',
 
 # "Undo" feature
 'undo-success' => 'Редагування може бути скасовано.
@@ -1312,7 +1324,7 @@ $1",
 
 # Diffs
 'history-title' => '$1: Історія змін',
-'difference-title' => '$1: Відмінності між версіями',
+'difference-title' => 'Відмінності між версіями «$1»',
 'difference-title-multipage' => 'Різниця між сторінками «$1» та «$2»',
 'difference-multipage' => '(Різниця між сторінками)',
 'lineno' => 'Рядок $1:',
@@ -1897,6 +1909,7 @@ $1',
 'backend-fail-internal' => 'Сталася невідома помилка у сховищі рушія "$1".',
 'backend-fail-contenttype' => 'Не вдалося визначити тип вмісту файла, щоб зберегти його в "$1".',
 'backend-fail-batchsize' => 'Серверна частина отримала блок із $1 {{PLURAL:$1|файлової операції|файлових операцій}}; обмеження складає $2 {{PLURAL:$2|файлову операцію|файлові операції|файлових операцій}}.',
+'backend-fail-usable' => 'Файл $1 не може бути записано через недостатні повноваження чи відсутність каталогів (контейнерів).',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Не вдалося підключитися до бази даних журналу для сховища «$1».',
@@ -2021,6 +2034,10 @@ $1',
 Додаткову інформацію можна знайти на [$2 сторінці опису файлу].',
 'sharedupload-desc-here' => 'Цей файл з $1 і може використовуватися в інших проектах.
 Далі наведена інформація з його [$2 сторінки опису].',
+'sharedupload-desc-edit' => 'Цей файл з $1 і може використовуватися в інших проектах. 
+Його опис можна відредагувати [$2 на відповідній сторінці тут].',
+'sharedupload-desc-create' => 'Цей файл з $1 і може використовуватися в інших проектах. 
+Його опис можна зробити [$2 на відповідній сторінці тут].',
 'filepage-nofile' => 'Не існує файлу з такою назвою.',
 'filepage-nofile-link' => 'Не існує файлу з такою назвою, але ви можете [$1 завантажити його].',
 'uploadnewversion-linktext' => 'Завантажити нову версію цього файлу',
@@ -2156,11 +2173,11 @@ $1',
 'wantedfiletext-nocat' => 'Наступні файли використовують, але вони не існують. У цей список можуть помилково потрапити файли, що знаходяться на зовнішніх сховищах. Такі хибні моменти помічаються <del>перекреслюванням</del>.',
 'wantedtemplates' => 'Необхідні шаблони',
 'mostlinked' => 'Сторінки, на які найбільше посилань',
-'mostlinkedcategories' => 'Ð\9aаÑ\82егоÑ\80Ñ\96Ñ\97, Ð½Ð° Ñ\8fкÑ\96 Ð½Ð°Ð¹Ð±Ñ\96лÑ\8cÑ\88е Ð¿Ð¾Ñ\81иланÑ\8c',
+'mostlinkedcategories' => 'Ð\9dайбÑ\96лÑ\8cÑ\88Ñ\96 ÐºÐ°Ñ\82егоÑ\80Ñ\96Ñ\97',
 'mostlinkedtemplates' => 'Найуживаніші шаблони',
 'mostcategories' => 'Статті з найбільшою кількістю категорій',
 'mostimages' => 'Найуживаніші зображення',
-'mostrevisions' => 'СÑ\82аÑ\82Ñ\82Ñ\96 Ð· Ð½Ð°Ð¹Ð±Ñ\96лÑ\8cÑ\88оÑ\8e ÐºÑ\96лÑ\8cкÑ\96Ñ\81Ñ\82Ñ\8e Ñ\80едакÑ\86Ñ\96й',
+'mostrevisions' => 'СÑ\82аÑ\82Ñ\82Ñ\96 Ð· Ð½Ð°Ð¹Ð±Ñ\96лÑ\8cÑ\88оÑ\8e ÐºÑ\96лÑ\8cкÑ\96Ñ\81Ñ\82Ñ\8e Ñ\80едагÑ\83ванÑ\8c',
 'prefixindex' => 'Покажчик за початком назв сторінок',
 'prefixindex-namespace' => 'Усі сторінки з префіксом (простір назв $1)',
 'shortpages' => 'Короткі статті',
@@ -2214,6 +2231,7 @@ $1',
 Ви можете відфільтрувати результати за типом журналу, іменем користувача (враховується регістр) або зазначеною сторінкою (також враховується регістр).',
 'logempty' => 'В журналі немає подібних записів.',
 'log-title-wildcard' => 'Знайти заголовки, що починаються з цих символів',
+'showhideselectedlogentries' => 'Показати/приховати виділені записи журналу',
 
 # Special:AllPages
 'allpages' => 'Усі сторінки',
@@ -2234,6 +2252,7 @@ $1',
 'allpages-hide-redirects' => 'Сховати перенаправлення',
 
 # SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'Ви переглядаєте кешовану версію сторінки, яка могла бути оновлена $1 тому.',
 'cachedspecial-viewing-cached-ts' => 'Ви переглядаєте кешовану версію сторінки, яка могла втратити актуальність',
 'cachedspecial-refresh-now' => 'Показати останні',
 
@@ -2418,7 +2437,7 @@ $UNWATCHURL
 'deletepage' => 'Вилучити сторінку',
 'confirm' => 'Підтвердження',
 'excontent' => 'зміст: «$1»',
-'excontentauthor' => 'змÑ\96Ñ\81Ñ\82 Ð±Ñ\83в: Â«$1» (Ñ\94диним Ð°Ð²Ñ\82оÑ\80ом Ð±Ñ\83в [[Special:Contributions/$2|$2]])',
+'excontentauthor' => 'змÑ\96Ñ\81Ñ\82 Ð±Ñ\83в: Â«$1» (Ñ\94диний Ð°Ð²Ñ\82оÑ\80: [[Special:Contributions/$2|$2]])',
 'exbeforeblank' => 'зміст до очистки: «$1»',
 'exblank' => 'стаття була порожньою',
 'delete-confirm' => 'Вилучення «$1»',
@@ -2597,8 +2616,8 @@ $1',
 'contribsub2' => 'Внесок $1 ($2)',
 'nocontribs' => 'Редагувань, що задовольняють заданим умовам не знайдено.',
 'uctop' => ' (остання)',
-'month' => 'Ð\92Ñ\96д Ð¼Ñ\96Ñ\81Ñ\8fÑ\86Ñ\8f (Ñ\96 Ñ\80анÑ\96Ñ\88е):',
-'year' => 'Ð\92Ñ\96д Ñ\80окÑ\83 (Ñ\96 Ñ\80анÑ\96Ñ\88е):',
+'month' => 'Ð\94о Ð¼Ñ\96Ñ\81Ñ\8fÑ\86Ñ\8f (вклÑ\8eÑ\87но):',
+'year' => 'Ð\94о Ñ\80окÑ\83 (вклÑ\8eÑ\87но):',
 
 'sp-contributions-newbies' => 'Показати лише внесок з нових облікових записів',
 'sp-contributions-newbies-sub' => 'Внесок новачків',
@@ -4012,6 +4031,8 @@ MediaWiki поширюється в надії, що вона буде кори
 'version-software' => 'Установлене програмне забезпечення',
 'version-software-product' => 'Продукт',
 'version-software-version' => 'Версія',
+'version-entrypoints' => 'URL-адреса точки входу',
+'version-entrypoints-header-entrypoint' => 'Точка входу',
 'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
@@ -4174,6 +4195,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' => 'Цей тип файлів заборонений.',
@@ -4212,4 +4235,6 @@ MediaWiki поширюється в надії, що вона буде кори
 'duration-centuries' => '$1 {{PLURAL:$1|століття|століття|століть}}',
 'duration-millennia' => '$1 {{PLURAL:$1|тисячоліття|тисячоліття|тисячоліть}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Не вдалося одержати блокування на сервері $1.',
 );
index c1ac736..7804bdb 100644 (file)
@@ -301,7 +301,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Ẩn sửa đổi đã tuần tra trong trang thay đổi gần đây',
 'tog-newpageshidepatrolled' => 'Ẩn trang đã tuần tra trong danh sách các trang mới',
 'tog-extendwatchlist' => 'Mở rộng danh sách theo dõi để hiển thị tất cả các thay đổi, chứ không chỉ các thay đổi gần đây',
-'tog-usenewrc' => 'Sử dụng Thay đổi gần đây nâng cao (cần JavaScript)',
+'tog-usenewrc' => 'Thu gọn các thay đổi theo trang trong thay đổi gần đây và danh sách theo dõi (cần JavaScript)',
 'tog-numberheadings' => 'Tự động đánh số các đề mục',
 'tog-showtoolbar' => 'Hiển thị thanh định dạng (JavaScript)',
 'tog-editondblclick' => 'Nhấn đúp để sửa đổi trang (JavaScript)',
@@ -309,17 +309,17 @@ $messages = array(
 'tog-editsectiononrightclick' => 'Cho phép sửa đổi đề mục bằng cách bấm chuột phải trên tên đề mục (JavaScript)',
 'tog-showtoc' => 'Hiển thị mục lục (cho trang có trên 3 đề mục)',
 'tog-rememberpassword' => 'Nhớ thông tin đăng nhập của tôi trong trình duyệt này (cho đến $1 ngày)',
-'tog-watchcreations' => 'Tự động theo dõi trang tôi viết mới',
-'tog-watchdefault' => 'Tự động theo dõi trang tôi sửa',
-'tog-watchmoves' => 'Tự động theo dõi trang tôi di chuyển',
-'tog-watchdeletion' => 'Tự động theo dõi trang tôi xóa',
+'tog-watchcreations' => 'Tự động theo dõi các trang tôi viết mới và các tập tin tôi tải lên',
+'tog-watchdefault' => 'Tự động theo dõi các trang và tập tin tôi sửa',
+'tog-watchmoves' => 'Tự động theo dõi các trang và tập tin tôi di chuyển',
+'tog-watchdeletion' => 'Tự động theo dõi các trang và tập tin tôi xóa',
 'tog-minordefault' => 'Mặc định đánh dấu tất cả sửa đổi của tôi là sửa đổi nhỏ',
 'tog-previewontop' => 'Hiển thị phần xem thử nằm trên hộp sửa đổi',
 'tog-previewonfirst' => 'Hiện xem thử tại lần sửa đầu tiên',
 'tog-nocache' => 'Không lưu trang trong bộ nhớ đệm trình duyệt',
-'tog-enotifwatchlistpages' => 'Gửi thư cho tôi khi có thay đổi tại trang tôi theo dõi',
+'tog-enotifwatchlistpages' => 'Gửi thư cho tôi khi có thay đổi tại trang hoặc tập tin tôi theo dõi',
 'tog-enotifusertalkpages' => 'Gửi thư cho tôi khi có thay đổi tại trang thảo luận của tôi',
-'tog-enotifminoredits' => 'Gửi thư cho tôi cả những thay đổi nhỏ trong trang',
+'tog-enotifminoredits' => 'Gửi thư cho tôi cả những thay đổi nhỏ trong trang và tập tin',
 'tog-enotifrevealaddr' => 'Hiện địa chỉ thư điện tử của tôi trong thư thông báo',
 'tog-shownumberswatching' => 'Hiển thị số người đang xem',
 'tog-oldsig' => 'Chữ ký hiện tại:',
@@ -652,6 +652,8 @@ Xin hãy báo nó cho một [[Special:ListUsers/sysop|bảo quản viên]], tron
 'badarticleerror' => 'Không thể thực hiện được tác vụ như thế tại trang này.',
 'cannotdelete' => 'Không thể xóa trang hay tập tin “$1”. Có thể nó đã bị ai đó xóa rồi.',
 'cannotdelete-title' => 'Không thể xóa trang “$1”',
+'delete-hook-aborted' => 'Một phần bổ trợ phần mềm đã bỏ qua việc xóa này.
+Không có lý do nào được đưa ra.',
 'badtitle' => 'Tựa trang sai',
 'badtitletext' => 'Tựa trang yêu cầu không đúng, rỗng, hoặc là một liên kết ngôn ngữ hoặc liên kết wiki sai. Nó có thể chứa một hoặc nhiều ký tự mà tựa trang không thể sử dụng.',
 'perfcached' => 'Dữ liệu sau được lấy từ bộ nhớ đệm và có thể đã lỗi thời. Tối đa có sẵn {{PLURAL:$1|một kết quả|$1 kết quả}} trong bộ nhớ đệm.',
@@ -683,6 +685,8 @@ Lý do được cung cấp là ''$2''.",
 Bảo quản viên khóa nó đưa lý do là: “$3”.',
 'invalidtitle-knownnamespace' => 'Tựa trang không hợp lệ có không gian tên “$2” và văn bản “$3”',
 'invalidtitle-unknownnamespace' => 'Tựa trang không hợp lệ có không gian tên số $1 không rõ và văn bản “$2”',
+'exception-nologin' => 'Chưa đăng nhập',
+'exception-nologin-text' => 'Bạn cần phải đăng nhập để truy cập trang hoặc thực hiện tác vụ này tại wiki này.',
 
 # Virus scanner
 'virus-badscanner' => "Cấu hình sau: không nhận ra bộ quét virus: ''$1''",
@@ -4018,6 +4022,8 @@ Nếu không thì bạn có thể điền biểu mẫu đơn giản ở dưới.
 'api-error-empty-file' => 'Bạn đã gửi tập tin rỗng.',
 'api-error-emptypage' => 'Không cho phép tạo mới các trang rỗng.',
 'api-error-fetchfileerror' => 'Lỗi nội bộ: Việc tải tập tin bị thất bại.',
+'api-error-fileexists-forbidden' => 'Một tập tin với tên “$1” đã tồn tại; không thể ghi đè nó.',
+'api-error-fileexists-shared-forbidden' => 'Một tập tin với tên “$1” đã tồn tại ở kho tập tin dùng chung; không thể ghi đè nó.',
 'api-error-file-too-large' => 'Bạn đã gửi tập tin lớn quá hạn.',
 'api-error-filename-tooshort' => 'Tên tập tin ngắn quá.',
 'api-error-filetype-banned' => 'Kiểu tập tin này đã bị cấm.',
index 176c3f1..0185aeb 100644 (file)
@@ -10,6 +10,7 @@
  * @author 2Q
  * @author Andrijko Z.
  * @author Comp1089
+ * @author Paivud
  * @author Trần Nguyễn Minh Huy
  */
 
@@ -17,582 +18,783 @@ $fallback = 'fi';
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'Gạch chân liên kết:',
+'tog-underline' => 'Link underlining',
+
+'underline-always' => 'Alõzii',
+'underline-never' => 'Eb kõzniid',
 
 # Dates
-'january'       => 'janvaari',
-'february'      => 'fevraaľi',
-'march'         => 'martti',
-'april'         => 'aprilli',
-'may_long'      => 'mai',
-'june'          => 'juńi',
-'july'          => 'juľi',
-'august'        => 'augusti',
-'september'     => 'senťaabri',
-'october'       => 'okťaabri',
-'november'      => 'nojaabri',
-'december'      => 'dekaabri',
-'january-gen'   => 'janvaarii',
-'february-gen'  => 'fevraalii',
-'march-gen'     => 'martii',
-'april-gen'     => 'aprillii',
-'may-gen'       => 'maja',
-'june-gen'      => 'junii',
-'july-gen'      => 'juľii',
-'august-gen'    => 'augustii',
+'sunday' => 'Nätilpäivä',
+'monday' => 'Esmezarci',
+'tuesday' => 'Tõizarci',
+'wednesday' => 'Kõlmõzpäivä',
+'thursday' => 'Nelläzpäivä',
+'friday' => 'Viďďezpäivä',
+'saturday' => 'Laukopäivä',
+'sun' => 'Nät',
+'mon' => 'Esm',
+'tue' => 'Tõi',
+'wed' => 'Kõl',
+'thu' => 'Nel',
+'fri' => 'Viď',
+'sat' => 'Lau',
+'january' => 'janvaari',
+'february' => 'fevraaľi',
+'march' => 'martti',
+'april' => 'aprilli',
+'may_long' => 'mai',
+'june' => 'juńi',
+'july' => 'juľi',
+'august' => 'augusti',
+'september' => 'senťaabri',
+'october' => 'okťaabri',
+'november' => 'nojaabri',
+'december' => 'dekaabri',
+'january-gen' => 'janvaarii',
+'february-gen' => 'fevraalii',
+'march-gen' => 'martii',
+'april-gen' => 'aprillii',
+'may-gen' => 'maja',
+'june-gen' => 'junii',
+'july-gen' => 'juľii',
+'august-gen' => 'augustii',
 'september-gen' => 'senťaabrii',
-'october-gen'   => 'okťaabrii',
-'november-gen'  => 'nojaabrii',
-'december-gen'  => 'dekaabrii',
-'jan'           => 'janvaari',
-'feb'           => 'fevraali',
-'mar'           => 'martti',
-'apr'           => 'aprilli',
-'may'           => 'mai',
-'jun'           => 'juni',
-'jul'           => 'juľi',
-'aug'           => 'augusti',
-'sep'           => 'senťaabri',
-'oct'           => 'okťaabri',
-'nov'           => 'nojaabri',
-'dec'           => 'dekaabri',
+'october-gen' => 'okťaabrii',
+'november-gen' => 'nojaabrii',
+'december-gen' => 'dekaabrii',
+'jan' => 'janvaari',
+'feb' => 'fevraali',
+'mar' => 'martti',
+'apr' => 'aprilli',
+'may' => 'mai',
+'jun' => 'juni',
+'jul' => 'juľi',
+'aug' => 'augusti',
+'sep' => 'senťaabri',
+'oct' => 'okťaabri',
+'nov' => 'nojaabri',
+'dec' => 'dekaabri',
 
 # Categories related messages
-'pagecategories'         => '{{PLURAL:$1|Gruppa|Gruppad}}',
-'category_header'        => 'Tšuľľed, kummad õvad gruppaz "$1"',
-'subcategories'          => 'Alagruppad',
-'hidden-categories'      => '{{PLURAL:$1|Salautõttu gruppa|Salautõtud gruppad}}',
-'category-subcat-count'  => '{{PLURAL:$2|Senez gruppaz on ainult vahtiaava alagruppa.|{{PLURAL:$1|Vahtiaava alagruppa kuulub|Vahtiaava $1 alagruppaa kuuluvad}} sihee gruppaa. Alagruppaďďe tšisla gruppaza on $2.}}',
-'category-article-count' => '{{PLURAL:$2|Senez gruppaz on ainult vahtiaava tšültši.|{{PLURAL:$1|Vahtiaava alagruppa kuulub|Vahtiaava $1 tšültšiä kuuluvad}} sihee gruppaa. Tšültšije tšisla gruppaza on $2.}}',
+'pagecategories' => '{{PLURAL:$1|Gruppa|Gruppad}}',
+'category_header' => 'Cuľľed, kummad õvad gruppaz "$1"',
+'subcategories' => 'Alagruppad',
+'category-media-header' => 'Mediafailid, kummad õvad gruppaz "$1"',
+'category-empty' => "''Kase gruppa on tühjä.''",
+'hidden-categories' => '{{PLURAL:$1|Salautõttu gruppa|Salautõtud gruppad}}',
+'category-subcat-count' => '{{PLURAL:$2|Senez gruppaz on ainult vahtiaava alagruppa.|{{PLURAL:$1|Vahtiaava alagruppa kuulub|Vahtiaava $1 alagruppaa kuuluvad}} sihee gruppaa. Alagruppaďďe cisla gruppaza on $2.}}',
+'category-article-count' => '{{PLURAL:$2|Senez gruppaz on ainult vahtiaava cülci.|{{PLURAL:$1|Vahtiaava alagruppa kuulub|Vahtiaava $1 tšültšiä kuuluvad}} sihee gruppaa. Cülcije cisla gruppaza on $2.}}',
 'listingcontinuesabbrev' => 'ladvaub',
 
-'newwindow'  => '(avaub uuvvõza akkunaza)',
-'cancel'     => 'Otmeńoit',
-'mytalk'     => 'Minu juttu',
+'about' => 'Täätühsed',
+'newwindow' => '(avaub uuvvõza akkunaza)',
+'cancel' => 'Otmeńoit',
+'mypage' => 'Minu cülci',
+'mytalk' => 'Minu juttu',
 'navigation' => 'Valittsõmin',
+'and' => '&#32;ja',
 
 # Cologne Blue skin
 'qbfind' => 'Etsi',
-
-'errorpagetitle'   => 'Vika',
-'returnto'         => 'Mee takaz tšüľľelle $1.',
-'tagline'          => 'Lähe: {{SITENAME}}',
-'help'             => 'Api',
-'search'           => 'Ettsü',
-'searchbutton'     => 'Etsi',
-'searcharticle'    => 'Mee',
-'history'          => 'Tšüľľee istori',
-'history_short'    => 'Istori',
-'printableversion' => 'Petšatoittõva verzija',
-'permalink'        => 'Postojannoi linkki',
-'edit'             => 'Muuttaa',
-'create'           => 'Loo tšültši',
-'editthispage'     => 'Muutu sitä tšültšiä',
-'delete'           => 'Pühi',
-'protect'          => 'Varjaa',
-'protect_change'   => 'muutu',
-'newpage'          => 'Uusi tšültši',
-'talkpage'         => 'Juttu senessä tšüľľessä',
+'qbedit' => 'Muuttaa',
+'qbpageoptions' => 'Kase cülci',
+'qbspecialpages' => 'Osoobenoid cüľľed',
+'faq' => 'FAQ',
+'faqpage' => 'Project:FAQ',
+
+# Vector skin
+'vector-action-addsection' => 'Vassõn teema',
+'vector-action-delete' => 'Pühi',
+'vector-action-move' => 'Liikut',
+'vector-action-protect' => 'Varjaa',
+'vector-view-create' => 'Loo cülci',
+'vector-view-edit' => 'Muuttaa',
+'vector-view-history' => 'Istori',
+'vector-view-view' => 'Lukõa',
+'vector-view-viewsource' => 'Lähtekoodi',
+'actions' => 'Tekod',
+'namespaces' => 'Nimiruumid',
+
+'errorpagetitle' => 'Vika',
+'returnto' => 'Mee takaz cüľľelle $1.',
+'tagline' => 'Lähe: {{SITENAME}}',
+'help' => 'Api',
+'search' => 'Ettsü',
+'searchbutton' => 'Etsi',
+'go' => 'Mee',
+'searcharticle' => 'Mee',
+'history' => 'Cüľľee istori',
+'history_short' => 'Istori',
+'printableversion' => 'Pecatoittõva verzija',
+'permalink' => 'Postojannoi linkki',
+'view' => 'Prestavleńńõd',
+'edit' => 'Muuttaa',
+'create' => 'Loo cülci',
+'editthispage' => 'Muutu sitä cülciä',
+'delete' => 'Pühi',
+'deletethispage' => 'Pühi kase cülci',
+'protect' => 'Varjaa',
+'protect_change' => 'muutu',
+'newpage' => 'Uusi cülci',
+'talkpage' => 'Juttu senessä cüľľessä',
 'talkpagelinktext' => 'Juttu',
-'personaltools'    => 'Õmad tööriisõd',
-'talk'             => 'Juttu',
-'views'            => 'Prestavleńńõd',
-'toolbox'          => 'Tööriisõd',
-'otherlanguages'   => 'Muilla tšeelillä',
-'redirectedfrom'   => '(Mešaitõttu tšüľľeltä $1)',
-'redirectpagesub'  => 'Mešaituztšültši',
-'lastmodifiedat'   => 'Viimõin muutuz: $2 $1',
-'jumpto'           => 'Hüppä:',
+'specialpage' => 'Osoobennoi cülci',
+'personaltools' => 'Õmad tööriisõd',
+'talk' => 'Juttu',
+'views' => 'Prestavleńńõd',
+'toolbox' => 'Tööriisõd',
+'otherlanguages' => 'Muilla ceelillä',
+'redirectedfrom' => '(Mešaitõttu cüľľeltä $1)',
+'redirectpagesub' => 'Mešaituzcülci',
+'lastmodifiedat' => 'Viimõin muutuz: $2 $1',
+'jumpto' => 'Hüppä:',
 'jumptonavigation' => 'valittsõmisiisõ',
-'jumptosearch'     => 'ettsüse',
+'jumptosearch' => 'ettsüse',
 
 # 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'            => 'Tääteja {{GRAMMAR:elative|{{SITENAME}}}}',
-'aboutpage'            => 'Project:Täätühsed',
-'copyright'            => 'Sisälto on $1 litsentsii mukka svobodnoi.',
-'copyrightpage'        => '{{ns:project}}:Kopiraitti',
-'disclaimers'          => 'Tšeeltümin vassamizõõ',
-'disclaimerpage'       => 'Project:Tšeeltümin vassamizõõ',
-'edithelp'             => 'Muutuzavid',
-'edithelppage'         => 'Help:Kui muuttaa tšültšiä',
-'helppage'             => 'Help:Sisälto',
-'mainpage'             => 'Esitšültši',
+'aboutsite' => 'Tääteja {{GRAMMAR:elative|{{SITENAME}}}}',
+'aboutpage' => 'Project:Täätühsed',
+'copyright' => 'Sisälto on $1 litsentsii mukka svobodnoi.',
+'copyrightpage' => '{{ns:project}}:Kopiraitti',
+'currentevents' => 'Nücüizõd noovosťi',
+'currentevents-url' => 'Project:Nücüizõd noovosťi',
+'disclaimers' => 'Ceeltümin vassamizõõ',
+'disclaimerpage' => 'Project:Ceeltümin vassamizõõ',
+'edithelp' => 'Muutuzavid',
+'edithelppage' => 'Help:Kui muuttaa cülciä',
+'helppage' => 'Help:Sisälto',
+'mainpage' => 'Esicülci',
 'mainpage-description' => 'Esicülci',
-'privacy'              => 'Salaštrahuituz',
-'privacypage'          => 'Project:Salaštrahuituz',
+'portal' => 'Foorum',
+'portal-url' => 'Project:Foorum',
+'privacy' => 'Salaštrahuituz',
+'privacypage' => 'Project:Salaštrahuituz',
 
-'badaccess' => 'Lupa eeltistü',
+'badaccess' => 'Lupa ceeltistü',
 
-'retrievedfrom'       => 'Jältšinnü adresissa "$1"',
-'youhavenewmessages'  => 'Teill on $1 ($2).',
-'newmessageslink'     => 'Uusiit zapiskoit',
+'ok' => 'OK',
+'retrievedfrom' => 'Jälcinnü adresissa "$1"',
+'youhavenewmessages' => 'Teill on $1 ($2).',
+'newmessageslink' => 'Uusiit zapiskoit',
 'newmessagesdifflink' => 'viimõin muutuz',
-'editsection'         => 'muuttaa',
-'editold'             => 'muuttaa',
-'editlink'            => 'muuttaa',
-'viewsourcelink'      => 'lähtekoodi',
-'editsectionhint'     => 'Muutta alajakkoa $1',
-'toc'                 => 'Sisälto',
-'showtoc'             => 'näüt väľľää',
-'hidetoc'             => 'salauta',
-'site-rss-feed'       => '$1-RSS-söötte',
-'site-atom-feed'      => '$1-Atom-söötte',
-'page-rss-feed'       => '"$1" RSS-söötte',
-'page-atom-feed'      => '"$1" Atom-söötte',
-'red-link-title'      => '$1 (tšültšiä ebõõ)',
+'editsection' => 'muuttaa',
+'editold' => 'muuttaa',
+'viewsourceold' => 'lähtekoodi',
+'editlink' => 'muuttaa',
+'viewsourcelink' => 'lähtekoodi',
+'editsectionhint' => 'Muutta alajakkoa $1',
+'toc' => 'Sisälto',
+'showtoc' => 'näüt väľľää',
+'hidetoc' => 'salauta',
+'site-rss-feed' => '$1-RSS-söötte',
+'site-atom-feed' => '$1-Atom-söötte',
+'page-rss-feed' => '"$1" RSS-söötte',
+'page-atom-feed' => '"$1" Atom-söötte',
+'red-link-title' => '$1 (cülciä ebõõ)',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main'     => 'Artikkeli',
-'nstab-user'     => 'Tšäüttijätšültši',
-'nstab-special'  => 'Osoobennoi tšültši',
-'nstab-project'  => 'Projektitšültši',
-'nstab-image'    => 'Faili',
+'nstab-main' => 'Artikkeli',
+'nstab-user' => 'Cäüttijäcülci',
+'nstab-special' => 'Osoobennoi cülci',
+'nstab-project' => 'Projekticülci',
+'nstab-image' => 'Faili',
+'nstab-mediawiki' => 'Ilmottamin',
 'nstab-template' => 'Šablooni',
 'nstab-category' => 'Gruppa',
 
 # General errors
-'missing-article'    => 'Tšüľľee sisältoa eb löütännü täätöbaazassa: $1 $2.
+'error' => 'Vika',
+'missing-article' => 'Cüľľee sisältoa eb löütännü täätöbaazassa: $1 $2.
 
-Ussassi se johtub ustaŕeloi sravńoi- vai istorilinkissä rootšittulõõ tšüľľelee.
+Ussassi se johtub ustaŕeloi sravńoi- vai istorilinkissä roocittulõõ cüľľelee.
 
-Kui tšüsümüssessä ebõõ rootšittu tšültši, võib õlla õlõttõ löütännü ošipkaa sistemalla. Õõ nii üvä ilmuttõma tšüľľee adressia vikii [[Special:ListUsers/sysop|praviťeľalõõ]].',
+Kui cüsümüssessä ebõõ roocittu cülci, võib õlla õlõttõ löütännü ošipkaa sistemalla. Õõ nii üvä ilmuttõma cüľľee adressia vikii [[Special:ListUsers/sysop|praviťeľalõõ]].',
 'missingarticle-rev' => '(verzija: $1)',
-'badtitletext'       => 'Tšüzüttü artikkelizagolofkka õli vilpilliin, tühjä vai väärii linkitettü tšeelijeväliin vai vikiiväliin linkki.',
-'viewsource'         => 'Lähtekoodi',
+'badtitletext' => 'Cüzüttü artikkelizagolofkka õli vilpilliin, tühjä vai väärii linkitettü ceelijeväliin vai vikiiväliin linkki.',
+'viewsource' => 'Lähtekoodi',
 
 # Login and logout pages
-'yourname'                => 'Tšäüttijänimi:',
-'yourpassword'            => 'Salasõna',
-'remembermypassword'      => 'Mäleht minuu (enintään $1 {{PLURAL:$1|päivä|päivää}})',
-'login'                   => 'Tširjut süäme',
-'nav-login-createaccount' => 'Tširjut süäme vai registriiroit tšäüttijässi',
-'userlogin'               => 'Tširjut süäme',
-'logout'                  => 'Tširjut uloz',
-'userlogout'              => 'Tširjut uloz',
-'nologin'                 => "Kui Teille veel ebõõ tšäüttijänimi, '''$1'''.",
-'nologinlink'             => 'võitta loovva luguu',
-'mailmypassword'          => 'Lähet uusi salasõna elektropoštiikaa',
+'yourname' => 'Cäüttijänimi:',
+'yourpassword' => 'Salasõna',
+'remembermypassword' => 'Mäleht minuu (enintään $1 {{PLURAL:$1|päivä|päivää}})',
+'login' => 'Cirjut süäme',
+'nav-login-createaccount' => 'Cirjut süäme vai registriiroit cäüttijässi',
+'userlogin' => 'Cirjut süäme',
+'userloginnocreate' => 'Cirjut süäme',
+'logout' => 'Cirjut uloz',
+'userlogout' => 'Cirjut uloz',
+'nologin' => "Kui Teille veel ebõõ cäüttijänimi, '''$1'''.",
+'nologinlink' => 'võitta loovva luguu',
+'gotaccountlink' => 'Cirjut süäme',
+'createaccountreason' => 'Süü:',
+'mailmypassword' => 'Lähet uusi salasõna elektropoštiikaa',
+'loginlanguagelabel' => 'Ceeli: $1',
+
+# Change password dialog
+'resetpass-submit-cancel' => 'Otmeńoit',
+
+# Special:PasswordReset
+'passwordreset-username' => 'Cäüttijänimi:',
+
+# Special:ChangeEmail
+'changeemail-newemail' => 'Vassõn e-mail:',
+'changeemail-cancel' => 'Otmeńoit',
 
 # Edit page toolbar
-'bold_sample'     => 'Pimmiä teksti',
-'bold_tip'        => 'Pimmiä teksti',
-'italic_sample'   => 'Kursiivoi teksti',
-'italic_tip'      => 'Kursiivi',
-'link_sample'     => 'Linkki',
-'link_tip'        => 'Sisipooliin linkki',
-'extlink_sample'  => 'http://www.example.com linki nimi',
-'extlink_tip'     => 'Eräpooliin linkki (mäleht http:// prefiksi)',
+'bold_sample' => 'Pimmiä teksti',
+'bold_tip' => 'Pimmiä teksti',
+'italic_sample' => 'Kursiivoi teksti',
+'italic_tip' => 'Kursiivi',
+'link_sample' => 'Linkki',
+'link_tip' => 'Sisipooliin linkki',
+'extlink_sample' => 'http://www.example.com linki nimi',
+'extlink_tip' => 'Eräpooliin linkki (mäleht http:// prefiksi)',
 'headline_sample' => 'Zagolofkka-teksti',
-'headline_tip'    => 'Zagolofkka',
-'nowiki_sample'   => 'Lissä formattimatoo teksti tänne',
-'nowiki_tip'      => 'Ignoriiroit viki formatti',
-'image_tip'       => 'Kuva',
-'media_tip'       => 'Faililinkki',
-'sig_tip'         => 'Alatširjutuz aikamerkikaa',
-'hr_tip'          => 'Gorizontalnoi viiru',
+'headline_tip' => 'Zagolofkka',
+'nowiki_sample' => 'Lissä formattimatoo teksti tänne',
+'nowiki_tip' => 'Ignoriiroit viki formatti',
+'image_tip' => 'Kuva',
+'media_tip' => 'Faililinkki',
+'sig_tip' => 'Alacirjutuz aikamerkikaa',
+'hr_tip' => 'Gorizontalnoi viiru',
 
 # Edit pages
-'summary'                          => 'Turvotuz:',
-'subject'                          => 'Teema:',
-'minoredit'                        => 'Kase on peeni muutuz',
-'watchthis'                        => 'Lissä kattsõspiiskaa',
-'savearticle'                      => 'Salvo tšültši',
-'preview'                          => 'Prestavleńńa',
-'showpreview'                      => 'Näüt prestavleńńa',
-'showdiff'                         => 'Näüt muutussõd',
-'anoneditwarning'                  => 'Että õlõ süämme tširjutõnnu. Teďďee IP-adressi tširjuttanes sene tšüľľee muutuzistorisõ.',
-'summary-preview'                  => 'Turvotuhsõ prestavleńńa',
-'newarticle'                       => '(Uusi)',
-'newarticletext'                   => 'Sitä tšültšiä veel ebõõ.
-Võitta loovva tšüľľee tširjuttamall alla õlõvasõõ tilaa. Kui että taho loovva [[{{MediaWiki:Helppage}}|tšültšiä]], menka takaz Web-brauzeraa "back"-napuukaa.',
-'noarticletext'                    => '{{GRAMMAR:inessive|{{SITENAME}}}} ebõõ sene nimissä tšültšiä.
-* Võid [[Special:Search/{{PAGENAME}}|ettsiä tšüľľee nimellä]] muilta tšüľľeltä.
-* Võid tširjuttõma uuvvõõ tšüľľee <span class="plainlinks">[{{fullurl:{{FULLPAGENAME}}|action=edit}} {{PAGENAME}}]</span>.',
-'previewnote'                      => "'''Kase on ainult prestavleńńa! Tšültšiä ebõõ veel salvotõttu!'''",
-'editing'                          => 'Muutun $1',
-'editingsection'                   => 'Muuttõmizõll on õsa tšüľľess $1',
-'copyrightwarning'                 => "Kõik {{SITENAME}}'lle formittu saatšid katsotaa julkaistussi $2 -litsentsi mukka ($1). Kui että taho, jot Teďďee tširjutussa muutõtaa armõttomassi ja svobodno tšävvää uuvvõllõõ, elä tširjuttõga.<br />Toož, Te luppattõ, jot tširjutittä Teďďee teksti ize, vai kopiiroizitta slobodnoissa tšüľľessä.<br />'''ELÄ TŠÄÜTTEGA TETŠEJÄÕIKUSÕKAA OĎĎÕLTUIT MAŤERIIT ILMA LUPPA!'''",
-'templatesused'                    => 'Sell tšüľľell {{PLURAL:$1|tšäütetüd šabloonid}}:',
-'templatesusedpreview'             => '{{PLURAL:$1|Šabloonid}} sellä prestavleńńalla:',
-'template-protected'               => '(oďďõttu)',
-'template-semiprotected'           => '(varjõttu anonüümeilt ja uusilt tšäüttijilt)',
-'hiddencategories'                 => 'Kase tšültši kuulub {{PLURAL:$1|vahtiaavaa salautõttuu gruppaa|vahtiaavii salautõttuisõõ gruppoisõõ}}:',
+'summary' => 'Turvotuz:',
+'subject' => 'Teema:',
+'minoredit' => 'Kase on peeni muutuz',
+'watchthis' => 'Lissä kattsõspiiskaa',
+'savearticle' => 'Salvo cülci',
+'preview' => 'Prestavleńńa',
+'showpreview' => 'Näüt prestavleńńa',
+'showdiff' => 'Näüt muutussõd',
+'anoneditwarning' => 'Että õlõ süämme cirjutõnnu. Teďďee IP-adressi cirjuttanes sene cüľľee muutuzistorisõ.',
+'summary-preview' => 'Turvotuhsõ prestavleńńa',
+'loginreqlink' => 'cirjut süäme',
+'newarticle' => '(Uusi)',
+'newarticletext' => 'Sitä cülciä veel ebõõ.
+Võitta loovva cüľľee cirjuttamall alla õlõvasõõ tilaa. Kui että taho loovva [[{{MediaWiki:Helppage}}|cülciä]], menka takaz Web-brauzeraa "back"-napuukaa.',
+'noarticletext' => '{{GRAMMAR:inessive|{{SITENAME}}}} ebõõ sene nimissä cülciä.
+* Võid [[Special:Search/{{PAGENAME}}|ettsiä cüľľee nimellä]] muilta cüľľeltä.
+* Võid cirjuttõma uuvvõõ cüľľee <span class="plainlinks">[{{fullurl:{{FULLPAGENAME}}|action=edit}} {{PAGENAME}}]</span>.',
+'previewnote' => "'''Kase on ainult prestavleńńa.''' Cülciä ebõõ veel salvotõttu!",
+'editing' => 'Muutun $1',
+'editingsection' => 'Muuttõmizõll on õsa cüľľess $1',
+'copyrightwarning' => "Kõik {{SITENAME}}'lle formittu saacid katsotaa julkaistussi $2 -litsentsi mukka ($1). Kui että taho, jot Teďďee cirjutussa muutõtaa armõttomassi ja svobodno cävvää uuvvõllõõ, elä cirjuttõga.<br />Toož, Te luppattõ, jot cirjutittä Teďďee teksti ize, vai kopiiroizitta slobodnoissa cüľľessä.<br />'''ELÄ CÄÜTTEGA TECEJÄÕIKUSÕKAA OĎĎÕLTUIT MAŤERIIT ILMA LUPPA!'''",
+'templatesused' => 'Sell cüľľell {{PLURAL:$1|cäütetüd šabloonid}}:',
+'templatesusedpreview' => '{{PLURAL:$1|Šabloonid}} sellä prestavleńńalla:',
+'template-protected' => '(oďďõttu)',
+'template-semiprotected' => '(varjõttu anonüümeilt ja uusilt cäüttijilt)',
+'hiddencategories' => 'Kase cülci kuulub {{PLURAL:$1|vahtiaavaa salautõttuu gruppaa|vahtiaavii salautõttuisõõ gruppoisõõ}}:',
 'permissionserrorstext-withaction' => 'Teill ebõõ luppa $2 {{PLURAL:$1|vahtiaavass süüss|vahtiaaviss süiss}} peräss:',
-'moveddeleted-notice'              => "Kase tšültši on pühittü. Alla on sene tšüľľee pühi'istori.",
+'moveddeleted-notice' => "Kase cülci on pühittü. Alla on sene cüľľee pühi'istori.",
 
 # History pages
-'viewpagelogs'           => 'Näüt sene tšüľľee logid',
-'currentrev-asof'        => 'Nütšüin verzija $1',
-'revisionasof'           => 'Verzija $1',
-'previousrevision'       => '← Vanõpi verzija',
-'nextrevision'           => 'Uuvvõpi verzija →',
-'currentrevisionlink'    => 'Nütšüin verzija',
-'cur'                    => 'nütš.',
-'last'                   => 'entin',
-'histlegend'             => "Merkid: ({{int:cur}}) = vahõ nütšüizese verzijaa, ({{int:last}}) = vahõ entiizese verzijaa, '''{{int:minoreditletter}}''' = peeni muutuz",
+'viewpagelogs' => 'Näüt sene cüľľee logid',
+'currentrev' => 'Nücüin verzija',
+'currentrev-asof' => 'Nücüin verzija $1',
+'revisionasof' => 'Verzija $1',
+'previousrevision' => '← Vanõpi verzija',
+'nextrevision' => 'Uuvvõpi verzija →',
+'currentrevisionlink' => 'Nücüin verzija',
+'cur' => 'nüc.',
+'last' => 'entin',
+'histlegend' => "Merkid: ({{int:cur}}) = vahõ nütšüizese verzijaa, ({{int:last}}) = vahõ entiizese verzijaa, '''{{int:minoreditletter}}''' = peeni muutuz",
 'history-fieldset-title' => 'Ľistvoit muutuzistoria',
-'histfirst'              => 'Kõikkõa varaizõpid',
-'histlast'               => 'Kõikkõa viimõizõpid',
+'histfirst' => 'Kõikkõa varaizõpid',
+'histlast' => 'Kõikkõa viimõizõpid',
 
 # Revision deletion
-'rev-delundel'   => 'näüt/salauta',
-'revdel-restore' => 'muutu nätšüvüss',
+'rev-delundel' => 'näüt/salauta',
+'rev-showdeleted' => 'näüt väľľää',
+'revdelete-show-file-submit' => 'Daa',
+'revdelete-radio-set' => 'Daa',
+'revdelete-radio-unset' => 'Eb',
+'revdelete-log' => 'Süü:',
+'revdel-restore' => 'muutu näcüvüss',
+'pagehist' => 'Cüľľee istori',
+'revdelete-reasonotherlist' => 'Muu süü',
+
+# History merging
+'mergehistory-reason' => 'Süü:',
 
 # Merge log
 'revertmerge' => 'Kummut ühesüz',
 
 # Diffs
-'history-title'           => 'Tšüľľee $1 muutuzistori',
-'difference'              => '(Vahõd verzijoďďee väliz)',
-'lineno'                  => 'Viiru $1:',
+'history-title' => 'Cüľľee $1 muutuzistori',
+'lineno' => 'Viiru $1:',
 'compareselectedversions' => 'Võrrõõ valitsõttuit verzijoit',
-'editundo'                => 'kummut',
+'editundo' => 'kummut',
 
 # Search results
-'searchresults'             => 'Etsüü tulõmuhsõd',
-'searchresults-title'       => 'Etsü tulõmuhsõd ettsüsõnalõõ "$1"',
-'searchresulttext'          => 'Lisäsoobšeńńad ettsimizessä on [[{{MediaWiki:Helppage}}|praavilatšüľľellä]].',
-'searchsubtitle'            => 'Etsizid fraaza \'\'\'[[:$1]]\'\'\' ([[Special:Prefixindex/$1|kõikõd tšüľľed, kummad alkõa fraazaakaa "$1"]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|kõikõd tšüľľed näütteväd tšüľľelee "$1"]])',
-'searchsubtitleinvalid'     => "Ettsizittä: '''$1'''",
-'notitlematches'            => 'Eb löütännü miltäiss tšültšiä sene ettsüsõnaaka',
-'notextmatches'             => 'Ettsisõnaa eb löütünnü tšüľľee tekstiissä',
-'prevn'                     => '{{PLURAL:$1|edellinen|$1 entiiss}}',
-'nextn'                     => '{{PLURAL:$1|$1}} vahtiaava →',
-'viewprevnext'              => 'Näüt ($1 {{int:pipe-separator}} $2) ($3)',
-'search-result-size'        => '$1 ({{PLURAL:$2|1 sõna|$2 sõna}})',
-'search-redirect'           => '(mešaituz $1)',
-'search-section'            => '(alajako $1)',
-'search-suggest'            => 'Tähetidko: $1',
-'search-interwiki-caption'  => 'Sõzarprojektid',
-'search-interwiki-default'  => 'tulõmuhsõd $1:',
-'search-interwiki-more'     => '(lisä)',
-'search-mwsuggest-enabled'  => 'tarittsõmisijõkaa',
+'searchresults' => 'Etsüü tulõmuhsõd',
+'searchresults-title' => 'Etsü tulõmuhsõd ettsüsõnalõõ "$1"',
+'searchresulttext' => 'Lisäsoobšeńńad ettsimizessä on [[{{MediaWiki:Helppage}}|praavilacüľľellä]].',
+'searchsubtitle' => 'Etsizid fraaza \'\'\'[[:$1]]\'\'\' ([[Special:Prefixindex/$1|kõikõd cüľľed, kummad alkõa fraazaakaa "$1"]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|kõikõd cüľľed näütteväd cüľľelee "$1"]])',
+'searchsubtitleinvalid' => "Ettsizittä: '''$1'''",
+'notitlematches' => 'Eb löütännü miltäiss cülciä sene ettsüsõnaaka',
+'notextmatches' => 'Ettsisõnaa eb löütünnü cüľľee tekstiissä',
+'prevn' => '{{PLURAL:$1|edellinen|$1 entiiss}}',
+'nextn' => '{{PLURAL:$1|$1}} vahtiaava →',
+'viewprevnext' => 'Näüt ($1 {{int:pipe-separator}} $2) ($3)',
+'searchprofile-images' => 'Multimedia',
+'searchprofile-everything' => 'Kõik',
+'searchprofile-project-tooltip' => 'Etsi "$1":az',
+'search-result-size' => '$1 ({{PLURAL:$2|1 sõna|$2 sõna}})',
+'search-redirect' => '(mešaituz $1)',
+'search-section' => '(alajako $1)',
+'search-suggest' => 'Tähetidko: $1',
+'search-interwiki-caption' => 'Sõzarprojektid',
+'search-interwiki-default' => 'tulõmuhsõd $1:',
+'search-interwiki-more' => '(lisä)',
+'search-mwsuggest-enabled' => 'tarittsõmisijõkaa',
 'search-mwsuggest-disabled' => 'tarittsõmizõtta',
-'nonefound'                 => "'''Zametšańńa''': Ettsü etsib anult osiss nimiruumii.
-Proovvi lizät etsün alkuu ''all:'', nii ettsü etsib kõikkõõ sisältoo (taas juttutšüľľeekaa, sablooniikaa, jne.), vai tarvittõga nimiruumi niku prefiksi.",
-'powersearch'               => 'Etenennü ettsü',
-'powersearch-legend'        => 'Etenennü ettsü',
-'powersearch-ns'            => 'Etsi nimiruumõssa:',
-'powersearch-redir'         => 'Spiiska mešaitussijõ',
-'powersearch-field'         => 'Etsi',
+'searchall' => 'kõik',
+'nonefound' => "'''Zametšańńa''': Ettsü etsib anult osiss nimiruumii.
+Proovvi lizät etsün alkuu ''all:'', nii ettsü etsib kõikkõõ sisältoo (taas juttucüľľeekaa, sablooniikaa, jne.), vai tarvittõga nimiruumi niku prefiksi.",
+'powersearch' => 'Etenennü ettsü',
+'powersearch-legend' => 'Etenennü ettsü',
+'powersearch-ns' => 'Etsi nimiruumõssa:',
+'powersearch-redir' => 'Spiiska mešaitussijõ',
+'powersearch-field' => 'Etsi',
+
+# Quickbar
+'qbsettings-none' => 'Eb õõ',
 
 # Preferences page
-'preferences'   => 'Koozid',
+'preferences' => 'Koozid',
 'mypreferences' => 'Minu koozid',
+'skin-preview' => 'Prestavleńńa',
+'prefs-datetime' => 'Kuupäivä i aika',
+'prefs-user-pages' => 'Cäüttijäcülcid',
+'prefs-rc' => 'Viimõizõd muutussõd',
+'searchresultshead' => 'Etsi',
+'timezoneregion-africa' => 'Afrikka',
+'timezoneregion-america' => 'Ameerika',
+'timezoneregion-asia' => 'Aazija',
+'timezoneregion-australia' => 'Avstraaľija',
+'timezoneregion-europe' => 'Evrooppaa',
+'prefs-files' => 'Failid',
+'youremail' => 'E-mail:',
+'username' => 'Cäüttijänimi:',
+'yourrealname' => 'Minu nimi:',
+'yourlanguage' => 'Ceeli:',
+'yourgender' => 'Sukupooli',
+'gender-male' => 'Mehin',
+'gender-female' => 'Naisin',
+'email' => 'E-mail',
+
+# User rights
+'userrights-reason' => 'Süü:',
 
 # Groups
+'group-user' => 'Сäüttijäd',
 'group-sysop' => 'Praviťeľad',
 
+'group-user-member' => 'cäüttijä',
+
+'grouppage-user' => '{{ns:project}}:Сäüttijäd',
 'grouppage-sysop' => '{{ns:project}}:Praviťeľad',
 
 # User rights log
-'rightslog' => 'Tšäütteminõikuslogi',
+'rightslog' => 'Cäütteminõikuslogi',
+'rightsnone' => '(eb õõ)',
 
 # Associated actions - in the sentence "You do not have permission to X"
-'action-edit' => 'muutu sitä tšültšiä',
+'action-edit' => 'muutu sitä cülciä',
 
 # Recent changes
-'nchanges'                       => '$1 {{PLURAL:$1|muutuz|muutussõd}}',
-'recentchanges'                  => 'Viimõizõd muutussõd',
-'recentchanges-legend'           => 'Viimass muutuhsõss valimizõd',
+'nchanges' => '$1 {{PLURAL:$1|muutuz|muutussõd}}',
+'recentchanges' => 'Viimõizõd muutussõd',
+'recentchanges-legend' => 'Viimass muutuhsõss valimizõd',
 'recentchanges-feed-description' => 'Sell sivull võib vahtia uutizijõ muutuhsiit.',
-'rcnote'                         => 'Alla on {{PLURAL:$1|ühsi muutuz|viimeiziit $1 muutussiit}} viimeize {{PLURAL:$2|ühee päivää|$2 päivää}}, $4 $5.',
-'rclistfrom'                     => 'Näüt uuvvõd muutuhsõd $1 alguss',
-'rcshowhideminor'                => '$1 peened muutussõd',
-'rcshowhidebots'                 => '$1 botid',
-'rcshowhideliu'                  => '$1 süäme tširjutõnnud tšäüttijäd',
-'rcshowhideanons'                => '$1 anonüümid tšäüttijäd',
-'rcshowhidemine'                 => '$1 õmad muutussõd',
-'rclinks'                        => 'Näüt viimõiss $1 muutuhsõiss viimõizõ $2 päivää ajalt.<br />$3',
-'diff'                           => 'vahõ',
-'hist'                           => 'istori',
-'hide'                           => 'Salauta',
-'show'                           => 'Näüt väľľää',
-'minoreditletter'                => 'p',
-'newpageletter'                  => 'U',
-'boteditletter'                  => 'b',
-'rc-enhanced-expand'             => 'Näüt detaaľiit (JavaScript on tarviz)',
-'rc-enhanced-hide'               => 'Salauta detaaľiit',
+'recentchanges-label-minor' => 'Kase on peeni muutuz',
+'rcnote' => 'Alla on {{PLURAL:$1|ühsi muutuz|viimeiziit $1 muutussiit}} viimeize {{PLURAL:$2|ühee päivää|$2 päivää}}, $4 $5.',
+'rclistfrom' => 'Näüt uuvvõd muutuhsõd $1 alguss',
+'rcshowhideminor' => '$1 peened muutussõd',
+'rcshowhidebots' => '$1 botid',
+'rcshowhideliu' => '$1 süäme cirjutõnnud cäüttijäd',
+'rcshowhideanons' => '$1 anonüümid cäüttijäd',
+'rcshowhidemine' => '$1 õmad muutussõd',
+'rclinks' => 'Näüt viimõiss $1 muutuhsõiss viimõizõ $2 päivää ajalt.<br />$3',
+'diff' => 'vahõ',
+'hist' => 'istori',
+'hide' => 'Salauta',
+'show' => 'Näüt väľľää',
+'minoreditletter' => 'p',
+'newpageletter' => 'U',
+'boteditletter' => 'b',
+'rc-enhanced-expand' => 'Näüt detaaľiit (JavaScript on tarviz)',
+'rc-enhanced-hide' => 'Salauta detaaľiit',
 
 # Recent changes linked
-'recentchangeslinked'         => 'Sukulaizõd muutussõd.',
-'recentchangeslinked-title'   => 'Tšüľľelt $1 linkitettüďďe tšültšije muutuhsõd.',
-'recentchangeslinked-summary' => "Kase osoobennoi tšültši näütteb muutusõd tšültšillä, kummalõõ on seltä tšüľľeltä näüteltü.
-Tšüľľed, kummad õmad teďďellä [[Special:Watchlist|kattsõspiizgalla]] on tširjuttõnnu '''pimmiässi'''.",
-'recentchangeslinked-page'    => 'Tšüľľee nimi:',
-'recentchangeslinked-to'      => 'Näüt muutuhsõd tšültšiisee, kummall on linkki annõttuu tšültšesee',
+'recentchangeslinked' => 'Sukulaizõd muutussõd.',
+'recentchangeslinked-feed' => 'Sukulaizõd muutussõd',
+'recentchangeslinked-toolbox' => 'Sukulaizõd muutussõd',
+'recentchangeslinked-title' => 'Cüľľelt $1 linkitettüďďe cülcije muutuhsõd.',
+'recentchangeslinked-summary' => "Kase osoobennoi cülci näütteb muutusõd cülcillä, kummalõõ on seltä cüľľeltä näüteltü.
+Cüľľed, kummad õmad teďďellä [[Special:Watchlist|kattsõspiizgalla]] on cirjuttõnnu '''pimmiässi'''.",
+'recentchangeslinked-page' => 'Cüľľee nimi:',
+'recentchangeslinked-to' => 'Näüt muutuhsõd cülciisee, kummall on linkki annõttuu cülcesee',
 
 # Upload
-'upload'        => 'Laajõngoit failia ülez',
+'upload' => 'Laajõngoit failia ülez',
+'uploadbtn' => 'Laajõngoit failia ülez',
 'uploadlogpage' => 'Faililogi',
+'filename' => 'Failinimi',
+'filedesc' => 'Turvotuz',
+'fileuploadsummary' => 'Turvotuz:',
 'uploadedimage' => '"[[$1]]" on laajõngoitõttu ülez',
 
+# Special:ListFiles
+'imgfile' => 'faili',
+'listfiles_thumb' => 'Peenikuva',
+'listfiles_date' => 'Kuupäivä',
+'listfiles_name' => 'Nimi',
+'listfiles_user' => 'Сäüttijä',
+
 # File description page
-'filehist'                  => 'Failii istori',
-'filehist-help'             => 'Štšolkoittõga Päivätšisla/Tšelloaika näe miltäin faili õli sell aiga pilkall.',
-'filehist-current'          => 'nütšüin',
-'filehist-datetime'         => 'Päivätšisla/Tšelloaika',
-'filehist-thumb'            => 'Peenikuva',
-'filehist-thumbtext'        => 'Peenikuva $1 verzijalõõ',
-'filehist-user'             => 'Tšäüttijä',
-'filehist-dimensions'       => 'Mitad',
-'filehist-comment'          => 'Zametšańńa',
-'imagelinks'                => 'Faililinkid',
-'linkstoimage'              => 'Selle kuvallõ {{PLURAL:$1|näütteeb kase tšültši|näütteväd kaned tšüľľed}}:',
-'sharedupload'              => "Kase faili on $1'lt ja muud projektõd saavad tšäüttää sitä.",
+'file-anchor-link' => 'Faili',
+'filehist' => 'Failii istori',
+'filehist-help' => 'Šcolkoittõga Päiväcisla/Celloaika näe miltäin faili õli sell aiga pilkall.',
+'filehist-deleteone' => 'pühi',
+'filehist-revert' => 'kummut',
+'filehist-current' => 'nücüin',
+'filehist-datetime' => 'Päiväсisla/Сelloaika',
+'filehist-thumb' => 'Peenikuva',
+'filehist-thumbtext' => 'Peenikuva $1 verzijalõõ',
+'filehist-user' => 'Сäüttijä',
+'filehist-dimensions' => 'Mitad',
+'filehist-comment' => 'Zametšańńa',
+'imagelinks' => 'Faililinkid',
+'linkstoimage' => 'Selle kuvallõ {{PLURAL:$1|näütteeb kase сülсi|näütteväd kaned сüľľed}}:',
+'sharedupload' => 'Kase faili on $1:lt ja muud projektõd saavad cäüttää sitä.',
 'uploadnewversion-linktext' => 'Laajõngoit uusi verzija seness failiss ülez',
 
+# File reversion
+'filerevert-comment' => 'Süü:',
+'filerevert-submit' => 'Kummut',
+
+# File deletion
+'filedelete-comment' => 'Süü:',
+'filedelete-submit' => 'Pühi',
+
+# Random page
+'randompage' => 'Satunnain lehocülci',
+
 # Statistics
 'statistics' => 'Staťisťikka',
+'statistics-pages' => 'Cülcid',
+
+'brokenredirects-edit' => 'muuttaa',
+'brokenredirects-delete' => 'pühi',
+
+'withoutinterwiki-submit' => 'Näüt väľľää',
 
 # Miscellaneous special pages
-'nbytes'        => '$1 {{PLURAL:$1|baitti|baittia}}',
-'nmembers'      => '$1 {{PLURAL:$1|selttsilain|selttsilaizõd}}',
-'prefixindex'   => 'Kõik tšüľľed prefiksiikaa',
-'newpages'      => 'Uuvvõd tšüľľed',
-'move'          => 'Liikut',
-'movethispage'  => 'Liikut kase tšültši',
+'nbytes' => '$1 {{PLURAL:$1|baitti|baittia}}',
+'nmembers' => '$1 {{PLURAL:$1|selttsilain|selttsilaizõd}}',
+'prefixindex' => 'Kõik cüľľed prefiksiikaa',
+'newpages' => 'Uuvvõd cüľľed',
+'newpages-username' => 'Cäüttijänimi:',
+'move' => 'Liikut',
+'movethispage' => 'Liikut kase cülci',
 'pager-newer-n' => '{{PLURAL:$1|uuvvõpi 1|uuvvõpad $1}}',
 'pager-older-n' => '{{PLURAL:$1|vanöpi 1|vanõpad $1}}',
 
 # Book sources
-'booksources'               => 'TÅ¡irjalähed',
-'booksources-search-legend' => 'Etsi irjalähteit',
-'booksources-go'            => 'Mee',
+'booksources' => 'Сirjalähed',
+'booksources-search-legend' => 'Etsi сirjalähteit',
+'booksources-go' => 'Mee',
 
 # Special:Log
 'log' => 'Logid',
 
 # Special:AllPages
-'allpages'       => 'Kõik artikkelid',
+'allpages' => 'Kõik artikkelid',
 'alphaindexline' => '$1 ... $2',
-'prevpage'       => 'Entin tšültši ($1)',
-'allpagesfrom'   => 'Tšüľľelt',
-'allpagesto'     => 'Tšüľľessaa',
-'allarticles'    => 'Kõikõd tšüľľed',
+'prevpage' => 'Entin сülсi ($1)',
+'allpagesfrom' => 'Сüľľelt',
+'allpagesto' => 'Сüľľessaa',
+'allarticles' => 'Kõikõd cüľľed',
 'allpagessubmit' => 'Mee',
 
+# Special:Categories
+'categories' => 'Gruppad',
+
+# Special:DeletedContributions
+'sp-deletedcontributions-contribs' => 'Minu avittamizõd',
+
 # Special:LinkSearch
 'linksearch' => 'Ulkopoolizõd linkid',
+'linksearch-ns' => 'Nimiruumi:',
+'linksearch-ok' => 'Etsi',
+
+# Special:ListUsers
+'listusers-submit' => 'Näüt väľľää',
 
 # Special:Log/newusers
-'newuserlogpage' => 'Uuvvõd äüttijäd',
+'newuserlogpage' => 'Uuvvõd cäüttijäd',
 
 # Special:ListGroupRights
 'listgrouprights-members' => '(selttsilainspiiska)',
 
 # E-mail user
-'emailuser' => 'Lähettega elektropoštia selle tšäüttijälle',
+'emailuser' => 'Lähettega elektropoštia selle cäüttijälle',
+'emailusername' => 'Cäüttijänimi:',
+'emailmessage' => 'Ilmottamin:',
 
 # Watchlist
-'watchlist'         => 'Minu kattsõspiiska',
-'mywatchlist'       => 'Minu kattsõspiiska',
-'addedwatchtext'    => "Tšültši \"[[:\$1]]\" on lisättü Teďďee [[Special:Watchlist|kattsospiizgallõ]].
-Tšültšese ja sene juttutšültšese tehäväd tulõvaizõd muutuhsõd leeväd tšisloitõtud siäll.
-Tšültši leeb tširjutõttu '''pimmiässi''' [[Special:RecentChanges|spiizgall viimeizije muutuhsijõ]].",
-'removedwatchtext'  => 'Tšültši "[[:$1]]" on pantu [[Special:Watchlist|teďďee kattsõspiizgalt]] poiz.',
-'watch'             => 'Katso',
-'watchthispage'     => 'Katso sitä tšültšiä',
-'unwatch'           => 'Lõpõt kattsõõmin',
-'watchlist-details' => 'Kattsõspiizgall on {{PLURAL:$1|$1 tšültši|$1 tšültšiä}} (ilma juttutšültšiit).',
-'wlshowlast'        => 'Näüt viimeized $1 tunnia vai $2 päivää $3',
+'watchlist' => 'Minu kattsõspiiska',
+'mywatchlist' => 'Minu kattsõspiiska',
+'addedwatchtext' => "Cülci \"[[:\$1]]\" on lisättü Teďďee [[Special:Watchlist|kattsospiizgallõ]].
+Cülcese ja sene juttucülcese tehäväd tulõvaizõd muutuhsõd leeväd cisloitõtud siäll.
+Cülci leeb cirjutõttu '''pimmiässi''' [[Special:RecentChanges|spiizgall viimeizije muutuhsijõ]].",
+'removedwatchtext' => 'Cülci "[[:$1]]" on pantu [[Special:Watchlist|teďďee kattsõspiizgalt]] poiz.',
+'watch' => 'Katso',
+'watchthispage' => 'Katso sitä cülciä',
+'unwatch' => 'Lõpõt kattsõõmin',
+'watchlist-details' => 'Kattsõspiizgall on {{PLURAL:$1|$1 cülci|$1 cülciä}} (ilma juttucülciit).',
+'wlshowlast' => 'Näüt viimeized $1 tunnia vai $2 päivää $3',
 'watchlist-options' => 'Kattsõspiizgaa valimizõd',
 
 # Displayed when you click the "watch" button and it is in the process of watching
-'watching'   => 'Kattsõõn…',
+'watching' => 'Kattsõõn…',
 'unwatching' => 'Kattsõõmizõõ lõpõttõmin…',
 
+'enotif_newpagetext' => 'Kase on vassõn cülci.',
+
 # Delete
-'deletepage'            => 'Pühi tšültši',
-'confirmdeletetext'     => 'Õlõtta pühtšimässä tšüľľee vai failii ja kõigõ sene istorii. Õlka nii üvä, kõvissõga jot tahotta sitä tehä, jot saatta arvoa sledstvijäd jot pühtšimüz on [[{{MediaWiki:Policy-url}}|poolissaa]] mukka.',
-'actioncomplete'        => 'Töö tehtü lõppuu',
-'deletedtext'           => '"$1" on pühittü.
-Tšüľľellä $2 on spiiska viimeiziss pühtšimühsiiss.',
-'dellogpage'            => 'Pühitüd tšüľľed',
-'deletecomment'         => 'Süü',
-'deleteotherreason'     => 'Muu vai lisä süü',
+'deletepage' => 'Pühi cülci',
+'delete-legend' => 'Pühi',
+'confirmdeletetext' => 'Õlõtta pühcimässä cüľľee vai failii ja kõigõ sene istorii. Õlka nii üvä, kõvissõga jot tahotta sitä tehä, jot saatta arvoa sledstvijäd jot pühcimüz on [[{{MediaWiki:Policy-url}}|poolissaa]] mukka.',
+'actioncomplete' => 'Töö tehtü lõppuu',
+'deletedtext' => '"$1" on pühittü.
+Cüľľellä $2 on spiiska viimeiziss pühcimühsiiss.',
+'dellogpage' => 'Pühitüd cüľľed',
+'deletecomment' => 'Süü',
+'deleteotherreason' => 'Muu vai lisä süü',
 'deletereasonotherlist' => 'Muu süü',
 
 # Rollback
+'rollback_short' => 'Vääntega',
 'rollbacklink' => 'vääntega',
 
 # Protect
-'protectlogpage'              => 'Varjõtud tšüľľed',
-'protectedarticle'            => '"[[$1]]" on nüd varjõttu',
-'modifiedarticleprotection'   => 'muuti tšüľľee [[$1]] varjauztasoa',
-'protectcomment'              => 'Süü',
-'protectexpiry'               => 'Lõpub:',
-'protect_expiry_invalid'      => 'Lõppuaika eb kõlpa.',
-'protect_expiry_old'          => 'Lõppuaika on meneväz.',
-'protect-text'                => "Võitta kattsoa ja muuttaa tšüľľee '''$1''' lupoit.",
-'protect-locked-access'       => "Että või muuttaa tšüľľee varjauztasoa. All on tšüľľee \"'''\$1'''\" nütšüized varjauztazod:",
-'protect-cascadeon'           => 'Kase tšültši on varjõttu, ku on sisällütettü all {{PLURAL:$1|õlõvaa jadgotussi varjõttuhõõ tšültšese|õlõvii jadgotussi varjõttuisõ tšültšiise}}. Võitta muuttaa sene tšüľľee varjuztasoa, mutta se eb vaikuta jadgotõttuu varjuhsiise.',
-'protect-default'             => 'Salli kõik tšäüttijäd',
-'protect-fallback'            => 'Treebuit $1-õikuz',
-'protect-level-autoconfirmed' => 'Piättee uuvvõd ja anonüümed tšäüttijäd',
-'protect-level-sysop'         => 'Ainult praviťeľad',
-'protect-summary-cascade'     => 'jadgotõltu',
-'protect-expiring'            => 'lõpub $1',
-'protect-cascade'             => 'Varjaa jõka tšültši, kumpa on tänne tšültšesee sisällütennü.',
-'protect-cantedit'            => 'Että või muuttaa tšüľľee varjauztasoa, ku tüü että saa muuttaa tšültšiä.',
-'restriction-type'            => 'Rajauz',
-'restriction-level'           => 'Varjauz',
+'protectlogpage' => 'Varjõtud cüľľed',
+'protectedarticle' => '"[[$1]]" on nüd varjõttu',
+'modifiedarticleprotection' => 'muuti cüľľee [[$1]] varjauztasoa',
+'protectcomment' => 'Süü',
+'protectexpiry' => 'Lõpub:',
+'protect_expiry_invalid' => 'Lõppuaika eb kõlpa.',
+'protect_expiry_old' => 'Lõppuaika on meneväz.',
+'protect-text' => "Võitta kattsoa ja muuttaa cüľľee '''$1''' lupoit.",
+'protect-locked-access' => "Että või muuttaa cüľľee varjauztasoa. All on cüľľee \"'''\$1'''\" nücüized varjauztazod:",
+'protect-cascadeon' => 'Kase cülci on varjõttu, ku on sisällütettü all {{PLURAL:$1|õlõvaa jadgotussi varjõttuhõõ cülcese|õlõvii jadgotussi varjõttuisõ cülciise}}. Võitta muuttaa sene cüľľee varjuztasoa, mutta se eb vaikuta jadgotõttuu varjuhsiise.',
+'protect-default' => 'Salli kõik cäüttijäd',
+'protect-fallback' => 'Treebuit $1-õikuz',
+'protect-level-autoconfirmed' => 'Piättee uuvvõd ja anonüümed cäüttijäd',
+'protect-level-sysop' => 'Ainult praviťeľad',
+'protect-summary-cascade' => 'jadgotõltu',
+'protect-expiring' => 'lõpub $1',
+'protect-expiry-indefinite' => 'iciin',
+'protect-cascade' => 'Varjaa jõka cülci, kumpa on tänne cülcesee sisällütennü.',
+'protect-cantedit' => 'Että või muuttaa cüľľee varjauztasoa, ku tüü että saa muuttaa cülciä.',
+'protect-otherreason-op' => 'Muu süü',
+'protect-expiry-options' => '1 tunni:1 hour,1 päivä:1 day,1 näteľi:1 week,2 näteľiä:2 weeks,1 kuu:1 month,3 kuut:3 months,6 kuut:6 months,1 voosi:1 year,iciin:infinite',
+'restriction-type' => 'Rajauz',
+'restriction-level' => 'Varjauz',
+
+# Restrictions (nouns)
+'restriction-edit' => 'Muuttaa',
+'restriction-move' => 'Liikut',
+'restriction-create' => 'Loo cülci',
 
 # Undelete
 'undeletelink' => 'näüt/vääntee',
+'undeleteviewlink' => 'prestavleńńõd',
+'undeletecomment' => 'Süü:',
+'undelete-search-submit' => 'Etsi',
+'undelete-show-file-submit' => 'Daa',
 
 # Namespace form on various pages
-'namespace'      => 'Nimiruumi:',
-'invert'         => 'Tšäänn nimiruumivalimin päävassaizõssi',
+'namespace' => 'Nimiruumi:',
+'invert' => 'Cäänn nimiruumivalimin päävassaizõssi',
 'blanknamespace' => '(Artikkelid)',
 
 # Contributions
-'contributions'       => 'Tšäüttijää avittamizõd',
-'contributions-title' => 'äüttijää $1 avittamizõd',
-'mycontris'           => 'Minu avittamizõd',
-'contribsub2'         => 'Tšäüttijää $1 ($2) avittamizõd',
-'uctop'               => '(ülez)',
-'month'               => 'Kuu',
-'year'                => 'Voosi:',
-
-'sp-contributions-newbies'  => 'Näüt uusijõõ tšäüttijee muutuhsõd',
+'contributions' => 'Cäüttijää avittamizõd',
+'contributions-title' => 'Cäüttijää $1 avittamizõd',
+'mycontris' => 'Minu avittamizõd',
+'contribsub2' => 'Cäüttijää $1 ($2) avittamizõd',
+'uctop' => '(ülez)',
+'month' => 'Kuu',
+'year' => 'Voosi:',
+
+'sp-contributions-newbies' => 'Näüt uusijõõ cäüttijee muutuhsõd',
 'sp-contributions-blocklog' => 'piättelemized',
-'sp-contributions-search'   => 'Etsi avittamisiit',
-'sp-contributions-username' => 'IP-adressi vai tšäüttijänimi',
-'sp-contributions-submit'   => 'Etsi',
+'sp-contributions-logs' => 'logid',
+'sp-contributions-talk' => 'Juttu',
+'sp-contributions-search' => 'Etsi avittamisiit',
+'sp-contributions-username' => 'IP-adressi vai cäüttijänimi',
+'sp-contributions-submit' => 'Etsi',
 
 # What links here
-'whatlinkshere'            => 'Linkid tänne',
-'whatlinkshere-title'      => 'Tšüľľed, kummad näütellä tšüľľelle "$1"',
-'whatlinkshere-page'       => 'Tšültši:',
-'linkshere'                => "Vahtiaavilt tšültšiilt on linkki tšüľľelle '''[[:$1]]''':",
-'isredirect'               => 'mešaituztšültši',
-'istemplate'               => 'sisällütüz šabloonii',
-'isimage'                  => 'kuvalinkki',
-'whatlinkshere-prev'       => '{{PLURAL:$1|entiin tšültši|$1 entiiss tšültšiä}}',
-'whatlinkshere-next'       => '{{PLURAL:$1|vahtiaava tšültši|$1 vahtiaava tšültšiä}}',
-'whatlinkshere-links'      => '← linkid',
+'whatlinkshere' => 'Linkid tänne',
+'whatlinkshere-title' => 'Cüľľed, kummad näütellä cüľľelle "$1"',
+'whatlinkshere-page' => 'Cülci:',
+'linkshere' => "Vahtiaavilt cülciilt on linkki cüľľelle '''[[:$1]]''':",
+'isredirect' => 'mešaituzcülci',
+'istemplate' => 'sisällütüz šabloonii',
+'isimage' => 'kuvalinkki',
+'whatlinkshere-prev' => '{{PLURAL:$1|entiin cülci|$1 entiiss cülciä}}',
+'whatlinkshere-next' => '{{PLURAL:$1|vahtiaava cülci|$1 vahtiaava cülciä}}',
+'whatlinkshere-links' => '← linkid',
 'whatlinkshere-hideredirs' => '$1 mešaituhsõd',
-'whatlinkshere-hidetrans'  => '$1 sisällütühsed',
-'whatlinkshere-hidelinks'  => '$1 linkid',
-'whatlinkshere-filters'    => 'Fiľtrad',
+'whatlinkshere-hidetrans' => '$1 sisällütühsed',
+'whatlinkshere-hidelinks' => '$1 linkid',
+'whatlinkshere-hideimages' => '$1 faililinkid',
+'whatlinkshere-filters' => 'Fiľtrad',
 
 # Block/unblock
-'blockip'                  => 'Piättee tšäüttijää',
-'ipboptions'               => '2 tunnia:2 hours,1 päivä:1 day,3 päivää:3 days,1 näteľi:1 week,2 näteľiä:2 weeks,1 kuu:1 month,3 kuut:3 months,6 kuut:6 months,1 voosi:1 year,itšiin:infinite',
-'ipblocklist'              => 'Piäteltüd IP-adressid ja tšäüttijänimed',
-'blocklink'                => 'piättee',
-'unblocklink'              => 'rootši piäsüss',
-'change-blocklink'         => 'muutu piätüss',
-'contribslink'             => 'avittamizõd',
-'blocklogpage'             => 'Piätüzlogi',
-'blocklogentry'            => 'piätteli tšäüttijää vai IP-tšislaa [[$1]]. Piättelemin lõpub $2 $3',
-'unblocklogentry'          => 'rootši tšäüttijält $1 muutuzpiäsüss',
+'blockip' => 'Piättee cäüttijää',
+'ipbreason' => 'Süü:',
+'ipboptions' => '2 tunnia:2 hours,1 päivä:1 day,3 päivää:3 days,1 näteľi:1 week,2 näteľiä:2 weeks,1 kuu:1 month,3 kuut:3 months,6 kuut:6 months,1 voosi:1 year,iciin:infinite',
+'ipbotheroption' => 'muu',
+'ipblocklist' => 'Piäteltüd IP-adressid ja cäüttijänimed',
+'blocklist-reason' => 'Süü',
+'ipblocklist-submit' => 'Etsi',
+'infiniteblock' => 'iciin',
+'blocklink' => 'piättee',
+'unblocklink' => 'rooci piäsüss',
+'change-blocklink' => 'muutu piätüss',
+'contribslink' => 'avittamizõd',
+'blocklogpage' => 'Piätüzlogi',
+'blocklogentry' => 'piätteli cäüttijää vai IP-cislaa [[$1]]. Piättelemin lõpub $2 $3',
+'unblocklogentry' => 'rooci cäüttijält $1 muutuzpiäsüss',
 'block-log-flags-nocreate' => 'lukuloomin piäteltü',
+'proxyblocksuccess' => 'On tehtü.',
 
 # Move page
-'movepagetext'     => "Alla õlõvall ruumõll võitta anta tšüľľelle uutt nimiä; kõik tšüľľee istori leeb liikutõttu uuvvõ nimee alle.
-Vanass tšüľľess nõizõb tulõma mešaituztšültši, kumpa näütteeb uuvvõsõ tšültšese.
-Võitta obnovoittaa tšültšese silmell lüüvvävä mešaituhsõd avtomaattisessi uuvõllõ nimelle.
-Kui että taho sitä tehävää avtomaattisessi, mälehtega ettsiää [[Special:DoubleRedirects|kahskõrtaissit]] vai [[Special:BrokenRedirects|katiit]] mešaituhsiit.
+'movepagetext' => "Alla õlõvall ruumõll võitta anta cüľľelle uutt nimiä; kõik cüľľee istori leeb liikutõttu uuvvõ nimee alle.
+Vanass cüľľess nõizõb tulõma mešaituzcülci, kumpa näütteeb uuvvõsõ cülcese.
+Võitta obnovoittaa cülcese silmell lüüvvävä mešaituhsõd avtomaattisessi uuvõllõ nimelle.
+Kui että taho sitä tehävää avtomaattisessi, mälehtega ettsiää [[Special:DoubleRedirects|kahskõrtaissit]] vai [[Special:BrokenRedirects|katciit]] mešaituhsiit.
 Õlõtta vastuussa sihee, jot linkid näütteeväd sinne, kuhõõ ned pitäiziväd näütellää.
 
-Tšültšiä '''eb''' nõizõ liikuttama, kui uusi nimi on jo tšäütennü, muut kuiva kui tšültši on tühjä vai on mešaituz, kummall ebõõ muutuzistoria.
-See täheteb sitä, jot võitta liikuttaa tšüľľee takaz vanalle nimelle kui öhsünettä, mutta että või tširjuttaa eloz õlõvaa tšüľľee päälle.
+Cülciä '''eb''' nõizõ liikuttama, kui uusi nimi on jo cäütennü, muut kuiva kui cülci on tühjä vai on mešaituz, kummall ebõõ muutuzistoria.
+See täheteb sitä, jot võitta liikuttaa cüľľee takaz vanalle nimelle kui öhsünettä, mutta että või cirjuttaa eloz õlõvaa cüľľee päälle.
 
-See saattab õlla suuri ja oottõmizõtoi muutuz populaarnoille tšüľľelle. Õlka nii üvä, obespetšoittõga, jot saatta arvoa sledstvijäd ennee kui liikutta tšüľľee.",
-'movepagetalktext' => "Tšültši ja sene juttutšültši leeväd liikutõtud ühez, '''va kui''':
-*Tseeľitšüľľell on eloz juttutšültši, kumpa ebõõ tühjä, vai
+See saattab õlla suuri ja oottõmizõtoi muutuz populaarnoille cüľľelle. Õlka nii üvä, obespecoittõga, jot saatta arvoa sledstvijäd ennee kui liikutta cüľľee.",
+'movepagetalktext' => "Cülci ja sene juttucülci leeväd liikutõtud ühez, '''va kui''':
+*Tseeľicüľľell on eloz juttucülci, kumpa ebõõ tühjä, vai
 *Jätättä all õlõvaa ruuoo merkkittämättä.
 
-Neill kõhtoill piättä liikuttaa vai ühissää tšüľľee tšäzi.",
-'movearticle'      => 'Liikut tšültši',
-'newtitle'         => 'Uusi nimi tšüľľelee',
-'move-watch'       => 'Katso sitä tšültšiä',
-'movepagebtn'      => 'Liikut tšültši',
-'pagemovedsub'     => 'Liikka tuli valmessi',
-'movepage-moved'   => '\'\'\'"$1" on liikuttu nimelee "$2"\'\'\'',
-'articleexists'    => 'Tseeľitšültši on jo eloz, vai võõbornoi nimi eb kõlpa. Õlka nii üvä ja valittsõga uusi nimi.',
-'talkexists'       => "'''Tšüľľee liikka tuli valmessi, a juttitšültšiä eb õli liikutõttu, ku uuvvõ zagolofkaa all on jo juttutšültši. Juttutšültšije sisälto piättä ühinessä tšäzi.'''",
-'movedto'          => 'liikutõttu',
-'movetalk'         => 'Liikut toož juttutšültši',
-'movelogpage'      => 'Liikkalogi',
-'movereason'       => 'Süü',
-'revertmove'       => 'kummut',
+Neill kõhtoill piättä liikuttaa vai ühissää cüľľee cäzi.",
+'movearticle' => 'Liikut cülci',
+'newtitle' => 'Uusi nimi cüľľelee',
+'move-watch' => 'Katso sitä cülciä',
+'movepagebtn' => 'Liikut cülci',
+'pagemovedsub' => 'Liikka tuli valmessi',
+'movepage-moved' => '\'\'\'"$1" on liikuttu nimelee "$2"\'\'\'',
+'articleexists' => 'Tseeľicülci on jo eloz, vai võõbornoi nimi eb kõlpa. Õlka nii üvä ja valittsõga uusi nimi.',
+'talkexists' => "'''Cüľľee liikka tuli valmessi, a jutticülciä eb õli liikutõttu, ku uuvvõ zagolofkaa all on jo juttucülci. Juttucülcije sisälto piättä ühinessä cäzi.'''",
+'movedto' => 'liikutõttu',
+'movetalk' => 'Liikut toož juttucülci',
+'movelogpage' => 'Liikkalogi',
+'movereason' => 'Süü',
+'revertmove' => 'kummut',
 
 # Export
-'export' => 'Tšültšiďďee väľľää veto',
+'export' => 'Cülciďďee väľľää veto',
+
+# Namespace 8 related
+'allmessagesname' => 'Nimi',
+'allmessages-language' => 'Ceeli:',
+'allmessages-filter-submit' => 'Mee',
 
 # Thumbnails
 'thumbnail-more' => 'Suurõt',
 
+# Special:Import
+'import-upload-filename' => 'Failinimi:',
+'import-comment' => 'Zamecańńa:',
+
 # Tooltip help for the actions
-'tooltip-pt-userpage'             => 'Teďďee tšäüttijätšültši',
-'tooltip-pt-mytalk'               => 'Teďďee juttu-tšültši',
-'tooltip-pt-preferences'          => 'Teďďee koozid',
-'tooltip-pt-watchlist'            => 'Spiiska tšültšissä, kummad muutussia kattsõõtta',
-'tooltip-pt-mycontris'            => 'Spiiska teďďee avittamisiit',
-'tooltip-pt-login'                => 'Müü taritsõmmõ teit süäme tširjuttõma, a ebõõ tarvitõttõva',
-'tooltip-pt-logout'               => 'Tširjut uloz',
-'tooltip-ca-talk'                 => 'Juttu sisällossa',
-'tooltip-ca-edit'                 => 'Tüü võittõ muuttaa sitä tšültšiä.
+'tooltip-pt-userpage' => 'Teďďee cäüttijäcülci',
+'tooltip-pt-mytalk' => 'Teďďee juttu-cülci',
+'tooltip-pt-preferences' => 'Teďďee koozid',
+'tooltip-pt-watchlist' => 'Spiiska cülcissä, kummad muutussia kattsõõtta',
+'tooltip-pt-mycontris' => 'Spiiska teďďee avittamisiit',
+'tooltip-pt-login' => 'Müü taritsõmmõ teit süäme cirjuttõma, a ebõõ tarvitõttõva',
+'tooltip-pt-logout' => 'Cirjut uloz',
+'tooltip-ca-talk' => 'Juttu sisällossa',
+'tooltip-ca-edit' => 'Tüü võittõ muuttaa sitä cülciä.
 Õõ nii üvä, ennee salvomiss, retsenziroittiga!',
-'tooltip-ca-addsection'           => 'Lissä uusi alaõsa',
-'tooltip-ca-viewsource'           => 'Kase tšültši on varjõttu.
-Että või muuttaa tšültšia, mutta võittõ kattsoa sene lähtekoodi.',
-'tooltip-ca-history'              => 'Sene tšüľľee vanad verzijad',
-'tooltip-ca-protect'              => 'Varjaa kase tšültši',
-'tooltip-ca-delete'               => 'Pühi kase tšültši',
-'tooltip-ca-move'                 => 'Liikut kase tšültši',
-'tooltip-ca-watch'                => 'Lissä kase tšültši kattsõspiiskalõõ',
-'tooltip-ca-unwatch'              => 'Paa kase tšültši Teďďee kattsõspiizgalt poiz',
-'tooltip-search'                  => 'Etsi vikissa',
-'tooltip-search-go'               => 'Mee tšüľľelee, kummall on vakurat sesama nimi (kui eloz on)',
-'tooltip-search-fulltext'         => 'Etsi tšültšiltä sitä tekstiä',
-'tooltip-n-mainpage'              => 'Mee esitšüľľelee',
-'tooltip-n-mainpage-description'  => 'Mee esitšüľľelee',
-'tooltip-n-portal'                => 'Juttua projektissa: Mitä tüü võittõ tehä, kuza levvette mitä',
-'tooltip-n-currentevents'         => 'Lugõ soobšeńńad nütšüizess kõhtoiss',
-'tooltip-n-recentchanges'         => 'Spiiska uusissa muutussissa',
-'tooltip-n-randompage'            => 'Avaa tšültšia kõhtõissi',
-'tooltip-n-help'                  => 'Praavila',
-'tooltip-t-whatlinkshere'         => 'Spiiska kõikkissa tšültšissä, kummad tänne näütellä',
-'tooltip-t-recentchangeslinked'   => 'Viimõizõd muuttussõd tšültšillä, kummalõõ on siittä näüteltü',
-'tooltip-feed-rss'                => 'RSS-söötte selle tšüľľelle',
-'tooltip-feed-atom'               => 'Atom-söötte selle tšüľľelle',
-'tooltip-t-contributions'         => 'Näüt spiiska sene tšäüttijää avittamiss',
-'tooltip-t-emailuser'             => 'Lähettega elektropoštia selle tšäüttijälle',
-'tooltip-t-upload'                => 'Laajõngoit failia ülez (загружать файл)',
-'tooltip-t-specialpages'          => 'Spiiska kõikkissa osoobenoissa tšültšissä',
-'tooltip-t-print'                 => 'Sene tšüľľee petšatoittõva verzija',
-'tooltip-t-permalink'             => 'Postojannoi linkki tšüľľee selle verzijalõõ',
-'tooltip-ca-nstab-main'           => 'Näüt artikkelia',
-'tooltip-ca-nstab-user'           => 'Näüt tšäüttijätšültši',
-'tooltip-ca-nstab-special'        => 'Kase on osoobennoi tšültši, tüü ed saa sitä muuttõma',
-'tooltip-ca-nstab-project'        => 'Näüt projektitšültši',
-'tooltip-ca-nstab-image'          => 'Näüt failitšültši',
-'tooltip-ca-nstab-template'       => 'Näüt šablooni',
-'tooltip-ca-nstab-category'       => 'Näüt gruppatšültši',
-'tooltip-minoredit'               => 'Merkit kase peenessi muutuhsõssi',
-'tooltip-save'                    => 'Salvo muutussõd',
-'tooltip-preview'                 => 'Retsenziroitta muutuss. Õõ nii üvä, ennee salvomiss, retsenziroittiga!',
-'tooltip-diff'                    => 'Näüt tehtüd muutuhsõd',
+'tooltip-ca-addsection' => 'Lissä uusi alaõsa',
+'tooltip-ca-viewsource' => 'Kase cülci on varjõttu.
+Että või muuttaa cülcia, mutta võittõ kattsoa sene lähtekoodi.',
+'tooltip-ca-history' => 'Sene cüľľee vanad verzijad',
+'tooltip-ca-protect' => 'Varjaa kase cülci',
+'tooltip-ca-delete' => 'Pühi kase cülci',
+'tooltip-ca-move' => 'Liikut kase cülci',
+'tooltip-ca-watch' => 'Lissä kase cülci kattsõspiiskalõõ',
+'tooltip-ca-unwatch' => 'Paa kase cülci Teďďee kattsõspiizgalt poiz',
+'tooltip-search' => 'Etsi vikissa',
+'tooltip-search-go' => 'Mee cüľľelee, kummall on vakurat sesama nimi (kui eloz on)',
+'tooltip-search-fulltext' => 'Etsi cülciltä sitä tekstiä',
+'tooltip-p-logo' => 'Mee esicüľľelee',
+'tooltip-n-mainpage' => 'Mee esicüľľelee',
+'tooltip-n-mainpage-description' => 'Mee esicüľľelee',
+'tooltip-n-portal' => 'Juttua projektissa: Mitä tüü võittõ tehä, kuza levvette mitä',
+'tooltip-n-currentevents' => 'Lugõ soobšeńńad nücüizess kõhtoiss',
+'tooltip-n-recentchanges' => 'Spiiska uusissa muutussissa',
+'tooltip-n-randompage' => 'Avaa cülcia kõhtõissi',
+'tooltip-n-help' => 'Praavila',
+'tooltip-t-whatlinkshere' => 'Spiiska kõikkissa cülcissä, kummad tänne näütellä',
+'tooltip-t-recentchangeslinked' => 'Viimõizõd muuttussõd cülcillä, kummalõõ on siittä näüteltü',
+'tooltip-feed-rss' => 'RSS-söötte selle cüľľelle',
+'tooltip-feed-atom' => 'Atom-söötte selle cüľľelle',
+'tooltip-t-contributions' => 'Näüt spiiska sene cäüttijää avittamiss',
+'tooltip-t-emailuser' => 'Lähettega elektropoštia selle cäüttijälle',
+'tooltip-t-upload' => 'Laajõngoit failia ülez',
+'tooltip-t-specialpages' => 'Spiiska kõikkissa osoobenoissa cülcissä',
+'tooltip-t-print' => 'Sene cüľľee pecatoittõva verzija',
+'tooltip-t-permalink' => 'Postojannoi linkki cüľľee selle verzijalõõ',
+'tooltip-ca-nstab-main' => 'Näüt artikkelia',
+'tooltip-ca-nstab-user' => 'Näüt cäüttijäcülci',
+'tooltip-ca-nstab-special' => 'Kase on osoobennoi cülci, tüü ed saa sitä muuttõma',
+'tooltip-ca-nstab-project' => 'Näüt projekticülci',
+'tooltip-ca-nstab-image' => 'Näüt failicülci',
+'tooltip-ca-nstab-template' => 'Näüt šablooni',
+'tooltip-ca-nstab-category' => 'Näüt gruppacülci',
+'tooltip-minoredit' => 'Merkit kase peenessi muutuhsõssi',
+'tooltip-save' => 'Salvo muutussõd',
+'tooltip-preview' => 'Retsenziroitta muutuss. Õõ nii üvä, ennee salvomiss, retsenziroittiga!',
+'tooltip-diff' => 'Näüt tehtüd muutuhsõd',
 'tooltip-compareselectedversions' => 'Näütää vahõd 2 valitsõttuďďõ verzijoďďõ väliz',
-'tooltip-watch'                   => 'Lissä kase tšültši kattsõspiizgallõ',
-'tooltip-rollback'                => 'Vääntega tšüľľee teksti vanõmpi verzijalõõ',
-'tooltip-undo'                    => '"Kummut" väänteeb kasene muutusõõ ja avab artikkelii prestavleńńaa.
+'tooltip-watch' => 'Lissä kase cülci kattsõspiizgallõ',
+'tooltip-rollback' => 'Vääntega cüľľee teksti vanõmpi verzijalõõ',
+'tooltip-undo' => '"Kummut" väänteeb kasene muutusõõ ja avab artikkelii prestavleńńaa.
 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 →',
+'nextdiff' => 'Uuvvõpi muutuz →',
 
 # Media information
 'file-info-size' => '$1 × $2 px, $3, MIME-sortta: $4',
-'file-nohires'   => 'Suurõpaa kuva ebõõ.',
-'svg-long-desc'  => 'SVG-faili $1 × $2 px, failii suuruz: $3',
+'file-nohires' => 'Suurõpaa kuva ebõõ.',
+'svg-long-desc' => 'SVG-faili $1 × $2 px, failii suuruz: $3',
 'show-big-image' => 'Kõrka-rezoľuuttsiin verzija',
 
+# Special:NewFiles
+'ilsubmit' => 'Etsi',
+
 # Bad image list
 'bad_image_list' => 'Spiizgaa formatti on:
 
@@ -601,12 +803,12 @@ Esimein linkki viirulla piäb õllaa linkki kahõpäälizõlõõ faililõõ.
 Kõik muud linkid leeväd pantu panõlõõ nii ku ero.',
 
 # Metadata
-'metadata'          => 'Sisältokuvõtuz',
-'metadata-help'     => 'Kase faili sisältäb lisäinformatsijaa, mikä on lizättü tsifrovoi kamera vai skanera poolt.
+'metadata' => 'Sisältokuvõtuz',
+'metadata-help' => 'Kase faili sisältäb lisäinformatsijaa, mikä on lizättü tsifrovoi kamera vai skanera poolt.
 Kui faili on muutõttu, siiz detaaľid võivad õlla kahõllaizõd muutõtull failill.',
-'metadata-expand'   => 'Näüt lontsõkait detaaľiit',
+'metadata-expand' => 'Näüt lontsõkait detaaľiit',
 'metadata-collapse' => 'Salauta lontsõkait detaaľiit',
-'metadata-fields'   => 'Vahtiaavad platsid õvad vällez kuvatšüľľell, ku sisältotabľittsa on peenettettü.
+'metadata-fields' => 'Vahtiaavad platsid õvad vällez kuvacüľľell, ku sisältotabľittsa on peenettettü.
 * make
 * model
 * datetimeoriginal
@@ -621,21 +823,67 @@ Kui faili on muutõttu, siiz detaaľid võivad õlla kahõllaizõd muutõtull fa
 * gpslongitude
 * gpsaltitude',
 
+# EXIF tags
+'exif-gpstimestamp' => 'GPS-aika',
+'exif-languagecode' => 'Ceeli',
+'exif-iimcategory' => 'Gruppa',
+
+'exif-meteringmode-255' => 'Muu',
+
+'exif-gaincontrol-0' => 'Eb õõ',
+
+'exif-iimcategory-ace' => 'Kunsti ja kulttuuri',
+'exif-iimcategory-hth' => 'Terveüz',
+'exif-iimcategory-pol' => 'Politiikka',
+'exif-iimcategory-wea' => 'Ilma',
+
 # External editor support
-'edit-externally'      => 'Muuttaa sitä failia ulkopoolizõõ prograammiikaa.',
+'edit-externally' => 'Muuttaa sitä failia ulkopoolizõõ prograammiikaa.',
 'edit-externally-help' => '(Kattsoga [//www.mediawiki.org/wiki/Manual:External_editors praavilõd], kui tahotta lisäinformaattsia.)',
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'koko istori',
 'namespacesall' => 'kõik',
-'monthsall'     => 'kõik',
+'monthsall' => 'kõik',
+'limitall' => 'kõik',
+
+# action=purge
+'confirm_purge_button' => 'OK',
+
+# action=watch/unwatch
+'confirm-watch-button' => 'OK',
+'confirm-unwatch-button' => 'OK',
+
+# Table pager
+'table_pager_first' => 'Esimein cülci',
+'table_pager_last' => 'Viimein cülci',
+'table_pager_limit_submit' => 'Mee',
 
 # Watchlist editing tools
 'watchlisttools-view' => 'Näüt muutuhsõd',
 'watchlisttools-edit' => 'Muuttaa spiiskaa',
-'watchlisttools-raw'  => 'Muut lähtefaili',
+'watchlisttools-raw' => 'Muut lähtefaili',
+
+# Special:FilePath
+'filepath-page' => 'Faili:',
+'filepath-submit' => 'Mee',
+
+# Special:FileDuplicateSearch
+'fileduplicatesearch-filename' => 'Failinimi:',
+'fileduplicatesearch-submit' => 'Etsi',
 
 # Special:SpecialPages
-'specialpages' => 'Osoobenoid tšüľľed',
+'specialpages' => 'Osoobenoid cüľľed',
+
+# Special:Tags
+'tags-edit' => 'muuttaa',
+
+# HTML forms
+'htmlform-selectorother-other' => 'Muu',
+
+# Feedback
+'feedback-message' => 'Ilmottamin:',
+'feedback-cancel' => 'Otmeńoit',
+'feedback-close' => 'On tehtü',
 
 );
index 534ebef..0ec7dbe 100644 (file)
@@ -84,7 +84,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Èn nén mostrer les candjmints ddja patrouyîs',
 'tog-newpageshidepatrolled' => 'Èn nén mostrer el djivêye des novelès pådjes les cenes dedja patrouyeyes',
 'tog-extendwatchlist' => "Ragrandi l' djivêye po mostrer tos les candjmints, nén seulmint les dierins",
-'tog-usenewrc' => 'Eployî les ramidrés dierins candjmints (i fåt JavaScript)',
+'tog-usenewrc' => "Relére par pådje dins les dierins candjmints et l' djivêye des shuvous (i fåt JavaScript)",
 'tog-numberheadings' => 'Limerotaedje otomatike des tites',
 'tog-showtoolbar' => "Mostrer l' bår d' usteyes e môde candjmint (JavaScript)",
 'tog-editondblclick' => 'Candjî les pådjes avou on dobe-clitch (JavaScript)',
@@ -1098,6 +1098,7 @@ Ciste infôrmacion serè publike po tertos.",
 'recentchanges' => 'Dierins candjmints',
 'recentchanges-legend' => 'Tchuzes po les dierins candjmints',
 'recentchanges-summary' => "Shuvoz chal les dierins candjmints k' i gn a yeu dsu {{SITENAME}}.",
+'recentchanges-feed-description' => "Shuvoz so ç' canå ci les dierins candjmints k' i gn a yeu sol wiki.",
 'recentchanges-label-newpage' => "Ci candjmint la est èn ahivaedje d' ene nouve pådje",
 'recentchanges-label-minor' => "Ci n' est k' on ptit candjmint",
 'recentchanges-label-bot' => 'Ci candjmint la a stî fwait pa on robot',
@@ -1145,9 +1146,9 @@ Les pådjes ki [[Special:Watchlist|vos shuvoz]] sont-st e '''cråssès letes'''.
 'uploadnologintext' => 'I vs fåt esse [[Special:UserLogin|elodjî]] por vos pleur eberweter des fitchîs.',
 'upload_directory_read_only' => "Li sierveu waibe èn pout nén scrire sol ridant d' eberwetaedje ($1).",
 'uploaderror' => "Aroke d' eberwetaedje",
-'uploadtext' => "Eployîz les boesses d' intrêye chal pa dzo po-z eberweter des noveas fitchîs.
-Po håyner ou cweri des fitchîs k' ont ddja stî rçuvous, alez sol [[Special:FileList|djivêye des fitchîs ddja eberweté]].
-Les (r)eberwetaedjes sont eto metos sol [[Special:Log/uplozf|djournå des eberwetaedjes]], les disfaçaedjes sol [[Special:Log/upload|ci des disfaçaedjes]].
+'uploadtext' => "Eployîz les boesses d' intrêye chal pa dzo po-z eberweter des fitchîs.
+Po håyner ou cweri des fitchîs k' ont ddja stî rçuvous, alez sol [[Special:FileList|djivêye des fitchîs ddja eberwetés]].
+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î
@@ -1192,6 +1193,7 @@ Rivnoz s' i vs plait en erî et s' reberwetez l' fitchî dizo èn ôte no si vos
 'upload-file-error' => 'Divintrinne aroke',
 
 'license' => 'Licince:',
+'license-header' => 'Licince',
 'nolicense' => 'Nole licince tchoezeye',
 'upload_source_file' => ' (on fitchî sol copiutrece da vosse)',
 
@@ -1746,6 +1748,7 @@ Loukîz li [[Special:BlockList|djivêye des blocaedjes]] po verifyî les blocaed
 'unblocklink' => 'disbloker',
 'change-blocklink' => "candjî l' blocaedje",
 'contribslink' => 'contribouwaedjes',
+'emaillink' => 'evoyî èn emile',
 'autoblocker' => "Bloké otomaticmint paski vos eployîz li minme adresse IP ki «[[User:$1|$1]]». Råjhon do blocaedje «'''$2'''».",
 'blocklogpage' => 'Djournå des blocaedjes',
 'blocklogentry' => 'a bloké «[[$1]]» po ene termene di $2 $3',
@@ -1869,7 +1872,7 @@ Et s' el schaper so voste éndjole, et poy li ristitchî droci.",
 'importstart' => "Dj' enonde li ristitchaedje...",
 'import-revision-count' => '{{PLURAL:$1|1 modêye|$1 modêyes}}',
 'importnopages' => 'Nole pådje a ristitchî.',
-'importfailed' => 'Li ristitchaedje a fwait berwete: $1',
+'importfailed' => 'Li ristitchaedje a fwait berwete: <nowiki>$1</nowiki>',
 'importunknownsource' => 'Sourdant nén cnoxhou pol ristitchaedje',
 'importcantopen' => "Dji n' sai drovi l' fitchî a ristitchî",
 'importbadinterwiki' => 'Cron loyén eterwiki',
@@ -1935,12 +1938,12 @@ Vos ploz seulmint vey li côde sourdant, mins nén l' candjî.",
 'tooltip-ca-nstab-media' => 'Vey li pådje di media',
 'tooltip-ca-nstab-special' => "Çouchal, c' est ene pådje sipeciåle, vos n' poloz nén candjî l' pådje leye-minme.",
 'tooltip-ca-nstab-project' => 'Vey li pådje di pordjet',
-'tooltip-ca-nstab-image' => "Vey li pådje d' imådje",
+'tooltip-ca-nstab-image' => 'Vey li pådje do fitchî',
 'tooltip-ca-nstab-mediawiki' => 'Vey li messaedje ratournåve do sistinme',
 'tooltip-ca-nstab-template' => 'Vey li modele',
 'tooltip-ca-nstab-help' => "Vey li pådje d' aidance",
 'tooltip-ca-nstab-category' => 'Vey li pådje di categoreye',
-'tooltip-minoredit' => "Mete çouci come on ptit candjmint d' rén do tot [alt-i]",
+'tooltip-minoredit' => "Mete çouci come on ptit candjmint d' rén do tot",
 'tooltip-save' => 'Schaper vos candjmints [alt-s]',
 'tooltip-preview' => "Prévey vos candjmints, fijhoz l' divant d' schaper s' i vs plait! [alt-p]",
 'tooltip-diff' => 'Mostrer les candjmints ki vos avoz fwait e tecse. [alt-v]',
@@ -1962,7 +1965,7 @@ Dj' ô bén, ça permete di disfé l' candjmint et d' mete on messaedje dins l'
 # Attribution
 'anonymous' => '{{PLURAL:$1|Uzeu anonime|Uzeus anonimes}} di {{SITENAME}}',
 'siteuser' => "$1, {{GENDER:$2|uzeu d'|uzeuse di}} {{SITENAME}}",
-'anonuser' => '$1, {{GENDER:$2|uzeu|uzeuse}} anonime di {{SITENAME}}',
+'anonuser' => '$1, uzeu anonime di {{SITENAME}}',
 'lastmodifiedatby' => 'Cisse pådje a stî candjeye pol dierin côp li $2, $1 pa $3.',
 'othercontribs' => "Båzé so l' ovraedje da $1.",
 'others' => 'co ds ôtes',
index 8c6f606..ba70453 100644 (file)
@@ -70,7 +70,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Tago-a in mga gin-patrol o binantayan nga mga pagliwat ha mga dipala naiha nga mga kabag-ohan',
 'tog-newpageshidepatrolled' => 'Tago-a an mga gin-patrol o binantayan nga mga pakli tikang han talaan hin bag-o nga pakli',
 'tog-extendwatchlist' => 'Padako-a an angay timan-an agod makita an tanan nga kabag-ohan, diri la an gibag-ohi',
-'tog-usenewrc' => 'Gamit hin mga gin-enhans o gindugngan nga gibag-ohi nga mga kabag-ohan (nakinahanglan hin JavaScript)',
+'tog-usenewrc' => 'Gamitin mga gin-enhans o gindugngan nga gibag-ohi nga mga kabag-ohan (nakinahanglan hin JavaScript)',
 'tog-numberheadings' => 'Auto-nga-ihap nga mga pagngaran',
 'tog-showtoolbar' => 'Igpakita an edit toolbar (nakinahanglan hin JavaScript)',
 'tog-editondblclick' => 'Igliwat in mga pakli ha doble nga klik (nakinahanglan hin JavaScript)',
@@ -542,14 +542,18 @@ Kun pidliton mo an \"{{int:savearticle}}\" utro, an imo ginliwat in matitipig bi
 'accmailtitle' => 'Ginpadara na an tigaman-pagsulod.',
 'newarticle' => '(Bag-o)',
 'newarticletext' => "Ginsunod mo an pakli nga waray pa kahihimo.  Para ighimo an pakli, tikanga pagmakinilya ha kahon nga aada ha ubos (kitaa an [[{{MediaWiki:Helppage}}|nabulig nga pakli]] para han kadugangan nga pananabutan).  Kun sayop an imo pagkanhi, igpidlit an imo kanan panngaykay (''browser'') '''balik''' (''back'') nga piridlitan.",
+'noarticletext' => 'Waray yana nahasurat hini nga pakli.
+Puyde hi ikaw [[Special:Search/{{PAGENAME}}|magbiling para han ngaran hini nga pakli]] ha iba nga mga pakli,
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} binga an mga nanginginlabot nga mga log],
+o [{{fullurl:{{FULLPAGENAME}}|action=edit}} igliwat ini nga pakli]</span>.',
 'noarticletext-nopermission' => 'Ha yana waray surat ini nga pakli.
 Puydi nimo [[Special:Search/{{PAGENAME}}|pamilngon ini nga titulo han pakli]] ha iba nga mga pakli,
 o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pamilngon ha mga kasumpay nga talaan]</span>.',
 'userpage-userdoesnotexist-view' => "An akawnt han gumaramit ni ''$1'' in diri nakarehistro.",
 'updated' => '(Ginbag-ohan)',
 'note' => "'''Pahibaro:'''",
-'previewnote' => "'''Hinumdumi nga pahiuna-nga-paggawas la ini.'''
-An imo mga ginbag-o in waray pa katipig!",
+'previewnote' => "'''Hinumdumi nga pahiuna-nga-paggawas pa la ini.'''
+¡Waray pa katipig an imo mga ginbag-o!",
 'editing' => 'Ginliliwat an $1',
 'editingsection' => 'Ginliliwat an $1 (bahin)',
 'editingcomment' => 'Ginliliwat an $1 (bag-o nga bahin)',
@@ -1349,6 +1353,8 @@ An bisan ano nga masunod nga mga sumpay ha kapareho nga bagis in igtratrato nga
 
 # Metadata
 'metadata' => 'Metadata',
+'metadata-help' => 'Iní nga paypay mayda dugang nga pagpasabot, nga bangin gindugáng tikang han digital nga camera o iskaner nga gin-gamit paghimo o pag-digitar hini.
+Kon an paypay ginliwat tikang han orihinal nga kamutangan, mayda mga detalye nga bangin diri magpakita han ginliwat nga paypay',
 'metadata-fields' => 'An mga rumbay han hulagway han metadato nga nakatala dinhi nga mensahe in iglalakip ha padayag hin hulagway nga pakli kun an taramdan metadato in nakalukot.
 An iba in daan nakatago.
 * make
@@ -1505,6 +1511,16 @@ An iba in daan nakatago.
 'blankpage' => 'Blanko nga pakli',
 'intentionallyblankpage' => 'Ini nga pakli gintuyo pagpabilin nga blanko.',
 
+# External image whitelist
+'external_image_whitelist' => '#Pabay-i ini nga linea nga sugad gud la <pre>
+#Igbutang in mga regular nga expresyon nga mga fragment (iton bahin nga ada ha butnga han //) ha ubos
+#Ini igpapadis han mga URL han mga ha gawas (gin-hotlink) nga mga hulagway
+#An mga nasakto igpapakita nga mga hulagway, kon diri, sumpay la ngadto han hulagway an igpapakita
+#Mga linea nga natikang hin  # ginta-tratar nga mga komento
+# Case-insensitive ini
+
+#Igbutang an mga regex nga fragment ha igbaw hini nga linea. Pabay-i ini nga linea nga sugad gud la</pre>',
+
 # Special:Tags
 'tag-filter' => '[[Special:Tags|Tag]] panara:',
 'tag-filter-submit' => 'Panara',
index 957e17d..02fd042 100644 (file)
@@ -196,15 +196,15 @@ $messages = array(
 'tog-editsectiononrightclick' => 'באמעגליך פאראגראף ענדערונגען דורכן קוועטשן אויפן רעכטן<br />אויף אפטייל קעפל (JavaScript)',
 'tog-showtoc' => 'ווייז דאס אינהאלט קעסטל<br />(פאר בלעטער מיט מער ווי 3 קעפלעך)',
 'tog-rememberpassword' => 'געדענק מיין אריינלאגירן אין דעם בלעטערער (ביז $1 {{PLURAL:$1|טאָג|טעג}})',
-'tog-watchcreations' => 'צולייגן בלעטער וואס איך באשאף צו מיין אכטונג ליסטע',
+'tog-watchcreations' => 'צ×\95×\9c×\99×\99×\92×\9f ×\91×\9c×¢×\98ער ×\95×\95×\90ס ×\90×\99×\9a ×\91×\90ש×\90×£ ×\90×\95×\9f ×\98עקעס ×\95×\95×\90ס ×\90×\99×\9a ×\9c×\90×\93 ×\90ר×\95×\99×£ ×¦×\95 ×\9e×\99×\99×\9f ×\90×\9b×\98×\95× ×\92 ×\9c×\99ס×\98×¢',
 'tog-watchdefault' => 'אויפפאסן אױטאָמאַטיש די ארטיקלען װאָס איך באַאַרבעט',
-'tog-watchmoves' => 'צולייגן בלעטער וואס איך באוועג צו מיין אכטונג ליסטע',
+'tog-watchmoves' => 'צ×\95×\9c×\99×\99×\92×\9f ×\91×\9c×¢×\98ער ×\95×\95×\90ס ×\90×\99×\9a ×\91×\90×\95×\95×¢×\92 ×\90×\95×\9f ×\98עקעס ×\95×\95×\90ס ×\90×\99×\9a ×\9c×\90×\93 ×\90ר×\95×\99×£ ×¦×\95 ×\9e×\99×\99×\9f ×\90×\9b×\98×\95× ×\92 ×\9c×\99ס×\98×¢',
 'tog-watchdeletion' => 'צולייגן בלעטער וואס איך מעק אויס צו מיין אויפפאסונג ליסטע',
 'tog-minordefault' => 'באגרענעצן אלע רעדאַקטירונגען גרונטלעך אלס מינערדיק',
 'tog-previewontop' => 'צײַג די "פֿאָרויסיגע װײַזונג" גלײַך בײַ דער ערשטער באַאַרבעטונג',
 'tog-previewonfirst' => 'ווייזן פֿאראויסדיגע ווייזונג בײַ דער ערשטער רעדאקטירונג',
 'tog-nocache' => 'מבטל זײַן האַלטן בלעטער אין זאַפאַס',
-'tog-enotifwatchlistpages' => 'שיק מיר א בליצבריוו ווען א בלאט וואס איך פאס אויף ווערט געענדערט',
+'tog-enotifwatchlistpages' => 'שיקט מיר א בליצבריוו ווען א בלאט וואס איך פאס אויף ווערט געענדערט',
 'tog-enotifusertalkpages' => 'שיקט מיר ע-פאסט ווען עס ווערט געענדערט מיין באניצער רעדן בלאט',
 'tog-enotifminoredits' => 'שיקט מיר ע-פאסט אויך פֿאַר מינערדיקע רעדאַקטירונגען פֿון בלעטער',
 'tog-enotifrevealaddr' => 'דעק אויף מיין בליצפאסט אדרעס אין פאסט מודעות',
@@ -242,9 +242,9 @@ $messages = array(
 'editfont-serif' => 'סעריף שריפֿט',
 
 # Dates
-'sunday' => '×\96×\95× ×\98×\90ג',
+'sunday' => '×\96×\95× ×\98×\99ג',
 'monday' => 'מאָנטיג',
-'tuesday' => '×\93×\99נס×\98×\90ג',
+'tuesday' => '×\93×\99נס×\98×\99ג',
 'wednesday' => 'מיטװאָך',
 'thursday' => 'דאָנערשטאג',
 'friday' => 'פרייטיג',
@@ -258,7 +258,7 @@ $messages = array(
 'sat' => 'שבת',
 'january' => 'יאַנואַר',
 'february' => 'פֿעברואַר',
-'march' => '×\9e×\90Ö·רץ',
+'march' => '×\9e×¢רץ',
 'april' => 'אַפּריל',
 'may_long' => 'מײַ',
 'june' => 'יוני',
@@ -282,7 +282,7 @@ $messages = array(
 'december-gen' => 'דעצעמבער',
 'jan' => 'יאַנ׳',
 'feb' => 'פֿעב׳',
-'mar' => '×\9e×\90Ö·ר׳',
+'mar' => '×\9e×¢ר׳',
 'apr' => 'אַפּר׳',
 'may' => 'מײַ',
 'jun' => 'יונ׳',
@@ -1062,6 +1062,9 @@ $2
 'revdelete-show-file-submit' => 'יא',
 'revdelete-selected' => "'''{{PLURAL:$2|אויסדערוויילטע ווערסיע| אויסדערוויילטע ווערסיעס}} פון [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1| אויסדערוויילטע לאג אקציע|אויסדערוויילטע לאג אקציעס}}:'''",
+'revdelete-text' => "'''אויסגעמעקטע רעוויזיעס און געשעענישן וועלן בלייבן אין דער בלאט היסטאריע און די לאגביכער, אבער טיילן פון זייער אינהאלט וועט ווערן אומגרייכלעך צום קהל. '''
+אנדערע סיסאפן אויף {{SITENAME}} וועלן נאך האבן צוטריט צום באהאלטענעם אינהאלט און קענען אים צוריקשטעלן דורך דעם זעלבן אייבערפלאך,  אחוץ ווען מען שטעלט נאך באגרענעצונגען.",
+'revdelete-confirm' => 'זייט אזוי גוט און באשטעטיקט אז דאס איז טאקע אייער כוונה, אז איר פארשטייט די קאנסעקווענצן, און אז איר טוט דאס לויט  [[{{MediaWiki:Policy-url}}|דער פאליסי]].',
 'revdelete-suppress-text' => "באהאלטן זאל בלויז גענוצט ווערן '''נאר''' אין די פאלגענדע פעלער:
 * אויפדעקונג פון פריוואטקייט אינפארמאציע
 * ''היים אדרעסן, טעלעפאן נומערן, אדער סאשעל סעקיורעטי, א.א.וו.:'''",
@@ -1674,6 +1677,8 @@ $1",
 
 # Special:UploadStash
 'uploadstash' => 'אַרויפֿלאָד רעזערוו',
+'uploadstash-clear' => 'אויסמעקן טעקעס פון זאפאס',
+'uploadstash-nofiles' => 'איר האט נישט קיין טעקעס אין זאפאס.',
 'uploadstash-refresh' => 'דערפֿרישן די רשימה פון טעקעס',
 
 # img_auth script messages
@@ -2689,6 +2694,8 @@ $1',
 'javascripttest-disabled' => 'די  פֿונקציע איז אומאַקטיווירט אין דער דאזיקער וויקי.',
 'javascripttest-title' => 'דורכפירנדיק $1 בדיקות',
 'javascripttest-pagetext-skins' => 'קלויבט א באניצער־אייבערפלאך מיט וואס דורכצופירן די בדיקות:',
+'javascripttest-qunit-intro' => 'זעט [$1 דאקומענטאציע פאר טעסטן] בײַ mediawiki.org.',
+'javascripttest-qunit-heading' => 'מעדיעוויקי JavaScript QUnit קאנטראל־פראגראם',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'אייער באניצער בלאט',
index e0a920d..e6a6d6c 100644 (file)
@@ -277,7 +277,7 @@ $messages = array(
 'tog-hidepatrolled' => '在最近更改中隐藏已巡查编辑',
 'tog-newpageshidepatrolled' => '在新页面列表中隐藏已巡查页面',
 'tog-extendwatchlist' => '扩大监视列表以显示所有更改而不仅是最近更改',
-'tog-usenewrc' => '启用增强最近更改(需要JavaScript)',
+'tog-usenewrc' => '根据页面分组最近更改和监视列表(需要JavaScript)',
 'tog-numberheadings' => '标题自动编号',
 'tog-showtoolbar' => '显示编辑工具条(需要JavaScript)',
 'tog-editondblclick' => '双击时编辑页面(需要JavaScript)',
@@ -535,7 +535,7 @@ $1',
 'youhavenewmessages' => '你有$1($2)。',
 'newmessageslink' => '新信息',
 'newmessagesdifflink' => '最后更改',
-'youhavenewmessagesmulti' => '您在$1有一条新信息',
+'youhavenewmessagesmulti' => '你在$1有新信息',
 'editsection' => '编辑',
 'editold' => '编辑',
 'viewsourceold' => '查看源代码',
@@ -651,6 +651,8 @@ $2',
 管理员对锁定它给出的解释是:“$3”。',
 'invalidtitle-knownnamespace' => '使用名字空间“$2”和文本“$3”的无效标题',
 'invalidtitle-unknownnamespace' => '使用未知名字空间编号$1和文本“$2”的无效标题',
+'exception-nologin' => '未登陆',
+'exception-nologin-text' => '此动作需要先登陆到此 wiki',
 
 # Virus scanner
 'virus-badscanner' => "错误的配置:未知的病毒扫描程序:''$1''",
@@ -836,7 +838,7 @@ $2
 'anoneditwarning' => "'''警告:'''您没有登录。
 您的IP地址将记录在此页的编辑历史中。",
 'anonpreviewwarning' => "''您没有登录。保存页面将会把您的IP地址记录在此页的编辑历史中。''",
-'missingsummary' => "'''提示:''' 您没有提供一个编辑摘要。如果您再次单击“{{int:savearticle}}”,您的编辑将不带编辑摘要保存。",
+'missingsummary' => "'''提示:'''你没有提供编辑摘要。如果你再次点击“{{int:savearticle}}”,你的编辑将不带编辑摘要保存。",
 'missingcommenttext' => '请在下面输入评论。',
 'missingcommentheader' => "'''提示:''' 您没有为此评论提供一个标题。如果您再次单击“{{int:savearticle}}”,您的编辑将不带标题保存。",
 'summary-preview' => '摘要预览:',
@@ -946,8 +948,8 @@ $2
 
 锁定数据库的管理员有如下解释:$1",
 'protectedpagewarning' => "'''警告:本页面已被保护,只有拥有管理员权限的用户可以编辑。'''下面提供最后的日志条目以供参考:",
-'semiprotectedpagewarning' => "'''注意:''' 本页面已被保护,只有注册用户可以编辑。下面提供最后的日志条目以供参考:",
-'cascadeprotectedwarning' => "'''è­¦å\91\8aï¼\9a'''æ\9c¬é¡µé\9d¢å·²è¢«ä¿\9dæ\8a¤ï¼\8cå\8fªæ\9c\89æ\8b¥æ\9c\89管ç\90\86å\91\98æ\9d\83é\99\90ç\9a\84ç\94¨æ\88·å\8f¯ä»¥ç¼\96è¾\91ï¼\8cå\9b ä¸ºå\85¶å\8c\85å\90«äº\8eä¸\8bå\88\97受连锁保护的{{PLURAL:$1|页面}}:",
+'semiprotectedpagewarning' => "'''注意:'''本页面已被保护,只有注册用户可以编辑。下面提供最后的日志条目以供参考:",
+'cascadeprotectedwarning' => "'''è­¦å\91\8aï¼\9a'''æ\9c¬é¡µé\9d¢å·²è¢«ä¿\9dæ\8a¤ï¼\8cå\8fªæ\9c\89æ\8b¥æ\9c\89管ç\90\86å\91\98æ\9d\83é\99\90ç\9a\84ç\94¨æ\88·å\8f¯ä»¥ç¼\96è¾\91ï¼\8cå\9b ä¸ºå\85¶å\8c\85å\90«äº\8e以ä¸\8b受连锁保护的{{PLURAL:$1|页面}}:",
 'titleprotectedwarning' => "'''警告:本页面已被保护,创建本页面需要[[Special:ListGroupRights|特定权限]]。'''下面提供最后的日志条目以供参考:",
 'templatesused' => '该页面使用的{{PLURAL:$1|模板}}:',
 'templatesusedpreview' => '本预览使用的{{PLURAL:$1|模板}}:',
@@ -955,14 +957,14 @@ $2
 'template-protected' => '(保护)',
 'template-semiprotected' => '(半保护)',
 'hiddencategories' => '本页面属于$1个隐藏分类:',
-'edittools' => '<!-- 这里的文字将显示在编辑和上传表单下方。 -->',
+'edittools' => '<!-- 这里的文字将显示在编辑和上传表格下面。 -->',
 'nocreatetitle' => '创建页面受限',
 'nocreatetext' => '{{SITENAME}}限制了创建新页面的功能。你可以返回并编辑已有的页面,或者[[Special:UserLogin|登录或创建新账户]]。',
 'nocreate-loggedin' => '你没有权限创建新页面。',
 'sectioneditnotsupported-title' => '段落编辑不支持',
 'sectioneditnotsupported-text' => '本页面不支持段落编辑。',
 'permissionserrors' => '权限错误',
-'permissionserrorstext' => '根据下列{{PLURAL:$1|原因}},你没有权限进行本操作:',
+'permissionserrorstext' => '因为以下{{PLURAL:$1|原因}},你没有权限进行该操作:',
 'permissionserrorstext-withaction' => '因为以下{{PLURAL:$1|原因}},你没有权限$2:',
 'recreate-moveddeleted-warn' => "'''警告:你正在重新创建曾经被删除的页面。'''
 
@@ -1044,14 +1046,14 @@ $3的理由是''$2''",
 尝试[[Special:Search|搜索本站]]获得相关的新建页面。',
 
 # Revision deletion
-'rev-deleted-comment' => '(编辑摘要删除)',
-'rev-deleted-user' => '(用户名删除)',
-'rev-deleted-event' => '(日志条目删除)',
-'rev-deleted-user-contribs' => '[用户名或IP地址已移除 - 从贡献中隐藏编辑]',
+'rev-deleted-comment' => '(编辑摘要删除)',
+'rev-deleted-user' => '(用户名删除)',
+'rev-deleted-event' => '(日志条目删除)',
+'rev-deleted-user-contribs' => '[用户名或IP地址被删除 - 编辑在贡献中隐藏]',
 'rev-deleted-text-permission' => "本页面版本已被'''删除'''。详情请见[{{fullurl:{{#Special:Log}}/delete|page={{PAGENAMEE}}}} 删除日志]。",
 'rev-deleted-text-unhide' => "本页面版本已被'''删除'''。详情请见[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]。如果你想继续操作,你仍然可以[$1 查看本版本]。",
 'rev-suppressed-text-unhide' => "该页面修订已经被'''监督隐藏'''。在[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 监督日志]中可以找到详细的信息。如果您想继续的话,您可以仍然[$1 去查看这次修订]。",
-'rev-deleted-text-view' => "该页面修订已经被'''删除'''。您可以查看它。在[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]中可以找到详细的信息。",
+'rev-deleted-text-view' => "本页面版本已被'''删除'''。你可以查看它,详情请见[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]。",
 'rev-suppressed-text-view' => "该页面修订已经被'''监督隐藏'''。您可以查看它。在[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 监督日志]中可以找到详细的信息。",
 'rev-deleted-no-diff' => "因为其中一次修订已被'''删除''',您不可以查看这个差异。
 在[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]中可以找到更多的信息。",
@@ -1153,7 +1155,7 @@ $1",
 'mergelog' => '合并日志',
 'pagemerge-logentry' => '合并[[$1]]至[[$2]](版本截至$3)',
 'revertmerge' => '解除合并',
-'mergelogpagetext' => '以ä¸\8bæ\98¯ä¸\80个æ\9c\80è¿\91ç\94±ä¸\80个页é\9d¢ç\9a\84修订å\8e\86å\8f²å\90\88并å\88°å\8f¦ä¸\80个页é\9d¢的列表。',
+'mergelogpagetext' => 'ä¸\8bé\9d¢æ\98¯æ\9c\80è¿\91ç\9a\84页é\9d¢å\8e\86å\8f²å\90\88并的列表。',
 
 # Diffs
 'history-title' => '“$1”的版本历史',
@@ -1205,7 +1207,7 @@ $1",
 'search-redirect' => '(重定向自“$1”)',
 'search-section' => '(“$1”段落)',
 'search-suggest' => '您是不是要找:$1',
-'search-interwiki-caption' => 'å§\90妹项目',
+'search-interwiki-caption' => 'å§\8a妹项目',
 'search-interwiki-default' => '$1项结果:',
 'search-interwiki-more' => '(更多)',
 'search-mwsuggest-enabled' => '有建议',
@@ -1249,9 +1251,9 @@ $1",
 'changepassword' => '更改密码',
 'prefs-skin' => '皮肤',
 'skin-preview' => '预览',
-'datedefault' => '默认',
+'datedefault' => '默认格式',
 'prefs-beta' => '测试版特色',
-'prefs-datetime' => '日期时间',
+'prefs-datetime' => '日期时间',
 'prefs-labs' => '实验室特色',
 'prefs-user-pages' => '用户页面',
 'prefs-personal' => '用户资料',
@@ -1291,7 +1293,7 @@ $1",
 'timezoneuseoffset' => '其它(指定时差)',
 'timezoneoffset' => '时差¹:',
 'servertime' => '服务器时间:',
-'guesstimezone' => 'ä»\8eæµ\8fè§\88å\99¨å¡«å\86\99',
+'guesstimezone' => '使ç\94¨æµ\8fè§\88å\99¨è®¾ç½®',
 'timezoneregion-africa' => '非洲',
 'timezoneregion-america' => '美洲',
 'timezoneregion-antarctica' => '南极洲',
@@ -1332,12 +1334,12 @@ $1",
 'gender-male' => '男',
 'gender-female' => '女',
 'prefs-help-gender' => '选填项目。使软件使用正确的性别称呼。该信息将会公开。',
-'email' => '电子邮',
+'email' => '电子邮',
 'prefs-help-realname' => '真实姓名是选填项目。如果你选择提供它,它将会用于贡献署名。',
 'prefs-help-email' => '电子邮件地址是选填项目。但是在你忘记密码需要重置密码时需要电子邮件地址。',
 'prefs-help-email-others' => '你亦可以选择让其他用户通过你的用户页或讨论页上的链接用电子邮件联系你。其他用户联系你时你的电子邮件地址不会显示。',
 'prefs-help-email-required' => '电子邮件地址是必填项目。',
-'prefs-info' => '基本资料',
+'prefs-info' => '基本信息',
 'prefs-i18n' => '界面语言',
 'prefs-signature' => '签名',
 'prefs-dateformat' => '日期格式',
@@ -1347,10 +1349,10 @@ $1",
 'prefs-advancedrendering' => '高级选项',
 'prefs-advancedsearchoptions' => '高级选项',
 'prefs-advancedwatchlist' => '高级选项',
-'prefs-displayrc' => '显示选项',
-'prefs-displaysearchoptions' => '显示选项',
-'prefs-displaywatchlist' => '显示选项',
-'prefs-diffs' => '差异',
+'prefs-displayrc' => '显示',
+'prefs-displaysearchoptions' => '显示',
+'prefs-displaywatchlist' => '显示',
+'prefs-diffs' => '差异对比',
 
 # User preference: e-mail validation using jQuery
 'email-address-validity-valid' => '电子邮件地址有效',
@@ -1466,7 +1468,7 @@ $1",
 # User rights log
 'rightslog' => '用户权限日志',
 'rightslogtext' => '这是用户权限更改的日志。',
-'rightslogentry' => '更改$1的用户组自$2至$3',
+'rightslogentry' => '将$1的用户组由$2更改为$3',
 'rightslogentry-autopromote' => '被自动提升自$2至$3',
 'rightsnone' => '(无)',
 
@@ -1516,7 +1518,7 @@ $1",
 'recentchanges-label-newpage' => '这次编辑建立了一个新页面',
 'recentchanges-label-minor' => '这是一个小编辑',
 'recentchanges-label-bot' => '这次编辑是由机器人进行',
-'recentchanges-label-unpatrolled' => 'è¿\99次ç¼\96è¾\91å°\9aæ\9cªå·¡æ\9f¥è¿\87',
+'recentchanges-label-unpatrolled' => '该ç¼\96è¾\91å°\9aæ\9cªå·¡æ\9f¥',
 'rcnote' => "下面是最后'''$2'''天的最后'''$1'''个更改,截至$4 $5。",
 'rcnotefrom' => "下面是自'''$2'''起的更改(最多显示'''$1'''个)。",
 'rclistfrom' => '显示自$1起的新更改',
@@ -2007,14 +2009,13 @@ $1',
 'booksources-invalid-isbn' => '提供的ISBN号码并不正确,请检查原始复制来源号码是否有误。',
 
 # Special:Log
-'specialloguserlabel' => 'æ\93\8dä½\9c者:',
+'specialloguserlabel' => 'æ\89§è¡\8c者:',
 'speciallogtitlelabel' => '目标(标题或用户):',
 'log' => '日志',
 'all-logs-page' => '所有公开日志',
-'alllogstext' => '综合显示{{SITENAME}}所有的可用日志。
-您可以选择日志类型,用户名(区分大小写)或者相关页面(区分大小写)来缩小查询范围。',
+'alllogstext' => '所有{{SITENAME}}公开日志的联合展示。你可以通过选择日志类型、输入用户名(区分大小写)或相关页面(区分大小写)筛选日志条目。',
 'logempty' => '在日志中不存在匹配项。',
-'log-title-wildcard' => 'æ\90\9c索以è¿\99个æ\96\87å­\97å¼\80å§\8b的标题',
+'log-title-wildcard' => 'æ\90\9c索以该æ\96\87å­\97å¼\80头的标题',
 'showhideselectedlogentries' => '显示/隐藏所选日志项',
 
 # Special:AllPages
@@ -2081,7 +2082,7 @@ $1',
 
 # Special:Log/newusers
 'newuserlogpage' => '用户创建日志',
-'newuserlogpagetext' => '本日志是显示新注册用户的日志',
+'newuserlogpagetext' => '这是用户创建的日志。',
 
 # Special:ListGroupRights
 'listgrouprights' => '用户组权限',
@@ -2107,8 +2108,7 @@ $1',
 'mailnologintext' => '你必须[[Special:UserLogin|登录]]并在你的[[Special:Preferences|系统设置]]中拥有有效的电子邮件地址才能向其他用户发送电子邮件。',
 'emailuser' => '电邮联系',
 'emailpage' => '电邮联系',
-'emailpagetext' => '您可以用下面的表格去寄一封电邮给这位用户。
-您在[[Special:Preferences|您的参数设置]]中所输入的电子邮箱地址将出现在邮件“发件人”一栏中,这样该用户就可以回复您。',
+'emailpagetext' => '你可以使用下面的表格向该用户发送电子邮件信息。你在[[Special:Preferences|你的系统设置]]中输入的电子邮件地址将显示为邮件的“发件人”地址,所以该用户将可以直接回复你。',
 'usermailererror' => 'Mail 对象返回错误:',
 'defemailsubject' => '{{SITENAME}}来自用户“$1”的电子邮件',
 'usermaildisabled' => '用户电邮已停用',
@@ -2225,7 +2225,7 @@ $UNWATCHURL
 'actionfailed' => '操作失败',
 'deletedtext' => '“$1”已经被删除。最近删除的记录请参见$2。',
 'dellogpage' => '删除日志',
-'dellogpagetext' => '以ä¸\8b是最近的删除的列表。',
+'dellogpagetext' => 'ä¸\8bé\9d¢是最近的删除的列表。',
 'deletionlog' => '删除记录',
 'reverted' => '恢复到早期版本',
 'deletecomment' => '原因:',
@@ -2235,7 +2235,7 @@ $UNWATCHURL
 ** 作者申请
 ** 侵犯著作权
 ** 破坏行为',
-'delete-edit-reasonlist' => '编辑删除理由',
+'delete-edit-reasonlist' => '编辑删除原因',
 'delete-toobig' => '这个页面有一个十分大量的编辑历史,超过$1次修订。删除此类页面的动作已经被限制,以防止在{{SITENAME}}上的意外扰乱。',
 'delete-warning-toobig' => '这个页面有一个十分大量的编辑历史,超过$1次修订。删除它可能会扰乱{{SITENAME}}的数据库操作;在继续此动作前请小心。',
 
@@ -2261,9 +2261,9 @@ $UNWATCHURL
 
 # Protect
 'protectlogpage' => '保护日志',
-'protectlogtext' => '以ä¸\8bæ\98¯é¡µé\9d¢ä¿\9dæ\8a¤ç\9a\84æ\9b´æ\94¹æ\97¥å¿\97ã\80\82[[Special:ProtectedPages|ä¿\9dæ\8a¤é¡µå\88\97表]]å\88\97å\87ºç\9b®å\89\8då­\98å\9c¨ç\9a\84页é\9d¢ä¿\9dæ\8a¤。',
+'protectlogtext' => 'ä¸\8bé\9d¢æ\98¯é¡µé\9d¢ä¿\9dæ\8a¤æ\9b´æ\94¹ç\9a\84å\88\97表ã\80\82请è§\81[[Special:ProtectedPages|å\8f\97ä¿\9dæ\8a¤é¡µé\9d¢å\88\97表]]æ\9f¥ç\9c\8bç\9b®å\89\8dæ­£å\9c¨è¿\9bè¡\8cç\9a\84页é\9d¢ä¿\9dæ\8a¤ç\9a\84å\88\97表。',
 'protectedarticle' => '保护“[[$1]]”',
-'modifiedarticleprotection' => 'æ\9b´æ\94¹â\80\9c[[$1]]â\80\9dç\9a\84ä¿\9dæ\8a¤çº§å\88«',
+'modifiedarticleprotection' => 'æ\9b´æ\94¹â\80\9c[[$1]]â\80\9dç\9a\84ä¿\9dæ\8a¤ç­\89级',
 'unprotectedarticle' => '删除“[[$1]]”的保护',
 'movedarticleprotection' => '移动保护设置自“[[$2]]”至“[[$1]]”',
 'protect-title' => '更改“$1”的保护等级',
@@ -2302,7 +2302,7 @@ $UNWATCHURL
 ** 过多垃圾信息
 ** 负面的编辑战
 ** 高流量页面',
-'protect-edit-reasonlist' => '编辑保护理由',
+'protect-edit-reasonlist' => '编辑保护原因',
 'protect-expiry-options' => '1小时:1 hour,1天:1 day,1周:1 week,2周:2 weeks,1个月:1 month,3个月:3 months,6个月:6 months,1年:1 year,无限期:infinite',
 'restriction-type' => '权限:',
 'restriction-level' => '限制级别:',
@@ -2408,7 +2408,7 @@ $1',
 'whatlinkshere' => '链入页面',
 'whatlinkshere-title' => '链接至“$1”的页面',
 'whatlinkshere-page' => '页面:',
-'linkshere' => "ä¸\8bå\88\97页面链接至'''[[:$1]]''':",
+'linkshere' => "以ä¸\8b页面链接至'''[[:$1]]''':",
 'nolinkshere' => "没有页面链接至'''[[:$1]]'''。",
 'nolinkshere-ns' => "在所选的名字空间内没有页面链接到'''[[:$1]]'''。",
 'isredirect' => '重定向页',
@@ -2424,7 +2424,7 @@ $1',
 'whatlinkshere-filters' => '过滤器',
 
 # Block/unblock
-'autoblockid' => '自动查封 #$1',
+'autoblockid' => '自动封禁#$1',
 'block' => '封禁用户',
 'unblock' => '解封用户',
 'blockip' => '封禁用户',
@@ -2445,7 +2445,7 @@ $1',
 ** 恐吓行为/骚扰
 ** 滥用多个账户
 ** 不能接受的用户名',
-'ipb-hardblock' => 'é\98²æ­¢å·²ç\99»å½\95ç\9a\84ç\94¨æ\88·ä»\8e该IP地址编辑',
+'ipb-hardblock' => 'é\98»æ­¢ç\99»å½\95ç\94¨æ\88·ä½¿ç\94¨该IP地址编辑',
 'ipbcreateaccount' => '阻止创建新账号',
 'ipbemailban' => '阻止用户发送电邮',
 'ipbenableautoblock' => '自动封禁该用户最后使用的IP地址,以及他们随后试图用于编辑的所有IP地址',
@@ -2455,8 +2455,8 @@ $1',
 'ipbotheroption' => '其他',
 'ipbotherreason' => '其他/附加原因:',
 'ipbhidename' => '在编辑及列表中隐藏用户名',
-'ipbwatchuser' => 'ç\9b\91è§\86è¿\99ä½\8dç\94¨æ\88·ç\9a\84ç\94¨æ\88·é¡µé\9d¢ä»¥å\8f\8aå\85¶å¯¹è¯\9d页面',
-'ipb-disableusertalk' => '禁止被封禁用户编辑自己的对话页',
+'ipbwatchuser' => 'ç\9b\91è§\86该ç\94¨æ\88·ç\9a\84ç\94¨æ\88·é¡µé\9d¢å\92\8c讨论页面',
+'ipb-disableusertalk' => '阻止用户在封禁期间编辑自己的讨论页面',
 'ipb-change-block' => '使用这些设置重新封禁用户',
 'ipb-confirm' => '确认封禁',
 'badipaddress' => '无效IP地址',
@@ -2465,7 +2465,7 @@ $1',
 参见[[Special:BlockList|封禁列表]]以复核封禁。',
 'ipb-blockingself' => '您将要封禁自己!确实要这样做吗?',
 'ipb-confirmhideuser' => '您即将在封禁用户的同时启用“隐藏账户”功能。这将从所有列表和日志记录中隐藏这个用户名。您确认这样做吗?',
-'ipb-edit-dropdown' => '编辑封禁理由',
+'ipb-edit-dropdown' => '编辑封禁原因',
 'ipb-unblock-addr' => '解封$1',
 'ipb-unblock' => '解封用户名或IP地址',
 'ipb-blocklist' => '查看现有封禁',
@@ -2478,48 +2478,48 @@ $1',
 'unblocked-id' => '封禁$1已被解除',
 'blocklist' => '被封禁用户',
 'ipblocklist' => '被封禁用户',
-'ipblocklist-legend' => '查找封禁用户',
+'ipblocklist-legend' => '查找封禁用户',
 'blocklist-userblocks' => '隐藏帐户封禁',
 'blocklist-tempblocks' => '隐藏临时封禁',
 'blocklist-addressblocks' => '隐藏单个IP封禁',
 'blocklist-rangeblocks' => '隐藏IP段封禁',
-'blocklist-timestamp' => '时间',
+'blocklist-timestamp' => '时间',
 'blocklist-target' => '目标',
-'blocklist-expiry' => '期',
-'blocklist-by' => '执行者',
-'blocklist-params' => 'å°\81ç¦\81设置',
+'blocklist-expiry' => '期',
+'blocklist-by' => '封禁管理员',
+'blocklist-params' => 'å°\81ç¦\81è\8c\83å\9b´',
 'blocklist-reason' => '原因',
 'ipblocklist-submit' => '搜索',
 'ipblocklist-localblock' => '本地封禁',
 'ipblocklist-otherblocks' => '其他{{PLURAL:$1|封禁}}',
 'infiniteblock' => '无限期',
 'expiringblock' => '$1 $2到期',
-'anononlyblock' => '仅匿名用户',
-'noautoblockblock' => '禁用自动封禁',
-'createaccountblock' => '禁止创建账户',
-'emailblock' => 'ç¦\81æ­¢ç\94µå­\90é\82®ä»¶',
-'blocklist-nousertalk' => '禁止编辑自己的用户讨论页',
+'anononlyblock' => '仅匿名用户',
+'noautoblockblock' => '自动封禁停用',
+'createaccountblock' => '账户创建停用',
+'emailblock' => 'ç\94µå­\90é\82®ä»¶å\81\9cç\94¨',
+'blocklist-nousertalk' => '不能编辑自己的讨论页面',
 'ipblocklist-empty' => '封禁列表为空。',
 'ipblocklist-no-results' => '请求的IP地址或用户名没有被封禁。',
 'blocklink' => '封禁',
-'unblocklink' => '解é\99¤å°\81ç¦\81',
+'unblocklink' => '解å°\81',
 'change-blocklink' => '更改封禁',
 'contribslink' => '贡献',
 'emaillink' => '发送电邮',
 'autoblocker' => '由于您与“[[User:$1|$1]]”共享一个IP地址而被自动封禁。
 $1被封禁的理由是:“$2”',
 'blocklogpage' => '封禁日志',
-'blocklog-showlog' => '此用户曾被封禁。以下列出封禁日志以供参考:',
-'blocklog-showsuppresslog' => '此用户曾被封禁并隐藏。以下列出隐藏日志以供参考:',
-'blocklogentry' => '封禁[[$1]],终止时间为$2$3',
-'reblock-logentry' => '更改[[$1]]的封禁终止时间 $2 $3',
-'blocklogtext' => '此处给出了封禁和解封用户的操作日志,被自动封禁的IP地址不在此表。请查看[[Special:BlockList|封禁列表]]获知当前被封禁的用户和IP地址。',
-'unblocklogentry' => '已解封 $1',
+'blocklog-showlog' => '该用户曾被封禁。下面提供封禁日志以供参考:',
+'blocklog-showsuppresslog' => '该用户曾被封禁并隐藏。下面提供封锁日志以供参考:',
+'blocklogentry' => '封禁[[$1]],到期时间为$2后$3',
+'reblock-logentry' => '更改[[$1]]的封禁设置,到期时间为$2后$3',
+'blocklogtext' => '这是用户封禁和解封操作的日志。自动封禁IP地址没有列出。请见[[Special:BlockList|封禁列表]]查看目前正在进行的阻止和封禁的列表。',
+'unblocklogentry' => '解封$1',
 'block-log-flags-anononly' => '仅限匿名用户',
-'block-log-flags-nocreate' => '停用账户创建',
-'block-log-flags-noautoblock' => '禁用自动封禁',
-'block-log-flags-noemail' => 'ç¦\81æ­¢ç\94µå­\90é\82®ä»¶',
-'block-log-flags-nousertalk' => '禁止编辑自己的用户讨论页',
+'block-log-flags-nocreate' => '账户创建停用',
+'block-log-flags-noautoblock' => '自动封禁停用',
+'block-log-flags-noemail' => 'ç\94µå­\90é\82®ä»¶å\81\9cç\94¨',
+'block-log-flags-nousertalk' => '不能编辑自己的讨论页面',
 'block-log-flags-angry-autoblock' => '已启用增强型自动封禁',
 'block-log-flags-hiddenname' => '隐藏用户名',
 'range_block_disabled' => '管理员执行段封禁的权限已被禁用。',
@@ -2601,16 +2601,16 @@ $1被封禁的理由是:“$2”',
 
 在这些情况下,您在必要时必须手工移动或合并页面。",
 'movearticle' => '移动页面:',
-'moveuserpage-warning' => "'''警告:'''您将会移动一个用户页面。请留意该页面在移动后该用户的名字是''不会''变更的。",
+'moveuserpage-warning' => "'''警告:'''你将移动一个用户页面。请注意,只有该页面会被移动,该用户''不''会被更名。",
 'movenologin' => '未登录',
 'movenologintext' => '您必须是一名登记用户并且[[Special:UserLogin|登录]]
 后才可移动一个页面。',
-'movenotallowed' => '您并没有权限去移动页面。',
-'movenotallowedfile' => '您并没有权限去移动文件。',
-'cant-move-user-page' => '您并没有许可权去移动用户页面(它的子页面除外)。',
-'cant-move-to-user-page' => '您并没有许可权去移动到用户页面(它的子页面除外)。',
+'movenotallowed' => '你没有权限移动页面。',
+'movenotallowedfile' => '你没有权限移动文件。',
+'cant-move-user-page' => '你没有权限移动用户页面(子页面除外)。',
+'cant-move-to-user-page' => '你没有权限移动页面至用户页面(用户子页面除外)。',
 'newtitle' => '新标题:',
-'move-watch' => '监视来源以及目标页',
+'move-watch' => '监视来源页面和目标页面',
 'movepagebtn' => '移动页面',
 'pagemovedsub' => '移动成功',
 'movepage-moved' => "'''“$1”已移动到“$2”'''",
@@ -2628,8 +2628,8 @@ $1被封禁的理由是:“$2”',
 'movepage-page-unmoved' => '页面$1无法移动到$2。',
 'movepage-max-pages' => '所移动$1个页面的数量已达最大限额,无法同时自动移动更多页面。',
 'movelogpage' => '移动日志',
-'movelogpagetext' => '以ä¸\8bæ\98¯æ\89\80æ\9c\89移å\8a¨ç\9a\84页é\9d¢å\88\97表ï¼\9a',
-'movesubpage' => '{{PLURAL:$1|子页面|子页面}}',
+'movelogpagetext' => 'ä¸\8bé\9d¢æ\98¯æ\89\80æ\9c\89页é\9d¢ç§»å\8a¨ç\9a\84å\88\97表ã\80\82',
+'movesubpage' => '{{PLURAL:$1|子页面}}',
 'movesubpagetext' => '这个页面有$1个子页面,列示如下。',
 'movenosubpage' => '这个页面没有子页面。',
 'movereason' => '原因:',
@@ -2652,10 +2652,8 @@ $1被封禁的理由是:“$2”',
 'imageinvalidfilename' => '目标文件名称无效',
 'fix-double-redirects' => '更新所有指向原始标题的重定向',
 'move-leave-redirect' => '保留重定向',
-'protectedpagemovewarning' => "'''警告:'''这个页面已经被保护,只有拥有管理员权限的用户才可以移动它。
-最近的日志在下面提供以便参考:",
-'semiprotectedpagemovewarning' => "'''注意:'''这个页面已经被保护,只有已经注册的用户才可以移动它。
-最近的日志在下面提供以便参考:",
+'protectedpagemovewarning' => "'''警告:'''本页面已被保护,只有拥有管理员权限的用户可以移动。下面提供最后的日志条目以供参考:",
+'semiprotectedpagemovewarning' => "'''注意:'''本页面已被保护,只有注册用户可以移动。下面提供最后的日志条目以供参考:",
 'move-over-sharedrepo' => '== 文件已存在 ==
 [[:$1]]已于共享资源存在,将文件移动到此标题会覆盖共享资源中的文件。',
 'file-exists-sharedrepo' => '同名文件已于共享资源存在。
@@ -2676,9 +2674,9 @@ $1被封禁的理由是:“$2”',
 '''注意:'''由于性能原因,从此表单导出页面的全部历史已被禁用。",
 'exportlistauthors' => '为每个页面包含贡献者的完整列表',
 'export-submit' => '导出',
-'export-addcattext' => '由分类中添加页面:',
+'export-addcattext' => '从分类添加页面:',
 'export-addcat' => '添加',
-'export-addnstext' => '由名字空间中添加页面:',
+'export-addnstext' => '从名字空间添加页面:',
 'export-addns' => '添加',
 'export-download' => '另存为文件',
 'export-templates' => '包含模板',
@@ -2759,10 +2757,10 @@ $1被封禁的理由是:“$2”',
 
 # Import log
 'importlogpage' => '导入日志',
-'importlogpagetext' => 'ç\94±ç®¡ç\90\86å\91\98ä»\8eå\85¶ä»\96wiki导å\85¥ç\9a\84带æ\9c\89ç¼\96è¾\91å\8e\86å\8f²ç\9a\84页é\9d¢。',
-'import-logentry-upload' => '通过文件上传导入的[[$1]]',
+'importlogpagetext' => '管ç\90\86æ\80§ç\9a\84æ\9c\89ç¼\96è¾\91å\8e\86å\8f²ç\9a\84页é\9d¢è\87ªå\85¶ä»\96ç»´å\9fºç\9a\84导å\85¥。',
+'import-logentry-upload' => '以文件上传导入[[$1]]',
 'import-logentry-upload-detail' => '$1个版本',
-'import-logentry-interwiki' => 'è·¨ç«\99导å\85¥ $1',
+'import-logentry-interwiki' => '跨维å\9fº$1',
 'import-logentry-interwiki-detail' => '来自$2的$1个修订',
 
 # JavaScriptTest
@@ -2934,7 +2932,7 @@ $1被封禁的理由是:“$2”',
 
 # Patrol log
 'patrol-log-page' => '巡查日志',
-'patrol-log-header' => 'è¿\99æ\98¯å·²å·¡æ\9f¥ç\9a\84修订ç\89\88æ\9c¬ç\9a\84æ\97¥å¿\97ã\80\82',
+'patrol-log-header' => '这是已巡查版本的日志。',
 'log-show-hide-patrol' => '$1巡查纪录',
 
 # Image deletion
@@ -3072,7 +3070,7 @@ Variants for Chinese language
 'exif-model' => '相机型号',
 'exif-software' => '使用软件',
 'exif-artist' => '作者',
-'exif-copyright' => '著作权所有',
+'exif-copyright' => '著作权所有',
 'exif-exifversion' => 'Exif版本',
 'exif-flashpixversion' => '支持的Flashpix版本',
 'exif-colorspace' => '色彩空间',
@@ -3608,10 +3606,10 @@ $5
 'version-specialpages' => '特殊页面',
 'version-parserhooks' => '解析器钩',
 'version-variables' => '变量',
-'version-antispam' => 'å\9e\83å\9c¾é\98²止',
+'version-antispam' => 'å\9e\83å\9c¾é\98»止',
 'version-skins' => '皮肤',
 'version-other' => '其他',
-'version-mediahandlers' => '媒体处理器',
+'version-mediahandlers' => '媒体文件处理器',
 'version-hooks' => '钩',
 'version-extension-functions' => '扩展函数',
 'version-parser-extensiontags' => '解析器扩展标签',
@@ -3630,8 +3628,8 @@ MediaWiki是基于使用目的而加以发布,然而不负任何担保责任
 'version-software' => '已安装的软件',
 'version-software-product' => '产品',
 'version-software-version' => '版本',
-'version-entrypoints' => '入口点 URL',
-'version-entrypoints-header-entrypoint' => '入口点',
+'version-entrypoints' => '接入点URL',
+'version-entrypoints-header-entrypoint' => '接入点',
 'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
@@ -3654,9 +3652,8 @@ MediaWiki是基于使用目的而加以发布,然而不负任何担保责任
 # Special:SpecialPages
 'specialpages' => '特殊页面',
 'specialpages-note' => '----
-* 常规特殊页面。
-* <span class="mw-specialpagerestricted">受限特殊页面。</span>
-* <span class="mw-specialpagecached">已缓存特殊页面(可能已过时)。</span>',
+*普通特殊页面。
+*<span class="mw-specialpagerestricted">非公开特殊页面。</span>',
 'specialpages-group-maintenance' => '维护报告',
 'specialpages-group-other' => '其它特殊页面',
 'specialpages-group-login' => '登录/注册',
@@ -3675,27 +3672,27 @@ MediaWiki是基于使用目的而加以发布,然而不负任何担保责任
 'intentionallyblankpage' => '这个页面被故意留为空白',
 
 # External image whitelist
-'external_image_whitelist' => ' #请保留此行文本<pre>
-#在下方书写正则表达式(//中间的部份)
+'external_image_whitelist' => ' #请原样保留本行文字<pre>
+#在下方书写正则表达式片段(//中间的部份)
 #这些规则将与外部(盗链)图像的URL匹配
 #匹配的URL将被显示为图像,否则只会显示链向图像的链接
-#以#开头的行会被视为注释
-#大小写不敏感
+#以#开头的行视为评论
+#不区分大小写
 
-#å\9c¨æ­¤è¡\8cä¸\8aæ\96¹è¾\93å\85¥æ\89\80æ\9c\89ç\9a\84æ­£å\88\99表达å¼\8fã\80\82请ä¿\9dç\95\99æ­¤è¡\8cæ\96\87æ\9c¬</pre>',
+#å\9c¨æ\9c¬è¡\8cä¸\8aé\9d¢è¾\93å\85¥æ\89\80æ\9c\89æ­£å\88\99表达å¼\8fã\80\82请å\8e\9fæ ·ä¿\9dç\95\99æ\9c¬è¡\8cæ\96\87å­\97</pre>',
 
 # Special:Tags
 'tags' => '有效的更改标签',
 'tag-filter' => '[[Special:Tags|标签]]过滤器:',
 'tag-filter-submit' => '过滤器',
 'tags-title' => '标签',
-'tags-intro' => '本页面列出了建站软件可能用来标记编辑的标签及它们的含义。',
+'tags-intro' => '本页面列出了软件可能用于标记编辑的标签和它们的含义。',
 'tags-tag' => '标签名称',
 'tags-display-header' => '更改列表中的表现形式',
 'tags-description-header' => '完整含义说明',
-'tags-hitcount-header' => '标记的更改',
+'tags-hitcount-header' => '标记的更改',
 'tags-edit' => '编辑',
-'tags-hitcount' => '$1更改',
+'tags-hitcount' => '$1更改',
 
 # Special:ComparePages
 'comparepages' => '对比页面',
@@ -3812,7 +3809,7 @@ MediaWiki是基于使用目的而加以发布,然而不负任何担保责任
 'api-error-overwrite' => '不允许覆盖现有文件。',
 'api-error-stashfailed' => '内部错误:服务器保存临时文件失败。',
 'api-error-timeout' => '服务器没有在预期内响应。',
-'api-error-unclassified' => 'å\8f\91ç\94\9fæ\9cªç\9f¥é\94\99误',
+'api-error-unclassified' => 'å\87ºç\8e°æ\9cªç\9f¥é\94\99误ã\80\82',
 'api-error-unknown-code' => '未知错误:$1',
 'api-error-unknown-error' => '内部错误:尝试上传文件时出错。',
 'api-error-unknown-warning' => '未知的警告:$1',
@@ -3821,14 +3818,16 @@ MediaWiki是基于使用目的而加以发布,然而不负任何担保责任
 'api-error-verification-error' => '此文件可能已损坏,或有错误的扩展名。',
 
 # Durations
-'duration-seconds' => '$1{{PLURAL:$1|秒|秒}}',
-'duration-minutes' => '$1{{PLURAL:$1|分钟|分钟}}',
-'duration-hours' => '$1{{PLURAL:$1|小时|小时}}',
-'duration-days' => '$1{{PLURAL:$1|天|天}}',
-'duration-weeks' => '$1{{PLURAL:$1|星期|星期}}',
-'duration-years' => '$1{{PLURAL:$1|年|年}}',
-'duration-decades' => '$1{{PLURAL:$1|0年|0年}}',
-'duration-centuries' => '$1{{PLURAL:$1|00年|00年}}',
-'duration-millennia' => '$1{{PLURAL:$1|千年|千年}}',
-
+'duration-seconds' => '$1秒',
+'duration-minutes' => '$1分',
+'duration-hours' => '$1小时',
+'duration-days' => '$1天',
+'duration-weeks' => '$1周',
+'duration-years' => '$1年',
+'duration-decades' => '$10年',
+'duration-centuries' => '$1个世纪',
+'duration-millennia' => '$1千年',
+
+# Unknown messages
+'lockmanager-fail-svr-acquire' => '无法在服务器 $1 上获得锁',
 );
index 8bee6b8..59045cd 100644 (file)
@@ -216,7 +216,7 @@ $messages = array(
 'tog-hidepatrolled' => '於最近更改中隱藏巡查過的編輯',
 'tog-newpageshidepatrolled' => '於新頁面清單中隱藏巡查過的頁面',
 'tog-extendwatchlist' => '展開監視清單以顯示所有更改,不只是最近的',
-'tog-usenewrc' => '使用增強最近更改 (需要JavaScript)',
+'tog-usenewrc' => '在最近更改和監視列表中整合同一頁的修改 (需要JavaScript)',
 'tog-numberheadings' => '標題自動編號',
 'tog-showtoolbar' => '顯示編輯工具欄 (需要JavaScript)',
 'tog-editondblclick' => '雙擊編輯頁面 (需要JavaScript)',
@@ -224,17 +224,17 @@ $messages = array(
 'tog-editsectiononrightclick' => '允許右擊標題編輯段落 (需要JavaScript)',
 'tog-showtoc' => '顯示目錄 (針對一頁超過3個標題的頁面)',
 'tog-rememberpassword' => '在這個瀏覽器上記住我的登入資訊(可維持 $1 {{PLURAL:$1|天|天}})',
-'tog-watchcreations' => '將我建立的頁面添加到我的監視列表中',
-'tog-watchdefault' => '將我更改的頁面添加到我的監視列表中',
-'tog-watchmoves' => 'å°\87æ\88\91移å\8b\95ç\9a\84é \81é\9d¢å\8a å\85¥我的監視列表',
-'tog-watchdeletion' => 'å°\87æ\88\91å\88ªé\99¤ç\9a\84é \81é\9d¢å\8a å\85¥我的監視列表',
+'tog-watchcreations' => '將我建立的頁面和檔案添加到我的監視列表中',
+'tog-watchdefault' => '將我更改的頁面和檔案添加到我的監視列表中',
+'tog-watchmoves' => 'å°\87æ\88\91移å\8b\95ç\9a\84é \81é\9d¢å\92\8cæª\94æ¡\88æ·»å\8a å\88°我的監視列表',
+'tog-watchdeletion' => 'å°\87æ\88\91å\88ªé\99¤ç\9a\84é \81é\9d¢å\92\8cæª\94æ¡\88æ·»å\8a å\88°我的監視列表',
 'tog-minordefault' => '預設將編輯設定為小編輯',
 'tog-previewontop' => '在編輯框上方顯示預覽',
 'tog-previewonfirst' => '第一次編輯時顯示原文內容的預覽',
 'tog-nocache' => '禁止瀏覽器頁面快取',
-'tog-enotifwatchlistpages' => '當在我的監視列表中的頁面改變時發電子郵件給我',
+'tog-enotifwatchlistpages' => 'ç\95¶å\9c¨æ\88\91ç\9a\84ç\9b£è¦\96å\88\97表中ç\9a\84é \81é\9d¢æ\88\96æª\94æ¡\88æ\94¹è®\8aæ\99\82ç\99¼é\9b»å­\90é\83µä»¶çµ¦æ\88\91',
 'tog-enotifusertalkpages' => '當我的對話頁發生改變時發電子郵件給我',
-'tog-enotifminoredits' => '即使是頁面的小修改也向我發電子郵件',
+'tog-enotifminoredits' => '即使是頁面和檔案的小修改也向我發電子郵件',
 'tog-enotifrevealaddr' => '在通知電子郵件中顯示我的電子郵件位址',
 'tog-shownumberswatching' => '顯示監視用戶的數目',
 'tog-oldsig' => '原有簽名:',
@@ -596,6 +596,8 @@ $2',
 管理員鎖定它的解釋是:" $3 "。',
 'invalidtitle-knownnamespace' => '使用名字空間“$2”和文本“$3”的無效標題',
 'invalidtitle-unknownnamespace' => '使用未知名字空間編號$1和文本“$2”的無效標題',
+'exception-nologin' => '未登入',
+'exception-nologin-text' => '你需要登錄此wiki查閲此頁或進行操作。',
 
 # Virus scanner
 'virus-badscanner' => "損壞設定: 未知的病毒掃瞄器: ''$1''",
@@ -1999,7 +2001,7 @@ Template:消除歧義',
 'specialloguserlabel' => '操作者:',
 'speciallogtitlelabel' => '目標(標題或用戶):',
 'log' => '日誌',
-'all-logs-page' => '所有公日誌',
+'all-logs-page' => '所有公日誌',
 'alllogstext' => '綜合顯示 {{SITENAME}} 的上傳、刪除、保護、查封以及站務日誌。',
 'logempty' => '在日誌中不存在匹配項。',
 'log-title-wildcard' => '搜尋以這個文字開始的標題',
@@ -3800,6 +3802,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 56d7698..d449d6c 100644 (file)
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script to cleans up old database tables, dropping old indexes
+ * and fields.
+ *
+ * @ingroup Maintenance
+ */
 class CleanupAncientTables extends Maintenance {
 
        public function __construct() {
index 6f8e180..b61f6ff 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Script to clean up broken page links when somebody turns on $wgCapitalLinks.
+ * Clean up broken page links when somebody turns on $wgCapitalLinks.
  *
  * Usage: php cleanupCaps.php [--dry-run]
  * Options:
 
 require_once( dirname( __FILE__ ) . '/cleanupTable.inc' );
 
+/**
+ * Maintenance script to clean up broken page links when somebody turns on $wgCapitalLinks.
+ *
+ * @ingroup Maintenance
+ */
 class CapsCleanup extends TableCleanup {
        public function __construct() {
                parent::__construct();
index 687a95c..2beed72 100644 (file)
@@ -1,12 +1,12 @@
 <?php
 /**
- * Script to clean up broken, unparseable upload filenames.
+ * Clean up broken, unparseable upload filenames.
  *
  * Usage: php cleanupImages.php [--fix]
  * Options:
  *   --fix  Actually clean up titles; otherwise just checks for them
  *
- * Copyright (C) 2005-2006 Brion Vibber <brion@pobox.com>
+ * Copyright © 2005-2006 Brion Vibber <brion@pobox.com>
  * http://www.mediawiki.org/
  *
  * This program is free software; you can redistribute it and/or modify
 
 require_once( dirname( __FILE__ ) . '/cleanupTable.inc' );
 
+/**
+ * Maintenance script to clean up broken, unparseable upload filenames.
+ *
+ * @ingroup Maintenance
+ */
 class ImageCleanup extends TableCleanup {
        protected $defaultParams = array(
                'table' => 'image',
diff --git a/maintenance/cleanupPreferences.php b/maintenance/cleanupPreferences.php
new file mode 100755 (executable)
index 0000000..706f87f
--- /dev/null
@@ -0,0 +1,52 @@
+<?php\r
+/**\r
+ * Remove hidden preferences from the database.\r
+ *\r
+ * This program is free software; you can redistribute it and/or modify\r
+ * it under the terms of the GNU General Public License as published by\r
+ * the Free Software Foundation; either version 2 of the License, or\r
+ * (at your option) any later version.\r
+ *\r
+ * This program is distributed in the hope that it will be useful,\r
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+ * GNU General Public License for more details.\r
+ *\r
+ * You should have received a copy of the GNU General Public License along\r
+ * with this program; if not, write to the Free Software Foundation, Inc.,\r
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\r
+ * http://www.gnu.org/copyleft/gpl.html\r
+ *\r
+ * @file\r
+ * @author TyA <tya.wiki@gmail.com>\r
+ * @see [[bugzilla:30976]]\r
+ * @ingroup Maintenance\r
+ */\r
+\r
+require_once( dirname( __FILE__ ) . '/Maintenance.php' );\r
+\r
+/**\r
+ * Maintenance script that removes hidden preferences from the database.\r
+ *\r
+ * @ingroup Maintenance\r
+ */\r
+class CleanupPreferences extends Maintenance {\r
+       public function execute() {\r
+               global $wgHiddenPrefs;\r
+\r
+               $dbw = wfGetDB( DB_MASTER );\r
+               $dbw->begin();\r
+               foreach( $wgHiddenPrefs as $item ) {\r
+                       $dbw->delete(\r
+                               'user_properties',\r
+                               array( 'up_property' => $item ),\r
+                               __METHOD__\r
+                       );\r
+               };\r
+               $dbw->commit();\r
+               $this->output( "Finished!\n" );\r
+       }\r
+}\r
+\r
+$maintClass = 'CleanupPreferences'; // Tells it to run the class\r
+require_once( RUN_MAINTENANCE_IF_MAIN );\r
index fb8afd2..b339bfc 100644 (file)
@@ -1,7 +1,6 @@
 <?php
 /**
- * Maintenance script to remove cache entries for removed ResourceLoader modules
- * from the database
+ * Remove cache entries for removed ResourceLoader modules from the database.
  *
  * 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
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script to remove cache entries for removed ResourceLoader modules
+ * from the database.
+ *
+ * @ingroup Maintenance
+ */
 class CleanupRemovedModules extends Maintenance {
 
        public function __construct() {
index f104899..42d8440 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Cleanup all spam from a given hostname
+ * Cleanup all spam from a given hostname.
  *
  * 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
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script to cleanup all spam from a given hostname.
+ *
+ * @ingroup Maintenance
+ */
 class CleanupSpam extends Maintenance {
 
        public function __construct() {
index 1c27976..898bdf4 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Generic table cleanup class. Already subclasses maintenance
+ * Generic class to cleanup a database table.
  *
  * 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
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Generic class to cleanup a database table. Already subclasses Maintenance.
+ *
+ * @ingroup Maintenance
+ */
 class TableCleanup extends Maintenance {
        protected $defaultParams = array(
                'table' => 'page',
index 4fc6415..a2dc3a3 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Script to clean up broken, unparseable titles.
+ * Clean up broken, unparseable titles.
  *
  * Usage: php cleanupTitles.php [--fix]
  * Options:
 
 require_once( dirname( __FILE__ ) . '/cleanupTable.inc' );
 
+/**
+ * Maintenance script to clean up broken, unparseable titles.
+ *
+ * @ingroup Maintenance
+ */
 class TitleCleanup extends TableCleanup {
        public function __construct() {
                parent::__construct();
index c8d8924..32377b6 100644 (file)
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script to remove old or broken uploads from temporary uploaded
+ * file storage and clean up associated database records.
+ *
+ * @ingroup Maintenance
+ */
 class UploadStashCleanup extends Maintenance {
 
        public function __construct() {
index a9b20fe..840337c 100644 (file)
@@ -1,12 +1,12 @@
 <?php
 /**
- * Script to remove broken, unparseable titles in the Watchlist.
+ * Remove broken, unparseable titles in the watchlist table.
  *
  * Usage: php cleanupWatchlist.php [--fix]
  * Options:
  *   --fix  Actually remove entries; without will only report.
  *
- * Copyright (C) 2005,2006 Brion Vibber <brion@pobox.com>
+ * Copyright © 2005,2006 Brion Vibber <brion@pobox.com>
  * http://www.mediawiki.org/
  *
  * This program is free software; you can redistribute it and/or modify
 
 require_once( dirname( __FILE__ ) . '/cleanupTable.inc' );
 
+/**
+ * Maintenance script to remove broken, unparseable titles in the watchlist table.
+ *
+ * @ingroup Maintenance
+ */
 class WatchlistCleanup extends TableCleanup {
        protected $defaultParams = array(
                'table' => 'watchlist',
index 953bd4c..638a475 100644 (file)
@@ -1,7 +1,6 @@
 <?php
 /**
- * This script is used to clear the interwiki links for ALL languages in
- * the cache.
+ * Clear the cache of interwiki prefixes for all local wikis.
  *
  * 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
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script to clear the cache of interwiki prefixes for all local wikis.
+ *
+ * @ingroup Maintenance
+ */
 class ClearInterwikiCache extends Maintenance {
 
        public function __construct() {
index 61314e6..2ed5a67 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * This script remove all statistics tracking from the cache
+ * Removes all statistics tracking from the cache.
  *
  * 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
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script to remove all statistics tracking from the cache.
+ *
+ * @ingroup Maintenance
+ */
 class clear_stats extends Maintenance {
 
        public function __construct() {
index 4fe4e4d..9d7f5c7 100644 (file)
@@ -6,8 +6,9 @@
  *
  * Templates etc are pulled from the local wiki database, not from the dump.
  *
- * Copyright (C) 2011 Platonides - http://www.mediawiki.org/
- * 
+ * Copyright © 2011 Platonides
+ * http://www.mediawiki.org/
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * @file
  * @ingroup Maintenance
  */
+
 require_once( dirname( __FILE__ ) . '/dumpIterator.php' );
 
+/**
+ * Maintenance script to take page text out of an XML dump file and render
+ * basic HTML out to files.
+ *
+ * @ingroup Maintenance
+ */
 class CompareParsers extends DumpIterator {
 
        private $count = 0;
@@ -51,10 +58,10 @@ class CompareParsers extends DumpIterator {
                if ( $this->hasOption('save-failed') ) {
                        $this->saveFailed = $this->getOption('save-failed');
                }
-               
+
                $this->stripParametersEnabled = $this->hasOption( 'strip-parameters' );
                $this->showParsedOutput = $this->hasOption( 'show-parsed-output' );
-               
+
                $this->showDiff = $this->hasOption( 'show-diff' );
                if ( $this->showDiff ) {
                        $bin = $this->getOption( 'diff-bin', getenv( 'DIFF' ) );
@@ -63,10 +70,10 @@ class CompareParsers extends DumpIterator {
                                $wgDiff = $bin;
                        }
                }
-               
-               $user = new User();             
+
+               $user = new User();
                $this->options = ParserOptions::newFromUser( $user );
-               
+
                if ( $this->hasOption( 'tidy' ) ) {
                        global $wgUseTidy;
                        if ( !$wgUseTidy ) {
@@ -74,46 +81,46 @@ class CompareParsers extends DumpIterator {
                        }
                        $this->options->setTidy( true );
                }
-               
+
                $this->failed = 0;
        }
-       
-       public function conclusions() { 
+
+       public function conclusions() {
                $this->error( "{$this->failed} failed revisions out of {$this->count}" );
                if ($this->count > 0)
                        $this->output( " (" . ( $this->failed / $this->count ) . "%)\n" );
        }
-       
+
        function stripParameters( $text ) {
                if ( !$this->stripParametersEnabled ) {
                        return $text;
                }
                return preg_replace( '/(<a) [^>]+>/', '$1>', $text );
        }
-       
+
        /**
         * Callback function for each revision, parse with both parsers and compare
         * @param $rev Revision
         */
        public function processRevision( $rev ) {
                $title = $rev->getTitle();
-                               
+
                $parser1Name = $this->getOption( 'parser1' );
                $parser2Name = $this->getOption( 'parser2' );
-               
+
                self::checkParserLocally( $parser1Name );
                self::checkParserLocally( $parser2Name );
-               
+
                $parser1 = new $parser1Name();
                $parser2 = new $parser2Name();
-               
+
                $output1 = $parser1->parse( $rev->getText(), $title, $this->options );
                $output2 = $parser2->parse( $rev->getText(), $title, $this->options );
 
                if ( $output1->getText() != $output2->getText() ) {
                        $this->failed++;
                        $this->error( "Parsing for {$title->getPrefixedText()} differs\n" );
-                       
+
                        if ( $this->saveFailed ) {
                                file_put_contents( $this->saveFailed . '/' . rawurlencode( $title->getPrefixedText() ) . ".txt", $rev->getText());
                        }
@@ -127,7 +134,7 @@ class CompareParsers extends DumpIterator {
                        }
                }
        }
-       
+
        private static function checkParserLocally( $parserName ) {
                /* Look for the parser in a file appropiately named in the current folder */
                if ( !class_exists( $parserName ) && file_exists( "$parserName.php" ) ) {
index 07f6199..530b5ca 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Copy all files in one container of one backend to another.
+ * Copy all files in some containers of one backend to another.
  *
  * 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
@@ -37,61 +37,107 @@ require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 class CopyFileBackend extends Maintenance {
        public function __construct() {
                parent::__construct();
-               $this->mDescription = "Copy all the files in one backend to another.";
+               $this->mDescription = "Copy files in one backend to another.";
                $this->addOption( 'src', 'Backend containing the source files', true, true );
                $this->addOption( 'dst', 'Backend where files should be copied to', true, true );
                $this->addOption( 'containers', 'Pipe separated list of containers', true, true );
-               $this->addOption( 'fast', 'Skip SHA-1 checks on pre-existing files' );
+               $this->addOption( 'subdir', 'Only do items in this child directory', false, true );
+               $this->setBatchSize( 50 );
        }
 
        public function execute() {
                $src = FileBackendGroup::singleton()->get( $this->getOption( 'src' ) );
                $dst = FileBackendGroup::singleton()->get( $this->getOption( 'dst' ) );
-
                $containers = explode( '|', $this->getOption( 'containers' ) );
+               $subDir = $this->getOption( rtrim( 'subdir', '/' ), '' );
+
+               $count = 0;
                foreach ( $containers as $container ) {
-                       $this->output( "Doing container $container...\n" );
+                       if ( $subDir != '' ) {
+                               $backendRel = "$container/$subDir";
+                               $this->output( "Doing container '$container', directory '$subDir'...\n" );
+                       } else {
+                               $backendRel = $container;
+                               $this->output( "Doing container '$container'...\n" );
+                       }
 
-                       $srcPathsRel = $src->getFileList(
-                               array( 'dir' => $src->getRootStoragePath() . "/$container" ) );
+                       $dir = $src->getRootStoragePath() . "/$backendRel";
+                       $srcPathsRel = $src->getFileList( array( 'dir' => $dir ) );
                        if ( $srcPathsRel === null ) {
                                $this->error( "Could not list files in $container.", 1 ); // die
                        }
-                       foreach ( $srcPathsRel as $srcPathRel ) {
-                               $srcPath = $src->getRootStoragePath() . "/$container/$srcPathRel";
-                               $dstPath = $dst->getRootStoragePath() . "/$container/$srcPathRel";
 
-                               if ( $dst->fileExists( array( 'src' => $dstPath, 'latest' => 1 ) ) ) {
-                                       if ( $this->hasOption( 'fast' ) ) {
-                                               $this->output( "Already have $dstPath.\n" );
-                                               continue; // assume already copied...
-                                       }
-                                       $srcSha1 = $src->getFileSha1Base36( array( 'src' => $srcPath ) );
-                                       $dstSha1 = $dst->getFileSha1Base36( array( 'src' => $dstPath ) );
-                                       if ( $srcSha1 && $srcSha1 === $dstSha1 ) {
-                                               $this->output( "Already have $dstPath.\n" );
-                                               continue; // already copied...
-                                       }
+                       $batchPaths = array();
+                       foreach ( $srcPathsRel as $srcPathRel ) {
+                               $batchPaths[$srcPathRel] = 1; // remove duplicates
+                               if ( count( $batchPaths ) >= $this->mBatchSize ) {
+                                       $this->copyFileBatch( array_keys( $batchPaths ), $backendRel, $src, $dst );
+                                       $batchPaths = array(); // done
                                }
+                               ++$count;
+                       }
+                       if ( count( $batchPaths ) ) { // left-overs
+                               $this->copyFileBatch( array_keys( $batchPaths ), $backendRel, $src, $dst );
+                               $batchPaths = array(); // done
+                       }
 
-                               $fsFile = $src->getLocalReference( array( 'src' => $srcPath, 'latest' => 1 ) );
-                               if ( !$fsFile ) {
-                                       $this->error( "Could not get local copy of $srcPath.", 1 ); // die
-                               }
+                       if ( $subDir != '' ) {
+                               $this->output( "Finished container '$container', directory '$subDir'.\n" );
+                       } else {
+                               $this->output( "Finished container '$container'.\n" );
+                       }
+               }
 
-                               $status = $dst->prepare( array( 'dir' => dirname( $dstPath ) ) );
-                               $status->merge( $dst->store(
-                                       array( 'src' => $fsFile->getPath(), 'dst' => $dstPath ),
-                                       array( 'nonLocking' => 1, 'nonJournaled' => 1 )
-                               ) );
-                               if ( !$status->isOK() ) {
-                                       print_r( $status->getErrorsArray() );
-                                       $this->error( "Could not copy $srcPath to $dstPath.", 1 ); // die
-                               }
+               $this->output( "Done [$count file(s)].\n" );
+       }
 
-                               $this->output( "Copied $srcPath to $dstPath.\n" );
+       protected function copyFileBatch(
+               array $srcPathsRel, $backendRel, FileBackend $src, FileBackend $dst
+       ) {
+               $ops = array();
+               $fsFiles = array();
+               foreach ( $srcPathsRel as $srcPathRel ) {
+                       $srcPath = $src->getRootStoragePath() . "/$backendRel/$srcPathRel";
+                       $dstPath = $dst->getRootStoragePath() . "/$backendRel/$srcPathRel";
+                       if ( $this->filesAreSame( $src, $dst, $srcPath, $dstPath ) ) {
+                               $this->output( "Already have $srcPathRel.\n" );
+                               continue; // assume already copied...
+                       }
+                       // Note: getLocalReference() is fast for FS backends
+                       $fsFile = $src->getLocalReference( array( 'src' => $srcPath, 'latest' => 1 ) );
+                       if ( !$fsFile ) {
+                               $this->error( "Could not get local copy of $srcPath.", 1 ); // die
+                       }
+                       $fsFiles[] = $fsFile; // keep TempFSFile objects alive as needed
+                       // Note: prepare() is usually fast for key/value backends
+                       $status = $dst->prepare( array( 'dir' => dirname( $dstPath ) ) );
+                       if ( !$status->isOK() ) {
+                               $this->error( print_r( $status->getErrorsArray(), true ) );
+                               $this->error( "Could not copy $srcPath to $dstPath.", 1 ); // die
                        }
+                       $ops[] = array( 'op' => 'store',
+                               'src' => $fsFile->getPath(), 'dst' => $dstPath, 'overwrite' => 1 );
                }
+
+               $status = $dst->doOperations( $ops, array( 'nonJournaled' => 1 ) );
+               if ( !$status->isOK() ) {
+                       $this->error( print_r( $status->getErrorsArray(), true ) );
+                       $this->error( "Could not copy file batch.", 1 ); // die
+               } else {
+                       $this->output( "Copied these file(s):\n" . implode( "\n", $srcPathsRel ) . "\n\n" );
+               }
+       }
+
+       protected function filesAreSame( FileBackend $src, FileBackend $dst, $sPath, $dPath ) {
+               return (
+                       ( $src->fileExists( array( 'src' => $sPath, 'latest' => 1 ) )
+                               === $dst->fileExists( array( 'src' => $dPath, 'latest' => 1 ) ) // short-circuit
+                       ) && ( $src->getFileSize( array( 'src' => $sPath, 'latest' => 1 ) )
+                               === $dst->getFileSize( array( 'src' => $dPath, 'latest' => 1 ) ) // short-circuit
+                       ) && ( $src->getFileSha1Base36( array( 'src' => $sPath, 'latest' => 1 ) )
+                               === $dst->getFileSha1Base36( array( 'src' => $dPath, 'latest' => 1 ) )
+                       )
+               );
        }
 }
 
index 197ffab..414d41a 100644 (file)
@@ -1,7 +1,6 @@
 <?php
-
 /**
- * Delete archived (deleted from public) revisions from the database
+ * Helper methods for the deleteArchivedRevisions.php maintenance script.
  *
  * 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
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
+/**
+ * Helper methods for the deleteArchivedRevisions.php maintenance script.
+ *
+ * @ingroup Maintenance
+ */
 class DeleteArchivedRevisionsImplementation {
 
        /**
index 8963ae1..2a99fa1 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script to delete a batch of pages.
+ *
+ * @ingroup Maintenance
+ */
 class DeleteBatch extends Maintenance {
 
        public function __construct() {
index 4f5889b..540d225 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that deletes all pages in the MediaWiki namespace
+ * which were last edited by "MediaWiki default".
+ *
+ * @ingroup Maintenance
+ */
 class DeleteDefaultMessages extends Maintenance {
        public function __construct() {
                parent::__construct();
index 007f0d1..2029b57 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * This script delete image information from the cache.
+ * Delete image information from the object cache.
  *
  * Usage example:
  * php deleteImageMemcached.php --until "2005-09-05 00:00:00" --sleep 0
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that deletes image information from the object cache.
+ *
+ * @ingroup Maintenance
+ */
 class DeleteImageCache extends Maintenance {
        public function __construct() {
                parent::__construct();
index 8347a29..45a6b34 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-
 /**
  * Delete old (non-current) revisions from the database
  *
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  * @author Rob Church <robchur@gmail.com>
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that deletes old (non-current) revisions from the database.
+ *
+ * @ingroup Maintenance
+ */
 class DeleteOldRevisions extends Maintenance {
        public function __construct() {
                parent::__construct();
index 9fe5794..13b9c91 100644 (file)
@@ -1,8 +1,7 @@
 <?php
-
 /**
- * Maintenance script to delete revisions which refer to a nonexisting page
- * Sometimes manual deletion done in a rush leaves crap in the database
+ * Delete revisions which refer to a nonexisting page.
+ * Sometimes manual deletion done in a rush leaves crap in the database.
  *
  * 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
@@ -19,6 +18,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  * @author Rob Church <robchur@gmail.com>
  * @todo More efficient cleanup of text records
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that deletes revisions which refer to a nonexisting page.
+ *
+ * @ingroup Maintenance
+ */
 class DeleteOrphanedRevisions extends Maintenance {
        public function __construct() {
                parent::__construct();
index 5e8ecaa..fe3b515 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that deletes one or more revisions by moving them
+ * to the archive table.
+ *
+ * @ingroup Maintenance
+ */
 class DeleteRevision extends Maintenance {
 
        public function __construct() {
index 447d3bd..162dcb4 100644 (file)
@@ -1,10 +1,6 @@
 <?php
 /**
- * We want to make this whole thing as seamless as possible to the
- * end-user. Unfortunately, we can't do _all_ of the work in the class
- * because A) included files are not in global scope, but in the scope
- * of their caller, and B) MediaWiki has way too many globals. So instead
- * we'll kinda fake it, and do the requires() inline. <3 PHP
+ * Delete self-references to $wgServer from the externallinks table.
  *
  * 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
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
-
+/**
+ * Maintenance script that deletes self-references to $wgServer
+ * from the externallinks table.
+ *
+ * @ingroup Maintenance
+ */
 class DeleteSelfExternals extends Maintenance {
        public function __construct() {
                parent::__construct();
index 6b29c5f..2bb2a0f 100644 (file)
@@ -93,6 +93,11 @@ if ( $maintenance->getDbType() === Maintenance::DB_ADMIN &&
 {
        require( MWInit::interpretedPath( 'AdminSettings.php' ) );
 }
+
+if ( $maintenance->getDbType() === Maintenance::DB_NONE ) {
+       if ( $wgLocalisationCacheConf['storeClass'] === false && ( $wgLocalisationCacheConf['store'] == 'db' || ( $wgLocalisationCacheConf['store'] == 'detect' && !$wgCacheDirectory ) ) )
+               $wgLocalisationCacheConf['storeClass'] = 'LCStore_Null';
+}
 $maintenance->finalSetup();
 // Some last includes
 require_once( MWInit::compiledPath( 'includes/Setup.php' ) );
index 470bc56..4c04d86 100644 (file)
@@ -4,7 +4,8 @@
  * Used as a base class for CompareParsers and PreprocessDump.
  * We implement below the simple task of searching inside a dump.
  *
- * Copyright (C) 2011 Platonides - http://www.mediawiki.org/
+ * Copyright © 2011 Platonides
+ * http://www.mediawiki.org/
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Base class for interating over a dump.
+ *
+ * @ingroup Maintenance
+ */
 abstract class DumpIterator extends Maintenance {
 
        private $count = 0;
@@ -141,6 +147,11 @@ abstract class DumpIterator extends Maintenance {
        abstract public function processRevision( $rev );
 }
 
+/**
+ * Maintenance script that runs a regex in the revisions from a dump.
+ *
+ * @ingroup Maintenance
+ */
 class SearchDump extends DumpIterator {
 
        public function __construct() {
index 0101dc8..ad440e7 100644 (file)
@@ -1,8 +1,5 @@
 <?php
 /**
- * Copyright (C) 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
- *
  * Quick demo hack to generate a plaintext link dump,
  * per the proposed wiki link database standard:
  * http://www.usemod.com/cgi-bin/mb.pl?LinkDatabase
@@ -11,6 +8,9 @@
  * Does not include interwiki or URL links.
  * Dumps ASCII text to stdout; command-line.
  *
+ * Copyright © 2005 Brion Vibber <brion@pobox.com>
+ * http://www.mediawiki.org/
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that generates a plaintext link dump.
+ *
+ * @ingroup Maintenance
+ */
 class DumpLinks extends Maintenance {
        public function __construct() {
                parent::__construct();
index f5abcd1..5dbb5e2 100644 (file)
@@ -3,7 +3,7 @@
  * Quickie page name dump script for SisterSites usage.
  * http://www.eekim.com/cgi-bin/wiki.pl?SisterSites
  *
- * Copyright (C) 2006 Brion Vibber <brion@pobox.com>
+ * Copyright © 2006 Brion Vibber <brion@pobox.com>
  * http://www.mediawiki.org/
  *
  * This program is free software; you can redistribute it and/or modify
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script that generates a page name dump for SisterSites usage.
+ *
+ * @ingroup Maintenance
+ */
 class DumpSisterSites extends Maintenance {
        public function __construct() {
                parent::__construct();
index 65d6a70..8e0b2e1 100644 (file)
@@ -39,7 +39,7 @@ class CommandLineInstaller extends Maintenance {
                $this->addArg( 'name', 'The name of the wiki', true);
 
                $this->addArg( 'admin', 'The username of the wiki administrator (WikiSysop)', true );
-               $this->addOption( 'pass', 'The password for the wiki administrator. You will be prompted for this if it isn\'t provided', false, true );
+               $this->addOption( 'pass', 'The password for the wiki administrator.', true, true );
                /* $this->addOption( 'email', 'The email for the wiki administrator', false, true ); */
                $this->addOption( 'scriptpath', 'The relative path of the wiki in the web server (/wiki)', false, true );
 
index 30c3d9a..2e381aa 100644 (file)
@@ -387,6 +387,7 @@ $wgMessageStructure = array(
                'badarticleerror',
                'cannotdelete',
                'cannotdelete-title',
+               'delete-hook-aborted',
                'badtitle',
                'badtitletext',
                'perfcached',
@@ -412,6 +413,8 @@ $wgMessageStructure = array(
                'filereadonlyerror',
                'invalidtitle-knownnamespace',
                'invalidtitle-unknownnamespace',
+               'exception-nologin',
+               'exception-nologin-text',
        ),
        'virus' => array(
                'virus-badscanner',
@@ -3699,6 +3702,8 @@ $wgMessageStructure = array(
                'api-error-empty-file',
                'api-error-emptypage',
                'api-error-fetchfileerror',
+               'api-error-fileexists-forbidden',
+               'api-error-fileexists-shared-forbidden',
                'api-error-file-too-large',
                'api-error-filename-tooshort',
                'api-error-filetype-banned',
index 876f28e..464de10 100644 (file)
@@ -66,7 +66,8 @@ class CLIParser extends Maintenance {
                $input_file = $this->getArg( 0, $php_stdin );
 
                if( $input_file === $php_stdin ) {
-                       $this->error( basename(__FILE__) .": warning: reading wikitext from STDIN\n" );
+                       $ctrl = wfIsWindows() ? 'CTRL+Z' : 'CTRL+D';
+                       $this->error( basename(__FILE__) .": warning: reading wikitext from STDIN. Press $ctrl to parse.\n" );
                }
 
                return file_get_contents( $input_file );
index a75696a..9c1ad29 100644 (file)
@@ -79,6 +79,7 @@ class RunJobs extends Maintenance {
                                wfWaitForSlaves();
                                $t = microtime( true );
                                $offset = $job->id;
+                               $this->runJobsLog( $job->toString() . " STARTING" );
                                $status = $job->run();
                                $t = microtime( true ) - $t;
                                $timeMs = intval( $t * 1000 );
index 6160a30..fd425fe 100644 (file)
@@ -79,13 +79,19 @@ TEXT;
                                        $collationConds,
                                        __METHOD__
                                );
-
-                               if ( $count == 0 ) {
-                                       $this->output( "Collations up-to-date.\n" );
-                                       return;
-                               }
-                               $this->output( "Fixing collation for $count rows.\n" );
+                       } else {
+                               $count = $dbw->estimateRowCount(
+                                       'categorylinks',
+                                       '',
+                                       $collationConds,
+                                       __METHOD__
+                               );
+                       }
+                       if ( $count == 0 ) {
+                               $this->output( "Collations up-to-date.\n" );
+                               return;
                        }
+                       $this->output( "Fixing collation for $count rows.\n" );
                }
 
                $count = 0;
index d30e441..0e85050 100644 (file)
@@ -696,12 +696,9 @@ return array(
                        'mk' => 'resources/mediawiki.language/languages/mk.js',
                        'mo' => 'resources/mediawiki.language/languages/mo.js',
                        'mt' => 'resources/mediawiki.language/languages/mt.js',
-                       'nl' => 'resources/mediawiki.language/languages/nl.js',
                        'nso' => 'resources/mediawiki.language/languages/nso.js',
                        'os' => 'resources/mediawiki.language/languages/os.js',
                        'pl' => 'resources/mediawiki.language/languages/pl.js',
-                       'pt' => 'resources/mediawiki.language/languages/pt.js',
-                       'pt-br' => 'resources/mediawiki.language/languages/pt-br.js',
                        'ro' => 'resources/mediawiki.language/languages/ro.js',
                        'ru' => 'resources/mediawiki.language/languages/ru.js',
                        'se' => 'resources/mediawiki.language/languages/se.js',
index 9a80e94..fef8c4b 100644 (file)
Binary files a/resources/jquery.tipsy/images/tipsy.png and b/resources/jquery.tipsy/images/tipsy.png differ
index e46467b..28eb1fc 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/button-disabled-blue.png and b/resources/jquery.ui/themes/vector/images/button-disabled-blue.png differ
index 7125691..0e29d85 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/button-disabled-green.png and b/resources/jquery.ui/themes/vector/images/button-disabled-green.png differ
index 9d01bbc..ede6998 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/button-disabled-red.png and b/resources/jquery.ui/themes/vector/images/button-disabled-red.png differ
index bfaf84e..e4e4ec1 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/button-disabled.png and b/resources/jquery.ui/themes/vector/images/button-disabled.png differ
index 781a281..766e574 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/button-down-blue.png and b/resources/jquery.ui/themes/vector/images/button-down-blue.png differ
index 60bba29..90969c3 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/button-down-green.png and b/resources/jquery.ui/themes/vector/images/button-down-green.png differ
index 54c847d..f625729 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/button-down-red.png and b/resources/jquery.ui/themes/vector/images/button-down-red.png differ
index 29508a0..c646757 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/button-down.png and b/resources/jquery.ui/themes/vector/images/button-down.png differ
index a5fdd7d..109907f 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/button-off-green.png and b/resources/jquery.ui/themes/vector/images/button-off-green.png differ
index 89a0e9a..cc5eb11 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/button-off.png and b/resources/jquery.ui/themes/vector/images/button-off.png differ
index fbde737..47a0b1b 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/button-over-green.png and b/resources/jquery.ui/themes/vector/images/button-over-green.png differ
index b2d4c0b..a244536 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/button-over-red.png and b/resources/jquery.ui/themes/vector/images/button-over-red.png differ
index 2400f62..558f1f8 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/button-over.png and b/resources/jquery.ui/themes/vector/images/button-over.png differ
index b36dafb..ef0dd9e 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/close.png and b/resources/jquery.ui/themes/vector/images/close.png differ
index 2146cb0..09de537 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/ui-bg_flat_15_cd0a0a_40x100.png and b/resources/jquery.ui/themes/vector/images/ui-bg_flat_15_cd0a0a_40x100.png differ
index 6ff03d5..c06dd56 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/ui-bg_flat_70_000000_40x100.png and b/resources/jquery.ui/themes/vector/images/ui-bg_flat_70_000000_40x100.png differ
index 28b566c..5308b46 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png and b/resources/jquery.ui/themes/vector/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png differ
index dac8462..0c8997f 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/ui-bg_highlight-hard_80_d7ebf9_1x100.png and b/resources/jquery.ui/themes/vector/images/ui-bg_highlight-hard_80_d7ebf9_1x100.png differ
index ad7f982..3149255 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/ui-bg_highlight-soft_100_e4f1fb_1x100.png and b/resources/jquery.ui/themes/vector/images/ui-bg_highlight-soft_100_e4f1fb_1x100.png differ
index 8169ec3..09b2376 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/ui-bg_highlight-soft_100_ffffff_1x100.png and b/resources/jquery.ui/themes/vector/images/ui-bg_highlight-soft_100_ffffff_1x100.png differ
index 54aff0c..66627c1 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/ui-bg_highlight-soft_25_ffef8f_1x100.png and b/resources/jquery.ui/themes/vector/images/ui-bg_highlight-soft_25_ffef8f_1x100.png differ
index 3d87ac7..ccb6dc0 100644 (file)
Binary files a/resources/jquery.ui/themes/vector/images/ui-bg_inset-hard_100_f0f0f0_1x100.png and b/resources/jquery.ui/themes/vector/images/ui-bg_inset-hard_100_f0f0f0_1x100.png differ
index 2af4c94..83d6ff8 100644 (file)
Binary files a/resources/jquery/images/jquery.arrowSteps.divider-ltr.png and b/resources/jquery/images/jquery.arrowSteps.divider-ltr.png differ
index 6aba7f2..529d7b8 100644 (file)
Binary files a/resources/jquery/images/jquery.arrowSteps.divider-rtl.png and b/resources/jquery/images/jquery.arrowSteps.divider-rtl.png differ
index 45df39a..d8f4bfc 100644 (file)
                        // that affects the next each() iteration as well.
                        elLimit = limit === undefined ? $el.prop( 'maxLength' ) : limit;
        
+                       // If there is no (valid) limit passed or found in the property,
+                       // skip this. The < 0 check is required for Firefox, which returns
+                       // -1  (instead of undefined) for maxLength if it is not set.
+                       if ( !elLimit || elLimit < 0 ) {
+                               return;
+                       }
+
                        // Update/set attribute value, but only if there is no callback set.
                        // If there's a callback set, it's possible that the limit being enforced
                        // is too low (ie. if the callback would return "Foo" for "User:Foo").
                                $el.removeProp( 'maxLength' );
                        }
        
-                       // Nothing passed and/or empty attribute, return without binding an event.
-                       if ( elLimit === undefined ) {
-                               return;
-                       }
-       
                        // Save function for reference
                        $el.data( 'byteLimit-callback', fn );
        
index 79317f7..6d5974a 100644 (file)
@@ -1,96 +1,47 @@
-/**
- * Cookie plugin
+/*!
+ * jQuery Cookie Plugin
+ * https://github.com/carhartl/jquery-cookie
  *
- * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
- * Dual licensed under the MIT and GPL licenses:
+ * Copyright 2011, Klaus Hartl
+ * Dual licensed under the MIT or GPL Version 2 licenses.
  * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- *
+ * http://www.opensource.org/licenses/GPL-2.0
  */
+(function($) {
+    $.cookie = function(key, value, options) {
 
-/**
- * Create a cookie with the given name and value and other optional parameters.
- *
- * @example $.cookie('the_cookie', 'the_value');
- * @desc Set the value of a cookie.
- * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
- * @desc Create a cookie with all available options.
- * @example $.cookie('the_cookie', 'the_value');
- * @desc Create a session cookie.
- * @example $.cookie('the_cookie', null);
- * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
- *       used when the cookie was set.
- *
- * @param String name The name of the cookie.
- * @param String value The value of the cookie.
- * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
- * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
- *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
- *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
- *                             when the the browser exits.
- * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
- * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
- * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
- *                        require a secure protocol (like HTTPS).
- * @type undefined
- *
- * @name $.cookie
- * @cat Plugins/Cookie
- * @author Klaus Hartl/klaus.hartl@stilbuero.de
- */
+        // key and at least value given, set cookie...
+        if (arguments.length > 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value === null || value === undefined)) {
+            options = $.extend({}, options);
 
-/**
- * Get the value of a cookie with the given name.
- *
- * @example $.cookie('the_cookie');
- * @desc Get the value of a cookie.
- *
- * @param String name The name of the cookie.
- * @return The value of the cookie.
- * @type String
- *
- * @name $.cookie
- * @cat Plugins/Cookie
- * @author Klaus Hartl/klaus.hartl@stilbuero.de
- */
-jQuery.cookie = function(name, value, options) {
-    if (typeof value != 'undefined') { // name and value given, set cookie
-        options = options || {};
-        if (value === null) {
-            value = '';
-            options.expires = -1;
-        }
-        var expires = '';
-        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
-            var date;
-            if (typeof options.expires == 'number') {
-                date = new Date();
-                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
-            } else {
-                date = options.expires;
+            if (value === null || value === undefined) {
+                options.expires = -1;
             }
-            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
-        }
-        // CAUTION: Needed to parenthesize options.path and options.domain
-        // in the following expressions, otherwise they evaluate to undefined
-        // in the packed version for some reason...
-        var path = options.path ? '; path=' + (options.path) : '';
-        var domain = options.domain ? '; domain=' + (options.domain) : '';
-        var secure = options.secure ? '; secure' : '';
-        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
-    } else { // only name given, get cookie
-        var cookieValue = null;
-        if (document.cookie && document.cookie != '') {
-            var cookies = document.cookie.split(';');
-            for (var i = 0; i < cookies.length; i++) {
-                var cookie = jQuery.trim(cookies[i]);
-                // Does this cookie string begin with the name we want?
-                if (cookie.substring(0, name.length + 1) == (name + '=')) {
-                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
-                    break;
-                }
+
+            if (typeof options.expires === 'number') {
+                var days = options.expires, t = options.expires = new Date();
+                t.setDate(t.getDate() + days);
             }
+
+            value = String(value);
+
+            return (document.cookie = [
+                encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value),
+                options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
+                options.path    ? '; path=' + options.path : '',
+                options.domain  ? '; domain=' + options.domain : '',
+                options.secure  ? '; secure' : ''
+            ].join(''));
+        }
+
+        // key and possibly options given, get cookie...
+        options = value || {};
+        var decode = options.raw ? function(s) { return s; } : decodeURIComponent;
+
+        var pairs = document.cookie.split('; ');
+        for (var i = 0, pair; pair = pairs[i] && pairs[i].split('='); i++) {
+            if (decode(pair[0]) === key) return decode(pair[1] || ''); // IE saves cookies with empty string as "c; ", e.g. without "=" as opposed to EOMB, thus pair[1] may be undefined
         }
-        return cookieValue;
-    }
-};
+        return null;
+    };
+})(jQuery);
index ea86b64..08272a5 100644 (file)
@@ -60,7 +60,7 @@
 
        /* Local scope */
 
-       var     ts,
+       var ts,
                parsers = [];
 
        /* Parser utility functions */
 
        function getElementText( node ) {
                var $node = $( node ),
-                       data = $node.attr( 'data-sort-value' );
-               if ( data !== undefined ) {
-                       return data;
+                       // Use data-sort-value attribute.
+                       // Use data() instead of attr() so that live value changes
+                       // are processed as well (bug 38152).
+                       data = $node.data( 'sortValue' );
+
+               if ( data !== null && data !== undefined ) {
+                       // Cast any numbers or other stuff to a string, methods
+                       // like charAt, toLowerCase and split are expected.
+                       return String( data );
                } else {
                        return $node.text();
                }
 
        function buildDateTable() {
                var regex = [];
-               ts.monthNames = [
-                       [],
-                       []
-               ];
+               ts.monthNames = {};
 
                for ( var i = 1; i < 13; i++ ) {
-                       ts.monthNames[0][i] = mw.config.get( 'wgMonthNames' )[i].toLowerCase();
-                       ts.monthNames[1][i] = mw.config.get( 'wgMonthNamesShort' )[i].toLowerCase().replace( '.', '' );
-                       regex.push( $.escapeRE( ts.monthNames[0][i] ) );
-                       regex.push( $.escapeRE( ts.monthNames[1][i] ) );
+                       var name = mw.config.get( 'wgMonthNames' )[i].toLowerCase();
+                       ts.monthNames[name] = i;
+                       regex.push( $.escapeRE( name ) );
+                       name = mw.config.get( 'wgMonthNamesShort' )[i].toLowerCase().replace( '.', '' );
+                       ts.monthNames[name] = i;
+                       regex.push( $.escapeRE( name ) );
                }
 
                // Build piped string
 
                // Build RegEx
                // Any date formated with . , ' - or /
-               ts.dateRegex[0] = new RegExp( /^\s*\d{1,2}[\,\.\-\/'\s]{1,2}\d{1,2}[\,\.\-\/'\s]{1,2}\d{2,4}\s*?/i);
+               ts.dateRegex[0] = new RegExp( /^\s*(\d{1,2})[\,\.\-\/'\s]{1,2}(\d{1,2})[\,\.\-\/'\s]{1,2}(\d{2,4})\s*?/i);
 
                // Written Month name, dmy
-               ts.dateRegex[1] = new RegExp( '^\\s*\\d{1,2}[\\,\\.\\-\\/\'\\s]*(' + regex + ')' + '[\\,\\.\\-\\/\'\\s]*\\d{2,4}\\s*$', 'i' );
+               ts.dateRegex[1] = new RegExp( '^\\s*(\\d{1,2})[\\,\\.\\-\\/\'\\s]*(' + regex + ')' + '[\\,\\.\\-\\/\'\\s]*(\\d{2,4})\\s*$', 'i' );
 
                // Written Month name, mdy
-               ts.dateRegex[2] = new RegExp( '^\\s*(' + regex + ')' + '[\\,\\.\\-\\/\'\\s]*\\d{1,2}[\\,\\.\\-\\/\'\\s]*\\d{2,4}\\s*$', 'i' );
+               ts.dateRegex[2] = new RegExp( '^\\s*(' + regex + ')' + '[\\,\\.\\-\\/\'\\s]*(\\d{1,2})[\\,\\.\\-\\/\'\\s]*(\\d{2,4})\\s*$', 'i' );
 
        }
 
                        },
 
                        dateRegex: [],
-                       monthNames: [],
+                       monthNames: {},
 
                        /**
                         * @param $tables {jQuery}
                                                        explodeRowspans( $table );
                                                        // try to auto detect column type, and store in tables config
                                                        table.config.parsers = buildParserCache( table, $headers );
-                                                       // build the cache for the tbody cells
-                                                       cache = buildCache( table );
                                                }
+
+                                               // Build the cache for the tbody cells
+                                               // to share between calculations for this sort action.
+                                               // Re-calculated each time a sort action is performed due to possiblity
+                                               // that sort values change. Shouldn't be too expensive, but if it becomes
+                                               // too slow an event based system should be implemented somehow where
+                                               // cells get event .change() and bubbles up to the <table> here
+                                               cache = buildCache( table );
+
                                                var totalRows = ( $table[0].tBodies[0] && $table[0].tBodies[0].rows.length ) || 0;
                                                if ( !table.sortDisabled && totalRows > 0 ) {
 
                format: function( s, table ) {
                        s = $.trim( s.toLowerCase() );
 
-                       for ( var i = 1, j = 0; i < 13 && j < 2; i++ ) {
-                               s = s.replace( ts.monthNames[j][i], i );
-                               if ( i == 12 ) {
-                                       j++;
-                                       i = 0;
+                       var match;
+                       if ( ( match = s.match( ts.dateRegex[0] ) ) !== null ) {
+                               if ( mw.config.get( 'wgDefaultDateFormat' ) == 'mdy' || mw.config.get( 'wgContentLanguage' ) == 'en' ) {
+                                       s = [ match[3], match[1], match[2] ];
+                               } else if ( mw.config.get( 'wgDefaultDateFormat' ) == 'dmy' ) {
+                                       s = [ match[3], match[2], match[1] ];
                                }
+                       } else if ( ( match = s.match( ts.dateRegex[1] ) ) !== null ) {
+                               s = [ match[3], '' + ts.monthNames[match[2]], match[1] ];
+                       } else if ( ( match = s.match( ts.dateRegex[2] ) ) !== null ) {
+                               s = [ match[3], '' + ts.monthNames[match[1]], match[2] ];
+                       } else {
+                               // Should never get here
+                               return '99999999';
                        }
 
-                       s = s.replace( /[\-\.\,' ]/g, '/' );
-
-                       // Replace double slashes
-                       s = s.replace( /\/\//g, '/' );
-                       s = s.replace( /\/\//g, '/' );
-                       s = s.split( '/' );
-
                        // Pad Month and Day
-                       if ( s[0] && s[0].length == 1 ) {
-                               s[0] = '0' + s[0];
-                       }
-                       if ( s[1] && s[1].length == 1 ) {
+                       if ( s[1].length == 1 ) {
                                s[1] = '0' + s[1];
                        }
-                       var y;
+                       if ( s[2].length == 1 ) {
+                               s[2] = '0' + s[2];
+                       }
 
-                       if ( !s[2] ) {
-                               // Fix yearless dates
-                               s[2] = 2000;
-                       } else if ( ( y = parseInt( s[2], 10) ) < 100 ) {
+                       var y;
+                       if ( ( y = parseInt( s[0], 10) ) < 100 ) {
                                // Guestimate years without centuries
                                if ( y < 30 ) {
-                                       s[2] = 2000 + y;
+                                       s[0] = 2000 + y;
                                } else {
-                                       s[2] = 1900 + y;
+                                       s[0] = 1900 + y;
                                }
                        }
-                       // Resort array depending on preferences
-                       if ( mw.config.get( 'wgDefaultDateFormat' ) == 'mdy' || mw.config.get( 'wgContentLanguage' ) == 'en' ) {
-                               s.push( s.shift() );
-                               s.push( s.shift() );
-                       } else if ( mw.config.get( 'wgDefaultDateFormat' ) == 'dmy' ) {
-                               var d = s.shift();
-                               s.push( s.shift() );
-                               s.push(d);
+                       while ( s[0].length < 4 ) {
+                               s[0] = '0' + s[0];
                        }
                        return parseInt( s.join( '' ), 10 );
                },
index a9d488a..5197396 100644 (file)
                 */
                getEditToken: function( tokenCallback, err ) {
                        var parameters = {
-                                       prop: 'info',
-                                       intoken: 'edit',
-                                       // we need some kind of dummy page to get a token from. This will return a response
-                                       // complaining that the page is missing, but we should also get an edit token
-                                       titles: 'DummyPageForEditToken'
+                                       action: 'tokens',
+                                       type: 'edit'
                                },
                                ok = function( data ) {
                                        var token;
-                                       $.each( data.query.pages, function( i, page ) {
-                                               if ( page.edittoken ) {
-                                                       token = page.edittoken;
-                                                       return false;
-                                               }
-                                       } );
-                                       if ( token !== undefined ) {
+                                       // If token type is not available for this user,
+                                       // key 'edittoken' is missing or can contain Boolean false
+                                       if ( data.tokens && data.tokens.edittoken ) {
+                                               token = data.tokens.edittoken;
                                                cachedToken = token;
                                                tokenCallback( token );
                                        } else {
index cdc9704..8a5421e 100644 (file)
@@ -57,3 +57,7 @@ table.mw-enhanced-rc td.mw-enhanced-rc-nested {
        /* @embed */
        background: url(images/arrow-expanded.png) no-repeat left center;
 }
+
+.mw-changeslist-line-watched .mw-title {
+       font-weight: bold;
+}
index e9df83c..0804825 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * JavaScript for Special:Preferences
  */
-jQuery( document ).ready( function( $ ) {
+jQuery( document ).ready( function ( $ ) {
 $( '#prefsubmit' ).attr( 'id', 'prefcontrol' );
 var $preftoc = $('<ul id="preftoc"></ul>');
 var $preferences = $( '#preferences' )
@@ -15,8 +15,35 @@ var $fieldsets = $preferences.children( 'fieldset' )
 var $legends = $fieldsets.children( 'legend' )
        .addClass( 'mainLegend' );
 
+/**
+ * It uses document.getElementById for security reasons (html injections in
+ * jQuery()).
+ *
+ * @param String name: the name of a tab without the prefix ("mw-prefsection-")
+ * @param String mode: [optional] A hash will be set according to the current
+ * open section. Set mode 'noHash' to surpress this.
+ */
+function switchPrefTab( name, mode ) {
+       var $tab, scrollTop;
+       // Handle hash manually to prevent jumping,
+       // therefore save and restore scrollTop to prevent jumping.
+       scrollTop = $( window ).scrollTop();
+       if ( mode !== 'noHash' ) {
+               window.location.hash = '#mw-prefsection-' + name;
+       }
+       $( window ).scrollTop( scrollTop );
+
+       $preftoc.find( 'li' ).removeClass( 'selected' );
+       $tab = $( document.getElementById( 'preftab-' + name ) );
+       if ( $tab.length ) {
+               $tab.parent().addClass( 'selected' );
+               $preferences.children( 'fieldset' ).hide();
+               $( document.getElementById( 'mw-prefsection-' + name ) ).show();
+       }
+}
+
 // Populate the prefToc
-$legends.each( function( i, legend ) {
+$legends.each( function ( i, legend ) {
        var $legend = $(legend);
        if ( i === 0 ) {
                $legend.parent().show();
@@ -30,18 +57,6 @@ $legends.each( function( i, legend ) {
                text : $legend.text(),
                id : ident.replace( 'mw-prefsection', 'preftab' ),
                href : '#' + ident
-       }).click( function( e ) {
-               e.preventDefault();
-               // Handle hash manually to prevent jumping
-               // Therefore save and restore scrollTop to prevent jumping
-               var scrollTop = $(window).scrollTop();
-               window.location.hash = $(this).attr('href');
-               $(window).scrollTop(scrollTop);
-
-               $preftoc.find( 'li' ).removeClass( 'selected' );
-               $(this).parent().addClass( 'selected' );
-               $( '#preferences > fieldset' ).hide();
-               $( '#' + ident ).show();
        });
        $li.append( $a );
        $preftoc.append( $li );
@@ -50,11 +65,34 @@ $legends.each( function( i, legend ) {
 // If we've reloaded the page or followed an open-in-new-window,
 // make the selected tab visible.
 var hash = window.location.hash;
-if( hash.match( /^#mw-prefsection-[\w-]+/ ) ) {
-       var $tab = $( hash.replace( 'mw-prefsection', 'preftab' ) );
-       $tab.click();
+if ( hash.match( /^#mw-prefsection-[\w-]+/ ) ) {
+       switchPrefTab( hash.replace( '#mw-prefsection-' , '' ) );
 }
 
+// In browsers that support the onhashchange event we will not bind click
+// handlers and instead let the browser do the default behavior (clicking the
+// <a href="#.."> will naturally set the hash, handled by onhashchange.
+// But other things that change the hash will also be catched (e.g. using
+// the Back and Forward browser navigation).
+if ( 'onhashchange' in window ) {
+       $(window).on( 'hashchange' , function () {
+               var hash = window.location.hash;
+               if ( hash.match( /^#mw-prefsection-[\w-]+/ ) ) {
+                       switchPrefTab( hash.replace( '#mw-prefsection-', '' ) );
+               } else if ( hash === '' ) {
+                       switchPrefTab( 'personal', 'noHash' );
+               }
+       });
+// In older browsers we'll bind a click handler as fallback.
+// We must not have onhashchange *and* the click handlers, other wise
+// the click handler calls switchPrefTab() which sets the hash value,
+// which triggers onhashcange and calls switchPrefTab() again.
+} else {
+       $preftoc.on( 'click', 'li a', function ( e ) {
+               switchPrefTab( $( this ).attr( 'href' ).replace( '#mw-prefsection-', '' ) );
+               e.preventDefault();
+       });
+}
 
 /**
 * Timezone functions.
@@ -68,7 +106,7 @@ var $localtimeHolder = $( '#wpLocalTime' );
 var servertime = parseInt( $( 'input[name=wpServerTime]' ).val(), 10 );
 var minuteDiff = 0;
 
-var minutesToHours = function( min ) {
+var minutesToHours = function ( min ) {
        var tzHour = Math.floor( Math.abs( min ) / 60 );
        var tzMin = Math.abs( min ) % 60;
        var tzString = ( ( min >= 0 ) ? '' : '-' ) + ( ( tzHour < 10 ) ? '0' : '' ) + tzHour +
@@ -76,7 +114,7 @@ var minutesToHours = function( min ) {
        return tzString;
 };
 
-var hoursToMinutes = function( hour ) {
+var hoursToMinutes = function ( hour ) {
        var arr = hour.split( ':' );
        arr[0] = parseInt( arr[0], 10 );
 
@@ -99,7 +137,7 @@ var hoursToMinutes = function( hour ) {
        }
 };
 
-var updateTimezoneSelection = function() {
+var updateTimezoneSelection = function () {
        var type = $tzSelect.val();
        if ( type == 'guess' ) {
                // Get browser timezone & fill it in
@@ -130,8 +168,8 @@ var updateTimezoneSelection = function() {
 };
 
 if ( $tzSelect.length && $tzTextbox.length ) {
-       $tzSelect.change( function() { updateTimezoneSelection(); } );
-       $tzTextbox.blur( function() { updateTimezoneSelection(); } );
+       $tzSelect.change( function () { updateTimezoneSelection(); } );
+       $tzTextbox.blur( function () { updateTimezoneSelection(); } );
        updateTimezoneSelection();
 }
 } );
index e8a0118..b871ac7 100644 (file)
                                if ( typeof uri === 'string' ) {
                                        this.parse( uri, options );
                                } else if ( typeof uri === 'object' ) {
-                                       var uriObj = this;
-                                       $.each( properties, function ( i, property ) {
-                                               uriObj[property] = uri[property];
-                                       } );
-                                       if ( this.query === undefined ) {
+                                       // Copy data over from existing URI object
+                                       for ( var prop in uri ) {
+                                               // Only copy direct properties, not inherited ones
+                                               if ( uri.hasOwnProperty( prop ) ) {
+                                                       // Deep copy object properties
+                                                       if ( $.isArray( uri[prop] ) || $.isPlainObject( uri[prop] ) ) {
+                                                               this[prop] = $.extend( true, {}, uri[prop] );
+                                                       } else {
+                                                               this[prop] = uri[prop];
+                                                       }
+                                               }
+                                       }
+                                       if ( !this.query ) {
                                                this.query = {};
                                        }
                                }
index 043ebce..f690a1d 100644 (file)
                return function( args ) {
                        var key = args[0];
                        var argsArray = $.isArray( args[1] ) ? args[1] : $.makeArray( args ).slice( 1 ); 
-                       var escapedArgsArray = $.map( argsArray, function( arg ) { 
-                               return typeof arg === 'string' ? mw.html.escape( arg ) : arg;
-                       } );
                        try {
-                               return parser.parse( key, escapedArgsArray );
+                               return parser.parse( key, argsArray );
                        } catch ( e ) {
-                               return $( '<span></span>' ).append( key + ': ' + e.message );
+                               return $( '<span>' ).append( key + ': ' + e.message );
                        }
                };
        }
                },
 
                /**
-                * Fetch the message string associated with a key, return parsed structure. Memoized.
+                * Fetch the message string associated with a key, return parsed structure. Memoized.
                 * Note that we pass '[' + key + ']' back for a missing message here. 
-                * @param {String} key
+                * @param {String} key
                 * @return {String|Array} string of '[key]' if message missing, simple string if possible, array of arrays if needs parsing
                 */
                getAst: function( key ) {
 
 
                        var regularLiteral = makeRegexParser( /^[^{}[\]$\\]/ );
-                       var regularLiteralWithoutBar = makeRegexParser(/^[^{}[\]$\\|]/);
-                       var regularLiteralWithoutSpace = makeRegexParser(/^[^{}[\]$\s]/);
+                       var regularLiteralWithoutBar = makeRegexParser(/^[^{}[\]$\\|]/);
+                       var regularLiteralWithoutSpace = makeRegexParser(/^[^{}[\]$\s]/);
 
                        var backslash = makeStringParser( "\\" );
                        var anyCharacter = makeRegexParser( /^./ );
                                return result;
                        }
 
+                       // this is the same as the above extlink, except that the url is being passed on as a parameter
+                       function extLinkParam() {
+                               var result = sequence( [
+                                       openExtlink,
+                                       dollar,
+                                       digits,
+                                       whitespace,
+                                       expression,
+                                       closeExtlink
+                               ] );
+                               if ( result === null ) {
+                                       return null;
+                               }
+                               return [ 'LINKPARAM', parseInt( result[2], 10 ) - 1, result[4] ];
+                       }
+
                        var openLink = makeStringParser( '[[' );
                        var closeLink = makeStringParser( ']]' );
 
                        }
 
                        var nonWhitespaceExpression = choice( [
-                               template,        
+                               template,
                                link,
+                               extLinkParam,
                                extlink,
                                replacement,
                                literalWithoutSpace
                        ] );
 
                        var paramExpression = choice( [
-                               template,        
+                               template,
                                link,
+                               extLinkParam,
                                extlink,
                                replacement,
                                literalWithoutBar
                        var expression = choice( [ 
                                template,
                                link,
+                               extLinkParam,
                                extlink,
                                replacement,
                                literal 
                },
 
                /**
-                * Return replacement of correct index, or string if unavailable.
+                * Return escaped replacement of correct index, or string if unavailable.
                 * Note that we expect the parsed parameter to be zero-based. i.e. $1 should have become [ 0 ].
                 * if the specified parameter is not found return the same string
                 * (e.g. "$99" -> parameter 98 -> not found -> return "$99" )
                 */
                replace: function( nodes, replacements ) {
                        var index = parseInt( nodes[0], 10 );
-                       return index < replacements.length ? replacements[index] : '$' + ( index + 1 ); 
+                       
+                       if ( index < replacements.length ) {
+                               if ( typeof arg === 'string' ) {
+                                       // replacement is a string, escape it
+                                       return mw.html.escape( replacements[index] );
+                               } else {
+                                       // replacement is no string, don't touch!
+                                       return replacements[index];
+                               }
+                       } else {
+                               // index not found, fallback to displaying variable
+                               return '$' + ( index + 1 );
+                       }
                },
 
                /** 
                        return $el;
                },
 
+               /**
+                * This is basically use a combination of replace + link (link with parameter
+                * as url), but we don't want to run the regular replace here-on: inserting a
+                * url as href-attribute of a link will automatically escape it already, so
+                * we don't want replace to (manually) escape it as well.
+                * TODO throw error if nodes.length > 1 ?
+                * @param {Array} of one element, integer, n >= 0
+                * @return {String} replacement
+                */
+               linkparam: function( nodes, replacements ) {
+                       var replacement,
+                               index = parseInt( nodes[0], 10 );
+                       if ( index < replacements.length) {
+                               replacement = replacements[index];
+                       } else {
+                               replacement = '$' + ( index + 1 );
+                       }
+                       return this.link( [ replacement, nodes[1] ] );
+               },
+
                /**
                 * Transform parsed structure into pluralization
                 * n.b. The first node may be a non-integer (for instance, a string representing an Arabic number).
index 793cf22..deb7795 100644 (file)
@@ -351,7 +351,7 @@ var mw = ( function ( $, undefined ) {
                         *              }
                         *      }
                         */
-                       var     registry = {},
+                       var registry = {},
                                /**
                                 * Mapping of sources, keyed by source-id, values are objects.
                                 * Format:
@@ -368,17 +368,9 @@ var mw = ( function ( $, undefined ) {
                                queue = [],
                                // List of callback functions waiting for modules to be ready to be called
                                jobs = [],
-                               // Flag indicating that document ready has occured
-                               ready = false,
                                // Selector cache for the marker element. Use getMarker() to get/use the marker!
                                $marker = null;
 
-                       /* Cache document ready status */
-
-                       $(document).ready( function () {
-                               ready = true;
-                       } );
-
                        /* Private methods */
 
                        function getMarker() {
@@ -637,10 +629,12 @@ var mw = ( function ( $, undefined ) {
                                var console = window.console;
                                if ( console && console.log ) {
                                        console.log( msg );
-                                       // console.error triggers the proper handling of exception objects in
-                                       // consoles that support it. Fallback to passing as plain object to log().
-                                       if ( e ) {
-                                               (console.error || console.log).call( console, e );
+                                       // If we have an exception object, log it through .error() to trigger
+                                       // proper stacktraces in browsers that support it. There are no (known)
+                                       // browsers that don't support .error(), that do support .log() and
+                                       // have useful exception handling through .log().
+                                       if ( e && console.error ) {
+                                               console.error( e );
                                        }
                                }
                        }
@@ -697,7 +691,7 @@ var mw = ( function ( $, undefined ) {
                                                                } catch ( ex ) {
                                                                        // A user-defined operation raised an exception. Swallow to protect
                                                                        // our state machine!
-                                                                       log( 'mw.loader::handlePending> Exception thrown by job.error()', ex );
+                                                                       log( 'Exception thrown by job.error()', ex );
                                                                }
                                                        }
                                                }
@@ -723,8 +717,12 @@ var mw = ( function ( $, undefined ) {
                         * @param callback Function: Optional callback which will be run when the script is done
                         */
                        function addScript( src, callback, async ) {
-                               var done = false, script, head;
-                               if ( ready || async ) {
+                               var script, head,
+                                       done = false;
+
+                               // Using isReady directly instead of storing it locally from
+                               // a $.fn.ready callback (bug 31895).
+                               if ( $.isReady || async ) {
                                        // jQuery's getScript method is NOT better than doing this the old-fashioned way
                                        // because jQuery will eval the script's code, and errors will not have sane
                                        // line numbers.
index 7f881b0..7a15e29 100644 (file)
@@ -25,7 +25,7 @@
                 * Generates a random user session ID (32 alpha-numeric characters).
                 *
                 * This information would potentially be stored in a cookie to identify a user during a
-                * session or series of sessions. It's uniqueness should not be depended on.
+                * session or series of sessions. Its uniqueness should not be depended on.
                 *
                 * @return String: Random set of 32 alpha-numeric characters
                 */
        // This is kind of ugly but we're stuck with this for b/c reasons
        mw.user = new User( mw.user.options, mw.user.tokens );
 
-})(jQuery);
\ No newline at end of file
+})(jQuery);
index 9202d2e..541c77a 100644 (file)
                                        return null;
                                }
                                // Select the first (most likely only) unordered list inside the portlet
-                               $ul = $portlet.find( 'ul' );
+                               $ul = $portlet.find( 'ul' ).eq( 0 );
 
                                // If it didn't have an unordered list yet, create it
                                if ( $ul.length === 0 ) {
+
+                                       $ul = $( '<ul>' );
+
                                        // If there's no <div> inside, append it to the portlet directly
                                        if ( $portlet.find( 'div:first' ).length === 0 ) {
-                                               $portlet.append( '<ul></ul>' );
+                                               $portlet.append( $ul );
                                        } else {
                                                // otherwise if there's a div (such as div.body or div.pBody)
                                                // append the <ul> to last (most likely only) div
-                                               $portlet.find( 'div' ).eq( -1 ).append( '<ul></ul>' );
+                                               $portlet.find( 'div' ).eq( -1 ).append( $ul );
                                        }
-                                       // Select the created element
-                                       $ul = $portlet.find( 'ul' ).eq( 0 );
                                }
                                // Just in case..
                                if ( $ul.length === 0 ) {
index 6ac3f08..be07ba8 100644 (file)
@@ -103,7 +103,7 @@ class VectorTemplate extends BaseTemplate {
                $nav = $this->data['content_navigation'];
 
                if ( $wgVectorUseIconWatch ) {
-                       $mode = $this->getSkin()->getRelevantTitle()->userIsWatching() ? 'unwatch' : 'watch';
+                       $mode = $this->getSkin()->getUser()->isWatched( $this->getSkin()->getRelevantTitle() ) ? 'unwatch' : 'watch';
                        if ( isset( $nav['actions'][$mode] ) ) {
                                $nav['views'][$mode] = $nav['actions'][$mode];
                                $nav['views'][$mode]['class'] = rtrim( 'icon ' . $nav['views'][$mode]['class'], ' ' );
index 903a4f7..02fd29f 100644 (file)
@@ -198,12 +198,6 @@ pre, .mw-code {
        border: 1px dashed #2f6fab;
        color: black;
        background-color: #f9f9f9;
-       /* Handle overflow (bug 260) */
-       overflow: auto;
-       /* IE 7 is the first IE to support overflow but got it wrong */
-       /* IE 8+ is fine */
-       *padding-bottom: 21px;
-       *overflow-y: hidden;
 }
 
 /* Tables */
index 08296a9..bc67a4b 100644 (file)
Binary files a/skins/common/images/Arr_.png and b/skins/common/images/Arr_.png differ
index 5fc956d..e524f6c 100644 (file)
Binary files a/skins/common/images/ar/button_bold.png and b/skins/common/images/ar/button_bold.png differ
index 4888e73..c9c63f6 100644 (file)
Binary files a/skins/common/images/ar/button_link.png and b/skins/common/images/ar/button_link.png differ
index 5283179..12b986b 100644 (file)
Binary files a/skins/common/images/ar/button_nowiki.png and b/skins/common/images/ar/button_nowiki.png differ
index d02aeee..5c10cfe 100644 (file)
Binary files a/skins/common/images/be-tarask/button_bold.png and b/skins/common/images/be-tarask/button_bold.png differ
index 26e0192..19e4ad4 100644 (file)
Binary files a/skins/common/images/button_hr.png and b/skins/common/images/button_hr.png differ
index 24e0095..ff7348a 100644 (file)
Binary files a/skins/common/images/button_sig.png and b/skins/common/images/button_sig.png differ
index 51951c6..53b6f92 100644 (file)
Binary files a/skins/common/images/button_template.png and b/skins/common/images/button_template.png differ
index cd262c4..990702e 100644 (file)
Binary files a/skins/common/images/closewindow.png and b/skins/common/images/closewindow.png differ
index 348e548..c96d9ff 100644 (file)
Binary files a/skins/common/images/closewindow19x19.png and b/skins/common/images/closewindow19x19.png differ
index 3c2666e..b958d22 100644 (file)
Binary files a/skins/common/images/cyrl/button_italic.png and b/skins/common/images/cyrl/button_italic.png differ
index 4008cb9..33f91ed 100644 (file)
Binary files a/skins/common/images/fa/button_italic.png and b/skins/common/images/fa/button_italic.png differ
index 5283179..12b986b 100644 (file)
Binary files a/skins/common/images/fa/button_nowiki.png and b/skins/common/images/fa/button_nowiki.png differ
index af869d2..cd657c3 100644 (file)
Binary files a/skins/common/images/nextredirectltr.png and b/skins/common/images/nextredirectltr.png differ
index c9bf355..b788f33 100644 (file)
Binary files a/skins/common/images/nextredirectrtl.png and b/skins/common/images/nextredirectrtl.png differ
index 96a2e9a..ba5718a 100644 (file)
Binary files a/skins/common/images/tooltip_icon.png and b/skins/common/images/tooltip_icon.png differ
index 3b3cf81..ee46a50 100644 (file)
Binary files a/skins/modern/document.png and b/skins/modern/document.png differ
index dfc8e62..72b8724 100644 (file)
Binary files a/skins/modern/footer-grad.png and b/skins/modern/footer-grad.png differ
index b8f5abb..4d3cb47 100644 (file)
Binary files a/skins/modern/news_icon.png and b/skins/modern/news_icon.png differ
index dff165e..e535c0c 100644 (file)
Binary files a/skins/modern/video.png and b/skins/modern/video.png differ
index 3b3cf81..ee46a50 100644 (file)
Binary files a/skins/monobook/document.png and b/skins/monobook/document.png differ
index b8f5abb..4d3cb47 100644 (file)
Binary files a/skins/monobook/news_icon.png and b/skins/monobook/news_icon.png differ
index 3286583..d86dbe0 100644 (file)
Binary files a/skins/monobook/video.png and b/skins/monobook/video.png differ
index f500c9e..7640bd1 100644 (file)
Binary files a/skins/vector/images/arrow-down-focus-icon.png and b/skins/vector/images/arrow-down-focus-icon.png differ
index 255c7d1..12e3b93 100644 (file)
Binary files a/skins/vector/images/arrow-down-icon.png and b/skins/vector/images/arrow-down-icon.png differ
index b32678f..5a1d2f4 100644 (file)
Binary files a/skins/vector/images/audio-icon.png and b/skins/vector/images/audio-icon.png differ
index 0cf02db..f9ca8cc 100644 (file)
Binary files a/skins/vector/images/border.png and b/skins/vector/images/border.png differ
index bd429c2..7bae98f 100644 (file)
Binary files a/skins/vector/images/bullet-icon.png and b/skins/vector/images/bullet-icon.png differ
index 9148bdb..b70efaa 100644 (file)
Binary files a/skins/vector/images/link-icon.png and b/skins/vector/images/link-icon.png differ
index 5fa9e82..a9ba8a7 100644 (file)
Binary files a/skins/vector/images/lock-icon.png and b/skins/vector/images/lock-icon.png differ
index 16002f7..9823d72 100644 (file)
Binary files a/skins/vector/images/mail-icon.png and b/skins/vector/images/mail-icon.png differ
index 4ca31da..b3ecd30 100644 (file)
Binary files a/skins/vector/images/page-base.png and b/skins/vector/images/page-base.png differ
index b93c027..1436cda 100644 (file)
Binary files a/skins/vector/images/page-fade.png and b/skins/vector/images/page-fade.png differ
index 3ef0b26..90c3918 100644 (file)
Binary files a/skins/vector/images/portal-break.png and b/skins/vector/images/portal-break.png differ
index 696135b..8e0082b 100644 (file)
Binary files a/skins/vector/images/preferences-base.png and b/skins/vector/images/preferences-base.png differ
index 7e25a05..e59f578 100644 (file)
Binary files a/skins/vector/images/preferences-break.png and b/skins/vector/images/preferences-break.png differ
index 7963b76..411a1aa 100644 (file)
Binary files a/skins/vector/images/preferences-edge.png and b/skins/vector/images/preferences-edge.png differ
index 3996fb4..638084d 100644 (file)
Binary files a/skins/vector/images/preferences-fade.png and b/skins/vector/images/preferences-fade.png differ
index 140feae..6cb7d28 100644 (file)
Binary files a/skins/vector/images/search-fade.png and b/skins/vector/images/search-fade.png differ
index d6eabd5..b8f772f 100644 (file)
Binary files a/skins/vector/images/tab-current-fade.png and b/skins/vector/images/tab-current-fade.png differ
index 1bedd33..57f9f8d 100644 (file)
Binary files a/skins/vector/images/user-icon.png and b/skins/vector/images/user-icon.png differ
index 1ec8456..e934a0f 100644 (file)
Binary files a/skins/vector/images/video-icon.png and b/skins/vector/images/video-icon.png differ
index a3327b4..6d324e4 100644 (file)
@@ -134,6 +134,285 @@ Italics and bold
 
 !! end
 
+###
+### 2-quote opening sequence tests
+###
+!! test
+Italics and bold: 2-quote opening sequence: (2,2)
+!! input
+''foo''
+!! result
+<p><i>foo</i>
+</p>
+!!end
+
+
+!! test
+Italics and bold: 2-quote opening sequence: (2,3)
+!! input
+''foo'''
+!! result
+<p><i>foo'</i>
+</p>
+!!end
+
+
+!! test
+Italics and bold: 2-quote opening sequence: (2,4)
+!! input
+''foo''''
+!! result
+<p><i>foo''</i>
+</p>
+!!end
+
+
+!! test
+Italics and bold: 2-quote opening sequence: (2,5)
+!! input
+''foo'''''
+!! result
+<p><i>foo</i>
+</p>
+!!end
+
+
+###
+### 3-quote opening sequence tests
+###
+
+!! test
+Italics and bold: 3-quote opening sequence: (3,2)
+!! input
+'''foo''
+!! result
+<p>'<i>foo</i>
+</p>
+!!end
+
+
+!! test
+Italics and bold: 3-quote opening sequence: (3,3)
+!! input
+'''foo'''
+!! result
+<p><b>foo</b>
+</p>
+!!end
+
+
+!! test
+Italics and bold: 3-quote opening sequence: (3,4)
+!! input
+'''foo''''
+!! result
+<p><b>foo'</b>
+</p>
+!!end
+
+
+!! test
+Italics and bold: 3-quote opening sequence: (3,5)
+!! input
+'''foo'''''
+!! result
+<p><b>foo</b>
+</p>
+!!end
+
+
+###
+### 4-quote opening sequence tests
+###
+
+!! test
+Italics and bold: 4-quote opening sequence: (4,2)
+!! input
+''''foo''
+!! result
+<p>''<i>foo</i>
+</p>
+!!end
+
+
+!! test
+Italics and bold: 4-quote opening sequence: (4,3)
+!! input
+''''foo'''
+!! result
+<p>'<b>foo</b>
+</p>
+!!end
+
+
+!! test
+Italics and bold: 4-quote opening sequence: (4,4)
+!! input
+''''foo''''
+!! result
+<p>'<b>foo'</b>
+</p>
+!!end
+
+
+!! test
+Italics and bold: 4-quote opening sequence: (4,5)
+!! input
+''''foo'''''
+!! result
+<p>'<b>foo</b>
+</p>
+!!end
+
+
+###
+### 5-quote opening sequence tests
+###
+
+!! test
+Italics and bold: 5-quote opening sequence: (5,2)
+!! input
+'''''foo''
+!! result
+<p><b><i>foo</i></b>
+</p>
+!!end
+
+
+!! test
+Italics and bold: 5-quote opening sequence: (5,3)
+!! input
+'''''foo'''
+!! result
+<p><i><b>foo</b></i>
+</p>
+!!end
+
+
+!! test
+Italics and bold: 5-quote opening sequence: (5,4)
+!! input
+'''''foo''''
+!! result
+<p><i><b>foo'</b></i>
+</p>
+!!end
+
+
+!! test
+Italics and bold: 5-quote opening sequence: (5,5)
+!! input
+'''''foo'''''
+!! result
+<p><i><b>foo</b></i>
+</p>
+!!end
+
+###
+### multiple quote sequences in a line
+###
+!! test
+Italics and bold: multiple quote sequences: (2,4,2)
+!! input
+''foo''''bar''
+!! result
+<p><i>foo'<b>bar</b></i>
+</p>
+!!end
+
+
+!! test
+Italics and bold: multiple quote sequences: (2,4,3)
+!! input
+''foo''''bar'''
+!! result
+<p><i>foo'<b>bar</b></i>
+</p>
+!!end
+
+
+!! test
+Italics and bold: multiple quote sequences: (2,4,4)
+!! input
+''foo''''bar''''
+!! result
+<p><i>foo'<b>bar'</b></i>
+</p>
+!!end
+
+
+!! test
+Italics and bold: multiple quote sequences: (3,4,2)
+!! input
+'''foo''''bar''
+!! result
+<p><b>foo'</b>bar
+</p>
+!!end
+
+
+!! test
+Italics and bold: multiple quote sequences: (3,4,3)
+!! input
+'''foo''''bar'''
+!! result
+<p><b>foo'</b>bar
+</p>
+!!end
+
+###
+### other quote tests
+###
+!! test
+Italics and bold: other quote tests: (2,3,5)
+!! input
+''this is about '''foo's family'''''
+!! result
+<p><i>this is about <b>foo's family</b></i>
+</p>
+!!end
+
+
+!! test
+Italics and bold: other quote tests: (2,(3,3),2)
+!! input
+''this is about '''foo's''' family''
+!! result
+<p><i>this is about <b>foo's</b> family</i>
+</p>
+!!end
+
+
+!! test
+Italics and bold: other quote tests: (3,2,3,2)
+!! input
+'''this is about ''foo'''s family''
+!! result
+<p><b>this is about <i>foo</i></b><i>s family</i>
+</p>
+!!end
+
+
+!! test
+Italics and bold: other quote tests: (3,2,3,3)
+!! input
+'''this is about ''foo'''s family'''
+!! result
+<p>'<i>this is about </i>foo<b>s family</b>
+</p>
+!!end
+
+
+
+!! test
+Italics and bold: other quote tests: (3,(2,2),3)
+!! input
+'''this is about ''foo's'' family'''
+!! result
+<p><b>this is about <i>foo's</i> family</b>
+</p>
+!!end
+
 ###
 ### <nowiki> test cases
 ###
@@ -652,6 +931,377 @@ Paragraph text
 </p>
 !! end
 
+!! test
+Definition Lists: No nesting: Multiple dd's
+!! input
+;x
+:a
+:b
+!! result
+<dl><dt>x
+</dt><dd>a
+</dd><dd>b
+</dd></dl>
+
+!! end
+
+!! test
+Definition Lists: Indentation: Regular
+!! input
+:i1
+::i2
+:::i3
+!! result
+<dl><dd>i1
+<dl><dd>i2
+<dl><dd>i3
+</dd></dl>
+</dd></dl>
+</dd></dl>
+
+!! end
+
+!! test
+Definition Lists: Indentation: Missing 1st level
+!! input
+::i2
+:::i3
+!! result
+<dl><dd><dl><dd>i2
+<dl><dd>i3
+</dd></dl>
+</dd></dl>
+</dd></dl>
+
+!! end
+
+!! test
+Definition Lists: Indentation: Multi-level indent
+!! input
+:::i3
+!! result
+<dl><dd><dl><dd><dl><dd>i3
+</dd></dl>
+</dd></dl>
+</dd></dl>
+
+!! end
+
+## The PHP parser treats : items (dd) without a corresponding ; item (dt)
+## as an empty dt item.  It also ignores all but the last ";" when followed
+## by ":" later on.  So, ";" are not ignored in ";;;t3" but are ignored  in
+## ";;;t3 :d1".  So, PHP parser behavior is a little inconsistent wrt multiple
+## ";"s.
+##
+## Ex: ";;t2 ::d2" is transformed into:
+##
+## <dl>
+##   <dt>t2 </dt>
+##   <dd>
+##     <dl>
+##       <dt></dt>
+##       <dd>d2</dd>
+##     </dl>
+##   </dd>
+## </dl>
+##
+## But, Parsoid treats "; :" as a tight atomic unit and excess ":" as plain text
+## So, the same wikitext above (;;t2 ::d2) is transformed into:
+##
+## <dl>
+##   <dt>
+##     <dl>
+##       <dt>t2 </dt>
+##       <dd>:d2</dd>
+##     </dl>
+##    </dt>
+## </dl>
+##
+## All Parsoid only definition list tests have this difference.
+##
+## See also: https://bugzilla.wikimedia.org/show_bug.cgi?id=6569 
+## and http://lists.wikimedia.org/pipermail/wikitext-l/2011-November/000483.html
+
+!! test
+Definition Lists: Nesting: Multi-level (Parsoid only)
+!! options
+disabled
+!! input
+;t1 :d1
+;;t2 ::d2
+;;;t3 :::d3
+!! result
+<dl>
+  <dt>t1 </dt>
+  <dd>d1</dd>
+  <dt>
+    <dl>
+      <dt>t2 </dt>
+      <dd>:d2</dd>
+      <dt>
+        <dl>
+          <dt>t3 </dt>
+          <dd>::d3</dd>
+        </dl>
+      </dt>
+    </dl>
+  </dt>
+</dl>
+
+
+!! end
+
+
+!! test
+Definition Lists: Nesting: Test 2 (Parsoid only)
+!! options
+disabled
+!! input
+;t1
+::d2
+!! result
+<dl>
+  <dt>t1</dt>
+  <dd>
+    <dl>
+      <dd>d2</dd>
+    </dl>
+  </dd>
+</dl>
+
+!! end
+
+
+!! test
+Definition Lists: Nesting: Test 3 (Parsoid only)
+!! options
+disabled
+!! input
+:;t1
+::::d2
+!! result
+<dl>
+  <dd>
+    <dl>
+      <dt>t1</dt>
+      <dd>
+        <dl>
+          <dd>
+            <dl>
+              <dd>d2</dd>
+            </dl>
+          </dd>
+        </dl>
+      </dd>
+    </dl>
+  </dd>
+</dl>
+
+!! end
+
+
+!! test
+Definition Lists: Nesting: Test 4
+!! input
+::;t3
+:::d3
+!! result
+<dl><dd><dl><dd><dl><dt>t3
+</dt><dd>d3
+</dd></dl>
+</dd></dl>
+</dd></dl>
+
+!! end
+
+
+!! test
+Definition Lists: Mixed Lists: Test 1
+!! input
+:;* foo
+::* bar
+:; baz
+!! result
+<dl><dd><dl><dt><ul><li> foo
+</li><li> bar
+</li></ul>
+</dt></dl>
+<dl><dt> baz
+</dt></dl>
+</dd></dl>
+
+!! end
+
+
+!! test
+Definition Lists: Mixed Lists: Test 2
+!! input
+*: d1
+*: d2
+!! result
+<ul><li><dl><dd> d1
+</dd><dd> d2
+</dd></dl>
+</li></ul>
+
+!! end
+
+
+!! test
+Definition Lists: Mixed Lists: Test 3
+!! input
+*::: d1
+*::: d2
+!! result
+<ul><li><dl><dd><dl><dd><dl><dd> d1
+</dd><dd> d2
+</dd></dl>
+</dd></dl>
+</dd></dl>
+</li></ul>
+
+!! end
+
+
+!! test
+Definition Lists: Mixed Lists: Test 4
+!! input
+*;d1 :d2
+*;d3 :d4
+!! result
+<ul><li><dl><dt>d1&#160;</dt><dd>d2
+</dd><dt>d3&#160;</dt><dd>d4
+</dd></dl>
+</li></ul>
+
+!! end
+
+
+!! test
+Definition Lists: Mixed Lists: Test 5
+!! input
+*:d1
+*:: d2
+!! result
+<ul><li><dl><dd>d1
+<dl><dd> d2
+</dd></dl>
+</dd></dl>
+</li></ul>
+
+!! end
+
+
+!! test
+Definition Lists: Mixed Lists: Test 6
+!! input
+#*:d1
+#*::: d3
+!! result
+<ol><li><ul><li><dl><dd>d1
+<dl><dd><dl><dd> d3
+</dd></dl>
+</dd></dl>
+</dd></dl>
+</li></ul>
+</li></ol>
+
+!! end
+
+
+!! test
+Definition Lists: Mixed Lists: Test 7
+!! input
+:* d1
+:* d2
+!! result
+<dl><dd><ul><li> d1
+</li><li> d2
+</li></ul>
+</dd></dl>
+
+!! end
+
+
+!! test
+Definition Lists: Mixed Lists: Test 8
+!! input
+:* d1
+::* d2
+!! result
+<dl><dd><ul><li> d1
+</li></ul>
+<dl><dd><ul><li> d2
+</li></ul>
+</dd></dl>
+</dd></dl>
+
+!! end
+
+
+!! test
+Definition Lists: Mixed Lists: Test 9
+!! input
+*;foo :bar
+!! result
+<ul><li><dl><dt>foo&#160;</dt><dd>bar
+</dd></dl>
+</li></ul>
+
+!! end
+
+
+!! test
+Definition Lists: Mixed Lists: Test 10
+!! input
+*#;foo :bar
+!! result
+<ul><li><ol><li><dl><dt>foo&#160;</dt><dd>bar
+</dd></dl>
+</li></ol>
+</li></ul>
+
+!! end
+
+
+!! test
+Definition Lists: Mixed Lists: Test 11
+!! input
+*#*#;*;;foo :bar
+*#*#;boo :baz
+!! result
+<ul><li><ol><li><ul><li><ol><li><dl><dt>foo&#160;</dt><dd><ul><li><dl><dt><dl><dt>bar
+</dt></dl>
+</dd></dl>
+</li></ul>
+</dd></dl>
+<dl><dt>boo&#160;</dt><dd>baz
+</dd></dl>
+</li></ol>
+</li></ul>
+</li></ol>
+</li></ul>
+
+!! end
+
+
+!! test
+Definition Lists: Weird Ones: Test 1
+!! input
+*#;*::;; foo : bar (who uses this?)
+!! result
+<ul><li><ol><li><dl><dt> foo&#160;</dt><dd><ul><li><dl><dd><dl><dd><dl><dt><dl><dt> bar (who uses this?)
+</dt></dl>
+</dd></dl>
+</dd></dl>
+</dd></dl>
+</li></ul>
+</dd></dl>
+</li></ol>
+</li></ul>
+
+!! end
+
 ###
 ### External links
 ###
@@ -2066,20 +2716,58 @@ Failing to transform badly formed HTML into correct XHTML
 </p>
 !!end
 
-!! test 
+!! test
 Horizontal ruler (should it add that extra space?)
-!! input 
+!! input
 <hr>
 <hr >
 foo <hr
 > bar
-!! result 
+!! result
 <hr />
 <hr />
 foo <hr /> bar
 
 !! end
 
+!! test
+Horizontal ruler -- 4+ dashes render hr
+!! input
+----
+!! result
+<hr />
+
+!! end
+
+!! test
+Horizontal ruler -- eats additional dashes on the same line
+!! input
+---------
+!! result
+<hr />
+
+!! end
+
+!! test
+Horizontal ruler -- does not collaps dashes on consecutive lines
+!! input
+----
+----
+!! result
+<hr />
+<hr />
+
+!! end
+
+!! test
+Horizontal ruler -- <4 dashes render as plain text
+!! input
+---
+!! result
+<p>---
+</p>
+!! end
+
 ###
 ### Block-level elements
 ###
@@ -2240,6 +2928,36 @@ Nested lists 6 (both elements empty)
 
 !! end
 
+!! test
+Nested lists 7 (skip initial nesting levels)
+!! input
+*** foo
+!! result
+<ul><li><ul><li><ul><li> foo
+</li></ul>
+</li></ul>
+</li></ul>
+
+!! end
+
+!! test
+Nested lists 8 (multiple nesting transitions)
+!! input
+* foo
+*** bar
+** baz
+* boo
+!! result
+<ul><li> foo
+<ul><li><ul><li> bar
+</li></ul>
+</li><li> baz
+</li></ul>
+</li><li> boo
+</li></ul>
+
+!! end
+
 
 !! test
 List items are not parsed correctly following a <pre> block (bug 785)
@@ -9504,10 +10222,10 @@ abc
 </p>
 !! end
 
+
 TODO:
 more images
 more tables
-math
 character entities
 and much more
 Try for 100% code coverage
index 3729796..8f18d6e 100644 (file)
@@ -387,6 +387,35 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                $this->assertFalse( $r, "found extra row (after #$i)" );
        }
 
+       /**
+        * Assert that two arrays are equal. By default this means that both arrays need to hold
+        * the same set of values. Using additional arguments, order and associated key can also
+        * be set as relevant.
+        *
+        * @since 1.20
+        *
+        * @param array $expected
+        * @param array $actual
+        * @param boolean $ordered If the order of the values should match
+        * @param boolean $named If the keys should match
+        */
+       protected function assertArrayEquals( array $expected, array $actual, $ordered = false, $named = false ) {
+               if ( !$named ) {
+                       $expected = array_values( $expected );
+                       $actual = array_values( $actual );
+               }
+
+               if ( !$ordered ) {
+                       asort( $expected );
+                       asort( $actual );
+               }
+
+               call_user_func_array(
+                       array( $this, 'assertEquals' ),
+                       array_merge( array( $expected, $actual ), array_slice( func_get_args(), 4 ) )
+               );
+       }
+
        /**
         * Utility function for eliminating all string keys from an array.
         * Useful to turn a database result row as returned by fetchRow() into
index da36ffd..3b05d67 100644 (file)
@@ -437,6 +437,36 @@ class MWNamespaceTest extends MediaWikiTestCase {
                $wgContentNamespaces = $saved;
        }
 
+       /**
+        */
+       public function testGetSubjectNamespaces() {
+               $subjectsNS = MWNamespace::getSubjectNamespaces();
+               $this->assertContains(    NS_MAIN, $subjectsNS,
+                       "Talk namespaces should have NS_MAIN" );
+               $this->assertNotContains( NS_TALK, $subjectsNS,
+                       "Talk namespaces should have NS_TALK" );
+
+               $this->assertNotContains( NS_MEDIA, $subjectsNS,
+                       "Talk namespaces should not have NS_MEDIA" );
+               $this->assertNotContains( NS_SPECIAL, $subjectsNS,
+                       "Talk namespaces should not have NS_SPECIAL" );
+       }
+
+       /**
+        */
+       public function testGetTalkNamespaces() {
+               $talkNS = MWNamespace::getTalkNamespaces();
+               $this->assertContains(    NS_TALK, $talkNS,
+                       "Subject namespaces should have NS_TALK" );
+               $this->assertNotContains( NS_MAIN, $talkNS,
+                       "Subject namespaces should not have NS_MAIN" );
+
+               $this->assertNotContains( NS_MEDIA, $talkNS,
+                       "Subject namespaces should not have NS_MEDIA" );
+               $this->assertNotContains( NS_SPECIAL, $talkNS,
+                       "Subject namespaces should not have NS_SPECIAL" );
+       }
+
        /**
         * Some namespaces are always capitalized per code definition
         * in MWNamespace::$alwaysCapitalizedNamespaces
index 77a371d..59ba0a0 100644 (file)
@@ -47,7 +47,7 @@ class TestSample extends MediaWikiLangTestCase {
                        array( 'Text', null, 'Text' ),
                        array( 'text', null, 'Text' ),
                        array( 'Text', NS_USER, 'User:Text' ),
-                       array( 'Photo.jpg', NS_IMAGE, 'File:Photo.jpg' )
+                       array( 'Photo.jpg', NS_FILE, 'File:Photo.jpg' )
                );
        }
 
index b76aa5c..c929989 100644 (file)
@@ -110,21 +110,37 @@ class SanitizerTest extends MediaWikiTestCase {
                $this->assertEquals( Sanitizer::decodeTagAttributes( 'foo=&foobar;' ), array( 'foo' => '&foobar;' ), 'Entity-like items are accepted' );
        }
 
-       function testDeprecatedAttributes() {
-               $GLOBALS['wgCleanupPresentationalAttributes'] = true;
-               $this->assertEquals( Sanitizer::fixTagAttributes( 'clear="left"', 'br' ), ' style="clear: left;"', 'Deprecated attributes are converted to styles when enabled.' );
-               $this->assertEquals( Sanitizer::fixTagAttributes( 'clear="all"', 'br' ), ' style="clear: both;"', 'clear=all is converted to clear: both; not clear: all;' );
-               $this->assertEquals( Sanitizer::fixTagAttributes( 'CLEAR="ALL"', 'br' ), ' style="clear: both;"', 'clear=ALL is not treated differently from clear=all' );
-               $this->assertEquals( Sanitizer::fixTagAttributes( 'width="100"', 'td' ), ' style="width: 100px;"', 'Numeric sizes use pixels instead of numbers.' );
-               $this->assertEquals( Sanitizer::fixTagAttributes( 'width="100%"', 'td' ), ' style="width: 100%;"', 'Units are allowed in sizes.' );
-               $this->assertEquals( Sanitizer::fixTagAttributes( 'WIDTH="100%"', 'td' ), ' style="width: 100%;"', 'Uppercase WIDTH is treated as lowercase width.' );
-               $this->assertEquals( Sanitizer::fixTagAttributes( 'WiDTh="100%"', 'td' ), ' style="width: 100%;"', 'Mixed case does not break WiDTh.' );
-               $this->assertEquals( Sanitizer::fixTagAttributes( 'nowrap="true"', 'td' ), ' style="white-space: nowrap;"', 'nowrap attribute is output as white-space: nowrap; not something else.' );
-               $this->assertEquals( Sanitizer::fixTagAttributes( 'nowrap=""', 'td' ), ' style="white-space: nowrap;"', 'nowrap="" is considered true, not false' );
-               $this->assertEquals( Sanitizer::fixTagAttributes( 'NOWRAP="true"', 'td' ), ' style="white-space: nowrap;"', 'nowrap attribute works when uppercase.' );
-               $this->assertEquals( Sanitizer::fixTagAttributes( 'NoWrAp="true"', 'td' ), ' style="white-space: nowrap;"', 'nowrap attribute works when mixed-case.' );
+       function testDeprecatedAttributesDisabled() {
                $GLOBALS['wgCleanupPresentationalAttributes'] = false;
-               $this->assertEquals( Sanitizer::fixTagAttributes( 'clear="left"', 'br' ), ' clear="left"', 'Deprecated attributes are not converted to styles when enabled.' );
+               $this->assertEquals( ' clear="left"', Sanitizer::fixTagAttributes( 'clear="left"', 'br' ), 'Deprecated attributes are not converted to styles when enabled.' );
+       }
+
+       /**
+        * @dataProvider provideDeprecatedAttributes
+        */
+       function testDeprecatedAttributes( $input, $tag, $expected, $message = null ) {
+               $GLOBALS['wgCleanupPresentationalAttributes'] = true;
+               $this->assertEquals( $expected, Sanitizer::fixTagAttributes( $input, $tag ), $message );
+       }
+
+       function provideDeprecatedAttributes() {
+               return array(
+                       array( 'clear="left"', 'br', ' style="clear: left;"', 'Deprecated attributes are converted to styles when enabled.' ),
+                       array( 'clear="all"', 'br', ' style="clear: both;"', 'clear=all is converted to clear: both; not clear: all;' ),
+                       array( 'CLEAR="ALL"', 'br', ' style="clear: both;"', 'clear=ALL is not treated differently from clear=all' ),
+                       array( 'width="100"', 'td', ' style="width: 100px;"', 'Numeric sizes use pixels instead of numbers.' ),
+                       array( 'width="100%"', 'td', ' style="width: 100%;"', 'Units are allowed in sizes.' ),
+                       array( 'WIDTH="100%"', 'td', ' style="width: 100%;"', 'Uppercase WIDTH is treated as lowercase width.' ),
+                       array( 'WiDTh="100%"', 'td', ' style="width: 100%;"', 'Mixed case does not break WiDTh.' ),
+                       array( 'nowrap="true"', 'td', ' style="white-space: nowrap;"', 'nowrap attribute is output as white-space: nowrap; not something else.' ),
+                       array( 'nowrap=""', 'td', ' style="white-space: nowrap;"', 'nowrap="" is considered true, not false' ),
+                       array( 'NOWRAP="true"', 'td', ' style="white-space: nowrap;"', 'nowrap attribute works when uppercase.' ),
+                       array( 'NoWrAp="true"', 'td', ' style="white-space: nowrap;"', 'nowrap attribute works when mixed-case.' ),
+                       array( 'align="right"', 'td', ' style="text-align: right;"', 'align on table cells gets converted to text-align' ),
+                       array( 'align="center"', 'td', ' style="text-align: center;"', 'align on table cells gets converted to text-align' ),
+                       array( 'align="left"', 'div', ' style="float: left;"', 'align=(left|right) on non-cells gets converted to float' ),
+                       array( 'align="center"', 'div', ' style="margin-left: auto; margin-right: auto;"', 'align="center" on non-cells' ),
+               );
        }
 
        /**
index c8606cc..b72a5cd 100644 (file)
@@ -769,6 +769,7 @@ more stuff
         * @dataProvider dataPreSaveTransform
         */
        public function testPreSaveTransform( $text, $expected ) {
+               $this->hideDeprecated( 'WikiPage::preSaveTransform' );
                $user = new User();
                $user->setName("127.0.0.1");
 
index f3a14e5..b22eccd 100644 (file)
@@ -10,10 +10,14 @@ $IP = dirname( dirname( dirname( dirname( dirname( __FILE__ ) ) ) ) );
 
 // Start up MediaWiki in command-line mode
 require_once( "$IP/maintenance/Maintenance.php" );
-require("RandomImageGenerator.php");
+require(  dirname( __FILE__ ) . "/RandomImageGenerator.php" );
 
 class GenerateRandomImages extends Maintenance {
 
+       public function getDbType() {
+               return Maintenance::DB_NONE;
+       }
+
        public function execute() {
 
                $getOptSpec = array(
index 710ad83..61507f5 100644 (file)
@@ -26,6 +26,9 @@ class FileBackendTest extends MediaWikiTestCase {
                                        }
                                }
                                $useConfig['name'] = 'localtesting'; // swap name
+                               $useConfig['shardViaHashLevels'] = array( // test sharding
+                                       'unittest-cont1' => array( 'levels' => 1, 'base' => 16, 'repeat' => 1 )
+                               );
                                $class = $useConfig['class'];
                                self::$backendToUse = new $class( $useConfig );
                                $this->singleBackend = self::$backendToUse;
@@ -246,7 +249,7 @@ class FileBackendTest extends MediaWikiTestCase {
                $cases = array();
 
                $tmpName = TempFSFile::factory( "unittests_", 'txt' )->getPath();
-               $toPath = $this->baseStorePath() . '/unittest-cont1/fun/obj1.txt';
+               $toPath = $this->baseStorePath() . '/unittest-cont1/e/fun/obj1.txt';
                $op = array( 'op' => 'store', 'src' => $tmpName, 'dst' => $toPath );
                $cases[] = array(
                        $op, // operation
@@ -332,8 +335,8 @@ class FileBackendTest extends MediaWikiTestCase {
        public function provider_testCopy() {
                $cases = array();
 
-               $source = $this->baseStorePath() . '/unittest-cont1/file.txt';
-               $dest = $this->baseStorePath() . '/unittest-cont2/fileMoved.txt';
+               $source = $this->baseStorePath() . '/unittest-cont1/e/file.txt';
+               $dest = $this->baseStorePath() . '/unittest-cont2/a/fileMoved.txt';
 
                $op = array( 'op' => 'copy', 'src' => $source, 'dst' => $dest );
                $cases[] = array(
@@ -421,8 +424,8 @@ class FileBackendTest extends MediaWikiTestCase {
        public function provider_testMove() {
                $cases = array();
 
-               $source = $this->baseStorePath() . '/unittest-cont1/file.txt';
-               $dest = $this->baseStorePath() . '/unittest-cont2/fileMoved.txt';
+               $source = $this->baseStorePath() . '/unittest-cont1/e/file.txt';
+               $dest = $this->baseStorePath() . '/unittest-cont2/a/fileMoved.txt';
 
                $op = array( 'op' => 'move', 'src' => $source, 'dst' => $dest );
                $cases[] = array(
@@ -506,7 +509,7 @@ class FileBackendTest extends MediaWikiTestCase {
        public function provider_testDelete() {
                $cases = array();
 
-               $source = $this->baseStorePath() . '/unittest-cont1/myfacefile.txt';
+               $source = $this->baseStorePath() . '/unittest-cont1/e/myfacefile.txt';
 
                $op = array( 'op' => 'delete', 'src' => $source );
                $cases[] = array(
@@ -600,7 +603,7 @@ class FileBackendTest extends MediaWikiTestCase {
        public function provider_testCreate() {
                $cases = array();
 
-               $dest = $this->baseStorePath() . '/unittest-cont2/myspacefile.txt';
+               $dest = $this->baseStorePath() . '/unittest-cont2/a/myspacefile.txt';
 
                $op = array( 'op' => 'create', 'content' => 'test test testing', 'dst' => $dest );
                $cases[] = array(
@@ -666,9 +669,9 @@ class FileBackendTest extends MediaWikiTestCase {
 
                $base = $this->baseStorePath();
                $files = array(
-                       "$base/unittest-cont1/fileA.a",
-                       "$base/unittest-cont1/fileB.a",
-                       "$base/unittest-cont1/fileC.a"
+                       "$base/unittest-cont1/e/fileA.a",
+                       "$base/unittest-cont1/e/fileB.a",
+                       "$base/unittest-cont1/e/fileC.a"
                );
                $ops = array();
                $purgeOps = array();
@@ -786,16 +789,16 @@ class FileBackendTest extends MediaWikiTestCase {
                $rand = mt_rand( 0, 2000000000 ) . time();
                $dest = wfTempDir() . "/randomfile!$rand.txt";
                $srcs = array(
-                       $this->baseStorePath() . '/unittest-cont1/file1.txt',
-                       $this->baseStorePath() . '/unittest-cont1/file2.txt',
-                       $this->baseStorePath() . '/unittest-cont1/file3.txt',
-                       $this->baseStorePath() . '/unittest-cont1/file4.txt',
-                       $this->baseStorePath() . '/unittest-cont1/file5.txt',
-                       $this->baseStorePath() . '/unittest-cont1/file6.txt',
-                       $this->baseStorePath() . '/unittest-cont1/file7.txt',
-                       $this->baseStorePath() . '/unittest-cont1/file8.txt',
-                       $this->baseStorePath() . '/unittest-cont1/file9.txt',
-                       $this->baseStorePath() . '/unittest-cont1/file10.txt'
+                       $this->baseStorePath() . '/unittest-cont1/e/file1.txt',
+                       $this->baseStorePath() . '/unittest-cont1/e/file2.txt',
+                       $this->baseStorePath() . '/unittest-cont1/e/file3.txt',
+                       $this->baseStorePath() . '/unittest-cont1/e/file4.txt',
+                       $this->baseStorePath() . '/unittest-cont1/e/file5.txt',
+                       $this->baseStorePath() . '/unittest-cont1/e/file6.txt',
+                       $this->baseStorePath() . '/unittest-cont1/e/file7.txt',
+                       $this->baseStorePath() . '/unittest-cont1/e/file8.txt',
+                       $this->baseStorePath() . '/unittest-cont1/e/file9.txt',
+                       $this->baseStorePath() . '/unittest-cont1/e/file10.txt'
                );
                $content = array(
                        'egfage',
@@ -884,9 +887,9 @@ class FileBackendTest extends MediaWikiTestCase {
                $cases = array();
 
                $base = $this->baseStorePath();
-               $cases[] = array( "$base/unittest-cont1/b/z/some_file.txt", "some file contents", true );
-               $cases[] = array( "$base/unittest-cont1/b/some-other_file.txt", "", true );
-               $cases[] = array( "$base/unittest-cont1/b/some-diff_file.txt", null, false );
+               $cases[] = array( "$base/unittest-cont1/e/b/z/some_file.txt", "some file contents", true );
+               $cases[] = array( "$base/unittest-cont1/e/b/some-other_file.txt", "", true );
+               $cases[] = array( "$base/unittest-cont1/e/b/some-diff_file.txt", null, false );
 
                return $cases;
        }
@@ -930,8 +933,8 @@ class FileBackendTest extends MediaWikiTestCase {
                $cases = array();
 
                $base = $this->baseStorePath();
-               $cases[] = array( "$base/unittest-cont1/b/z/some_file.txt", "some file contents" );
-               $cases[] = array( "$base/unittest-cont1/b/some-other_file.txt", "more file contents" );
+               $cases[] = array( "$base/unittest-cont1/e/b/z/some_file.txt", "some file contents" );
+               $cases[] = array( "$base/unittest-cont1/e/b/some-other_file.txt", "more file contents" );
 
                return $cases;
        }
@@ -973,8 +976,8 @@ class FileBackendTest extends MediaWikiTestCase {
                $cases = array();
 
                $base = $this->baseStorePath();
-               $cases[] = array( "$base/unittest-cont1/a/z/some_file.txt", "some file contents" );
-               $cases[] = array( "$base/unittest-cont1/a/some-other_file.txt", "more file contents" );
+               $cases[] = array( "$base/unittest-cont1/e/a/z/some_file.txt", "some file contents" );
+               $cases[] = array( "$base/unittest-cont1/e/a/some-other_file.txt", "more file contents" );
 
                return $cases;
        }
@@ -1015,8 +1018,8 @@ class FileBackendTest extends MediaWikiTestCase {
                $cases = array();
 
                $base = $this->baseStorePath();
-               $cases[] = array( "$base/unittest-cont1/a/z/some_file.txt", "some file contents" );
-               $cases[] = array( "$base/unittest-cont1/a/some-other_file.txt", "more file contents" );
+               $cases[] = array( "$base/unittest-cont1/e/a/z/some_file.txt", "some file contents" );
+               $cases[] = array( "$base/unittest-cont1/e/a/some-other_file.txt", "more file contents" );
 
                return $cases;
        }
@@ -1037,7 +1040,7 @@ class FileBackendTest extends MediaWikiTestCase {
        function provider_testPrepareAndClean() {
                $base = $this->baseStorePath();
                return array(
-                       array( "$base/unittest-cont1/a/z/some_file1.txt", true ),
+                       array( "$base/unittest-cont1/e/a/z/some_file1.txt", true ),
                        array( "$base/unittest-cont2/a/z/some_file2.txt", true ),
                        # Specific to FS backend with no basePath field set
                        #array( "$base/unittest-cont3/a/z/some_file3.txt", false ),
@@ -1085,18 +1088,18 @@ class FileBackendTest extends MediaWikiTestCase {
 
                $base = $this->baseStorePath();
                $dirs = array(
-                       "$base/unittest-cont1/a",
-                       "$base/unittest-cont1/a/b",
-                       "$base/unittest-cont1/a/b/c",
-                       "$base/unittest-cont1/a/b/c/d0",
-                       "$base/unittest-cont1/a/b/c/d1",
-                       "$base/unittest-cont1/a/b/c/d2",
-                       "$base/unittest-cont1/a/b/c/d0/1",
-                       "$base/unittest-cont1/a/b/c/d0/2",
-                       "$base/unittest-cont1/a/b/c/d1/3",
-                       "$base/unittest-cont1/a/b/c/d1/4",
-                       "$base/unittest-cont1/a/b/c/d2/5",
-                       "$base/unittest-cont1/a/b/c/d2/6"
+                       "$base/unittest-cont1/e/a",
+                       "$base/unittest-cont1/e/a/b",
+                       "$base/unittest-cont1/e/a/b/c",
+                       "$base/unittest-cont1/e/a/b/c/d0",
+                       "$base/unittest-cont1/e/a/b/c/d1",
+                       "$base/unittest-cont1/e/a/b/c/d2",
+                       "$base/unittest-cont1/e/a/b/c/d0/1",
+                       "$base/unittest-cont1/e/a/b/c/d0/2",
+                       "$base/unittest-cont1/e/a/b/c/d1/3",
+                       "$base/unittest-cont1/e/a/b/c/d1/4",
+                       "$base/unittest-cont1/e/a/b/c/d2/5",
+                       "$base/unittest-cont1/e/a/b/c/d2/6"
                );
                foreach ( $dirs as $dir ) {
                        $status = $this->prepare( array( 'dir' => $dir ) );
@@ -1159,13 +1162,13 @@ class FileBackendTest extends MediaWikiTestCase {
        private function doTestDoOperations() {
                $base = $this->baseStorePath();
 
-               $fileA = "$base/unittest-cont1/a/b/fileA.txt";
+               $fileA = "$base/unittest-cont1/e/a/b/fileA.txt";
                $fileAContents = '3tqtmoeatmn4wg4qe-mg3qt3 tq';
-               $fileB = "$base/unittest-cont1/a/b/fileB.txt";
+               $fileB = "$base/unittest-cont1/e/a/b/fileB.txt";
                $fileBContents = 'g-jmq3gpqgt3qtg q3GT ';
-               $fileC = "$base/unittest-cont1/a/b/fileC.txt";
+               $fileC = "$base/unittest-cont1/e/a/b/fileC.txt";
                $fileCContents = 'eigna[ogmewt 3qt g3qg flew[ag';
-               $fileD = "$base/unittest-cont1/a/b/fileD.txt";
+               $fileD = "$base/unittest-cont1/e/a/b/fileD.txt";
 
                $this->prepare( array( 'dir' => dirname( $fileA ) ) );
                $this->create( array( 'dst' => $fileA, 'content' => $fileAContents ) );
@@ -1248,10 +1251,10 @@ class FileBackendTest extends MediaWikiTestCase {
                $this->filesToPrune[] = $tmpNameB; # avoid file leaking
                $this->filesToPrune[] = $tmpNameC; # avoid file leaking
 
-               $fileA = "$base/unittest-cont1/a/b/fileA.txt";
-               $fileB = "$base/unittest-cont1/a/b/fileB.txt";
-               $fileC = "$base/unittest-cont1/a/b/fileC.txt";
-               $fileD = "$base/unittest-cont1/a/b/fileD.txt";
+               $fileA = "$base/unittest-cont1/e/a/b/fileA.txt";
+               $fileB = "$base/unittest-cont1/e/a/b/fileB.txt";
+               $fileC = "$base/unittest-cont1/e/a/b/fileC.txt";
+               $fileD = "$base/unittest-cont1/e/a/b/fileD.txt";
 
                $this->prepare( array( 'dir' => dirname( $fileA ) ) );
                $this->create( array( 'dst' => $fileA, 'content' => $fileAContents ) );
@@ -1398,20 +1401,20 @@ class FileBackendTest extends MediaWikiTestCase {
                $iter = $this->backend->getFileList( array( 'dir' => "$base/unittest-cont-notexists" ) );
 
                $files = array(
-                       "$base/unittest-cont1/test1.txt",
-                       "$base/unittest-cont1/test2.txt",
-                       "$base/unittest-cont1/test3.txt",
-                       "$base/unittest-cont1/subdir1/test1.txt",
-                       "$base/unittest-cont1/subdir1/test2.txt",
-                       "$base/unittest-cont1/subdir2/test3.txt",
-                       "$base/unittest-cont1/subdir2/test4.txt",
-                       "$base/unittest-cont1/subdir2/subdir/test1.txt",
-                       "$base/unittest-cont1/subdir2/subdir/test2.txt",
-                       "$base/unittest-cont1/subdir2/subdir/test3.txt",
-                       "$base/unittest-cont1/subdir2/subdir/test4.txt",
-                       "$base/unittest-cont1/subdir2/subdir/test5.txt",
-                       "$base/unittest-cont1/subdir2/subdir/sub/test0.txt",
-                       "$base/unittest-cont1/subdir2/subdir/sub/120-px-file.txt",
+                       "$base/unittest-cont1/e/test1.txt",
+                       "$base/unittest-cont1/e/test2.txt",
+                       "$base/unittest-cont1/e/test3.txt",
+                       "$base/unittest-cont1/e/subdir1/test1.txt",
+                       "$base/unittest-cont1/e/subdir1/test2.txt",
+                       "$base/unittest-cont1/e/subdir2/test3.txt",
+                       "$base/unittest-cont1/e/subdir2/test4.txt",
+                       "$base/unittest-cont1/e/subdir2/subdir/test1.txt",
+                       "$base/unittest-cont1/e/subdir2/subdir/test2.txt",
+                       "$base/unittest-cont1/e/subdir2/subdir/test3.txt",
+                       "$base/unittest-cont1/e/subdir2/subdir/test4.txt",
+                       "$base/unittest-cont1/e/subdir2/subdir/test5.txt",
+                       "$base/unittest-cont1/e/subdir2/subdir/sub/test0.txt",
+                       "$base/unittest-cont1/e/subdir2/subdir/sub/120-px-file.txt",
                );
 
                // Add the files
@@ -1428,20 +1431,20 @@ class FileBackendTest extends MediaWikiTestCase {
 
                // Expected listing
                $expected = array(
-                       "test1.txt",
-                       "test2.txt",
-                       "test3.txt",
-                       "subdir1/test1.txt",
-                       "subdir1/test2.txt",
-                       "subdir2/test3.txt",
-                       "subdir2/test4.txt",
-                       "subdir2/subdir/test1.txt",
-                       "subdir2/subdir/test2.txt",
-                       "subdir2/subdir/test3.txt",
-                       "subdir2/subdir/test4.txt",
-                       "subdir2/subdir/test5.txt",
-                       "subdir2/subdir/sub/test0.txt",
-                       "subdir2/subdir/sub/120-px-file.txt",
+                       "e/test1.txt",
+                       "e/test2.txt",
+                       "e/test3.txt",
+                       "e/subdir1/test1.txt",
+                       "e/subdir1/test2.txt",
+                       "e/subdir2/test3.txt",
+                       "e/subdir2/test4.txt",
+                       "e/subdir2/subdir/test1.txt",
+                       "e/subdir2/subdir/test2.txt",
+                       "e/subdir2/subdir/test3.txt",
+                       "e/subdir2/subdir/test4.txt",
+                       "e/subdir2/subdir/test5.txt",
+                       "e/subdir2/subdir/sub/test0.txt",
+                       "e/subdir2/subdir/sub/120-px-file.txt",
                );
                sort( $expected );
 
@@ -1479,7 +1482,7 @@ class FileBackendTest extends MediaWikiTestCase {
 
                // Actual listing (no trailing slash)
                $list = array();
-               $iter = $this->backend->getFileList( array( 'dir' => "$base/unittest-cont1/subdir2/subdir" ) );
+               $iter = $this->backend->getFileList( array( 'dir' => "$base/unittest-cont1/e/subdir2/subdir" ) );
                foreach ( $iter as $file ) {
                        $list[] = $file;
                }
@@ -1489,7 +1492,7 @@ class FileBackendTest extends MediaWikiTestCase {
 
                // Actual listing (with trailing slash)
                $list = array();
-               $iter = $this->backend->getFileList( array( 'dir' => "$base/unittest-cont1/subdir2/subdir/" ) );
+               $iter = $this->backend->getFileList( array( 'dir' => "$base/unittest-cont1/e/subdir2/subdir/" ) );
                foreach ( $iter as $file ) {
                        $list[] = $file;
                }
@@ -1518,7 +1521,7 @@ class FileBackendTest extends MediaWikiTestCase {
 
                // Actual listing (top files only)
                $list = array();
-               $iter = $this->backend->getTopFileList( array( 'dir' => "$base/unittest-cont1/subdir2/subdir" ) );
+               $iter = $this->backend->getTopFileList( array( 'dir' => "$base/unittest-cont1/e/subdir2/subdir" ) );
                foreach ( $iter as $file ) {
                        $list[] = $file;
                }
@@ -1551,20 +1554,20 @@ class FileBackendTest extends MediaWikiTestCase {
 
                $base = $this->baseStorePath();
                $files = array(
-                       "$base/unittest-cont1/test1.txt",
-                       "$base/unittest-cont1/test2.txt",
-                       "$base/unittest-cont1/test3.txt",
-                       "$base/unittest-cont1/subdir1/test1.txt",
-                       "$base/unittest-cont1/subdir1/test2.txt",
-                       "$base/unittest-cont1/subdir2/test3.txt",
-                       "$base/unittest-cont1/subdir2/test4.txt",
-                       "$base/unittest-cont1/subdir2/subdir/test1.txt",
-                       "$base/unittest-cont1/subdir3/subdir/test2.txt",
-                       "$base/unittest-cont1/subdir4/subdir/test3.txt",
-                       "$base/unittest-cont1/subdir4/subdir/test4.txt",
-                       "$base/unittest-cont1/subdir4/subdir/test5.txt",
-                       "$base/unittest-cont1/subdir4/subdir/sub/test0.txt",
-                       "$base/unittest-cont1/subdir4/subdir/sub/120-px-file.txt",
+                       "$base/unittest-cont1/e/test1.txt",
+                       "$base/unittest-cont1/e/test2.txt",
+                       "$base/unittest-cont1/e/test3.txt",
+                       "$base/unittest-cont1/e/subdir1/test1.txt",
+                       "$base/unittest-cont1/e/subdir1/test2.txt",
+                       "$base/unittest-cont1/e/subdir2/test3.txt",
+                       "$base/unittest-cont1/e/subdir2/test4.txt",
+                       "$base/unittest-cont1/e/subdir2/subdir/test1.txt",
+                       "$base/unittest-cont1/e/subdir3/subdir/test2.txt",
+                       "$base/unittest-cont1/e/subdir4/subdir/test3.txt",
+                       "$base/unittest-cont1/e/subdir4/subdir/test4.txt",
+                       "$base/unittest-cont1/e/subdir4/subdir/test5.txt",
+                       "$base/unittest-cont1/e/subdir4/subdir/sub/test0.txt",
+                       "$base/unittest-cont1/e/subdir4/subdir/sub/120-px-file.txt",
                );
 
                // Add the files
@@ -1579,6 +1582,32 @@ class FileBackendTest extends MediaWikiTestCase {
                $this->assertEquals( true, $status->isOK(),
                        "Creation of files succeeded with OK status ($backendName)." );
 
+               $this->assertEquals( true,
+                       $this->backend->directoryExists( array( 'dir' => "$base/unittest-cont1/e/subdir1" ) ),
+                       "Directory exists in ($backendName)." );
+               $this->assertEquals( true,
+                       $this->backend->directoryExists( array( 'dir' => "$base/unittest-cont1/e/subdir2/subdir" ) ),
+                       "Directory exists in ($backendName)." );
+               $this->assertEquals( false,
+                       $this->backend->directoryExists( array( 'dir' => "$base/unittest-cont1/e/subdir2/test1.txt" ) ),
+                       "Directory does not exists in ($backendName)." );
+
+               // Expected listing
+               $expected = array(
+                       "e",
+               );
+               sort( $expected );
+
+               // Actual listing (no trailing slash)
+               $list = array();
+               $iter = $this->backend->getTopDirectoryList( array( 'dir' => "$base/unittest-cont1" ) );
+               foreach ( $iter as $file ) {
+                       $list[] = $file;
+               }
+               sort( $list );
+
+               $this->assertEquals( $expected, $list, "Correct top dir listing ($backendName)." );
+
                // Expected listing
                $expected = array(
                        "subdir1",
@@ -1588,19 +1617,9 @@ class FileBackendTest extends MediaWikiTestCase {
                );
                sort( $expected );
 
-               $this->assertEquals( true,
-                       $this->backend->directoryExists( array( 'dir' => "$base/unittest-cont1/subdir1" ) ),
-                       "Directory exists in ($backendName)." );
-               $this->assertEquals( true,
-                       $this->backend->directoryExists( array( 'dir' => "$base/unittest-cont1/subdir2/subdir" ) ),
-                       "Directory exists in ($backendName)." );
-               $this->assertEquals( false,
-                       $this->backend->directoryExists( array( 'dir' => "$base/unittest-cont1/subdir2/test1.txt" ) ),
-                       "Directory does not exists in ($backendName)." );
-
                // Actual listing (no trailing slash)
                $list = array();
-               $iter = $this->backend->getTopDirectoryList( array( 'dir' => "$base/unittest-cont1" ) );
+               $iter = $this->backend->getTopDirectoryList( array( 'dir' => "$base/unittest-cont1/e" ) );
                foreach ( $iter as $file ) {
                        $list[] = $file;
                }
@@ -1610,7 +1629,7 @@ class FileBackendTest extends MediaWikiTestCase {
 
                // Actual listing (with trailing slash)
                $list = array();
-               $iter = $this->backend->getTopDirectoryList( array( 'dir' => "$base/unittest-cont1/" ) );
+               $iter = $this->backend->getTopDirectoryList( array( 'dir' => "$base/unittest-cont1/e/" ) );
                foreach ( $iter as $file ) {
                        $list[] = $file;
                }
@@ -1626,7 +1645,7 @@ class FileBackendTest extends MediaWikiTestCase {
 
                // Actual listing (no trailing slash)
                $list = array();
-               $iter = $this->backend->getTopDirectoryList( array( 'dir' => "$base/unittest-cont1/subdir2" ) );
+               $iter = $this->backend->getTopDirectoryList( array( 'dir' => "$base/unittest-cont1/e/subdir2" ) );
                foreach ( $iter as $file ) {
                        $list[] = $file;
                }
@@ -1636,7 +1655,7 @@ class FileBackendTest extends MediaWikiTestCase {
 
                // Actual listing (with trailing slash)
                $list = array();
-               $iter = $this->backend->getTopDirectoryList( array( 'dir' => "$base/unittest-cont1/subdir2/" ) );
+               $iter = $this->backend->getTopDirectoryList( array( 'dir' => "$base/unittest-cont1/e/subdir2/" ) );
                foreach ( $iter as $file ) {
                        $list[] = $file;
                }
@@ -1655,14 +1674,15 @@ class FileBackendTest extends MediaWikiTestCase {
 
                // Expected listing (recursive)
                $expected = array(
-                       "subdir1",
-                       "subdir2",
-                       "subdir3",
-                       "subdir4",
-                       "subdir2/subdir",
-                       "subdir3/subdir",
-                       "subdir4/subdir",
-                       "subdir4/subdir/sub",
+                       "e",
+                       "e/subdir1",
+                       "e/subdir2",
+                       "e/subdir3",
+                       "e/subdir4",
+                       "e/subdir2/subdir",
+                       "e/subdir3/subdir",
+                       "e/subdir4/subdir",
+                       "e/subdir4/subdir/sub",
                );
                sort( $expected );
 
@@ -1685,7 +1705,7 @@ class FileBackendTest extends MediaWikiTestCase {
 
                // Actual listing (recursive)
                $list = array();
-               $iter = $this->backend->getDirectoryList( array( 'dir' => "$base/unittest-cont1/subdir4" ) );
+               $iter = $this->backend->getDirectoryList( array( 'dir' => "$base/unittest-cont1/e/subdir4" ) );
                foreach ( $iter as $file ) {
                        $list[] = $file;
                }
index d2bfeed..f121b01 100644 (file)
@@ -4,9 +4,18 @@ class JavaScriptMinifierTest extends MediaWikiTestCase {
 
        function provideCases() {
                return array(
-                       // Basic tokens
+
+                       // Basic whitespace and comments that should be stripped entirely
                        array( "\r\t\f \v\n\r", "" ),
                        array( "/* Foo *\n*bar\n*/", "" ),
+
+                       /**
+                        * Slashes used inside block comments (bug 26931).
+                        * At some point there was a bug that caused this comment to be ended at '* /',
+                        * causing /M... to be left as the beginning of a regex.
+                        */
+                       array( "/**\n * Foo\n * {\n * 'bar' : {\n * //Multiple rules with configurable operators\n * 'baz' : false\n * }\n */", ""),
+
                        /**
                         * '  Foo \' bar \
                         *  baz \' quox '  .
@@ -15,11 +24,13 @@ class JavaScriptMinifierTest extends MediaWikiTestCase {
                        array( "\"  Foo  \\\"  bar  \\\n  baz  \\\"  quox  \"  .length", "\"  Foo  \\\"  bar  \\\n  baz  \\\"  quox  \".length" ),
                        array( "// Foo b/ar baz", "" ),
                        array( "/  Foo  \\/  bar  [  /  \\]  /  ]  baz  /  .length", "/  Foo  \\/  bar  [  /  \\]  /  ]  baz  /.length" ),
+
                        // HTML comments
                        array( "<!-- Foo bar", "" ),
                        array( "<!-- Foo --> bar", "" ),
                        array( "--> Foo", "" ),
                        array( "x --> y", "x-->y" ),
+
                        // Semicolon insertion
                        array( "(function(){return\nx;})", "(function(){return\nx;})" ),
                        array( "throw\nx;", "throw\nx;" ),
@@ -35,12 +46,19 @@ class JavaScriptMinifierTest extends MediaWikiTestCase {
                        array( "5.\nx;", "5.\nx;" ),
                        array( "0xFF.\nx;", "0xFF.x;" ),
                        array( "5.3.\nx;", "5.3.x;" ),
+
+                       // Semicolon insertion between an expression having an inline
+                       // comment after it, and a statement on the next line (bug 27046).
+                       array( "var a = this //foo bar \n for ( b = 0; c < d; b++ ) {}", "var a=this\nfor(b=0;c<d;b++){}" ),
+
                        // Token separation
                        array( "x  in  y", "x in y" ),
                        array( "/x/g  in  y", "/x/g in y" ),
                        array( "x  in  30", "x in 30" ),
                        array( "x  +  ++  y", "x+ ++y" ),
+                       array( "x ++  +  y", "x++ +y" ),
                        array( "x  /  /y/.exec(z)", "x/ /y/.exec(z)" ),
+
                        // State machine
                        array( "/  x/g", "/  x/g" ),
                        array( "(function(){return/  x/g})", "(function(){return/  x/g})" ),
@@ -63,15 +81,18 @@ class JavaScriptMinifierTest extends MediaWikiTestCase {
                        array( "function x(){}/  x/g", "function x(){}/  x/g" ),
                        array( "+function x(){}/  x/g", "+function x(){}/x/g" ),
                        
-                       // Tests for things that broke in the past
                        // Multiline quoted string
                        array( "var foo=\"\\\nblah\\\n\";", "var foo=\"\\\nblah\\\n\";" ),
+
                        // Multiline quoted string followed by string with spaces
                        array( "var foo=\"\\\nblah\\\n\";\nvar baz = \" foo \";\n", "var foo=\"\\\nblah\\\n\";var baz=\" foo \";" ),
+
                        // URL in quoted string ( // is not a comment)
                        array( "aNode.setAttribute('href','http://foo.bar.org/baz');", "aNode.setAttribute('href','http://foo.bar.org/baz');" ),
+
                        // URL in quoted string after multiline quoted string
                        array( "var foo=\"\\\nblah\\\n\";\naNode.setAttribute('href','http://foo.bar.org/baz');", "var foo=\"\\\nblah\\\n\";aNode.setAttribute('href','http://foo.bar.org/baz');" ),
+
                        // Division vs. regex nastiness
                        array( "alert( (10+10) / '/'.charCodeAt( 0 ) + '//' );", "alert((10+10)/'/'.charCodeAt(0)+'//');" ),
                        array( "if(1)/a /g.exec('Pa ss');", "if(1)/a /g.exec('Pa ss');" ),
@@ -81,11 +102,12 @@ class JavaScriptMinifierTest extends MediaWikiTestCase {
 
                        // Unicode letter characters should pass through ok in identifiers (bug 31187)
                        array( "var KaŝSkatolVal = {}", 'var KaŝSkatolVal={}'),
-                       // And also per spec unicode char escape values should work in identifiers,
+
+                       // Per spec unicode char escape values should work in identifiers,
                        // as long as it's a valid char. In future it might get normalized.
                        array( "var Ka\\u015dSkatolVal = {}", 'var Ka\\u015dSkatolVal={}'),
 
-                       /* Some structures that might look invalid at first sight */
+                       // Some structures that might look invalid at first sight
                        array( "var a = 5.;", "var a=5.;" ),
                        array( "5.0.toString();", "5.0.toString();" ),
                        array( "5..toString();", "5..toString();" ),
@@ -110,24 +132,6 @@ class JavaScriptMinifierTest extends MediaWikiTestCase {
                $this->assertEquals( $expectedOutput, $minified, "Minified output should be in the form expected." );
        }
 
-       /**
-        * @dataProvider provideBug32548
-        */
-       function testBug32548Exponent($num) {
-               // Long line breaking was being incorrectly done between the base and
-               // exponent part of a number, causing a syntax error. The line should
-               // instead break at the start of the number.
-               $prefix = 'var longVarName' . str_repeat('_', 973) . '=';
-               $suffix = ',shortVarName=0;';
-
-               $input = $prefix . $num . $suffix;
-               $expected = $prefix . "\n" . $num . $suffix;
-
-               $minified = JavaScriptMinifier::minify( $input );
-
-               $this->assertEquals( $expected, $minified, "Line breaks must not occur in middle of exponent");
-       }
-
        function provideBug32548() {
                return array(
                        array(
@@ -145,4 +149,22 @@ class JavaScriptMinifierTest extends MediaWikiTestCase {
                        ),
                );
        }
+
+       /**
+        * @dataProvider provideBug32548
+        */
+       function testBug32548Exponent( $num ) {
+               // Long line breaking was being incorrectly done between the base and
+               // exponent part of a number, causing a syntax error. The line should
+               // instead break at the start of the number.
+               $prefix = 'var longVarName' . str_repeat( '_', 973 ) . '=';
+               $suffix = ',shortVarName=0;';
+
+               $input = $prefix . $num . $suffix;
+               $expected = $prefix . "\n" . $num . $suffix;
+
+               $minified = JavaScriptMinifier::minify( $input );
+
+               $this->assertEquals( $expected, $minified, "Line breaks must not occur in middle of exponent");
+       }
 }
diff --git a/tests/phpunit/includes/parser/ParserMethodsTest.php b/tests/phpunit/includes/parser/ParserMethodsTest.php
new file mode 100644 (file)
index 0000000..dea406c
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+
+class ParserMethodsTest extends MediaWikiLangTestCase {
+
+       public function dataPreSaveTransform() {
+               return array(
+                       array( 'hello this is ~~~',
+                              "hello this is [[Special:Contributions/127.0.0.1|127.0.0.1]]",
+                       ),
+                       array( 'hello \'\'this\'\' is <nowiki>~~~</nowiki>',
+                              'hello \'\'this\'\' is <nowiki>~~~</nowiki>',
+                       ),
+               );
+       }
+
+       /**
+        * @dataProvider dataPreSaveTransform
+        */
+       public function testPreSaveTransform( $text, $expected ) {
+               global $wgParser;
+
+               $title = Title::newFromText( str_replace( '::', '__', __METHOD__ ) );
+               $user = new User();
+               $user->setName( "127.0.0.1" );
+               $popts = ParserOptions::newFromUser( $user );
+               $text = $wgParser->preSaveTransform( $text, $title, $user, $popts );
+
+               $this->assertEquals( $expected, $text );
+       }
+
+       // TODO: Add tests for cleanSig() / cleanSigInSig(), getSection(), replaceSection(), getPreloadText()
+}
+
index e71e76c..b5eb573 100644 (file)
@@ -303,7 +303,7 @@ abstract class DumpTestCase extends MediaWikiLangTestCase {
                $this->skipWhitespace();
 
                $this->assertTextNode( "id", $id );
-               if( $parentid ) {
+               if ( $parentid !== false ) {
                        $this->assertTextNode( "parentid", $parentid );
                }
                $this->assertTextNode( "timestamp", false );
index 6ec802c..965d7be 100644 (file)
@@ -209,7 +209,6 @@ class BaseDumpTest extends MediaWikiTestCase {
     <id>2</id>
     <revision>
       <id>2</id>
-      <parentid>5</parentid>
       <timestamp>2012-04-01T16:46:05Z</timestamp>
       <contributor>
         <ip>127.0.0.1</ip>
@@ -220,6 +219,7 @@ class BaseDumpTest extends MediaWikiTestCase {
     </revision>
     <revision>
       <id>5</id>
+      <parentid>2</parentid>
       <timestamp>2012-04-01T16:46:05Z</timestamp>
       <contributor>
         <ip>127.0.0.1</ip>
index bd4642f..24186fb 100644 (file)
@@ -114,16 +114,16 @@ class TextPassDumperTest extends DumpTestCase {
                $this->assertPageStart( $this->pageId2, NS_MAIN, "BackupDumperTestP2" );
                $this->assertRevision( $this->revId2_1, "BackupDumperTestP2Summary1",
                        $this->textId2_1, false, "jprywrymfhysqllua29tj3sc7z39dl2",
-                       "BackupDumperTestP2Text1", $this->revId2_2 );
+                       "BackupDumperTestP2Text1" );
                $this->assertRevision( $this->revId2_2, "BackupDumperTestP2Summary2",
                        $this->textId2_2, false, "b7vj5ks32po5m1z1t1br4o7scdwwy95",
-                       "BackupDumperTestP2Text2", $this->revId2_3 );
+                       "BackupDumperTestP2Text2", $this->revId2_1 );
                $this->assertRevision( $this->revId2_3, "BackupDumperTestP2Summary3",
                        $this->textId2_3, false, "jfunqmh1ssfb8rs43r19w98k28gg56r",
-                       "BackupDumperTestP2Text3", $this->revId2_4 );
+                       "BackupDumperTestP2Text3", $this->revId2_2 );
                $this->assertRevision( $this->revId2_4, "BackupDumperTestP2Summary4 extra",
                        $this->textId2_4, false, "6o1ciaxa6pybnqprmungwofc4lv00wv",
-                       "BackupDumperTestP2Text4 some additional Text" );
+                       "BackupDumperTestP2Text4 some additional Text", $this->revId2_3 );
                $this->assertPageEnd();
 
                // Page 3
@@ -180,18 +180,18 @@ class TextPassDumperTest extends DumpTestCase {
                $this->assertPageStart( $this->pageId2, NS_MAIN, "BackupDumperTestP2" );
                $this->assertRevision( $this->revId2_1, "BackupDumperTestP2Summary1",
                        $this->textId2_1, false, "jprywrymfhysqllua29tj3sc7z39dl2",
-                       "BackupDumperTestP2Text1", $this->revId2_2 );
+                       "BackupDumperTestP2Text1" );
                $this->assertRevision( $this->revId2_2, "BackupDumperTestP2Summary2",
                        $this->textId2_2, false, "b7vj5ks32po5m1z1t1br4o7scdwwy95",
-                       "BackupDumperTestP2Text2", $this->revId2_3 );
+                       "BackupDumperTestP2Text2", $this->revId2_1 );
                // Prefetch kicks in. This is still the SHA-1 of the original text,
                // But the actual text (with different SHA-1) comes from prefetch.
                $this->assertRevision( $this->revId2_3, "BackupDumperTestP2Summary3",
                        $this->textId2_3, false, "jfunqmh1ssfb8rs43r19w98k28gg56r",
-                       "Prefetch_________2Text3", $this->revId2_4 );
+                       "Prefetch_________2Text3", $this->revId2_2 );
                $this->assertRevision( $this->revId2_4, "BackupDumperTestP2Summary4 extra",
                        $this->textId2_4, false, "6o1ciaxa6pybnqprmungwofc4lv00wv",
-                       "BackupDumperTestP2Text4 some additional Text" );
+                       "BackupDumperTestP2Text4 some additional Text", $this->revId2_3 );
                $this->assertPageEnd();
 
                // Page 3
@@ -332,17 +332,18 @@ class TextPassDumperTest extends DumpTestCase {
                                        "BackupDumperTestP2" );
                                $this->assertRevision( $this->revId2_1 + $i * self::$numOfRevs, "BackupDumperTestP2Summary1",
                                        $this->textId2_1, false, "jprywrymfhysqllua29tj3sc7z39dl2",
-                                       "BackupDumperTestP2Text1", $this->revId2_2 + $i * self::$numOfRevs );
+                                       "BackupDumperTestP2Text1" );
                                $this->assertRevision( $this->revId2_2 + $i * self::$numOfRevs, "BackupDumperTestP2Summary2",
                                        $this->textId2_2, false, "b7vj5ks32po5m1z1t1br4o7scdwwy95",
-                                       "BackupDumperTestP2Text2", $this->revId2_3 + $i * self::$numOfRevs );
+                                       "BackupDumperTestP2Text2", $this->revId2_1 + $i * self::$numOfRevs );
                                $this->assertRevision( $this->revId2_3 + $i * self::$numOfRevs, "BackupDumperTestP2Summary3",
                                        $this->textId2_3, false, "jfunqmh1ssfb8rs43r19w98k28gg56r",
-                                       "BackupDumperTestP2Text3", $this->revId2_4 + $i * self::$numOfRevs );
+                                       "BackupDumperTestP2Text3", $this->revId2_2 + $i * self::$numOfRevs );
                                $this->assertRevision( $this->revId2_4 + $i * self::$numOfRevs,
                                        "BackupDumperTestP2Summary4 extra",
                                        $this->textId2_4, false, "6o1ciaxa6pybnqprmungwofc4lv00wv",
-                                       "BackupDumperTestP2Text4 some additional Text" );
+                                       "BackupDumperTestP2Text4 some additional Text",
+                                       $this->revId2_3 + $i * self::$numOfRevs );
                                $this->assertPageEnd();
 
                                $lookingForPage = 4;
@@ -490,7 +491,6 @@ class TextPassDumperTest extends DumpTestCase {
     <id>' . ( $this->pageId2 + $i * self::$numOfPages ) . '</id>
     <revision>
       <id>' . ( $this->revId2_1 + $i * self::$numOfRevs ) . '</id>
-      <parentid>' . ( $this->revId2_2 + $i * self::$numOfRevs ) . '</parentid>
       <timestamp>2012-04-01T16:46:05Z</timestamp>
       <contributor>
         <ip>127.0.0.1</ip>
@@ -501,7 +501,7 @@ class TextPassDumperTest extends DumpTestCase {
     </revision>
     <revision>
       <id>' . ( $this->revId2_2 + $i * self::$numOfRevs ) . '</id>
-      <parentid>' . ( $this->revId2_3 + $i * self::$numOfRevs ) . '</parentid>
+      <parentid>' . ( $this->revId2_1 + $i * self::$numOfRevs ) . '</parentid>
       <timestamp>2012-04-01T16:46:05Z</timestamp>
       <contributor>
         <ip>127.0.0.1</ip>
@@ -512,7 +512,7 @@ class TextPassDumperTest extends DumpTestCase {
     </revision>
     <revision>
       <id>' . ( $this->revId2_3 + $i * self::$numOfRevs ) . '</id>
-      <parentid>' . ( $this->revId2_4 + $i * self::$numOfRevs ) . '</parentid>
+      <parentid>' . ( $this->revId2_2 + $i * self::$numOfRevs ) . '</parentid>
       <timestamp>2012-04-01T16:46:05Z</timestamp>
       <contributor>
         <ip>127.0.0.1</ip>
@@ -523,6 +523,7 @@ class TextPassDumperTest extends DumpTestCase {
     </revision>
     <revision>
       <id>' . ( $this->revId2_4 + $i * self::$numOfRevs ) . '</id>
+      <parentid>' . ( $this->revId2_3 + $i * self::$numOfRevs ) . '</parentid>
       <timestamp>2012-04-01T16:46:05Z</timestamp>
       <contributor>
         <ip>127.0.0.1</ip>
index 9e1e9b2..adfd111 100644 (file)
@@ -27,6 +27,7 @@ return array(
                        'tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js',
                        'tests/qunit/suites/resources/mediawiki.special/mediawiki.special.recentchanges.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js',
+                       'tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js',
                ),
                'dependencies' => array(
                        'jquery.autoEllipsis',
@@ -49,6 +50,7 @@ return array(
                        'mediawiki.util',
                        'mediawiki.special.recentchanges',
                        'mediawiki.jqueryMsg',
+                       'mediawiki.language'
                ),
                'position' => 'top',
        )
diff --git a/tests/qunit/data/load.mock.php b/tests/qunit/data/load.mock.php
new file mode 100644 (file)
index 0000000..1c18970
--- /dev/null
@@ -0,0 +1,58 @@
+<?php
+/**
+ * Mock load.php with pre-defined test modules.
+ *
+ * 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
+ * @package MediaWiki
+ * @author Lupo
+ * @since 1.20
+ */
+header( 'Content-Type: text/javascript; charset=utf-8' );
+
+require_once '../../../includes/Xml.php';
+
+$moduleImplementations = array(
+       'testUsesMissing' => "
+mw.loader.implement( 'testUsesMissing', function () {
+       QUnit.ok( false, 'Module test.usesMissing script should not run.');
+       QUnit.start();
+}, {}, {});
+",
+
+       'testUsesNestedMissing' => "
+mw.loader.implement( 'testUsesNestedMissing', function () {
+       QUnit.ok( false, 'Module testUsesNestedMissing script should not run.');
+}, {}, {});
+",
+);
+
+$response = '';
+
+// Only support for non-encoded module names, full module names expected
+if ( isset( $_GET['modules'] ) ) {
+       $modules = explode( ',', $_GET['modules'] );
+       foreach ( $modules as $module ) {
+               if ( isset( $moduleImplementations[$module] ) ) {
+                       $response .= $moduleImplementations[$module];
+               } else {
+                       $response .= Xml::encodeJsCall( 'mw.loader.state', array( $module, 'missing' ) );
+               }
+       }
+}
+
+echo $response;
diff --git a/tests/qunit/data/testloader.php b/tests/qunit/data/testloader.php
deleted file mode 100644 (file)
index 7f4c48d..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-/**
- * ResourceLoader stub working with pre-defined test modules.
- *
- * 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
- * @package MediaWiki
- * @author Lupo
- * @since 1.20
- */
-header( 'Content-Type: text/javascript; charset=utf-8' );\r
-
-require_once "../../../includes/Xml.php";
-
-$modules = array (
-       'test.use_missing' => array (
-               'src' => 'mw.loader.implement("test.use_missing", function () {start(); ok(false, "Module test.use_missing should not run.");}, {}, {});',
-               'deps' => array ( 'test.missing' )
-       ),
-       'test.use_missing2' => array (
-               'src' => 'mw.loader.implement("test.use_missing2", function () {start(); ok(false, "Module test.use_missing2 should not run.");}, {}, {});',
-               'deps' => array ( 'test.missing2' )
-       )
-);
-
-// Copied from ResourceLoaderContext
-function expandModuleNames( $modules ) {\r
-       $retval = array();\r
-       // For backwards compatibility with an earlier hack, replace ! with .\r
-       $modules = str_replace( '!', '.', $modules );\r
-       $exploded = explode( '|', $modules );\r
-       foreach ( $exploded as $group ) {\r
-               if ( strpos( $group, ',' ) === false ) {\r
-                       // This is not a set of modules in foo.bar,baz notation\r
-                       // but a single module\r
-                       $retval[] = $group;\r
-               } else {\r
-                       // This is a set of modules in foo.bar,baz notation\r
-                       $pos = strrpos( $group, '.' );\r
-                       if ( $pos === false ) {\r
-                               // Prefixless modules, i.e. without dots\r
-                               $retval = explode( ',', $group );\r
-                       } else {\r
-                               // We have a prefix and a bunch of suffixes\r
-                               $prefix = substr( $group, 0, $pos ); // 'foo'\r
-                               $suffixes = explode( ',', substr( $group, $pos + 1 ) ); // array( 'bar', 'baz' )\r
-                               foreach ( $suffixes as $suffix ) {\r
-                                       $retval[] = "$prefix.$suffix";\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       return $retval;\r
-}
-
-function addModule ( $moduleName, &$gotten ) {
-       global $modules;
-
-       $result = "";
-       if ( isset( $gotten[$moduleName] ) ) {
-               return $result;
-       }
-       $gotten[$moduleName] = true;
-       if ( isset( $modules[$moduleName] ) ) {
-               $deps = $modules[$moduleName]['deps'];
-               foreach ( $deps as $depName ) {
-                       $result .= addModule( $depName, $gotten ) . "\n";
-               }
-               $result .= $modules[$moduleName]['src'] . "\n";
-       } else {
-               $result .= 'mw.loader.state( ' . Xml::encodeJsVar( $moduleName ) . ', "missing" );' . "\n";
-       }
-       return $result . "\n";
-}
-
-$result = "";
-
-if ( isset( $_GET['modules'] ) ) {
-       $toGet = expandModuleNames( $_GET['modules'] );
-       $gotten = array();
-       foreach ( $toGet as $moduleName ) {
-               $result .= addModule( $moduleName, $gotten );
-       }
-}
-
-echo $result;
index 21effdb..2cb94d1 100644 (file)
                expected: simpleSample
        });
 
+       byteLimitTest({
+               description: 'Plain text input. Calling byteLimit with no parameters and no maxLength property (bug 36310)',
+               $input: $( '<input>' )
+                       .attr( 'type', 'text' )
+                       .byteLimit(),
+               sample: simpleSample,
+               hasLimit: false,
+               expected: simpleSample
+       });
+
        byteLimitTest({
                description: 'Limit using the maxlength attribute',
                $input: $( '<input>' )
index f028dbc..df0144c 100644 (file)
@@ -408,7 +408,8 @@ test( 'bug 32047 - caption must be before thead', function() {
 test( 'data-sort-value attribute, when available, should override sorting position', function() {
        var $table, data;
 
-       // Simple example, one without data-sort-value which should be sorted at it's text.
+       // Example 1: All cells except one cell without data-sort-value,
+       // which should be sorted at it's text content value.
        $table = $(
                '<table class="sortable"><thead><tr><th>Data</th></tr></thead>' +
                        '<tbody>' +
@@ -424,30 +425,33 @@ test( 'data-sort-value attribute, when available, should override sorting positi
        data = [];
        $table.find( 'tbody > tr' ).each( function( i, tr ) {
                $( tr ).find( 'td' ).each( function( i, td ) {
-                       data.push( { data: $( td ).data( 'sort-value' ), text: $( td ).text() } );
+                       data.push( {
+                               data: $( td ).data( 'sortValue' ),
+                               text: $( td ).text()
+                       } );
                });
        });
 
        deepEqual( data, [
                {
-                       "data": "Apple",
-                       "text": "Bird"
+                       data: 'Apple',
+                       text: 'Bird'
                }, {
-                       "data": "Bananna",
-                       "text": "Ferret"
+                       data: 'Bananna',
+                       text: 'Ferret'
                }, {
-                       "data": undefined,
-                       "text": "Cheetah"
+                       data: undefined,
+                       text: 'Cheetah'
                }, {
-                       "data": "Cherry",
-                       "text": "Dolphin"
+                       data: 'Cherry',
+                       text: 'Dolphin'
                }, {
-                       "data": "Drupe",
-                       "text": "Elephant"
+                       data: 'Drupe',
+                       text: 'Elephant'
                }
-       ] );
+       ], 'Order matches expected order (based on data-sort-value attribute values)' );
 
-       // Another example
+       // Example 2
        $table = $(
                '<table class="sortable"><thead><tr><th>Data</th></tr></thead>' +
                        '<tbody>' +
@@ -463,28 +467,89 @@ test( 'data-sort-value attribute, when available, should override sorting positi
        data = [];
        $table.find( 'tbody > tr' ).each( function( i, tr ) {
                $( tr ).find( 'td' ).each( function( i, td ) {
-                       data.push( { data: $( td ).data( 'sort-value' ), text: $( td ).text() } );
+                       data.push( {
+                               data: $( td ).data( 'sortValue' ),
+                               text: $( td ).text()
+                       } );
                });
        });
 
        deepEqual( data, [
                {
-                       "data": undefined,
-                       "text": "B"
+                       data: undefined,
+                       text: 'B'
                }, {
-                       "data": undefined,
-                       "text": "D"
+                       data: undefined,
+                       text: 'D'
                }, {
-                       "data": "E",
-                       "text": "A"
+                       data: 'E',
+                       text: 'A'
                }, {
-                       "data": "F",
-                       "text": "C"
+                       data: 'F',
+                       text: 'C'
                }, {
-                       "data": undefined,
-                       "text": "G"
+                       data: undefined,
+                       text: 'G'
                }
-       ] );
+       ], 'Order matches expected order (based on data-sort-value attribute values)' );
+
+       // Example 3: Test that live changes are used from data-sort-value,
+       // even if they change after the tablesorter is constructed (bug 38152).
+       $table = $(
+               '<table class="sortable"><thead><tr><th>Data</th></tr></thead>' +
+                       '<tbody>' +
+                       '<tr><td>D</td></tr>' +
+                       '<tr><td data-sort-value="1">A</td></tr>' +
+                       '<tr><td>B</td></tr>' +
+                       '<tr><td data-sort-value="2">G</td></tr>' +
+                       '<tr><td>C</td></tr>' +
+               '</tbody></table>'
+       );
+       // initialize table sorter and sort once
+       $table
+               .tablesorter()
+               .find( '.headerSort:eq(0)' ).click();
+
+       // Change the sortValue data properties (bug 38152)
+       // - change data
+       $table.find( 'td:contains(A)' ).data( 'sortValue', 3 );
+       // - add data
+       $table.find( 'td:contains(B)' ).data( 'sortValue', 1 );
+       // - remove data, bring back attribute: 2
+       $table.find( 'td:contains(G)' ).removeData( 'sortValue' );
+
+       // Now sort again (twice, so it is back at Ascending)
+       $table.find( '.headerSort:eq(0)' ).click();
+       $table.find( '.headerSort:eq(0)' ).click();
+
+       data = [];
+       $table.find( 'tbody > tr' ).each( function( i, tr ) {
+               $( tr ).find( 'td' ).each( function( i, td ) {
+                       data.push( {
+                               data: $( td ).data( 'sortValue' ),
+                               text: $( td ).text()
+                       } );
+               });
+       });
+
+       deepEqual( data, [
+               {
+                       data: 1,
+                       text: "B"
+               }, {
+                       data: 2,
+                       text: "G"
+               }, {
+                       data: 3,
+                       text: "A"
+               }, {
+                       data: undefined,
+                       text: "C"
+               }, {
+                       data: undefined,
+                       text: "D"
+               }
+       ], 'Order matches expected order, using the current sortValue in $.data()' );
 
 });
 
@@ -527,8 +592,8 @@ test( 'bug 32888 - Tables inside a tableheader cell', function() {
 
        var $table;
        $table = $(
-               '<table class="sortable" id="32888">' +
-               '<tr><th>header<table id="32888-2">'+
+               '<table class="sortable" id="mw-bug-32888">' +
+               '<tr><th>header<table id="mw-bug-32888-2">'+
                        '<tr><th>1</th><th>2</th></tr>' +
                '</table></th></tr>' +
                '<tr><td>A</td></tr>' +
@@ -543,10 +608,61 @@ test( 'bug 32888 - Tables inside a tableheader cell', function() {
                'Child tables inside a headercell should not interfere with sortable headers (bug 32888)'
        );
        equals(
-               $('#32888-2').find('th.headerSort').length,
+               $( '#mw-bug-32888-2' ).find('th.headerSort').length,
                0,
                'The headers of child tables inside a headercell should not be sortable themselves (bug 32888)'
        );
 });
 
+
+var correctDateSorting1 = [
+       ['01 January 2010'],
+       ['05 February 2010'],
+       ['16 January 2010'],
+];
+
+var correctDateSortingSorted1 = [
+       ['01 January 2010'],
+       ['16 January 2010'],
+       ['05 February 2010'],
+];
+
+tableTest(
+       'Correct date sorting I',
+       ['date'],
+       correctDateSorting1,
+       correctDateSortingSorted1,
+       function ( $table ) {
+               mw.config.set( 'wgDefaultDateFormat', 'mdy' );
+
+               $table.tablesorter();
+               $table.find( '.headerSort:eq(0)' ).click();
+       }
+);
+
+var correctDateSorting2 = [
+       ['January 01 2010'],
+       ['February 05 2010'],
+       ['January 16 2010'],
+];
+
+var correctDateSortingSorted2 = [
+       ['January 01 2010'],
+       ['January 16 2010'],
+       ['February 05 2010'],
+];
+
+tableTest(
+       'Correct date sorting II',
+       ['date'],
+       correctDateSorting2,
+       correctDateSortingSorted2,
+       function ( $table ) {
+               mw.config.set( 'wgDefaultDateFormat', 'dmy' );
+
+               $table.tablesorter();
+               $table.find( '.headerSort:eq(0)' ).click();
+       }
+);
+
 })( jQuery );
index b834aeb..9913fb9 100644 (file)
@@ -229,19 +229,27 @@ test( 'All-dressed URI with everything', function () {
 
 test( 'Cloning', function () {
        var original, clone;
-       expect( 5 );
+       expect( 6 );
 
-       original = new mw.Uri( 'http://en.wiki.local/w/api.php?action=query&foo=bar' );
+       original = new mw.Uri( 'http://foo.example.org/index.php?one=1&two=2' );
        clone = original.clone();
 
        deepEqual( clone, original, 'clone has equivalent properties' );
        equal( original.toString(), clone.toString(), 'toString matches original' );
 
-       notStrictEqual( clone, original, 'clone is not the same when compared by reference' );
+       notStrictEqual( clone, original, 'clone is a different object when compared by reference' );
 
-       clone.host = 'fr.wiki.local';
+       clone.host = 'bar.example.org';
        notEqual( original.host, clone.host, 'manipulating clone did not effect original' );
-       notEqual( original.toString(), clone.toString(), 'toString no longer matches original' );
+       notEqual( original.toString(), clone.toString(), 'Stringified url no longer matches original' );
+
+       clone.query.three = 3;
+
+       deepEqual(
+               original.query,
+               { 'one': '1', 'two': '2' },
+               'Properties is deep cloned (bug 37708)'
+       );
 } );
 
 test( 'Constructing mw.Uri from plain object', function () {
index 2abe016..481a5bb 100644 (file)
 module( 'mediawiki.jqueryMsg' );
 
-test( '-- Initial check', function() {
+test( '-- Initial check', function () {
        expect( 1 );
        ok( mw.jqueryMsg, 'mw.jqueryMsg defined' );
 } );
 
-test( 'mw.jqueryMsg Plural', function() {
-       expect( 5 );
+test( 'mw.jqueryMsg Plural', function () {
+       expect( 3 );
        var parser = mw.jqueryMsg.getMessageFunction();
-       ok( parser, 'Parser Function initialized' );
-       ok( mw.messages.set( 'plural-msg', 'Found $1 {{PLURAL:$1|item|items}}' ), 'mw.messages.set: Register' );
-       equal( parser( 'plural-msg', 0 ) , 'Found 0 items', 'Plural test for english with zero as count' );
-       equal( parser( 'plural-msg', 1 ) , 'Found 1 item', 'Singular test for english' );
-       equal( parser( 'plural-msg', 2 ) , 'Found 2 items', 'Plural test for english' );
+
+       mw.messages.set( 'plural-msg', 'Found $1 {{PLURAL:$1|item|items}}' );
+       equal( parser( 'plural-msg', 0 ), 'Found 0 items', 'Plural test for english with zero as count' );
+       equal( parser( 'plural-msg', 1 ), 'Found 1 item', 'Singular test for english' );
+       equal( parser( 'plural-msg', 2 ), 'Found 2 items', 'Plural test for english' );
 } );
 
 
-test( 'mw.jqueryMsg Gender', function() {
-       expect( 16 );
-       //TODO: These tests should be for mw.msg once mw.msg integrated with mw.jqueryMsg
-       var user = mw.user;
+test( 'mw.jqueryMsg Gender', function () {
+       expect( 11 );
+       // TODO: These tests should be for mw.msg once mw.msg integrated with mw.jqueryMsg
+       // TODO: English may not be the best language for these tests. Use a language like Arabic or Russian
+       var user = mw.user,
+               parser = mw.jqueryMsg.getMessageFunction();
+
+       // The values here are not significant,
+       // what matters is which of the values is choosen by the parser
+       mw.messages.set( 'gender-msg', '$1: {{GENDER:$2|blue|pink|green}}' );
+
        user.options.set( 'gender', 'male' );
-       var parser = mw.jqueryMsg.getMessageFunction();
-       ok( parser, 'Parser Function initialized' );
-       //TODO: English may not be the best language for these tests. Use a language like Arabic or Russian
-       ok( mw.messages.set( 'gender-msg', '$1 reverted {{GENDER:$2|his|her|their}} last edit' ), 'mw.messages.set: Register' );
-       equal( parser( 'gender-msg', 'Bob', 'male' ) , 'Bob reverted his last edit', 'Gender masculine' );
-       equal( parser( 'gender-msg', 'Bob', user ) , 'Bob reverted his last edit', 'Gender masculine' );
+       equal(
+               parser( 'gender-msg', 'Bob', 'male' ),
+               'Bob: blue',
+               'Masculine from string "male"'
+       );
+       equal(
+               parser( 'gender-msg', 'Bob', user ),
+               'Bob: blue',
+               'Masculine from mw.user object'
+       );
+
        user.options.set( 'gender', 'unknown' );
-       equal( parser( 'gender-msg', 'They', user ) , 'They reverted their last edit', 'Gender neutral or unknown' );
-       equal( parser( 'gender-msg', 'Alice', 'female' ) , 'Alice reverted her last edit', 'Gender feminine' );
-       equal( parser( 'gender-msg', 'User' ) , 'User reverted their last edit', 'Gender neutral' );
-       equal( parser( 'gender-msg', 'User', 'unknown' ) , 'User reverted their last edit', 'Gender neutral' );
-       ok( mw.messages.set( 'gender-msg-one-form', '{{GENDER:$1|User}} reverted last $2 {{PLURAL:$2|edit|edits}}' ), 'mw.messages.set: Register' );
-       equal( parser( 'gender-msg-one-form', 'male', 10 ) , 'User reverted last 10 edits', 'Gender neutral and plural form' );
-       equal( parser( 'gender-msg-one-form', 'female', 1 ) , 'User reverted last 1 edit', 'Gender neutral and singular form' );
-       ok( mw.messages.set( 'gender-msg-lowercase', '{{gender:$1|he|she}} is awesome' ), 'mw.messages.set: Register' );
-       equal( parser( 'gender-msg-lowercase', 'male' ) , 'he is awesome', 'Gender masculine' );
-       equal( parser( 'gender-msg-lowercase', 'female' ) , 'she is awesome', 'Gender feminine' );
-       ok( mw.messages.set( 'gender-msg-wrong', '{{gender}} is awesome' ), 'mw.messages.set: Register' );
-       equal( parser( 'gender-msg-wrong', 'female' ) , ' is awesome', 'Wrong syntax used, but ignore the {{gender}}' );
+       equal(
+               parser( 'gender-msg', 'Foo', user ),
+               'Foo: green',
+               'Neutral from mw.user object' );
+       equal(
+               parser( 'gender-msg', 'Alice', 'female' ),
+               'Alice: pink',
+               'Feminine from string "female"' );
+       equal(
+               parser( 'gender-msg', 'User' ),
+               'User: green',
+               'Neutral when no parameter given' );
+       equal(
+               parser( 'gender-msg', 'User', 'unknown' ),
+               'User: green',
+               'Neutral from string "unknown"'
+       );
+
+       mw.messages.set( 'gender-msg-one-form', '{{GENDER:$1|User}}: $2 {{PLURAL:$2|edit|edits}}' );
+
+       equal(
+               parser( 'gender-msg-one-form', 'male', 10 ),
+               'User: 10 edits',
+               'Gender neutral and plural form'
+       );
+       equal(
+               parser( 'gender-msg-one-form', 'female', 1 ),
+               'User: 1 edit',
+               'Gender neutral and singular form'
+       );
+
+       mw.messages.set( 'gender-msg-lowercase', '{{gender:$1|he|she}} is awesome' );
+       equal(
+               parser( 'gender-msg-lowercase', 'male' ),
+               'he is awesome',
+               'Gender masculine'
+       );
+       equal(
+               parser( 'gender-msg-lowercase', 'female' ),
+               'she is awesome',
+               'Gender feminine'
+       );
+
+       mw.messages.set( 'gender-msg-wrong', '{{gender}} test' );
+       equal(
+               parser( 'gender-msg-wrong', 'female' ),
+               ' test',
+               'Invalid syntax should result in {{gender}} simply being stripped away'
+       );
 } );
 
 
-test( 'mw.jqueryMsg Grammar', function() {
-       expect( 5 );
+test( 'mw.jqueryMsg Grammar', function () {
+       expect( 2 );
        var parser = mw.jqueryMsg.getMessageFunction();
-       ok( parser, 'Parser Function initialized' );
-       // Hope the grammar form grammar_case_foo is not valid in any language
-       ok( mw.messages.set( 'grammar-msg', 'Przeszukaj {{GRAMMAR:grammar_case_foo|{{SITENAME}}}}' ), 'mw.messages.set: Register' );
-       equal( parser( 'grammar-msg' ) , 'Przeszukaj ' + mw.config.get( 'wgSiteName' ) , 'Grammar Test with sitename' );
-       ok( mw.messages.set( 'grammar-msg-wrong-syntax', 'Przeszukaj {{GRAMMAR:grammar_case_xyz}}' ), 'mw.messages.set: Register' );
-       equal( parser( 'grammar-msg-wrong-syntax' ) , 'Przeszukaj ' , 'Grammar Test with wrong grammar template syntax' );
+
+       // Assume the grammar form grammar_case_foo is not valid in any language
+       mw.messages.set( 'grammar-msg', 'Przeszukaj {{GRAMMAR:grammar_case_foo|{{SITENAME}}}}' );
+       equal( parser( 'grammar-msg' ), 'Przeszukaj ' + mw.config.get( 'wgSiteName' ), 'Grammar Test with sitename' );
+
+       mw.messages.set( 'grammar-msg-wrong-syntax', 'Przeszukaj {{GRAMMAR:grammar_case_xyz}}' );
+       equal( parser( 'grammar-msg-wrong-syntax' ), 'Przeszukaj ' , 'Grammar Test with wrong grammar template syntax' );
 } );
diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js
new file mode 100644 (file)
index 0000000..5d67a6e
--- /dev/null
@@ -0,0 +1,395 @@
+var liveLangData = mw.language.data.values;
+QUnit.module( 'mediawiki.language', QUnit.newMwEnvironment({
+       setup: function () {
+               // New independent copy for this test
+               mw.language.data = $.extend( {}, liveLangData, true );
+       },
+       teardown: function () {
+               // Restore original
+               mw.language.data = liveLangData;
+       }
+}) );
+
+QUnit.test( 'mw.language getData and setData', function ( assert ) {
+       QUnit.expect( 2 );
+
+       mw.language.setData( 'en', 'testkey', 'testvalue' );
+       assert.equal(  mw.language.getData( 'en', 'testkey' ), 'testvalue', 'Getter setter test for mw.language' );
+       assert.equal(  mw.language.getData( 'en', 'invalidkey' ), undefined, 'Getter setter test for mw.language with invalid key' );
+} );
+
+function grammarTest( langCode, test ) {
+       // The test works only if the content language is opt.language
+       // because it requires [lang].js to be loaded.
+       QUnit.test( 'Grammar test for lang=' + langCode, function ( assert ) {
+               QUnit.expect( test.length );
+
+               for ( var i = 0 ; i < test.length; i++ ) {
+                       assert.equal(
+                               mw.language.convertGrammar( test[i].word, test[i].grammarForm ),
+                               test[i].expected,
+                               test[i].description
+                       );
+               }
+       });
+}
+
+var grammarTests = {
+       bs: [
+               {
+                       word: 'word',
+                       grammarForm: 'instrumental',
+                       expected: 's word',
+                       description: 'Grammar test for instrumental case'
+               },
+               {
+                       word: 'word',
+                       grammarForm: 'lokativ',
+                       expected: 'o word',
+                       description: 'Grammar test for lokativ case'
+               }
+       ],
+
+       he: [
+               {
+                       word: "ויקיפדיה",
+                       grammarForm: 'prefixed',
+                       expected: "וויקיפדיה",
+                       description: 'Duplicate the "Waw" if prefixed'
+               },
+               {
+                       word: "וולפגנג",
+                       grammarForm: 'prefixed',
+                       expected: "וולפגנג",
+                       description: 'Duplicate the "Waw" if prefixed, but not if it is already duplicated.'
+               },
+               {
+                       word: "הקובץ",
+                       grammarForm: 'prefixed',
+                       expected: "קובץ",
+                       description: 'Remove the "He" if prefixed'
+               },
+               {
+                       word: 'Wikipedia',
+                       grammarForm: 'תחילית',
+                       expected: '־Wikipedia',
+                       description: 'GAdd a hyphen (maqaf) before non-Hebrew letters'
+               },
+               {
+                       word: '1995',
+                       grammarForm: 'תחילית',
+                       expected: '־1995',
+                       description: 'Add a hyphen (maqaf) before numbers'
+               }
+       ],
+
+       hsb: [
+               {
+                       word: 'word',
+                       grammarForm: 'instrumental',
+                       expected: 'z word',
+                       description: 'Grammar test for instrumental case'
+               },
+               {
+                       word: 'word',
+                       grammarForm: 'lokatiw',
+                       expected: 'wo word',
+                       description: 'Grammar test for lokatiw case'
+               }
+       ],
+
+       dsb: [
+               {
+                       word: 'word',
+                       grammarForm: 'instrumental',
+                       expected: 'z word',
+                       description: 'Grammar test for instrumental case'
+               },
+               {
+                       word: 'word',
+                       grammarForm: 'lokatiw',
+                       expected: 'wo word',
+                       description: 'Grammar test for lokatiw case'
+               }
+       ],
+
+       hy: [
+               {
+                       word: 'Մաունա',
+                       grammarForm: 'genitive',
+                       expected: 'Մաունայի',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'հետո',
+                       grammarForm: 'genitive',
+                       expected: 'հետոյի',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'գիրք',
+                       grammarForm: 'genitive',
+                       expected: 'գրքի',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'ժամանակի',
+                       grammarForm: 'genitive',
+                       expected: 'ժամանակիի',
+                       description: 'Grammar test for genitive case'
+               }
+       ],
+
+       fi: [
+               {
+                       word: 'talo',
+                       grammarForm: 'genitive',
+                       expected: 'talon',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'linux',
+                       grammarForm: 'genitive',
+                       expected: 'linuxin',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'talo',
+                       grammarForm: 'elative',
+                       expected: 'talosta',
+                       description: 'Grammar test for elative case'
+               },
+               {
+                       word: 'pastöroitu',
+                       grammarForm: 'partitive',
+                       expected: 'pastöroitua',
+                       description: 'Grammar test for partitive case'
+               },
+               {
+                       word: 'talo',
+                       grammarForm: 'partitive',
+                       expected: 'taloa',
+                       description: 'Grammar test for partitive case'
+               },
+               {
+                       word: 'talo',
+                       grammarForm: 'illative',
+                       expected: 'taloon',
+                       description: 'Grammar test for illative case'
+               },
+               {
+                       word: 'linux',
+                       grammarForm: 'inessive',
+                       expected: 'linuxissa',
+                       description: 'Grammar test for inessive case'
+               }
+       ],
+
+       ru: [
+               {
+                       word: 'тесть',
+                       grammarForm: 'genitive',
+                       expected: 'тестя',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'привилегия',
+                       grammarForm: 'genitive',
+                       expected: 'привилегии',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'установка',
+                       grammarForm: 'genitive',
+                       expected: 'установки',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'похоти',
+                       grammarForm: 'genitive',
+                       expected: 'похотей',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'доводы',
+                       grammarForm: 'genitive',
+                       expected: 'доводов',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'песчаник',
+                       grammarForm: 'genitive',
+                       expected: 'песчаника',
+                       description: 'Grammar test for genitive case'
+               }
+       ],
+
+
+       hu: [
+               {
+                       word: 'Wikipédiá',
+                       grammarForm: 'rol',
+                       expected: 'Wikipédiáról',
+                       description: 'Grammar test for rol case'
+               },
+               {
+                       word: 'Wikipédiá',
+                       grammarForm: 'ba',
+                       expected: 'Wikipédiába',
+                       description: 'Grammar test for ba case'
+               },
+               {
+                       word: 'Wikipédiá',
+                       grammarForm: 'k',
+                       expected: 'Wikipédiák',
+                       description: 'Grammar test for k case'
+               }
+       ],
+
+       ga: [
+               {
+                       word: 'an Domhnach',
+                       grammarForm: 'ainmlae',
+                       expected: 'Dé Domhnaigh',
+                       description: 'Grammar test for ainmlae case'
+               },
+               {
+                       word: 'an Luan',
+                       grammarForm: 'ainmlae',
+                       expected: 'Dé Luain',
+                       description: 'Grammar test for ainmlae case'
+               },
+               {
+                       word: 'an Satharn',
+                       grammarForm: 'ainmlae',
+                       expected: 'Dé Sathairn',
+                       description: 'Grammar test for ainmlae case'
+               }
+       ],
+
+       uk: [
+               {
+                       word: 'тесть',
+                       grammarForm: 'genitive',
+                       expected: 'тестя',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'Вікіпедія',
+                       grammarForm: 'genitive',
+                       expected: 'Вікіпедії',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'установка',
+                       grammarForm: 'genitive',
+                       expected: 'установки',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'похоти',
+                       grammarForm: 'genitive',
+                       expected: 'похотей',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'доводы',
+                       grammarForm: 'genitive',
+                       expected: 'доводов',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'песчаник',
+                       grammarForm: 'genitive',
+                       expected: 'песчаника',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'Вікіпедія',
+                       grammarForm: 'accusative',
+                       expected: 'Вікіпедію',
+                       description: 'Grammar test for accusative case'
+               }
+       ],
+
+       sl: [
+               {
+                       word: 'word',
+                       grammarForm: 'orodnik',
+                       expected: 'z word',
+                       description: 'Grammar test for orodnik case'
+               },
+               {
+                       word: 'word',
+                       grammarForm: 'mestnik',
+                       expected: 'o word',
+                       description: 'Grammar test for mestnik case'
+               }
+       ],
+
+       os: [
+               {
+                       word: 'бæстæ',
+                       grammarForm: 'genitive',
+                       expected: 'бæсты',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'бæстæ',
+                       grammarForm: 'allative',
+                       expected: 'бæстæм',
+                       description: 'Grammar test for allative case'
+               },
+               {
+                       word: 'Тигр',
+                       grammarForm: 'dative',
+                       expected: 'Тигрæн',
+                       description: 'Grammar test for dative case'
+               },
+               {
+                       word: 'цъити',
+                       grammarForm: 'dative',
+                       expected: 'цъитийæн',
+                       description: 'Grammar test for dative case'
+               },
+               {
+                       word: 'лæппу',
+                       grammarForm: 'genitive',
+                       expected: 'лæппуйы',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: '2011',
+                       grammarForm: 'equative',
+                       expected: '2011-ау',
+                       description: 'Grammar test for equative case'
+               }
+       ],
+
+       la: [
+               {
+                       word: 'Translatio',
+                       grammarForm: 'genitive',
+                       expected: 'Translationis',
+                       description: 'Grammar test for genitive case'
+               },
+               {
+                       word: 'Translatio',
+                       grammarForm: 'accusative',
+                       expected: 'Translationem',
+                       description: 'Grammar test for accusative case'
+               },
+               {
+                       word: 'Translatio',
+                       grammarForm: 'ablative',
+                       expected: 'Translatione',
+                       description: 'Grammar test for ablative case'
+               }
+       ]
+};
+
+$.each( grammarTests, function ( langCode, test ) {
+       if ( langCode === mw.config.get( 'wgUserLanguage' ) ) {
+               grammarTest( langCode, test );
+       }
+});
index 2f11521..00fcf38 100644 (file)
@@ -343,43 +343,50 @@ test( 'mw.loader missing dependency', function() {
        );
 } );
 
-test( 'mw.loader real missing dependency', function() {
-       expect( 6 );
+test( 'mw.loader dependency handling', function () {
+       expect( 5 );
 
        mw.loader.addSource(
-               'test',
-               {'loadScript' : QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/testloader.php' )}
+               'testloader',
+               {
+                       loadScript: QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/load.mock.php' )
+               }
        );
+
        mw.loader.register( [
-               ['test.missing', '0', [], null, 'test'], ['test.missing2', '0', [], null, 'test'],
-               ['test.use_missing', '0', ['test.missing'], null, 'test'],
-               ['test.use_missing2', '0', ['test.missing2'], null, 'test']
+               // [module, version, dependencies, group, source]
+               ['testMissing', '1', [], null, 'testloader'],
+               ['testUsesMissing', '1', ['testMissing'], null, 'testloader'],
+               ['testUsesNestedMissing', '1', ['testUsesMissing'], null, 'testloader']
        ] );
 
+       function verifyModuleStates() {
+               equal( mw.loader.getState( 'testMissing' ), 'missing', 'Module not known to server must have state "missing"' );
+               equal( mw.loader.getState( 'testUsesMissing' ), 'error', 'Module with missing dependency must have state "error"' );
+               equal( mw.loader.getState( 'testUsesNestedMissing' ), 'error', 'Module with indirect missing dependency must have state "error"' );
+       }
+
        stop();
-       // Asynch ahead
 
-       mw.loader.load( ['test.use_missing'] );
+       mw.loader.using( ['testUsesNestedMissing'],
+               function () {
+                       ok( false, 'Error handler should be invoked.' );
+                       ok( true ); // Dummy to reach QUnit expect()
 
-       function verifyModuleStates() {
-               strictEqual( mw.loader.getState( 'test.missing' ), 'missing', 'Module "test.missing" must have state "missing"' );
-               strictEqual( mw.loader.getState( 'test.missing2' ), 'missing', 'Module "test.missing2" must have state "missing"' );
-               strictEqual( mw.loader.getState( 'test.use_missing' ), 'error', 'Module "test.use_missing" must have state "error"' );
-               strictEqual( mw.loader.getState( 'test.use_missing2' ), 'error', 'Module "test.use_missing2" must have state "error"' );
-       }
+                       verifyModuleStates();
 
-       mw.loader.using( ['test.use_missing2'],
-               function() {
                        start();
-                       ok( false, "Success called wrongly." );
-                       ok( true , "QUnit expected() count dummy" );
-                       verifyModuleStates();
                },
-               function( e, dependencies ) {
-                       start();
-                       ok( true, "Error handler called correctly." );
-                       deepEqual( dependencies, ['test.missing2'], "Dependencies correct." );
+               function ( e, badmodules ) {
+                       ok( true, 'Error handler should be invoked.' );
+                       // As soon as server spits out state('testMissing', 'missing');
+                       // it will bubble up and trigger the error callback.
+                       // Therefor the badmodules array is not testUsesMissing or testUsesNestedMissing.
+                       deepEqual( badmodules, ['testMissing'], 'Bad modules as expected.' );
+
                        verifyModuleStates();
+
+                       start();
                }
        );
 } );
index d396b04..86beb5f 100644 (file)
@@ -141,20 +141,33 @@ test( '$content', function() {
  * one element can have a given id. 
  */
 test( 'addPortletLink', function () {
-       var pTestTb, vectorTabs, tbRL, tbMW, $tbMW, tbRLDM, caFoo;
-       expect(7);
+       var pTestTb, vectorTabs, tbRL, cuQuux, $cuQuux, tbMW, $tbMW, tbRLDM, caFoo;
+       expect( 8 );
 
        pTestTb = '\
        <div class="portlet" id="p-test-tb">\
+               <h5>Toolbox</h5>\
                <ul class="body"></ul>\
        </div>';
+       pCustom = '\
+       <div class="portlet" id="p-test-custom">\
+               <h5>Views</h5>\
+               <ul class="body">\
+                       <li id="c-foo"><a href="#">Foo</a></li>\
+                       <li id="c-barmenu">\
+                               <ul>\
+                                       <li id="c-bar-baz"><a href="#">Baz</a></a>\
+                               </ul>\
+                       </li>\
+               </ul>\
+       </div>';
        vectorTabs = '\
        <div id="p-test-views" class="vectorTabs">\
                <h5>Views</h5>\
                <ul></ul>\
        </div>';
 
-       $('#qunit-fixture').append(pTestTb, vectorTabs);
+       $( '#qunit-fixture' ).append( pTestTb, pCustom, vectorTabs );
 
        tbRL = mw.util.addPortletLink( 'p-test-tb', '//mediawiki.org/wiki/ResourceLoader',
                'ResourceLoader', 't-rl', 'More info about ResourceLoader on MediaWiki.org ', 'l' );
@@ -170,6 +183,15 @@ test( 'addPortletLink', function () {
        equal( $tbMW.closest( '.portlet' ).attr( 'id' ), 'p-test-tb', 'Link was inserted within correct portlet' );
        equal( $tbMW.next().attr( 'id' ), 't-rl', 'Link is in the correct position (by passing nextnode)' );
 
+       cuQuux = mw.util.addPortletLink( 'p-test-custom', '#', 'Quux' );
+       $cuQuux = $(cuQuux);
+
+       equal(
+               $( '#p-test-custom #c-barmenu ul li' ).length,
+               1,
+               'addPortletLink did not add the item to all <ul> elements in the portlet (bug 35082)'
+       );
+
        tbRLDM = mw.util.addPortletLink( 'p-test-tb', '//mediawiki.org/wiki/RL/DM',
                'Default modules', 't-rldm', 'List of all default modules ', 'd', '#t-rl' );