Merge "(bug 32348) Allow descending order for list=alllinks"
authorSiebrand <s.mazeland@xs4all.nl>
Sun, 1 Jul 2012 15:03:20 +0000 (15:03 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sun, 1 Jul 2012 15:03:20 +0000 (15:03 +0000)
319 files changed:
CREDITS
README
RELEASE-NOTES-1.19 [deleted file]
RELEASE-NOTES-1.20
docs/export-0.7.xsd
includes/Article.php
includes/AuthPlugin.php
includes/AutoLoader.php
includes/ChangesList.php
includes/DefaultSettings.php
includes/EditPage.php
includes/Exception.php
includes/Export.php
includes/FileDeleteForm.php
includes/GlobalFunctions.php
includes/MagicWord.php
includes/Namespace.php
includes/OutputPage.php
includes/ProtectionForm.php
includes/Revision.php
includes/SkinLegacy.php
includes/SkinTemplate.php
includes/Title.php
includes/User.php
includes/Wiki.php
includes/WikiPage.php
includes/api/ApiBase.php
includes/api/ApiLogin.php
includes/api/ApiMain.php
includes/api/ApiPurge.php
includes/api/ApiQueryAllImages.php
includes/api/ApiQueryBacklinks.php
includes/api/ApiQueryImageInfo.php
includes/api/ApiQueryInfo.php
includes/api/ApiQuerySiteinfo.php
includes/api/ApiQueryUserContributions.php
includes/cache/HTMLFileCache.php
includes/dao/IDBAccessObject.php [new file with mode: 0644]
includes/db/DatabaseIbm_db2.php
includes/db/DatabasePostgres.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/LSLockManager.php
includes/filerepo/backend/lockmanager/LockManager.php
includes/filerepo/backend/lockmanager/LockManagerGroup.php
includes/filerepo/backend/lockmanager/MemcLockManager.php [new file with mode: 0644]
includes/filerepo/file/LocalFile.php
includes/installer/Installer.i18n.php
includes/job/Job.php [new file with mode: 0644]
includes/job/JobQueue.php [deleted file]
includes/libs/CSSMin.php
includes/logging/LogEventsList.php
includes/parser/Parser.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderLanguageDataModule.php
includes/search/SearchEngine.php
includes/specials/SpecialActiveusers.php
includes/specials/SpecialBlock.php
includes/specials/SpecialBooksources.php
includes/specials/SpecialChangeEmail.php
includes/specials/SpecialChangePassword.php
includes/specials/SpecialContributions.php
includes/specials/SpecialEditWatchlist.php
includes/specials/SpecialLog.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialUpload.php
includes/specials/SpecialUserlogin.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/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/MessagesGan_hans.php
languages/messages/MessagesGl.php
languages/messages/MessagesGu.php
languages/messages/MessagesHaw.php
languages/messages/MessagesHe.php
languages/messages/MessagesHr.php
languages/messages/MessagesHsb.php
languages/messages/MessagesHu.php
languages/messages/MessagesIa.php
languages/messages/MessagesIe.php
languages/messages/MessagesIlo.php
languages/messages/MessagesIs.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesJut.php
languages/messages/MessagesJv.php
languages/messages/MessagesKa.php
languages/messages/MessagesKbd_cyrl.php
languages/messages/MessagesKiu.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/MessagesLzh.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/MessagesNl.php
languages/messages/MessagesNn.php
languages/messages/MessagesOc.php
languages/messages/MessagesOr.php
languages/messages/MessagesPa.php
languages/messages/MessagesPam.php
languages/messages/MessagesPdc.php
languages/messages/MessagesPms.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/MessagesSc.php
languages/messages/MessagesScn.php
languages/messages/MessagesSe.php
languages/messages/MessagesSgs.php
languages/messages/MessagesSh.php
languages/messages/MessagesSl.php
languages/messages/MessagesSq.php
languages/messages/MessagesSv.php
languages/messages/MessagesSw.php
languages/messages/MessagesSzl.php
languages/messages/MessagesTa.php
languages/messages/MessagesTe.php
languages/messages/MessagesTet.php
languages/messages/MessagesTg_cyrl.php
languages/messages/MessagesTg_latn.php
languages/messages/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/MessagesUz.php
languages/messages/MessagesVi.php
languages/messages/MessagesWa.php
languages/messages/MessagesWar.php
languages/messages/MessagesYi.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
maintenance/attachLatest.php
maintenance/changePassword.php
maintenance/checkAutoLoader.php
maintenance/checkBadRedirects.php
maintenance/checkImages.php
maintenance/checkSyntax.php
maintenance/checkUsernames.php
maintenance/convertLinks.php
maintenance/convertUserOptions.php
maintenance/copyFileBackend.php
maintenance/createAndPromote.php
maintenance/deleteArchivedFiles.inc
maintenance/deleteArchivedFiles.php
maintenance/deleteArchivedRevisions.php
maintenance/doMaintenance.php
maintenance/install.php
maintenance/language/messages.inc
maintenance/runJobs.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.qunit.css
resources/jquery/jquery.qunit.js
resources/mediawiki.action/mediawiki.action.watch.ajax.js [deleted file]
resources/mediawiki.api/mediawiki.api.js
resources/mediawiki.language/languages/ar.js
resources/mediawiki.language/languages/nl.js [deleted file]
resources/mediawiki.language/languages/pt-br.js [deleted file]
resources/mediawiki.language/languages/pt.js [deleted file]
resources/mediawiki.language/mediawiki.language.js
resources/mediawiki.page/mediawiki.page.watch.ajax.js [new file with mode: 0644]
resources/mediawiki.special/mediawiki.special.preferences.js
resources/mediawiki/mediawiki.Uri.js
resources/mediawiki/mediawiki.jqueryMsg.js
resources/mediawiki/mediawiki.js
skins/Chick.php
skins/Modern.php
skins/Vector.php
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/includes/MWNamespaceTest.php
tests/phpunit/includes/SampleTest.php
tests/phpunit/includes/WikiPageTest.php
tests/phpunit/includes/api/ApiBlockTest.php
tests/phpunit/includes/api/ApiTestCase.php
tests/phpunit/includes/api/generateRandomImages.php
tests/phpunit/includes/filerepo/FileBackendTest.php
tests/phpunit/includes/libs/CSSMinTest.php [new file with mode: 0644]
tests/phpunit/includes/libs/JavaScriptMinifierTest.php
tests/phpunit/includes/parser/ParserMethodsTest.php [new file with mode: 0644]
tests/phpunit/includes/upload/UploadFromUrlTest.php
tests/phpunit/maintenance/DumpTestCase.php
tests/phpunit/maintenance/backupPrefetchTest.php
tests/phpunit/maintenance/backupTextPassTest.php
tests/qunit/QUnitTestResources.php
tests/qunit/data/testloader.php
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]

diff --git a/CREDITS b/CREDITS
index 89154a3..fd86da8 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -175,6 +175,7 @@ following names for their contribution to the product.
 * rgcjonas
 * Robert Treat
 * RockMFR
+* Russell Blau
 * Rusty Burchfield
 * Salvatore Ingala
 * Scott Colcord
diff --git a/README b/README
index 48cf336..8275eff 100644 (file)
--- a/README
+++ b/README
@@ -47,7 +47,7 @@ The MediaWiki software was written by:
 * 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
diff --git a/RELEASE-NOTES-1.19 b/RELEASE-NOTES-1.19
deleted file mode 100644 (file)
index 6c7fa6d..0000000
+++ /dev/null
@@ -1,455 +0,0 @@
-= MediaWiki release notes =
-
-Security reminder: MediaWiki does not require PHP's register_globals
-setting since version 1.2.0. If you have it on, turn it '''off''' if you can.
-
-== MediaWiki 1.19 ==
-
-MediaWiki 1.19 is a large release that contains many new features and bug
-fixes. This is a summary of the major changes of interest to users.
-You can consult the RELEASE-NOTES-1.19 file for the full list of changes in
-this version.
-
-Our thanks go to everyone who helped to improve MediaWiki by testing the beta
-release and submitting bug reports.
-
-=== Changes since 1.19 beta 2 ===
-* Special:Watchlist no longer sets links to feed when the user is anonymous.
-* (bug 35961) Hash comparison should always be strict.
-* Fix broken email confirmation expiration caused by MWCryptRand changes.
-* (bug 35671) PHP Notice: Undefined index: gettoken in includes/api/ApiMain.php
-  on line 598.
-* (bug 36042) 'show' causes a fatal in blocks API.
-
-=== Changes since 1.19 beta 1 ===
-* (bug 35014) Including a special page no longer sets the page's title to the
-  included page
-* (bug 35019) Edit summaries are no longer transformed in notification e-mails
-* (bug 35152) Help message for e-mail is shown again in user preferences
-* (bug 34887) $3 and $4 parameters are now substituted correctly in message
-  "movepage-moved"
-* (bug 34841) Edit links are no longer displayed when display old page versions
-* (bug 34889) User name should be normalized on Special:Contributions
-* (bug 35051) If heading has a trailing space after == then its name is not 
-  preloaded into edit summary on section edit
-* (bug 31417) New ID mw-content-text around the actual page text, without categories,
-  contentSub, ... The same div often also contains the class mw-content-ltr/rtl.
-* (bug 35303) Proxy and DNS blacklist blocking works again
-* (bug 22555) Remove or skip strip markers from tag hooks like &lt;nowiki&gt; in 
-  core parser functions which operate on strings, such as padleft.
-* (bug 18295) Don't expose strip markers when a tag appears inside a link 
-  inside a heading.
-* (bug 34212) ApiBlock/ApiUnblock allow action to take place without a token
-  parameter present.
-* (bug 34907) Fixed exposure of tokens through load.php that could have facilitated
-  CSRF attacks.
-* (bug 35317) CSRF in Special:Upload.
-
-=== Configuration changes in 1.19 ===
-* Removed SkinTemplateSetupPageCss hook; use BeforePageDisplay instead.
-* (bug 27132) movefile right granted by default to registered users.
-* Default cookie lifetime ($wgCookieExpiration) is increased to 180 days.
-* (bug 31204) Removed old user.user_options.
-* $wgMaxImageArea now applies to jpeg files if they are not scaled with
-  ImageMagick.
-* Introduced $wgQueryPageDefaultLimit (defaults to 50) for the number of
-  items to show by default on query pages (special pages such as Whatlinkshere).
-* (bug 32470) Increase the length of ug_group.
-* (bug 32239) Removed $wgEnableTooltipsAndAccesskeys.
-* Removed $wgVectorShowVariantName.
-* Removed $wgExtensionAliasesFiles. Use $wgExtensionMessagesFiles.
-* Removed $wgResourceLoaderInlinePrivateModules , now always enabled.
-
-=== New features in 1.19 ===
-* (bug 19838) Add ability to get all interwiki prefixes also if the interwiki
-  cache is used.
-* $wgDnsBlacklistUrls now accepts an array with url and key as the
-  elements to work with DNSBLs that require keys, such as
-  Project Honeypot.
-* (bug 30022) Add support for custom loadScript sources to ResourceLoader.
-* (bug 19052) Unicode space separator characters (Zs) now terminates external
-  links and images links.
-* (bug 30160) Add public method to mw.loader to get module names from registry.
-* (bug 15558) Parameters to special pages included in wikitext can now be passed
-  as with templates.
-* Installer now issues a warning if mod_security is present.
-* (bug 29455) Add support for a filter callback function in jQuery byteLimit
-  plugin.
-* Added two new GetLocalURL hooks to better serve extensions working on a
-  limited type of titles.
-* Added a --no-updates flag to importDump.php that skips updating the links
-  tables.
-* Most presentational html attributes like valign are now converted to inline
-  css style rules. These attributes were removed from html5 and so we clean
-  them up when $wgHtml5 is enabled. This can be disabled using
-  $wgCleanupPresentationalAttributes.
-* Magic words (time and number-formatting ones, plus DIRECTIONMARK, but not
-  NAMESPACE) now depend on the page content language instead of the site
-  language. In theory this sets the right magic words in system messages,
-  although they are not used there.
-* (bug 30451) Add page_props to RefreshLinks::deleteLinksFromNonexistent.
-* (bug 30450) Clear page_props table on page deletion.
-* Hook added to check for exempt from account creation throttle.
-* (bug 30344) Add configuration variable for setting custom priorities when
-  generating sitemaps.
-* (bug 96170) Add array support for space-separated list attributes (like
-  'class') in the Html helper class.
-* (bug 26470) Add checkered background image on hover on files pages.
-* (bug 30774) mediawiki.html: Add support for numbers and booleans in the
-  attribute values and element contents.
-* Conversion script between Tifinagh and Latin for the Tachelhit language.
-* (bug 16755) Add options 'noreplace' and 'noerror' to {{DEFAULTSORT:...}}
-  to stop it from replace an already existing default sort, and suppress error.
-* (bug 18578) Rewrote revision delete related messages to allow better
-  localisation.
-* (bug 30364) LanguageConverter now depends on the page content language
-  instead of the wiki content language.
-* Jump links will now be usable in CSS-capable browsers instead of only
-  in outdated text browsers.
-* New common*.css files usable by skins instead of having to copy piles
-  of generic styles from MonoBook or Vector's css.
-* Some deprecated presentational html attributes will now be automatically
-  converted to css.
-* (bug 31297) Add support for namespaces in Special:RecentChanges subpage filter
-  syntax.
-* The default user signature now contains a talk link in addition to the user link.
-* (bug 25306) Add link of old page title to MediaWiki:Delete_and_move_reason.
-* Added hook BitmapHandlerCheckImageArea.
-* (bug 30062) Add $wgDBprefix option to cli installer.
-* getUserPermissionsErrors and getUserPermissionsErrorsExpensive hooks are now
-  also called when checking for 'read' permission.
-* Introduce $wgEnableSearchContributorsByIP which controls whether searching
-  for an IP address redirects to the contributions list for that IP.
-* (bug 8859) Database::update should take array of tables too.
-* (bug 19698) Add "Inverse namespaces" option to Special:Contributions.
-* (bug 24037) Add byte length of revision to Special:Contributions.
-* (bug 1672) Added $wgDisableUploadScriptChecks to allow uploading of files
-  containing HTML or JS. DISABLING THESE CHECKS IS VERY DANGEROUS.
-* New path mappings can be added using the WebRequestPathInfoRouter hook
-  and adding paths to the PathRouter.
-* (bug 32666) Special:ActiveUsers now allows a subpage to be used as value for the
-  "target" query parameter (eg. Special:ActiveUsers/Username).
-* New JavaScript variable wgPageContentLanguage.
-* Added new debugging toolbar, enabled with $wgDebugToolbar.
-* Differences in the history page now uses slightly better colors for people
-  perceiving colors differently.
-* (bug 32879) Upgrade jQuery to 1.7.1.
-* jQuery UI upgraded to 1.8.17.
-* Extensions can use the 'Language::getMessagesFileName' hook to define new
-  languages using messages files outside of core.
-* (bug 32512) Add 'Associated namespace' checkbox to Special:Contributions.
-* Added $wgSend404Code, true by default, which can be set to false to send a 
-  200 status code instead of 404 for nonexistent articles.
-* (bug 33447) Link to the broken image tracking category from Special:Wantedfiles.
-* (bug 27724) Add timestamp to job queue.
-* (bug 30339) Implement SpecialPage for running javascript tests. Disabled by default, due to
-  tests potentially being harmful, not to be run on a production wiki.
-  Enable by setting $wgEnableJavaScriptTest to true.
-* Extensions can use the RequestContextCreateSkin hook to override what skin is
-  loaded in some contexts.
-* (bug 33456) Show $wgQueryCacheLimit on cached query pages.
-* (bug 10574) Add an option to allow all pages to be exported by Special:Export.
-* mediawiki.js Message object constructor is now publicly available as mw.Message.
-* (bug 29309) Allow CSS class per tooltip (tipsy).
-* (bug 33565) Add accesskey/tooltip to submit buttons on Special:EditWatchlist.
-* (bug 17959) Inline rendering/thumbnailing for Gimp XCF images.
-* (bug 27775) Namespace has it's own XML tag in the XML dump file.
-* (bug 30513) Redirect tag is now resolved in XML dump file.
-* sha1 xml tag added to XML dump file.
-* (bug 33646) Badtitle error page now emits a 400 HTTP status.
-* Special:MovePage now has a dropdown menu for namespaces.
-* (bug 34420) Special:Version now shows git HEAD sha1 when available.
-* (bug 33952) Refactor mw.toolbar to allow dynamic additions at any time.
-
-=== Bug fixes in 1.19 ===
-* $wgUploadNavigationUrl should be used for file redlinks if.
-  $wgUploadMissingFileUrl is not set. The first was used for this
-  until the second was introduced in 1.17.
-* BREAKING CHANGE:  Style rules for wikitable are now more specific and prevent
-  inheritance to nested tables which caused various issues (bug 30485 and bug
-  33434). If your wiki has overriden rules for ".wikitable", please revise them and
-  adjust where neccecary. For comparison, use the "table.wikitable" section in
-  skins/common/shared.css as base.
-* $wgUploadNavigationUrl is now used for file redlinks if
-  $wgUploadMissingFileUrl is not set. The former was used for this until the
-  second was introduced in 1.17.
-* (bug 27894) Move 'editondblclick' event listener down from body to
-  div#bodyContent.
-* (bug 30172) The check for posix_isatty() in maintenance scripts did not detect
-  when the function exists but is disabled. Introduced
-  Maintenance::posix_isatty().
-* (bug 30264) Changed installer-generated LocalSettings.php to use
-  require_once() instead require() for included extensions.
-* Do not convert text in the user interface language to another script.
-* (bug 26283) Previewing user JS/CSS pages didn't load other user JS/CSS pages.
-* (bug 26486) ResourceLoader modules with paths to nonexistent files cause PHP
-  warnings/notices to be thrown.
-* (bug 30335) Fix for HTMLForms using GET that were breaking when non-friendly
-  URLs are used.
-* (bug 28649) Preventing half truncated multi-byte unicode characters when
-  truncating log comments.
-* Show --batch-size option in help of maintenance scripts that support it.
-* (bug 4381) Magic quotes cleaning was not comprehensive, key strings were not
-  unescaped.
-* (bug 23057) Importers no longer can 'edit' or 'create' a fully-protected page by
-  importing a new revision into it.
-* Allow moving the associated talk pages of subpages even if the base page
-  has no subpage.
-* Per page edit-notices now work in namespaces without subpages enabled.
-* (bug 31081) $wgEnotifUseJobQ is no longer unconditionally enqueueing jobs.
-* (bug 30202) File names are now restricted on upload to 240 bytes, because of
-  restrictions on some of the database fields.
-* Timezones are now recognised in user preferences when offset is different
-  due to DST.
-* (bug 31692) "summary" parameter now also works when undoing revisions.
-* (bug 18823) "move succeeded" text displayed bluelinks even when redirect was
-  suppressed.
-* (bug 19186) Special:UserLogin's title on Special:SpecialPages now says
-  "create account" when the user cannot create an account.
-* (bug 31818) 'usercreated' message now supports GENDER.
-* (bug 32022) Our phpunit.php script can now be executed from another directory.
-* (bug 26020) Setting $wgEmailConfirmToEdit to true no longer removes diffs.
-  from recent changes feeds.
-* (bug 30232) add current time to message wlnote on Special:Watchlist.
-* (bug 29110) $wgFeedDiffCutoff did not affect new pages.
-* (bug 32168) Add wfRemoveDotSegments for use in wfExpandUrl.
-* (bug 32358) Do not display "No higher resolution available" for dimensionless
-  files (like audio files).
-* (bug 32168) Add wfAssembleUrl for use in wfExpandUrl.
-* (bug 32168) fixed - wfExpandUrl expands dot segments now.
-* (bug 31535) Upload comments now truncated properly, and don't have brackets.
-* (bug 32086) Special:PermanentLink now show an error message when no subpage
-  was specified.
-* (bug 30368) Special:Newpages now shows the new page name for moved pages.
-* (bug 1697) The way to search blocked usernames in block log should be clearer.
-* (bug 29747) eAccelerator shared memory caching has been removed since it is
-  now disabled by default and is buggy. APC, XCache and WinCache are not affected.
-* Installer now refuses to install if php was not compiled with Ctype support.
-* (bug 29475) Remove "trackback" feature entirely from core.
-* (bug 32665) Special:BlockList prefills the username in the input field if
-  using the Special:BlockList/username URL.
-* (bug 27721) Make JavaScript variables wgSeparatorTransformTable and
-  wgDigitTransformTable depend on page content language so the sort script
-  sorts correctly more often.
-* (bug 32230) Expose wgRedirectedFrom in JavaScript.
-* (bug 31212) History tab not collapsed when the screen is narrow.
-* (bug 15521) Use new section summary when the action of adding a new section
-  also happens to create the page.
-* (bug 32960) Remove EmailAuthenticationTimestamp from database when a
-  email address is removed.
-* (bug 32414) Empty page get a empty bytes attribute in Export/Dump.
-* (bug 33101) Viewing a User or User talk of username resembling IP ending
-  with .xxx causes Internal error.
-* Warning about undefined index in certain situations when $wgLogRestrictions
-  causes the first log type requested to be removed but not the others.
-* Use separate message ('prefixindex-namespace') for title of
-  Special:PrefixIndex rather then re-using Special:AllPages's allinnamespace.
-* (bug 33156) Special:Block now allows you to confirm you want to block yourself
-  when using non-normalized username.
-* (bug 33246) News icon shown for news:// URLs but not for news: URLs.
-* (bug 33305) Make mw.util.addCSS resistant to IE's @font-face bug by setting
-  cssText after DOM insertion.
-* (bug 30711) When adding a new section to a page with section=new, the text is
-  now always added to the current version of the page.
-* (bug 31719) Fix uploads of SVGs exported by Adobe Illustrator by expanding 
-  XML entities correctly.
-* (bug 30914) Embeddable ResourceLoader modules (user.options, user.tokens)
-  should be loaded in <head> for proper dependency resolution.
-* (bug 32702) Removed method Skin::makeGlobalVariablesScript() has been readded
-  for backward compatibility.
-* (bug 31469) Make sure tracking category messages expand variables like
-  {{NAMESPACE}} relative to correct title.
-* (bug 33454) ISO-8601 week-based year number (format character 'o') is now
-  calculated correctly with respect to timezone.
-* (bug 32219) InstantCommons now fetches content from Wikimedia Commons using
-  HTTPS when the local wiki is served over HTTPS.
-* (bug 33525) clearTagHooks doesn't clear function hooks.
-* (bug 33523) Function tag hooks don't appear on Special:Version.
-* Files with IPTC blocks we can't read no longer prevent extraction of exif
-  or other metadata.
-* (bug 33587) Remove action "historysubmit" from history pages.
-* (bug 25800) mw.config wgAction should contain the actually performed action instead
-  of whatever the query value contains.
-* (bug 4438) Add CSS hook for current WikiPage action.
-* (bug 33703) Common border-bottom color for <abbr> should inherit default (text) color.
-* (bug 33819) Display file sizes in appropriate units.
-* (bug 32948) {{REVISIONID}} and related variables are no longer blank after doing
-  a null edit.
-* (bug 33880) $wgUsersNotifiedOnAllChanges should not send e-mail to user who made
-  the edit.
-* (bug 33902) Decoding %2B with mw.Uri.decode results in ' ' instead of +.
-* (bug 33762) QueryPage-based special pages no longer misses *-summary message.
-* Other sizes links are no longer generated for wikis without a 404 thumbnail handler.
-* (bug 29454) Enforce byteLimit for page title input on Special:MovePage.
-* (bug 34114) CSSMin::remap() doesn't respect its $embed parameter.
-* Special:Contributions/newbies now shows the contributions for the user "newbies".
-  New user contributions are obtained using the form or using ?contribs=newbie in URL.
-* It is now possible to delete images that have no corresponding description pages.
-* (bug 33165) GlobalFunctions.php line 1312: Call to a member function
-  getText() on a non-object.
-* (bug 31676) Group dynamically inserted CSS into a single <style> tag, to work
-  around a bug where not all styles were applied in Internet Explorer.
-* (bug 28936, bug 5280) Broken or invalid titles can't be removed from watchlist.
-* (bug 34600) Older skins using useHeadElement=false were broken in 1.18.
-* (bug 34604) [mw.config] wgActionPaths should be an object instead of a numeral
-  array.* (bug 12262) Indents and lists are now aligned
-* (bug 29753) mw.util.tooltipAccessKeyPrefix should be alt-shift for Chrome
-   on Windows
-* (bug 25095) Special:Categories should also include the first relevant item
-   when "from" is filled.
-* (bug 34972) An error occurred while changing your watchlist settings for 
-  [[Special:WhatLinksHere/Example]]
-
-=== API changes in 1.19 ===
-* Made action=edit less likely to return "unknownerror", by returning the actual error
-  message (which may have come from a hook call or similar).
-* (bug 19838) siprop=interwikimap can now use the interwiki cache.
-* (bug 29748) Add API search prefix support.
-* (bug 29684) Set forgotten parameter types in ApiQueryIWLinks.
-* (bug 29685) do not output NULL parentid with list=deletedrevs&drprop=parentid.
-* siprop=interwikimap and siprop=languages can use silanguagecode to have
-  a best effort language name translation. Use CLDR extension for best result.
-* (bug 30230) action=expandtemplates should not silently override invalid title
-  inputs.
-* (bug 18634) Create API to fetch MediaWiki's language fallback tree structure.
-* (bug 26885) Allow show/hide of account blocks, temporary blocks and single IP
-  address blocks for list=blocks.
-* (bug 30591) Add support to only return keys in ApiAllMessages.
-* The API now respects $wgShowHostnames and won't share the hostname in
-  severedby if it's set to false.
-* wlexcludeuser parameter added to ApiFeedWatchlist.
-* (bug 7304) Links on redirect pages no longer cause the redirect page to show
-  up as a redirect to the linked page on Special:Whatlinkshere.
-* (bug 32609) API: Move captchaid/captchaword of action=edit from core
-  to Captcha extension(s).
-* Added 'APIGetDescription' hook.
-* (bug 32688) Paraminfo for parameter "generator" of the query module shows too
-  many types.
-* (bug 32415) Empty page get no size attribute in API output.
-* (bug 31759) Undefined property notice in querypages API.
-* (bug 32495) API should allow purge by pageids.
-* (bug 33147) API examples should explain what they do.
-* (bug 33482) Api incorrectly calls ApiBase::parseMultiValue if allowed
-  values is given as an array.
-* (bug 32948) {{REVISIONID}} and related variables are no longer blank after
-  calling action=purge&forcelinkupdate.
-* (bug 34377) action=watch now parses messages using the correct title instead
-  of "API".
-* (bug 35036) WikiLove messages were not automatically updated in JavaScript
-  after having been changed on-wiki due to a bug in core
-
-=== Languages updated in 1.19 ===
-
-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.
-
-* Canadian English (en-ca) (new).
-* Norwegian (bokmål) (nb) (renamed from no).
-* Uighur (Latin) (ug-latn) was incorrectly marked as right-to-left language.
-* (bug 30217) Make pt-br a fallback of pt.
-* (bug 31193) Set fallback language of Assamese from Bengali to English.
-* Update date format for dsb and hsb: month names need the genitive.
-* (bug 28643) Serbian variant conversion improvements (Nikola Smolenski).
-* (bug 29405, bug 30809) Lower diacritics are invisible in titles in Indic
-  languages Assamese, Bengali, Hindi, Malyalam and Odiya.
-* (bug 32826) Titles in indic languages are partially cut.
-* (bug 33367) Gendered namespaces for Czech.
-* (bug 33014) Language::formatSize()/formatBitrate() should be able to deal
-  with larger numbers (tera-yotta).
-
-=== Other changes in 1.19 ===
-* BREAKING CHANGE: Legacy global array 'ta' and global function 'akeytt' have
-  been removed from wikibits.js.
-* jquery.mwPrototypes module was renamed to jquery.mwExtension.
-* The maintenance script populateSha1.php was renamed to the more concise
-  populateImageSha1.php.
-* The Client-IP header is no longer checked for when trying to resolve a client's
-  real IP address.
-* (bug 22096) Although IE5.x and below was already unsupported officially, stylesheets
-  existing exclusively for IE5.0 and IE5.5 have now been removed (which were in skins
-  'chick' and 'monobook').
-* The constructor for CategoryView has changed, the second parameter is now a
-  Context source and is required.
-* The Title::escape{Local,Full,Canonical}URL methods are deprecated, please use
-  proper html building methods to escape the normal get{...}URL methods instead.
-* The $variant arguments in the Title::get{Local,Full,Link,Canonical}URL methods
-  have been replaced with a secondary query argument.
-* The $variant argument in the hooks for the Title::get{Local,Full,Link,Canonical}URL
-  methods have been removed, the variant is now part of the $query argument.
-* Removed Title::isValidCssJsSubpage(), deprecated since 1.17 in favor of
-  using Title::isCssJsSubpage() or checking Title::isWrongCaseCssJsPage().
-* Support for the deprecated hook MagicWordMagicWords was removed.
-* The Xml::namespaceSelector method has been deprecated, please use
-  Html::namespaceSelector instead (note that the parameters have changed also).
-* (bug 33746) Preload popular ResourceLoader modules (mediawiki.util) as stop-gap
-  for scripts missing dependencies.
-  New configuration variable $wgPreloadJavaScriptMwUtil has been introduced for this
-  (set to false by default for new installations). Set to true if your wiki has a large
-  amount of user/site scripts that are lacking dependency information. In the short to
-  medium term these user/site scripts should be fixed by adding the used modules to the
-  dependencies in the module registry and/or wrapping them in a callback to mw.loader.using.
-
-== Compatibility ==
-
-MediaWiki 1.19 requires PHP 5.2.3. PHP 4 is no longer supported.
-
-MySQL is the recommended DBMS. PostgreSQL or SQLite can also be used, but
-support for them is somewhat less mature. There is experimental support for IBM
-DB2 and Oracle.
-
-The supported versions are:
-
-* MySQL 5.0.2 or later
-* PostgreSQL 8.3 or later
-* SQLite 3.3.7 or later
-* Oracle 9.0.1 or later
-
-== Upgrading ==
-
-1.19 has several database changes since 1.18, and will not work without schema
-updates.
-
-As of 1.19 several JavaScript interfaces that were deprecated or superseeded in
-MediaWiki 1.17, MediaWiki 1.16 or even earlier have been removed. They are
-listed at the top of the "Other changes" list as a "BREAKING CHANGE".
-
-If upgrading from before 1.11, and you are using a wiki as a commons
-repository, make sure that it is updated as well. Otherwise, errors may arise
-due to database schema changes.
-
-If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
-new database fields are filled with data.
-
-If you are upgrading from MediaWiki 1.4.x or earlier, some major database
-changes are made, and there is a slightly higher chance that things could
-break. Don't forget to always back up your database before upgrading!
-
-See the file UPGRADE for more detailed upgrade instructions.
-
-For notes on 1.18.x and older releases, see HISTORY.
-
-== Online documentation ==
-
-Documentation for both end-users and site administrators is available on
-MediaWiki.org, and is covered under the GNU Free Documentation License (except
-for pages that explicitly state that their contents are in the public domain):
-
-       https://www.mediawiki.org/wiki/Documentation
-
-== Mailing list ==
-
-A mailing list is available for MediaWiki user support and discussion:
-
-       https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
-
-A low-traffic announcements-only list is also available:
-
-       https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
-
-It's highly recommended that you sign up for one of these lists if you're
-going to run a public MediaWiki, so you can be notified of security fixes.
-
-== IRC help ==
-
-There's usually someone online in #mediawiki on irc.freenode.net.
index 69a0e87..23b4e78 100644 (file)
@@ -16,7 +16,7 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 
 === Configuration changes in 1.20 ===
 * $wgGitRepositoryViewers defines a mapping from Git remote repository to the
-  Gitweb instance URL used in Special:Version
+  Gitweb instance URL used in Special:Version.
 * `$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.
@@ -36,16 +36,16 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * Introduce a cryptographic random number generator source api for use when
   generating various tokens.
 * (bug 30963) Option on Special:Prefixindex and Special:Allpages to not show redirects.
-* (bug 18062) new message when edit or create the local page of a shared file.
+* (bug 18062) New message when edit or create the local page of a shared file.
 * (bug 22870) Separate interface message when creating a page.
 * (bug 17615) nosummary option should be reassigned on preview/captcha.
-* (bug 34355) add a variable and parser function for the namespace number.
+* (bug 34355) Add a variable and parser function for the namespace number.
 * (bug 35649) Special:Version now shows hashes of extensions checked out from git.
 * (bug 35728) Git revisions are now linked on Special:Version.
 * "Show Changes" on default messages shows now diff against default message text
 * (bug 23006) create #speciale parser function.
 * generateSitemap can now optionally skip redirect pages.
-* (bug 27757) new API command just for retrieving tokens (not page-based)
+* (bug 27757) New API command just for retrieving tokens (not page-based).
 * Added GitViewers hook for extensions using external git repositories to have a web-based
   repository viewer linked to from Special:Version.
 * Memcached debug logs can now be sent to their own file logs by setting
@@ -54,7 +54,7 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
   Special:Version
 * Edit notices can now be translated.
 * (bug 35680) jQuery upgraded to 1.7.2.
-* jQuery UI upgraded to 1.8.19.
+* jQuery UI upgraded to 1.8.21.
 * (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,10 +67,15 @@ 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 1.2.0 to 1.7.0
+* (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.
 
 === Bug fixes in 1.20 ===
 * (bug 30245) Use the correct way to construct a log page title.
@@ -116,11 +121,17 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
 * (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
-  in user language instead of content language
+  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 27283) SqlBagOStuff breaks PostgreSQL transactions.
+* (bug 35727) mw.Api ajax() should put token parameter last.
+* (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.
 
 === API changes in 1.20 ===
 * (bug 34316) Add ability to retrieve maximum upload size from MediaWiki API.
@@ -128,10 +139,10 @@ upgrade PHP if you have not done so prior to upgrading MediaWiki.
   the format parameter.
 * (bug 32384) Allow descending order for list=watchlistraw.
 * (bug 31883) Limit of bkusers of list=blocks and titles of action=query is not documented in API help.
-* (bug 32492) API now allows editing using pageid
-* (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 32492) API now allows editing using pageid.
+* (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
@@ -147,6 +158,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.
@@ -162,6 +174,10 @@ changes to languages because of Bugzilla reports.
 * Removed ./tests/qunit/index.html from core. It wasn't actively maintained and
   has been made obsolete when [[Special:JavaScriptTest/qunit]] was introduced,
   which actually uses ResourceLoader, LocalSettings and the Skin.
+* Removed $wgDBtransactions global. This was only checked in one class
+  and only applies to MyISAM or similar DBs. Those should only be used
+  for archived sites anyway. We can't get edit conflicts on such sites,
+  so the WikiPage code wasn't useful there either.
 
 == Compatibility ==
 
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 eb931d2..03a5cfc 100644 (file)
@@ -1050,16 +1050,12 @@ class Article extends Page {
                } elseif ( $this->getTitle()->getNamespace() === NS_MEDIAWIKI ) {
                        // Use the default message text
                        $text = $this->getTitle()->getDefaultMessageText();
+               } elseif ( $this->getTitle()->quickUserCan( 'create', $this->getContext()->getUser() )
+                       && $this->getTitle()->quickUserCan( 'edit', $this->getContext()->getUser() )
+               ) {
+                       $text = wfMsgNoTrans( 'noarticletext' );
                } else {
-                       $createErrors = $this->getTitle()->getUserPermissionsErrors( 'create', $this->getContext()->getUser() );
-                       $editErrors = $this->getTitle()->getUserPermissionsErrors( 'edit', $this->getContext()->getUser() );
-                       $errors = array_merge( $createErrors, $editErrors );
-
-                       if ( !count( $errors ) ) {
-                               $text = wfMsgNoTrans( 'noarticletext' );
-                       } else {
-                               $text = wfMsgNoTrans( 'noarticletext-nopermission' );
-                       }
+                       $text = wfMsgNoTrans( 'noarticletext-nopermission' );
                }
                $text = "<div class='noarticletext'>\n$text\n</div>";
 
@@ -1373,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;
@@ -1440,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' ) ) .
index e550473..c7fcf93 100644 (file)
  * someone logs in who can be authenticated externally.
  */
 class AuthPlugin {
+
+       /**
+        * @var string
+        */
+       protected $domain;
+
        /**
         * Check whether there exists a user account with the given name.
         * The name will be normalized to MediaWiki's requirements, so
@@ -83,6 +89,19 @@ class AuthPlugin {
                $this->domain = $domain;
        }
 
+       /**
+        * Get the user's domain
+        *
+        * @return string
+        */
+       public function getDomain() {
+               if ( isset( $this->domain ) ) {
+                       return $this->domain;
+               } else {
+                       return 'invaliddomain';
+               }
+       }
+
        /**
         * Check to see if the specific domain is a valid domain.
         *
index 09eea7d..11cf616 100644 (file)
@@ -176,6 +176,7 @@ $wgAutoloadLocalClasses = array(
        'MWException' => 'includes/Exception.php',
        'MWExceptionHandler' => 'includes/Exception.php',
        'MWFunction' => 'includes/MWFunction.php',
+       'MWHookException' => 'includes/Hooks.php',
        'MWHttpRequest' => 'includes/HttpFunctions.php',
        'MWInit' => 'includes/Init.php',
        'MWNamespace' => 'includes/Namespace.php',
@@ -208,6 +209,7 @@ $wgAutoloadLocalClasses = array(
        'ReplacementArray' => 'includes/StringUtils.php',
        'Replacer' => 'includes/StringUtils.php',
        'ReverseChronologicalPager' => 'includes/Pager.php',
+       'RevisionItem' => 'includes/RevisionList.php',
        'RevisionItemBase' => 'includes/RevisionList.php',
        'RevisionListBase' => 'includes/RevisionList.php',
        'Revision' => 'includes/Revision.php',
@@ -248,6 +250,7 @@ $wgAutoloadLocalClasses = array(
        'TitleArrayFromResult' => 'includes/TitleArray.php',
        'ThrottledError' => 'includes/Exception.php',
        'UnlistedSpecialPage' => 'includes/SpecialPage.php',
+       'UploadSourceAdapter' => 'includes/Import.php',
        'UppercaseCollation' => 'includes/Collation.php',
        'User' => 'includes/User.php',
        'UserArray' => 'includes/UserArray.php',
@@ -275,10 +278,12 @@ $wgAutoloadLocalClasses = array(
        'Xml' => 'includes/Xml.php',
        'XmlDumpWriter' => 'includes/Export.php',
        'XmlJsCode' => 'includes/Xml.php',
+       'XMLReader2' => 'includes/Import.php',
        'XmlSelect' => 'includes/Xml.php',
        'XmlTypeCheck' => 'includes/XmlTypeCheck.php',
        'ZhClient' => 'includes/ZhClient.php',
        'ZipDirectoryReader' => 'includes/ZipDirectoryReader.php',
+       'ZipDirectoryReaderError' => 'includes/ZipDirectoryReader.php',
 
        # includes/actions
        'CachedAction' => 'includes/actions/CachedAction.php',
@@ -430,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',
@@ -444,6 +452,7 @@ $wgAutoloadLocalClasses = array(
        'DatabaseSqlite' => 'includes/db/DatabaseSqlite.php',
        'DatabaseSqliteStandalone' => 'includes/db/DatabaseSqlite.php',
        'DatabaseType' => 'includes/db/Database.php',
+       'DBAccessError' => 'includes/db/LBFactory.php',
        'DBConnectionError' => 'includes/db/DatabaseError.php',
        'DBError' => 'includes/db/DatabaseError.php',
        'DBObject' => 'includes/db/DatabaseUtility.php',
@@ -456,7 +465,10 @@ $wgAutoloadLocalClasses = array(
        'Field' => 'includes/db/DatabaseUtility.php',
        'IBM_DB2Blob' => 'includes/db/DatabaseIbm_db2.php',
        'IBM_DB2Field' => 'includes/db/DatabaseIbm_db2.php',
+       'IBM_DB2Helper' => 'includes/db/DatabaseIbm_db2.php',
+       'IBM_DB2Result' => 'includes/db/DatabaseIbm_db2.php',
        'LBFactory' => 'includes/db/LBFactory.php',
+       'LBFactory_Fake' => 'includes/db/LBFactory.php',
        'LBFactory_Multi' => 'includes/db/LBFactory_Multi.php',
        'LBFactory_Simple' => 'includes/db/LBFactory.php',
        'LBFactory_Single' => 'includes/db/LBFactory_Single.php',
@@ -466,16 +478,20 @@ $wgAutoloadLocalClasses = array(
        'LoadMonitor' => 'includes/db/LoadMonitor.php',
        'LoadMonitor_MySQL' => 'includes/db/LoadMonitor.php',
        'LoadMonitor_Null' => 'includes/db/LoadMonitor.php',
+       'MssqlField' => 'includes/db/DatabaseMssql.php',
+       'MssqlResult' => 'includes/db/DatabaseMssql.php',
        'MySQLField' => 'includes/db/DatabaseMysql.php',
        'MySQLMasterPos' => 'includes/db/DatabaseMysql.php',
        'ORAField' => 'includes/db/DatabaseOracle.php',
        'ORAResult' => 'includes/db/DatabaseOracle.php',
-       'ORMIterator' => 'includes/db/ORMIterator',
+       'ORMIterator' => 'includes/db/ORMIterator.php',
        'ORMResult' => 'includes/db/ORMResult.php',
        'ORMRow' => 'includes/db/ORMRow.php',
        'ORMTable' => 'includes/db/ORMTable.php',
        'PostgresField' => 'includes/db/DatabasePostgres.php',
+       'PostgresTransactionState' => 'includes/db/DatabasePostgres.php',
        'ResultWrapper' => 'includes/db/DatabaseUtility.php',
+       'SavepointPostgres' => 'includes/db/DatabasePostgres.php',
        'SQLiteField' => 'includes/db/DatabaseSqlite.php',
 
        # includes/debug
@@ -515,6 +531,7 @@ $wgAutoloadLocalClasses = array(
        'LocalRepo' => 'includes/filerepo/LocalRepo.php',
        'NullRepo' => 'includes/filerepo/NullRepo.php',
        'RepoGroup' => 'includes/filerepo/RepoGroup.php',
+       'TempFileRepo' => 'includes/filerepo/FileRepo.php',
 
        # includes/filerepo/file
        'ArchivedFile' => 'includes/filerepo/file/ArchivedFile.php',
@@ -558,6 +575,8 @@ $wgAutoloadLocalClasses = array(
        'FSLockManager' => 'includes/filerepo/backend/lockmanager/FSLockManager.php',
        'DBLockManager' => 'includes/filerepo/backend/lockmanager/DBLockManager.php',
        'LSLockManager' => 'includes/filerepo/backend/lockmanager/LSLockManager.php',
+       'MemcLockManager' => 'includes/filerepo/backend/lockmanager/MemcLockManager.php',
+       'QuorumLockManager' => 'includes/filerepo/backend/lockmanager/LockManager.php',
        'MySqlLockManager'=> 'includes/filerepo/backend/lockmanager/DBLockManager.php',
        'NullLockManager' => 'includes/filerepo/backend/lockmanager/LockManager.php',
        'FileOp' => 'includes/filerepo/backend/FileOp.php',
@@ -614,7 +633,7 @@ $wgAutoloadLocalClasses = array(
        'DoubleRedirectJob' => 'includes/job/DoubleRedirectJob.php',
        'EmaillingJob' => 'includes/job/EmaillingJob.php',
        'EnotifNotifyJob' => 'includes/job/EnotifNotifyJob.php',
-       'Job' => 'includes/job/JobQueue.php',
+       'Job' => 'includes/job/Job.php',
        'RefreshLinksJob' => 'includes/job/RefreshLinksJob.php',
        'RefreshLinksJob2' => 'includes/job/RefreshLinksJob.php',
        'UploadFromUrlJob' => 'includes/job/UploadFromUrlJob.php',
@@ -626,13 +645,18 @@ $wgAutoloadLocalClasses = array(
 
        # includes/libs
        'CSSJanus' => 'includes/libs/CSSJanus.php',
+       'CSSJanus_Tokenizer' => 'includes/libs/CSSJanus.php',
        'CSSMin' => 'includes/libs/CSSMin.php',
        'HttpStatus' => 'includes/libs/HttpStatus.php',
        'IEContentAnalyzer' => 'includes/libs/IEContentAnalyzer.php',
        'IEUrlExtension' => 'includes/libs/IEUrlExtension.php',
        'JavaScriptMinifier' => 'includes/libs/JavaScriptMinifier.php',
+       'JSCompilerContext' => 'includes/libs/jsminplus.php',
        'JSMinPlus' => 'includes/libs/jsminplus.php',
+       'JSNode' => 'includes/libs/jsminplus.php',
        'JSParser' => 'includes/libs/jsminplus.php',
+       'JSToken' => 'includes/libs/jsminplus.php',
+       'JSTokenizer' => 'includes/libs/jsminplus.php',
 
        # includes/logging
        'DatabaseLogEntry' => 'includes/logging/LogEntry.php',
@@ -675,6 +699,7 @@ $wgAutoloadLocalClasses = array(
        'PNGMetadataExtractor' => 'includes/media/PNGMetadataExtractor.php',
        'SvgHandler' => 'includes/media/SVG.php',
        'SVGMetadataExtractor' => 'includes/media/SVGMetadataExtractor.php',
+       'SVGReader' => 'includes/media/SVGMetadataExtractor.php',
        'ThumbnailImage' => 'includes/media/MediaTransformOutput.php',
        'TiffHandler' => 'includes/media/Tiff.php',
        'TransformParameterError' => 'includes/media/MediaTransformOutput.php',
@@ -715,6 +740,7 @@ $wgAutoloadLocalClasses = array(
        'LinkHolderArray' => 'includes/parser/LinkHolderArray.php',
        'LinkMarkerReplacer' => 'includes/parser/Parser_LinkHooks.php',
        'MWTidy' => 'includes/parser/Tidy.php',
+       'MWTidyWrapper' => 'includes/parser/Tidy.php',
        'PPCustomFrame_DOM' => 'includes/parser/Preprocessor_DOM.php',
        'PPCustomFrame_Hash' => 'includes/parser/Preprocessor_Hash.php',
        'PPCustomFrame_HipHop' => 'includes/parser/Preprocessor_HipHop.hphp',
@@ -786,6 +812,7 @@ $wgAutoloadLocalClasses = array(
        # includes/revisiondelete
        'RevDel_ArchivedFileItem' => 'includes/revisiondelete/RevisionDelete.php',
        'RevDel_ArchivedFileList' => 'includes/revisiondelete/RevisionDelete.php',
+       'RevDel_ArchivedRevisionItem' => 'includes/revisiondelete/RevisionDelete.php',
        'RevDel_ArchiveItem' => 'includes/revisiondelete/RevisionDelete.php',
        'RevDel_ArchiveList' => 'includes/revisiondelete/RevisionDelete.php',
        'RevDel_FileItem' => 'includes/revisiondelete/RevisionDelete.php',
@@ -801,6 +828,7 @@ $wgAutoloadLocalClasses = array(
        'RevisionDeleteUser' => 'includes/revisiondelete/RevisionDeleteUser.php',
 
        # includes/search
+       'MssqlSearchResultSet' => 'includes/search/SearchMssql.php',
        'MySQLSearchResultSet' => 'includes/search/SearchMySQL.php',
        'PostgresSearchResult' => 'includes/search/SearchPostgres.php',
        'PostgresSearchResultSet' => 'includes/search/SearchPostgres.php',
@@ -810,6 +838,7 @@ $wgAutoloadLocalClasses = array(
        'SearchIBM_DB2' => 'includes/search/SearchIBM_DB2.php',
        'SearchMssql' => 'includes/search/SearchMssql.php',
        'SearchMySQL' => 'includes/search/SearchMySQL.php',
+       'SearchNearMatchResultSet' => 'includes/search/SearchEngine.php',
        'SearchOracle' => 'includes/search/SearchOracle.php',
        'SearchPostgres' => 'includes/search/SearchPostgres.php',
        'SearchResult' => 'includes/search/SearchEngine.php',
@@ -827,6 +856,7 @@ $wgAutoloadLocalClasses = array(
        'AncientPagesPage' => 'includes/specials/SpecialAncientpages.php',
        'BlockListPager' => 'includes/specials/SpecialBlockList.php',
        'BrokenRedirectsPage' => 'includes/specials/SpecialBrokenRedirects.php',
+       'CategoryPager' => 'includes/specials/SpecialCategories.php',
        'ContribsPager' => 'includes/specials/SpecialContributions.php',
        'DBLockForm' => 'includes/specials/SpecialLockdb.php',
        'DBUnlockForm' => 'includes/specials/SpecialUnlockdb.php',
@@ -835,11 +865,14 @@ $wgAutoloadLocalClasses = array(
        'DeletedContributionsPage' => 'includes/specials/SpecialDeletedContributions.php',
        'DisambiguationsPage' => 'includes/specials/SpecialDisambiguations.php',
        'DoubleRedirectsPage' => 'includes/specials/SpecialDoubleRedirects.php',
+       'EditWatchlistCheckboxSeriesField' => 'includes/specials/SpecialEditWatchlist.php',
+       'EditWatchlistNormalHTMLForm' => 'includes/specials/SpecialEditWatchlist.php',
        'EmailConfirmation' => 'includes/specials/SpecialConfirmemail.php',
        'EmailInvalidation' => 'includes/specials/SpecialConfirmemail.php',
        'FewestrevisionsPage' => 'includes/specials/SpecialFewestrevisions.php',
        'FileDuplicateSearchPage' => 'includes/specials/SpecialFileDuplicateSearch.php',
        'HTMLBlockedUsersItemSelect' => 'includes/specials/SpecialBlockList.php',
+       'ImageListPager' => 'includes/specials/SpecialListfiles.php',
        'ImportReporter' => 'includes/specials/SpecialImport.php',
        'IPBlockForm' => 'includes/specials/SpecialBlock.php',
        'LinkSearchPage' => 'includes/specials/SpecialLinkSearch.php',
@@ -847,6 +880,7 @@ $wgAutoloadLocalClasses = array(
        'LoginForm' => 'includes/specials/SpecialUserlogin.php',
        'LonelyPagesPage' => 'includes/specials/SpecialLonelypages.php',
        'LongPagesPage' => 'includes/specials/SpecialLongpages.php',
+       'MergeHistoryPager' => 'includes/specials/SpecialMergeHistory.php',
        'MIMEsearchPage' => 'includes/specials/SpecialMIMEsearch.php',
        'MostcategoriesPage' => 'includes/specials/SpecialMostcategories.php',
        'MostimagesPage' => 'includes/specials/SpecialMostimages.php',
@@ -855,9 +889,12 @@ $wgAutoloadLocalClasses = array(
        'MostlinkedTemplatesPage' => 'includes/specials/SpecialMostlinkedtemplates.php',
        'MostrevisionsPage' => 'includes/specials/SpecialMostrevisions.php',
        'MovePageForm' => 'includes/specials/SpecialMovepage.php',
+       'NewFilesPager' => 'includes/specials/SpecialNewimages.php',
        'NewPagesPager' => 'includes/specials/SpecialNewpages.php',
        'PageArchive' => 'includes/specials/SpecialUndelete.php',
        'PopularPagesPage' => 'includes/specials/SpecialPopularpages.php',
+       'ProtectedPagesPager' => 'includes/specials/SpecialProtectedpages.php',
+       'ProtectedTitlesPager' => 'includes/specials/SpecialProtectedtitles.php',
        'RandomPage' => 'includes/specials/SpecialRandompage.php',
        'ShortPagesPage' => 'includes/specials/SpecialShortpages.php',
        'SpecialActiveUsers' => 'includes/specials/SpecialActiveusers.php',
@@ -908,10 +945,11 @@ $wgAutoloadLocalClasses = array(
        'SpecialUnlockdb' => 'includes/specials/SpecialUnlockdb.php',
        'SpecialUpload' => 'includes/specials/SpecialUpload.php',
        'SpecialUploadStash' => 'includes/specials/SpecialUploadStash.php',
+       'SpecialUploadStashTooLargeException' => 'includes/specials/SpecialUploadStash.php',
        'SpecialUserlogout' => 'includes/specials/SpecialUserlogout.php',
        'SpecialVersion' => 'includes/specials/SpecialVersion.php',
        'SpecialWatchlist' => 'includes/specials/SpecialWatchlist.php',
-       'SpecialWhatlinkshere' => 'includes/specials/SpecialWhatlinkshere.php',
+       'SpecialWhatLinksHere' => 'includes/specials/SpecialWhatlinkshere.php',
        'UncategorizedCategoriesPage' => 'includes/specials/SpecialUncategorizedcategories.php',
        'UncategorizedImagesPage' => 'includes/specials/SpecialUncategorizedimages.php',
        'UncategorizedPagesPage' => 'includes/specials/SpecialUncategorizedpages.php',
@@ -920,6 +958,8 @@ $wgAutoloadLocalClasses = array(
        'UnusedimagesPage' => 'includes/specials/SpecialUnusedimages.php',
        'UnusedtemplatesPage' => 'includes/specials/SpecialUnusedtemplates.php',
        'UnwatchedpagesPage' => 'includes/specials/SpecialUnwatchedpages.php',
+       'UploadChunkFileException' => 'includes/upload/UploadFromChunks.php',
+       'UploadChunkZeroLengthFileException' => 'includes/upload/UploadFromChunks.php',
        'UploadForm' => 'includes/specials/SpecialUpload.php',
        'UploadSourceField' => 'includes/specials/SpecialUpload.php',
        'UserrightsPage' => 'includes/specials/SpecialUserrights.php',
@@ -954,6 +994,7 @@ $wgAutoloadLocalClasses = array(
        'UploadStashNoSuchKeyException' => 'includes/upload/UploadStash.php',
 
        # languages
+       'ConverterRule' => 'languages/LanguageConverter.php',
        'FakeConverter' => 'languages/Language.php',
        'Language' => 'languages/Language.php',
        'LanguageConverter' => 'languages/LanguageConverter.php',
@@ -983,6 +1024,7 @@ $wgAutoloadLocalClasses = array(
 
        # maintenance/language
        'csvStatsOutput' => 'maintenance/language/StatOutputs.php',
+       'extensionLanguages' => 'maintenance/language/languages.inc',
        'languages' => 'maintenance/language/languages.inc',
        'MessageWriter' => 'maintenance/language/writeMessagesArray.inc',
        'statsOutput' => 'maintenance/language/StatOutputs.php',
@@ -995,17 +1037,21 @@ $wgAutoloadLocalClasses = array(
 
        # mw-config
        'InstallerOverrides' => 'mw-config/overrides.php',
+       'MyLocalSettingsGenerator' => 'mw-config/overrides.php',
 
        # tests
        'DbTestPreviewer' => 'tests/testHelpers.inc',
        'DbTestRecorder' => 'tests/testHelpers.inc',
+       'DelayedParserTest' => 'tests/testHelpers.inc',
        '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',
-       'ParserTestStaticParserHook' => 'tests/parser/parserTestsStaticParserHook.php',
 
        # tests/selenium
        'Selenium' => 'tests/selenium/Selenium.php',
@@ -1016,6 +1062,23 @@ $wgAutoloadLocalClasses = array(
        'SeleniumTestListener' => 'tests/selenium/SeleniumTestListener.php',
        'SeleniumTestSuite' => 'tests/selenium/SeleniumTestSuite.php',
        'SeleniumConfig' => 'tests/selenium/SeleniumConfig.php',
+
+       # skins
+       'CologneBlueTemplate' => 'skins/CologneBlue.php',
+       'ModernTemplate' => 'skins/Modern.php',
+       'MonoBookTemplate' => 'skins/MonoBook.php',
+       'NostalgiaTemplate' => 'skins/Nostalgia.php',
+       'SkinChick' => 'skins/Chick.php',
+       'SkinCologneBlue' => 'skins/CologneBlue.php',
+       'SkinModern' => 'skins/Modern.php',
+       'SkinMonoBook' => 'skins/MonoBook.php',
+       'SkinMySkin' => 'skins/MySkin.php',
+       'SkinNostalgia' => 'skins/Nostalgia.php',
+       'SkinSimple' => 'skins/Simple.php',
+       'SkinStandard' => 'skins/Standard.php',
+       'SkinVector' => 'skins/Vector.php',
+       'StandardTemplate' => 'skins/Standard.php',
+       'VectorTemplate' => 'skins/Vector.php',
 );
 
 class AutoLoader {
index d280c9a..e5be12d 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();
                        }
                }
        }
@@ -199,22 +199,29 @@ 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();
+               }
+
                $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 +241,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 +285,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";
@@ -358,7 +388,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 +399,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 +415,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 +429,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 +453,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 {
@@ -588,9 +618,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 +644,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 +696,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 +744,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 +793,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'] );
@@ -875,9 +904,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 +924,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 +938,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 +999,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 +1060,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 +1113,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 +1123,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() );
        }
 
        /**
@@ -1162,16 +1192,19 @@ 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 );
-                       $r .= $this->insertRollback( $r, $rcObj );
+                       $this->insertRollback( $r, $rcObj );
                }
 
                # Tags
index c2606ce..35ae6bd 100644 (file)
@@ -1381,9 +1381,6 @@ $wgDBClusterTimeout = 10;
  */
 $wgDBAvgStatusPoll = 2000;
 
-/** Set to true if using InnoDB tables */
-$wgDBtransactions = false;
-
 /**
  * Set to true to engage MySQL 4.1/5.0 charset-related features;
  * for now will just cause sending of 'SET NAMES=utf8' on connect.
@@ -4189,6 +4186,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..502f2ad 100644 (file)
@@ -292,7 +292,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 +463,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..18343f3 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;
@@ -210,7 +212,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 f838ad0..9745b9a 100644 (file)
@@ -99,6 +99,7 @@ class MagicWord {
                'numberoffiles',
                'numberofedits',
                'articlepath',
+               'pageid',
                'sitename',
                'server',
                'servername',
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 35b2f38..d0545da 100644 (file)
@@ -2470,7 +2470,7 @@ $templates
                        wfRunHooks( 'AjaxAddScript', array( &$this ) );
 
                        if( $wgAjaxWatch && $this->getUser()->isLoggedIn() ) {
-                               $this->addModules( 'mediawiki.action.watch.ajax' );
+                               $this->addModules( 'mediawiki.page.watch.ajax' );
                        }
 
                        if ( $wgEnableMWSuggest && !$this->getUser()->getOption( 'disablesuggest', false ) ) {
@@ -2512,13 +2512,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 +2537,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 +2558,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 +2582,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 +2603,7 @@ $templates
                        }
 
                        // If there are no modules left, skip this group
-                       if ( $modules === array() ) {
+                       if ( count( $grpModules ) === 0 ) {
                                continue;
                        }
 
@@ -2612,12 +2614,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 +2635,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 +2643,7 @@ $templates
                        }
 
                        $url = ResourceLoader::makeLoaderURL(
-                               array_keys( $modules ),
+                               array_keys( $grpModules ),
                                $this->getLanguage()->getCode(),
                                $this->getSkin()->getSkinName(),
                                $user,
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 6b8aabc..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() )
                );
        }
@@ -395,6 +422,29 @@ class Revision {
                return array( 'user_name' );
        }
 
+       /**
+        * Do a batched query to get the parent revision lengths
+        * @param $db DatabaseBase
+        * @param $revIds Array
+        * @return array
+        */
+       public static function getParentLengths( $db, array $revIds ) {
+               $revLens = array();
+               if ( !$revIds ) {
+                       return $revLens; // empty
+               }
+               wfProfileIn( __METHOD__ );
+               $res = $db->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;
+       }
+
        /**
         * Constructor
         *
@@ -811,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;
@@ -826,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;
@@ -956,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 );
@@ -975,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 ) {
@@ -1025,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__
                );
@@ -1249,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 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 aee2e83..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() );
                */
@@ -272,20 +272,20 @@ class SkinTemplate extends Skin {
                $tpl->setRef( 'logopath', $wgLogo );
                $tpl->setRef( 'sitename', $wgSitename );
 
-               $lang = $this->getLanguage();
-               $userlang = $lang->getHtmlCode();
-               $userdir  = $lang->getDir();
+               $userLang = $this->getLanguage();
+               $userLangCode = $userLang->getHtmlCode();
+               $userLangDir  = $userLang->getDir();
 
-               $tpl->set( 'lang', $userlang );
-               $tpl->set( 'dir', $userdir );
-               $tpl->set( 'rtl', $lang->isRTL() );
+               $tpl->set( 'lang', $userLangCode );
+               $tpl->set( 'dir', $userLangDir );
+               $tpl->set( 'rtl', $userLang->isRTL() );
 
-               $tpl->set( 'capitalizeallnouns', $lang->capitalizeAllNouns() ? ' capitalize-all-nouns' : '' );
+               $tpl->set( 'capitalizeallnouns', $userLang->capitalizeAllNouns() ? ' capitalize-all-nouns' : '' );
                $tpl->set( 'showjumplinks', $user->getOption( 'showjumplinks' ) );
                $tpl->set( 'username', $this->loggedin ? $this->username : null );
                $tpl->setRef( 'userpage', $this->userpage );
                $tpl->setRef( 'userpageurl', $this->userpageUrlDetails['href'] );
-               $tpl->set( 'userlang', $userlang );
+               $tpl->set( 'userlang', $userLangCode );
 
                // Users can have their language set differently than the
                // content of the wiki. For these users, tell the web browser
@@ -293,9 +293,9 @@ class SkinTemplate extends Skin {
                $tpl->set( 'userlangattributes', '' );
                $tpl->set( 'specialpageattributes', '' ); # obsolete
 
-               if ( $userlang !== $wgContLang->getHtmlCode() || $userdir !== $wgContLang->getDir() ) {
-                       $escUserlang = htmlspecialchars( $userlang );
-                       $escUserdir = htmlspecialchars( $userdir );
+               if ( $userLangCode !== $wgContLang->getHtmlCode() || $userLangDir !== $wgContLang->getDir() ) {
+                       $escUserlang = htmlspecialchars( $userLangCode );
+                       $escUserdir = htmlspecialchars( $userLangDir );
                        // Attributes must be in double quotes because htmlspecialchars() doesn't
                        // escape single quotes
                        $attrs = " lang=\"$escUserlang\" dir=\"$escUserdir\"";
@@ -322,13 +322,13 @@ class SkinTemplate extends Skin {
                                        }
                                }
 
-                               if( $wgPageShowWatchingUsers ) {
+                               if ( $wgPageShowWatchingUsers ) {
                                        $dbr = wfGetDB( DB_SLAVE );
                                        $num = $dbr->selectField( 'watchlist', 'COUNT(*)',
                                                array( 'wl_title' => $title->getDBkey(), 'wl_namespace' => $title->getNamespace() ),
                                                __METHOD__
                                        );
-                                       if( $num > 0 ) {
+                                       if ( $num > 0 ) {
                                                $tpl->set( 'numberofwatchingusers',
                                                        $this->msg( 'number_of_watching_users_pageview' )->numParams( $num )->parse()
                                                );
@@ -404,7 +404,7 @@ class SkinTemplate extends Skin {
                # when the content is different from the UI language, i.e.:
                # not for special pages or file pages AND only when viewing AND if the page exists
                # (or is in MW namespace, because that has default content)
-               if( !in_array( $title->getNamespace(), array( NS_SPECIAL, NS_FILE ) ) &&
+               if ( !in_array( $title->getNamespace(), array( NS_SPECIAL, NS_FILE ) ) &&
                        in_array( $request->getVal( 'action', 'view' ), array( 'view', 'historysubmit' ) ) &&
                        ( $title->exists() || $title->getNamespace() == NS_MEDIAWIKI ) ) {
                        $pageLang = $title->getPageLanguage();
@@ -426,10 +426,15 @@ class SkinTemplate extends Skin {
                                unset( $tmp );
                                $nt = Title::newFromText( $l );
                                if ( $nt ) {
+                                       $ilLangName = Language::fetchLanguageName( $nt->getInterwiki() );
+                                       if ( strval( $ilLangName ) === '' ) {
+                                               $ilLangName = $l;
+                                       } else {
+                                               $ilLangName = $this->getLanguage()->ucfirst( $ilLangName );
+                                       }
                                        $language_urls[] = array(
                                                'href' => $nt->getFullURL(),
-                                               'text' => ( Language::fetchLanguageName( $nt->getInterwiki() ) != '' ?
-                                                                       Language::fetchLanguageName( $nt->getInterwiki() ) : $l ),
+                                               'text' => $ilLangName,
                                                'title' => $nt->getText(),
                                                'class' => $class,
                                                'lang' => $nt->getInterwiki(),
@@ -438,7 +443,7 @@ class SkinTemplate extends Skin {
                                }
                        }
                }
-               if( count( $language_urls ) ) {
+               if ( count( $language_urls ) ) {
                        $tpl->setRef( 'language_urls', $language_urls );
                } else {
                        $tpl->set( 'language_urls', false );
@@ -617,13 +622,13 @@ class SkinTemplate extends Skin {
                        $loginlink = $this->getUser()->isAllowed( 'createaccount' ) && $useCombinedLoginLink
                                ? 'nav-login-createaccount'
                                : 'login';
-                       $is_signup = $request->getText('type') == "signup";
+                       $is_signup = $request->getText( 'type' ) == 'signup';
 
                        # anonlogin & login are the same
                        $login_url = array(
                                'text' => $this->msg( $loginlink )->text(),
                                'href' => self::makeSpecialUrl( 'Userlogin', $returnto ),
-                               'active' => $title->isSpecial( 'Userlogin' ) && ( $loginlink == "nav-login-createaccount" || !$is_signup )
+                               'active' => $title->isSpecial( 'Userlogin' ) && ( $loginlink == 'nav-login-createaccount' || !$is_signup )
                        );
                        if ( $this->getUser()->isAllowed( 'createaccount' ) && !$useCombinedLoginLink ) {
                                $createaccount_url = array(
@@ -639,9 +644,9 @@ class SkinTemplate extends Skin {
                                $login_url['href']  = $https_url;
                                # @todo FIXME: Class depends on skin
                                $login_url['class'] = 'link-https';
-                               if ( isset($createaccount_url) ) {
+                               if ( isset( $createaccount_url ) ) {
                                        $https_url = preg_replace( '/^http:/', 'https:',
-                                               $title->getFullURL("type=signup") );
+                                               $title->getFullURL( 'type=signup' ) );
                                        $createaccount_url['href']  = $https_url;
                                        # @todo FIXME: Class depends on skin
                                        $createaccount_url['class'] = 'link-https';
@@ -701,9 +706,9 @@ class SkinTemplate extends Skin {
                // wfMessageFallback will nicely accept $message as an array of fallbacks
                // or just a single key
                $msg = wfMessageFallback( $message )->setContext( $this->getContext() );
-               if ( is_array($message) ) {
+               if ( is_array( $message ) ) {
                        // for hook compatibility just keep the last message name
-                       $message = end($message);
+                       $message = end( $message );
                }
                if ( $msg->exists() ) {
                        $text = $msg->text();
@@ -788,8 +793,9 @@ class SkinTemplate extends Skin {
 
                wfProfileIn( __METHOD__ );
 
-               $title = $this->getRelevantTitle(); // Display tabs for the relevant title rather than always the title itself
-               $onPage = $title->equals($this->getTitle());
+               // Display tabs for the relevant title rather than always the title itself
+               $title = $this->getRelevantTitle();
+               $onPage = $title->equals( $this->getTitle() );
 
                $out = $this->getOutput();
                $request = $this->getRequest();
@@ -833,7 +839,7 @@ class SkinTemplate extends Skin {
                        // Adds namespace links
                        $subjectMsg = array( "nstab-$subjectId" );
                        if ( $subjectPage->isMainPage() ) {
-                               array_unshift($subjectMsg, 'mainpage-nstab');
+                               array_unshift( $subjectMsg, 'mainpage-nstab' );
                        }
                        $content_navigation['namespaces'][$subjectId] = $this->tabAction(
                                $subjectPage, $subjectMsg, !$isTalk && !$preventActiveTabs, '', $userCanRead
@@ -850,9 +856,10 @@ class SkinTemplate extends Skin {
                                        $content_navigation['views']['view'] = $this->tabAction(
                                                $isTalk ? $talkPage : $subjectPage,
                                                array( "$skname-view-view", 'view' ),
-                                               ( $onPage && ($action == 'view' || $action == 'purge' ) ), '', true
+                                               ( $onPage && ( $action == 'view' || $action == 'purge' ) ), '', true
                                        );
-                                       $content_navigation['views']['view']['redundant'] = true; // signal to hide this from simple content_actions
+                                       // signal to hide this from simple content_actions
+                                       $content_navigation['views']['view']['redundant'] = true;
                                }
 
                                wfProfileIn( __METHOD__ . '-edit' );
@@ -870,14 +877,14 @@ class SkinTemplate extends Skin {
                                        $section = $request->getVal( 'section' );
 
                                        $msgKey = $title->exists() || ( $title->getNamespace() == NS_MEDIAWIKI && $title->getDefaultMessageText() !== false ) ?
-                                               "edit" : "create";
+                                               'edit' : 'create';
                                        $content_navigation['views']['edit'] = array(
                                                'class' => ( $isEditing && ( $section !== 'new' || !$showNewSection ) ? 'selected' : '' ) . $isTalkClass,
                                                'text' => wfMessageFallback( "$skname-view-$msgKey", $msgKey )->setContext( $this->getContext() )->text(),
                                                'href' => $title->getLocalURL( $this->editUrlOptions() ),
                                                'primary' => true, // don't collapse this in vector
                                        );
-                                       
+
                                        // section link
                                        if ( $showNewSection ) {
                                                // Adds new section link
@@ -931,7 +938,7 @@ class SkinTemplate extends Skin {
                                        // article doesn't exist or is deleted
                                        if ( $user->isAllowed( 'deletedhistory' ) ) {
                                                $n = $title->isDeleted();
-                                               if( $n ) {
+                                               if ( $n ) {
                                                        $undelTitle = SpecialPage::getTitleFor( 'Undelete' );
                                                        // If the user can't undelete but can view deleted history show them a "View .. deleted" tab instead
                                                        $msgKey = $user->isAllowed( 'undelete' ) ? 'undelete' : 'viewdeleted';
@@ -967,11 +974,12 @@ 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,
-                                               'text' => $this->msg( $mode )->text(), // uses 'watch' or 'unwatch' message
+                                               // uses 'watch' or 'unwatch' message
+                                               'text' => $this->msg( $mode )->text(),
                                                'href' => $title->getLocalURL( array( 'action' => $mode, 'token' => $token ) )
                                        );
                                }
@@ -985,8 +993,8 @@ class SkinTemplate extends Skin {
                                $variants = $pageLang->getVariants();
                                // Checks that language conversion is enabled and variants exist
                                // And if it is not in the special namespace
-                               if( count( $variants ) > 1 ) {
-                                       // Gets preferred variant (note that user preference is 
+                               if ( count( $variants ) > 1 ) {
+                                       // Gets preferred variant (note that user preference is
                                        // only possible for wiki content language variant)
                                        $preferred = $pageLang->getPreferredVariant();
                                        // Loops over each variant
@@ -1014,7 +1022,7 @@ class SkinTemplate extends Skin {
                        $content_navigation['namespaces']['special'] = array(
                                'class' => 'selected',
                                'text' => $this->msg( 'nstab-special' )->text(),
-                               'href' => $request->getRequestURL(), // @bug 2457, 2510
+                               'href' => $request->getRequestURL(), // @see: bug 2457, bug 2510
                                'context' => 'subject'
                        );
 
@@ -1033,7 +1041,7 @@ class SkinTemplate extends Skin {
                                        $xmlID = 'ca-nstab-' . $xmlID;
                                } elseif ( isset( $link['context'] ) && $link['context'] == 'talk' ) {
                                        $xmlID = 'ca-talk';
-                               } elseif ( $section == "variants" ) {
+                               } elseif ( $section == 'variants' ) {
                                        $xmlID = 'ca-varlang-' . $xmlID;
                                } else {
                                        $xmlID = 'ca-' . $xmlID;
@@ -1048,14 +1056,14 @@ class SkinTemplate extends Skin {
                # give the edit tab an accesskey, because that's fairly su-
                # perfluous and conflicts with an accesskey (Ctrl-E) often
                # used for editing in Safari.
-               if( in_array( $action, array( 'edit', 'submit' ) ) ) {
-                       if ( isset($content_navigation['views']['edit']) ) {
+               if ( in_array( $action, array( 'edit', 'submit' ) ) ) {
+                       if ( isset( $content_navigation['views']['edit'] ) ) {
                                $content_navigation['views']['edit']['tooltiponly'] = true;
                        }
-                       if ( isset($content_navigation['actions']['watch']) ) {
+                       if ( isset( $content_navigation['actions']['watch'] ) ) {
                                $content_navigation['actions']['watch']['tooltiponly'] = true;
                        }
-                       if ( isset($content_navigation['actions']['unwatch']) ) {
+                       if ( isset( $content_navigation['actions']['unwatch'] ) ) {
                                $content_navigation['actions']['unwatch']['tooltiponly'] = true;
                        }
                }
@@ -1084,7 +1092,7 @@ class SkinTemplate extends Skin {
 
                        foreach ( $links as $key => $value ) {
 
-                               if ( isset($value["redundant"]) && $value["redundant"] ) {
+                               if ( isset( $value['redundant'] ) && $value['redundant'] ) {
                                        // Redundant tabs are dropped from content_actions
                                        continue;
                                }
@@ -1093,11 +1101,11 @@ class SkinTemplate extends Skin {
                                // so the xmlID based id is much closer to the actual $key that we want
                                // for that reason we'll just strip out the ca- if present and use
                                // the latter potion of the "id" as the $key
-                               if ( isset($value["id"]) && substr($value["id"], 0, 3) == "ca-" ) {
-                                       $key = substr($value["id"], 3);
+                               if ( isset( $value['id'] ) && substr( $value['id'], 0, 3 ) == 'ca-' ) {
+                                       $key = substr( $value['id'], 3 );
                                }
 
-                               if ( isset($content_actions[$key]) ) {
+                               if ( isset( $content_actions[$key] ) ) {
                                        wfDebug( __METHOD__ . ": Found a duplicate key for $key while flattening content_navigation into content_actions." );
                                        continue;
                                }
@@ -1148,7 +1156,7 @@ class SkinTemplate extends Skin {
 
                // A print stylesheet is attached to all pages, but nobody ever
                // figures that out. :)  Add a link...
-               if( $out->isArticle() ) {
+               if ( $out->isArticle() ) {
                        if ( !$out->isPrintable() ) {
                                $nav_urls['print'] = array(
                                        'text' => $this->msg( 'printableversion' )->text(),
@@ -1417,7 +1425,7 @@ abstract class BaseTemplate extends QuickTemplate {
                }
                if ( isset( $this->data['nav_urls']['permalink'] ) && $this->data['nav_urls']['permalink'] ) {
                        $toolbox['permalink'] = $this->data['nav_urls']['permalink'];
-                       if( $toolbox['permalink']['href'] === '' ) {
+                       if ( $toolbox['permalink']['href'] === '' ) {
                                unset( $toolbox['permalink']['href'] );
                                $toolbox['ispermalink']['tooltiponly'] = true;
                                $toolbox['ispermalink']['id'] = 't-ispermalink';
@@ -1443,20 +1451,24 @@ abstract class BaseTemplate extends QuickTemplate {
         */
        function getPersonalTools() {
                $personal_tools = array();
-               foreach( $this->data['personal_urls'] as $key => $ptool ) {
+               foreach ( $this->data['personal_urls'] as $key => $plink ) {
                        # The class on a personal_urls item is meant to go on the <a> instead
                        # of the <li> so we have to use a single item "links" array instead
-                       # of using most of the personal_url's keys directly
-                       $personal_tools[$key] = array();
-                       $personal_tools[$key]["links"][] = array();
-                       $personal_tools[$key]["links"][0]["single-id"] = $personal_tools[$key]["id"] = "pt-$key";
-                       if ( isset($ptool["active"]) ) {
-                               $personal_tools[$key]["active"] = $ptool["active"];
+                       # of using most of the personal_url's keys directly.
+                       $ptool = array(
+                               'links' => array(
+                                       array( 'single-id' => "pt-$key" ),
+                               ),
+                               'id' => "pt-$key",
+                       );
+                       if ( isset( $plink['active'] ) ) {
+                               $ptool['active'] = $plink['active'];
                        }
-                       foreach ( array("href", "class", "text") as $k ) {
-                               if ( isset($ptool[$k]) )
-                                       $personal_tools[$key]["links"][0][$k] = $ptool[$k];
+                       foreach ( array( 'href', 'class', 'text' ) as $k ) {
+                               if ( isset( $plink[$k] ) )
+                                       $ptool['links'][0][$k] = $plink[$k];
                        }
+                       $personal_tools[$key] = $ptool;
                }
                return $personal_tools;
        }
@@ -1473,7 +1485,7 @@ abstract class BaseTemplate extends QuickTemplate {
                if ( !isset( $sidebar['LANGUAGES'] ) ) {
                        $sidebar['LANGUAGES'] = true;
                }
-               
+
                if ( !isset( $options['search'] ) || $options['search'] !== true ) {
                        unset( $sidebar['SEARCH'] );
                }
@@ -1483,7 +1495,7 @@ abstract class BaseTemplate extends QuickTemplate {
                if ( isset( $options['languages'] ) && $options['languages'] === false ) {
                        unset( $sidebar['LANGUAGES'] );
                }
-               
+
                $boxes = array();
                foreach ( $sidebar as $boxName => $content ) {
                        if ( $content === false ) {
@@ -1493,7 +1505,7 @@ abstract class BaseTemplate extends QuickTemplate {
                        case 'SEARCH':
                                // Search is a special case, skins should custom implement this
                                $boxes[$boxName] = array(
-                                       'id'        => "p-search",
+                                       'id'        => 'p-search',
                                        'header'    => $this->getMsg( 'search' )->text(),
                                        'generated' => false,
                                        'content'   => true,
@@ -1502,7 +1514,7 @@ abstract class BaseTemplate extends QuickTemplate {
                        case 'TOOLBOX':
                                $msgObj = $this->getMsg( 'toolbox' );
                                $boxes[$boxName] = array(
-                                       'id'        => "p-tb",
+                                       'id'        => 'p-tb',
                                        'header'    => $msgObj->exists() ? $msgObj->text() : 'toolbox',
                                        'generated' => false,
                                        'content'   => $this->getToolbox(),
@@ -1512,12 +1524,12 @@ abstract class BaseTemplate extends QuickTemplate {
                                if ( $this->data['language_urls'] ) {
                                        $msgObj = $this->getMsg( 'otherlanguages' );
                                        $boxes[$boxName] = array(
-                                               'id'        => "p-lang",
+                                               'id'        => 'p-lang',
                                                'header'    => $msgObj->exists() ? $msgObj->text() : 'otherlanguages',
                                                'generated' => false,
                                                'content'   => $this->data['language_urls'],
                                        );
-                               } 
+                               }
                                break;
                        default:
                                $msgObj = $this->getMsg( $boxName );
@@ -1530,7 +1542,7 @@ abstract class BaseTemplate extends QuickTemplate {
                                break;
                        }
                }
-               
+
                // HACK: Compatibility with extensions still using SkinTemplateToolboxEnd
                $hookContents = null;
                if ( isset( $boxes['TOOLBOX'] ) ) {
@@ -1545,17 +1557,17 @@ abstract class BaseTemplate extends QuickTemplate {
                        }
                }
                // END hack
-               
+
                if ( isset( $options['htmlOnly'] ) && $options['htmlOnly'] === true ) {
                        foreach ( $boxes as $boxName => $box ) {
                                if ( is_array( $box['content'] ) ) {
-                                       $content = "<ul>";
+                                       $content = '<ul>';
                                        foreach ( $box['content'] as $key => $val ) {
                                                $content .= "\n " . $this->makeListItem( $key, $val );
                                        }
                                        // HACK, shove the toolbox end onto the toolbox if we're rendering itself
                                        if ( $hookContents ) {
-                                               $content .= "\n $hookContents"; 
+                                               $content .= "\n $hookContents";
                                        }
                                        // END hack
                                        $content .= "\n</ul>\n";
@@ -1565,7 +1577,7 @@ abstract class BaseTemplate extends QuickTemplate {
                } else {
                        if ( $hookContents ) {
                                $boxes['TOOLBOXEND'] = array(
-                                       'id'        => "p-toolboxend",
+                                       'id'        => 'p-toolboxend',
                                        'header'    => $boxes['TOOLBOX']['header'],
                                        'generated' => false,
                                        'content'   => "<ul>{$hookContents}</ul>",
@@ -1585,7 +1597,7 @@ abstract class BaseTemplate extends QuickTemplate {
                                // END hack
                        }
                }
-               
+
                return $boxes;
        }
 
@@ -1863,8 +1875,8 @@ abstract class BaseTemplate extends QuickTemplate {
         * body and html tags.
         */
        function printTrail() { ?>
-<?php $this->html('bottomscripts'); /* JS call to runBodyOnloadHook */ ?>
-<?php $this->html('reporttime') ?>
+<?php $this->html( 'bottomscripts' ); /* JS call to runBodyOnloadHook */ ?>
+<?php $this->html( 'reporttime' ) ?>
 <?php if ( $this->data['debug'] ): ?>
 <!-- Debug output:
 <?php $this->text( 'debug' ); ?>
index 046fadb..40a4e6a 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() {
@@ -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 08e06ea..7efb082 100644 (file)
@@ -482,9 +482,7 @@ class MediaWiki {
 
                $action = Action::factory( $act, $page );
                if ( $action instanceof Action ) {
-                       # When it's a known action, let Squid cache things if we can purge them.
-                       # If the action is unknown, we don't know what may happen in an extension,
-                       # but not caching can be always safe.
+                       # Let Squid cache things if we can purge them.
                        if ( $wgUseSquid &&
                                in_array( $request->getFullRequestURL(), $title->getSquidURLs() )
                        ) {
index 40e0ec3..76a9828 100644 (file)
@@ -1445,7 +1445,7 @@ class WikiPage extends Page {
         *  Compatibility note: this function previously returned a boolean value indicating success/failure
         */
        public function doEdit( $text, $summary, $flags = 0, $baseRevId = false, $user = null ) {
-               global $wgUser, $wgDBtransactions, $wgUseAutomaticEditSummaries;
+               global $wgUser, $wgUseAutomaticEditSummaries;
 
                # Low-level sanity check
                if ( $this->mTitle->getText() === '' ) {
@@ -1513,11 +1513,6 @@ class WikiPage extends Page {
                                return $status;
                        }
 
-                       # Make sure the revision is either completely inserted or not inserted at all
-                       if ( !$wgDBtransactions ) {
-                               $userAbort = ignore_user_abort( true );
-                       }
-
                        $revision = new Revision( array(
                                'page'       => $this->getId(),
                                'comment'    => $summary,
@@ -1528,6 +1523,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 );
 
@@ -1548,11 +1546,6 @@ class WikiPage extends Page {
                                        /* Belated edit conflict! Run away!! */
                                        $status->fatal( 'edit-conflict' );
 
-                                       # Delete the invalid revision if the DB is not transactional
-                                       if ( !$wgDBtransactions ) {
-                                               $dbw->delete( 'revision', array( 'rev_id' => $revisionId ), __METHOD__ );
-                                       }
-
                                        $revisionId = 0;
                                        $dbw->rollback( __METHOD__ );
                                } else {
@@ -1583,10 +1576,6 @@ class WikiPage extends Page {
                                $revision->setId( $this->getLatest() );
                        }
 
-                       if ( !$wgDBtransactions ) {
-                               ignore_user_abort( $userAbort );
-                       }
-
                        // Now that ignore_user_abort is restored, we can respond to fatal errors
                        if ( !$status->isOK() ) {
                                wfProfileOut( __METHOD__ );
@@ -1634,6 +1623,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 );
 
index 6a9be24..883a3c0 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':
index 0bdaa1b..2ad2653 100644 (file)
@@ -79,6 +79,8 @@ class ApiLogin extends ApiBase {
                                $user->setOption( 'rememberpassword', 1 );
                                $user->setCookies( $this->getRequest() );
 
+                               ApiQueryInfo::resetTokenCache();
+
                                // Run hooks.
                                // @todo FIXME: Split back and frontend from this hook.
                                // @todo FIXME: This hook should be placed in the backend
index 7414a97..30e9fb6 100644 (file)
@@ -607,7 +607,7 @@ class ApiMain extends ApiBase {
                        if ( !isset( $moduleParams['token'] ) ) {
                                $this->dieUsageMsg( array( 'missingparam', 'token' ) );
                        } else {
-                               if ( !$this->getUser()->matchEditToken( $moduleParams['token'], $salt ) ) {
+                               if ( !$this->getUser()->matchEditToken( $moduleParams['token'], $salt, $this->getContext()->getRequest() ) ) {
                                        $this->dieUsageMsg( 'sessionfailure' );
                                }
                        }
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 fcb9c4b..9704b6d 100644 (file)
@@ -277,7 +277,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;
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 a6c0ed5..87fd58b 100644 (file)
@@ -99,6 +99,12 @@ class ApiQueryInfo extends ApiQueryBase {
                return $this->tokenFunctions;
        }
 
+       static $cachedTokens = array();
+
+       public static function resetTokenCache() {
+               ApiQueryInfo::$cachedTokens = array();
+       }
+
        public static function getEditToken( $pageid, $title ) {
                // We could check for $title->userCan('edit') here,
                // but that's too expensive for this purpose
@@ -108,14 +114,12 @@ class ApiQueryInfo extends ApiQueryBase {
                        return false;
                }
 
-               // The edit token is always the same, let's exploit that
-               static $cachedEditToken = null;
-               if ( !is_null( $cachedEditToken ) ) {
-                       return $cachedEditToken;
+               // The token is always the same, let's exploit that
+               if ( !isset( ApiQueryInfo::$cachedTokens[ 'edit' ] ) ) {
+                       ApiQueryInfo::$cachedTokens[ 'edit' ] = $wgUser->getEditToken();
                }
 
-               $cachedEditToken = $wgUser->getEditToken();
-               return $cachedEditToken;
+               return ApiQueryInfo::$cachedTokens[ 'edit' ];
        }
 
        public static function getDeleteToken( $pageid, $title ) {
@@ -124,13 +128,12 @@ class ApiQueryInfo extends ApiQueryBase {
                        return false;
                }
 
-               static $cachedDeleteToken = null;
-               if ( !is_null( $cachedDeleteToken ) ) {
-                       return $cachedDeleteToken;
+               // The token is always the same, let's exploit that
+               if ( !isset( ApiQueryInfo::$cachedTokens[ 'delete' ] ) ) {
+                       ApiQueryInfo::$cachedTokens[ 'delete' ] = $wgUser->getEditToken();
                }
 
-               $cachedDeleteToken = $wgUser->getEditToken();
-               return $cachedDeleteToken;
+               return ApiQueryInfo::$cachedTokens[ 'delete' ];
        }
 
        public static function getProtectToken( $pageid, $title ) {
@@ -139,13 +142,12 @@ class ApiQueryInfo extends ApiQueryBase {
                        return false;
                }
 
-               static $cachedProtectToken = null;
-               if ( !is_null( $cachedProtectToken ) ) {
-                       return $cachedProtectToken;
+               // The token is always the same, let's exploit that
+               if ( !isset( ApiQueryInfo::$cachedTokens[ 'protect' ] ) ) {
+                       ApiQueryInfo::$cachedTokens[ 'protect' ] = $wgUser->getEditToken();
                }
 
-               $cachedProtectToken = $wgUser->getEditToken();
-               return $cachedProtectToken;
+               return ApiQueryInfo::$cachedTokens[ 'protect' ];
        }
 
        public static function getMoveToken( $pageid, $title ) {
@@ -154,13 +156,12 @@ class ApiQueryInfo extends ApiQueryBase {
                        return false;
                }
 
-               static $cachedMoveToken = null;
-               if ( !is_null( $cachedMoveToken ) ) {
-                       return $cachedMoveToken;
+               // The token is always the same, let's exploit that
+               if ( !isset( ApiQueryInfo::$cachedTokens[ 'move' ] ) ) {
+                       ApiQueryInfo::$cachedTokens[ 'move' ] = $wgUser->getEditToken();
                }
 
-               $cachedMoveToken = $wgUser->getEditToken();
-               return $cachedMoveToken;
+               return ApiQueryInfo::$cachedTokens[ 'move' ];
        }
 
        public static function getBlockToken( $pageid, $title ) {
@@ -169,13 +170,12 @@ class ApiQueryInfo extends ApiQueryBase {
                        return false;
                }
 
-               static $cachedBlockToken = null;
-               if ( !is_null( $cachedBlockToken ) ) {
-                       return $cachedBlockToken;
+               // The token is always the same, let's exploit that
+               if ( !isset( ApiQueryInfo::$cachedTokens[ 'block' ] ) ) {
+                       ApiQueryInfo::$cachedTokens[ 'block' ] = $wgUser->getEditToken();
                }
 
-               $cachedBlockToken = $wgUser->getEditToken();
-               return $cachedBlockToken;
+               return ApiQueryInfo::$cachedTokens[ 'block' ];
        }
 
        public static function getUnblockToken( $pageid, $title ) {
@@ -189,13 +189,12 @@ class ApiQueryInfo extends ApiQueryBase {
                        return false;
                }
 
-               static $cachedEmailToken = null;
-               if ( !is_null( $cachedEmailToken ) ) {
-                       return $cachedEmailToken;
+               // The token is always the same, let's exploit that
+               if ( !isset( ApiQueryInfo::$cachedTokens[ 'email' ] ) ) {
+                       ApiQueryInfo::$cachedTokens[ 'email' ] = $wgUser->getEditToken();
                }
 
-               $cachedEmailToken = $wgUser->getEditToken();
-               return $cachedEmailToken;
+               return ApiQueryInfo::$cachedTokens[ 'email' ];
        }
 
        public static function getImportToken( $pageid, $title ) {
@@ -204,13 +203,12 @@ class ApiQueryInfo extends ApiQueryBase {
                        return false;
                }
 
-               static $cachedImportToken = null;
-               if ( !is_null( $cachedImportToken ) ) {
-                       return $cachedImportToken;
+               // The token is always the same, let's exploit that
+               if ( !isset( ApiQueryInfo::$cachedTokens[ 'import' ] ) ) {
+                       ApiQueryInfo::$cachedTokens[ 'import' ] = $wgUser->getEditToken();
                }
 
-               $cachedImportToken = $wgUser->getEditToken();
-               return $cachedImportToken;
+               return ApiQueryInfo::$cachedTokens[ 'import' ];
        }
 
        public static function getWatchToken( $pageid, $title ) {
@@ -219,13 +217,12 @@ class ApiQueryInfo extends ApiQueryBase {
                        return false;
                }
 
-               static $cachedWatchToken = null;
-               if ( !is_null( $cachedWatchToken ) ) {
-                       return $cachedWatchToken;
+               // The token is always the same, let's exploit that
+               if ( !isset( ApiQueryInfo::$cachedTokens[ 'watch' ] ) ) {
+                       ApiQueryInfo::$cachedTokens[ 'watch' ] = $wgUser->getEditToken( 'watch' );
                }
 
-               $cachedWatchToken = $wgUser->getEditToken( 'watch' );
-               return $cachedWatchToken;
+               return ApiQueryInfo::$cachedTokens[ 'watch' ];
        }
 
        public static function getOptionsToken( $pageid, $title ) {
@@ -234,13 +231,12 @@ class ApiQueryInfo extends ApiQueryBase {
                        return false;
                }
 
-               static $cachedOptionsToken = null;
-               if ( !is_null( $cachedOptionsToken ) ) {
-                       return $cachedOptionsToken;
+               // The token is always the same, let's exploit that
+               if ( !isset( ApiQueryInfo::$cachedTokens[ 'options' ] ) ) {
+                       ApiQueryInfo::$cachedTokens[ 'options' ] = $wgUser->getEditToken();
                }
 
-               $cachedOptionsToken = $wgUser->getEditToken();
-               return $cachedOptionsToken;
+               return ApiQueryInfo::$cachedTokens[ 'options' ];
        }
 
        public function execute() {
index e7102e0..38e37c0 100644 (file)
@@ -121,9 +121,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
index ab5acf5..f531980 100644 (file)
@@ -35,10 +35,10 @@ class ApiQueryContributions extends ApiQueryBase {
                parent::__construct( $query, $moduleName, 'uc' );
        }
 
-       private $params, $prefixMode, $userprefix, $multiUserMode, $usernames;
+       private $params, $prefixMode, $userprefix, $multiUserMode, $usernames, $parentLens;
        private $fld_ids = false, $fld_title = false, $fld_timestamp = false,
                        $fld_comment = false, $fld_parsedcomment = false, $fld_flags = false,
-                       $fld_patrolled = false, $fld_tags = false, $fld_size = false;
+                       $fld_patrolled = false, $fld_tags = false, $fld_size = false, $fld_sizediff = false;
 
        public function execute() {
                // Parse some parameters
@@ -50,6 +50,7 @@ class ApiQueryContributions extends ApiQueryBase {
                $this->fld_comment = isset( $prop['comment'] );
                $this->fld_parsedcomment = isset ( $prop['parsedcomment'] );
                $this->fld_size = isset( $prop['size'] );
+               $this->fld_sizediff = isset( $prop['sizediff'] );
                $this->fld_flags = isset( $prop['flags'] );
                $this->fld_timestamp = isset( $prop['timestamp'] );
                $this->fld_patrolled = isset( $prop['patrolled'] );
@@ -82,6 +83,17 @@ class ApiQueryContributions extends ApiQueryBase {
                // Do the actual query.
                $res = $this->select( __METHOD__ );
 
+               if( $this->fld_sizediff ) {
+                       $revIds = array();
+                       foreach ( $res as $row ) {
+                               if( $row->rev_parent_id ) {
+                                       $revIds[] = $row->rev_parent_id;
+                               }
+                       }
+                       $this->parentLens = Revision::getParentLengths( $this->getDB(), $revIds );
+                       $res->rewind(); // reset
+               }
+
                // Initialise some variables
                $count = 0;
                $limit = $this->params['limit'];
@@ -245,7 +257,8 @@ class ApiQueryContributions extends ApiQueryBase {
                // $this->addFieldsIf( 'rev_text_id', $this->fld_ids ); // Should this field be exposed?
                $this->addFieldsIf( 'rev_comment', $this->fld_comment || $this->fld_parsedcomment );
                $this->addFieldsIf( 'rev_len', $this->fld_size );
-               $this->addFieldsIf( array( 'rev_minor_edit', 'rev_parent_id' ), $this->fld_flags );
+               $this->addFieldsIf( 'rev_minor_edit', $this->fld_flags );
+               $this->addFieldsIf( 'rev_parent_id', $this->fld_flags || $this->fld_sizediff );
                $this->addFieldsIf( 'rc_patrolled', $this->fld_patrolled );
 
                if ( $this->fld_tags ) {
@@ -333,6 +346,11 @@ class ApiQueryContributions extends ApiQueryBase {
                        $vals['size'] = intval( $row->rev_len );
                }
 
+               if ( $this->fld_sizediff && !is_null( $row->rev_len ) && !is_null( $row->rev_parent_id ) ) {
+                       $parentLen = isset( $this->parentLens[$row->rev_parent_id] ) ? $this->parentLens[$row->rev_parent_id] : 0;
+                       $vals['sizediff'] = intval( $row->rev_len - $parentLen );
+               }
+
                if ( $this->fld_tags ) {
                        if ( $row->ts_tags ) {
                                $tags = explode( ',', $row->ts_tags );
@@ -398,6 +416,7 @@ class ApiQueryContributions extends ApiQueryBase {
                                        'comment',
                                        'parsedcomment',
                                        'size',
+                                       'sizediff',
                                        'flags',
                                        'patrolled',
                                        'tags'
@@ -436,7 +455,8 @@ class ApiQueryContributions extends ApiQueryBase {
                                ' timestamp      - Adds the timestamp of the edit',
                                ' comment        - Adds the comment of the edit',
                                ' parsedcomment  - Adds the parsed comment of the edit',
-                               ' size           - Adds the size of the page',
+                               ' size           - Adds the new size of the edit',
+                               ' sizediff       - Adds the size delta of the edit against its parent',
                                ' flags          - Adds flags of the edit',
                                ' patrolled      - Tags patrolled edits',
                                ' tags           - Lists tags for the edit',
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
        }
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 5df6456..1fdcd5c 100644 (file)
@@ -1433,7 +1433,7 @@ class DatabaseIbm_db2 extends DatabaseBase {
                // db2_ping() doesn't exist
                // Emulate
                $this->close();
-               $this->mConn = $this->openUncataloged( $this->mDBName, $this->mUser,
+               $this->openUncataloged( $this->mDBName, $this->mUser,
                        $this->mPassword, $this->mServer, $this->mPort );
 
                return false;
index f0838bb..763ca52 100644 (file)
@@ -840,9 +840,22 @@ __INDEXATTR__;
        {
                $destTable = $this->tableName( $destTable );
 
-               if( is_array( $insertOptions ) ) {
-                       $insertOptions = implode( ' ', $insertOptions ); // FIXME: This is unused
+               if( !is_array( $insertOptions ) ) {
+                       $insertOptions = array( $insertOptions );
                }
+
+               /*
+                * If IGNORE is set, we use savepoints to emulate mysql's behavior
+                * Ignore LOW PRIORITY option, since it is MySQL-specific
+                */
+               $savepoint = null;
+               if ( in_array( 'IGNORE', $insertOptions ) ) {
+                       $savepoint = new SavepointPostgres( $this, 'mw' );
+                       $olde = error_reporting( 0 );
+                       $numrowsinserted = 0;
+                       $savepoint->savepoint();
+               }
+
                if( !is_array( $selectOptions ) ) {
                        $selectOptions = array( $selectOptions );
                }
@@ -853,15 +866,6 @@ __INDEXATTR__;
                        $srcTable = $this->tableName( $srcTable );
                }
 
-               // If IGNORE is set, we use savepoints to emulate mysql's behavior
-               $savepoint = null;
-               if ( in_array( 'IGNORE', $options ) ) {
-                       $savepoint = new SavepointPostgres( $this, 'mw' );
-                       $olde = error_reporting( 0 );
-                       $numrowsinserted = 0;
-                       $savepoint->savepoint();
-               }
-
                $sql = "INSERT INTO $destTable (" . implode( ',', array_keys( $varMap ) ) . ')' .
                                " SELECT $startOpts " . implode( ',', $varMap ) .
                                " FROM $srcTable $useIndex";
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..9514562 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::newRowFromFromDBResult( $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..eb3a319 100644 (file)
@@ -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 7910285..024e11b 100644 (file)
@@ -36,7 +36,7 @@
  * @ingroup LockManager
  * @since 1.19
  */
-class LSLockManager extends LockManager {
+class LSLockManager extends QuorumLockManager {
        /** @var Array Mapping of lock types to the type actually used */
        protected $lockTypeMap = array(
                self::LOCK_SH => self::LOCK_SH,
@@ -46,8 +46,6 @@ class LSLockManager extends LockManager {
 
        /** @var Array Map of server names to server config */
        protected $lockServers; // (server name => server config array)
-       /** @var Array Map of bucket indexes to peer server lists */
-       protected $srvsByBucket; // (bucket index => (lsrv1, lsrv2, ...))
 
        /** @var Array Map Server connections (server name => resource) */
        protected $conns = array();
@@ -57,7 +55,7 @@ class LSLockManager extends LockManager {
 
        /**
         * Construct a new instance from configuration.
-        * 
+        *
         * $config paramaters include:
         *     'lockServers'  : Associative array of server names to configuration.
         *                      Configuration is an associative array that includes:
@@ -68,7 +66,7 @@ class LSLockManager extends LockManager {
         *                      each having an odd-numbered list of server names (peers) as values.
         *     'connTimeout'  : Lock server connection attempt timeout. [optional]
         *
-        * @param Array $config 
+        * @param Array $config
         */
        public function __construct( array $config ) {
                parent::__construct( $config );
@@ -84,123 +82,74 @@ class LSLockManager extends LockManager {
                        $this->connTimeout = 3; // use some sane amount
                }
 
-               $this->session = '';
-               for ( $i = 0; $i < 5; $i++ ) {
-                       $this->session .= mt_rand( 0, 2147483647 );
-               }
-               $this->session = wfBaseConvert( sha1( $this->session ), 16, 36, 31 );
+               $this->session = wfRandomString( 31 );
        }
 
        /**
-        * @see LockManager::doLock()
-        * @param $paths array
-        * @param $type int
+        * @see QuorumLockManager::getLocksOnServer()
         * @return Status
         */
-       protected function doLock( array $paths, $type ) {
+       protected function getLocksOnServer( $lockSrv, array $paths, $type ) {
                $status = Status::newGood();
 
-               $pathsToLock = array();
-               // Get locks that need to be acquired (buckets => locks)...
-               foreach ( $paths as $path ) {
-                       if ( isset( $this->locksHeld[$path][$type] ) ) {
-                               ++$this->locksHeld[$path][$type];
-                       } elseif ( isset( $this->locksHeld[$path][self::LOCK_EX] ) ) {
-                               $this->locksHeld[$path][$type] = 1;
-                       } else {
-                               $bucket = $this->getBucketFromKey( $path );
-                               $pathsToLock[$bucket][] = $path;
-                       }
-               }
+               // Send out the command and get the response...
+               $type = ( $type == self::LOCK_SH ) ? 'SH' : 'EX';
+               $keys = array_unique( array_map( 'LockManager::sha1Base36', $paths ) );
+               $response = $this->sendCommand( $lockSrv, 'ACQUIRE', $type, $keys );
 
-               $lockedPaths = array(); // files locked in this attempt
-               // Attempt to acquire these locks...
-               foreach ( $pathsToLock as $bucket => $paths ) {
-                       // Try to acquire the locks for this bucket
-                       $res = $this->doLockingRequestAll( $bucket, $paths, $type );
-                       if ( $res === 'cantacquire' ) {
-                               // Resources already locked by another process.
-                               // Abort and unlock everything we just locked.
-                               foreach ( $paths as $path ) {
-                                       $status->fatal( 'lockmanager-fail-acquirelock', $path );
-                               }
-                               $status->merge( $this->doUnlock( $lockedPaths, $type ) );
-                               return $status;
-                       } elseif ( $res !== true ) {
-                               // Couldn't contact any servers for this bucket.
-                               // Abort and unlock everything we just locked.
-                               foreach ( $paths as $path ) {
-                                       $status->fatal( 'lockmanager-fail-acquirelock', $path );
-                               }
-                               $status->merge( $this->doUnlock( $lockedPaths, $type ) );
-                               return $status;
-                       }
-                       // Record these locks as active
+               if ( $response !== 'ACQUIRED' ) {
                        foreach ( $paths as $path ) {
-                               $this->locksHeld[$path][$type] = 1; // locked
+                               $status->fatal( 'lockmanager-fail-acquirelock', $path );
                        }
-                       // Keep track of what locks were made in this attempt
-                       $lockedPaths = array_merge( $lockedPaths, $paths );
                }
 
                return $status;
        }
 
        /**
-        * @see LockManager::doUnlock()
-        * @param $paths array
-        * @param $type int
+        * @see QuorumLockManager::freeLocksOnServer()
         * @return Status
         */
-       protected function doUnlock( array $paths, $type ) {
+       protected function freeLocksOnServer( $lockSrv, array $paths, $type ) {
                $status = Status::newGood();
 
-               foreach ( $paths as $path ) {
-                       if ( !isset( $this->locksHeld[$path] ) ) {
-                               $status->warning( 'lockmanager-notlocked', $path );
-                       } elseif ( !isset( $this->locksHeld[$path][$type] ) ) {
-                               $status->warning( 'lockmanager-notlocked', $path );
-                       } else {
-                               --$this->locksHeld[$path][$type];
-                               if ( $this->locksHeld[$path][$type] <= 0 ) {
-                                       unset( $this->locksHeld[$path][$type] );
-                               }
-                               if ( !count( $this->locksHeld[$path] ) ) {
-                                       unset( $this->locksHeld[$path] ); // no SH or EX locks left for key
-                               }
-                       }
-               }
+               // Send out the command and get the response...
+               $type = ( $type == self::LOCK_SH ) ? 'SH' : 'EX';
+               $keys = array_unique( array_map( 'LockManager::sha1Base36', $paths ) );
+               $response = $this->sendCommand( $lockSrv, 'RELEASE', $type, $keys );
 
-               // Reference count the locks held and release locks when zero
-               if ( !count( $this->locksHeld ) ) {
-                       $status->merge( $this->releaseLocks() );
+               if ( $response !== 'RELEASED' ) {
+                       foreach ( $paths as $path ) {
+                               $status->fatal( 'lockmanager-fail-releaselock', $path );
+                       }
                }
 
                return $status;
        }
 
        /**
-        * Get a connection to a lock server and acquire locks on $paths
-        *
-        * @param $lockSrv string
-        * @param $paths Array
-        * @param $type integer LockManager::LOCK_EX or LockManager::LOCK_SH
-        * @return bool Resources able to be locked
+        * @see QuorumLockManager::releaseAllLocks()
+        * @return Status
         */
-       protected function doLockingRequest( $lockSrv, array $paths, $type ) {
-               if ( $type == self::LOCK_SH ) { // reader locks
-                       $type = 'SH';
-               } elseif ( $type == self::LOCK_EX ) { // writer locks
-                       $type = 'EX';
-               } else {
-                       return true; // ok...
+       protected function releaseAllLocks() {
+               $status = Status::newGood();
+
+               foreach ( $this->conns as $lockSrv => $conn ) {
+                       $response = $this->sendCommand( $lockSrv, 'RELEASE_ALL', '', array() );
+                       if ( $response !== 'RELEASED_ALL' ) {
+                               $status->fatal( 'lockmanager-fail-svr-release', $lockSrv );
+                       }
                }
 
-               // Send out the command and get the response...
-               $keys = array_unique( array_map( 'LockManager::sha1Base36', $paths ) );
-               $response = $this->sendCommand( $lockSrv, 'ACQUIRE', $type, $keys );
+               return $status;
+       }
 
-               return ( $response === 'ACQUIRED' );
+       /**
+        * @see QuorumLockManager::isServerUp()
+        * @return bool
+        */
+       protected function isServerUp( $lockSrv ) {
+               return (bool)$this->getConnection( $lockSrv );
        }
 
        /**
@@ -233,39 +182,6 @@ class LSLockManager extends LockManager {
                return trim( $response );
        }
 
-       /**
-        * Attempt to acquire locks with the peers for a bucket
-        *
-        * @param $bucket integer
-        * @param $paths Array List of resource keys to lock
-        * @param $type integer LockManager::LOCK_EX or LockManager::LOCK_SH
-        * @return bool|string One of (true, 'cantacquire', 'srverrors')
-        */
-       protected function doLockingRequestAll( $bucket, array $paths, $type ) {
-               $yesVotes = 0; // locks made on trustable servers
-               $votesLeft = count( $this->srvsByBucket[$bucket] ); // remaining peers
-               $quorum = floor( $votesLeft/2 + 1 ); // simple majority
-               // Get votes for each peer, in order, until we have enough...
-               foreach ( $this->srvsByBucket[$bucket] as $lockSrv ) {
-                       // Attempt to acquire the lock on this peer
-                       if ( !$this->doLockingRequest( $lockSrv, $paths, $type ) ) {
-                               return 'cantacquire'; // vetoed; resource locked
-                       }
-                       ++$yesVotes; // success for this peer
-                       if ( $yesVotes >= $quorum ) {
-                               return true; // lock obtained
-                       }
-                       --$votesLeft;
-                       $votesNeeded = $quorum - $yesVotes;
-                       if ( $votesNeeded > $votesLeft ) {
-                               // In "trust cache" mode we don't have to meet the quorum
-                               break; // short-circuit
-                       }
-               }
-               // At this point, we must not have meet the quorum
-               return 'srverrors'; // not enough votes to ensure correctness
-       }
-
        /**
         * Get (or reuse) a connection to a lock server
         *
@@ -290,39 +206,11 @@ class LSLockManager extends LockManager {
                return $this->conns[$lockSrv];
        }
 
-       /**
-        * Release all locks that this session is holding
-        *
-        * @return Status
-        */
-       protected function releaseLocks() {
-               $status = Status::newGood();
-               foreach ( $this->conns as $lockSrv => $conn ) {
-                       $response = $this->sendCommand( $lockSrv, 'RELEASE_ALL', '', array() );
-                       if ( $response !== 'RELEASED_ALL' ) {
-                               $status->fatal( 'lockmanager-fail-svr-release', $lockSrv );
-                       }
-               }
-               return $status;
-       }
-
-       /**
-        * Get the bucket for resource path.
-        * This should avoid throwing any exceptions.
-        *
-        * @param $path string
-        * @return integer
-        */
-       protected function getBucketFromKey( $path ) {
-               $prefix = substr( sha1( $path ), 0, 2 ); // first 2 hex chars (8 bits)
-               return intval( base_convert( $prefix, 16, 10 ) ) % count( $this->srvsByBucket );
-       }
-
        /**
         * Make sure remaining locks get cleared for sanity
         */
        function __destruct() {
-               $this->releaseLocks();
+               $this->releaseAllLocks();
                foreach ( $this->conns as $conn ) {
                        fclose( $conn );
                }
index e41c777..07853f8 100644 (file)
@@ -67,10 +67,10 @@ abstract class LockManager {
 
        /**
         * Lock the resources at the given abstract paths
-        * 
+        *
         * @param $paths Array List of resource names
         * @param $type integer LockManager::LOCK_* constant
-        * @return Status 
+        * @return Status
         */
        final public function lock( array $paths, $type = self::LOCK_EX ) {
                wfProfileIn( __METHOD__ );
@@ -81,10 +81,10 @@ abstract class LockManager {
 
        /**
         * Unlock the resources at the given abstract paths
-        * 
+        *
         * @param $paths Array List of storage paths
         * @param $type integer LockManager::LOCK_* constant
-        * @return Status 
+        * @return Status
         */
        final public function unlock( array $paths, $type = self::LOCK_EX ) {
                wfProfileIn( __METHOD__ );
@@ -95,7 +95,7 @@ abstract class LockManager {
 
        /**
         * Get the base 36 SHA-1 of a string, padded to 31 digits
-        * 
+        *
         * @param $path string
         * @return string
         */
@@ -105,7 +105,7 @@ abstract class LockManager {
 
        /**
         * Lock resources with the given keys and lock type
-        * 
+        *
         * @param $paths Array List of storage paths
         * @param $type integer LockManager::LOCK_* constant
         * @return string
@@ -114,7 +114,7 @@ abstract class LockManager {
 
        /**
         * Unlock resources with the given keys and lock type
-        * 
+        *
         * @param $paths Array List of storage paths
         * @param $type integer LockManager::LOCK_* constant
         * @return string
@@ -123,7 +123,7 @@ abstract class LockManager {
 }
 
 /**
- * Self releasing locks
+ * Self-releasing locks
  *
  * LockManager helper class to handle scoped locks, which
  * release when an object is destroyed or goes out of scope.
@@ -160,7 +160,7 @@ class ScopedLock {
         * Get a ScopedLock object representing a lock on resource paths.
         * Any locks are released once this object goes out of scope.
         * The status object is updated with any errors or warnings.
-        * 
+        *
         * @param $manager LockManager
         * @param $paths Array List of storage paths
         * @param $type integer LockManager::LOCK_* constant
@@ -188,6 +188,216 @@ class ScopedLock {
        }
 }
 
+/**
+ * Version of LockManager that uses a quorum from peer servers for locks.
+ * The resource space can also be sharded into separate peer groups.
+ *
+ * @ingroup LockManager
+ * @since 1.20
+ */
+abstract class QuorumLockManager extends LockManager {
+       /** @var Array Map of bucket indexes to peer server lists */
+       protected $srvsByBucket = array(); // (bucket index => (lsrv1, lsrv2, ...))
+
+       /**
+        * @see LockManager::doLock()
+        * @param $paths array
+        * @param $type int
+        * @return Status
+        */
+       final protected function doLock( array $paths, $type ) {
+               $status = Status::newGood();
+
+               $pathsToLock = array(); // (bucket => paths)
+               // Get locks that need to be acquired (buckets => locks)...
+               foreach ( $paths as $path ) {
+                       if ( isset( $this->locksHeld[$path][$type] ) ) {
+                               ++$this->locksHeld[$path][$type];
+                       } elseif ( isset( $this->locksHeld[$path][self::LOCK_EX] ) ) {
+                               $this->locksHeld[$path][$type] = 1;
+                       } else {
+                               $bucket = $this->getBucketFromKey( $path );
+                               $pathsToLock[$bucket][] = $path;
+                       }
+               }
+
+               $lockedPaths = array(); // files locked in this attempt
+               // Attempt to acquire these locks...
+               foreach ( $pathsToLock as $bucket => $paths ) {
+                       // Try to acquire the locks for this bucket
+                       $status->merge( $this->doLockingRequestBucket( $bucket, $paths, $type ) );
+                       if ( !$status->isOK() ) {
+                               $status->merge( $this->doUnlock( $lockedPaths, $type ) );
+                               return $status;
+                       }
+                       // Record these locks as active
+                       foreach ( $paths as $path ) {
+                               $this->locksHeld[$path][$type] = 1; // locked
+                       }
+                       // Keep track of what locks were made in this attempt
+                       $lockedPaths = array_merge( $lockedPaths, $paths );
+               }
+
+               return $status;
+       }
+
+       /**
+        * @see LockManager::doUnlock()
+        * @param $paths array
+        * @param $type int
+        * @return Status
+        */
+       final protected function doUnlock( array $paths, $type ) {
+               $status = Status::newGood();
+
+               $pathsToUnlock = array();
+               foreach ( $paths as $path ) {
+                       if ( !isset( $this->locksHeld[$path][$type] ) ) {
+                               $status->warning( 'lockmanager-notlocked', $path );
+                       } else {
+                               --$this->locksHeld[$path][$type];
+                               // Reference count the locks held and release locks when zero
+                               if ( $this->locksHeld[$path][$type] <= 0 ) {
+                                       unset( $this->locksHeld[$path][$type] );
+                                       $bucket = $this->getBucketFromKey( $path );
+                                       $pathsToUnlock[$bucket][] = $path;
+                               }
+                               if ( !count( $this->locksHeld[$path] ) ) {
+                                       unset( $this->locksHeld[$path] ); // no SH or EX locks left for key
+                               }
+                       }
+               }
+
+               // Remove these specific locks if possible, or at least release
+               // all locks once this process is currently not holding any locks.
+               foreach ( $pathsToUnlock as $bucket => $paths ) {
+                       $status->merge( $this->doUnlockingRequestBucket( $bucket, $paths, $type ) );
+               }
+               if ( !count( $this->locksHeld ) ) {
+                       $status->merge( $this->releaseAllLocks() );
+               }
+
+               return $status;
+       }
+
+       /**
+        * Attempt to acquire locks with the peers for a bucket.
+        * This is all or nothing; if any key is locked then this totally fails.
+        *
+        * @param $bucket integer
+        * @param $paths Array List of resource keys to lock
+        * @param $type integer LockManager::LOCK_EX or LockManager::LOCK_SH
+        * @return Status
+        */
+       final protected function doLockingRequestBucket( $bucket, array $paths, $type ) {
+               $status = Status::newGood();
+
+               $yesVotes = 0; // locks made on trustable servers
+               $votesLeft = count( $this->srvsByBucket[$bucket] ); // remaining peers
+               $quorum = floor( $votesLeft/2 + 1 ); // simple majority
+               // Get votes for each peer, in order, until we have enough...
+               foreach ( $this->srvsByBucket[$bucket] as $lockSrv ) {
+                       if ( !$this->isServerUp( $lockSrv ) ) {
+                               --$votesLeft;
+                               $status->warning( 'lockmanager-fail-svr-acquire', $lockSrv );
+                               continue; // server down?
+                       }
+                       // Attempt to acquire the lock on this peer
+                       $status->merge( $this->getLocksOnServer( $lockSrv, $paths, $type ) );
+                       if ( !$status->isOK() ) {
+                               return $status; // vetoed; resource locked
+                       }
+                       ++$yesVotes; // success for this peer
+                       if ( $yesVotes >= $quorum ) {
+                               return $status; // lock obtained
+                       }
+                       --$votesLeft;
+                       $votesNeeded = $quorum - $yesVotes;
+                       if ( $votesNeeded > $votesLeft ) {
+                               break; // short-circuit
+                       }
+               }
+               // At this point, we must not have met the quorum
+               $status->setResult( false );
+
+               return $status;
+       }
+
+       /**
+        * Attempt to release locks with the peers for a bucket
+        *
+        * @param $bucket integer
+        * @param $paths Array List of resource keys to lock
+        * @param $type integer LockManager::LOCK_EX or LockManager::LOCK_SH
+        * @return Status
+        */
+       final protected function doUnlockingRequestBucket( $bucket, array $paths, $type ) {
+               $status = Status::newGood();
+
+               foreach ( $this->srvsByBucket[$bucket] as $lockSrv ) {
+                       if ( !$this->isServerUp( $lockSrv ) ) {
+                               $status->fatal( 'lockmanager-fail-svr-release', $lockSrv );
+                       // Attempt to release the lock on this peer
+                       } else {
+                               $status->merge( $this->freeLocksOnServer( $lockSrv, $paths, $type ) );
+                       }
+               }
+
+               return $status;
+       }
+
+       /**
+        * Get the bucket for resource path.
+        * This should avoid throwing any exceptions.
+        *
+        * @param $path string
+        * @return integer
+        */
+       protected function getBucketFromKey( $path ) {
+               $prefix = substr( sha1( $path ), 0, 2 ); // first 2 hex chars (8 bits)
+               return (int)base_convert( $prefix, 16, 10 ) % count( $this->srvsByBucket );
+       }
+
+       /**
+        * Check if a lock server is up
+        *
+        * @param $lockSrv string
+        * @return bool
+        */
+       abstract protected function isServerUp( $lockSrv );
+
+       /**
+        * Get a connection to a lock server and acquire locks on $paths
+        *
+        * @param $lockSrv string
+        * @param $paths array
+        * @param $type integer
+        * @return Status
+        */
+       abstract protected function getLocksOnServer( $lockSrv, array $paths, $type );
+
+       /**
+        * Get a connection to a lock server and release locks on $paths.
+        *
+        * Subclasses must effectively implement this or releaseAllLocks().
+        *
+        * @param $lockSrv string
+        * @param $paths array
+        * @param $type integer
+        * @return Status
+        */
+       abstract protected function freeLocksOnServer( $lockSrv, array $paths, $type );
+
+       /**
+        * Release all locks that this session is holding.
+        *
+        * Subclasses must effectively implement this or freeLocksOnServer().
+        *
+        * @return Status
+        */
+       abstract protected function releaseAllLocks();
+}
+
 /**
  * Simple version of LockManager that does nothing
  * @since 1.19
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' );
+       }
 }
diff --git a/includes/filerepo/backend/lockmanager/MemcLockManager.php b/includes/filerepo/backend/lockmanager/MemcLockManager.php
new file mode 100644 (file)
index 0000000..add1f2c
--- /dev/null
@@ -0,0 +1,306 @@
+<?php
+/**
+ * Version of LockManager based on using memcached servers.
+ *
+ * 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 LockManager
+ */
+
+/**
+ * Manage locks using memcached servers.
+ *
+ * Version of LockManager based on using memcached servers.
+ * This is meant for multi-wiki systems that may share files.
+ * All locks are non-blocking, which avoids deadlocks.
+ *
+ * All lock requests for a resource, identified by a hash string, will map
+ * to one bucket. Each bucket maps to one or several peer servers, each running memcached.
+ * A majority of peers must agree for a lock to be acquired.
+ *
+ * @ingroup LockManager
+ * @since 1.20
+ */
+class MemcLockManager extends QuorumLockManager {
+       /** @var Array Mapping of lock types to the type actually used */
+       protected $lockTypeMap = array(
+               self::LOCK_SH => self::LOCK_SH,
+               self::LOCK_UW => self::LOCK_SH,
+               self::LOCK_EX => self::LOCK_EX
+       );
+
+       /** @var Array Map server names to MemcachedBagOStuff objects */
+       protected $bagOStuffs = array();
+       /** @var Array */
+       protected $serversUp = array(); // (server name => bool)
+
+       protected $lockExpiry; // integer; maximum time locks can be held
+       protected $session = ''; // string; random SHA-1 UUID
+       protected $wikiId = ''; // string
+
+       /**
+        * Construct a new instance from configuration.
+        *
+        * $config paramaters include:
+        *     'lockServers'  : Associative array of server names to <IP>:<port> strings.
+        *     'srvsByBucket' : Array of 1-16 consecutive integer keys, starting from 0,
+        *                      each having an odd-numbered list of server names (peers) as values.
+        *     'memcConfig'   : Configuration array for ObjectCache::newFromParams. [optional]
+        *                      If set, this must use one of the memcached classes.
+        *     'wikiId'       : Wiki ID string that all resources are relative to. [optional]
+        *
+        * @param Array $config
+        */
+       public function __construct( array $config ) {
+               parent::__construct( $config );
+
+               // Sanitize srvsByBucket config to prevent PHP errors
+               $this->srvsByBucket = array_filter( $config['srvsByBucket'], 'is_array' );
+               $this->srvsByBucket = array_values( $this->srvsByBucket ); // consecutive
+
+               $memcConfig = isset( $config['memcConfig'] )
+                       ? $config['memcConfig']
+                       : array( 'class' => 'MemcachedPhpBagOStuff' );
+
+               foreach ( $config['lockServers'] as $name => $address ) {
+                       $params = array( 'servers' => array( $address ) ) + $memcConfig;
+                       $cache = ObjectCache::newFromParams( $params );
+                       if ( $cache instanceof MemcachedBagOStuff ) {
+                               $this->bagOStuffs[$name] = $cache;
+                       } else {
+                               throw new MWException(
+                                       'Only MemcachedBagOStuff classes are supported by MemcLockManager.' );
+                       }
+               }
+
+               $this->wikiId = isset( $config['wikiId'] ) ? $config['wikiId'] : wfWikiID();
+
+               $met = ini_get( 'max_execution_time' ); // this is 0 in CLI mode
+               $this->lockExpiry = $met ? 2*(int)$met : 2*3600;
+
+               $this->session = wfRandomString( 31 );
+       }
+
+       /**
+        * @see QuorumLockManager::getLocksOnServer()
+        * @return Status
+        */
+       protected function getLocksOnServer( $lockSrv, array $paths, $type ) {
+               $status = Status::newGood();
+
+               $memc = $this->getCache( $lockSrv );
+               $keys = array_map( array( $this, 'recordKeyForPath' ), $paths ); // lock records
+
+               // Lock all of the active lock record keys...
+               if ( !$this->acquireMutexes( $memc, $keys ) ) {
+                       foreach ( $paths as $path ) {
+                               $status->fatal( 'lockmanager-fail-acquirelock', $path );
+                       }
+                       return;
+               }
+
+               // Fetch all the existing lock records...
+               $lockRecords = $memc->getMulti( $keys );
+
+               $now = time();
+               // Check if the requested locks conflict with existing ones...
+               foreach ( $paths as $path ) {
+                       $locksKey = $this->recordKeyForPath( $path );
+                       $locksHeld = isset( $lockRecords[$locksKey] )
+                               ? $lockRecords[$locksKey]
+                               : array( self::LOCK_SH => array(), self::LOCK_EX => array() ); // init
+                       foreach ( $locksHeld[self::LOCK_EX] as $session => $expiry ) {
+                               if ( $expiry < $now ) { // stale?
+                                       unset( $locksHeld[self::LOCK_EX][$session] );
+                               } elseif ( $session !== $this->session ) {
+                                       $status->fatal( 'lockmanager-fail-acquirelock', $path );
+                               }
+                       }
+                       if ( $type === self::LOCK_EX ) {
+                               foreach ( $locksHeld[self::LOCK_SH] as $session => $expiry ) {
+                                       if ( $expiry < $now ) { // stale?
+                                               unset( $locksHeld[self::LOCK_SH][$session] );
+                                       } elseif ( $session !== $this->session ) {
+                                               $status->fatal( 'lockmanager-fail-acquirelock', $path );
+                                       }
+                               }
+                       }
+                       if ( $status->isOK() ) {
+                               // Register the session in the lock record array
+                               $locksHeld[$type][$this->session] = $now + $this->lockExpiry;
+                               // We will update this record if none of the other locks conflict
+                               $lockRecords[$locksKey] = $locksHeld;
+                       }
+               }
+
+               // If there were no lock conflicts, update all the lock records...
+               if ( $status->isOK() ) {
+                       foreach ( $lockRecords as $locksKey => $locksHeld ) {
+                               $memc->set( $locksKey, $locksHeld );
+                               wfDebug( __METHOD__ . ": acquired lock on key $locksKey.\n" );
+                       }
+               }
+
+               // Unlock all of the active lock record keys...
+               $this->releaseMutexes( $memc, $keys );
+
+               return $status;
+       }
+
+       /**
+        * @see QuorumLockManager::freeLocksOnServer()
+        * @return Status
+        */
+       protected function freeLocksOnServer( $lockSrv, array $paths, $type ) {
+               $status = Status::newGood();
+
+               $memc = $this->getCache( $lockSrv );
+               $keys = array_map( array( $this, 'recordKeyForPath' ), $paths ); // lock records
+
+               // Lock all of the active lock record keys...
+               if ( !$this->acquireMutexes( $memc, $keys ) ) {
+                       foreach ( $paths as $path ) {
+                               $status->fatal( 'lockmanager-fail-releaselock', $path );
+                       }
+                       return;
+               }
+
+               // Fetch all the existing lock records...
+               $lockRecords = $memc->getMulti( $keys );
+
+               // Remove the requested locks from all records...
+               foreach ( $paths as $path ) {
+                       $locksKey = $this->recordKeyForPath( $path ); // lock record
+                       if ( !isset( $lockRecords[$locksKey] ) ) {
+                               continue; // nothing to do
+                       }
+                       $locksHeld = $lockRecords[$locksKey];
+                       if ( is_array( $locksHeld ) && isset( $locksHeld[$type] ) ) {
+                               unset( $locksHeld[$type][$this->session] );
+                               $ok = $memc->set( $locksKey, $locksHeld );
+                       } else {
+                               $ok = true;
+                       }
+                       if ( !$ok ) {
+                               $status->fatal( 'lockmanager-fail-releaselock', $path );
+                       }
+                       wfDebug( __METHOD__ . ": released lock on key $locksKey.\n" );
+               }
+
+               // Unlock all of the active lock record keys...
+               $this->releaseMutexes( $memc, $keys );
+
+               return $status;
+       }
+
+       /**
+        * @see QuorumLockManager::releaseAllLocks()
+        * @return Status
+        */
+       protected function releaseAllLocks() {
+               return Status::newGood(); // not supported
+       }
+
+       /**
+        * @see QuorumLockManager::isServerUp()
+        * @return bool
+        */
+       protected function isServerUp( $lockSrv ) {
+               return (bool)$this->getCache( $lockSrv );
+       }
+
+       /**
+        * Get the MemcachedBagOStuff object for a $lockSrv
+        *
+        * @param $lockSrv string Server name
+        * @return MemcachedBagOStuff|null
+        */
+       protected function getCache( $lockSrv ) {
+               $memc = null;
+               if ( isset( $this->bagOStuffs[$lockSrv] ) ) {
+                       $memc = $this->bagOStuffs[$lockSrv];
+                       if ( !isset( $this->serversUp[$lockSrv] ) ) {
+                               $this->serversUp[$lockSrv] = $memc->set( 'MemcLockManager:ping', 1, 1 );
+                               if ( !$this->serversUp[$lockSrv] ) {
+                                       trigger_error( __METHOD__ . ": Could not contact $lockSrv.", E_USER_WARNING );
+                               }
+                       }
+                       if ( !$this->serversUp[$lockSrv] ) {
+                               return null; // server appears to be down
+                       }
+               }
+               return $memc;
+       }
+
+       /**
+        * @param $path string
+        * @return string
+        */
+       protected function recordKeyForPath( $path ) {
+               $hash = LockManager::sha1Base36( $path );
+               list( $db, $prefix ) = wfSplitWikiID( $this->wikiId );
+               return wfForeignMemcKey( $db, $prefix, __CLASS__, 'locks', $hash );
+       }
+
+       /**
+        * @param $memc MemcachedBagOStuff
+        * @param $keys Array List of keys to acquire
+        * @return bool
+        */
+       protected function acquireMutexes( MemcachedBagOStuff $memc, array $keys ) {
+               $lockedKeys = array();
+
+               $start = microtime( true );
+               do {
+                       foreach ( array_diff( $keys, $lockedKeys ) as $key ) {
+                               if ( $memc->add( "$key:mutex", 1, 180 ) ) { // lock record
+                                       $lockedKeys[] = $key;
+                               }
+                       }
+               } while ( count( $lockedKeys ) < count( $keys ) && ( microtime( true ) - $start ) <= 6 );
+
+               if ( count( $lockedKeys ) != count( $keys ) ) {
+                       $this->releaseMutexes( $lockedKeys ); // failed; release what was locked
+                       return false;
+               }
+
+               return true;
+       }
+
+       /**
+        * @param $memc MemcachedBagOStuff
+        * @param $keys Array List of acquired keys
+        * @return void
+        */
+       protected function releaseMutexes( MemcachedBagOStuff $memc, array $keys ) {
+               foreach ( $keys as $key ) {
+                       $memc->delete( "$key:mutex" );
+               }
+       }
+
+       /**
+        * Make sure remaining locks get cleared for sanity
+        */
+       function __destruct() {
+               while ( count( $this->locksHeld ) ) {
+                       foreach ( $this->locksHeld as $path => $locks ) {
+                               $this->doUnlock( array( $path ), self::LOCK_EX );
+                               $this->doUnlock( array( $path ), self::LOCK_SH );
+                       }
+               }
+       }
+}
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 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) (‪中文(香港)‬)
diff --git a/includes/job/Job.php b/includes/job/Job.php
new file mode 100644 (file)
index 0000000..7b7ec0c
--- /dev/null
@@ -0,0 +1,447 @@
+<?php
+/**
+ * Job queue base code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @defgroup JobQueue JobQueue
+ */
+
+/**
+ * Class to both describe a background job and handle jobs.
+ *
+ * @ingroup JobQueue
+ */
+abstract class Job {
+
+       /**
+        * @var Title
+        */
+       var $title;
+
+       var $command,
+               $params,
+               $id,
+               $removeDuplicates,
+               $error;
+
+       /*-------------------------------------------------------------------------
+        * Abstract functions
+        *------------------------------------------------------------------------*/
+
+       /**
+        * Run the job
+        * @return boolean success
+        */
+       abstract function run();
+
+       /*-------------------------------------------------------------------------
+        * Static functions
+        *------------------------------------------------------------------------*/
+
+       /**
+        * Pop a job of a certain type.  This tries less hard than pop() to
+        * actually find a job; it may be adversely affected by concurrent job
+        * runners.
+        *
+        * @param $type string
+        *
+        * @return Job
+        */
+       static function pop_type( $type ) {
+               wfProfilein( __METHOD__ );
+
+               $dbw = wfGetDB( DB_MASTER );
+
+               $dbw->begin( __METHOD__ );
+
+               $row = $dbw->selectRow(
+                       'job',
+                       '*',
+                       array( 'job_cmd' => $type ),
+                       __METHOD__,
+                       array( 'LIMIT' => 1, 'FOR UPDATE' )
+               );
+
+               if ( $row === false ) {
+                       $dbw->commit( __METHOD__ );
+                       wfProfileOut( __METHOD__ );
+                       return false;
+               }
+
+               /* Ensure we "own" this row */
+               $dbw->delete( 'job', array( 'job_id' => $row->job_id ), __METHOD__ );
+               $affected = $dbw->affectedRows();
+               $dbw->commit( __METHOD__ );
+
+               if ( $affected == 0 ) {
+                       wfProfileOut( __METHOD__ );
+                       return false;
+               }
+
+               wfIncrStats( 'job-pop' );
+               $namespace = $row->job_namespace;
+               $dbkey = $row->job_title;
+               $title = Title::makeTitleSafe( $namespace, $dbkey );
+               $job = Job::factory( $row->job_cmd, $title, Job::extractBlob( $row->job_params ),
+                       $row->job_id );
+
+               $job->removeDuplicates();
+
+               wfProfileOut( __METHOD__ );
+               return $job;
+       }
+
+       /**
+        * Pop a job off the front of the queue
+        *
+        * @param $offset Integer: Number of jobs to skip
+        * @return Job or false if there's no jobs
+        */
+       static function pop( $offset = 0 ) {
+               wfProfileIn( __METHOD__ );
+
+               $dbr = wfGetDB( DB_SLAVE );
+
+               /* Get a job from the slave, start with an offset,
+                       scan full set afterwards, avoid hitting purged rows
+
+                       NB: If random fetch previously was used, offset
+                               will always be ahead of few entries
+               */
+
+               $conditions = self::defaultQueueConditions();
+
+               $offset = intval( $offset );
+               $options = array( 'ORDER BY' => 'job_id', 'USE INDEX' => 'PRIMARY' );
+
+               $row = $dbr->selectRow( 'job', '*',
+                       array_merge( $conditions, array( "job_id >= $offset" ) ),
+                       __METHOD__,
+                       $options
+               );
+
+               // Refetching without offset is needed as some of job IDs could have had delayed commits
+               // and have lower IDs than jobs already executed, blame concurrency :)
+               //
+               if ( $row === false ) {
+                       if ( $offset != 0 ) {
+                               $row = $dbr->selectRow( 'job', '*', $conditions, __METHOD__, $options );
+                       }
+
+                       if ( $row === false ) {
+                               wfProfileOut( __METHOD__ );
+                               return false;
+                       }
+               }
+
+               // Try to delete it from the master
+               $dbw = wfGetDB( DB_MASTER );
+               $dbw->delete( 'job', array( 'job_id' => $row->job_id ), __METHOD__ );
+               $affected = $dbw->affectedRows();
+               $dbw->commit( __METHOD__ );
+
+               if ( !$affected ) {
+                       // Failed, someone else beat us to it
+                       // Try getting a random row
+                       $row = $dbw->selectRow( 'job', array( 'MIN(job_id) as minjob',
+                               'MAX(job_id) as maxjob' ), '1=1', __METHOD__ );
+                       if ( $row === false || is_null( $row->minjob ) || is_null( $row->maxjob ) ) {
+                               // No jobs to get
+                               wfProfileOut( __METHOD__ );
+                               return false;
+                       }
+                       // Get the random row
+                       $row = $dbw->selectRow( 'job', '*',
+                               'job_id >= ' . mt_rand( $row->minjob, $row->maxjob ), __METHOD__ );
+                       if ( $row === false ) {
+                               // Random job gone before we got the chance to select it
+                               // Give up
+                               wfProfileOut( __METHOD__ );
+                               return false;
+                       }
+                       // Delete the random row
+                       $dbw->delete( 'job', array( 'job_id' => $row->job_id ), __METHOD__ );
+                       $affected = $dbw->affectedRows();
+                       $dbw->commit( __METHOD__ );
+
+                       if ( !$affected ) {
+                               // Random job gone before we exclusively deleted it
+                               // Give up
+                               wfProfileOut( __METHOD__ );
+                               return false;
+                       }
+               }
+
+               // If execution got to here, there's a row in $row that has been deleted from the database
+               // by this thread. Hence the concurrent pop was successful.
+               wfIncrStats( 'job-pop' );
+               $namespace = $row->job_namespace;
+               $dbkey = $row->job_title;
+               $title = Title::makeTitleSafe( $namespace, $dbkey );
+
+               if ( is_null( $title ) ) {
+                       wfProfileOut( __METHOD__ );
+                       return false;
+               }
+
+               $job = Job::factory( $row->job_cmd, $title, Job::extractBlob( $row->job_params ), $row->job_id );
+
+               // Remove any duplicates it may have later in the queue
+               $job->removeDuplicates();
+
+               wfProfileOut( __METHOD__ );
+               return $job;
+       }
+
+       /**
+        * Create the appropriate object to handle a specific job
+        *
+        * @param $command String: Job command
+        * @param $title Title: Associated title
+        * @param $params Array: Job parameters
+        * @param $id Int: Job identifier
+        * @return Job
+        */
+       static function factory( $command, Title $title, $params = false, $id = 0 ) {
+               global $wgJobClasses;
+               if( isset( $wgJobClasses[$command] ) ) {
+                       $class = $wgJobClasses[$command];
+                       return new $class( $title, $params, $id );
+               }
+               throw new MWException( "Invalid job command `{$command}`" );
+       }
+
+       /**
+        * @param $params
+        * @return string
+        */
+       static function makeBlob( $params ) {
+               if ( $params !== false ) {
+                       return serialize( $params );
+               } else {
+                       return '';
+               }
+       }
+
+       /**
+        * @param $blob
+        * @return bool|mixed
+        */
+       static function extractBlob( $blob ) {
+               if ( (string)$blob !== '' ) {
+                       return unserialize( $blob );
+               } else {
+                       return false;
+               }
+       }
+
+       /**
+        * Batch-insert a group of jobs into the queue.
+        * This will be wrapped in a transaction with a forced commit.
+        *
+        * This may add duplicate at insert time, but they will be
+        * removed later on, when the first one is popped.
+        *
+        * @param $jobs array of Job objects
+        */
+       static function batchInsert( $jobs ) {
+               if ( !count( $jobs ) ) {
+                       return;
+               }
+               $dbw = wfGetDB( DB_MASTER );
+               $rows = array();
+
+               /**
+                * @var $job Job
+                */
+               foreach ( $jobs as $job ) {
+                       $rows[] = $job->insertFields();
+                       if ( count( $rows ) >= 50 ) {
+                               # Do a small transaction to avoid slave lag
+                               $dbw->begin( __METHOD__ );
+                               $dbw->insert( 'job', $rows, __METHOD__, 'IGNORE' );
+                               $dbw->commit( __METHOD__ );
+                               $rows = array();
+                       }
+               }
+               if ( $rows ) { // last chunk
+                       $dbw->begin( __METHOD__ );
+                       $dbw->insert( 'job', $rows, __METHOD__, 'IGNORE' );
+                       $dbw->commit( __METHOD__ );
+               }
+               wfIncrStats( 'job-insert', count( $jobs ) );
+       }
+
+       /**
+        * Insert a group of jobs into the queue.
+        *
+        * Same as batchInsert() but does not commit and can thus
+        * be rolled-back as part of a larger transaction. However,
+        * large batches of jobs can cause slave lag.
+        *
+        * @param $jobs array of Job objects
+        */
+       static function safeBatchInsert( $jobs ) {
+               if ( !count( $jobs ) ) {
+                       return;
+               }
+               $dbw = wfGetDB( DB_MASTER );
+               $rows = array();
+               foreach ( $jobs as $job ) {
+                       $rows[] = $job->insertFields();
+                       if ( count( $rows ) >= 500 ) {
+                               $dbw->insert( 'job', $rows, __METHOD__, 'IGNORE' );
+                               $rows = array();
+                       }
+               }
+               if ( $rows ) { // last chunk
+                       $dbw->insert( 'job', $rows, __METHOD__, 'IGNORE' );
+               }
+               wfIncrStats( 'job-insert', count( $jobs ) );
+       }
+
+
+       /**
+        * SQL conditions to apply on most JobQueue queries
+        *
+        * Whenever we exclude jobs types from the default queue, we want to make
+        * sure that queries to the job queue actually ignore them.
+        *
+        * @return array SQL conditions suitable for Database:: methods
+        */
+       static function defaultQueueConditions( ) {
+               global $wgJobTypesExcludedFromDefaultQueue;
+               $conditions = array();
+               if ( count( $wgJobTypesExcludedFromDefaultQueue ) > 0 ) {
+                       $dbr = wfGetDB( DB_SLAVE );
+                       foreach ( $wgJobTypesExcludedFromDefaultQueue as $cmdType ) {
+                               $conditions[] = "job_cmd != " . $dbr->addQuotes( $cmdType );
+                       }
+               }
+               return $conditions;
+       }
+
+       /*-------------------------------------------------------------------------
+        * Non-static functions
+        *------------------------------------------------------------------------*/
+
+       /**
+        * @param $command
+        * @param $title
+        * @param $params array
+        * @param int $id
+        */
+       function __construct( $command, $title, $params = false, $id = 0 ) {
+               $this->command = $command;
+               $this->title = $title;
+               $this->params = $params;
+               $this->id = $id;
+
+               // A bit of premature generalisation
+               // Oh well, the whole class is premature generalisation really
+               $this->removeDuplicates = true;
+       }
+
+       /**
+        * Insert a single job into the queue.
+        * @return bool true on success
+        */
+       function insert() {
+               $fields = $this->insertFields();
+
+               $dbw = wfGetDB( DB_MASTER );
+
+               if ( $this->removeDuplicates ) {
+                       $res = $dbw->select( 'job', array( '1' ), $fields, __METHOD__ );
+                       if ( $dbw->numRows( $res ) ) {
+                               return true;
+                       }
+               }
+               wfIncrStats( 'job-insert' );
+               return $dbw->insert( 'job', $fields, __METHOD__ );
+       }
+
+       /**
+        * @return array
+        */
+       protected function insertFields() {
+               $dbw = wfGetDB( DB_MASTER );
+               return array(
+                       'job_id' => $dbw->nextSequenceValue( 'job_job_id_seq' ),
+                       'job_cmd' => $this->command,
+                       'job_namespace' => $this->title->getNamespace(),
+                       'job_title' => $this->title->getDBkey(),
+                       'job_timestamp' => $dbw->timestamp(),
+                       'job_params' => Job::makeBlob( $this->params )
+               );
+       }
+
+       /**
+        * Remove jobs in the job queue which are duplicates of this job.
+        * This is deadlock-prone and so starts its own transaction.
+        */
+       function removeDuplicates() {
+               if ( !$this->removeDuplicates ) {
+                       return;
+               }
+
+               $fields = $this->insertFields();
+               unset( $fields['job_id'] );
+               $dbw = wfGetDB( DB_MASTER );
+               $dbw->begin( __METHOD__ );
+               $dbw->delete( 'job', $fields, __METHOD__ );
+               $affected = $dbw->affectedRows();
+               $dbw->commit( __METHOD__ );
+               if ( $affected ) {
+                       wfIncrStats( 'job-dup-delete', $affected );
+               }
+       }
+
+       /**
+        * @return string
+        */
+       function toString() {
+               $paramString = '';
+               if ( $this->params ) {
+                       foreach ( $this->params as $key => $value ) {
+                               if ( $paramString != '' ) {
+                                       $paramString .= ' ';
+                               }
+                               $paramString .= "$key=$value";
+                       }
+               }
+
+               if ( is_object( $this->title ) ) {
+                       $s = "{$this->command} " . $this->title->getPrefixedDBkey();
+                       if ( $paramString !== '' ) {
+                               $s .= ' ' . $paramString;
+                       }
+                       return $s;
+               } else {
+                       return "{$this->command} $paramString";
+               }
+       }
+
+       protected function setLastError( $error ) {
+               $this->error = $error;
+       }
+
+       function getLastError() {
+               return $this->error;
+       }
+}
diff --git a/includes/job/JobQueue.php b/includes/job/JobQueue.php
deleted file mode 100644 (file)
index 7b7ec0c..0000000
+++ /dev/null
@@ -1,447 +0,0 @@
-<?php
-/**
- * Job queue base code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @defgroup JobQueue JobQueue
- */
-
-/**
- * Class to both describe a background job and handle jobs.
- *
- * @ingroup JobQueue
- */
-abstract class Job {
-
-       /**
-        * @var Title
-        */
-       var $title;
-
-       var $command,
-               $params,
-               $id,
-               $removeDuplicates,
-               $error;
-
-       /*-------------------------------------------------------------------------
-        * Abstract functions
-        *------------------------------------------------------------------------*/
-
-       /**
-        * Run the job
-        * @return boolean success
-        */
-       abstract function run();
-
-       /*-------------------------------------------------------------------------
-        * Static functions
-        *------------------------------------------------------------------------*/
-
-       /**
-        * Pop a job of a certain type.  This tries less hard than pop() to
-        * actually find a job; it may be adversely affected by concurrent job
-        * runners.
-        *
-        * @param $type string
-        *
-        * @return Job
-        */
-       static function pop_type( $type ) {
-               wfProfilein( __METHOD__ );
-
-               $dbw = wfGetDB( DB_MASTER );
-
-               $dbw->begin( __METHOD__ );
-
-               $row = $dbw->selectRow(
-                       'job',
-                       '*',
-                       array( 'job_cmd' => $type ),
-                       __METHOD__,
-                       array( 'LIMIT' => 1, 'FOR UPDATE' )
-               );
-
-               if ( $row === false ) {
-                       $dbw->commit( __METHOD__ );
-                       wfProfileOut( __METHOD__ );
-                       return false;
-               }
-
-               /* Ensure we "own" this row */
-               $dbw->delete( 'job', array( 'job_id' => $row->job_id ), __METHOD__ );
-               $affected = $dbw->affectedRows();
-               $dbw->commit( __METHOD__ );
-
-               if ( $affected == 0 ) {
-                       wfProfileOut( __METHOD__ );
-                       return false;
-               }
-
-               wfIncrStats( 'job-pop' );
-               $namespace = $row->job_namespace;
-               $dbkey = $row->job_title;
-               $title = Title::makeTitleSafe( $namespace, $dbkey );
-               $job = Job::factory( $row->job_cmd, $title, Job::extractBlob( $row->job_params ),
-                       $row->job_id );
-
-               $job->removeDuplicates();
-
-               wfProfileOut( __METHOD__ );
-               return $job;
-       }
-
-       /**
-        * Pop a job off the front of the queue
-        *
-        * @param $offset Integer: Number of jobs to skip
-        * @return Job or false if there's no jobs
-        */
-       static function pop( $offset = 0 ) {
-               wfProfileIn( __METHOD__ );
-
-               $dbr = wfGetDB( DB_SLAVE );
-
-               /* Get a job from the slave, start with an offset,
-                       scan full set afterwards, avoid hitting purged rows
-
-                       NB: If random fetch previously was used, offset
-                               will always be ahead of few entries
-               */
-
-               $conditions = self::defaultQueueConditions();
-
-               $offset = intval( $offset );
-               $options = array( 'ORDER BY' => 'job_id', 'USE INDEX' => 'PRIMARY' );
-
-               $row = $dbr->selectRow( 'job', '*',
-                       array_merge( $conditions, array( "job_id >= $offset" ) ),
-                       __METHOD__,
-                       $options
-               );
-
-               // Refetching without offset is needed as some of job IDs could have had delayed commits
-               // and have lower IDs than jobs already executed, blame concurrency :)
-               //
-               if ( $row === false ) {
-                       if ( $offset != 0 ) {
-                               $row = $dbr->selectRow( 'job', '*', $conditions, __METHOD__, $options );
-                       }
-
-                       if ( $row === false ) {
-                               wfProfileOut( __METHOD__ );
-                               return false;
-                       }
-               }
-
-               // Try to delete it from the master
-               $dbw = wfGetDB( DB_MASTER );
-               $dbw->delete( 'job', array( 'job_id' => $row->job_id ), __METHOD__ );
-               $affected = $dbw->affectedRows();
-               $dbw->commit( __METHOD__ );
-
-               if ( !$affected ) {
-                       // Failed, someone else beat us to it
-                       // Try getting a random row
-                       $row = $dbw->selectRow( 'job', array( 'MIN(job_id) as minjob',
-                               'MAX(job_id) as maxjob' ), '1=1', __METHOD__ );
-                       if ( $row === false || is_null( $row->minjob ) || is_null( $row->maxjob ) ) {
-                               // No jobs to get
-                               wfProfileOut( __METHOD__ );
-                               return false;
-                       }
-                       // Get the random row
-                       $row = $dbw->selectRow( 'job', '*',
-                               'job_id >= ' . mt_rand( $row->minjob, $row->maxjob ), __METHOD__ );
-                       if ( $row === false ) {
-                               // Random job gone before we got the chance to select it
-                               // Give up
-                               wfProfileOut( __METHOD__ );
-                               return false;
-                       }
-                       // Delete the random row
-                       $dbw->delete( 'job', array( 'job_id' => $row->job_id ), __METHOD__ );
-                       $affected = $dbw->affectedRows();
-                       $dbw->commit( __METHOD__ );
-
-                       if ( !$affected ) {
-                               // Random job gone before we exclusively deleted it
-                               // Give up
-                               wfProfileOut( __METHOD__ );
-                               return false;
-                       }
-               }
-
-               // If execution got to here, there's a row in $row that has been deleted from the database
-               // by this thread. Hence the concurrent pop was successful.
-               wfIncrStats( 'job-pop' );
-               $namespace = $row->job_namespace;
-               $dbkey = $row->job_title;
-               $title = Title::makeTitleSafe( $namespace, $dbkey );
-
-               if ( is_null( $title ) ) {
-                       wfProfileOut( __METHOD__ );
-                       return false;
-               }
-
-               $job = Job::factory( $row->job_cmd, $title, Job::extractBlob( $row->job_params ), $row->job_id );
-
-               // Remove any duplicates it may have later in the queue
-               $job->removeDuplicates();
-
-               wfProfileOut( __METHOD__ );
-               return $job;
-       }
-
-       /**
-        * Create the appropriate object to handle a specific job
-        *
-        * @param $command String: Job command
-        * @param $title Title: Associated title
-        * @param $params Array: Job parameters
-        * @param $id Int: Job identifier
-        * @return Job
-        */
-       static function factory( $command, Title $title, $params = false, $id = 0 ) {
-               global $wgJobClasses;
-               if( isset( $wgJobClasses[$command] ) ) {
-                       $class = $wgJobClasses[$command];
-                       return new $class( $title, $params, $id );
-               }
-               throw new MWException( "Invalid job command `{$command}`" );
-       }
-
-       /**
-        * @param $params
-        * @return string
-        */
-       static function makeBlob( $params ) {
-               if ( $params !== false ) {
-                       return serialize( $params );
-               } else {
-                       return '';
-               }
-       }
-
-       /**
-        * @param $blob
-        * @return bool|mixed
-        */
-       static function extractBlob( $blob ) {
-               if ( (string)$blob !== '' ) {
-                       return unserialize( $blob );
-               } else {
-                       return false;
-               }
-       }
-
-       /**
-        * Batch-insert a group of jobs into the queue.
-        * This will be wrapped in a transaction with a forced commit.
-        *
-        * This may add duplicate at insert time, but they will be
-        * removed later on, when the first one is popped.
-        *
-        * @param $jobs array of Job objects
-        */
-       static function batchInsert( $jobs ) {
-               if ( !count( $jobs ) ) {
-                       return;
-               }
-               $dbw = wfGetDB( DB_MASTER );
-               $rows = array();
-
-               /**
-                * @var $job Job
-                */
-               foreach ( $jobs as $job ) {
-                       $rows[] = $job->insertFields();
-                       if ( count( $rows ) >= 50 ) {
-                               # Do a small transaction to avoid slave lag
-                               $dbw->begin( __METHOD__ );
-                               $dbw->insert( 'job', $rows, __METHOD__, 'IGNORE' );
-                               $dbw->commit( __METHOD__ );
-                               $rows = array();
-                       }
-               }
-               if ( $rows ) { // last chunk
-                       $dbw->begin( __METHOD__ );
-                       $dbw->insert( 'job', $rows, __METHOD__, 'IGNORE' );
-                       $dbw->commit( __METHOD__ );
-               }
-               wfIncrStats( 'job-insert', count( $jobs ) );
-       }
-
-       /**
-        * Insert a group of jobs into the queue.
-        *
-        * Same as batchInsert() but does not commit and can thus
-        * be rolled-back as part of a larger transaction. However,
-        * large batches of jobs can cause slave lag.
-        *
-        * @param $jobs array of Job objects
-        */
-       static function safeBatchInsert( $jobs ) {
-               if ( !count( $jobs ) ) {
-                       return;
-               }
-               $dbw = wfGetDB( DB_MASTER );
-               $rows = array();
-               foreach ( $jobs as $job ) {
-                       $rows[] = $job->insertFields();
-                       if ( count( $rows ) >= 500 ) {
-                               $dbw->insert( 'job', $rows, __METHOD__, 'IGNORE' );
-                               $rows = array();
-                       }
-               }
-               if ( $rows ) { // last chunk
-                       $dbw->insert( 'job', $rows, __METHOD__, 'IGNORE' );
-               }
-               wfIncrStats( 'job-insert', count( $jobs ) );
-       }
-
-
-       /**
-        * SQL conditions to apply on most JobQueue queries
-        *
-        * Whenever we exclude jobs types from the default queue, we want to make
-        * sure that queries to the job queue actually ignore them.
-        *
-        * @return array SQL conditions suitable for Database:: methods
-        */
-       static function defaultQueueConditions( ) {
-               global $wgJobTypesExcludedFromDefaultQueue;
-               $conditions = array();
-               if ( count( $wgJobTypesExcludedFromDefaultQueue ) > 0 ) {
-                       $dbr = wfGetDB( DB_SLAVE );
-                       foreach ( $wgJobTypesExcludedFromDefaultQueue as $cmdType ) {
-                               $conditions[] = "job_cmd != " . $dbr->addQuotes( $cmdType );
-                       }
-               }
-               return $conditions;
-       }
-
-       /*-------------------------------------------------------------------------
-        * Non-static functions
-        *------------------------------------------------------------------------*/
-
-       /**
-        * @param $command
-        * @param $title
-        * @param $params array
-        * @param int $id
-        */
-       function __construct( $command, $title, $params = false, $id = 0 ) {
-               $this->command = $command;
-               $this->title = $title;
-               $this->params = $params;
-               $this->id = $id;
-
-               // A bit of premature generalisation
-               // Oh well, the whole class is premature generalisation really
-               $this->removeDuplicates = true;
-       }
-
-       /**
-        * Insert a single job into the queue.
-        * @return bool true on success
-        */
-       function insert() {
-               $fields = $this->insertFields();
-
-               $dbw = wfGetDB( DB_MASTER );
-
-               if ( $this->removeDuplicates ) {
-                       $res = $dbw->select( 'job', array( '1' ), $fields, __METHOD__ );
-                       if ( $dbw->numRows( $res ) ) {
-                               return true;
-                       }
-               }
-               wfIncrStats( 'job-insert' );
-               return $dbw->insert( 'job', $fields, __METHOD__ );
-       }
-
-       /**
-        * @return array
-        */
-       protected function insertFields() {
-               $dbw = wfGetDB( DB_MASTER );
-               return array(
-                       'job_id' => $dbw->nextSequenceValue( 'job_job_id_seq' ),
-                       'job_cmd' => $this->command,
-                       'job_namespace' => $this->title->getNamespace(),
-                       'job_title' => $this->title->getDBkey(),
-                       'job_timestamp' => $dbw->timestamp(),
-                       'job_params' => Job::makeBlob( $this->params )
-               );
-       }
-
-       /**
-        * Remove jobs in the job queue which are duplicates of this job.
-        * This is deadlock-prone and so starts its own transaction.
-        */
-       function removeDuplicates() {
-               if ( !$this->removeDuplicates ) {
-                       return;
-               }
-
-               $fields = $this->insertFields();
-               unset( $fields['job_id'] );
-               $dbw = wfGetDB( DB_MASTER );
-               $dbw->begin( __METHOD__ );
-               $dbw->delete( 'job', $fields, __METHOD__ );
-               $affected = $dbw->affectedRows();
-               $dbw->commit( __METHOD__ );
-               if ( $affected ) {
-                       wfIncrStats( 'job-dup-delete', $affected );
-               }
-       }
-
-       /**
-        * @return string
-        */
-       function toString() {
-               $paramString = '';
-               if ( $this->params ) {
-                       foreach ( $this->params as $key => $value ) {
-                               if ( $paramString != '' ) {
-                                       $paramString .= ' ';
-                               }
-                               $paramString .= "$key=$value";
-                       }
-               }
-
-               if ( is_object( $this->title ) ) {
-                       $s = "{$this->command} " . $this->title->getPrefixedDBkey();
-                       if ( $paramString !== '' ) {
-                               $s .= ' ' . $paramString;
-                       }
-                       return $s;
-               } else {
-                       return "{$this->command} $paramString";
-               }
-       }
-
-       protected function setLastError( $error ) {
-               $this->error = $error;
-       }
-
-       function getLastError() {
-               return $this->error;
-       }
-}
index e9c2bad..fc75cdc 100644 (file)
@@ -152,6 +152,13 @@ class CSSMin {
                                $offset = $match[0][1] + strlen( $match[0][0] ) + $lengthIncrease;
                                continue;
                        }
+
+                       // Guard against double slashes, because "some/remote/../foo.png"
+                       // resolves to "some/remote/foo.png" on (some?) clients (bug 27052).
+                       if ( substr( $remote, -1 ) == '/' ) {
+                               $remote = substr( $remote, 0, -1 );
+                       }
+
                        // Shortcuts
                        $embed = $match['embed'][0];
                        $pre = $match['pre'][0];
@@ -159,10 +166,9 @@ class CSSMin {
                        $query = $match['query'][0];
                        $url = "{$remote}/{$match['file'][0]}";
                        $file = "{$local}/{$match['file'][0]}";
-                       // bug 27052 - Guard against double slashes, because foo//../bar
-                       // apparently resolves to foo/bar on (some?) clients
-                       $url = preg_replace( '#([^:])//+#', '\1/', $url );
+
                        $replacement = false;
+
                        if ( $local !== false && file_exists( $file ) ) {
                                // Add version parameter as a time-stamp in ISO 8601 format,
                                // using Z for the timezone, meaning GMT
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 f881455..7bd2aab 100644 (file)
@@ -2720,6 +2720,18 @@ class Parser {
                                $subjPage = $this->mTitle->getSubjectPage();
                                $value = wfEscapeWikiText( $subjPage->getPrefixedUrl() );
                                break;
+                       case 'pageid': // requested in bug 23427
+                               $pageid = $this->getTitle()->getArticleId();
+                               if( $pageid == 0 ) {
+                                       # 0 means the page doesn't exist in the database,
+                                       # which means the user is previewing a new page.
+                                       # The vary-revision flag must be set, because the magic word
+                                       # will have a different value once the page is saved.
+                                       $this->mOutput->setFlag( 'vary-revision' );
+                                       wfDebug( __METHOD__ . ": {{PAGEID}} used in a new page, setting vary-revision...\n" );
+                               }
+                               $value = $pageid ? $pageid : null;
+                               break;
                        case 'revisionid':
                                # Let the edit saving system know we should parse the page
                                # *after* a revision ID has been assigned.
@@ -4171,7 +4183,7 @@ class Parser {
                        # Don't number the heading if it is the only one (looks silly)
                        if ( count( $matches[3] ) > 1 && $this->mOptions->getNumberHeadings() ) {
                                # the two are different if the line contains a link
-                               $headline = $numbering . ' ' . $headline;
+                               $headline = Html::element( 'span', array( 'class' => 'mw-headline-number' ), $numbering ) . ' ' . $headline;
                        }
 
                        # Create the anchor for linking from the TOC to the section
@@ -4402,7 +4414,7 @@ class Parser {
 
                $p1 = "/\[\[(:?$nc+:|:|)($tc+?)( ?\\($tc+\\))\\|]]/";           # [[ns:page (context)|]]
                $p4 = "/\[\[(:?$nc+:|:|)($tc+?)( ?($tc+))\\|]]/";           # [[ns:page(context)|]]
-               $p3 = "/\[\[(:?$nc+:|:|)($tc+?)( ?\\($tc+\\)|)($tc+|)\\|]]/"; # [[ns:page (context), context|]]
+               $p3 = "/\[\[(:?$nc+:|:|)($tc+?)( ?\\($tc+\\)|)((?:, |,)$tc+|)\\|]]/"; # [[ns:page (context), context|]]
                $p2 = "/\[\[\\|($tc+)]]/";                                      # [[|page]]
 
                # try $p1 first, to turn "[[A, B (C)|]]" into "[[A, B (C)|A, B]]"
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 b823f1d..a36aaec 100644 (file)
  */
 class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
 
+       protected $language;
        /**
         * Get the grammer forms for the site content language.
         *
         * @return array
         */
        protected function getSiteLangGrammarForms() {
-               global $wgContLang;
-               return $wgContLang->getGrammarForms();
+               return $this->language->getGrammarForms();
+       }
+
+       /**
+        * Get the digit transform table for the content language
+        * Seperator transform table also required here to convert
+        * the . and , sign to appropriate forms in content language.
+        *
+        * @return array
+        */
+       protected function getDigitTransformTable() {
+               $digitTransformTable = $this->language->digitTransformTable();
+               $separatorTransformTable = $this->language->separatorTransformTable();
+               if ( $digitTransformTable ) {
+                       array_merge( $digitTransformTable, (array)$separatorTransformTable );
+               } else {
+                       return $separatorTransformTable;
+               }
+               return $digitTransformTable;
+       }
+
+       /**
+        * Get all the dynamic data for the content language to an array
+        *
+        * @return array
+        */
+       protected function getData() {
+               return array( 'grammarForms' => $this->getSiteLangGrammarForms(),
+                               'digitTransformTable' => $this->getDigitTransformTable()
+                       );
        }
 
        /**
@@ -42,13 +71,10 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
         * @return string: Javascript code
         */
        public function getScript( ResourceLoaderContext $context ) {
-               global $wgContLang;
-
+               $this->language = Language::factory( $context ->getLanguage() );
                return Xml::encodeJsCall( 'mw.language.setData', array(
-                       $wgContLang->getCode(),
-                       array(
-                               'grammarForms' => $this->getSiteLangGrammarForms()
-                       )
+                       $this->language->getCode(),
+                       $this->getData()
                ) );
        }
 
@@ -57,11 +83,12 @@ class ResourceLoaderLanguageDataModule extends ResourceLoaderModule {
         * @return array|int|Mixed
         */
        public function getModifiedTime( ResourceLoaderContext $context ) {
+               $this->language = Language::factory( $context ->getLanguage() );
                $cache = wfGetCache( CACHE_ANYTHING );
                $key = wfMemcKey( 'resourceloader', 'langdatamodule', 'changeinfo' );
 
-               $forms = $this->getSiteLangGrammarForms();
-               $hash = md5( serialize( $forms ) );
+               $data = $this->getData();
+               $hash = md5( serialize( $data ) );
 
                $result = $cache->get( $key );
                if ( is_array( $result ) && $result['hash'] === $hash ) {
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 2b88325..b30605b 100644 (file)
@@ -63,10 +63,7 @@ class SpecialChangePassword extends UnlistedSpecialPage {
 
                if( $request->wasPosted() && $user->matchEditToken( $request->getVal( 'token' ) ) ) {
                        try {
-                               if ( isset( $_SESSION['wsDomain'] ) ) {
-                                       $this->mDomain = $_SESSION['wsDomain'];
-                               }
-                               $wgAuth->setDomain( $this->mDomain );
+                               $this->mDomain = $wgAuth->getDomain();
                                if( !$wgAuth->allowPasswordChange() ) {
                                        $this->error( $this->msg( 'resetpass_forbidden' )->text() );
                                        return;
index 49aa7e6..9465037 100644 (file)
@@ -706,7 +706,7 @@ class ContribsPager extends ReverseChronologicalPager {
                                $revIds[] = $row->rev_parent_id;
                        }
                }
-               $this->mParentLens = $this->getParentLengths( $revIds );
+               $this->mParentLens = Revision::getParentLengths( $this->getDatabase(), $revIds );
                $this->mResult->rewind(); // reset
 
                # Do a link batch query
@@ -724,28 +724,6 @@ class ContribsPager extends ReverseChronologicalPager {
                $this->mResult->seek( 0 );
        }
 
-       /**
-        * Do a batched query to get the parent revision lengths
-        * @param $revIds array
-        * @return array
-        */
-       private function getParentLengths( array $revIds ) {
-               $revLens = array();
-               if ( !$revIds ) {
-                       return $revLens; // empty
-               }
-               wfProfileIn( __METHOD__ );
-               $res = $this->getDatabase()->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;
-       }
-
        /**
         * @return string
         */
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..ea73763 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( "
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 ded2721..7d91096 100644 (file)
@@ -125,11 +125,7 @@ class LoginForm extends SpecialPage {
                }
 
                if( !$wgAuth->validDomain( $this->mDomain ) ) {
-                       if ( isset( $_SESSION['wsDomain'] ) ) {
-                               $this->mDomain = $_SESSION['wsDomain'];
-                       } else {
-                               $this->mDomain = 'invaliddomain';
-                       }
+                       $this->mDomain = $wgAuth->getDomain();
                }
                $wgAuth->setDomain( $this->mDomain );
 
index 06ef711..e5a45fe 100644 (file)
@@ -56,8 +56,8 @@
        'bcc' => 'بلوچی مکرانی', # Southern Balochi
        'bcl' => 'Bikol Central', # Bikol: Central Bicolano language
        'be' => 'беларуская', #  Belarusian normative
-       'be-tarask' => "\xE2\x80\xAAÐ\91еларуская (тарашкевіца)\xE2\x80\xAC", # Belarusian in Taraskievica orthography
-       'be-x-old' => "\xE2\x80\xAAÐ\91еларуская (тарашкевіца)\xE2\x80\xAC",  # Belarusian in Taraskievica orthography; compat link
+       'be-tarask' => "\xE2\x80\xAAбеларуская (тарашкевіца)\xE2\x80\xAC", # Belarusian in Taraskievica orthography
+       'be-x-old' => "\xE2\x80\xAAбеларуская (тарашкевіца)\xE2\x80\xAC",  # Belarusian in Taraskievica orthography; compat link
        'bg' => 'български',   # Bulgarian
        'bh' => 'भोजपुरी',        # Bihari macro language. Falls back to Bhojpuri (bho). The name actually says "Bhojpuri".
        'bho' => 'भोजपुरी',       # Bhojpuri
@@ -90,8 +90,8 @@
        '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)
+       'csb' => 'kaszëbsczi', # Cassubian
+       'cu' => 'словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ',      # Old Church Slavonic (ancient language)
        'cv' => 'Чӑвашла',       # Chuvash
        'cy' => 'Cymraeg',              # Welsh
        'da' => 'dansk',                # Danish
        'de-ch' => 'Schweizer Hochdeutsch',             # Swiss Standard German
        'de-formal' => "\xE2\x80\xAADeutsch (Sie-Form)\xE2\x80\xAC",            # German - formal address ("Sie")
        'diq' => 'Zazaki',              # Zazaki
-       'dsb' => 'Dolnoserbski', # Lower Sorbian
+       'dsb' => 'dolnoserbski', # Lower Sorbian
        'dtp' => 'Dusun Bundu-liwan', # Central Dusun
        '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
        'hil' => 'Ilonggo',     # Hiligaynon
        'ho' => 'Hiri Motu',    # Hiri Motu
        'hr' => 'hrvatski',             # Croatian
-       'hsb' => 'Hornjoserbsce',       # Upper Sorbian
+       'hsb' => 'hornjoserbsce',       # Upper Sorbian
        'ht'  => 'Kreyòl ayisyen',             # Haitian Creole French
        'hu' => 'magyar',               # Hungarian
        'hy' => 'Հայերեն',       # Armenian
        'roa-rup' => 'Armãneashce', # Aromanian (deprecated code, 'rup' exists in ISO 693-3)
        'roa-tara' => 'tarandíne',     # Tarantino
        'ru' => 'русский',       # Russian
-       'rue' => 'Русиньскый',        # Rusyn
+       'rue' => 'русиньскый',        # Rusyn
        'rup' => 'Armãneashce', # Aromanian
        'ruq' => 'Vlăheşte',  # Megleno-Romanian (multiple scripts - defaults to Latin)
        'ruq-cyrl' => 'Влахесте',       # Megleno-Romanian (Cyrillic script)
        'se' => 'sámegiella',  # Northern Sami
        'sei' => 'Cmique Itom', # Seri
        'sg' => 'Sängö',              # Sango/Sangho
-       'sgs' => 'Žemaitėška', # Samogitian
+       'sgs' => 'žemaitėška', # Samogitian
        'sh' => 'srpskohrvatski / српскохрватски', # Serbocroatian
        'shi' => 'Tašlḥiyt/ⵜⴰⵛⵍⵃⵉⵜ',    # Tachelhit (multiple scripts - defaults to Latin)
        'shi-tfng' => 'ⵜⴰⵛⵍⵃⵉⵜ',    # Tachelhit (Tifinagh script)
        'su' => 'Basa Sunda',   # Sundanese
        'sv' => 'svenska',              # Swedish
        'sw' => 'Kiswahili',    # Swahili
-       'szl' => 'Å\9alůnski',   # Silesian
+       'szl' => 'Å\9blůnski',   # Silesian
        'ta' => 'தமிழ்',      # Tamil
        'tcy' => 'ತುಳು', # Tulu
        'te' => 'తెలుగు',   # Telugu
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 7c05478..3afa7fc 100644 (file)
@@ -208,7 +208,7 @@ $messages = array(
 'qbbrowse' => 'ܡܦܐܬ',
 'qbedit' => 'ܫܚܠܦ',
 'qbpageoptions' => 'ܗܕܐ ܦܐܬܐ',
-'qbmyoptions' => 'Ü\95Ì\88ܦܐ ܕܝܠܝ',
+'qbmyoptions' => 'ܦÜ\90ܬܬÌ\88ܐ ܕܝܠܝ',
 'qbspecialpages' => 'ܦܐܬܬ̈ܐ ܕ̈ܝܠܢܝܬܐ',
 'faq' => 'ܫܘܐܠ̈ܐ ܬܢܝ̈ܐ',
 'faqpage' => 'Project:ܫܘܐܠ̈ܐ ܬܢܝ̈ܐ',
@@ -284,9 +284,9 @@ $messages = array(
 'jumpto' => 'ܫܘܪ ܠ:',
 'jumptonavigation' => 'ܐܠܦܪܘܬܐ',
 'jumptosearch' => 'ܒܨܝܐ',
-'view-pool-error' => 'ܬÜ\98Ü\9dÜ\9aܐ، ܬܫܡܫܬ̈ܐ ܐܢܘܢ ܠܐ̈ܝܐ ܗܫܐܝܬ
-Ü£Ü\93Ü\9d Ü¡Ü¦Ü Ü\9aÜ¢Ì\88Ü\90 Ü¢Ü£Ü\9dÜ¢ Ü Ü\9aÜ\99Ü\9dÜ\90 Ü\95Ü\97Ü¢Ü\90 Ü\95ܦܐ
-ܦÜ\9dÜ£Ü\90 Ü¡Ü¢Ü\9f Ü£Ü\9fÜ\9d Ü©Ü Ü\9dÜ  Ü¡Ü¢ Ü©Ü\95Ü¡ Ü\95ܬܢܣÜ\90 Ü Ü¡Ü\9bÜ\9dÜ\90 Ü Ü\97Ü¢Ü\90 Ü\95ܦܐ ܙܒܢܬܐ ܐܚܪܬܐ.
+'view-pool-error' => 'Ü«Ü\98Ü\92Ü©Ü¢ܐ، ܬܫܡܫܬ̈ܐ ܐܢܘܢ ܠܐ̈ܝܐ ܗܫܐܝܬ
+Ü£Ü\93Ü\9d Ü¡Ü¦Ü Ü\9aÜ¢Ì\88Ü\90 Ü¢Ü£Ü\9dÜ¢ Ü Ü\9aÜ\99Ü\9dÜ\90 Ü\95ܦÜ\90ܬÜ\90 Ü\97Ü\95ܐ
+ܦÜ\9dÜ£Ü\90 Ü¡Ü¢Ü\9f Ü£Ü\9fÜ\9d Ü©Ü Ü\9dÜ  Ü¡Ü¢ Ü©Ü\95Ü¡ Ü\95ܬܢܣÜ\90 Ü Ü¡Ü\9bÜ\9dÜ\90 Ü Ü¦Ü\90ܬÜ\90 Ü\97Ü\95ܐ ܙܒܢܬܐ ܐܚܪܬܐ.
 
 $1',
 'pool-timeout' => 'ܫܠܡ ܥܕܢܐ ܣܒܪܬܐ ܠܚܠܩܐ',
@@ -368,8 +368,8 @@ $1',
 'actionthrottled' => 'ܠܐ ܡܬܡܨܝܢܬܐ ܐܝܬܝܗܝ ܠܡܥܒܕ ܝܬܝܪ ܡܢ ܗܢܐ ܥܒܕܐ',
 'viewsourcetext' => 'ܡܨܐ ܐܢܬ ܕܢܚܙܐ ܘܢܣܚܐ ܠܡܒܘ̈ܥܐ ܕܗܕܐ ܦܐܬܐ:',
 'protectedinterface' => 'ܗܕܐ ܦܐܬܐ ܡܘܬܪܐ ܟܬܝܒܬܐ ܕܦܐܬܐ ܠܚܘܪܙܐ, ܘܐܝܬܝܗܝ ܢܛܪܬܐ ܠܡܘܢܥ ܚܘܒܠܐ.',
-'editinginterface' => "'''Ü\99Ü\98Ü\97ܪÜ\90:''' Ü\90ܢܬ Ü«Ü\9aܠܦܬ Ü\95ܦÜ\90 Ü\95ܡܬܦܠÜ\9a ܒܚܙܝܐ ܟܬܝܒܝܐ ܕܚܘܪܙܐ.
\9fÜ  Ü«Ü\98Ü\9aܠܦÜ\90 Ü\92Ü\97Ü¢Ü\90 Ü\95ܦÜ\90 Ü¢Ü\97Ü\98Ü\90 Ü Ü\97 Ü¡Ü¥Ü\92Ü\95Ü¢Ü\98ܬÜ\90 Ü¥Ü  Ü\90Ü£Ü\9fÜ¡Ü\90 Ü\95Ü\95ܦܐ ܕܡܦܠܚܢܐ ܕܡܦܠܚܢ̈ܐ ܐܚܪ̈ܢܐ.
+'editinginterface' => "'''Ü\99Ü\98Ü\97ܪÜ\90:''' Ü\90ܢܬ Ü«Ü\9aܠܦܬ Ü¦Ü\90ܬÜ\90 Ü\95ܡܬܦܠÜ\9aܬ ܒܚܙܝܐ ܟܬܝܒܝܐ ܕܚܘܪܙܐ.
\9fÜ  Ü«Ü\98Ü\9aܠܦÜ\90 Ü\92ܦÜ\90ܬÜ\90 Ü\97Ü\95Ü\90 Ü¢Ü\97Ü\98Ü\90 Ü Ü\97 Ü¡Ü¥Ü\92Ü\95Ü¢Ü\98ܬÜ\90 Ü¥Ü  Ü\90Ü£Ü\9fÜ¡Ü\90 Ü\95ܦÜ\90ܬܐ ܕܡܦܠܚܢܐ ܕܡܦܠܚܢ̈ܐ ܐܚܪ̈ܢܐ.
 ܠܬܘܪ̈ܓܡܐ، ܐܦܠܚ ܬܪܡܝܬܐ ܕܬܘܪܓܡܐ ܕܡܝܕܝܐܘܝܩܝ [//translatewiki.net/wiki/Main_Page?setlang=ar translatewiki.net].",
 'sqlhidden' => '(ܒܘܬܬܐ SQL ܛܫܝܐ)',
 'namespaceprotected' => "ܠܝܬ ܠܟ ܦܣܣܐ ܠܫܚܠܦܬܐ ܕܦܐܬܬ̈ܐ ܒܚܩܠܐ ܕ'''$1'''.",
@@ -377,9 +377,9 @@ $1',
 # Login and logout pages
 'logouttext' => "'''ܗܫܐ ܦܠܛܠܟ ܡܢ ܚܘܫܒܢܟ.'''
 
-ܡܨÜ\90 Ü\90ܢܬ Ü\95Ü\90ܬÜ\9aÜ«Ü\9a {{SITENAME}} ܐܝܟ ܡܦܠܚܢܐ ܠܐ ܝܕܝܥܐ ܐܘ ܡܨܐ ܐܢܬ ܕ[[Special:UserLogin|ܬܥܘܠ]] ܒܚܘܫܒܢܐ ܥܝܢܗ ܐܘ ܐܝܟ ܡܦܠܚܢܐ ܐܚܪܢܐ.
+ܡܨÜ\90 Ü\90ܢܬ Ü\90ܦܠÜ\9aܬ {{SITENAME}} ܐܝܟ ܡܦܠܚܢܐ ܠܐ ܝܕܝܥܐ ܐܘ ܡܨܐ ܐܢܬ ܕ[[Special:UserLogin|ܬܥܘܠ]] ܒܚܘܫܒܢܐ ܥܝܢܗ ܐܘ ܐܝܟ ܡܦܠܚܢܐ ܐܚܪܢܐ.
 
\9aÜ\95 Ü\9fÜ¡Ü\90 Ü¡Ü¢ Ü\95Ì\88ܦÜ\90 Ü¡Ü¬Ü\9aÜ\99Ü\9dÜ¢ Ü\90Ü\9dÜ\9f Ü\95Ü\97Ü\98 Ü\90ܢܬ Ü¥Ü Ü\9dÜ Ü\90 Ü¥Ü\95Ü¡Ü\90 Ü\95Ü\90ܣܦܩܬ Ü Ü\95Ì\88ܦÜ\90 Ü Ü\92Ü\9dÜ\9f̈ܐ ܕܡܦܐܬܢܐ ܕܝܠܟ",
\9aÜ\95 Ü\9fÜ¡Ü\90 Ü¡Ü¢ Ü¦Ü\90ܬܬÌ\88Ü\90 Ü¡Ü¬Ü\9aÜ\99Ü\9dÜ¢ Ü\90Ü\9dÜ\9f Ü\95Ü\97Ü\98 Ü\90ܢܬ Ü¥Ü Ü\9dÜ Ü\90 Ü¥Ü\95Ü¡Ü\90 Ü\95Ü\90ܣܦܩܬ Ü Ü¦Ü\90ܬܬÌ\88Ü\90 Ü Ü\92Ü\9dÜ\9fܬ̈ܐ ܕܡܦܐܬܢܐ ܕܝܠܟ",
 'welcomecreation' => '== ܒܫܝܢܐ, $1! ==
 ܐܬܒܪܝ ܚܘܫܒܢܟ.
 ܠܐ ܢܫܐ ܐܢܬ ܠܫܚܠܦܬܐ ܕ[[Special:Preferences|ܨܒܝܢܝܘܬ̈ܐ ܒ {{SITENAME}}]].',
@@ -454,7 +454,7 @@ $1',
 'subject' => 'ܡܠܘܐܐ/ܡܘܢܥܐ ܪܫܝܐ:',
 'minoredit' => 'ܗܢܐ ܗܘ ܫܘܚܠܦܐ ܙܥܘܪܐ',
 'watchthis' => 'ܪܗܝ ܦܐܬܐ ܗܕܐ',
-'savearticle' => 'Ü Ü\92Ü\98Ü\9f Ü\95ܦܐ',
+'savearticle' => 'Ü Ü\92Ü\98Ü\9f Ü¦Ü\90ܬܐ',
 'preview' => 'ܚܝܪܐ ܩܕܡܝܐ',
 'showpreview' => 'ܚܘܝ ܚܝܪܐ ܩܕܡܝܐ',
 'showlivepreview' => 'ܚܝܪܐ ܩܕܡܝܐ ܚܝܐ',
@@ -469,8 +469,8 @@ $1',
 'loginreqlink' => 'ܥܘܠ',
 'accmailtitle' => 'ܡܠܬܐ ܕܥܠܠܐ ܫܕܪܬ',
 'newarticle' => '(ܚܕܬܐ)',
-'newarticletext' => "Ü\90ܬܬ Ü\92ܬܪ Ü\90ܣܪÜ\90 Ü\95Ü\95ܦÜ\90 Ü\95Ü Ü\90 Ü\90ܬܬܣÜ\9dÜ¡ ܥܕܡܫ.
-ܠܣÜ\98Ü\9dÜ¡Ü\90 Ü\95Ü\95ܦÜ\90 Ü\97Ü¢Ü\90, Ü«ÜªÜ\9d Ü Ü\9fܬÜ\92ܬÜ\90 Ü\92ܣܢÜ\95Ü\98Ü©Ü\90 Ü Ü¬Ü\9aܬ (Ü\9aÜ\99Ü\9d [[{{MediaWiki:Helppage}}|Ü\95ܦܐ ܕܥܘܕܪܢܐ]] ܠܐܚܪܢܐ ܝܕ̈ܥܬܐ).
+'newarticletext' => "Ü\90ܬܬ Ü\92ܬܪ Ü\90ܣܪÜ\90 Ü\95ܦÜ\90ܬÜ\90 Ü\95Ü Ü\90 Ü\90ܬܬܣÜ\9dܡܬ ܥܕܡܫ.
+ܠܣÜ\98Ü\9dÜ¡Ü\90 Ü\95ܦÜ\90ܬÜ\90 Ü\97Ü\95Ü\90, Ü«ÜªÜ\9d Ü Ü\9fܬÜ\92ܬÜ\90 Ü\92ܣܢÜ\95Ü\98Ü©Ü\90 Ü Ü¬Ü\9aܬ (Ü\9aÜ\99Ü\9d [[{{MediaWiki:Helppage}}|ܦÜ\90ܬܐ ܕܥܘܕܪܢܐ]] ܠܐܚܪܢܐ ܝܕ̈ܥܬܐ).
 ܐܢ ܐܬܬ ܠܗܪܟܐ ܦܘܕܐܝܬ, ܕܘܫ ܠܦܪܡܝܬܐ ܕ '''ܠܒܣܬܪ back''' ܒܡܦܐܬܢܐ ܕܝܠܟ.",
 'updated' => '(ܐܬܚܕܬ)',
 'note' => "'''ܡܥܝܪܢܘܬܐ:'''",
@@ -483,8 +483,8 @@ $1',
 'editingcomment' => 'ܫܚܠܦܬܐ ܕ $1 (ܡܢܬܐ ܚܕܬܐ)',
 'yourtext' => 'ܟܬܒܬܐ ܕܝܠܟ',
 'storedversion' => 'ܬܢܝܬ̈ܐ ܐܣܝܢ̈ܐ',
-'editingold' => "'''Ü\99Ü\98Ü\97ܪÜ\90: Ü«Ü\9aܠܦ Ü\90ܢܬ Ü¬Ü¢Ü\9dܬÜ\90 Ü¥Ü¬Ü\9dܩܬÜ\90 Ü\95Ü\95ܦÜ\90 Ü\97Ü¢ܐ.'''
\90Ü¢ Ü Ü\92Ü\9f Ü\90ܢܬ Ü\95ܦÜ\90 Ü\97Ü¢ܐ, ܟܠ ܫܘ̈ܚܠܦܐ ܕܐܬܥܒܕܘ ܒܬܪ ܗܕܐ ܬܢܝܬܐ ܢܬܛܠܩܘܢ.",
+'editingold' => "'''Ü\99Ü\98Ü\97ܪÜ\90: Ü«Ü\9aܠܦ Ü\90ܢܬ Ü¬Ü¢Ü\9dܬÜ\90 Ü¥Ü¬Ü\9dܩܬÜ\90 Ü\95ܦÜ\90ܬÜ\90 Ü\97Ü\95ܐ.'''
\90Ü¢ Ü Ü\92Ü\9f Ü\90ܢܬ Ü¦Ü\90ܬÜ\90 Ü\97Ü\95ܐ, ܟܠ ܫܘ̈ܚܠܦܐ ܕܐܬܥܒܕܘ ܒܬܪ ܗܕܐ ܬܢܝܬܐ ܢܬܛܠܩܘܢ.",
 'yourdiff' => 'ܦܪ̈ܝܫܘܝܬܐ',
 'templatesused' => '{{PLURAL:$1|ܩܠܒܐ|ܩܠܒ̈ܐ}} ܒܦܐܬܐ ܗܕܐ:',
 'template-protected' => '(ܢܛܝܪܐ)',
@@ -574,9 +574,9 @@ $1',
 'history-title' => '"$1": ܬܫܥܝܬܐ ܕܬܢܝܬܐ',
 'difference-title' => '«$1»: ܦܘܪܫܐ ܒܝܢܝ ܬܢܝܬ̈ܐ',
 'difference-title-multipage' => '«$1» ܘ«$2»: ܦܘܪܫܐ ܒܝܢܝ ܬܢܝܬ̈ܐ',
-'difference-multipage' => '(ܦÜ\98ܪܫÜ\90 Ü\92Ü\9dÜ¢Ü\9d Ü\95Ì\88ܦܐ)',
+'difference-multipage' => '(ܦÜ\98ܪܫÜ\90 Ü\92Ü\9dÜ¢Ü\9d Ü¦Ü\90ܬܬÌ\88ܐ)',
 'lineno' => 'ܣܪܛܐ $1:',
-'compareselectedversions' => 'ܦÜ\9aÜ\98Ü¡ Ü\92Ü\9dܬ ܬܪܝܢ ܬܢܝܬ̈ܐ ܓܒܝܬ̈ܐ',
+'compareselectedversions' => 'ܦÜ\9aÜ\98Ü¡ Ü\92Ü\9dÜ¢Ü\9d  ܬܪܝܢ ܬܢܝܬ̈ܐ ܓܒܝܬ̈ܐ',
 'showhideselectedversions' => 'ܚܘܝ/ܛܫܝ ܬܢܝܬ̈ܐ ܓܒܝܬ̈ܐ',
 'editundo' => 'ܠܐ ܬܥܒܕ',
 'diff-multi' => '({{PLURAL:$1|ܚܕܐ ܬܢܝܬܐ ܡܨܥܝܬܐ|$1 ܬܢܝܬ̈ܐ ܡܨܥܝܬ̈ܐ}} ܒܝܕ {{PLURAL:$2|ܚܕ ܡܦܠܚܢܐ ܠܐ ܓܠܝܚܬܐ|$2 ܡܦܠܚܢ̈ܐ ܠܐ ܓܠܝܚܬ̈ܐ}})',
@@ -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' => 'ܒܨܝ ܒܚܩܠܬ̈ܐ:',
@@ -752,7 +752,7 @@ $1',
 'right-createaccount' => 'ܒܪܝ ܚܘܫܒܢ̈ܐ ܕܡܦܠܚܢܐ ܚܕܬܐ',
 'right-minoredit' => 'ܫܘܕܥ ܥܠ ܫܘܚܠܦ̈ܐ ܐܝܟ ܙܥܘܪܐ',
 'right-move' => 'ܫܢܝ ܦܐܬܬ̈ܐ',
-'right-move-subpages' => 'Ü«Ü¢Ü\9d Ü\95Ì\88ܦÜ\90 Ü¥Ü¡ Ü\95Ì\88ܦܐ ܦܪ̈ܥܝܐ ܕܝܠܗܘܢ',
+'right-move-subpages' => 'Ü«Ü¢Ü\9d Ü¦Ü\90ܬܬÌ\88Ü\90 Ü¥Ü¡ Ü¦Ü\90ܬܬÌ\88ܐ ܦܪ̈ܥܝܐ ܕܝܠܗܘܢ',
 'right-movefile' => 'ܫܢܝ ܠܦܦ̈ܐ',
 'right-upload' => 'ܐܣܩ ܠܦܦ̈ܐ',
 'right-delete' => 'ܫܘܦ ܦܐܬܬ̈ܐ',
@@ -794,7 +794,7 @@ $1',
 'recentchanges' => 'ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ',
 'recentchanges-legend' => 'ܓܒܝܬ̈ܐ ܕܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ',
 'recentchanges-summary' => 'ܥܩܒ ܫܘܚܠܦ̈ܐ ܚܕܬ ܡܢ ܟܠ ܕܘܝܩܝ ܒܦܐܬܐ ܗܕܐ.',
-'recentchanges-label-newpage' => 'Ü«Ü\98Ü\9aܠܦÜ\90 Ü\97Ü¢Ü\90 Ü\90ܬܬܣÜ\9dÜ¡ Ü\95ܦܐ ܚܕܬܐ',
+'recentchanges-label-newpage' => 'Ü«Ü\98Ü\9aܠܦÜ\90 Ü\97Ü¢Ü\90 Ü\90ܬܬܣÜ\9dÜ¡ Ü¦Ü\90ܬܐ ܚܕܬܐ',
 'recentchanges-label-minor' => 'ܗܢܘ ܫܘܚܠܦܐ ܙܥܘܪܐ',
 'recentchanges-label-bot' => 'ܒܘܬ (bot) ܥܒܕ ܗܢܐ ܫܘܚܠܦܐ',
 'rclistfrom' => 'ܚܘܝ ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ ܡܢ $1',
@@ -802,6 +802,7 @@ $1',
 'rcshowhidebots' => '$1 ܒܘܬ̈ܐ (Bots)',
 'rcshowhideliu' => '$1 ܡܦܠܚܢ̈ܐ ܥܠܝܠ̈ܐ',
 'rcshowhideanons' => '$1 ܡܦܠܚܢܐ ܠܐ ܝܕܝܥܐ',
+'rcshowhidepatr' => '$1 ܫܘܚܠܦ̈ܐ ܬܢܝ̈ܐ',
 'rcshowhidemine' => '$1 ܫܘܚܠܦ̈ܝ',
 'rclinks' => 'ܚܘܝ $1 ܫܘܚܠܦ̈ܐ ܐܚܪ̈ܝܐ ܒ $2 ܝܘܡܬ̈ܐ ܐܚܪ̈ܝܐ<br />$3',
 'diff' => 'ܦܘܪܫܐ',
@@ -865,6 +866,7 @@ $1',
 'http-read-error' => 'HTTP ܦܘܕܐ ܒܩܪܝܬܐ.',
 'http-curl-error' => 'ܦܘܕܐ ܒܫܟܚܐ ܕURL: $1',
 
+'license' => 'ܦܣܣܐ:',
 'license-header' => 'ܦܣܣܐ',
 'license-nopreview' => '(ܠܝܬ ܚܝܪܐ ܩܕܡܝܐ)',
 'upload_source_file' => ' (ܠܦܦܐ ܥܠ ܚܫܘܒܬܐ ܕܝܠܟ)',
@@ -954,7 +956,7 @@ $1',
 'brokenredirects-delete' => 'ܫܘܦ',
 
 'withoutinterwiki' => 'ܦܐܬܬ̈ܐ ܕܠܐ ܐܣܘܪ̈ܐ ܕܠܫܢ̈ܐ ܐܚܪ̈ܢܐ',
-'withoutinterwiki-summary' => 'Ü\95Ì\88ܦܐ ܗܠܝܢ ܠܐ ܡܛܝܢ ܠܨ̈ܚܚܐ ܕܠܫܢ̈ܐ ܐܚܪ̈ܢܐ.',
+'withoutinterwiki-summary' => 'ܦÜ\90ܬܬÌ\88ܐ ܗܠܝܢ ܠܐ ܡܛܝܢ ܠܨ̈ܚܚܐ ܕܠܫܢ̈ܐ ܐܚܪ̈ܢܐ.',
 'withoutinterwiki-legend' => 'ܫܪܘܝܐ',
 'withoutinterwiki-submit' => 'ܚܘܝ',
 
@@ -987,6 +989,7 @@ $1',
 'protectedpages' => 'ܦܐܬܬ̈ܐ ܢܛܝܪ̈ܬܐ',
 'protectedtitles' => 'ܟܘܢܝ̈ܐ ܢܛܝܪ̈ܐ',
 'protectedtitlestext' => 'ܟܘܢܝ̈ܐ ܗܠܝܢ ܢܛܝܪ̈ܐ ܐܢܘܢ ܠܘܩܒܠ ܒܪܝܐ',
+'protectedtitlesempty' => 'ܠܝܬ ܟܘܢܝ̈ܐ ܢܛܝܪ̈ܐ ܗܫܐܝܬ ܥܡ ܗܠܝܢ ܦܪ̈ܘܫܝܐ',
 'listusers' => 'ܡܟܬܒܘܬܐ ܕܗܕ̈ܡܐ',
 'listusers-editsonly' => 'ܚܘܝ ܡܦܠܚܢ̈ܐ ܥܡ ܫܘܚܠܦ̈ܐ ܒܠܚܘܕ',
 'listusers-creationsort' => 'ܛܟܣ ܐܝܟ ܣܝܩܘܡܐ ܕܒܪܝܐ',
@@ -1044,6 +1047,7 @@ $1',
 
 # Special:LinkSearch
 'linksearch' => 'ܐܣܘܪ̈ܐ ܒܪ̈ܝܐ ܒܨܝܐ',
+'linksearch-pat' => 'ܙܢܐ ܕܒܨܝܐ:',
 'linksearch-ns' => 'ܚܩܠܐ:',
 'linksearch-ok' => 'ܒܨܝ',
 
@@ -1063,6 +1067,7 @@ $1',
 
 # Special:Log/newusers
 'newuserlogpage' => 'ܣܓܠܐ ܕܒܪܝܬܐ ܕܡܦܠܚܢܐ',
+'newuserlogpagetext' => 'ܗܢܘ ܣܓܠܐ ܕܒܪܝܐ ܕܡܦܠܚܢ̈ܐ',
 
 # Special:ListGroupRights
 'listgrouprights' => 'ܙܕ̈ܩܐ ܕܟܢܘܫܬܐ ܕܡܦܠܚܢ̈ܐ',
@@ -1083,6 +1088,8 @@ $1',
 'emailpage' => 'ܫܕܪ ܐܓܪܬܐ ܒܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ ܠܡܦܠܚܢܐ',
 'defemailsubject' => 'ܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ  ܡܢ ܡܦܠܚܢܐ "$1"',
 'noemailtitle' => 'ܠܝܬ ܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ',
+'emailusername' => 'ܫܡܐ ܕܡܦܠܚܢܐ:',
+'emailusernamesubmit' => 'ܫܕܪ',
 'email-legend' => 'ܫܕܪ ܐܓܪܬܐ ܠܡܦܠܚܢܐ ܕ {{SITENAME}} ܐܚܪܢܐ',
 'emailfrom' => 'ܡܢ:',
 'emailto' => 'ܠ:',
@@ -1103,11 +1110,17 @@ $1',
 'watchlistfor2' => 'ܠ $1 $2',
 'nowatchlist' => 'ܠܝܬ ܠܟ ܡܕܡ ܒܪ̈ܗܝܬܐ ܕܝܠܟ',
 'watchnologin' => 'ܠܝܬܝܟ ܥܠܝܠܐ',
-'removedwatchtext' => 'ܦܐܬܐ "[[:$1]]" ܐܫܬܩܠܬ ܡܢ [[Special:Watchlist|ܪ̈ܗܝܬܟ]].',
+'addedwatchtext' => "ܦܐܬܐ ܕ\"[[:\$1]]\" ܐܬܬܘܣܦܬ ܒ[[Special:Watchlist|ܪ̈ܗܝܬܟ]].
+ܐܝܢܐ ܫܘܚܠܦܐ ܠܦܐܬܐ ܗܕܐ ܒܕܥܬܝܕ ܬܬܓܠܚ ܥܡ ܦܐܬܐ ܕܡܡܠܠܐ ܕܝܠܗ ܬܡܢ, ܘܦܐܬܐ ܬܗܘܐ ܒܣܪܛܐ '''ܚܠܝܡܐ''' ܒܦܐܬܐ ܕ[[Special:RecentChanges|ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ]] ܠܦܫܛܬܐ ܕܫܟܚܬܗ.",
+'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' => 'ܨܒܝܢܝܘܬ̈ܐ ܕܪ̈ܗܝܬܐ',
 
@@ -1115,6 +1128,7 @@ $1',
 'watching' => 'ܪܗܝܐ...',
 'unwatching' => 'ܠܐ ܪܗܝܐ...',
 
+'enotif_reset' => 'ܫܘܕܥ ܟܠ ܦܐܬܬ̈ܐ ܐܝܟ ܣܥܝܪ̈ܐ',
 'enotif_newpagetext' => 'ܗܕܐ ܗܝ ܦܐܬܐ ܚܕܬܐ',
 'enotif_impersonal_salutation' => 'ܡܦܠܚܢܐ {{SITENAME}}',
 'changed' => 'ܐܫܬܚܠܦܬ',
@@ -1169,6 +1183,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' => '(ܒܐܝܛ)',
@@ -1186,7 +1201,7 @@ $1',
 
 # Undelete
 'undelete' => 'ܚܙܝ ܦܐܬܬ̈ܐ ܫܝܦܬ̈ܐ',
-'undeletepage' => 'Ü\9aÜ\99Ü\9d Ü\98Ü\90ܦܢÜ\9d Ü\95Ì\88ܦÜ\90 Ü«Ü\9dܦ̈ܐ',
+'undeletepage' => 'Ü\9aÜ\99Ü\9d Ü\98Ü\90ܦܢÜ\9d Ü¦Ü\90ܬܬÌ\88Ü\90 Ü«Ü\9dܦܬ̈ܐ',
 'viewdeletedpage' => 'ܚܙܝ ܦܐܬܬ̈ܐ ܫܝܦܬ̈ܐ',
 'undelete-fieldset-title' => 'ܐܦܢܝ ܬܢܝܬ̈ܐ',
 'undelete-revision' => 'ܫܦ ܬܢܝܬܐ ܕ $1 (ܒܣܝܩܘܡ $4, ܒ $5) ܒܝܕ $3:',
@@ -1310,8 +1325,8 @@ Do you want to change the settings?',
 'movepage-moved' => '\'\'\'"$1" ܐܫܬܢܝܬ ܠ "$2"\'\'\'',
 'movepage-moved-redirect' => 'ܨܘܝܒܐ ܐܬܒܪܝ',
 'movedto' => 'ܐܬܫܢܝ ܠ',
-'move-subpages' => 'Ü«Ü¢Ü\9d Ü\95Ì\88ܦÜ\90 Ü¦ÜªÌ\88Ü¥Ü\9dܐ (ܥܕܡܐ ܠ $1)',
-'move-talk-subpages' => 'Ü«Ü¢Ü\9d Ü\95Ì\88ܦÜ\90 Ü¦ÜªÌ\88Ü¥Ü\9dÜ\90 Ü\95Ü\95ܦܐ ܕܕܘܪܫܐ (ܥܕܡܐ ܠ $1)',
+'move-subpages' => 'Ü«Ü¢Ü\9d Ü¦Ü\90ܬܬÌ\88Ü\90 Ü¦ÜªÌ\88Ü¥Ü\9dܬÌ\88ܐ (ܥܕܡܐ ܠ $1)',
+'move-talk-subpages' => 'Ü«Ü¢Ü\9d Ü¦Ü\90ܬܬÌ\88Ü\90 Ü¦ÜªÌ\88Ü¥Ü\9dܬÌ\88Ü\90 Ü\95ܦÜ\90ܬܐ ܕܕܘܪܫܐ (ܥܕܡܐ ܠ $1)',
 'movelogpage' => 'ܣܓܠܐ ܕܫܘܢܝܐ',
 'movereason' => 'ܥܠܬܐ:',
 'revertmove' => 'ܐܦܢܝ',
@@ -1321,7 +1336,7 @@ Do you want to change the settings?',
 
 # Export
 'export' => 'ܐܦܩ ܦܐܬܬ̈ܐ',
-'exportall' => 'Ü\90ܦܩ Ü\9fÜ  Ü\95Ì\88ܦܐ',
+'exportall' => 'Ü\90ܦܩ Ü\9fÜ  Ü¦Ü\90ܬܬÌ\88ܐ',
 'export-submit' => 'ܐܦܩ',
 'export-addcattext' => 'ܐܘܣܦ ܦܐܬܬ̈ܐ ܡܢ ܣܕܪܐ:',
 'export-addcat' => 'ܐܘܣܦ',
@@ -1359,14 +1374,27 @@ Do you want to change the settings?',
 'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|ܬܢܝܬܐ |ܬܢܝܬ̈ܐ}} ܡܢ $2',
 
 # Tooltip help for the actions
+'tooltip-pt-userpage' => 'ܦܐܬܐ ܕܡܦܠܚܢܐ ܕܝܠܟ',
+'tooltip-pt-mytalk' => 'ܦܐܬܐ ܕܡܡܠܘܟ',
 'tooltip-pt-preferences' => 'Your preferences',
 'tooltip-pt-login' => 'ܛܒ ܐܢܬ ܕܣܓܠ ܥܠܠܐ، ܐܠܐ ܗܢܐ ܠܘ ܐܠܨܝܐ',
 'tooltip-pt-logout' => 'ܦܠܛܐ',
 'tooltip-ca-talk' => 'ܡܡܠܠܐ ܥܠ ܚܒܝܫܬܐ ܕܦܐܬܐ',
+'tooltip-ca-addsection' => 'ܫܪܝ ܦܣܘܩܐ ܚܕܬܐ',
+'tooltip-ca-viewsource' => 'ܗܢܐ ܦܐܬܐ ܢܛܪܬܐ ܝܠܗ.
+ܐܝܬ ܒܟ ܬܚܙܝ ܡܒܘܥܐ ܕܝܠܗ',
 'tooltip-ca-protect' => 'ܢܛܘܪ ܗܕܐ ܦܐܬܐ',
 'tooltip-ca-delete' => 'ܫܘܦ ܦܐܬܐ ܗܕܐ',
+'tooltip-search' => 'ܒܨܝ ܒܓܘ {{SITENAME}}',
+'tooltip-p-logo' => 'ܦܐܬܐ ܪܝܫܝܬܐ',
+'tooltip-n-portal' => 'ܚܕܪ ܬܪܡܝܬܐ، ܡܢܐ ܡܫܟܚ ܐܢܬ ܠܥܒܕܐ، ܐܝܟܐ ܬܚܙܝ ܟܠ ܡܐ ܕܣܢܝܩ ܐܢܬ ܠܗ',
+'tooltip-n-recentchanges' => 'ܡܟܬܒܢܘܬܐ ܒܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ ܒܓܘ ܘܝܩܝ.',
 'tooltip-n-randompage' => 'ܦܬܘܟ ܡܓܠܬܐ ܚܘܝܚܬܐ',
+'tooltip-n-help' => 'ܕܘܟܐ ܠܥܘܕܪܢܐ',
+'tooltip-t-contributions' => 'ܡܟܬܒܢܘܬܐ ܒܫܘܬܦ̈ܐ ܕܗܢܐ ܡܦܠܚܢܐ',
 'tooltip-t-emailuser' => 'ܫܕܪ ܐܓܪܬܐ ܠܗܢܐ ܡܦܠܚܢܐ',
+'tooltip-t-specialpages' => 'ܡܟܬܒܢܘܬܐ ܒܟܠ ܦܐܬܬ̈ܐ ܕ̈ܝܠܢܝܬܐ',
+'tooltip-ca-nstab-user' => 'ܚܘܝ ܦܐܬܐ ܕܡܦܠܚܢܐ',
 'tooltip-save' => 'ܠܒܘܟ ܫܘܚܠܦܟ',
 
 # Attribution
@@ -1498,7 +1526,7 @@ $1',
 'table_pager_prev' => 'ܦܐܬܐ ܩܕܝܡܬܐ',
 'table_pager_first' => 'ܦܐܬܐ ܩܕܡܝܬܐ',
 'table_pager_last' => 'ܦܐܬܐ ܐܚܪܝܬܐ',
-'table_pager_limit_label' => 'ܡܕܡ ܠܟܠ ܕܦܐ:',
+'table_pager_limit_label' => 'ܡܕ̈ܡܐ ܠܟܠ ܦܐܬܐ:',
 'table_pager_limit_submit' => 'ܙܠ',
 'table_pager_empty' => 'ܠܝܬ ܦܠܛ̈ܐ',
 
@@ -1510,7 +1538,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' => 'ܚܕܬ ܪ̈ܗܝܬܐ',
 
@@ -1540,6 +1574,7 @@ $1',
 
 # Special:SpecialPages
 'specialpages' => 'ܦܐܬܬ̈ܐ ܕ̈ܝܠܢܝܬܐ',
+'specialpages-group-maintenance' => 'ܬܫܪܪܐ ܕܚܕܬܘܬܐ',
 'specialpages-group-other' => 'ܦܐܬܬ̈ܐ ܕ̈ܝܠܢܝܬܐ ܐܚܪ̈ܢܝܬܐ',
 'specialpages-group-login' => 'ܥܘܠ / ܒܪܝ',
 'specialpages-group-changes' => 'ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ ܘܣܓܠ̈ܐ',
@@ -1558,8 +1593,8 @@ $1',
 'tags-hitcount' => '$1 {{PLURAL:$1|ܫܘܚܠܦܐ|ܫܘܚܠܦ̈ܐ}}',
 
 # Special:ComparePages
-'compare-page1' => 'Ü\95ܦܐ 1',
-'compare-page2' => 'Ü\95ܦܐ 2',
+'compare-page1' => 'ܦÜ\90ܬܐ 1',
+'compare-page2' => 'ܦÜ\90ܬܐ 2',
 'compare-rev1' => 'ܬܢܝܬܐ 1',
 'compare-rev2' => 'ܬܢܝܬܐ 2',
 'compare-submit' => 'ܦܚܘܡ',
@@ -1570,11 +1605,11 @@ $1',
 'htmlform-selectorother-other' => 'ܐܚܪܢܐ',
 
 # New logging system
-'logentry-delete-delete' => '$1 Ü«Ü¦ Ü\95ܦܐ ܕ $3',
-'logentry-move-move' => '$1 Ü«Ü¢Ü\90 Ü\95ܦܐ ܕ $3 ܠ $4',
-'logentry-move-move-noredirect' => '$1 Ü«Ü¢Ü\90 Ü\95ܦÜ\90 Ü\95 $3 Ü  $4 Ü\95Ü Ü\90 Ü«Ü\92Ü©Ü\90 Ü\95Ü\95ܦܐ ܕܨܘܝܒܐ',
-'logentry-move-move_redir' => '$1 Ü«Ü¢Ü\90 Ü\95ܦÜ\90 Ü\95 $3 Ü  $4 Ü\95Ü\90Ü\9dܬÜ\98Ü\97Ü\9d Ü\97Ü\98Ü\90 Ü\95ܦܐ ܕܨܘܝܒܐ',
-'logentry-move-move_redir-noredirect' => '$1 Ü«Ü¢Ü\90 Ü\95ܦÜ\90 Ü\95 $3 Ü  $4 Ü\95Ü\90Ü\9dܬÜ\98Ü\97Ü\9d Ü\97Ü\98Ü\90 Ü\95ܦÜ\90 Ü\95ܨÜ\98Ü\9dÜ\92Ü\90 Ü\98Ü\95Ü Ü\90 Ü«Ü\92Ü©Ü\90 Ü\95Ü\95ܦܐ ܕܨܘܝܒܐ',
+'logentry-delete-delete' => '$1 Ü«Ü¦ Ü¦Ü\90ܬܐ ܕ $3',
+'logentry-move-move' => '$1 Ü«Ü¢Ü\90 Ü¦Ü\90ܬܐ ܕ $3 ܠ $4',
+'logentry-move-move-noredirect' => '$1 Ü«Ü¢Ü\90 Ü¦Ü\90ܬÜ\90 Ü\95 $3 Ü  $4 Ü\95Ü Ü\90 Ü«Ü\92Ü©Ü\90 Ü¦Ü\90ܬܐ ܕܨܘܝܒܐ',
+'logentry-move-move_redir' => '$1 Ü«Ü¢Ü\90 Ü¦Ü\90ܬÜ\90 Ü\95 $3 Ü  $4 Ü\95Ü\90Ü\9dܬÜ\98Ü\97Ü\9d Ü¦Ü\90ܬܐ ܕܨܘܝܒܐ',
+'logentry-move-move_redir-noredirect' => '$1 Ü«Ü¢Ü\90 Ü¦Ü\90ܬÜ\90 Ü\95 $3 Ü  $4 Ü\95Ü\90Ü\9dܬÜ\98Ü\97Ü\9d Ü¦Ü\90ܬÜ\90 Ü\95ܨÜ\98Ü\9dÜ\92Ü\90 Ü\98Ü\95Ü Ü\90 Ü«Ü\92Ü©Ü\90 Ü¦Ü\90ܬܐ ܕܨܘܝܒܐ',
 'logentry-newusers-newusers' => '$1 ܒܪܐ ܚܘܫܒܢܐ ܕܡܦܠܚܢܐ',
 'logentry-newusers-create' => '$1 ܒܪܐ ܚܘܫܒܢܐ ܕܡܦܠܚܢܐ',
 'logentry-newusers-create2' => '$1 ܒܪܐ ܚܘܫܒܢܐ ܕܡܦܠܚܢܐ $3',
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 c8f87e1..9caa0b4 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' => 'বুধ',
@@ -208,8 +208,8 @@ $messages = array(
 'october-gen' => 'অক্টোবৰ',
 'november-gen' => 'নৱেম্বৰ',
 'december-gen' => 'ডিচেম্বৰ',
-'jan' => 'জানু:',
-'feb' => 'ফেব্ৰু:',
+'jan' => 'জানুৱাৰী:',
+'feb' => 'ফেব্ৰুৱাৰী:',
 'mar' => 'মাৰ্চ',
 'apr' => 'এপ্ৰিল',
 'may' => 'মে',
@@ -217,18 +217,18 @@ $messages = array(
 'jul' => 'জুলাই',
 'aug' => 'আগষ্ট',
 'sep' => 'ছেপ্টেম্বৰ:',
-'oct' => 'অক্টো:',
-'nov' => 'নৱে:',
-'dec' => 'ডিচে:',
+'oct' => 'অক্টোবৰ:',
+'nov' => 'নৱেম্বৰ:',
+'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' => 'পুনৰুদ্ধাৰ কৰক',
@@ -275,13 +275,13 @@ $messages = array(
 'vector-view-history' => 'ইতিহাস চাওক',
 'vector-view-view' => 'পঢ়ক',
 'vector-view-viewsource' => 'উৎস চাওক',
-'actions' => 'à¦\95াৰà§\8dযà§\8dযসমà§\82হ',
+'actions' => 'কাৰ্যসমূহ',
 'namespaces' => 'নামস্থান',
 'variants' => 'বিকল্পসমূহ',
 
 'errorpagetitle' => 'ভুল',
-'returnto' => '$1 লৈ ঘূৰি যাওক ।',
-'tagline' => '{{SITENAME}} -ৰ পৰা',
+'returnto' => '$1লৈ ঘূৰি যাওক ।',
+'tagline' => '{{SITENAME}}ৰ পৰা',
 'help' => 'সহায়',
 'search' => 'সন্ধান',
 'searchbutton' => 'সন্ধান কৰক',
@@ -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,30 @@ $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" পৃষ্ঠা বিলোপ কৰিব নোৱাৰি',
 '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 +489,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 +511,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 +529,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 +543,9 @@ $2',
 'loginerror' => 'প্ৰৱেশ সমস্যা',
 'createaccounterror' => "একাউন্ট সৃষ্টি কৰা নহ'ল: $1",
 'nocookiesnew' => 'আপোনাৰ সদস্যভুক্তি হৈ গৈছে, কিন্তু আপুনি প্ৰৱেশ কৰা নাই।
-{{SITENAME}} ত প্ৰৱেশ কৰিবলৈ কুকি সক্ৰিয় থাকিব লাগিব।
+{{SITENAME}}ত প্ৰৱেশ কৰিবলৈ কুকি সক্ৰিয় থাকিব লাগিব।
 আপুনি কুকি নিষ্ক্ৰিয় কৰি থৈছে।
-অনুগ্ৰহ কৰি কুকি সক্ৰিয় কৰক, আৰু তাৰ পাছত আপোনাৰ সদস্যনামেৰে প্ৰৱেশ কৰক।',
+অনুগ্ৰহ কৰি কুকি সক্ৰিয় কৰক, আৰু তাৰ পাছত আপোনাৰ সদস্য নামেৰে প্ৰৱেশ কৰক।',
 'nocookieslogin' => '{{SITENAME}} ত প্ৰৱেশ কৰিবলৈ কুকি সক্ৰিয় থাকিব লাগিব।
 আপুনি কুকি নিষ্ক্ৰিয় কৰি থৈছে।
 অনুগ্ৰহ কৰি কুকি সক্ৰিয় কৰক, আৰু তাৰ পাছত চেষ্টা কৰক।',
@@ -551,7 +553,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 +567,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 +598,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 +619,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 +641,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 +662,7 @@ $2
 'changeemail' => 'ই-মেইল ঠিকনা সলনি কৰক',
 'changeemail-header' => 'একাউণ্টৰ ই-মেইল ঠিকনা সলনি কৰক',
 'changeemail-text' => 'আপোনাৰ ই-মেইল ঠিকনা সলাবলৈ এই প্ৰপত্ৰখন পূৰাওক । এই সালসলনি নিশ্চিত কৰিবলৈ আপোনাৰ গুপ্তশব্দ দিব লাগিব ।',
-'changeemail-no-info' => 'এই পৃষ্ঠা প্ৰত্যক্ষ্ ভাৱে ঢুকি পাবলৈ আপুনি প্ৰৱেশ কৰিব লাগিব ।',
+'changeemail-no-info' => 'এই পৃষ্ঠা প্ৰত্যক্ষ্ ভাৱে ঢুকি পাবলৈ আপুনি প্ৰৱেশ কৰিব লাগিব ।',
 'changeemail-oldemail' => 'বৰ্তমানৰ ই-মেইল ঠিকনা:',
 'changeemail-newemail' => 'নতুন ই-মেইল ঠিকনা:',
 'changeemail-none' => '(নাই)',
@@ -673,9 +675,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 +721,7 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 আপুনি যেতিয়ালৈ [[Special:Preferences|সদস্য পছন্দ]] পৃষ্ঠাত আপোনাৰ ই-মেইল ঠিকনা নিদিয়ে তেতিয়ালৈ ’সদস্যক ই-মেইল পঠাওক’ সুবিধাতো ব্যৱহাৰ কৰিব নোৱাৰিব, আৰু আপোনাক এয়া কৰিবলৈ ৰোধ কৰা হোৱা নাই ।
 আপোনাৰ এতিয়াৰ আই-পি ঠিকনা হল $3, আৰু আপোনাৰ অবৰোধ ক্ৰমিক হৈছে #$5 ।
 এই বিষয়ে হোৱা আলোচনাত ইয়াৰ সবিশেষ সদৰী কৰে যেন।",
-'autoblockedtext' => "আপোনাৰ আই-পি ঠিকনা নিজে নিজে অৱৰোধিত হৈছে, কাৰণ ইয়াক কোনোবাই ব্যৱহাৰ কৰি থাকোতে $1 ৰ দ্বাৰা অৱৰোধ কৰা হৈছে।
+'autoblockedtext' => "আপোনাৰ আই-পি ঠিকনা নিজে নিজে অৱৰোধিত হৈছে, কাৰণ ইয়াক কোনোবাই ব্যৱহাৰ কৰি থাকোতে $1ৰ দ্বাৰা অৱৰোধ কৰা হৈছে।
 ইয়াৰ বাবে দিয়া কাৰণ হৈছে:
 
 :''$2''
@@ -728,11 +730,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 +745,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 +775,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 +798,7 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 তথাপি যদি নহয় [[Special:UserLogout|প্ৰস্থান]] কৰি আকৌ প্ৰৱেশ কৰক ।",
 'session_fail_preview_html' => "'''দুঃখিত! চেচন ডাটা হেৰাই যোৱাৰ কাৰণে আপোনাৰ সম্পাদনা কৃতকাৰ্য্য নহ'ল ।'''
 
-''যিহেতু {{SITENAME}}-ত নগ্ন এইচ-টি-এম-এল (raw HTML) সক্ৰিয় কৰা আছে, জাভাস্ক্ৰিপ্ট (Javasccript) আক্ৰমণৰ বিৰুদ্ধে সতৰ্কতাৰ খাতিৰত খচৰা আঁৰ কৰা হৈছে ।''
+''যিহেতু {{SITENAME}}ত নগ্ন এইচ-টি-এম-এল (raw HTML) সক্ৰিয় কৰা আছে, জাভাস্ক্ৰিপ্ট আক্ৰমণৰ বিৰুদ্ধে সতৰ্কতাৰ স্বাৰ্থত খচৰা আঁৰ কৰা হৈছে ।''
 
 '''এইয়া যদি এটা বৈধ সম্পাদনা আছিল, তেনে আকৌ চেষ্টা কৰক ।'''
 তথাপি যদি নহয় [[Special:UserLogout|প্ৰস্থান]] কৰি আকৌ প্ৰৱেশ কৰক ।",
@@ -806,8 +808,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 +853,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 +866,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 +908,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 +948,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 +1079,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,7 +1494,7 @@ $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' => "ফাইল আপল’ড কৰাৰ বাবে তলৰ প্ৰপত্ৰ ব্যৱহাৰ কৰক ।
@@ -1599,8 +1601,8 @@ $1",
 'upload-description' => 'ফাইলৰ বৰ্ণনা',
 'upload-options' => "আপল'ড বিকল্পসমূহ",
 'watchthisupload' => 'এই ফাইল লক্ষ্য কৰক',
-'filewasdeleted' => 'এই নামৰ এটা ফাইল পূৰ্বতে আপলড কৰি বিলোপ কৰা হৈছে ।
-ইয়াক পুনৰ আপলড কৰাৰ আগেয়ে আপুনি $1 পৰীক্ষা কৰা উচিত ।',
+'filewasdeleted' => 'এই নামৰ এটা ফাইল পূৰ্বতে আপলড কৰি বিলোপ কৰা হৈছে ।
+ইয়াক পুনৰ আপলড কৰাৰ আগেয়ে আপুনি $1 পৰীক্ষা কৰা উচিত ।',
 'filename-bad-prefix' => "আপুনি আপলোড কৰা ফাইলৰ নামটো '''\"\$1\"''' দি আৰম্ভ হৈছে, যিটো ডিজিটেল কেমেৰাই স্বয়ংক্ৰিয়ভাৱে দিয়ে আৰু সি ব্যাখ্যামূলক নহয় ।
 অনুগ্ৰহ কৰি আপোনাৰ ফাইলটোৰ বাবে এটা ব্যাখ্যামূলক নাম বাছি লওক ।",
 'upload-success-subj' => "আপলোড সফল হ'ল",
@@ -1609,7 +1611,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 +1855,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 +1867,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'statistics-mostpopular' => 'সৰ্বোচ্চ দৰ্শন কৰা পৃষ্ঠাসমূহ',
 
 'disambiguations' => 'দ্ব্যৰ্থতা-দূৰীকৰণ পৃষ্ঠাসমূহলৈ সংযোগ থকা পৃষ্ঠাসমূহ',
-'disambiguationspage' => 'Template:দ্ব্যৰ্থতা-দূৰীকৰণ',
+'disambiguationspage' => 'সাঁচ:দ্ব্যৰ্থতা-দূৰীকৰণ',
 'disambiguations-text' => "তলৰ পৃষ্ঠাখনসমূহত '''দ্ব্যৰ্থতা দূৰীকৰণ পৃষ্ঠা'''ৰ লগত সংযোগ আছে ।
 ইয়ে উপযুক্ত পৃষ্ঠাৰ লগত সংযোগ কৰিব পাৰে ।
 [[MediaWiki:Disambiguationspage]]ৰ পৰা সংযোগ থকা কোনো সাঁচ ব্যৱহাৰ কৰিলে এখন পৃষ্ঠাক দ্ব্যৰ্থতা দূৰীকৰণ পৃষ্ঠা হিছাপে গণ্য কৰা হ’ব ।",
@@ -1946,7 +1948,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'newpages-username' => 'সদস্যনাম:',
 'ancientpages' => 'আটাইতকৈ পুৰণি পৃষ্ঠাসমূহ',
 'move' => 'স্থানান্তৰ কৰক',
-'movethispage' => 'এই পৃষ্ঠাটো স্থানান্তৰিত কৰক',
+'movethispage' => 'এই পৃষ্ঠাটো স্থানান্তৰ কৰক',
 'unusedimagestext' => 'তলৰ ফাইলসমূহ আছে কিন্তু কোনো পৃষ্ঠাৰ অন্তৰ্গত নহয় ।
 অনুগ্ৰহ কৰি মন কৰিব যে প্ৰত্যক্ষ URL থকা কোনো পৃষ্ঠা আন ৱেবচাইটৰ লগত সংযোগ হৈ থাকিব পাৰে, সেয়ে সক্ৰিয়ভাৱে ব্যৱহাৰ হৈ থকা সত্ত্বেও ইয়াত তালিকাভুক্ত হ’ব পাৰে ।',
 'unusedcategoriestext' => 'তলৰ শ্ৰেণী পৃষ্ঠাসমূহৰ অস্তিত্ব আছে, কিন্তু আন কোনো পৃষ্ঠা বা শ্ৰেণীৰদ্বাৰা ব্যৱহৃত নহয় ।',
@@ -1992,7 +1994,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 +2017,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 +2030,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 # Special:ListUsers
 'listusersfrom' => 'ইয়াৰে আৰম্ভ হোৱা ব্যৱহাৰকাৰী সকল দেখুৱাওক:',
 'listusers-submit' => 'দেখুৱাওক',
-'listusers-noresult' => 'ব্যৱহাৰকাৰী বিচাৰি পোৱা নগল',
+'listusers-noresult' => 'ব্যৱহাৰকাৰী বিচাৰি পোৱা নগল',
 'listusers-blocked' => '(বাৰণ কৰা)',
 
 # Special:ActiveUsers
@@ -2102,7 +2104,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 +2162,7 @@ $NEWPAGE
 আপুনি এই পৃষ্ঠাখন নোচোৱালৈকে আন সালসলনিৰ কোনো জাননী দিয়া নহ’ব ।
 আপুনি আপোনাৰ লক্ষ্য-তালিকাৰ পৃষ্ঠাবোৰৰ জাননী ফ্লেগ পূৰ্বৰ অৱস্থালৈও ঘূৰাই নিব পাৰে ।
 
-আপোনাৰ {{SITENAME}} জাননী ব্যৱস্থা
+আপোনাৰ {{SITENAME}} জাননী ব্যৱস্থা
 
 --
 আপোনাৰ ই-মেইল জাননী ছেটিং সলনি কৰিবলৈ এইখন চাওক
@@ -2325,14 +2327,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 +2342,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 +2351,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 +2364,9 @@ $1',
 
 # Contributions
 'contributions' => 'সদস্যৰ বৰঙণিসমূহ',
-'contributions-title' => '$1-ৰ বৰঙণিসমূহ',
+'contributions-title' => '$1ৰ বৰঙণিসমূহ',
 'mycontris' => 'মোৰ বৰঙণিসমূহ',
-'contribsub2' => '$1 ৰ কাৰণে($2)',
+'contribsub2' => '$1 ৰ কাৰণে ($2)',
 'nocontribs' => 'এই গুণসমূহৰ লগত মিল থকা কোনো সালসলনি পোৱা নগ’ল ।',
 'uctop' => '(ওপৰত)',
 'month' => 'এই মাহৰ পৰা (আৰু আগৰ):',
@@ -2380,9 +2382,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 +2392,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 +2432,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 +2452,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 +2496,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 +2514,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 +2531,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 +2575,8 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 ইয়াৰ অৰ্থ এয়ে যে ভুল হলে পৃষ্ঠাখন আগৰ ঠাইতে থাকিব, আৰু আপুনি প্ৰচলিত পৃষ্ঠা এখনক আন পৃষ্ঠা এখনেৰে সলনি কৰিব নোৱাৰে।
 
 '''সতৰ্কবাণী !'''
-জনপ্ৰিয় পৃষ্ঠা এখনৰ বাবে এয়া এক ডাঙৰ আৰু অনাকাংক্ষিত সাল-সলনি হব পাৰে;
-এই কাৰ্য্যৰ পৰিণাম ভালদৰে বিবেচনা কৰি লয় যেন।",
+জনপ্ৰিয় পৃষ্ঠা এখনৰ বাবে এয়া এক ডাঙৰ আৰু অনাকাংক্ষিত সাল-সলনি হব পাৰে;
+এই কাৰ্য পৰিণাম ভালদৰে বিবেচনা কৰি লয় যেন।",
 'movepagetext-noredirectfixer' => "তলৰ প্ৰপত্ৰ ব্যৱহাৰ কৰিলে এই পৃষ্ঠাৰ শিৰোনামা সলনি হ'ব, লগতে সমগ্ৰ ইতিহাস নতুন শিৰোনামালৈ স্থানান্তৰ কৰা হ'ব।
 পুৰণা শিৰোনামাটো নতুন শিৰোনামালৈ এটা পুনৰ্নিৰ্দেশনা হৈ ৰ'ব।
 [[Special:DoubleRedirects|দ্বি পুনৰ্নিৰ্দেশনাসমূহ]] বা [[Special:BrokenRedirects|ভঙা পুনৰ্নিৰ্দেশনসমূহ]] পৰীক্ষা কৰিবলৈ নাপাহৰিব।
@@ -2594,32 +2596,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 +2648,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 +2669,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 +2705,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 +2737,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 +2759,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|টা সংশোধন|টা সংশোধন}}',
@@ -2783,16 +2785,16 @@ $1ৰ অৱৰোধৰ কাৰণ: "$2"',
 'tooltip-pt-preferences' => 'আপোনাৰ পছন্দসমূহ',
 'tooltip-pt-watchlist' => 'আপুনি সালসলনিৰ গতিবিধি লক্ষ্য কৰি থকা পৃষ্ঠাসমূহৰ সুচী',
 'tooltip-pt-mycontris' => 'আপোনাৰ বৰঙণিৰ তালিকা',
-'tooltip-pt-login' => "বাধà§\8dযতামà§\82লà¦\95 à¦¨à¦¹'লà§\87à¦\93 à¦²à¦\97-à¦\87ন কৰাটো বাঞ্চনীয়",
-'tooltip-pt-anonlogin' => 'বাধà§\8dযতামà§\82লà¦\95 à¦¨à¦¹â\80\99লà§\87à¦\93 à¦²à¦\97-à¦\87ন কৰাটো বাঞ্চনীয়',
+'tooltip-pt-login' => "বাধà§\8dযতামà§\82লà¦\95 à¦¨à¦¹'লà§\87à¦\93 à¦ªà§\8dৰৱà§\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 +2813,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 +2826,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 +2841,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 +2854,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 +2866,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 +2893,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 +2926,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 +2941,7 @@ $1',
 'imagelisttext' => "তলত '''$1''' {{PLURAL:$1|file|files}} সজোঁৱা $2 -ৰ এটা তালিকা দিয়া আছে।",
 'newimages-summary' => "এই বিশেষ পৃষ্ঠাখনত সৰ্বশেষত আপল'ড কৰা ফাইলসমূহ দেখিব ।",
 'newimages-legend' => 'ছেকনী',
-'newimages-label' => 'ফাà¦\87লনাম (বা তাৰ এটা অংশ)',
+'newimages-label' => 'নথিৰ নাম (বা তাৰ এটা অংশ)',
 'showhidebots' => '(বট $1)',
 'noimages' => 'চাবলৈ একো নাই ।',
 'ilsubmit' => 'সন্ধান কৰক',
@@ -2963,7 +2965,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 +2985,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 +3033,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 +3045,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 +3102,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 +3125,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 +3138,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 +3185,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 +3194,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 +3213,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 +3252,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 +3265,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 +3289,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 +3301,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 +3323,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 +3337,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 +3394,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 +3403,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 +3411,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 +3461,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 +3496,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 +3544,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 +3566,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 +3581,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 +3591,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 +3607,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 +3618,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 +3632,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 +3664,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 +3683,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 +3702,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 +3732,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 +3752,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 +3779,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 1cf1a95..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''",
@@ -1946,6 +1948,7 @@ Date cuenta de qu'otros sitios web puen enllazar a un ficheru con una URL direut
 Pues filtrar la visualización seleicionando una mena de rexistru, el nome d'usuariu (teniendo en cuenta les mayúscules y minúscules) o la páxina afectada (teniendo en cuenta tamién les mayúscules y minúscules).",
 'logempty' => 'Nun hai coincidencies nel rexistru.',
 'log-title-wildcard' => "Buscar títulos qu'emprimen con esti testu",
+'showhideselectedlogentries' => 'Amosar/anubrir les entraes del rexistru seleicionaes',
 
 # Special:AllPages
 'allpages' => 'Toles páxines',
@@ -2858,6 +2861,7 @@ Probablemente tea causao por un enllaz a un sitiu esternu de la llista prieta.',
 'spambot_username' => 'Llimpieza de spam de MediaWiki',
 'spam_reverting' => 'Revirtiendo a la cabera versión que nun contién enllaces a $1',
 'spam_blanking' => 'Toles revisiones teníen enllaces a $1; dexando en blanco',
+'spam_deleting' => 'Toles revisiones teníen enllaces a $1, desaniciando',
 
 # Info page
 'pageinfo-title' => 'Información sobro "$1"',
@@ -3775,4 +3779,6 @@ D\'otra miente, pues usar el formulariu cenciellu d\'abaxo. El to comentariu apa
 'duration-centuries' => '$1 {{PLURAL:$1|sieglu|sieglos}}',
 'duration-millennia' => '$1 {{PLURAL:$1|mileniu|milenios}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Nun se pudieron afitar los bloqueos nel sirvidor $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..cd191ff 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Filipinayzd
+ * @author Geopoet
  * @author Kaganer
  * @author Steven*fung
  * @author Urhixidur
@@ -122,6 +123,7 @@ $messages = array(
 '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-oldsig' => 'Tugmadong pirma',
 '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',
@@ -140,6 +142,9 @@ $messages = array(
 'underline-never' => 'Nungka',
 'underline-default' => 'Browser na normal',
 
+# Font style option in Special:Preferences
+'editfont-default' => 'Kilyawang tugmad',
+
 # Dates
 'sunday' => 'Domingo',
 'monday' => 'Lunes',
@@ -268,12 +273,12 @@ $messages = array(
 'unprotectthispage' => 'Bawion an proteksyon kaining pahina',
 'newpage' => 'Bàgong pahina',
 'talkpage' => 'Pag-olayan ining pahina',
-'talkpagelinktext' => 'Pag-oláyan',
+'talkpagelinktext' => 'Pag-ulayan',
 'specialpage' => 'Espesyal na Pahina',
 'personaltools' => 'Mga gamit na personal',
 'postcomment' => 'Magkomento',
 'articlepage' => 'Hilingón an pahina kan laog',
-'talk' => 'Orólay',
+'talk' => 'Urulay',
 'views' => 'Mga hilíng',
 'toolbox' => 'Kagamitan',
 'userpage' => 'Hilingón an pahina kan parágamit',
@@ -283,31 +288,32 @@ $messages = array(
 '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',
+'viewtalkpage' => 'Hilingón an urulay',
 'otherlanguages' => 'Sa ibáng mga tatarámon',
 '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',
+'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',
@@ -336,6 +342,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á}}',
@@ -348,6 +356,8 @@ $messages = array(
 'page-atom-feed' => '"$1" Hungit na Atomo',
 'feed-atom' => 'Atomo',
 'red-link-title' => '$1 (daí pa naisusurat)',
+'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',
@@ -391,7 +401,7 @@ AnSQL ko nagbalik nin salâ na"$3: $4"',
 Ini an eksplikasyon kan tagamató na nagkandado kaini: $1',
 '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',
 'filecopyerror' => 'Dai naarog an mga file na "$1" hasta "$2".',
@@ -423,10 +433,12 @@ For translations, please consider using [//translatewiki.net/wiki/Main_Page?setl
 '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.',
+'ns-specialprotected' => 'An mga pahinang nasa {{ns:special}} na liang-liang dai pwedeng hirahón.',
+'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-badscanner' => "Saláng konpigurasyon: dai aram an virus scanner: ''$1''",
 'virus-unknownscanner' => 'dai aram an antivirus:',
 
 # Login and logout pages
@@ -447,6 +459,7 @@ Nagibo na an ''account'' mo. Giromdomon tabi na ribayán an saimong mga kabôtan
 'nav-login-createaccount' => 'Maglaog / maggibo nin account',
 'loginprompt' => 'Kaipuhan may cookies ka para makalaog sa {{SITENAME}}.',
 'userlogin' => 'Maglaog / maggibo nin account',
+'userloginnocreate' => 'Maglaog ka',
 'logout' => 'Magluwas',
 'userlogout' => 'Magluwás',
 'notloggedin' => 'Mayò sa laog',
@@ -455,7 +468,9 @@ Nagibo na an ''account'' mo. Giromdomon tabi na ribayán an saimong mga kabôtan
 'createaccount' => 'Maggibo nin account',
 'gotaccount' => "Igwa ka na nin account? '''$1'''.",
 'gotaccountlink' => 'Maglaog',
+'userlogin-resetlink' => 'Nakalingaw ka sa panlaog mong detalye?',
 'createaccountmail' => 'sa e-koreo',
+'createaccountreason' => 'Rason:',
 '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',
@@ -469,7 +484,7 @@ Nagibo na an ''account'' mo. Giromdomon tabi na ribayán an saimong mga kabôtan
 '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ì.',
+'wrongpasswordempty' => 'Mayong pigkaág 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}}',
@@ -497,6 +512,8 @@ $1 na oras.',
 '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.",
+'usernamehasherror' => 'Paragamit na ngaran dae puwede na igwang simbolikong mga kabtang',
+'login-abort-generic' => 'An saimong paglaog dae nakadagos - Pinundo',
 'loginlanguagelabel' => 'Tataramon: $1',
 
 # Change password dialog
index fc00a41..c64ce26 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)',
@@ -645,6 +645,8 @@ $2',
 Адміністратар, які абмежаваў доступ, пазначыў прычыну: «$3».',
 'invalidtitle-knownnamespace' => 'Няслушная назва ў прасторы «$2»: «$3»',
 'invalidtitle-unknownnamespace' => 'Няслушная назва ў невядомай прасторы $1: «$2»',
+'exception-nologin' => 'Вы не ўвайшлі ў сыстэму',
+'exception-nologin-text' => 'Гэтая старонка ці дзеяньне патрабуе, каб вы ўвайшлі ў сыстэму.',
 
 # Virus scanner
 'virus-badscanner' => "Няслушная канфігурацыя: невядомы антывірусны сканэр: ''$1''",
@@ -3895,4 +3897,6 @@ MediaWiki распаўсюджваецца з надзеяй, што будзе
 'duration-centuries' => '$1 {{PLURAL:$1|стагодзьдзе|стагодзьдзі|стагодзьдзяў}}',
 'duration-millennia' => '$1 {{PLURAL:$1|тысячагодзьдзе|тысячагодзьдзі|тысячагодзьдзяў}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Немагчыма запытаць блякаваньні на сэрвэры $1.',
 );
index 3e4f3ee..71d9c70 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)',
@@ -566,6 +566,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''",
@@ -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"',
@@ -3844,4 +3847,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..3b2852c 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)',
@@ -2891,6 +2891,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»',
@@ -3802,4 +3803,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 8b972f7..761bf4a 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)',
@@ -742,6 +742,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''",
@@ -4039,4 +4041,6 @@ Jinak můžete využít jednoduchý formulář níže. Váš komentář bude př
 'duration-centuries' => '$1 {{PLURAL:$1|století}}',
 'duration-millennia' => '$1 {{PLURAL:$1|tisíciletí}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Nepodařilo se získat zámek serveru $1.',
 );
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 5060f68..1adcf85 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)',
@@ -440,7 +440,7 @@ $messages = array(
 'tog-watchlisthidepatrolled' => 'Kontrollierte Änderungen in der Beobachtungsliste ausblenden',
 'tog-nolangconversion' => 'Konvertierung von Sprachvarianten deaktivieren',
 'tog-ccmeonemails' => 'Schicke mir Kopien der E-Mails, die ich anderen Benutzern sende',
-'tog-diffonly' => 'Zeige beim Versionsvergleich nur die Unterschiede und nicht die vollständige Seite',
+'tog-diffonly' => 'Beim Versionsvergleich nur die Unterschiede und nicht die vollständige Seite anzeigen',
 'tog-showhiddencats' => 'Anzeige versteckter Kategorien',
 'tog-noconvertlink' => 'Konvertierung des Titels deaktivieren',
 'tog-norollbackdiff' => 'Unterschied nach dem Zurücksetzen unterdrücken',
@@ -789,6 +789,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 +2154,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}}',
@@ -4060,4 +4062,6 @@ Anderenfalls kannst du auch das untenstehende einfache Formular nutzen. Dein Kom
 'duration-centuries' => '$1 {{PLURAL:$1|Jahrhundert|Jahrhunderte}}',
 'duration-millennia' => '$1 {{PLURAL:$1|Jahrtausend|Jahrtausende}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Die Sperren auf Server $1 konnte nicht abgerufen werden.',
 );
index 125d5f7..1bdbe2d 100644 (file)
@@ -11,6 +11,7 @@
  * @author Aspar
  * @author Belekvor
  * @author Erdemaslancan
+ * @author George Animal
  * @author Kaganer
  * @author Mirzali
  * @author Reedy
@@ -408,7 +409,7 @@ $messages = array(
 'cancel' => 'Bıterkne',
 'moredotdotdot' => 'Vêşêri...',
 'mypage' => 'Pela mı',
-'mytalk' => 'Persiyê mı',
+'mytalk' => 'Werênayışê mı',
 'anontalk' => 'Pela werênayışê nê IPy',
 'navigation' => 'Pusula',
 'and' => '&#32;u',
@@ -434,8 +435,8 @@ $messages = array(
 'vector-simplesearch-preference' => 'Tewsiyanê cıgeyrayışê raverberdan ake (Tenya vector skin de)',
 'vector-view-create' => 'Vıraze',
 'vector-view-edit' => 'Bıvurne',
-'vector-view-history' => 'Ravêrda bımocne',
-'vector-view-view' => 'Bıwanê',
+'vector-view-history' => 'Tarixi bımocne',
+'vector-view-view' => 'Bıwanên',
 'vector-view-viewsource' => 'Çımey bıvêne',
 'actions' => 'Kerdeni',
 'namespaces' => 'Cayê namey',
@@ -456,7 +457,7 @@ $messages = array(
 'permalink' => 'Gıreyo daimi',
 'print' => 'Çap ke',
 'view' => 'Bıvêne',
-'edit' => 'Bıvurne',
+'edit' => 'Bıvurnên',
 'create' => 'Vırazê',
 'editthispage' => 'Ena pele bıvurne',
 'create-this-page' => 'Na pele bınuse',
@@ -472,11 +473,11 @@ $messages = array(
 'newpage' => 'Pela newi',
 'talkpage' => 'Ena pele sero werêne',
 'talkpagelinktext' => 'Mesac',
-'specialpage' => 'Pela xısusi',
+'specialpage' => 'Pela xısusiye',
 'personaltools' => 'Hacetê şexsi',
 'postcomment' => 'Qısımo newe',
 'articlepage' => 'Pela zerreki bıvêne',
-'talk' => 'Persiyey',
+'talk' => 'Werênayış',
 'views' => 'Asayışi',
 'toolbox' => 'Haceti',
 'userpage' => 'Pela karberi bıvêne',
@@ -574,7 +575,7 @@ $1',
 'nstab-main' => 'Pele',
 'nstab-user' => 'Pela Karberi',
 'nstab-media' => 'Pela Medya',
-'nstab-special' => 'Pela xısusi',
+'nstab-special' => 'Pela xısusiye',
 'nstab-project' => 'Pela Procey',
 'nstab-image' => 'Dosya',
 'nstab-mediawiki' => 'Mesac',
@@ -659,8 +660,8 @@ Seba çarnayışi, yardımê [//translatewiki.net/wiki/Main_Page?setlang=kiu tra
 'cascadeprotected' => 'No pel de vurnayiş qedexe biyo, çunke şıma tuşa "kademeyın" aqtif kerdo u no {{PLURAL:$1|pelo|pelo}} pawıteyo de xebıtyeno:
 $2',
 'namespaceprotected' => "No '''$1''' ca de icazetê şıma çino şıma pel rêz keri.",
-'customcssprotected' => 'Na pela vurnayışi re mısadey şıma çınyo, çıkı na pela xısusi sazanê karbera muhtewa kena.',
-'customjsprotected' => 'Na pela Java Scripti vurnayışi re mısadey şıma çınyo, çıkı na pela xısusi sazanê karbera muhtewa kena.',
+'customcssprotected' => 'Mısadeyê şıma çıniyo ke na pela CSSi bıvurnên, çıke na pela xısusiye eyaranê karberan muhtewa kena.',
+'customjsprotected' => 'Mısadeyê şıma çıniyo ke na pela Java Scripti bıvurnên, çıke na pela xısusiye eyaranê karberan muhtewa kena.',
 'ns-specialprotected' => 'Peley xısusi nênê vurnayış.',
 'titleprotected' => 'Eno [[User:$1|$1]] zerreyê ena peli nişeno vuriye.
 Sebeb: "\'\'$2\'\'".',
@@ -696,8 +697,8 @@ Hesabê şıma biyo a.
 'loginprompt' => "Cıkewtena {{SITENAME}}i rê gani ''cookies'' akerdey bê.",
 'userlogin' => 'Cı kewe / hesab vıraze',
 'userloginnocreate' => 'Cı kewe',
-'logout' => 'Cı ra veciye',
-'userlogout' => 'Bıvciyê',
+'logout' => 'Bıveciyên',
+'userlogout' => 'Bıveciyên',
 'notloggedin' => 'Hesab akerde niyo',
 'nologin' => "Hesabê şıma çıniyo? '''$1'''.",
 'nologinlink' => 'Yew hesab ake',
@@ -745,8 +746,8 @@ Eke vurnayişê parolayi, şıma nêwaşt ya zi parolayê şıma ameyo şıma vi
 'noemailcreate' => 'Şıma gani yew parolayo meqbul peda bıkeri',
 'passwordsent' => '"$1" No name de yew e-posta erşawiya (ruşya). hesabê xo, şıma wext mesaj gırewt u çax akere.',
 'blocked-mailpassword' => 'Cıkewetışê na keyepel de şıma qedexe biye, ey ra newe yew şifre nêerşawyeno.',
-'eauthentsent' => 'Adreso ke şıma dayo ma, ma yew e-posta erşawıt uca, o e-posta de kodê tesdiq kerdış esto.
-Heta ke şıma o e-posta tesdiq nêkeri ma yewna e-posta şıma ri nêerşaweni.',
+'eauthentsent' => 'Adreso ke şıma dayo ma, ma yew e-posta rışt uca, o e-posta de kodê araşt kerdış esto.
+Heta ke şıma o e-postaaraşt nêkeri ma yewna e-posta şıma ri nêrışêno.',
 'throttled-mailpassword' => 'Parola vir ardış, zerreyê {{PLURAL:$1|yew seet|$1 seet}} de erşawiya.
 Parola her {{PLURAL:$1|yew seete|$1 seete}} de yew rey erşawiyena.',
 'mailerror' => 'Erşawıtışe xetayê e-posta: $1',
@@ -756,7 +757,7 @@ xulasa ney kesê ke IP adresê şıma xebıtneni hini nêeşkeni ney ra zêdêr
 'emailnotauthenticated' => 'No format de nuştışê e-postayi qebul nêbeno.
 Yew formato meqbul de adresê e-posta bınuse ya zi veng bıverde.',
 'noemailprefs' => 'Hesab biyo a.',
-'emailconfirmlink' => 'E-postayê xo tesdiq kere',
+'emailconfirmlink' => 'E-postayê xo araşt kerê',
 'invalidemailaddress' => 'No format de nuştışê e-postayi qebul nêbeno. Yew formato meqbul de adresê e-posta bınuse ya zi veng bıverde.',
 'cannotchangeemail' => 'E-postay hesabi ena wiki sera nêvurneyêno.',
 'emaildisabled' => 'Na site ra e-posta nêrışêno.',
@@ -827,7 +828,7 @@ Parola vêrdiye: $2',
 # Special:ChangeEmail
 'changeemail' => 'E-posta adresa xo bıvurnê',
 'changeemail-header' => 'E-posya adresta hesabdê xo bıvurnê',
-'changeemail-text' => 'Şıma qayılê ke e-postay xo bıvurnê se enê formi pırkerê. Qandê tesdiq kerdışi zi parolay xo şıma de bınusnê',
+'changeemail-text' => 'Şıma qayılê ke e-postay xo bıvurnê se enê formi pırkerê. Qandê araşt kerdışi zi parolay xo şıma de bınusnê',
 'changeemail-no-info' => 'Resayışê ena pela rê Dekewtış icab keno.',
 'changeemail-oldemail' => 'E-postay şımaya newki:',
 'changeemail-newemail' => 'E-postay şımayê newe:',
@@ -844,11 +845,11 @@ Parola vêrdiye: $2',
 'link_tip' => 'Gırê dahili',
 'extlink_sample' => 'http://www.example.com titleya gire',
 'extlink_tip' => 'Çımeyo tewer (http:// prefix)',
-'headline_sample' => 'nuşteyo headline',
+'headline_sample' => 'nuştey xeta seri',
 'headline_tip' => 'Ket 2 headline',
 'nowiki_sample' => 'Non-format nuşte itiya ra bıerz',
 'nowiki_tip' => 'Formatê wiki iptal bık',
-'image_sample' => 'resım bıerze cı',
+'image_sample' => 'Misal resim.jpg',
 'image_tip' => 'Dosyaya embedi',
 'media_sample' => 'misal.jpg',
 'media_tip' => 'Gırey dosya',
@@ -1307,7 +1308,7 @@ Pe verbendi ''all:'', vaceyê xo bıvurni ki contenti hemi cıgeyro (pelanê mı
 
 # Preferences page
 'preferences' => 'Tercihi',
-'mypreferences' => 'Tercihi',
+'mypreferences' => 'Tercihê mı',
 'prefs-edits' => 'Amarê vurnayışan:',
 'prefsnologin' => 'Şıma cıkewtış nêvıraşto',
 'prefsnologintext' => 'Şıma gani be <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} cikewte]</span> ke tercihanê karberi xo eyar bıkerê.',
@@ -1456,7 +1457,7 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 # Groups
 'group' => 'Grup:',
 'group-user' => 'Karberi',
-'group-autoconfirmed' => 'Karberê ke otomatikmen tesdiq biy',
+'group-autoconfirmed' => 'Karbero ke xob xo biyê araşt',
 'group-bot' => 'Boti',
 'group-sysop' => 'İdarekari',
 'group-bureaucrat' => 'Burokrati',
@@ -1464,14 +1465,14 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'group-all' => '(pêro)',
 
 'group-user-member' => '{{GENDER:$1|karber}}',
-'group-autoconfirmed-member' => '{{GENDER:$1|Karbero ke otomotik tesdiq biyo}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|Karbero ke xob xo biyê araşt}}',
 'group-bot-member' => '{{GENDER:$1|bot}}',
 'group-sysop-member' => '{{GENDER:$1|İdarekar}}',
 'group-bureaucrat-member' => '{{GENDER:$1|buroqrat}}',
 'group-suppress-member' => '{{GENDER:$1|Temaşekar}}',
 
 'grouppage-user' => '{{ns:project}}:Karberi',
-'grouppage-autoconfirmed' => '{{ns:project}}: karberê tesdiqbiyaey',
+'grouppage-autoconfirmed' => '{{ns:project}}:Karbero ke xob xo biyê araşt',
 'grouppage-bot' => '{{ns:project}}:Boti',
 'grouppage-sysop' => '{{ns:project}}:İdarekeri',
 'grouppage-bureaucrat' => '{{ns:project}}:Burokrati',
@@ -1494,7 +1495,7 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'right-reupload-own' => 'Dosyeyê ke to bar kerdi, inan sero bınuse',
 'right-reupload-shared' => 'Dosyeyê ke ambarê medyao barekerde de, inan mehelli wedare',
 'right-upload_by_url' => 'Yew URL ra dosyan bar bıke',
-'right-purge' => 'Seba yew pela ke tesdiq nêbiya, viria (cache) keypele pak bıke',
+'right-purge' => 'Verde ju pela araşt kerdışi hafızay sita besterne',
 'right-autoconfirmed' => 'Pelanê ke nême kılit biyê, inan bıvurne',
 'right-bot' => 'Zey yew karê xoserkerdey be',
 'right-nominornewtalk' => 'Pelanê werênayışan rê vurnayışê qıckeki çıniyê, qutiya mesacanê newiyan bıgurene',
@@ -1601,7 +1602,7 @@ Kaberê bini ke şıma de kewti irtıbat, adresa e-postey şıma eşkera nêbena
 'rcshowhideanons' => 'karberanê anoniman $1',
 'rcshowhidepatr' => '$1 vurnayışê ke dewriya geyrayê',
 'rcshowhidemine' => 'nuştışanê mı $1',
-'rclinks' => 'Peyni rocan de vurnayışa $1  $2 roci dı<br />$3',
+'rclinks' => 'Peyni $2 rocan de vurnayışa $1  bımocne <br />$3',
 'diff' => 'ferq',
 'hist' => 'verên',
 'hide' => 'Bınımne',
@@ -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',
@@ -2242,7 +2243,7 @@ qey heqê şexsi de [[{{MediaWiki:Listgrouprights-helppage}}|hema malumato ziyed
 
 # Watchlist
 'watchlist' => 'lista mına seyr-kerdışi',
-'mywatchlist' => 'Listey seyri',
+'mywatchlist' => 'Lista mına seyrkerdışi',
 'watchlistfor2' => 'Qandê $1 ($2)',
 'nowatchlist' => 'listeya temaşa kerdıişê şıma de yew madde zi çina.',
 'watchlistanontext' => 'qey vurnayişê maddeya listeya temaşakerdişi $1.',
@@ -2381,7 +2382,7 @@ Qey malumato ziyede [[Special:ProtectedPages|Peleyê ke star biye]] bewni rê ê
 'prot_1movedto2' => 'nameyê [[$1]] peli yo newe: [[$2]]',
 'protect-badnamespace-title' => 'Heruna naman itad starêna',
 'protect-badnamespace-text' => 'Na herunda namide peley nêstarênê.',
-'protect-legend' => 'pawıtışi tesdiq bıker',
+'protect-legend' => 'Pawıtışi araşt ke',
 'protectcomment' => 'Sebeb:',
 'protectexpiry' => 'Qediyeno:',
 'protect_expiry_invalid' => 'Demo qediyayışi raşt niyo.',
@@ -2497,7 +2498,7 @@ $1',
 # Contributions
 'contributions' => 'İştirakê karberi',
 'contributions-title' => '$1 de iştırakê karberi',
-'mycontris' => 'İştıraxê mı',
+'mycontris' => 'İştıraqê mı',
 'contribsub2' => 'Qandê $1 ($2)',
 'nocontribs' => 'Ena kriteriya de vurnayîş çini yo.',
 'uctop' => '(ser)',
@@ -2680,7 +2681,7 @@ eke şıma ıney gure keni u şıma xo ra emini, taahhud bıde wexta gure şıma
 'unlockconfirm' => 'Ya, ez wazene database a bikeri.',
 'lockbtn' => 'Database kilit bik',
 'unlockbtn' => 'Database a bik',
-'locknoconfirm' => 'Å\9fıma qutiyê tesdiq kerdıÅ\9fi niÅ\9fane nıkerd',
+'locknoconfirm' => 'Å\9eıma qutiyê araÅ\9ft kerdıÅ\9fi nêweçinê.',
 'lockdbsuccesssub' => 'Database kilit biya',
 'unlockdbsuccesssub' => 'Database a biya',
 'lockdbsuccesstext' => 'database qefıliya.<br />
@@ -2910,7 +2911,7 @@ dosyaya emaneti vindbiyo',
 'tooltip-pt-mycontris' => 'Lista iştırakanê to',
 'tooltip-pt-login' => 'Seba cıkewtışi şıma rê dewato; labelê, no zeruri niyo',
 'tooltip-pt-anonlogin' => 'Seba cıkewtışi şıma rê dewato; labelê, no zeruri niyo',
-'tooltip-pt-logout' => 'Bıvciyê',
+'tooltip-pt-logout' => 'Bıveciyên',
 'tooltip-ca-talk' => 'Zerrey pela sero werênayış',
 'tooltip-ca-edit' => 'Tı şenay na pele bıvurnê.
 Kerem ke, qeydkerdış ra ver gocega verqayti bıxebetne.',
@@ -3627,9 +3628,9 @@ $8',
 # E-mail address confirmation
 'confirmemail' => 'Adresê emaîlî xo konfirme bike',
 'confirmemail_noemail' => 'Yew emaîlê tu raştîyê çin o ke [[Special:Preferences|tercihê karberî]] ayar bike.',
-'confirmemail_text' => 'qey şuxulnayişê e-postayê wikiyi gani ewwil e-posyaê şıma tesdiq bıbo.
-adresa şıma re qey erşawıtışê e-postayê tesdiqi, butonê cêrıni bıtıknê.
-e-posta yo ke erşawiyeno tede gıreyê kodê tesdiqi esto, gıreyi bıtıkne akerê u e-postayê xo tesdiq kerê.',
+'confirmemail_text' => 'Qey gurweyayışê e-postayê wikiyi gani veror e-postayê şıma araşt bıbo.
+Adresa şıma re qey erşawıtışê e-postayê araştin, butonê cêrıni pıploxnê.
+E-posta yo ke erşawiyeno tede gıreyê kodê araşti esto, gıreyi pıploxne akerê u e-postayê xo araşt kerê.',
 'confirmemail_pending' => 'Yew codê konfirmasyonî ma ti ra şiravt;
 Eka ti newe hesabê xo viraşt, ti gani yew di dekika vindero u email xo kontrol bike, yani reyna yew hesab meviraz.',
 'confirmemail_send' => 'Yew kodê konfirmasyonî email mina bişirave',
@@ -3651,15 +3652,15 @@ Ti eşkeno [[Special:UserLogin|ci kewt]].',
 'confirmemail_body' => 'Brayo delal, mara ke şıma no IP-adresi ra,
 keyepelê {{SITENAME}}i de pêno $2 e-postayi hesab kerda.
 
-eke raşta no e-posta eyê şımayo şıma gani tesdiq bıkerî, qey tesdiq kerdışi gani karê e-postayê keyepeli {{SITENAME}} aktif bıbo, qey aktif kerdışi gıreyê cêrêni bıtıkne.
+eke raşta no e-posta eyê şımayo şıma gani araşt bıkerî, qey araşt kerdışi gani karê e-postayê keyepeli {{SITENAME}} aktif bıbo, qey aktif kerdışi gıreyê cêrêni bıtıkne.
 
 $3
 
-eke şıma hesab *nê akerdo*, qey ibtalê tesdiqkerdışê adresa e-postayi gıreyê cêrıni bıtıknê:
+eke şıma hesab *nê akerdo*, qey terqnayışê araşt kerdışê adresa e-postayi gıreyê cêrıni pıploxnê:
 
 $5
 
-kodê tesdiqi heta ıney tarixi $4 meqbulo.',
+kodê araşti heta ıney tarixi $4 meqbulo.',
 'confirmemail_body_changed' => 'Yew ten, muhtemelen şıma no IP-adresi $1 ra,
 keyepelê {{SITENAME}}i de pê no $2 e-postayi hesab kerd a.
 
@@ -4109,4 +4110,6 @@ Ena sita dı newke xırabiya teknik esta.',
 'duration-centuries' => '$1 {{PLURAL:$1|seserre|seserri}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milenyum|milenyumi}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Kılitê teqdimkarê $1i nêvêniyenê.',
 );
index c510f72..d7ce8be 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)',
@@ -544,6 +544,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''",
@@ -3726,4 +3728,6 @@ Hować móžoš slědujucy jadnory formular wužywaś. Twój komentar pśidajo s
 'duration-centuries' => '$1 {{PLURAL:$1|stolěśe|stolěśi|stolěśa|stolěśow}}',
 'duration-millennia' => '$1 {{PLURAL:$1|lěttysac|lěttysaca|lěttysace|lěttysacow}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Zastajenja na serwer $1 njedaju se wótwołaś.',
 );
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 b7275f8..b8c2405 100644 (file)
@@ -288,7 +288,8 @@ $magicWords = array(
        'nse'                    => array( 0,    'NSE:'                   ),
        'localurl'               => array( 0,    'LOCALURL:'              ),
        'localurle'              => array( 0,    'LOCALURLE:'             ),
-       'articlepath'            => array( 0,    'ARTICLEPATH'            ),
+       'articlepath'            => array( 0,    'ARTICLEPATH'            ),
+       'pageid'                 => array( 0,    'PAGEID'                 ),
        'server'                 => array( 0,    'SERVER'                 ),
        'servername'             => array( 0,    'SERVERNAME'             ),
        'scriptpath'             => array( 0,    'SCRIPTPATH'             ),
@@ -636,7 +637,7 @@ XHTML id names.
 'tog-hidepatrolled'           => 'Hide patrolled edits in recent changes',
 'tog-newpageshidepatrolled'   => 'Hide patrolled pages from new page list',
 'tog-extendwatchlist'         => 'Expand watchlist to show all changes, not just the most recent',
-'tog-usenewrc'                => 'Use enhanced recent changes (requires JavaScript)',
+'tog-usenewrc'                => 'Group changes by page in recent changes and watchlist (requires JavaScript)',
 'tog-numberheadings'          => 'Auto-number headings',
 'tog-showtoolbar'             => 'Show edit toolbar (requires JavaScript)',
 'tog-editondblclick'          => 'Edit pages on double click (requires JavaScript)',
@@ -1086,6 +1087,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.
@@ -2310,6 +2313,7 @@ If the problem persists, contact an [[Special:ListUsers/sysop|administrator]].',
 'lockmanager-fail-releaselock' => 'Could not release lock for "$1".',
 'lockmanager-fail-db-bucket'   => 'Could not contact enough lock databases in bucket $1.',
 'lockmanager-fail-db-release'  => 'Could not release locks on database $1.',
+'lockmanager-fail-svr-acquire' => 'Could not acquire locks on server $1.',
 'lockmanager-fail-svr-release' => 'Could not release locks on server $1.',
 
 # ZipDirectoryReader
@@ -3194,8 +3198,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.',
@@ -3220,7 +3224,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',
index 0faa840..1f7eea9 100644 (file)
@@ -17,6 +17,7 @@
  * @author Iketsi
  * @author Jens Liebenau
  * @author Kaganer
+ * @author Karika
  * @author Lucas
  * @author LyzTyphone
  * @author Malafaya
@@ -2152,6 +2153,9 @@ Vi povas plistrikti la mendon per selektado de protokola speco, la salutnomo (in
 'allpages-bad-ns' => '{{SITENAME}} ne havas nomspacon "$1".',
 'allpages-hide-redirects' => 'Kaŝi alidirektilojn',
 
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'Vidas plej nova.',
+
 # Special:Categories
 'categories' => 'Kategorioj',
 'categoriespagetext' => 'La {{PLURAL:$1|jena kategorio|jenaj kategorioj}} ekzistas jam en la vikio.
index c5e3988..4330a53 100644 (file)
@@ -351,7 +351,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)',
@@ -733,6 +733,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''",
@@ -841,7 +843,7 @@ Puedes ignorar este mensaje si esta cuenta fue creada por error.',
 'suspicious-userlogout' => 'Tu solicitud de desconexión ha sido denegada, pues parece haber sido enviada desde un navegador defectuoso o un proxy caché.',
 
 # E-mail sending
-'php-mail-error-unknown' => 'Error desconocido en la función mail() de PHP',
+'php-mail-error-unknown' => 'Error desconocido en la función mail() de PHP.',
 'user-mail-no-addy' => 'Se ha intentado enviar correo electrónico sin una dirección de correo electrónico.',
 
 # Change password dialog
@@ -4023,4 +4025,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..3922229 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)',
@@ -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''",
@@ -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',
@@ -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',
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 0d92e6e..734b00c 100644 (file)
@@ -1232,6 +1232,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' => 'حلقه در دستور unstrip پیدا شد',
+'parser-unstrip-recursion-limit' => 'از حداکثر ارجاع در دستور unstrip تجاوز شد ($1)',
 
 # "Undo" feature
 'undo-success' => 'این ویرایش را می‌توان خنثی کرد.
@@ -2310,6 +2316,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization را ببینید.',
 می‌توانید با انتخاب نوع سیاهه، نام کاربری (حساس به کوچکی و بزرگی حروف) و صفحه‌های تغییریافته (حساس به بزرگی و کوچکی حروف)، نمایش را محدودتر سازید.',
 'logempty' => 'مورد منطبق با منظور شما در سیاهه یافت نشد.',
 'log-title-wildcard' => 'صفحه‌هایی را جستجو کن که عنوانشان با این عبارت آغاز می‌شود',
+'showhideselectedlogentries' => 'نمایش/نهفتن موارد انتخابی در سیاهه',
 
 # Special:AllPages
 'allpages' => 'همهٔ صفحه‌ها',
@@ -3202,6 +3209,7 @@ $1',
 'spambot_username' => 'هرزه‌تمیزکارِ مدیاویکی',
 'spam_reverting' => 'واگردانی به آخرین نسخه‌ای که پیوندی به $1 ندارد.',
 'spam_blanking' => 'تمام نسخه‌ها حاوی پیوند به $1 بود، در حال خالی کردن',
+'spam_deleting' => 'تمام نسخه‌ها حاوی پیوند به $1 بود، در حال حذف',
 
 # Info page
 'pageinfo-title' => 'اطلاعات در مورد «$1»',
@@ -4178,4 +4186,6 @@ $5
 'duration-centuries' => '$1 قرن',
 'duration-millennia' => '{{PLURAL:$1|هزار سال |$1 هزار سال}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'امکان گرفتن قفل‌های سرور $1 وجود ندارد.',
 );
index 17f26f0..13f27ce 100644 (file)
@@ -689,12 +689,13 @@ $2',
 'customcssprotected' => 'Sinulla ei ole oikeutta muuttaa tätä CSS-sivua, koska se sisältää toisen käyttäjän henkilökohtaisia asetuksia.',
 'customjsprotected' => 'Sinulla ei ole oikeutta muuttaa tätä JavaScript-sivua, koska se sisältää toisen käyttäjän henkilökohtaisia asetuksia.',
 'ns-specialprotected' => 'Toimintosivuja ei voi muokata.',
-'titleprotected' => "Käyttäjä [[User:$1|$1]] on asettanut tämän sivun luontikieltoon: ''$2''.",
+'titleprotected' => "Käyttäjä [[User:$1|$1]] on suojannut tämän sivunimen, ja sivua ei voi luoda.
+Syynä on: ''$2''.",
 'filereadonlyerror' => 'Tiedostoa "$1" ei voi muuttaa, koska jaettu mediavarasto "$2" on "vain luku" -tilassa.
 
 Lukituksen asettanut ylläpitäjä on antanut seuraavan syyn toimenpiteelle: "$3".',
-'invalidtitle-knownnamespace' => 'Virheellinen nimike nimitilaan "$2" ja teksti "$3"',
-'invalidtitle-unknownnamespace' => 'Virheellinen nimi tuntemattomassa nimitilassa $1 ja tekstissä $2',
+'invalidtitle-knownnamespace' => 'Virheellinen sivunimi, nimiavaruus "$2" ja teksti "$3"',
+'invalidtitle-unknownnamespace' => 'Virheellinen sivunimi, tuntematon nimiavaruus numero $1 ja teksti $2',
 
 # Virus scanner
 'virus-badscanner' => "Virheellinen asetus: Tuntematon virustutka: ''$1''",
@@ -1006,7 +1007,7 @@ Alla on viimeisin lokitapahtuma:",
 'semiprotectedpagewarning' => 'Tämä sivu on lukittu siten, että vain rekisteröityneet käyttäjät voivat muokata sitä.
 Alla on viimeisin lokitapahtuma:',
 'cascadeprotectedwarning' => '<strong>Vain ylläpitäjät voivat muokata tätä sivua, koska se on sisällytetty alla {{PLURAL:$1|olevaan laajennetusti suojattuun sivuun|oleviin laajennetusti suojattuihin sivuihin}}</strong>:',
-'titleprotectedwarning' => "'''Tämä sivun luominen on rajoitettu vain osalle käyttäjistä [[Special:ListGroupRights|tietyillä oikeuksilla]].'''
+'titleprotectedwarning' => "'''Varoitus: Tämä sivunimi on suojattu niin, että sivun luomiseen tarvitaan [[Special:ListGroupRights|erityisiä oikeuksia]].'''
 Alla on viimeisin lokitapahtuma:",
 'templatesused' => 'Tällä sivulla {{PLURAL:$1|käytetty malline|käytetyt mallineet}}:',
 'templatesusedpreview' => 'Esikatselussa mukana {{PLURAL:$1|oleva malline|olevat mallineet}}:',
@@ -1140,7 +1141,7 @@ Voit silti nähdä tämän muutoksen. Lisätietoja löytyy [{{fullurl:{{#Special
 'revdelete-no-file' => 'Määritettyä tiedostoa ei ole olemassa.',
 'revdelete-show-file-confirm' => 'Haluatko varmasti nähdä poistetun version tiedostosta <nowiki>$1</nowiki>, joka on tallennettu $2 kello $3?',
 'revdelete-show-file-submit' => 'Kyllä',
-'revdelete-selected' => "'''{{PLURAL:$2|Valittu versio|Valitut versiot}} sivusta '''$1:''''''",
+'revdelete-selected' => "'''{{PLURAL:$2|Valittu versio|Valitut versiot}} sivusta [[:$1]]'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Valittu lokimerkintä|Valitut lokimerkinnät}}:'''",
 'revdelete-text' => "'''Poistetut versiot ja lokitapahtumat näkyvät edelleen sivun historiassa ja lokeissa, mutta osa niiden sisällöstä ei ole julkisesti saatavilla.'''
 Muut ylläpitäjät {{GRAMMAR:inessive|{{SITENAME}}}} voivat silti tarkastella piilotettua sisältöä, ja he voivat palauttaa sen näkyviin tämän käyttöliittymän kautta, ellei tätä ole erikseen rajoitettu.",
@@ -1148,17 +1149,17 @@ Muut ylläpitäjät {{GRAMMAR:inessive|{{SITENAME}}}} voivat silti tarkastella p
 'revdelete-suppress-text' => "Häivytystä pitäisi käyttää '''vain''' seuraavissa tapauksissa:
 * Sopimattomat henkilötiedot
 *: ''kotiosoitteet, puhelinnumerot, sosiaaliturvatunnukset ja muut.''",
-'revdelete-legend' => 'Version rajoitukset',
-'revdelete-hide-text' => 'Piilota version sisältö',
+'revdelete-legend' => 'Aseta version näkyvyyden rajoitukset',
+'revdelete-hide-text' => 'Piilota version tekstisisältö',
 'revdelete-hide-image' => 'Piilota tiedoston sisältö',
 'revdelete-hide-name' => 'Piilota toiminto ja kohde',
 'revdelete-hide-comment' => 'Piilota yhteenveto',
 'revdelete-hide-user' => 'Piilota tekijän tunnus tai IP-osoite',
-'revdelete-hide-restricted' => 'Piilota tiedot ylläpitäjiltä kuten muilta',
+'revdelete-hide-restricted' => 'Häivytä tiedot sekä ylläpitäjien että muiden käyttäjien näkyviltä',
 'revdelete-radio-same' => '(älä muuta)',
 'revdelete-radio-set' => 'Kyllä',
 'revdelete-radio-unset' => 'Ei',
-'revdelete-suppress' => 'Piilota myös ylläpitäjiltä',
+'revdelete-suppress' => 'Häivytä tiedot myös ylläpitäjien näkyviltä samalla kun piilotat ne muilta käyttäjiltä',
 'revdelete-unsuppress' => 'Poista rajoitukset palautetuilta versiolta',
 'revdelete-log' => 'Syy',
 'revdelete-submit' => 'Toteuta {{PLURAL:$1|valittuun versioon|valittuihin versioihin}}',
@@ -1296,7 +1297,7 @@ Kokeile lisätä haun alkuun ''all:'', niin haku kohdistuu kaikkeen sisältöön
 'powersearch-ns' => 'Hae nimiavaruuksista:',
 'powersearch-redir' => 'Luettele ohjaukset',
 'powersearch-field' => 'Etsi',
-'powersearch-togglelabel' => 'Muuta valinta',
+'powersearch-togglelabel' => 'Muuta valintaa',
 'powersearch-toggleall' => 'Valitse kaikki',
 'powersearch-togglenone' => 'Valitse ei mitään',
 'search-external' => 'Ulkoinen haku',
@@ -1478,7 +1479,7 @@ Tässä satunnaisesti tuotettu arvo, jota voit käyttää: $1',
 # Rights
 'right-read' => 'Lukea sivuja',
 'right-edit' => 'Muokata sivuja',
-'right-createpage' => 'Luoda sivuja pois lukien keskustelusivut',
+'right-createpage' => 'Luoda sivuja (jotka eivät ole keskustelusivuja)',
 'right-createtalk' => 'Luoda keskustelusivuja',
 'right-createaccount' => 'Luoda uusia käyttäjätunnuksia',
 'right-minoredit' => 'Merkitä muokkauksensa pieniksi',
@@ -2096,6 +2097,7 @@ Huomaa, että muut verkkosivut saattavat viitata tiedostoon suoran URL:n avulla,
 Voit rajoittaa listaa valitsemalla lokityypin, käyttäjän tai sivun johon muutos on kohdistunut. Jälkimmäiset ovat kirjainkokoherkkiä.',
 'logempty' => 'Ei tapahtumia lokissa.',
 'log-title-wildcard' => 'Kohde alkaa merkkijonolla',
+'showhideselectedlogentries' => 'Näytä tai piilota valitut lokimerkinnät',
 
 # Special:AllPages
 'allpages' => 'Kaikki sivut',
@@ -2403,16 +2405,18 @@ Viimeisimmän muokkauksen on tehnyt käyttäjä [[User:$3|$3]] ([[User talk:$3|k
 
 # Undelete
 'undelete' => 'Palauta poistettuja sivuja',
-'undeletepage' => 'Poistettujen sivujen selaus',
+'undeletepage' => 'Katsele 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.',
 'undelete-fieldset-title' => 'Palauta versiot',
-'undeleteextrahelp' => "Palauttaaksesi sivun koko muutoshistorian, jätä kaikki valintalaatikot tyhjiksi ja napsauta '''''{{int:undeletebtn}}'''''.
-Voit palauttaa versiota valikoivasti valitsemalla vain niiden versioiden valintalaatikot, jotka haluat palauttaa.",
+'undeleteextrahelp' => "Palauttaaksesi sivun koko muutoshistorian jätä kaikki valintalaatikot tyhjiksi ja napsauta '''''{{int:undeletebtn}}'''''.
+Voit palauttaa versioita valikoivasti valitsemalla vain niiden versioiden valintalaatikot, jotka haluat palauttaa.",
 'undeleterevisions' => '{{PLURAL:$1|Versio|$1 versiota}} arkistoitu.',
 'undeletehistory' => 'Jos palautat sivun, kaikki versiot lisätään sivun historiaan. Jos uusi sivu samalla nimellä on luotu poistamisen jälkeen, palautetut versiot lisätään sen historiaan.',
-'undeleterevdel' => 'Palautusta ei tehdä, jos sen seurauksena sivun uusin versio olisi osittain poistettu. Tässä tilanteessa poista uusimman poistettavan version piilotus. Tiedostoversioita, joihin sinulla ei ole katseluoikeutta ei palauteta.',
+'undeleterevdel' => "Palautusta ei tehdä, jos sen seurauksena sivun uusin versio olisi osittain piilotettu. 
+Tässä tilanteessa älä valitse palautettavaksi näkyviin viimeisintä poistettua versiota tai poista version piilotus.<br />
+Tiedostoversioita, joihin sinulla ei ole katseluoikeutta (''häivytetyt versiot''), ei palauteta.",
 'undeletehistorynoadmin' => 'Tämä sivu on poistettu. Syy sivun poistamiseen näkyy yhteenvedossa, jossa on myös tiedot, ketkä ovat muokanneet tätä sivua ennen poistamista. Sivujen varsinainen sisältö on vain ylläpitäjien luettavissa.',
 'undelete-revision' => 'Poistettu sivu $1 hetkellä $4 kello $5. Tekijä: $3.',
 'undeleterevision-missing' => 'Virheellinen tai puuttuva versio. Se on saatettu palauttaa tai poistaa arkistosta.',
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 6aefb8e..75da985 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)',
@@ -754,6 +754,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''",
@@ -4053,4 +4055,6 @@ Sinon, vous pouvez utiliser le formulaire simplifié ci-dessous. Votre commentai
 'duration-centuries' => '$1 {{PLURAL:$1|siècle|siècles}}',
 'duration-millennia' => '$1 {{PLURAL:$1|millénaire|millénaires}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => "Impossible d'acquérir des verrous sur le serveur $1.",
 );
index 0dd57ec..5f3fc9c 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
@@ -316,7 +316,7 @@ $messages = array(
 '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-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-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è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)',
@@ -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 b1cc827..d7b129f 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)',
@@ -393,7 +393,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.",
@@ -570,14 +570,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 +604,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 +673,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 +721,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 +799,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 +926,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 +1059,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 +1075,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 +1095,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:',
@@ -1164,9 +1164,9 @@ Do san jo ual iinstelangen wech.',
 'prefs-advancedrendering' => 'Ütwided möölikhäide',
 'prefs-advancedsearchoptions' => 'Ütwided möölikhäide',
 'prefs-advancedwatchlist' => 'Ütwided möölikhäide',
-'prefs-displayrc' => "Mögelkhaiden för't uunwisen",
-'prefs-displaysearchoptions' => "Mögelkhaiden för't uunwisen",
-'prefs-displaywatchlist' => "Mögelkhaiden för't uunwisen",
+'prefs-displayrc' => "Mögelkhaiden för't uunwisin",
+'prefs-displaysearchoptions' => "Mögelkhaiden för't uunwisin",
+'prefs-displaywatchlist' => "Mögelkhaiden för't uunwisin",
 'prefs-diffs' => 'Ferskeel',
 
 # User preference: e-mail validation using jQuery
@@ -1178,45 +1178,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,6 +1225,7 @@ Do san jo ual iinstelangen wech.',
 'right-createpage' => 'Sidjen maage (saner diskusjuunssidjen)',
 'right-createtalk' => 'Diskusjuunssidjen maage',
 'right-createaccount' => 'Brükerkonto iinracht',
+'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',
@@ -1238,7 +1239,7 @@ 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',
@@ -1255,6 +1256,7 @@ 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 feranrang üs letj kääntiakne',
 'action-move' => 'jüdeer sid ferschüwe',
 'action-move-subpages' => 'jüdeer sid än unerside ferschüwe',
 'action-movefile' => 'jüdeer sid ferschüwe',
@@ -1263,20 +1265,20 @@ Do san jo ual iinstelangen wech.',
 '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 '''{{SITENAME}}''' 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',
@@ -1285,15 +1287,17 @@ 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',
@@ -1340,7 +1344,7 @@ Det beskriiwang faan't [$2 beskriiwangssidj] woort oner uunwiset.",
 'randompage' => 'Tufali sid',
 
 # Statistics
-'statistics' => 'Statistiik',
+'statistics' => 'Statistik',
 
 'disambiguationspage' => 'Template:Muardüüdag artiikel',
 
@@ -1770,11 +1774,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',
@@ -1809,6 +1817,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',
@@ -1818,4 +1837,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 077055e..f9ea105 100644 (file)
@@ -16,6 +16,7 @@
  * @author Symane
  * @author Urhixidur
  * @author Vipuser
+ * @author Xiaomingyan
  */
 
 $fallback = 'zh-hans';
@@ -1074,7 +1075,7 @@ $2',
 ** 档案重复',
 
 # MIME search
-'mimesearch' => 'MIME 搜索',
+'mimesearch' => 'MIME搜索',
 'mimesearch-summary' => '个只页面启用档案MIME类型筛检程式。输入:内容类型/子类型,像 <tt>image/jpeg</tt>。',
 'mimetype' => 'MIME 类型:',
 'download' => '下载',
index 9225c36..7fab5fb 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Galician (Galego)
+/** Galician (galego)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -229,7 +229,7 @@ $messages = array(
 '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)',
@@ -615,6 +615,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''",
@@ -1309,7 +1311,7 @@ Note que os seus índices do contido de {{SITENAME}} poden estar desactualizados
 'prefs-watchlist-token' => 'Pase para a lista de vixilancia:',
 'prefs-misc' => 'Preferencias varias',
 'prefs-resetpass' => 'Cambiar o contrasinal',
-'prefs-changeemail' => 'Cambiar o correo electrónico',
+'prefs-changeemail' => 'Cambiar o enderezo de correo electrónico',
 'prefs-setemail' => 'Establecer un enderezo de correo electrónico',
 'prefs-email' => 'Opcións de correo electrónico',
 'prefs-rendering' => 'Aparencia',
@@ -1916,7 +1918,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 +2584,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 +2797,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',
@@ -3508,7 +3510,7 @@ Os demais agocharanse por omisión.
 
 'exif-isospeedratings-overflow' => 'Superior a 65535',
 
-'exif-iimcategory-ace' => 'Arte, cultura e entretemento',
+'exif-iimcategory-ace' => 'Arte, cultura e lecer',
 'exif-iimcategory-clj' => 'Crime e dereito',
 'exif-iimcategory-dis' => 'Desastres e accidentes',
 'exif-iimcategory-fin' => 'Economía e negocios',
@@ -3938,4 +3940,6 @@ En caso contrario, pode empregar o formulario sinxelo inferior. O seu comentario
 'duration-centuries' => '$1 {{PLURAL:$1|século|séculos}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milenio|milenios}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Non se puideron obter os peches no servidor $1.',
 );
index f6d58d5..af5a05f 100644 (file)
@@ -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' => 'લક્ષ્ય નામ સ્થળ',
index aba4106..3776098 100644 (file)
@@ -7,10 +7,12 @@
  * @ingroup Language
  * @file
  *
+ * @author Bulaisen
  * @author Kalani
  * @author Kolonahe
  * @author Node ue
  * @author Singularity
+ * @author Xqt
  */
 
 $namespaceNames = array(
@@ -253,7 +255,7 @@ $messages = array(
 'jumptosearch' => 'huli',
 
 # 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' => 'No {{SITENAME}}',
+'aboutsite' => 'E pili ana iā {{SITENAME}}',
 'aboutpage' => 'Project:E pili ana',
 'copyrightpage' => '{{ns:project}}:Palapala ho‘okuleana',
 'currentevents' => 'Ka nū hou',
@@ -263,7 +265,7 @@ $messages = array(
 'edithelp' => 'Kōkua me ka ho‘ololi ‘ana',
 'edithelppage' => 'Help:Ho‘ololi',
 'helppage' => 'Help:Papa kuhikuhi',
-'mainpage' => 'Papa kinohi',
+'mainpage' => "Kahua pa'a",
 'mainpage-description' => 'Ka papa kinohi',
 'policy-url' => 'Project:Palapala',
 'portal' => 'Ka hui kaiaulu',
@@ -298,7 +300,7 @@ $messages = array(
 'red-link-title' => '$1 (ʻaʻole i kākau ʻia)',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => 'ʻaoʻao',
+'nstab-main' => 'ʻAoʻao',
 'nstab-user' => 'Inoa mea ho‘ohana',
 'nstab-media' => 'Pāpaho',
 'nstab-special' => 'Papa nui',
@@ -588,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 722984f..c4a09ad 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)',
@@ -746,6 +746,8 @@ $2',
 מנהל המערכת שנעל את המאגר סיפק את ההסבר הבא: "\'\'\'$3\'\'\'".',
 'invalidtitle-knownnamespace' => 'כותרת בלתי־תקינה עם מרחב השם "$2" ושם דף "$3"',
 'invalidtitle-unknownnamespace' => 'כותרת בלתי־תקינה עם מרחב שם בלתי־ידוע מספר $1 ושם דף "$2"',
+'exception-nologin' => 'לא בחשבון',
+'exception-nologin-text' => 'כדי לראות את הדף הזה או לבצע את הפעולה הזאת צריך להיכנס לחשבון באתר הוויקי הזה.',
 
 # Virus scanner
 'virus-badscanner' => "הגדרות שגויות: סורק הווירוסים אינו ידוע: ''$1''",
@@ -1912,9 +1914,9 @@ $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',
+'lockmanager-fail-db-bucket' => 'לא הייתה אפשרות לקבל מספיק מסדי נתונים של נעילות בדלי $1.',
+'lockmanager-fail-db-release' => 'לא הייתה אפשרות לשחרר נעילות על מסד הנתונים $1.',
+'lockmanager-fail-svr-release' => 'לא הייתה אפשרות לשחרר נעילות על השרת $1.',
 
 # ZipDirectoryReader
 'zip-file-open-error' => 'אירעה שגיאה במהלך פתיחת הקובץ לבדיקות ZIP.',
@@ -4106,4 +4108,6 @@ $5
 'duration-centuries' => '{{PLURAL:$1|מאה שנה|$1 מאות שנים|מאתיים שנה}}',
 'duration-millennia' => '{{PLURAL:$1|אלף שנה|$1 אלפי שנים|אלפיים שנה}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'לא הייתה אפשרות לבצע נעילות על השרת $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 a0ec89e..a0ef469 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)',
@@ -540,6 +540,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''",
@@ -3716,4 +3718,6 @@ Hewak móžeš slědowacy jednory formular wužiwać. Twój komentar přida so s
 'duration-centuries' => '$1 {{PLURAL:$1|lětstotk|lětstotkaj|lětstotki|lětstotkow}}',
 'duration-millennia' => '$1 {{PLURAL:$1|lěttysac|lěttysacaj|lěttysacy|lěttysacow}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Zawěry na serwer $1 njehodźa so wotwołać.',
 );
index c507c68..f71379d 100644 (file)
@@ -29,6 +29,7 @@
  * @author R-Joe
  * @author Samat
  * @author Sucy
+ * @author TK-999
  * @author Terik
  * @author Tgr
  * @author Xbspiro
@@ -318,7 +319,7 @@ $messages = array(
 '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ú)',
index e1a7633..4a565b9 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)',
@@ -536,6 +536,8 @@ Le motivo specificate es ''$2''.",
 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 +801,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.',
@@ -3884,4 +3886,6 @@ Si non, tu pote usar le formulario facile hic infra. Tu commento essera addite a
 'duration-centuries' => '$1 {{PLURAL:$1|seculo|seculos}}',
 'duration-millennia' => '$1 {{PLURAL:$1|millennio|millennios}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Non poteva acquirer le serraturas sur le servitor $1.',
 );
index 00322f5..0c21f44 100644 (file)
@@ -612,7 +612,7 @@ Vider li [[Special:IPBlockList|liste de bloc de IP]] por li liste de bloces e ba
 'revertmerge' => 'Desfar fusion',
 
 # Diffs
-'history-title' => 'Revision del historie de "$1"',
+'history-title' => 'Historic del revision de "$1"',
 'lineno' => 'Linea $1:',
 'compareselectedversions' => 'Comparar revisiones selectet',
 'editundo' => 'anullar',
index a376cae..348424a 100644 (file)
@@ -37,17 +37,17 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'Pinag-ugisan ti silpo:',
 'tog-justify' => 'Limpiaen dagiti parapo',
-'tog-hideminor' => 'Ilemmeng dagiti babassit a panag-urnos idiay kinaudian a sinuk-sukatan',
-'tog-hidepatrolled' => 'Ilemmeng dagiti napatruliaan nga inurnos idiay kinaudian a sinuk-sukatan',
+'tog-hideminor' => 'Ilemmeng dagiti babassit a panag-urnos kadagiti naudi a sinuk-sukatan',
+'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, ta saan laeng dagita nabiit',
-'tog-usenewrc' => 'Usaren dagiti napasayaat a kinaudian a sinuk-sukatan (masapul ti JavaScript)',
+'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-numberheadings' => 'Automatiko a pabilangan dagiti paulo',
-'tog-showtoolbar' => 'Ipakita ti alikamen ti panag-urnos (masapul ti JavaScript)',
-'tog-editondblclick' => 'Urnosen ti pampanid iti mamindua a panagtakla (masapul ti JavaScript)',
+'tog-showtoolbar' => 'Ipakita ti ramit ti panag-urnos (masapul ti JavaScript)',
+'tog-editondblclick' => 'Urnosen dagiti panid iti mamindua a panagtakla (masapul ti JavaScript)',
 'tog-editsection' => 'Pakabaelan ti panag-urnos iti paset babaen kadagiti [urnosen] a  panilpo',
-'tog-editsectiononrightclick' => 'Ikkan ti pakabaelan ti paset  a panag-urnos no agtakla ti kannawan kadagiti paset a titulo (masapul ti JavaScript)',
-'tog-showtoc' => 'Ipakita ti tabla dagiti linaon (para kadagiti panid nga addaan ti ad-adu ngem dagiti 3 a paulo)',
+'tog-editsectiononrightclick' => 'Ikkan ti pakabaelan ti paset  a panag-urnos no agtakla ti kanawan kadagiti paset a titulo (masapul ti JavaScript)',
+'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',
@@ -62,7 +62,7 @@ $messages = array(
 'tog-enotifminoredits' => 'E-suratannak met kadagiti bassit a panag-urnos ti pampanid',
 'tog-enotifrevealaddr' => 'Iparang ti pagtaengan ti e-surat ko kadagiti pammalagip ti  e-surat',
 'tog-shownumberswatching' => 'Ipakita ti bilang dagiti agbambantay nga agar-aramat',
-'tog-oldsig' => 'Ti addaan a pirma:',
+'tog-oldsig' => 'Ti adda a pirma:',
 'tog-fancysig' => 'Tratuen ti pirma a kas wikitext (nga awan ti automatiko a panagsilpo)',
 'tog-externaleditor' => 'Isigud ti panag-usar iti ruar a pnag-urnos (para dagiti eksperto laeng, masapul ti nangruna a kasasaad a pinakaikabil idiay komputer mo. [//www.mediawiki.org/wiki/Manual:External_editors Adu pay a pakaammo.])',
 'tog-externaldiff' => 'Isigud ti panag-usar iti ruar a  sabali (para dagiti eksperto laeng, masapul ti nagruna a kasasaad a pinakaikabil idiay komputer mo. [//www.mediawiki.org/wiki/Manual:External_editors Adu pay a pakaammo.])',
@@ -76,9 +76,9 @@ $messages = array(
 'tog-watchlisthideanons' => 'Ilemmeng idiay listaan ti bambantayan dagiti inurnos ti di am-ammo nga agar-aramat',
 'tog-watchlisthidepatrolled' => 'Ilemmeng idiay listaan ti bambantayan dagiti napatruliaan nga inurnos',
 'tog-ccmeonemails' => 'Patulodandak iti kopia kadagiti e-surat nga ipatulodko kadagiti sabsabali nga agar-aramat',
-'tog-diffonly' => 'Saan nga iparang ti nagyan ti panid iti baba kadagiti sasabali',
+'tog-diffonly' => 'Saan nga iparang ti linaon ti panid dita baba dagiti pagiddiatan',
 'tog-showhiddencats' => 'Ipakita dagiti nailemmeng a kategoria',
-'tog-norollbackdiff' => 'Laksiden ti sabali a kalpasan ti panagi-subli',
+'tog-norollbackdiff' => 'Laksiden ti paggiddiatan kalpasan ti panagaramid ti panagi-subli',
 
 'underline-always' => 'Kanayon',
 'underline-never' => 'Saan uray kaanoman',
@@ -145,18 +145,18 @@ $messages = array(
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategoria|Dagiti kategoria}}',
-'category_header' => 'Dagiti panid iti kategoria  "$1"',
+'category_header' => 'Dagiti panid ti kategoria  "$1"',
 'subcategories' => 'Dagiti apo ti kategoria',
-'category-media-header' => 'Dagiti midia iti kategoria  "$1"',
-'category-empty' => "''Daytoy a kategoria ket awan ti agdama a nagyan na a pampanid wenno midia.''",
-'hidden-categories' => '{{PLURAL:$1|Nailemmeng a kategoria|Dagiti nailemmeng a kategoria}}',
+'category-media-header' => 'Dagiti midia ti kategoria  "$1"',
+'category-empty' => "''Daytoy a kategoria ket agdama a saan nga aglaon kadagiti panid wenno midia.''",
+'hidden-categories' => '{{PLURAL:$1|Nailemmeng a kategoria|Nailemmeng a katkategoria}}',
 'hidden-category-category' => 'Dagiti nailemmeng a kategoria',
-'category-subcat-count' => '{{PLURAL:$2|Daytoy a kategoria ket adda laeng ti sumaganad nga apo ti kategoria.|Daytoy a kategoria ket adda kadagiti sumaganad nga {{PLURAL:$1|apo ti kategoria|$1 apo dagiti kategoria}}, manipud iti dagup a $2.}}',
-'category-subcat-count-limited' => 'Daytoy a kategoria ket adda kadagiti sumaganad nga {{PLURAL:$1|apo ti kategoria|$1 apo dagiti kategoria}}.',
-'category-article-count' => '{{PLURAL:$2|Daytoy a kategoria ket adda laeng ti sumaganad a panid.|Ti sumaganad a {{PLURAL:$1|panid|$1 pampanid}} iti daytoy a kategoria, manipud iti dagup a $2.}}',
-'category-article-count-limited' => 'Ti sumaganad a {{PLURAL:$1|panid ket|$1 pampanid ket}} adda iti agdama a kategoria.',
-'category-file-count' => '{{PLURAL:$2|Daytoy a kategoria ket aglaon laeng kadagiti sumaganad a papeles.|Ti sumaganad a {{PLURAL:$1|papeles|$1 pap-papeles}} ket adda ti daytoy a kategoria, iti $2 a dagup.}}',
-'category-file-count-limited' => 'Ti sumaganad {{PLURAL:$1|a papeles|$1 a dagiti papeles}} ket adda ti agdama a kategoria.',
+'category-subcat-count' => '{{PLURAL:$2|Daytoy a kategoria ket adda laeng ti sumaganad nga apo ti kategoria.|Daytoy a kategoria ket adda kadagiti sumaganad nga {{PLURAL:$1|nga apo ti kategoria|$1 nga apo dagiti kategoria}}, manipud ti dagup nga $2.}}',
+'category-subcat-count-limited' => 'Daytoy a kategoria ket adda ti sumaganad nga {{PLURAL:$1|nga apo ti kategoria|$1 nga apo dagiti kategoria}}.',
+'category-article-count' => '{{PLURAL:$2|Daytoy a kategoria ket aglaon laeng ti sumaganad a panid.|Ti sumaganad nga {{PLURAL:$1|a panid|$1 a pampanid}} ket adda iti daytoy a kategoria, manipud ti dagup nga $2.}}',
+'category-article-count-limited' => 'Ti sumaganad nga {{PLURAL:$1|a panid |$1 a pampanid}} ket adda iti agdama a kategoria.',
+'category-file-count' => '{{PLURAL:$2|Daytoy a kategoria ket aglaon laeng ti sumaganad a papeles.|Ti sumaganad nga {{PLURAL:$1| a papeles|$1  a pappapeles}} ket adda iti daytoy a kategoria, ti $2 a dagup.}}',
+'category-file-count-limited' => 'Ti sumaganad nga {{PLURAL:$1|a papeles|$1 a pappapeles}} ket adda iti agdama a kategoria.',
 'listingcontinuesabbrev' => 'tuloy.',
 'index-category' => 'Dagiti pagsurutan a panid',
 'noindex-category' => 'Dagiti saan a pagsurutan a panid',
@@ -222,8 +222,8 @@ $messages = array(
 'create-this-page' => 'Aramidem daytoy a panid',
 'delete' => 'Ikkaten',
 'deletethispage' => 'Ikkaten daytoy a panid',
-'undelete_short' => 'Isubli ti naikkat a {{PLURAL:$1|maysa a naurnos|$1 dagiti naurnos}}',
-'viewdeleted_short' => 'Kitaen {{PLURAL:$1|ti maysa a naikkat a naurnos|$1 digiti naikkat a naurnos}}',
+'undelete_short' => 'Isubli ti naikkat a  {{PLURAL:$1|maysa a naurnos|$1 a naururnos}}',
+'viewdeleted_short' => 'Kitaen {{PLURAL:$1|ti maysa a naikkat a naurnos|dagiti $1 a naikkat a naurnos}}',
 'protect' => 'Salakniban',
 'protect_change' => 'sukatan',
 'protectthispage' => 'Salakniban daytoy a panid',
@@ -233,7 +233,7 @@ $messages = array(
 'talkpage' => 'Pagtungtongan daytoy a panid',
 'talkpagelinktext' => 'Makipatang',
 'specialpage' => 'Espesial a panid',
-'personaltools' => 'Kinabukod a ram-ramit',
+'personaltools' => 'Bukod a ram-ramit',
 'postcomment' => 'Baro a paset',
 'articlepage' => 'Kitaen ti naglaon a panid',
 'talk' => 'Pagtungtongan',
@@ -249,11 +249,11 @@ $messages = array(
 'viewtalkpage' => 'Kitaen ti pagtungtungan',
 'otherlanguages' => 'Dagiti sabali a pagsasao',
 'redirectedfrom' => '(Naibaw-ing manipud idiay $1)',
-'redirectpagesub' => 'Ibaw-ing ti panid',
+'redirectpagesub' => 'Baw-ing a panid',
 'lastmodifiedat' => 'Naudi a nabaliwan daytoy a panid idi $1, ti oras nga $2.',
 'viewcount' => 'Naserrekan daytoy a panid iti {{PLURAL:$1|naminsan|$1 a daras}}.',
 'protectedpage' => 'Nasalakniban a panid',
-'jumpto' => 'Mapan iti:',
+'jumpto' => 'Mapan idiay:',
 'jumptonavigation' => 'pagdaliasatan',
 'jumptosearch' => 'biruken',
 'view-pool-error' => 'Pasensian a, dagiti servers ket nadagsenan unay tattan.
@@ -293,8 +293,8 @@ $1',
 'versionrequiredtext' => 'Masapul ti bersion $1 ti MediaWiki tapno maaramat daytoy a panid. Kitaen ti [[Special:Version|panid ti bersion]].',
 
 'ok' => 'OK',
-'retrievedfrom' => 'Naala manipud iti "$1"',
-'youhavenewmessages' => 'Addaanka iti $1 ($2).',
+'retrievedfrom' => 'Naala manipud idiay "$1"',
+'youhavenewmessages' => 'Addaanka ti $1 ($2).',
 'newmessageslink' => 'dagiti baro a mensahe',
 'newmessagesdifflink' => 'naudi a sinukatan',
 'youhavenewmessagesmulti' => 'Adda dagiti baro a mensahem iti $1',
@@ -311,7 +311,7 @@ $1',
 'collapsible-expand' => 'Palawaen',
 'thisisdeleted' => 'Kitaen wenno isubli ti $1?',
 'viewdeleted' => 'Kitaen ti $1?',
-'restorelink' => '{{PLURAL:$1|maysa a naikkat a naurnos|$1 dagiti naikkat a naurnos}}',
+'restorelink' => '{{PLURAL:$1|ti maysa a naikkat a naurnos|dagiti $1 a naikkat a naurnos}}',
 'feedlinks' => 'Pakan:',
 'feed-invalid' => 'Saan a mabalin a kita ti maalala a pakan.',
 'feed-unavailable' => 'Awan dagiti pakan a sindikasion',
@@ -354,7 +354,7 @@ Ti pinaudi a pinagsapul ti database ket:
 <blockquote><tt>$1</tt></blockquote>
 naggapu ti uneg ti opisio "<tt>$2</tt>".
 Ti database ket nangipatulod ti biddut "<tt>$3: $4</tt>".',
-'dberrortextcl' => 'Adda biddut ti database ti  gramatika a pinagsapul.
+'dberrortextcl' => 'Adda biddut ti database ti  gramatika a panagsapul.
 Ti kinaudi a panagsapul ti database ket:
 "$1"
 naggapu ti uneg ti opisio "$2".
@@ -365,37 +365,37 @@ Ti database ket nangipatulod ti biddut "$3: $4".',
 'readonlytext' => 'Ti database ket naikandado iti baro a panagikabil ken panagbaliw, gapu dagiti kanayon nga pagsimpa, ket no malpas absublin to ti kasla idi.
 
 Ti administrador a nagkandado ket daytoy ti palawag na: $1',
-'missing-article' => 'Ti database ket saan a nakabiruk ti testo ti panid  a nabirukan na kuman, ti napanaganan a/nga "$1" $2.
+'missing-article' => 'Ti database ket saan a nakabiruk ti testo ti panid  a nabirukanna kuman, ti napanaganan ti "$1" $2.
 
-Dagiti sumaganad a gapu na daytoy ket ti nagpaso a sabali wenno pakasaritaan ti panilpo ti panid a naikkat.
+Dayoty ket gapu babaen ti sumaganad a baak a paggiddiatan wenno panilpo ti pakasaritaan ti maysa panid a dati a naikkat.
 
 No saan a kasta, baka nakasarak ti kiteb ti "software".
 
-Panngaasim ta ibagam kadagiti [[Special:ListUsers/sysop|administrador]], isurat mo ti pakaammo dayta URL.',
+Panngaasi nga  ibagam kadagiti [[Special:ListUsers/sysop|administrador]], isurat mo ti pakaammo dayta URL.',
 'missingarticle-rev' => '(binaliwan#: $1)',
 'missingarticle-diff' => '(Sabali: $1, $2)',
 'readonly_lag' => 'Automatiko a narikpan ti database kabayatan a dagiti tagabu a database servers ket kumamakam iti agturay',
 'internalerror' => 'Akin-uneg a biddut',
 'internalerror_info' => 'Akin-uneg a biddut: $1',
-'fileappenderrorread' => 'Saan nga mabasa "$1" no agpanayon.',
+'fileappenderrorread' => 'Saan a mabasa ti "$1" idi agpanayon.',
 'fileappenderror' => 'Saan a manayonan ti "$1" iti  "$2".',
-'filecopyerror' => 'Saan a matulad ti papeles "$1" iti "$2".',
-'filerenameerror' => 'Saan a managanan ti papeles "$1" iti "$2".',
-'filedeleteerror' => 'Saan a maikkat ti papeles a "$1".',
-'directorycreateerror' => 'Saan a maaramid ti direktorio a "$1".',
-'filenotfound' => 'Saan a masarakan ti papeles a "$1".',
-'fileexistserror' => 'Di mabalin a maisurat ti papeles a "$1": adda kastan a papeles',
+'filecopyerror' => 'Saan a makopia ti papeles $1 iti $2.',
+'filerenameerror' => 'Saan a managanan ti papeles "$1" iti "$2".',
+'filedeleteerror' => 'Saan a maikkat ti papeles  "$1".',
+'directorycreateerror' => 'Saan a maaramid ti direktorio  "$1".',
+'filenotfound' => 'Saan a masarakan ti papeles  "$1".',
+'fileexistserror' => 'Di mabalin a maisurat ti papeles  "$1": Adda kastan a papeles',
 'unexpected' => 'Di mapakpakadaaan a kuwenta: "$1"="$2".',
 'formerror' => 'Biddut: saan a maited ti nakabuklan.',
 'badarticleerror' => 'Saan a matungpal daytoy nga aramid iti daytoy a panid.',
 'cannotdelete' => 'Ti panid wenno ti papeles "$1" ket saan a maikkat.
 Amangan no addan sabali a nangikkat.',
-'cannotdelete-title' => 'Saan a maikkat ti panid a "$1"',
+'cannotdelete-title' => 'Saan a maikkat ti panid  "$1"',
 '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.',
-'perfcached' => 'Ti sumaganad a data ket naka-cached ken mabalin a saan a napabaro. T kangato a {{PLURAL:$1|maysa a nagbanagan ket|$1 dagiti nagbanagan}} ket magun-od idiay cache.',
-'perfcachedts' => 'Ti sumaganad a data ket naka-cached, ken naudi a napabaro idi $1. T kangato a {{PLURAL:$4|maysa a nagbanagan ket|$4 dagiti nagbanagan}} ket magun-od idiay cache.',
+'perfcached' => 'Ti sumaganad a data ket naka-cached ken mabalin a saan a napabaro. Ti kaadu {{PLURAL:$1|iti maysa a nagbanagant|dagiti $1 a nagbanagan}} ket magun-od idiay cache.',
+'perfcachedts' => 'Ti sumaganad a data ket naka-cached, ken naudi a napabaro idi $1. Ti kaadu a {{PLURAL:$4|iti maysa a nagbanagan |dagiti $4 nagbanagan}} ket magun-od idiay cache.',
 'querypage-no-updates' => 'Dagiti panangpabaro iti daytoy a panid ket agdama a nabaldado. 
 Saan a mipasaradiwa ita dagiti data ditoy.',
 'wrong_wfQuery_params' => 'Kamali a parametro iti wfQuery()<br />
@@ -405,22 +405,22 @@ Panagsapul: $2',
 'viewsource-title' => 'Kitaen ti taudan iti $1',
 'actionthrottled' => 'Napabuntog ti aramid',
 'actionthrottledtext' => 'Para ti pagkontra ti spam, naipatingga ka ti pinagtungpal ti adu unay iti daytoy nga aramid iti nasiket nga oras, ken nalippasamon ti patingga.
-Pangngaasi ta ipadas mo manen no madamdama.',
-'protectedpagetext' => 'Nasalakniban daytoy a panid tapno pawilan ti panag-urnos.',
+Pangngaasi nga ipadas mo manen no madamdama.',
+'protectedpagetext' => 'Nasalakniban daytoy a panid tapno mapawilan ti panag-urnos.',
 'viewsourcetext' => 'Mabalinmo a kitaen ken tuladen ti taudan daytoy a panid:',
-'viewyourtext' => "Mabalin mo a makita ken tuladen ti taudan dagiti '''inurnosmo''' ditoy a panid:",
-'protectedinterface' => 'Daytoy a panid ket mangited ti testo nga interface para iti software, ken nasalakniban tapno pawilan ti panag-abuso.',
-'editinginterface' => "'''Ballaag:''' Ururnosam ti maysa a panid a maar-aramat a mangted iti testo ti interface para iti software.
+'viewyourtext' => "Mabalinmo a makita ken tuladen ti taudan dagiti '''inurnosmo''' ditoy a panid:",
+'protectedinterface' => 'Daytoy a panid ket mangited ti testo nga interface para iti software, ken nasalakniban tapno mapawilan ti panag-abuso.',
+'editinginterface' => "'''Ballaag:''' Ururnosem ti maysa a panid a maar-aramat a mangted iti testo ti interface para iti software.
 Dagiti panagsukat iti daytoy a panid ket maarigan ti langa ti agaramat nga interface dagiti sabali nga agar-aramat.
-Para kadagiti patarus, pangngaasim ta padasem nga aramaten ti [//translatewiki.net/wiki/Main_Page?setlang=ilo translatewiki.net], ti gandat a panagipatarus iti MediaWiki.",
+Para kadagiti panagipatarus, pangngaasim a padasen ti agaramat ti [//translatewiki.net/wiki/Main_Page?setlang=ilo translatewiki.net], ti gandat a panagipatarus ti MediaWiki.",
 'sqlhidden' => '(nakalemmeng ti biniruk a SQL )',
-'cascadeprotected' => 'Daytoy a panid ket nasalakniban ti panag-urnos, ngamin ket nairaman kadagiti sumaganad a {{PLURAL:$1|panid, nga|dagiti panid, nga}} nasalakniban iti pagpilian nga "agsariap"  :
+'cascadeprotected' => 'Daytoy a panid ket nasalakniban para iti panag-urnos, ngamin ket nairaman kadagiti sumaganad {{PLURAL:$1|a panid, a|a pampanid, a}} nasalakniban nga adda ti napili nga "agsariap"  :
 $2',
-'namespaceprotected' => "Awananka iti pammalubos nga agurnos kadagiti panid iti '''$1''' a nagan ti lugar.",
-'customcssprotected' => 'Awan ti pammalubos mo ti agurnos ditoy panid ti CSS, ngamin ta adda linaonna a kukua dagiti agar-aramat ti sabali a kasasaad.',
-'customjsprotected' => 'Awan ti pammalubos mo ti agurnos ditoy panid ti JavaScript, ngamin ta adda linaonna a kukua dagiti agar-aramat ti sabali a kasasaad.',
-'ns-specialprotected' => 'Saan a mapaurnos dagiti espesial a panid.',
-'titleprotected' => "Nasalakniban daytoy a titulo manipud iti pianaka-aramid ni [[User:$1|$1]].
+'namespaceprotected' => "Awan ti pammalubosmo nga agurnos kadagiti panid iti '''$1''' a nagan ti lugar.",
+'customcssprotected' => 'Awan ti pammalubosmo nga agurnos ditoy panid ti CSS, ngamin ket adda linaonna a tagikua dagiti agar-aramat ti sabali a kasasaad.',
+'customjsprotected' => 'Awan ti pammalubosmo nga agurnos ditoy panid ti JavaScript, ngamin ket adda linaonna a tagikua dagiti agar-aramat ti sabali a kasasaad.',
+'ns-specialprotected' => 'Saan a mabalin nga urnosen dagiti espesial a panid.',
+'titleprotected' => "Daytoy a titulo ket nasalakniban manipud ti panakapartuat babaen ni [[User:$1|$1]].
 Ti naited a rason ket ''$2''.",
 'filereadonlyerror' => 'Di nabaliwan ti papales "$1" gapu ket ti repositorio ti papeles "$2" ket basaen laeng a moda.
 
@@ -439,15 +439,15 @@ Ti administrador a nagserra ket nagited iti daytoy a panagilawlawag "\'\'$3\'\'"
 Mabalinmo nga ituloy ti agusar iti {{SITENAME}} a di am-ammo, wenno [[Special:UserLogin|sumrek ka manen]] iti sigud wenno sabali nga agar-aramat.
 Laglagipem a sumagmamano a pampanid ti mabalin a nakaparang latta a kasla nakaserrek ka pay laeng, agingga na nga dalusam ti \"cache\" ti panagbasabasam.",
 'welcomecreation' => '== Kablaaw, $1! ==
-Naramiden ti pakabilangam.
+Naaramiden ti pakabilangam.
 Dimo liplipatan a sukatan dagita kaykayatmo idiay [[Special:Preferences|{{SITENAME}} kaykayat]].',
 'yourname' => 'Nagan ti agar-aramat:',
 'yourpassword' => 'Kontrasenias:',
 'yourpasswordagain' => 'Uliten ti kontrasenias:',
-'remembermypassword' => 'Laglagipem ti iseserrekko daytoy a pagbasabasa (iti kadakkelan $1 {{PLURAL:$1|nga aldaw|nga al-aldaw}})',
+'remembermypassword' => 'Laglagipem ti iseserrekko iti daytoy a pagbasabasa (para iti kaadu iti $1 {{PLURAL:$1|nga aldaw|nga al-aldaw}})',
 'securelogin-stick-https' => 'Agyan ka a nakasilpo iti HTTPS no nakastrekka',
 'yourdomainname' => 'Ti bukodmo a pagturayan:',
-'externaldberror' => 'Addaan a biddut ti panakasingked ti database wenno saan mo a mabalin ti agpabaro ti ruar a pakabilangan.',
+'externaldberror' => 'Adda biddut idi ti panakapasingked ti database wenno saanmo a mabalin ti agpabaro ti bukodmo a ruar a pakabilangan.',
 'login' => 'Sumrek',
 'nav-login-createaccount' => 'Sumrek / agaramid ti pakabilangan',
 'loginprompt' => 'Nasken nga adda pakabaelan dagiti "galietas" ti "pagbasabasam" tapno maka-serrek ditoy {{SITENAME}}.',
@@ -475,10 +475,10 @@ Nabaldado dagiti galietas mo.
 Pangngaasi ta pakabaelam ida,  ken sumrek ka nga agusar ti baro a nagan ken kontrasenias.',
 'nocookieslogin' => 'Ti {{SITENAME}} ket agus-usar  kadagiti galietas tapno makastrek dagiti agar-aramat.
 Nabaldado dagiti galietas mo.
-Pangngaasim ta pakabaelam ida ken padasem manen ti sumrek.',
+Pangngaasi a pakabaelam ida ken padasem manen ti sumrek.',
 'nocookiesfornew' => 'Ti pakabilangan ti agar-aramat ket saan a naaramid, saan mi a masingkedan ti naggapuan na.
 Usarem dagita galietas mo, ipadas mo manen daytoy a panid.',
-'noname' => 'Saan mo a nainaganan ti maisu a nagan ti agar-aramat.',
+'noname' => 'Saanmo a nainaganan ti agpayso a nagan ti agar-aramat.',
 'loginsuccesstitle' => 'Balligi ti panagserrek',
 'loginsuccess' => "'''Nakastrekkan iti {{SITENAME}} a kas ni \"\$1\".'''",
 'nosuchuser' => 'Awan ti agar-aramat nga agnagan iti "$1". 
@@ -486,11 +486,11 @@ Usarem dagita galietas mo, ipadas mo manen daytoy a panid.',
 Kitaem ti panangiletra, wenno [[Special:UserLogin/signup|agaramid ka ti baro a pakabilangan]].',
 'nosuchusershort' => 'Awan ti agar-aramat nga addaan iti nagan a "$1".
 Kitaem ti panangiletra.',
-'nouserspecified' => 'Nasken nga inaganam ti nagan ti agar-aramat.',
+'nouserspecified' => 'Nasken nga agikabilka ti nagan ti agar-aramat.',
 'login-userblocked' => 'Naserraan daytoy nga agar-aramat. Maiparit ti sumrek.',
 'wrongpassword' => 'Biddut (wenno awan) ti kontrasenias nga ikabil mo. Padasem koma manen, apo.',
 'wrongpasswordempty' => 'Blanko ti impanmo a kontrasenias. Padasem koma manen apo.',
-'passwordtooshort' => 'Ti kontrasenias ket nasken nga addaan ti {{PLURAL:$1| 1 a karakter|$1 a dagiti karakter}}.',
+'passwordtooshort' => 'Ti kontrasenias ket nasken nga adda  {{PLURAL:$1|iti 1 a karakter|kadagiti $1 a karakter}}.',
 'password-name-match' => 'Masapul a saan nga agpadpada ti  nagan mo nga agar-aramat ken kontrasenias',
 'password-login-forbidden' => 'Maiparit daytoy ususarem a nagan ti agar-aramat ken kontrasenias.',
 'mailmypassword' => 'E-surat ti baro a kontrasenias',
@@ -499,7 +499,7 @@ Kitaem ti panangiletra.',
 a kontrasenias para iti {{SITENAME}} ($4). Ti saan nga agnayon a kontrasenias ti agususar
 "$2" ket naaramiden ken naidisso iti "$3". No kastan ti kinayatmo,
 masapul a sumrek ka ta agpili ka ti baro a kontrasenias.
-Madinton ti saan nga agnayon a kontrasenias iti {{PLURAL:$5|aldaw|$5 al-aldaw}}.
+Ti temporario a bukodmo a kontrasenias ket agpaso  {{PLURAL:$5|iti maysa nga aldaw|kadagiti $5 nga aldaw}}.
 
 No sabali ti nagkiddaw, wenno no malagipmo pay ti kontrasenias mo ket dimon kayat a suktan daytoy, mabalin a dimo lattan ikaskaso daytoy a mensahe ket itultuloymo latta nga usaren ti daan a kontrasenias.',
 'noemail' => 'Awan ti nagtaengan ti e-surat  a nairehistro iti agar-aramat a ni "$1".',
@@ -509,18 +509,18 @@ Sumrekka koma manen kalpasan a maawatmo daytoy a baro a kontrasenias.',
 'blocked-mailpassword' => 'Ti IP a pagtaengam ket naserraan iti panagurnos, isu nga saan a mabalin nga agusar ti panagala ti kontrasenias nga opisio tapno mapawilan ti panag-abuso.',
 'eauthentsent' => 'Naipatuloden ti pammasingked nga e-surat iti naited nga e-surat a pagtaengan.
 Sakbay nga ania man nga e-surat ti maipatulod iti pakabilangan, masapul a surotem dagiti maibagbaga iti e-surat, tapno mapasingkedan a ti pakabilangan ket agpayso a kukuam.',
-'throttled-mailpassword' => 'Ti palagip ti kontrasenias ket naipatuloden, iti napalabas nga {{PLURAL:$1|oras|$1 oras}}.
-Tapno maipawilan ti panag-abuso, maysa laeng a palagip ti kontrasenias ti maipatulod iti {{PLURAL:$1|oras|$1 oras}}.',
+'throttled-mailpassword' => 'Ti palagip ti kontrasenias ket naipatuloden, iti napalabas nga {{PLURAL:$1|oras|$1 nga oras}}.
+Tapno maipawilan ti panag-abuso, maysa laeng a palagip ti kontrasenias ti maipatulod ti tunggal maysa nga {{PLURAL:$1|oras|$1 nga oras}}.',
 'mailerror' => 'Biddut iti panagipatulod iti surat: $1',
-'acct_creation_throttle_hit' => 'Dagiti bisita daytoy wiki nga agususar ti IP a pagtaengan ket nakaaramid iti {{PLURAL:$1|1 pakabilangan|$1 dagiti pakabilangan}} ti maysa nga aldaw, dagita laeng ti mabalin a mausar.
-Ti nagbanagan na, dagitoy bisita nga agususar ti IP a pagtaengan ket saan a makaaramid ti pakabilangan tatta.',
+'acct_creation_throttle_hit' => 'Dagiti bisita daytoy wiki nga agususar ti IP a pagtaengan ket nakaaramid {{PLURAL:$1|iti 1 a pakabilangan|kadagiti $1 a pakabilangan}} ti maysa nga aldaw, dagita laeng ti mabalin a mausar.
+Ti nagbanaganna, dagitoy bisita nga agususar ti IP a pagtaengan ket saan a makaaramid ti pakabilangan tatta.',
 'emailauthenticated' => 'Napasingkedan ti e-surat a pagtaengan idi $2 ti oras nga $3.',
 'emailnotauthenticated' => 'Saan pay a napasingkedan ti e-surat mo.
 Awan ti e-surat nga ipatulod para dagitoy a langa.',
 'noemailprefs' => 'Ipanaganan ti e-surat a pagtaengan tapno agbalin dagitoy a langa.',
 'emailconfirmlink' => 'Pasingkedam ti e-surat a pagtaengam',
 'invalidemailaddress' => 'Ti e-surat a pagtaengam ket saan a maawat, ket kasla addaan ti saan a napudno a nakabuklan.
-Pangngaasi ta ikkam ti nasayaat  a  nakabuklan a pagtaengan wenno ikkatem amin dagiti naikabil mo.',
+Pangngaasi nga ikkam ti nasayaat  a  nakabuklan a pagtaengan wenno ikkatem amin dagiti naikabil mo.',
 'cannotchangeemail' => 'Dagiti pakabilangan nga e-surat a pagtaengan ket saan a mabaliwan ditoy a wiki.',
 'emaildisabled' => 'Daytoy a pagsaaadan ket saan a makaipatuod kadagiti e-surat.',
 'accountcreated' => 'Naaramiden ti pakabilangan',
@@ -534,7 +534,7 @@ Saan mo nga ikaskaso daytoy a mensahe, no biddut a naaramid daytoy a pakabilanga
 Pangaasim ta aguray ka sakbay nga agipadas manen.',
 'login-abort-generic' => 'Madi ti panakastrekmo - Napasardeng',
 'loginlanguagelabel' => 'Pagsasao: $1',
-'suspicious-userlogout' => 'Madi ti kiniddaw mo a rummuar, ngamin ket kasla inpatulod ti nadadael a "panagbasabasa" wenno "caching proxy".',
+'suspicious-userlogout' => 'Madi ti kiniddawmo a rummuar, ngamin ket kasla inpatulod ti nadadael a "panagbasabasa" wenno "caching proxy".',
 
 # E-mail sending
 'php-mail-error-unknown' => 'Di am-ammo a biddut ti kukua ti PHP a surat () nga opisio.',
@@ -565,30 +565,30 @@ Baka mabalin a nasukatam metten ti kontrasenias mo wenno nagkiddaw ka ti saan ng
 'passwordreset-text' => 'Lippasem daytoy a kinabuklan tapno maipatulodan ka ti e-surat a palagipan kadagiti dsalaysay ti pakabilangam.',
 'passwordreset-legend' => 'Ipasubli ti kontrasenias',
 'passwordreset-disabled' => 'Naikkat dagiti pagisubli iti kontrasenias daytoy a wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Ikabil ti maysa a bukel ti data dita baba}}',
+'passwordreset-pretext' => '{{PLURAL:$1||Ikabil ti maysa a bukel ti datos dita baba}}',
 'passwordreset-username' => 'Nagan ti agar-aramat:',
 'passwordreset-domain' => 'Pagturayan:',
 'passwordreset-capture' => 'Kayatmo a kitaen ti nagbanagan ti e-surat?',
 'passwordreset-capture-help' => 'No markaam daytoy a kahon, ti e-surat (nga adda saan nga agnayon a kontrasenias) ket maipakita kenka ken maipatulod iti agar-aramat.',
 'passwordreset-email' => 'E-surat a pagtaengan:',
-'passwordreset-emailtitle' => 'Detalye ti pakabilangan iti {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'Addaan (baka sika, ti naggapuan ti IP a pagtaengan $1) a nagkiddaw ti palagip para
-dagiti detalye ti pakabilangam para iti {{SITNAME}} ($4) . Ti sumaganad {{PLURAL:$3|a pakabilangan|a dadagiti pakabilangan}} ti agar-aramat ket
+'passwordreset-emailtitle' => 'Salaysay ti pakabilangan iti {{SITENAME}}',
+'passwordreset-emailtext-ip' => 'Adda (baka sika, ti naggapuan ti IP a pagtaengan $1) a nagkiddaw ti palagip para
+dagiti salaysay ti pakabilangam para iti {{SITNAME}} ($4) . {{PLURAL:$3|Ti |Dagiti}} sumaganad a pakabilangan ti agar-aramat ket
 nakairaman iti daytoy nga e-surat a pagtaengan:
 
 $2
 
-{{PLURAL:$3|Daytoy a saan nga agnayon a kontrasenias|Dagitoy a saan nga agnayon a kontrasenias}} ket agpaso iti {{PLURAL:$5|maysa nga aldaw|$5 nga al-aldaw}}.
+{{PLURAL:$3|Daytoy a saan nga agnayon a kontrasenias|Dagitoy a saan nga agnayon a kontrasenias}} ket agpaso  {{PLURAL:$5|iti maysa nga aldaw|kadagiti $5 nga aldaw}}.
 Sumrekka kuman ta agpili ka ti baro a kontrasenias mo tattan. No adda met sabali a nagaramid daytoy a 
 panagkiddaw, wenno malagip mo ti dati a kontrasenias mo, ket saan mo a kayaten a sukatan, saan mo nga ikaskaso daytoy a mensahe ken 
 agtuloy ka nga agusar ti daan a kontrasenias.',
-'passwordreset-emailtext-user' => 'Daytoy nga  agar-aramat  $1 iti {{SITENAME}} ket nagkiddaw ti palagip para dagiti detalye ti pakabilangan iti {{SITENAME}}
-($4) . Ti sumaganad {{PLURAL:$3|a pakabilangan|kadagiti pakabilangan}}  ti agar-aramat ket
+'passwordreset-emailtext-user' => 'Daytoy nga  agar-aramat  $1 iti {{SITENAME}} ket nagkiddaw ti palagip para dagiti salaysay ti pakabilangan iti {{SITENAME}}
+($4) .  {{PLURAL:$3|Ti|Dagiti}} sumaganad a pakabilanagn ti agar-aramat ket
 nakairaman iti daytoy nga e-surat a pagtaengan:
 
 $2
 
-{{PLURAL:$3|Daytoy a saan nga agnayon a kontrasenias|Dagitoy a saan nga agnayon a kontrasenias}} ket agpaso iti {{PLURAL:$5|maysa nga aldaw|$5 nga al-aldaw}}.
+{{PLURAL:$3|Daytoy a saan nga agnayon a kontrasenias|Dagitoy a saan nga agnayon a kontrasenias}} ket agpaso {{PLURAL:$5|iti maysa nga aldaw|kadagiti $5 nga aldaw}}.
 Sumrekka kuman ta agpili ka ti baro a kontrasenias mo tattan. No adda met sabali a nagaramid daytoy a 
 panagkiddaw, wenno malagip mo ti dati a kontrasenias mo, ket saan mo a kayaten a sukatan, saan mo nga ikaskaso daytoy a mensahe ken 
 agtuloy kan nga agusar ti daan a kontrasenias mo.',
@@ -601,7 +601,7 @@ Saan nga agnayon a kontrasenias: $2',
 # Special:ChangeEmail
 'changeemail' => 'Sukatan ti e-surat a pagtaengan',
 'changeemail-header' => 'Sukatan ti e-surat a pagtaengan ti pakabilangan',
-'changeemail-text' => 'Lippasem daytoy a kabuklan ti panagsukat ti e-surat a pagtaengam. Masapul mo nga ikabil ti kontrasenias mo tapno mapasingkedan ti panagsukat.',
+'changeemail-text' => 'Lippasem daytoy a kabuklan ti panagsukat ti e-surat a pagtaengam. Nasken nga ikabilmo ti kontrasenias tapno mapasingkedan daytoy a panagsukat.',
 'changeemail-no-info' => 'Masapul a nakastrekka tapno dagus ka a makapan ditoy a panid.',
 'changeemail-oldemail' => 'Agdama nga E-surat a pagtaengam:',
 'changeemail-newemail' => 'Baro nga e-surat a pagtaengam:',
@@ -624,7 +624,7 @@ Saan nga agnayon a kontrasenias: $2',
 'nowiki_tip' => 'Saan nga ikaskaso ti panagbuklan a wiki',
 'image_tip' => 'Naibinggas a papeles',
 'media_tip' => 'Panilpo ti papeles',
-'sig_tip' => 'Ti pirmam nga addaan ti oras ken petsa',
+'sig_tip' => 'Ti pirmam nga adda ti oras ken petsa',
 'hr_tip' => 'Pakuros a linia (manmano laeng nga aramaten)',
 
 # Edit pages
@@ -644,7 +644,7 @@ Mairehistro ti IP a pagtaengam iti pakasaritaan ti panagurnos iti daytoy a panid
 No agtakla ka ti \"{{int:savearticle}}\" manen, maidulin ti inurnos mo nga awan ti pakabuklan na.",
 'missingcommenttext' => 'Pangngaasim a mangipanka iti komentario dita baba.',
 'missingcommentheader' => "'''Palagip:''' Saanka a nangipan iti suheto/paulo para iti daytoy a komentario.
-No agtakla ka ti \"{{int:savearticle}}\" manen, maidulin ti inurnos mo nga awan ti pakabuklan na.",
+No agtakla ka ti \"{{int:savearticle}}\" manen, maidulin ti inurnormo nga awan ti pakabuklanna.",
 'summary-preview' => 'Naipadas a  pakabuklan:',
 'subject-preview' => 'Suheto/naipadas a paulo:',
 'blockedtitle' => 'Naseraan ti agar-aramat',
@@ -671,17 +671,17 @@ Ti rason nga inted ket:
 
 Mabalinmo a kontaken ni $1 wenno maysa kadagiti [[{{MediaWiki:Grouppage-sysop}}|administrador]] tapno maipalawag daytoy a panag-serra.
 
-Laglagipem nga saan mo a mabalin nga usaren ti "e-suratam daytoy nga agar-aramat "  ket laeng no addaan ka ti napudno nga e-surat a pagtaengan a nakarehistro idiay [[Special:Preferences|kakaykayatam]] ken saan ka a
+Laglagipem nga saanmo a mabalin nga usaren ti "e-suratam daytoy nga agar-aramat "  ket laeng no addaan ka ti napudno nga e-surat a pagtaengan a nakarehistro idiay [[Special:Preferences|kakaykayatam]] ken saan ka a
 naserraan ti panag-usar na.
 
 Ti tatta nga IP a pagtaengam ket $3, ken ti ID ti naserraan ket #$5.
-Pangaasi nga iraman mo amin dagiti detalye ti amin a panagsaludsod mo.',
+Pangaasi nga iramanmo amin dagiti salaysay ti amin a panagsaludsodmo.',
 'blockednoreason' => 'awan ti naited a rason',
-'whitelistedittext' => 'Masapul a/nga $1 ka tapno makaurnos kadagiti panid.',
+'whitelistedittext' => 'Nasken ti $1 tapno makaurnos kadagiti panid.',
 'confirmedittext' => 'Masapul a pasingkedam ti e-surat sakbay a makaurnos ka kadagiti panid.
 Pangngaasim nga ikabil ken ipapudnom ti e-suratmo idiay [[Special:Preferences|kaykayat dagiti agar-aramat ]].',
 'nosuchsectiontitle' => 'Saan a mabirukan ti kasta a paset',
-'nosuchsectiontext' => 'Pinadasmo nga inurnos ti maysa a paet nga awan pay.
+'nosuchsectiontext' => 'Pinadasmo nga inurnos ti maysa a paset nga awan pay.
 Naiyalis ngatan wenno naikkat idi kitkitaen dayta a panid.',
 'loginreqtitle' => 'Masapul ti sumrek',
 'loginreqlink' => 'sumrek',
@@ -691,14 +691,14 @@ Naiyalis ngatan wenno naikkat idi kitkitaen dayta a panid.',
 
 Ti kontrasenias ti baro a pakabilangan ket masukatan idiay ''[[Special:ChangePassword|pagsukatan ti kontrasenias]]'' a panid no sumrekka.",
 'newarticle' => '(Baro)',
-'newarticletext' => "Nasurotmo ti maysa a panilpo iti saan pay a narugian wenno naaramid a panid. Tapno marugian daytoy a panid, rugiamon ti agikur-it wenno agisurat iti pagsuratan a kahon iti baba (kitaen ti [[{{MediaWiki:Helppage}}|panid ti tulong]] para iti ad-adu pay a pakaammo). No met nakadanonka ditoy a dimo inggagara wenno gapu iti biddut, agtakla ka laeng ti '''agsubli'' a buton ti pabasabasam tapno makasublika iti naggapuam a panid.",
+'newarticletext' => "Nasurotmo ti maysa a panilpo ti panid a saan pay a napartuat. Tapno pmapartuat daytoy a panid, rugiamon ti agikur-it wenno agisurat iti pagsuratan a kahon iti baba (kitaen ti [[{{MediaWiki:Helppage}}|panid ti tulong]] para iti ad-adu pay a pakaammo). No met nakadanonka ditoy a dimo inggagara wenno gapu iti biddut, agtakla ka laeng ti '''agsubli'' a buton ti pabasabasam tapno makasublika iti naggapuam a panid.",
 'anontalkpagetext' => "----''Daytoy ti pakitungtungan a panid para iti di am-ammo nga agar-aramat a saan pay a nakaaramid ti pakabilangan, wenno saan na nga us-usaren.
 Dakami ket agusar kami ti numero nga IP a pagtaengan ti panangilasin dagiti lalaki/babai.
 Ti kastoy nga IP a pagtaengan ket us-usaren a bingayan ti adu pay a sabsabali nga agar-aramat.
 No sika ket maysa a di am-ammo nga agar-aramat ken dagiti awan ti kapategan a komentario ket napaitudo kenka, pangngaasi nga [[Special:UserLogin/signup|agaramid ka ti pakabilangam]] wenno [[Special:UserLogin|sumrekka]] 
 tapno maawanan ti pinakaulaw kadagiti sabali a di am-ammo nga agar-aramat.",
-'noarticletext' => 'Awan pay ti  nagyan na daytoy a panid.
-Mabalinmo ti [[Special:Search/{{PAGENAME}}|agsapul iti kastoy a titulo ti panid]] iti sabsabali a pampanid,
+'noarticletext' => 'Awan ti agdama a testo  daytoy a panid.
+Mabalinmo ti [[Special:Search/{{PAGENAME}}|agsapul iti kastoy a titulo ti panid]] kadagiti sabsabali a pampanid,
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} agbirukka],
 wenno [{{fullurl:{{NAMESPACE}}:{{PAGENAME}}|action=edit}} urnosem daytoy a panid].',
 'noarticletext-nopermission' => 'Awan pay ti  nagyan na daytoy a panid.
@@ -708,7 +708,7 @@ wenno <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}
 'userpage-userdoesnotexist' => 'Ti pakabilangan ti agar-aramat "$1" ket saan a nakarehistro. 
 Pangngaasi a kitaem no kayatmo ti agaramid/urnosen daytoy a panid.',
 'userpage-userdoesnotexist-view' => 'Ti pakabilangan ni agar-aramat "$1" ket saan a nakarehistro.',
-'blocked-notice-logextract' => 'Naserraan tatta daytoy nga agar-aramat.
+'blocked-notice-logextract' => 'Agdama a naserraan daytoy nga agar-aramat.
 Ti naudi a listaan ti panaka-serra ket adda dita baba tapno mausar a reperensia:',
 'clearyourcache' => "'''Pakaammo:''' No nalpas ka nga agidulin, kuma ket masapul nga ipalabas ti cahe ti pinagbasabasam tapno makita dagiti sinukatam.
 * '''Firefox / Safari:''' Tenglen ti ''Sukatan'' bayat nga agtakla ti ''Ikarga manen'', wenno itakla ti ''Ctrl-F5'' wenno''Ctrl-R'' (''⌘-R'' Mac)
@@ -716,15 +716,15 @@ Ti naudi a listaan ti panaka-serra ket adda dita baba tapno mausar a reperensia:
 * '''Internet Explorer:''' Tenglen ti ''Ctrl'' bayat nga agtakla ti ''Ipasaradiwa'', wenno itakla ti ''Ctrl-F5''
 * '''Konqueror:''' Itakla ti ''Ikarga manen'' wenno itakla ti ''F5''
 * '''Opera:''' Dalusan ti cache iti ''Ramramit → Kakaykayatan''",
-'usercssyoucanpreview' => "'''Paammo:''' Usaren ti \"{{int:showpreview}}\" buton ti panagsubok ti baro a CSS sakbay nga idulin mo.",
-'userjsyoucanpreview' => "'''Paammo:''' Usaren ti \"{{int:showpreview}}\" buton ti panagsubok ti baro a JavaScript sakbay nga idulin mo.",
-'usercsspreview' => "'''Laglagipem nga ipadpadas mo laeng daytoy a CSS.'''
+'usercssyoucanpreview' => "'''Paammo:''' Usaren ti \"{{int:showpreview}}\" buton ti panagsubok ti baro a CSS sakbay nga idulinmo.",
+'userjsyoucanpreview' => "'''Paammo:''' Usaren ti \"{{int:showpreview}}\" buton ti panagsubok ti baro a JavaScript sakbay nga idulinmo.",
+'usercsspreview' => "'''Laglagipem nga ipadpadasmo laeng daytoy a CSS.'''
 '''Saan pay a naidulin!'''",
-'userjspreview' => "'''Laglagipem nga ipadpadas mo laeng daytoy a JavaScript.'''
+'userjspreview' => "'''Laglagipem nga ipadpadasmo laeng daytoy a JavaScript.'''
 '''Saan pay a naidulin!'''",
-'sitecsspreview' => "'''Laglagipem nga ipadpadas mo laeng daytoy a CSS.'''
+'sitecsspreview' => "'''Laglagipem nga ipadpadasmo laeng daytoy a CSS.'''
 '''Saan pay a naidulin!'''",
-'sitejspreview' => "'''Laglagipem nga ipadpadas mo laeng ti kodigo daytoy a JavaScript.'''
+'sitejspreview' => "'''Laglagipem nga ipadpadasmo laeng ti kodigo daytoy a JavaScript.'''
 '''Saan pay nga naidulin!'''",
 'userinvalidcssjstitle' => "'''Ballaag:''' Awan ti kudil a \"\$1\".
 Annawid a .css ken .js dagiti titulo ket agususar ti napababa a letra, a kas dagiti {{ns:user}}:Foo/vector.css saan ket a {{ns:user}}:Foo/Vector.css.",
@@ -734,19 +734,19 @@ Annawid a .css ken .js dagiti titulo ket agususar ti napababa a letra, a kas dag
 Dagiti sinukatam ket saan pay a naidulin!",
 'continue-editing' => 'Agtultuloy nga agurnos',
 'previewconflict' => 'Daytoy a panagpadas ket agiparang ti testo dita ngato a panagurnos a lugar a kasla agparang no kayatmo nga idulin.',
-'session_fail_preview' => "'''Pasensian a! Saan mi a maaramid ti panag-urnos gapu ngamin ta naawanan ti gimong ti data.'''
-Pangngaasi ta padasem manen.
+'session_fail_preview' => "'''Pasensian a! Saanmi a maaramid ti panag-urnos gapu ngamin ta naawanan ti gimong ti data.'''
+Pangngaasi a padasem manen.
 No saan pay a mabalin, padasem ti [[Special:UserLogout|rummuar]] ken sumrek ka manen.",
-'session_fail_preview_html' => "'''Pangngaasi! Saan mi a maaramid ti panagurnos mo ngamin ket naawanan ti gimong a datos.'''
+'session_fail_preview_html' => "'''Pangngaasi! Saanmi a maaramid ti panagurnosmo ngamin ket naawanan ti gimong a datos.'''
 
-''Gapu ti {{SITENAME}} ket addaan ti nakilaw a HTML a nakapabaelan, ti panagpadas ket nailemmeng a kas pagan-annadan kadagiti pinagraut ti dakes a JavaScript.''
+''Gapu ti {{SITENAME}} ket addaa ti nakilaw a HTML a nakapabaelan, ti panagpadas ket nailemmeng a kas pagan-annadan kadagiti panagraut ti dakes a JavaScript.''
 
-'''No daytoy ket pudno a panagurnos, pangngaasi ta padasem manen.'''
+'''No daytoy ket pudno a panagurnos, pangngaasi a padasem manen.'''
 No saan pay a mabalin, padasem ti [[Special:UserLogout|rummuar]] ken sumrek manen.",
-'token_suffix_mismatch' => "'''Ti panag-urnos mo ket saan a naawat ngamin ket ti klientem ket dinadael na ti kuldit ti kababalin idiay pinagpudno ti panag-urnos.'''
+'token_suffix_mismatch' => "'''Ti panag-urnosmo ket saan a naawat ngamin ket ti klientem ket dinadaelna ti kuldit ti kababalin idiay pinagpudno ti panag-urnos.'''
 Ti panag-urnos ket saan a naawat tapno mapawilan ti panakadadael ti testo ti panid.
-Mapasamak daytoy no agus-usar ka ti saan a nasayaat a naibasta ti sapot a diamammo a proxy a panagserbi.",
-'edit_form_incomplete' => "'''Adda dagiti paset ti panag-urnos a kabuklan a saan a nakadanon dita server; kitkitaen nga dagiti pianag-urnos mo ket saan a naikkatan ken padasem manen.'''",
+Mapasamak daytoy no agus-usarka ti saan a nasayaat a naibasta ti sapot a diamammo a proxy a panagserbi.",
+'edit_form_incomplete' => "'''Adda dagiti paset ti panag-urnos a kabuklan a saan a nakadanon dita server; kitkitaen nga dagiti panag-urnosmo ket saan a naikkatan ken padasem manen.'''",
 'editing' => 'Ururnosen ti $1',
 'creating' => 'Agparpartuat ti $1',
 'editingsection' => 'Ururnosen ti $1 (paset)',
@@ -754,7 +754,7 @@ Mapasamak daytoy no agus-usar ka ti saan a nasayaat a naibasta ti sapot a diamam
 'editconflict' => 'Adda kasinnungat ti panag-urnos: $1',
 'explainconflict' => "Adda sabali a nagsukat iti daytoy a panid idi nangrugi ka a nagurnos.
 Ti ngato a lugar ti testo ket adda dagiti nagyanna a testo ti panid a kasla agdama a kita na.
-Ti inurnos mo ket maipakita dita babba a lugar ti testo
+Ti inurnosmo ket maipakita dita babba a lugar ti testo
 Ipatipon mo dagiti sinukatam idiay lugar ti testo.
 '''Iti laeng'' testo dita ngato a lugar ti testo ti maidulin no pesselem ti \"{{int:savearticle}}\".",
 'yourtext' => 'Ti testom',
@@ -762,53 +762,53 @@ Ipatipon mo dagiti sinukatam idiay lugar ti testo.
 'nonunicodebrowser' => "'''Ballaag: Ti  pabasabasam ket saan a kasla unicode .'''
 Adda sabali a mausar tapno makaurnos ka kadagiti panid: Ti saan nga-ASCII a kababalin ket agparang iti pagurnosan a kahon a kas dagiti heksadesimal a kodigo.",
 'editingold' => "'''Ballag: Ururnosem ti daan a panag-baliw iti daytoy a panid.'''
-No idulin mo, mapukaw amin a sinukatam iti daytoy a panag-baliw.",
+No idulinmo, mapukaw amin a sinukatam iti daytoy a panag-baliw.",
 'yourdiff' => 'Dagiti nagdudumaan',
 'copyrightwarning' => "Laglagipenyo koma, apo, nga amin a parawad iti {{SITENAME}} ket maibilang a nairuar iti babaen ti $2 (kitaen ti $1 para kadagiti salaysay). 
 No dimo kayat a ti sinuratmo ket maurnos nga awanan-asi ken maiwaras nga awan sungsungbatan kenka, saanmo laengen nga ip-ipan wenno ipabpablaak ditoy.<br />
 Kasta met nga ikarim kadakami a bukodmo a sinurat wenno gapuanan daytoy, wenno tinuladmo ngem iti maysa a nawaya a pagturayan ti publiko wenno pumadmad a libre a pagtaudan.
  '''Saan a mangipan iti addaan a karbengan ti pinagpablaak nga obra no awan ti  pammalubos!'''",
-'copyrightwarning2' => "Pangngaasiyo, apo, ta laglagipen nga amin a parawad iti {{SITENAME}} ket mabalin a maurnos, masuktan, wenno ikkaten dagiti sabali pay nga agar-aramat.
+'copyrightwarning2' => "Pangngaasiyo, apo, a laglagipen nga amin a parawad iti {{SITENAME}} ket mabalin a maurnos, masuktan, wenno ikkaten dagiti sabali pay nga agar-aramat.
 No dimo kayat a ti sinuratmo ket maurnos nga awanan-asi ken maiwaras nga awan sungsungbatan kenka, saanmo laengen nga ip-ipan wenno ipabpablaak ditoy.<br />
 Kasta met nga ikarim kadakami a bukodmo a sinurat wenno gapuanan daytoy, wenno tinuladam ngem iti maysa a nawaya a pagturayan ti publiko wenno pumadmad a libre a pagtaudan (kitaen ti $1 para iti salaysay).
 '''Saan a mangipan iti addaan ti karbengan ti pinagpablaak nga obra no awan ti  pammalubos!'''",
 'longpageerror' => "'''Biddut: Ti testo nga intedmo ket {{PLURAL:$1|maysa a kilobyte|$1 kil-kilobyte}} a katiddog, nga at-atiddog ngem ti kangatuan iti  {{PLURAL:$2|maysa a kilobyte|$2 kil-kilobyte}}.'''
 Isu ti gapuna a saan a maidulin.",
-'readonlywarning' => "'''Ballaag: Narikepan ti database tapno masimpaan, saan mo a mabalin nga idulin dagita inurnos mo tattan.'''
-No kayatmo i \"cut-n-paste\" mo dagiti testo iti testo a papeles ken idulin mo no madamdama.
+'readonlywarning' => "'''Ballaag: Narikepan ti database tapno masimpaan, saan mo a mabalin nga idulin dagita inurnosmo tattan.'''
+No kayatmo i \"cut-n-paste\" mo dagiti testo iti testo a papeles ken idulinmo no madamdama.
 
 Ti administrador a nangrikep ket saan a nangted ti palawag: \$1",
 'protectedpagewarning' => "'''Ballaag:  Daytoy a panid ket nasalakniban tapno dagiti laeng agar-aramat nga addaan ti gundaway nga administrador ti makaurnos ditoy.'''
 Ti nakaudi a naikabil a listaan ket adda dita baba tapno usarena  reperensia:",
-'semiprotectedpagewarning' => "''Pakaammo:''' Nasalakniban daytoy a panid tapno dagiti laeng nakarehistro nga agar-aramat ti makaurnos ditoy.
+'semiprotectedpagewarning' => "'''Pakaammo:'''Nasalakniban daytoy a panid tapno dagiti laeng nakarehistro nga agar-aramat ti makaurnos ditoy.
 Ti naudi a naikabil a listaan ket adda dita baba tapno usaren a reperensia:",
 'cascadeprotectedwarning' => "'''Ballaag:''' Daytoy a panid ket nasalakniban tapno dagiti laeng administrador nga addaan ti  gundaway ti makaurnos, ngamin ket nairaman kadagiti sumaganad a sariap a nasalakniban
-{{PLURAL:$1|panid|dagiti panid}}:",
-'titleprotectedwarning' => "'''Ballaag:  Nasalakniban daytoy a panid tapno [[Special:ListGroupRights|dagiti naisangayan a karbengan ]] ti masapul a makaaramid.'''
+{{PLURAL:$1|a panid|a pampanid}}:",
+'titleprotectedwarning' => "'''Ballaag:  Nasalakniban daytoy a panid tapno [[Special:ListGroupRights|dagiti naisangayan a karbengan ]] ket nasken ti agpartuat iti daytoy.'''
 Ti kinaudi a naikabil iti listaan ket naikabil dita baba tapno usaren a reperensia:",
-'templatesused' => '{{PLURAL:$1|Plantilia|Dagiti plantilia}} a naaramat iti daytoy a panid:',
-'templatesusedpreview' => '{{PLURAL:$1|Plantilia|Dagiti plantilia}} ti nausar daytoy a pagpadas:',
-'templatesusedsection' => '{{PLURAL:$1|Plantilia|Dagiti plantilia}} a naaramat iti daytoy a paset:',
+'templatesused' => '{{PLURAL:$1|Ti plantilia|Dagiti plantilia}} a naaramat iti daytoy a panid:',
+'templatesusedpreview' => '{{PLURAL:$1|Ti plantilia|Dagiti plantilia}} a nausar iti daytoy a panagpadas:',
+'templatesusedsection' => '{{PLURAL:$1|Ti plantilia|Dagiti plantilia}} a naaramat iti daytoy a paset:',
 'template-protected' => '(nasalakniban)',
 'template-semiprotected' => '(nasalakniban-bassit)',
-'hiddencategories' => 'Daytoy a panid ket kameng {{PLURAL:$1|1 ti nakalemmeng a kategoria|$1 dagiti nakalemmeng a kategoria}}:',
+'hiddencategories' => 'Daytoy a panid ket kameng  {{PLURAL:$1|ti 1 a nailemmeng a kategoria|dagiti $1 a nailemmeng a kategoria}}:',
 'nocreatetitle' => 'Napatinggaan ti panagaramid iti panid',
 'nocreatetext' => 'Pinaritan ti {{SITENAME}} ti kabaelan a panagaramid iti kabarbaro a pampanid.
 Mabalinmo ti agsubli ken urnosen ti adda a panid, wenno [[Special:UserLogin|sumrek wenno agaramid ti pakabilangan]].',
-'nocreate-loggedin' => 'Awan ti nangpalubos kenka a mangaramid kadagiti kabarbaro a panid.',
+'nocreate-loggedin' => 'Awan ti pammalubosmo nga agpartuat kadagiti baro a panid.',
 'sectioneditnotsupported-title' => 'Saan a mabalin ti agurnos ti paset',
 'sectioneditnotsupported-text' => 'Saan a mabalin ti panag-urnos ti paset iti daytoy a panid.',
 'permissionserrors' => 'Dagiti biddut ti pammalubos',
-'permissionserrorstext' => 'Awan ti pammalubos mo nga agaramid iti dayta, gapu ti sumaganad {{PLURAL:$1|a rason|dagiti rason}}:',
-'permissionserrorstext-withaction' => 'Awan ti pammalubos mo nga $2, gapu ti sumaganad {{PLURAL:$1|a rason|dagiti rason}}:',
-'recreate-moveddeleted-warn' => "''Ballaag: Agar-aramidka ti panid a naikkaten iti kallabes.'''
+'permissionserrorstext' => 'Awan ti pammalubosmo nga agaramid iti dayta, gapu ti sumaganad {{PLURAL:$1|a rason|a rasrason}}:',
+'permissionserrorstext-withaction' => 'Awan ti pammalubosmo nga $2, gapu ti sumaganad {{PLURAL:$1|a rason|rasrason}}:',
+'recreate-moveddeleted-warn' => "''Ballaag: Agparpartuatka manen ti naikkat idi a panid.'''
 
 Nasken a siguraduem no maikanatad nga ituloymo a parnuayen manen wenno urnosen daytoy a panid.
 Ti panaka-ikkat ken panka-iyalis a listaan para iti daytoy  a panid ket adda ditoy a pakakitaan:",
 'moveddeleted-notice' => 'Naikkaten daytoy a panid.
 Ti listaan a panaka-ikkat ken panaka-iyalis ti panid ket naikabil dita baba tapno usaren a reperensia.',
 'log-fulllog' => 'Kitaem amin dagita listaan',
-'edit-hook-aborted' => 'Iti panag-urnos ket napasardeng ti kawit.
+'edit-hook-aborted' => 'Ti panag-urnos ket napasardeng ti kawit.
 Awan ti intedna a palawag.',
 'edit-gone-missing' => 'Saan a mapabaro daytoy a panid.
 Kasla met naikkaten.',
@@ -821,16 +821,16 @@ Adda met daytoyen.',
 # Parser/template warnings
 'expensive-parserfunction-warning' => "'''Ballaag:''' Daytoy a panid ket adu unay kadagiti nangina a parser nga opisio a pinagtawtawag.
 
-Adda kuman basbasit ngem $2 {{PLURAL:$2|pinagtawtawag|dagiti pinagtawtawag}}, adda {{PLURAL:$1|idiayen a $1 pinagtawtawag|a $1 kadagiti pinagtawtawag}}.",
-'expensive-parserfunction-category' => 'Dagiti panid nga addaan iti adu la unay a nangina a parser nga opisio a pinagtawtawag',
+Adda kuman basbasit ngem $2 {{PLURAL:$2|a panagtawtawag|kadagiti panagtawtawag}}, adda {{PLURAL:$1|tattan $1 a panagtawtawag|tattan kadagiti $1 a panagtawtawag}}.",
+'expensive-parserfunction-category' => 'Dagiti panid nga adda ti adu unay a nangina a parser nga opisio a panagtawtawag',
 'post-expand-template-inclusion-warning' => "'''Ballaag:''' Dakkel unay ti naikabil a plantilia.
 Addan to dagiti plantilia a saan a maikabil.",
 'post-expand-template-inclusion-category' => 'Dagiti pampanid nga ayan dagiti nagsobra ti rukod dagiti naikabil a plantilia',
-'post-expand-template-argument-warning' => "'''Ballaag:''' Daytoy a panid ket adda nagyan na a maysa a panagpalawag a plantilia a dakkel unay ti panagpadakkel na.
+'post-expand-template-argument-warning' => "'''Ballaag:''' Daytoy a panid ket adda nagyanna a maysa a panagpalawag a plantilia a dakkel unay ti panagpadakkel na.
 Dagitoy a panagpalawag  ket naikkaten.",
-'post-expand-template-argument-category' => 'Dagiti panid a naglaon iti naikkat kadagiti kasinnungat ti plantilia',
+'post-expand-template-argument-category' => 'Dagiti panid a naglaon ti naikkat a plantilia kadagiti kasinnungat',
 'parser-template-loop-warning' => 'Adda nasarakan a silo ti plantilia: [[$1]]',
-'parser-template-recursion-depth-warning' => 'Ti kinauneg ti pinagdullit ti plantilia ket nagpatingga ti napalabes ($1)',
+'parser-template-recursion-depth-warning' => 'Ti kinauneg ti panagdullit ti plantilia ket nagpatingga ti napalabes ($1)',
 'language-converter-depth-warning' => 'Ti kauneg ti panagaramid ti pagsasao ket napalabes ti agpatingga a ($1)',
 'node-count-exceeded-category' => 'Dagiti panid a simmurok ti bilang ti node',
 'node-count-exceeded-warning' => 'Ti panid ket nasurokanna ti bilang ti node',
@@ -840,8 +840,8 @@ Dagitoy a panagpalawag  ket naikkaten.",
 'parser-unstrip-recursion-limit' => 'Ti di-naukisan a panagsumro manen a patingga ket nasurokan ($1)',
 
 # "Undo" feature
-'undo-success' => 'Ti panag-urnos ket san a maisubli.
-Pangngaasi ta kitaen ti pinagpada dita baba tapno maamuan no agpaypayso ti kayatmo nga aramiden, ken idulin dagiti sinukatan dita baba tapno malpas ti panagsubli ti inurnos.',
+'undo-success' => 'Ti panag-urnos ket saan a maisubli.
+Pangngaasi a kitaen ti pagipadaan dita baba tapno maamuan no agpaypayso ti kayatmo nga aramiden, ken idulin dagiti sinukatan dita baba tapno malpas ti panagsubli ti inurnos.',
 'undo-failure' => 'Ti inurnos ket saan a maipasubli ta adda dagiti nakisinnungat a patingnga a naurnos.',
 'undo-norev' => 'Saan a maibabawi ti naurnos ngamin ket awan met daytoy wenno mabalin a naikkat.',
 'undo-summary' => 'Ibabawi ti binaliwan $1 ni [[Special:Contributions/$2|$2]] ([[User talk:$2|Makipatang]])',
@@ -855,11 +855,11 @@ Ti inted a rason ni $3 ket ''$2''",
 # History pages
 'viewpagelogs' => 'Kitaen dagiti listaan para iti daytoy a panid',
 'nohistory' => 'Awan ti pakasaritaan ti panag-urnos iti daytoy a panid.',
-'currentrev' => 'Kinaudi a panagbaliwan',
-'currentrev-asof' => 'Pinakaudi a panagbalbaliw idi sipud a $1',
-'revisionasof' => 'Panangbalbaliw sipud $1',
-'revision-info' => 'Panangbaliw ni $2 sipud idi $1',
-'previousrevision' => '←Nadadaan a panangbalbaliw',
+'currentrev' => 'Kinaudi a binaliwan',
+'currentrev-asof' => 'Kinaudi a panagbalbaliw manipud idi $1',
+'revisionasof' => 'Panangbalbaliw manipud idi $1',
+'revision-info' => 'Panangbaliw manipud idi $1 babaen ni $2',
+'previousrevision' => '←Daan a panangbalbaliw',
 'nextrevision' => 'Nabarbaro a panangbalbaliw→',
 'currentrevisionlink' => 'kitaen ti agdama a panangbaliw',
 'cur' => 'agdama',
@@ -877,8 +877,8 @@ Sarita: '''({{int:cur}})''' = naggidiatan ti kinaudi a panagbaliw, '''({{int:las
 'historyempty' => '(blanko)',
 
 # Revision feed
-'history-feed-title' => 'Pakasaritaan ti panamalbaliw',
-'history-feed-description' => 'Pakasaritaan ti panamalbaliw para ti panid ditoy a wiki',
+'history-feed-title' => 'Pakasaritaan ti panagbalbaliw',
+'history-feed-description' => 'Pakasaritaan ti panagbalbaliw para iti daytoy a panid ditoy a wiki',
 'history-feed-item-nocomment' => '$1 iti $2',
 'history-feed-empty' => 'Awan ti kiniddaw a panid..
 Baka naikkaten ditoy a wiki, wenno nanaganan.
@@ -893,37 +893,37 @@ Padasem ti [[Special:Search|agbiruk ditoy a wiki]] kadagiti mapaay a baro a pani
 Dagiti salaysay ket mabirukan idiay [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} listaan ti naikkat].",
 'rev-deleted-text-unhide' => "Ti panakabaliw daytoy a panid ket '''naikkaten'''.
 Dagiti salaysay ket mabirukan idiay [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} listaan ti naikkat].
-Mabalin mo pay a [$1 makita daytoy a panakabaliw] no kayatmo ti agtuloy.",
+Mabalinmo pay a [$1 makita daytoy a panakabaliw] no kayatmo ti agtuloy.",
 'rev-suppressed-text-unhide' => "Ti panakabaliw daytoy a panid ket '''napasardeng'''.
 Dagiti salaysay ket mabirukan idiay [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} listaan ti napasardeng].
 Mabalin mo pay a [$1 makita daytoy a panakabaliw] no kayatmo ti agtuloy.",
 'rev-deleted-text-view' => "Ti panakabaliw daytoy a panid ket '''naikkaten'''.
-Mabalin mo a kitaen; dagiti salaysay ket mabirukan idiay [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} listaan ti naikkat].",
+Mabalinmo a kitaen; dagiti salaysay ket mabirukan idiay [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} listaan ti naikkat].",
 'rev-suppressed-text-view' => "Ti panakabaliw daytoy a panid ket '''napasardeng'''.
-Mabalin mo a kitaen; dagiti salaysay ket mabirukan idiay [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} listaan ti napasardeng].",
-'rev-deleted-no-diff' => "Saan mo a makita daytoy a paggiddiatan ngamin ket maysa a panagbaliwan ket '''naikkat''.
+Mabalinmo a kitaen; dagiti salaysay ket mabirukan idiay [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} listaan ti napasardeng].",
+'rev-deleted-no-diff' => "Saanmo a makita daytoy a paggiddiatan ngamin ket ti maysa a panagbaliw ket '''naikkat''.
 Dagiti salaysay ket mabirukan idiay [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} listaan ti naikkat].",
-'rev-suppressed-no-diff' => "Saan mo a makita daytoy a paggiddiatan ngamin ket maysa a panagbaliwan ket '''naikkat''.",
-'rev-deleted-unhide-diff' => "Maysa a panagbaliwan iti daytoy a paggiddiatan ket '''naikkaten'''.
+'rev-suppressed-no-diff' => "Saanmo a makita daytoy a paggiddiatan ngamin ket maysa a panagbaliwan ket '''naikkat''.",
+'rev-deleted-unhide-diff' => "Maysa a panagbaliw iti daytoy a paggiddiatan ket '''naikkaten'''.
 Dagiti salaysay ket mabirukan idiay [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} listaan ti naikkat].
-Mabalin mo pay a [$1 makita daytoy a paggiddiatan] no kayatmo ti agtuloy.",
-'rev-suppressed-unhide-diff' => "Maysa a panagbaliwan iti daytoy a paggiddiatan ket '''napasardeng'''.
+Mabalinmo pay a [$1 makita daytoy a paggiddiatan] no kayatmo ti agtuloy.",
+'rev-suppressed-unhide-diff' => "Maysa a panagbaliw iti daytoy a paggiddiatan ket '''napasardeng'''.
 Dagiti salaysay ket mabirukan idiay [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} listaan ti napasardeng].
-Mabalin mo pay a [$1 makita daytoy a paggiddiatan] no kayatmo ti agtuloy.",
-'rev-deleted-diff-view' => "Maysa a panagbaliwan iti daytoy a paggiddiatan ket '''naikkaten'''.
-Mabalin mo pay a kitaen daytoy a paggiddiatan; dagiti salaysay ket mabirukan idiay [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} listaan ti naikkat].",
-'rev-suppressed-diff-view' => "Maysa a panagbaliwan iti daytoy a paggiddiatan ket '''napasardeng'''.
-Mabalin mo pay a kitaen daytoy a paggiddiatan; dagiti salaysay ket mabirukan idiay [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} listaan ti napasardeng].",
+Mabalinmo pay a [$1 makita daytoy a paggiddiatan] no kayatmo ti agtuloy.",
+'rev-deleted-diff-view' => "Maysa a panagbaliw iti daytoy a paggiddiatan ket '''naikkaten'''.
+Mabalinmo pay a kitaen daytoy a paggiddiatan; dagiti salaysay ket mabirukan idiay [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} listaan ti naikkat].",
+'rev-suppressed-diff-view' => "Maysa a panagbaliw iti daytoy a paggiddiatan ket '''napasardeng'''.
+Mabalinmo pay a kitaen daytoy a paggiddiatan; dagiti salaysay ket mabirukan idiay [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} listaan ti napasardeng].",
 'rev-delundel' => 'ipakita/ilemmeng',
 'rev-showdeleted' => 'ipakita',
-'revisiondelete' => 'Naikkat/isubli dagiti naikkat a panagbaliwan',
-'revdelete-nooldid-title' => 'Imbalido ti napuntaan a panagbaliwan',
-'revdelete-nooldid-text' => 'Baka saan mo nga imbaga ti pagpuntaan ti panagbaliwan (dagiti panagbaliwan) ti panagaramid daytoy,
-awan ti naibaga a panagbaliw, wenno padpadasem nga ilemlemmeng ti kadama a panagbaliwan.',
+'revisiondelete' => 'Naikkat/isubli dagiti naikkat a panagbaliw',
+'revdelete-nooldid-title' => 'Imbalido ti napuntaan a panagbaliw',
+'revdelete-nooldid-text' => 'Baka saanmo nga imbaga ti pagpuntaan ti panagbaliw  (dagiti panagbaliwan) ti panagaramid daytoy,
+awan ti naibaga a panagbaliw, wenno padpadasem nga ilemlemmeng ti agdama a panagbaliw.',
 'revdelete-nologtype-title' => 'Awan ti naited a kita ti listaan',
-'revdelete-nologtype-text' => 'Saan mo nga nainaganan ti kita a listaan ti agtungpal daytoy nga aramid.',
+'revdelete-nologtype-text' => 'Saanmo nga nainaganan ti kita a listaan ti agtungpal daytoy nga aramid.',
 'revdelete-nologid-title' => 'Imbalido a panangikabil dita listaan',
-'revdelete-nologid-text' => 'Saan mo a nainaganan ti puntaan ti listaan a paspasamak ti agaramid daytoy a pagusar wenno ti nainaganan nga inkabil ket saan nga adda idiay.',
+'revdelete-nologid-text' => 'Saanmo a nainaganan ti puntaan ti listaan a paspasamak ti agaramid daytoy a pagusar wenno ti nainaganan nga inkabil ket saan nga adda idiay.',
 'revdelete-no-file' => 'Awan dayta ti nainaganan a papeles.',
 'revdelete-show-file-confirm' => 'Segurado a kayatmo ti mangkita ti naikkat a baliwan ti papeles "<nowiki>$1</nowiki>" a naggapu idi $2 ti oras nga $3?',
 'revdelete-show-file-submit' => 'Wen',
@@ -931,11 +931,11 @@ awan ti naibaga a panagbaliw, wenno padpadasem nga ilemlemmeng ti kadama a panag
 'logdelete-selected' => "'''{{PLURAL:$1|Ti napili a listaan ti napasamak|Dagiti napili a listaan ti napasamak}}:'''",
 'revdelete-text' => "'''Dagiti naikkat a binaliwan ken dagiti napasamak ket agparang idiay panid ti pakasaritaan ken dagiti listaan, ngem addaan dagiti paset ti nagyanda a saan a maserrekan ti publiko.'''
 Dagiti sabsabali nga administrador idiay {{SITENAME}} ket mabalin da a serrekan ti nailemmeng a nagyan ken isubli ti panakaikkat da manen idiay dati nga interface, ngem saan no adda dagiti nainayon a naikabil a panagparit.",
-'revdelete-confirm' => 'Pangngaasi ti pasingkedam a kayatmo nga aramiden daytoy, a maawatam dagiti pagbanagan, ket araramidem daytoy a segun iti [[{{MediaWiki:Policy-url}}|ti annuroten]].',
+'revdelete-confirm' => 'Pangngaasi a pasingkedam a kayatmo nga aramiden daytoy, a maawatam dagiti pagbanagan, ket araramidem daytoy a segun iti [[{{MediaWiki:Policy-url}}|ti annuroten]].',
 'revdelete-suppress-text' => "Ti pinagdepdep ket usaren '''laeng''' kadagiti sumaganad;
 * Makapataud a dakes a pakaammo
 * Di maiparbeng a  kabukbukodan a pakaammo
-* : ''dagiti pagtaengan ken numero ti telepono, numero ti social security, ken dadduma pay.''",
+* : ''dagiti pagtaengan ken numero ti telepono, numero ti sosial a seguridad, ken dadduma pay.''",
 'revdelete-legend' => 'Iplastar dagiti pinagparit ti panagkita',
 'revdelete-hide-text' => 'Ilemmeng ti testo ti binaliwan',
 'revdelete-hide-image' => 'Ilemmeng ti linaon ti papeles',
@@ -949,28 +949,28 @@ Dagiti sabsabali nga administrador idiay {{SITENAME}} ket mabalin da a serrekan
 'revdelete-suppress' => 'Depdepen ti data a naggapu kadagiti administrador ken dagiti sabsabali',
 'revdelete-unsuppress' => 'Ikkaten dagiti pannakaiparit kadagiti naisubli a binaliwan',
 'revdelete-log' => 'Rason:',
-'revdelete-submit' => 'Ipakat iti napili {{PLURAL:$1|a panamalbaliw|dagiti panamalbaliw}}',
-'revdelete-success' => "'''Balligi ti pinakabaro ti pinakakita ti pinagbaliwan.'''",
+'revdelete-submit' => 'Ipakat ti napili {{PLURAL:$1|a panagbalbaliw|a dagiti panagbalbaliw}}',
+'revdelete-success' => "'''Balligi ti panagpabaro ti pinakakita ti pinagbaliwan.'''",
 'revdelete-failure' => "'''Saan a napabaro ti pinakakita ti pinagbaliwan.'''
 $1",
 'logdelete-success' => "'''Balligi ti panagikabil ti listaan ti panagkita.'''",
 'logdelete-failure' => "'''Napaay ti panagikabil ti listaan ti panagkita:'''
 $1",
 'revdel-restore' => 'Sukatan ti panagkita',
-'revdel-restore-deleted' => 'naikkat a pinagbaliwan',
-'revdel-restore-visible' => 'makita a pinagbaliwan',
+'revdel-restore-deleted' => 'naikkat a binaliwan',
+'revdel-restore-visible' => 'makita a binaliwan',
 'pagehist' => 'Pakasaritaan ti panid',
 'deletedhist' => 'Naikkat a pakasaritaan',
-'revdelete-hide-current' => 'Biddut ti pinakailemmeng ti banag napetsado a $2, $1: Daytoy ti kinaudian a pinagbaliwan.
-Saan nga mailemmeng.',
+'revdelete-hide-current' => 'Biddut ti panakailemmeng ti banag a napetsado a $2, $1: Daytoy ti kinaudi a panagbaliw
+Saan a mailemmeng.',
 'revdelete-show-no-access' => 'Biddut ti panagpakita ti banag a petsado a $2, $1: Daytoy ket namarkaan a "nakedngan".
 Saan mo a mabalin a serrekan.',
-'revdelete-modify-no-access' => 'Biddut ti pinagpabaro ti banag a petsado a $2, $1: Daytoy ket namarkaan a "nakedngan".
+'revdelete-modify-no-access' => 'Biddut ti panagpabaro ti banag a petsado a $2, $1: Daytoy ket namarkaan a "nakedngan".
 Saan mo a mabalin a serrekan.',
-'revdelete-modify-missing' => 'Biddut ti pinagpabaro daytoy ID $1: Saan a nasarakan idiay database!',
+'revdelete-modify-missing' => 'Biddut ti panagpabaro daytoy ID $1: Saan a nasarakan idiay database!',
 'revdelete-no-change' => "'''Biddut:''' Daytoy a banag a petsado a  $2, $1 ket addaan ti kiniddaw kadagiti pakakita a kasasaad.",
-'revdelete-concurrent-change' => 'Biddut ti pinagpabaro daytoy a banag a petsado a $2, $1: Ti pinakaikabil na ket mabalin a nasuktanen ti sabsabli idi pinadas mo a pinabaro.',
-'revdelete-only-restricted' => 'Biddut pinagilemmeng daytoy banag a petsado a $2, $1: Saan mo a maidepdep dagita iti pinagkita dagiti adminitrador no saan mo a pilian ti maysa kadagiti pinagpili ti panagkita.',
+'revdelete-concurrent-change' => 'Biddut ti panagpabaro daytoy a banag a petsado a $2, $1: Ti panakaikabil na ket mabalin a nasuktanen ti sabsabli idi pinadas mo a pinabaro.',
+'revdelete-only-restricted' => 'Biddut ti panagilemmeng daytoy banag a petsado a $2, $1: Saan mo a maidepdep dagita iti panagkita dagiti adminitrador no saan mo a pilian ti maysa kadagiti pinagpili ti panagkita.',
 'revdelete-reason-dropdown' => '*Dagiti kadawyan a panagikkat
 ** Panaglabsing ti karbengan ti pinagipablaak
 ** Saan a maibagay a kabukbukodan a pakaammo
@@ -987,22 +987,22 @@ Kitaen ti [[Special:BlockList|Listaan ti lapden nga IP]] para iti listaan kadagi
 
 # History merging
 'mergehistory' => 'Pagtiponen dagiti pakasaritaan ti pampanid',
-'mergehistory-header' => 'Daytoy a panid ket mabalin mo ti agpatipon kadagiti pinagbaliwan ti pakasaritaan iti maysa a taudan idiay barbaro a panid.
-Masapul a saraduem a daytoy a pinagsukat ket agsustento ti pinakaituoy ti pakasaritaan ti panid.',
+'mergehistory-header' => 'Daytoy a panid ket mabalinmo ti agitipon kadagiti pinagbaliwan ti pakasaritaan iti maysa a taudan idiay barbaro a panid.
+Masapul a sigaraduem a daytoy a panagsukat ket agsustento ti panakaituloy ti pakasaritaan ti panid.',
 'mergehistory-box' => 'Pagtiponen dagiti nasukatan iti dua a pampanid:',
 'mergehistory-from' => 'Taudan ti panid:',
 'mergehistory-into' => 'Pangipanan a panid:',
 'mergehistory-list' => 'Mabalin nga itipon ti pakasaritaan ti inurnos',
-'mergehistory-merge' => 'Dagiti sumaganad a pinagbaliw iti [[:$1]] ket mabalin nga itipon iti [[:$2]].
-Usaren ti radio a buton a tukol ti pinagtipon iti laeng pinagbaliw a naaramid idiay ken sakbay ti nainagan nga oras.',
+'mergehistory-merge' => 'Dagiti sumaganad a panagbaliw iti [[:$1]] ket mabalin nga itipon iti [[:$2]].
+Usaren ti radio a buton a tukol ti pinagtipon iti laeng panagbaliw a naaramid idiay ken sakbay ti nainagan nga oras.',
 'mergehistory-go' => 'Ipakita dagiti mabalin a maitipon a panag-urnos',
-'mergehistory-submit' => 'Pagtiponen dagiti panamalbaliw',
+'mergehistory-submit' => 'Pagtitiponen dagiti binalbaliwan',
 'mergehistory-empty' => 'Awan dagiti mabalin nga itipon.',
 'mergehistory-success' => '$3 {{PLURAL:$3|a binaliwan|dagiti binaliwan}} ti [[:$1]] balligi ti pinagtipon idiay [[:$2]].',
-'mergehistory-fail' => 'Saan a nakaaramid ti pinagtipon ti pakasaritaan, pangngaasi ta kitaen ti panid ken parametro ti oras.',
+'mergehistory-fail' => 'Saan a nakaaramid ti panagtipon ti pakasaritaan, pangngaasi ta kitaen ti panid ken parametro ti oras.',
 'mergehistory-no-source' => 'Awan ti taudan ti panid a $1.',
 'mergehistory-no-destination' => 'Awan ti papanan ti panid a $1.',
-'mergehistory-invalid-source' => 'Masapul nga addaan ti umisu a titulo ti taudan ti panid.',
+'mergehistory-invalid-source' => 'Masapul nga adda ti umisu a titulo ti taudan ti panid.',
 'mergehistory-invalid-destination' => 'Ti pangipanan ti panid ket masapul nga umisu a titulo.',
 'mergehistory-autocomment' => 'Naitipon ti [[:$1]] iti [[:$2]]',
 'mergehistory-comment' => 'Naitipon ti [[:$1]] iti [[:$2]]: $3',
@@ -1010,10 +1010,10 @@ Usaren ti radio a buton a tukol ti pinagtipon iti laeng pinagbaliw a naaramid id
 'mergehistory-reason' => 'Rason:',
 
 # Merge log
-'mergelog' => 'Listaan ti pinagtipon',
-'pagemerge-logentry' => 'itipon ti [[$1]] iti [[$2]] (dagiti binaliwan agingga iti $3)',
+'mergelog' => 'Listaan ti panagtipon',
+'pagemerge-logentry' => 'itipon ti [[$1]] iti [[$2]] (dagiti binaliwan aginggana iti $3)',
 'revertmerge' => 'Pagsinaen',
-'mergelogpagetext' => 'Adda dita baba ti listaan dagiti kinaudian a pinagtipon ti maysa a panid ti pakasaritaan iti maysa a sabali.',
+'mergelogpagetext' => 'Adda dita baba ti listaan dagiti kinaudian a panagtipon ti maysa a panid ti pakasaritaan iti maysa a sabali.',
 
 # Diffs
 'history-title' => 'Panagbalbaliw a pakasaritaan iti "$1"',
@@ -1021,51 +1021,51 @@ Usaren ti radio a buton a tukol ti pinagtipon iti laeng pinagbaliw a naaramid id
 'difference-title-multipage' => 'Paggiddiatan a nagbaetan dagiti panid  "$1" ken "$2"',
 'difference-multipage' => '(Paggiddiatan dagiti panid)',
 'lineno' => 'Linia $1:',
-'compareselectedversions' => 'Paggidiaten dagiti pinili a binaliwan',
+'compareselectedversions' => 'Ipada dagiti pinili a binaliwan',
 'showhideselectedversions' => 'Ipakita/ilemmeng dagiti napili a nabaliwan',
 'editundo' => 'ibabawi',
-'diff-multi' => '({{PLURAL:$1|Maysa nga agtengnga a panangbalbaliw|$1 dagiti agtennga a panangbalbaliw}} ni {{PLURAL:$2|agararamat|$2 dagidiay agararamat}} ti saan a naipakita)',
-'diff-multi-manyusers' => '({{PLURAL:$1|Maysa nga agtengnga a panangbalbaliw|$1 dagiti agtengnga a panangbalbaliw}} iti ad-adu nga $2 {{PLURAL:$2|agar-aramat|dagiti agar-aramat}} a saan a naipakita)',
+'diff-multi' => '({{PLURAL:$1|Maysa nga agtengnga a panangbalbaliw|Dagiti $1 nga agtennga a panangbalbaliw}} babaen {{PLURAL:$2|ti agararamat|dagiti $2 nga agararamat}} ti saan a naipakita)',
+'diff-multi-manyusers' => '({{PLURAL:$1|Maysa nga agtengnga a panangbalbaliw|Dagiti $1 nga agtengnga a panangbalbaliw}} babaen ti ad-adu ngem $2 {{PLURAL:$2|nga agar-aramat|kadagiti agar-aramat}} a saan a naipakita)',
 
 # Search results
 'searchresults' => 'Dagiti nagbanagan ti panagbiruk',
 'searchresults-title' => 'Dagiti nabirukan a nagbanagan ti "$1"',
 'searchresulttext' => 'Ti adu pay a pakaammo ti pinagbiruk {{SITENAME}}, kitaem ti [[{{MediaWiki:Helppage}}|{{int:help}}]].',
-'searchsubtitle' => 'Nagbiruk ka  iti \'\'\'[[:$1]]\'\'\' ([[Special:Prefixindex/$1|amin a panid aguna iti "$1"]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|amin a panid nga agsilpo iti "$1"]])',
-'searchsubtitleinvalid' => "Nagbiruk ka  iti '''$1'''",
-'toomanymatches' => 'Adu unay ti napasubli  nga agpapada, pangngaasim a padasen ti sabali a pinagsapul',
+'searchsubtitle' => 'Nagbiruk ka  para iti \'\'\'[[:$1]]\'\'\' ([[Special:Prefixindex/$1|amin a panid a mangrugi iti "$1"]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|amin a panid nga agsilpo iti "$1"]])',
+'searchsubtitleinvalid' => "Nagbiruk ka para  iti '''$1'''",
+'toomanymatches' => 'Adu unay ti napasubli  nga agpapada, pangngaasi a padasem ti sabali a panagsapul',
 'titlematches' => 'Dagiti kapadpada a titulo ti panid',
 'notitlematches' => 'Awan dagiti kapadpada a titulo ti panid',
 'textmatches' => 'Dagiti agpapada a testo ti panid',
 'notextmatches' => 'Awan dagiti kapadpada a teksto ti panid',
 'prevn' => 'napalabas {{PLURAL:$1|$1}}',
 'nextn' => 'sumaruno {{PLURAL:$1|$1}}',
-'prevn-title' => 'Napalabas $1 {{PLURAL:$1|a nagbanagan|dagiti nagbanagan}}',
-'nextn-title' => 'Sumaruno $1 {{PLURAL:$1|a nagbanagan|dagiti nagbanagan}}',
-'shown-title' => 'Ipakita $1 {{PLURAL:$1|a nagbanagan|dagiti nagbanagan}}  tunggal maysa a panid',
+'prevn-title' => 'Napalabas a $1 {{PLURAL:$1|a nagbanagan|kadagiti nagbanagan}}',
+'nextn-title' => 'Sumaruno a $1 {{PLURAL:$1|a nagbanagan|kadagiti nagbanagan}}',
+'shown-title' => 'Ipakita ti $1 {{PLURAL:$1|a nagbanagan|kadagiti nagbanagan}}  ti tunggal maysa a panid',
 'viewprevnext' => 'Kitaen ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-legend' => 'Pagpilian ti panagbiruk',
-'searchmenu-exists' => "'''Adda nagan ti panid nga \"[[:\$1]]\" daytoy a wiki.'''",
-'searchmenu-new' => "'''Aramidem ti panid nga \"[[:\$1]]\" daytoy a wiki!'''",
+'searchmenu-exists' => "'''Adda panid a nanaganan ti \"[[:\$1]]\" iti daytoy a wiki.'''",
+'searchmenu-new' => "'''Partuaten ti panid ti \"[[:\$1]]\" iti daytoy a wiki!'''",
 'searchhelp-url' => 'Help:Dagiti linaon',
-'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Kitaem dagiti panid nga adda naipasaruno na a kastoy]]',
+'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Kitaem dagiti panid nga adda kastoy a naipasaruno]]',
 'searchprofile-articles' => 'Dagiti naglaon a panid',
 'searchprofile-project' => 'Tulong ken Gandat a pam-panid',
 'searchprofile-images' => 'Sabsabali a midia',
 'searchprofile-everything' => 'Amin amin',
-'searchprofile-advanced' => 'Antenamo',
+'searchprofile-advanced' => 'Napasayaat',
 'searchprofile-articles-tooltip' => 'Agbiruk ka idiay $1',
 'searchprofile-project-tooltip' => 'Agbiruk ka idiay $1',
 'searchprofile-images-tooltip' => 'Agbiruk ka iti papeles',
 'searchprofile-everything-tooltip' => 'Birukem amin a linaon (uray dagiti makipatangan a panid)',
 'searchprofile-advanced-tooltip' => 'Agbiruk ka kadagiti naiduma a "nagan ti lugar"',
-'search-result-size' => '$1 ({{PLURAL:$2|1 a balikas|$2 dagiti balikas}})',
-'search-result-category-size' => '{{PLURAL:$1|1 kameng|$1 dagiti kameng}} ({{PLURAL:$2|1 apo ti kategoria|$2 dagiti apo ti kategoria}}, {{PLURAL:$3|1 papeles|$3 dagiti papeles}})',
+'search-result-size' => '$1 ({{PLURAL:$2|iti 1 a balikas|kadagiti $2 a balikas}})',
+'search-result-category-size' => '{{PLURAL:$1|1 a kameng| dagiti $1 a kameng}} ({{PLURAL:$2|1 nga apo ti kategoria|dagiti $2  nga apo ti kategoria}}, {{PLURAL:$3|1 a papeles|dagiti $3 a papeles}})',
 'search-result-score' => 'Kapategan: $1%',
 'search-redirect' => '(ibaw-ing ti $1)',
 'search-section' => '(paset $1)',
 'search-suggest' => 'Daytoy kadi: $1',
-'search-interwiki-caption' => 'Dagiti agkakabsat a gandat',
+'search-interwiki-caption' => 'Dagiti kakabsat a gandat',
 'search-interwiki-default' => '$1 dagiti nagbanagan:',
 'search-interwiki-more' => '(adu pay)',
 'search-mwsuggest-enabled' => 'addaan ti singasing',
@@ -1075,24 +1075,24 @@ Usaren ti radio a buton a tukol ti pinagtipon iti laeng pinagbaliw a naaramid id
 'searcheverything-enable' => 'Agbiruk ka kadagiti amin a nagan ti lugar',
 'searchrelated' => 'mainaig',
 'searchall' => 'amin',
-'showingresults' => "Maiparang iti baba ti agingga iti {{PLURAL:$1|'''1''' a nagbanagan|'''$1''' dagiti nagbanagan}} a mangrugi iti #'''$2'''.",
-'showingresultsnum' => "Makita iti baba ti {{PLURAL:$3|'''1''' a nagbanagan|'''$3''' dagiti nagbanagan}} a mangrugi iti #'''$2'''.",
-'showingresultsheader' => "{{PLURAL:$5|Nagbanagan '''$1''' of '''$3'''|Dagiti Nagbanagan '''$1 - $2''' of '''$3'''}} ti '''$4'''",
+'showingresults' => "Maiparang iti baba ti agingga {{PLURAL:$1|iti '''1''' a nagbanagan|dagiti '''$1''' a nagbanagan}} a mangrugi iti #'''$2'''.",
+'showingresultsnum' => "Makita dita baba  {{PLURAL:$3|iti '''1''' a nagbanagan|dagiti '''$3''' a nagbanagan}} a mangrugi iti #'''$2'''.",
+'showingresultsheader' => "{{PLURAL:$5|Nagbanagan a '''$1''' iti '''$3'''|Dagiti Nagbanagan a '''$1 - $2''' iti '''$3'''}} para iti '''$4'''",
 'nonefound' => "'''Palagip'': Adda laeng bassit dagita nagan ti lugar a masigud a biruken.
-Padasem a  pasarunuan ti pinagbiruk mo ti ''all:'' tapno birukem amin a nagyan (mairaman ti kapatangan a pampanid, dagiti plantilia, ken dadduma pay), wenno usarem nga ipasaruno ti kayatmo a nagan ti lugar.",
+Padasem a  pasarunuan ti panagbiruk mo ti ''all:'' tapno birukem amin a nagyan (mairaman ti kapatangan a pampanid, dagiti plantilia, ken dadduma pay), wenno usarem nga ipasaruno ti kayatmo a nagan ti lugar.",
 'search-nonefound' => 'Awan ti nagbanagan a kapadpada ti sinapul.',
 'powersearch' => 'Napasayat a panagbiruk',
 'powersearch-legend' => 'Napasayat a panagbiruk',
 'powersearch-ns' => 'Agbiruk ka kadagiti nagan ti lugar:',
-'powersearch-redir' => 'Ilista dagiti panagibaw-ing',
+'powersearch-redir' => 'Ilista dagiti baw-ing',
 'powersearch-field' => 'Biruken iti',
 'powersearch-togglelabel' => 'Markaan:',
 'powersearch-toggleall' => 'Amin',
 'powersearch-togglenone' => 'Awan',
 'search-external' => 'Akinruar a panagbiruk',
-'searchdisabled' => 'Ti pinagbiruk iti {{SITENAME}} ket nabaldado.
+'searchdisabled' => 'Ti panagbiruk iti {{SITENAME}} ket nabaldado.
 Mabalin mo ti agbiruk idiay Google tattan.
-Laglagipem laeng a dagiti listaan da a nagyan ti {{SITENAME}} saan a barbaro.',
+Laglagipem laeng a dagiti pagsurotan nagyan ti {{SITENAME}} ket baka baak.',
 
 # Quickbar
 'qbsettings' => 'Quickbar',
@@ -1101,7 +1101,7 @@ Laglagipem laeng a dagiti listaan da a nagyan ti {{SITENAME}} saan a barbaro.',
 'qbsettings-fixedright' => 'Agyan latta iti kanawan',
 'qbsettings-floatingleft' => 'Tumpaw ti kanigid',
 'qbsettings-floatingright' => 'Tumpaw ti kanawan',
-'qbsettings-directionality' => 'Nasimpa, gapu laeng ti papanan ti pinagsurat mo ti pagsasaom.',
+'qbsettings-directionality' => 'Nasimpa, gapu laeng ti papanan ti panagsurat ti pagsasaom',
 
 # Preferences page
 'preferences' => 'Kaykayatan',
@@ -1118,12 +1118,12 @@ Laglagipem laeng a dagiti listaan da a nagyan ti {{SITENAME}} saan a barbaro.',
 'prefs-labs' => 'Dagiti subokan a langa',
 'prefs-user-pages' => 'Dagiti panid ti agar-aramat',
 'prefs-personal' => 'Bariweswes ti agar-aramat',
-'prefs-rc' => 'Kaudian a balbaliw',
+'prefs-rc' => 'Kinaudi a binalbaliwan',
 'prefs-watchlist' => 'Listaan ti bambantayan',
-'prefs-watchlist-days' => 'Manu nga aldaw nga agparang iti listaan ti bambantayan:',
-'prefs-watchlist-days-max' => 'Pinakangato nga $1 {{PLURAL:$1|aldaw|al-aldaw}}',
-'prefs-watchlist-edits' => 'Pinakangato a bilang ti ipakita kadagiti sinukatan a napadakkel a bambantayan:',
-'prefs-watchlist-edits-max' => 'Pinakangato a bilang: 1000',
+'prefs-watchlist-days' => 'Manu nga aldaw nga agparang ti listaan iti bambantayan:',
+'prefs-watchlist-days-max' => 'Kabayag nga $1 {{PLURAL:$1|nga aldaw|nga al-aldaw}}',
+'prefs-watchlist-edits' => 'Kaadu a bilang ti ipakita kadagiti sinukatan iti napadakkel a bambantayan:',
+'prefs-watchlist-edits-max' => 'Kaadu a bilang: 1000',
 'prefs-watchlist-token' => 'Tandaan ti bambantayan:',
 'prefs-misc' => 'Sabsabali',
 'prefs-resetpass' => 'Sukatan ti kontrasenias',
@@ -1132,7 +1132,7 @@ Laglagipem laeng a dagiti listaan da a nagyan ti {{SITENAME}} saan a barbaro.',
 'prefs-email' => 'Pagpilian ti e-surat',
 'prefs-rendering' => 'Tabas',
 'saveprefs' => 'Idulin',
-'resetprefs' => 'Dalusan dagiti saan a naidulin a panamalbaliw',
+'resetprefs' => 'Dalusan dagiti saan a naidulin a sinuksukatan',
 'restoreprefs' => 'Isublim amin dagiti kinasigud a kasasaad',
 'prefs-editing' => 'Ururnosen',
 'prefs-edit-boxsize' => 'Kadakkel ti tawa ti panag-urnos.',
@@ -1142,20 +1142,20 @@ Laglagipem laeng a dagiti listaan da a nagyan ti {{SITENAME}} saan a barbaro.',
 'resultsperpage' => 'Nabirukan ti tunggal maysa a panid:',
 'stub-threshold' => 'Pangruggian ti <a href="#" class="stub">pungol a panilpo</a>pinagbukel (bytes):',
 'stub-threshold-disabled' => 'Nabaldado',
-'recentchangesdays' => 'Mano nga aldaw nga ipakita dagiti kaudian a balbaliw:',
-'recentchangesdays-max' => 'Pinakangato $1 {{PLURAL:$1\\aldaw|al-aldaw}}',
+'recentchangesdays' => 'Mano nga aldaw nga ipakita dagiti kinaudi a binalbaliwan:',
+'recentchangesdays-max' => 'Kabayag nga $1 {{PLURAL:$1|nga aldaw|nga al-aldaw}}',
 'recentchangescount' => 'Dagiti bilang dagiti naurnos a kinasigud a maiparang:',
 'prefs-help-recentchangescount' => 'Nairaman dagiti kinaudian a baliwan, dagiti pakasaritaan ti panid, ken dagiti listaan.',
 'prefs-help-watchlist-token' => 'No ikkam daytoy pagikabilan ti sekreto a tulbek, agaramid ti pakan a RSS para ti binambantayam.
 No adda makaammo daytoy a tulbek ditoy a pagikabilan ket mabalin da a basaen ti binambantayam, masapul nga agpili ka ti kuwenta a seguridad.
 
-Adda ditoy ti pugto a kuwenta a mausar mo: $1',
+Adda ditoy ti pugto a kuwenta a mausarmo: $1',
 'savedprefs' => 'Naidulin dagitoy kaykayatmon.',
 'timezonelegend' => 'Sona ti oras:',
 'localtime' => 'Lokal nga oras:',
 'timezoneuseserverdefault' => 'Usaren ti wiki a kinasigud ($1)',
-'timezoneuseoffset' => 'Sabsabali (ibaga ti supli)',
-'timezoneoffset' => 'Supli¹:',
+'timezoneuseoffset' => 'Sabsabali (inaganan ti tangdan)',
+'timezoneoffset' => 'Tangda¹:',
 'servertime' => 'Oras ti server:',
 'guesstimezone' => 'Ikabil idiay pabasabasam',
 'timezoneregion-africa' => 'Aprika',
@@ -1177,25 +1177,25 @@ Adda ditoy ti pugto a kuwenta a mausar mo: $1',
 'prefs-custom-css' => 'Naiduma a CSS',
 'prefs-custom-js' => 'Naiduma a JavaScript',
 'prefs-common-css-js' => 'Bingay a CSS/JavaScript dagiti amin a kudil:',
-'prefs-reset-intro' => 'Mabalin mo nga usaren daytoy a panid tapno maisublim dagita kaykayat mo iti kinasigud daytoy a wiki.
+'prefs-reset-intro' => 'Mabalinmo nga usaren daytoy a panid tapno maisublim dagita kaykayatmo iti kinasigud daytoy a wiki.
 Ngem saanto a mabalinen nga ipasubli.',
 'prefs-emailconfirm-label' => 'Pagsingkedan ti e-surat:',
-'prefs-textboxsize' => 'Ti kadakkel ti pamalbaliw a tawa',
+'prefs-textboxsize' => 'Ti kadakkel ti pagurnosan a tawa',
 'youremail' => 'E-surat:',
 'username' => 'Nagan ti agar-aramat:',
 'uid' => 'ID ti agar-aramat:',
-'prefs-memberingroups' => 'Kameng {{PLURAL:$1| bunggoy| dagiti bunggoy}}:',
+'prefs-memberingroups' => 'Kameng iti {{PLURAL:$1|a bunggoy| a bungbunggoy}}:',
 'prefs-registration' => 'Oras a nagrehistro:',
 'yourrealname' => 'Pudno a nagan:',
 'yourlanguage' => 'Pagsasao:',
 'yourvariant' => 'Linaon ti sabali a pagsasao:',
-'prefs-help-variant' => 'Ti kaykayat mo a sabsabali a pinagsurat a maipakita kadagiti linaon ti panid daytoy a wiki.',
+'prefs-help-variant' => 'Ti kaykayatmo a sabsabali a panagsurat a maipakita kadagiti linaon ti panid daytoy a wiki.',
 'yournick' => 'Baro a pirma:',
 'prefs-help-signature' => 'Komentario kadagiti  pakipatangan a panid ket  mapirmaan koma iti "<nowiki>~~~~</nowiki>" nga agpabalin ti pirmam ken ti petsa.',
 'badsig' => 'Saan a pudno a kilaw a pirma.
 Ikur-it dagiti HTML nga etiketa.',
 'badsiglength' => 'Atiddog unay ti pirmam.
-Masapul a nababbaba ngem $1 {{PLURAL:$1| a kabalinan|dagiti kabalinan}} ti kaatiddog na.',
+Masapul a nababbaba ngem $1 {{PLURAL:$1| a karakter|kadagiti karakter}} ti kaatiddog na.',
 'yourgender' => 'Lalaki wenno Babai:',
 'gender-unknown' => 'Saan a naibagbaga',
 'gender-male' => 'Lalaki',
@@ -1206,14 +1206,14 @@ Daytoy a pakaammo ket makita ti publiko.',
 'prefs-help-realname' => 'Saan a nasken ti pudno a nagan.
 Ngem no kayatmo nga ited, maaramat daytoy a kas pammadayaw ken pangpatalged iti obram.',
 'prefs-help-email' => 'Ti e-surat a pagtaengan ket saan a masapul, ngem masapul no agsukat ka ti kontrasenias, no baka malipatam ti kontrasenias mo.',
-'prefs-help-email-others' => 'Mabalin mo nga agpili tapno dagiti sabsabali nga agar-aramat ket ma e-suratandaka idiay panagsilpo ti panidmo wenno ti panid ti kapatangam.
+'prefs-help-email-others' => 'Mabalinmo nga agpili tapno dagiti sabsabali nga agar-aramat ket ma e-suratandaka idiay panagsilpo ti panidmo wenno ti panid ti kapatangam.
 Ti e-surat a pagtaengam ket saan nga maipakita kadagiti agar-aramat nga agkontak kenka.',
 'prefs-help-email-required' => 'Masapul ti e-surat a pagtaengan.',
 'prefs-info' => 'Kangrunaan a pakaammuan',
 'prefs-i18n' => 'Internasionalisasion',
 'prefs-signature' => 'Pirma',
 'prefs-dateformat' => 'Kita ti petsa',
-'prefs-timeoffset' => 'Supli ti oras',
+'prefs-timeoffset' => 'Tangda ti oras',
 'prefs-advancedediting' => 'Dagiti nangato a pagpilian',
 'prefs-advancedrc' => 'Dagiti nangato a pagpilian',
 'prefs-advancedrendering' => 'Dagiti nangato a pagpilian',
@@ -1243,7 +1243,7 @@ Ti e-surat a pagtaengam ket saan nga maipakita kadagiti agar-aramat nga agkontak
 * Ti saan a nakur-it a kahon ket kayatna a saoen nga awan ti agar-aramat dita a bunggoy.
 * A * ti kunana ket saan mo a maikkat ti bunggoy no nainayonmon, wenno pagbalittaden.',
 'userrights-reason' => 'Rason:',
-'userrights-no-interwiki' => 'Awananka iti pammalubos nga agbaliw ti karkarbengan ti agar-aramat kadagiti sabali a wiki.',
+'userrights-no-interwiki' => 'Awan ti pammalubosmo nga agbaliw ti karbengan ti agar-aramat kadagiti sabali a wiki.',
 'userrights-nodatabase' => 'Awan ti database a $1 wenno baka saan a lokal.',
 'userrights-nologin' => 'Masapul a [[Special:UserLogin|sumrekka]] nga adda pakabilangan nga administrador ti magted kadagiti karbengan ti agar-aramat.',
 'userrights-notallowed' => 'Awan ti pammalubos ti pakabilangam a mangted iti kakaberngan ti agar-aramat.',
@@ -1276,7 +1276,7 @@ Ti e-surat a pagtaengam ket saan nga maipakita kadagiti agar-aramat nga agkontak
 
 # Rights
 'right-read' => 'Basaen dagiti panid',
-'right-edit' => 'Urnosen dagiti pampanid',
+'right-edit' => 'Agurnos kadagiti pampanid',
 'right-createpage' => 'Agaramid kadagiti panid (saan a pagtutungtongan a pampanid)',
 'right-createtalk' => 'Agaramid ti pagtungtungan a pampanid',
 'right-createaccount' => 'Agaramid kadagiti baro a pakabilangan ti agar-aramat',
@@ -1294,14 +1294,14 @@ Ti e-surat a pagtaengam ket saan nga maipakita kadagiti agar-aramat nga agkontak
 'right-purge' => 'Pasariwaam ti cache ti pagsaadan a ti panid ket awan ti pasingkedan na.',
 'right-autoconfirmed' => 'Urnosen dagiti nasalakniban-bassit a panid',
 'right-bot' => 'Matrato a kas automatiko a panagaramid',
-'right-nominornewtalk' => 'Nga awanan ti bassit a pinagurnos dagiti tungtungan a panid ti mangkalbit dagiti agpakabil ti baro a mensahe',
+'right-nominornewtalk' => 'Nga awanan ti bassit a panagurnos dagiti tungtungan a panid ti mangkalbit dagiti agpakabil ti baro a mensahe',
 'right-apihighlimits' => 'Agusar ti nangatngato a patingga kadagiti pinagsapul ti API.',
-'right-writeapi' => 'Pinagusar ti pagsurat ti API',
+'right-writeapi' => 'Panagusar ti panagsurat nga API',
 'right-delete' => 'Ikkaten dagiti panid',
-'right-bigdelete' => 'Ikkaten dagiti panid nga addaan ti dadakkel a pakasaritaan',
+'right-bigdelete' => 'Ikkaten dagiti panid nga adda dagiti dakkel a pakasaritaanna',
 'right-deleterevision' => 'Ikkaten ken ipasubli dagiti nainagan a pinagbaliwan ti panid',
 'right-deletedhistory' => 'Kitaen dagiti naikabil a pakasaritaan, nga awan kaniada kadagiti nairaman a testo',
-'right-deletedtext' => 'Kitaen dagiti naikkat a testo ken dagiti nasukatan a baet ti pinagbaliwan',
+'right-deletedtext' => 'Kitaen dagiti naikkat a testo ken dagiti nasukatan a nagbaetan dagiti binaliwan',
 'right-browsearchive' => 'Biruken dagiti naikkat a panid',
 'right-undelete' => 'Isubli ti naikkat a panid',
 'right-suppressrevision' => 'Kitaen ken ipasubli dagiti binaliwan a nailemmeng kadagiti administrador',
@@ -1311,7 +1311,7 @@ Ti e-surat a pagtaengam ket saan nga maipakita kadagiti agar-aramat nga agkontak
 'right-hideuser' => 'Serraan ti maysa a nagan ti agar-aramat, ilemmeng manipud ti publiko',
 'right-ipblock-exempt' => 'Labsan dagiti IP a serra, dagiti automatiko a serra ken dagiti nasakup a serra.',
 'right-proxyunbannable' => 'Labsan dagiti automatiko a serra dagiti proxie',
-'right-unblockself' => 'Ikkaten ti panaka-serra da',
+'right-unblockself' => 'Ikkaten ti panaka-serra kaniada',
 'right-protect' => 'Sukatan dagiti lessaad ti salaknib ken dagiti panid a nasalakniban ti panag-urnos',
 'right-editprotected' => 'Urnosen dagiti nasalakniban a panid (nga awan ti sariap a salaknib")',
 'right-editinterface' => 'Urnosen ti "interface" ti agar-aramat',
@@ -1324,7 +1324,7 @@ Ti e-surat a pagtaengam ket saan nga maipakita kadagiti agar-aramat nga agkontak
 'right-import' => 'Agala ti pampanid manipud kadagiti sabsabali a wiki',
 'right-importupload' => 'Agala kadagiti panid a naggapu iti papeles ti pinag-ipan',
 'right-patrol' => 'Markaan a kas napatruliaan dagiti inurnos ti dadduma',
-'right-autopatrol' => 'Dagiti inurnos mo ket mamarkaan nga automatiko a napatruliaan',
+'right-autopatrol' => 'Dagiti inurnosmo ket mamarkaan nga automatiko a kas napatruliaan',
 'right-patrolmarks' => 'Kitaen dagiti kinaudian a binaliwan a  napatruliaan a marka',
 'right-unwatchedpages' => 'Kitaen ti listaan dagiti saan a nabambantayan a panid',
 'right-mergehistory' => 'Pagtitiponen ti pakasaritaan dagiti panid',
@@ -1338,42 +1338,42 @@ Ti e-surat a pagtaengam ket saan nga maipakita kadagiti agar-aramat nga agkontak
 # User rights log
 'rightslog' => 'Listaan dagiti karbengan ti agar-aramat',
 'rightslogtext' => 'Listaan daytoy kadagiti sinukatan a karbengan ti agararamat.',
-'rightslogentry' => 'Nasukatan ti panagkameng iti bunggoy ti $1 manipud $2 iti $3',
+'rightslogentry' => 'sinukatan ti panagkameng iti bunggoy ti $1 manipud $2 iti $3',
 'rightslogentry-autopromote' => 'na automatiko a naipangato a naggapo iti $2 idiay $3',
 'rightsnone' => '(awan)',
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => 'basaem datoy a panid',
-'action-edit' => 'baliwam datoy a panid',
-'action-createpage' => 'Agaramid ka kadagiti panid',
+'action-edit' => 'agurnos iti datoy a panid',
+'action-createpage' => 'agpartuat kadagiti panid',
 'action-createtalk' => 'agaramid kadagiti pagtungtungan a panid',
-'action-createaccount' => 'Aramiden ti pakabilangan daytoy nga agar-aramat',
+'action-createaccount' => 'agpartuat ti pakabilangan daytoy nga agar-aramat',
 'action-minoredit' => 'markaam a bassit nga urnos daytoy',
-'action-move' => 'Iyalis daytoy a panid',
+'action-move' => 'iyalis daytoy a panid',
 'action-move-subpages' => 'iyalis daytoy a panid, ken dagiti apo na a panid',
 'action-move-rootuserpages' => 'iyalis dagiti ramut a panid ti agar-aramat',
-'action-movefile' => 'Iyalis daytoy a papeles',
+'action-movefile' => 'iyalis daytoy a papeles',
 'action-upload' => 'ipapan daytoy a papeles',
 'action-reupload' => 'suratam manen dagiti adda a papeles',
 'action-reupload-shared' => 'paawanen daytoy a papeles idiay pagbingayan a nagikabilan',
 'action-upload_by_url' => 'ipag-ipan daytoy a papeles a naggapu ti URL',
-'action-writeapi' => 'usaren ti pinagsurat ti API',
+'action-writeapi' => 'usaren ti panagsurat ti API',
 'action-delete' => 'ikkaten daytoy a panid',
 'action-deleterevision' => 'ikkaten daytoy a binaliwan',
 'action-deletedhistory' => 'kitaen dagiti naikkat a pakasaritaan daytoy a panid',
-'action-browsearchive' => 'Birukem dagiti naikkat a panid',
-'action-undelete' => 'isublim ti pinakaikkat daytoy a panid',
-'action-suppressrevision' => 'kitaen ken ipasubli daytoy nailemmeng a pinagbaliw',
+'action-browsearchive' => 'birukem dagiti naikkat a panid',
+'action-undelete' => 'isublim ti panakaikkat daytoy a panid',
+'action-suppressrevision' => 'kitaen ken ipasubli daytoy nailemmeng a panagbaliw',
 'action-suppressionlog' => 'kitaen ti listaan a pribado',
 'action-block' => 'serraan daytoy nga agar-aramat manipud ti panag-urnos',
 'action-protect' => 'sukatan dagiti lessaad ti salaknib iti daytoy a panid',
-'action-rollback' => 'pardasan nga ipasubli dagiti inurnos ti kinaudi nga agar-aramat a nagurnos ti kaskasta a panid',
+'action-rollback' => 'pardasan nga ipasubli dagiti inurnos ti kinaudi nga agar-aramat a nagurnos ti naisangsangayan a panid',
 'action-import' => 'agala ka ti panid iti sabali a wiki',
 'action-importupload' => 'alaem daytoy a panid idiay naipan a papeles',
-'action-patrol' => 'Markaan a kas napatruliaan dagiti inurnos ti dadduma',
+'action-patrol' => 'markaan a kas napatruliaan dagiti inurnos ti dadduma',
 'action-autopatrol' => 'markaam dagiti napatruliam nga inurnos',
 'action-unwatchedpages' => 'kitaen ti listaan dagiti saan a nabambantayan a panid',
-'action-mergehistory' => 'Pagtitiponen ti pakasaritaan daytoy a panid',
+'action-mergehistory' => 'pagtitiponen ti pakasaritaan daytoy a panid',
 'action-userrights' => 'urnosen amin dagiti karbengan ti agar-aramat',
 'action-userrights-interwiki' => 'urnosen dagiti karbengan ti agar-aramat iti agar-aramat kadagiti sabsabali a wiki',
 'action-siteadmin' => 'kandaduan wenno lukatan daytoy "database"',
@@ -1383,15 +1383,15 @@ Ti e-surat a pagtaengam ket saan nga maipakita kadagiti agar-aramat nga agkontak
 'nchanges' => '$1 {{PLURAL:$1|sinukatan|dagiti sinukatan}}',
 'recentchanges' => 'Kaudian a balbaliw',
 'recentchanges-legend' => 'Pagpilian kadagiti kaudian a balbaliw',
-'recentchanges-summary' => 'Bantayan iti daytoy a panid dagiti kauudian a panakabalbaliw ti wiki.',
-'recentchanges-feed-description' => 'Siputen dagiti kakaudian a panamalbaliw iti wiki iti daytoy a pakan.',
-'recentchanges-label-newpage' => 'Daytoy nga inurnos ket nakaaramid ti baro a panid',
-'recentchanges-label-minor' => 'Bassit a panag-urnos laeng daytoy',
-'recentchanges-label-bot' => 'Daytoy a panag-urnos ket inaramid ti bot',
-'recentchanges-label-unpatrolled' => 'Saan pay a napatrulian daytoy a panag-urnos',
+'recentchanges-summary' => 'Siputen dagiti kinaudi a panagbalbaliw ti wiki iti daytoy a panid.',
+'recentchanges-feed-description' => 'Siputen dagiti kinaudi a panagbalbaliw ti wiki iti daytoy a pakan.',
+'recentchanges-label-newpage' => 'Daytoy a panag-urnos ket nakapartuat ti baro a panid',
+'recentchanges-label-minor' => 'Daytoy ket bassit a panag-urnos',
+'recentchanges-label-bot' => 'Daytoy a panag-urnos ket inaramid babaen ti maysa a bot',
+'recentchanges-label-unpatrolled' => 'Daytoy a panag-urnos ket saan pay a naptruliaan',
 'rcnote' => "Adda dita baba {{PLURAL:$1|ti '''1''' sinukatan|dagiti naudi '''$1''' a sinukatan}} iti naudi nga {{PLURAL:$2|aldaw|'''$2''' al-aldaw}}, sipud iti $5, $4.",
 'rcnotefrom' => "Makita dita baba dagiti sinukatan manipud idi '''$2''' (agingga iti '''$1''' ti naipakita).",
-'rclistfrom' => 'Ipakita dagiti kabarbaro a sinukatan mangrugi idi $1',
+'rclistfrom' => 'Ipakita dagiti kabarbaro a sinukatan a mangrugi manipud idi $1',
 'rcshowhideminor' => '$1 dagiti bassit a panag-urnos',
 'rcshowhidebots' => '$1 dagiti bots',
 'rcshowhideliu' => '$1 dagiti nakastrek nga agar-aramat',
@@ -1412,7 +1412,7 @@ Ti e-surat a pagtaengam ket saan nga maipakita kadagiti agar-aramat nga agkontak
 'rc-change-size-new' => '$1 {{PLURAL:$1|byte|bytes}} kalpasan ti panag-sukat',
 'newsectionsummary' => '/* $1 */ baro a paset',
 'rc-enhanced-expand' => 'Ipakita dagiti salaysay (masapul ti JavaScript)',
-'rc-enhanced-hide' => 'Illemmeng dagiti salaysay',
+'rc-enhanced-hide' => 'Ilemmeng dagiti salaysay',
 'rc-old-title' => 'kasisigud nga inaramid a kas ti "$1"',
 
 # Recent changes linked
@@ -1430,7 +1430,7 @@ Dagiti panid iti [[Special:Watchlist|listaan ti bambantayam]] ket '''napuskol'''
 'upload' => 'Mangipan iti papeles',
 'uploadbtn' => 'Mangipan iti papeles',
 'reuploaddesc' => 'Ukasen ti pag-ipan ken absubli idiay kabuklan ti pag-ipan',
-'upload-tryagain' => 'Ited ti napabaro a pinagipalawag ti papeles',
+'upload-tryagain' => 'Ited ti napabaro a panagipalawag ti papeles',
 'uploadnologin' => 'Saan a nakastrek',
 'uploadnologintext' => 'Masapul a [[Special:UserLogin|nakaserrekka]] tapno makaipanka iti papeles.',
 'upload_directory_missing' => 'Ti direktorio ti pag-ipan ($1) ket napukaw ken saan a mabalin nga aramiden iti webserver.',
@@ -1440,12 +1440,12 @@ Dagiti panid iti [[Special:Watchlist|listaan ti bambantayam]] ket '''napuskol'''
 
 Ti listaan ti panagikkat ken panagiyalis daytoy a panid ket adda ditoy tapno makitam:",
 'uploadtext' => "Usaren ti kabuklan dita baba ti pinag-ipan ti papeles.
-Ti panagkita wenno panagbiruk ti napalubos a pinag-ipan ti papeles mapan ka idiay [[Special:FileList|listaan dagiti napag-ipan a papeles]], dagiti pinag-ipan wenno pinag-ipan manen ket nakalista pay idiay [[Special:Log/upload|listaan ti pinag-ipan]], dagiti pinagikkat ket idiay [[Special:Log/delete|listaan ti pinagikkat]].
+Ti panagkita wenno panagbiruk ti napalubos a pinag-ipan ti papeles mapan ka idiay [[Special:FileList|listaan dagiti napag-ipan a papeles]], dagiti pinag-ipan wenno pinag-ipan manen ket nakalista pay idiay [[Special:Log/upload|listaan ti pinag-ipan]], dagiti panagikkat ket idiay [[Special:Log/delete|listaan ti panagikkat]].
 
 Ti panagikabil ti papeles iti panid, usaren ti panilpo a kas dagiti sumaganad a kabuklan:
 * '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>''' ti panag-usar ti dakkel a bersion ti papeles
-* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' ti agusar ti 200 pixel a kaakaba  a pinagparang iti kahon idiay kannigid nga adda 'sabali a testo' ti pinagipalpalawag
-* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' ti dagus a panagsilpo idiay papeles nga awan ti pinagparang ti papeles",
+* '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></tt>''' ti agusar ti 200 pixel a kaakaba  a panagparang iti kahon idiay kannigid nga adda 'sabali a testo' ti panagipalpalawag
+* '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>''' ti dagus a panagsilpo idiay papeles nga awan ti panagparang ti papeles",
 'upload-permitted' => 'Dagiti mapalubosan a kita ti papeles: $1.',
 'upload-preferred' => 'Dagiti mabalbalin a kita ti papeles: $1.',
 'upload-prohibited' => 'Dagiti maiparit a kita ti papeles: $1.',
@@ -1471,56 +1471,56 @@ Pangngaasi ta naganan manen ti papeles ken padasen manen nga ipapan.',
 'filetype-badmime' => 'Dagiti papeles a kas MIME a kita "$1" ket saan a mapalubosan a maipan.',
 'filetype-bad-ie-mime' => 'Saan a makapag-ipan ti papeles ngamin ket masarakan ti Internet Explorer a kas "$1", a saan a mabalin ken makapataud a dakes a kita ti papeles.',
 'filetype-unwanted-type' => "'''\".\$1\"''' ti saan a mapalubusan a kita ti papeles.
-Mapalubusan a {{PLURAL:\$3|kita ti papeles ket|kadagiti kita ti papeles ket}} \$2.",
-'filetype-banned-type' => '\'\'\'".$1"\'\'\' {{PLURAL:$4|saan a mapalubusan a kita ti papeles|dagiti saan a mapalubusan a kita ti papeles}}.
-Mapalubusan a {{PLURAL:$3|kita ti papeles ket|dagiti kita ti papeles ket}} $2.',
+Ti mapalubusan  {{PLURAL:\$3|a kita ti papeles ket|kadagiti kita ti papeles ket}} \$2.",
+'filetype-banned-type' => 'Ti \'\'\'".$1"\'\'\' {{PLURAL:$4|ket saan a mapalubusan a kita ti papeles|ket dagiti saan a mapalubusan a kita ti papeles}}.
+Ti mapalubusan{{PLURAL:$3|a kita ti papeles ket|kadagiti kita ti papeles ket}} $2.',
 'filetype-missing' => 'Daytoy a papeles ket awan ti kita na a (kasla ".jpg").',
 'empty-file' => 'Ti papeles nga intedmo ket awan ti nagyan na.',
 'file-too-large' => 'Ti papeles nga intedmo ket dakkel unay.',
 'filename-tooshort' => 'Ti nagan daytoy a papeles ket bassit unay.',
 'filetype-banned' => 'Ti kita daytoy a papeles ket maiparit.',
 'verification-error' => 'Daytoy a papeles ket saan a nakapasa ti pagsingkedan.',
-'hookaborted' => 'Ti pinagbabaro a pinadas mo ket napasardeng iti pangpa-atiddog a kawit.',
+'hookaborted' => 'Ti panagbabaro a pinadasmo ket napasardeng babaen ti pangpa-atiddog a kawit.',
 'illegal-filename' => 'Ti nagan daytoy a papeles ket saan a maipalubos.',
 'overwrite' => 'Saan a mabalin a suratan manen iti papeles nga adda ditan.',
 'unknown-error' => 'Adda di amammo a biddut.',
 'tmp-create-error' => 'Saan a makaaramid ti saan nga agnayon a papeles.',
-'tmp-write-error' => 'Biddut ti pinakasurat  dagiti saan nga agnayon a papeles.',
+'tmp-write-error' => 'Biddut ti panakaisurat  dagiti saan nga agnayon a papeles.',
 'large-file' => 'Ti maipatalked a papeles ket saan koma a dakdakkel ngem $1;
 daytoy a papeles ket $2.',
 'largefileserver' => 'Daytoy a papeles ket dakdakel ngem ti naaramid a mabalin para iti server.',
-'emptyfile' => 'Ti papeles nga impapan mo ket kasla awan ti nagyan na.
+'emptyfile' => 'Ti papeles nga ipanmo ket kasla awan ti nagyan na.
 Baka daytoy ket gapu ti kamali ti inkabil a nagan ti papeles.
 Pangngaasi ta kitaem no kayatmo latta nga ipapan daytoy a papeles.',
-'windows-nonascii-filename' => 'Daytoy a wiki ket saan na a tapayaen dagiti nagan ti papeles nga addaan ti kangrunaan a kababalin',
-'fileexists' => "Addaan ti nagan ti papeles a kastoy, pangngaasi ta kitaem '''<tt>[[:$1]]</tt>''' no saan ka a sigurado ti agpasukat.
+'windows-nonascii-filename' => 'Daytoy a wiki ket saanna a tapayaen dagiti nagan ti papeles nga adda ti kangrunaan a kababalin',
+'fileexists' => "Adda ti papeles nga agnagan ti kastoy, pangngaasi a kitaemti  '''<tt>[[:$1]]</tt>''' no saanka a sigurado a mangsukat.
 [[$1|thumb]]",
-'filepageexists' => "Ti pinagipalpalawag a panid ti daytoy a papeles ket naaramiden idiay '''<tt>[[:$1]]</tt>''', mgem awan ti papeles a kastoy ti addaan ti nagan na.
-Ti pakabuklan nga inkabil mo ket saan nga agparang idiay panid ti pinagipalpalawag.
+'filepageexists' => "Ti panangipalpalawag a panid ti daytoy a papeles ket naaramiden idiay '''<tt>[[:$1]]</tt>''', mgem awan ti agnagan ti katoy a papeles.
+Ti pakabuklan nga inkabilmo ket saan nga agparang idiay panid ti panangipalpalawag.
 Tapno ti pakabuklan ket agparang idiay, masapul  a baliwam idiay.
 [[$1|thumb]]",
-'fileexists-extension' => "Addaan ti papeles a kastoy ti nagan na: [[$2|thumb]]
+'fileexists-extension' => "Adda papeles nga agnagan ti kastoy: [[$2|thumb]]
 * Nagan ti naipapan a papeles: '''<tt>[[:$1]]</tt>'''
-* Nagan ti addaan a papeles: '''<tt>[[:$2]]</tt>'''
-Pangngaasi ka nga agpili ti sabali a nagan.",
+* Nagan ti adda a papeles: '''<tt>[[:$2]]</tt>'''
+Pangngaasi nga agpili ti sabali a nagan.",
 'fileexists-thumbnail-yes' => "Daytoy a papeles ket kasla imahen a napabassit ''(thumbnail)''.
 [[$1|thumb]]
-Pangngaasi ta kitaem ti papeles a '''<tt>[[:$1]]</tt>'''.
-No ti nakitam a papeles ket isu met laeng dayta dati a kadakkel, saan kan a mang-ipan iti sabali pay a napabassit nga imahen.",
+Pangngaasi a kitaem ti papeles a '''<tt>[[:$1]]</tt>'''.
+No ti nakitam a papeles ket isu met laeng dayta dati a kadakkel, saanka a mang-ipan iti sabali pay a napabassit nga imahen.",
 'file-thumbnail-no' => "Ti nagan ti papeles ket mangrugi ti '''<tt>$1</tt>'''.
 Kasla imahen a napabassit ''(thumbnail)''.
 No addaan ka ti dakkel a resolusion daytoy nga imahen ipag-ipan daytoy, no saan ket pangngaasi ta sukatam ti nagan ti papeles.",
-'fileexists-forbidden' => 'Daytoy a nagan ti papeles ket addaan dita, ken saan a mabalin a masuratan manen.
+'fileexists-forbidden' => 'Daytoy a nagan ti papeles ket adda dita, ken saan a mabalin a masuratan manen.
 No ket kayatmo latta nga agipan ti papeles, pangngaasi ta agsubli ka ken usarem ti baro a nagan.
 [[File:$1|thumb|center|$1]]',
-'fileexists-shared-forbidden' => 'Daytoy a nagan ti papeles ket addaan dita pagbingayan a nagikabilan ti papeles.
+'fileexists-shared-forbidden' => 'Daytoy a nagan ti papeles ket adda dita pagbingayan a nagikabilan ti papeles.
 No ket kayatmo latta nga agipan ti papeles, pangngaasi ta agsubli ka ken usarem ti baro a nagan.
 [[File:$1|thumb|center|$1]]',
-'file-exists-duplicate' => 'Daytoy a papeles ket duplikado kadagiti sumaganad a {{PLURAL:$1|papeles|dagiti papeles}}:',
-'file-deleted-duplicate' => 'Addaan ti papeles a kastoy ([[:$1]]) a naikkat idin.
-Kitaem kuma ti pakasaritaan a pinakaikkat ti papeles sakbay a mangirugi ka ti pinag-ipan.',
+'file-exists-duplicate' => 'Daytoy a papeles ket duplikado kadagiti sumaganad a {{PLURAL:$1|papeles|pappapeles}}:',
+'file-deleted-duplicate' => 'Ti papeles a kapadpada ti papeles a ([[:$1]]) ket naikkat idin.
+Kitaem kuma ti pakasaritaan a panakaikkat ti papeles sakbay a mangirugi ka ti pinag-ipan.',
 'uploadwarning' => 'Ballaag iti pinag-ipan',
-'uploadwarning-text' => 'Pangngaasi ta baliwam ti deskripsion ti papeles ken padasem manen.',
+'uploadwarning-text' => 'Pangngaasi a baliwam ti deskripsion ti papeles ken padasem manen.',
 'savefile' => 'Idulin ti papeles',
 'uploadedimage' => 'naipanen ti "[[$1]]"',
 'overwroteimage' => 'naipan ti baro a bersion ti "[[$1]]"',
@@ -1528,9 +1528,9 @@ Kitaem kuma ti pakasaritaan a pinakaikkat ti papeles sakbay a mangirugi ka ti pi
 'copyuploaddisabled' => 'Naiddep ti pinag-ipan iti URL.',
 'uploadfromurl-queued' => 'Dagiti pinag-ipan mo ket naikabil ti pinagurayan.',
 'uploaddisabledtext' => 'Napawilan ti pinag-ipan iti papeles.',
-'php-uploaddisabledtext' => 'Ti pag-ipan ti papeles ket naiddep idiay PHP.
-Panngaasi ta kitaem ti pannakaikabil ti pag-ipan ti papeles.',
-'uploadscripted' => 'Daytoy a papeles ket adda nagyan na a HTML wenno panagsurat a kodigo na baka agpakamali ti pinagbasa ti sapot a  pagbasabasa.',
+'php-uploaddisabledtext' => 'Ti pinag-ipan ti papeles ket naiddep idiay PHP.
+Panngaasi a kitaem ti pannakaikabil ti pinag-ipan ti papeles.',
+'uploadscripted' => 'Daytoy a papeles ket adda nagyan na a HTML wenno panagsurat a kodigo a mabalin nga agpakamali ti panagbasa ti sapot a  pagbasabasa.',
 'uploadvirus' => 'Addaan ti birus daytoy a papeles! Salaysay: $1',
 'uploadjava' => 'Daytoy a papeles ket ZIP a papeles nga adda nagyan na a Java .a kita ti papeles.
 Saan a mabalin ti pinag-ipan ti Java a papeles, ngamin ket palabsan da dagiti seguridad a pangrestrikto.',
@@ -1538,8 +1538,8 @@ Saan a mabalin ti pinag-ipan ti Java a papeles, ngamin ket palabsan da dagiti se
 'sourcefilename' => 'Taudan a nagan ti papeles:',
 'sourceurl' => 'Taudan ti URL:',
 'destfilename' => 'Pangipanan ti nagan ti papeles:',
-'upload-maxfilesize' => 'Pinakangato ti kadakkel ti papeles: $1',
-'upload-description' => 'Pinagipalpalawag ti papeles',
+'upload-maxfilesize' => 'Kadakkel a rukod ti papeles: $1',
+'upload-description' => 'Panagipalpalawag ti papeles',
 'upload-options' => 'Pagpilian ti pinag-ipan',
 'watchthisupload' => 'Bantayan daytoy a papeles',
 'filewasdeleted' => 'Ti papeles a nanaganan ti kastoy ket naipapan idin ken napaikkaten.
@@ -1562,10 +1562,10 @@ $1',
 Pangngaasi a kontaken ti [[Special:ListUsers/sysop|administrador]]',
 'upload-misc-error' => 'Di ammo a biddut ti panag-ipan',
 'upload-misc-error-text' => 'Adda saan nga ammo a biddut ti napasamak idi agdama a nag-ipan.
-Pangngaasinga a  kitaen ti URL ket umisu  ken maserrekan ken padasem manen.
+Pangngaasi a  kitaen ti URL ket umisu  ken maserrekan ken padasem manen.
 No ti parikut ket agsubli latta, kontaken ti [[Special:ListUsers/sysop|administrador]].',
 'upload-too-many-redirects' => 'Adu unay ti baw-ing daytoy nga URL',
-'upload-unknown-size' => 'Di ammo ti kadakkel na',
+'upload-unknown-size' => 'Di amammo ti kadakkelna',
 'upload-http-error' => 'Naka-adda ti biddut ti HTTP: $1',
 'upload-copy-upload-invalid-domain' => 'Ti kopia a panagipan ket saan a magun-od manipud iti daytoy a pagturayan.',
 
@@ -1573,11 +1573,11 @@ No ti parikut ket agsubli latta, kontaken ti [[Special:ListUsers/sysop|administr
 'backend-fail-stream' => 'Saan a maiwaig ti papeles $1.',
 'backend-fail-backup' => 'Saan a maidulin ti papeles $1.',
 'backend-fail-notexists' => 'Ti papeles a $1 ket awanen.',
-'backend-fail-hashes' => 'Saana maala dagiti papeles a hash tapno maipada.',
+'backend-fail-hashes' => 'Saan a maala dagiti papeles a hash tapno maipada.',
 'backend-fail-notsame' => 'Addaan ti saan a kapada tipapeles idiay $1.',
 'backend-fail-invalidpath' => '$1 ket imbalido a pagnaan ti pagidulinan.',
 'backend-fail-delete' => 'Saan a maikkat ti papeles $1.',
-'backend-fail-alreadyexists' => 'Ti papeles $1 ket aaddanen.',
+'backend-fail-alreadyexists' => 'Ti papeles $1 ket addan.',
 'backend-fail-store' => 'Saan a maidulin ti papeles $1 idiay $2.',
 'backend-fail-copy' => 'Saan a makopia ti papeles $1 idiay $2.',
 'backend-fail-move' => 'Saan a maiyalis ti papeles $1 idiay $2.',
@@ -1586,7 +1586,7 @@ No ti parikut ket agsubli latta, kontaken ti [[Special:ListUsers/sysop|administr
 'backend-fail-closetemp' => 'Saan a marikpan ti temporario a papeles.',
 'backend-fail-read' => 'Saan a mabasa ti papeles $1.',
 'backend-fail-create' => 'Saan a masuratan ti papeles $1.',
-'backend-fail-maxsize' => 'Saan a masuratan ti papeles $1 gapu ta dakdakkel ngem {{PLURAL:$2|maysa a byte|$2 a dagiti bytes}}.',
+'backend-fail-maxsize' => 'Saan a masuratan ti papeles $1 gapu ta dakdakkel ngem {{PLURAL:$2|maysa a byte|dagiti $2 a bytes}}.',
 'backend-fail-readonly' => 'Ti pagidulinan a kalikudan ti "$1" ket agdama a mabasa laeng. Ti rason a naited idi ket: "$2"',
 'backend-fail-synced' => 'Ti papeles "$1" ket bangking ti kasasaad na  iti kinauneg a pagidulinan ti kalikudan',
 'backend-fail-connect' => 'Saan a makaikapet idiay pagidulinan a kalikudan  "$1".',
@@ -1618,8 +1618,8 @@ Saan a matutup ti pinagkita ti seguridad na.',
 'uploadstash-summary' => 'Daytoy a panid ket mangted ti panagserrek ti papeles a napag-ipan (wenno nairugi nga ipan) ngem saan pay na naipablaak dita wiki. Dagitoy a papeles ket saan a makita ti sabsabali ngem laeng ti agar-aramat a nag-ipan kaniada.',
 'uploadstash-clear' => 'Dalusan dagiti na stash a papeles',
 'uploadstash-nofiles' => 'Awan ti na stash a papeles mo.',
-'uploadstash-badtoken' => 'Ti pinag-tungpal dayta nga aramid ket napaay, ngamin ta dagiti talek mo ti panag-urnos ket nagpaso. Padasem manen.',
-'uploadstash-errclear' => 'Ti pinagdalus kadagiti papeles ket napaay.',
+'uploadstash-badtoken' => 'Ti panag-tungpal dayta nga aramid ket napaay, ngamin ta dagiti talek mo ti panag-urnos ket nagpaso. Padasem manen.',
+'uploadstash-errclear' => 'Ti panagdalus kadagiti papeles ket napaay.',
 'uploadstash-refresh' => 'Pasadiwaam dagiti listaan ti papeles',
 'invalid-chunk-offset' => 'Imbalido ti maysa a supli',
 
@@ -1632,10 +1632,10 @@ Kitaen ti https://www.mediawiki.org/wiki/Manual:Image_Authorization .',
 'img-auth-badtitle' => 'Saan a makaaramid ti umisu a titulo a naggapu idiay "$1".',
 'img-auth-nologinnWL' => 'Saan ka a nakastrek ken ti "$1" ket awan idiay mabalin a listaan.',
 'img-auth-nofile' => 'Ti papeles "$1" ket awan dita.',
-'img-auth-isdir' => 'Agserserrek ka ti direktorio ti papeles "$1".
+'img-auth-isdir' => 'Agserserrekka ti direktorio ti papeles "$1".
 Ti iseserrek ti papeles ti mabalin laeng.',
 'img-auth-streaming' => 'Agwaig "$1".',
-'img-auth-public' => 'Ti opisio ti img_auth.php ket mangiruar kadagiti papeles manipud ti pribado a wiki.
+'img-auth-public' => 'Ti pamay-an ti img_auth.php ket mangiruar kadagiti papeles manipud ti pribado a wiki.
 Daytoy a wiki naipabalin a kas publiko a wiki.
 Para iti kangatuan a talinaay, nabaldado ti img_auth.php.',
 'img-auth-noread' => 'Ti agar-aramat ket awan ti pammalubos na nga agbasa "$1".',
@@ -1699,14 +1699,14 @@ No sagaten ti agar-aramat, dagiti laeng papeles a pinag-ipan ti agar-aramat ti k
 'filehist-comment' => 'Komentario',
 'filehist-missing' => 'Mapukpukaw ti papeles',
 'imagelinks' => 'Panagusar iti daytoy a papeles',
-'linkstoimage' => 'Ti sumaganad {{PLURAL:$1|a silpo ti panid|$1 a dagiti silpo ti panid}} ditoy a papeles:',
-'linkstoimage-more' => 'Adadu a $1 {{PLURAL:$1|paninillpo ti panid|panilpo ti pampanid}} ditoy a papeles.
-Dagiti sumaganad a listaan ket ipakita na ti {{PLURAL:$1|umona a panilpo ti panid|umuna a $1 paninilpo ti panid}} ditoy a papeles laeng.
+'linkstoimage' => 'Ti sumaganad {{PLURAL:$1|a silpo ti panid|kadagiti $1 a silpo ti panid}} ditoy a papeles:',
+'linkstoimage-more' => 'Adadu ngem $1 {{PLURAL:$1|a paninillpo ti panid|kadagiti panilpo ti pampanid}} ditoy a papeles.
+Ti sumaganad a listaan ket ipakita na {{PLURAL:$1|ti umona a panilpo ti panid|dagiti umuna a $1 panilpo ti panid}} ditoy a papeles laeng.
 Ti [[Special:WhatLinksHere/$2|kompleto a listaan]] ket addaan.',
 'nolinkstoimage' => 'Awan ti pampanid a nakasilpo iti daytoy a papeles.',
 'morelinkstoimage' => 'Kitaen ti [[Special:WhatLinksHere/$1|ad-adu pay a panilpo]] iti daytoy a papeles.',
 'linkstoimage-redirect' => '$1 (baw-ing ti papeles) $2',
-'duplicatesoffile' => 'Ti sumaganad a {{PLURAL:$1|papeles ket duplikado|$1 kadagiti papeles ket duplikado}} daytoy a papeles ([[Special:FileDuplicateSearch/$2|adu pay a salaysay]]):',
+'duplicatesoffile' => 'Ti sumaganad a {{PLURAL:$1|papeles ket duplikado|kadagiti $1 papeles ket duplikado}} daytoy a papeles ([[Special:FileDuplicateSearch/$2|adu pay a salaysay]]):',
 'sharedupload' => 'Daytoy a papeles ket naggapu idiay $1 ken mabalin a mausar kadagiti sabsabali a gandat.',
 'sharedupload-desc-there' => 'Daytoy a papeles ket naggapu idiay $1 ken mabalin a mausar kadagiti sabsabali a gandat.
 Pangngaasim a kitaem ti [$2 pagipalpalawag ti panid] ti adu pay a pakaammo.',
@@ -1725,28 +1725,28 @@ Baka kayatmo nga urnosen ti bukodna a deskripsionna idiay [$2 deskripsion ti pap
 # File reversion
 'filerevert' => 'Isubli ti $1',
 'filerevert-legend' => 'Isubli ti papeles',
-'filerevert-intro' => "Mangmangrugi ka ti agpasubli ti papeles '''[[Media:$1|$1]]''' iti [$4 bersion ti oras ket petsa nga $3, $2].",
+'filerevert-intro' => "Mangrugrugika nga agipasubli ti papeles '''[[Media:$1|$1]]''' iti [$4 bersion ti oras ket petsa nga $3, $2].",
 'filerevert-comment' => 'Rason:',
-'filerevert-defaultcomment' => 'Naisubli ti bersion sipud iti $2, $1',
+'filerevert-defaultcomment' => 'Naisubli ti bersion manipud idi $2, $1',
 'filerevert-submit' => 'Isubli',
-'filerevert-success' => "'''[[Media:$1|$1]]''' ket naipasubli idiay [$4 bersion ti oras ken petsa $3, $2].",
+'filerevert-success' => "Ti '''[[Media:$1|$1]]''' ket naipasubli idiay [$4 bersion ti oras ken petsa $3, $2].",
 'filerevert-badversion' => 'Awan ti napalubos a lokal a bersion daytoy a papeles nga adda naikkan dayta nga oras ken petsa.',
 
 # File deletion
 'filedelete' => 'Ikkaten ti $1',
 'filedelete-legend' => 'ikkaten ti papeles',
-'filedelete-intro' => "Makarugi ka ti agikkat ti '''[[Media:$1|$1]]''' ken dagiti amin a pakasaritaan na.",
-'filedelete-intro-old' => "Ikikatem ti bersion daytoy '''[[Media:$1|$1]]''' nangrugi idi [$4 $3, $2].",
+'filedelete-intro' => "Mangrugrugika nga agikkat ti '''[[Media:$1|$1]]''' ken mairaman amin a pakasaritaanna.",
+'filedelete-intro-old' => "Ikikatem ti bersion iti '''[[Media:$1|$1]]''' manipud idi [$4 $3, $2].",
 'filedelete-comment' => 'Rason:',
 'filedelete-submit' => 'Ikkaten',
 'filedelete-success' => "Naikkaten ti '''$1'''.",
-'filedelete-success-old' => "Ti bersion iti '''[[Media:$1|$1]]''' nakarugi idi $3, $2 ket naikkaten.",
+'filedelete-success-old' => "Ti bersion iti '''[[Media:$1|$1]]''' manipud idi $3, $2 ket naikkaten.",
 'filedelete-nofile' => "awan ti '''$1''' .",
 'filedelete-nofile-old' => "Awan ti nailebbeng a bersion ti '''$1''' nga addaan ti naited a kakitkita na.",
 'filedelete-otherreason' => 'Sabali/nayon a rason:',
 'filedelete-reason-otherlist' => 'Sabali a rason',
 'filedelete-reason-dropdown' => '*Kadawyan a rasrason ti pannakaikkat
-** Panagsalungasing iti karbengan ti pianagtulad
+** Panagsalungasing iti karbengan ti panagkopia
 ** Nadoble a papeles',
 'filedelete-edit-reasonlist' => 'Unosen ti rason ti panagikkat',
 'filedelete-maintenance' => 'Saan nga agnayon a naibaldado ti pinagikkat ken pinagisubli dagiti papeles iti dagdama a pinagsimpa.',
@@ -1763,13 +1763,13 @@ Ikabil: kita ti nagyan/apo a kita, e.g. <tt>image/jpeg</tt>.',
 'unwatchedpages' => 'Di mabambantayan a pampanid',
 
 # List redirects
-'listredirects' => 'Listaan dagiti panangibaw-ing',
+'listredirects' => 'Listaan dagiti baw-ing',
 
 # Unused templates
 'unusedtemplates' => 'Dagiti saan a nausar a plantilia',
-'unusedtemplatestext' => 'Daytoy a panid ket ilista na dagiti panid idiay {{ns:template}} a nagan ti lugar a saan a nairaman iti sabali a panid.
-Palagipem ti agkita kadagiti sabsabali a panilpo ti plantilia sakbay nga ikkatem ida.',
-'unusedtemplateswlh' => 'sabali pay a panpanilpo',
+'unusedtemplatestext' => 'Daytoy a panid ket ilistana dagiti panid idiay {{ns:template}} a nagan ti lugar a saan a nairaman iti sabali a panid.
+Laglagipem ti agkita kadagiti sabsabali a panilpo ti plantilia sakbay nga ikkatem ida.',
+'unusedtemplateswlh' => 'dagiti sabali pay a panilpo',
 
 # Random page
 'randompage' => 'Pugto a panid',
@@ -1777,7 +1777,7 @@ Palagipem ti agkita kadagiti sabsabali a panilpo ti plantilia sakbay nga ikkatem
 
 # Random redirect
 'randomredirect' => 'Pugto a baw-ing',
-'randomredirect-nopages' => 'Awan ti bawbaw-ing iti daytoy a nagan ti lugar "$1".',
+'randomredirect-nopages' => 'Awan dagiti baw-ing iti daytoy a nagan ti lugar "$1".',
 
 # Statistics
 'statistics' => 'Estadistika',
@@ -1788,13 +1788,13 @@ Palagipem ti agkita kadagiti sabsabali a panilpo ti plantilia sakbay nga ikkatem
 'statistics-header-hooks' => 'Estadistika a sabsabali',
 'statistics-articles' => 'Dagiti naglaon a panid',
 'statistics-pages' => 'Pampanid',
-'statistics-pages-desc' => 'Dagiti panid ti wiki, nairaman dagitoy kapatangan a panid, dagitoy baw-ing, ken dadduma pay',
+'statistics-pages-desc' => 'Dagiti amin a panid ti wiki, a mairaman dagiti tungtungan a panid, dagiti baw-ing, ken dadduma pay',
 'statistics-files' => 'Ti naipapan a papeles',
 'statistics-edits' => 'Dagit naurnos a panid manipud idi nairugi ti {{SITENAME}}',
-'statistics-edits-average' => 'Napipia nga urnos tungal maysa a panid',
+'statistics-edits-average' => 'Pagtengngaan nga urnos tungal maysa a panid',
 'statistics-views-total' => 'Dagiti dagup ti panagkita',
-'statistics-views-total-desc' => 'Saan a naikabil ti pagkita dagiti awan a panid ken dagiti espesial a panid',
-'statistics-views-peredit' => 'Mano a pagkita tunggal ti maysa nga urnos',
+'statistics-views-total-desc' => 'Saan a naikabil ti panagkita dagiti awan a panid ken dagiti espesial a panid',
+'statistics-views-peredit' => 'Mano a panagkita tunggal maysa nga urnos',
 'statistics-users' => 'Dagiti nakarehistro nga [[Special:ListUsers|agar-aramat]]',
 'statistics-users-active' => 'Dagiti nasiglat nga agar-aramat',
 'statistics-users-active-desc' => 'Dagiti agar-aramat a nagtungpal iti aramid idi napalubos nga {{PLURAL:$1|aldaw|$1 al-aldaw}}',
@@ -1806,36 +1806,36 @@ Palagipem ti agkita kadagiti sabsabali a panilpo ti plantilia sakbay nga ikkatem
 Ngem agpasilpo da kuma ti husto a topiko.<br />
 Ti panid ket matrato a kas panangilawlawag a panid no agusar ti plantilia a nakasilpo idiay [[MediaWiki:Disambiguationspage]]",
 
-'doubleredirects' => 'Dagiti naminduan a panangbaw-ing',
-'doubleredirectstext' => 'Daytoy a panid ket ilista na dagiti panid nga agbaw-ing kadagiti sabsabali a baw-ing a pampanid.
-Iti maysanga aray ket adda nagyan na kadagiti panilpo iti umuna ken maikadua a baw-ing, ken iti puntaan iti maikadua a baw-ing, nga isu ti "pudno" a puntaan ti panid, nga ti umuna a baw-ing ket isu ti ipatudo na.
+'doubleredirects' => 'Dagiti namindua a naibaw-ing',
+'doubleredirectstext' => 'Daytoy a panid ket ilistana dagiti panid nga agbaw-ing kadagiti sabsabali a baw-ing a pampanid.
+Iti tunggal maysa nga aray ket adda nagyanna kadagiti panilpo iti umuna ken maikadua a baw-ing, ken iti puntaan iti maikadua a baw-ing, nga isu ti "pudno" a puntaan ti panid, nga ti umuna a baw-ing ket isu ti ipatudona.
 <del>Nakurosan</del> dagita naikabil ket napadtuan.',
 'double-redirect-fixed-move' => 'Ti [[$1]] ket naiyalisen.
 Tattan ket naibaw-ing idiay [[$2]].',
 'double-redirect-fixed-maintenance' => 'Simsimpaen dagiti namindua a naibaw-ing a naggapo idiay [[$1]] nga ipan idiay [[$2]].',
-'double-redirect-fixer' => 'Pagsimpa ti baw-ing',
+'double-redirect-fixer' => 'Panagsimpa ti baw-ing',
 
-'brokenredirects' => 'Dagiti naputed a panangbaw-ing',
+'brokenredirects' => 'Dagiti naputed a baw-ing',
 'brokenredirectstext' => 'Dagitoy sumaganad a baw-ing ket napasilpo kadagiti awan a panid:',
 'brokenredirects-edit' => 'urnosen',
 'brokenredirects-delete' => 'ikkaten',
 
-'withoutinterwiki' => 'Dagiti panid nga awanan ti panilpo a pagsasao',
+'withoutinterwiki' => 'Dagiti panid nga awan ti silpona ti pagsasao',
 'withoutinterwiki-summary' => 'Dagitoy a pampanid ket saan a nakasilpo ti sabali a bersion ti pagsasao.',
 'withoutinterwiki-legend' => 'Pagpasaruno',
 'withoutinterwiki-submit' => 'Ipakita',
 
-'fewestrevisions' => 'Dagiti panid nga addaan ti kababassitan a panangbalbaliw',
+'fewestrevisions' => 'Dagiti panid nga adda kadagiti kabassitan a panangbalbaliw',
 
 # Miscellaneous special pages
-'nbytes' => '$1 {{PLURAL:$1|a byte|a bytes}}',
-'ncategories' => '$1 {{PLURAL:$1|kategoria|dagiti kategoria}}',
-'nlinks' => '$1 {{PLURAL:$1|panilpo|pampanilpo}}',
-'nmembers' => '$1 {{PLURAL:$1|kameng|kamkameng}}',
-'nrevisions' => '$1 {{PLURAL:$1|a pinagbaliwan|dagiti pinagbaliwan}}',
-'nviews' => '$1 {{PLURAL:$1|a panangkita|dagiti panangkita}}',
-'nimagelinks' => 'Inusar idiay $1 {{PLURAL:$1|panid|pampanid}}',
-'ntransclusions' => 'inusar idiay $1 {{PLURAL:$1|panid|pampanid}}',
+'nbytes' => '$1 {{PLURAL:$1|a byte|kadagiti byte}}',
+'ncategories' => '$1 {{PLURAL:$1|a kategoria|kadagiti kategoria}}',
+'nlinks' => '$1 {{PLURAL:$1|a panilpo|kadagiti panilpo}}',
+'nmembers' => '$1 {{PLURAL:$1|a kameng|kadagiti kameng}}',
+'nrevisions' => '$1 {{PLURAL:$1|a panagbalbaliw|kadagiti panagbalbaliw}}',
+'nviews' => '$1 {{PLURAL:$1|a panangkita|kadagiti panangkita}}',
+'nimagelinks' => 'Inusar idiay $1 {{PLURAL:$1|a panid|a pampanid}}',
+'ntransclusions' => 'inusar idiay $1 {{PLURAL:$1|a panid|a pampanid}}',
 'specialpage-empty' => 'Awan dagiti nagbanagan na daytoy a padamag.',
 'lonelypages' => 'Dagiti naulila a panid',
 'lonelypagestext' => 'Dagiti sumaganad a panid ket saan a nakasilpo idiay wenno naipakita kadagiti sabali a panid idiay {{SITENAME}}.',
@@ -1845,7 +1845,7 @@ Tattan ket naibaw-ing idiay [[$2]].',
 'uncategorizedtemplates' => 'Dagiti saan a nakategoria a plantilia',
 'unusedcategories' => 'Dagiti saan a nausar a kategoria',
 'unusedimages' => 'Dagiti saan a nausar a papeles',
-'popularpages' => 'Dagiti nalatak a panid',
+'popularpages' => 'Dagiti nadayeg a panid',
 'wantedcategories' => 'Dagiti makidkiddaw a kategoria',
 'wantedpages' => 'Dagiti makidkiddaw a panid',
 'wantedpages-badtitle' => 'Saan nga umisu a titulo idiay naikabil a pagbanagan: $1',
@@ -1874,26 +1874,26 @@ Tattan ket naibaw-ing idiay [[$2]].',
 'protectedtitlestext' => 'Dagitoy a titulo ket nasalakniban ti panakaaramid',
 'protectedtitlesempty' => 'Awan dagiti titulo a madama a nasalakniban iti dagitoy a parametro.',
 'listusers' => 'Listaan dagiti agar-aramat',
-'listusers-editsonly' => 'Ipakita laeng dagiti agar-aramat nga adda inurnos na',
+'listusers-editsonly' => 'Ipakita laeng dagiti agar-aramat nga adda inurnosda',
 'listusers-creationsort' => 'Ilasin no ania a petsa ti panakaaramid',
-'usereditcount' => '$1 {{PLURAL:$1|inurnos|dagiti inurnos}}',
+'usereditcount' => '$1 {{PLURAL:$1|nga inurnos|kadagiti inurnos}}',
 'usercreated' => '{{GENDER:$3|Inaramid}} idi $1 ti oras nga $2',
 'newpages' => 'Baro a pampanid',
 'newpages-username' => 'Nagan ti agar-aramat:',
 'ancientpages' => 'Dagiti kadaanan a panid',
 'move' => 'Iyalis',
 'movethispage' => 'Iyalis daytoy a panid',
-'unusedimagestext' => 'Dagiti sumaganad a papeles ket addaan ngem saanda a naikabil iti ania man a panid.
-Pangngaasi a laglagipen a dagiti sabali a pagsaadan ti apot ket makapanilpo ti papeles iti dagus a URL, ken isu pay a nailista da ditoy uray no saan da a naus-usar iti agdama.',
+'unusedimagestext' => 'Adda dagiti sumaganad a papeles ngem saanda a naikabil iti ania man a panid.
+Pangngaasi a laglagipen a dagiti sabali a sapot ti pagsaadan  ket makasilpoda ti papeles iti dagus a URL, ken isu pay a nailista da ditoy uray no saan da a naus-usar iti agdama.',
 'unusedcategoriestext' => 'Adda dagiti sumaganad a kategoria a panid, ngem awan ti sabali a panid wenno kategoria ti agus-usar kaniada.',
 'notargettitle' => 'Awan ti napuntaan',
-'notargettext' => 'Saan mo a nainagan ti puntaan a panid wenno agar-aramat ti mangtungpal daytoy nga opisio.',
+'notargettext' => 'Saanmo a nainagan ti puntaan a panid wenno agar-aramat ti mangtungpal daytoy nga opisio.',
 'nopagetitle' => 'Awan ti kasta a puntaan a panid',
 'nopagetext' => 'Awan ti puntaan a panid a nainaganam.',
 'pager-newer-n' => '{{PLURAL:$1|nabarbaro 1|dagiti nabarbaro $1}}',
 'pager-older-n' => '{{PLURAL:$1|nadadaan 1|nadadaan $1}}',
 'suppress' => 'Pakapansin',
-'querypage-disabled' => 'Daytoy a nangruna a panid ket nabaldado gapu kadagiti rason a pinagtungpal.',
+'querypage-disabled' => 'Daytoy a nangruna a panid ket nabaldado gapu kadagiti rason a panagtungpal.',
 
 # Book sources
 'booksources' => 'Nagtaudan ti liblibro',
@@ -1932,22 +1932,22 @@ Mapabassit mo ti pinagpakita no piliam ti kita ti listaan, ti nagan ti gar-arama
 'allpages-hide-redirects' => 'Ilemmeng dagiti baw-ing',
 
 # SpecialCachedPage
-'cachedspecial-viewing-cached-ttl' => 'Kitkitaenm ti naidulin a bersion iti daytoy a panid, nga addan ti kadaanan a $1.',
+'cachedspecial-viewing-cached-ttl' => 'Kitkitaem ti naidulin a bersion iti daytoy a panid, nga addan ti kadaanan a $1.',
 'cachedspecial-viewing-cached-ts' => 'Kitkitaem ti maysa a naidulin a bersion iti daytoy a panid, a baka daytoy ket saan a kompleto nga agpayso.',
 'cachedspecial-refresh-now' => 'Kitaen ti kinaudian.',
 
 # Special:Categories
 'categories' => 'Dagiti kategoria',
-'categoriespagetext' => 'Dagiti sumaganad a {{PLURAL:$1|nagyan ti kategoria|dagiti nagyan ti kategoria}} pampanid wenno midia.
-[[Special:UnusedCategories|Saan nga nausar nga kategoria]] ket saan nga maiparang ditoy.
-Kitaen met ti [[Special:WantedCategories|dagiti makidkiddaw a kategoria]].',
+'categoriespagetext' => 'Ti sumaganad a {{PLURAL:$1|kategoria ket aglaon|katkategoria ket aglaon}} kadagiti panid wenno midia.
+[[Special:UnusedCategories|Dagiti saan a nausar a kategoria]] ket saan a maiparang ditoy.
+Kitaen met [[Special:WantedCategories|dagiti makidkiddaw a kategoria]].',
 'categoriesfrom' => 'Ipakita dagiti kategoria a mangrugi iti:',
 'special-categories-sort-count' => 'paglalasinen babaen ti bilang',
 'special-categories-sort-abc' => 'paglalasinen a pang-abesedario',
 
 # Special:DeletedContributions
 'deletedcontributions' => 'Dagiti naikkat nga inararamid ti agar-aramat',
-'deletedcontributions-title' => 'Dagiti naikkat nga inararamid iti agar-aramat',
+'deletedcontributions-title' => 'Dagiti naikkat nga inararamid ti agar-aramat',
 'sp-deletedcontributions-contribs' => 'dagiti parawad',
 
 # Special:LinkSearch
@@ -1957,8 +1957,8 @@ Kitaen met ti [[Special:WantedCategories|dagiti makidkiddaw a kategoria]].',
 'linksearch-ok' => 'Biruken',
 'linksearch-text' => 'Ti naataap a tarheta a kas "*.wikipedia.org" ket mabalin nga usaren.
 Masapul ti kangatuan a pagturayan, a kaspagarigan "*.org".<br />
-Natapayaen a protokol: <tt>$1</tt> (saan mo nga inayun dagitoy iti panagbiruk mo) .',
-'linksearch-line' => '$1 ket nakasilpo idiay $2',
+Natapayaen a protokol: <tt>$1</tt> (saanmo nga inayon dagitoy iti panagbirukmo) .',
+'linksearch-line' => 'Ti $1 ket nakasilpo idiay $2',
 'linksearch-error' => 'Ti naatap a tarheta ket agparang laeng iti pinagrugi ti nagan ti agsangaili.',
 
 # Special:ListUsers
@@ -1969,9 +1969,9 @@ Natapayaen a protokol: <tt>$1</tt> (saan mo nga inayun dagitoy iti panagbiruk mo
 
 # Special:ActiveUsers
 'activeusers' => 'Listaan dagiti nasiglat nga agar-aramat',
-'activeusers-intro' => 'Daytoy ti listaan dagiti agar-aramat nga adda inararamidda idi napalabas $1 {{PLURAL:$1|nga aldaw|nga dagiti aldaw}}.',
-'activeusers-count' => '$1 {{PLURAL:$1|inurnos|dagiti inurnos}} idi kalpasan {{PLURAL:$3|nga aldaw|$3 dagiti aldaw}}',
-'activeusers-from' => 'Iparang dagiti agar-aramat mangrugi iti:',
+'activeusers-intro' => 'Daytoy ti listaan dagiti agar-aramat nga adda inararamidda kadagiti napalabas a $1 {{PLURAL:$1|nga aldaw|nga alaldaw}}.',
+'activeusers-count' => '$1 {{PLURAL:$1|nga inurnos|kadagiti inurnos}} idi kalpasan ti  {{PLURAL:$3|nga aldaw|$3 nga alaldaw}}',
+'activeusers-from' => 'Iparang dagiti agar-aramat mangrugi iti:',
 'activeusers-hidebots' => 'Ilemmeng dagiti bots',
 'activeusers-hidesysops' => 'Ilemmeng dagiti administrador',
 'activeusers-noresult' => 'Awan ti nasarakan nga agar-aramat.',
@@ -1982,34 +1982,34 @@ Natapayaen a protokol: <tt>$1</tt> (saan mo nga inayun dagitoy iti panagbiruk mo
 
 # Special:ListGroupRights
 'listgrouprights' => 'Dagiti karbengan ti bunggoy ti agar-aramat',
-'listgrouprights-summary' => 'Dagiti sumaganad a listaan ti bunggoy ti agar-aramat a naipalawag iti daytoy a wiki, a nairaman dagiti karbengan ti panagserrek da.
-Adda pay ngata [[{{MediaWiki:Listgrouprights-helppage}}|adu pay a pakaammo]] a maipapan kadagiti kabukbukod da a karbengan.',
+'listgrouprights-summary' => 'Dagiti sumaganad a listaan ti bunggoy ti agar-aramat a naipalawag iti daytoy a wiki, a nairaman dagiti karbengan ti panagserrekda.
+Adda pay ngata [[{{MediaWiki:Listgrouprights-helppage}}|adu pay a pakaammo]] a maipapan kadagiti kabukbukodda a karbengan.',
 'listgrouprights-key' => '* <span class="listgrouprights-granted">Naikkan ti karbengan</span>
 * <span class="listgrouprights-revoked">Naikkat ti karbengan</span>',
 'listgrouprights-group' => 'Bunggoy',
 'listgrouprights-rights' => 'Dagiti karbengan',
 'listgrouprights-helppage' => 'Help:Karbengan ti bunggoy',
 'listgrouprights-members' => '(listaan dagiti kameng)',
-'listgrouprights-addgroup' => 'Inayon {{PLURAL:$2|bunggoy|dagiti bunggoy}} : $1',
+'listgrouprights-addgroup' => 'Inayon {{PLURAL:$2|ti bunggoy|dagiti bunggoy}} : $1',
 'listgrouprights-removegroup' => 'Ikkaten {{PLURAL:$2|ti bunggoy|dagiti bunggoy}}: $1',
 'listgrouprights-addgroup-all' => 'Inayon amin dagiti bunggoy',
 'listgrouprights-removegroup-all' => 'Ikkatem amin dagiti bunggoy',
-'listgrouprights-addgroup-self' => 'Inayon {{PLURAL:$2|ti bunggoy|dagiti bunggoy}} ti bukod da a pakabilangan: $1',
-'listgrouprights-removegroup-self' => 'Ikkaten {{PLURAL:$2|ti bunggoy|dagiti bungoy}} ti bukod da a pakabilangan: $1',
-'listgrouprights-addgroup-self-all' => 'Inayon amin dagiti bunggoy ti bukod mo a pakabilangan',
+'listgrouprights-addgroup-self' => 'Inayon {{PLURAL:$2|ti bunggoy|dagiti bunggoy}} ti bukodda a pakabilangan: $1',
+'listgrouprights-removegroup-self' => 'Ikkaten {{PLURAL:$2|ti bunggoy|dagiti bungoy}} ti bukodda a pakabilangan: $1',
+'listgrouprights-addgroup-self-all' => 'Inayon amin dagiti bunggoy ti bukodmo a pakabilangan',
 'listgrouprights-removegroup-self-all' => 'Ikkatem amin dagiti bunggoy ti bukod a pakabilangan',
 
 # E-mail user
-'mailnologin' => 'Awan pagipatulodan a pagtaengan',
+'mailnologin' => 'Awan ti pagipatulodan a pagtaengan',
 'mailnologintext' => 'Masapul a [[Special:UserLogin|nakastrekka]] ken adda umisu nga e-surat a pagtaengan idiay [[Special:Preferences|kaykayatmo]] ti agipatulod ti e-surat kadagiti sabsabali nga agar-aramat.',
 'emailuser' => 'E-suratan daytoy nga agar-aramat',
 'emailpage' => 'E-suratan ti agar-aramat',
-'emailpagetext' => 'Mabalin mo nga usaren ti kinabuklan dita baba nga agipatulod ti e-surat a mensahe daytoy nga agar-aramat.
-Ti e-surat nga inkabil mo idiay  [[Special:Preferences|kakaykayatam]] ket agparang a kas "Naggapu" a pagtaengan ti e-surat, tapno ti nagipatulodam ket makasungbat kenka.',
+'emailpagetext' => 'Mabalinmo nga usaren ti kinabuklan dita baba nga agipatulod ti e-surat a mensahe daytoy nga agar-aramat.
+Ti e-surat nga inkabilmo idiay  [[Special:Preferences|kakaykayatam]] ket agparang a kas "Naggapu" a pagtaengan ti e-surat, tapno ti nagipatulodam ket makasungbat kenka.',
 'usermailererror' => 'Kita ti surat ket nangisubli ti biddut:',
 'defemailsubject' => '{{SITENAME}} e-surat naggapo ken ni "$1"',
-'usermaildisabled' => 'Saan mo a mabalin ti agipatulod ti e-surat',
-'usermaildisabledtext' => 'Saan mo a mabalin ti agipatulod ti e-surat kadagiti sabali nga agar-aramat ditoy a wiki',
+'usermaildisabled' => 'Saanmo a mabalin ti agipatulod ti e-surat',
+'usermaildisabledtext' => 'Saanmo a mabalin ti agipatulod ti e-surat kadagiti sabali nga agar-aramat ditoy a wiki',
 'noemailtitle' => 'Awan ti e-surat a pagtaengan',
 'noemailtext' => 'Ti agar-aramat ket saan a nagikabil ti umisu nga e-surat a pagtaengan.',
 'nowikiemailtitle' => 'Maiparit ti e-surat',
@@ -2019,13 +2019,13 @@ Ti e-surat nga inkabil mo idiay  [[Special:Preferences|kakaykayatam]] ket agpara
 'emailusername' => 'Nagan ti agar-aramat:',
 'emailusernamesubmit' => 'Ited',
 'email-legend' => 'Ipatulod ti e-surat ti sabali a {{SITENAME}} ti agar-aramat',
-'emailfrom' => 'Naggapo ken ni:',
+'emailfrom' => 'Naggapo kenni:',
 'emailto' => 'Para kenni:',
 'emailsubject' => 'Suheto:',
 'emailmessage' => 'Mensahe:',
 'emailsend' => 'Ipatulod',
 'emailccme' => 'E-surat iti kopia ti mensahek.',
-'emailccsubject' => 'Kopya ti mensahem ken ni $1: $2',
+'emailccsubject' => 'Kopia ti mensahem kenni $1: $2',
 'emailsent' => 'Naipatuloden ti e-surat',
 'emailsenttext' => 'Naipatuloden ti e-surat a mensahem.',
 'emailuserfooter' => 'Daytoy nga e-surat ket impatulod ni $1 kenni $2 iti "E-surat" a panagararamid idiay {{SITENAME}}',
@@ -2039,7 +2039,7 @@ Ti e-surat nga inkabil mo idiay  [[Special:Preferences|kakaykayatam]] ket agpara
 'mywatchlist' => 'Bambantayak',
 'watchlistfor2' => 'Para iti $1 $2',
 'nowatchlist' => 'Awan ti banag iti listaan dagiti bambantayam.',
-'watchlistanontext' => 'Pangngaasim ti $1 tapno makitam dagiti inurnos mo dita bambantayam.',
+'watchlistanontext' => 'Pangngaasim ti $1 tapno makitam dagiti inurnosmo dita bambantayam.',
 'watchnologin' => 'Saan a nakastrek',
 'watchnologintext' => 'Masapul a [[Special:UserLogin|nakastrekka]] tapno mabaliwam dagiti bambantayam a panid.',
 'addwatch' => 'Inayon iti bambantayan',
@@ -2056,12 +2056,12 @@ Mailistanto ditoy dagiti pinagsukat daytoy a panid iti masakbayan agraman ti kan
 'watchnochange' => 'Awan dagiti binambantayam ket naurnos dita panawen a naipakita.',
 'watchlist-details' => '{{PLURAL:$1|$1 panid|$1 dagiti panid}} a bambantayam, saan a mairaman dagiti panid ti tungtongan.',
 'wlheader-enotif' => '* Napakabaelan ti pakiammo ti e-surat.',
-'wlheader-showupdated' => "* Dagiti panid a nasukatan idi kinaudi a pinagbisitam ket naipakita iti '''napuskol'''",
+'wlheader-showupdated' => "* Dagiti panid a nasukatan manipud ti kinaudi a panagsarungkarmo ket naipakita iti '''napuskol'''",
 'watchmethod-recent' => 'kitkitaen dagiti kinaudi nga inurnos kadagiti bambantayan a panid',
 'watchmethod-list' => 'kitkitaen dagiti bambantayan a panid kadagiti kinaudi nga inurnos',
-'watchlistcontains' => 'Addaan ti listaan ti bambantayam iti $1 {{PLURAL:$1|a panid|a pampanid}}.',
+'watchlistcontains' => 'Ti listaan ti bambantayam ket aglaon ti $1 {{PLURAL:$1|a panid|a pampanid}}.',
 'iteminvalidname' => "Parikut iti banag '$1', imbalido a nagan...",
-'wlnote' => "Adda dita baba {{PLURAL:$1|ti kaudian a panagsukat|dagiti kaudian '''$1''' a pinagsukat}} iti naudi a {{PLURAL:$2|oras|'''$2''' oras}}, sipud idi $3, $4.",
+'wlnote' => "Adda dita baba {{PLURAL:$1|ti kaudian a panagsukat|dagiti kaudian '''$1''' a panagsukat}} iti naudi  {{PLURAL:$2|nga oras| a '''$2''' nga oras}}, manipud idi $3, $4.",
 'wlshowlast' => 'Ipakita dagiti naudi a $1 nga or-oras $2 nga al-aldaw $3',
 'watchlist-options' => 'Dagiti pagpilian ti listaan a bambantayan',
 
@@ -2077,7 +2077,7 @@ Mailistanto ditoy dagiti pinagsukat daytoy a panid iti masakbayan agraman ti kan
 'changed' => 'nasukatan',
 'created' => 'naaramid',
 'enotif_subject' => 'Ti {{SITENAME}} a panid a $PAGETITLE ket $CHANGEDORCREATED ni $PAGEEDITOR',
-'enotif_lastvisited' => 'Kitaen ti $1 para iti am-amin a pinagsukat sipud ti naudi nga isasarungkarmo.',
+'enotif_lastvisited' => 'Kitaen ti $1 para iti am-amin a panagsukat sipud ti naudi nga isasarungkarmo.',
 'enotif_lastdiff' => 'kitaen ti $1 tapno mabuya daytoy a pinagsukat.',
 'enotif_anon_editor' => 'di am-ammo nga agar-aramat $1',
 'enotif_body' => 'Nadungngo a $WATCHINGUSERNAME,
@@ -2120,7 +2120,7 @@ Ti makunkunam ken no masapulmo pay ti tulong:
 'exblank' => 'blanko ti panid',
 'delete-confirm' => 'Ikkaten ti "$1"',
 'delete-legend' => 'Ikkaten',
-'historywarning' => "'''Ballaag: ''' Ti panid a kayatmo nga ikkaten ket addaan iti pakasaritaan nga adda $1 {{PLURAL:$1|binaliwan|dagiti binaliwan}}:",
+'historywarning' => "'''Ballaag: ''' Ti panid a kayatmo nga ikkaten ket adda pakasaritaanna ti agarup a $1 {{PLURAL:$1|a binaliwan|kadagiti binaliwan}}:",
 'confirmdeletetext' => 'Ikkatemon ti maysa a panid agraman am-amin a pakasaritaanna.
 Pangngaasim ta pasingkedam a talaga a kayatmo nga aramiden daytoy, a maawatam ti bunga ti panangikkatmo, ken aramidem daytoy kas maiyannugot iti [[{{MediaWiki:Policy-url}}|annuroten]].',
 'actioncomplete' => 'Nalpasen a naaramid',
@@ -2130,18 +2130,18 @@ Kitaen ti $2 para iti panakrehistro dagiti naudi a naikkat.',
 'dellogpage' => 'Listaan ti panagikkat',
 'dellogpagetext' => 'Adda dita baba ti listaan dagiti kaudian a panangikkat.',
 'deletionlog' => 'listaan ti panagikkat',
-'reverted' => 'Naisubli iti immun-una a panamalbaliw',
+'reverted' => 'Naisubli iti immuna a panagbalbaliw',
 'deletecomment' => 'Rason:',
 'deleteotherreason' => 'Sabali/dadduma pay a rason:',
 'deletereasonotherlist' => 'Sabali a rason',
 'deletereason-dropdown' => '*Kadawyan a gapgapu dagiti pannakaikkat
 ** Kiddaw ti mannurat
-** Panaglabsing iti karbengan ti pinagpablaak
+** Panaglabsing iti karbengan ti panagipablaak
 ** Bandalismo',
-'delete-edit-reasonlist' => 'Urnosen dagiti rason ti pinagikkat',
-'delete-toobig' => 'Daytoy a panid ket dakkel ti pakasaritaan na, mabalin ket $1 {{PLURAL:a panagbaliwan|dagiti panagbaliwan}}.
+'delete-edit-reasonlist' => 'Urnosen dagiti rason ti panagikkat',
+'delete-toobig' => 'Daytoy a panid ket dakkel ti pakasaritaanna, sumurok  $1 {{PLURAL:a panagbaliwan|dagiti panagbaliwan}}.
 Ti panagikkat ti kastoy a pammpanid ket naparitan tapno mapawilan ti saan nga inkarkaro a panakadadael ti {{SITENAME}}.',
-'delete-warning-toobig' => 'Daytoy a panid ket addaan ti dakkel unay ti pakasaritaan na a panag-urnos, ti kaadu nga $1 {{PLURAL:$1|panagbaliw|dagiti panagbaliw}}.
+'delete-warning-toobig' => 'Daytoy a panid ket adda ti dakkel unay a pakasaritaan ti panag-urnos, ti kaadu nga $1 {{PLURAL:$1|panagbaliw|dagiti panagbaliw}}.
 Ti panagikkat ket madisturbo ti panagpataray ti database ti {{SITNAME}};
 agal-aluad ka a mangrugi.',
 
@@ -2150,22 +2150,22 @@ agal-aluad ka a mangrugi.',
 'rollback_short' => 'Isubli',
 'rollbacklink' => 'isubli',
 'rollbackfailed' => 'Napaay ti panangisubli',
-'cantrollback' => 'Saan a maisubli ti pinagurnos;
+'cantrollback' => 'Saan a maisubli ti panagurnos;
 ti naudi a nakaaramid ket iti laeng nagsurat daytoy a panid..',
-'alreadyrolled' => 'Saan a maipasubli ti kinaudi a pinagurnos iti [[:$1]] ni [[User:$2|$2]] ([[User talk:$2|talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);
-addaan sabali a naurnos wenno nagipasubli ti panid.
+'alreadyrolled' => 'Saan a maipasubli ti kinaudi a panagurnos iti [[:$1]] ni [[User:$2|$2]] ([[User talk:$2|talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);
+adda sabali a naurnos wenno nagipasubli ti panid.
 
-Ti kinaudi a nagurnos daytoy a panid ket ni [[User:$3|$3]] ([[User talk:$3|talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
-'editcomment' => "Ti pinagurnos a pakabuklan ket: \"''\$1''\".",
-'revertpage' => 'Insubli ti pinagurnos ni [[Special:Contributions/$2|$2]] ([[User talk:$2|pagtutungtongan]]), naisubli iti kaudian a pinagbaliw ni [[User:$1|$1]]',
-'revertpage-nouser' => 'Insubli ti pinagurnos ni (naikkat ti nagan ti agar-aramat) iti kinaudi a pinagbaliw ni [[User:$1|$1]]',
+Ti kinaudi a panagurnos daytoy a panid ket babaen ni [[User:$3|$3]] ([[User talk:$3|talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
+'editcomment' => "Ti panagurnos a pakabuklan ket: \"''\$1''\".",
+'revertpage' => 'Insubli ti panagurnos ni [[Special:Contributions/$2|$2]] ([[User talk:$2|pagtutungtongan]]), naisubli ti kinaudi a panagbaliw ni [[User:$1|$1]]',
+'revertpage-nouser' => 'Naisubli ti panagurnos ni (naikkat ti nagan ti agar-aramat) ti kinaudi a panagbaliw ni [[User:$1|$1]]',
 'rollback-success' => 'Naibabawi dagiti panag-urnos ni $1;
-naisubli manen iti naudi a panagbaliw ni $2.',
+naisubli manen ti naudi a panagbaliw ni $2.',
 
 # Edit tokens
 'sessionfailure-title' => 'Napaay ti gimong',
-'sessionfailure' => 'Addaan ti parikut ti gimong ti pinagserrek mo;
-daytoy nga aramid ket naibabawi a kas pagpawilan ti pinaghijack ti gimong.
+'sessionfailure' => 'Adda parikut ti gimong ti panagserrekmo;
+daytoy nga aramid ket naibabawi a kas pagpawilan ti panaghijack ti gimong.
 Agsubli ka ti naggapuam a panid, ikargam ti panid ken padasem manen.',
 
 # Protect
@@ -2187,14 +2187,14 @@ Kitaen ti [[Special:ProtectedPages|listaan kadagiti nasalakniban a panid]] ti li
 'protect_expiry_invalid' => 'Imbalido ti oras a panagpaso.',
 'protect_expiry_old' => 'Napalabasen ti oras ti panagpaso.',
 'protect-unchain-permissions' => 'Lukatan dagiti pagpilian ti salaknib',
-'protect-text' => "Mabalinmo a kitaen ken sukatan ti agpang ti saluad ditoy ti panid a '''$1'''.",
-'protect-locked-blocked' => "Saan mo a mabalin a sukatan dagiti kita ti salaknib no naserraan ka.
+'protect-text' => "Mabalinmo a kitaen ken sukatan ti agpang ti salaknib para iti panid ti '''$1'''.",
+'protect-locked-blocked' => "Saanmo a mabalin a sukatan dagiti kita ti salaknib no naserraan ka.
 Adda ditoy kadagiti agdama a kasasaad ti panid '''$1''':",
 'protect-locked-dblock' => "Ti kita ti salaknib ket saan a masukatan gapu ti agdama a kandado ti database.
 Adda ditoy kadagiti agdama a kasasaad ti panid '''$1''':",
 'protect-locked-access' => "Awan ti pammalubos ti pakabilangam a mangsukat kadagiti lessaad ti salaknib ti panid.
 Dagitoy dagiti agdama a kasasaad ti panid a '''$1''':",
-'protect-cascadeon' => 'Daytoy a panid ket nasalakniban iti agdama gapu ta nairaman iti sumaganad a {{PLURAL:$1|panid, nga addaan|pampanid, nga addaan}} iti sipapakat a salaknib ti amin-amin.
+'protect-cascadeon' => 'Daytoy a panid ket agdama a  nasalakniban gapu ta nairaman kadagiti sumaganad a {{PLURAL:$1|panid, nga addaan|pampanid, nga addaan}} ti sipapakat a salaknib ti amin-amin.
 Mabalinmo a sukatan ti lessaad ti salaknib daytoy a panid, ngem saanna a tignayen ti salaknib nga amin-amin.',
 'protect-default' => 'Mabalin amin nga agar-aramat',
 'protect-fallback' => 'Masapul ti "$1" a pammalubos',
@@ -2205,10 +2205,10 @@ Mabalinmo a sukatan ti lessaad ti salaknib daytoy a panid, ngem saanna a tignaye
 'protect-expiring-local' => 'agpaso $1',
 'protect-expiry-indefinite' => "inggana't inggana",
 'protect-cascade' => 'Salakniban dagiti pampanid a nairaman iti daytoy a panid (babaen ti sariap a salaknib)',
-'protect-cantedit' => 'Saanmo a masuktan ti lessaad ti salaknib daytoy a panid, ta awananka iti pammalubos nga agurnos',
+'protect-cantedit' => 'Saanmo a masuktan ti lessaad ti salaknib iti daytoy a panid, gapu ta awan ti pammalubosmo nga agurnos iti daytoy.',
 'protect-othertime' => 'Sabali nga oras:',
 'protect-othertime-op' => 'sabali nga oras',
-'protect-existing-expiry' => 'Daytoy agpaso nga oras: $3, $2',
+'protect-existing-expiry' => 'Ti adda a panagpaso ti oras: $3, $2',
 'protect-otherreason' => 'Sabali/dadduma a rason:',
 'protect-otherreason-op' => 'Sabali a rason',
 'protect-dropdown' => '*Kadawyan a rason ti panagsalaknib
@@ -2231,31 +2231,31 @@ Mabalinmo a sukatan ti lessaad ti salaknib daytoy a panid, ngem saanna a tignaye
 'restriction-upload' => 'Pang-ipan',
 
 # Restriction levels
-'restriction-level-sysop' => 'sibubukel a nasalakniban',
+'restriction-level-sysop' => 'napno a nasalakniban',
 'restriction-level-autoconfirmed' => 'nasalakniban bassit',
 'restriction-level-all' => 'ania man a lessaad',
 
 # Undelete
 'undelete' => 'Kitaen dagiti naikkat a pampanid',
 'undeletepage' => 'Kitaen ken isubli dagiti naikkat a panid',
-'undeletepagetitle' => "'''TI sumaganad ket buklen dagiti naikkat a pinagbaliw ti [[:$1|$1]]'''.",
+'undeletepagetitle' => "'''TI sumaganad ket buklen dagiti naikkat a panagbaliw ti [[:$1|$1]]'''.",
 'viewdeletedpage' => 'Kitaen dagiti naikkat a pampanid',
-'undeletepagetext' => 'Dagiti sumaganad {{PLURAL:a panid ket naikkaten ngem|$1 dagiti panid ket naikkaten ngem}} addaan da pay idiay a nailebbeng ken maipasubli pay.
-Ti lebbeng ket mabalin a mapaminsanan a dalusan.',
+'undeletepagetext' => 'Ti sumaganad a {{PLURAL:$1|panid ket naikkaten ngem|$1 pampanid ket naikkaten ngem}} adda pay naarkibo ken mabalin pay a maipasubli .
+Ti arkibo ket mabalin a sagpaminsan a madalusan.',
 'undelete-fieldset-title' => 'Ipasubli dagiti pinagbaliwan',
-'undeleteextrahelp' => "Ti pinagisubli dagiti amin a pakasaritaan ti panid, ibatim a saan nga nakur-itan dagita kahon ken agtakla ti '''''{{int:undeletebtn}}'''''.
+'undeleteextrahelp' => "Ti panagisubli dagiti amin a pakasaritaan ti panid, ibatim a saan nga nakur-itan dagita kahon ken agtakla ti '''''{{int:undeletebtn}}'''''.
 Ti agaramid ti napilian a pagisubli, ikur-it dagita napilim kadagiti kahon ti kayatmo nga ipasubli, ken agtakla ti '''''{{int:undeletebtn}}'''''.",
-'undeleterevisions' => '$1 {{PLURAL:$1|pinagbaliwan|dagiti pinagbaliwan}} ti nailebben',
+'undeleterevisions' => '$1 {{PLURAL:$1|a pinagbaliwan|kadagiti pinagbaliwan}} ti nailebben',
 'undeletehistory' => 'No ipasublim daytoy a panid, amin dagiti pinagbaliwan ket maipasubli idiay pakasaritaan.
 Ket no adda baro a panid a kanagnagan na a naaramid ti napalabas a pinagikkat, dagiti naipasubli a pinagbaliwan ket agparang idiay napalabas a pakasaritaan.',
-'undeleterevdel' => 'Ti pinagikkat ket saan a maaramid no agbanag iti rabaw ti panid, wenno ti pinagbaliwan ti papeles ket maikkatan ti bassit.
+'undeleterevdel' => 'Ti panagikkat ket saan a maaramid no agbanag iti rabaw ti panid, wenno ti pinagbaliwan ti papeles ket maikkatan ti bassit.
 Iti kastoy a kaso, masapul nga ikkatem ti kur-it wenno ikkatem ti lemmeng dagiti kabarbaro a naikkat a pinagbaliwan.',
 'undeletehistorynoadmin' => 'Daytoy a panid ket naikkaten.
-Ti rason ti pinagikkat ket naipakita ti pinakabuklan dita baba, ken dagita detalye ti agar-aramat a nagpabaliw ditoy a panid sakbay a naikkat.
-Ti usto a testo ti nabaliwan a panagbaliw ket adda kadagiti administrador laeng.',
-'undelete-revision' => 'Naikkat ti pinagbaliwan a $1 (sipud $4, iti $5) ni $3:',
-'undeleterevision-missing' => 'Imbalido wenno napukaw a pinagbaliw.
-Addaan ka ngata ti madi a panilpo, wenno ti pinagbaliwan ket naipasubli wenno naikkat manipud idiay nailebbeng.',
+Ti rason ti panagikkat ket naipakita ti pinakabuklan dita baba, ken dagita dsalaysay ti agar-aramat a nagpabaliw ditoy a panid sakbay a naikkat.
+Ti husto a testo ti nabaliwan a panagbaliw ket adda kadagiti administrador laeng.',
+'undelete-revision' => 'Naikkat ti binaliwan a $1 (manipud idi $4, idi $5) babaen ni $3:',
+'undeleterevision-missing' => 'Imbalido wenno napukaw a panagbaliw.
+Addaan ka ngata ti madi a panilpo, wenno ti panagbaliw ket naipasubli wenno naikkat manipud idiay nailebbeng.',
 'undelete-nodiff' => 'Awan ti nasarakan a kallabes a binaliwan.',
 'undeletebtn' => 'Isubli',
 'undeletelink' => 'kitaen/isubli',
@@ -2263,9 +2263,9 @@ Addaan ka ngata ti madi a panilpo, wenno ti pinagbaliwan ket naipasubli wenno na
 'undeletereset' => 'Isubli',
 'undeleteinvert' => 'Baliktaden ti napili',
 'undeletecomment' => 'Rason:',
-'undeletedrevisions' => '{{PLURAL:$1|1 binaliwan|$1 dagiti binaliwan}} ti naisubli',
-'undeletedrevisions-files' => '{{PLURAL:$1|1 binaliwan|$1 dagiti binaliwan}} ken {{PLURAL:$2|1 file|$2 dagiti papeles}} ti naisubli',
-'undeletedfiles' => '{{PLURAL:$1|1 a papeles|$1 a papeles}} ti naisubli',
+'undeletedrevisions' => '{{PLURAL:$1|1 a  binaliwan|dagiti $1 a binaliwan}} ti naisubli',
+'undeletedrevisions-files' => '{{PLURAL:$1|1 a binaliwan|dagiti $1 a binaliwan}} ken {{PLURAL:$2|1 a papeles|dagiti $2 a papeles}} ti naisubli',
+'undeletedfiles' => '{{PLURAL:$1|1 a papeles|dagiti $1 a papeles}} ti naisubli',
 'cannotundelete' => 'Napaay ti panagikkat;
 adda ngata immuna a nagikkat ti panid.',
 'undeletedpage' => "'''Naisublin ti $1'''
@@ -2284,10 +2284,10 @@ Binsiren ti [[Special:Log/delete|listaan ti naik-ikkat]] para iti listaan dagiti
 Baka laeng ket naikkaten.',
 'undelete-error' => 'Ballaag ti panagisubli ti pinagikkat ti panid',
 'undelete-error-short' => 'Biddut ti panakaikkat ti papeles: $1',
-'undelete-error-long' => 'Adda nasarakan a biddut idi pinasubli ti pinagikkat ti papeles:
+'undelete-error-long' => 'Adda nasarakan a biddut idi pinasubli ti panagikkat ti papeles:
 
 $1',
-'undelete-show-file-confirm' => 'Sigurado ka a kayatmo ti mangkita ti naikkat a baliwan ti papeles "<nowiki>$1</nowiki>" a naggapu idi $2 ti oras nga $3?',
+'undelete-show-file-confirm' => 'Sigurado  a kayatmo ti mangkita ti naikkat a nabaliwan ti papeles "<nowiki>$1</nowiki>" a naggapu idi $2 ti oras nga $3?',
 'undelete-show-file-submit' => 'Wen',
 
 # Namespace form on various pages
@@ -2295,7 +2295,7 @@ $1',
 'invert' => 'Baliktaden ti napili',
 'tooltip-invert' => 'Ikur-it daytoy a kahon ti panagilemmeng kadagiti sinukatan a panid iti uneg ti napili a nagan ti lugar (ken ti nairaman a nagan ti lugar no naikur-it)',
 'namespace_association' => 'Nairaman a nagan ti lugar',
-'tooltip-namespace_association' => 'Ikur-it daytoy a kahon ti pinagiraman ti kapatangan wenno suheto ti nagan ti lugar a nairaman kadagiti napili a nagan ti lugar.',
+'tooltip-namespace_association' => 'Ikur-it daytoy a kahon ti panagiraman ti kapatangan wenno suheto ti nagan ti lugar a nairaman kadagiti napili a nagan ti lugar.',
 'blanknamespace' => '(Umuna)',
 
 # Contributions
@@ -2315,8 +2315,8 @@ $1',
 'sp-contributions-deleted' => 'dagiti naikkat nga inararamid ti agar-aramat',
 'sp-contributions-uploads' => 'dagiti pang-ipan',
 'sp-contributions-logs' => 'listaan',
-'sp-contributions-talk' => 'makipatang',
-'sp-contributions-userrights' => 'mang-iggem dagiti kaberngan ti agar-aramat',
+'sp-contributions-talk' => 'tungtungan',
+'sp-contributions-userrights' => 'panagtaripatu kadagiti kaberngan ti agar-aramat',
 'sp-contributions-blocked-notice' => 'Naserraan tatta daytoy nga agar-aramat.
 Ti naudi a listaan ti panakaserra ket adda dita baba ta usaren a reperensia:',
 'sp-contributions-blocked-notice-anon' => 'Daytoy nga IP a pagtaengan ket naserraan.
@@ -2333,14 +2333,14 @@ Ti naudi a listaan ti panakaserra ket adda dita baba ta usaren a reperensia:',
 'linkshere' => "Nakasilpo ti sumaganad a pampanid iti '''[[:$1]]''':",
 'nolinkshere' => "Awan ti pampanid a nakasilpo iti '''[[:$1]]'''.",
 'nolinkshere-ns' => "Awan dagiti panid a nakasilpo idiay '''[[:$1]]''' iti napili a nagan ti lugar.",
-'isredirect' => 'ibaw-ing ti panid',
+'isredirect' => 'baw-ing a panid',
 'istemplate' => 'mairaman',
 'isimage' => 'panilpo ti papeles',
 'whatlinkshere-prev' => '{{PLURAL:$1|kallabes|kallabes $1}}',
 'whatlinkshere-next' => '{{PLURAL:$1|sumaruno|sumaruno $1}}',
 'whatlinkshere-links' => '← silsilpo',
 'whatlinkshere-hideredirs' => '$1 a panangibaw-ing',
-'whatlinkshere-hidetrans' => '$1 dagiti mairaman',
+'whatlinkshere-hidetrans' => '$1 a mairamraman',
 'whatlinkshere-hidelinks' => '$1 a pampanilpo',
 'whatlinkshere-hideimages' => '$1 a pampanilpo ti imahen',
 'whatlinkshere-filters' => 'Dagiti sagat',
@@ -2368,8 +2368,8 @@ Ikkan ti nainaganan a rason dita baba (kas pagarigan, dakamaten ti maysa a panid
 ** Ab-abuso kadagiti sabsabali a pakabilangan
 ** Saan a maawat a nagan ti agar-aramat',
 'ipb-hardblock' => 'Iparit kadagiti nakastrek nga agar-aramat ti agpabaliw iti naggapo ditoy nga IP a pagtaengan',
-'ipbcreateaccount' => 'Serraan ti panagparnuay iti pakabilangan',
-'ipbemailban' => 'Serraan ti agar-aramat nga agipatulod ti e-surat',
+'ipbcreateaccount' => 'Pawilan ti panagpartuat iti pakabilangan',
+'ipbemailban' => 'Pawilan ti agar-aramat nga agipatulod ti e-surat',
 'ipbenableautoblock' => 'Automatiko ti serra ti naudi nga IP a pagtaengan nga inusar daytoy nga agar-aramat, ken dagiti sumaruno nga IP a pagtaengan a padasen da nga agpabaliw',
 'ipbsubmit' => 'Serraan daytoy nga agar-aramat',
 'ipbother' => 'Sabali nga oras:',
@@ -2378,15 +2378,15 @@ Ikkan ti nainaganan a rason dita baba (kas pagarigan, dakamaten ti maysa a panid
 'ipbotherreason' => 'Sabali/nayon a rason:',
 'ipbhidename' => 'Ilemmeng ti nagan ti agar-aramat kadagiti listaan ken inurnos',
 'ipbwatchuser' => 'Bantayan ti panid ti agar-ramat ken panid ti tungtongan daytoy nga agar-aramat',
-'ipb-disableusertalk' => 'No naserran da iparit daytoy nga agar-aramat ti agbaliw kadagiti bukodda a kapatangan a panid',
+'ipb-disableusertalk' => 'Pawilan daytoy nga agar-aramat nga agurnos kadagiti bukodda a tungtungan a panid no naserraan',
 'ipb-change-block' => 'Serraan manen ti agar-aramat kadagitoy a disso',
 'ipb-confirm' => 'Pasingkedan ti serra',
 'badipaddress' => 'Imbalido nga IP a pagtaengan',
 'blockipsuccesssub' => 'Balligi ti panangserra',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] ket naserraanen.<br />
 Kitaen ti [[Special:BlockList|listaan ti lapden nga IP ]] tapno marepaso dagiti serra.',
-'ipb-blockingself' => 'Mangrugrugi ka nga agserra kenka! Sigurado nga kayatmo nga aramiden daytoy?',
-'ipb-confirmhideuser' => 'Mangrugrugi ka ti mangserra ti agar-aramat nga addaan ti napabalin na nga "ilemmeng ti agar-aramat". Iddeppen na ti nagan daytoy nga agar-aramat kadagiti amin a listaan ken dagiti naikabkabil ti listaan. Sigurado ka a kasta ti kayatmo?',
+'ipb-blockingself' => 'Mangrugrugika nga agserra kenka! Sigurado nga kayatmo nga aramiden daytoy?',
+'ipb-confirmhideuser' => 'Mangrugrugika ti mangserra ti agar-aramat nga adda ti napabalinna nga "ilemmeng ti agar-aramat". Iddeppenna ti nagan daytoy nga agar-aramat kadagiti amin a listaan ken dagiti naikabkabil ti listaan. Sigurado ka a kasta ti kayatmo?',
 'ipb-edit-dropdown' => 'Urnosen dagiti rason ti panagserra',
 'ipb-unblock-addr' => 'Lukatan ti serra ni $1',
 'ipb-unblock' => 'Lukatan ti serra ti nagan ti agar-aramat wenno IP a pagtaengan',
@@ -2395,32 +2395,32 @@ Kitaen ti [[Special:BlockList|listaan ti lapden nga IP ]] tapno marepaso dagiti
 'unblockip' => 'Lukatan ti serra ti agar-aramat',
 'unblockiptext' => 'Usaren ti kinabuklan dita baba ti pinagisubli ti pinagserrek nga agsurat ti napalubos a naserran nga IP a pagtaengan wenno nagan ti agar-aramat.',
 'ipusubmit' => 'Ikkaten daytoy a serra',
-'unblocked' => 'Naikkat ti panagserra ni [[User:$1|$1]]',
+'unblocked' => 'Naikkat ti panakaserra ni [[User:$1|$1]]',
 'unblocked-range' => '$1 naikkaten ti serra na',
 'unblocked-id' => 'Naikkaten ti serra ni $1',
 'blocklist' => 'Dagiti naserraan nga agar-aramat',
 'ipblocklist' => 'Dagiti naserraan nga agar-aramat',
 'ipblocklist-legend' => 'Biruken ti naserraan nga agar-aramat',
 'blocklist-userblocks' => 'Ilemmeng dagiti serra ti pakabilangan',
-'blocklist-tempblocks' => 'Ilemmeng dagiti saan nga agnanayon a serra',
+'blocklist-tempblocks' => 'Ilemmeng dagiti temporario a serra',
 'blocklist-addressblocks' => 'Ilemmeng ti maysa a serra dagiti IP',
-'blocklist-rangeblocks' => 'Ilemming dagiti nasakup a serra',
+'blocklist-rangeblocks' => 'Ilemmeng dagiti nasakup a serra',
 'blocklist-timestamp' => 'Petsa ken oras',
 'blocklist-target' => 'Puntaan',
 'blocklist-expiry' => 'Agpaso',
-'blocklist-by' => 'Ti naserraan nga admin',
+'blocklist-by' => 'Ti nagserra nga admin',
 'blocklist-params' => 'Parametro ti serra',
 'blocklist-reason' => 'Rason',
 'ipblocklist-submit' => 'Biruken',
 'ipblocklist-localblock' => 'Serra a lokal',
-'ipblocklist-otherblocks' => 'Sabali {{PLURAL:$1|serra|dagiti serra}}',
+'ipblocklist-otherblocks' => 'Sabali {{PLURAL:$1|a serra|kadagiti serra}}',
 'infiniteblock' => "inggana't inggana",
 'expiringblock' => 'agpaso no $1 ti oras nga $2',
 'anononlyblock' => 'di am-ammo laeng',
 'noautoblockblock' => 'nabaldado ti auto a serra',
 'createaccountblock' => 'naserraan ti pannakapartuat ti pakabilangan',
 'emailblock' => 'naserraan ti e-surat',
-'blocklist-nousertalk' => 'saan na a mabalin nga urnosen ti kapatang na a panid',
+'blocklist-nousertalk' => 'saanna a mabalin nga urnosen ti bukod a tungtungan a panid',
 'ipblocklist-empty' => 'Awan nagyan ti listaan ti serra.',
 'ipblocklist-no-results' => 'Ti kiniddaw nga IP a pagtaengan wenno nagan ti agar-aramat ket saan a naserraan',
 'blocklink' => 'serraan',
@@ -2431,21 +2431,21 @@ Kitaen ti [[Special:BlockList|listaan ti lapden nga IP ]] tapno marepaso dagiti
 'autoblocker' => 'Na-auto a serra ngamin ket ti IP a pagtaengan ket damdama nga inusar ni "[[User:$1|$1]]".
 Ti rason nga inted ti $1\'s serra ket: "$2"',
 'blocklogpage' => 'Listaan ti naserraan',
-'blocklog-showlog' => 'Daytoy nga agar-aramat ket naserraan idin.
+'blocklog-showlog' => 'Daytoy nga agar-aramat ket dati a naserraan.
 Ti listaan ti serra ket naikabil dita baba tapno mausar a reperensia:',
-'blocklog-showsuppresslog' => 'Daytoy nga agar-aramat ket naserraan ken nailemmeng idin.
+'blocklog-showsuppresslog' => 'Daytoy nga agar-aramat ket dati a naserraan ken nailemmeng.
 Ti listaan ti napasardeng ket naikabil dita baba tapno mausar a reperensia:',
-'blocklogentry' => 'naserraan ni [[$1]] nga addaan ti oras ti panagpaso nga $2 $3',
-'reblock-logentry' => 'sinukatan ti panakaserra ni [[$1]] ti agtapos nga oras nga $2 $3',
-'blocklogtext' => 'Daytoy ket listaan ti agar-aramat kadagiti pinagserra ken panaglukat ti serra
+'blocklogentry' => 'naserraan ni [[$1]] nga adda ti oras a panagpaso iti $2 $3',
+'reblock-logentry' => 'sinukatan ti panakaserra para kenni [[$1]] nga adda ti oras a panagpaso iti  $2 $3',
+'blocklogtext' => 'Daytoy ket listaan ti agar-aramat kadagiti panagserra ken panaglukat ti serra
 Dagiti na-atomatiko a panakaserra ti IP a pagtaengan ket saan a nailista.
 Kitaen ti [[Special:BlockList|Listaan ti lapden nga IP]] para iti listaan kadagiti agdama a naiparit a pagpataray ken dagiti serra.',
 'unblocklogentry' => 'lukatan ti serra ni $1',
 'block-log-flags-anononly' => 'dagiti di am-ammo nga agar-aramat laeng',
-'block-log-flags-nocreate' => 'naisardeng ti pinagaramid iti pakabilangan',
+'block-log-flags-nocreate' => 'nabaldado ti panagpartuat ti pakabilangan',
 'block-log-flags-noautoblock' => 'naiddep ti auto-serra',
 'block-log-flags-noemail' => 'naserraan ti e-surat',
-'block-log-flags-nousertalk' => 'saan na a mabalin nga urnosen ti tungtunganna a panid',
+'block-log-flags-nousertalk' => 'saanna a mabalin nga urnosen ti bukod a tungtungan a panid',
 'block-log-flags-angry-autoblock' => 'napabalin ti napasayaat nga auto-serra',
 'block-log-flags-hiddenname' => 'nailemmeng ti nagan ti agar-aramat',
 'range_block_disabled' => 'Ti abilidad ti administrador nga agaramid ti naabutan a serra ket naiddep.',
@@ -2454,7 +2454,7 @@ Kitaen ti [[Special:BlockList|Listaan ti lapden nga IP]] para iti listaan kadagi
 'ipb_hide_invalid' => 'Saan a mapasardeng daytoy a pakabilangan; adda ngata adu unay nga inurnos na.',
 'ipb_already_blocked' => ' "$1" ket naserraan',
 'ipb-needreblock' => '$1 ket naseraan. Kayatmo a sukatan ti serra na?',
-'ipb-otherblocks-header' => 'Sabali {{PLURAL:$1|naserraan|dagiti naserraan}}',
+'ipb-otherblocks-header' => 'Sabali {{PLURAL:$1|a naserraan|kadagiti naserraan}}',
 'unblock-hideuser' => 'Saanmo a maisubli ti serra daytoy nga agar-aramat, nailemmengen ti nagan daytoy nga agar-aramat.',
 'ipb_cant_unblock' => 'Biddut: ID $1 ti serra a nabirukan. Baka nalukatan ti serranan.',
 'ipb_blocked_as_range' => 'Ballag: Ti IP a pagtaengan $1 ket saan a dagus a naserraan ken saan a malukatan ti serra na.
@@ -2463,14 +2463,14 @@ Ngem, naserran a kas paset ti naabutan $2, a mabalin a malukatan ti serra na.',
 'ip_range_toolarge' => 'Dagiti serra a nasakup a dakdakkel ngem /$1 ket saan a maipalubos.',
 'blockme' => 'Serraannak',
 'proxyblocker' => 'Proxy a panagserra',
-'proxyblocker-disabled' => 'Daytoy a pinagaramid ket nabaldado.',
+'proxyblocker-disabled' => 'Daytoy a panagaramid ket nabaldado.',
 'proxyblockreason' => 'Ti IP a pagtaengam ket naserraan ngamin ket daytoy ket nakalukat a proxy.
 Pangngaasi ta kontakem ti agit-ited ti serbisio ti Internet mo wenno teknikal a tapayaen ti kaurnusam ken ibagam kaniada ti nakaro a talinaay a parikut.',
 'proxyblocksuccess' => 'Nalpasen.',
 'sorbsreason' => 'Ti IP a pagtaengam ket nakalista a kasla "nalukatan a proxy" idiay DNSBL nga inusar ti {{SITNAME}}.',
 'sorbs_create_account_reason' => 'Ti IP a pagtaengam ket nakalista a kasla "nalukatan proxy" idiay DNSBL nga inusar ti {{SITNAME}}.
-Saan ka a makaaramid ti pakabilangan',
-'cant-block-while-blocked' => 'Saan mo a maserraan dagiti sabali nga agar-aramat no naserraan ka met.',
+Saanka a makaaramid ti pakabilangan',
+'cant-block-while-blocked' => 'Saanmo a maserraan dagiti sabali nga agar-aramat no naserraan ka met.',
 'cant-see-hidden-user' => 'Ti agar-aramat a kayatmo a serraan ket naserraan ken nailemmeng.
 Ket awan met ti karbengam nga agilemming ti agar-aramat, saan mo a makita wenno mabaliwan ti serra ti agar-aramat.',
 'ipbblocked' => 'Saan mo a mabalin ti agserra wenno agikkat ti serra ti sabali nga agar-aramat, ngamin ket naserraan ka met.',
@@ -2481,7 +2481,7 @@ Ket awan met ti karbengam nga agilemming ti agar-aramat, saan mo a makita wenno
 'unlockdb' => 'Lukatan ti database',
 'lockdbtext' => 'Ti panagserra ti database ket makaikkat ti abilidad kadagiti amin nga agar-aramat ti agurnos kadagiti panid, ti panagsukat dagiti kaykayat da, ti panagurnos dagiti bambantayan da, ken dagiti sabsabali pay a masapul ti panagsukat idiay database.
 Pangngaasi ta pasingkedam daytoy a kayatmo nga aramiden, ken luktam dayta database no malpas kan nga agsimpa.',
-'unlockdbtext' => 'Ti pinaglukat ti database ket mangipasubli ti abilidad dagiti amin nga agar-aramat ti pinagurnos kadagiti panid, ti pinagsukat dagiti kaykayat da, ti pinagurnos dagiti bambantaya da, ken dagiti amin a makasapul ti pinagsukat idiay database.
+'unlockdbtext' => 'Ti panaglukat ti database ket mangipasubli ti abilidad dagiti amin nga agar-aramat ti panagurnos kadagiti panid, ti panagsukat dagiti kaykayat da, ti panagurnos dagiti bambantayanda, ken dagiti amin a makasapul ti panagsukat idiay database.
 Pangngaasi ta pasingkedam a daytoy ti kayatmo nga aramiden.',
 'lockconfirm' => 'Wen, talaga a kayatko a balunetan ti database.',
 'unlockconfirm' => 'Wen, talaga a kayatko a balunetan ti database.',
@@ -2524,39 +2524,39 @@ Kayat a sawen daytoy a mabalinmo a suktan ti nagan ti maysa a panid manipud iti
 '''Ballaag!'''
 Mabalin a maysa daytoy a nakaro ken saan a bigla a panagbaliw iti maysa a nasikat a panid;
 pangngaasim ta pasingkedam a maawatam ti ibunga daytoy sakbay nga agtuloyka a mangbaliw.",
-'movepagetalktext' => "Ti mainaig a panid-tungtongan ket giddato a maiyalis a karamanna '''malaksid:'''
-*No addan sigud nga adda linaonna a panid-tungtongan iti babaen ti baro a nagan, wenno
+'movepagetalktext' => "Ti mainaig a tungtungan ti panid ket giddato a maiyalis a karamanna '''malaksid:'''
+*No addan sigud nga awan linaonna a tungtungan ti panid babaen ti baro a nagan, wenno
 *No ikkatem ti kur-itna ti kahon iti baba.
 
-Kadagitoy a kaso, masapul nga iyalisr wenno itiponmo a manual ti panid no kayatmo.",
+Kadagitoy a kaso, masapul nga iyalis wenno itiponmo a manual ti panid no kayatmo.",
 'movearticle' => 'Iyalis ti panid:',
 'moveuserpage-warning' => "'''Ballaag:''' Mangrugrugi ka nga agiyalis ti panid ti agar-aramat. Pangngaasi a laglapipen a ti panid ket isu laeng ti mabalin nga iyalis ken ti agar-aramat ket ''saan'' a managanan.",
 'movenologin' => 'Saan a nakastrek',
 'movenologintext' => 'Masapul a nakarehistroka nga agar-aramat ken [[Special:UserLogin|nakastrek]] tapno makaiyalis iti panid.',
-'movenotallowed' => 'Awanka iti pammalubos mo nga agiyalis iti pampanid.',
-'movenotallowedfile' => 'Awanka iti pammalubos mo nga agiyalis iti papeles.',
+'movenotallowed' => 'Awan ti pammalubosmo nga agiyalis kadagiti panid.',
+'movenotallowedfile' => 'Awan ti pammalubosmo nga agiyalis kadagiti papeles.',
 'cant-move-user-page' => 'Awan ti pammalubos mo nga agiyalis kadagiti panid ti agar-aramat (mabalin dagiti apo ti panid).',
 'cant-move-to-user-page' => 'Awan ti pammalubos mo nga agiyalis ti panid idiay panid ti agar-aramat (mabalin dagiti apo ti panid ti agar-aramat).',
 'newtitle' => 'Iti baro a titulo:',
 'move-watch' => 'Bantayan daytoy a panid',
 'movepagebtn' => 'Iyalis ti panid',
-'pagemovedsub' => 'Balligi ti pinangiyalis',
+'pagemovedsub' => 'Balligi ti panangiyalis',
 'movepage-moved' => 'Naiyalis ti \'\'\'"$1" iti "$2"\'\'\'',
-'movepage-moved-redirect' => 'Adda met baw-ing a naramiden.',
-'movepage-moved-noredirect' => 'Ti pinagaramid ti baw-ing ket napasardeng.',
-'articleexists' => 'Addan panid nga addaan iti kasta a nagan, wenno ti nagan a pinilim ket saan a mabalin.
-Pangngaasim ta mangpilika iti sabali a nagan.',
-'cantmove-titleprotected' => 'Saan mo a maiyalis ti panid ditoy nga lugar, ngamin ket ti baro a titulo ket nasalaknibanti pinnakaaramid na.',
+'movepage-moved-redirect' => 'Napartuaten ti maysa a baw-ing.',
+'movepage-moved-noredirect' => 'Ti panagaramid ti baw-ing ket napasardeng.',
+'articleexists' => 'Adda panid nga adda ti kasta a nagan, wenno ti nagan a pinilim ket saan a mabalin.
+Pangngaasim a mangpilika iti sabali a nagan.',
+'cantmove-titleprotected' => 'Saanmo a maiyalis ti panid iti daytoy a lokasion, ngamin ket ti baro a titulo ket nasalakniban para iti panakapartuat.',
 'talkexists' => "'''Sibaballigi a naiyalis ti panid, nupay kasta saan a maiyalis ti panid ti tungtongan gapu ta addan panid-tungtongan iti baro a titulo.
 Pangngaasim ta i-manualmo lattan a pagtiponem ida.'''",
 'movedto' => 'naiyalis iti',
 'movetalk' => 'Iyalis ti mainaig a panid ti tungtongan',
-'move-subpages' => 'Iyalis dagiti apo ti panid (pangato nga $1)',
-'move-talk-subpages' => 'Iyalis dagiti apo ti panid nga kapatangan a panid (pangato nga $1)',
-'movepage-page-exists' => 'Ti panid a $1 ket addaan ken saan a mautomatiko a suratan manen.',
+'move-subpages' => 'Iyalis dagiti apo ti panid (aginggana ti $1)',
+'move-talk-subpages' => 'Iyalis dagiti apo ti panid iti tungtungan ti panid (aginggana ti $1)',
+'movepage-page-exists' => 'Ti panid ti $1 ket addan ken saan a mautomatiko a suratan manen.',
 'movepage-page-moved' => 'Naiyalis ti panid a $1 iti $2.',
 'movepage-page-unmoved' => 'Saan a maiyalis ti panid $1 iti $2.',
-'movepage-max-pages' => 'Ti kangato ti $1 {{PLURAL:$1|panid|dagiti panid}} ket naiyalis ken awan ti automatiko a maiyalis.',
+'movepage-max-pages' => 'Ti kaadu iti $1 a {{PLURAL:$1|panid|pampanid}} ket naiyalis ken awanen ti automatiko a maiyalis.',
 'movelogpage' => 'Listaan ti naiyalis',
 'movelogpagetext' => 'Adda dita baba ti listaan dagiti naiyalis a pampanid.',
 'movesubpage' => '{{PLURAL:$1|Apo ti panid|Dagiti apo ti panid}}',
@@ -2571,12 +2571,12 @@ Kayatmo nga ikkaten  tapno makaiyalis ka?',
 'delete_and_move_confirm' => 'Wen, ikkatenen ti panid',
 'delete_and_move_reason' => 'Naikkat tapno mawayaan ti panaka-iyalis idiay "[[$1]]"',
 'selfmove' => 'Ti titulo ti taudan ken ti pangipanan ket agpadpada;
-saan mo a maiyalis ti panid ti isu met laeng a panid.',
+saanmo a maiyalis ti panid ti isu met laeng a panid.',
 'immobile-source-namespace' => 'Saan a maiyalis dagiti panid idiay nagan ti lugar  "$1"',
 'immobile-target-namespace' => 'Saan a maiyalis dagiti panid idiay nagan ti lugar "$1"',
 'immobile-target-namespace-iw' => 'Ti panilpo nga interwiki ket saan na mabalin nga iyalis.',
 'immobile-source-page' => 'Saan a mabalin nga iyalis daytoy a panid.',
-'immobile-target-page' => 'Saan a maiyalis dita a papanan na a titulo.',
+'immobile-target-page' => 'Saan a maiyalis dita a papananna a titulo.',
 'imagenocrossnamespace' => 'Saan a maiyalis ti papeles idiay saan a papeles a nagan ti lugar',
 'nonfile-cannot-move-to-file' => 'Saan a maiyalis ti saan a papeles idiay papeles a nagan a lugar',
 'imagetypemismatch' => 'Ti baro a pagpaatiddog ti papeles ket saan nga agpada ti kita na',
@@ -2584,29 +2584,29 @@ saan mo a maiyalis ti panid ti isu met laeng a panid.',
 'fix-double-redirects' => 'Agpabaro ti amin a baw-ing nga agtudtudo ti kasigud a titulo',
 'move-leave-redirect' => 'Mangibati ka ti baw-ing',
 'protectedpagemovewarning' => "'''Ballaag:''' Daytoy a panid ket nasalakniban tapno dagiti laeng agar-aramat nga addaan ti gundaway nga administrador ti  makaiyalis.
-Ti nakaudi a naikabil a listaan ket adda iti baba tapno pag reperensia:",
-'semiprotectedpagemovewarning' => "''Pakaammo:''' Nasaluadan daytoy a panid tapno dagiti laeng nakarehistro nga agar-aramat ti makaiyalis itoy.
-Ti nakaudi a naikabil a listaan ket adda iti baba tapno mausar a reperensia:",
+Ti kinaudi a naikabil ti listaan ket adda dita baba tapno mausar a reperensia:",
+'semiprotectedpagemovewarning' => "'''Pakaammo:''' Nasalakniban daytoy a panid tapno dagiti laeng nakarehistro nga agar-aramat ti makaiyalis daytoy.
+Ti kinaudi a naikabil ti listaan ket adda iti baba tapno mausar a reperensia:",
 'move-over-sharedrepo' => '== Addaan ti papeles ==
-[[:$1]] addaan idiay pagbingayan a nagikabilan. Ti pinagiyalis ti papeles iti titulo nga itoy ket paawanen na ti pagbingayan a papeles.',
+[[:$1]] addaan idiay pagbingayan a nagikabilan. Ti panagiyalis ti papeles iti titulo nga itoy ket paawanen na ti pagbingayan a papeles.',
 'file-exists-sharedrepo' => 'Ti napilim a nagan ti papeles ket naususaren idiay pagbingayan a nagikabilan.
 Pangngaasi ta agpili ka ti sabali a nagan.',
 
 # Export
 'export' => 'Agipan dagiti panid',
-'exporttext' => 'Maipan mo ti testo ken pakasaritaan ti inurnos iti maysa a panid wenno pampanid a nabalkut ti XML.
+'exporttext' => 'Maipanmo ti testo ken pakasaritaan ti inurnos iti maysa a panid wenno pampanid a nabalkut ti XML.
 Daytoy ket mabalin a maikabil iti sabali a wiki nga agususar ti MediaWiki nga usaren ti [[Special:Import|pinagala ti panid]].
 
 Ti pinagipan ti panid, ikabil ti titulo dita kahon ti teksto dita baba, maysa a titulo iti maysa a linia, ken agpili ka no ti kayatmo ket ti agdama a pinagbaliw ken amin nga daan a pinagbalbaliw, nga addaan ti linia ti pakasaritaan ti pampanid, wenno ti agdama a pinagbaliw nga addaan ti pakaammo a maipapan ti kinaudi a pinagurnos.
 
-No iti kinaudi a kaso mabalin mo nga usaren ti panilpo, a kaspagarigan [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] para iti panid "[[{{MediaWiki:Mainpage}}]]".',
+No iti kinaudi a kaso mabalinmo nga usaren ti panilpo, a kas pagarigan [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] para iti panid "[[{{MediaWiki:Mainpage}}]]".',
 'exportall' => 'Ipan amin a pampanid',
-'exportcuronly' => 'Iraman laeng ti agdadama pinagbaliwan, saan a ti amin a pakasaritaan',
+'exportcuronly' => 'Iraman laeng ti kinaudi a panagbaliw, saan a ti napno a pakasaritaan',
 'exportnohistory' => "----
 '''Palagip:''' Ti pagipapan dagiti punno a pakasaritaan dagiti panid iti daytoy a kinabuklan ket nabaldado gapu dagiti pinakalaing ti pinagandar a rason.",
 'exportlistauthors' => 'Iraman ti amin a listaan kadagiti nagaramid iti tunggal a maysa a panid',
 'export-submit' => 'Agipan',
-'export-addcattext' => 'Nayunan dagiti panid a naggapu idiay kategoria:',
+'export-addcattext' => 'Agnayon kadagiti panid a naggapu idiay kategoria:',
 'export-addcat' => 'Inayon',
 'export-addnstext' => 'Nayunan dagiti panid a naggapu idiay nagan ti lugar:',
 'export-addns' => 'Inayon',
@@ -2617,10 +2617,10 @@ No iti kinaudi a kaso mabalin mo nga usaren ti panilpo, a kaspagarigan [[{{#Spec
 # Namespace 8 related
 'allmessages' => 'Dagiti mensahe ti sistema',
 'allmessagesname' => 'Nagan',
-'allmessagesdefault' => 'Naisigud a testo ti mensahe',
+'allmessagesdefault' => 'Kasisigud a testo ti mensahe',
 'allmessagescurrent' => 'Agdama a testo ti mensahe',
-'allmessagestext' => 'Daytoy ti listaan dagiti mensahe ti sistema nga addaan idiay MediaWiki nagan ti lugar.
-Pangngaasi ta bisitaeen ti [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] ken [//translatewiki.net translatewiki.net] no kayatmo ti mangted kadagiti pinagpatarus ti MediaWiki.',
+'allmessagestext' => 'Daytoy ti listaan dagiti mensahe ti sistema a magun-od idiay MediaWiki a nagan ti lugar.
+Pangngaasi a bisitaeen ti [//www.mediawiki.org/wiki/Localisation MediaWiki Localisation] ken [//translatewiki.net translatewiki.net] no kayatmo ti agparawad kadagiti sapasap a panagipatarus ti MediaWiki.',
 'allmessagesnotsupportedDB' => "Saan a mausar daytoy a panid ngamin ket ti '''\$wgUseDatabaseMessages''' ket nabaldado.",
 'allmessages-filter-legend' => 'Sagat',
 'allmessages-filter' => 'Sagaten ti naiduma a estado:',
@@ -2634,7 +2634,7 @@ Pangngaasi ta bisitaeen ti [//www.mediawiki.org/wiki/Localisation MediaWiki Loca
 # Thumbnails
 'thumbnail-more' => 'Padakkelen',
 'filemissing' => 'Mapukpukaw ti papeles',
-'thumbnail_error' => 'Biddut ti panagaramid iti bassit nga imahen: $1',
+'thumbnail_error' => 'Biddut ti panagaramid ti bassit nga imahen: $1',
 'djvu_page_error' => 'Ti DjVu a panid ket saan a nasakup',
 'djvu_no_xml' => 'Saan a naala ti XML iti DjVu a papeles',
 'thumbnail-temp-create' => 'Saan a makaaramid ti temporario a bassit a papeles',
@@ -2649,7 +2649,7 @@ Pangngaasi ta bisitaeen ti [//www.mediawiki.org/wiki/Localisation MediaWiki Loca
 'import' => 'Agala dagiti panid',
 'importinterwiki' => 'Agala ti transwiki',
 'import-interwiki-text' => 'Agpili ka ti wiki ken titulo ti panid nga alaem.
-Ti pinagbaliwan dagiti petsa ken dagiti nagan ti mannurat ket maibati a kinasigud.
+Dagit panagbaliw a petsa ken dagiti nagan ti mannurat ket maipreserba.
 Amin a transwiki nga alaem ket mailista idiay [[Special:Log/import|listaan ti pinagala]].',
 'import-interwiki-source' => 'Taudan ti wiki/panid:',
 'import-interwiki-history' => 'Kopiaen amin dagiti bersion ti pakasaritaan daytoy a panid',
@@ -2658,11 +2658,11 @@ Amin a transwiki nga alaem ket mailista idiay [[Special:Log/import|listaan ti pi
 'import-interwiki-namespace' => 'Pangipanan ti nagan ti lugar:',
 'import-upload-filename' => 'Nagan ti papeles:',
 'import-comment' => 'Komentario:',
-'importtext' => 'Pangngaasi ta ipanmo ti papeles a naggapu iti nagtaudan a wiki nga agusar ti [[Special:Export|agipan]].',
+'importtext' => 'Pangngaasi nga ipanmo ti papeles a naggapu iti nagtaudan a wiki nga agusar ti [[Special:Export|agipan]].',
 'importstart' => 'Agal-ala dagiti panid...',
-'import-revision-count' => '$1 {{PLURAL:$1|a pinagbaliwan|dagiti pinagbaliwan}}',
+'import-revision-count' => '$1 {{PLURAL:$1|a pinagbaliwan|kadagiti pinagbaliwan}}',
 'importnopages' => 'Awan dagiti panid ti maala.',
-'imported-log-entries' => 'Naala $1 {{PLURAL:$1|nailista|dagiti nailista}}.',
+'imported-log-entries' => 'Naala ti $1 {{PLURAL:$1|a nailista|kadagiti nailista}}.',
 'importfailed' => 'Napaay ti panagala: <nowiki>$1</nowiki>',
 'importunknownsource' => 'Di amammo a kita ti taudan ti innala',
 'importcantopen' => 'Saan a maluktan ti innala a papeles',
@@ -2680,23 +2680,23 @@ Paset laeng ti papeles ti napag-ipan.',
 Awan ti saan nga agnayon a polder.',
 'import-parse-failure' => 'Napaay ti pinagala ti XML parse',
 'import-noarticle' => 'Awan ti panid a maaala!',
-'import-nonewrevisions' => 'Amin a pinagbaliwan ket naala da idi.',
+'import-nonewrevisions' => 'Amin a panagbalbaliw ket dati a naala.',
 'xml-error-string' => '$1 iti linia $2, tukol $3 (byte $4): $5',
 'import-upload' => 'Ipan ti XML data',
 'import-token-mismatch' => 'Napukaw ti gimong ti data.
 Pangngaasi ta padasem manen.',
 'import-invalid-interwiki' => 'Saan a makaala dita naited a wiki.',
-'import-error-edit' => 'Ti panid a "$1" ket saan a naala ngamin ket saan mo a mabalin nga urnosen.',
-'import-error-create' => 'Ti panid a "$1" ket saan a naala ngamin ket saan mo a mabalin nga aramiden.',
-'import-error-interwiki' => 'Ti panid "$1" ket saan a naala ngamin ket ti nagan ket nailasin para iti ruar a panagsilpo (interwiki).',
-'import-error-special' => 'Ti panid "$1" ket saan a naala ngamin ket bukod ti  espesial a nagan a lugar a saan nga agpalubos ti pampanid.',
-'import-error-invalid' => 'Ti panid "$1" ket saan a naala ngamin ket ti nagan ket imbalido.',
+'import-error-edit' => 'Ti panid ti "$1" ket saan a naala ngamin ket saan mo a mabalin nga urnosen.',
+'import-error-create' => 'Ti panid ti "$1" ket saan a naala ngamin ket saan mo a mabalin nga aramiden.',
+'import-error-interwiki' => 'Ti panid ti "$1" ket saan a naala ngamin ket ti nagan ket nailasin para iti ruar a panagsilpo (interwiki).',
+'import-error-special' => 'Ti panid ti "$1" ket saan a naala ngamin ket bukod ti  espesial a nagan a lugar a saan nga agpalubos ti pampanid.',
+'import-error-invalid' => 'Ti panid ti "$1" ket saan a naala ngamin ket ti nagan ket imbalido.',
 
 # Import log
 'importlogpage' => 'Alaen ti listaan',
-'importlogpagetext' => 'Ti taripatuen a pinagala dagiti panid nga addaan ti pakasaritaan na nga urnosen kadagiti sabsabali a wiki.',
+'importlogpagetext' => 'Ti administratibo a panagala dagiti panid nga adda ti pakasaritaanna nga urnos kadagiti sabsabali a wiki.',
 'import-logentry-upload' => 'innala ti [[$1]] iti papeles a pinag-ipan',
-'import-logentry-upload-detail' => '$1 {{PLURAL:$1|pinagbaliwan|dagiti pinagbaliwan}}',
+'import-logentry-upload-detail' => '$1 {{PLURAL:$1|a pinagbaliwan|kadagiti pinagbaliwan}}',
 'import-logentry-interwiki' => 'nai-transwiki ti $1',
 'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|pinagbaliwan|dagiti pinagbaliwan}} manipud iti $2',
 
@@ -2708,7 +2708,7 @@ Pangngaasi ta padasem manen.',
 'javascripttest-pagetext-unknownframework' => 'Di amamo a pagsubsubokan a tabas "$1".',
 'javascripttest-pagetext-frameworks' => 'Pangngaasi nga agpili ti maysa kadagiti sumaganad a pagsubokan a tabas: $1',
 'javascripttest-pagetext-skins' => 'Agpili ti kudil a pangipatarayan ti pagsubokan:',
-'javascripttest-qunit-intro' => 'Kitaen [ $1 dukomentasion ti panagsubok] idiay mediawiki.org.',
+'javascripttest-qunit-intro' => 'Kitaen ti [ $1 dukomentasion ti panagsubok] idiay mediawiki.org.',
 'javascripttest-qunit-heading' => 'MediaWiki JavaScript QUnit test suite',
 
 # Tooltip help for the actions
@@ -2719,11 +2719,11 @@ Pangngaasi ta padasem manen.',
 'tooltip-pt-preferences' => 'Dagiti kaykayatmo',
 'tooltip-pt-watchlist' => 'Listaan dagiti panid a sipsiputem ti panagsuksutda',
 'tooltip-pt-mycontris' => 'Listaan dagiti naaramidmo',
-'tooltip-pt-login' => 'Maisingasing ti inka koma panag-serrek; nupay kasta ket saan a maipapilit',
-'tooltip-pt-anonlogin' => 'Maisingasing ti inka koma panag-serrek; nupay kasta ket saan a maipapilit',
+'tooltip-pt-login' => 'Maisingasing ti inka panag-serrek; nupay kasta, daytoy ket saan a maipapilit',
+'tooltip-pt-anonlogin' => 'Maisingasing ti inka panag-serrek; nupay kasta, daytoy ket saan a maipapilit',
 'tooltip-pt-logout' => 'Rummuar',
-'tooltip-ca-talk' => 'Pagtutungtongan maipapan iti linaon ti panid',
-'tooltip-ca-edit' => 'Mabalinmo a balbaliwan daytoy a panid. Pangngaasim ta aramaten ti buton ti ipadas sakbay nga idulinmo ti panid.',
+'tooltip-ca-talk' => 'Pagtutungtongan a maipapan ti linaon ti panid',
+'tooltip-ca-edit' => 'Mabalinmo nga urnosen daytoy a panid. Pangngaasi nga aramatem ti buton ti panagipadas sakbay nga agidulin',
 'tooltip-ca-addsection' => 'Mangirugi ti baro a paset',
 'tooltip-ca-viewsource' => 'Nasalakniban daytoy a panid.
 Mabalinmo a kitaen ti taudanna.',
@@ -2736,24 +2736,24 @@ Mabalinmo a kitaen ti taudanna.',
 'tooltip-ca-watch' => 'Inayon daytoy a panid kadagiti bambantayam',
 'tooltip-ca-unwatch' => 'Ikkatem daytoy a panid kadagiti bambantayam',
 'tooltip-search' => 'Biruken idiay {{SITENAME}}',
-'tooltip-search-go' => 'Inka idiay panid no adda kapada na a nagan',
+'tooltip-search-go' => 'Inka idiay panid nga adda kastoy a naganna no adda',
 'tooltip-search-fulltext' => 'Birukem dagiti panid daytoy a testo',
 'tooltip-p-logo' => 'Sarungkaran ti umuna a panid',
 'tooltip-n-mainpage' => 'Sarungkaran ti umuna a panid',
 'tooltip-n-mainpage-description' => 'Sarungkaran ti umuna a panid',
-'tooltip-n-portal' => 'Maipapan iti gandat no ania ti maaramidam, no sadino ti pakasarak kadagiti bambanag',
+'tooltip-n-portal' => 'Maipapan ti gandat, ti aniaman a maaramidam, no sadino ti pagbirukam kadagiti banbanag',
 'tooltip-n-currentevents' => 'Agsapul iti lugar ti likud a pakaammo kadagiti agdama a paspasamak',
 'tooltip-n-recentchanges' => 'Listaan dagiti naudi a sinukatan iti wiki.',
 'tooltip-n-randompage' => 'Mangiparuar iti pugto a panid',
 'tooltip-n-help' => 'Ti lugar a pakasapulan.',
 'tooltip-t-whatlinkshere' => 'Listaan ti am-amin a pampanid ti wiki a nakasilpo ditoy',
 'tooltip-t-recentchangeslinked' => 'Kinaudian a sinukatan  dagiti panid a nakasilpo ditoy a panid',
-'tooltip-feed-rss' => 'RSS na pakan para iti daytoy a panid',
+'tooltip-feed-rss' => 'RSS a pakan para iti daytoy a panid',
 'tooltip-feed-atom' => 'Atom a pakan para itoy a panid',
 'tooltip-t-contributions' => 'Kitaen ti listaan dagiti naaramidan daytoy nga agar-aramat',
-'tooltip-t-emailuser' => 'Patulodan iti e-surat daytoy nga agar-aramat',
+'tooltip-t-emailuser' => 'Patulodan ti e-surat daytoy nga agar-aramat',
 'tooltip-t-upload' => 'Agipan iti papeles',
-'tooltip-t-specialpages' => 'Listaan ti am-amin nga espesial a pampanid',
+'tooltip-t-specialpages' => 'Listaan ti amin nga espesial a pampanid',
 'tooltip-t-print' => 'Maimaldit a bersion ti panid',
 'tooltip-t-permalink' => 'Permanente a silpo idiay binaliwan daytoy a panid',
 'tooltip-ca-nstab-main' => 'Kitaen ti naglaon a panid',
@@ -2768,13 +2768,13 @@ Mabalinmo a kitaen ti taudanna.',
 'tooltip-ca-nstab-category' => 'Kitaen ti panid ti kategoria',
 'tooltip-minoredit' => 'Markaan daytoy a kas bassit a panag-urnos',
 'tooltip-save' => 'Idulin dagiti sinukatam',
-'tooltip-preview' => 'Ipadas dagiti sinukatam, pangngaasim ta usarem daytoy sakbay nga idulinmo ti panid!',
+'tooltip-preview' => 'Ipadas dagiti sinukatam, pangngaasimnga usarem daytoy sakbay nga idulinmo ti panid!',
 'tooltip-diff' => 'Ipakita no ania dagiti sinukatan nga inaramidmo iti testo',
 'tooltip-compareselectedversions' => 'Kitaen ti naggidiatan dagiti dua a napili a bersion daytoy a panid.',
-'tooltip-watch' => 'Inayon daytoy a panid iti listaan dagiti bambantayam',
+'tooltip-watch' => 'Inayon daytoy a panid idiay listaan dagiti bambantayam',
 'tooltip-watchlistedit-normal-submit' => 'Ikkaten dagiti titulo',
 'tooltip-watchlistedit-raw-submit' => 'Pabaruen ti listaan ti bambantayan',
-'tooltip-recreate' => 'Aramidem ti panid uray no naikkat idin.',
+'tooltip-recreate' => 'Aramidem manen ti panid urayno dati a naikkat.',
 'tooltip-upload' => 'Rugian ti agip-ipan',
 'tooltip-rollback' => '"Baliktaden"   isubli ti inurnos (dagiti inurnos) ti daytoy a panid ti kinaudi a nangaramid iti maysa a takla',
 'tooltip-undo' => '"Ibabawi" ipasubli daytoy nga urnos ken lukatanna ti kinabuklan ti urnos iti panagpadas. Agpabalin daytoy a mangikabil ti rason idiay pinakabuklan.',
@@ -2785,25 +2785,26 @@ Mabalinmo a kitaen ti taudanna.',
 'notacceptable' => 'Ti server ti wiki ket saan a makaited ti data iti kinabuklan a saan a mabasa ti kliente.',
 
 # Attribution
-'anonymous' => 'Di am-ammo nga {{PLURAL:$1|agar-aramat|dagit agar-aramat}} iti {{SITENAME}}',
+'anonymous' => 'Di am-ammo {{PLURAL:$1|nga agar-aramat|kadagiti agar-aramat}} iti {{SITENAME}}',
 'siteuser' => '{{SITENAME}} nga agar-aramat $1',
 'anonuser' => '{{SITENAME}} di amammo nga agar-aramat $1',
 'lastmodifiedatby' => 'Daytoy a panid ket naudi a binalbaliwan idi $2, $1 ni $3.',
 'othercontribs' => 'Naibasar iti obra ni $1.',
 'others' => 'dadduma pay',
-'siteusers' => '!{{SITENAME}}  {{PLURAL:$2|agar-aramat|dagiti agar-aramat}}  $1',
-'anonusers' => '{{SITENAME}} di am-ammo {{PLURAL:$2|agar-aramat|digiti agar-aramat}} $1',
+'siteusers' => '{{SITENAME}}  {{PLURAL:$2|agar-aramat|dagiti agar-aramat}}  $1',
+'anonusers' => '{{SITENAME}} di am-ammo {{PLURAL:$2|nga agar-aramat|a digiti agar-aramat}} $1',
 'creditspage' => 'Dagiti pagdaydayaw ti panid',
 'nocredits' => 'Awan dagiti pakaammo ti pammadayaw nga adda ditoy a panid.',
 
 # Spam protection
 'spamprotectiontitle' => 'Panagsalaknib a sagat  para ti spam',
-'spamprotectiontext' => 'Ti teksto a kayat mo nga idulin ket sinerraan ti sagat ti spam.
-Daytoy ngata ket gapu ti panilpo a naiparit ti akin ruar a pagsaadan.',
+'spamprotectiontext' => 'Ti testo a kayatmo nga idulin ket sinerraan ti sagat ti spam.
+Daytoy ket mabalin a gapuanan babaen ti panilpo a naiparit ti akin ruar a pagsaadan.',
 'spamprotectionmatch' => 'Ti sumaganad a testo ti nangirugi ti sagat ti spam: $1',
 'spambot_username' => 'Panagdalus iti MediaWiki spam',
-'spam_reverting' => 'Ipasubli ti kinaudi a pinagbaliwan nga awan dagiti nagyanna a panilpo idiay $1',
-'spam_blanking' => 'Dagiti amin nga pinagbaliw ket adda panilpo na idiay $1, ipina-blanko',
+'spam_reverting' => 'Ipasubli ti kinaudi a panagbaliw nga awan dagiti linaon a panilpo idiay $1',
+'spam_blanking' => 'Dagiti amin a panagbaliw ket aglaon kadagiti panilpo idiay $1, iblanko',
+'spam_deleting' => 'Dagiti amin a panagbaliw ket naglaon kadagiti panilpo idiay $1, ik-ikkaten',
 
 # Info page
 'pageinfo-title' => 'Pakaammo para iti "$1"',
@@ -2811,7 +2812,7 @@ Daytoy ngata ket gapu ti panilpo a naiparit ti akin ruar a pagsaadan.',
 'pageinfo-header-watchlist' => 'Listaan ti bambantayan',
 'pageinfo-header-views' => 'Dagiti pangkitaan',
 'pageinfo-subjectpage' => 'Panid',
-'pageinfo-talkpage' => 'Pakipatangan a panid',
+'pageinfo-talkpage' => 'Tungtungan a panid',
 'pageinfo-watchers' => 'Bilang dagiti agbuybuya',
 'pageinfo-edits' => 'Bilang dagiti inurnos:',
 'pageinfo-authors' => 'Ti bilang dagiti sabsabali a mannurat',
@@ -2822,16 +2823,16 @@ Daytoy ngata ket gapu ti panilpo a naiparit ti akin ruar a pagsaadan.',
 'markaspatrolleddiff' => 'Markaan a kas napatruliaan',
 'markaspatrolledtext' => 'Markaan daytoy a panid a kas napatruliaan',
 'markedaspatrolled' => 'Markaan a kas napatruliaan',
-'markedaspatrolledtext' => 'Ti napili a pinagbaliw iti [[:$1]] ket namarkaan a kas napatrulian.',
-'rcpatroldisabled' => 'Nabaldado ti pinagpatrulia kadagiti kinaudian a pinagbaliw',
+'markedaspatrolledtext' => 'Ti napili a panagbaliw iti [[:$1]] ket namarkaan a kas napatrulian.',
+'rcpatroldisabled' => 'Nabaldado ti panagpatrulia kadagiti kinaudian a pinagbaliw',
 'rcpatroldisabledtext' => 'Dagiti langa a patrulia ti kinaudi a pinagbaliwan ket agdama a nabaldado',
 'markedaspatrollederror' => 'Madi a mamarkaan a kas napatruliaan',
-'markedaspatrollederrortext' => 'Masapul nga ibagam ti markaan a kas napatruliaan a pinagbaliwan.',
-'markedaspatrollederror-noautopatrol' => 'Saan mo a mabalin a markaan dagita sinukatam a kas napatruliaan.',
+'markedaspatrollederrortext' => 'Nasken a naganam ti maysa a rebision tapno mamarkaan a kas napatruliaan.',
+'markedaspatrollederror-noautopatrol' => 'Saanmo a mabalin a markaan dagita sinukatam a kas napatruliaan.',
 
 # Patrol log
 'patrol-log-page' => 'Listaan ti napatruliaan',
-'patrol-log-header' => 'Daytoy ket listaan dagiti napatruliaan a pinagbaliwan.',
+'patrol-log-header' => 'Daytoy ket listaan dagiti napatruliaan a panagbabaliw.',
 'log-show-hide-patrol' => '$1 listaan ti napatruliaan',
 
 # Image deletion
@@ -2850,8 +2851,8 @@ $1',
 'nextdiff' => 'Sumaruno a naurnos →',
 
 # Media information
-'mediawarning' => "'''Ballaag'': Daytoy a papeles ket adda nagyan na a dakes a kodigo.
-No usarem ket, baka makompromiso ti sistema.",
+'mediawarning' => "'''Ballaag'': Daytoy a papeles ket naglaon ti dakes a kodigo.
+No usarem daytoy, baka makompromiso ti sistema.",
 'imagemaxsize' => "Ti patingga a kadakkel ti papeles:<br />''(para dagiti pagpalpalawag ti papeles a panid)''",
 'thumbsize' => 'Rukod ti imahen:',
 'widthheightpage' => '$1 × $2, $3 a {{PLURAL:$3|panid|pampanid}}',
@@ -2862,18 +2863,18 @@ No usarem ket, baka makompromiso ti sistema.",
 'svg-long-desc' => 'SVG a papeles, babassit ngem $1 × $2 pixels, kadakkel ti papeles: $3',
 'show-big-image' => 'Sibubukel a resolusion',
 'show-big-image-preview' => 'Kadakkel na daytoy a pagpadas: $1.',
-'show-big-image-other' => 'Sabali a {{PLURAL:$2|resolusion|dagiti resolusion}}: $1.',
+'show-big-image-other' => 'Sabali  {{PLURAL:$2|a resolusion|kadagiti resolusion}}: $1.',
 'show-big-image-size' => '$1 × $2 dagiti piksel',
 'file-info-gif-looped' => 'nasiluan',
-'file-info-gif-frames' => '$1 {{PLURAL:$1|kuadro| dagiti kuadro}}',
+'file-info-gif-frames' => '$1 {{PLURAL:$1|a kuadro| kadagiti kuadro}}',
 'file-info-png-looped' => 'nasiluan',
-'file-info-png-repeat' => 'pinaayayam $1 {{PLURAL:$1|beses|beses}}',
-'file-info-png-frames' => '$1 {{PLURAL:$1|kuadro| dagiti kuadro}}',
+'file-info-png-repeat' => 'pinaayayam ti $1 {{PLURAL:$1|a beses|a beses}}',
+'file-info-png-frames' => '$1 {{PLURAL:$1|a kuadro| kadagiti kuadro}}',
 
 # Special:NewFiles
 'newimages' => 'Galeria dagiti kabarbaro a papeles',
 'imagelisttext' => "Adda dita baba ti listaan ti ''$1''' {{PLURAL:$1|a papeles|dagiti papeles}} a nailasin a kas $2.",
-'newimages-summary' => 'Daytoy nga espesial a panid ket ipakita na ti kinaudi a pinag-ipan kadagiti papeles.',
+'newimages-summary' => 'Daytoy nga espesial a panid ket ipakitana ti kinaudi a pinag-ipan kadagiti papeles.',
 'newimages-legend' => 'Sagat',
 'newimages-label' => 'Nagan ti papeles (wenno paset na) :',
 'showhidebots' => '($1 bots)',
@@ -2898,8 +2899,8 @@ Ania man a sumarsaruno a panpanilpo iti isu met la a linia ket maikonsidera kas
 
 # Metadata
 'metadata' => 'Metadata',
-'metadata-help' => 'Addaan daytoy a papeles iti nayon a pakaammo, a mabalin a nainayon manipud iti digital kamera wenno scanner a naaramat a pangpartuat wenno pang-digitize itoy.
-No ti papeles ket saan a nabalbaliwan manipud iti kasisigudna a kasasaad, sumagmamano a detalye ket mabalin a saan a sibubukel a mangipakita iti nabaliwan a papeles.',
+'metadata-help' => 'Daytoy a papeles ket naglaon ti naipatinayon a pakaammo, a mabalin a nainayon manipud ti digital a kamera wenno skanner a naaramat a pangpartuat wenno pang-digitize itoy.
+No ti papeles ket saan a nabalbaliwan manipud iti kasisigud a kasasaad, adda dagiti sumagmamano a salaysay a mabalin a saan a napno a maipakita ti nabaliwan a papeles.',
 'metadata-expand' => 'Ipakita dagiti napaatiddogan a salaysay',
 'metadata-collapse' => 'Ilemmeng dagiti napaatiddogan a salaysay',
 'metadata-fields' => 'Dagiti metadata a pagikabilana nakalista iti daytoy a mensahe ket mairaman iti maipakita a panid ti imahen no ti metadata a lamisaan ket maipabassit.
@@ -2924,7 +2925,7 @@ Dagiti dadduma ket mailemmeng a kinasigud.
 'exif-bitspersample' => 'Bits tunggal maysa a  nagyan',
 'exif-compression' => 'Pekkelen a pamuspusan',
 'exif-photometricinterpretation' => 'Piksel a kabuklan',
-'exif-orientation' => 'Orientation',
+'exif-orientation' => 'Pagturongan',
 'exif-samplesperpixel' => 'Bilang ti nagnagyan',
 'exif-planarconfiguration' => 'Pinakaurnong ti datos',
 'exif-ycbcrsubsampling' => 'Subsampling ratio ti Y iti C',
@@ -3036,9 +3037,9 @@ Dagiti dadduma ket mailemmeng a kinasigud.
 'exif-countrycodecreated' => 'Kodigo ti pagilian nga nakaalaan ti litrato',
 'exif-provinceorstatecreated' => 'Probinsia wenno estado nga nakaalaan ti litrato',
 'exif-citycreated' => 'Ti siudad nga nakaalaan ti litrato',
-'exif-sublocationcreated' => 'Sabali pay a lokasion ti ciudad a nakaalaan ti retrato',
+'exif-sublocationcreated' => 'Sabali pay a lokasion ti siudad a nakaalaan ti retrato',
 'exif-worldregiondest' => 'Paset ti lubong a naipakita',
-'exif-countrydest' => 'Naipakita nga pagilian',
+'exif-countrydest' => 'Naipakita a pagilian',
 'exif-countrycodedest' => 'Kodigo ti pagilian a naipakita',
 'exif-provinceorstatedest' => 'Probinsia wenno estado a naipakita',
 'exif-citydest' => 'Naipakita a siudad',
@@ -3048,12 +3049,12 @@ Dagiti dadduma ket mailemmeng a kinasigud.
 'exif-headline' => 'Paulo',
 'exif-credit' => 'Pammadayaw/Nangted',
 'exif-source' => 'Taudan',
-'exif-editstatus' => 'Pinagurnos nga estado ti imahen',
+'exif-editstatus' => 'Panagurnos a kasasaad ti imahen',
 'exif-urgency' => 'Ganat',
 'exif-fixtureidentifier' => 'Nagan ti naikabit a banag',
 'exif-locationdest' => 'Lugar a naibaga',
 'exif-locationdestcode' => 'Kodigo ti lugar a naibaga',
-'exif-objectcycle' => 'Oras ti aldaw a maipanggepan iti daytoy a midia',
+'exif-objectcycle' => 'Oras ti aldaw a nairebbeng para iti daytoy a midia',
 'exif-contact' => 'Pakaammo ti pagdamagan',
 'exif-writer' => 'Mannurat',
 'exif-languagecode' => 'Pagsasao',
@@ -3068,7 +3069,7 @@ Dagiti dadduma ket mailemmeng a kinasigud.
 'exif-serialnumber' => 'Agsasaruno a numero ti kamera',
 'exif-cameraownername' => 'Akinkukua ti kamera',
 'exif-label' => 'Etiketa',
-'exif-datetimemetadata' => 'Petsa ti kinaudi a binaliwan ti metadata',
+'exif-datetimemetadata' => 'Petsa ti kinaudi a panagbaliw ti metadata',
 'exif-nickname' => 'Di pormal a nagan ti imahen',
 'exif-rating' => 'Pategan (ti maysa kadagiti  5)',
 'exif-rightscertificate' => 'Paneknek ti panagtaripatu dagiti karbengan',
@@ -3079,8 +3080,8 @@ Dagiti dadduma ket mailemmeng a kinasigud.
 'exif-originaldocumentid' => 'Naisangsangyan nga ID iti kinasigud a dokumento',
 'exif-licenseurl' => 'URL iti ti karbengan ti kopia a lisensia',
 'exif-morepermissionsurl' => 'Sabali a pakaammo ti lisensia',
-'exif-attributionurl' => 'No usaren manen daytoy nga obra, pangngaasi ta isilpo idiay',
-'exif-preferredattributionname' => 'No usaren manen daytoy nga obra, pangngaasi ta padayawen ni',
+'exif-attributionurl' => 'No usaren manen daytoy nga obra, pangngaasi nga agisilpo idiay',
+'exif-preferredattributionname' => 'No usaren manen daytoy nga obra, pangngaasi a padayawen ni',
 'exif-pngfilecomment' => 'Komentario ti PNG a papeles',
 'exif-disclaimer' => 'Dagiti karbengan ken rebbeng',
 'exif-contentwarning' => 'Ballaag ti nagyan',
@@ -3229,8 +3230,8 @@ Dagiti dadduma ket mailemmeng a kinasigud.
 'exif-gpslongitude-w' => 'Abagatan a longitude',
 
 # Pseudotags used for GPSAltitudeRef
-'exif-gpsaltitude-above-sealevel' => '$1 {{PLURAL:$1|metro|metro}} nga nangatngato ngem ti baybay',
-'exif-gpsaltitude-below-sealevel' => '$1 {{PLURAL:$1|metro|metro}} nga nababbaba ngem ti baybay',
+'exif-gpsaltitude-above-sealevel' => '$1 {{PLURAL:$1|a metro|kadagiti metro}} a nangatngato ngem ti baybay',
+'exif-gpsaltitude-below-sealevel' => '$1 {{PLURAL:$1|a metro|kadagiti metro}} a nababbaba ngem ti baybay',
 
 'exif-gpsstatus-a' => 'Agrukrukoden',
 'exif-gpsstatus-v' => 'Panag-rukod ken pannakabin ti pang-usar ti sabali',
@@ -3282,6 +3283,7 @@ Dagiti dadduma ket mailemmeng a kinasigud.
 'exif-iimcategory-dis' => 'Dagiti disatro ken aksidente',
 'exif-iimcategory-fin' => 'Ekonomia ken negosio',
 'exif-iimcategory-edu' => 'Edukasion',
+'exif-iimcategory-evn' => 'Enbironmento',
 'exif-iimcategory-hth' => 'Salun-at',
 'exif-iimcategory-hum' => 'Kaykayat ti tattao',
 'exif-iimcategory-lab' => 'Trabaho',
@@ -3297,41 +3299,42 @@ Dagiti dadduma ket mailemmeng a kinasigud.
 'exif-urgency-normal' => 'Kadawyan ($1)',
 'exif-urgency-low' => 'Nababa ($1)',
 'exif-urgency-high' => 'Nangato ($1)',
+'exif-urgency-other' => 'Inpalawag ti agar-aramat a prioridad ($1)',
 
 # External editor support
 'edit-externally' => 'Baliwan daytoy a papeles babaen ti akinruar nga aplikasion',
 'edit-externally-help' => '(Kitaen ti [//www.mediawiki.org/wiki/Manual:External_editors instruksion iti panangikabil] para iti ad-adu pay a pakaammo).',
 
 # 'all' in various places, this might be different for inflected languages
-'watchlistall2' => 'am-amin',
+'watchlistall2' => 'amin',
 'namespacesall' => 'amin',
-'monthsall' => 'am-amin',
+'monthsall' => 'amin',
 'limitall' => 'amin',
 
 # E-mail address confirmation
 'confirmemail' => 'Pasingkedan ti e-surat a pagtaengam',
 'confirmemail_noemail' => 'Awan ti umisu nga e-surat a pagtaengam a naikabil idiay [[Special:Preferences|kaykayat ti agar-aramat]].',
-'confirmemail_text' => '{{SITNAME}} ket masapul na a pasingkedam ti e-surat a pagtaengam sakbay nga agusar ti -surat a langa.
-Ipabalin mo dita baba a buton ti pinagitulod ti pasingkedan a surat dita a pagtaengam.
-Ti surat ket addaan to ti panilpo nga adda nagyan na a kodigo;
-ikabil ti panilpo dita pagbasabasam ta mapasingkedam a ti e-surat a pagtaengam ket umisu.',
+'confirmemail_text' => 'Ti {{SITNAME}} ket masapulna a pasingkedam ti e-surat a pagtaengam sakbay nga agusar ti -surat a langa.
+Ipabalinmo dita baba a buton ti panagitulod ti pasingkedan a surat dita a pagtaengam.
+Ti surat ket mangiraman ti panilpo nga aglaon ti maysa a kodigo;
+ikabil ti panilpo dita pagbasabasam tapno mapasingkedam a ti e-surat a pagtaengam ket umisu.',
 'confirmemail_pending' => 'Ti pasingkedan a kodigo ket naipatulod kenkan:
 no kadamdama ka a nangaramid ti pakabilangam, aguray ka pay ti mano a minutos a sumangpet sakbay ka nga agpadas ti agkiddaw ti baro a kodigo.',
 'confirmemail_send' => 'Agipatulod ti pasingkedan a kodigo',
 'confirmemail_sent' => 'Naipatuloden ti pammasingked nga e-surat.',
 'confirmemail_oncreate' => 'Ti pakasingkedan a kodigo ket naipatulod dita e-surat a pagtaengam.
-Daytoy a kodigo ket saan a masapul ti sumrek, ngem masapul mo nga ited sakbay ka nga agpabalin kadagiti e-surat a langa ti wiki.',
-'confirmemail_sendfailed' => '{{SITENAME}} ket saan a makaipatulod ti pakasingkedan a surat.
-Pangngaasi ta kitaem ti e-surat a pagtaengam kadagiti maisu a kabalinan.
+Daytoy a kodigo ket saan a masapul ti sumrek, ngem masapulmo nga ited sakbay ka nga agpabalin kadagiti e-surat a langa ti wiki.',
+'confirmemail_sendfailed' => 'Ti {{SITENAME}} ket saan a makaipatulod ti pammasingke a surat.
+Pangngaasi a kitaem ti e-surat a pagtaengam para kadagiti imbalido a karakter.
 
 Insubli ti nangisurat: $1',
-'confirmemail_invalid' => 'Saan a mabalin a kodigo ti pammasingked.
-Nalabit a nagpason daytoy a kodigo.',
-'confirmemail_needlogin' => 'Masapulmo nga $1 tapno mapasingkedan ti e-surat a pagtaengam.',
+'confirmemail_invalid' => 'Imbalido a kodigo ti pammasingked.
+Mabalin a nagpaso daytoy a kodigo.',
+'confirmemail_needlogin' => 'Masapulmo ti $1 tapno mapasingkedan ti e-surat a pagtaengam.',
 'confirmemail_success' => 'Napasingkedanen ti e-surat a pagtaengam.
-Mabalinmon [[Special:UserLogin|sumrek]] ken naragsak a panag-wiki.',
+Mabalinmo tattan ti [[Special:UserLogin|sumrek]] ken nanamen ti wiki.',
 'confirmemail_loggedin' => 'Napasingkedanen ti e-surat a pagtaengam.',
-'confirmemail_error' => 'Adda banag a biddut iti panangidulin iti pammasingkedmo.',
+'confirmemail_error' => 'Adda banag a biddut ti panangidulin ti pammasingkedmo.',
 'confirmemail_subject' => 'Pammasingked ti e-surat a pagtaengan ti {{SITENAME}}',
 'confirmemail_body' => 'Addaan, baka sika, ti naggapu ti IP a pagtaengan $1,
 ket nagrehistro ti pakabilangan "$2" iti daytoy nga e-surat a pagtaengan idiay {{SITENAME}}
@@ -3341,12 +3344,12 @@ pinagpabalin ti e-surat a kita idiay {{SITENAME}}, lukatam daytoy a panilpo dita
 
 $3
 
-No *saanmo* nga inrehistro ti pakabilangam, surutem daytoy a panilpo
+No *saanmo* nga inrehistro ti pakabilangam, surotem daytoy a panilpo
 ta pasardengem ti pinakasingkedan ti e-surat a  pagtaengam:
 
 $5
 
-Daytoy a kodigo a pasingkedan ket agpaso iti $4.',
+Daytoy a pammasingked a kodigo ket agpaso iti $4.',
 'confirmemail_body_changed' => 'Addaan, baka sika, ti naggapu ti IP a apagtaengam $1,
 ket nangsukat ti e-surat a pagtaengan ti pakabilangan "$2" iti daytoy a pagtaengan idiay {{SITENAME}}
 
@@ -3375,8 +3378,8 @@ ta pasardengem ti pinakasingkedan ti e-surat a pagtaengam:
 $5
 
 Daytoy a kodigo a pasingkedan ket agpaso iti $4.',
-'confirmemail_invalidated' => 'Saan a napapasingked ti e-surat a pagtaengam',
-'invalidateemail' => 'Ukasen ti pasingkedan ti e-surat',
+'confirmemail_invalidated' => 'Naukas ti pammasingked ti e-surat a pagtaengam',
+'invalidateemail' => 'Ukasen ti pammasingked ti e-surat',
 
 # Scary transclusion
 'scarytranscludedisabled' => '[Nabaldado ti Interwiki pinagiraman]',
@@ -3385,16 +3388,16 @@ Daytoy a kodigo a pasingkedan ket agpaso iti $4.',
 
 # Delete conflict
 'deletedwhileediting' => "'''Ballaag''': Naikkaten daytoy a panid kalpasan a rinugiam nga agurnos!",
-'confirmrecreate' => "Ti ([[User talk:$1|patungtungan]]) ti agar-aramat [[User:$1|$1]] ket inikkat na daytoy a panid idi kalkalpas mo a magirugi ti agurnos nga adda rason:
+'confirmrecreate' => "Ti ([[User talk:$1|patungtungan]]) ti agar-aramat [[User:$1|$1]] ket inikkatna daytoy a panid kalpasan ti panagrugim nga agurnos nga adda rason:
 : ''$2''
-Pangngaasi ta pasingkedam a kayatmo nga aramiden manen daytoy a panid.",
+Pangngaasi a pasingkedam nga agpayso a kayatmo a partuten manen daytoy a panid.",
 'confirmrecreate-noreason' => 'Ti ([[User talk:$1|patungtungan]]) ti agar-aramat [[User:$1|$1]] ket inikkat na daytoy a panid idi kalkalpas mo a magirugi ti agurnos. Pangngaasi ta pasingkedam a kayatmo nga aramiden manen daytoy a panid.',
 'recreate' => 'Partuaten manen',
 
 # action=purge
 'confirm_purge_button' => 'OK',
 'confirm-purge-top' => 'Dalusan ti cache daytoy a panid?',
-'confirm-purge-bottom' => 'Ti pinagpasadiwa ti panid ket ipalabas na ti cache ken pursaran na dagiti agdama a pinagbaliwan ti agparang.',
+'confirm-purge-bottom' => 'Ti panagpurga ti panid ket dalusanna ti cache ken pursaranna nga agparang dagiti kinaudi a panagbaliw.',
 
 # action=watch/unwatch
 'confirm-watch-button' => 'OK',
@@ -3422,70 +3425,71 @@ Pangngaasi ta pasingkedam a kayatmo nga aramiden manen daytoy a panid.",
 
 # Auto-summaries
 'autosumm-blank' => 'Naikkat amin ti linaon ti panid',
-'autosumm-replace' => "Masukatan ti panid iti '$1'",
-'autoredircomment' => 'Maibawbaw-ing iti [[$1]]',
-'autosumm-new' => 'Inaramid ti panid iti "$1"',
+'autosumm-replace' => "Sinukatan ti linaon iti '$1'",
+'autoredircomment' => 'Naibaw-ing ti panid iti [[$1]]',
+'autosumm-new' => 'Pinartuat ti panid iti "$1"',
 
 # Live preview
 'livepreview-loading' => 'Maikarkarga…',
 'livepreview-ready' => 'Maikarkarga… Agsagana!',
-'livepreview-failed' => 'Madi a mabalin ti agdama a pagpadas! Padasem ti normal a pinagpadas.',
+'livepreview-failed' => 'Napaay ti agdama a panagipadas! 
+Padasem ti kadawyan a panagipadas.',
 'livepreview-error' => 'Napaay a sumilpo: $1 "$2". Padasem ti normal a pinagpadas',
 
 # Friendlier slave lag warnings
-'lag-warn-normal' => 'Dagiti panangbalbaliw a nabarbaro ngem $1 {{PLURAL:$1|segundo|segundo}} ket mabalin a saan a maiparang itoy a listaan.',
-'lag-warn-high' => 'Gapu ti kinabuntog ti database server, dagiti nasukatan a barbaro ngem $1 {{PLURAL:$1|segundo|segundo}} ket mabalin nga saan nga agparang ditoy nga listaan.',
+'lag-warn-normal' => 'Dagiti panangbalbaliw a nabarbaro ngem $1 {{PLURAL:$1|a segundo|kadagiti segundo}} ket mabalin a saan a maiparang itoy a listaan.',
+'lag-warn-high' => 'Gapu ti kinabuntog ti database server, dagiti nasukatan a barbaro ngem $1 {{PLURAL:$1|a segundo|kadagiti segundo}} ket mabalin a saan nga agparang ditoy a listaan.',
 
 # Watchlist editor
-'watchlistedit-numitems' => 'Addaan ti listaan ti bambantayam iti {{PLURAL:$1|1 titulo|$1 dagiti titulo}}, di mairaman dagiti patungtungan a panid.',
-'watchlistedit-noitems' => 'Awan linaonna dagiti titulo ti listaan ti bambantayam.',
-'watchlistedit-normal-title' => 'Baliwan ti listaan ti bambantayan',
-'watchlistedit-normal-legend' => 'Ikkaten dagiti titulo iti listaan ti bambantayam',
-'watchlistedit-normal-explain' => 'Dagiti titulo ti bambantayam ket naipakita dita baba.
-Ti mangikkat ti titulo, ikur-it ti kaasideg na a kahon, ken agtakla ti "{{int:Watchlistedit-normal-submit}}".
-Mabalin mo met nga [[Special:EditWatchlist/raw|urnosen ti listaan a kilaw]].',
+'watchlistedit-numitems' => 'Addaan ti listaan ti bambantayam  {{PLURAL:$1|iti1 a titulo|kadagiti $1 a titulo}}, a di mairaman dagiti patungtungan a panid.',
+'watchlistedit-noitems' => 'Ti listaan ti banbantayam ket saan a naglaon kadagiti titulo.',
+'watchlistedit-normal-title' => 'Urnosem ti listaan ti bambantayan',
+'watchlistedit-normal-legend' => 'Ikkaten dagiti titulo manipud ti listaan ti bambantayam',
+'watchlistedit-normal-explain' => 'Dagiti titulo ti listaan ti bambantayam ket naipakita dita baba.
+Ti mangikkat ti titulo, ikur-it ti kaaripingna a kahon, ken agtakla ti "{{int:Watchlistedit-normal-submit}}".
+Mabalinmo pay nga [[Special:EditWatchlist/raw|urnosen ti kilaw a listaan]].',
 'watchlistedit-normal-submit' => 'Ikkaten dagiti titulo',
 'watchlistedit-normal-done' => '{{PLURAL:$1|1 ti titulo a|$1 dagiti titulo a}} naikkat iti listaan ti bambantayam:',
-'watchlistedit-raw-title' => 'Urnosen ti kilaw a bambantayan',
-'watchlistedit-raw-legend' => 'Urnosen ti kilaw a bambantayan',
-'watchlistedit-raw-explain' => 'Dagiti titulo ti bambantayam ket naipakita dita baba, ken mabaliwam no nayunam, ken ikkaten idiay listaan;
+'watchlistedit-raw-title' => 'Urnosen ti kilaw a listaan ti bambantayan',
+'watchlistedit-raw-legend' => 'Urnosen ti kilaw a listaan ti bambantayan',
+'watchlistedit-raw-explain' => 'Dagiti titulo ti listaan ti bambantayam ket naipakita dita baba, ken mabaliwam nga urnosen babaen ti panagnayon ken panagkissay manipud ti listaan;
 maysa a titulo tunggal maysa a linia.
-No malpas ka, agtakla ti "{{int:Watchlistedit-raw-submit}}".
-Mabalin mo met nga [[Special:EditWatchlist|usaren ti dati a panagurnos]].',
+No malpas ka, itakla ti "{{int:Watchlistedit-raw-submit}}".
+Mabalinmo pay nga [[Special:EditWatchlist|usaren ti dati a panagurnos]].',
 'watchlistedit-raw-titles' => 'Dagiti titulo:',
 'watchlistedit-raw-submit' => 'Pabaruen ti listaan ti bambantayan',
 'watchlistedit-raw-done' => 'Napabaro ti listaan ti bambantayam.',
-'watchlistedit-raw-added' => '{{PLURAL:$1|1 ti titulo a|$1 dagiti titulo a}} nainayon:',
-'watchlistedit-raw-removed' => '{{PLURAL:$1|1 ti titulo a|$1 dagiti titulo a}} naikkat:',
+'watchlistedit-raw-added' => '{{PLURAL:$1|1 a titulo ti|dagiti $1 a titulo ti}} nainayon:',
+'watchlistedit-raw-removed' => '{{PLURAL:$1|1 a titulo ti|dagiti $1 dagiti titulo ti}} naikkat:',
 
 # Watchlist editing tools
-'watchlisttools-view' => 'Kitaen dagiti napatpateg a sinukatan',
-'watchlisttools-edit' => 'Kitaen ken baliwan ti listaan ti bambantayan',
-'watchlisttools-raw' => 'Urnosen ti kilaw a bambantayan',
+'watchlisttools-view' => 'Kitaen dagiti maitunos a sinukatan',
+'watchlisttools-edit' => 'Kitaen ken urnosen ti listaan ti bambantayan',
+'watchlisttools-raw' => 'Urnosen ti kilaw a listaan ti bambantayan',
 
 # Signatures
 'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|patang]])',
 
 # Core parser functions
-'unknown_extension_tag' => 'Di ammo a pagpaatiddog a tag "$1"',
-'duplicate-defaultsort' => '\'\'\'Ballaag:\'\'\' Kinasigud a pinagilasin ti "$2" ket sukatan na ti immuna a kinasigud a pinagilasin "$1".',
+'unknown_extension_tag' => 'Di amammo a pagpaatiddog nga etiketa "$1"',
+'duplicate-defaultsort' => '\'\'\'Ballaag:\'\'\' Kinasigud a panagilasin ti "$2" ket sukatanna ti immuna a kinasigud a panagilasin "$1".',
 
 # Special:Version
 'version' => 'Bersion',
 'version-extensions' => 'Dagiti naikabil a pagpaatiddog',
 'version-specialpages' => 'Espesial a pampanid',
-'version-parserhooks' => 'Parser a kawit',
-'version-variables' => 'Sabsabali',
+'version-parserhooks' => 'Dagiti parser a kawit',
+'version-variables' => 'Nadumaduma a kita',
 'version-antispam' => 'Pawilan ti spam',
 'version-skins' => 'Dagiti Kudil',
 'version-other' => 'Sabali',
-'version-mediahandlers' => 'Agiggem kadagiti media',
+'version-mediahandlers' => 'Agtengtengngel kadagiti midia',
 'version-hooks' => 'Dagiti kawit',
-'version-extension-functions' => 'Pagpaatiddog nga opisio',
-'version-parser-extensiontags' => 'Dagiti pagpaatiddog nga etiketa a parser',
-'version-parser-function-hooks' => 'Parser nga opisio a kawit',
+'version-extension-functions' => 'Dagiti pagpaatiddog a pamay-an',
+'version-parser-extensiontags' => 'Dagiti parser a pagpaatiddog nga etiketa',
+'version-parser-function-hooks' => 'Parser a pamay-an dagiti kawit',
 'version-hook-name' => 'Nagan ti kawit',
-'version-hook-subscribedby' => 'Umanamong ni',
+'version-hook-subscribedby' => 'Umanamong babaen ti',
 'version-version' => '(Bersion $1)',
 'version-license' => 'Lisensia',
 'version-poweredby-credits' => "Daytoy a wiki ket pinaandar ti '''[//www.mediawiki.org/ MediaWiki]''', karbengan a kopia © 2001-$1 $2.",
@@ -3506,7 +3510,7 @@ Naka-awat ka kuman ti [{{SERVER}}{{SCRIPTPATH}}/COPYING kopia iti GNU Sapasap a
 'filepath' => 'Dalanan ti papeles',
 'filepath-page' => 'Papeles:',
 'filepath-submit' => 'Inkan',
-'filepath-summary' => 'Daytoy nga espesiala panid ket agisubli ti kompleto a dalan ti papeles.
+'filepath-summary' => 'Daytoy nga espesial a panid ket agisubli ti kompleto a dalan ti papeles.
 Dagiti imahen ket agparang iti kadakkelan a resolusion, dagiti sabali a kita ti papeles ket mangrugi da a idiay nakairamanan da a programa.',
 
 # Special:FileDuplicateSearch
@@ -3516,8 +3520,8 @@ Dagiti imahen ket agparang iti kadakkelan a resolusion, dagiti sabali a kita ti
 'fileduplicatesearch-filename' => 'Nagan ti papeles:',
 'fileduplicatesearch-submit' => 'Biruken',
 'fileduplicatesearch-info' => '$1 × $2 pixel<br />Rukod ti papeles: $3<br />Kita ti MIME: $4',
-'fileduplicatesearch-result-1' => 'Awanan iti kapadpada na a duplikado ti papeles a "$1".',
-'fileduplicatesearch-result-n' => 'Ti papeles a "$1" ket addaan {{PLURAL:$2|1 nga agpadpada a duplikado|$2 dagiti agpadpada a duplikado}}.',
+'fileduplicatesearch-result-1' => 'Awan ti kapadpadana a duplikado ti papeles a "$1".',
+'fileduplicatesearch-result-n' => 'Ti papeles a "$1" ket addaan {{PLURAL:$2|1 nga agpadpada a duplikado|dagiti $2  nga agpadpada a duplikado}}.',
 'fileduplicatesearch-noresults' => 'Awan ti nagan ti papeles a "$1" ti nabirukan.',
 
 # Special:SpecialPages
@@ -3532,7 +3536,7 @@ Dagiti imahen ket agparang iti kadakkelan a resolusion, dagiti sabali a kita ti
 'specialpages-group-changes' => 'Kaudian a sinukatan ken listaan',
 'specialpages-group-media' => 'Dagiti padamag ti media ken panag-ipan',
 'specialpages-group-users' => 'Dagiti agar-aramat ken karkarbengan',
-'specialpages-group-highuse' => 'Adu ti panaka-usar na a pampanid',
+'specialpages-group-highuse' => 'Adu ti panaka-usar a pampanid',
 'specialpages-group-pages' => 'Listaan dagiti panid',
 'specialpages-group-pagetools' => 'Dagiti ramramit ti panid',
 'specialpages-group-wiki' => 'Linaon ti wiki ken ramramit',
@@ -3540,8 +3544,8 @@ Dagiti imahen ket agparang iti kadakkelan a resolusion, dagiti sabali a kita ti
 'specialpages-group-spam' => 'Ramramit kontra spam',
 
 # Special:BlankPage
-'blankpage' => 'Awan ti nagyan na a panid',
-'intentionallyblankpage' => 'Daytoy a panid  ket naikaro a blanko.',
+'blankpage' => 'Blanko a panid',
+'intentionallyblankpage' => 'Daytoy a panid  ket naigagara a blanko.',
 
 # External image whitelist
 'external_image_whitelist' => ' #Baybayan daytoy a linia a kastoy<pre>
@@ -3561,18 +3565,18 @@ Dagiti imahen ket agparang iti kadakkelan a resolusion, dagiti sabali a kita ti
 'tags-intro' => 'Daytoy a panid ket ilista na dagiti etiketa nga usaren ti software nga agmarka ti panag-urnos, ken dagiti kayat da a saoen.',
 'tags-tag' => 'Nagan ti etiketa',
 'tags-display-header' => 'Tabas dagiti listaan ti panagsukat',
-'tags-description-header' => 'Amin a panagipalpalawag ti kayat na a saoen.',
+'tags-description-header' => 'Napno a panangipalpalawag iti kayatna a saoen.',
 'tags-hitcount-header' => 'Dagiti etiketa a sinukatan',
 'tags-edit' => 'urnosen',
-'tags-hitcount' => '$1 {{PLURAL:$1|sinukatan|dagiti sinukatan}}',
+'tags-hitcount' => '$1 {{PLURAL:$1|a sinukatan|kadagiti sinukatan}}',
 
 # Special:ComparePages
 'comparepages' => 'Ipada dagiti panid',
 'compare-selector' => 'Ipada dagiti panagbaliw ti panid',
 'compare-page1' => 'Panid 1',
 'compare-page2' => 'Panid 2',
-'compare-rev1' => 'Pinagbaliw 1',
-'compare-rev2' => 'Pinagbaliw 2',
+'compare-rev1' => 'Panagbaliw 1',
+'compare-rev2' => 'Panagbaliw 2',
 'compare-submit' => 'Ipada',
 'compare-invalid-title' => 'Ti titulo nga intedmo ket imbalido.',
 'compare-title-not-exists' => 'Awan met dayta titulo a nainaganam.',
@@ -3601,21 +3605,21 @@ Daytoy a pagsaadan ket agdadama ti teknikal a pagrigrigatan.',
 'htmlform-selectorother-other' => 'Sabali',
 
 # SQLite database support
-'sqlite-has-fts' => '$1 adda ti suporta amin a teksto ti pinagbiruk',
-'sqlite-no-fts' => '$1 awan ti suporta amin a teksto ti pinagbiruk',
+'sqlite-has-fts' => '$1 adda ti suporta ti napno a teksto ti panagbiruk',
+'sqlite-no-fts' => '$1 awan ti suporta ti napno a teksto ti panagbiruk',
 
 # New logging system
-'logentry-delete-delete' => 'inikkat ni $1 daytoy panid  nga $3',
-'logentry-delete-restore' => 'insubli ni $1 daytoy panid nga $3',
-'logentry-delete-event' => '$1 pinagsukat ti pinagkita iti {{PLURAL:$5|listaan ti pasamak |$5 dagiti listaan ti pasamak }} iti $3: $4',
-'logentry-delete-revision' => '$1 pinagsukat ti pinagkita iti {{PLURAL:$5|pinagbaliw |$5 dagiti pinagbaliw}} iti panid $3: $4',
-'logentry-delete-event-legacy' => '$1 pinagsukat a pinagkita ti listaan dagiti pasamak idiay $3',
-'logentry-delete-revision-legacy' => '$1 pinagsukat a pinagkita dagiti pinagbaliw idiay panid $3',
-'logentry-suppress-delete' => '$1 napasardeng a panid $3',
-'logentry-suppress-event' => '$1 nasekreto pinagsukat ti pinagkita iti {{PLURAL:$5|listaan ti pasamak |$5 dagiti listaan ti pasamak }} iti $3: $4',
-'logentry-suppress-revision' => '$1 nasekreto pinagsukat ti pinagkita iti {{PLURAL:$5|pinagbaliw |$5 dagiti pinagbaliw}} iti panid $3: $4',
-'logentry-suppress-event-legacy' => '$1 nasekreto ti pinagsukat a pinagkita ti listaan dagiti pasamak idiay $3',
-'logentry-suppress-revision-legacy' => '$1 nasekreto ti pinagsukat a pinagkita dagiti pinagbaliw idiay panid $3',
+'logentry-delete-delete' => 'Inikkat ni $1 ti panid  ti $3',
+'logentry-delete-restore' => 'Insubli ni $1 ti panid ti $3',
+'logentry-delete-event' => 'Sinukatan ni $1  ti panagkita {{PLURAL:$5|iti listaan ti pasamak |dagiti $5 a listaan ti pasamak }} iti $3: $4',
+'logentry-delete-revision' => 'Sinukatan ni $1 ti panagkita  {{PLURAL:$5|iti panagbaliw |dagiti $5 a panagbaliw}} iti panid $3: $4',
+'logentry-delete-event-legacy' => 'Sinukatan ni $1  ti panagkita ti listaan dagiti pasamak idiay $3',
+'logentry-delete-revision-legacy' => 'Sinukatan ni $1 ti panagkita dagiti panagbaliw idiay panid $3',
+'logentry-suppress-delete' => 'Pinasardeng ni $1 ti panid ti $3',
+'logentry-suppress-event' => 'Sekreto a sinukatan ni $1 ti panagkita {{PLURAL:$5|iti listaan ti pasamak |dagiti $5 a listaan ti pasamak }} iti $3: $4',
+'logentry-suppress-revision' => 'Sekreto a sinukatan ni $1 ti panagkita {{PLURAL:$5|iti panagbaliw |dagiti $5 a panagbaliw}} iti panid $3: $4',
+'logentry-suppress-event-legacy' => 'Sekreto a sinukatan ni $1 ti panagkita ti listaan dagiti pasamak idiay $3',
+'logentry-suppress-revision-legacy' => 'Sekreto a sinukatan ni $1  ti panagkita dagiti panagbaliw idiay panid $3',
 'revdelete-content-hid' => 'nailemmeng ti nagyan na',
 'revdelete-summary-hid' => 'nailemmeng ti pakabuklan a naurnos',
 'revdelete-uname-hid' => 'nailemmeng ti nagan ti agar-aramat',
@@ -3624,21 +3628,21 @@ Daytoy a pagsaadan ket agdadama ti teknikal a pagrigrigatan.',
 'revdelete-uname-unhid' => 'saan a nailemmeng ti nagan ti agar-aramat',
 'revdelete-restricted' => 'naipakat dagiti pammarit kadagiti administrador',
 'revdelete-unrestricted' => 'naikkat dagiti pammarit para kadagiti administrador',
-'logentry-move-move' => 'inyalis ni  $1 daytoy panid $3 idiay $4',
-'logentry-move-move-noredirect' => '$1 inyalis ti panid $3 idiay $4 nga awan ti naibati a baw-ing',
-'logentry-move-move_redir' => '$1 inyalis ti panid $3 idiay $4 nga adda baw-ing',
-'logentry-move-move_redir-noredirect' => '$1 iniyalis ti panid $3 idiay $4 nga inikkan ti baw-ing ngem saan a nagibati ti baw-ing',
-'logentry-patrol-patrol' => '$1 markaan ti pinagbaliw $4 ti panid  $3 a napatruliaan',
-'logentry-patrol-patrol-auto' => '$1 automatiko a markaan ti panagbaliw $4 ti panid $3 a napatruliaan',
-'logentry-newusers-newusers' => '$1 nakaaramid ti pakabilangan ti agar-aramat',
-'logentry-newusers-create' => '$1 nakaaramid ti pakabilangan ti agar-aramat',
-'logentry-newusers-create2' => '$1 nakaaramid ti pakabilangan ti agar-aramat $3',
-'logentry-newusers-autocreate' => 'Ti pakabilangan $1 ket  naaramid nga automatiko',
+'logentry-move-move' => 'Inyalis ni  $1 daytoy panid $3 idiay $4',
+'logentry-move-move-noredirect' => 'Inyalis ni $1  ti panid ti $3 idiay $4 a saan a nangibati ti baw-ing',
+'logentry-move-move_redir' => 'Inyalis ni $1 ti panid ti $3 idiay $4 nga adda iti maysa a baw-ing',
+'logentry-move-move_redir-noredirect' => 'Inyalis ni $1 ti panid ti $3 idiay $4 nga adda iti maysa a baw-ing a saan a nangibati ti baw-ing',
+'logentry-patrol-patrol' => 'Minarkaan ni $1 ti panagbaliw a $4 ti panid ti  $3 a napatruliaan',
+'logentry-patrol-patrol-auto' => 'Automatiko a minarkaan ni $1 ti panagbaliw a $4 ti panid ti $3 a napatruliaan',
+'logentry-newusers-newusers' => 'Nagpartuat ni $1 ti pakabilangan ti  agar-aramat',
+'logentry-newusers-create' => 'Nagpartuat ni $1 ti pakabilangan ti agar-aramat',
+'logentry-newusers-create2' => 'Nagpartuat ni $1 ti pakabilangan ti agar-aramat ti $3',
+'logentry-newusers-autocreate' => 'Ti pakabilangan ni $1 ket automatiko a napartuat',
 'newuserlog-byemail' => 'naipatulod ti kontrasenias ti e-surat',
 
 # Feedback
-'feedback-bugornote' => 'No agsagana kan nga agibaga ti teknikal a pakirut a naisalaysay pangngaasi a [$1 ireporta ti kiteb].
-Nupay kasta, mau-sar mo ti nakabuklan dita baba. Ti komentario nga ited mo ket mainayon iti panid "[$3 $2], a mairaman ti nagan mo nga agar-aramat ken no ania ti pagbasabasa nga us-sarem.',
+'feedback-bugornote' => 'No agsagana kan nga agibaga ti teknikal a pakirut a naisalaysay pangngaasi nga [$1 ireporta ti kiteb].
+Nupay kasta, mau-sarmo ti nakabuklan dita baba. Ti komentario nga itedmo ket mainayon iti panid "[$3 $2], a mairaman ti naganmo nga agar-aramat ken no ania ti pagbasabasa nga us-sarem.',
 'feedback-subject' => 'Suheto:',
 'feedback-message' => 'Mensahe:',
 'feedback-cancel' => 'Ukasen',
@@ -3649,17 +3653,17 @@ Nupay kasta, mau-sar mo ti nakabuklan dita baba. Ti komentario nga ited mo ket m
 'feedback-error3' => 'Biddut: Awan ti sungbat manipud iti API',
 'feedback-thanks' => 'Agyaman! Ti panangparupaam ket naipablaak iti panid "[$2 $1]".',
 'feedback-close' => 'Nalpasen',
-'feedback-bugcheck' => 'Nasayaaten! Kitem tapno met saan a dagita adaanen a [$1 dagiti amammo a kiteb].',
+'feedback-bugcheck' => 'Nasayaaten! Kitaem tapno saan a dagiti adda idin a [$1 nga amammo a kitkiteb].',
 'feedback-bugnew' => 'Kinitak. Ireporta ti baro a kiteb',
 
 # API errors
 'api-error-badaccess-groups' => 'Saan mo a mabalin ti agipan kadagiti papeles iti daytoy a wiki.',
 'api-error-badtoken' => 'Kinauneg a biddut: Dakes a tandaan.',
 'api-error-copyuploaddisabled' => 'Ti mangipan babaen ti URL ket nabaldado ditoy a server.',
-'api-error-duplicate' => 'Adda {{PLURAL:$1|ket [$2 sabali a papeles] |dagiti [$2 sabsabali a papeles]}} nga addan ditoy a pagsaadan nga agpada ti nagyan da.',
-'api-error-duplicate-archive' => 'Adda {{PLURAL:$1|idi [$2 sabali a papeles]|dagidi [$2 sabalia papeles]}} nga adda ditoy a pagsaadan nga agpada ti nagyan da, ngem {{PLURAL:$1|daytoy|dagitoy}} ket naikkat.',
+'api-error-duplicate' => 'Adda {{PLURAL:$1|ket [$2 sabali a papeles] |dagiti [$2 sabsabali a papeles]}} nga addan ditoy a pagsaadan nga agpada ti nagyan da.',
+'api-error-duplicate-archive' => 'Adda {{PLURAL:$1|idi [$2 sabali a papeles]|dagidi [$2 sabali a papeles]}} nga adda ditoy a pagsaadan nga agpada ti nagyan da, ngem {{PLURAL:$1|daytoy|dagitoy}} ket naikkat.',
 'api-error-duplicate-archive-popup-title' => 'Duplikado {{PLURAL:$1|ti papeles|dagiti papeles}} a naikkaten.',
-'api-error-duplicate-popup-title' => 'Duplikado {{PLURAL:$1|papeles|dagiti papeles}}',
+'api-error-duplicate-popup-title' => 'Duplikado {{PLURAL:$1|ti papeles|dagiti papeles}}.',
 '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.',
@@ -3667,7 +3671,7 @@ Nupay kasta, mau-sar mo ti nakabuklan dita baba. Ti komentario nga ited mo ket m
 'api-error-filename-tooshort' => 'Ti nagan daytoy a papeles ket bassit unay.',
 'api-error-filetype-banned' => 'Ti kita daytoy a papeles ket maiparit.',
 'api-error-filetype-missing' => 'Ti papeles ket agkurang ti pagpa-atiddog.',
-'api-error-hookaborted' => 'Ti pinagbabaro a pinadas mo ket napasardeng iti pangpa-atiddog a kawit.',
+'api-error-hookaborted' => 'Ti panagbabaro a pinadasmo ket napasardeng iti pangpa-atiddog a kawit.',
 'api-error-http' => 'Kinauneg a biddut: Saan a makaikabit idiay server.',
 'api-error-illegal-filename' => 'Ti nagan daytoy a papeles ket saan a maipalubos.',
 'api-error-internal-error' => 'Kinauneg a biddut: Addaan ti dakes a napasamak ti panagaramid ti panagipan mo iti daytoy a wiki.',
index 165fd07..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',
@@ -647,7 +647,7 @@ Ekki gleyma að breyta [[Special:Preferences|{{SITENAME}}-stillingunum]] þínum
 'userlogout' => 'Útskrá',
 'notloggedin' => 'Ekki innskráð(ur)',
 'nologin' => "Ekki með aðgang? '''$1'''.",
-'nologinlink' => 'Stofnaðu til aðgangs',
+'nologinlink' => 'Stofnaðu aðgang',
 'createaccount' => 'Nýskrá',
 'gotaccount' => "Nú þegar með notandanafn? '''$1'''.",
 'gotaccountlink' => 'Skráðu þig inn',
@@ -1094,7 +1094,7 @@ Frekari upplýsingar eru í [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGE
 'revdelete-hide-text' => 'Fela breytingatexta',
 'revdelete-hide-image' => 'Fela efni skráar',
 'revdelete-hide-name' => 'Fela aðgerð og mark',
-'revdelete-hide-comment' => 'Fela breytingaathugasemdir',
+'revdelete-hide-comment' => 'Fela breytingarágrip',
 'revdelete-hide-user' => 'Fela notandanafn/vistfang',
 'revdelete-hide-restricted' => 'Dylja gögn frá stjórnendum og öðrum',
 'revdelete-radio-same' => '(ekki breyta)',
index b6a7c2c..33f5c56 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)',
@@ -652,6 +652,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 +1299,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',
@@ -3864,4 +3866,6 @@ Le immagini vengono mostrate alla massima risoluzione disponibile, per gli altri
 'duration-centuries' => '$1 {{PLURAL:$1|secolo|secoli}}',
 'duration-millennia' => '$1 {{PLURAL:$1|millennio|millenni}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Impossibile acquisire blocchi sul server $1.',
 );
index 9da7ef5..8f42292 100644 (file)
@@ -553,7 +553,7 @@ $messages = array(
 'delete' => '削除',
 'deletethispage' => 'このページを削除',
 'undelete_short' => '{{PLURAL:$1|$1 版}}を復帰',
-'viewdeleted_short' => '{{PLURAL:$1|削除された $1 件の編集}}を閲覧',
+'viewdeleted_short' => '{{PLURAL:$1|削除された $1 編集}}を閲覧',
 'protect' => '保護',
 'protect_change' => '設定変更',
 'protectthispage' => 'このページを保護',
@@ -625,8 +625,8 @@ $1',
 
 'ok' => 'OK',
 'retrievedfrom' => '「$1」から取得',
-'youhavenewmessages' => '$1が届いています($2)。',
-'newmessageslink' => '新しいメッセージ',
+'youhavenewmessages' => '$1があります($2)。',
+'newmessageslink' => '新メッセージ',
 'newmessagesdifflink' => '最終更新の差分',
 'youhavenewmessagesmulti' => '$1に新着メッセージがあります',
 'editsection' => '編集',
@@ -712,7 +712,7 @@ URL を間違って入力したか、正しくないリンクをたどった可
 'filecopyerror' => 'ファイル「$1」を「$2」へ複製できませんでした。',
 'filerenameerror' => 'ファイル名を「$1」から「$2」へ変更できませんでした。',
 'filedeleteerror' => 'ファイル「$1」を削除できませんでした。',
-'directorycreateerror' => 'ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\80\8c$1ã\80\8dã\82\92ä½\9cæ\88\90ã\81§ã\81\8dã\81¾ã\81\9bã\82\93ã\81§ã\81\97ã\81\9fã\80\82',
+'directorycreateerror' => 'ディレクトリ「$1」を作成できませんでした。',
 'filenotfound' => 'ファイル「$1」が見つかりませんでした。',
 'fileexistserror' => 'ファイル「$1」への書き込みに失敗:ファイルが存在します。',
 'unexpected' => '予期しない値「$1」=「$2」です。',
@@ -721,7 +721,7 @@ URL を間違って入力したか、正しくないリンクをたどった可
 'cannotdelete' => 'ページまたはファイル「$1」を削除できませんでした。
 他の人が既に削除した可能性があります。',
 'cannotdelete-title' => '「$1」というページを削除できません',
-'badtitle' => '不正なページ名',
+'badtitle' => '正しくないページ名',
 'badtitletext' => '要求されたページ名は、無効、空、正しくない言語間リンク/ウィキ間リンクのページ名、のいずれかです。
 ページ名に使用できない文字が1つ以上含まれている可能性があります。',
 'perfcached' => '以下のデータはキャッシュされており、最新ではない可能性があります。最大 $1 {{PLURAL:$1|件の結果}}がキャッシュされます。',
@@ -747,8 +747,8 @@ URL を間違って入力したか、正しくないリンクをたどった可
 'cascadeprotected' => 'このページは、「カスケード保護」が指定された状態で保護されている以下の{{PLURAL:$1|ページ|ページ群}}で読み込まれているため、編集できないように保護されています:
 $2',
 'namespaceprotected' => "'''$1'''名前空間にあるページを編集する権限がありません。",
-'customcssprotected' => 'ã\81\93ã\81®CSSã\83\9aã\83¼ã\82¸ã\81¯ä»\96ã\81®å\88©ç\94¨è\80\85ã\81®å\80\8b人設å®\9aã\82\92å\90«ã\82\93ã\81§ã\81\84ã\82\8bため、あなたには編集する権限がありません。',
-'customjsprotected' => '他の利用者の個人設定を含むため、このJavaScriptのページを編集する権限がありません。',
+'customcssprotected' => 'ã\81\93ã\81®CSSã\83\9aã\83¼ã\82¸ã\81¯ä»\96ã\81®å\88©ç\94¨è\80\85ã\81®å\80\8b人設å®\9aã\82\92å\90«ã\82\80ため、あなたには編集する権限がありません。',
+'customjsprotected' => 'このJavaScriptページは他の利用者の個人設定を含むため、あなたには編集する権限がありません。',
 'ns-specialprotected' => '特別ページは編集できません。',
 'titleprotected' => "[[User:$1|$1]]によりこのページ名を持つページの作成は保護されています。
 理由は「''$2''」です。",
@@ -812,8 +812,8 @@ Cookieを有効にしていることを確認して、このページを再読
 'nosuchuser' => '「$1」という名前の利用者は見当たりません。
 利用者名では大文字と小文字を区別します。
 綴りが正しいことを確認するか、[[Special:UserLogin/signup|新たにアカウントを作成]]してください。',
-'nosuchusershort' => 'ã\80\8c$1ã\80\8dã\81¨ã\81\84ã\81\86å\88©ç\94¨è\80\85ã\81¯è¦\8bå½\93ã\81\9fã\82\8aません。
-綴ã\82\8aã\81\8cæ­£ã\81\97ã\81\84ã\81\93ã\81¨ã\82\92å\86\8d度確認してください。',
+'nosuchusershort' => 'ã\80\8c$1ã\80\8dã\81¨ã\81\84ã\81\86å\90\8då\89\8dã\81®å\88©ç\94¨è\80\85ã\81¯å­\98å\9c¨ã\81\97ません。
+綴ã\82\8aã\82\92確認してください。',
 'nouserspecified' => '利用者名を指定してください。',
 'login-userblocked' => 'この利用者はブロックされています。ログインは拒否されます。',
 'wrongpassword' => 'パスワードが間違っています。 
@@ -838,7 +838,7 @@ Cookieを有効にしていることを確認して、このページを再読
 メールを受け取ったら、再度ログインしてください。',
 'blocked-mailpassword' => 'ご使用中のIPアドレスからの編集はブロックされており、不正利用防止のため、パスワードの再発行機能は使用できません。',
 'eauthentsent' => '指定されたメールアドレスにアドレス確認のためのメールを送信しました。
-その他のメールがこのアカウント宛に送信される前に、メールの指示に従って、このアカウントが本当にあなたのものか確認してください。',
+その他のメールがこのアカウント宛に送信される前に、メールの指示に従って、このアカウントが本当にあなたのものかご確認ください。',
 'throttled-mailpassword' => '新しいパスワードは過去 {{PLURAL:$1|$1 時間}}に送信済みです。
 悪用防止のため、パスワードの再発行は {{PLURAL:$1|$1 時間}}に 1 回のみです。',
 'mailerror' => 'メールの送信中にエラーが発生しました:$1',
@@ -889,7 +889,7 @@ Cookieを有効にしていることを確認して、このページを再読
 'resetpass-submit-loggedin' => 'パスワードを変更',
 'resetpass-submit-cancel' => '中止',
 'resetpass-wrong-oldpass' => '仮パスワードまたは現在のパスワードが正しくありません。
-既にパスワード変更したか、新しい仮パスワードを依頼した可能性があります。',
+パスワードを既に変更した、または新しい仮パスワードを依頼した可能性があります。',
 'resetpass-temp-password' => '仮パスワード:',
 
 # Special:PasswordReset
@@ -987,7 +987,7 @@ $2
 'blockedtext' => "'''この利用者名またはIPアドレスはブロックされています。'''
 
 ブロックは$1によって実施されました。
-ブロックの理由は「$2」です。
+ブロックの理由は ''$2'' です。
 
 * ブロック開始時期:$8
 * ブロック解除予定:$6
@@ -1040,7 +1040,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 [{{fullurl:{{FULLPAGENAME}}|action=edit}} このページを編集]</span>することができます。',
 'noarticletext-nopermission' => '現在このページには内容がありません。他のページに含まれる[[Special:Search/{{PAGENAME}}|このページ名を検索]]するか、もしくは<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 関連記録を検索]</span>することができます。',
 'userpage-userdoesnotexist' => '「$1」という利用者アカウントは登録されていません。
\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81®ä½\9cæ\88\90/ç·¨é\9b\86ã\81\8cé\81©å\88\87ã\81\8bã\81©ã\81\86ã\81\8b確èª\8dã\81\97ã\81¦ください。',
\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81®ä½\9cæ\88\90/ç·¨é\9b\86ã\81\8cé\81©å\88\87ã\81\8bã\81\94確èª\8dください。',
 'userpage-userdoesnotexist-view' => '利用者アカウント「$1」は登録されていません。',
 'blocked-notice-logextract' => 'この利用者は現在ブロックされています。
 参考のために最新のブロック記録を以下に表示します:',
@@ -1080,7 +1080,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 'token_suffix_mismatch' => "'''ご使用中のクライアントが編集トークン内の句読点を正しく処理していないため、編集を受け付けられません。'''
 ページ本文の破損を防ぐため、編集は反映されません。
 問題のある匿名プロキシ サービスを使用していると、これが発生する場合があります。",
-'edit_form_incomplete' => "'''一部の編集フォームの値がサーバーに届きませんでした。ご確認の上、そのまま再度投稿してください。'''",
+'edit_form_incomplete' => "'''編集フォームの一部がサーバーに届きませんでした。ご確認の上、そのまま再度投稿してください。'''",
 'editing' => '「$1」を編集中',
 'creating' => '「$1」を作成中',
 'editingsection' => '「$1」を編集中 (節単位)',
@@ -1137,7 +1137,7 @@ IP アドレスは複数の利用者で共有されている場合がありま
 'permissionserrorstext-withaction' => 'あなたには「$2」を行う権限はありません。{{PLURAL:$1|理由}}は以下の通りです:',
 'recreate-moveddeleted-warn' => "'''警告:以前削除されたページを再作成しようとしています。'''
 
-このページの編集を続行するのが適切かどうか確認してください。
+このページの編集を続行するのが適切かどうかご確認ください。
 参考のため以下にこのページの削除と移動の記録を表示します:",
 'moveddeleted-notice' => 'このページは削除されています。
 参考のため、このページの削除と移動の記録を以下に表示します。',
@@ -1251,11 +1251,11 @@ $3が示した理由:''$2''",
 'rev-delundel' => '表示/非表示',
 'rev-showdeleted' => '表示',
 'revisiondelete' => '版の削除と復帰',
-'revdelete-nooldid-title' => '不正な対象版',
+'revdelete-nooldid-title' => '無効な対象版',
 'revdelete-nooldid-text' => 'この操作の対象となる版を指定していないか、指定した版が存在していないか、あるいは最新版を非表示しようとしています。',
 'revdelete-nologtype-title' => '記録の種類を指定していません',
 'revdelete-nologtype-text' => 'この操作を実行する記録の種類を指定していません。',
-'revdelete-nologid-title' => '不正な記録項目',
+'revdelete-nologid-title' => '無効な記録項目',
 'revdelete-nologid-text' => 'この操作の対象となる記録の項目を指定していないか、あるいは指定した項目が存在しません。',
 'revdelete-no-file' => '指定されたファイルは存在しません。',
 'revdelete-show-file-confirm' => '本当にファイル「<nowiki>$1</nowiki>」の削除された$2$3の版を閲覧しますか?',
@@ -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版}}が非表示)',
@@ -1475,7 +1475,7 @@ $1",
 'columns' => '列数:',
 'searchresultshead' => '検索',
 'resultsperpage' => '1ページあたりの表示件数:',
-'stub-threshold' => '<a href="#" class="stub">スタブリンク</a>として表示する閾値(バイト):',
+'stub-threshold' => '<a href="#" class="stub">スタブリンク</a>として表示する閾値 (バイト):',
 'stub-threshold-disabled' => '無効',
 'recentchangesdays' => '最近の更新に表示する日数:',
 'recentchangesdays-max' => '(最大 $1 {{PLURAL:$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' => '代わりに、指定したページへのリンク元での変更を表示',
 
@@ -1768,8 +1768,8 @@ $1 {{PLURAL:$1|文字}}以下である必要があります。',
 'upload-tryagain' => '修正したファイル解説を投稿',
 'uploadnologin' => 'ログインしていません',
 'uploadnologintext' => 'ファイルをアップロードするには[[Special:UserLogin|ログイン]]する必要があります。',
-'upload_directory_missing' => 'アップロード先ディレクトリー($1)が見つからず、ウェブサーバーによって作成できませんでした。',
-'upload_directory_read_only' => 'アップロード先ディレクトリー($1)に、ウェブサーバーが書き込めません。',
+'upload_directory_missing' => 'アップロード先ディレクトリ($1)が見つからないため、ウェブサーバーによる作成ができませんでした。',
+'upload_directory_read_only' => 'アップロード先ディレクトリ($1)には、ウェブサーバーが書き込めません。',
 'uploaderror' => 'アップロードのエラー',
 'upload-recreate-warning' => "'''警告:その名前のファイルは、以前に削除または移動されています。'''
 
@@ -1897,7 +1897,7 @@ MGP # ペンタックス
 PICT # その他
  #</pre> <!-- この行はそのままにしておいてください -->',
 'upload-success-subj' => 'アップロード成功',
-'upload-success-msg' => '[$2] ã\81\8bã\82\89ã\81®ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89ã\81«æ\88\90å\8a\9fしました。こちらで利用できます:[[:{{ns:file}}:$1]]',
+'upload-success-msg' => '[$2] ã\81\8bã\82\89ã\82¢ã\83\83ã\83\97ã\83­ã\83¼ã\83\89しました。こちらで利用できます:[[:{{ns:file}}:$1]]',
 'upload-failure-subj' => 'アップロードで発生した問題',
 'upload-failure-msg' => '[$2]からのアップロード中に問題が発生しました:
 
@@ -1905,7 +1905,7 @@ $1',
 'upload-warning-subj' => 'アップロードの警告',
 'upload-warning-msg' => '[$2] からアップロードしようとしたデータに問題があります。 [[Special:Upload/stash/$1|アップロードのフォーム]]に戻って問題を修正してください。',
 
-'upload-proto-error' => '不正なプロトコル',
+'upload-proto-error' => '無効なプロトコル',
 'upload-proto-error-text' => '遠隔アップロード機能では、URLが<code>http://</code>か<code>ftp://</code>で始まっている必要があります。',
 'upload-file-error' => '内部エラー',
 'upload-file-error-text' => '内部エラーのため、サーバー上の一時ファイル作成に失敗しました。
@@ -1972,10 +1972,10 @@ $1',
 'uploadstash-summary' => 'このページでは、アップロードされた、もしくはアップロード中の、ウィキ上でまだ公開されていないファイルを表示します。これらのファイルは、アップロードした利用者以外閲覧できません。',
 'uploadstash-clear' => '未公開ファイルを消去',
 'uploadstash-nofiles' => '未公開ファイルはありません。',
-'uploadstash-badtoken' => '実行できませんでした。編集するための認証が無効になったことが原因である可能性があります。再度お試しください。',
+'uploadstash-badtoken' => '操作を実行できませんでした。編集するための認証の期限切れが原因である可能性があります。再度お試しください。',
 'uploadstash-errclear' => 'ファイルの消去に失敗しました。',
 'uploadstash-refresh' => 'ファイルの一覧を更新',
-'invalid-chunk-offset' => '不正なチャンクオフセット',
+'invalid-chunk-offset' => '無効なチャンクオフセット',
 
 # img_auth script messages
 'img-auth-accessdenied' => 'アクセスが拒否されました',
@@ -1983,11 +1983,11 @@ $1',
 サーバーが、この情報を渡すように構成されていません。
 CGI ベースであるため、img_auth に対応できない可能性もあります。
 https://www.mediawiki.org/wiki/Manual:Image_Authorization をご覧ください。',
-'img-auth-notindir' => '要求されたパスは、設定済みのアップロード用ディレクトリー内にありません。',
+'img-auth-notindir' => '要求されたパスは、設定済みのアップロード先ディレクトリ内にありません。',
 'img-auth-badtitle' => '「$1」からは有効なページ名を構築できません。',
 'img-auth-nologinnWL' => 'ログインしておらず、さらに「$1」はホワイトリストに入っていません。',
 'img-auth-nofile' => 'ファイル「$1」は存在しません。',
-'img-auth-isdir' => 'ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\80\8c$1ã\80\8dã\81«ã\82¢ã\82¯ã\82»ã\82¹ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81¦ã\81\84ã\81¾ã\81\99ã\80\82
+'img-auth-isdir' => 'ディレクトリ「$1」にアクセスしようとしています。
 ファイルへのアクセスのみが許可されています。',
 'img-auth-streaming' => '「$1」を転送中。',
 'img-auth-public' => 'img_auth.phpの機能は、非公開ウィキからのファイルの出力です。
@@ -2039,7 +2039,7 @@ URLが正しいものであり、ウェブサイトが稼働していること
 # File description page
 'file-anchor-link' => 'ファイル',
 'filehist' => 'ファイルの履歴',
-'filehist-help' => '過去の版のファイルを表示するには、表示したい版の日付/時刻をクリックしてください。',
+'filehist-help' => '過去の版のファイルを表示するには、その版の日時をクリックしてください。',
 'filehist-deleteall' => 'すべて削除',
 'filehist-deleteone' => '削除',
 'filehist-revert' => '差し戻す',
@@ -2105,14 +2105,14 @@ $1での[$2 ファイル解説ページ]にある説明を編集したほうが
 'filedelete-reason-dropdown' => '*よくある削除理由
 ** 著作権侵害
 ** 重複ファイル',
-'filedelete-edit-reasonlist' => '削除理由を編集する',
+'filedelete-edit-reasonlist' => '削除理由を編集',
 'filedelete-maintenance' => 'メンテナンス中のため、ファイルの削除と復帰は一時的に無効化されています。',
 'filedelete-maintenance-title' => 'ファイルを削除できません',
 
 # MIME search
 'mimesearch' => 'MIMEタイプ検索',
-'mimesearch-summary' => '指定したMIMEタイプに合致するファイルを検索します。
-contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</tt>)。',
+'mimesearch-summary' => 'このページでは、ファイルをMIMEタイプで絞り込みます。
+contenttype/subtypeの形式で入力してください(例:<tt>image/jpeg</tt>)。',
 'mimetype' => 'MIMEタイプ:',
 'download' => 'ダウンロード',
 
@@ -2165,8 +2165,8 @@ contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</
 
 'doubleredirects' => '二重転送',
 'doubleredirectstext' => 'これは他のリダイレクトページへのリダイレクトの一覧です。
\90\84è¡\8cã\81«ã\81¯ã\80\81æ\9c\80å\88\9dã\81®ã\83ªã\83\80ã\82¤ã\83¬ã\82¯ã\83\88ã\81¨ã\80\81ã\81\9dã\81®è»¢é\80\81å\85\88ã\81®ã\83ªã\83\80ã\82¤ã\83¬ã\82¯ã\83\88ã\80\81ã\81\9dã\81®ã\81¾ã\81\9f転é\80\81å\85\88へのリンクが表示されています。多くの場合、最終の転送先が正しい転送先であり、最初のリダイレクトは直接最後の転送先に向けるべきです。
-<del>æ\89\93ã\81¡æ¶\88ã\81\97ç·\9a</del>ã\81®ã\81¯ã\81\84ã\81£ã\81\9fé \85ç\9b®ã\81¯æ\97¢ã\81«ä¿®æ­£ã\81\95ã\82\8cています。',
\90\84è¡\8cã\81«ã\81¯ã\80\81æ\9c\80å\88\9dã\81®ã\83ªã\83\80ã\82¤ã\83¬ã\82¯ã\83\88ã\80\81ã\81\9dã\81®è»¢é\80\81å\85\88ã\81®ã\83ªã\83\80ã\82¤ã\83¬ã\82¯ã\83\88ã\80\81ã\81\95ã\82\89ã\81«ã\81\9dã\81®è»¢é\80\81å\85\88ã\80\81ã\81\9dã\82\8cã\81\9eã\82\8cへのリンクが表示されています。多くの場合、最終の転送先が正しい転送先であり、最初のリダイレクトは直接最後の転送先に向けるべきです。
+<del>æ\89\93ã\81¡æ¶\88ã\81\97ç·\9a</del>ã\81\8cå\85¥ã\81£ã\81\9fé \85ç\9b®ã\81¯æ\97¢ã\81«è§£æ±ºã\81\97ています。',
 'double-redirect-fixed-move' => '[[$1]]を移動しました。
 今後は[[$2]]に転送されます。',
 'double-redirect-fixed-maintenance' => '[[$1]]から[[$2]]への二重転送を修正します。',
@@ -2240,7 +2240,7 @@ contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</
 'ancientpages' => '最古のページ',
 'move' => '移動',
 'movethispage' => 'このページを移動',
-'unusedimagestext' => '以下のファイルは存在していますが、どのページにも埋め込まれていません。
+'unusedimagestext' => '以下のファイルは、存在しますがどのページにも埋め込まれていません。
 ただし、他のウェブサイトがURLでファイルに直接リンクする場合があることに注意してください。以下のファイル一覧には、そのような形で利用中のファイルが含まれている場合があります。',
 'unusedcategoriestext' => '以下のカテゴリはページが存在しますが、他のどのページおよびカテゴリでも使用されていません。',
 'notargettitle' => '対象が存在しません',
@@ -2257,7 +2257,7 @@ contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</
 'booksources-search-legend' => '書籍情報源を検索',
 'booksources-go' => '検索',
 'booksources-text' => '以下は、新古本を販売している外部サイトへのリンクの一覧で、検索中の本について、更に詳しい情報が提供されているかもしれません:',
-'booksources-invalid-isbn' => 'æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fISBNç\95ªå\8f·ã\81¯æ\9c\89å\8a¹ã\81§ã\81¯ã\81ªã\81\84ã\82\88ã\81\86ã\81§ã\81\99ã\80\82å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bæ\83\85å ±æº\90ã\81\8bã\82\89å\86\99ã\81\97é\96\93é\81\95ã\81\88ã\81¦ã\81\84ã\81¾ã\81\9bã\82\93ã\81\8b。',
+'booksources-invalid-isbn' => 'æ\8c\87å®\9aã\81\97ã\81\9fISBNç\95ªå\8f·ã\81¯æ\9c\89å\8a¹ã\81§ã\81¯ã\81ªã\81\84ã\82\88ã\81\86ã\81§ã\81\99ã\80\82æ\83\85å ±æº\90ã\81\8bã\82\89å\86\99ã\81\97é\96\93é\81\95ã\81\88ã\81¦ã\81\84ã\81ªã\81\84ã\81\8b確èª\8dã\81\97ã\81¦ã\81\8fã\81 ã\81\95ã\81\84。',
 
 # Special:Log
 'specialloguserlabel' => '実行者:',
@@ -2268,6 +2268,7 @@ contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</
 記録の種類、実行した利用者(大文字小文字は区別)、影響を受けたページ(大文字小文字は区別)による絞り込みができます。',
 'logempty' => '該当する記録はありません。',
 'log-title-wildcard' => 'この文字列で始まるページ名を検索',
+'showhideselectedlogentries' => '選択した記録の項目を表示/非表示',
 
 # Special:AllPages
 'allpages' => '全ページ',
@@ -2417,7 +2418,7 @@ contenttype/subtypeの形式で指定してください(例:<tt>image/jpeg</
 'watchmethod-recent' => '最近の更新内のウォッチされているページを確認中',
 'watchmethod-list' => 'ウォッチされているページ内の最近の更新を確認中',
 'watchlistcontains' => 'ウォッチリストには {{PLURAL:$1|$1 ページ}}が登録されています。',
-'iteminvalidname' => 'é \85ç\9b®ã\80\8c$1ã\80\8dã\81«ã\81¯å\95\8fé¡\8cã\81\8cã\81\82ã\82\8aã\81¾ã\81\99ã\80\81å\90\8då\89\8dã\81\8cæ­£ã\81\97ã\81\8fã\81\82ã\82\8aã\81¾ã\81\9bã\82\93ã\80\82',
+'iteminvalidname' => 'é \85ç\9b®ã\80\8c$1ã\80\8dã\81«ã\81¯å\95\8fé¡\8cã\81\8cã\81\82ã\82\8aã\81¾ã\81\99ã\80\82å\90\8då\89\8dã\81\8cæ­£ã\81\97ã\81\8fã\81\82ã\82\8aã\81¾ã\81\9bã\82\93...',
 'wlnote' => "$3 $4 までの{{PLURAL:$2|'''$2'''時間}}になされた{{PLURAL:$1|'''$1'''件の変更}}は以下の通りです。",
 'wlshowlast' => '次の期間で表示:$1時間、$2日間、$3',
 'watchlist-options' => 'ウォッチリストのオプション',
@@ -2521,17 +2522,17 @@ $2による直前の版へ変更されました。',
 # Edit tokens
 'sessionfailure-title' => 'セッションの失敗',
 'sessionfailure' => 'ログインのセッションに問題が発生しました。
\82»ã\83\83ã\82·ã\83§ã\83³ä¹\97ã\81£å\8f\96ã\82\8aã\82\92é\98²ã\81\90ã\81\9fã\82\81ã\81«æ\93\8dä½\9cã\81¯å\8f\96ã\82\8aæ¶\88ã\81\95ã\82\8cました。
\82»ã\83\83ã\82·ã\83§ã\83³ä¹\97ã\81£å\8f\96ã\82\8aã\82\92é\98²ã\81\90ã\81\9fã\82\81ã\80\81æ\93\8dä½\9cã\82\92å\8f\96ã\82\8aæ¶\88ã\81\97ました。
 前のページへ戻って再度読み込んだ後に、もう一度試してください。',
 
 # Protect
 'protectlogpage' => '保護記録',
 'protectlogtext' => '以下はページ保護に対する変更の記録です。
 現在、保護レベルを変更できるページについては[[Special:ProtectedPages|保護ページ一覧]]を参照してください。',
-'protectedarticle' => '「[[$1]]」を保護しました',
-'modifiedarticleprotection' => '「[[$1]]」の保護レベルを変更しました',
-'unprotectedarticle' => '「[[$1]]」の保護を解除しました',
-'movedarticleprotection' => '保護の設定を「[[$2]]」から「[[$1]]」へ移動しました',
+'protectedarticle' => ' が「[[$1]]」を保護しました',
+'modifiedarticleprotection' => ' が「[[$1]]」の保護レベルを変更しました',
+'unprotectedarticle' => ' が「[[$1]]」の保護を解除しました',
+'movedarticleprotection' => ' が保護の設定を「[[$2]]」から「[[$1]]」へ移動しました',
 'protect-title' => '「$1」の保護レベルを変更',
 'protect-title-notallowed' => '「$1」の保護レベルを表示',
 'prot_1movedto2' => '[[$1]] を [[$2]] へ移動',
@@ -2664,7 +2665,7 @@ $1',
 'month' => 'これ以前の月:',
 'year' => 'これ以前の年:',
 
-'sp-contributions-newbies' => '新規利用者の投稿のみ表示',
+'sp-contributions-newbies' => '新しい利用者からの投稿のみ表示',
 'sp-contributions-newbies-sub' => '新規利用者のみ',
 'sp-contributions-newbies-title' => '新規利用者の投稿記録',
 'sp-contributions-blocklog' => 'ブロック記録',
@@ -2723,7 +2724,7 @@ $1',
 ** 威圧的な態度/嫌がらせ
 ** 複数アカウントの不正利用
 ** 不適切な利用者名',
-'ipb-hardblock' => 'ログインしている利用者によるこのIPアドレスからの編集を不許可',
+'ipb-hardblock' => 'ログイン利用者によるこのIPアドレスからの編集を不許可',
 'ipbcreateaccount' => 'アカウント作成を禁止',
 'ipbemailban' => 'メール送信を防止',
 'ipbenableautoblock' => 'この利用者が最後に使用したIPアドレスと、後に編集しようとしたIPアドレスを自動的にブロック',
@@ -2737,7 +2738,7 @@ $1',
 'ipb-disableusertalk' => 'この利用者がブロックされている間に自分のトークページを編集するのを不許可',
 'ipb-change-block' => 'これらの設定で、利用者を再びブロック',
 'ipb-confirm' => 'ブロックの確認',
-'badipaddress' => '不正なIPアドレス',
+'badipaddress' => '無効なIPアドレス',
 'blockipsuccesssub' => 'ブロックしました',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]]をブロックしました。<br />
 [[Special:BlockList|ブロックの一覧]]を参照してください。',
@@ -2805,7 +2806,7 @@ $1のブロックの理由は「''$2''」です。",
 'block-log-flags-angry-autoblock' => '拡張自動ブロック有効',
 'block-log-flags-hiddenname' => '利用者名の秘匿',
 'range_block_disabled' => '範囲ブロックを作成する管理者機能は無効化されています。',
-'ipb_expiry_invalid' => '有効期限が不正です。',
+'ipb_expiry_invalid' => '有効期限が無効です。',
 'ipb_expiry_temp' => '利用者名秘匿のブロックは、無期限ブロックになります。',
 'ipb_hide_invalid' => 'このアカウントを秘匿できません。編集回数が非常に多いためだと思われます。',
 'ipb_already_blocked' => '「$1」は既にブロックされています',
@@ -2815,7 +2816,7 @@ $1のブロックの理由は「''$2''」です。",
 'ipb_cant_unblock' => 'エラー:ブロック ID $1 はありません。ブロックが既に解除されている可能性があります。',
 'ipb_blocked_as_range' => 'エラー:IPアドレス$1は直接ブロックされておらず、ブロック解除できませんでした。
 ただし、$2の範囲でブロックされており、こちらのブロックは別途解除できます。',
-'ip_range_invalid' => '不正なIP範囲です。',
+'ip_range_invalid' => 'IP範囲が無効です。',
 'ip_range_toolarge' => '/$1よりサイズの広い範囲ブロックは許可されていません。',
 'blockme' => '自分をブロック',
 'proxyblocker' => 'プロキシブロック係',
@@ -2846,9 +2847,9 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 'locknoconfirm' => '確認ボックスにチェックが入っていません。',
 'lockdbsuccesssub' => 'データベースのロックに成功しました',
 'unlockdbsuccesssub' => 'データベースのロックを除去しました',
-'lockdbsuccesstext' => 'ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81¯ã\83­ã\83\83ã\82¯ã\81\95ã\82\8cました。<br />
+'lockdbsuccesstext' => 'ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\82\92ã\83­ã\83\83ã\82¯ã\81\97ました。<br />
 メンテナンスが完了したら、忘れずに[[Special:UnlockDB|ロックを除去]]してください。',
-'unlockdbsuccesstext' => 'ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\83­ã\83\83ã\82¯ã\81¯è§£é\99¤ã\81\95ã\82\8cました。',
+'unlockdbsuccesstext' => 'ã\83\87ã\83¼ã\82¿ã\83\99ã\83¼ã\82¹ã\81®ã\83­ã\83\83ã\82¯ã\82\92解é\99¤ã\81\97ました。',
 'lockfilenotwritable' => 'データベースのロック ファイルが書き込み禁止です。
 データベースをロックまたはロック解除するには、ウェブ サーバーがこれに書き込める必要があります。',
 'databasenotlocked' => 'データベースはロックされていません。',
@@ -2857,17 +2858,18 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 # Move page
 'move-page' => '「$1」の移動',
 'move-page-legend' => 'ページの移動',
-'movepagetext' => "下のフォームを利用すると、ページ名が変更され、その履歴も変更先へ移動します。
-古いページは変更先へのリダイレクトページとなります。
-変更前のページへのリダイレクトは自動的に修正できます。
-自動的な修正を選択しない場合は、[[Special:DoubleRedirects|二重リダイレクト]]や[[Special:BrokenRedirects|迷子のリダイレクト]]を確認する必要があります。リンクを正しく維持するのは移動した人の責任です。
+'movepagetext' => "下のフォームを使用すると、ページ名を変更でき、そのページの履歴も変更先に移動できます。
+移動元のページは移動先への転送ページになります。
+移動元のページへのリダイレクトを自動的に修正できます。
+[[Special:DoubleRedirects|二重リダイレクト]]や[[Special:BrokenRedirects|迷子のリダイレクト]]を確認する必要があります。
+リンクを正しく維持するのは移動した人の責任です。
 
 移動先が既に存在する場合は、そのページが空またはリダイレクトで、かつ過去の版を持たない場合を除いて移動'''できません'''。つまり、間違えてページ名を変更した場合には元に戻せます。また移動によって既存のページを上書きしてしまうことはありません。
 
 '''注意!'''
\82\88ã\81\8fé\96²è¦§ã\81\95ã\82\8cã\82\8bã\83\9aã\83¼ã\82¸ã\82\84ã\80\81ä»\96ã\81®å¤\9aã\81\8fã\81®ã\83\9aã\83¼ã\82¸ã\81\8bã\82\89ã\83ªã\83³ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\9aã\83¼ã\82¸ã\82\92移å\8b\95ã\81\99ã\82\8bã\81¨äº\88æ\9c\9fã\81\9bã\81¬結果が起こるかもしれません。ページの移動に伴う影響をよく考えてから踏み切るようにしてください。",
-'movepagetext-noredirectfixer' => "下のフォームを利用すると、ページ名が変更され、ページの履歴も変更先へ移動します。
-古いページは変更先への転送ページとなります。
\82\88ã\81\8fé\96²è¦§ã\81\95ã\82\8cã\82\8bã\83\9aã\83¼ã\82¸ã\82\84ã\80\81ä»\96ã\81®å¤\9aã\81\8fã\81®ã\83\9aã\83¼ã\82¸ã\81\8bã\82\89ã\83ªã\83³ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\9aã\83¼ã\82¸ã\82\92移å\8b\95ã\81\99ã\82\8bã\81¨äº\88æ\9c\9fã\81\97ã\81ªã\81\84結果が起こるかもしれません。ページの移動に伴う影響をよく考えてから踏み切るようにしてください。",
+'movepagetext-noredirectfixer' => "下のフォームを使用すると、ページ名を変更でき、そのページの履歴も変更先に移動できます。
+移動元のページは移動先への転送ページになります。
 自動的な修正を選択しない場合は、[[Special:DoubleRedirects|二重リダイレクト]]や[[Special:BrokenRedirects|迷子のリダイレクト]]を確認する必要があります。
 つながるべき場所にリンクがつながるよう維持するのは移動した人の責任です。
 
@@ -2875,13 +2877,13 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 つまり、間違えてページ名を変更した場合には元に戻せます。また移動によって既存のページを上書きしてしまうことはありません。
 
 '''警告!'''
-å¤\9aã\81\8fé\96²è¦§ã\81\95ã\82\8cã\81\9fã\82\8aã\83ªã\83³ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\9aã\83¼ã\82¸ã\82\92移å\8b\95ã\81\99ã\82\8bã\81¨ã\80\81äº\88æ\9c\9fã\81\9bã\81¬å¤§ã\81\8dã\81ªå¤\89å\8c\96ã\81\8cèµ·ã\81\93ã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81¾ã\81\9bã\82\93
+å¤\9aã\81\8fé\96²è¦§ã\81\95ã\82\8cã\82\8bã\83\9aã\83¼ã\82¸ã\82\84å¤\9aã\81\8fã\83ªã\83³ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\83\9aã\83¼ã\82¸ã\82\92移å\8b\95ã\81\99ã\82\8bã\81¨ã\80\81äº\88æ\9c\9fã\81\97ã\81ªã\81\84大ã\81\8dã\81ªå¤\89å\8c\96ã\81\8cèµ·ã\81\93ã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\81\93ã\81¨ã\81«ã\81\94注æ\84\8fã\81\8fã\81 ã\81\95ã\81\84
 ページの移動に伴う影響をよく考えてから移動してください。",
-'movepagetalktext' => '関連付けられたトークページは、自動的に一緒に移動されます。ただしこれは、以下の場合を除きます:
-* ç©ºã\81§ã\81¯ã\81ªã\81\84ã\83\88ã\83¼ã\82¯ã\83\9aã\83¼ã\82¸ã\81\8cæ\96°ã\81\97ã\81\84å\90\8då\89\8dã\81§存在する場合
+'movepagetalktext' => "関連付けられたトークページも一緒に、自動的に移動されます。ただし、'''以下の場合を除きます:'''
+* ç§»å\8b\95å\85\88ã\81«ã\80\81空ã\81§ã\81¯ã\81ªã\81\84ã\83\88ã\83¼ã\82¯ã\83\9aã\83¼ã\82¸ã\81\8c存在する場合
 * 下のボックスのチェックを消した場合
 
-これらの場合、必要に応じて、トークページを移動または統合する必要があります。',
+これらの場合、必要に応じて、トークページを移動または統合する必要があります。",
 'movearticle' => '移動するページ:',
 'moveuserpage-warning' => "'''警告:'''利用者ページを移動しようとしています。移動した場合、ページのみが移動され、利用者名は''変更されない''点に注意してください。",
 'movenologin' => 'ログインしていません',
@@ -2900,7 +2902,7 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 'articleexists' => '指定された移動先には既にページが存在するか、名前が不適切です。
 別の名前を選択してください。',
 'cantmove-titleprotected' => '新しいページ名が作成保護されているため、この場所にページを移動できません',
-'talkexists' => "'''ã\83\9aã\83¼ã\82¸è\87ªèº«ã\81¯ç\84¡äº\8bã\81«ç§»å\8b\95ã\81\95ã\82\8cましたが、トークページは移動先のページが存在したため移動できませんでした。
+'talkexists' => "'''ã\83\9aã\83¼ã\82¸è\87ªèº«ã\81¯ç§»å\8b\95ã\81§ã\81\8dましたが、トークページは移動先のページが存在したため移動できませんでした。
 手動で統合してください。'''",
 'movedto' => '移動先:',
 'movetalk' => '付随するトークページも移動',
@@ -2933,7 +2935,7 @@ hideuser権限を持っていないため、この利用者のブロックを閲
 'imagenocrossnamespace' => 'ファイルを、ファイル名前空間以外に移動させることはできません',
 'nonfile-cannot-move-to-file' => 'ファイルではないものを、ファイル名前空間に移動させることはできません',
 'imagetypemismatch' => '新しいファイルの拡張子がファイルのタイプと一致していません',
-'imageinvalidfilename' => '対象ファイル名が不正です',
+'imageinvalidfilename' => '対象ファイル名が無効です',
 'fix-double-redirects' => 'このページへのリダイレクトがあればそのリダイレクトを修正',
 'move-leave-redirect' => '移動元にリダイレクトを作成する',
 'protectedpagemovewarning' => "'''警告:'''このページは保護されているため、管理者権限を持つ利用者のみが移動できます。
@@ -2992,7 +2994,7 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'djvu_no_xml' => 'DjVuファイルのXMLデータを取得できません',
 'thumbnail-temp-create' => '一時的なサムネイルファイルを作成できません',
 'thumbnail-dest-create' => 'サムネイルを保存先に保存できません',
-'thumbnail_invalid_params' => 'サムネイル引数が不正です',
+'thumbnail_invalid_params' => 'サムネイル引数が無効です',
 'thumbnail_dest_directory' => '出力ディレクトリを作成できません',
 'thumbnail_image-type' => '対応していない画像形式です',
 'thumbnail_gd-library' => 'GDライブラリの構成が不完全です:関数$1が不足',
@@ -3091,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' => 'メインページに移動する',
@@ -3113,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' => 'システムメッセージを表示',
@@ -3193,6 +3195,7 @@ MediaWiki 全般のローカライズ(地域化)に貢献したい場合は
 'spambot_username' => 'MediaWikiスパム除去',
 'spam_reverting' => '$1へのリンクを含まない最新の版に差し戻し',
 'spam_blanking' => 'すべての版が$1へのリンクを含んでいます。白紙化します。',
+'spam_deleting' => 'すべての版が$1へのリンクを含んでいます。削除します。',
 
 # Info page
 'pageinfo-title' => '「$1」の情報',
@@ -3255,16 +3258,16 @@ $1',
 'imagemaxsize' => "画像のサイズ制限:<br />''(ファイルページに対する)''",
 'thumbsize' => 'サムネイルの大きさ:',
 'widthheight' => '$1 × $2',
-'widthheightpage' => '$1×$2、$3 {{PLURAL:$3|ページ}}',
+'widthheightpage' => '$1 × $2、$3 {{PLURAL:$3|ページ}}',
 'file-info' => 'ファイルサイズ:$1、MIMEタイプ:$2',
-'file-info-size' => '$1×$2 ピクセル、ファイルサイズ:$3、MIMEタイプ:$4',
-'file-info-size-pages' => '$1×$2 ピクセル、ファイルサイズ:$3、MIMEタイプ:$4、$5 {{PLURAL:$5|ページ}}',
+'file-info-size' => '$1 × $2 ピクセル、ファイルサイズ:$3、MIMEタイプ:$4',
+'file-info-size-pages' => '$1 × $2 ピクセル、ファイルサイズ:$3、MIMEタイプ:$4、$5 {{PLURAL:$5|ページ}}',
 'file-nohires' => '高解像度版はありません。',
-'svg-long-desc' => 'SVG ファイル、$1×$2 ピクセル、ファイルサイズ:$3',
+'svg-long-desc' => 'SVG ファイル、$1 × $2 ピクセル、ファイルサイズ:$3',
 'show-big-image' => '高解像度での画像',
 'show-big-image-preview' => 'このプレビューのサイズ:$1。',
 'show-big-image-other' => 'その他の{{PLURAL:$2|解像度}}:$1。',
-'show-big-image-size' => '$1×$2 ピクセル',
+'show-big-image-size' => '$1 × $2 ピクセル',
 'file-info-gif-looped' => 'ループします',
 'file-info-gif-frames' => '$1 {{PLURAL:$1|フレーム}}',
 'file-info-png-looped' => '繰り返し',
@@ -3397,7 +3400,7 @@ Variants for Chinese language
 'exif-make' => '撮影機器のメーカー名',
 'exif-model' => '撮影機器のモデル名',
 'exif-software' => '使用ソフトウェア名',
-'exif-artist' => '作者',
+'exif-artist' => '作者',
 'exif-copyright' => '撮影著作権者/編集著作権者',
 'exif-exifversion' => 'Exifバージョン',
 'exif-flashpixversion' => '対応フラッシュピックスバージョン',
@@ -3784,7 +3787,7 @@ Variants for Chinese language
 'confirmemail_oncreate' => 'あなたのメールアドレスに確認用コードをメールでお送りしました。
 この確認をしなくてもログインはできますが、確認するまでウィキ内のメール関連の機能は無効化されます。',
 'confirmemail_sendfailed' => '{{SITENAME}}は確認メールを送信できませんでした。
\83¡ã\83¼ã\83«ã\82¢ã\83\89ã\83¬ã\82¹ã\81«ä¸\8dæ­£ã\81ªæ\96\87å­\97ã\81\8cå\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\81\8bã\81©ã\81\86ã\81\8b確èª\8dã\81\97ã\81¦ください。
\83¡ã\83¼ã\83«ã\82¢ã\83\89ã\83¬ã\82¹ã\81\8cç\84¡å\8a¹ã\81ªæ\96\87å­\97ã\82\92å\90«ã\82\93ã\81§ã\81\84ã\81ªã\81\84ã\81\8bã\81\94確èª\8dください。
 
 メールサーバーからの返答:$1',
 'confirmemail_invalid' => '確認用コードが正しくありません。
@@ -3855,7 +3858,7 @@ $5
 
 # action=purge
 'confirm_purge_button' => 'OK',
-'confirm-purge-top' => 'ã\83\9aã\83¼ã\82¸ã\81®ã\82­ã\83£ã\83\83ã\82·ã\83¥ã\82\92ç ´æ£\84ã\81\97ã\81¾ã\81\99ã\80\82ã\82\88ã\82\8dã\81\97ã\81\84ã\81§すか?',
+'confirm-purge-top' => 'ã\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81®ã\82­ã\83£ã\83\83ã\82·ã\83¥ã\82\92ç ´æ£\84ã\81\97ã\81¾すか?',
 'confirm-purge-bottom' => 'ページをパージすると、キャッシュが破棄され、強制的に最新の版が表示されます。',
 
 # action=watch/unwatch
@@ -3925,13 +3928,13 @@ $5
 'watchlistedit-normal-title' => 'ウォッチリストの編集',
 'watchlistedit-normal-legend' => 'ウォッチリストからページ名を除去',
 'watchlistedit-normal-explain' => 'ウォッチリストに入っているページ名を以下に表示しています。
-ページを除去するには、隣のボックスにチェックを入れて「{{int:watchlistedit-normal-submit}}」をクリックしてください。
+ページを除去するには、隣のボックスにチェックを入れて「{{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' => '以下に、ウォッチリストに含まれるページ名を列挙しています。この一覧で追加や除去ができます。
 1行に1ページ名です。
 完了したら、「{{int:Watchlistedit-raw-submit}}」をクリックしてください。
 [[Special:EditWatchlist|標準の編集ページ]]も使用できます。',
@@ -4058,7 +4061,7 @@ MediaWikiは、有用であることを期待して配布されていますが
 'fileduplicatesearch-legend' => '重複の検索',
 'fileduplicatesearch-filename' => 'ファイル名:',
 'fileduplicatesearch-submit' => '検索',
-'fileduplicatesearch-info' => '$1×$2 ピクセル<br />ファイルサイズ:$3<br />MIMEタイプ:$4',
+'fileduplicatesearch-info' => '$1 × $2 ピクセル<br />ファイルサイズ:$3<br />MIMEタイプ:$4',
 'fileduplicatesearch-result-1' => 'ファイル「$1」と重複するファイルはありません。',
 'fileduplicatesearch-result-n' => 'ファイル「$1」には {{PLURAL:$2|$2 件の重複ファイル}}があります。',
 'fileduplicatesearch-noresults' => '「$1」という名前のファイルはありません。',
@@ -4086,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' => '有効な変更タグ',
@@ -4121,11 +4124,11 @@ MediaWikiは、有用であることを期待して配布されていますが
 'compare-revision-not-exists' => '指定された版は存在しません。',
 
 # Database error messages
-'dberr-header' => '問題発生中です',
+'dberr-header' => 'このウィキには問題があります',
 'dberr-problems' => '申し訳ありません!
 このウェブサイトに技術的な問題が発生しています。',
 'dberr-again' => '数分間待った後、もう一度読み込んでください。',
-'dberr-info' => '(データベースサーバー:$1に接続できませんでした。)',
+'dberr-info' => '(データベースサーバーに接続できませんでした:$1)',
 'dberr-usegoogle' => '元に戻るまで、Googleを利用して検索できます。',
 'dberr-outofdate' => 'それらが収集した内容は古い可能性があることに注意してください。',
 'dberr-cachederror' => 'これは要求されたページをキャッシュした複製であり、古くなっている可能性があります。',
@@ -4191,12 +4194,12 @@ MediaWikiは、有用であることを期待して配布されていますが
 'feedback-error3' => 'エラー:APIからの応答がありません',
 'feedback-thanks' => 'ありがとうございます。フィードバックを「[$2 $1]」のページに投稿しました。',
 'feedback-close' => '完了',
-'feedback-bugcheck' => 'Great! [$1 既出のバグ]に既に含まれていないか確認してください。',
+'feedback-bugcheck' => 'Great! [$1 既出のバグ]に既に含まれていないかご確認ください。',
 'feedback-bugnew' => 'チェックしました。バグを報告します。',
 
 # API errors
 'api-error-badaccess-groups' => 'このウィキへのファイルのアップロードが許可されていません。',
-'api-error-badtoken' => '内部エラー:トークンが不正です。',
+'api-error-badtoken' => '内部エラー:トークンが正しくありません。',
 'api-error-copyuploaddisabled' => 'URLによるアップロードはこのサーバーでは無効になっています。',
 'api-error-duplicate' => '当ウェブサイト上には、既に同じ内容の{{PLURAL:$1|[$2 他のファイル]が|[$2 他のファイルがいくつか]}}存在しています。',
 'api-error-duplicate-archive' => 'サイト上に同じ内容の{{PLURAL:$1|[$2 別のファイル]が|[$2 他のファイルがいくつか]}}既にありましたが、{{PLURAL:$1|それは|それらは}}削除されました。',
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 4bb059b..2aa66fb 100644 (file)
@@ -868,6 +868,7 @@ Gunakna tombol radio kanggo nggabungaké révisi-révisi sing digawé sadurungé
 
 # Diffs
 'history-title' => 'Sajarah revisi saka "$1"',
+'difference-title' => '$1: Bèntenipun revisi',
 'lineno' => 'Larikan $1:',
 'compareselectedversions' => 'Bandhingna vèrsi kapilih',
 'showhideselectedversions' => 'Tampilaké/dhelikaké révisi kapilih',
index c8a0c2c..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''",
@@ -2897,6 +2899,7 @@ $1',
 'spambot_username' => 'სპამის გასუფთავება',
 'spam_reverting' => 'დაბრუნება ბოლო ვერსიასთან, რომელიც არ შეიცავს ბმულს $1-თან',
 'spam_blanking' => 'ყველა გვერდი შეიცავს ბმულს $1-გვერდზე. გასუფთავება',
+'spam_deleting' => 'ყველა ვერსია შეიცავდა ბმულს $1-ზე, მიმდინარეობს წაშლა',
 
 # Info page
 'pageinfo-title' => 'ინფორმაცია „$1“-თვის',
@@ -3883,4 +3886,6 @@ MediaWiki ვრცელდება იმ იმედით, რომ ი
 'duration-centuries' => '$1 {{PLURAL:$1|საუკუნე|საუკუნე}}',
 'duration-millennia' => '$1 {{PLURAL:$1|ათასწლეული|ათასწლეული}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'ვერ მოხერხდა ბლოკირების მიღება სერვერზე $1.',
 );
index d68e560..04f8a7c 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' => "'''Хэукъуэгъуэ къыхэкӀа, серверым у гъэтэрэзыгъуэр къиштэфакъым сессиэм и идентификациэр фӀэкӀуэдри.
 Иджыри зэ щӀыжьи еплъ.
@@ -675,9 +682,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 +712,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,6 +878,9 @@ $1",
 'suppressionlogtext' => 'ИщӀагъымкӀэ гъэлъэгъуауэ щыт яужырей ихыгъуэхэмрэ теубыдэгъуэхэмрэ я тхылъ, тхьэмадэхэм ямгъэлъэгъуа хъыбархэр хэтху.
 Еплъ [[Special:IPBlockList|IP-теубыдыгъуэхэм я тхылъ]], екӀуэкӀ теубыдэгъуэхэр лъагъун щхьэкӀэ.',
 
+# History merging
+'mergehistory' => 'Гъэтэрэзыгъуэхэм я тхыдэ зыуэ зэхэгъэхьа',
+
 # Merge log
 'revertmerge' => 'Зыхэдзын',
 
@@ -895,12 +912,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 17f4000..765ebf6 100644 (file)
@@ -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ıraxê mı',
+'mycontris' => 'İştıraqê mı',
 'contribsub2' => 'Serba $1 ($2)',
 'uctop' => '(ser)',
 'month' => 'Asme ra (u ravêr):',
index 4b4290d..1305985 100644 (file)
@@ -343,10 +343,10 @@ $messages = array(
 'tog-hidepatrolled' => '최근 바뀜에서 검토된 편집을 숨기기',
 'tog-newpageshidepatrolled' => '새 문서 목록에서 검토된 문서를 숨기기',
 'tog-extendwatchlist' => '주시문서 목록에서 가장 최근의 편집만이 아닌 모든 편집을 보기',
-'tog-usenewrc' => '향상된 최근 바뀜 (자바스크립트)',
+'tog-usenewrc' => '최근 바뀜 및 주시 문서 목록에서 문서별 그룹 바뀜 (자바스크립트 필요)',
 'tog-numberheadings' => '머릿글 번호 매기기',
 'tog-showtoolbar' => '편집창에 툴바 보이기 (자바스크립트)',
-'tog-editondblclick' => '더블클릭으로 문서 편집하기 (자바스크립트)',
+'tog-editondblclick' => '더블 클릭으로 문서 편집하기 (자바스크립트)',
 'tog-editsection' => '[편집] 링크로 부분 편집하기',
 'tog-editsectiononrightclick' => '제목을 오른쪽 클릭해서 부분 편집하기 (자바스크립트)',
 'tog-showtoc' => '문서의 차례 보여주기 (머릿글이 4개 이상인 경우)',
@@ -355,7 +355,7 @@ $messages = array(
 'tog-watchdefault' => '내가 편집하는 문서를 주시문서 목록에 추가',
 'tog-watchmoves' => '내가 이동하는 문서를 주시문서 목록에 추가',
 'tog-watchdeletion' => '내가 삭제하는 문서를 주시문서 목록에 추가',
-'tog-minordefault' => '‘사소한 편집’을 기본적으로 선택하기',
+'tog-minordefault' => '사소한 편집을 기본적으로 선택하기',
 'tog-previewontop' => '편집상자 앞에 미리보기 보이기',
 'tog-previewonfirst' => '처음 편집할 때 미리보기 보기',
 'tog-nocache' => '브라우저의 문서 캐시 끄기',
@@ -455,11 +455,11 @@ $messages = array(
 'category-empty' => '이 분류에 속하는 문서나 자료가 없습니다.',
 'hidden-categories' => '{{PLURAL:$1|숨은 분류}}',
 'hidden-category-category' => '숨은 분류',
-'category-subcat-count' => '{{PLURAL:$2|이 분류에는 하위 분류 1 개만이 속해 있습니다.|다음은 이 분류에 속하는 하위 분류 $2 개 가운데 $1 개입니다.}}',
+'category-subcat-count' => '{{PLURAL:$2|이 분류에는 하위 분류 1개만이 속해 있습니다.|다음은 이 분류에 속하는 하위 분류 $2개 가운데 $1개입니다.}}',
 'category-subcat-count-limited' => '이 분류에 하위분류가 $1개 있습니다.',
-'category-article-count' => '{{PLURAL:$2|이 분류에는 문서 1 개만이 속해 있습니다.|다음은 이 분류에 속하는 문서 $2 개 가운데 $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' => '{{PLURAL:$2|이 분류에는 파일 1개만이 속해 있습니다.|다음은 이 분류에 속하는 파일 $2개 가운데 $1개입니다.}}',
 'category-file-count-limited' => '이 분류에 파일이 $1개 있습니다.',
 'listingcontinuesabbrev' => ' (계속)',
 'index-category' => '색인된 문서',
@@ -615,7 +615,7 @@ $1',
 'collapsible-expand' => '보이기',
 'thisisdeleted' => '$1을 보거나 되살리겠습니까?',
 'viewdeleted' => '$1을 보겠습니까?',
-'restorelink' => '삭제된 편집 $1 개',
+'restorelink' => '삭제된 편집 $1개',
 'feedlinks' => '피드:',
 'feed-invalid' => '잘못된 구독 피드 방식입니다.',
 'feed-unavailable' => '피드 서비스는 제공하지 않습니다',
@@ -695,7 +695,7 @@ $1',
 'badtitle' => '잘못된 제목',
 'badtitletext' => '문서 제목이 잘못되었거나 비어있습니다.',
 'perfcached' => '다음 자료는 캐시된 것이므로 현재 상황을 반영하지 않을 수 있습니다. 캐시에 최대 {{PLURAL:$1|결과 $1개}}가 있습니다.',
-'perfcachedts' => '다음 자료는 캐시된 것으로, $1에 마지막으로 갱신되었습니다.  캐시에 최대 {{PLURAL:$4|$4개의 결과}}가 있습니다.',
+'perfcachedts' => '다음 자료는 캐시된 것으로, $1에 마지막으로 갱신되었습니다.  캐시에 최대 {{PLURAL:$4|결과 $4개}}가 있습니다.',
 'querypage-no-updates' => '이 문서의 갱신이 현재 비활성화되어 있습니다. 자료가 잠시 갱신되지 않을 것입니다.',
 'wrong_wfQuery_params' => 'wfQuery()에서 잘못된 매개변수 발생<br />함수: $1<br />쿼리: $2',
 'viewsource' => '내용 보기',
@@ -722,6 +722,8 @@ $2',
 저장소 관리자가 파일 저장소를 잠근 이유에 대해 "\'\'$3\'\'"이라는 설명을 남겼습니다.',
 'invalidtitle-knownnamespace' => '제목 오류: 이름공간 "$2"와 텍스트 "$3"',
 'invalidtitle-unknownnamespace' => '제목 오류: 알 수 없는 이름공간 번호 "$1"과, 텍스트 "$2"',
+'exception-nologin' => '로그인하지 않음',
+'exception-nologin-text' => '이 문서나 행동은 이 위키에 로그인을 해야 합니다.',
 
 # Virus scanner
 'virus-badscanner' => "잘못된 설정: 알 수 없는 바이러스 검사기: ''$1''",
@@ -738,7 +740,7 @@ $2',
 [[Special:Preferences|{{SITENAME}} 사용자 환경 설정]]을 바꿀 수 있습니다.',
 'yourname' => '계정 이름:',
 'yourpassword' => '비밀번호:',
-'yourpasswordagain' => '비밀번호 입력:',
+'yourpasswordagain' => '비밀번호 다시 입력:',
 'remembermypassword' => '이 컴퓨터에서 로그인 상태를 저장하기 (최대 $1일)',
 'securelogin-stick-https' => '로그인 후에도 HTTPS 연결 상태를 유지합니다.',
 'yourdomainname' => '도메인 이름',
@@ -778,7 +780,7 @@ $2',
 'nouserspecified' => '사용자 이름을 입력하지 않았습니다.',
 'login-userblocked' => '이 사용자는 차단되었습니다. 로그인할 수 없습니다.',
 'wrongpassword' => '입력한 비밀번호가 다릅니다. 다시 시도해 주세요.',
-'wrongpasswordempty' => 'ë¹\84ë°\80ë²\88í\98¸ë¥¼ ì\93°지 않았습니다.
+'wrongpasswordempty' => 'ë¹\84ë°\80ë²\88í\98¸ë¥¼ ì\9e\85ë ¥í\95\98지 않았습니다.
 다시 시도해 주세요.',
 'passwordtooshort' => '비밀번호는 $1 문자 이상이어야 합니다.',
 'password-name-match' => '비밀번호는 사용자 이름과 반드시 달라야 합니다.',
@@ -797,7 +799,7 @@ $2',
 'eauthentsent' => '확인 이메일을 보냈습니다. 이메일 내용의 지시대로 계정 확인 절차를 실행해 주십시오.',
 'throttled-mailpassword' => '비밀번호 확인 이메일을 이미 최근 $1 시간 안에 보냈습니다. 악용을 방지하기 위해 비밀번호 확인 메일은 $1 시간마다 오직 하나씩만 보낼 수 있습니다.',
 'mailerror' => '메일 보내기 오류: $1',
-'acct_creation_throttle_hit' => '당신의 IP 주소를 이용한 방문자가 이전에 이미 계정을 $1개 생성하여, 계정 생성 한도를 초과하였습니다.
+'acct_creation_throttle_hit' => '당신의 IP 주소를 이용한 방문자가 이전에 이미 계정을 $1개 만들어, 계정 생성 한도를 초과하였습니다.
 따라서 지금은 이 IP 주소로는 더 이상 계정을 만들 수 없습니다.',
 'emailauthenticated' => '당신의 이메일 주소는 $2 $3에 인증되었습니다.',
 'emailnotauthenticated' => '이메일 주소를 인증하지 않았습니다. 이메일 확인 절차를 거치지 않으면 다음 이메일 기능을 사용할 수 없습니다.',
@@ -874,7 +876,7 @@ $2
 'passwordreset-emailerror-capture' => '비밀번호 찾기 이메일이 생성되어 아래에 표시되었지만 발송하는 데에는 실패했습니다: $1',
 
 # Special:ChangeEmail
-'changeemail' => 'E-mail 주소 변경',
+'changeemail' => '이메일 주소 바꾸기',
 'changeemail-header' => '계정 메일 주소 변경',
 'changeemail-text' => '이메일 주소를 바꾸려면 이 양식을 채워주십시오. 변경 내용을 확인하기 위해 당신의 비밀번호를 입력해야합니다.',
 'changeemail-no-info' => '이 특수 문서에 직접 접근하려면 반드시 로그인해야 합니다.',
@@ -1044,7 +1046,7 @@ $1, 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 
 'template-semiprotected' => '(준보호됨)',
 'hiddencategories' => '이 문서는 다음 숨은 분류 $1 개에 속해 있습니다:',
 'edittools' => '<!-- 이 문서는 편집 창과 파일 올리기 창에 출력됩니다. -->',
-'nocreatetitle' => '문서 생성 제한',
+'nocreatetitle' => '문서 만들기 제한',
 'nocreatetext' => '{{SITENAME}}에서 새로운 문서를 생성하는 것은 제한되어 있습니다. 이미 존재하는 다른 문서를 편집하거나, [[Special:UserLogin|로그인하거나 계정을 만들 수 있습니다]].',
 'nocreate-loggedin' => '새 문서를 만들 권한이 없습니다.',
 'sectioneditnotsupported-title' => '부분 편집 지원 안됨',
@@ -1247,7 +1249,7 @@ $1",
 'mergehistory-go' => '합칠 수 있는 편집 보기',
 'mergehistory-submit' => '문서 역사 합치기',
 'mergehistory-empty' => '합칠 수 있는 판이 없습니다.',
-'mergehistory-success' => '[[:$1]] 문서의 $3개의 판이 [[:$2]]에 성공적으로 합쳐졌습니다.',
+'mergehistory-success' => '[[:$1]] 문서의 판 $3개가 [[:$2]]에 성공적으로 합쳐졌습니다.',
 'mergehistory-fail' => '문서 역사 합치기 명령을 수행할 수 없습니다. 문서와 시간 변수를 다시 확인하십시오.',
 'mergehistory-no-source' => '원본인 $1 문서가 존재하지 않습니다.',
 'mergehistory-no-destination' => '대상인 $1 문서가 존재하지 않습니다.',
@@ -1326,7 +1328,7 @@ $1",
 'searchall' => '모두',
 'showingresults' => '<strong>$2</strong>번 부터의 <strong>결과 $1개</strong>입니다.',
 'showingresultsnum' => "'''$2'''번 부터의 '''결과 $3개''' 입니다.",
-'showingresultsheader' => "'''$4''' 검색어에 대하여 '''$3'''개의 결과 중 {{PLURAL:$5|'''$1'''개|'''$1 - $2'''번째}}를 보여 주고 있습니다.",
+'showingresultsheader' => "'''$4''' 검색어에 대하여 결과 '''$3'''개 중 {{PLURAL:$5|'''$1'''개|'''$1 - $2'''번째}}를 보여 주고 있습니다.",
 'nonefound' => "'''참고''': 몇개의 이름공간만 기본 검색 범위입니다. 토론이나 틀 등의 모든 자료를 검색하기 위해서는 접두어로 '''all:''' 어떤 이름공간을 위해서는 접두어로 그 이름공간을 쓸 수 있습니다.",
 'search-nonefound' => '검색 결과가 없습니다.',
 'powersearch' => '찾기',
@@ -1519,8 +1521,8 @@ $1",
 # Rights
 'right-read' => '문서 읽기',
 'right-edit' => '문서 편집',
-'right-createpage' => '문서 생성 (토론 문서 제외)',
-'right-createtalk' => '토론 문서 생성',
+'right-createpage' => '문서 만들기 (토론 문서 제외)',
+'right-createtalk' => '토론 문서 만들기',
 'right-createaccount' => '새 계정 만들기',
 'right-minoredit' => '사소한 편집 사용 가능',
 'right-move' => '문서 이동',
@@ -1568,7 +1570,7 @@ $1",
 'right-patrol' => '다른 사용자의 편집을 검토',
 'right-autopatrol' => '자신의 편집을 자동으로 검토',
 'right-patrolmarks' => '최근 바뀜에서 검토 표시를 보기',
-'right-unwatchedpages' => '주시되지 않 문서 목록 보기',
+'right-unwatchedpages' => '주시되지 않 문서 목록 보기',
 'right-mergehistory' => '문서의 역사를 합침',
 'right-userrights' => '모든 사용자의 권한 조정',
 'right-userrights-interwiki' => '다른 위키의 사용자 권한을 조정',
@@ -1588,7 +1590,7 @@ $1",
 'action-read' => '이 문서를 읽기',
 'action-edit' => '문서 편집',
 'action-createpage' => '문서 생성',
-'action-createtalk' => '토론 문서 생성하기',
+'action-createtalk' => '토론 문서 만들기',
 'action-createaccount' => '새 계정 만들기',
 'action-minoredit' => '이 편집을 사소한 편집으로 표시하기',
 'action-move' => '이 문서 옮기기',
@@ -1614,7 +1616,7 @@ $1",
 'action-importupload' => '파일 올리기를 통해 문서를 가져올',
 'action-patrol' => '다른 사용자의 편집을 검토된 것으로 표시하기',
 'action-autopatrol' => '자신의 편집을 검토된 것으로 표시할',
-'action-unwatchedpages' => '주시되지 않 문서 목록 보기',
+'action-unwatchedpages' => '주시되지 않 문서 목록 보기',
 'action-mergehistory' => '이 문서의 역사 합치기',
 'action-userrights' => '모든 사용자의 권한을 조정',
 'action-userrights-interwiki' => '다른 위키의 사용자 권한을 조정',
@@ -1631,8 +1633,8 @@ $1",
 'recentchanges-label-minor' => '사소한 편집',
 'recentchanges-label-bot' => '봇의 편집',
 'recentchanges-label-unpatrolled' => '아직 검토되지 않은 편집',
-'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¤.",
+'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',
@@ -1837,7 +1839,7 @@ $1',
 'backend-fail-connect' => "'$1' 저장 백엔드에 접속하지 못했습니다.",
 'backend-fail-internal' => '"$1" 저장 백엔드에 알 수 없는 오류가 발생했습니다.',
 'backend-fail-contenttype' => '"$1"에 저장하기 위한 파일의 내용 유형을 판별하지 못했습니다.',
-'backend-fail-batchsize' => '저장 백엔드에서 $1개의 파일 {{PLURAL:$1|작업}}이 쌓여 있습니다; 한계는 $2개입니다.',
+'backend-fail-batchsize' => '저장 백엔드에서 파일 {{PLURAL:$1|작업}} $1개가 쌓여 있습니다; 한계는 $2개입니다.',
 'backend-fail-usable' => '파일 저장 권한이 없거나 저장 위치가 빠졌기 때문에 $1 파일을 저장할 수 없습니다.',
 
 # File journal errors
@@ -1945,7 +1947,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'filehist-comment' => '내용',
 'filehist-missing' => '파일을 찾을 수 없음',
 'imagelinks' => '이 파일을 사용하는 문서',
-'linkstoimage' => '다음 $1ê°\9cì\9d\98 ë¬¸ì\84\9cê°\80 ì\9d´ í\8c\8cì\9d¼ì\9d\84 ì\82¬ì\9a©í\95\98ê³  ì\9e\88ì\8aµë\8b\88ë\8b¤:',
+'linkstoimage' => '다음 ë¬¸ì\84\9c $1ê°\9cê°\80 ì\9d´ í\8c\8cì\9d¼ì\9d\84 ì\82¬ì\9a©í\95\98ê³  ì\9e\88ì\8aµë\8b\88ë\8b¤:',
 'linkstoimage-more' => '$1개 이상의 문서가 이 파일을 가리키고 있습니다.
 다음 목록은 이 파일을 가리키는 처음 $1개 문서만 보여주고 있습니다.
 이 파일을 가리키는 모든 문서를 보려면 [[Special:WhatLinksHere/$2|여기]]를 참고해 주십시오.',
@@ -2001,7 +2003,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'filedelete-maintenance-title' => '파일을 삭제할 수 없습니다',
 
 # MIME search
-'mimesearch' => 'MIME 검색',
+'mimesearch' => 'MIME 찾기',
 'mimesearch-summary' => 'MIME 타입에 해당하는 파일을 검색합니다. MIME 값을 <tt>image/jpeg</tt> 형태로 입력해주세요.',
 'mimetype' => 'MIME 종류:',
 'download' => '다운로드',
@@ -2081,8 +2083,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}}에서 다른 모든 문서에서 링크되거나 틀로 포함되지 않은 문서의 목록입니다.',
@@ -2367,7 +2369,7 @@ $UNWATCHURL
 'exblank' => '빈 문서',
 'delete-confirm' => '‘$1’ 삭제',
 'delete-legend' => '삭제',
-'historywarning' => "'''주의''': 삭제하려는 문서에 약 $1개의 과거 편집 내역이 있습니다:",
+'historywarning' => "'''주의:''' 삭제하려는 문서에 과거 편집 내역 약 $1개가 있습니다:",
 'confirmdeletetext' => '문서와 문서 역사를 삭제하려고 합니다. 삭제하려는 문서가 맞는지, 이 문서를 삭제하는 것이 [[{{MediaWiki:Policy-url}}|정책]]에 맞는 행동인지를 확인해 주세요.',
 'actioncomplete' => '명령 완료',
 'actionfailed' => '명령 실패',
@@ -2675,7 +2677,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 [[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' => '자신의 토론 문서 편집 불가',
@@ -2792,7 +2794,7 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'movelogpage' => '이동 기록',
 'movelogpagetext' => '아래는 옮겨진 문서의 목록입니다.',
 'movesubpage' => '{{PLURAL:$1}}하위 문서',
-'movesubpagetext' => '이 문서에는 다음 $1ê°\9cì\9d\98 í\95\98ì\9c\84 ë¬¸ì\84\9cê°\80 ì\9e\88ì\8aµë\8b\88ë\8b¤.',
+'movesubpagetext' => '이 문서에는 다음 í\95\98ì\9c\84 ë¬¸ì\84\9c $1ê°\9cê°\80 ì\9e\88ì\8aµë\8b\88ë\8b¤.',
 'movenosubpage' => '이 문서에는 하위 문서가 존재하지 않습니다.',
 'movereason' => '이유:',
 'revertmove' => '되돌리기',
@@ -3068,7 +3070,8 @@ $1 사용자가 차단된 이유는 다음과 같습니다: "$2"',
 'spamprotectionmatch' => '문제가 되는 부분은 다음과 같습니다: $1',
 'spambot_username' => 'MediaWiki 스팸 제거',
 'spam_reverting' => '$1을 포함하지 않는 최신 버전으로 되돌림',
-'spam_blanking' => '모든 버전에 $1 링크를 포함하고 있어 문서를 비움',
+'spam_blanking' => '모든 버전에 $1 링크를 포함하고 있어 차단함',
+'spam_deleting' => '모든 버전에 $1 링크를 포함하고 있어 삭제함',
 
 # Info page
 'pageinfo-title' => '"$1" 문서에 대한 정보',
@@ -3777,7 +3780,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' => '버전',
@@ -3864,7 +3867,8 @@ $5
 
 # Database error messages
 'dberr-header' => '이 위키에 문제가 있습니다.',
-'dberr-problems' => '죄송합니다. 이 사이트는 기술적인 문제가 있습니다.',
+'dberr-problems' => '죄송합니다!
+이 사이트는 기술적인 문제가 있습니다.',
 'dberr-again' => '잠시 후에 다시 시도해주세요.',
 'dberr-info' => '(데이터베이스에 접속할 수 없습니다: $1)',
 'dberr-usegoogle' => '그 동안 구글을 통해 검색할 수도 있습니다.',
@@ -3890,7 +3894,7 @@ $5
 # New logging system
 'logentry-delete-delete' => '$1 사용자가 $3 문서를 삭제하였습니다.',
 'logentry-delete-restore' => '$1 사용자가 $3 문서를 복구하였습니다.',
-'logentry-delete-event' => '$1 사용자가 $3의 $5개의 기록에 대해 표시 설정을 바꾸었습니다: $4',
+'logentry-delete-event' => '$1 사용자가 $3의 기록 $5개에 대해 표시 설정을 바꾸었습니다: $4',
 'logentry-delete-revision' => '$1 사용자가 $3 문서의 {{PLURAL:$5|$5}}개 편집의 설정을 변경하였습니다: $4',
 'logentry-delete-event-legacy' => '$1 사용자가 $3 문서 기록의 표시 설정을 변경하였습니다.',
 'logentry-delete-revision-legacy' => '$1 사용자가 $3 문서 편집의 표시 설정을 변경하였습니다.',
@@ -3984,4 +3988,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..2d6b020 100644 (file)
@@ -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!',
@@ -619,6 +619,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 +648,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',
@@ -3053,7 +3055,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.',
@@ -3436,7 +3438,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 +3492,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 +3516,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 +3855,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 +3926,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.',
index ba7113e..4d9a15b 100644 (file)
@@ -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,7 +427,7 @@ 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',
@@ -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
@@ -632,13 +632,18 @@ 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î].',
-'noarticletext-nopermission' => '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î].
-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î].',
+'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>.',
 'userpage-userdoesnotexist' => 'Hesabê bikarhêneran "<nowiki>$1</nowiki>" nehatiye qeydkirin. Heke tu bixwazî vê rûpelê çêkî/biguherînî ji kerema xwe lê binêre.',
 '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î.'''
@@ -835,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û',
@@ -960,13 +965,13 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'group-user' => 'Bikarhêner',
 'group-bot' => 'Bot',
 'group-sysop' => 'Rêveber',
-'group-bureaucrat' => 'Bûrokrat',
+'group-bureaucrat' => 'Burokrat',
 'group-all' => '(hemû)',
 
 'group-user-member' => 'Bikarhêner',
 'group-bot-member' => '{{GENDER:$1|bot}}',
 'group-sysop-member' => '{{GENDER:$1|rêveber}}',
-'group-bureaucrat-member' => 'Burokrat',
+'group-bureaucrat-member' => '{{GENDER:$1|burokrat}}',
 
 'grouppage-user' => '{{ns:project}}:Bikarhêner',
 'grouppage-bot' => '{{ns:project}}:Bot',
@@ -1048,8 +1053,8 @@ Sedema qedexekirina $3 ev e: ''$2''",
 'recentchangeslinked-page' => 'Navê rûpelê',
 
 # Upload
-'upload' => 'Wêneyekî barbike',
-'uploadbtn' => 'Wêneyî (yan tiştekî din ê medyayê) bar bike',
+'upload' => 'Wêneyekî bar bike',
+'uploadbtn' => 'Wêneyekî bar bike',
 'reuploaddesc' => 'Barkirinê biskîne û dîsa here rûpela barkirinê.',
 'uploadnologin' => 'Xwe tomar nekir',
 'uploadnologintext' => 'Ji bo barkirina wêneyan divê ku tu [[Special:UserLogin|têkevî]].',
@@ -1125,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
@@ -1153,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:',
@@ -1733,7 +1738,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.',
 
@@ -1988,7 +1993,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û',
 
@@ -2017,7 +2022,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
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 47cb98d..726c146 100644 (file)
@@ -10,6 +10,7 @@
  * @author AidaBishkek
  * @author Aidabishkek
  * @author Amire80
+ * @author Chorobek
  * @author Muratjumashev
  * @author Ztimur
  */
@@ -36,15 +37,15 @@ $messages = array(
 'tog-usenewrc' => 'Акыркы өзгөрүүлөрдүн жакшыртылган тизмесин колдонуу (JavaScript талап кылынат)',
 'tog-numberheadings' => 'Башсаптарды автоматтык түрдө номурлоо',
 'tog-showtoolbar' => 'Оңдоо учурунда аспаптар тактасын көрсөтүү (JavaScript талап кылынат)',
-'tog-editondblclick' => 'Ð\9aоÑ\88 Ñ\87еÑ\80Ñ\82Ò¯Ò¯ Ð¼ÐµÐ½ÐµÐ½ баракты оңдоо (JavaScript талап кылынат)',
+'tog-editondblclick' => 'Эки Ð±Ð°Ñ\81Ñ\8bп баракты оңдоо (JavaScript талап кылынат)',
 'tog-editsection' => 'Ар бир секция үчүн «оңдоо» шилтемеси',
 
-'underline-always' => 'Ð\90Ñ\80 Ð´айым',
+'underline-always' => 'Ð\94айым',
 'underline-never' => 'Эч качан',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Оңдоо талаасынын арибинин стили:',
-'editfont-default' => 'Ð\90Ñ\80алагÑ\8bÑ\87Ñ\82Ñ\8bн Ð°Ñ\80ибин ÐºÐ»Ð´Ð¾Ð½Ñ\83Ñ\83',
+'editfont-default' => 'СеÑ\80епÑ\87инин Ð°Ñ\80ибин ÐºÐ¾Ð»Ð´Ð¾Ð½',
 'editfont-monospace' => 'Моножазы ариби',
 
 # Dates
@@ -102,7 +103,7 @@ $messages = array(
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Категория|Категориялар}}',
 'category_header' => '"$1" категориядагы барактар',
-'subcategories' => 'Ð\9aөмөк категориялар',
+'subcategories' => 'Ð\98Ñ\87ки категориялар',
 'category-media-header' => '"$1" категориясындагы медиафайлдар',
 'category-empty' => "''Бул категорияда азыр эч бир барак же файл жок.''",
 'hidden-categories' => '{{PLURAL:$1|Жашырылган категория|Жашырылган категориялар}}',
@@ -115,8 +116,8 @@ $messages = array(
 'category-file-count-limited' => 'Бул категорияда {{PLURAL:$1|$1|$1|$1}} файл бар.',
 'listingcontinuesabbrev' => 'уланд.',
 'index-category' => 'Индекстелген барактар',
-'noindex-category' => 'Иреттелбеген барактар',
-'broken-file-category' => 'Файлдарга туура эмес шилтемелүү барактар',
+'noindex-category' => 'Индекстелбеген барактар',
+'broken-file-category' => 'Файлдарга туура эмес шилтеме берген барактар',
 
 'about' => 'Тууралуу',
 'article' => 'Макала',
@@ -124,14 +125,14 @@ $messages = array(
 'cancel' => 'Жокко чыгар',
 'moredotdotdot' => 'Уландысы...',
 'mypage' => 'Барагым',
-'mytalk' => 'Талкуум',
+'mytalk' => 'ТалкÑ\83Ñ\83лаÑ\80Ñ\8bм',
 'anontalk' => 'Бул IP дарек үчүн талкуу',
-'navigation' => 'Багыттоо',
+'navigation' => 'Багыт алуу',
 'and' => '&#32;жана',
 
 # Cologne Blue skin
-'qbfind' => 'Издөө',
-'qbbrowse' => 'Ð\9aаÑ\80оо',
+'qbfind' => 'Изде',
+'qbbrowse' => 'СеÑ\80еп Ñ\81ал',
 'qbedit' => 'Оңдоо',
 'qbpageoptions' => 'Бул барак',
 'qbpageinfo' => 'Контекст',
@@ -151,7 +152,7 @@ $messages = array(
 'vector-view-edit' => 'Оңдо',
 'vector-view-history' => 'Тарыхын кара',
 'vector-view-view' => 'Оку',
-'vector-view-viewsource' => 'Ð\91айкоо',
+'vector-view-viewsource' => 'Ð\9aайнаÑ\80Ñ\8bн ÐºÐ°Ñ\80а',
 'actions' => 'Аракеттер',
 'namespaces' => 'Аталыш топтому',
 'variants' => 'Варианттар',
@@ -223,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) бар.',
@@ -249,10 +250,10 @@ $messages = array(
 'nstab-main' => 'Макала',
 'nstab-user' => 'Колдонуучунун барагы',
 'nstab-special' => 'Атайын барак',
-'nstab-project' => 'Долбоор барагы',
+'nstab-project' => 'Долбоордун барагы',
 'nstab-image' => 'Файл',
 'nstab-mediawiki' => 'Билдирүү',
-'nstab-template' => 'Ð\9dÑ\83Ñ\81ка',
+'nstab-template' => 'Ð\9aалÑ\8bп',
 'nstab-help' => 'Жардам',
 'nstab-category' => 'Категория',
 
@@ -280,7 +281,7 @@ $messages = array(
 'badtitle' => 'Ыксыз аталыш',
 'badtitletext' => 'Талап кылынган барак аталышы туура эмес, бош, же тилдер-аралык же уики-аралык аталышы туура эмес шилтемеленген.
 Балким аталышта колдонулбай турган бир же андан көп белги камтылган.',
-'viewsource' => 'Ð\91айкоо',
+'viewsource' => 'Ð\9aайнаÑ\80Ñ\8bн ÐºÐ°Ñ\80а',
 
 # Login and logout pages
 'welcomecreation' => '== Кош келиңиз, $1! ==
@@ -289,21 +290,29 @@ $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' => 'Жаңы колдонуучуну катта',
 'gotaccount' => 'Катталгансызбы? $1.',
 'gotaccountlink' => 'Кирүү',
-'userlogin-resetlink' => 'Кирүү маалыматыңызды унутуп калдыңызбы?',
+'userlogin-resetlink' => 'Кирүүчү маалыматарыңызды унутуп калдыңызбы?',
 'createaccountmail' => 'Электрондук дарек боюнча',
+'createaccountreason' => 'Себеби:',
+'badretype' => 'Сиз киргизген сырсөздөр дал келишпейт',
+'userexists' => 'Сиз тандаган колдонуучунун аты бош эмес.',
+'loginerror' => 'Колдонуучуну таанууда ката кетти',
+'createaccounterror' => '$1 эсебин түзүү мүмкүн эмес',
+'loginsuccesstitle' => 'Сиз ийгиликтүү кирдиңиз',
 'wrongpassword' => 'Ката сырсөз киргизилди. Кайтадан аракет кылып көрүңүз.',
 'wrongpasswordempty' => 'Сырсөз киргизилген жок. Кайтадан аракет кылып көрүңүз.',
 'mailmypassword' => 'Жаңы сырсөздү электрондук дарекке жибер',
@@ -316,8 +325,8 @@ $messages = array(
 'newpassword' => 'Жаңы сырсөз:',
 
 # Edit page toolbar
-'bold_sample' => 'Калын тамга',
-'bold_tip' => 'Калын тамга',
+'bold_sample' => 'Калың тамга',
+'bold_tip' => 'Калың тамга',
 'italic_sample' => 'Жантык тамга',
 'italic_tip' => 'Жантык тамга',
 'link_sample' => 'Шилтеменин аталышы',
@@ -330,7 +339,7 @@ $messages = array(
 'nowiki_tip' => 'Уики-форматтоого көңүл бөлбө',
 'image_tip' => 'Кыстарылган файл',
 'media_tip' => 'Файлга шилтеме',
-'sig_tip' => 'Ð\9aол Ñ\82амгаңÑ\8bз Ð¶Ð°Ð½Ð° Ñ\81ааÑ\82Ñ\8b',
+'sig_tip' => 'Ð\9aол Ñ\82амгаңÑ\8bз Ð¶Ð°Ð½Ð° Ñ\83бакÑ\8bÑ\82 Ð¼Ó©Ó©Ñ\80Ò¯',
 'hr_tip' => 'Туурасынын сызык (жыш колдонбоңуз)',
 
 # Edit pages
@@ -340,11 +349,16 @@ $messages = array(
 'savearticle' => 'Баракты сактап кой',
 'preview' => 'Алдын ала көрүү',
 'showpreview' => 'Алдын ала көрсөт',
+'showlivepreview' => 'Ылдам карап чыгуу',
 'showdiff' => 'Өзгөртүүлөрдү көрсөт',
 'anoneditwarning' => "'''Эскертүү:''' Сиз каттоодон өткөн жоксуз.
 IP дарегиңиз бул барактын оңдоо тарыхына жазылат.",
+'blockedtext' => 'Сиздин колдонуучу атыңыз же IP дарегиңиз тосмолонгон',
+'blockednoreason' => 'себеби көрсөтүлгөн эмес',
+'loginreqtitle' => 'Колдонуучунун аты талап кылынат',
+'loginreqlink' => 'Кирүү',
 'accmailtitle' => 'Сырсөз жөнөтүлдү.',
-'accmailtext' => '"$1" үчүн сырсөз $2 ге жөнөтүлдү.',
+'accmailtext' => ' [[User talk:$1|$1]] үчүн сырсөз $2 ге жөнөтүлдү.',
 'newarticle' => '(Жаңы)',
 'newarticletext' => "Сиз ачыла элек баракка шилтемени бастыңыз.
 Бул баракты ачуу үчүн, ылдый жактагы терезечеге жаза баштаңыз (кошумча маалымат алуу үчүн [[{{MediaWiki:Helppage}}|жардам барагы]] караңыз).
@@ -356,34 +370,44 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'noarticletext-nopermission' => 'Азыр бул баракта текст жок.
 Сиз башка барактардан [[Special:Search/{{PAGENAME}}|ушул аталыш менен баракты издөө]] салып,
 же <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} тийиштүү жазууларды таба аласыз]</span>.',
+'userpage-userdoesnotexist' => '"$1" Мындай колдонуучу катталган эмес. Ушул баракты түзүүнү же оңдогонду каалганыңыз анык болсун',
 'previewnote' => "'''Бул алдын ала көрүнүшү гана болгонун эсиңизге алыңыз.'''
 Өзгөртүүлөрүңүз сактала элек!",
+'continue-editing' => 'Өзгөртүүүлөрдү улантабыз',
+'session_fail_preview' => 'Кечиресиз, байланыш үзүлгөндүктөн сиздин өзгөртүүлөр сакталган жок. Дагы бир жолу аракет кылып көрүңүз. Болбосо, [[Special:UserLogout|logging out]] аткарып, кайра кирип көрүңүз.',
 'editing' => 'Оңдоо $1',
+'creating' => '$1 түзүлүүдө',
 'editingsection' => '$1 (бөлүмү) оңдолууда',
+'editingcomment' => ' $1 оңдолууда (жаңы бөлүм)',
 'yourtext' => 'Текстиңиз',
 'yourdiff' => 'Айырмалар',
-'templatesused' => 'Бул баракта колдонулган {{PLURAL:$1|шаблон |шаблон}}:',
+'templatesused' => 'Бул баракта колдонулган {{PLURAL:$1|калып |калыптар}}:',
 'template-protected' => '(корголгон)',
 'template-semiprotected' => '(жарым-жартылай корголгон)',
 'hiddencategories' => 'Бул барак {{PLURAL:$1|1 жашыруун категориянын|$1 жашыруун категориялардын}} мүчөсү:',
 'permissionserrorstext-withaction' => 'Сизге $2, төмөнкү {{PLURAL:$1|себеп|себеп}} менен уруксат жок:',
-'recreate-moveddeleted-warn' => "'''Ð\90байлаÑ\82Ñ\83Ñ\83: Сиз мурун өчүрүлгөн баракты кайра баштап жатасыз.'''
+'recreate-moveddeleted-warn' => "'''ЭÑ\81кеÑ\80Ñ\82Ò¯Ò¯: Сиз мурун өчүрүлгөн баракты кайра баштап жатасыз.'''
 
\91Ñ\83л Ð±Ð°Ñ\80акÑ\82Ñ\8b Ð¾Ò£Ð´Ð¾Ð¾Ð½Ñ\83 Ñ\83ланÑ\82Ñ\83Ñ\83га Ñ\8bлайÑ\8bгÑ\8bн Ñ\82екÑ\88еÑ\80иңиз.
-Ыңгайлуулук үчүн өчүрүү жана өзгөртүүлөрдүн тизмеси ылдый жакта берилген:",
\91Ñ\83л Ð±Ð°Ñ\80акÑ\82Ñ\8b ÐºÐ°Ð¹Ñ\80а ÐºÐ°Ð¹Ñ\82аÑ\80Ñ\83Ñ\83 Ñ\87Ñ\8bндап ÐºÐµÑ\80ек Ñ\8dкендигине ÐºÓ©Ð·Ò¯Ò£Ò¯Ð· Ð¶ÐµÑ\82Ñ\81ин.
+Ыңгайлуулук үчүн төмөндө өчүрүүлөрдүн жана өзгөртүүлөрдүн тизмеси берилген:",
 'moveddeleted-notice' => 'Бул барак өчүрүлгөн.
-Маалымат алуу үчүн баракты өчүрүү жана өзгөртүүлөрдүн тизмеси ылдый жакта берилген.',
+Маалымат үчүн төмөндө өчүрүүлөрдүн жана өзгөртүүлөрдүн тизмеси берилген.',
+'edit-conflict' => 'Өзгөртүүлөрдүн конфликти',
+'edit-already-exists' => 'Жаңы барак түзүү мүмкүн эмес. Мындай барак бар',
 
 # Parser/template warnings
-'post-expand-template-inclusion-warning' => "'''Эскертүү:''' Шаблондун өлчөмү ашырып жиберилген.
-Кээ бир шаблондор кошулбайт.",
-'post-expand-template-inclusion-category' => 'Өлчөмү ашырып жиберилген шаблон камтыган барактар',
-'post-expand-template-argument-warning' => "'''Абайлатуу:''' Бул барак жаюуга өтө чоң көлөмдүү эң аз дегенде бир шаблон жүйөсүн камтыйт.
-Ушул сыяктуу жүйөлөр аттатылышты.",
-'post-expand-template-argument-category' => 'Аттатылган шаблон жүйөлөрүн камтыган барактар',
+'post-expand-template-inclusion-warning' => "'''Эскертүү:''' Камтылган калыптардын өлчөмү өтө чоң.
+Кээ бир калыптар камтылбайт.",
+'post-expand-template-inclusion-category' => 'Камтылган калыптардын өлчөмү ашып кеткен барактар',
+'post-expand-template-argument-warning' => "'''Эскертүү:''' Бул барак, жок дегенде, абдан чоң көлөмдүү калыптын бир жүйөсүн камтыйт жана  жайылганда өлчөмү абдан чоң болуп кетет. 
+Ушул сыяктуу жүйөлөр аттатылды.",
+'post-expand-template-argument-category' => 'Калыптардын аттатылган жүйөлөрүн камтыган барактар',
+'parser-template-loop-warning' => 'Калыптарда айланма бар:[[$1]]',
 
 # History pages
 'viewpagelogs' => 'Бул барак үчүн тизмелерди кара',
+'nohistory' => 'Бул барактын өзгөртүүлөр тарыхы жок',
+'currentrev' => 'Акыркы версиясы',
 'currentrev-asof' => '$1 -га соңку версиясы',
 'revisionasof' => '$1 -деги абалы',
 'revision-info' => '$1 карата $2 тарабынан жасалган версия',
@@ -393,18 +417,23 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'cur' => 'учрдг.',
 'next' => 'кийинки',
 'last' => 'соңку',
-'histlegend' => "Айырмалоону тандоо: Салыштырыла турган версияларлын тушундагы тегеректерди белгиле жана \"Enter\"-ди же астындагы нукуурун бас.<br />
+'page_first' => 'биринчи',
+'page_last' => 'акыркы',
+'histlegend' => "Айырмаларды тандоо: Салыштырыла турган версияларлын тушундагы тегеректерди белгилеп туруп \"Enter\"-ди же астындагы баскычты бас.<br />
 Түшүндүрүү: '''({{int:cur}})''' = соңку версиясынан айырма, '''({{int:last}})''' = мурунку версиясынан айырма, '''{{int:minoreditletter}}''' = майда оңдоо.",
 'history-fieldset-title' => 'Тарыхын кара',
 'history-show-deleted' => 'Өчүрүлгөндөрдү гана',
 'histfirst' => 'Эң эски',
 'histlast' => 'Соңку',
+'historyempty' => 'бош',
 
 # Revision feed
+'history-feed-title' => 'Өзгөртүүлөр тарыхы',
 'history-feed-item-nocomment' => '$1, $2 карата',
 
 # Revision deletion
 'rev-delundel' => 'көрсөт/жашыр',
+'rev-showdeleted' => 'көрсөт',
 'revdel-restore' => 'көрүнүшүн өзгөрт',
 'revdel-restore-deleted' => 'өчүрүлгөн версиялар',
 'revdel-restore-visible' => 'көрүнүүчү версиялары',
@@ -413,7 +442,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'revertmerge' => 'Бөл',
 
 # Diffs
-'history-title' => '"$1" барактын тарыхына сереп',
+'history-title' => '"$1" өзгөрүүлөр тарыхы',
 'lineno' => '$1 -сап:',
 'compareselectedversions' => 'Тандалган версияларды салыштыр',
 'editundo' => 'жокко чыгар',
@@ -434,7 +463,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'searchprofile-project' => 'Жардам жана Долбоор барактары',
 'searchprofile-images' => 'Мултимедиа',
 'searchprofile-everything' => 'Баары',
-'searchprofile-advanced' => 'Ð\96етилген',
+'searchprofile-advanced' => 'Ð\9aеңейтилген',
 'searchprofile-articles-tooltip' => '$1 -де изде',
 'searchprofile-project-tooltip' => '$1 -де изде',
 'searchprofile-images-tooltip' => 'Файлдарды изде',
@@ -450,12 +479,14 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'searchrelated' => 'байланыштуу',
 'searchall' => 'баары',
 'showingresultsheader' => "'''$4''' үчүн {{PLURAL:$5|'''$3''' жыйынтыктан '''$1'''-и|'''$1 - $2''' -дан '''$3''' жыйынтык}}",
-'search-nonefound' => 'СÑ\83Ñ\80ооңÑ\83зга Ñ\8bлайÑ\8bк ÐºÐµÐ»Ð³ÐµÐ½ Ð¶Ñ\8bйÑ\8bнÑ\82Ñ\8bк жок.',
+'search-nonefound' => 'Талапка Ñ\82өп Ð¼Ð°Ð°Ð»Ñ\8bмаÑ\82 Ñ\82абÑ\8bлган жок.',
 'powersearch' => 'Издөө',
+'powersearch-legend' => 'Кеңиртип изде',
 
 # Preferences page
-'preferences' => 'Түзөө',
+'preferences' => 'ЫңгайлаÑ\88Ñ\82Ñ\8bÑ\80Ñ\83Ñ\83',
 'mypreferences' => 'Ырастоолорум',
+'prefs-edits' => 'Өзгөртүүлөрдүн саны',
 'changepassword' => 'Сырсөздү өзгөртүү',
 'prefs-datetime' => 'Дата жана убакыт',
 'prefs-rc' => 'Соңку өзгөрүүлөр',
@@ -475,6 +506,12 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'prefs-help-email' => 'Электрондук дарек милдетүү эмес, бирок сырсөздү унутуп калсаңыз ал сырсөздү жиберүүгө керек.',
 'prefs-help-email-others' => 'Ошондой эле башкалар сиз менен колдонуучу же талкуу барактарыңыздагы шилтеме аркылуу байланыш түзүүгө уруксат берүүнү тандай аласыз.
 Электрондук дарегиңиз башка кодонуучуларга байланыш түзгөндө көрүнбөйт.',
+'prefs-advancedediting' => 'Кеңейтилген',
+'prefs-advancedrc' => 'Кеңейтилген',
+'prefs-advancedrendering' => 'Кеңейтилген',
+'prefs-advancedsearchoptions' => 'Кеңейтилген',
+'prefs-advancedwatchlist' => 'Кеңейтилген',
+'prefs-displayrc' => 'Көрсөтүүнү тууралоо',
 
 # Groups
 'group' => 'Топ:',
@@ -501,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',
@@ -535,6 +572,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'uploadedfiles' => 'Жүктөлгөн файлдар',
 'savefile' => 'Файлды сактап кой',
 'uploadedimage' => '"[[$1]]" жүктөлдү',
+'upload-success-subj' => 'Ийгиликтүү жүктөлдү',
 
 'license' => 'Лицензиялоо:',
 'license-header' => 'Лицензиялоо:',
@@ -557,8 +595,8 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'imagelinks' => 'Файл пайдалануу',
 'linkstoimage' => 'Бул файлга болгон {{PLURAL:$1|шилтеме|$1 шилтеме}} :',
 'nolinkstoimage' => 'Бул файлга шилтеме берген барак жок.',
-'sharedupload-desc-here' => 'Файл $1 -дан Ð¶Ð°Ð½Ð° Ð±Ð°Ñ\88ка Ð´Ð¾Ð»Ð±Ð¾Ð¾Ñ\80лоÑ\80до Ð¿Ð°Ð¹Ð´Ð°Ð»Ð°Ð½Ñ\83Ñ\83га Ð°Ð»Ð° Ð°Ð»Ñ\8bÑ\88аÑ\82.
«Ð»Ð´Ñ\8bй Ð¶Ð°ÐºÑ\82а Ð°Ð½Ñ\8bн [$2 Ñ\84айлдÑ\8b Ñ\81Ñ\8bпаÑ\82Ñ\82оо Ð±Ð°Ñ\80агÑ\8b]нан Ñ\81Ñ\8bпаÑ\82Ñ\82оÑ\81Ñ\83 көрсөтүлгөн.',
+'sharedupload-desc-here' => 'Ð\91Ñ\83л Ñ\84айл $1 -дан  Ð¶Ð°Ð½Ð° Ð±Ð°Ñ\88ка Ð´Ð¾Ð»Ð±Ð¾Ð¾Ñ\80лоÑ\80до Ð¿Ð°Ð¹Ð´Ð°Ð»Ð°Ð½Ñ\8bлÑ\8bÑ\88Ñ\8b Ð¼Ò¯Ð¼ÐºÒ¯Ð½.
¢Ó©Ð¼Ó©Ð½Ð´Ó© Ð°Ð½Ñ\8bн [$2 Ñ\84айлдÑ\8b Ñ\81Ñ\8bпаÑ\82Ñ\82оо Ð±Ð°Ñ\80агÑ\8b]нан Ñ\81Ñ\8bпаÑ\82Ñ\82амаÑ\81Ñ\8b көрсөтүлгөн.',
 
 # Unused templates
 'unusedtemplates' => 'Колдонулбаган нускалар',
@@ -666,8 +704,8 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'undeletecomment' => 'Түшүндүрмө:',
 
 # Namespace form on various pages
-'namespace' => 'Аталыш топтому',
-'invert' => 'ТандалгандÑ\8b кайтар',
+'namespace' => 'Аталыштар мейкиндиги:',
+'invert' => 'Ð\91елгиленгенди кайтар',
 'blanknamespace' => '(Негизги)',
 
 # Contributions
@@ -680,7 +718,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'year' => 'Жылынан (жана андан мурун):',
 
 'sp-contributions-newbies' => 'Жаңы колдонуучулардын гана салымдарын көрсөт',
-'sp-contributions-blocklog' => 'Ñ\82оÑ\81моолоÑ\80дÑ\83н Ñ\82измеÑ\81и',
+'sp-contributions-blocklog' => 'тосмолордун тизмеси',
 'sp-contributions-uploads' => 'жүктөөлөр',
 'sp-contributions-logs' => 'тизме',
 'sp-contributions-talk' => 'талкуу',
@@ -715,7 +753,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'blocklink' => 'тосмоло',
 'unblocklink' => 'тосмолоону алып сал',
 'change-blocklink' => 'тосмолоону өзгөрт',
-'contribslink' => 'салымдар',
+'contribslink' => 'салымдары',
 'blocklogpage' => 'Тосмоолордун тизмеси',
 'blocklogentry' => '[[$1]] тосмолонду, тосмолоо мөөнөтү: $2 $3',
 'block-log-flags-nocreate' => 'Каттоо мүмкүн эмес',
@@ -745,7 +783,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Колдонуучу барагыңыз',
 'tooltip-pt-mytalk' => 'Талкуу барагыңыз',
-'tooltip-pt-preferences' => 'Ырастооңуздар',
+'tooltip-pt-preferences' => 'Ырастоолоруңуз',
 'tooltip-pt-watchlist' => 'Өзгөрүүлөрүн көзөмөлгө алган барактардын тизмеси',
 'tooltip-pt-mycontris' => 'Салымдарыңыздын тизмеси',
 'tooltip-pt-login' => 'Сизге системада катталууга сунуш кылынат, бирок милдеттүү эмес',
@@ -754,7 +792,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'tooltip-ca-edit' => 'Сиз бул баракты оңдой аласыз. Кичи пейилдикке, сактоодон мурда алдын ала көрсөтүү нукуурун колдонуңуз.',
 'tooltip-ca-addsection' => 'Жаңы бөлүм башта',
 'tooltip-ca-viewsource' => 'Бул барак корголгон.
\91айкоого Ð°Ñ\87Ñ\8bлаÑ\82.',
¡Ð¸Ð· Ð°Ð½Ñ\8bн ÐºÐ°Ð¹Ð½Ð°Ñ\80Ñ\8bн ÐºÓ©Ñ\80Ó© Ð°Ð»Ð°Ñ\81Ñ\8bз',
 'tooltip-ca-history' => 'Бул барактын мурунку оңдоолору',
 'tooltip-ca-protect' => 'Бул баракты корго',
 'tooltip-ca-delete' => 'Бул баракты өчүр',
@@ -762,7 +800,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'tooltip-ca-watch' => 'Бул баракты көзөмөл тизмеңизге кошуңуз',
 'tooltip-ca-unwatch' => 'Бул баракты көзөмөл тизмеңизден алып салыңыз',
 'tooltip-search' => '{{SITENAME}} изде',
-'tooltip-search-go' => 'УÑ\88Ñ\83л Ð°Ñ\82алÑ\8bÑ\88 Ð¼ÐµÐ½ÐµÐ½ Ð±Ð°Ñ\80ак Ð±Ð°Ñ\80 Ð±Ð¾Ð»Ñ\81о, Ð°Ð»Ð³Ð°',
+'tooltip-search-go' => 'Так Ñ\83Ñ\88Ñ\83ндай Ð°Ñ\82алÑ\8bÑ\88Ñ\82агÑ\8b Ð±Ð°Ñ\80акÑ\82Ñ\8b ÐºÓ©Ñ\80Ñ\81Ó©Ñ\82',
 'tooltip-search-fulltext' => 'Ушул текст менен барактарды изде',
 'tooltip-p-logo' => 'Башбаракка кайрыл',
 'tooltip-n-mainpage' => 'Башбаракка кайрыл',
@@ -786,7 +824,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'tooltip-ca-nstab-special' => 'Бул атайын барак, аны оңдой албайсыз',
 'tooltip-ca-nstab-project' => 'Долбоор барагын кара',
 'tooltip-ca-nstab-image' => 'Файл барагын көрсөт',
-'tooltip-ca-nstab-template' => 'ШаблондÑ\83 көрсөт',
+'tooltip-ca-nstab-template' => 'Ð\9aалÑ\8bпÑ\82Ñ\8b көрсөт',
 'tooltip-ca-nstab-category' => 'Категория барагын көрсөт',
 'tooltip-minoredit' => 'Муну майда оңдоо деп белгиле',
 'tooltip-save' => 'Өзгөртүүлөрдү сактап кой',
@@ -825,10 +863,10 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 
 # Metadata
 'metadata' => 'Метамаалыматтар',
-'metadata-help' => 'Ð\91Ñ\83л Ñ\84айл Ð±Ð°Ð»ÐºÐ¸Ð¼ Ñ\81анаÑ\80ип ÐºÐ°Ð¼ÐµÑ\80адан Ð¶Ðµ Ñ\81каннеÑ\80ден ÐºÐ¾Ñ\88Ñ\83лган ÐºÐ¾Ñ\88Ñ\83мÑ\87а Ð¼Ð°Ð°Ð»Ñ\8bмаÑ\82 камтыйт. 
-Эгерде файл баштапкы абалынан соң өзгөртүлсө, анда кээ бир мүнөздөгүчтөрү толук түрдө дал келбеши мүмкүн.',
-'metadata-fields' => 'Төмөндө тизмеленген сүрөт метамаалыматтарынын саптары метамаалыматтардын жадыбалы түрүлгөндө сүрөт барагына кошумчаланат.
-Калгандары сөз байлашуу менен жашырылат.
+'metadata-help' => 'Ð\91Ñ\83л Ñ\84айл Ð°Ð´Ð°Ñ\82Ñ\82а Ñ\81анаÑ\80ип ÐºÐ°Ð¼ÐµÑ\80а Ð¶Ðµ Ñ\81каннеÑ\80 ÐºÐ¾Ñ\88Ñ\83Ñ\83Ñ\87Ñ\83 Ð¼Ð°Ð°Ð»Ñ\8bмаÑ\82Ñ\82аÑ\80дÑ\8b камтыйт. 
+Эгерде файл баштапкы абалынан өзгөртүлсө, анда анын кээ бир сыпаттары толук чагылдырылбашы мүмкүн.',
+'metadata-fields' => 'Төмөндө тизмеленген сүрөт метамаалыматтарынын саптары метамаалыматтардын жадыбалы түрүлүү учурда сүрөт барагына кошумчаланат.
+Калгандары баштапкы абалда (өзгөртүлбөсө) көргөзүлбөйт.
 * make
 * model
 * datetimeoriginal
@@ -871,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 dc6af2f..abdf951 100644 (file)
@@ -561,6 +561,7 @@ $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',
 
 # Virus scanner
 'virus-badscanner' => "Schlecht Configuratioun: onbekannte  Virescanner: ''$1''",
@@ -568,11 +569,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 +584,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 +683,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.',
@@ -1672,6 +1673,9 @@ Wann de Problem weider besteet, dann un de [[Special:ListUsers/sysop|Administrat
 'lockmanager-notlocked' => '"$1" konnt net fräigeschalt ginn; $1 ass net gespaart.',
 'lockmanager-fail-closelock' => 'De Spärfichier fir "$1" konnt net zougemaach ginn.',
 'lockmanager-fail-deletelock' => 'De Spärfichier fir "$1" konnt net geläscht ginn.',
+'lockmanager-fail-acquirelock' => '"$1" konnt net gespaart ginn.',
+'lockmanager-fail-openlock' => 'De Spärfichier fir "$1" konnt net opgemaach ginn.',
+'lockmanager-fail-releaselock' => 'D\'Spär fir "$1" konnt net opgehuewe ginn.',
 'lockmanager-fail-db-release' => "D'Spären op der Datebank $1 konnten net fräigeschalt ginn.",
 'lockmanager-fail-svr-release' => "D'Spären um Server $1 konnten net fräigeschalt ginn.",
 
@@ -1728,8 +1732,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)',
@@ -2863,6 +2867,7 @@ Dëst warscheinlech duerch en externe Link den op der schwaarzer Lëscht (blackl
 'spambot_username' => 'Botz vum Spam duerch MediaWiki',
 'spam_reverting' => 'Déi lescht Versioun ouni Linken op $1 restauréieren.',
 'spam_blanking' => 'An alle Versioune ware Linken op $1, et ass elo alles gebotzt.',
+'spam_deleting' => 'All Versioune mat Linken op $1 gi geläscht',
 
 # Info page
 'pageinfo-title' => 'Informatioun iwwer "$1"',
@@ -3746,4 +3751,6 @@ Soss kënnt Dir den einfache Formulär hei drënner benotzen. Är Bemierkung gë
 'duration-centuries' => '$1 {{PLURAL:$1|Joerhonnert|Joerhonnerten}}',
 'duration-millennia' => '$1 {{PLURAL:$1|Millenaire|Millenairen}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => "D'Spären um Server $1 konnten net ofgefrot ginn.",
 );
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..ec52b88 100644 (file)
@@ -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',
@@ -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 puslapių keitimų kiekis',
 '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ų',
@@ -2792,7 +2793,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',
@@ -2866,6 +2867,7 @@ Leidžia pridėti atmetimo priežastį komentaruose',
 '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 +3708,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 78f567e..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',
@@ -35,9 +35,9 @@ $messages = array(
 'tog-previewontop' => 'Siamţhatna bawm hmaah endikna dah rawh',
 'tog-previewonfirst' => 'Siamţhat vawi khatnaah endikna tilang rawh',
 'tog-nocache' => 'Fanna-in phêk a cache tur veng rawh',
-'tog-enotifwatchlistpages' => 'Ka ralvèn zinga phêk pakhat tihdanglam a nih apiangin email min thawn rawh',
-'tog-enotifusertalkpages' => 'Ka hmangtu-sawihona phêk tihdanglam a nihin min email rawh',
-'tog-enotifminoredits' => 'Phêk siamţhat tenauah pawh min email tho rawh',
+'tog-enotifwatchlistpages' => 'Ka ralvèn zinga phêk pakhat tihdanglam a nih apiangin e-lehkha min thawn rawh',
+'tog-enotifusertalkpages' => 'Ka hmangtu-sawihona phêk tihdanglam a nihin e-lehkha min thawn rawh',
+'tog-enotifminoredits' => 'Phêk siamţhat tenauah pawh e-lehkha min thawn tho rawh',
 'tog-enotifrevealaddr' => 'Hriattirna email zingah ka email address pho lang rawh',
 'tog-shownumberswatching' => 'Ralvèngtu zât tilang rawh',
 'tog-oldsig' => 'Khàrna hming hman mék:',
@@ -53,10 +53,10 @@ $messages = array(
 'tog-watchlisthideliu' => 'Ralvèn zing aţang hmangtu inziaklut siamţhat tibo rawh.',
 'tog-watchlisthideanons' => 'Hmangtu hriat lohvina an siamţhat ralvèn zing aţang',
 'tog-watchlisthidepatrolled' => 'Siamţhat viltu nei ralvèn zingah telh suh',
-'tog-ccmeonemails' => 'Hmangtu dang hnena ka email thawn apiang min thawn ve zel rawh',
-'tog-diffonly' => 'Diff hnuaiah phêk chhunga awmte tilang suh',
+'tog-ccmeonemails' => 'Hmangtu dang hnena ka e-lehkha thawn apiang min thawn ve zel rawh',
+'tog-diffonly' => 'Dnglmn hnuaiah phêk chhúng tilang suh',
 'tog-showhiddencats' => 'Pawl thuhrûkho tilang rawh',
-'tog-norollbackdiff' => 'Lumlêt hnuah diff kalkan rawh',
+'tog-norollbackdiff' => 'Lumlêt hnuah dnglmn kalkan rawh',
 
 'underline-always' => 'Ziah/ngei ngei',
 'underline-never' => 'Ngai lo',
@@ -99,7 +99,7 @@ $messages = array(
 'january-gen' => 'Pawlkût thla',
 'february-gen' => 'Ramtuk thla',
 'march-gen' => 'Vau thla',
-'april-gen' => 'Ţau thla',
+'april-gen' => 'au thla',
 'may-gen' => 'Ţomir thla',
 'june-gen' => 'Nikir thla',
 'july-gen' => 'Vawkhniahzawn thla',
@@ -127,7 +127,7 @@ $messages = array(
 'subcategories' => 'Pawlpengte',
 'category-media-header' => '"$1" pawla mediate',
 'category-empty' => '"He pawl hian phêk leh media pakhat mah a nei hrih lo."',
-'hidden-categories' => 'Pawl thuhrûk {{PLURAL:$1||-te}}',
+'hidden-categories' => 'Pawl thuhrûk{{PLURAL:$1||te}}',
 'hidden-category-category' => 'Pawl thuhrûkte',
 'category-subcat-count' => '{{PLURAL:$2|He pawl hian he pawlpeng chauh hi a nei. |He pawl hian heng  {{PLURAL:$1|pawlpéng|pawlpéng $1-te}} hi a nei, avaia  $2  zingah.}}',
 'category-subcat-count-limited' => "He pawl hian  {{PLURAL:$1|hë pawlpéng chauh|$1 hê'ng pawlpéngte}} hi a nei.",
@@ -284,8 +284,8 @@ $1',
 'viewsourcelink' => 'a hnar enna',
 'editsectionhint' => 'Hemi thuhlawm hi siamţha rawh le: $1',
 'toc' => 'A chhung thute',
-'showtoc' => 'tihlanna',
-'hidetoc' => 'tihbona',
+'showtoc' => 'pharhna',
+'hidetoc' => 'thlehna',
 'collapsible-collapse' => 'Thlehna',
 'collapsible-expand' => 'Pharhna',
 'thisisdeleted' => '$1 hi en emaw, dah lêt leh emaw i duh em?',
@@ -384,6 +384,8 @@ $2',
 'customjsprotected' => 'Hmangtu dang mimal thil a tel avangin he JavaScript phêk hi siamţhat phalsak i ni lo.',
 'ns-specialprotected' => 'Phêk vohbîkte siam danglam theih a ni lo.',
 'titleprotected' => 'He phêk hi hmangtu [[User:$1|$1]] siam phalsak a ni lo. A chhan hetah: "\'\'$2\'\'" hian pêk a ni.',
+'invalidtitle-knownnamespace' => 'Hming pawm loh hminghmun "$2"-a "$3" tih thu chuang.',
+'invalidtitle-unknownnamespace' => 'Hming pawm loh leh hminghmun zât hriat loh $1-a thu chuang "$2"',
 
 # Virus scanner
 'virus-badscanner' => "Inremdan dikhlel: Hrik thiantu hriat loh: ''$1''",
@@ -400,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.',
@@ -457,6 +459,7 @@ A hnuaia mi eng vang pawh hian e-lehkha thawn a ni lo vang:',
 'invalidemailaddress' => 'A awmphung a dik loh avangin he e-chenhmun hi pawm theih a ni lo.
 E-chenhmun dik tak ziaklût rawh, a nih loh leh thai reh vek rawh.',
 'cannotchangeemail' => 'He wiki-ah hian siangchan e-chenhmun thlâk theih a ni lo.',
+'emaildisabled' => 'Hë rangpuihmun hian e-lehkha a thawn thei lo',
 'accountcreated' => 'Siangchan siamfel a ni ta.',
 'accountcreatedtext' => '$1 tana hmangtu siangchan siamfel a ni ta.',
 'createaccount-title' => '{{SITENAME}} tana siangchan siam',
@@ -641,7 +644,7 @@ Heng kawngte hi hmaih mai tur.",
 'viewpagelogs' => 'He phêk chanchin hi en rawh',
 'nohistory' => 'Hë phêk siamṭhatna chanchin ziak a awm lo tlat.',
 'currentrev' => 'Ennawnna hnuhnung ber',
-'currentrev-asof' => 'Ni $1-a ennawnna hnuhnung ber',
+'currentrev-asof' => 'Dar $1-a ennawnna hnuhnung ber',
 'revisionasof' => '$1 -a ennawnna zawng',
 'revision-info' => '$1-a $2 ennawnna',
 'previousrevision' => '←Ennawnna hlui zâwk',
@@ -663,6 +666,7 @@ Lamtawi hmante: '''({{int:cur}})'''= ennawnna thar ber nena danglamna, '''({{int
 
 # Revision feed
 'history-feed-title' => 'Ennawnna chanchin',
+'history-feed-description' => 'Wiki-a hemi phêk ennawnna chanchin',
 'history-feed-item-nocomment' => '$1-in $2-ah',
 
 # Revision deletion
@@ -931,6 +935,7 @@ Hmangtuten e-lehkha an thawn chein i e-chenhmun hrilh an ni chuang lo vang.',
 'right-move-subpages' => 'Phêkte leh an phêkpéngte sawnna',
 'right-move-rootuserpages' => 'Hmangtu bulte sawnna',
 'right-movefile' => 'Taksa sawnna',
+'right-suppressredirect' => 'Phêk sawna hruailuhna phêk siam lohtírna',
 'right-upload' => 'Taksa hlankaina',
 'right-reupload' => 'Taksa awmsa ziahhnan rawh',
 'right-reupload-own' => 'Mahni hlankai taksa awmsa ziahhnan rawh',
@@ -949,7 +954,7 @@ Hmangtuten e-lehkha an thawn chein i e-chenhmun hrilh an ni chuang lo vang.',
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => 'he phêk hi chhiar rawh',
-'action-edit' => 'he phek hi siamţha rawh',
+'action-edit' => 'phek siamṭhat',
 'action-createpage' => 'phêk siam tharna',
 'action-createtalk' => 'sawihona phêk siamna',
 'action-createaccount' => 'he hmangtu siangchan hi siam rawh',
@@ -964,8 +969,10 @@ Hmangtuten e-lehkha an thawn chein i e-chenhmun hrilh an ni chuang lo vang.',
 'action-writeapi' => 'ziakna WPI hmang rawh',
 'action-delete' => 'he phêk hi paih rawh',
 'action-deleterevision' => 'he ennawnna hi paih rawh',
+'action-deletedhistory' => 'phêk chanchin nuaibo tawh enna',
 'action-browsearchive' => 'phêk nuaibo tawhte zawng rawh',
 'action-undelete' => 'he phêk hi lakir leh rawh',
+'action-suppressionlog' => 'mimal chanchin bîk enna',
 'action-block' => 'he hmangtuina a siam danglam tùr hi däl rawh',
 
 # Recent changes
@@ -1228,8 +1235,12 @@ Taksa sawifiahna hi i siamṭha duh a nih chuan  [$2 taksa sawifiahna phêk] a
 'withoutinterwiki-legend' => 'Thuhmabet',
 'withoutinterwiki-submit' => 'Tihlanna',
 
+'fewestrevisions' => 'Phêk siam danglam hlawh lo zualte',
+
 # Miscellaneous special pages
 'nbytes' => 'Bait {{PLURAL:$1||}} $1',
+'ncategories' => '{{PLURAL:$1|Páwl|Páwl}} $1',
+'nlinks' => '$1 {{PLURAL:$1||}} Zawmna $1',
 'nmembers' => 'A chhungah  {{PLURAL:$1||$1}} a awm.',
 'nrevisions' => 'siamṭhatna $1 {{PLURAL:$1||}}',
 'nviews' => 'vawi $1 {{PLURAL:$1||}} ràwn a ni tawh.',
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 9d8c470..f1c695d 100644 (file)
@@ -162,6 +162,8 @@ $messages = array(
 'tog-rememberpassword' => '符節通越(達至$1日)',
 'tog-watchcreations' => '哨己撰',
 'tog-watchdefault' => '哨己纂',
+'tog-watchmoves' => '派哨予吾遷之頁',
+'tog-watchdeletion' => '派哨予吾除之頁',
 'tog-minordefault' => '慣為校',
 'tog-previewontop' => '頂草覽',
 'tog-previewonfirst' => '覽首修',
@@ -271,6 +273,7 @@ $messages = array(
 'listingcontinuesabbrev' => '續',
 'index-category' => '已索之頁',
 'noindex-category' => '未索之頁',
+'broken-file-category' => '帶壞檔之頁',
 
 'about' => '述',
 'article' => '文',
@@ -537,6 +540,7 @@ $2',
 'createaccount' => '增簿',
 'gotaccount' => '有簿矣哉?往$1。',
 'gotaccountlink' => '登簿',
+'userlogin-resetlink' => '君忘登簿所需爾?',
 'createaccountmail' => '同郵',
 'createaccountreason' => '因:',
 'badretype' => '符節不合也。',
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 e8fa070..402ae7f 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)',
@@ -727,6 +727,8 @@ $2',
 Администраторот што ја заклучи го понуди следново образложение: „''$3''“.",
 'invalidtitle-knownnamespace' => 'Неважечки наслов со именски простор „$2“ и текст „$3“',
 'invalidtitle-unknownnamespace' => 'Неважечки наслов со именски простор бр. $1 и текст „$2“',
+'exception-nologin' => 'Не сте најавени',
+'exception-nologin-text' => 'Оваа страница или постапка бара да сте најавени на викито.',
 
 # Virus scanner
 'virus-badscanner' => "Лоша поставка: непознат проверувач на вируси: ''$1''",
@@ -976,7 +978,7 @@ $2
 
 Вашата IP-адреса е $3, a ID на блокирањеto е $5.
 Ве молиме наведете ги овие подробности доколку реагирате на блокирањето.",
-'blockednoreason' => 'не Ðµ Ð´Ð°Ð´ÐµÐ½Ð¾ Ð¾Ð±Ñ\80азложение',
+'blockednoreason' => 'не Ðµ Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð° Ð¿Ñ\80иÑ\87ина',
 'whitelistedittext' => 'Мора да сте $1 за да уредувате страници.',
 'confirmedittext' => 'Морате да ја потврдите вашата е-поштенска адреса пред да уредувате страници.
 Поставете ја и валидирајте ја вашата е-поштенска адреса преку вашите [[Special:Preferences|нагодувања]].',
@@ -1777,7 +1779,7 @@ $1",
 'tmp-create-error' => 'Не можев да создадам привремена податотека.',
 'tmp-write-error' => 'Грешка при запис на привремената податотека.',
 'large-file' => 'Се препорачува податотеките да не бидат поголеми од $1; оваа податотека е $2.',
-'largefileserver' => 'Ð\93олеминаÑ\82а Ð½Ð° Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82екаÑ\82а Ðµ Ð¿Ð¾Ð³Ð¾Ð»ÐµÐ¼Ð° Ð¾Ð´ Ð¼Ð°ÐºÑ\81имално Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð°Ñ\82а Ð³Ð¾Ð»ÐµÐ¼Ð¸Ð½Ð°.',
+'largefileserver' => 'Ð\93олеминаÑ\82а Ð½Ð° Ð¾Ð²Ð°Ð° Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82ека Ðµ Ð¿Ð¾Ð³Ð¾Ð»ÐµÐ¼Ð° Ð¾Ð´ Ð¼Ð°ÐºÑ\81имално Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½Ð°Ñ\82а Ð³Ð¾Ð»ÐµÐ¼Ð¸Ð½Ð° Ð¾Ð´ Ñ\81еÑ\80веÑ\80оÑ\82.',
 'emptyfile' => 'Податотеката што ја подигнавте изгледа дека е празна.
 Ова може да е поради грешка во името на податотеката.
 Ве молиме проверете дали навистина сакате да ја подигнете оваа податотека.',
@@ -1970,7 +1972,7 @@ $1',
 'nolicense' => 'Нема',
 'license-nopreview' => '(Прегледот не е достапен)',
 'upload_source_url' => ' (важечка, јавно достапна URL-адреса)',
-'upload_source_file' => '(податотека на вашиот сметач)',
+'upload_source_file' => '(податотека на вашиот компјутер)',
 
 # Special:ListFiles
 'listfiles-summary' => 'Оваа специјална страница ги прикажува сите подигнати податотеки.
@@ -2679,7 +2681,7 @@ $1',
 'ipbenableautoblock' => 'Автоматски блокирај ја последната IP-адреса што ја користел корисникот и сите понатамошни адреси од кои ќе се обиде да уредува',
 'ipbsubmit' => 'Блокирај го овој корисник',
 'ipbother' => 'Друг рок:',
-'ipboptions' => '2 часа:2 hours,1 ден:1 day,3 дена:3 days,1 седмица:1 week,2 седмици:2 weeks,1 месец:1 month,3 месеци:3 months,6 месеци:6 months,1 година:1 year,бесконечно:infinite',
+'ipboptions' => '2 часа:2 hours,1 ден:1 day,3 дена:3 days,1 недела:1 week,2 недели:2 weeks,1 месец:1 month,3 месеци:3 months,6 месеци:6 months,1 година:1 year,бесконечно:infinite',
 'ipbotheroption' => 'друго',
 'ipbotherreason' => 'Друга, дополнителна причина:',
 'ipbhidename' => 'Скриј го корисничкото име во уредувањата и списоците',
@@ -4017,8 +4019,8 @@ $5
 'version-entrypoints' => 'URL-а на влезните точки',
 'version-entrypoints-header-entrypoint' => 'Влезна точка',
 'version-entrypoints-header-url' => 'URL',
-'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath?uselang=mk Ð\9fаÑ\82ека Ð½Ð° Ñ\81Ñ\82аÑ\82иÑ\98аÑ\82а]',
-'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath?uselang=mk Ð\9fаÑ\82ека Ð½Ð° Ñ\81кÑ\80ипÑ\82ата]',
+'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath?uselang=mk Ð¡Ñ\82аÑ\82иÑ\98а]',
+'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath?uselang=mk Ð¡ÐºÑ\80ипта]',
 
 # Special:FilePath
 'filepath' => 'Патека до податотека',
@@ -4217,4 +4219,6 @@ $5
 'duration-centuries' => '$1 {{PLURAL:$1|век|века}}',
 'duration-millennia' => '$1 {{PLURAL:$1|милениум|милениуми}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Не можев да добијам катанци за опслужувачот $1',
 );
index 19d3729..64cc5eb 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' => 'താളുകളിൽ ഇരട്ട ക്ലിക്ക് ചെയ്യുമ്പോൾ തിരുത്താനനുവദിക്കുക (ജാവാസ്ക്രിപ്റ്റ്)',
@@ -715,6 +715,8 @@ $2',
 ബന്ധിച്ച കാര്യ‌നിർവാഹക(ൻ) നൽകിയിരിക്കുന്ന കാരണം "\'\'$3\'\'" എന്നാണ്.',
 'invalidtitle-knownnamespace' => 'നാമമേഖല "$2", എഴുത്ത് "$3" എന്നിവ ഉപയോഗിച്ചുള്ള അസാധുവായ തലക്കെട്ട്',
 'invalidtitle-unknownnamespace' => 'അപരിചിതമായ നാമമേഖലാ സംഖ്യ $1, എഴുത്ത് "$2" എന്നിവ ഉപയോഗിച്ചുള്ള അസാധുവായ തലക്കെട്ട്',
+'exception-nologin' => 'ലോഗിൻ ചെയ്തിട്ടില്ല',
+'exception-nologin-text' => 'ഈ വിക്കിയിൽ ഈ താൾ അല്ലെങ്കിൽ പ്രവൃത്തി ലഭ്യമാകാൻ താങ്കൾ ലോഗിൻ ചെയ്തിരിക്കേണ്ടതാണ്.',
 
 # Virus scanner
 'virus-badscanner' => "തെറ്റായ ക്രമീകരണങ്ങൾ: അപരിചിതമായ വൈറസ് തിരച്ചിൽ ഉപാധി :  ''$1''",
@@ -1821,6 +1823,18 @@ $1',
 'backend-fail-connect' => '"$1"  ശേഖരണ ബാക്കെൻഡുമായി ബന്ധപ്പെടാൻ കഴിഞ്ഞില്ല.',
 'backend-fail-internal' => '"$1" എന്ന സ്റ്റോറേജ് ബാക്കെൻഡിൽ അപരിചിതമായ പിഴവ് സംഭവിച്ചു.',
 'backend-fail-contenttype' => '"$1" എന്നതിൽ സംഭരിച്ചിരിക്കുന്ന പ്രമാണത്തിന്റെ ഉള്ളടക്ക തരം നിർണ്ണയിക്കാനായില്ല.',
+'backend-fail-usable' => 'ആവശ്യമായത്ര അനുമതിയില്ലാത്തതു കൊണ്ടോ ഡയറക്റ്ററികൾ/കണ്ടൈനറുകൾ ഇല്ലാത്തതു കൊണ്ടോ പ്രമാണം $1 എഴുതിച്ചേർക്കാൻ കഴിഞ്ഞില്ല.',
+
+# 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-fail-db-bucket' => '$1 എന്ന ബക്കറ്റിൽ ആവശ്യത്തിനു പൂട്ടൽ ഡേറ്റാബേസുകളെ ബന്ധപ്പെടാൻ കഴിഞ്ഞില്ല.',
+'lockmanager-fail-db-release' => '$1 ഡേറ്റാബേസിലെ പൂട്ടലുകൾ വിടുവിക്കാൻ കഴിഞ്ഞില്ല.',
+'lockmanager-fail-svr-release' => '$1 സെർവറിലെ പൂട്ടലുകൾ വിടുവിക്കാൻ കഴിഞ്ഞില്ല.',
 
 # ZipDirectoryReader
 'zip-file-open-error' => 'സിപ് (ZIP) പരിശോധനകൾക്കായി പ്രമാണം തുറന്നപ്പോൾ പിഴവുണ്ടായി.',
@@ -3024,7 +3038,8 @@ $1',
 'spamprotectionmatch' => 'പാഴെഴുത്ത് അരിപ്പയെ ഉണർത്തിയ എഴുത്ത് താഴെ കൊടുത്തിരിക്കുന്നു: $1',
 'spambot_username' => 'മീഡിയാവിക്കിയിലെ പാഴെഴുത്ത് ശുദ്ധീകരണം',
 'spam_reverting' => '$1 എന്നതിലേയ്ക്കുള്ള കണ്ണികളില്ലാത്ത അവസാന നാൾപ്പതിപ്പിലേയ്ക്ക് മുൻപ്രാപനം ചെയ്യുന്നു',
-'spam_blanking' => '$1 എന്ന കണ്ണികളുള്ള നാൾപ്പതിപ്പുകളെല്ലാം ശൂന്യമാക്കുന്നു',
+'spam_blanking' => '$1 എന്നതിലേയ്ക്ക് കണ്ണികളുള്ള എല്ലാ നാൾപ്പതിപ്പുകളും ശൂന്യമാക്കുന്നു',
+'spam_deleting' => '$1 എന്നതിലേയ്ക്ക് കണ്ണികളുള്ള എല്ലാ നാൾപ്പതിപ്പുകളും മായ്ക്കുന്നു',
 
 # Info page
 'pageinfo-title' => '"$1" എന്ന താളിന്റെ വിവരങ്ങൾ',
@@ -3326,6 +3341,9 @@ $1',
 
 # EXIF attributes
 'exif-compression-1' => 'ചുരുക്കാത്തത്',
+'exif-compression-5' => 'എൽ.സെഡ്.ഡബ്ല്യു.',
+'exif-compression-6' => 'ജെപിഇജി (പഴയത്)',
+'exif-compression-7' => 'ജെപിഇജി',
 
 'exif-copyrighted-true' => 'പകർപ്പവകാശസംരക്ഷിതം',
 'exif-copyrighted-false' => 'പൊതുസഞ്ചയം',
@@ -3544,7 +3562,7 @@ $1',
 'confirmemail_noemail' => '[[Special:Preferences|താങ്കളുടെ ക്രമീകരണങ്ങളുടെ കൂടെ]] സാധുവായൊരു ഇ-മെയിൽ വിലാസം സജ്ജീകരിച്ചിട്ടില്ല.',
 'confirmemail_text' => '{{SITENAME}} സം‌രംഭത്തിൽ ഇ-മെയിൽ സൗകര്യം ഉപയോഗിക്കണമെങ്കിൽ താങ്കൾ താങ്കളുടെ ഇ-മെയിൽ വിലാസത്തിന്റെ സാധുത തെളിയിച്ചിരിക്കണം. താങ്കളുടെ ഇ-മെയിൽ വിലാസത്തിലേക്ക് സ്ഥിരീകരണ മെയിൽ അയക്കുവാൻ താഴെയുള്ള ബട്ടൺ അമർത്തുക. താങ്കൾക്ക് അയക്കുന്ന ഇ-മെയിലിൽ ഒരു സ്ഥിരീകരണ കോഡ് ഉണ്ട്. ആ കോഡിൽ അമർത്തിയാൽ താങ്കളുടെ വിലാസത്തിന്റെ സാധുത തെളിയിക്കപ്പെടും.',
 'confirmemail_pending' => 'താങ്കളുടെ അംഗത്വം ഈ അടുത്ത് ഉണ്ടാക്കിയതാണെങ്കിൽ,  ഒരു സ്ഥിരീകരണ കോഡ് താങ്കൾക്ക് ഇ-മെയിൽ ചെയ്തിട്ടുണ്ട്.  പുതിയ സ്ഥിരീകരണ കോഡ് ആവശ്യപ്പെടാൻ ശ്രമിക്കുന്നതിനു മുൻപ് ആദ്യത്തെ സ്ഥിരീകരണ കോഡിനായി കുറച്ച് സമയം കാത്തിരിക്കൂ.',
-'confirmemail_send' => 'സ്ഥിരീകരണ കോഡ് (confirmation code) മെയിൽ ചെയ്യുക',
+'confirmemail_send' => 'സ്ഥിരീകരണ കോഡ്  ഇമെയിലിൽ അയയ്ക്കുക',
 'confirmemail_sent' => 'സ്ഥിരീകരണ ഇ-മെയിൽ അയച്ചിരിക്കുന്നു.',
 'confirmemail_oncreate' => 'ഒരു സ്ഥിരീകരണ കോഡ് താങ്കളുടെ ഇ-മെയിൽ വിലാസത്തിലേക്ക് അയച്ചിട്ടുണ്ട്.
 ലോഗിൻ ചെയ്യുന്നതിനു ഈ കോഡ് ആവശ്യമില്ല. പക്ഷെ വിക്കിയിൽ ഇ-മെയിലുമായി ബന്ധപ്പെട്ട സേവനങ്ങൾ ഉപയോഗിക്കുന്നതിനു മുൻപ് പ്രസ്തുത കോഡ് ഉപയോഗിച്ച് ഇ-മെയിൽ സ്ഥിരീകരിച്ചിരിക്കണം.',
@@ -3610,6 +3628,8 @@ $5
 'confirmrecreate-noreason' => 'താങ്കൾ തിരുത്താനാരംഭിച്ചതിനു ശേഷം, ഉപയോക്താവ് [[User:$1|$1]] ([[User talk:$1|സംവാദം]]) ഈ താൾ മായ്ച്ചിരിക്കുന്നു. ഈ താൾ പുനഃസൃഷ്ടിക്കണം എന്നത് സ്ഥിരീകരിക്കുക.',
 'recreate' => 'പുനഃസൃഷ്ടിക്കുക',
 
+'unit-pixel' => 'ബിന്ദു',
+
 # action=purge
 'confirm_purge_button' => 'ശരി',
 'confirm-purge-top' => 'ഈ താളിന്റെ കാഷെ ക്ലീയർ ചെയ്യട്ടെ?',
@@ -3645,6 +3665,19 @@ $5
 'autoredircomment' => '[[$1]] എന്ന താളിലേക്ക് തിരിച്ചുവിടുന്നു',
 'autosumm-new' => "'$1' താൾ സൃഷ്ടിച്ചിരിക്കുന്നു",
 
+# Size units
+'size-bytes' => '$1 ബൈ',
+'size-kilobytes' => '$1 കെ.ബി.',
+'size-megabytes' => '$1 എം.ബി.',
+'size-gigabytes' => '$1 ജി.ബി.',
+'size-terabytes' => '$1 ടി.ബി.',
+
+# Bitrate units
+'bitrate-bits' => '$1ബി.പി.എസ്.',
+'bitrate-kilobits' => '$1കെ.ബി.പി.എസ്.',
+'bitrate-megabits' => '$1എം.ബി.പി.എസ്.',
+'bitrate-gigabits' => '$1ജി.ബി.പി.എസ്.',
+
 # Live preview
 'livepreview-loading' => 'ശേഖരിക്കുന്നു...',
 'livepreview-ready' => 'ശേഖരിച്ചുകൊണ്ടിരിക്കുന്നു… തയ്യാർ!',
@@ -3718,6 +3751,8 @@ $5
 'version-entrypoints' => 'പ്രവേശന നില യൂ.ആർ.എല്ലുകൾ',
 'version-entrypoints-header-entrypoint' => 'പ്രവേശന നില',
 'version-entrypoints-header-url' => 'യൂ.ആർ.എൽ.',
+'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath ലേഖന പഥം]',
+'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath സ്ക്രിപ്റ്റ് പഥം]',
 
 # Special:FilePath
 'filepath' => 'പ്രമാണത്തിലേക്കുള്ള വിലാസം',
index 81c228d..7be1c24 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' => 'निवडलेल्या आवृत्त्यांमधील बदल पहा',
@@ -2086,6 +2091,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 +3634,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 +3820,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 cce899d..58f4aa3 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)',
@@ -585,6 +585,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 +2883,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 */',
@@ -3841,4 +3843,6 @@ Ataupun, anda boleh menggunakan borang yang mudah di bawah. Ulasan anda akan dic
 'duration-centuries' => '$1 abad',
 'duration-millennia' => '$1 alaf',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Selak-selak tidak dapat diperoleh di pelayan $1.',
 );
index 0f1552c..12d681c 100644 (file)
@@ -363,7 +363,7 @@ $2، $1',
 'edithelp' => 'دچی‌ین رانما',
 'edithelppage' => 'Help:دَچی‌ین',
 'helppage' => 'Help:راهنما',
-'mainpage' => 'گت ولگ',
+'mainpage' => 'گت صفحه',
 'mainpage-description' => 'گت صفحه',
 'policy-url' => 'Project:سیاستون',
 'portal' => 'کارورون ِلوش',
@@ -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 b590943..536cd20 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)',
@@ -743,6 +743,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 +2767,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 +2792,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 +3186,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"',
@@ -4122,4 +4124,6 @@ Anders kunt u ook het eenvoudige formulier hieronder gebruiken. Uw reactie wordt
 'duration-centuries' => '$1 {{PLURAL:$1|eeuw|eeuwen}}',
 'duration-millennia' => '$1 {{PLURAL:$1|millennium|millennia}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Het was niet mogelijk een vergrendeling te krijgen op server $1.',
 );
index eba4c62..6d5496a 100644 (file)
@@ -3573,6 +3573,8 @@ Skriv inn filnamnet utan «{{ns:file}}:»-prefikset.',
 'logentry-move-move-noredirect' => '$1 flytte sida $3 til $4 utan å lata etter ei omdirigering',
 'logentry-move-move_redir' => '$1 flytte sida $3 til $4 over ei omdirigering',
 'logentry-move-move_redir-noredirect' => '$1 flytte sida $3 til $4 over ei omdirigering utan å lata etter ei omdirigering',
+'logentry-patrol-patrol' => '$1 merkte versjon $4 av sida $3 som patruljert',
+'logentry-patrol-patrol-auto' => '$1 merkte automatisk versjon $4 av sida $3 som patruljert',
 'logentry-newusers-newusers' => '$1 oppretta ein brukarkonto',
 'logentry-newusers-create' => '$1 oppretta ein brukarkonto',
 'logentry-newusers-create2' => '$1 oppretta brukarkontoen $3',
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 ef68575..036e10b 100644 (file)
@@ -2188,8 +2188,8 @@ A page is treated as disambiguation page if it uses a template which is linked f
 'mailnologintext' => 'ଆପଣ ନିଜ [[Special:Preferences|ପସନ୍ଦସବୁ]]ରେ [[Special:UserLogin|ଲଗ ଇନ]] କରିଥିଲେ ଓ ନିଜର ଏକ ସଚଳ ଇ-ମେଲ ଠିକଣା ଥିଲେ ଯାଇ ବାକି ସବୁ ସଭ୍ୟଙ୍କୁ ଇ-ମେଲ ପଠାଇପାରିବେ ।',
 'emailuser' => 'ଏହି ସଭ୍ୟଙ୍କୁ ଇମେଲ କରିବେ',
 'emailpage' => 'ଇ-ମେଲ ବ୍ୟବହାରକାରୀ',
-'emailpagetext' => 'ତଳà­\87 à¬¥à¬¿à¬¬à¬¾ à¬«à¬°à­\8dମ à¬¬à­\8dà­\9fବହର à¬\95ରି à¬\86ପଣ à¬\8fହି à¬¸à¬­à­\8dà­\9fନà­\8dà¬\95à­\80 ଇ-ମେଲ କରିପାରିବେ ।
-[[Special:Preferences|à¬\85ପନà¬\95 à¬ªà¬¸à¬¨à­\8dଦ]]ରà­\87 à¬¥à¬¿à¬¬à¬¾ à¬\87-ମà­\87ଲ à¬ à¬¿à¬\95ଣା à¬ªà­\8dରà­\87ରà¬\95 à¬­à¬¾à¬¬à¬°à­\87 à¬¦à­\87à¬\96ାଯିବ, à¬¤à­\87ଣà­\81 à¬¤à¬¿à¬¥ି ପାଇଥିବା ସଭ୍ୟ ଆପଣଙ୍କୁ ସିଧା ସଳଖ ଉତ୍ତର ଦେଇପାରିବ ।',
+'emailpagetext' => 'ତଳà­\87 à¬¥à¬¿à¬¬à¬¾ à¬«à¬°à­\8dମ à¬¬à­\8dà­\9fବହାର à¬\95ରି à¬\86ପଣ à¬\8fହି à¬¸à¬­à­\8dà­\9fà¬\99à­\8dà¬\95à­\81 ଇ-ମେଲ କରିପାରିବେ ।
+[[Special:Preferences|à¬\86ପଣà¬\99à­\8dà¬\95 à¬ªà¬¸à¬¨à­\8dଦ]]ରà­\87 à¬¥à¬¿à¬¬à¬¾ à¬\87-ମà­\87ଲ à¬ à¬¿à¬\95ଣା à¬ªà­\8dରà­\87ରà¬\95 à¬­à¬¾à¬¬à¬°à­\87 à¬¦à­\87à¬\96ାଯିବ, à¬¤à­\87ଣà­\81 à¬\9aିଠି ପାଇଥିବା ସଭ୍ୟ ଆପଣଙ୍କୁ ସିଧା ସଳଖ ଉତ୍ତର ଦେଇପାରିବ ।',
 'usermailererror' => 'ମେଲ ଭିତରେ କିଛି ଅସୁବିଧା ଅଛି ବୋଲି ଜାଣିବାକୁ ମିଳିଲା:',
 'defemailsubject' => '{{SITENAME}} "$1" ସଭ୍ୟଙ୍କ ଠାରୁ ଇ-ମେଲ କରିବେ',
 'usermaildisabled' => 'ବ୍ୟବହାରକାରୀଙ୍କ ଈ-ମେଲ ଅଚଳ କରାଗଲା',
index f29fb29..8c29317 100644 (file)
@@ -526,6 +526,7 @@ $1 ਘੰਟੇ ਵਿੱਚ। ਨੁਕਸਾਨ ਤੋਂ ਬਚਣ ਲਈ, $
 
 # Revision feed
 'history-feed-title' => 'ਰੀਵਿਜ਼ਨ ਅਤੀਤ',
+'history-feed-item-nocomment' => '$1 ਤੋਂ $2 ਵੱਜੇ',
 
 # Revision deletion
 'rev-deleted-comment' => '(ਟਿੱਪਣੀ ਹਟਾਈ)',
index db1ff10..bc10284 100644 (file)
@@ -79,7 +79,7 @@ Pabusten ing pamanaliling dake kapamilatan [alilan] ning suglung',
 'fri' => 'Vie',
 'sat' => 'Sab',
 'january' => 'Eneru',
-'february' => 'Febreru',
+'february' => 'Pebreru',
 'march' => 'Marzu',
 'april' => 'Abril',
 'may_long' => 'Mayu',
@@ -158,6 +158,9 @@ Pabusten ing pamanaliling dake kapamilatan [alilan] ning suglung',
 'vector-action-protect' => 'Protectan/kambilan',
 'vector-action-undelete' => 'Isubli/iurung ya pangabura',
 'vector-action-unprotect' => 'Idayu ya panga-protecta',
+'vector-view-view' => 'Basan',
+'namespaces' => 'Karinanlagiu',
+'variants' => 'Aliwapa',
 
 'errorpagetitle' => 'Mali',
 'returnto' => 'Magbalik king $1.',
@@ -275,7 +278,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 +647,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,6 +752,7 @@ 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',
 'search-result-size' => '$1 ({{PLURAL:$2|1 a kataya|$2 kataya}})',
 'search-result-score' => 'Kaugnayan (relevance): $1%',
@@ -1294,6 +1299,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 +1589,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',
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 7ef1686..e5c006b 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)",
@@ -429,6 +429,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' => "Sta pagina o assion a veul ch'it sie intrà dzora a sta wiki.",
 
 # Virus scanner
 'virus-badscanner' => "Configurassion falà: antivìrus nen conossù: ''$1''",
@@ -2618,12 +2620,12 @@ Për piasì, ch'a vìsita la [//www.mediawiki.org/wiki/Localisation Localisassio
 'import-interwiki-text' => "Che a selession-a na wiki e ël tìtol dla pàgina da amporté.
 Date dle revision e stranòm dj'editor a resteran piàjit sù 'cò lor.
 Tute j'amportassion antra wiki diferente a resto marcà ant ël [[Special:Log/import|Registr dj'amportassion]].",
-'import-interwiki-source' => 'Sorziss wiki/pàgina:',
-'import-interwiki-history' => 'Còpia tute le version stòriche dë sta pàgina-sì',
-'import-interwiki-templates' => 'Ansëriss tùit jë stamp',
+'import-interwiki-source' => 'Wiki e pàgina sorgiss:',
+'import-interwiki-history' => 'Copié tute le revision ëd la stòria ëd costa pàgina',
+'import-interwiki-templates' => 'Anserì tùit jë stamp',
 'import-interwiki-submit' => 'Amporté',
 'import-interwiki-namespace' => 'Spassi nominal ëd destinassion:',
-'import-upload-filename' => 'Nòm dël file:',
+'import-upload-filename' => "Nòm ëd l'archivi:",
 'import-comment' => 'Oget:',
 'importtext' => "Për piasì, che as espòrta l'archivi da 'nt la sorgiss wiki ën dovrand l'[[Special:Export|utiss d'esportassion]]. 
 Che as lo salva ansima a sò ordinator e peui che a lo caria ambelessì.",
@@ -2634,8 +2636,8 @@ 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',
+'importbadinterwiki' => 'Liura antra wiki diferente cioca',
+'importnotext' => 'Veujd o con 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.",
@@ -2777,6 +2779,7 @@ Sòn a l'é motobin belfé che a sia rivà përchè a-i era n'anliura a un sit e
 'spambot_username' => 'MediaWiki - trigomiro che a-j dà deuit a la rumenta',
 'spam_reverting' => "Buta andaré a l'ùltima version che a l'avèissa pa andrinta dj'anliure a $1",
 'spam_blanking' => "Pàgina dësveujdà, che tute le version a l'avìo andrinta dj'anliure a $1",
+'spam_deleting' => 'Tute le revision a contnisìo dle liure a $1, scancelament',
 
 # Info page
 'pageinfo-title' => 'Anformassion për "$1"',
@@ -3707,4 +3710,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 3236db2..0a99aed 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',
@@ -757,8 +757,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 +796,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 +1184,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 +1266,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 +1623,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',
index a742f3d..4db15f5 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]]. {{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}}
 
@@ -696,6 +697,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 +1125,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}})',
@@ -2376,7 +2380,7 @@ The title is {{msg-mw|nopagetitle}}.',
 'booksources-go' => 'Name of button in [[Special:BookSources]]
 
 {{Identical|Go}}',
-'booksources-invalid-isbn' => 'This message is displayed after an invalid ISBN is entered on Special:Booksources.',
+'booksources-invalid-isbn' => 'This message is displayed after an invalid ISBN is entered on [[Special:Booksources]].',
 
 # Special:Log
 'specialloguserlabel' => 'Used in [[Special:Log]] as a label for an input field with which the log can be filtered for entries describing actions \'\'performed\'\' by the specified user.  "Carried out" and "done" are possible alternatives for "performed".',
@@ -3359,7 +3363,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.
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 dde312e..53fc430 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)',
@@ -695,6 +695,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''",
@@ -737,7 +739,7 @@ Contul dumneavoatră a fost creat. Nu uitați să vă personalizați [[Special:P
 Vă rugăm să alegeți un alt nume.',
 'loginerror' => 'Eroare de autentificare',
 'createaccounterror' => 'Nu pot crea contul: $1',
-'nocookiesnew' => 'Contul a fost creat, dar dvs. nu sunteți autentificat(ă). {{SITENAME}} folosește cookie-uri pentru a reține utilizatorii autentificați. Browser-ul dvs. are modulele cookie dezactivate (disabled). Vă rugăm să le activați și să vă reautentificați folosind noul nume de utilizator și noua parolă.',
+'nocookiesnew' => 'Contul a fost creat, dar nu sunteți autentificat{{GENDER:||ă|}}. {{SITENAME}} folosește module cookie pentru a reține utilizatorii autentificați. Navigatorul dumneavoastră are aceste module cookie dezactivate. Vă rugăm să le activați și să vă reautentificați folosind noul nume de utilizator și noua parolă.',
 'nocookieslogin' => '{{SITENAME}} folosește module cookie pentru a autentifica utilizatorii. Browser-ul dvs. are cookie-urile dezactivate. Vă rugăm să le activați și să incercați din nou.',
 'nocookiesfornew' => 'Contul de utilizator nu a fost creat, deoarece nu am putut confirma sursa.
 Asigurați-vă că aveți cookie-urile activate, reîncărcați pagina și încercați din nou.',
@@ -2762,7 +2764,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.',
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 909cfe9..d37ca15 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)',
@@ -784,6 +784,8 @@ $2',
 Установивший этот режим администратор оставил следующее разъяснение: «''$3''».",
 'invalidtitle-knownnamespace' => 'Недопустимый заголовок с пространством имен «$2» и текстом «$3»',
 'invalidtitle-unknownnamespace' => 'Недопустимый заголовок с неизвестным номером пространства $1 и текстом «$2»',
+'exception-nologin' => 'Вы не представились системе',
+'exception-nologin-text' => 'Для просмотра этой станицы или выполнения запрошенного действия необходимо представиться системе.',
 
 # Virus scanner
 'virus-badscanner' => "Ошибка настройки. Неизвестный сканер вирусов: ''$1''",
@@ -4168,4 +4170,6 @@ MediaWiki распространяется в надежде, что она бу
 'duration-centuries' => '$1 {{PLURAL:$1|век|века|веков}}',
 'duration-millennia' => '$1 {{PLURAL:$1|тысячелетие|тысячелетия|тысячелетий}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Не удалось получить блокировку на сервере  $1.',
 );
index 64e8807..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
@@ -204,9 +204,9 @@ $messages = array(
 'vector-simplesearch-preference' => 'Поволити росшырены пропозіції гляданя (лем взгляд Vector )',
 'vector-view-create' => 'Створити',
 'vector-view-edit' => 'Едітовати',
-'vector-view-history' => 'Видїти історію',
+'vector-view-history' => 'Відїти історію',
 'vector-view-view' => 'Чітати',
-'vector-view-viewsource' => 'Видїти код',
+'vector-view-viewsource' => 'Відїти код',
 'actions' => 'Дїї',
 'namespaces' => 'Просторы назв',
 'variants' => 'Варіанты',
@@ -310,7 +310,7 @@ $1',
 'youhavenewmessagesmulti' => 'Маєте новы ознамы на $1',
 'editsection' => 'едіт.',
 'editold' => 'едіт.',
-'viewsourceold' => 'видїти код',
+'viewsourceold' => 'відїти код',
 'editlink' => 'едітовати',
 'viewsourcelink' => 'видїти код',
 'editsectionhint' => 'Едітовати секцію: $1',
@@ -377,9 +377,9 @@ $1',
 Адміністратор, котрый датабазу замкнув, охабив тото пояснїня: $1',
 'missing-article' => 'В датабазї ся не нашов жаданый текст сторінкы «$1» $2.
 
-Подобна сітуація звычайно взникає при спробі переходу по застаралому одказованю на історію змін сторінкы, яка была вымазана.
+Подобна сітуація звычайно выникать при спробі переходу по застаралому одказованю на історію змін сторінкы, яка была вымазана.
 
-Кідь то не є тот припад, може сьте нашли помылку в проґрамовім забезпечіню.
+Кідь то не є тот припад, може сьте нашли помылку в проґрамовім забеспечіню.
 Просиме Вас, оголоште то [[Special:ListUsers/sysop|адміністраторам]], придайте і URL.',
 'missingarticle-rev' => '(ревізія № $1)',
 'missingarticle-diff' => '(Роздїл: $1, $2)',
@@ -409,7 +409,7 @@ $1',
 'wrong_wfQuery_params' => 'Неправилны параметры функцій wfQuery()<br />
 Функція: $1<br />
 Запрос: $2',
-'viewsource' => 'Видїти код',
+'viewsource' => 'Відїти код',
 'viewsource-title' => 'Відїти жрідло сторінкы $1',
 'actionthrottled' => 'Акція была придушена',
 'actionthrottledtext' => 'Взглядом ку протиспамовым опатрїням не можете жадану акцію провести барз часто в короткім часї. Спробуйте то знову о пару мінут.',
@@ -426,6 +426,11 @@ $2',
 'customjsprotected' => 'Не маєте права едітовати тоту сторінку з JavaScript-ом, бо обсягує персоналны наставлїна іншого хоснователя.',
 'ns-specialprotected' => 'Шпеціалны сторінкы не є можне едітовати.',
 'titleprotected' => "Створїня сторінкы з таков назвов было заборонене хоснователём [[User:$1|$1]] з причінов: ''$2''.",
+'filereadonlyerror' => "Не годно змінити файл „$1“, бо архів файлів „$2“ є теперь лем на чітаня.
+
+Адміністратор сервера, котрый архів заблоковав, додав тото пояснїня: „''$3''“.",
+'invalidtitle-knownnamespace' => 'Непряавилна назва в просторї назв „$2“ і текстом „$3“',
+'invalidtitle-unknownnamespace' => 'Неправилна назва з незнамым чіслом простору назв $1 і текстом „$2“',
 
 # Virus scanner
 'virus-badscanner' => "Зла конфіґурація: незнамый антивіровый проґрам: ''$1''",
@@ -514,6 +519,7 @@ $2',
 'invalidemailaddress' => 'Уведена адреса ел. пошты не може быти прията, бо она не має правилный формат.
 Просиме Вас, уведьте коректну адесу або зохабте поле порожнє.',
 'cannotchangeemail' => 'В тій вікі не годен мінити імейловы адресы.',
+'emaildisabled' => 'Сесь сервер не годен одосылати імейлы.',
 'accountcreated' => 'Конто вытворене',
 'accountcreatedtext' => 'Конто хоснователя $1 было вытворене.',
 'createaccount-title' => 'Вытвориня конта про  {{SITENAME}}',
@@ -596,7 +602,7 @@ $2
 'changeemail-cancel' => 'Сторно',
 
 # Edit page toolbar
-'bold_sample' => 'Тучный текст',
+'bold_sample' => 'Товстый текст',
 'bold_tip' => 'Шырокый текст',
 'italic_sample' => 'Курсива',
 'italic_tip' => 'Курсива',
@@ -706,6 +712,7 @@ $2
 'note' => "'''Позначка:'''&nbsp;",
 'previewnote' => "'''Памятайте, же то лем нагляд.'''
 Зміны іщі не суть уложены!",
+'continue-editing' => 'Продовжыти едітованя',
 'previewconflict' => 'Тот нагляд зображує текст так, як буде вызерати по уложіню сторінкы.',
 'session_fail_preview' => "'''Вашу пожадавку ся не подарило зпрацовати, бо были страчены дата сеансу.
 Просиме, спробуйте то зясь.
@@ -779,21 +786,28 @@ $2
 'edit-conflict' => 'Конфлікт едітованя.',
 'edit-no-change' => 'Ваша едітація была іґнорована, бо не дішло ку жадній змінї тексту.',
 'edit-already-exists' => 'Не подарило ся створити нову сторінку, бо она уж екзістує.',
+'defaultmessagetext' => 'Преднаставленый текст повідомлїня',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Увага: Тота сторінка обсягує дуже много кликаня выконово нарочных функцій парсера.
 
 Поволеный ліміт є $2, теперь шак  {{PLURAL:$1|ту єдно кликаня є|ту суть  $2 кликаня|ту є $2 кликань}}.',
 'expensive-parserfunction-category' => 'Сторінкы з дуже великым чіслом кликаня функції парсера',
-'post-expand-template-inclusion-warning' => 'Увага: розмір шаблон про включіня є барз великый.
+'post-expand-template-inclusion-warning' => 'Ð\9fозÑ\96Ñ\80Ñ\8c: розмір шаблон про включіня є барз великый.
 Дакотры шаблоны не будуть включены.',
 'post-expand-template-inclusion-category' => 'Сторінкы з перевышуючов великостёв включеных шаблон',
-'post-expand-template-argument-warning' => 'Увага: Тота сторінка обсягує принайменшім єден арґумент шаблоны, котрый є по розбалїню дуже великый.
+'post-expand-template-argument-warning' => 'Увага: Тота сторінка обсягує принайменшім єден арґумент шаблоны, котрый є по роспакованю дуже великый.
 Тоты арґументы были іґнорованы.',
 'post-expand-template-argument-category' => 'Сторінкы обсягуючі іґнорованы арґументы шаблон',
 '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' => 'Выявлене заціклїня unstrip',
+'parser-unstrip-recursion-limit' => 'Перевышеный ліміт рекурзії unstrip ($1)',
 
 # "Undo" feature
 'undo-success' => 'Едітованя може быти зручене.
@@ -938,7 +952,8 @@ $1",
 
 # Suppression log
 'suppressionlog' => 'Запис затаїня',
-'suppressionlogtext' => 'Тото є  список змазаня і блокованя котрый має обсяг схованый перед адміністраторами. Видьте тыж [[Special:BlockList|список вшыткых блоковань]].',
+'suppressionlogtext' => 'Тото є список мазаня і блокованя загорнюючі спрятаня обсягу і перед адміністраторами.
+Смотьте тыж [[Special:BlockList|Список вшыткых актуалных блоковань]].',
 
 # History merging
 'mergehistory' => 'Злучованя історії сторінок',
@@ -971,6 +986,8 @@ $1",
 
 # Diffs
 'history-title' => '$1: Історія змін',
+'difference-title' => '$1: Роздїлы міджі ревізіями',
+'difference-title-multipage' => '$1 і $2: Роздїлы міджі сторінками',
 'difference-multipage' => '(Роздїлы міджі сторінками)',
 'lineno' => 'Рядок $1:',
 'compareselectedversions' => 'Порівнати выбраны верзії',
@@ -1032,7 +1049,7 @@ $1",
 'showingresultsheader' => "{{PLURAL:$5|Резултат '''$1''' з '''$3'''|Резултаты '''$1 — $2''' з '''$3'''}}  про '''$4'''",
 'nonefound' => "'''Позначка:''' Штандартно ся глядать лем в дакотрых просторах назв.
 Хоснуйте префікс ''all:'', жебы глядати у вшыткых просторах назв (рахувчі тыж сторінкы діскузії, шаблоны ітд.), або зазначте потрібный простор назв.",
-'search-nonefound' => 'На ваш запрос не были найджены жадны резултаты.',
+'search-nonefound' => 'На вашу пожадавку не были найджены жадны резултаты.',
 'powersearch' => 'Росшырене гляданя',
 'powersearch-legend' => 'Росшырене гляданя',
 'powersearch-ns' => 'Глядати у просторах назв:',
@@ -1066,7 +1083,8 @@ $1",
 'prefs-beta' => 'Бета-функції',
 'prefs-datetime' => 'Датум і час',
 'prefs-labs' => 'Експеріменталны функції',
-'prefs-personal' => 'Інформації о хоснователёві',
+'prefs-user-pages' => 'Сторінкы хоснователя',
+'prefs-personal' => 'Інформації о хоснователёви',
 'prefs-rc' => 'Послїднї зміны',
 'prefs-watchlist' => 'Слїдованы сторінкы',
 'prefs-watchlist-days' => 'Чісло днїв зображеных в слїдованых сторінках:',
@@ -1358,6 +1376,7 @@ $1",
 'newsectionsummary' => '/* $1 */ нова секція',
 'rc-enhanced-expand' => 'Вказати детайлы (потрібный JavaScript)',
 'rc-enhanced-hide' => 'Сховати детайлы',
+'rc-old-title' => 'спочатку створена як $1',
 
 # Recent changes linked
 'recentchangeslinked' => 'Повязаны зміны',
@@ -1494,6 +1513,31 @@ $1',
 'upload-too-many-redirects' => 'URL обсягує барз велё напрямлінь',
 'upload-unknown-size' => 'Незнамый розмір',
 'upload-http-error' => 'Дішло ку хыбі HTTP: $1',
+'upload-copy-upload-invalid-domain' => 'Начітаня копірованём неможливе з той домены.',
+
+# File backend
+'backend-fail-stream' => 'Не вдало ся транслёвати файл $1.',
+'backend-fail-backup' => 'Не вдало ся створити резервну копію файлу $1.',
+'backend-fail-notexists' => 'Файл $1 не існує.',
+'backend-fail-hashes' => 'Не вдало ся обтримати гешы файлів про порівнаня.',
+'backend-fail-notsame' => 'Неідентичный файл $1 вже існує.',
+'backend-fail-invalidpath' => '$1 є неправилна степка к місцю уложіня.',
+'backend-fail-delete' => 'Не вдало ся вылучіти файл $1.',
+'backend-fail-alreadyexists' => 'Файл $1 вже існує.',
+'backend-fail-store' => 'Не вдало ся уложыти файл $1 в $2.',
+'backend-fail-copy' => 'Не вдало ся скопіровати файл $1 до $2.',
+'backend-fail-move' => 'Не вдало ся перемістити файл $1 до $2.',
+'backend-fail-opentemp' => 'Не вдало ся отворити дочасный файл.',
+'backend-fail-writetemp' => 'Не вдало ся записати до дочасного файлу.',
+'backend-fail-closetemp' => 'Не вдало ся заперти дочасный файл.',
+'backend-fail-read' => 'Не вдало ся прочітати файл $1.',
+'backend-fail-create' => 'Не вдало ся записати файл $1.',
+'backend-fail-maxsize' => 'Не вдало ся записати до файлу $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-usable' => 'Не вдало ся записати до файлу $1  про недостаточны права або хыбуючі адресарї/контайнеры.',
 
 # ZipDirectoryReader
 'zip-file-open-error' => 'При одкрытю ZIP-архіву про ёго перевірку выникла хыба.',
@@ -1871,7 +1915,7 @@ $1',
 # E-mail user
 'mailnologin' => 'Без адресы одосланя',
 'mailnologintext' => 'Кідь хочете посылати ел. пошту іншым хоснователям, мусите ся [[Special:UserLogin|приголосити]] і мати платну адресу ел. пошты в своїм [[Special:Preferences|наставлїню]].',
-'emailuser' => 'Послати е-маіл тому хоснователёві',
+'emailuser' => 'Послати е-маіл тому хоснователёви',
 'emailpage' => 'Пошлийте е-пошту',
 'emailpagetext' => 'Помочов ниже зображеного формуларя можете тому хоснователёви послати повідомлїня ел. поштов.
 Адреса ел. пошты, котру мате зазначену в [[Special:Preferences|наставлїня]],ся обявить як адреса одосылателя пошты, жебы вам адресат міг одповісти прямо.',
@@ -1887,7 +1931,7 @@ $1',
 'emailtarget' => 'Уведьте імя хоснователя-адресата',
 'emailusername' => 'Імя хоснователя:',
 'emailusernamesubmit' => 'Одослати',
-'email-legend' => 'Одосыланя ел. пошты іншому хоснователёві {{GRAMMAR:2sg|{{SITENAME}}}}',
+'email-legend' => 'Одосыланя ел. пошты іншому хоснователёви {{GRAMMAR:2sg|{{SITENAME}}}}',
 'emailfrom' => 'Од:',
 'emailto' => 'Кому:',
 'emailsubject' => 'Тема:',
@@ -1897,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' => 'Зохабити сістемове повідомлїня',
@@ -2112,8 +2156,8 @@ $UNWATCHURL
 'undeleterevision-missing' => 'Неправилна або хыбляча ревізія. Може маєте планый одказ, або ревізія была обновлена ці одстранена з архіву.',
 'undelete-nodiff' => 'Не найджена жадна попередня верзія.',
 'undeletebtn' => 'Обновити',
-'undeletelink' => 'видїти/обновити',
-'undeleteviewlink' => 'видїти',
+'undeletelink' => 'відїти/обновити',
+'undeleteviewlink' => 'відїти',
 'undeletereset' => 'Ресетовати',
 'undeleteinvert' => 'Інвертовати селекцію',
 'undeletecomment' => 'Причіна:',
@@ -2149,9 +2193,9 @@ $1',
 'blanknamespace' => '(Основный)',
 
 # Contributions
-'contributions' => 'Приспевок хоснователя',
+'contributions' => 'Приспівок хоснователя',
 'contributions-title' => 'Приспевок хоснователя $1',
-'mycontris' => 'Мої приспевкы',
+'mycontris' => 'Мої приспівкы',
 'contribsub2' => 'Приспевок $1 ($2)',
 'nocontribs' => 'Ненайджены жадны зміны подля тых крітерій.',
 'uctop' => ' (послїдня)',
@@ -2219,7 +2263,7 @@ $1',
 ** Невгодне мено хоснователя',
 'ipb-hardblock' => 'Заборонити приголошеным хоснователям едітовати з той IP-адресы',
 'ipbcreateaccount' => 'Не доволити реґістрацію новых хоснователїв',
-'ipbemailban' => 'Заборонити хоснователёві посылати ел. пошту',
+'ipbemailban' => 'Заборонити хоснователёви посылати ел. пошту',
 'ipbenableautoblock' => 'Автоматічно блоковати IP адресы хоснованы тым хоснователём',
 'ipbsubmit' => 'Заблоковати',
 'ipbother' => 'Іншый час:',
@@ -2233,8 +2277,8 @@ $1',
 'ipb-confirm' => 'Потвердити блокованя',
 'badipaddress' => 'Неправилна IP адреса',
 'blockipsuccesssub' => 'Блокованя проведено',
-'blockipsuccesstext' => 'Хоснователь „[[Special:Contributions/$1|$1]]“ є блокованый.<br />
\9cожеÑ\82е Ñ\81обÑ\96 Ð¿Ð¾Ñ\81моÑ\82Ñ\80иÑ\82и [[Special:BlockList|Ñ\81пиÑ\81ок Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ñ\8bÑ\85 Ñ\85оÑ\81новаÑ\82елÑ\97в]].',
+'blockipsuccesstext' => '„[[Special:Contributions/$1|$1]]“ je {{GENDER:$1|заблокованый|заблокована}}.<br />
\9cожеÑ\82е Ñ\81обÑ\96 Ð¿Ð¾Ñ\81моÑ\82Ñ\80иÑ\82и [[Special:BlockList|Ñ\81пиÑ\81ок Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ñ\8bÑ\85 Ñ\80едакÑ\82оÑ\80Ñ\96в]].',
 'ipb-blockingself' => 'Зберате ся заблоковати {{gender:|сам|сама|самы}} себе! Сьте собі {{gender:|певный|певна|певны}}, же тото хочете зробити?',
 'ipb-confirmhideuser' => 'Рыхтуєте ся заблоковати хоснователя зо запнутов вольбов "сховати імя хоснователя". То запрічінить же імя хоснователя счезне зо вшыткых списків і протоколёвачіх записів.  Сьте собі {{gender:|певный|певна|певны}}, же хочете тото зробити?',
 'ipb-edit-dropdown' => 'Едітовати причіны блоковань',
@@ -2276,7 +2320,7 @@ $1',
 'blocklink' => 'заблоковати',
 'unblocklink' => 'одблоковати',
 'change-blocklink' => 'змінити блок',
-'contribslink' => 'приспевкы',
+'contribslink' => 'приспівкы',
 'emaillink' => 'послати імейл',
 'autoblocker' => 'Сьте были автоматічно блокованы, протоже здїляте IP-адресу з хоснователём „[[User:$1|$1]]“. Причіна блокованя того хоснователя: „$2“',
 'blocklogpage' => 'Запис блоковань',
@@ -2285,7 +2329,9 @@ $1',
 'blocklog-showsuppresslog' => 'Тот хоснователь быв блокованый і схованый. Ту є про перегляд вказаный выпис з книгы блокованя:',
 'blocklogentry' => 'заблокoвав [[$1]] на термін $2 $3',
 'reblock-logentry' => 'змінив наставлїня блоку „[[$1]]“ з часом ексіпрації $2 $3',
-'blocklogtext' => 'Тото є книга блокованя і одблокованя хоснователїв. Автоматічно блокованы IP-адресы не суть выписаны. Попозерайте ся на  [[Special:BlockList|список блокованя IP]] з выписом актуалный заказів і блоковань.',
+'blocklogtext' => 'Тото є журнал дїй блокованя і одблокованя редакторів.
+Автоматічно блокованы IP адресы не выписованы.
+Смотьте тыж [[Special:BlockList|список вшыткых чінных блоковань]].',
 'unblocklogentry' => 'одблоковав $1',
 'block-log-flags-anononly' => 'лем анонімны хоснователї',
 'block-log-flags-nocreate' => 'вытваряня конт не поволене',
@@ -2439,9 +2485,11 @@ $1',
 До ниже зазначеного едітачного поля зазначте назвы сторінок, котры хочете експортовати; каждый рядок єдна назва. Тыж звольте, ці ся мають експортовати і старшы верзії сторінкы враховано інформацій в історії едітованя, або лем актуална верзія з інформаціов о послїднїй едітації.
 
 В другім припадї можете тыж хосновати прямый одказ, наприклад помочов [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] ся выекспортує „[[{{MediaWiki:Mainpage}}]]“.',
+'exportall' => 'Експортовати вшыткы сторінкы',
 'exportcuronly' => 'Загорняти лем сучасну верзію, не повну історію',
 'exportnohistory' => "----
 '''Позначка:''' експорт повных історій средством того формуларя быв про проблемы з ресурсами заказаный.",
+'exportlistauthors' => 'У каждой сторінкы выписати повный список приспівателїв',
 'export-submit' => 'Експорт',
 'export-addcattext' => 'Додати сторінкы з катеґорії:',
 'export-addcat' => 'Придати',
@@ -2474,6 +2522,8 @@ $1',
 'thumbnail_error' => 'Хыба створїня нагляду: $1',
 'djvu_page_error' => 'Сторінка DjVu мімо россяг',
 'djvu_no_xml' => 'Створїня XML про файл DjVu ся не подарило.',
+'thumbnail-temp-create' => 'Дочасный файл нагляду негодно было створити',
+'thumbnail-dest-create' => 'Нагляд не годно было уложыти на призначене місце',
 'thumbnail_invalid_params' => 'Неплатный параметер нагляду',
 'thumbnail_dest_directory' => 'Не дасть ся створити цілёвый адресарь',
 'thumbnail_image-type' => 'Непідпорованый тіп образку',
@@ -2517,6 +2567,9 @@ $1',
 'import-invalid-interwiki' => 'Із зазначеной вікі ся не дасть імпортовати.',
 'import-error-edit' => 'Сторінка „$1“ ся не наімпортовала, бо не мате право єй едітовати.',
 'import-error-create' => 'Сторінка „$1“ ся не наімпортовала, бо не мате право єй створити.',
+'import-error-interwiki' => 'Сторінка „$1“ ся не імпортує, бо єй назва є зарезервована про вонкашнї лінкы (interwiki).',
+'import-error-special' => 'Сторінка „$1“ ся не імпортує, бо належыть до шпеціалного простору назв, до котрого сторінкы не належать.',
+'import-error-invalid' => 'Сторінка „$1“ ся не імпортує, бо єй назва неприпустна.',
 
 # Import log
 'importlogpage' => 'Книга імпортів',
@@ -2526,6 +2579,14 @@ $1',
 'import-logentry-interwiki' => 'міджівікі імпорт $1',
 'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|ревізія|ревізії|ревізій}} з $2',
 
+# JavaScriptTest
+'javascripttest' => 'Тестованя JavaScript',
+'javascripttest-disabled' => 'Тота функція не дозволена на тій вікі.',
+'javascripttest-title' => 'Біжать тест в $1',
+'javascripttest-pagetext-noframework' => 'Тота сторінка є резервована про тестованя JavaScript.',
+'javascripttest-pagetext-unknownframework' => 'Незнаный фреймворк тестованя „$1“.',
+'javascripttest-pagetext-frameworks' => 'Просиме, звольте єден з наступных фреймворків тестованя : $1',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Ваша сторінка хоснователя',
 'tooltip-pt-anonuserpage' => 'Сторінка хоснователя про IP-адресу, з котрой едітуєте',
@@ -2533,7 +2594,7 @@ $1',
 'tooltip-pt-anontalk' => 'Діскузія о едітованях выконаных з той IP-адресы',
 'tooltip-pt-preferences' => 'Вашы наставлїня',
 'tooltip-pt-watchlist' => 'Список сторінок, на котрых слїдуєте зміны',
-'tooltip-pt-mycontris' => 'Список вашых приспевків',
+'tooltip-pt-mycontris' => 'Список вашых приспівків',
 'tooltip-pt-login' => 'Рекомендуєме ся приголосити, але не є то повинне.',
 'tooltip-pt-anonlogin' => 'Рекомендуєме ся приголосити, але не є то повинне.',
 'tooltip-pt-logout' => 'Одголошіня',
@@ -2541,14 +2602,14 @@ $1',
 'tooltip-ca-edit' => 'Тоту сторінку можно едітовати. Просиме, хоснуйте перегляд перед уложінём.',
 'tooltip-ca-addsection' => 'Створити нову секцію',
 'tooltip-ca-viewsource' => 'Тота сторінка є замкнута.
-Можете видїти єй код.',
+Можете відїти єй код.',
 'tooltip-ca-history' => 'Минулы верзії той сторінкы',
 'tooltip-ca-protect' => 'Хрань тоту сторінку',
 'tooltip-ca-unprotect' => 'Змінити замок той сторінкы',
 'tooltip-ca-delete' => 'Вымазати тоту сторінку',
 'tooltip-ca-undelete' => 'Обновити едітованя той сторінкы выконаны перед єй змазанём',
 'tooltip-ca-move' => 'Переменовати тоту сторінку',
-'tooltip-ca-watch' => 'Придати тоту сторінку до вашого списку слїдованых сторінок',
+'tooltip-ca-watch' => 'Придати гевсю сторінку до вашого списку слїдованых сторінок',
 'tooltip-ca-unwatch' => 'Одобрати тоту сторінку з вашого списку слїдованых сторінок',
 'tooltip-search' => 'Глядати {{SITENAME}}',
 'tooltip-search-go' => 'Перейти до сторінкы, што має точно таку назву (кідь екзістує)',
@@ -2561,31 +2622,31 @@ $1',
 'tooltip-n-recentchanges' => 'Список послїднїх змін',
 'tooltip-n-randompage' => 'Зображіня нагодной сторінкы',
 'tooltip-n-help' => 'Посмотрити поміч',
-'tooltip-t-whatlinkshere' => 'Список вшыткых сторінок, што одказують на тоту сторінку',
-'tooltip-t-recentchangeslinked' => 'Ð\9fоÑ\81лÑ\97днÑ\97 Ð·Ð¼Ñ\96нÑ\8b Ð½Ð° Ñ\81Ñ\82оÑ\80Ñ\96нкаÑ\85, ÐºÐ¾Ñ\82Ñ\80Ñ\8b Ð¼Ð°Ñ\8eÑ\82Ñ\8c Ð¾Ð´ÐºÐ°Ð· Ð½Ð° Ñ\82Ñ\96й сторінцї',
+'tooltip-t-whatlinkshere' => 'Список вшыткых сторінок, што одказують ся на тоту сторінку',
+'tooltip-t-recentchangeslinked' => 'Ð\9fоÑ\81лÑ\97днÑ\97 Ð·Ð¼Ñ\96нÑ\8b Ð½Ð° Ñ\81Ñ\82оÑ\80Ñ\96нкаÑ\85, ÐºÐ¾Ñ\82Ñ\80Ñ\8b Ð¼Ð°Ñ\8eÑ\82Ñ\8c Ð¾Ð´ÐºÐ°Ð· Ð½Ð° Ñ\82Ñ\97й сторінцї',
 'tooltip-feed-rss' => 'RSS канал про тоту сторінку',
-'tooltip-feed-atom' => 'Atom канал про тоту сторінку',
+'tooltip-feed-atom' => 'Atom канал про гевсю сторінку',
 'tooltip-t-contributions' => 'Перегляд приспевків того хоснователя',
-'tooltip-t-emailuser' => 'Послати е-маіл тому хоснователёві',
+'tooltip-t-emailuser' => 'Послати е-маіл тому хоснователёви',
 'tooltip-t-upload' => 'Награти файлы',
 'tooltip-t-specialpages' => 'Список вшыткых шпеціалных сторінок',
 'tooltip-t-print' => 'Верзія той сторінкы про друк',
 'tooltip-t-permalink' => 'Перманентный одказ на тоту верзію сторінкы',
 'tooltip-ca-nstab-main' => 'Обсяг сторінкы',
-'tooltip-ca-nstab-user' => 'Видїти сторінку хоснователя',
+'tooltip-ca-nstab-user' => 'Відїти сторінку хоснователя',
 'tooltip-ca-nstab-media' => 'Вказати сторінку файлу',
 'tooltip-ca-nstab-special' => 'Шпеціална сторінка, она є недоступна про едітованя',
 'tooltip-ca-nstab-project' => 'Сторінка проєкту',
 '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' => 'Позначіти тото як незначне едітованя',
 'tooltip-save' => 'Уложыти вашы зміны',
 'tooltip-preview' => 'Нагляд сторінкы, просиме Вас, хоснуйте перед уложінём!',
 'tooltip-diff' => 'Вказати зміны, што были зроблены в тексті.',
-'tooltip-compareselectedversions' => 'Видїти роздїл міджі двома указаныма верзіями той сторінкы.',
+'tooltip-compareselectedversions' => 'Відїти роздїл міджі двома указаныма верзіями той сторінкы.',
 'tooltip-watch' => 'Придати тоту сторінку до списку слїдованых',
 'tooltip-recreate' => 'Обновити сторінку і кідь была змазана',
 'tooltip-upload' => 'Почати одосыланя',
@@ -3122,7 +3183,7 @@ $1',
 
 # External editor support
 'edit-externally' => 'Едітовати тот файл хоснувчі екстерну аплікацію',
-'edit-externally-help' => '(Вецей інформації найдете в [//www.mediawiki.org/wiki/Manual:External_editors інштрукції про наставлїня].)',
+'edit-externally-help' => '(Веце інформацій найдете в [//www.mediawiki.org/wiki/Manual:External_editors інштрукції про наставлїня].)',
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'вшыткы',
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 7a8cfb4..be89336 100644 (file)
@@ -1043,7 +1043,7 @@ Siiddus $2 lea listu maŋimus sihkomiin.',
 'protect_expiry_invalid' => 'Boarášnuvvánáigi ii dohket.',
 'protect_expiry_old' => 'Boarásnuvvánáigi lea vássán.',
 'protect-default' => 'Suova buot geavaheddjiid',
-'protect-level-autoconfirmed' => 'Cakkastala ođđa ja anonyma geavaheddjiid',
+'protect-level-autoconfirmed' => 'Eastte anonyma ja ođđa geavaheddjiid',
 'protect-level-sysop' => 'Suova beare administráhtoriid',
 'protect-summary-cascade' => 'viiddiduvvon',
 'protect-expiring' => 'boarásnuvvá $1',
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 0d61ed7..e806864 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)',
@@ -576,6 +576,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''",
@@ -3874,4 +3876,6 @@ V nasprotnem primeru lahko uporabite preprost obrazec spodaj. Vašo pripombo bom
 'duration-centuries' => '$1 {{PLURAL:$1|stoletje|stoletji|stoletja|stoletij}}',
 'duration-millennia' => '$1 {{PLURAL:$1|tisočletje|tisočletji|tisočletja|tisočletij}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Ne morem pridobiti zaklepov na strežniku $1.',
 );
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 50716de..9868b9b 100644 (file)
@@ -47,6 +47,7 @@
  * @author Thurs
  * @author Tobulos1
  * @author VickyC
+ * @author Warrakkk
  * @author Where next Columbus
  * @author Where next Columbus?
  * @author WikiPhoenix
@@ -705,6 +706,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''",
@@ -1088,6 +1091,8 @@ Dessa parametrar har uteslutits.',
 'node-count-exceeded-warning' => 'Sidan har överskridit antalet nodar',
 'expansion-depth-exceeded-category' => 'Sidor där expansionsdjupet överskrids',
 'expansion-depth-exceeded-warning' => 'Sidan överskrider expansionsdjupet',
+'parser-unstrip-loop-warning' => 'Tagavskalningsloop upptäcktes',
+'parser-unstrip-recursion-limit' => 'Tagavskalningsloop överskred rekursionsgränsen ($1)',
 
 # "Undo" feature
 'undo-success' => 'Redigeringen kan göras ogjord.
@@ -1835,13 +1840,14 @@ Om problemet kvarstår, kontakta en [[Special:ListUsers/sysop|administratör]].'
 'backend-fail-closetemp' => 'Kunde inte stänga temporär fil.',
 'backend-fail-read' => 'Kunde inte läsa filen $1.',
 'backend-fail-create' => 'Kunde inte skapa filen $1.',
-'backend-fail-maxsize' => 'Kunde inte skapa filen $1, eftersom den är större än {{PLURAL:$2|$2|$2}} byte.',
+'backend-fail-maxsize' => 'Kunde inte skapa filen $1 eftersom den är större än {{PLURAL:$2|en byte|$2 bytes}}.',
 'backend-fail-readonly' => 'Lagringssystemet "$1" är för närvarande skrivskyddad. Den angivna anledningen är: "$2"',
 'backend-fail-synced' => 'Filen "$1" är i ett inkonsekvent tillstånd inom de interna lagringssystemen',
 'backend-fail-connect' => 'Kunde inte ansluta till lagringssystemet "$1".',
 'backend-fail-internal' => 'Ett okänt fel uppstod i lagringssystemet "$1".',
 'backend-fail-contenttype' => 'Kunde inte bestämma innehållstypen för filen att spara på "$1".',
 'backend-fail-batchsize' => 'Lagringssystemet gav en batch på $1 fil{{PLURAL:$1|operation|operationer}}; gränsen är $2 {{PLURAL:$2|operation|operationer}}.',
+'backend-fail-usable' => 'Kunde inte skriva filen $1 beroende på otillräckliga behörigheter eller saknade kataloger/containrar.',
 
 # File journal errors
 'filejournal-fail-dbconnect' => 'Kunde inte ansluta till journaldatabasen för lagringssystemet "$1".',
@@ -2160,6 +2166,7 @@ Lägg märke till att andra webbplatser kan länka till en fil med en direkt URL
 Du kan avgränsa sökningen och få färre träffar genom att ange typ av logg, användarnamn (skiftlägeskänsligt), eller berörd sida (också skiftlägeskänsligt).',
 'logempty' => 'Inga matchande träffar i loggen.',
 'log-title-wildcard' => 'Sök efter sidtitlar som börjar med texten',
+'showhideselectedlogentries' => 'Visa/Dölj markerade loggposter',
 
 # Special:AllPages
 'allpages' => 'Alla sidor',
@@ -3066,6 +3073,7 @@ Detta orsakades troligen av en länk till en svartlistad webbplats.',
 'spambot_username' => 'MediaWikis spampatrull',
 'spam_reverting' => 'Återställer till den senaste versionen som inte innehåller länkar till $1',
 'spam_blanking' => 'Alla versioner innehöll en länk till $1, blankar',
+'spam_deleting' => 'Alla ändringar innehöll länkar till $1, raderar',
 
 # Info page
 'pageinfo-title' => 'Information om "$1"',
@@ -3982,4 +3990,6 @@ Annars kan du använda det enkla formuläret nedan. Din kommentar kommer att lä
 'duration-centuries' => '$1 {{PLURAL:$1|sekel|sekel}}',
 'duration-millennia' => '$1 {{PLURAL:$1|millennium|millennier}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Kunde inte erhålla lås på servern $1 .',
 );
index 3310dc9..5029f7f 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:',
index b705e0f..7da09d3 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ć.',
+'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).
@@ -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',
@@ -537,9 +545,9 @@ Coby powstřimać nadužyća, možliwość wysyuańa připůmńeń naštalowano
 'resetpass' => 'Zmjyń 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.',
@@ -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Å\9b sam wÄ\87epywou mo $1 kilobajtůw. Maksymalno dugoÅ\9bÄ\87 tekstu Å\84y može byÄ\87 wjynkÅ¡o kej $2 kilobajtůw. Twůj tekst Å\84y bydźe sam naÅ¡kryflany.'''",
+'longpageerror' => "'''Feler: Tekst kery Å¼eÅ\9b sam wÄ\87epywoÅ\82 mo $1 kilobajtůw. Maksymalno dugoÅ\9bÄ\87 tekstu Å\84y może byÄ\87 wjynkszo kej $2 kilobajtůw. Twůj tekst Å\84y 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',
@@ -992,16 +1011,19 @@ $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',
@@ -1047,11 +1069,14 @@ $1',
 'username' => 'Mjano użytkowńika:',
 'uid' => 'ID užytkowńika:',
 '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',
index 5c6f837..3da4de2 100644 (file)
@@ -1960,7 +1960,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' => 'கவனிப்புப் பட்டியலில் சேர்',
index f9cd17c..eae871d 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Chaduvari
+ * @author Jprmvnvijay5
  * @author Kaganer
  * @author Kiranmayee
  * @author Meno25
@@ -304,23 +305,23 @@ $messages = array(
 'vector-view-history' => 'చరిత్రని చూడండి',
 'vector-view-view' => 'చదువు',
 'vector-view-viewsource' => 'మూలాన్ని చూడండి',
-'actions' => 'à°\9aà°°à±\8dà°¯లు',
-'namespaces' => 'à°¨à±\87à°\82à°¸à±\8dà°ªà±\87à°¸ులు',
-'variants' => 'à°µà±\88విధà±\8dà°¯ాలు',
+'actions' => 'పనà±\81లు',
+'namespaces' => 'à°ªà±\87à°°à±\81బరులు',
+'variants' => 'à°°à°\95à°°à°\95ాలు',
 
 'errorpagetitle' => 'పొరపాటు',
 'returnto' => 'తిరిగి $1కి.',
 'tagline' => '{{SITENAME}} నుండి',
 'help' => 'సహాయం',
-'search' => 'à°\85à°¨à±\8dà°µà±\87à°·à°£',
+'search' => 'à°µà±\86à°¤à±\81à°\95à±\81',
 'searchbutton' => 'వెతుకు',
 'go' => 'వెళ్లు',
 'searcharticle' => 'వెళ్లు',
 'history' => 'పేజీ చరిత్ర',
 'history_short' => 'చరిత్ర',
 'updatedmarker' => 'నేను కిందటిసారి వచ్చిన తరువాత జరిగిన మార్పులు',
-'printableversion' => 'à°®à±\81à°¦à±\8dà°°à°¿à°\82à°\9aà±\81à°\95à±\8bదగ్గ కూర్పు',
-'permalink' => 'శాశà±\8dవత à°²à°¿à°\82à°\95à±\81',
+'printableversion' => 'à°\85à°\9aà±\8dà°\9aà±\81à°¤à±\80à°¯దగ్గ కూర్పు',
+'permalink' => 'శాశà±\8dవత à°²à°\82à°\95à±\86',
 'print' => 'ముద్రించు',
 'view' => 'చూచుట',
 'edit' => 'సవరించు',
@@ -340,12 +341,12 @@ $messages = array(
 'talkpage' => 'ఈ పేజీని చర్చించండి',
 'talkpagelinktext' => 'చర్చ',
 'specialpage' => 'ప్రత్యేక పేజీ',
-'personaltools' => 'à°µà±\8dà°¯à°\95à±\8dతిà°\97à°¤ పనిముట్లు',
+'personaltools' => 'తన పనిముట్లు',
 'postcomment' => 'కొత్త విభాగం',
 'articlepage' => 'విషయపు పేజీని చూడండి',
 'talk' => 'చర్చ',
-'views' => 'à°ªà±\87à°\9cà±\80 à°²à°¿à°\82à°\95ులు',
-'toolbox' => 'పరిà°\95రాలపెట్టె',
+'views' => 'à°\9aà±\82à°ªులు',
+'toolbox' => 'పనిమà±\81à°\9fà±\8dà°² పెట్టె',
 'userpage' => 'వాడుకరి పేజీని చూడండి',
 'projectpage' => 'ప్రాజెక్టు పేజీని చూడు',
 'imagepage' => 'ఫైలు పేజీని చూడండి',
@@ -362,7 +363,7 @@ $messages = array(
 'protectedpage' => 'సంరక్షణలోని పేజీ',
 'jumpto' => 'ఇక్కడికి గెంతు:',
 'jumptonavigation' => 'పేజీకి సంబంధించిన లింకులు',
-'jumptosearch' => 'à°\85à°¨à±\8dà°µà±\87à°·à°£',
+'jumptosearch' => 'à°µà±\86à°¤à±\81à°\95à±\81',
 'view-pool-error' => 'క్షమించండి, ప్రస్తుతం సర్వర్లన్నీ ఓవర్‌లోడ్ అయిఉన్నాయి.
 చాలామంది వాడుకరులు ఈ పేజీని చూస్తున్నారు.
 ఈ పేజీని వీక్షించడానికి కొద్దిసేపు నిరీక్షించండి.
@@ -377,15 +378,15 @@ $1',
 'aboutpage' => 'Project:గురించి',
 'copyright' => 'విషయ సంగ్రహం $1  కి లోబడి లభ్యం.',
 'copyrightpage' => '{{ns:project}}:ప్రచురణ హక్కులు',
-'currentevents' => 'వరà±\8dతమాన à°\98à°\9fà°¨లు',
-'currentevents-url' => 'Project:వరà±\8dతమాన à°\98à°\9fà°¨లు',
+'currentevents' => 'à°\87à°ªà±\8dà°ªà°\9fà°¿ à°®à±\81à°\9aà±\8dà°\9aà°\9fà±\8dలు',
+'currentevents-url' => 'Project:à°\87à°ªà±\8dà°ªà°\9fà°¿ à°®à±\81à°\9aà±\8dà°\9aà°\9fà±\8dలు',
 'disclaimers' => 'అస్వీకారములు',
 'disclaimerpage' => 'Project:సాధారణ నిష్పూచీ',
 'edithelp' => 'దిద్దుబాటు సహాయం',
 'edithelppage' => 'Help:దిద్దుబాట్లు ఎలా చెయ్యాలి',
 'helppage' => 'Help:సూచిక',
 'mainpage' => 'మొదటి పేజీ',
-'mainpage-description' => 'à°®à±\8aà°¦à°\9fà°¿ à°ªà±\87à°\9cà±\80',
+'mainpage-description' => 'తలపà±\81à°\9f',
 'policy-url' => 'Project:విధానం',
 'portal' => 'సముదాయ పందిరి',
 'portal-url' => 'Project:సముదాయ పందిరి',
@@ -513,6 +514,7 @@ $1',
 'actionthrottledtext' => 'స్పామును తగ్గించటానికి తీసుకున్న నిర్ణయాల వల్ల, మీరు ఈ కార్యాన్ని అతి తక్కువ సమయంలో బోలెడన్ని సార్లు చేయకుండా అడ్డుకుంటున్నాము. కొన్ని నిమిషాలు ఆగి మరలా ప్రయత్నించండి.',
 'protectedpagetext' => 'ఈ పేజీని మార్చకుండా ఉండేందుకు సంరక్షించారు.',
 'viewsourcetext' => 'మీరీ పేజీ సోర్సును చూడవచ్చు, కాపీ చేసుకోవచ్చు:',
+'viewyourtext' => "ఈ పేజీకి '''మీ మార్పుల''' యొక్క మూలాన్ని చూడవచ్చు లేదా కాపీచేసుకోవచ్చు:",
 'protectedinterface' => 'సాఫ్టువేరు ఇంటరుఫేసుకు చెందిన టెక్స్టును ఈ పేజీ అందిస్తుంది. దుశ్చర్యల నివారణ కోసమై దీన్ని లాకు చేసాం.',
 'editinginterface' => "'''హెచ్చరిక''': సాఫ్టువేరుకు ఇంటరుఫేసు టెక్స్టును అందించే పేజీని మీరు సరిదిద్దుతున్నారు.
 ఈ పేజీలో చేసే మార్పుల వల్ల ఇతర వాడుకరులకు ఇంటరుఫేసు కనబడే విధానంలో తేడావస్తుంది.
@@ -546,7 +548,7 @@ $2',
 'securelogin-stick-https' => 'ప్రవేశం తర్వాత కూడా HTTPSకి అనుసంధానమై ఉండు',
 'yourdomainname' => 'మీ డోమైను',
 'externaldberror' => 'డేటాబేసు అధీకరణలో పొరపాటు జరిగింది లేదా మీ బయటి ఖాతాని తాజాకరించడానికి మీకు అనుమతి లేదు.',
-'login' => 'à°ªà±\8dà°°à°µà±\87శిà°\82à°\9aండి',
+'login' => 'à°²à±\8bనిà°\95à°¿ à°°ండి',
 'nav-login-createaccount' => 'లోనికి ప్రవేశించండి / ఖాతాని సృష్టించుకోండి',
 'loginprompt' => '{{SITENAME}}లోకి ప్రవేశించాలంటే మీ విహారిణిలో కూకీలు చేతనమై ఉండాలి.',
 'userlogin' => 'ప్రవేశించండి / ఖాతాను సృష్టించుకోండి',
@@ -677,6 +679,7 @@ $2
 'passwordreset-emailelement' => 'వాడుకరిపేరు: $1
 తాత్కాలిక సంకేతపదం: $2',
 'passwordreset-emailsent' => 'జ్ఞాపకం ఈమెయిలు పంపించాం.',
+'passwordreset-emailsent-capture' => 'క్రింద చూపబడిన, గుర్తుచేయు సందేశమును పంపినాము.',
 
 # Special:ChangeEmail
 'changeemail' => 'ఈ-మెయిలు చిరునామా మార్పు',
@@ -761,7 +764,7 @@ $2
 'nosuchsectiontext' => 'మీరు లేని విభాగాన్ని మార్చడానికి ప్రయత్నించారు.
 మీరు పేజీని చూస్తూన్నప్పుడు దాన్ని ఎవరైనా తరలించి లేదా తొలగించి ఉండవచ్చు.',
 'loginreqtitle' => 'ప్రవేశము తప్పనిసరి',
-'loginreqlink' => 'à°ªà±\8dà°°à°µà±\87శిà°\82à°\9aి',
+'loginreqlink' => 'à°²à±\8bనిà°\95à°¿ à°°à°\82à°¡ి',
 'loginreqpagetext' => 'ఇతర పుటలను చూడడానికి మీరు $1 ఉండాలి.',
 'accmailtitle' => 'సంకేతపదం పంపించబడింది.',
 'accmailtext' => "[[User talk:$1|$1]] కొరకు ఒక యాదృచ్చిక సంకేతపదాన్ని $2కి పంపించాం.
@@ -1061,6 +1064,7 @@ $1",
 
 # Diffs
 'history-title' => '"$1" యొక్క కూర్పుల చరిత్ర',
+'difference-title' => '"$1" యొక్క తిరిగిచూపుల నడుమ తేడాలు',
 'difference-multipage' => '(పేజీల మధ్య తేడా)',
 'lineno' => 'పంక్తి $1:',
 'compareselectedversions' => 'ఎంచుకున్న సంచికలను పోల్చిచూడు',
@@ -1070,7 +1074,7 @@ $1",
 'diff-multi-manyusers' => '$2 మంది పైన ({{PLURAL:$2|ఒక వాడుకరి|వాడుకరుల}} యొక్క {{PLURAL:$1|ఒక మధ్యంతర కూర్పును|$1 మధ్యంతర కూర్పులను}} చూపించట్లేదు)',
 
 # Search results
-'searchresults' => 'à°\85à°¨à±\8dà°µà±\87à°·à°£ ఫలితాలు',
+'searchresults' => 'à°µà±\86à°¦à±\81à°\95à±\81లాà°\9f ఫలితాలు',
 'searchresults-title' => '"$1"కి అన్వేషణ ఫలితాలు',
 'searchresulttext' => '{{SITENAME}}లో అన్వేషించే విషయమై మరింత సమాచారం కొరకు [[{{MediaWiki:Helppage}}|{{int:help}}]] చూడండి.',
 'searchsubtitle' => 'మీరు \'\'\'[[:$1]]\'\'\' కోసం వెతికారు ([[Special:Prefixindex/$1|"$1"తో మొదలయ్యే అన్ని పేజీలు]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|"$1"కి లింకు ఉన్న అన్ని పేజీలు]])',
@@ -1446,7 +1450,7 @@ $1",
 # Recent changes linked
 'recentchangeslinked' => 'సంబంధిత మార్పులు',
 'recentchangeslinked-feed' => 'సంబంధిత మార్పులు',
-'recentchangeslinked-toolbox' => 'à°¸à°\82à°¬à°\82ధిత మార్పులు',
+'recentchangeslinked-toolbox' => 'à°ªà±\8aà°\82తనà°\97à°² మార్పులు',
 'recentchangeslinked-title' => '$1 కు సంబంధించిన మార్పులు',
 'recentchangeslinked-noresult' => 'మీరిచ్చిన కాలంలో ఇక్కడికి లింకు ఉన్న పేజీలలో ఎటువంటు మార్పులూ జరగలేదు.',
 'recentchangeslinked-summary' => "దీనికి లింకై ఉన్న పేజీల్లో జరిగిన చివరి మార్పులు ఇక్కడ చూడవచ్చు. మీ వీక్షణ జాబితాలో ఉన్న పేజీలు '''బొద్దు'''గా ఉంటాయి.",
@@ -1585,6 +1589,7 @@ $1',
 'backend-fail-delete' => '$1 ఫైలును తొలగించలేకున్నాం.',
 'backend-fail-alreadyexists' => '$1 అనే దస్త్రం ఇప్పటికే ఉంది.',
 'backend-fail-opentemp' => 'తాత్కాలిక దస్త్రాన్ని తెరవలేకపోతున్నాం.',
+'backend-fail-read' => '$1 దస్త్రము చదువలేకపోతిమి.',
 
 # ZipDirectoryReader
 'zip-file-open-error' => 'ఈ ఫైలును ZIP పరీక్ష కోసం తెరవబోతే, ఏదో తెలియని లోపం ఎదురైంది.',
@@ -1880,7 +1885,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 
 # Special:AllPages
 'allpages' => 'అన్ని పేజీలు',
-'alphaindexline' => '$1 నుండి $2',
+'alphaindexline' => '$1 నుండి $2 వరకు',
 'nextpage' => 'తరువాతి పేజీ ($1)',
 'prevpage' => 'మునుపటి పేజీ ($1)',
 'allpagesfrom' => 'ఇక్కడ మొదలు పెట్టి పేజీలు చూపించు:',
@@ -2257,7 +2262,7 @@ $UNWATCHURL కి వెళ్ళండి.
 'sp-contributions-submit' => 'వెతుకు',
 
 # What links here
-'whatlinkshere' => 'ఇక్కడికి లంకెలున్న పుటలు',
+'whatlinkshere' => 'ఇక్కడికి లంకెలున్నవి',
 'whatlinkshere-title' => '"$1"కి లింకున్న పుటలు',
 'whatlinkshere-page' => 'పేజీ:',
 'linkshere' => "కిందనున్న పేజీల నుండి '''[[:$1]]'''కు లింకులు ఉన్నాయి:",
@@ -2276,6 +2281,7 @@ $UNWATCHURL కి వెళ్ళండి.
 'whatlinkshere-filters' => 'వడపోతలు',
 
 # Block/unblock
+'autoblockid' => 'tanaDDu #$1',
 'block' => 'వాడుకరి నిరోధం',
 'unblock' => 'వాడుకరిపై నిరోధాన్ని తీసెయ్యండి',
 'blockip' => 'వాడుకరి నిరోధం',
@@ -2620,10 +2626,10 @@ $UNWATCHURL కి వెళ్ళండి.
 'tooltip-pt-anonlogin' => 'మీరు లోనికి ప్రవేశించడాన్ని ప్రోత్సహిస్తాం; కానీ, అది తప్పనిసరి కాదు',
 'tooltip-pt-logout' => 'నిష్క్రమించండి',
 'tooltip-ca-talk' => 'విషయపు పుట గురించి చర్చ',
-'tooltip-ca-edit' => 'à°\88 à°ªà±\87à°\9cà±\80ని à°®à±\80à°°à±\81 à°¸à°°à°¿à°¦à°¿à°¦à±\8dదవà°\9aà±\8dà°\9aà±\81. à°­à°¦à±\8dరపరిచేముందు మునుజూపు బొత్తాన్ని వాడండి.',
+'tooltip-ca-edit' => 'à°\88 à°ªà±\87à°\9cà±\80ని à°®à±\80à°°à±\81 à°¸à°°à°¿à°¦à°¿à°¦à±\8dదవà°\9aà±\8dà°\9aà±\81. à°¦à°¾చేముందు మునుజూపు బొత్తాన్ని వాడండి.',
 'tooltip-ca-addsection' => 'కొత్త విభాగాన్ని మొదలుపెట్టండి',
 'tooltip-ca-viewsource' => 'ఈ పుటని సంరక్షించారు. మీరు దీని మూలాన్ని చూడవచ్చు',
-'tooltip-ca-history' => 'à°\88 à°ªà±\87à°\9cà±\80 à°¯à±\8aà°\95à±\8dà°\95 à°\97à°¤ à°\95à±\82à°°à±\8dà°ªà±\81à°²à±\81.',
+'tooltip-ca-history' => 'à°\88 à°ªà±\81à°\9f à°¯à±\8aà°\95à±\8dà°\95 à°µà±\86à°¨à±\81à°\95à°\9fà°¿ à°\95à±\82à°°à±\8dà°ªà±\81à°²à±\81',
 'tooltip-ca-protect' => 'ఈ పేజీని సంరక్షించండి',
 'tooltip-ca-unprotect' => 'ఈ పేజీ సంరక్షణను మార్చండి',
 'tooltip-ca-delete' => 'ఈ పేజీని తొలగించండి',
@@ -2635,24 +2641,24 @@ $UNWATCHURL కి వెళ్ళండి.
 'tooltip-search-go' => 'ఇదే పేరుతో పేజీ ఉంటే అక్కడికి తీసుకెళ్ళు',
 'tooltip-search-fulltext' => 'పేజీలలో ఈ పాఠ్యం కొరకు వెతుకు',
 'tooltip-p-logo' => 'మొదటి పుటను దర్శించండి',
-'tooltip-n-mainpage' => 'à°®à±\8aà°¦à°\9fà°¿ à°ªà±\87à°\9cà±\80ని à°¦à°°à±\8dశిà°\82à°\9aండి',
-'tooltip-n-mainpage-description' => 'à°®à±\8aà°¦à°\9fà°¿ à°ªà±\87à°\9cà±\80ని à°¦à°°à±\8dశిà°\82à°\9aండి',
+'tooltip-n-mainpage' => 'తలపà±\81à°\9fà°¨à±\81 à°\9aà±\82à°¡ండి',
+'tooltip-n-mainpage-description' => 'à°®à±\8aà°¦à°\9fà°¿ à°ªà±\81à°\9fà°¨à±\81 à°\9aà±\82à°¡ండి',
 'tooltip-n-portal' => 'ప్రాజెక్టు గురించి, మీరేం చేయవచ్చు, సమాచారం ఎక్కడ దొరుకుతుంది',
-'tooltip-n-currentevents' => 'వరà±\8dతమాన à°\98à°\9fనలà°\95à±\81 à°¸à°\82à°¬à°\82ధిà°\82à°\9aà°¿à°¨ à°¸à°®à°¾à°\9aారానà±\8dని à°ªà±\8aà°\82à°¦à°\82à°¡à°¿.',
+'tooltip-n-currentevents' => 'à°\87à°ªà±\8dà°ªà°\9fà°¿ à°®à±\81à°\9aà±\8dà°\9aà°\9fà±\8dà°² à°¯à±\8aà°\95à±\8dà°\95 à°®à±\81à°¨à±\81à°ªà°\9fà°¿ à°®à°\82దలనà±\81 à°¤à±\86à°²à±\81à°¸à±\81à°\95à±\8aà°¨à±\81à°¡à°¿',
 'tooltip-n-recentchanges' => 'వికీలో ఇటీవల జరిగిన మార్పుల జాబితా.',
 'tooltip-n-randompage' => 'ఓ యాదృచ్చిక పేజీని చూడండి',
 'tooltip-n-help' => 'తెలుసుకోడానికి ఓ మంచి ప్రదేశం.',
-'tooltip-t-whatlinkshere' => 'à°\87à°\95à±\8dà°\95à°¡à°¿à°\95à°¿ à°²à°¿à°\82à°\95యి à°\89à°¨à±\8dà°¨ à°\85à°¨à±\8dని à°µà°¿à°\95à±\80 à°ªà±\87à°\9cà±\80లు',
-'tooltip-t-recentchangeslinked' => 'à°\88 à°ªà±\87à°\9cà±\80à°¨à±\81à°\82à°¡à°¿ à°²à°¿à°\82à°\95à±\81à°¨à±\8dà°¨ à°ªà±\87à°\9cà±\80à°²à°\95à±\81 జరిగిన ఇటీవలి మార్పులు',
+'tooltip-t-whatlinkshere' => 'à°\87à°\95à±\8dà°\95à°¡à°¿à°¤à±\8b à°®à±\81డిపడియà±\81à°¨à±\8dà°¨ à°\85à°¨à±\8dని à°µà°¿à°\95à±\80 à°ªà±\81à°\9fà°² à°²à°\82à°\95à±\86లు',
+'tooltip-t-recentchangeslinked' => 'à°\88 à°ªà±\81à°\9fà°\95à±\81 à°®à±\81డివడియà±\81à°¨à±\8dà°¨ à°ªà±\81à°\9fలలà±\8b జరిగిన ఇటీవలి మార్పులు',
 'tooltip-feed-rss' => 'ఈ పేజీకి RSS ఫీడు',
 'tooltip-feed-atom' => 'ఈ పేజీకి Atom ఫీడు',
 'tooltip-t-contributions' => 'ఈ వాడుకరి యొక్క రచనల జాబితా చూడండి',
 'tooltip-t-emailuser' => 'ఈ వాడుకరికి ఓ ఈమెయిలు పంపండి',
 'tooltip-t-upload' => 'దస్త్రాలను ఎక్కించండి',
 'tooltip-t-specialpages' => 'అన్ని ప్రత్యేక పుటల యొక్క జాబితా',
-'tooltip-t-print' => 'à°\88 à°ªà±\87à°\9cà±\80 à°¯à±\8aà°\95à±\8dà°\95 à°®à±\81à°¦à±\8dరణా కూర్పు',
-'tooltip-t-permalink' => 'à°ªà±\87à°\9cà±\80 à°¯à±\8aà°\95à±\8dà°\95 à°\88 à°\95à±\82à°°à±\8dà°ªà±\81à°\95à°¿ à°¶à°¾à°¶à±\8dవత à°²à°¿à°\82à°\95à±\81',
-'tooltip-ca-nstab-main' => 'విషయపà±\81 à°ªà±\87à°\9cà±\80ని చూడండి',
+'tooltip-t-print' => 'à°\88 à°ªà±\81à°\9f à°¯à±\8aà°\95à±\8dà°\95 à°\85à°\9aà±\8dà°\9aà±\81à°¤à±\80యదà°\97à±\8dà°\97 కూర్పు',
+'tooltip-t-permalink' => 'à°ªà±\81à°\9f à°¯à±\8aà°\95à±\8dà°\95 à°\88 à°\95à±\82à°°à±\8dà°ªà±\81à°\95à°¿ à°¶à°¾à°¶à±\8dవత à°²à°\82à°\95à±\86',
+'tooltip-ca-nstab-main' => 'à°®à±\81à°\9aà±\8dà°\9aà°\9fà±\8dà°² à°ªà±\81à°\9fà°¨à±\81 చూడండి',
 'tooltip-ca-nstab-user' => 'వాడుకరి పేజీని చూడండి',
 'tooltip-ca-nstab-media' => 'మీడియా పేజీని చూడండి',
 'tooltip-ca-nstab-special' => 'ఇది ఒక ప్రత్యేక పుట, దీన్ని మీరు సరిదిద్దలేరు',
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 8435208..f76177e 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)',
@@ -528,6 +528,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''",
@@ -3847,4 +3849,6 @@ O kaya, maaari mong gamitin ang maginhawang pormularyo sa ibaba. Ang iyong pagpu
 'duration-centuries' => '$1 {{PLURAL:$1|daantaon|mga daantaon}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milenyo|mga milenyo}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Hindi magawang kunin ang mga kandado sa tagapaghain na $1.',
 );
index df6482c..5b7947c 100644 (file)
@@ -46,7 +46,7 @@ $messages = array(
 'tog-watchdefault' => 'Зијод кардеј демы дәгиш кардә быә сәһифон бә ноғо доә сијоһи',
 'tog-watchmoves' => 'Зијод кардеј ном дәгиш кардә быә сәһифон бә ноғо доә сијоһи',
 'tog-watchdeletion' => 'Зијод кардеј сәһифон комон аз рәдд кардәме бә ноғо доә сијоһи',
-'tog-enotifwatchlistpages' => 'Ноғо доә сијоһиәдә сәһифон кејнә дәгиш бәбен бәмы е-номә бывығанд',
+'tog-enotifwatchlistpages' => 'Ноғо доә сијоһиәдә кејнә сәһифон дәгиш бәбен бәмы е-номә бывығанд',
 'tog-watchlisthideown' => 'Чымы дәгишон ноғо доә сијһиәдә нијо кардеј',
 'tog-watchlisthidebots' => 'Нијо кардеј ботон дәгишон ноғо доә сијоһиәдә',
 'tog-watchlisthideminor' => 'Нијо кардеј гәдә дәгишон ноғо доә сијоһиәдә',
@@ -138,7 +138,7 @@ $messages = array(
 'qbpageoptions' => 'Ым сәһифә',
 'qbpageinfo' => 'Мәзмун.',
 'qbmyoptions' => 'Чымы сәһифон',
-'qbspecialpages' => 'Хысусиә сәһифон',
+'qbspecialpages' => 'Хысусијә сәһифон',
 'faq' => 'РАП',
 'faqpage' => 'Project:РАП',
 
@@ -188,7 +188,7 @@ $messages = array(
 'newpage' => 'Тожә сәһифә',
 'talkpage' => 'Ым сәһифә мызокирә кардеј',
 'talkpagelinktext' => 'Мызокирә',
-'specialpage' => 'Хысусиә сәһифә',
+'specialpage' => 'Хысусијә сәһифә',
 'personaltools' => 'Шәхси диләгон',
 'postcomment' => 'Нујә ғысм',
 'articlepage' => 'Мәғолә дијә кардеј',
@@ -263,7 +263,7 @@ $messages = array(
 'nstab-main' => 'Мәғолә',
 'nstab-user' => 'Иштирокәкә сәһифә',
 'nstab-media' => 'Медијә сәһифә',
-'nstab-special' => 'Хысусиә сәһифә',
+'nstab-special' => 'Хысусијә сәһифә',
 'nstab-project' => 'Нахшә бәрәдә',
 'nstab-image' => 'Фајл',
 'nstab-template' => 'Ғәлиб',
@@ -484,6 +484,7 @@ $messages = array(
 'prefsnologintext' => 'Шымә бәбе <span class="plainlinks">[{{fullurl:{{#Special:UserLogin}}|returnto=$1}} ыштәни едәштән]</span> бо иштирокәкә пеғәндон дәгиш кардеј.',
 'changepassword' => 'Пароли дәгиш кардеј',
 'skin-preview' => 'Сыфтәнә нишо дој',
+'prefs-user-pages' => 'Иштирокәкә сәһифон',
 'prefs-rc' => 'Ән нујә дәгишон',
 'prefs-changeemail' => 'Е-номә дәгиш кардеј',
 'saveprefs' => 'Огәтеј',
@@ -532,6 +533,8 @@ $messages = array(
 'minoreditletter' => 'г',
 'newpageletter' => 'Т',
 'boteditletter' => 'б',
+'rc_categories_any' => 'Һар гылә',
+'newsectionsummary' => '/* $1 */ нујә мывзу',
 'rc-enhanced-expand' => 'Тәфсилотон нишо дој (JavaScript истифодә бедә)',
 'rc-enhanced-hide' => 'Тәфсилотон нијо кардеј',
 
@@ -554,10 +557,21 @@ $messages = array(
 'license' => 'Лисензијә:',
 'license-header' => 'Лисензијә',
 
+# Special:ListFiles
+'imgfile' => 'фајл',
+'listfiles' => 'Фајлон сијоһи',
+'listfiles_thumb' => 'Гәдә шикил',
+'listfiles_name' => 'Фајли ном',
+'listfiles_user' => 'Иштирокәкә',
+'listfiles_size' => 'Улгу',
+'listfiles_description' => 'Тәсвир',
+'listfiles_count' => 'Рәвојәт',
+
 # File description page
 'file-anchor-link' => 'Фајл',
 'filehist' => 'Фајли тарых',
 'filehist-help' => 'Фајли сыфтә рәвојәти виндеј горә бә тарых/вахт егәтән.',
+'filehist-deleteall' => 'һәммәј рәдд кардеј',
 'filehist-revert' => 'Огард',
 'filehist-current' => 'есәтнә',
 'filehist-datetime' => 'Тарых/Вахт',
@@ -677,7 +691,7 @@ $messages = array(
 'whatlinkshere-page' => 'Сәһифә:',
 'linkshere' => "Ым сәһифон сәбон вардән ијо ''[[:$1]]''':",
 'nolinkshere' => "Бә ым сәһифә ҹо сәһифонку сәбонон нин '''[[:$1]]'''.",
-'isredirect' => 'увони дәгиш кардә сәһифәје',
+'isredirect' => 'Ñ\83нвони Ð´Ó\99гиÑ\88 ÐºÐ°Ñ\80дÓ\99 Ñ\81Ó\99һиÑ\84Ó\99Ñ\98е',
 'istemplate' => 'әловә',
 'isimage' => 'фајлинә сәбон',
 'whatlinkshere-prev' => '{{PLURAL:$1|навынәни|навынәни $1}}',
@@ -701,19 +715,24 @@ $messages = array(
 'block-log-flags-nocreate' => 'нујә иштирокәкон ғејд карде ғәдәғәне',
 
 # Move page
+'move-page-legend' => 'Сәһифә номи дәгиш карде',
+'newtitle' => 'Нујә ном:',
+'movepagebtn' => 'Сәһифә номи дәгиш кардеј',
 'movelogpage' => 'Ном дәгиш кардә быә чијон журнал',
 'revertmove' => 'Бә кәно окырније',
 
 # Export
 'export' => 'Сәһифон ихроҹ кардеј',
+'export-addcat' => 'Зијод кардеј',
 
 # Namespace 8 related
 'allmessagesname' => 'Хәбә',
 'allmessagesdefault' => 'Иминә огәтә быә мәтн',
+'allmessages-filter-all' => 'Һаммај',
 
 # Thumbnails
 'thumbnail-more' => 'Һејве кардеј',
-'thumbnail_error' => 'Гәдә шикили туму кардәдә сәһф: $1',
+'thumbnail_error' => 'Гәдә шикили туму кардејәдә сәһв: $1',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Шымә иштирокәкә сәһифә',
@@ -755,6 +774,7 @@ $messages = array(
 'tooltip-t-permalink' => 'Бә ым сәһифә рәвојәти еғрорә сәбон',
 'tooltip-ca-nstab-main' => 'Мәғолә мығдор',
 'tooltip-ca-nstab-user' => 'Иштирок кардәкәси сәһифә',
+'tooltip-ca-nstab-media' => 'Медиа-фајл',
 'tooltip-ca-nstab-special' => 'Ым хыдмәтә сәһифәје бычыми горә дәгиш кардеј әбыни',
 'tooltip-ca-nstab-project' => 'Нәхши сәһифә',
 'tooltip-ca-nstab-image' => 'Фајли сәһифә',
@@ -766,6 +786,7 @@ $messages = array(
 'tooltip-diff' => 'Бешемонә мәтни һәхәдә сохтә быә дәгишон нишо дој.',
 'tooltip-compareselectedversions' => 'Че ым сәһифә ды гылә выжнијә быә рәвојәтон мијонәдә фәрғи едјәсеј.',
 'tooltip-watch' => 'Ым сәһифә зијод кардеј бә ыштә нығо доә сијоһи',
+'tooltip-upload' => 'Бо жәј бино кардеј',
 'tooltip-rollback' => 'Охонә редактори дәгиш кардә быә чијон де и гылә егәте ләғв кардеј',
 'tooltip-undo' => 'Дәғандә дәгиши рәдд кардеј ијән "сыфтәнә нишо дој" окардеј, де ләғви сәбәби нышон дој имкони.',
 'tooltip-summary' => 'Кыртә тәсвир бынывыштән',
@@ -814,6 +835,11 @@ $messages = array(
 * gpslongitude
 * gpsaltitude',
 
+# EXIF tags
+'exif-imagewidth' => 'Һовужи',
+'exif-imagelength' => 'Былынди',
+'exif-languagecode' => 'Зывон',
+
 'exif-gaincontrol-0' => 'Ни',
 
 'exif-saturation-0' => 'Ади',
@@ -836,6 +862,8 @@ $messages = array(
 'duplicate-defaultsort' => '\'\'\'Дыггәт:\'\'\' Еһтимал кардә быә "$2" классификасијә ачари нафконә "$1" классификасијә ачари етиборсоз кардә',
 
 # Special:Version
+'version' => 'Рәвојәт',
+'version-specialpages' => 'Хысусијә сәһифон',
 'version-entrypoints-header-url' => 'URL',
 
 # Special:FilePath
@@ -846,7 +874,7 @@ $messages = array(
 'fileduplicatesearch-submit' => 'Нәве',
 
 # Special:SpecialPages
-'specialpages' => 'Хысусиә сәһифон',
+'specialpages' => 'Хысусијә сәһифон',
 
 # External image whitelist
 'external_image_whitelist' => ' #Ым сәтри огәтәнән чокнәј әв һесте<pre>
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..692797c 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ı.
@@ -2142,8 +2142,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 c523d24..6dd36aa 100644 (file)
@@ -60,22 +60,24 @@ $fallback8bitEncoding = "windows-1251";
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Холбааны шыяры:',
-'tog-justify' => 'Арынның дооразынга сөзүглелди дескилээри',
+'tog-justify' => 'Арынның дооразының аайы-биле сөзүглелди дескилээри',
 'tog-hideminor' => 'Сөөлгү өскерлиишкиннер арында бичии өскерлиишкиннерни чажырар',
 'tog-hidepatrolled' => 'Амгы өскерлиишкиннер арында истээн өскерлиишкиннерни чажырары',
 'tog-newpageshidepatrolled' => 'Чаа арыннарның даңзындан истээн арыннарны чажырары',
-'tog-usenewrc' => 'Use enhanced recent changes (JavaScript херек)',
+'tog-usenewrc' => 'Чаа өскерлиишкиннерниң өөделеттинген даңзызын ажыглаар (JavaScript херек)',
+'tog-numberheadings' => 'Эгелерин авто-санаар',
 'tog-showtoolbar' => 'Өскертир херекселдерни көргүзер (JavaScript)',
 'tog-editondblclick' => 'Арынны өскертирде ийи катап базар (JavaScript)',
 'tog-editsection' => '[өскертири] деп холбаалар-биле section editing enable.',
-'tog-rememberpassword' => 'Мени бо компьютерде сактып алыры ($1 {{PLURAL:$1|хүн|хүн}}ге чедир)',
-'tog-watchcreations' => 'Мээң чогааткан арыннарымны хайгаарал даңзымга немерелээри.',
-'tog-watchdefault' => 'Мээң өскерткен арыннарымны хайгаарал даңзымга немерелээри.',
-'tog-watchmoves' => 'Мээң шимчеткен арыннарымны хайгаарал даңзымга немерелээри.',
+'tog-rememberpassword' => 'Мени бо компьютерге сактыры ($1 {{PLURAL:$1|хүн|хүн}} ишти)',
+'tog-watchcreations' => 'Мээң чаяан арыннарымны хайгаарал даңзымче немээри.',
+'tog-watchdefault' => 'Мээң өскерткен арыннарымны хайгаарал даңзымче немээри.',
+'tog-watchmoves' => 'Мээң катап адаан арыннарымны хайгаарал даңзымче немээри.',
+'tog-watchdeletion' => 'Мээң казаан арыннарымны хайгаарал даңзымче немээри.',
 'tog-oldsig' => 'Амгы хол үжүү:',
-'tog-watchlisthideown' => 'ХайгааÑ\80ал Ð´Ð°Ò£Ð·Ñ\8bндан Ð¼Ñ\8dÑ\8dÒ£ Ó©Ñ\81кеÑ\80лииÑ\88киннеÑ\80Ñ\8bмнÑ\8b Ñ\87ажÑ\8bÑ\80аÑ\80Ñ\8b',
-'tog-watchlisthidebots' => 'ХайгааÑ\80ал Ð´Ð°Ò£Ð·Ñ\8bндан Ñ\80обоÑ\82Ñ\82аÑ\80нÑ\8bÒ£ Ó©Ñ\81кеÑ\80лииÑ\88киннеÑ\80Ñ\8bн Ñ\87ажÑ\8bÑ\80аÑ\80Ñ\8b',
-'tog-watchlisthideminor' => 'ХайгааÑ\80ал Ð´Ð°Ò£Ð·Ñ\8bндан Ð±Ð¸Ñ\87ии Ó©Ñ\81кеÑ\80лииÑ\88киннеÑ\80нÑ\8b Ñ\87ажÑ\8bÑ\80аÑ\80Ñ\8b',
+'tog-watchlisthideown' => 'ХайгааÑ\80ал Ð´Ð°Ò£Ð·Ñ\8bзÑ\8bндан Ñ\8dдиглеÑ\80имни Ñ\87ажÑ\8bÑ\80',
+'tog-watchlisthidebots' => 'ХайгааÑ\80ал Ð´Ð°Ò£Ð·Ñ\8bзÑ\8bндан Ñ\80обоÑ\82Ñ\82аÑ\80нÑ\8bÒ£ Ñ\8dдиглеÑ\80ин Ñ\87ажÑ\8bÑ\80',
+'tog-watchlisthideminor' => 'ХайгааÑ\80ал Ð´Ð°Ò£Ð·Ñ\8bзÑ\8bндан Ð±Ð¸Ñ\87ии Ñ\8dдиглеÑ\80ни Ñ\87ажÑ\8bÑ\80',
 'tog-watchlisthidepatrolled' => 'Хайгаарал даңзындан истээн өскерлиишкиннерны чажырары',
 'tog-showhiddencats' => 'Чажыт бөлүктерни көргүзери',
 
@@ -113,42 +115,43 @@ $messages = array(
 'october' => 'Он ай',
 'november' => 'Он бир ай',
 'december' => 'Он ийи ай',
-'january-gen' => 'Бир ай',
-'february-gen' => 'Ийи ай',
-'march-gen' => 'Үш ай',
-'april-gen' => 'Дөрт ай',
-'may-gen' => 'Беш ай',
-'june-gen' => 'Алды ай',
-'july-gen' => 'Чеди ай',
-'august-gen' => 'Сес ай',
-'september-gen' => 'Тос ай',
-'october-gen' => 'Он ай',
-'november-gen' => 'Он бир ай',
-'december-gen' => 'Он ийи ай',
-'jan' => '1.ай',
-'feb' => '2.ай',
-'mar' => '3.ай',
-'apr' => '4.ай',
-'may' => '5.ай',
-'jun' => '6.ай',
-'jul' => '7.ай',
-'aug' => '8.ай',
-'sep' => '9.ай',
-'oct' => '10.ай',
-'nov' => '11.ай',
-'dec' => '12.ай',
+'january-gen' => 'Бир айның',
+'february-gen' => 'Ийи айның',
+'march-gen' => 'Үш айның',
+'april-gen' => 'Дөрт айның',
+'may-gen' => 'Беш айның',
+'june-gen' => 'Алды айның',
+'july-gen' => 'Чеди айның',
+'august-gen' => 'Сес айның',
+'september-gen' => 'Тос айның',
+'october-gen' => 'Он айның',
+'november-gen' => 'Он бир айның',
+'december-gen' => 'Он ийи айның',
+'jan' => '1 ай',
+'feb' => '2 ай',
+'mar' => '3 ай',
+'apr' => '4 ай',
+'may' => '5 ай',
+'jun' => '6 ай',
+'jul' => '7 ай',
+'aug' => '8 ай',
+'sep' => '9 ай',
+'oct' => '10 ай',
+'nov' => '11 ай',
+'dec' => '12 ай',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Бөлүк|Бөлүктер}}',
 'category_header' => '«$1» деп бөлүктүң арыннары',
-'subcategories' => 'Ð\91иÑ\87ии бөлүктер',
-'category-media-header' => '«$1» деп бөлүкте медиа',
+'subcategories' => 'Ð\90даккÑ\8b бөлүктер',
+'category-media-header' => '«$1» деп бөлүкте файлдар',
 'category-empty' => "''Амгы бо бөлүкте медиа база арыннар чок.''",
 'hidden-categories' => '{{PLURAL:$1|Чажыт бөлүк|Чажыт бөлүктер}}',
 'hidden-category-category' => 'Чажыт бөлүктер',
-'category-subcat-count-limited' => 'Ð\91о Ð±Ó©Ð»Ò¯Ðº {{PLURAL:$1|биÑ\80|$1}} Ð±Ð¸Ñ\87ии бөлүктүү.',
+'category-subcat-count-limited' => 'Ð\91о Ð±Ó©Ð»Ò¯Ðº {{PLURAL:$1|биÑ\80|$1}} Ð°Ð´Ð°ÐºÐºÑ\8b бөлүктүү.',
 'listingcontinuesabbrev' => '(уланчы)',
 'noindex-category' => 'Индекстелбес арынар',
+'broken-file-category' => 'Ажылдавайн турар файл-шөлүлгелиг арыннар',
 
 'about' => 'Дугайында',
 'article' => 'Допчу арын',
@@ -166,6 +169,7 @@ $messages = array(
 'qbbrowse' => 'Каралаары',
 'qbedit' => 'Өскертири',
 'qbpageoptions' => 'Бо арын',
+'qbpageinfo' => 'Арын дугайында медээ',
 'qbmyoptions' => 'Мээң арыннарым',
 'qbspecialpages' => 'Тускай арыннар',
 'faq' => 'Бо-ла салыр айтырыглар (БлСА)',
@@ -178,8 +182,8 @@ $messages = array(
 'vector-action-protect' => 'Камгалаары',
 'vector-action-undelete' => 'Эгидер',
 'vector-action-unprotect' => 'Камгалалды өскертири',
-'vector-view-create' => 'ЧогаадÑ\8bры',
-'vector-view-edit' => 'Өскертири',
+'vector-view-create' => 'ЧаÑ\8fары',
+'vector-view-edit' => 'Эдери',
 'vector-view-history' => 'Төөгүнү көөрү',
 'vector-view-view' => 'Номчууру',
 'vector-view-viewsource' => 'Дөзү бижиин көөрү',
@@ -195,18 +199,19 @@ $messages = array(
 'searchbutton' => 'Дилээри',
 'go' => 'Баары',
 'searcharticle' => 'Күүcедири',
-'history' => 'Арынның Төөгүзү',
+'history' => 'Арынның төөгүзү',
 'history_short' => 'Төөгү',
 'printableversion' => 'Саазынга үндүрерин көөрү',
 'permalink' => 'Турум холбаа',
 'print' => 'Саазынга үндүрер',
 'view' => 'Көөрү',
-'edit' => 'Өскертири',
+'edit' => 'Эдери',
 'create' => 'Чогаадыры',
 'editthispage' => 'Бо арынны өскертири',
 'create-this-page' => 'Бо арынны чогаадыры',
 'delete' => 'Ырадыры',
 'deletethispage' => 'Бо арынны ырадыры',
+'undelete_short' => '$1 {{PLURAL:$1|эдигни|эдиглерни}} катап үндүрери',
 'viewdeleted_short' => '{{PLURAL:$1|Бир ыраткан өскерлиишкинни|$1 ыраткан өскерлиишкиннерни}} көөрү',
 'protect' => 'Камгалаары',
 'protect_change' => 'өскертири',
@@ -232,7 +237,9 @@ $messages = array(
 'categorypage' => 'Бөлүктүң арынын көөрү',
 'viewtalkpage' => 'Чугааны көөрү',
 'otherlanguages' => 'Өске дылдарга',
-'lastmodifiedat' => 'Бо арын сөөлгү каттап $2, $1 өскерилген.',
+'redirectedfrom' => '($1 шигленген)',
+'redirectpagesub' => 'шигледир арын',
+'lastmodifiedat' => 'Бо арын сөөлгү катап $1, $2 өскерилген.',
 'protectedpage' => 'Камгалаган арын',
 'jumpto' => 'Шилчиир:',
 'jumptonavigation' => 'навигация',
@@ -247,17 +254,19 @@ $messages = array(
 'currentevents-url' => 'Project:Амгы үеде болуушкуннар',
 'disclaimers' => 'Ажыглаар харысаалгазын чөрчүүрү (ойталаары)',
 'disclaimerpage' => 'Project:Ажыглаар харысаалгазын ойталаары',
-'edithelp' => 'Өскертиринге дуза',
-'edithelppage' => 'Help:Өскертири',
+'edithelp' => 'Эдеринге дуза',
+'edithelppage' => 'Help:Эдери',
 'helppage' => 'Help:Допчузу',
 'mainpage' => 'Кол Арын',
 'mainpage-description' => 'Кол Арын',
-'policy-url' => 'Project:Ð\9fолиÑ\82ика',
+'policy-url' => 'Project:ЧÑ\83Ñ\80Ñ\83м',
 'portal' => 'Ниитилелдиң хаалгазы',
 'portal-url' => 'Project:Ниитилелдиң хаалгазы',
-'privacy' => 'Актыг бүзүрел дугуржулга',
+'privacy' => 'Актыг бүзүрел дугуржулгазы',
 'privacypage' => 'Project:Актыг бүзүрел дугуржулгазы',
 
+'badaccess' => 'Алдаг:Эргеңер чок.',
+
 'versionrequired' => 'МедиаВикиниң $1 үндүреризи херек',
 
 'ok' => 'Чөп',
@@ -266,12 +275,12 @@ $messages = array(
 'newmessageslink' => 'чаа чагаалар',
 'newmessagesdifflink' => 'эрткен өскерлиишкин',
 'youhavenewmessagesmulti' => '«$1» деп арында силерге чаа чагаалар бар.',
-'editsection' => 'өскертири',
-'editold' => 'өскертири',
+'editsection' => 'эдер',
+'editold' => 'эдер',
 'viewsourceold' => 'дөзү кодун көөрү',
-'editlink' => 'өскертири',
+'editlink' => 'эдер',
 'viewsourcelink' => 'дөзү кодун көөрү',
-'editsectionhint' => '«$1» деп салбырны өскертири',
+'editsectionhint' => '«$1» деп салбырны эдер',
 'toc' => 'Допчузу',
 'showtoc' => 'көргүзери',
 'hidetoc' => 'чажырары',
@@ -280,7 +289,7 @@ $messages = array(
 'viewdeleted' => '{{grammar:accusative|$1}} көөр?',
 'restorelink' => '{{PLURAL:$1|$1 балаттынган өскерилгелер}}',
 'feedlinks' => 'Агым:',
-'feed-invalid' => 'Ð\91ижидилгениң Ð°Ð³Ñ\8bм Ñ\8fнзÑ\8b багай-дыр.',
+'feed-invalid' => 'Ð\91ижидилгениң Ð°Ð³Ñ\8bм Ñ\85евиÑ\80и багай-дыр.',
 'site-rss-feed' => '$1 RSS Медээ Агымы',
 'site-atom-feed' => '$1 Atom Медээ Агымы',
 'page-rss-feed' => '«$1» RSS Медээ Агымы',
@@ -319,24 +328,26 @@ Please report this to an [[Special:ListUsers/sysop|administrator]], making note
 'internalerror' => 'Иштики алдаг',
 'internalerror_info' => 'Иштики алдаг: $1',
 'badtitle' => 'Багай ат',
-'viewsource' => 'Ð\91ажÑ\8b көөрү',
+'viewsource' => 'Ð\94өзүн көөрү',
 'actionthrottled' => 'Шеглээн дүрген',
+'sqlhidden' => '(SQL айтырыгны чажырган)',
 
 # Login and logout pages
 'welcomecreation' => '== Кирип моорлаңар, $1! ==
-Your account has been created.
+Силер бүрүткел бижик has been created.
 Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
 'yourname' => 'Aжыглакчының ады',
 'yourpassword' => 'Чажыт сөс',
 'yourpasswordagain' => 'Чажыт сөзүңерни катап бижиңер:',
 'remembermypassword' => 'Мени бо компьютерде сактып алыры ($1 {{PLURAL:$1|хүн|хүн}}ге чедир)',
 'login' => 'Кирери',
-'nav-login-createaccount' => 'Кирери / бүрүткел бижикти бүдүрери',
-'userlogin' => 'Кирери / бүрүткел бижикти бүдүрери',
+'nav-login-createaccount' => 'Кирери / бүрүткел бижикти чогаадыры',
+'userlogin' => 'Кирери / бүрүткел бижикти чогаадыры',
 'userloginnocreate' => 'Кирери',
 'logout' => 'Үнери',
 'userlogout' => 'Үнери',
 'notloggedin' => 'Кирбес',
+'nologin' => 'Силерде бүрүткел бижик чок? $1',
 'nologinlink' => 'Бүрүткел бижикти бүдүрери',
 'createaccount' => 'Бүрүткел бижикти бүдүрери',
 'gotaccount' => "Силер бүрүтекнип алдыңар де? '''$1'''.",
@@ -353,6 +364,7 @@ Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
 'mailmypassword' => 'Меңээ чаа чажыт сөсту чорудаары',
 'accountcreated' => 'Бүрүткел бижикти бүдүрген',
 'accountcreatedtext' => '«$1» деп ажыглакчының бүрүткел бижиини бүдүрген.',
+'login-abort-generic' => 'Системаже таптыг эвес кирип тур силер',
 'loginlanguagelabel' => 'Дыл: $1',
 
 # E-mail sending
@@ -372,6 +384,7 @@ Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
 'resetpass-temp-password' => 'Түр чажыт сөс:',
 
 # Special:PasswordReset
+'passwordreset-legend' => 'Чажыт атты дүжүр',
 'passwordreset-username' => 'Aжыглакчының ады:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-email' => 'Э-чагааның адреси:',
@@ -380,6 +393,7 @@ Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
 
 # Special:ChangeEmail
 'changeemail' => 'Э-чагааның адресин өскертири',
+'changeemail-header' => 'Бүрүткел бижиктиң э-чагааның адресин өскертири',
 'changeemail-oldemail' => 'Амгы э-чагааның адреси:',
 'changeemail-newemail' => 'Чаа э-чагааның адреси:',
 'changeemail-none' => '(чок)',
@@ -403,11 +417,12 @@ Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
 'image_tip' => 'Киир туткан файл',
 'media_sample' => 'Чижек.ogg',
 'media_tip' => 'Файлдың холбаазы',
+'hr_tip' => 'Доора шугум (use sparingly)',
 
 # Edit pages
 'summary' => 'Түңнел:',
 'subject' => 'Кол сөс:',
-'minoredit' => 'Бо өскерлиишкин бичии-дир',
+'minoredit' => 'Бо эдилге бичии-дир',
 'watchthis' => 'Бо арынны хайгаараары',
 'savearticle' => 'Арынны шыгжаары',
 'preview' => 'Чижеглей көөрү',
@@ -424,11 +439,14 @@ Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
 
 The password for this new account can be changed on the ''[[Special:ChangePassword|change password]]'' page upon logging in.",
 'newarticle' => '(Чаа)',
+'userpage-userdoesnotexist' => '«<nowiki>$1</nowiki>» деп ажыглакчы is not registered.
+Please check if you want to create/edit this page.',
+'userpage-userdoesnotexist-view' => '«$1» деп ажыглакчы not registered.',
 'note' => "'''Тайылбыр:'''",
 'previewnote' => "'''Бо чүгле шенеп көөрү-дүр.'''
  Бижик ам-даа шыгжатынмаан!",
-'editing' => '«$1» деп арынны өскертип турар',
-'editingsection' => '«$1» деп арынның салбырын өскертип турар',
+'editing' => '«$1» деп арынны эдери',
+'editingsection' => '«$1» деп арынның салбырын эдери',
 'editingcomment' => '«$1» деп арынны өскертип турар (чаа салбыр)',
 'yourtext' => 'Силерниң сөзүглелиңер',
 'yourdiff' => 'Ылгалдар',
@@ -506,19 +524,21 @@ The password for this new account can be changed on the ''[[Special:ChangePasswo
 'nextn-title' => 'Дараазында $1 {{PLURAL:$1|бижик|бижик}}',
 'shown-title' => 'Арынга $1 {{PLURAL:$1|түңнелди|түңнелди}} көргүзери',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) көөрү',
-'searchmenu-new' => "'''Бо вики-проектиге «[[:$1]]» арынны чогаадыры'''",
+'searchmenu-exists' => "'''Бо викиде \"[[:\$1]]\" деп арын бар.'''",
+'searchmenu-new' => "'''Бо викиде «[[:$1]]» арынны чогаадыры'''",
 'searchhelp-url' => 'Help:Допчузу',
 'searchprofile-articles' => 'үндезин арыннар',
 'searchprofile-project' => 'Төлевилел биле дуза арыннары',
 'searchprofile-images' => 'Мультимедиа',
 'searchprofile-everything' => 'Бүгүде',
-'searchprofile-advanced' => 'делгем',
+'searchprofile-advanced' => 'Ð\9aалбаÑ\80Ñ\82Ñ\8bÑ\80Ñ\8b',
 'searchprofile-articles-tooltip' => '$1 иштинден дилээри',
 'searchprofile-project-tooltip' => '$1 иштинде дилээри',
 'searchprofile-images-tooltip' => 'Файлдар дилээри',
 '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' => '(артык)',
@@ -634,7 +654,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => 'бо арынны номчууру',
-'action-edit' => 'бо арынны өскертири',
+'action-edit' => 'бо арынны эдери',
 'action-createpage' => 'арыннарны чогаадыры',
 'action-createtalk' => 'чугаалажырга арыннарны чогаадыры',
 'action-createaccount' => 'бо бүрүткел бижиктерин бүдүрери',
@@ -650,14 +670,16 @@ 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',
 'rcshowhidebots' => 'Роботтарну $1',
 'rcshowhideliu' => 'Кирер ажыглакчыларны $1',
 'rcshowhideanons' => 'Ат эвес ажыглакчыларны $1',
 'rcshowhidepatr' => 'истээн өскерлиишкиннерни $1',
 'rcshowhidemine' => 'Мээң өскерлиишкинимни $1',
-'rclinks' => ' $2 буруңу хүнде $1 өскерлиишкиннерни көргүзери<br />$3',
+'rclinks' => '$2 хүнде эрткен $1 өскерлиишкиннерни көргүзери<br />$3',
 'diff' => 'ылгал',
 'hist' => 'төөгү',
 'hide' => 'чажырары',
@@ -673,6 +695,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 # Recent changes linked
 'recentchangeslinked' => 'Хамааржыр өскерлиишкиннер',
 'recentchangeslinked-toolbox' => 'Хамааржыр өскерлиишкиннер',
+'recentchangeslinked-title' => '«$1» деп арынга хамаарыштырган өскерлиишкиннер',
 'recentchangeslinked-page' => 'Арынның ады:',
 
 # Upload
@@ -717,7 +740,8 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'filehist-revert' => 'эгидип тургузары',
 'filehist-current' => 'амгы',
 'filehist-datetime' => 'Ай, Хүн/Шак',
-'filehist-thumb' => 'Бичии чурук',
+'filehist-thumb' => 'Бичии чурумал',
+'filehist-thumbtext' => 'Бичии чурумал for version as of $1',
 'filehist-user' => 'Ажыглакчы',
 'filehist-dimensions' => 'Хемчээлдери',
 'filehist-filesize' => 'Файл хемчээли',
@@ -739,6 +763,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'filedelete-reason-otherlist' => 'Өске чылдагаан',
 
 # MIME search
+'mimetype' => 'MIME хевири:',
 'download' => 'алыры',
 
 # Unwatched pages
@@ -793,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' => 'Эң эрги арыннар',
@@ -807,7 +833,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'booksources-go' => 'Күүcедири',
 
 # Special:Log
-'specialloguserlabel' => 'Ð\90жÑ\8bглакÑ\87Ñ\8b:',
+'specialloguserlabel' => 'Ð\9aÒ¯Ò¯Ñ\81едикÑ\87и:',
 'speciallogtitlelabel' => 'Target (aтка азы ажыглакчыга):',
 'log' => 'Журналдар',
 
@@ -824,6 +850,9 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 # Special:Categories
 'categories' => 'Бөлүктер',
 
+# Special:DeletedContributions
+'sp-deletedcontributions-contribs' => 'салыышкыннар',
+
 # Special:LinkSearch
 'linksearch' => 'Даштыкы холбааларга дилээри',
 'linksearch-ns' => 'Аттар делгеми:',
@@ -864,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' => 'Хайгаарал даңзының эдиглери',
 
@@ -873,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
@@ -919,26 +950,28 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'blanknamespace' => '(Кол)',
 
 # Contributions
-'contributions' => 'Ажыглакчыниң немелделери',
-'contributions-title' => '«$1» деп ажыглакчының немелделери',
-'mycontris' => 'Мээң немелделерим',
+'contributions' => 'Ажыглакчыниң салыышкыннары',
+'contributions-title' => '«$1» деп ажыглакчының салыышкыннары',
+'mycontris' => 'Мээң салыышкыннарым',
 'contribsub2' => '$1 ($2)',
 'uctop' => '(баш)',
 'month' => 'Айдан:',
 'year' => 'Чылдан:',
 
-'sp-contributions-newbies' => 'Чүгле Ñ\87аа ÐºÐ¸Ñ\80еÑ\80илеÑ\80ниң Ð½ÐµÐ¼ÐµÐ»Ð´ÐµÐ»ÐµÑ\80ин ÐºÓ©Ñ\80гүзеÑ\80н',
+'sp-contributions-newbies' => 'Чүгле Ñ\87аа ÐºÐµÐ¶Ð¸Ð³Ò¯Ð½Ð½ÐµÑ\80ниң Ñ\81алÑ\8bÑ\8bÑ\88кÑ\8bннаÑ\80Ñ\8bн ÐºÓ©Ñ\80гүзеÑ\80и',
 'sp-contributions-blocklog' => 'кызыгаарлаашкынның журналы',
 'sp-contributions-uploads' => 'киирген чүүлдер',
 'sp-contributions-logs' => 'журналдар',
 'sp-contributions-talk' => 'чугаалажыры',
-'sp-contributions-search' => 'Ð\9dемелделеÑ\80ин дилээри',
+'sp-contributions-search' => 'СалÑ\8bÑ\8bÑ\88кÑ\8bннаÑ\80Ñ\8bн дилээри',
 'sp-contributions-username' => 'ИП-адрес азы ажыглачының ады:',
 'sp-contributions-submit' => 'Дилээри',
 
 # What links here
 'whatlinkshere' => 'Шөлүлгелерни бээр',
+'whatlinkshere-title' => '«$1» деп арынга шөлүтген арыннар',
 'whatlinkshere-page' => 'Арын:',
+'nolinkshere' => "'''[[:$1]]''' деп арынга шөлүтген арыннар чок.",
 'isredirect' => 'шиглидер арын',
 'istemplate' => 'киирткен арыннар',
 'isimage' => 'файлдың холбаазы',
@@ -952,10 +985,14 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'whatlinkshere-filters' => 'Шүүрлер',
 
 # Block/unblock
+'block' => 'Ажыглакчыны кызыгаарлаары',
 'blockip' => 'Ажыглакчыны кызыгаарлаары',
+'blockip-title' => 'Ажыглакчыны кызыгаарлаары',
+'blockip-legend' => 'Ажыглакчыны кызыгаарлаары',
 'ipadressorusername' => 'ИП-адрес азы aжыглaкчының aды',
 'ipbreason' => 'Чылдагаан:',
 'ipbreasonotherlist' => 'Өске чылдагаан',
+'ipbsubmit' => 'Бо ажыглакчыны кызыгаарлаары',
 'ipbother' => 'Өске шак:',
 'ipboptions' => '2 шак:2 hours,1 хүн:1 day,3 хүн:3 days,1 чеди-хонук:1 week,2 чеди-хонук:2 weeks,1 ай:1 month,3 ай:3 months,6 ай:6 months,1 чыл:1 year,төнмес-батпас:infinite',
 'ipbotheroption' => 'өске',
@@ -968,7 +1005,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'blocklink' => 'кызыгаарлаары',
 'unblocklink' => 'ажыдып хостаар',
 'change-blocklink' => 'кызыгаарлаашкынны өскертири',
-'contribslink' => 'немелделер',
+'contribslink' => 'салыышкыннар',
 'blocklogpage' => 'Кызыгаарлаашкынның журналы',
 'blocklogentry' => ', [[$1]] $2 дургузунда кызыгаарлаттынган: $3',
 'block-log-flags-anononly' => 'чүгле ат эвес ажыглакчылар',
@@ -1007,6 +1044,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 
 # Thumbnails
 'thumbnail-more' => 'Улгаттыр',
+'thumbnail_error' => 'Error creating бичии чурумал: $1',
 
 # Special:Import
 'import-comment' => 'Тайылбыр:',
@@ -1018,11 +1056,11 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'tooltip-pt-userpage' => 'Силерниң ажыглакчы арыныңнар',
 'tooltip-pt-mytalk' => 'Силерниң чугаалажыр арыныңар',
 'tooltip-pt-preferences' => 'Силерниң шилилгеңер',
-'tooltip-pt-mycontris' => 'Силерниң немелделериңерның даңзызы',
+'tooltip-pt-mycontris' => 'Силерниң салыышкыннарыңарның даңзызы',
 'tooltip-pt-login' => 'Маңаа системаже киир бүрүткенип болур, ынчалза-даа ол албан эвес.',
 'tooltip-pt-logout' => 'Үнери',
 'tooltip-ca-talk' => 'Бо арын дугайында чыгаалажыры',
-'tooltip-ca-edit' => 'Силер бо арынны өскертип болур. Шыгжаар мурунда чижеглеп көрем.',
+'tooltip-ca-edit' => 'Силер бо арынны эдип болур. Шыгжаар мурунда чижеглеп көрем.',
 'tooltip-ca-addsection' => 'Чаа салбыр чаяар',
 'tooltip-ca-viewsource' => 'Бо арын камгалаттырган.
 Дөзү кодун көрүп болур силер.',
@@ -1042,10 +1080,11 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'tooltip-n-recentchanges' => 'Викиниң энир өскерлиишкиннери',
 'tooltip-n-randompage' => 'Душ арынны көөрү',
 'tooltip-n-help' => 'Төлевилелдиң тайылбыры «{{SITENAME}}»',
+'tooltip-t-whatlinkshere' => 'Бүгү маңаа шөлүтген вики арыннарның даңзызы',
 'tooltip-t-recentchangeslinked' => 'Бо арындан шөлүткен өске арыннарның сөөлгү өскерлиишкиннери',
 'tooltip-feed-rss' => 'Бо арының РСС медээ агымы',
 'tooltip-feed-atom' => 'Бо арының Атом медээ агымы',
-'tooltip-t-contributions' => 'Бо ажыглакчының немелделериниң даңзазын көөрү.',
+'tooltip-t-contributions' => 'Бо ажыглакчының салыышкыннарының даңзазын көөрү.',
 'tooltip-t-emailuser' => 'Бо ажыглакчыга э-чагааны чорудаары',
 'tooltip-t-upload' => 'Файлдарны киирери',
 'tooltip-t-specialpages' => 'Шупту тускай арыннар даңзызы',
@@ -1087,11 +1126,14 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'nextdiff' => 'Артык чаа үндүрери →',
 
 # Media information
+'thumbsize' => 'Бичии чурумалдың хемчээли:',
 'widthheightpage' => '$1x$2, $3 {{PLURAL:$3|арын}}',
-'file-info-size' => '$1 × $2 пиксел, Файл хемчээли: $3, MIME янзызы: $4',
+'file-info' => 'файлдың хемчээли: $1, MIME хевири: $2',
+'file-info-size' => '$1 × $2 пиксел, Файл хемчээли: $3, MIME хевири: $4',
+'file-info-size-pages' => '$1 × $2 пикcелдер, файл хемчээли: $3, MIME хевири: $4, $5 {{PLURAL:$5|арын|арын}}',
 'file-nohires' => 'Оон улуг хевири чок',
 'svg-long-desc' => 'SVG файл, $1 x $2 пиксел, файл хемчээли: $3',
-'show-big-image' => 'УлÑ\83г Ñ\87Ñ\83Ñ\80Ñ\83к',
+'show-big-image' => 'УлÑ\83г Ñ\87Ñ\83Ñ\80Ñ\83мал',
 'show-big-image-size' => '$1 × $2 пиксел',
 
 # Special:NewFiles
@@ -1100,6 +1142,31 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'noimages' => 'Nothing to see.',
 'ilsubmit' => 'Дилээр',
 
+# Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'seconds' => '{{PLURAL: $1|$1 секунда|$1 секунда}}',
+'minutes' => '{{PLURAL: $1|$1 минут|$1 минут}}',
+'hours' => '{{PLURAL:$1|$1 шак|$1 шак}}',
+'days' => '{{PLURAL:$1|$1 хүн|$1 хүн}}',
+'ago' => '$1 бурунгаар',
+
+# Metadata
+'metadata' => 'Чурумал дугайында медээлер',
+'metadata-fields' => 'Чурумал дугайында медээлер listed in this message will be included on image page display when the metadata table is collapsed.
+Others will be hidden by default.
+* make
+* model
+* datetimeoriginal
+* exposuretime
+* fnumber
+* isospeedratings
+* focallength
+* artist
+* copyright
+* imagedescription
+* gpslatitude
+* gpslongitude
+* gpsaltitude',
+
 # EXIF tags
 'exif-imagewidth' => 'Калбаа',
 'exif-imagelength' => 'Бедик',
@@ -1108,21 +1175,38 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'exif-usercomment' => 'Ажыглакчының тайылбырлары',
 'exif-jpegfilecomment' => 'JPEG фалй тайылбыры',
 'exif-headline' => 'Баш ат',
+'exif-languagecode' => 'Дыл',
 'exif-pngfilecomment' => 'PNG фалй тайылбыры',
 'exif-giffilecomment' => 'GIF фалй тайылбыры',
 
 'exif-subjectdistancerange-2' => 'Чоок көрүш',
 'exif-subjectdistancerange-3' => 'ырак көрүш',
 
+'exif-dc-type' => 'Медиа хевири',
+
+'exif-iimcategory-sci' => 'Эртем база техника',
+'exif-iimcategory-spo' => 'Спорт',
+'exif-iimcategory-wea' => 'Агаар',
+
+# External editor support
+'edit-externally' => 'Бо файлды даштыки application-биле эдер',
+
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'шупту',
 'namespacesall' => 'шупту',
 'monthsall' => 'шупту',
 'limitall' => 'шупту',
 
+# Delete conflict
+'recreate' => 'Катап чогаадыры',
+
 # action=purge
 'confirm_purge_button' => 'Чөп',
 
+# action=watch/unwatch
+'confirm-watch-button' => 'Чөп',
+'confirm-unwatch-button' => 'Чөп',
+
 # Multipage image navigation
 'imgmultipageprev' => '← эрткен арын',
 'imgmultipagenext' => 'дараазында арын →',
@@ -1148,7 +1232,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 
 # Watchlist editing tools
 'watchlisttools-view' => 'Даңзы арыннарының өскерлиишкиннери',
-'watchlisttools-edit' => 'Хайгаарал даңзыны көөрү болгаш өскертири',
+'watchlisttools-edit' => 'Хайгаарал даңзыны көөрү/эдери',
 'watchlisttools-raw' => 'Чиг хайгаарал даңзыны өскертири',
 
 # Special:Version
@@ -1164,11 +1248,12 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 # Special:FileDuplicateSearch
 'fileduplicatesearch-filename' => 'Файлдың ады:',
 'fileduplicatesearch-submit' => 'Дилээри',
-'fileduplicatesearch-info' => '$1 Ã\97 $2 Ð¿Ð¸ÐºÑ\81ел<br />Файл Ñ\85емÑ\87Ñ\8dÑ\8dли: $3<br />MIME Ñ\8fнзÑ\8bзÑ\8b: $4',
+'fileduplicatesearch-info' => '$1 Ã\97 $2 Ð¿Ð¸ÐºÑ\81ел<br />Файл Ñ\85емÑ\87Ñ\8dÑ\8dли: $3<br />MIME Ñ\85евиÑ\80и: $4',
 
 # Special:SpecialPages
 'specialpages' => 'Тускай арыннар',
 'specialpages-group-other' => 'Өске тускай арыннар',
+'specialpages-group-pages' => 'Арыннарның даңзызы',
 'specialpages-group-pagetools' => 'Арын херекселдери',
 
 # Special:BlankPage
@@ -1179,6 +1264,7 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'tag-filter-submit' => 'Шүүрү',
 'tags-title' => 'Демдеглелдер',
 'tags-edit' => 'өскертири',
+'tags-hitcount' => '$1 {{PLURAL:$1|өскерлиишкин}}',
 
 # Special:ComparePages
 'comparepages' => 'Арыннарны дөмейлеп көөрү',
@@ -1196,4 +1282,14 @@ It must not be more than $1 {{PLURAL:$1|character|characters}} long.',
 'feedback-message' => 'Чагаа:',
 'feedback-cancel' => 'Соксаары',
 
+# 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|чүс чыл|чүс чыл}}',
+
 );
index 7d00a21..0e1ad53 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)',
@@ -470,7 +470,7 @@ $messages = array(
 'category-subcat-count-limited' => 'У цій категорії {{PLURAL:$1|$1 підкатегорія|$1 підкатегорії|$1 підкатегорій}}.',
 'category-article-count' => 'Показано $1 {{PLURAL:$1|сторінку|сторінки|сторінок}} цієї категорії (із $2).',
 'category-article-count-limited' => 'У цій категорії {{PLURAL:$1|$1 сторінка|$1 сторінки|$1 сторінок}}.',
-'category-file-count' => 'Показано $1 {{PLURAL:$1|файл|файли|файлів}} цієї категорії (із $2).}}',
+'category-file-count' => 'Показано $1 {{PLURAL:$1|файл|файли|файлів}} цієї категорії (із $2).',
 'category-file-count-limited' => 'У цій категорії {{PLURAL:$1|$1 файл|$1 файли|$1 файлів}}.',
 'listingcontinuesabbrev' => '(прод.)',
 'index-category' => 'Індексовані сторінки',
@@ -727,7 +727,7 @@ $1',
 'actionthrottledtext' => 'Як захід боротьби зі спамом, установлено обмеження на багаторазове застосування цієї дії протягом короткого проміжку часу. Будь ласка, повторіть спробу через кілька хвилин.',
 'protectedpagetext' => 'Ця сторінка закрита для редагування.',
 'viewsourcetext' => 'Ви можете переглянути та скопіювати початковий текст цієї сторінки:',
-'viewyourtext' => "Ви можете переглянути або скопіювати вихідний текст '''ваших редагувань''' на цю сторінку:",
+'viewyourtext' => "Ви можете переглянути та скопіювати текст '''ваших редагувань''' на цій сторінці:",
 'protectedinterface' => 'Ця сторінка є частиною інтерфейсу програмного забезпечення і її можуть редагувати лише адміністратори проекту.',
 'editinginterface' => "'''Увага:''' Ви редагуєте сторінку, що є частиною текстового інтерфейсу. Зміни цієї сторінки викличуть зміну інтерфейсу для інших користувачів. Для перекладу повідомлення використовуйте [//translatewiki.net/wiki/Main_Page?setlang=uk translatewiki.net] — проект, що займається локалізацією MediaWiki.",
 'sqlhidden' => '(SQL запит приховано)',
@@ -741,6 +741,8 @@ $1',
 'filereadonlyerror' => "Неможливо змінити файл «$1» тому, що файловий архів «$2» перебуває в режимі «лише для читання».
 Адміністратор, що заблокував його, залишив таке пояснення: «''$3''».",
 'invalidtitle-knownnamespace' => 'Неприйнятна назва у просторі імен «$2» і текстом «$3»',
+'exception-nologin' => 'Не виконано вхід',
+'exception-nologin-text' => 'Ця сторінка чи дія потребує, щоб Ви ввійшли до цієї Вікі.',
 
 # Virus scanner
 'virus-badscanner' => "Помилка налаштування: невідомий сканер вірусів: ''$1''",
@@ -837,6 +839,7 @@ $1',
 'invalidemailaddress' => 'Уведена адреса не може бути прийнята, бо вона не відповідає формату адрес електронної пошти.
 Будь ласка, введіть коректну адресу або залиште поле порожнім.',
 'cannotchangeemail' => 'У цій вікі не можна міняти свою адресу ел. пошти.',
+'emaildisabled' => 'Цей сайт не може надіслати електронні листи.',
 'accountcreated' => 'Обліковий запис створено.',
 'accountcreatedtext' => 'Обліковий запис для $1 створено.',
 'createaccount-title' => 'Створення облікового запису для {{SITENAME}}',
@@ -1118,6 +1121,7 @@ $2
 'edit-no-change' => 'Ваше редагування відхилене, оскільки в тексті не було зроблено змін.',
 'edit-already-exists' => 'Неможливо створити нову сторінку.
 Вона вже існує.',
+'defaultmessagetext' => 'Текст «за замовчування»',
 
 # Parser/template warnings
 'expensive-parserfunction-warning' => 'Увага: Ця сторінка містить дуже багато викликів ресурсомістких функцій.
@@ -1133,7 +1137,11 @@ $2
 'parser-template-loop-warning' => 'Виявлена петля у шаблонах: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Перевищене обмеження глибини рекурсії шаблону ($1)',
 'language-converter-depth-warning' => 'Перевищене обмеження глибини мовного конвертора ($1)',
-'parser-unstrip-loop-warning' => 'Виявлено незакритий тег <pre>',
+'node-count-exceeded-category' => 'Сторінки, на яких перевищено лічильник вузлів',
+'node-count-exceeded-warning' => 'Кількість вузлів препроцесора на сторінці перевищила встановлену межу.',
+'expansion-depth-exceeded-category' => 'Сторінки, де перевищено глибину розгортання',
+'expansion-depth-exceeded-warning' => 'На сторінці перевищено межу глибини вкладеності',
+'parser-unstrip-loop-warning' => 'Виявлено незакритий тег (такий, як <pre>)',
 
 # "Undo" feature
 'undo-success' => 'Редагування може бути скасовано.
@@ -1312,7 +1320,7 @@ $1",
 
 # Diffs
 'history-title' => '$1: Історія змін',
-'difference-title' => '$1: Відмінності між версіями',
+'difference-title' => 'Відмінності між версіями «$1»',
 'difference-title-multipage' => 'Різниця між сторінками «$1» та «$2»',
 'difference-multipage' => '(Різниця між сторінками)',
 'lineno' => 'Рядок $1:',
@@ -1897,6 +1905,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 +2030,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' => 'Завантажити нову версію цього файлу',
@@ -2214,6 +2227,7 @@ $1',
 Ви можете відфільтрувати результати за типом журналу, іменем користувача (враховується регістр) або зазначеною сторінкою (також враховується регістр).',
 'logempty' => 'В журналі немає подібних записів.',
 'log-title-wildcard' => 'Знайти заголовки, що починаються з цих символів',
+'showhideselectedlogentries' => 'Показати/приховати виділені записи журналу',
 
 # Special:AllPages
 'allpages' => 'Усі сторінки',
@@ -2234,6 +2248,7 @@ $1',
 'allpages-hide-redirects' => 'Сховати перенаправлення',
 
 # SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => 'Ви переглядаєте кешовану версію сторінки, яка могла бути оновлена $1 тому.',
 'cachedspecial-viewing-cached-ts' => 'Ви переглядаєте кешовану версію сторінки, яка могла втратити актуальність',
 'cachedspecial-refresh-now' => 'Показати останні',
 
@@ -2418,7 +2433,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»',
@@ -3130,7 +3145,7 @@ The wiki server can't provide data in a format your client can read.",
 'spambot_username' => 'Очистка спаму',
 'spam_reverting' => 'Відкинути до останньої версії, що не містить посилання на $1',
 'spam_blanking' => 'Всі версії містять посилання на $1, очистка',
-'spam_deleting' => 'Все версії містили посилання на $1, видаляються',
+'spam_deleting' => 'Все версії, що містили посилання на $1, вилучаються',
 
 # Info page
 'pageinfo-title' => 'Інформація про " $1 "',
@@ -4165,7 +4180,7 @@ MediaWiki поширюється в надії, що вона буде кори
 
 # API errors
 'api-error-badaccess-groups' => 'Вам не дозволено завантажувати файли до цього вікіпроекту.',
-'api-error-badtoken' => 'Ð\92нÑ\83Ñ\82Ñ\80Ñ\96Ñ\88нÑ\8f Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð¿Ð¾Ð³Ð°Ð½Ð¸Ð¹ Ð·Ð½Ð°Ðº.',
+'api-error-badtoken' => 'Ð\92нÑ\83Ñ\82Ñ\80Ñ\96Ñ\88нÑ\8f Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: Ð½ÐµÐºÐ¾Ñ\80екÑ\82ний Ñ\82окен.',
 'api-error-copyuploaddisabled' => 'На цьому сервері вимкнене завантаження за URL-адресою.',
 'api-error-duplicate' => 'Вже {{PLURAL:$1|існує  [$2 інший файл]|існують [$2 інші файли]}} з таким самим вмістом.',
 'api-error-duplicate-archive' => 'Раніше на сайті вже {{PLURAL:$1|був [$2 файл]|були [$2 файли]}} з ідентичним вмістом, але {{PLURAL:$1|був|були}} вилучені.',
@@ -4212,4 +4227,6 @@ MediaWiki поширюється в надії, що вона буде кори
 'duration-centuries' => '$1 {{PLURAL:$1|століття|століття|століть}}',
 'duration-millennia' => '$1 {{PLURAL:$1|тисячоліття|тисячоліття|тисячоліть}}',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Не вдалося одержати блокування на сервері $1.',
 );
index 068a010..21ff98b 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Uzbek (Oʻzbek)
+/** Uzbek (Oʻzbekcha)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -50,6 +50,10 @@ $namespaceAliases = array(
 $linkTrail = '/^([a-zʻʼ“»]+)(.*)$/sDu';
 
 $messages = array(
+# User preference toggles
+'tog-oldsig' => 'Mavjud imzo:',
+'tog-fancysig' => 'Imzoni wikimatn sifatida qara (avtomatik ishoratsiz)',
+
 'underline-always' => 'Har doim',
 'underline-never' => 'Hech qachon',
 
@@ -420,6 +424,10 @@ Bu yerda: (joriy) = hozirgi koʻrinish bilan farq,
 # Recent changes
 'recentchanges' => 'Yangi o‘zgartirishlar',
 'recentchanges-summary' => "Bu sahifada siz oxirgi o'zgartirishlarni ko'rishingiz mumkin.",
+'recentchanges-label-newpage' => 'Bu tahrir yangi sahifani yaratdi',
+'recentchanges-label-minor' => 'Bu kichik tahrir',
+'recentchanges-label-bot' => 'Bu tahrirni bot bajardi',
+'recentchanges-label-unpatrolled' => 'Bu tahrir hali tekshirilmadi',
 'rcnote' => "Quyida $5, $4ga koʻra oxirgi {{PLURAL:$2|kun|'''$2''' kun}} davomida sodir boʻlgan {{PLURAL:$1|'''1''' oʻzgartirish|'''$1''' oʻzgartirishlar}} koʻrsatilgan.",
 'rclistfrom' => "$1dan boshlab yangi o'zgartirishlarni ko'rsat.",
 'rcshowhideminor' => 'Kichik tahrirlarni $1',
index f067bcb..82292c3 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)',
@@ -457,7 +457,7 @@ $messages = array(
 'vector-view-create' => 'Tạo',
 'vector-view-edit' => 'Sửa',
 'vector-view-history' => 'Xem lịch sử',
-'vector-view-view' => 'Xem',
+'vector-view-view' => 'Đọc',
 'vector-view-viewsource' => 'Xem mã nguồn',
 'actions' => 'Tác vụ',
 'namespaces' => 'Không gian tên',
@@ -683,6 +683,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''",
@@ -3041,7 +3043,8 @@ Lưu nó vào máy tính của bạn rồi tải nó lên đây.',
 'spamprotectionmatch' => 'Nội dung sau đây đã kích hoạt bộ lọc thư rác: $1',
 'spambot_username' => 'Bộ dọn dẹp thư rác MediaWiki',
 'spam_reverting' => 'Lùi lại đến phiên bản cuối không chứa liên kết đến $1',
-'spam_blanking' => 'Tất cả các phiên bản có liên kết đến $1, đang tẩy trống',
+'spam_blanking' => 'Tất cả các phiên bản có liên kết đến $1; tẩy trống',
+'spam_deleting' => 'Tất cả các phiên bản có liên kết đến $1; xóa',
 
 # Info page
 'pageinfo-title' => 'Thông tin về “$1”',
@@ -4055,4 +4058,6 @@ Nếu không thì bạn có thể điền biểu mẫu đơn giản ở dưới.
 'duration-centuries' => '$1 thế kỷ',
 'duration-millennia' => '$1 thiên niên kỷ',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => 'Không thể lấy các chìa khóa trên máy chủ $1.',
 );
index b81365a..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)',
@@ -249,6 +249,7 @@ $messages = array(
 'printableversion' => 'Modêye sicrirece-amiståve',
 'permalink' => 'Hårdêye viè cisse modêye ci',
 'print' => 'Imprimer',
+'view' => 'Vey',
 'edit' => 'Candjî',
 'create' => 'Ahiver',
 'editthispage' => "Candjî l' pådje",
@@ -334,6 +335,8 @@ $1",
 'restorelink' => '{{PLURAL:$1|on candjmint disfacé|$1 candjmints disfacés}}',
 'feedlinks' => 'Sindicåcion:',
 'feed-invalid' => 'Sôre di sindicåcion nén valide.',
+'site-atom-feed' => 'Floûs Atom di $1',
+'page-atom-feed' => 'Floûs Atom di «$1»',
 'red-link-title' => '$1 (nén co ataké)',
 'sort-descending' => 'Discrexhant relijhaedje',
 'sort-ascending' => 'Acrexhant relijhaedje',
@@ -374,7 +377,14 @@ a pårti del fonccion «$2».
 Li båze di dnêyes a rtourné l' aroke «$3: $4».",
 'laggedslavemode' => "Asteme: I s' pout ki l' pådje n' åye nén co les dierins candjmints.",
 'readonly' => 'Li båze di dnêyes est aclawêye',
+'missing-article' => "Li båze di dnêyes n' a nén trové l' tecse d' ene pådje k' åreut dvou esse trovêye, lomêye «$1» $2.
+
+Çoula arive cwand on shût on loyén po ene diferince k' est houte ou viè l' istwere d' ene pådej disfacêye.
+
+Si c' est nén çoula, motoit k' vos avoz trové on bug dins l' programe.
+Adon dijhoz l' a on [[Special:ListUsers/sysop|manaedjeu]], sins rovyî d' mete li hårdêye (URL) ki mostere l' aroke.",
 'missingarticle-rev' => '(l° del modêye: $1)',
+'missingarticle-diff' => '(dif: $1, $2)',
 'internalerror' => 'Divintrinne aroke',
 'internalerror_info' => 'Divintrinne aroke: $1',
 'filecopyerror' => "Dji n' a savou copyî l' fitchî «$1» viè «$2».",
@@ -431,6 +441,7 @@ Vosse conte a stî ahivé.
 'createaccount' => 'Ahiver on novea conte',
 'gotaccount' => "Vos avoz ddja on conte so ç' wiki ci? '''$1'''.",
 'gotaccountlink' => 'Elodjîz vs',
+'userlogin-resetlink' => "Avoz rovyî vos detays d' elodjaedje?",
 'createaccountmail' => 'pa emile',
 'createaccountreason' => 'Råjhon:',
 'badretype' => 'Vos avoz dné deus screts diferins.',
@@ -686,6 +697,7 @@ Li dierinne intrêye do djournå est håynêye chal pa dzo po referince:",
 'templatesusedsection' => '{{PLURAL:$1|Modele eployî|Modeles eployîs}} e cisse seccion ci:',
 'template-protected' => '(protedjî)',
 'template-semiprotected' => '(dimey-protedjî)',
+'hiddencategories' => "Cisse pådje ci est mimbe {{PLURAL:$1|d' ene categoreye catcheye|di $1 categoreyes catcheyes}}:",
 'nocreatetitle' => 'Ahivaedje di pådjes limité',
 'nocreatetext' => "{{SITENAME}} a limité l' possibilité d' ahiver des novelès pådjes.
 Vos ploz rivni en erî eyet candjî ene pådje k' egzistêye dedja, oudonbén, [[Special:UserLogin|vos elodjî ou ahiver on conte d' uzeu]].",
@@ -700,6 +712,11 @@ Motoit k' elle a stî tapêye evoye.",
 'edit-no-change' => "Vosse sicrijhaedje n' a nén passé, paski rén n' a stî candjî al modêye di dvant.",
 'edit-already-exists' => "Li novele pâdje n' a savou esse ahivêye, ca cisse pâdje la egzistêye dedja.",
 
+# Parser/template warnings
+'post-expand-template-inclusion-warning' => "'''Asteme:''' I gn a trop di modeles dins cisse pådje ci.
+Sacwants di zels ni seront nén eployîs.",
+'post-expand-template-inclusion-category' => "Pådjes ki l' inclusion d' modeles est foû limite",
+
 # Account creation failure
 'cantcreateaccounttitle' => "Vos n' ploz nén ahiver-st on conte.",
 
@@ -733,6 +750,9 @@ Ledjinde: '''({{int:cur}})''' = diferince avou l' modêye d' asteure, '''({{int:
 'history-feed-title' => 'Istwere des modêyes',
 'history-feed-description' => 'Istwere des candjmints di cisse pådje ci sol wiki',
 'history-feed-item-nocomment' => '$1 li $2',
+'history-feed-empty' => "Li pådje ki vos vloz drovi n' egzistêye nén.
+Elle a motoit stî  disfacêye ou k' elle a rcandjî d' no.
+Asprouvez do [[Special:Search|ricweri sol wiki]] po trover des pådjes vijhenes.",
 
 # Revision deletion
 'rev-deleted-comment' => '(rascourti di candjmint oisté)',
@@ -743,6 +763,7 @@ Vos ploz vey les ca et les ma sol [{{fullurl:{{#Special:Log}}/suppress|page={{FU
 Vos l' poloz co vey; i gn a des detays sol [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} djournå des disfaçaedjes].",
 'rev-delundel' => 'mostrer/catchî',
 'revisiondelete' => 'Disfacer/rapexhî des modêyes',
+'revdelete-show-file-submit' => 'Oyi',
 'revdelete-selected' => "'''{{PLURAL:$2|Tchoezeye modêye|Tchoezeyès modêyes}} di [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Evenmint tchoezi|Evenmints tchoezis}} ezès djournås:'''",
 'revdelete-text' => "'''Les disfacés avenmints et modêyes vont continouwer d' aparexhe dins l' pådje di l' istwere, mins leu contnou n' serè nén veyåve do publik.'''
@@ -757,6 +778,9 @@ Les ôtes manaedjeus so {{SITENAME}} pôront todi vey li contnou catchî eyet l'
 'revdelete-radio-unset' => 'Neni',
 'revdelete-log' => 'Råjhon:',
 'revdelete-submit' => 'Apliker {{PLURAL:$1|al modêye tchoezeye|åzès modêyes tchoezeyes}}',
+'revdel-restore' => "candjî l' veyåvisté",
+'revdel-restore-deleted' => 'disfacêyès modêyes',
+'revdel-restore-visible' => 'veyåvès modêyes',
 'deletedhist' => 'Istwere disfacêye',
 
 # History merging
@@ -765,6 +789,9 @@ Les ôtes manaedjeus so {{SITENAME}} pôront todi vey li contnou catchî eyet l'
 'mergehistory-no-source' => "Li pådje sourdant $1 n' egzistêye nén.",
 'mergehistory-reason' => 'Råjhon:',
 
+# Merge log
+'revertmerge' => 'Dispårti',
+
 # Diffs
 'history-title' => 'Istwere des candjmints po «$1»',
 'lineno' => 'Roye $1:',
@@ -1069,7 +1096,13 @@ Ciste infôrmacion serè publike po tertos.",
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|candjmint|candjmints}}',
 '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',
+'recentchanges-label-unpatrolled' => "Ci candjmint la n' a nén co stî patrouyî",
 'rcnote' => "Chal pa dzo {{PLURAL:$1|li dierin candjmint|les '''$1''' dierins candjmints}} {{PLURAL:$2|do dierin djoû|des '''$2''' dierins djoûs}}, disk' å $4 a $5.",
 'rcnotefrom' => "Chal pa dzo les candjmints dispoy li '''$2''' (disk' a '''$1''' di mostrés).",
 'rclistfrom' => "Mostrer les candjmints k' i gn a yeu a pårti do $1",
@@ -1085,16 +1118,25 @@ Ciste infôrmacion serè publike po tertos.",
 'hide' => 'catch.',
 'show' => 'håy.',
 'minoreditletter' => 'm',
+'newpageletter' => 'N',
+'boteditletter' => 'b',
 'number_of_watching_users_pageview' => '[shuvou pa $1 {{PLURAL:$1|uzeu|uzeus}}]',
 'rc_categories' => 'Limiter åzès categoreyes (separer avou des «|»)',
 'rc_categories_any' => 'Totes',
 'rc-change-size-new' => "$1 {{PLURAL:$1|octet|octets}} après l' candjmint",
 'newsectionsummary' => '/* $1 */ novele seccion',
+'rc-enhanced-expand' => 'Mostrer les detays (i fåt JavaScript)',
+'rc-enhanced-hide' => 'Catchî les detays',
 
 # Recent changes linked
 'recentchangeslinked' => 'Candjmints aloyîs',
 'recentchangeslinked-feed' => 'Candjmints aloyîs',
 'recentchangeslinked-toolbox' => 'Candjmints aloyîs',
+'recentchangeslinked-title' => 'Candjmints aloyîs a «$1»',
+'recentchangeslinked-summary' => "Çouchal c' est ene djivêye des candjmints k' ont stî fwaits dierinnmint a des pådjes aloyeyes a pårti d' ene pådje dinêye (ou mimbes d' ene categoreye dinêye).
+Les pådjes ki [[Special:Watchlist|vos shuvoz]] sont-st e '''cråssès letes'''.",
+'recentchangeslinked-page' => 'No del pådje:',
+'recentchangeslinked-to' => "Mostere les candjmints des pådjes avou on loyén viè l' pådje dinêye purade k' å rviè",
 
 # Upload
 'upload' => 'Eberweter on fitchî',
@@ -1104,9 +1146,9 @@ Ciste infôrmacion serè publike po tertos.",
 '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î
@@ -1151,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)',
 
@@ -1167,7 +1210,7 @@ Rivnoz s' i vs plait en erî et s' reberwetez l' fitchî dizo èn ôte no si vos
 'listfiles_count' => 'Modêyes',
 
 # File description page
-'file-anchor-link' => 'Imådje',
+'file-anchor-link' => 'Fitchî',
 'filehist' => 'Istwere do fitchî',
 'filehist-help' => "Clitchîz so ene date ey ene eure po vey kimint ki l' fitchî esteut adon.",
 'filehist-deleteall' => 'disfacer ttafwait',
@@ -1239,7 +1282,7 @@ Rimimbrez vs di verifyî s' i n' a nén des ôtes loyéns divant delzès disface
 'statistics-mostpopular' => 'Pådjes les pus veyowes',
 
 'disambiguations' => "Pådjes avou des loyéns viè des pådjes d' omonimeye",
-'disambiguationspage' => 'Template:Omonimeye',
+'disambiguationspage' => 'Template:omonimeye',
 'disambiguations-text' => "Ces pådjes ci loynut eviè ene '''pådje d' omonimeye'''.
 Ele divrént purade raloyî direk å mwaisse sudjet.<br />
 Ene pådje est waiteye come pådje d' omonimeye s' ele eploye on modele k' est loyî a [[MediaWiki:Disambiguationspage]].",
@@ -1248,6 +1291,9 @@ Ene pådje est waiteye come pådje d' omonimeye s' ele eploye on modele k' est l
 'doubleredirectstext' => "Cisse pådje ci mostere les dobes redjiblaedjes (pådjes ki redjiblèt viè ene ôte pådje di redjiblaedje).
 Tchaeke roye a-st on loyén viè l' prumî eyet l' deujhinme redjiblaedje, avou on mostraedje del såme do deujhinme redjiblaedje, çou ki å pus sovint dene li «vraiy» årtike såme, ki l' prumî redjiblaedje divreut evoyî viè lu.
 Lis intrêyes <del>bårêyes</del> otn ddja stî coridjeyes.",
+'double-redirect-fixed-move' => "[[$1]] a stî displaecî.
+Asteure c' est on redjiblaedje viè [[$2]].",
+'double-redirect-fixer' => 'Coridjaedje des dobes redjiblaedjes',
 
 'brokenredirects' => 'Pierdous redjiblaedjes',
 'brokenredirectstext' => "Les redjiblaedjes shuvants evoyèt so ene pådje ki n' egzistêye nén:",
@@ -1257,6 +1303,7 @@ Lis intrêyes <del>bårêyes</del> otn ddja stî coridjeyes.",
 'withoutinterwiki' => 'Pådjes sins loyéns eterwiki',
 'withoutinterwiki-summary' => "Les pådjes shuvantes n' ont nén des loyéns viè ds ôtes lingaedjes.",
 'withoutinterwiki-legend' => 'Betchete',
+'withoutinterwiki-submit' => 'Vey',
 
 'fewestrevisions' => "Årtikes k' on n' î a waire bodjî",
 
@@ -1317,6 +1364,8 @@ Notez tot l' minme ki d' ôtès waibes polèt aveur des loyéns viè ces imådje
 
 # Book sources
 'booksources' => 'Sourdants po les lives',
+'booksources-search-legend' => 'Cweri des sourdants po des lives',
+'booksources-go' => 'I va',
 
 # Special:Log
 'specialloguserlabel' => 'Fwait pa:',
@@ -1378,6 +1427,9 @@ Protocoles ricnoxhous: <tt>$1</tt> (nelzès metoz nén dins vosse tchinne di cwe
 'newuserlogpage' => 'Djournå des noveas uzeus',
 'newuserlogpagetext' => "Chal pa dzo c' est ene djivêye des uzeus novelmint eredjîstrés.",
 
+# Special:ListGroupRights
+'listgrouprights-members' => '(djivêye des mimbes)',
+
 # E-mail user
 'mailnologin' => "Nole adresse d' evoyeu",
 'mailnologintext' => "Po-z evoyî èn emile a èn ôte uzeu i vs fåt esse [[Special:UserLogin|elodjî]] eyet aveur ene adresse emile d' evoyeu ki soeye valide dins vos [[Special:Preferences|preferinces]].",
@@ -1404,6 +1456,7 @@ po ki l' riçuveu poye risponde.",
 # Watchlist
 'watchlist' => 'Pådjes shuvowes',
 'mywatchlist' => 'Pådjes shuvowes',
+'watchlistfor2' => 'Pa $1 ($2)',
 'nowatchlist' => 'Vosse djivêye des pådjes a shuve est vude.',
 'watchlistanontext' => 'I vs fåt $1 po vey ou candjî les cayets di vosse djivêye des shuvous.',
 'watchnologin' => "Vos n' estoz nén elodjî",
@@ -1430,6 +1483,7 @@ Si vos vloz bodjî l' pådje foû di vosse djivêye des shuvous, clitchîz so «
 'iteminvalidname' => "Åk n' a nén stî avou «$1», li no n' est nén valide...",
 'wlnote' => "Chal pa dzo {{PLURAL:$1|li dierin candjmint|les '''$1''' dierins candjmints}} {{PLURAL:$2|del dierinne eure|des '''$2''' dierinnès eures}}, disk' å $3 a $4.",
 'wlshowlast' => 'Mostrer les dierin(nè)s $1 eures, $2 djoûs ou $3',
+'watchlist-options' => 'Tchuzes del djivêye des shuvous',
 
 'enotif_mailer' => 'Notifiaedje pa emile di {{SITENAME}}',
 'enotif_reset' => 'Mårker totes les pådjes come vizitêyes',
@@ -1584,6 +1638,7 @@ candjî l' pådje divant do disfaçaedje. Li tecse di ces modêyes disfacêyes
 ni pout esse veyou ki des manaedjeus.",
 'undeletebtn' => 'Rapexhî',
 'undeletelink' => 'vey/rapexhî',
+'undeleteviewlink' => 'vey',
 'undeletereset' => 'Netyî',
 'undeletecomment' => 'Råjhon:',
 'undeletedrevisions' => '{{PLURAL:$1|1 modêye|$1 modêyes}} di rapexheyes',
@@ -1595,7 +1650,7 @@ ni pout esse veyou ki des manaedjeus.",
 Loukîz l' [[Special:Log/delete|djournå des disfaçaedjes]] po ene djivêye des dierins disfaçaedjes eyet rapexhaedjes.",
 'undelete-search-submit' => 'Cweri',
 'undelete-filename-mismatch' => 'Nén possibe di rapexhî li fitchî do $1 : on nel ritrove nén.',
-'undelete-bad-store-key' => "Nén possibe d' aler rapexhî li fitchî daté do $1 : i n' esteut nén la divant li disfaçaedje.",
+'undelete-bad-store-key' => "Nén possibe d' aler rapexhî li fitchî daté do $1: i n' esteut nén la divant li disfaçaedje.",
 'undelete-missing-filearchive' => "Nén possibe d' aler rapexhî li fitchî avou l’ ID $1 pask' i n' est nén dins l' båze di dnêyes. Motoit k' il a ddja stî rapexhî dvant.",
 
 # Namespace form on various pages
@@ -1637,6 +1692,7 @@ Li dierinne intrêye e djournå des blocaedjes est dnêye chal pa dzo po infôrm
 'linkshere' => "Les pådjes ki shuvèt ont des loyéns viè '''[[:$1]]''':",
 'nolinkshere' => "Nole pådje avou des loyéns viè '''[[:$1]]'''.",
 'isredirect' => 'pådje di redjiblaedje',
+'isimage' => "loyén viè l' fitchî",
 'whatlinkshere-prev' => '{{PLURAL:$1|di dvant|$1 di dvant}}',
 'whatlinkshere-next' => '{{PLURAL:$1|shuvant|$1 shuvants}}',
 'whatlinkshere-links' => '← loyaedjes',
@@ -1669,17 +1725,30 @@ stî vandalijheyes).",
 Loukîz li [[Special:BlockList|djivêye des blocaedjes]] po verifyî les blocaedjes.',
 'unblockip' => 'Disbloker èn uzeu',
 'unblockiptext' => "Rimplixhoz les tchamps chal pa dzo po ridner accès e scrijhaedje a èn uzeu ou adresse IP k' estént blokés.",
-'ipusubmit' => "Risaetchî l' blocaedje",
+'ipusubmit' => "Rissaetchî l' blocaedje",
 'unblocked' => '«[[User:$1|$1]]» a stî disbloké',
+'unblocked-range' => '$1 a stî disbloké',
 'unblocked-id' => 'Li blocaedje $1 a stî rsaetchî',
+'blocklist' => 'Uzeus blokés',
 'ipblocklist' => 'Uzeus blokés',
+'ipblocklist-legend' => 'Cweri après èn uzeu bloké',
+'blocklist-userblocks' => 'Catchî les blocaedjes des contes',
+'blocklist-tempblocks' => 'Catchî les blocaedjes timporaires',
+'blocklist-addressblocks' => "Catchî les blocaedjes d' ene seule adresse IP",
+'blocklist-rangeblocks' => 'Catchî les blocaedjes di fortchetes',
+'blocklist-timestamp' => 'Date et eure',
+'blocklist-target' => 'Såme',
 'blocklist-reason' => 'Råjhon',
 'ipblocklist-submit' => 'Cweri',
+'ipblocklist-localblock' => 'Blocaedje locå',
+'ipblocklist-otherblocks' => '{{PLURAL:$1|Ôte blocaedje|Ôtes blocaedjes}}',
 'infiniteblock' => 'po todi',
 'expiringblock' => "disk' å $1 a $2",
 'blocklink' => 'bloker',
 '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',
@@ -1751,7 +1820,7 @@ L' årtike såme «[[:$1]]» egzistêye dedja. El voloz vs disfacer po vs permet
 'delete_and_move_confirm' => "Oyi, disfacer l' pådje",
 'delete_and_move_reason' => 'Disfacé po permete li displaeçaedje di «[[$1]]»',
 'selfmove' => 'Les tites sourdant et såme sont les minmes; ene pådje ni pout nén esse displaeceye so leye minme.',
-'fix-double-redirects' => "Rapontyî les rdjiblaedjes ki loynut aviè l' mwaisse tite",
+'fix-double-redirects' => "Rapontyî eto les rdjiblaedjes ki loynut aviè l' mwaisse tite",
 
 # Export
 'export' => 'Ricopyî des pådjes foû',
@@ -1803,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',
@@ -1869,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]',
@@ -1884,6 +1953,7 @@ Vos ploz seulmint vey li côde sourdant, mins nén l' candjî.",
 'tooltip-rollback' => "Li loyén «{{int:rollbacklink}}» permete di disfé d' on seu clitch tos les candjmints(s) fwaits sol pådje på dierin uzeu.",
 'tooltip-undo' => "Li loyén «{{int:editundo}}» permete di disfé li candjmint et drouve li boesse di candjmint e môde prévoeyaedje.
 Dj' ô bén, ça permete di disfé l' candjmint et d' mete on messaedje dins l' boesse di rascourti.",
+'tooltip-summary' => 'Dinez on ptit rascourti',
 
 # Stylesheets
 'common.css' => '/* li côde CSS metou chal serè eployî pa totes les peas et tos les uzeus */',
@@ -1895,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',
@@ -1940,6 +2010,8 @@ Si vos l' enondez vos pôrîz infecter l' sistinme da vosse.",
 'thumbsize' => 'Grandeu po les imådjetes (thumb):',
 'widthheightpage' => '$1 × $2, $3 pådje{{PLURAL:$3||s}}',
 'file-info-size' => '$1 × $2 picsels, groxheur do fitchî: $3, del sôre "MIME": $4',
+'file-nohires' => "I n' a nén di pus grande finté.",
+'svg-long-desc' => 'Fitchî SVG, finté di $1 × $2 picsels, grandeu: $3',
 'show-big-image' => "Imådje a si grandeur d' oridjinne",
 
 # Special:NewFiles
@@ -1958,6 +2030,13 @@ Si vos l' enondez vos pôrîz infecter l' sistinme da vosse.",
 'days' => '$1 djoû{{PLURAL:$1||s}}',
 'ago' => 'i gn a $1',
 
+# Bad image list
+'bad_image_list' => "Li fôrmat est l' shuvant:
+
+Seulmint les intrêyes di djivêye (dj' ô bén, les royes ki cmincèt avou ene sitoele «*») sont acontêyes.
+Li prumî loén d' ene roye doet esse on loyén viè on fitchî k' on vout bloker si eployaedje.
+Les ôtes loyéns dnés sol minme roye sont veyous come des foû-rîle, dj' ô bén les pådjes wice ki l' fitchî pout esse eployî",
+
 # Metadata
 'metadata' => 'Meta-dnêyes',
 'metadata-help' => "Ci fitchî chal a des infôrmåcions di rawete, motoit bén radjoutêyes pa l' aparey foto limerike ou l' sicanrece eployeye po fé l' imådje.
@@ -2182,6 +2261,9 @@ Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
 # Watchlist editor
 'watchlistedit-raw-titles' => 'Tites:',
 
+# Watchlist editing tools
+'watchlisttools-edit' => "Vey et candjî l' djivêye des shuvous",
+
 # Special:Version
 'version' => 'Modêye des programes',
 'version-extensions' => "Rawetes d' astalêyes",
@@ -2219,6 +2301,7 @@ Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
 
 # Special:BlankPage
 'blankpage' => 'Vude pådje',
+'intentionallyblankpage' => 'Cisse pådje ci est vude en esprès.',
 
 # Special:Tags
 'tag-filter' => 'Passete po ls [[Special:Tags|etiketes]]:',
@@ -2235,6 +2318,38 @@ Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
 'compare-rev2' => 'Modêye 2',
 'compare-submit' => 'Comparer',
 
+# New logging system
+'logentry-delete-delete' => "$1 a disfacé l' pådje $3",
+'logentry-delete-restore' => "$1 a rapexhî l' pådje $3",
+'logentry-delete-event' => "$1 a candjî l' veyåvisté d' {{PLURAL:$5| èn evenmint|$5 evenmints}} do djournå åd fwait di $3: $4",
+'logentry-delete-revision' => "$1 a candjî l' veyåvisté d' {{PLURAL:$5| on candjmint|$5 candjmints}} åd fwait di $3: $4",
+'logentry-delete-event-legacy' => "$1 a candjî l' veyåvisté d' evenmints do djournå åd fwait di $3",
+'logentry-delete-revision-legacy' => "$1 a candjî l' veyåvisté des candjmints so $3",
+'logentry-suppress-delete' => "$1 a disfacé l' pådje $3",
+'logentry-suppress-event' => "$1 a catcheymint candjî l' veyåvisté d' {{PLURAL:$5| èn evenmint|$5 evenmints}} do djournå åd fwait di $3: $4",
+'logentry-suppress-revision' => "$1 a catcheymint candjî l' veyåvisté d' {{PLURAL:$5| on candjmint|$5 candjmints}} åd fwait di $3: $4",
+'logentry-suppress-event-legacy' => "$1 a catcheymint candjî l' veyåvisté d' evenmints do djournå åd fwait di $3",
+'logentry-suppress-revision-legacy' => "$1 a catcheymint candjî l' veyåvisté des candjmints so $3",
+'revdelete-content-hid' => 'contnou catchî',
+'revdelete-summary-hid' => 'rascourti catchî',
+'revdelete-uname-hid' => "no d' uzeu catchî",
+'revdelete-content-unhid' => 'contnou discatchî',
+'revdelete-summary-unhid' => 'rascourti discatchî',
+'revdelete-uname-unhid' => "no d' uzeu discatchî",
+'revdelete-restricted' => 'restriccions aplikêyes ås manaedjeus',
+'revdelete-unrestricted' => 'restriccions ås manaedjeus rsaetcheyes',
+'logentry-move-move' => "$1 a displaecî l' pådje $3 viè $4",
+'logentry-move-move-noredirect' => "$1 a displaecî l' pådje $3 viè $4 sins leyî d' redjiblaedje",
+'logentry-move-move_redir' => "$1 a displaecî l' pådje $3 viè $4 pa dzeu d' on redjiblaedje",
+'logentry-move-move_redir-noredirect' => "$1 a displaecî l' pådje $3 viè $4 pa dzeu d' on redjiblaedje et sins leyî d' redjblaedje",
+'logentry-patrol-patrol' => "$1 a marké come patrouyî l' candjmint $4 del pådje $3",
+'logentry-patrol-patrol-auto' => "$1 a marké otomaticmint come patrouyî l' candjmint $4 del pådje $3",
+'logentry-newusers-newusers' => "$1 a-st ahivé on conte d' uzeu",
+'logentry-newusers-create' => "$1 a-st ahivé on conte d' uzeu",
+'logentry-newusers-create2' => "$1 a-st ahivé on conte d' uzeu $3",
+'logentry-newusers-autocreate' => 'li conte $1 a stî ahivé otomaticmint',
+'newuserlog-byemail' => "emilaedje d' on scret",
+
 # Feedback
 'feedback-subject' => 'Sudjet',
 'feedback-message' => 'Messaedje',
@@ -2242,6 +2357,7 @@ Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
 'feedback-submit' => "Evoyî l' vosse",
 'feedback-adding' => 'Vosse messaedje a stî håyné sol pådje...',
 'feedback-error2' => "Aroke : Li candjaedje n' a nén stî",
+'feedback-close' => 'Fwait',
 
 # API errors
 'api-error-badaccess-groups' => "Vos n' avoz nén l' droet d' eberweter des fitchîs so ç' wiki cial",
@@ -2251,11 +2367,13 @@ Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
 'api-error-duplicate-archive-popup-title' => "Ricopyî {{PLURAL:$1|l' fitchî|les fitchîs}} k' {{PLURAL:$1|a stî rsaetchî|k' ont stî rsaetchîs}}",
 'api-error-duplicate-popup-title' => '{{PLURAL:$1|fitchî|fitchîs}} a dobe',
 'api-error-empty-file' => 'Vosse fitchî est vude.',
+'api-error-emptypage' => "C' est nén permetou d' ahiver ene novele pådje et l' leyî vude.",
 'api-error-fetchfileerror' => 'Aroke divintrinne : ene sacwè a fwait berwete cwand on-z a volou rawè vosse fitchî',
 'api-error-file-too-large' => 'Vosse fitchî est trop pezant',
 'api-error-filename-tooshort' => 'Li no do fitchî est trop court',
 'api-error-filetype-banned' => "On n' pout nén eberweter des sfwaits fitchîs",
 'api-error-filetype-missing' => 'I manke li cawete do fitchî',
+'api-error-hookaborted' => 'Li candjmint ki vos vlîz fé a stî espaitchî pa on module di rawete.',
 'api-error-http' => 'Aroke divintrinne : nou raloyaedje å sierveu',
 'api-error-illegal-filename' => "On n' pout nén prinde ci no la pol fitchî",
 'api-error-internal-error' => "Aroke divintrinne : gn a ene sacwè k' a må stî tins d' l' eredjistrumint d' vost eberwetêye",
@@ -2271,7 +2389,7 @@ Acertinez s' i vs plait ki vos vloz vormint rifé cisse pådje ci.",
 'api-error-stashfailed' => 'Aroke divintrinne : li sierveu a pierdou les dnêyes provizweres',
 'api-error-timeout' => "Li sierveu n' a nén respondou dins les tins",
 'api-error-unclassified' => 'Aroke nén cnoxhowe',
-'api-error-unknown-code' => 'Aroke nén cnoxhowe : « $1 »',
+'api-error-unknown-code' => 'Aroke nén cnoxhowe: «$1».',
 'api-error-unknown-error' => "Aroke divintrinne : gn a ene sacwè ki n' a nén stî tins d' l' eberwetaedje",
 'api-error-unknown-warning' => 'Adviertixhmint nén cnoxhou: «$1».',
 'api-error-unknownerror' => 'Aroke nén cnoxhowe: «$1».',
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 e53e580..2d51ec6 100644 (file)
@@ -606,8 +606,8 @@ $2',
 'userlogout' => 'אַרױסלאָגירן',
 'notloggedin' => 'נישט איינגעשריבן',
 'nologin' => "איר האט נישט קיין קאנטע? '''$1'''.",
-'nologinlink' => '×\91×\90ש×\90פֿ×\98 ×\90 קאנטע',
-'createaccount' => '×\91×\90ש×\90פֿ×\98 ×\90 × ×\99×\99ע קאנטע',
+'nologinlink' => 'ש×\90ַפֿ×\9f ×\90Ö· קאנטע',
+'createaccount' => 'ש×\90ַפֿ×\9f ×\90Ö· × ×²Ö·ע קאנטע',
 'gotaccount' => "האסטו שוין א קאנטע? '''$1'''.",
 'gotaccountlink' => 'אַרײַנלאגירן',
 'userlogin-resetlink' => 'פארגעסן אײַערע אַרײַנלאָגירן פרטים?',
@@ -632,7 +632,7 @@ $2',
 'loginsuccess' => "'''איר זענט אַצינד אַרײַנלאָגירט אין {{SITENAME}} ווי \"\$1\".'''",
 'nosuchuser' => 'נישטא קיין באניצער מיטן נאמען  "$1".
 
-ק×\95ק×\98 ×\90×\99×\91ער ×\90×\99×\99ער ×\90×\95×\99ס×\9c×\99×\99×\92, ×\90×\93ער [[Special:UserLogin/signup|×\91×\90ש×\90פֿ×\98 ×\90 × ×\99×\99ע קאנטע]].',
+ק×\95ק×\98 ×\90×\99×\91ער ×\90ײַער ×\90×\95×\99ס×\9c×\99×\99×\92, ×\90×\93ער [[Special:UserLogin/signup|ש×\90ַפֿ×\98 ×\90 × ×²Ö·ע קאנטע]].',
 'nosuchusershort' => 'נישטאָ קיין באַניצער מיטן נאָמען "$1". 
 ביטע באַשטעטיקט דעם אויסלייג.',
 'nouserspecified' => 'איר ברויכט ספעציפֿיצירן א באַניצער-נאָמען.',
@@ -839,7 +839,7 @@ $2
 'newarticletext' => "איר זענט געקומען צו אַ בלאַט וואָס עקזיסטירט נאָך נישט!
 כדי שאַפֿן דעם בלאַט, קלאַפט אַרײַן טעקסט אין דעם קעסטל אונטן (זעט דעם [[{{MediaWiki:Helppage}}|הילף בלאַט]] פֿאַר מער אינפֿארמאַציע).
 אויב איר זענט אַהערגעקומען בטעות, דרוקט דאָס '''Back''' קנעפל אין אײַער בלעטערער.",
-'anontalkpagetext' => "----'''דאס איז א רעדן בלאט פון א אן אנאנימען באַניצער וואס האט נאך נישט באַשאַפֿן קיין קאנטע, אדער באניצט זיך נישט דערמיט. דערוועגן, מוזן מיר זיך באניצן מיט זיין IP אדרעס כדי אים צו אידענטיפיצירן. עס קען זיין אז עטלעכע אנדערע ניצן אויך דעם  IP אדרעס. אויב זענט איר אן אנאנימער באַניצער וואס שפירט אז איר האט באקומען מעלדונגען וואס זענען נישט שייך צו אייך, ביטע [[Special:UserLogin/signup|באַשאַפֿט א קאנטע]] אדער [[Special:UserLogin|טוט זיך אריינלאגירן]] כדי צו פארמיידן דאס אין די עתיד זיך פארמישן מיט אנדערע אנאנימע באַניצערס.'''",
+'anontalkpagetext' => "----'''דאָס איז א רעדן בלאַט פון א אַן אַנאנימען באַניצער וואָס האט נאך נישט געשאַפֿן קיין קאנטע, אדער באניצט זיך נישט דערמיט. דערוועגן, מוזן מיר זיך באניצן מיט זיין IP אדרעס כדי אים צו אידענטיפיצירן. עס קען זיין אז עטלעכע אנדערע ניצן אויך דעם  IP אדרעס. אויב זענט איר אן אנאנימער באַניצער וואס שפירט אז איר האט באקומען מעלדונגען וואס זענען נישט שייך צו אייך, ביטע [[Special:UserLogin/signup|שאַפֿט א קאנטע]] אדער [[Special:UserLogin|טוט זיך אריינלאגירן]] כדי צו פארמיידן דאס אין די עתיד זיך פארמישן מיט אנדערע אַנאנימע באַניצערס.'''",
 'noarticletext' => 'דערווייל איז נישט פאַרהאן קיין שום טעקסט אין דעם בלאט.
 איר קענט [[Special:Search/{{PAGENAME}}|זוכן דעם בלאט טיטל]] אין אנדערע בלעטער,
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} זוכן די רעלעוואנטע לאגביכער],
@@ -933,13 +933,13 @@ $2
 'hiddencategories' => 'דער דאזיגער בלאט געהערט צו {{PLURAL:$1|איין באהאלטענער קאטעגאריע|$1 באהאלטענע קאטעגאריעס}}:',
 'edittools' => '<!-- טעקסט דא וועט געוויזן ווערן אונטער ענדערן און ארויפלאדירן פארעמס. -->',
 'nocreatetitle' => 'בלאט באשאפן באגרעניצט',
-'nocreatetext' => '×\93×\99 ×¡×\99×\99×\98 ×\94×\90×\98 ×\91×\90×\92רענ×\99צ×\98 ×\93×\99 ×\9e×¢×\92×\9c×\99×\9bק×\99×\99×\98 ×¦×\95 ×\91×\90ש×\90פ×\9f × ×\99×\99×¢ ×\91×\9c×¢×\98ער.
\90×\99ר ×§×¢× ×\98 ×¦×\95ר×\99ק×\92×\99×\99×\9f ×\90×\95×\9f ×¢× ×\93ער×\9f ×\93×\99 ×¢×§×\96×\99ס×\98×\99רנ×\93×¢ ×\91×\9c×\90×\98, ×\90×\93ער [[Special:UserLogin|×\9c×\90×\92×\99ר×\98 ×\96×\99×\9a ×\90ר×\99×\99×\9f ×\90×\95×\9f ×\91×\90שאפט א קאנטע]].',
+'nocreatetext' => 'די סייט האט באגרעניצט די מעגליכקייט צו שאפן נייע בלעטער.
\90×\99ר ×§×¢× ×\98 ×¦×\95ר×\99ק×\92×\99×\99×\9f ×\90×\95×\9f ×¢× ×\93ער×\9f ×\93×¢×\9d ×¢×§×\96×\99ס×\98×\99רנ×\93×\9f ×\91×\9c×\90×\98, ×\90×\93ער [[Special:UserLogin|×\9c×\90×\92×\99ר×\98 ×\96×\99×\9a ×\90ר×\99×\99×\9f ×\90×\93ער שאפט א קאנטע]].',
 'nocreate-loggedin' => 'איר זענט נישט ערלויבט צו שאַפֿן נײַע בלעטער.',
 'sectioneditnotsupported-title' => 'רעדאקטירן אפטיילונגען נישט געשטיצט.',
 'sectioneditnotsupported-text' => 'רעדאַקטירן אָפטיילונגען נישט געשטיצט אויף דעם בלאַט',
-'permissionserrors' => 'ער×\9c×\95×\99×\91×¢× ×\99ש×\9f ×¤×¢×\99×\9cערס',
-'permissionserrorstext' => 'איר זענט נישט ערלויבט צו טון דאס, פֿאַר  {{PLURAL:$1|דער פֿאלגנדער סיבה|די פֿאלגנדע סיבות}}:',
+'permissionserrors' => 'ערלויבענישן פעלערס',
+'permissionserrorstext' => 'איר זענט נישט ערלויבט צו טון דאס, פֿאַר {{PLURAL:$1|דער פֿאלגנדער סיבה|די פֿאלגנדע סיבות}}:',
 'permissionserrorstext-withaction' => 'איר זענט נישט ערלויבט צו $2, וועגן {{PLURAL:$1|דער פֿאלגנדער סיבה| די פֿאלגנדע סיבות}}:',
 'recreate-moveddeleted-warn' => "'''ווארענונג: איר שאפט א נייעם בלאט וואס איז שוין איינמאל  געווארן אויסגעמעקט.'''
 
@@ -1062,6 +1062,8 @@ $2
 'revdelete-show-file-submit' => 'יא',
 'revdelete-selected' => "'''{{PLURAL:$2|אויסדערוויילטע ווערסיע| אויסדערוויילטע ווערסיעס}} פון [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1| אויסדערוויילטע לאג אקציע|אויסדערוויילטע לאג אקציעס}}:'''",
+'revdelete-text' => "'''אויסגעמעקטע רעוויזיעס און געשעענישן וועלן בלייבן אין דער בלאט היסטאריע און די לאגביכער, אבער טיילן פון זייער אינהאלט וועט ווערן אומגרייכלעך צום קהל. '''
+אנדערע סיסאפן אויף {{SITENAME}} וועלן נאך האבן צוטריט צום באהאלטענעם אינהאלט און קענען אים צוריקשטעלן דורך דעם זעלבן אייבערפלאך,  אחוץ ווען מען שטעלט נאך באגרענעצונגען.",
 'revdelete-suppress-text' => "באהאלטן זאל בלויז גענוצט ווערן '''נאר''' אין די פאלגענדע פעלער:
 * אויפדעקונג פון פריוואטקייט אינפארמאציע
 * ''היים אדרעסן, טעלעפאן נומערן, אדער סאשעל סעקיורעטי, א.א.וו.:'''",
@@ -1674,6 +1676,8 @@ $1",
 
 # Special:UploadStash
 'uploadstash' => 'אַרויפֿלאָד רעזערוו',
+'uploadstash-clear' => 'אויסמעקן טעקעס פון זאפאס',
+'uploadstash-nofiles' => 'איר האט נישט קיין טעקעס אין זאפאס.',
 'uploadstash-refresh' => 'דערפֿרישן די רשימה פון טעקעס',
 
 # img_auth script messages
@@ -2131,7 +2135,7 @@ $UNWATCHURL
 'deletepage' => 'מעק אויס בלאט',
 'confirm' => 'באַשטעטיגן',
 'excontent' => 'אינהאלט געווען: "$1"',
-'excontentauthor' => "×\90×\99× ×\94×\90×\9c×\98 ×\92×¢×\95×\95×¢×\9f: '$1' (×\90×\95×\9f ×\93ער ×\90×\99×\99נצ×\99×\92ס×\98ער ×\91×\90ר×\91×\99×\99טער איז געווען '[[Special:Contributions/$2|$2]]')",
+'excontentauthor' => "×\90×\99× ×\94×\90×\9c×\98 ×\92×¢×\95×\95×¢×\9f: '$1' (×\90×\95×\9f ×\93ער ×\90×\99×\99נצ×\99×\92ס×\98ער ×\91×\90×\90ר×\91×¢טער איז געווען '[[Special:Contributions/$2|$2]]')",
 'exbeforeblank' => 'אינהאַלט בעפֿאַרן אויסליידיגן איז געווען: "$1"',
 'exblank' => 'בלאט איז געווען ליידיג',
 'delete-confirm' => 'אויסמעקן $1',
@@ -2689,6 +2693,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' => 'אייער באניצער בלאט',
@@ -3122,7 +3128,7 @@ $1',
 
 'exif-contrast-0' => 'נארמאל',
 'exif-contrast-1' => 'ווייך',
-'exif-contrast-2' => 'הארט',
+'exif-contrast-2' => 'האַרט',
 
 'exif-saturation-0' => 'נארמאַל',
 
index c647a61..d3a339a 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' => '查看源代码',
@@ -557,7 +557,7 @@ $1',
 'site-atom-feed' => '$1的Atom',
 'page-rss-feed' => '“$1”的RSS订阅',
 'page-atom-feed' => '“$1”的Atom订阅',
-'red-link-title' => '$1(尚未撰写)',
+'red-link-title' => '$1(页面不存在)',
 'sort-descending' => '降序',
 'sort-ascending' => '升序',
 
@@ -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''",
@@ -662,7 +664,7 @@ $2',
 
 您可以继续以匿名方式使用{{SITENAME}},或再次以相同或不同用户身份[[Special:UserLogin|登录]]。请注意一些页面可能仍然显示您为登录状态,直到您清空您的浏览器缓存为止。",
 'welcomecreation' => '== 欢迎,$1! ==
-您的账户已经建立。别忘了设置您的[[Special:Preferences|{{SITENAME}}个人参数]]。',
+你的账户已创建。请别忘记更改你的[[Special:Preferences|{{SITENAME}}系统设置]]。',
 'yourname' => '用户名:',
 'yourpassword' => '密码:',
 'yourpasswordagain' => '再次输入密码:',
@@ -812,7 +814,7 @@ $2
 'italic_tip' => '斜体文字',
 'link_sample' => '链接文字',
 'link_tip' => '内部链接',
-'extlink_sample' => 'http://www.example.com é\93¾æ\8e¥æ \87é¢\98',
+'extlink_sample' => 'http://www.example.com é\93¾æ\8e¥æ\96\87å­\97',
 'extlink_tip' => '外部链接(加前缀 http://)',
 'headline_sample' => '大标题文字',
 'headline_tip' => '2级标题文字',
@@ -821,7 +823,7 @@ $2
 'image_tip' => '插入文件',
 'media_tip' => '文件链接',
 'sig_tip' => '带时间戳的签名',
-'hr_tip' => '水平线 (小心使用)',
+'hr_tip' => '水平线(请小心使用)',
 
 # Edit pages
 'summary' => '摘要:',
@@ -836,7 +838,7 @@ $2
 'anoneditwarning' => "'''警告:'''您没有登录。
 您的IP地址将记录在此页的编辑历史中。",
 'anonpreviewwarning' => "''您没有登录。保存页面将会把您的IP地址记录在此页的编辑历史中。''",
-'missingsummary' => "'''提示:''' 您没有提供一个编辑摘要。如果您再次单击“{{int:savearticle}}”,您的编辑将不带编辑摘要保存。",
+'missingsummary' => "'''提示:'''你没有提供编辑摘要。如果你再次点击“{{int:savearticle}}”,你的编辑将不带编辑摘要保存。",
 'missingcommenttext' => '请在下面输入评论。',
 'missingcommentheader' => "'''提示:''' 您没有为此评论提供一个标题。如果您再次单击“{{int:savearticle}}”,您的编辑将不带标题保存。",
 'summary-preview' => '摘要预览:',
@@ -883,12 +885,12 @@ $2
 请在创建/编辑该页之前进行核对。',
 'userpage-userdoesnotexist-view' => '用户账户“$1”未曾创建。',
 'blocked-notice-logextract' => '这位用户目前已被封禁。以下提供最近的封禁日志以供参考:',
-'clearyourcache' => "'''注意:在保存以后,您必须绕过浏览器缓存才能看到所作出的改变。'''
-* '''火狐(Firefox)/Safari''':按住“Shift”键再点击“刷新”,或按下“Ctrl-F5”或“Ctrl-R”(Mac上为“⌘-R”)
-* '''谷歌浏览器(Google Chrome)''':按下“Ctrl-Shift-R”(Mac上为“⌘-Shift-R”)
-* '''Internet Explorer''':按住“Ctrl”键再点击“刷新”,或按下“Ctrl-F5”
-* '''Konqueror''':点击“刷新”或按下“F5”
-* '''Opera''':在“工具→首选项”中清除缓存",
+'clearyourcache' => "'''注意:'''保存之后,你必须清除浏览器缓存才能看到做出的更改。
+* '''火狐(Firefox)/Safari:'''按住“Shift”,同时单击“刷新”,或按“Ctrl-F5”或“Ctrl-R”(Mac为“⌘-R”)
+* '''谷歌浏览器(Google Chrome):'''按“Ctrl-Shift-R”(Mac为“⌘-Shift-R”)
+* '''Internet Explorer:'''按住“Ctrl”,同时单击“刷新”,或按“Ctrl-F5”
+* '''Konqueror:'''点击“刷新”或按“F5”
+* '''Opera:'''在“工具→首选项”中清除缓存",
 'usercssyoucanpreview' => "'''提示:''' 在保存前请用“{{int:showpreview}}”按钮来测试您新的 CSS 。",
 'userjsyoucanpreview' => "'''提示:''' 在保存前请用“{{int:showpreview}}”按钮来测试您新的 JavaScript 。",
 'usercsspreview' => "'''记住您只是在预览您的个人 CSS。'''
@@ -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}}}} 删除日志]中可以找到更多的信息。",
@@ -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' => '有建议',
@@ -1217,7 +1219,7 @@ $1",
 'searchall' => '所有',
 'showingresults' => "下面显示从第'''$2'''条结果开始的'''$1'''条结果。",
 'showingresultsnum' => "下面显示从第'''$2'''条结果开始的'''$3'''条结果。",
-'showingresultsheader' => "对'''$4'''ç\9a\84{{PLURAL:$5|第'''$1'''è\87³ç¬¬'''$3'''项ç»\93æ\9e\9c|第'''$1'''è\87³ç¬¬'''$2'''项ç»\93æ\9e\9cï¼\8cå\85±'''$3'''项结果}}",
+'showingresultsheader' => "å\85³äº\8e'''$4'''ç\9a\84{{PLURAL:$5|第'''$1'''æ\9d¡è\87³ç¬¬'''$3'''æ\9d¡ç»\93æ\9e\9c|第'''$1'''æ\9d¡è\87³ç¬¬'''$2'''æ\9d¡ç»\93æ\9e\9cï¼\8cå\85±'''$3'''æ\9d¡结果}}",
 'nonefound' => "'''注意''':只有部分名字空间的页面会被默认搜索。尝试在您的搜索语句前添加“all:”前缀,这样可以搜索全部页面(包括讨论页、模板等),或者亦可使用所需名字空间作为前缀。",
 'search-nonefound' => '找不到和查询相匹配的结果。',
 'powersearch' => '高级搜索',
@@ -1266,7 +1268,7 @@ $1",
 'prefs-resetpass' => '更改密码',
 'prefs-changeemail' => '更改电子邮件地址',
 'prefs-setemail' => '设置电子邮件地址',
-'prefs-email' => '电子邮件选项',
+'prefs-email' => '电子邮件',
 'prefs-rendering' => '显示',
 'saveprefs' => '保存',
 'resetprefs' => '清除未保存的更改',
@@ -1277,14 +1279,14 @@ $1",
 'columns' => '列:',
 'searchresultshead' => '搜索',
 'resultsperpage' => '每页显示链接数:',
-'stub-threshold' => '<a href="#" class="stub">ç\9f­é¡µé\9d¢é\93¾æ\8e¥</a>æ ¼å¼\8fé\97¨æ§\9b值(字节):',
+'stub-threshold' => '<a href="#" class="stub">ç\9f­é¡µé\9d¢é\93¾æ\8e¥</a>æ ¼å¼\8fé\98\88值(字节):',
 'stub-threshold-disabled' => '已停用',
-'recentchangesdays' => '最近更改中的显示日数:',
-'recentchangesdays-max' => '最多$1{{PLURAL:$1|天}}',
+'recentchangesdays' => '最近更改中显示的天数:',
+'recentchangesdays-max' => '最多$1',
 'recentchangescount' => '默认显示的编辑数:',
-'prefs-help-recentchangescount' => 'è¿\99个å\8c\85æ\8b¬æ\9c\80è¿\91æ\9b´æ\94¹ã\80\81页é\9d¢å\8e\86å\8f²ä»¥å\8f\8a日志。',
+'prefs-help-recentchangescount' => '该项å\8c\85å\90«æ\9c\80è¿\91æ\9b´æ\94¹ã\80\81页é\9d¢å\8e\86å\8f²å\92\8c日志。',
 'prefs-help-watchlist-token' => '此栏填写的密钥可以生成您监视列表的RSS源。任何知晓本栏密钥的人都能阅读您的监视列表,因此请使用安全的数值。这里已提供了一个随机生成的数值供您选择:$1',
-'savedprefs' => '您的个人参数设置已经保存。',
+'savedprefs' => '你的系统设置已经保存。',
 'timezonelegend' => '时区:',
 'localtime' => '当地时间:',
 'timezoneuseserverdefault' => '使用wiki默认值($1)',
@@ -1311,7 +1313,7 @@ $1",
 'prefs-custom-css' => '自定义CSS',
 'prefs-custom-js' => '自定义JavaScript',
 'prefs-common-css-js' => '所有皮肤共用的CSS/JavaScript:',
-'prefs-reset-intro' => '您可以利用这个页面去重设您的参数设置到网站默认值。这个动作无法复原。',
+'prefs-reset-intro' => '你可以使用本页面重置你的系统设置为网站默认值。该操作不能撤销。',
 'prefs-emailconfirm-label' => '电子邮件确认:',
 'prefs-textboxsize' => '编辑框大小',
 'youremail' => '电子邮件:',
@@ -1324,22 +1326,20 @@ $1",
 'yourvariant' => '内容语言变种:',
 'prefs-help-variant' => '您希望用于显示本站内容的语种或拼写语系。',
 'yournick' => '新签名:',
-'prefs-help-signature' => '在讨论页上的发言应该使用“<nowiki>~~~~</nowiki>”签名,它会被自动转换成你的签名并附带时间戳。',
+'prefs-help-signature' => '讨论页面上的评论应该使用“<nowiki>~~~~</nowiki>”签名,它会自动转换为你的签名及时间戳。',
 'badsig' => '错误的原始签名。请检查HTML标签。',
-'badsiglength' => '签名过长。
-它的长度不可超过$1个字符。',
+'badsiglength' => '签名过长。请不超过$1个字符。',
 'yourgender' => '性别:',
 'gender-unknown' => '不指明',
 'gender-male' => '男',
 'gender-female' => '女',
-'prefs-help-gender' => '可选:用以软件中的性别指定。此项资料将会被公开。',
-'email' => '电子邮箱',
-'prefs-help-realname' => '真实姓名为选填项。
-如果提供,可用于贡献署名。',
+'prefs-help-gender' => '选填项目。使软件使用正确的性别称呼。该信息将会公开。',
+'email' => '电子邮件',
+'prefs-help-realname' => '真实姓名是选填项目。如果你选择提供它,它将会用于贡献署名。',
 'prefs-help-email' => '电子邮件地址是选填项目。但是在你忘记密码需要重置密码时需要电子邮件地址。',
 'prefs-help-email-others' => '你亦可以选择让其他用户通过你的用户页或讨论页上的链接用电子邮件联系你。其他用户联系你时你的电子邮件地址不会显示。',
-'prefs-help-email-required' => '需要电子邮件地址。',
-'prefs-info' => '基本资料',
+'prefs-help-email-required' => '电子邮件地址是必填项目。',
+'prefs-info' => '基本信息',
 'prefs-i18n' => '界面语言',
 'prefs-signature' => '签名',
 'prefs-dateformat' => '日期格式',
@@ -1356,7 +1356,7 @@ $1",
 
 # User preference: e-mail validation using jQuery
 'email-address-validity-valid' => '电子邮件地址有效',
-'email-address-validity-invalid' => '请提供一个有效的电子邮件地址',
+'email-address-validity-invalid' => '请输入有效的电子邮件地址',
 
 # User rights
 'userrights' => '用户权限管理',
@@ -1368,10 +1368,10 @@ $1",
 'saveusergroups' => '保存用户组',
 'userrights-groupsmember' => '用户组:',
 'userrights-groupsmember-auto' => '自动用户组:',
-'userrights-groups-help' => '可以更改该用户的用户组:
-* é\92©é\80\89的选项框表示该用户属于该用户组。
-* æ\9cªé\92©é\80\89的选项框表示该用户不属于该用户组。
-* æ \87æ\98\9få\8f·ï¼\88*ï¼\89ç\9a\84项ç\9b®è¡¨ç¤ºä½ ä¸\80æ\97¦æ·»å\8a è¯¥ç\94¨æ\88·ç»\84å\90\8eä¸\8dè\83½å\88 é\99¤。',
+'userrights-groups-help' => '可以更改该用户的用户组:
+* é\80\89中的选项框表示该用户属于该用户组。
+* æ\9cªé\80\89中的选项框表示该用户不属于该用户组。
+* æ\98\9få\8f·ï¼\88*ï¼\89表示ä¸\80æ\97¦æ·»å\8a è¯¥ç\94¨æ\88·ç»\84å\90\8eä¸\8dè\83½å\88 é\99¤ï¼\8cå\8f\8dä¹\8b亦ç\84。',
 'userrights-reason' => '原因:',
 'userrights-no-interwiki' => '您并没有权限去编辑在其它wiki上的用户权限。',
 'userrights-nodatabase' => '数据库$1不存在或并非为本地的。',
@@ -1415,60 +1415,60 @@ $1",
 'right-move-subpages' => '移动页面及其子页面',
 'right-move-rootuserpages' => '移动根用户页面',
 'right-movefile' => '移动文件',
-'right-suppressredirect' => '移å\8a¨é¡µé\9d¢æ\97¶ä¸\8då\9c¨æº\90页é\9d¢å\88\9b建重定向',
+'right-suppressredirect' => '移å\8a¨é¡µé\9d¢æ\97¶ä¸\8då\88\9b建æ\9d¥è\87ªæ\9d¥æº\90页é\9d¢ç\9a\84重定向',
 'right-upload' => '上传文件',
-'right-reupload' => '覆盖已有文件',
-'right-reupload-own' => '覆盖由同一位上传的文件',
-'right-reupload-shared' => '于本地无视共用媒体文件库上的文件',
-'right-upload_by_url' => '由一个URL上传文件',
-'right-purge' => '不需要确认之下清除网站快取',
+'right-reupload' => '覆盖现存文件',
+'right-reupload-own' => '覆盖自己上传的文件',
+'right-reupload-shared' => '本地覆盖共享文件库的文件',
+'right-upload_by_url' => 'URL上传文件',
+'right-purge' => '无确认清除页面缓存',
 'right-autoconfirmed' => '编辑半保护页面',
-'right-bot' => 'è§\86为ä¸\80个è\87ªå\8a¨ç¨\8båº\8f',
-'right-nominornewtalk' => '小编辑不引发新信息提示',
-'right-apihighlimits' => '在API查询中使用更高的上限',
-'right-writeapi' => '使用编写的API',
+'right-bot' => '被è§\86为è\87ªå\8a¨è¿\87ç¨\8b',
+'right-nominornewtalk' => '不使小编辑在讨论页面引发新信息提示',
+'right-apihighlimits' => '在API问题中使用更高的限制',
+'right-writeapi' => '使用书写API',
 'right-delete' => '删除页面',
-'right-bigdelete' => '删除大量历史之页面',
-'right-deleterevision' => 'å\88 é\99¤å\8f\8aå\90\8cå\8f\8då\88 é\99¤é¡µé\9d¢ä¸­ç\9a\84æ\8c\87å®\9a修订',
-'right-deletedhistory' => '查看已删除的历史项目,不含关联的文本',
-'right-deletedtext' => '查看已删除修订中之已删除的字以及更改',
-'right-browsearchive' => '搜索已删除之页面',
+'right-bigdelete' => '删除有大型历史的页面',
+'right-deleterevision' => 'å\88 é\99¤å\92\8cæ\81¢å¤\8d页é\9d¢ç\9a\84ç\89¹å®\9aç\89\88æ\9c¬',
+'right-deletedhistory' => '查看被删除的历史条目,无其相关文字',
+'right-deletedtext' => '查看被删除的版本间的被删除的文字和更改',
+'right-browsearchive' => '搜索被删除的页面',
 'right-undelete' => '恢复页面',
-'right-suppressrevision' => '查看和恢复由管理员隐藏的修订',
-'right-suppressionlog' => '查看私人的日志',
-'right-block' => '封锁其他用户防止编辑',
-'right-blockemail' => '封锁用户不可发电邮',
-'right-hideuser' => '封锁用户名,对公众隐藏',
-'right-ipblock-exempt' => 'ç»\95è¿\87IPå°\81é\94\81ã\80\81è\87ªå\8a¨å°\81é\94\81以å\8f\8aè\8c\83å\9b´å°\81é\94\81',
-'right-proxyunbannable' => 'ç»\95è¿\87Proxyç\9a\84è\87ªå\8a¨å°\81é\94\81',
-'right-unblockself' => '自æ\88\91解é\99¤å°\81é\94\81',
-'right-protect' => 'æ\9b´æ\94¹ä¿\9dæ\8a¤ç­\89级以å\8f\8aç¼\96è¾\91保护页面',
+'right-suppressrevision' => '审查和恢复管理员隐藏的版本',
+'right-suppressionlog' => '查看非公开日志',
+'right-block' => '阻止其他用户编辑',
+'right-blockemail' => '阻止用户电邮联系',
+'right-hideuser' => '封禁并隐藏用户名',
+'right-ipblock-exempt' => 'é\81¿å¼\80IPå°\81ç¦\81ã\80\81è\87ªå\8a¨å°\81ç¦\81å\92\8cIP段å°\81ç¦\81',
+'right-proxyunbannable' => 'é\81¿å¼\80代ç\90\86æ\9c\8då\8a¡å\99¨ç\9a\84è\87ªå\8a¨å°\81ç¦\81',
+'right-unblockself' => '自己解å°\81',
+'right-protect' => 'æ\9b´æ\94¹ä¿\9dæ\8a¤çº§å\88«å\92\8cç¼\96è¾\91å\8f\97保护页面',
 'right-editprotected' => '编辑保护页面(无连锁保护)',
 'right-editinterface' => '编辑用户界面',
 'right-editusercssjs' => '编辑其他用户的CSS和JavaScript文件',
 'right-editusercss' => '编辑其他用户的CSS文件',
 'right-edituserjs' => '编辑其他用户的JavaScript文件',
-'right-rollback' => '快速回退最后对特定页面作出的编辑的用户的所有编辑',
-'right-markbotedits' => '将回退编辑标记为机器人编辑动作',
-'right-noratelimit' => '没有使用频率限制',
-'right-import' => '由其它wiki中导入页面',
-'right-importupload' => '由文件上传中导入页面',
-'right-patrol' => '标他人的编辑为已巡查',
-'right-autopatrol' => '将自己的编辑自动标示为已巡查的',
-'right-patrolmarks' => '查看最近巡查标记更改',
-'right-unwatchedpages' => '查看未监视页面列表',
+'right-rollback' => '快速回退最后编辑特定页面的用户的编辑',
+'right-markbotedits' => '标记回退编辑为机器人编辑',
+'right-noratelimit' => '不受速率限制影响',
+'right-import' => '从其他wiki导入页面',
+'right-importupload' => '从文件上传导入页面',
+'right-patrol' => '标他人的编辑为已巡查',
+'right-autopatrol' => '使自己的编辑自动标记为已巡查',
+'right-patrolmarks' => '查看最近更改的巡查标记',
+'right-unwatchedpages' => '查看未受监视页面的列表',
 'right-mergehistory' => '合并页面历史',
 'right-userrights' => '编辑所有用户的权限',
-'right-userrights-interwiki' => 'ç¼\96è¾\91å\9c¨å\85¶å®\83wikiä¸\8a的用户权限',
-'right-siteadmin' => 'é\94\81å®\9aå\92\8c解é\99¤é\94\81å®\9a数据库',
-'right-override-export-depth' => '导出含有五层深度链接页面之页面',
-'right-sendemail' => '发电子邮件给其他用户',
-'right-passwordreset' => '查看重置密码邮件',
+'right-userrights-interwiki' => 'ç¼\96è¾\91å\85¶å®\83wikiç\9a\84ç\94¨æ\88·的用户权限',
+'right-siteadmin' => 'é\94\81å®\9aå\92\8c解é\94\81数据库',
+'right-override-export-depth' => '导出含有链接页面深度为5的页面',
+'right-sendemail' => '电邮联系其他用户',
+'right-passwordreset' => '查看密码重置电子邮件',
 
 # User rights log
 'rightslog' => '用户权限日志',
 'rightslogtext' => '这是用户权限更改的日志。',
-'rightslogentry' => '更改$1的用户组自$2至$3',
+'rightslogentry' => '将$1的用户组由$2更改为$3',
 'rightslogentry-autopromote' => '被自动提升自$2至$3',
 'rightsnone' => '(无)',
 
@@ -1482,32 +1482,32 @@ $1",
 'action-move' => '移动本页',
 'action-move-subpages' => '移动本页及其子页面',
 'action-move-rootuserpages' => '移动根用户页面',
-'action-movefile' => '移动文件',
-'action-upload' => '上传文件',
-'action-reupload' => '覆盖这个现有的文件',
-'action-reupload-shared' => 'è¦\86ç\9b\96å\9c¨å\85±ç\94¨æ\96\87件åº\93ä¸\8aç\9a\84文件',
-'action-upload_by_url' => '由一个URL中上传文件',
+'action-movefile' => '移动文件',
+'action-upload' => '上传文件',
+'action-reupload' => '覆盖文件',
+'action-reupload-shared' => 'è¦\86ç\9b\96å\85±äº«æ\96\87件åº\93ç\9a\84æ\9c¬文件',
+'action-upload_by_url' => '从URL上传本文件',
 'action-writeapi' => '使用书写API',
-'action-delete' => '删除这个页面',
-'action-deleterevision' => '删除这次修订',
-'action-deletedhistory' => '查看这个页面的删除历史',
-'action-browsearchive' => '搜索删除的页面',
-'action-undelete' => '反删除这个页面',
-'action-suppressrevision' => '翻查和恢复这次隐藏修订',
-'action-suppressionlog' => '查看这个私有日志',
-'action-block' => '封锁这位用户的编辑',
-'action-protect' => '更改这个页面的保护等级',
-'action-rollback' => '快速回退最后对特定页面作出的编辑的用户的所有编辑',
-'action-import' => '由另一个wiki导入这个页面',
-'action-importupload' => '由一个文件上传中导入这个页面',
-'action-patrol' => '标示其它的编辑为已巡查的',
-'action-autopatrol' => '将您的编辑标示为已巡查的',
-'action-unwatchedpages' => '查看未监视页面列表',
-'action-mergehistory' => '合并这个页面的历史',
-'action-userrights' => '编辑所有的权限',
-'action-userrights-interwiki' => 'ç¼\96è¾\91å\9c¨å\85¶å®\83wikiä¸\8aç\94¨æ\88·ç\9a\84权限',
-'action-siteadmin' => '锁定和解除锁定数据库',
-'action-sendemail' => '发送电邮',
+'action-delete' => '删除本页',
+'action-deleterevision' => '删除本版本',
+'action-deletedhistory' => '查看本页面被删除的历史',
+'action-browsearchive' => '搜索删除的页面',
+'action-undelete' => '恢复本页',
+'action-suppressrevision' => '审查和恢复本隐藏版本',
+'action-suppressionlog' => '查看本非公开日志',
+'action-block' => '阻止该用户编辑',
+'action-protect' => '更改本页面的保护级别',
+'action-rollback' => '快速回退最后编辑特定页面的用户的编辑',
+'action-import' => '从其他wiki导入本页面',
+'action-importupload' => '从文件上传导入本页面',
+'action-patrol' => '标记他人的编辑为已巡查',
+'action-autopatrol' => '使你的编辑标记为已巡查',
+'action-unwatchedpages' => '查看未受监视页面的列表',
+'action-mergehistory' => '合并页面的历史',
+'action-userrights' => 'ç¼\96è¾\91æ\89\80æ\9c\89ç\94¨æ\88·ç\9a\84æ\9d\83é\99\90',
+'action-userrights-interwiki' => 'ç¼\96è¾\91å\85¶å®\83wikiç\9a\84ç\94¨æ\88·ç\9a\84ç\94¨æ\88·权限',
+'action-siteadmin' => '锁定或解锁数据库',
+'action-sendemail' => '电邮联系其他用户',
 
 # Recent changes
 'nchanges' => '$1次更改',
@@ -1518,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起的新更改',
@@ -1569,10 +1569,9 @@ $1",
 'upload-recreate-warning' => "'''警告:一个相同名字的文件曾经被删除或者移动至别处。'''
 
 这个页面的删除和移动日志在这里提供以便参考:",
-'uploadtext' => "使用下面的表单来上传文件。
-要查看或搜索以前上传的文件,可以进入[[Special:FileList|文件上传列表]],(重新)上传也将在[[Special:Log/upload|上传日志]]中记录,而删除将在[[Special:Log/delete|删除日志]]中记录。
+'uploadtext' => "请使用下面的表格上传文件。要查看或搜索以前上传的文件,可以进入[[Special:FileList|文件上传列表]],(重新)上传也将在[[Special:Log/upload|上传日志]]中记录,而删除将在[[Special:Log/delete|删除日志]]中记录。
 
-要在页面中加入文件,使用以下其中一种形式的链接:
+要在页面中加入文件,请使用一种以下形式的链接:
 * '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></tt>'''使用文件的完整版本
 * '''<tt><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|替换文字]]</nowiki></tt>'''使用放置于左侧的一个框内的200像素宽的图片,同时使用“替换文字”作为描述
 * '''<tt><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></tt>'''直接链接到文件而不显示文件",
@@ -1581,8 +1580,7 @@ $1",
 'upload-prohibited' => '禁止的文件类型:$1。',
 'uploadlog' => '上传日志',
 'uploadlogpage' => '上传日志',
-'uploadlogpagetext' => '以下是一个最近上传文件的列表。
-查看[[Special:NewFiles|新文件画廊]]去看更富图像的总览。',
+'uploadlogpagetext' => '下面是最近的文件上传的列表。图像概览请见[[Special:NewFiles|新文件库]]。',
 'filename' => '文件名',
 'filedesc' => '文件说明',
 'fileuploadsummary' => '摘要:',
@@ -1590,7 +1588,7 @@ $1",
 'filestatus' => '著作权状况:',
 'filesource' => '来源:',
 'uploadedfiles' => '已上传文件',
-'ignorewarning' => '忽略警告并保存文件',
+'ignorewarning' => '忽视警告并继续保存文件',
 'ignorewarnings' => '忽略所有警告',
 'minlength1' => '文件名至少要有一个字符。',
 'illegalfilename' => '文件名“$1”包含在页面标题中不允许使用的字符。请重命名该文件,然后重新上传。',
@@ -1867,7 +1865,7 @@ $1',
 'filedelete-maintenance-title' => '无法删除文件',
 
 # MIME search
-'mimesearch' => 'MIME 搜索',
+'mimesearch' => 'MIME搜索',
 'mimesearch-summary' => '本页面启用文件MIME类型过滤器。输入:内容类型/子类型,如 <tt>image/jpeg</tt>。',
 'mimetype' => 'MIME 类型:',
 'download' => '下载',
@@ -1912,7 +1910,7 @@ $1',
 'statistics-users-active-desc' => '在前$1天中操作过的用户',
 'statistics-mostpopular' => '浏览最多的页面',
 
-'disambiguations' => '链接消歧义页的页面',
+'disambiguations' => '链接消歧义页的页面',
 'disambiguationspage' => 'Template:消歧义',
 'disambiguations-text' => "以下的页面都有到'''消歧义页'''的链接,但它们应该链接到适当的页面。<br />一个页面如果使用了[[MediaWiki:Disambiguationspage]]内的模板,则会被视为消歧义页。",
 
@@ -1953,7 +1951,7 @@ $1',
 'unusedcategories' => '未使用分类',
 'unusedimages' => '未使用图像',
 'popularpages' => '热点页面',
-'wantedcategories' => '待撰分类',
+'wantedcategories' => '需要的分类',
 'wantedpages' => '待撰页面',
 'wantedpages-badtitle' => '在结果组上的无效标题:$1',
 'wantedfiles' => '需要的文件',
@@ -2091,8 +2089,8 @@ $1',
 'listgrouprights' => '用户组权限',
 'listgrouprights-summary' => '以下面是一个在这个wiki中定义出来的用户权限列表,以及它们的访问权。
 更多有关个别权限的细节可以在[[{{MediaWiki:Listgrouprights-helppage}}|这里]]找到。',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">授予的权限</span>
-* <span class="listgrouprights-revoked">已撤除的权限</span>',
+'listgrouprights-key' => '* <span class="listgrouprights-granted">授予的权限</span>
+* <span class="listgrouprights-revoked">被取消的权限</span>',
 'listgrouprights-group' => '用户组',
 'listgrouprights-rights' => '权限',
 'listgrouprights-helppage' => 'Help:用户组权限',
@@ -2111,8 +2109,7 @@ $1',
 'mailnologintext' => '你必须[[Special:UserLogin|登录]]并在你的[[Special:Preferences|系统设置]]中拥有有效的电子邮件地址才能向其他用户发送电子邮件。',
 'emailuser' => '电邮联系',
 'emailpage' => '电邮联系',
-'emailpagetext' => '您可以用下面的表格去寄一封电邮给这位用户。
-您在[[Special:Preferences|您的参数设置]]中所输入的电子邮箱地址将出现在邮件“发件人”一栏中,这样该用户就可以回复您。',
+'emailpagetext' => '你可以使用下面的表格向该用户发送电子邮件信息。你在[[Special:Preferences|你的系统设置]]中输入的电子邮件地址将显示为邮件的“发件人”地址,所以该用户将可以直接回复你。',
 'usermailererror' => 'Mail 对象返回错误:',
 'defemailsubject' => '{{SITENAME}}来自用户“$1”的电子邮件',
 'usermaildisabled' => '用户电邮已停用',
@@ -2239,7 +2236,7 @@ $UNWATCHURL
 ** 作者申请
 ** 侵犯著作权
 ** 破坏行为',
-'delete-edit-reasonlist' => '编辑删除理由',
+'delete-edit-reasonlist' => '编辑删除原因',
 'delete-toobig' => '这个页面有一个十分大量的编辑历史,超过$1次修订。删除此类页面的动作已经被限制,以防止在{{SITENAME}}上的意外扰乱。',
 'delete-warning-toobig' => '这个页面有一个十分大量的编辑历史,超过$1次修订。删除它可能会扰乱{{SITENAME}}的数据库操作;在继续此动作前请小心。',
 
@@ -2306,7 +2303,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' => '限制级别:',
@@ -2326,7 +2323,7 @@ $UNWATCHURL
 'restriction-level-all' => '任何级别',
 
 # Undelete
-'undelete' => '查看删除页面',
+'undelete' => '查看删除页面',
 'undeletepage' => '浏览及恢复被删页面',
 'undeletepagetitle' => "'''以下包含[[:$1]]的已删除之修订版本'''。",
 'viewdeletedpage' => '查看被删页面',
@@ -2393,7 +2390,7 @@ $1',
 'sp-contributions-newbies' => '只显示新账户的贡献',
 'sp-contributions-newbies-sub' => '新手',
 'sp-contributions-newbies-title' => '新手的用户贡献',
-'sp-contributions-blocklog' => '封禁记录',
+'sp-contributions-blocklog' => '封禁日志',
 'sp-contributions-deleted' => '已删除的用户贡献',
 'sp-contributions-uploads' => '上传',
 'sp-contributions-logs' => '日志',
@@ -2412,7 +2409,7 @@ $1',
 'whatlinkshere' => '链入页面',
 'whatlinkshere-title' => '链接至“$1”的页面',
 'whatlinkshere-page' => '页面:',
-'linkshere' => "ä¸\8bå\88\97页面链接至'''[[:$1]]''':",
+'linkshere' => "以ä¸\8b页面链接至'''[[:$1]]''':",
 'nolinkshere' => "没有页面链接至'''[[:$1]]'''。",
 'nolinkshere-ns' => "在所选的名字空间内没有页面链接到'''[[:$1]]'''。",
 'isredirect' => '重定向页',
@@ -2449,7 +2446,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地址',
@@ -2459,8 +2456,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地址',
@@ -2469,7 +2466,7 @@ $1',
 参见[[Special:BlockList|封禁列表]]以复核封禁。',
 'ipb-blockingself' => '您将要封禁自己!确实要这样做吗?',
 'ipb-confirmhideuser' => '您即将在封禁用户的同时启用“隐藏账户”功能。这将从所有列表和日志记录中隐藏这个用户名。您确认这样做吗?',
-'ipb-edit-dropdown' => '编辑封禁理由',
+'ipb-edit-dropdown' => '编辑封禁原因',
 'ipb-unblock-addr' => '解封$1',
 'ipb-unblock' => '解封用户名或IP地址',
 'ipb-blocklist' => '查看现有封禁',
@@ -2482,7 +2479,7 @@ $1',
 'unblocked-id' => '封禁$1已被解除',
 'blocklist' => '被封禁用户',
 'ipblocklist' => '被封禁用户',
-'ipblocklist-legend' => '查找封禁用户',
+'ipblocklist-legend' => '查找封禁用户',
 'blocklist-userblocks' => '隐藏帐户封禁',
 'blocklist-tempblocks' => '隐藏临时封禁',
 'blocklist-addressblocks' => '隐藏单个IP封禁',
@@ -2513,7 +2510,7 @@ $1',
 'autoblocker' => '由于您与“[[User:$1|$1]]”共享一个IP地址而被自动封禁。
 $1被封禁的理由是:“$2”',
 'blocklogpage' => '封禁日志',
-'blocklog-showlog' => '此用户曾被封禁。以下列出封禁日志以供参考:',
+'blocklog-showlog' => '该用户曾被封禁。下面提供封禁日志以供参考:',
 'blocklog-showsuppresslog' => '此用户曾被封禁并隐藏。以下列出隐藏日志以供参考:',
 'blocklogentry' => '封禁[[$1]],终止时间为$2$3',
 'reblock-logentry' => '更改[[$1]]的封禁终止时间 $2 $3',
@@ -2605,16 +2602,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”'''",
@@ -2632,8 +2629,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' => '原因:',
@@ -2656,10 +2653,8 @@ $1被封禁的理由是:“$2”',
 'imageinvalidfilename' => '目标文件名称无效',
 'fix-double-redirects' => '更新所有指向原始标题的重定向',
 'move-leave-redirect' => '保留重定向',
-'protectedpagemovewarning' => "'''警告:'''这个页面已经被保护,只有拥有管理员权限的用户才可以移动它。
-最近的日志在下面提供以便参考:",
-'semiprotectedpagemovewarning' => "'''注意:'''这个页面已经被保护,只有已经注册的用户才可以移动它。
-最近的日志在下面提供以便参考:",
+'protectedpagemovewarning' => "'''警告:'''本页面已被保护,只有拥有管理员权限的用户可以移动。下面提供最后的日志条目以供参考:",
+'semiprotectedpagemovewarning' => "'''注意:'''本页面已被保护,只有注册用户可以移动。下面提供最后的日志条目以供参考:",
 'move-over-sharedrepo' => '== 文件已存在 ==
 [[:$1]]已于共享资源存在,将文件移动到此标题会覆盖共享资源中的文件。',
 'file-exists-sharedrepo' => '同名文件已于共享资源存在。
@@ -2680,9 +2675,9 @@ $1被封禁的理由是:“$2”',
 '''注意:'''由于性能原因,从此表单导出页面的全部历史已被禁用。",
 'exportlistauthors' => '为每个页面包含贡献者的完整列表',
 'export-submit' => '导出',
-'export-addcattext' => '由分类中添加页面:',
+'export-addcattext' => '从分类添加页面:',
 'export-addcat' => '添加',
-'export-addnstext' => '由名字空间中添加页面:',
+'export-addnstext' => '从名字空间添加页面:',
 'export-addns' => '添加',
 'export-download' => '另存为文件',
 'export-templates' => '包含模板',
@@ -2691,7 +2686,7 @@ $1被封禁的理由是:“$2”',
 # Namespace 8 related
 'allmessages' => '系统信息',
 'allmessagesname' => '名称',
-'allmessagesdefault' => '默认消息文本',
+'allmessagesdefault' => '默认信息文字',
 'allmessagescurrent' => '当前消息文本',
 'allmessagestext' => '此处列出了MediaWiki名字空间下的所有有效系统消息。
 如果想为MediaWiki的本地化贡献翻译,请访问[//www.mediawiki.org/wiki/Localisation MediaWiki本地化]和[//translatewiki.net translatewiki.net]。',
@@ -2764,7 +2759,7 @@ $1被封禁的理由是:“$2”',
 # Import log
 'importlogpage' => '导入日志',
 'importlogpagetext' => '由管理员从其他wiki导入的带有编辑历史的页面。',
-'import-logentry-upload' => '通过文件上传导入的[[$1]]',
+'import-logentry-upload' => '以文件上传导入[[$1]]',
 'import-logentry-upload-detail' => '$1个版本',
 'import-logentry-interwiki' => '跨站导入 $1',
 'import-logentry-interwiki-detail' => '来自$2的$1个修订',
@@ -2903,6 +2898,7 @@ $1被封禁的理由是:“$2”',
 'spambot_username' => 'MediaWiki垃圾链接清理器',
 'spam_reverting' => '恢复到不包含链接的最近修订版本$1',
 'spam_blanking' => '消隐所有包含链接至$1的修订',
+'spam_deleting' => '正在删除所有包含至$1的版本',
 
 # Info page
 'pageinfo-title' => '"$1" 的信息',
@@ -3075,7 +3071,7 @@ Variants for Chinese language
 'exif-model' => '相机型号',
 'exif-software' => '使用软件',
 'exif-artist' => '作者',
-'exif-copyright' => '著作权所有',
+'exif-copyright' => '著作权所有',
 'exif-exifversion' => 'Exif版本',
 'exif-flashpixversion' => '支持的Flashpix版本',
 'exif-colorspace' => '色彩空间',
@@ -3611,10 +3607,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' => '解析器扩展标签',
@@ -3633,8 +3629,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
@@ -3657,9 +3653,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' => '登录/注册',
@@ -3815,7 +3810,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',
@@ -3824,14 +3819,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 8644ca7..0533c41 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)',
@@ -496,7 +496,7 @@ $1',
 'site-atom-feed' => '$1的Atom訂閱',
 'page-rss-feed' => '「$1」的RSS訂閱',
 'page-atom-feed' => '「$1」的Atom訂閱',
-'red-link-title' => '$1 (頁面未存在)',
+'red-link-title' => '$1(頁面未存在)',
 'sort-descending' => '倒序排列',
 'sort-ascending' => '升序排序',
 
@@ -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''",
@@ -3838,4 +3840,6 @@ MediaWiki是基於使用目的而加以發佈,然而不負任何擔保責任
 'duration-centuries' => '$1世紀',
 'duration-millennia' => '$1千年',
 
+# Unknown messages
+'lockmanager-fail-svr-acquire' => '無法取得伺服器$1上的鎖。',
 );
index 6e09671..78cae8c 100644 (file)
@@ -1,7 +1,6 @@
 <?php
 /**
- * quick hackjob to fix damages imports on wikisource
- * page records have page_latest wrong
+ * Corrects wrong values in the `page_latest` field in the database.
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
  * http://www.mediawiki.org/
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script to correct wrong values in the `page_latest` field
+ * in the database.
+ *
+ * @ingroup Maintenance
+ */
 class AttachLatest extends Maintenance {
 
        public function __construct() {
index cfcac40..e4063f9 100644 (file)
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script to change the password of a given user.
+ *
+ * @ingroup Maintenance
+ */
 class ChangePassword extends Maintenance {
        public function __construct() {
                parent::__construct();
index d199b6f..ea6c09f 100644 (file)
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script to check classes definitions in the autoloader.
+ *
+ * @ingroup Maintenance
+ */
 class CheckAutoLoader extends Maintenance {
        public function __construct() {
                parent::__construct();
index bac2ff6..f8b8955 100644 (file)
@@ -1,7 +1,6 @@
 <?php
 /**
- * CheckBadRedirects - See if pages marked as being redirects
- * really are.
+ * Check that pages marked as being redirects really are.
  *
  * 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 check that pages marked as being redirects really are.
+ *
+ * @ingroup Maintenance
+ */
 class CheckBadRedirects extends Maintenance {
        public function __construct() {
                parent::__construct();
index 484217d..d7463ec 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Check images to see if they exist, are readable, etc etc
+ * Check images to see if they exist, are readable, etc.
  *
  * 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 check images to see if they exist, are readable, etc.
+ *
+ * @ingroup Maintenance
+ */
 class CheckImages extends Maintenance {
 
        public function __construct() {
index 6137a95..3019b84 100644 (file)
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 
+/**
+ * Maintenance script to check syntax of all PHP files in MediaWiki.
+ *
+ * @ingroup Maintenance
+ */
 class CheckSyntax extends Maintenance {
 
        // List of files we're going to check
index 9b98721..6a9294a 100644 (file)
@@ -1,8 +1,6 @@
 <?php
 /**
- * This script verifies that database usernames are actually valid.
- * An existing usernames can become invalid if User::isValidUserName()
- * is altered or if we change the $wgMaxNameChars
+ * Check that database usernames are actually valid.
  *
  * 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 check that database usernames are actually valid.
+ *
+ * An existing usernames can become invalid if User::isValidUserName()
+ * is altered or if we change the $wgMaxNameChars
+ *
+ * @ingroup Maintenance
+ */
 class CheckUsernames extends Maintenance {
 
        public function __construct() {
index 85ef5c8..275d8fa 100644 (file)
@@ -1,7 +1,6 @@
 <?php
 /**
- * Convert from the old links schema (string->ID) to the new schema (ID->ID)
- * The wiki should be put into read-only mode while this script executes
+ * Convert from the old links schema (string->ID) to the new schema (ID->ID).
  *
  * 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 convert from the old links schema (string->ID)
+ * to the new schema (ID->ID).
+ *
+ * The wiki should be put into read-only mode while this script executes.
+ *
+ * @ingroup Maintenance
+ */
 class ConvertLinks extends Maintenance {
        private $logPerformance;
 
        public function __construct() {
                parent::__construct();
-               $this->mDescription = "Convert from the old links schema (string->ID) to the new schema (ID->ID)
+               $this->mDescription = "Convert from the old links schema (string->ID) to the new schema (ID->ID).
 The wiki should be put into read-only mode while this script executes";
 
                $this->addArg( 'logperformance', "Log performance to perfLogFilename.", false );
index da6ff9b..e666b65 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Do each user sequentially, since accounts can't be deleted
+ * Convert user options to the new `user_properties` 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' );
 
+/**
+ * Maintenance script to convert user options to the new `user_properties` table.
+ *
+ * Do each user sequentially, since accounts can't be deleted
+ *
+ * @ingroup Maintenance
+ */
 class ConvertUserOptions extends Maintenance {
 
        private $mConversionCount = 0;
index 314318f..530b5ca 100644 (file)
@@ -1,12 +1,6 @@
 <?php
 /**
- * Copy all files in one container of one backend to another.
- *
- * This can also be used to re-shard the files for one backend using the
- * config of second backend. The second backend should have the same config
- * as the first, except for it having a different name and different sharding
- * configuration. The backend should be made read-only while this runs.
- * After this script finishes, the old files in the containers can be deleted.
+ * 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
  * 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' );
 
+/**
+ * Copy all files in one container of one backend to another.
+ *
+ * This can also be used to re-shard the files for one backend using the
+ * config of second backend. The second backend should have the same config
+ * as the first, except for it having a different name and different sharding
+ * configuration. The backend should be made read-only while this runs.
+ * After this script finishes, the old files in the containers can be deleted.
+ *
+ * @ingroup Maintenance
+ */
 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 0d7de9a..3f328f9 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Maintenance script to create an account and grant it administrator rights
+ * Creates an account and grant it administrator rights.
  *
  * 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 create an account and grant it administrator rights.
+ *
+ * @ingroup Maintenance
+ */
 class CreateAndPromote extends Maintenance {
 
        public function __construct() {
@@ -76,4 +81,4 @@ class CreateAndPromote extends Maintenance {
 }
 
 $maintClass = "CreateAndPromote";
-require_once( RUN_MAINTENANCE_IF_MAIN );
\ No newline at end of file
+require_once( RUN_MAINTENANCE_IF_MAIN );
index 2eacb73..728997d 100644 (file)
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  * @ingroup Maintenance
  */
 
+/**
+ * Core functions for deleteArchivedFiles.php
+ *
+ * @ingroup Maintenance
+ */
 class DeleteArchivedFilesImplementation {
        static public function doDelete( $output, $force ) {
                # Data should come off the master, wrapped in a transaction
@@ -62,4 +68,4 @@ class DeleteArchivedFilesImplementation {
                $dbw->commit( __METHOD__ );
                $output->handleOutput( "Done! [$count file(s)]\n" );
        }
-}
\ No newline at end of file
+}
index 6067c80..8709ee8 100644 (file)
@@ -1,8 +1,9 @@
 <?php
-
 /**
  * Delete archived (non-current) files from the database
  *
+ * Based on deleteOldRevisions.php by Rob Church.
+ *
  * 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
  * @author Aaron Schulz
- * Based on deleteOldRevisions.php by Rob Church
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 require_once( dirname( __FILE__ ) . '/deleteArchivedFiles.inc' );
 
+/**
+ * Maintenance script to delete archived (non-current) files from the database.
+ *
+ * @ingroup Maintenance
+ */
 class DeleteArchivedFiles extends Maintenance {
        public function __construct() {
                parent::__construct();
index 0faa0ab..353661a 100644 (file)
@@ -1,8 +1,9 @@
 <?php
-
 /**
  * Delete archived (deleted from public) revisions from the database
  *
+ * Shamelessly stolen from deleteOldRevisions.php by Rob Church :)
+ *
  * 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
  * @author Aaron Schulz
- * Shamelessly stolen from deleteOldRevisions.php by Rob Church :)
  */
 
 require_once( dirname( __FILE__ ) . '/Maintenance.php' );
 require_once( dirname( __FILE__ ) . '/deleteArchivedRevisions.inc' );
 
+/**
+ * Maintenance script to delete archived (deleted from public) revisions
+ * from the database.
+ *
+ * @ingroup Maintenance
+ */
 class DeleteArchivedRevisions 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 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 fbdef20..befff60 100644 (file)
@@ -412,6 +412,8 @@ $wgMessageStructure = array(
                'filereadonlyerror',
                'invalidtitle-knownnamespace',
                'invalidtitle-unknownnamespace',
+               'exception-nologin',
+               'exception-nologin-text',
        ),
        'virus' => array(
                'virus-badscanner',
@@ -1407,6 +1409,7 @@ $wgMessageStructure = array(
                'lockmanager-fail-deletelock',
                'lockmanager-fail-acquirelock',
                'lockmanager-fail-openlock',
+               'lockmanager-fail-acquirelock',
                'lockmanager-fail-releaselock',
                'lockmanager-fail-db-bucket',
                'lockmanager-fail-db-release',
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 fb6f2ff..0e85050 100644 (file)
@@ -655,21 +655,9 @@ return array(
        'mediawiki.action.view.rightClickEdit' => array(
                'scripts' => 'resources/mediawiki.action/mediawiki.action.view.rightClickEdit.js',
        ),
+       // Alias for backwards compatibility
        'mediawiki.action.watch.ajax' => array(
-               'scripts' => 'resources/mediawiki.action/mediawiki.action.watch.ajax.js',
-               'dependencies' => array(
-                       'mediawiki.api.watch',
-                       'mediawiki.util',
-               ),
-               'messages' => array(
-                       'watch',
-                       'unwatch',
-                       'watching',
-                       'unwatching',
-                       'tooltip-ca-watch',
-                       'tooltip-ca-unwatch',
-                       'watcherrortext',
-               ),
+               'dependencies' => 'mediawiki.page.watch.ajax'
        ),
 
        /* MediaWiki Language */
@@ -708,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',
@@ -770,7 +755,23 @@ return array(
                ),
                'position' => 'top',
        ),
-
+       'mediawiki.page.watch.ajax' => array(
+               'scripts' => 'resources/mediawiki.page/mediawiki.page.watch.ajax.js',
+               'dependencies' => array(
+                       'mediawiki.page.startup',
+                       'mediawiki.api.watch',
+                       'mediawiki.util'
+               ),
+               'messages' => array(
+                       'watch',
+                       'unwatch',
+                       'watching',
+                       'unwatching',
+                       'tooltip-ca-watch',
+                       'tooltip-ca-unwatch',
+                       'watcherrortext',
+               ),
+       ),
 
        /* MediaWiki Special pages */
 
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 5b1af33..5684a44 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * QUnit v1.7.0 - A JavaScript Unit Testing Framework
+ * QUnit v1.8.0 - A JavaScript Unit Testing Framework
  *
  * http://docs.jquery.com/QUnit
  *
index 7805abc..c1570c2 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * QUnit v1.7.0 - A JavaScript Unit Testing Framework
+ * QUnit v1.8.0 - A JavaScript Unit Testing Framework
  *
  * http://docs.jquery.com/QUnit
  *
@@ -12,6 +12,7 @@
 
 var QUnit,
        config,
+       onErrorFnPrev,
        testId = 0,
        fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""),
        toString = Object.prototype.toString,
@@ -256,6 +257,8 @@ Test.prototype = {
                });
 
                QUnit.reset();
+
+               config.current = undefined;
        },
 
        queue: function() {
@@ -469,11 +472,13 @@ QUnit.assert = {
                        expected = null;
                }
 
+               config.current.ignoreGlobalErrors = true;
                try {
                        block.call( config.current.testEnvironment );
                } catch (e) {
                        actual = e;
                }
+               config.current.ignoreGlobalErrors = false;
 
                if ( actual ) {
                        // we don't want to validate thrown error
@@ -576,7 +581,13 @@ config = {
        }
 
        QUnit.urlParams = urlParams;
+
+       // String search anywhere in moduleName+testName
        config.filter = urlParams.filter;
+
+       // Exact match of the module name
+       config.module = urlParams.module;
+
        config.testNumber = parseInt( urlParams.testNumber, 10 ) || null;
 
        // Figure out if we're running the tests from a server or not
@@ -760,6 +771,10 @@ extend( QUnit, {
        },
 
        pushFailure: function( message, source ) {
+               if ( !config.current ) {
+                       throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) );
+               }
+
                var output,
                        details = {
                                result: false,
@@ -933,15 +948,36 @@ QUnit.load = function() {
 
 addEvent( window, "load", QUnit.load );
 
-// addEvent(window, "error" ) gives us a useless event object
-window.onerror = function( message, file, line ) {
-       if ( QUnit.config.current ) {
-               QUnit.pushFailure( message, file + ":" + line );
-       } else {
-               QUnit.test( "global failure", function() {
-                       QUnit.pushFailure( message, file + ":" + line );
-               });
+// `onErrorFnPrev` initialized at top of scope
+// Preserve other handlers
+onErrorFnPrev = window.onerror;
+
+// Cover uncaught exceptions
+// Returning true will surpress the default browser handler,
+// returning false will let it run.
+window.onerror = function ( error, filePath, linerNr ) {
+       var ret = false;
+       if ( onErrorFnPrev ) {
+               ret = onErrorFnPrev( error, filePath, linerNr );
        }
+
+       // Treat return value as window.onerror itself does,
+       // Only do our handling if not surpressed.
+       if ( ret !== true ) {
+               if ( QUnit.config.current ) {
+                       if ( QUnit.config.current.ignoreGlobalErrors ) {
+                               return true;
+                       }
+                       QUnit.pushFailure( error, filePath + ":" + linerNr );
+               } else {
+                       QUnit.test( "global failure", function() {
+                               QUnit.pushFailure( error, filePath + ":" + linerNr );
+                       });
+               }
+               return false;
+       }
+
+       return ret;
 };
 
 function done() {
@@ -1011,15 +1047,21 @@ function done() {
        });
 }
 
+/** @return Boolean: true if this test should be ran */
 function validTest( test ) {
        var include,
                filter = config.filter && config.filter.toLowerCase(),
+               module = config.module,
                fullName = (test.module + ": " + test.testName).toLowerCase();
 
        if ( config.testNumber ) {
                return test.testNumber === config.testNumber;
        }
 
+       if ( module && test.module !== module ) {
+               return false;
+       }
+
        if ( !filter ) {
                return true;
        }
diff --git a/resources/mediawiki.action/mediawiki.action.watch.ajax.js b/resources/mediawiki.action/mediawiki.action.watch.ajax.js
deleted file mode 100644 (file)
index 090e4c3..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-/**
- * Animate watch/unwatch links to use asynchronous API requests to
- * watch pages, rather than navigating to a different URI.
- */
-( function ( $, mw, undefined ) {
-
-       /**
-        * The name of the page to watch or unwatch.
-        */
-       var title = mw.config.get( 'wgRelevantPageName', mw.config.get( 'wgPageName' ) );
-
-       /**
-        * Update the link text, link href attribute and (if applicable)
-        * "loading" class.
-        *
-        * @param $link {jQuery} Anchor tag of (un)watch link.
-        * @param action {String} One of 'watch', 'unwatch'.
-        * @param state {String} [optional] 'idle' or 'loading'. Default is 'idle'.
-        */
-       function updateWatchLink( $link, action, state ) {
-               var accesskeyTip, msgKey, $li;
-
-               // message keys 'watch', 'watching', 'unwatch' or 'unwatching'.
-               msgKey = state === 'loading' ? action + 'ing' : action;
-               accesskeyTip = $link.attr( 'title' ).match( mw.util.tooltipAccessKeyRegexp );
-               $li = $link.closest( 'li' );
-
-               $link
-                       .text( mw.msg( msgKey ) )
-                       .attr( 'title', mw.msg( 'tooltip-ca-' + action ) +
-                               ( accesskeyTip ? ' ' + accesskeyTip[0] : '' )
-                       )
-                       .attr( 'href', mw.util.wikiScript() + '?' + $.param({
-                                       title: title,
-                                       action: action
-                               })
-                       );
-
-               // Special case for vector icon
-               if ( $li.hasClass( 'icon' ) ) {
-                       if ( state === 'loading' ) {
-                               $link.addClass( 'loading' );
-                       } else {
-                               $link.removeClass( 'loading' );
-                       }
-               }
-       }
-
-       /**
-        * @todo This should be moved somewhere more accessible.
-        * @param url {String}
-        * @return {String} The extracted action, defaults to 'view'.
-        */
-       function mwUriGetAction( url ) {
-               var action, actionPaths, key, i, m, parts;
-
-               actionPaths = mw.config.get( 'wgActionPaths' );
-
-               // @todo: Does MediaWiki give action path or query param
-               // precedence ? If the former, move this to the bottom
-               action = mw.util.getParamValue( 'action', url );
-               if ( action !== null ) {
-                       return action;
-               }
-
-               for ( key in actionPaths ) {
-                       if ( actionPaths.hasOwnProperty( key ) ) {
-                               parts = actionPaths[key].split( '$1' );
-                               for ( i = 0; i < parts.length; i += 1 ) {
-                                       parts[i] = $.escapeRE( parts[i] );
-                               }
-                               m = new RegExp( parts.join( '(.+)' ) ).exec( url );
-                               if ( m && m[1] ) {
-                                       return key;
-                               }
-
-                       }
-               }
-
-               return 'view';
-       }
-
-       $( document ).ready( function () {
-               var $links = $( '.mw-watchlink a, a.mw-watchlink, ' +
-                       '#ca-watch a, #ca-unwatch a, #mw-unwatch-link1, ' +
-                       '#mw-unwatch-link2, #mw-watch-link2, #mw-watch-link1' );
-
-               // Allowing people to add inline animated links is a little scary
-               $links = $links.filter( ':not( #bodyContent *, #content * )' );
-
-               $links.click( function ( e ) {
-                       var action, api, $link;
-
-                       action = mwUriGetAction( this.href );
-
-                       if ( action !== 'watch' && action !== 'unwatch' ) {
-                               // Could not extract target action from link url,
-                               // let native browsing handle it further
-                               return true;
-                       }
-                       e.preventDefault();
-                       e.stopPropagation();
-
-                       $link = $( this );
-
-                       updateWatchLink( $link, action, 'loading' );
-
-                       api = new mw.Api();
-                       api[action](
-                               title,
-                               // Success
-                               function ( watchResponse ) {
-                                       var $li, otherAction;
-
-                                       otherAction = action === 'watch' ? 'unwatch' : 'watch';
-                                       $li = $link.closest( 'li' );
-
-                                       mw.util.jsMessage( watchResponse.message, 'ajaxwatch' );
-
-                                       // Set link to opposite
-                                       updateWatchLink( $link, otherAction );
-
-                                       // Most common ID style
-                                       if ( $li.prop( 'id' ) === 'ca-' + otherAction || $li.prop( 'id' ) === 'ca-' + action ) {
-                                               $li.prop( 'id', 'ca-' + otherAction );
-                                       }
-
-                                       // Bug 12395 - update the watch checkbox on edit pages when the
-                                       // page is watched or unwatched via the tab.
-                                       if ( watchResponse.watched !== undefined ) {
-                                               $( '#wpWatchthis' ).prop( 'checked', true );
-                                       } else {
-                                               $( '#wpWatchthis' ).removeProp( 'checked' );
-                                       }
-                               },
-                               // Error
-                               function () {
-                                       var cleanTitle, html, link;
-
-                                       // Reset link to non-loading mode
-                                       updateWatchLink( $link, action );
-
-                                       // Format error message
-                                       cleanTitle = title.replace( /_/g, ' ' );
-                                       link = mw.html.element(
-                                               'a', {
-                                                       href: mw.util.wikiGetlink( title ),
-                                                       title: cleanTitle
-                                               }, cleanTitle
-                                       );
-                                       html = mw.msg( 'watcherrortext', link );
-
-                                       // Report to user about the error
-                                       mw.util.jsMessage( html, 'ajaxwatch' );
-
-                               }
-                       );
-               });
-       });
-
-}( jQuery, mediaWiki ) );
index 225093b..74306d5 100644 (file)
                 * @return {jqXHR}
                 */
                ajax: function( parameters, ajaxOptions ) {
+                       var token;
                        parameters = $.extend( {}, this.defaults.parameters, parameters );
                        ajaxOptions = $.extend( {}, this.defaults.ajax, ajaxOptions );
 
+                       // Ensure that token parameter is last (per [[mw:API:Edit#Token]]).
+                       if ( parameters.token ) {
+                               token = parameters.token;
+                               delete parameters.token;
+                       }
                        // Some deployed MediaWiki >= 1.17 forbid periods in URLs, due to an IE XSS bug
                        // So let's escape them here. See bug #28235
                        // This works because jQuery accepts data as a query string or as an Object
                        ajaxOptions.data = $.param( parameters ).replace( /\./g, '%2E' );
-
+                       // If we extracted a token parameter, add it back in.
+                       if ( token ) {
+                               ajaxOptions.data += '&token=' + encodeURIComponent( token );
+                       }
                        ajaxOptions.error = function( xhr, textStatus, exception ) {
                                ajaxOptions.err( 'http', {
                                        xhr: xhr,
index 7d9e114..d21df7e 100644 (file)
@@ -22,17 +22,3 @@ mediaWiki.language.convertPlural = function( count, forms ) {
        return forms[5];
 };
 
-mediaWiki.language.digitTransformTable = {
-    '0': '٠', // &#x0660;
-    '1': '١', // &#x0661;
-    '2': '٢', // &#x0662;
-    '3': '٣', // &#x0663;
-    '4': '٤', // &#x0664;
-    '5': '٥', // &#x0665;
-    '6': '٦', // &#x0666;
-    '7': '٧', // &#x0667;
-    '8': '٨', // &#x0668;
-    '9': '٩', // &#x0669;
-    '.': '٫', // &#x066b; wrong table ?
-    ',': '٬' // &#x066c;
-};
diff --git a/resources/mediawiki.language/languages/nl.js b/resources/mediawiki.language/languages/nl.js
deleted file mode 100644 (file)
index a2b22f4..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Dutch (Nederlands) language functions
- */
-
-mediaWiki.language.digitTransformTable = {
-    '.' : ',',
-    ',' : '.'
-};
diff --git a/resources/mediawiki.language/languages/pt-br.js b/resources/mediawiki.language/languages/pt-br.js
deleted file mode 100644 (file)
index 2457e24..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Brazilian Portugese (Portuguêsi do Brasil) language functions
- */
-
-mediaWiki.language.digitTransformTable = {
-    '.' : ',',
-    ',' : ' '
-};
diff --git a/resources/mediawiki.language/languages/pt.js b/resources/mediawiki.language/languages/pt.js
deleted file mode 100644 (file)
index 1b8fc72..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
- * Portugese language functions
- */
-
-mediaWiki.language.digitTransformTable = {
-    '.' : ',',
-    ',' : ' '
-};
index 87a6a8f..78a6309 100644 (file)
@@ -26,7 +26,7 @@ var language = {
                        }
                        // Restore the count into a Number ( if it got converted earlier )
                        var count = mw.language.convertNumber( template.title, true );
-                       // Do convertPlural call 
+                       // Do convertPlural call
                        return mw.language.convertPlural( parseInt( count, 10 ), template.parameters );
                }
                // Could not process plural return first form or nothing
@@ -99,7 +99,7 @@ var language = {
         * Provides an alternative text depending on specified gender.
         * Usage {{gender:[gender|user object]|masculine|feminine|neutral}}.
         * If second or third parameter are not specified, masculine is used.
-        * 
+        *
         * These details may be overriden per language.
         *
         * @param gender string male, female, or anything else for neutral.
@@ -132,7 +132,7 @@ var language = {
         * @return {String}
         */
        convertGrammar: function ( word, form ) {
-               var grammarForms = mw.language.getData( mw.config.get( 'wgContentLanguage' ), 'grammarForms' );
+               var grammarForms = mw.language.getData( mw.config.get( 'wgUserLanguage' ), 'grammarForms' );
                if ( grammarForms && grammarForms[form] ) {
                        return grammarForms[form][word] || word;
                }
@@ -140,7 +140,7 @@ var language = {
        },
 
        // Digit Transform Table, populated by language classes where applicable
-       'digitTransformTable': null
+       'digitTransformTable': mw.language.getData( mw.config.get( 'wgUserLanguage' ), 'digitTransformTable' )
 };
 
 $.extend( mw.language, language );
diff --git a/resources/mediawiki.page/mediawiki.page.watch.ajax.js b/resources/mediawiki.page/mediawiki.page.watch.ajax.js
new file mode 100644 (file)
index 0000000..d3f8433
--- /dev/null
@@ -0,0 +1,174 @@
+/**
+ * Animate watch/unwatch links to use asynchronous API requests to
+ * watch pages, rather than navigating to a different URI.
+ */
+( function ( $, mw, undefined ) {
+       /**
+        * The name of the page to watch or unwatch.
+        */
+       var title = mw.config.get( 'wgRelevantPageName', mw.config.get( 'wgPageName' ) );
+
+       // Expose local methods
+       mw.page.watch = {
+               'updateWatchLink': updateWatchLink
+       };
+       /**
+        * Update the link text, link href attribute and (if applicable)
+        * "loading" class.
+        *
+        * @param $link {jQuery} Anchor tag of (un)watch link.
+        * @param action {String} One of 'watch', 'unwatch'.
+        * @param state {String} [optional] 'idle' or 'loading'. Default is 'idle'.
+        */
+       function updateWatchLink( $link, action, state ) {
+               var accesskeyTip, msgKey, $li, otherAction;
+
+               // message keys 'watch', 'watching', 'unwatch' or 'unwatching'.
+               msgKey = state === 'loading' ? action + 'ing' : action;
+               otherAction = action === 'watch' ? 'unwatch' : 'watch';
+               accesskeyTip = $link.attr( 'title' ).match( mw.util.tooltipAccessKeyRegexp );
+               $li = $link.closest( 'li' );
+               /**
+                * Trigger a 'watchpage' event for this List item.
+                * Announce the otherAction value as the first param.
+                * Used to monitor the state of watch link.
+                * TODO: Revise when system wide hooks are implemented
+                */
+               if( state === undefined ) {
+                       $li.trigger( 'watchpage.mw', otherAction );
+               }
+
+               $link
+                       .text( mw.msg( msgKey ) )
+                       .attr( 'title', mw.msg( 'tooltip-ca-' + action ) +
+                               ( accesskeyTip ? ' ' + accesskeyTip[0] : '' )
+                       )
+                       .attr( 'href', mw.util.wikiScript() + '?' + $.param({
+                                       title: title,
+                                       action: action
+                               })
+                       );
+
+               // Most common ID style
+               if ( $li.prop( 'id' ) === 'ca-' + otherAction ) {
+                       $li.prop( 'id', 'ca-' + action );
+               }
+
+               // Special case for vector icon
+               if ( $li.hasClass( 'icon' ) ) {
+                       if ( state === 'loading' ) {
+                               $link.addClass( 'loading' );
+                       } else {
+                               $link.removeClass( 'loading' );
+                       }
+               }
+       }
+
+       /**
+        * @todo This should be moved somewhere more accessible.
+        * @param url {String}
+        * @return {String} The extracted action, defaults to 'view'.
+        */
+       function mwUriGetAction( url ) {
+               var action, actionPaths, key, i, m, parts;
+
+               actionPaths = mw.config.get( 'wgActionPaths' );
+
+               // @todo: Does MediaWiki give action path or query param
+               // precedence ? If the former, move this to the bottom
+               action = mw.util.getParamValue( 'action', url );
+               if ( action !== null ) {
+                       return action;
+               }
+
+               for ( key in actionPaths ) {
+                       if ( actionPaths.hasOwnProperty( key ) ) {
+                               parts = actionPaths[key].split( '$1' );
+                               for ( i = 0; i < parts.length; i += 1 ) {
+                                       parts[i] = $.escapeRE( parts[i] );
+                               }
+                               m = new RegExp( parts.join( '(.+)' ) ).exec( url );
+                               if ( m && m[1] ) {
+                                       return key;
+                               }
+
+                       }
+               }
+
+               return 'view';
+       }
+
+       $( document ).ready( function () {
+               var $links = $( '.mw-watchlink a, a.mw-watchlink, ' +
+                       '#ca-watch a, #ca-unwatch a, #mw-unwatch-link1, ' +
+                       '#mw-unwatch-link2, #mw-watch-link2, #mw-watch-link1' );
+
+               // Allowing people to add inline animated links is a little scary
+               $links = $links.filter( ':not( #bodyContent *, #content * )' );
+
+               $links.click( function ( e ) {
+                       var action, api, $link;
+
+                       action = mwUriGetAction( this.href );
+
+                       if ( action !== 'watch' && action !== 'unwatch' ) {
+                               // Could not extract target action from link url,
+                               // let native browsing handle it further
+                               return true;
+                       }
+                       e.preventDefault();
+                       e.stopPropagation();
+
+                       $link = $( this );
+
+                       updateWatchLink( $link, action, 'loading' );
+
+                       api = new mw.Api();
+                       api[action](
+                               title,
+                               // Success
+                               function ( watchResponse ) {
+                                       var $li, otherAction;
+
+                                       otherAction = action === 'watch' ? 'unwatch' : 'watch';
+                                       $li = $link.closest( 'li' );
+
+                                       mw.util.jsMessage( watchResponse.message, 'ajaxwatch' );
+
+                                       // Set link to opposite
+                                       updateWatchLink( $link, otherAction );
+
+                                       // Bug 12395 - update the watch checkbox on edit pages when the
+                                       // page is watched or unwatched via the tab.
+                                       if ( watchResponse.watched !== undefined ) {
+                                               $( '#wpWatchthis' ).prop( 'checked', true );
+                                       } else {
+                                               $( '#wpWatchthis' ).removeProp( 'checked' );
+                                       }
+                               },
+                               // Error
+                               function () {
+                                       var cleanTitle, html, link;
+
+                                       // Reset link to non-loading mode
+                                       updateWatchLink( $link, action );
+
+                                       // Format error message
+                                       cleanTitle = title.replace( /_/g, ' ' );
+                                       link = mw.html.element(
+                                               'a', {
+                                                       href: mw.util.wikiGetlink( title ),
+                                                       title: cleanTitle
+                                               }, cleanTitle
+                                       );
+                                       html = mw.msg( 'watcherrortext', link );
+
+                                       // Report to user about the error
+                                       mw.util.jsMessage( html, 'ajaxwatch' );
+
+                               }
+                       );
+               });
+       });
+
+}( jQuery, mediaWiki ) );
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 66309bb..f29a9bd 100644 (file)
@@ -626,17 +626,23 @@ var mw = ( function ( $, undefined ) {
 
                        /**
                         * Log a message to window.console, if possible. Useful to force logging of some
-                        * errors that are otherwise hard to detect, even if mw.log is not available. (I.e.,
-                        * this logs also if not in debug mode.)
+                        * errors that are otherwise hard to detect (I.e., this logs also in production mode).
+                        * Gets console references in each invocation, so that delayed debugging tools work
+                        * fine. No need for optimization here, which would only result in losing logs.
                         *
-                        * @param msg String text for the log entry
-                        * @param e   Error [optional] to also log.
+                        * @param msg String text for the log entry.
+                        * @param e Error [optional] to also log.
                         */
                        function log( msg, e ) {
-                               if ( window.console && typeof window.console.log === 'function' ) {
+                               var console = window.console;
+                               if ( console && console.log ) {
                                        console.log( msg );
-                                       if ( e ) {
-                                               console.log( 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 );
                                        }
                                }
                        }
@@ -693,7 +699,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 );
                                                                }
                                                        }
                                                }
index 8416393..54dada3 100644 (file)
@@ -25,9 +25,6 @@
 if( !defined( 'MEDIAWIKI' ) )
        die( -1 );
 
-/** */
-require_once( dirname(__FILE__) . '/MonoBook.php' );
-
 /**
  * Inherit main code from SkinTemplate, set the CSS and template filter.
  * @ingroup Skins
index efcf1de..1656524 100644 (file)
@@ -25,8 +25,6 @@
 if( !defined( 'MEDIAWIKI' ) )
        die( -1 );
 
-require( dirname(__FILE__) . '/MonoBook.php' );
-
 /**
  * Inherit main code from SkinTemplate, set the CSS and template filter.
  * @todo document
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 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 7633118..f0ec2e5 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
 ###
@@ -1269,6 +1919,8 @@ Normal text.
 '''This year''''s election ''should'' beat '''last year''''s.
 
 ''Tom'''s car is bigger than ''Susan'''s.
+
+Plain ''italic'''s plain
 !! result
 <p><i><b>Bold italic text </b>with bold deactivated<b> in between.</b></i>
 </p><p><b><i>Bold italic text </i>with italic deactivated<i> in between.</i></b>
@@ -1279,6 +1931,7 @@ Normal text.
 </p><p>Normal text.
 </p><p><b>This year'</b>s election <i>should</i> beat <b>last year'</b>s.
 </p><p><i>Tom<b>s car is bigger than </b></i><b>Susan</b>s.
+</p><p>Plain <i>italic'</i>s plain
 </p>
 !! end
 
@@ -2237,6 +2890,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)
@@ -3634,15 +4317,15 @@ pst
 [[Bar:Article(context)|]]
 [[:Bar:Article(context)|]]
 [[|Article(context)]]
-[[Bar:X (Y) Z|]]
-[[:Bar:X (Y) Z|]]
+[[Bar:X(Y)Z|]]
+[[:Bar:X(Y)Z|]]
 !! result
 [[Article(context)|Article]]
 [[Bar:Article(context)|Article]]
 [[:Bar:Article(context)|Article]]
 [[Article(context)]]
-[[Bar:X (Y) Z|X (Y) Z]]
-[[:Bar:X (Y) Z|X (Y) Z]]
+[[Bar:X(Y)Z|X(Y)Z]]
+[[:Bar:X(Y)Z|X(Y)Z]]
 !! end
 
 !! test
@@ -3685,6 +4368,26 @@ pst
 [[:Bar:X(Y)Z|X(Y)Z]]
 !! end
 
+!! test
+pre-save transform: context links ("pipe trick") with commas (bug 21660)
+!! options
+pst
+!! input
+[[Article (context), context|]]
+[[Article (context),context|]]
+[[Bar:Article (context), context|]]
+[[Bar:Article (context),context|]]
+[[:Bar:Article (context), context|]]
+[[:Bar:Article (context),context|]]
+!! result
+[[Article (context), context|Article]]
+[[Article (context),context|Article]]
+[[Bar:Article (context), context|Article]]
+[[Bar:Article (context),context|Article]]
+[[:Bar:Article (context), context|Article]]
+[[:Bar:Article (context),context|Article]]
+!! end
+
 !! test
 pre-save transform: trim trailing empty lines
 !! options
@@ -9481,10 +10184,10 @@ abc
 </p>
 !! end
 
+
 TODO:
 more images
 more tables
-math
 character entities
 and much more
 Try for 100% code coverage
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 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 1f40b5a..5dfceee 100644 (file)
@@ -56,7 +56,7 @@ class ApiBlockTest extends ApiTestCase {
                        'action' => 'block',
                        'user' => 'UTApiBlockee',
                        'reason' => 'Some reason',
-                       'token' => $pageinfo['blocktoken'] ), $data, false, self::$users['sysop']->user );
+                       'token' => $pageinfo['blocktoken'] ), null, false, self::$users['sysop']->user );
 
                $block = Block::newFromTarget('UTApiBlockee');
 
index 8801391..f81bb6d 100644 (file)
@@ -43,15 +43,31 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
 
        }
 
-       protected function doApiRequest( $params, $session = null, $appendModule = false, $user = null ) {
+       protected function doApiRequest( Array $params, Array $session = null, $appendModule = false, User $user = null ) {
+               global $wgRequest, $wgUser;
+
                if ( is_null( $session ) ) {
-                       $session = array();
+                       # re-use existing global session by default
+                       $session = $wgRequest->getSessionArray();
+               }
+
+               # set up global environment
+               if ( $user ) {
+                       $wgUser = $user;
                }
 
-               $context = $this->apiContext->newTestContext( $params, $session, $user );
+               $wgRequest = new FauxRequest( $params, true, $session );
+               RequestContext::getMain()->setRequest( $wgRequest );
+
+               # set up local environment
+               $context = $this->apiContext->newTestContext( $wgRequest, $wgUser );
+
                $module = new ApiMain( $context, true );
+
+               # run it!
                $module->execute();
 
+               # construct result
                $results = array(
                        $module->getResultData(),
                        $context->getRequest(),
@@ -68,11 +84,11 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
         * Add an edit token to the API request
         * This is cheating a bit -- we grab a token in the correct format and then add it to the pseudo-session and to the
         * request, without actually requesting a "real" edit token
-        * @param $params: key-value API params
-        * @param $session: session array
-        * @param $user String|null A User object for the context 
+        * @param $params Array: key-value API params
+        * @param $session Array: session array
+        * @param $user User|null A User object for the context
         */
-       protected function doApiRequestWithToken( $params, $session, $user = null ) {
+       protected function doApiRequestWithToken( Array $params, Array $session, User $user = null ) {
                if ( $session['wsToken'] ) {
                        // add edit token to fake session
                        $session['wsEditToken'] = $session['wsToken'];
@@ -97,17 +113,17 @@ abstract class ApiTestCase extends MediaWikiLangTestCase {
                        'lgtoken' => $token,
                        'lgname' => self::$users['sysop']->username,
                        'lgpassword' => self::$users['sysop']->password
-                       ), $data );
+                       ), $data[2] );
 
                return $data;
        }
 
-       protected function getTokenList( $user ) {
+       protected function getTokenList( $user, $session = null ) {
                $data = $this->doApiRequest( array(
                        'action' => 'query',
                        'titles' => 'Main Page',
                        'intoken' => 'edit|delete|protect|move|block|unblock',
-                       'prop' => 'info' ), false, $user->user );
+                       'prop' => 'info' ), $session, false, $user->user );
                return $data;
        }
 }
@@ -154,14 +170,13 @@ class ApiTestContext extends RequestContext {
        /**
         * Returns a DerivativeContext with the request variables in place
         *
-        * @param $params Array key-value API params
-        * @param $session Array session data
+        * @param $request WebRequest request object including parameters and session
         * @param $user User or null
         * @return DerivativeContext
         */
-       public function newTestContext( $params, $session, $user = null ) {
+       public function newTestContext( WebRequest $request, User $user = null ) {
                $context = new DerivativeContext( $this );
-               $context->setRequest( new FauxRequest( $params, true, $session ) );
+               $context->setRequest( $request );
                if ( $user !== null ) {
                        $context->setUser( $user );
                }
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;
                }
diff --git a/tests/phpunit/includes/libs/CSSMinTest.php b/tests/phpunit/includes/libs/CSSMinTest.php
new file mode 100644 (file)
index 0000000..a382775
--- /dev/null
@@ -0,0 +1,142 @@
+<?php
+/**
+ * This file test the CSSMin library shipped with Mediawiki.
+ *
+ * @author Timo Tijhof
+ */
+
+class CSSMinTest extends MediaWikiTestCase {
+       protected $oldServer = null, $oldCanServer = null;
+
+       function setUp() {
+               parent::setUp();
+
+               // Fake $wgServer and $wgCanonicalServer
+               global $wgServer, $wgCanonicalServer;
+               $this->oldServer = $wgServer;
+               $this->oldCanServer = $wgCanonicalServer;
+               $wgServer = $wgCanonicalServer = 'http://wiki.example.org';
+       }
+
+       function tearDown() {
+               // Restore $wgServer and $wgCanonicalServer
+               global $wgServer, $wgCanonicalServer;
+               $wgServer = $this->oldServer;
+               $wgCanonicalServer = $this->oldCanServer;
+
+               parent::tearDown();
+       }
+
+       /**
+        * @dataProvider provideMinifyCases
+        */
+       function testMinify( $code, $expectedOutput ) {
+               $minified = CSSMin::minify( $code );
+
+               $this->assertEquals( $expectedOutput, $minified, 'Minified output should be in the form expected.' );
+       }
+
+       function provideMinifyCases() {
+               return array(
+                       // Whitespace
+                       array( "\r\t\f \v\n\r", "" ),
+                       array( "foo, bar {\n\tprop: value;\n}", "foo,bar{prop:value}" ),
+
+                       // Loose comments
+                       array( "/* foo */", "" ),
+                       array( "/*******\n foo\n *******/", "" ),
+                       array( "/*!\n foo\n */", "" ),
+
+                       // Inline comments in various different places
+                       array( "/* comment */foo, bar {\n\tprop: value;\n}", "foo,bar{prop:value}" ),
+                       array( "foo/* comment */, bar {\n\tprop: value;\n}", "foo,bar{prop:value}" ),
+                       array( "foo,/* comment */ bar {\n\tprop: value;\n}", "foo,bar{prop:value}" ),
+                       array( "foo, bar/* comment */ {\n\tprop: value;\n}", "foo,bar{prop:value}" ),
+                       array( "foo, bar {\n\t/* comment */prop: value;\n}", "foo,bar{prop:value}" ),
+                       array( "foo, bar {\n\tprop: /* comment */value;\n}", "foo,bar{prop:value}" ),
+                       array( "foo, bar {\n\tprop: value /* comment */;\n}", "foo,bar{prop:value }" ),
+                       array( "foo, bar {\n\tprop: value; /* comment */\n}", "foo,bar{prop:value; }" ),
+
+                       // Keep track of things that aren't as minified as much as they
+                       // could be (bug 35493)
+                       array( 'foo { prop: value ;}', 'foo{prop:value }' ),
+                       array( 'foo { prop : value; }', 'foo{prop :value}' ),
+                       array( 'foo { prop: value ; }', 'foo{prop:value }' ),
+                       array( 'foo { font-family: "foo" , "bar"; }', 'foo{font-family:"foo" ,"bar"}' ),
+                       array( "foo { src:\n\turl('foo') ,\n\turl('bar') ; }", "foo{src:url('foo') ,url('bar') }" ),
+
+                       // Interesting cases with string values
+                       // - Double quotes, single quotes
+                       array( 'foo { content: ""; }', 'foo{content:""}' ),
+                       array( "foo { content: ''; }", "foo{content:''}" ),
+                       array( 'foo { content: "\'"; }', 'foo{content:"\'"}' ),
+                       array( "foo { content: '\"'; }", "foo{content:'\"'}" ),
+                       // - Whitespace in string values
+                       array( 'foo { content: " "; }', 'foo{content:" "}' ),
+               );
+       }
+
+       /**
+        * @dataProvider provideRemapCases
+        */
+       function testRemap( $message, $params, $expectedOutput ) {
+               $remapped = call_user_func_array( 'CSSMin::remap', $params );
+
+               $messageAdd = " Case: $message";
+               $this->assertEquals( $expectedOutput, $remapped, 'CSSMin::remap should return the expected url form.' . $messageAdd );
+       }
+
+       function provideRemapCases() {
+               // Parameter signature:
+               // CSSMin::remap( $code, $local, $remote, $embedData = true )
+               return array(
+                       array(
+                               'Simple case',
+                               array( 'foo { prop: url(bar.png); }', false, 'http://example.org', false ),
+                               'foo { prop: url(http://example.org/bar.png); }',
+                       ),
+                       array(
+                               'Without trailing slash',
+                               array( 'foo { prop: url(../bar.png); }', false, 'http://example.org/quux', false ),
+                               'foo { prop: url(http://example.org/quux/../bar.png); }',
+                       ),
+                       array(
+                               'With trailing slash on remote (bug 27052)',
+                               array( 'foo { prop: url(../bar.png); }', false, 'http://example.org/quux/', false ),
+                               'foo { prop: url(http://example.org/quux/../bar.png); }',
+                       ),
+                       array(
+                               'Guard against stripping double slashes from query',
+                               array( 'foo { prop: url(bar.png?corge=//grault); }', false, 'http://example.org/quux/', false ),
+                               'foo { prop: url(http://example.org/quux/bar.png?corge=//grault); }',
+                       ),
+                       array(
+                               'Expand absolute paths',
+                               array( 'foo { prop: url(/w/skin/images/bar.png); }', false, 'http://example.org/quux', false ),
+                               'foo { prop: url(http://wiki.example.org/w/skin/images/bar.png); }',
+                       ),
+               );
+       }
+
+       /**
+        * Seperated because they are currently broken (bug 35492)
+        *
+        * @group Broken
+        * @dataProvider provideStringCases
+        */
+       function testMinifyWithCSSStringValues( $code, $expectedOutput ) {
+               $this->testMinifyOutput( $code, $expectedOutput );
+       }
+
+       function provideStringCases() {
+               return array(
+                       // String values should be respected
+                       // - More than one space in a string value
+                       array( 'foo { content: "  "; }', 'foo{content:"  "}' ),
+                       // - Using a tab in a string value (turns into a space)
+                       array( "foo { content: '\t'; }", "foo{content:'\t'}" ),
+                       // - Using css-like syntax in string values
+                       array( 'foo::after { content: "{;}"; position: absolute; }', 'foo::after{content:"{;}";position:absolute}' ),
+               );
+       }
+}
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 c6498fa..f66c387 100644 (file)
@@ -20,7 +20,7 @@ class UploadFromUrlTest extends ApiTestCase {
                }
        }
 
-       protected function doApiRequest( $params, $unused = null, $appendModule = false, $user = null ) {
+       protected function doApiRequest( Array $params, Array $unused = null, $appendModule = false, User $user = null ) {
                $sessionId = session_id();
                session_write_close();
 
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 e92b289..965d7be 100644 (file)
@@ -17,11 +17,13 @@ class BaseDumpTest extends MediaWikiTestCase {
        private $dump = null;
 
        protected function tearDown() {
-               parent::tearDown();
-
                if ( $this->dump !== null ) {
                        $this->dump->close();
                }
+
+               // Bug 37458, parent teardown need to be done after closing the
+               // dump or it might cause some permissions errors.
+               parent::tearDown();
        }
 
        /**
@@ -207,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>
@@ -218,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 6cdba85..35e7e32 100644 (file)
@@ -12,12 +12,14 @@ class TextPassDumperTest extends DumpTestCase {
 
        // We'll add several pages, revision and texts. The following variables hold the
        // corresponding ids.
-       private $pageId1, $pageId2, $pageId3, $pageId4, $pageId5;
+       private $pageId1, $pageId2, $pageId3, $pageId4;
+       private static $numOfPages = 4;
        private $revId1_1, $textId1_1;
        private $revId2_1, $textId2_1, $revId2_2, $textId2_2;
        private $revId2_3, $textId2_3, $revId2_4, $textId2_4;
        private $revId3_1, $textId3_1, $revId3_2, $textId3_2;
        private $revId4_1, $textId4_1;
+       private static $numOfRevs = 8;
 
        function addDBData() {
                $this->tablesUsed[] = 'page';
@@ -112,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
@@ -178,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
@@ -314,9 +316,9 @@ class TextPassDumperTest extends DumpTestCase {
                        switch ( $lookingForPage ) {
                        case 1:
                                // Page 1
-                               $this->assertPageStart( $this->pageId1 + $i * 4, NS_MAIN,
+                               $this->assertPageStart( $this->pageId1 + $i * self::$numOfPages, NS_MAIN,
                                        "BackupDumperTestP1" );
-                               $this->assertRevision( $this->revId1_1, "BackupDumperTestP1Summary1",
+                               $this->assertRevision( $this->revId1_1 + $i * self::$numOfRevs, "BackupDumperTestP1Summary1",
                                        $this->textId1_1, false, "0bolhl6ol7i6x0e7yq91gxgaan39j87",
                                        "BackupDumperTestP1Text1" );
                                $this->assertPageEnd();
@@ -326,21 +328,22 @@ class TextPassDumperTest extends DumpTestCase {
 
                        case 2:
                                // Page 2
-                               $this->assertPageStart( $this->pageId2 + $i * 4, NS_MAIN,
+                               $this->assertPageStart( $this->pageId2 + $i * self::$numOfPages, NS_MAIN,
                                        "BackupDumperTestP2" );
-                               $this->assertRevision( $this->revId2_1, "BackupDumperTestP2Summary1",
+                               $this->assertRevision( $this->revId2_1 + $i * self::$numOfRevs, "BackupDumperTestP2Summary1",
                                        $this->textId2_1, false, "jprywrymfhysqllua29tj3sc7z39dl2",
-                                       "BackupDumperTestP2Text1", $this->revId2_2 );
-                               $this->assertRevision( $this->revId2_2, "BackupDumperTestP2Summary2",
+                                       "BackupDumperTestP2Text1" );
+                               $this->assertRevision( $this->revId2_2 + $i * self::$numOfRevs, "BackupDumperTestP2Summary2",
                                        $this->textId2_2, false, "b7vj5ks32po5m1z1t1br4o7scdwwy95",
-                                       "BackupDumperTestP2Text2", $this->revId2_3 );
-                               $this->assertRevision( $this->revId2_3, "BackupDumperTestP2Summary3",
+                                       "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 );
-                               $this->assertRevision( $this->revId2_4,
+                                       "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;
@@ -348,9 +351,9 @@ class TextPassDumperTest extends DumpTestCase {
 
                        case 4:
                                // Page 4
-                               $this->assertPageStart( $this->pageId4 + $i * 4, NS_TALK,
+                               $this->assertPageStart( $this->pageId4 + $i * self::$numOfPages, NS_TALK,
                                        "Talk:BackupDumperTestP1" );
-                               $this->assertRevision( $this->revId4_1,
+                               $this->assertRevision( $this->revId4_1 + $i * self::$numOfRevs,
                                        "Talk BackupDumperTestP1 Summary1",
                                        $this->textId4_1, false, "nktofwzd0tl192k3zfepmlzxoax1lpe",
                                        "Talk about BackupDumperTestP1 Text1" );
@@ -469,9 +472,9 @@ class TextPassDumperTest extends DumpTestCase {
                        $page1 = '  <page>
     <title>BackupDumperTestP1</title>
     <ns>0</ns>
-    <id>' . ( $this->pageId1 + $i * 4 ) . '</id>
+    <id>' . ( $this->pageId1 + $i * self::$numOfPages ) . '</id>
     <revision>
-      <id>' . $this->revId1_1 . '</id>
+      <id>' . ( $this->revId1_1 + $i * self::$numOfRevs ) . '</id>
       <timestamp>2012-04-01T16:46:05Z</timestamp>
       <contributor>
         <ip>127.0.0.1</ip>
@@ -485,10 +488,9 @@ class TextPassDumperTest extends DumpTestCase {
                        $page2 = '  <page>
     <title>BackupDumperTestP2</title>
     <ns>0</ns>
-    <id>' . ( $this->pageId2 + $i * 4 ) . '</id>
+    <id>' . ( $this->pageId2 + $i * self::$numOfPages ) . '</id>
     <revision>
-      <id>' . $this->revId2_1 . '</id>
-      <parentid>' . $this->revId2_2 . '</parentid>
+      <id>' . ( $this->revId2_1 + $i * self::$numOfRevs ) . '</id>
       <timestamp>2012-04-01T16:46:05Z</timestamp>
       <contributor>
         <ip>127.0.0.1</ip>
@@ -498,8 +500,8 @@ class TextPassDumperTest extends DumpTestCase {
       <text id="' . $this->textId2_1 . '" bytes="23" />
     </revision>
     <revision>
-      <id>' . $this->revId2_2 . '</id>
-      <parentid>' . $this->revId2_3 . '</parentid>
+      <id>' . ( $this->revId2_2 + $i * self::$numOfRevs ) . '</id>
+      <parentid>' . ( $this->revId2_1 + $i * self::$numOfRevs ) . '</parentid>
       <timestamp>2012-04-01T16:46:05Z</timestamp>
       <contributor>
         <ip>127.0.0.1</ip>
@@ -509,8 +511,8 @@ class TextPassDumperTest extends DumpTestCase {
       <text id="' . $this->textId2_2 . '" bytes="23" />
     </revision>
     <revision>
-      <id>' . $this->revId2_3 . '</id>
-      <parentid>' . $this->revId2_4 . '</parentid>
+      <id>' . ( $this->revId2_3 + $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>
@@ -520,7 +522,8 @@ class TextPassDumperTest extends DumpTestCase {
       <text id="' . $this->textId2_3 . '" bytes="23" />
     </revision>
     <revision>
-      <id>' . $this->revId2_4 . '</id>
+      <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>
@@ -536,9 +539,9 @@ class TextPassDumperTest extends DumpTestCase {
                        $page4 = '  <page>
     <title>Talk:BackupDumperTestP1</title>
     <ns>1</ns>
-    <id>' . ( $this->pageId4 + $i * 4 ) . '</id>
+    <id>' . ( $this->pageId4 + $i * self::$numOfPages ) . '</id>
     <revision>
-      <id>' . $this->revId4_1 . '</id>
+      <id>' . ( $this->revId4_1 + $i * self::$numOfRevs ) . '</id>
       <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',
        )
index 7f4c48d..967983e 100644 (file)
@@ -24,7 +24,8 @@
  */
 header( 'Content-Type: text/javascript; charset=utf-8' );\r
 
-require_once "../../../includes/Xml.php";
+require_once dirname( __FILE__ ) . "/../../../includes/Xml.php";
+require_once dirname( __FILE__ ) . "/../../../includes/resourceloader/ResourceLoaderContext.php";
 
 $modules = array (
        'test.use_missing' => array (
@@ -37,39 +38,7 @@ $modules = array (
        )
 );
 
-// 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;
-
+function addModule ( $modules, $moduleName, &$gotten ) {
        $result = "";
        if ( isset( $gotten[$moduleName] ) ) {
                return $result;
@@ -90,10 +59,10 @@ function addModule ( $moduleName, &$gotten ) {
 $result = "";
 
 if ( isset( $_GET['modules'] ) ) {
-       $toGet = expandModuleNames( $_GET['modules'] );
+       $toGet = ResourceLoaderContext::expandModuleNames( $_GET['modules'] );
        $gotten = array();
        foreach ( $toGet as $moduleName ) {
-               $result .= addModule( $moduleName, $gotten );
+               $result .= addModule( $modules, $moduleName, $gotten );
        }
 }
 
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 );
+       }
+});