Merge "Update linktrails for Hindi and Odia"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 3 Jun 2013 13:38:32 +0000 (13:38 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 3 Jun 2013 13:38:32 +0000 (13:38 +0000)
177 files changed:
.jshintignore
RELEASE-NOTES-1.21 [deleted file]
RELEASE-NOTES-1.22
docs/hooks.txt
includes/Article.php
includes/AutoLoader.php
includes/DefaultSettings.php
includes/GlobalFunctions.php
includes/HTMLForm.php
includes/OutputPage.php
includes/RecentChange.php
includes/ScopedCallback.php
includes/Skin.php
includes/Title.php
includes/User.php
includes/WebRequest.php
includes/api/ApiBase.php
includes/api/ApiUpload.php
includes/cache/LinkCache.php
includes/cache/MessageCache.php
includes/clientpool/RedisConnectionPool.php
includes/db/DatabaseOracle.php
includes/debug/Debug.php
includes/diff/DifferenceEngine.php
includes/installer/Installer.i18n.php
includes/installer/OracleInstaller.php
includes/installer/OracleUpdater.php
includes/job/JobQueueAggregator.php [deleted file]
includes/job/JobQueueAggregatorMemc.php [deleted file]
includes/job/JobQueueAggregatorRedis.php [deleted file]
includes/job/aggregator/JobQueueAggregator.php [new file with mode: 0644]
includes/job/aggregator/JobQueueAggregatorMemc.php [new file with mode: 0644]
includes/job/aggregator/JobQueueAggregatorRedis.php [new file with mode: 0644]
includes/job/jobs/RefreshLinksJob.php
includes/logging/LogPage.php
includes/logging/PatrolLog.php
includes/normal/README
includes/resourceloader/ResourceLoaderContext.php
includes/specials/SpecialPasswordReset.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialUpload.php
includes/templates/UsercreateVForm.php
languages/Language.php
languages/Names.php
languages/messages/MessagesAf.php
languages/messages/MessagesAr.php
languages/messages/MessagesArz.php
languages/messages/MessagesAs.php
languages/messages/MessagesBa.php
languages/messages/MessagesBbc.php [new file with mode: 0644]
languages/messages/MessagesBbc_latn.php [new file with mode: 0644]
languages/messages/MessagesBcl.php
languages/messages/MessagesBe.php
languages/messages/MessagesBe_tarask.php
languages/messages/MessagesBg.php
languages/messages/MessagesBn.php
languages/messages/MessagesBr.php
languages/messages/MessagesBs.php
languages/messages/MessagesCa.php
languages/messages/MessagesCe.php
languages/messages/MessagesCkb.php
languages/messages/MessagesCs.php
languages/messages/MessagesCy.php
languages/messages/MessagesDe.php
languages/messages/MessagesDiq.php
languages/messages/MessagesDsb.php
languages/messages/MessagesEl.php
languages/messages/MessagesEn.php
languages/messages/MessagesEo.php
languages/messages/MessagesEs.php
languages/messages/MessagesEt.php
languages/messages/MessagesEu.php
languages/messages/MessagesFa.php
languages/messages/MessagesFi.php
languages/messages/MessagesFr.php
languages/messages/MessagesFrr.php
languages/messages/MessagesGl.php
languages/messages/MessagesGsw.php
languages/messages/MessagesGu.php
languages/messages/MessagesHak.php
languages/messages/MessagesHe.php
languages/messages/MessagesHr.php
languages/messages/MessagesHsb.php
languages/messages/MessagesHu.php
languages/messages/MessagesHy.php
languages/messages/MessagesIa.php
languages/messages/MessagesId.php
languages/messages/MessagesIlo.php
languages/messages/MessagesIs.php
languages/messages/MessagesIt.php
languages/messages/MessagesJa.php
languages/messages/MessagesKa.php
languages/messages/MessagesKk_cyrl.php
languages/messages/MessagesKm.php
languages/messages/MessagesKo.php
languages/messages/MessagesKsh.php
languages/messages/MessagesLb.php
languages/messages/MessagesMg.php
languages/messages/MessagesMin.php
languages/messages/MessagesMk.php
languages/messages/MessagesMl.php
languages/messages/MessagesMs.php
languages/messages/MessagesNb.php
languages/messages/MessagesNl.php
languages/messages/MessagesNn.php
languages/messages/MessagesOc.php
languages/messages/MessagesOs.php
languages/messages/MessagesPa.php
languages/messages/MessagesPfl.php
languages/messages/MessagesPl.php
languages/messages/MessagesPms.php
languages/messages/MessagesPt.php
languages/messages/MessagesPt_br.php
languages/messages/MessagesQqq.php
languages/messages/MessagesRoa_tara.php
languages/messages/MessagesRu.php
languages/messages/MessagesRue.php
languages/messages/MessagesSah.php
languages/messages/MessagesSe.php
languages/messages/MessagesSh.php
languages/messages/MessagesSk.php
languages/messages/MessagesSl.php
languages/messages/MessagesSr_ec.php
languages/messages/MessagesSr_el.php
languages/messages/MessagesSv.php
languages/messages/MessagesSw.php
languages/messages/MessagesTa.php
languages/messages/MessagesTet.php
languages/messages/MessagesTh.php
languages/messages/MessagesTk.php
languages/messages/MessagesTr.php
languages/messages/MessagesUk.php
languages/messages/MessagesVec.php
languages/messages/MessagesVi.php
languages/messages/MessagesYi.php
languages/messages/MessagesYue.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
maintenance/Doxyfile
maintenance/copyFileBackend.php
maintenance/language/messages.inc
maintenance/mwdocgen.php
resources/Resources.php
resources/mediawiki.action/images/green-checkmark.png [new file with mode: 0644]
resources/mediawiki.action/mediawiki.action.view.postEdit.css [new file with mode: 0644]
resources/mediawiki.action/mediawiki.action.view.postEdit.js
resources/mediawiki.api/mediawiki.api.edit.js
resources/mediawiki.special/images/glyph-people-large.png
resources/mediawiki.special/images/icon-contributors.png
resources/mediawiki.special/images/icon-edits.png
resources/mediawiki.special/images/icon-lock.png
resources/mediawiki.special/images/icon-pages.png
resources/mediawiki.special/mediawiki.special.createAccount.vform.css
resources/mediawiki.ui/mediawiki.ui.default.css
resources/mediawiki.ui/mediawiki.ui.vector.css
resources/mediawiki.ui/sourcefiles/scss/mixins/_forms.scss
resources/mediawiki/mediawiki.htmlform.js
resources/mediawiki/mediawiki.searchSuggest.js
resources/mediawiki/mediawiki.util.js
skins/common/images/question-small.png [new file with mode: 0644]
skins/common/images/question.svg [new file with mode: 0644]
skins/common/shared.css
skins/common/wikibits.js
tests/parser/parserTests.txt
tests/phpunit/AutoLoaderTest.php [deleted file]
tests/phpunit/StructureTest.php [deleted file]
tests/phpunit/includes/ResourceLoaderTest.php
tests/phpunit/includes/WebRequestTest.php
tests/phpunit/includes/installer/OracleInstallerTest.php [new file with mode: 0644]
tests/phpunit/includes/upload/UploadBaseTest.php [new file with mode: 0644]
tests/phpunit/includes/upload/UploadTest.php [deleted file]
tests/phpunit/phpunit.php
tests/phpunit/resources/ResourcesTest.php [deleted file]
tests/phpunit/structure/AutoLoaderTest.php [new file with mode: 0644]
tests/phpunit/structure/ResourcesTest.php [new file with mode: 0644]
tests/phpunit/structure/StructureTest.php [new file with mode: 0644]
tests/phpunit/suite.xml

index 64add55..2f3f2f8 100644 (file)
@@ -26,7 +26,11 @@ resources/mediawiki.libs/
 resources/jquery.chosen/chosen.jquery.js
 
 # legacy scripts
-skins/common/
+skins/common/IEFixes.js
+skins/common/ajax.js
+skins/common/config.js
+skins/common/protect.js
+skins/common/upload.js
 
 # github.com/jshint/jshint/issues/729
 tests/qunit/suites/resources/mediawiki/mediawiki.jscompat.test.js
diff --git a/RELEASE-NOTES-1.21 b/RELEASE-NOTES-1.21
deleted file mode 100644 (file)
index 717906a..0000000
+++ /dev/null
@@ -1,414 +0,0 @@
-Security reminder: MediaWiki does not require PHP's register_globals. If you
-have it on, turn it '''off''' if you can.
-
-== MediaWiki 1.21 ==
-
-THIS IS NOT A RELEASE YET
-
-MediaWiki 1.21 is an alpha-quality branch and is not recommended for use in
-production.
-
-=== Configuration changes in 1.21 ===
-* (bug 29374) $wgVectorUseSimpleSearch is now enabled by default.
-* Deprecated $wgAllowRealName is removed. Use $wgHiddenPrefs[] = 'realname'
-  instead.
-* (bug 39957) Added $wgUnwatchedPageThreshold, specifying minimum count
-  of page watchers required for the number to be accessible to users
-  without the unwatchedpages permission.
-* $wgBug34832TransitionalRollback has been removed.
-* (bug 29472) $wgUseDynamicDates has been removed and its functionality
-  disabled.
-
-=== New features in 1.21 ===
-* (bug 38110) Schema changes (adding or dropping tables, indices and
-  fields) can be now be done separately from from other changes that
-  update.php makes.  This is useful in environments that use database
-  permissions to restrict schema changes but allow the DB user that
-  MediaWiki normally runs as to perform other changes that update.php
-  makes.  Schema changes can be run separately.  See the file UPGRADE
-  for more information.
-* (bug 34876) jquery.makeCollapsible has been improved in performance.
-* Added ContentHandler facility to allow extensions to support other content
-  than wikitext. See docs/contenthandler.txt for details.
-* New feature was developed for showing high-DPI thumbnails for high-DPI mobile
-  and desktop displays (configurable with $wgResponsiveImages).
-* Added new backend to represent and store information about sites and site
-  specific configuration.
-* jQuery upgraded from 1.8.2 to 1.8.3.
-* jQuery UI upgraded from 1.8.23 to 1.8.24.
-* Added separate fa_sha1 field to filearchive table. This allows sha1
-  searches with the api in miser mode for deleted files.
-* Add initial and programmatic sorting for tablesorter.
-* Add the event "sortEnd.tablesorter", triggered after sorting has completed.
-* The Job system was refactored to allow for different backing stores for
-  queues as well as cross-wiki access to queues, among other things. The schema
-  for the DB queue was changed to support better concurrency and reduce
-  deadlock errors.
-* Added ApiQueryORM class to facilitate creation of query API modules based on
-  tables that have a corresponding ORMTable class.
-* (bug 40876) Icon for PSD (Adobe Photoshop) file types.
-* (bug 40641) Implemented Special:Version/Credits with a list of contributors.
-* (bug 7851) Implemented one-click AJAX patrolling.
-* The <data>, <time>, <meta>, and <link> elements are allowed within WikiText
-  for use with Microdata.
-* The HTML5 <mark> tag has been whitelisted.
-* Added ParserCloned hook for when the Parser object is cloned.
-* Added AlternateEditPreview hook to allow extensions to replace the page
-  preview from the edit page.
-* Added EditPage::showStandardInputs:options hook to allow extensions to add
-  new fields to the "editOptions" area of the edit form.
-* Upload stash DB schema altered to improve upload performance.
-* The following global functions are now reporting deprecated warnings in
-  debug mode: wfMsg, wfMsgNoTrans, wfMsgForContent, wfMsgForContentNoTrans,
-  wfMsgReal, wfMsgGetKey, wfMsgHtml, wfMsgWikiHtml, wfMsgExt, wfEmptyMsg. Use
-  the Message class, or the global method wfMessage.
-* Added $wgEnableCanonicalServerLink, off by default. If enabled, a
-  <link rel=canonical> tag is added to every page indicating the correct server
-  to use.
-* Debug message emitted by wfDebugLog() will now be prefixed with the group
-  name when its logged to the default log file. That is the case whenever the
-  group has no key in wgDebugLogGroups, that will help triage the default log.
-* (bug 24620) Add types to LogFormatter.
-* jQuery JSON upgraded from 2.3 to 2.4.0.
-* Added GetDoubleUnderscoreIDs hook, for modifying the list of magic words.
-* DatabaseUpdater class has two new methods to ease extensions schema changes:
-  dropExtensionIndex and renameExtensionIndex.
-* New preference type - 'api'. Preferences of this type are not shown on
-  Special:Preferences, but are still available via the action=options API.
-* (bug 39397) Hide rollback link if a user is the only contributor of the page.
-* $wgPageInfoTransclusionLimit limits the list size of transcluded articles
-  on the info action. Default is 50.
-* Added action=createaccount to allow user account creation.
-* (bug 40124) action=options API also allows for setting of arbitrary
-  preferences, provided that their names are prefixed with 'userjs-'. This
-  officially reenables the feature that was undocumented and defective
-  in MW 1.20 (saving preferences using Special:Preferences cleared any
-  additional fields) and which has been disabled in 1.20.1 as a part of
-  a security fix (bug 42202).
-* Added option to specify "others" as author in extension credits using
-  "..." as author name.
-* Added the ability to limit the wall clock time used by shell processes,
-  as well as the CPU time. Configurable with $wgMaxShellWallClockTime.
-* Allow memory of shell subprocesses to be limited using Linux cgroups
-  instead of ulimit -v, which tends to cause deadlocks in recent versions
-  of ImageMagick. Configurable with $wgShellCgroup.
-* Added $wgWhitelistReadRegexp for regex whitelisting.
-* (bug 5346) Categories that are redirects will be displayed italic in
-  the category links section at the bottom of a page.
-* (bug 43915) New maintenance script deleteEqualMessages.php.
-* You can now create checkbox option matrices through the HTMLCheckMatrix
-  subclass in HTMLForm.
-* WikiText now permits the use of WAI-ARIA's role="presentation" inside of
-  html elements and tables. This allows presentational markup, especially
-  tables. To be marked up as such.
-* maintenance/sql.php learned the --cluster option. Let you run the script
-  on some external cluster instead of the primary cluster for a given wiki.
-* (bug 20281) test the parsing of inline URLs.
-* Added Special:PagesWithProp, which lists pages using a particular page property.
-* Implemented language-specific collations for category sorting for 67 languages
-  based in latin, greek and cyrillic alphabets. This allows one to *finally* get
-  articles to be correctly sorted on category pages. They are named
-  'uca-<langcode>', where <langcode> is one of: af, ast, az, be, bg, br, bs, ca,
-  co, cs, cy, da, de, dsb, el, en, eo, es, et, eu, fi, fo, fr, fur, fy, ga, gd,
-  gl, hr, hsb, hu, is, it, kk, kl, ku, ky, la, lb, lt, lv, mk, mo, mt, nl, no,
-  oc, pl, pt, rm, ro, ru, rup, sco, sk, sl, smn, sq, sr, sv, tk, tl, tr, tt, uk,
-  uz, vi.
-* Added 'CategoryAfterPageAdded' and 'CategoryAfterPageRemoved' hooks.
-* Added 'HistoryRevisionTools' and 'DiffRevisionTools' hooks.
-* Added 'SpecialSearchResultsPrepend' and 'SpecialSearchResultsAppend' hooks.
-* (bug 33186) Add image rotation api "imagerotate"
-* (bug 34040) Add "User rights management" link on user page toolbox.
-* (bug 45526) Add QUnit assertion helper "QUnit.assert.htmlEqual" for asserting
-  structual equality of HTML (ignoring insignificant differences like
-  quotmarks, order and whitespace in the attribute list).
-
-=== Bug fixes in 1.21 ===
-* (bug 42649) PHP Fatal error: Call to a member function isLocal() on a
-  non-object in Title.php
-* (bug 46493) Special:ProtectedPages results in whitepage when a bad title is protected
-* (bug 40617) Installer can now customize the logo in LocalSettings.php
-* (bug 40353) SpecialDoubleRedirect should support interwiki redirects.
-* (bug 40352) fixDoubleRedirects.php should support interwiki redirects.
-* (bug 9237) SpecialBrokenRedirect should not list interwiki redirects.
-* (bug 34960) Drop unused fields rc_moved_to_ns and rc_moved_to_title from
-  recentchanges table.
-* (bug 32951) Do not register internal externals with absolute protocol,
-  when server has relative protocol.
-* (bug 39005) When purging proxies listed in $wgSquidServers using HTTP PURGE
-  method requests, we now send a Host header by default, for Varnish
-  compatibility. This also works with Squid in reverse-proxy mode. If you wish
-  to support Squid configured in forward-proxy mode, set
-  $wgSquidPurgeUseHostHeader to false.
-* (bug 37020) sql.php with readline eats semicolon.
-* (bug 11748) Properly handle optionally-closed HTML tags when Tidy is
-  disabled, and don't wrap HTML-syntax definition lists in paragraphs.
-* (bug 41409) Diffs while editing an old revision should again diff against the
-  current revision.
-* (bug 41494) Honor $wgLogExceptionBacktrace when logging non-API exceptions
-  caught during API execution.
-* (bug 37963) Fixed loading process for user options.
-* (bug 26995) Update filename field on Upload page after having sanitized it.
-* (bug 41793) Contribution links to users with 0 edits on Special:ListUsers
-  didn't show up red.
-* (bug 41899) A PHP notice no longer occurs when using the "rvcontinue" API
-  parameter.
-* (bug 42036) Account creation emails now contain canonical (not
-  protocol-relative) URLs.
-* (bug 41990) Fix regression: API edit with redirect=true and lacking
-  starttimestamp and basetimestamp should not cause an edit conflict.
-* (bug 41706) EditPage: Preloaded page should be converted if possible and
-  needed.
-* (bug 41886) Rowspans are no longer exploded by tablesorter until the table is
-  actually sorted.
-* (bug 2865)  User interface HTML elements don't use lang attribute.
-  (completed the fix by adding the lang attribute to firstHeading).
-* (bug 42173) Removed namespace prefixes on Special:UncategorizedCategories.
-* (bug 36053) Log in "returnto" feature forgets query parameters if no
-  title parameter was specified.
-* (bug 42410) API action=edit now returns correct timestamp for the new edit.
-* (bug 14901) Email notification mistakes log action for new page creation.
-  Enotif no longer sends "page has been created" notifications for some log
-  actions. The following events now have a correct message: page creation,
-  deletion, move, restore (undeletion), change (edit). Parameter
-  $CHANGEDORCREATED is deprecated in 'enotif_body' and scheduled for removal in
-  MediaWiki 1.23.
-* (bug 457) In the sidebar of Vector, CologneBlue, Monobook, and Monobook-based
-  skins, the heading levels have been changed from (variously per skin)
-  <h4>, <h5> or <h6> to only <h3>s, with a <h2> hidden heading above them.
-  If you are styling or scripting the headings in a custom way, this change
-  will require updates to your site's CSS or JS.
-* (bug 41342) jquery.suggestions should cancel any active (async) fetches
-  before it triggers another fetch.
-* (bug 42184) $wgUploadSizeWarning missing second variable.
-* (bug 34581) removeUnusedAccounts.php maintenance script now ignores newuser
-  log when determining whether an account is used.
-* (bug 43379) Gracefully fail if rev_len is unavailable for a revision on the
-  History page.
-* (bug 42949) API no longer assumes all exceptions are MWException.
-* (bug 41733) Hide "New user message" (.usermessage) element from printable view.
-* (bug 39062) Special:Contributions will display changes that don't have
-  a parent id instead of just an empty bullet item.
-* (bug 37209) "LinkCache doesn't currently know about this title" error fixed.
-* wfMerge() now works if $wgDiff3 contains spaces
-* (bug 43052) mediawiki.action.view.dblClickEdit.dblClickEdit should trigger
-  ca-edit click instead opening URL directly.
-* (bug 43964) Invalid value of "link" parameter in <gallery> no longer produces
-  a fatal error.
-* (bug 44775) The username field is not pre-filled when creating an account.
-* (bug 45069) wfParseUrl() no longer produces a PHP notice if passed a "mailto:"
-  URL without address
-* (bug 45012) Creating an account by e-mail can no longer show a
-  "password mismatch" error.
-* (bug 44599) On Special:Version, HEADs for submodule checkouts (e.g. for
-  extensions) performed using Git 1.7.8+ should now appear.
-* (bug 42184) $wgUploadSizeWarning missing second variable
-* (bug 40326) Check if files exist with a different extension during uploading
-* (bug 34798) Updated CSS for Atom/RSS recent changes feeds to match on-wiki diffs.
-* (bug 42430) Calling numRows on MySQL no longer propagates unrelated errors.
-* (bug 44719) Removed mention of non-existing maintenance/migrateCurStubs.php
-  script in includes/DefaultSettings.php
-* (bug 45143) jquery.badge: Treat non-Latin variants of zero as zero as well.
-* (bug 46151) mwdocgen.php should not ignore exit code of doxygen command.
-* (bug 41889) Fix $.tablesorter rowspan exploding for complex cases.
-* (bug 47489) Installer now automatically selects the next-best database type if
-  the PHP mysql extension is not loaded, preventing fatal errors in some cases.
-* (bug 47202) wikibits: FF2Fixes.css should not be loaded in Firefox 20.
-
-=== API changes in 1.21 ===
-* prop=revisions can now report the contentmodel and contentformat.
-  See docs/contenthandler.txt.
-* action=edit and action=parse now support contentmodel and contentformat
-  parameters to control the interpretation of page content.
-  See docs/contenthandler.txt for details.
-* (bug 35693) ApiQueryImageInfo now suppresses errors when unserializing metadata.
-* (bug 40111) Disable minor edit for page/section creation by API.
-* (bug 41042) Revert change to action=parse&page=... behavior when the page
-  does not exist.
-* (bug 27202) Add timestamp sort to list=allimages.
-* (bug 43137) Don't return the sha1 of revisions through the API if the content is
-  revision-deleted.
-* ApiQueryImageInfo now also returns imageinfo for redirects.
-* list=alltransclusions added to enumerate every instance of page embedding
-* list=alllinks & alltransclusions now allow both 'from' and 'continue' in
-  the same query. When both are present, 'from' is simply ignored.
-* list=alllinks & alltransclusions now allow 'unique' in generators, to yield
-  a list of all link/template target pages instead of source pages.
-* BREAKING CHANGE: list=logevents output format changed for details of some log
-  types. Specifically, details that were formerly reported under a key like
-  "4::foo" will now be reported under a key of simply "foo".
-* BREAKING CHANGE: '??_badcontinue' error code was changed to '??badcontinue'
-  for all query modules.
-* ApiQueryBase adds 'badcontinue' error code if module has 'continue' parameter.
-* (bug 35885) Removed version parameter and all getVersion() methods.
-* action=options now takes a "resetkinds" option, which allows only resetting
-  certain types of preferences when the "reset" option is set.
-* (bug 36751) ApiQueryImageInfo now returns imageinfo for the redirect target
-  when queried with &redirects=.
-* (bug 31849) ApiQueryImageInfo no longer gets confused when asked for info on
-  a redirect and its target.
-* (bug 43849) ApiQueryImageInfo no longer throws exceptions with ForeignDBRepo
-  redirects.
-* On error, any warnings generated before that error will be shown in the result.
-* action=help supports generalized submodules (modules=query+value), querymodules obsolete
-* ApiQueryImageInfo continuation is more reliable. The only major change is
-  that the imagerepository property will no longer be set on page objects not
-  processed in the current query (i.e. non-images or those skipped due to
-  iicontinue).
-* Add supports for all pageset capabilities - generators, redirects, converttitles to
-  action=purge and action=setnotificationtimestamp.
-* (bug 43251) prop=pageprops&ppprop= now accepts multiple props to query.
-* ApiQueryImageInfo will now limit the number of calls to File::transform made
-  in any one query. If there are too many, iicontinue will be returned.
-* action=query&meta=siteinfo&siprop=general will now return the regexes used for
-  link trails and link prefixes. Added for Parsoid support.
-* Added an API query module list=pageswithprop, which lists pages using a
-  particular page property.
-* Added an API query module list=pagepropnames, which lists all page prop names
-  currently in use on the wiki.
-* (bug 44921) ApiMain::execute() will now return after the CORS check for an
-  HTTP OPTIONS request.
-* (bug 44923) action=upload works correctly if the entire file is uploaded in
-  the first chunk.
-* Added 'continue=' parameter to streamline client iteration over complex query results
-* (bug 44909) API parameters may now be marked as type "upload", which is now
-  used for action=upload's 'file' and 'chunk' parameters. This type will raise
-  an error during parameter validation if the parameter is given but not
-  recognized as an uploaded file.
-* (bug 44244) prop=info may now return the number of people watching each page.
-* (bug 33304) list=allpages will no longer return duplicate entries when
-  querying protection.
-* (bug 33304) list=allpages will now find really old indefinite protections.
-* (bug 45937) meta=allmessages will report a syntactically invalid lang as a
-  proper error instead of as an uncaught exception.
-* The JSON output formatter now leaves forward slashes unescaped to improve human
-  readability of URLs and similar strings. Also, a "utf8" option is now provided
-  to use UTF-8 encoding instead of hex escape codes for most non-ASCII characters.
-
-=== API internal changes in 1.21 ===
-* For debugging only, a new global $wgDebugAPI removes many API restrictions when true.
-  Never use on the production servers, as this flag introduces security holes.
-  Whenever enabled, a warning will also be added to all output.
-* ApiModuleManager now handles all submodules (actions,props,lists) and instantiation
-* Query stores prop/list/meta as submodules
-* ApiPageSet can now be used in any action to process titles/pageids/revids or any generator.
-* BREAKING CHANGE: ApiPageSet constructor now has two params instead of three, with only the
-  first one keeping its meaning. ApiPageSet is now derived from ApiBase.
-* BREAKING CHANGE: ApiQuery::newGenerator() and executeGeneratorModule() were deleted.
-* ApiQueryGeneratorBase::setGeneratorMode() now requires a pageset param.
-* $wgAPIGeneratorModules is now obsolete and will be ignored.
-* Added flags ApiResult::OVERRIDE and ADD_ON_TOP to setElement() and addValue()
-* Internal API calls will now include <warnings> in case of unused parameters
-
-=== Languages updated in 1.21 ===
-
-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.
-
-* South Azerbaijani (azb) added.
-* (bug 30040) Autonym for nds-nl is now 'Nedersaksies' (was 'Nedersaksisch').
-* (bug 45436) Autonym for pi (Pali) is now 'पालि' (was ''पाळि').
-* (bug 34977) Now formatted numbers in Spanish use space as separator
-  for thousands, as mandated by the Real Academia Española.
-* (bug 35031) Kurdish formatted numbers now use period and comma
-  as separators for thousands and decimals respectively.
-
-=== Other changes in 1.21 ===
-* BREAKING CHANGE: (bug 44385) Removed the jquery.collapsibleTabs module and
-  moved it to the Vector extension. It was entirely Vector-extension-specific,
-  deeply interconnected with the extension, and this functionality really
-  belongs to the extension instead of the skin anyway. In the unlikely case you
-  were using it, you have to either copy it to your extension, or install the
-  Vector extension (and possibly disable its features using config settings if
-  you don't want them).
-* Experimental IBM DB2 support was removed due to lack of interest and maintainership.
-* BREAKING CHANGE: Filenames of maintenance scripts were standardized into
-  lowerCamelCase format, and made more explicit:
-  - clear_stats.php -> clearCacheStats.php
-  - clear_interwiki_cache.php -> clearInterwikiCache.php
-  - initStats.php -> initSiteStats.php
-  - proxy_check.php -> proxyCheck.php
-  - stats.php -> showCacheStats.php
-  - showStats.php -> showSiteStats.php.
-  Class names were renamed accordingly:
-  - clear_stats -> ClearCacheStats
-  - InitStats -> InitSiteStats
-  - CacheStats -> ShowCacheStats
-  - ShowStats -> ShowSiteStats.
-* BREAKING CHANGE: (bug 38244) Removed the mediawiki.api.titleblacklist module
-  and moved it to the TitleBlacklist extension.
-* BREAKING CHANGE: Implementation of MediaWiki's JS and JSON value encoding
-  has changed:
-** MediaWiki no longer supports PHP installations in which the native JSON
-   extension is missing or disabled.
-** XmlJsCode objects can no longer be nested inside objects or arrays.
-   (For Xml::encodeJsCall(), this individually applies to each argument.)
-** The sets of characters escaped by default, along with the precise escape
-   sequences used, have changed (except for the Xml::escapeJsString()
-   function, which is now deprecated).
-* BREAKING CHANGE: The Services_JSON class has been removed. If necessary,
-  be sure to upgrade affected extensions at the same time (e.g. Collection).
-
-== Compatibility ==
-
-MediaWiki 1.21 requires PHP 5.3.2 or later.
-
-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
-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.21 has several database changes since 1.20, and will not work without schema
-updates. Note that due to changes to some very large tables like the revision
-table, the schema update may take quite long (minutes on a medium sized site,
-many hours on a large site).
-
-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, you should upgrade to
-1.5 first. The upgrade script maintenance/upgrade1_5.php has been removed
-with MediaWiki 1.21.
-
-Don't forget to always back up your database before upgrading!
-
-See the file UPGRADE for more detailed upgrade instructions.
-
-For notes on 1.19.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 4e04940..b80c06e 100644 (file)
@@ -26,6 +26,9 @@ production.
 * $wgHandheldStyle was removed.
 * $wgJsMimeType is no longer used by core. Most usage has been removed since
   HTML output is now exclusively HTML5.
+* $wgDBOracleDRCP added. True enables persistent connection with DRCP on Oracle.
+* $wgLogAutopatrol added to allow disabling logging of autopatrol edits in the logging table.
+  default for $wgLogAutopatrol is true.
 
 === New features in 1.22 ===
 * (bug 44525) mediawiki.jqueryMsg can now parse (whitelisted) HTML elements and attributes.
@@ -86,6 +89,16 @@ production.
   HTTP caches when a page is changed.
 * Changed the patrolling system to always show the link for patrolling in case the
   current revision is patrollable. This also removed the usage of the rcid URI parameters.
+* Oracle DB backend now supports Database Resident Connection Pooling (DRCP).
+  Can be enabled by setting $wgDBOracleDRCP=true.
+  Requires Oracle DB 11gR1 or above, enabled DRCP inside the DB itself and a
+  propper connect string.
+  More about DRCP can be found at:
+  http://www.oracle-base.com/articles/11g/database-resident-connection-pool-11gr1.php
+* Add a new parameter $patrolFooterShown to hook ArticleViewFooter so the hook
+  handlers can take further action based on the status of the patrol footer
+* LinkCache singleton can now be altered or cleared, letting one to specify
+  another instance that does not rely on a database backend.
 
 === Bug fixes in 1.22 ===
 * Disable Special:PasswordReset when $wgEnableEmail is false. Previously one
@@ -112,6 +125,10 @@ production.
 * (bug 36641) Patrol page links no longer show on non-existent revisions.
 * (bug 35810) Pages not linked from Special:RecentChanges or Special:NewPages
   are patrollable now.
+* (bug 30213) JavaScript for search suggestions is now disabled when the API
+  is disabled, and AJAX patrolling and watching are now disabled when use of
+  the write API is not allowed.
+* (bug 48294) API: Fix chunk upload async mode.
 
 === API changes in 1.22 ===
 * (bug 46626) xmldoublequote parameter was removed. Because of a bug, the
@@ -145,6 +162,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.
 
+* Batak Toba (bbc-latn) added.
 * (bug 46751) Made Buryat (Russia) (буряад) (bxr) fallback to Russian.
 
 === Other changes in 1.22 ===
@@ -176,6 +194,13 @@ changes to languages because of Bugzilla reports.
   to redirect through Special:Redirect.
 * Monobook: Removed the old conditional stylesheets for Opera 6, 7 and 9.
 * Support for XHTML 1.0 has been removed. MediaWiki now only outputs (X)HTML5.
+* wikibits: User-agent related globals have been deprecated. The following
+  properties now default to false and emit mw.log.warn: is_gecko, is_chrome_mac,
+  is_chrome, webkit_version, is_safari_win, is_safari, webkit_match, is_ff2,
+  ff2_bugs, is_ff2_win, is_ff2_x11, opera95_bugs, opera7_bugs, opera6_bugs,
+  is_opera_95, is_opera_preseven, is_opera, and ie6_bugs.
+* (bug 48276) MediaWiki will now flash a confirmation message upon successfully
+  editing a page.
 
 == Compatibility ==
 
index 640d642..66b5068 100644 (file)
@@ -615,6 +615,7 @@ the user is redirected back to the page.
 
 'ArticleViewFooter': After showing the footer section of an ordinary page view
 $article: Article object
+$patrolFooterShown: boolean whether patrol footer is shown
 
 'ArticleViewHeader': Before the parser cache is about to be tried for article
 viewing.
@@ -2330,6 +2331,15 @@ database result.
 &$titleArray: set this to an object to override the default object returned
 $res: database result used to create the object
 
+'TitleQuickPermissions': Called from Title::checkQuickPermissions to add to
+or override the quick permissions check.
+$title: The Title object being accessed
+$user: The User performing the action
+$action: Action being performed
+&$errors: Array of errors
+$doExpensiveQueries: Whether to do expensive DB queries
+$short: Whether to return immediately on first error
+
 'TitleGetRestrictionTypes': Allows extensions to modify the types of protection
 that can be applied.
 $title: The title in question.
index c4b0835..f0eb568 100644 (file)
@@ -1038,9 +1038,9 @@ class Article implements Page {
                }
 
                // Show a footer allowing the user to patrol the shown revision or page if possible
-               $this->showPatrolFooter();
+               $patrolFooterShown = $this->showPatrolFooter();
 
-               wfRunHooks( 'ArticleViewFooter', array( $this ) );
+               wfRunHooks( 'ArticleViewFooter', array( $this, $patrolFooterShown ) );
 
        }
 
@@ -1050,23 +1050,25 @@ class Article implements Page {
         * desired, does nothing.
         * Side effect: When the patrol link is build, this method will call
         * OutputPage::preventClickjacking() and load mediawiki.page.patrol.ajax.
+        *
+        * @return bool
         */
        public function showPatrolFooter() {
-               global $wgUseRCPatrol, $wgUseNPPatrol, $wgRCMaxAge;
+               global $wgUseRCPatrol, $wgUseNPPatrol, $wgRCMaxAge, $wgEnableAPI, $wgEnableWriteAPI;
 
                $request = $this->getContext()->getRequest();
                $outputPage = $this->getContext()->getOutput();
                $user = $this->getContext()->getUser();
                $cache = wfGetMainCache();
 
-               // Conditions to potentially patrol the current revision
-               // patrolPage is set in case we want to patrol the first
-               // revision and not the current one (set in Special:NewPages)
+               // Normally this makes a link to patrol the revision being viewed.
+               // Sometimes, the 'patrolpage' flag is set in case we want to patrol the first
+               // revision and not the one being viewed by the user (set in Special:NewPages).
                $useRCPatrol = $wgUseRCPatrol && !$request->getBool( 'patrolpage' );
 
                if ( !$this->getTitle()->quickUserCan( 'patrol', $user ) || ( !$wgUseNPPatrol && !$wgUseRCPatrol ) ) {
                        // Patrolling is fully disabled or the user isn't allowed to
-                       return;
+                       return false;
                }
 
                wfProfileIn( __METHOD__ );
@@ -1075,7 +1077,7 @@ class Article implements Page {
                        // Check for cached results
                        if ( $cache->get( wfMemcKey( 'NotPatrollableRevId', $this->getRevIdFetched() ) ) ) {
                                wfProfileOut( __METHOD__ );
-                               return;
+                               return false;
                        }
 
                        // We make use of a little index trick over here:
@@ -1091,7 +1093,7 @@ class Article implements Page {
                                // The revision is more than 6 hours older than the Max RC age
                                // no need to torture the DB any further (6h because the RC might not be cleaned out regularly)
                                wfProfileOut( __METHOD__ );
-                               return;
+                               return false;
                        }
                        $rc = RecentChange::newFromConds(
                                array(
@@ -1115,7 +1117,7 @@ class Article implements Page {
                        // Check for cached results
                        if ( $cache->get( wfMemcKey( 'NotPatrollablePage', $this->getTitle()->getArticleID() ) ) ) {
                                wfProfileOut( __METHOD__ );
-                               return;
+                               return false;
                        }
 
                        $dbr = wfGetDB( DB_SLAVE );
@@ -1130,7 +1132,7 @@ class Article implements Page {
                                // We either didn't find the oldest revision for the given page
                                // or it's to old for the RC table (with 6h tolerance)
                                wfProfileOut( __METHOD__ );
-                               return;
+                               return false;
                        }
 
                        $rc = RecentChange::newFromConds(
@@ -1159,7 +1161,7 @@ class Article implements Page {
                                $cache->set( wfMemcKey( 'NotPatrollablePage', $this->getTitle()->getArticleID() ), '1', $wgRCMaxAge );
                        }
 
-                       return;
+                       return false;
                }
 
                $rcid = $rc->getAttribute( 'rc_id' );
@@ -1167,7 +1169,9 @@ class Article implements Page {
                $token = $user->getEditToken( $rcid );
 
                $outputPage->preventClickjacking();
-               $outputPage->addModules( 'mediawiki.page.patrol.ajax' );
+               if ( $wgEnableAPI && $wgEnableWriteAPI && $user->isAllowed( 'writeapi' ) ) {
+                       $outputPage->addModules( 'mediawiki.page.patrol.ajax' );
+               }
 
                $link = Linker::linkKnown(
                        $this->getTitle(),
@@ -1185,6 +1189,8 @@ class Article implements Page {
                                wfMessage( 'markaspatrolledlink' )->rawParams( $link )->escaped() .
                        '</div>'
                );
+
+               return true;
        }
 
        /**
index 3e08e74..e92b67d 100644 (file)
@@ -657,9 +657,9 @@ $wgAutoloadLocalClasses = array(
        # includes/job
        'Job' => 'includes/job/Job.php',
        'JobQueue' => 'includes/job/JobQueue.php',
-       'JobQueueAggregator' => 'includes/job/JobQueueAggregator.php',
-       'JobQueueAggregatorMemc' => 'includes/job/JobQueueAggregatorMemc.php',
-       'JobQueueAggregatorRedis' => 'includes/job/JobQueueAggregatorRedis.php',
+       'JobQueueAggregator' => 'includes/job/aggregator/JobQueueAggregator.php',
+       'JobQueueAggregatorMemc' => 'includes/job/aggregator/JobQueueAggregatorMemc.php',
+       'JobQueueAggregatorRedis' => 'includes/job/aggregator/JobQueueAggregatorRedis.php',
        'JobQueueDB' => 'includes/job/JobQueueDB.php',
        'JobQueueGroup' => 'includes/job/JobQueueGroup.php',
        'JobQueueFederated' => 'includes/job/JobQueueFederated.php',
index 173605c..b86de8c 100644 (file)
@@ -1589,6 +1589,35 @@ $wgDBAvgStatusPoll = 2000;
  */
 $wgDBmysql5 = false;
 
+/**
+ * Set true to enable Oracle DCRP (supported from 11gR1 onward)
+ *
+ * To use this feature set to true and use a datasource defined as
+ * POOLED (i.e. in tnsnames definition set server=pooled in connect_data
+ * block).
+ *
+ * Starting from 11gR1 you can use DCRP (Database Resident Connection
+ * Pool) that maintains established sessions and reuses them on new
+ * connections.
+ *
+ * Not completely tested, but it should fall back on normal connection
+ * in case the pool is full or the datasource is not configured as
+ * pooled.
+ * And the other way around; using oci_pconnect on a non pooled
+ * datasource should produce a normal connection.
+ *
+ * When it comes to frequent shortlived DB connections like with MW
+ * Oracle tends to s***. The problem is the driver connects to the
+ * database reasonably fast, but establishing a session takes time and
+ * resources. MW does not rely on session state (as it does not use
+ * features such as package variables) so establishing a valid session
+ * is in this case an unwanted overhead that just slows things down.
+ *
+ * @warning EXPERIMENTAL!
+ *
+ */
+$wgDBOracleDRCP = false;
+
 /**
  * Other wikis on this site, can be administered from a single developer
  * account.
@@ -4304,7 +4333,7 @@ $wgRateLimits = array(
                'user' => null, // for each logged-in user
                'newbie' => null, // for each recent (autoconfirmed) account; overrides 'user'
                'ip' => null, // for each anon and recent account
-               'subnet' => null, // ... with final octet removed
+               'subnet' => null, // ... within a /24 subnet in IPv4 or /64 in IPv6
        ),
        'move' => array(
                'user' => null,
@@ -5118,6 +5147,9 @@ $wgUseRCPatrol = true;
 /** Use new page patrolling to check new pages on Special:Newpages */
 $wgUseNPPatrol = true;
 
+/** Log autopatrol actions to the log table */
+$wgLogAutopatrol = true;
+
 /** Provide syndication feeds (RSS, Atom) for, e.g., Recentchanges, Newpages */
 $wgFeed = true;
 
index 78fcb8b..1c6f642 100644 (file)
@@ -2593,11 +2593,11 @@ function in_string( $needle, $str, $insensitive = false ) {
  * @return Bool
  */
 function wfIniGetBool( $setting ) {
-       $val = ini_get( $setting );
+       $val = strtolower( ini_get( $setting ) );
        // 'on' and 'true' can't have whitespace around them, but '1' can.
-       return strtolower( $val ) == 'on'
-               || strtolower( $val ) == 'true'
-               || strtolower( $val ) == 'yes'
+       return $val == 'on'
+               || $val == 'true'
+               || $val == 'yes'
                || preg_match( "/^\s*[+-]?0*[1-9]/", $val ); // approx C atoi() function
 }
 
index 7adbfc8..e4a77a0 100644 (file)
@@ -140,6 +140,7 @@ class HTMLForm extends ContextSource {
        protected $mSectionFooters = array();
        protected $mPost = '';
        protected $mId;
+       protected $mTableId = '';
 
        protected $mSubmitID;
        protected $mSubmitName;
@@ -200,12 +201,12 @@ class HTMLForm extends ContextSource {
                        $this->setContext( $context );
                        $this->mTitle = false; // We don't need them to set a title
                        $this->mMessagePrefix = $messagePrefix;
-               } else {
+               } elseif ( is_null( $context ) && $messagePrefix !== '' ) {
+                       $this->mMessagePrefix = $messagePrefix;
+               } elseif ( is_string( $context ) && $messagePrefix === '' ) {
                        // B/C since 1.18
-                       if ( is_string( $context ) && $messagePrefix === '' ) {
-                               // it's actually $messagePrefix
-                               $this->mMessagePrefix = $context;
-                       }
+                       // it's actually $messagePrefix
+                       $this->mMessagePrefix = $context;
                }
 
                // Expand out into a tree.
@@ -742,7 +743,7 @@ class HTMLForm extends ContextSource {
         * @return String
         */
        function getBody() {
-               return $this->displaySection( $this->mFieldTree );
+               return $this->displaySection( $this->mFieldTree, $this->mTableId );
        }
 
        /**
@@ -871,6 +872,18 @@ class HTMLForm extends ContextSource {
                return $this;
        }
 
+       /**
+        * Set the id of the \<table\> or outermost \<div\> element.
+        *
+        * @since 1.22
+        * @param string $id new value of the id attribute, or "" to remove
+        * @return HTMLForm $this for chaining calls
+        */
+       public function setTableId( $id ) {
+               $this->mTableId = $id;
+               return $this;
+       }
+
        /**
         * @param string $id DOM id for the form
         * @return HTMLForm $this for chaining calls (since 1.20)
@@ -879,6 +892,7 @@ class HTMLForm extends ContextSource {
                $this->mId = $id;
                return $this;
        }
+
        /**
         * Prompt the whole form to be wrapped in a "<fieldset>", with
         * this text as its "<legend>" element.
@@ -977,7 +991,7 @@ class HTMLForm extends ContextSource {
                                        $hasLabel = true;
                                }
                        } elseif ( is_array( $value ) ) {
-                               $section = $this->displaySection( $value, $key, "$fieldsetIDPrefix$key-" );
+                               $section = $this->displaySection( $value, "mw-htmlform-$key", "$fieldsetIDPrefix$key-" );
                                $legend = $this->getLegend( $key );
                                if ( isset( $this->mSectionHeaders[$key] ) ) {
                                        $section = $this->mSectionHeaders[$key] . $section;
@@ -1005,7 +1019,7 @@ class HTMLForm extends ContextSource {
                        );
 
                        if ( $sectionName ) {
-                               $attribs['id'] = Sanitizer::escapeId( "mw-htmlform-$sectionName" );
+                               $attribs['id'] = Sanitizer::escapeId( $sectionName );
                        }
 
                        if ( $displayFormat === 'table' ) {
@@ -1848,12 +1862,18 @@ class HTMLCheckField extends HTMLFormField {
  * are of the form "columnName-rowName"
  *
  * Options:
- *   columns:           Required list of columns in the matrix.
- *   rows:              Required list of rows in the matrix.
- *   force-options-on:  Accepts array of column-row tags to be displayed as enabled
- *                      but unavailable to change
- *   force-options-off: Accepts array of column-row tags to be displayed as disabled
- *                      but unavailable to change.
+ *   - columns
+ *     - Required list of columns in the matrix.
+ *   - rows
+ *     - Required list of rows in the matrix.
+ *   - force-options-on
+ *     - Accepts array of column-row tags to be displayed as enabled but unavailable to change
+ *   - force-options-off
+ *     - Accepts array of column-row tags to be displayed as disabled but unavailable to change.
+ *   - tooltips
+ *     - Optional array mapping row label to tooltip content
+ *   - tooltip-class
+ *     - Optional CSS class used on tooltip container span. Defaults to mw-icon-question.
  */
 class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
 
@@ -1930,8 +1950,21 @@ class HTMLCheckMatrix extends HTMLFormField implements HTMLNestedFilterable {
                }
                $tableContents .= Html::rawElement( 'tr', array(), "\n$headerContents\n" );
 
+               $tooltipClass = 'mw-icon-question';
+               if ( isset( $this->mParams['tooltip-class'] ) ) {
+                       $tooltipClass = $this->mParams['tooltip-class'];
+               }
+
                // Build the options matrix
                foreach ( $rows as $rowLabel => $rowTag ) {
+                       // Append tooltip if configured
+                       if ( isset( $this->mParams['tooltips'][$rowLabel] ) ) {
+                               $tooltipAttribs = array(
+                                       'class' => "mw-htmlform-tooltip $tooltipClass",
+                                       'title' =>  $this->mParams['tooltips'][$rowLabel],
+                               );
+                               $rowLabel .= ' ' . Html::element( 'span', $tooltipAttribs, '' );
+                       }
                        $rowContents = Html::rawElement( 'td', array(), $rowLabel );
                        foreach ( $columns as $columnTag ) {
                                $thisTag = "$columnTag-$rowTag";
index b63e658..6bb29d2 100644 (file)
@@ -1986,7 +1986,8 @@ class OutputPage extends ContextSource {
         * the object, let's actually output it:
         */
        public function output() {
-               global $wgLanguageCode, $wgDebugRedirects, $wgMimeType, $wgVaryOnXFP;
+               global $wgLanguageCode, $wgDebugRedirects, $wgMimeType, $wgVaryOnXFP,
+                       $wgUseAjax, $wgResponsiveImages;
 
                if ( $this->mDoNothing ) {
                        return;
@@ -2051,9 +2052,32 @@ class OutputPage extends ContextSource {
                if ( $this->mArticleBodyOnly ) {
                        echo $this->mBodytext;
                } else {
-                       $this->addDefaultModules();
 
                        $sk = $this->getSkin();
+                       // add skin specific modules
+                       $modules = $sk->getDefaultModules();
+
+                       // enforce various default modules for all skins
+                       $coreModules = array(
+                               // keep this list as small as possible
+                               'mediawiki.page.startup',
+                               'mediawiki.user',
+                       );
+
+                       // Support for high-density display images if enabled
+                       if ( $wgResponsiveImages ) {
+                               $coreModules[] = 'mediawiki.hidpi';
+                       }
+
+                       $this->addModules( $coreModules );
+                       foreach ( $modules as $group ) {
+                               $this->addModules( $group );
+                       }
+                       MWDebug::addModules( $this );
+                       if ( $wgUseAjax ) {
+                               // FIXME: deprecate? - not clear why this is useful
+                               wfRunHooks( 'AjaxAddScript', array( &$this ) );
+                       }
 
                        // Hook that allows last minute changes to the output page, e.g.
                        // adding of CSS or Javascript by extensions.
@@ -2553,59 +2577,6 @@ $templates
                return $ret;
        }
 
-       /**
-        * Add the default ResourceLoader modules to this object
-        */
-       private function addDefaultModules() {
-               global $wgIncludeLegacyJavaScript, $wgPreloadJavaScriptMwUtil, $wgUseAjax,
-                       $wgAjaxWatch, $wgResponsiveImages;
-
-               // Add base resources
-               $this->addModules( array(
-                       'mediawiki.user',
-                       'mediawiki.page.startup',
-                       'mediawiki.page.ready',
-               ) );
-               if ( $wgIncludeLegacyJavaScript ) {
-                       $this->addModules( 'mediawiki.legacy.wikibits' );
-               }
-
-               if ( $wgPreloadJavaScriptMwUtil ) {
-                       $this->addModules( 'mediawiki.util' );
-               }
-
-               MWDebug::addModules( $this );
-
-               // Add various resources if required
-               if ( $wgUseAjax ) {
-                       $this->addModules( 'mediawiki.legacy.ajax' );
-
-                       wfRunHooks( 'AjaxAddScript', array( &$this ) );
-
-                       if ( $wgAjaxWatch && $this->getUser()->isLoggedIn() ) {
-                               $this->addModules( 'mediawiki.page.watch.ajax' );
-                       }
-
-                       if ( !$this->getUser()->getOption( 'disablesuggest', false ) ) {
-                               $this->addModules( 'mediawiki.searchSuggest' );
-                       }
-               }
-
-               if ( $this->getUser()->getBoolOption( 'editsectiononrightclick' ) ) {
-                       $this->addModules( 'mediawiki.action.view.rightClickEdit' );
-               }
-
-               # Crazy edit-on-double-click stuff
-               if ( $this->isArticle() && $this->getUser()->getOption( 'editondblclick' ) ) {
-                       $this->addModules( 'mediawiki.action.view.dblClickEdit' );
-               }
-
-               // Support for high-density display images
-               if ( $wgResponsiveImages ) {
-                       $this->addModules( 'mediawiki.hidpi' );
-               }
-       }
-
        /**
         * Get a ResourceLoader object associated with this OutputPage
         *
index 953d9e9..b8ddf68 100644 (file)
@@ -329,7 +329,7 @@ class RecentChange {
         * @return String
         */
        public static function cleanupForIRC( $text ) {
-               return Sanitizer::decodeCharReferences( str_replace( array( "\n", "\r" ), array( "", "" ), $text ) );
+               return Sanitizer::decodeCharReferences( str_replace( array( "\n", "\r" ), array( " ", "" ), $text ) );
        }
 
        /**
index fa88c0e..ef22e0a 100644 (file)
@@ -31,8 +31,12 @@ class ScopedCallback {
 
        /**
         * @param callable $callback
+        * @throws MWException
         */
        public function __construct( $callback ) {
+               if ( !is_callable( $callback ) ) {
+                       throw new MWException( "Provided callback is not valid." );
+               }
                $this->callback = $callback;
        }
 
index 15b8545..53003c6 100644 (file)
@@ -197,6 +197,68 @@ abstract class Skin extends ContextSource {
                wfProfileOut( __METHOD__ );
        }
 
+       /**
+        * Defines the ResourceLoader modules that should be added to the skin
+        * It is recommended that skins wishing to override call parent::getDefaultModules()
+        * and substitute out any modules they wish to change by using a key to look them up
+        * @return Array of modules with helper keys for easy overriding
+        */
+       public function getDefaultModules() {
+               global $wgIncludeLegacyJavaScript, $wgPreloadJavaScriptMwUtil, $wgUseAjax,
+                       $wgAjaxWatch, $wgEnableAPI, $wgEnableWriteAPI;
+
+               $out = $this->getOutput();
+               $user = $out->getUser();
+               $modules = array(
+                       // modules that enhance the page content in some way
+                       'content' => array(
+                               'mediawiki.page.ready',
+                       ),
+                       // modules that exist for legacy reasons
+                       'legacy' => array(),
+                       // modules relating to search functionality
+                       'search' => array(),
+                       // modules relating to functionality relating to watching an article
+                       'watch' => array(),
+                       // modules which relate to the current users preferences
+                       'user' => array(),
+               );
+               if ( $wgIncludeLegacyJavaScript ) {
+                       $modules['legacy'][] = 'mediawiki.legacy.wikibits';
+               }
+
+               if ( $wgPreloadJavaScriptMwUtil ) {
+                       $modules['legacy'][] = 'mediawiki.util';
+               }
+
+               // Add various resources if required
+               if ( $wgUseAjax ) {
+                       $modules['legacy'][] = 'mediawiki.legacy.ajax';
+
+                       if ( $wgEnableAPI ) {
+                               if ( $wgEnableWriteAPI && $wgAjaxWatch && $user->isLoggedIn()
+                                       && $user->isAllowed( 'writeapi' )
+                               ) {
+                                       $modules['watch'][] = 'mediawiki.page.watch.ajax';
+                               }
+
+                               if ( !$user->getOption( 'disablesuggest', false ) ) {
+                                       $modules['search'][] = 'mediawiki.searchSuggest';
+                               }
+                       }
+               }
+
+               if ( $user->getBoolOption( 'editsectiononrightclick' ) ) {
+                       $modules['user'][] = 'mediawiki.action.view.rightClickEdit';
+               }
+
+               // Crazy edit-on-double-click stuff
+               if ( $out->isArticle() && $user->getOption( 'editondblclick' ) ) {
+                       $modules['user'][] = 'mediawiki.action.view.dblClickEdit';
+               }
+               return $modules;
+       }
+
        /**
         * Preload the existence of three commonly-requested pages in a single query
         */
index 66a6ce5..29e810e 100644 (file)
@@ -1739,6 +1739,10 @@ class Title {
         * @return Array list of errors
         */
        private function checkQuickPermissions( $action, $user, $errors, $doExpensiveQueries, $short ) {
+               if ( !wfRunHooks( 'TitleQuickPermissions', array( $this, $user, $action, &$errors, $doExpensiveQueries, $short ) ) ) {
+                       return $errors;
+               }
+
                if ( $action == 'create' ) {
                        if (
                                ( $this->isTalkPage() && !$user->isAllowed( 'createtalk' ) ) ||
index a2d438c..c6d4336 100644 (file)
@@ -1499,7 +1499,6 @@ class User {
                $limits = $wgRateLimits[$action];
                $keys = array();
                $id = $this->getId();
-               $ip = $this->getRequest()->getIP();
                $userLimit = false;
 
                if ( isset( $limits['anon'] ) && $id == 0 ) {
@@ -1514,12 +1513,23 @@ class User {
                                $keys[wfMemcKey( 'limiter', $action, 'user', $id )] = $limits['newbie'];
                        }
                        if ( isset( $limits['ip'] ) ) {
+                               $ip = $this->getRequest()->getIP();
                                $keys["mediawiki:limiter:$action:ip:$ip"] = $limits['ip'];
                        }
-                       $matches = array();
-                       if ( isset( $limits['subnet'] ) && preg_match( '/^(\d+\.\d+\.\d+)\.\d+$/', $ip, $matches ) ) {
-                               $subnet = $matches[1];
-                               $keys["mediawiki:limiter:$action:subnet:$subnet"] = $limits['subnet'];
+                       if ( isset( $limits['subnet'] ) ) {
+                               $ip = $this->getRequest()->getIP();
+                               $matches = array();
+                               $subnet = false;
+                               if ( IP::isIPv6( $ip ) ) {
+                                       $parts = IP::parseRange( "$ip/64" );
+                                       $subnet = $parts[0];
+                               } elseif ( preg_match( '/^(\d+\.\d+\.\d+)\.\d+$/', $ip, $matches ) ) {
+                                       // IPv4
+                                       $subnet = $matches[1];
+                               }
+                               if ( $subnet !== false ) {
+                                       $keys["mediawiki:limiter:$action:subnet:$subnet"] = $limits['subnet'];
+                               }
                        }
                }
                // Check for group-specific permissions
@@ -4315,6 +4325,7 @@ class User {
         *       no matter the value of $wgUser
         *     - 'create2' for a logged in user creating an account for someone else
         *     - 'byemail' when the created user will receive its password by e-mail
+        *     - 'autocreate' when the user is automatically created (such as by CentralAuth).
         *   - Boolean means whether the account was created by e-mail (deprecated):
         *     - true will be converted to 'byemail'
         *     - false will be converted to 'create' if this object is the same as
index 20ee5e5..72042a7 100644 (file)
@@ -1098,19 +1098,21 @@ HTML;
                                array_unshift( $ipchain, $ip );
                        }
 
-                       # Step through XFF list and find the last address in the list which is a trusted server
-                       # Set $ip to the IP address given by that trusted server, unless the address is not sensible (e.g. private)
+                       # Step through XFF list and find the last address in the list which is a
+                       # trusted server. Set $ip to the IP address given by that trusted server,
+                       # unless the address is not sensible (e.g. private). However, prefer private
+                       # IP addresses over proxy servers controlled by this site (more sensible).
                        foreach ( $ipchain as $i => $curIP ) {
                                $curIP = IP::canonicalize( $curIP );
-                               if ( wfIsTrustedProxy( $curIP ) ) {
-                                       if ( isset( $ipchain[$i + 1] ) ) {
-                                               if ( $wgUsePrivateIPs || IP::isPublic( $ipchain[$i + 1] ) ) {
-                                                       $ip = $ipchain[$i + 1];
-                                               }
+                               if ( wfIsTrustedProxy( $curIP ) && isset( $ipchain[$i + 1] ) ) {
+                                       if ( wfIsConfiguredProxy( $curIP ) || // bug 48919
+                                               ( IP::isPublic( $ipchain[$i + 1] ) || $wgUsePrivateIPs )
+                                       ) {
+                                               $ip = IP::canonicalize( $ipchain[$i + 1] );
+                                               continue;
                                        }
-                               } else {
-                                       break;
                                }
+                               break;
                        }
                }
 
index 7e7365f..c8b05e8 100644 (file)
@@ -304,7 +304,7 @@ abstract class ApiBase extends ContextSource {
                        }
 
                        $examples = $this->getExamples();
-                       if ( $examples !== false && $examples !== '' ) {
+                       if ( $examples ) {
                                if ( !is_array( $examples ) ) {
                                        $examples = array(
                                                $examples
index e04c762..8f71fbe 100644 (file)
@@ -216,27 +216,27 @@ class ApiUpload extends ApiBase {
                // Check we added the last chunk:
                if ( $this->mParams['offset'] + $chunkSize == $this->mParams['filesize'] ) {
                        if ( $this->mParams['async'] ) {
-                               $progress = UploadBase::getSessionStatus( $this->mParams['filekey'] );
+                               $progress = UploadBase::getSessionStatus( $filekey );
                                if ( $progress && $progress['result'] === 'Poll' ) {
                                        $this->dieUsage( "Chunk assembly already in progress.", 'stashfailed' );
                                }
                                UploadBase::setSessionStatus(
-                                       $this->mParams['filekey'],
+                                       $filekey,
                                        array( 'result' => 'Poll',
                                                'stage' => 'queued', 'status' => Status::newGood() )
                                );
                                $ok = JobQueueGroup::singleton()->push( new AssembleUploadChunksJob(
-                                       Title::makeTitle( NS_FILE, $this->mParams['filekey'] ),
+                                       Title::makeTitle( NS_FILE, $filekey ),
                                        array(
                                                'filename' => $this->mParams['filename'],
-                                               'filekey' => $this->mParams['filekey'],
+                                               'filekey' => $filekey,
                                                'session' => $this->getContext()->exportSession()
                                        )
                                ) );
                                if ( $ok ) {
                                        $result['result'] = 'Poll';
                                } else {
-                                       UploadBase::setSessionStatus( $this->mParams['filekey'], false );
+                                       UploadBase::setSessionStatus( $filekey, false );
                                        $this->dieUsage(
                                                "Failed to start AssembleUploadChunks.php", 'stashfailed' );
                                }
index 31982e0..6ac7e7a 100644 (file)
@@ -37,16 +37,41 @@ class LinkCache {
        private $mForUpdate = false;
 
        /**
-        * Get an instance of this class
+        * @var LinkCache
+        */
+       protected static $instance;
+
+       /**
+        * Get an instance of this class.
         *
         * @return LinkCache
         */
        static function &singleton() {
-               static $instance;
-               if ( !isset( $instance ) ) {
-                       $instance = new LinkCache;
+               if ( self::$instance ) {
+                       return self::$instance;
                }
-               return $instance;
+               self::$instance = new LinkCache;
+               return self::$instance;
+       }
+
+       /**
+        * Destroy the singleton instance, a new one will be created next time
+        * singleton() is called.
+        * @since 1.22
+        */
+       static function destroySingleton() {
+               self::$instance = null;
+       }
+
+       /**
+        * Set the singleton instance to a given object.
+        * Since we do not have an interface for LinkCache, you have to be sure the
+        * given object implements all the LinkCache public methods.
+        * @param LinkCache $instance
+        * @since 1.22
+        */
+       static function setSingleton( LinkCache $instance ) {
+               self::$instance = $instance;
        }
 
        /**
index 307d301..7dc8d05 100644 (file)
  */
 
 /**
- *
+ * MediaWiki message cache structure version.
+ * Bump this whenever the message cache format has changed.
+ */
+define( 'MSG_CACHE_VERSION', 1 );
+
+/**
+ * Memcached timeout when loading a key.
+ * See MessageCache::load()
  */
 define( 'MSG_LOAD_TIMEOUT', 60 );
+
+/**
+ * Memcached timeout when locking a key for a writing operation.
+ * See MessageCache::lock()
+ */
 define( 'MSG_LOCK_TIMEOUT', 30 );
+/**
+ * Number of times we will try to acquire a lock from Memcached.
+ * This comes in addition to MSG_LOCK_TIMEOUT.
+ */
 define( 'MSG_WAIT_TIMEOUT', 30 );
-define( 'MSG_CACHE_VERSION', 1 );
 
 /**
  * Message cache
@@ -44,10 +59,16 @@ class MessageCache {
         */
        protected $mCache;
 
-       // Should  mean that database cannot be used, but check
+       /**
+        * Should  mean that database cannot be used, but check
+        * @var bool $mDisable
+        */
        protected $mDisable;
 
-       /// Lifetime for cache, used by object caching
+       /**
+        * Lifetime for cache, used by object caching.
+        * Set on construction, see __construct().
+        */
        protected $mExpiry;
 
        /**
@@ -56,18 +77,21 @@ class MessageCache {
         */
        protected $mParserOptions, $mParser;
 
-       /// Variable for tracking which variables are already loaded
+       /**
+        * Variable for tracking which variables are already loaded
+        * @var array $mLoadedLanguages
+        */
        protected $mLoadedLanguages = array();
 
        /**
         * Singleton instance
         *
-        * @var MessageCache
+        * @var MessageCache $instance
         */
        private static $instance;
 
        /**
-        * @var bool
+        * @var bool $mInParser
         */
        protected $mInParser = false;
 
@@ -98,6 +122,11 @@ class MessageCache {
                self::$instance = null;
        }
 
+       /**
+        * @param ObjectCache $memCached A cache instance. If none, fall back to CACHE_NONE.
+        * @param bool $useDB
+        * @param int $expiry Lifetime for cache. @see $mExpiry.
+        */
        function __construct( $memCached, $useDB, $expiry ) {
                if ( !$memCached ) {
                        $memCached = wfGetCache( CACHE_NONE );
@@ -592,7 +621,10 @@ class MessageCache {
        }
 
        /**
-        * Represents a write lock on the messages key
+        * Represents a write lock on the messages key.
+        *
+        * Will retry MessageCache::MSG_WAIT_TIMEOUT times, each operations having
+        * a timeout of MessageCache::MSG_LOCK_TIMEOUT.
         *
         * @param string $key
         * @return Boolean: success
index 65fe58f..da4621a 100644 (file)
  * @since 1.21
  */
 class RedisConnectionPool {
-       // Settings for all connections in this pool
-       protected $connectTimeout; // string; connection timeout
-       protected $persistent; // bool; whether connections persist
-       protected $password; // string; plaintext auth password
-       protected $serializer; // integer; the serializer to use (Redis::SERIALIZER_*)
+       /**
+        * @name Pool settings.
+        * Settings there are shared for any connection made in this pool.
+        * See the singleton() method documentation for more details.
+        * @{
+        */
+       /** @var string Connection timeout in seconds */
+       protected $connectTimeout;
+       /** @var string Plaintext auth password */
+       protected $password;
+       /** @var bool Whether connections persist */
+       protected $persistent;
+       /** @var integer Serializer to use (Redis::SERIALIZER_*) */
+       protected $serializer;
+       /** @} */
 
-       protected $idlePoolSize = 0; // integer; current idle pool size
+       /** @var integer Current idle pool size */
+       protected $idlePoolSize = 0;
 
        /** @var Array (server name => ((connection info array),...) */
        protected $connections = array();
        /** @var Array (server name => UNIX timestamp) */
        protected $downServers = array();
 
-       /** @var Array */
-       protected static $instances = array(); // (pool ID => RedisConnectionPool)
+       /** @var Array (pool ID => RedisConnectionPool) */
+       protected static $instances = array();
 
-       const SERVER_DOWN_TTL = 30; // integer; seconds to cache servers as "down"
+       /** integer; seconds to cache servers as "down". */
+       const SERVER_DOWN_TTL = 30;
 
        /**
         * @param array $options
index 4fa2397..c0d3805 100644 (file)
@@ -249,6 +249,7 @@ class DatabaseOracle extends DatabaseBase {
         * @return DatabaseBase|null
         */
        function open( $server, $user, $password, $dbName ) {
+               global $wgDBOracleDRCP;
                if ( !function_exists( 'oci_connect' ) ) {
                        throw new DBConnectionError( $this, "Oracle functions missing, have you compiled PHP with the --with-oci8 option?\n (Note: if you recently installed PHP, you may need to restart your webserver and database)\n" );
                }
@@ -276,9 +277,16 @@ class DatabaseOracle extends DatabaseBase {
                        return;
                }
 
+               if ( $wgDBOracleDRCP ) {
+                       $this->setFlag( DBO_PERSISTENT );
+               }
+
                $session_mode = $this->mFlags & DBO_SYSDBA ? OCI_SYSDBA : OCI_DEFAULT;
+
                wfSuppressWarnings();
-               if ( $this->mFlags & DBO_DEFAULT ) {
+               if ( $this->mFlags & DBO_PERSISTENT ) {
+                       $this->mConn = oci_pconnect( $this->mUser, $this->mPassword, $this->mServer, $this->defaultCharset, $session_mode );
+               } else if ( $this->mFlags & DBO_DEFAULT ) {
                        $this->mConn = oci_new_connect( $this->mUser, $this->mPassword, $this->mServer, $this->defaultCharset, $session_mode );
                } else {
                        $this->mConn = oci_connect( $this->mUser, $this->mPassword, $this->mServer, $this->defaultCharset, $session_mode );
index d75a126..ec9a62a 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Debug toolbar related code
+ * Debug toolbar related 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
@@ -21,7 +21,7 @@
  */
 
 /**
- * New debugger system that outputs a toolbar on page view
+ * New debugger system that outputs a toolbar on page view.
  *
  * By default, most methods do nothing ( self::$enabled = false ). You have
  * to explicitly call MWDebug::init() to enabled them.
@@ -35,28 +35,28 @@ class MWDebug {
        /**
         * Log lines
         *
-        * @var array
+        * @var array $log
         */
        protected static $log = array();
 
        /**
-        * Debug messages from wfDebug()
+        * Debug messages from wfDebug().
         *
-        * @var array
+        * @var array $debug
         */
        protected static $debug = array();
 
        /**
-        * Queries
+        * SQL statements of the databses queries.
         *
-        * @var array
+        * @var array $query
         */
        protected static $query = array();
 
        /**
         * Is the debugger enabled?
         *
-        * @var bool
+        * @var bool $enabled
         */
        protected static $enabled = false;
 
@@ -64,7 +64,7 @@ class MWDebug {
         * Array of functions that have already been warned, formatted
         * function-caller to prevent a buttload of warnings
         *
-        * @var array
+        * @var array $deprecationWarnings
         */
        protected static $deprecationWarnings = array();
 
index c551107..5cdc0b6 100644 (file)
@@ -410,7 +410,7 @@ class DifferenceEngine extends ContextSource {
         * @return String
         */
        protected function markPatrolledLink() {
-               global $wgUseRCPatrol, $wgRCMaxAge;
+               global $wgUseRCPatrol, $wgRCMaxAge, $wgEnableAPI, $wgEnableWriteAPI;
                $cache = wfGetMainCache();
 
                if ( $this->mMarkPatrolledLink === null ) {
@@ -447,7 +447,11 @@ class DifferenceEngine extends ContextSource {
                                // Build the link
                                if ( $rcid ) {
                                        $this->getOutput()->preventClickjacking();
-                                       $this->getOutput()->addModules( 'mediawiki.page.patrol.ajax' );
+                                       if ( $wgEnableAPI && $wgEnableWriteAPI
+                                               && $this->getUser()->isAllowed( 'writeapi' )
+                                       ) {
+                                               $this->getOutput()->addModules( 'mediawiki.page.patrol.ajax' );
+                                       }
 
                                        $token = $this->getUser()->getEditToken( $rcid );
                                        $this->mMarkPatrolledLink = ' <span class="patrollink">[' . Linker::linkKnown(
index d5b1ea5..868e4da 100644 (file)
@@ -261,7 +261,7 @@ If you do not see the database system you are trying to use listed below, then f
        'config-missing-db-host'          => 'You must enter a value for "Database host"',
        'config-missing-db-server-oracle' => 'You must enter a value for "Database TNS"',
        'config-invalid-db-server-oracle' => 'Invalid database TNS "$1".
-Use only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_) and dots (.).',
+Use either "TNS Name" or an "Easy Connect" string ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle Naming Methods])',
        'config-invalid-db-name'          => 'Invalid database name "$1".
 Use only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_) and hyphens (-).',
        'config-invalid-db-prefix'        => 'Invalid database prefix "$1".
@@ -10164,6 +10164,7 @@ I seguenti collegamenti sono in lingua inglese:
 
 /** Japanese (日本語)
  * @author Aphaia
+ * @author Fryed-peach
  * @author Iwai.masaharu
  * @author Mizusumashi
  * @author Ninomy
@@ -10265,6 +10266,7 @@ Unicode を少しでも利用する可能性がある場合は、[//www.mediawik
 共有サーバーを使用している場合は、適切なデータベース ドライバーのインストールを、サーバーの管理者に依頼してください。
 PHP を自分でコンパイルした場合は、例えば <code>./configure --with-mysql</code> を実行して、データベース クライアントを使用できるように再設定してください。
 Debian または Ubuntu のパッケージから PHP をインストールした場合は、php5-mysql モジュールもインストールする必要があります。',
+       'config-outdated-sqlite' => "'''警告:''' あなたは SQLite $1 を使っていますが、最低限要求されるバージョンである $2 未満となっています。SQLite は利用できません。",
        'config-no-fts3' => "'''警告:''' SQLite は [//sqlite.org/fts3.html FTS3] モジュールなしでコンパイルされており、このバックエンドでは検索機能は利用できなくなります。",
        'config-register-globals' => "'''警告: PHP の <code>[http://php.net/register_globals register_globals]</code> オプションが有効になっています。'''
 '''可能なら無効化してください。'''
@@ -10528,7 +10530,7 @@ chmod a+w $3</pre>',
        'config-optional-continue' => '私にもっと質問してください。',
        'config-optional-skip' => 'もう飽きてしまったので、とにかくウィキをインストールしてください。',
        'config-profile' => '利用者権限のプロファイル:',
-       'config-profile-wiki' => '伝統的なウィキ', # Fuzzy
+       'config-profile-wiki' => '公開ウィキ',
        'config-profile-no-anon' => 'アカウントの作成が必要',
        'config-profile-fishbowl' => '承認された編集者のみ',
        'config-profile-private' => '非公開ウィキ',
@@ -17035,11 +17037,27 @@ $messages['roa-tara'] = array(
        'config-information' => "'Mbormaziune",
        'config-localsettings-key' => 'Chiave de aggiornamende:',
        'config-localsettings-badkey' => "'A chiave ca è date non g'è corrette.",
+       'config-session-error' => "Errore facenne accumenzà 'a sessione: $1",
        'config-your-language' => "'A lènga toje:",
        'config-your-language-help' => "Scacchie 'na lènghe da ausà duranne 'u processe de installazzione:",
        'config-wiki-language' => 'Lènga de Uicchi:',
+       'config-back' => '← Rrète',
+       'config-continue' => 'Condinue →',
        'config-page-language' => 'Lènghe',
+       'config-page-welcome' => "Bovègne jndr'à MediaUicchi!",
+       'config-page-dbconnect' => "Collegate a 'u database",
+       'config-page-upgrade' => "Aggiorne l'installazzione esistende",
+       'config-page-dbsettings' => "'Mbostaziune d'u database",
        'config-page-name' => 'Nome',
+       'config-page-options' => 'Opziune',
+       'config-page-install' => 'Installe',
+       'config-page-complete' => 'Combletate!',
+       'config-page-restart' => "Riavvie l'installazzione",
+       'config-page-readme' => 'Liggeme',
+       'config-page-releasenotes' => 'Note de rilasce',
+       'config-page-copying' => 'Stoche a copie',
+       'config-page-upgradedoc' => 'Aggiornamende',
+       'config-page-existingwiki' => 'Uicchi esistende',
        'config-db-type' => 'Tipe de database:',
        'config-db-charset' => "'Nzieme de carattere d'u database",
        'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binary',
index e85d07f..e34bed3 100644 (file)
@@ -86,7 +86,7 @@ class OracleInstaller extends DatabaseInstaller {
                $status = Status::newGood();
                if ( !strlen( $newValues['wgDBserver'] ) ) {
                        $status->fatal( 'config-missing-db-server-oracle' );
-               } elseif ( !preg_match( '/^[a-zA-Z0-9_\.]+$/', $newValues['wgDBserver'] ) ) {
+               } elseif ( !self::checkConnectStringFormat( $newValues['wgDBserver'] ) ) {
                        $status->fatal( 'config-invalid-db-server-oracle', $newValues['wgDBserver'] );
                }
                if ( !preg_match( '/^[a-zA-Z0-9_]*$/', $newValues['wgDBprefix'] ) ) {
@@ -296,4 +296,24 @@ class OracleInstaller extends DatabaseInstaller {
 ";
        }
 
+       /**
+        * Function checks the format of Oracle connect string
+        * The actual validity of the string is checked by attempting to connect
+        *
+        * Regex should be able to validate all connect string formats
+        * [//](host|tns_name)[:port][/service_name][:POOLED]
+        * http://www.orafaq.com/wiki/EZCONNECT
+        *
+        * @since 1.22
+        *
+        * @param string $connect_string
+        *
+        * @return bool Whether the connection string is valid.
+        */
+       public static function checkConnectStringFormat( $connect_string ) {
+               $isValid  = preg_match( '/^[[:alpha:]][\w\-]*(?:\.[[:alpha:]][\w\-]*){0,2}$/', $connect_string ); // TNS name
+               $isValid |= preg_match( '/^(?:\/\/)?[\w\-\.]+(?::[\d]+)?(?:\/(?:[\w\-\.]+(?::(pooled|dedicated|shared))?)?(?:\/[\w\-\.]+)?)?$/', $connect_string ); // EZConnect
+               return (bool)$isValid;
+       }
+
 }
index 56d9f21..be10e04 100644 (file)
@@ -205,7 +205,9 @@ class OracleUpdater extends DatabaseUpdater {
 
                $meta = $this->db->query( 'SELECT column_name FROM all_cons_columns WHERE owner = \'' .
                        strtoupper( $this->db->getDBname() ) .
-                       '\' AND constraint_name = \'MW_PAGE_RESTRICTIONS_PK\' AND rownum = 1'
+                       '\' AND constraint_name = \'' .
+                       $this->db->tablePrefix() .
+                       'PAGE_RESTRICTIONS_PK\' AND rownum = 1'
                );
                $row = $meta->fetchRow();
                if ( $row['column_name'] == 'PR_ID' ) {
diff --git a/includes/job/JobQueueAggregator.php b/includes/job/JobQueueAggregator.php
deleted file mode 100644 (file)
index a8186ab..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-/**
- * Job queue aggregator code.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Aaron Schulz
- */
-
-/**
- * Class to handle tracking information about all queues
- *
- * @ingroup JobQueue
- * @since 1.21
- */
-abstract class JobQueueAggregator {
-       /** @var JobQueueAggregator */
-       protected static $instance = null;
-
-       /**
-        * @param array $params
-        */
-       protected function __construct( array $params ) {}
-
-       /**
-        * @return JobQueueAggregator
-        */
-       final public static function singleton() {
-               global $wgJobQueueAggregator;
-
-               if ( !isset( self::$instance ) ) {
-                       $class = $wgJobQueueAggregator['class'];
-                       $obj = new $class( $wgJobQueueAggregator );
-                       if ( !( $obj instanceof JobQueueAggregator ) ) {
-                               throw new MWException( "Class '$class' is not a JobQueueAggregator class." );
-                       }
-                       self::$instance = $obj;
-               }
-
-               return self::$instance;
-       }
-
-       /**
-        * Destroy the singleton instance
-        *
-        * @return void
-        */
-       final public static function destroySingleton() {
-               self::$instance = null;
-       }
-
-       /**
-        * Mark a queue as being empty
-        *
-        * @param string $wiki
-        * @param string $type
-        * @return bool Success
-        */
-       final public function notifyQueueEmpty( $wiki, $type ) {
-               wfProfileIn( __METHOD__ );
-               $ok = $this->doNotifyQueueEmpty( $wiki, $type );
-               wfProfileOut( __METHOD__ );
-               return $ok;
-       }
-
-       /**
-        * @see JobQueueAggregator::notifyQueueEmpty()
-        */
-       abstract protected function doNotifyQueueEmpty( $wiki, $type );
-
-       /**
-        * Mark a queue as being non-empty
-        *
-        * @param string $wiki
-        * @param string $type
-        * @return bool Success
-        */
-       final public function notifyQueueNonEmpty( $wiki, $type ) {
-               wfProfileIn( __METHOD__ );
-               $ok = $this->doNotifyQueueNonEmpty( $wiki, $type );
-               wfProfileOut( __METHOD__ );
-               return $ok;
-       }
-
-       /**
-        * @see JobQueueAggregator::notifyQueueNonEmpty()
-        */
-       abstract protected function doNotifyQueueNonEmpty( $wiki, $type );
-
-       /**
-        * Get the list of all of the queues with jobs
-        *
-        * @return Array (job type => (list of wiki IDs))
-        */
-       final public function getAllReadyWikiQueues() {
-               wfProfileIn( __METHOD__ );
-               $res = $this->doGetAllReadyWikiQueues();
-               wfProfileOut( __METHOD__ );
-               return $res;
-       }
-
-       /**
-        * @see JobQueueAggregator::getAllReadyWikiQueues()
-        */
-       abstract protected function doGetAllReadyWikiQueues();
-
-       /**
-        * Purge all of the aggregator information
-        *
-        * @return bool Success
-        */
-       final public function purge() {
-               wfProfileIn( __METHOD__ );
-               $res = $this->doPurge();
-               wfProfileOut( __METHOD__ );
-               return $res;
-       }
-
-       /**
-        * @see JobQueueAggregator::purge()
-        */
-       abstract protected function doPurge();
-
-       /**
-        * Get all databases that have a pending job.
-        * This poll all the queues and is this expensive.
-        *
-        * @return Array (job type => (list of wiki IDs))
-        */
-       protected function findPendingWikiQueues() {
-               global $wgLocalDatabases;
-
-               $pendingDBs = array(); // (job type => (db list))
-               foreach ( $wgLocalDatabases as $db ) {
-                       foreach ( JobQueueGroup::singleton( $db )->getQueuesWithJobs() as $type ) {
-                               $pendingDBs[$type][] = $db;
-                       }
-               }
-
-               return $pendingDBs;
-       }
-}
diff --git a/includes/job/JobQueueAggregatorMemc.php b/includes/job/JobQueueAggregatorMemc.php
deleted file mode 100644 (file)
index 9434da0..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-/**
- * Job queue aggregator code that uses BagOStuff.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Aaron Schulz
- */
-
-/**
- * Class to handle tracking information about all queues using BagOStuff
- *
- * @ingroup JobQueue
- * @since 1.21
- */
-class JobQueueAggregatorMemc extends JobQueueAggregator {
-       /** @var BagOStuff */
-       protected $cache;
-
-       protected $cacheTTL; // integer; seconds
-
-       /**
-        * @params include:
-        *   - objectCache : Name of an object cache registered in $wgObjectCaches.
-        *                   This defaults to the one specified by $wgMainCacheType.
-        *   - cacheTTL    : Seconds to cache the aggregate data before regenerating.
-        * @param array $params
-        */
-       protected function __construct( array $params ) {
-               parent::__construct( $params );
-               $this->cache = isset( $params['objectCache'] )
-                       ? wfGetCache( $params['objectCache'] )
-                       : wfGetMainCache();
-               $this->cacheTTL = isset( $params['cacheTTL'] ) ? $params['cacheTTL'] : 180; // 3 min
-       }
-
-       /**
-        * @see JobQueueAggregator::doNotifyQueueEmpty()
-        */
-       protected function doNotifyQueueEmpty( $wiki, $type ) {
-               $key = $this->getReadyQueueCacheKey();
-               // Delist the queue from the "ready queue" list
-               if ( $this->cache->add( "$key:lock", 1, 60 ) ) { // lock
-                       $curInfo = $this->cache->get( $key );
-                       if ( is_array( $curInfo ) && isset( $curInfo['pendingDBs'][$type] ) ) {
-                               if ( in_array( $wiki, $curInfo['pendingDBs'][$type] ) ) {
-                                       $curInfo['pendingDBs'][$type] = array_diff(
-                                               $curInfo['pendingDBs'][$type], array( $wiki ) );
-                                       $this->cache->set( $key, $curInfo );
-                               }
-                       }
-                       $this->cache->delete( "$key:lock" ); // unlock
-               }
-               return true;
-       }
-
-       /**
-        * @see JobQueueAggregator::doNotifyQueueNonEmpty()
-        */
-       protected function doNotifyQueueNonEmpty( $wiki, $type ) {
-               return true; // updated periodically
-       }
-
-       /**
-        * @see JobQueueAggregator::doAllGetReadyWikiQueues()
-        */
-       protected function doGetAllReadyWikiQueues() {
-               $key = $this->getReadyQueueCacheKey();
-               // If the cache entry wasn't present, is stale, or in .1% of cases otherwise,
-               // regenerate the cache. Use any available stale cache if another process is
-               // currently regenerating the pending DB information.
-               $pendingDbInfo = $this->cache->get( $key );
-               if ( !is_array( $pendingDbInfo )
-                       || ( time() - $pendingDbInfo['timestamp'] ) > $this->cacheTTL
-                       || mt_rand( 0, 999 ) == 0
-               ) {
-                       if ( $this->cache->add( "$key:rebuild", 1, 1800 ) ) { // lock
-                               $pendingDbInfo = array(
-                                       'pendingDBs' => $this->findPendingWikiQueues(),
-                                       'timestamp' => time()
-                               );
-                               for ( $attempts = 1; $attempts <= 25; ++$attempts ) {
-                                       if ( $this->cache->add( "$key:lock", 1, 60 ) ) { // lock
-                                               $this->cache->set( $key, $pendingDbInfo );
-                                               $this->cache->delete( "$key:lock" ); // unlock
-                                               break;
-                                       }
-                               }
-                               $this->cache->delete( "$key:rebuild" ); // unlock
-                       }
-               }
-               return is_array( $pendingDbInfo )
-                       ? $pendingDbInfo['pendingDBs']
-                       : array(); // cache is both empty and locked
-       }
-
-       /**
-        * @see JobQueueAggregator::doPurge()
-        */
-       protected function doPurge() {
-               return $this->cache->delete( $this->getReadyQueueCacheKey() );
-       }
-
-       /**
-        * @return string
-        */
-       private function getReadyQueueCacheKey() {
-               return "jobqueue:aggregator:ready-queues:v1"; // global
-       }
-}
diff --git a/includes/job/JobQueueAggregatorRedis.php b/includes/job/JobQueueAggregatorRedis.php
deleted file mode 100644 (file)
index c6a799d..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-<?php
-/**
- * Job queue aggregator code that uses PhpRedis.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Aaron Schulz
- */
-
-/**
- * Class to handle tracking information about all queues using PhpRedis
- *
- * @ingroup JobQueue
- * @ingroup Redis
- * @since 1.21
- */
-class JobQueueAggregatorRedis extends JobQueueAggregator {
-       /** @var RedisConnectionPool */
-       protected $redisPool;
-
-       /**
-        * @params include:
-        *   - redisConfig : An array of parameters to RedisConnectionPool::__construct().
-        *   - redisServer : A hostname/port combination or the absolute path of a UNIX socket.
-        *                   If a hostname is specified but no port, the standard port number
-        *                   6379 will be used. Required.
-        * @param array $params
-        */
-       protected function __construct( array $params ) {
-               parent::__construct( $params );
-               $this->server = $params['redisServer'];
-               $this->redisPool = RedisConnectionPool::singleton( $params['redisConfig'] );
-       }
-
-       /**
-        * @see JobQueueAggregator::doNotifyQueueEmpty()
-        */
-       protected function doNotifyQueueEmpty( $wiki, $type ) {
-               $conn = $this->getConnection();
-               if ( !$conn ) {
-                       return false;
-               }
-               try {
-                       $conn->hDel( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ) );
-                       return true;
-               } catch ( RedisException $e ) {
-                       $this->handleException( $conn, $e );
-                       return false;
-               }
-       }
-
-       /**
-        * @see JobQueueAggregator::doNotifyQueueNonEmpty()
-        */
-       protected function doNotifyQueueNonEmpty( $wiki, $type ) {
-               $conn = $this->getConnection();
-               if ( !$conn ) {
-                       return false;
-               }
-               try {
-                       $conn->hSet( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ), time() );
-                       return true;
-               } catch ( RedisException $e ) {
-                       $this->handleException( $conn, $e );
-                       return false;
-               }
-       }
-
-       /**
-        * @see JobQueueAggregator::doAllGetReadyWikiQueues()
-        */
-       protected function doGetAllReadyWikiQueues() {
-               $conn = $this->getConnection();
-               if ( !$conn ) {
-                       return array();
-               }
-               try {
-                       $conn->multi( Redis::PIPELINE );
-                       $conn->exists( $this->getReadyQueueKey() );
-                       $conn->hGetAll( $this->getReadyQueueKey() );
-                       list( $exists, $map ) = $conn->exec();
-
-                       if ( $exists ) { // cache hit
-                               $pendingDBs = array(); // (type => list of wikis)
-                               foreach ( $map as $key => $time ) {
-                                       list( $type, $wiki ) = $this->dencQueueName( $key );
-                                       $pendingDBs[$type][] = $wiki;
-                               }
-                       } else { // cache miss
-                               // Avoid duplicated effort
-                               $conn->multi( Redis::MULTI );
-                               $conn->setnx( $this->getReadyQueueKey() . ":lock", 1 );
-                               $conn->expire( $this->getReadyQueueKey() . ":lock", 3600 );
-                               if ( $conn->exec() !== array( true, true ) ) { // lock
-                                       return array(); // already in progress
-                               }
-
-                               $pendingDBs = $this->findPendingWikiQueues(); // (type => list of wikis)
-
-                               $conn->delete( $this->getReadyQueueKey() . ":lock" ); // unlock
-
-                               $now = time();
-                               $map = array();
-                               foreach ( $pendingDBs as $type => $wikis ) {
-                                       foreach ( $wikis as $wiki ) {
-                                               $map[$this->encQueueName( $type, $wiki )] = $now;
-                                       }
-                               }
-                               $conn->hMSet( $this->getReadyQueueKey(), $map );
-                       }
-
-                       return $pendingDBs;
-               } catch ( RedisException $e ) {
-                       $this->handleException( $conn, $e );
-                       return array();
-               }
-       }
-
-       /**
-        * @see JobQueueAggregator::doPurge()
-        */
-       protected function doPurge() {
-               $conn = $this->getConnection();
-               if ( !$conn ) {
-                       return false;
-               }
-               try {
-                       $conn->delete( $this->getReadyQueueKey() );
-               } catch ( RedisException $e ) {
-                       $this->handleException( $conn, $e );
-                       return false;
-               }
-               return true;
-       }
-
-       /**
-        * Get a connection to the server that handles all sub-queues for this queue
-        *
-        * @return Array (server name, Redis instance)
-        * @throws MWException
-        */
-       protected function getConnection() {
-               return $this->redisPool->getConnection( $this->server );
-       }
-
-       /**
-        * @param RedisConnRef $conn
-        * @param RedisException $e
-        * @return void
-        */
-       protected function handleException( RedisConnRef $conn, $e ) {
-               $this->redisPool->handleException( $this->server, $conn, $e );
-       }
-
-       /**
-        * @return string
-        */
-       private function getReadyQueueKey() {
-               return "jobqueue:aggregator:h-ready-queues:v1"; // global
-       }
-
-       /**
-        * @param string $type
-        * @param string $wiki
-        * @return string
-        */
-       private function encQueueName( $type, $wiki ) {
-               return rawurlencode( $type ) . '/' . rawurlencode( $wiki );
-       }
-
-       /**
-        * @param string $name
-        * @return string
-        */
-       private function dencQueueName( $name ) {
-               list( $type, $wiki ) = explode( '/', $name, 2 );
-               return array( rawurldecode( $type ), rawurldecode( $wiki ) );
-       }
-}
diff --git a/includes/job/aggregator/JobQueueAggregator.php b/includes/job/aggregator/JobQueueAggregator.php
new file mode 100644 (file)
index 0000000..a8186ab
--- /dev/null
@@ -0,0 +1,156 @@
+<?php
+/**
+ * Job queue aggregator code.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Aaron Schulz
+ */
+
+/**
+ * Class to handle tracking information about all queues
+ *
+ * @ingroup JobQueue
+ * @since 1.21
+ */
+abstract class JobQueueAggregator {
+       /** @var JobQueueAggregator */
+       protected static $instance = null;
+
+       /**
+        * @param array $params
+        */
+       protected function __construct( array $params ) {}
+
+       /**
+        * @return JobQueueAggregator
+        */
+       final public static function singleton() {
+               global $wgJobQueueAggregator;
+
+               if ( !isset( self::$instance ) ) {
+                       $class = $wgJobQueueAggregator['class'];
+                       $obj = new $class( $wgJobQueueAggregator );
+                       if ( !( $obj instanceof JobQueueAggregator ) ) {
+                               throw new MWException( "Class '$class' is not a JobQueueAggregator class." );
+                       }
+                       self::$instance = $obj;
+               }
+
+               return self::$instance;
+       }
+
+       /**
+        * Destroy the singleton instance
+        *
+        * @return void
+        */
+       final public static function destroySingleton() {
+               self::$instance = null;
+       }
+
+       /**
+        * Mark a queue as being empty
+        *
+        * @param string $wiki
+        * @param string $type
+        * @return bool Success
+        */
+       final public function notifyQueueEmpty( $wiki, $type ) {
+               wfProfileIn( __METHOD__ );
+               $ok = $this->doNotifyQueueEmpty( $wiki, $type );
+               wfProfileOut( __METHOD__ );
+               return $ok;
+       }
+
+       /**
+        * @see JobQueueAggregator::notifyQueueEmpty()
+        */
+       abstract protected function doNotifyQueueEmpty( $wiki, $type );
+
+       /**
+        * Mark a queue as being non-empty
+        *
+        * @param string $wiki
+        * @param string $type
+        * @return bool Success
+        */
+       final public function notifyQueueNonEmpty( $wiki, $type ) {
+               wfProfileIn( __METHOD__ );
+               $ok = $this->doNotifyQueueNonEmpty( $wiki, $type );
+               wfProfileOut( __METHOD__ );
+               return $ok;
+       }
+
+       /**
+        * @see JobQueueAggregator::notifyQueueNonEmpty()
+        */
+       abstract protected function doNotifyQueueNonEmpty( $wiki, $type );
+
+       /**
+        * Get the list of all of the queues with jobs
+        *
+        * @return Array (job type => (list of wiki IDs))
+        */
+       final public function getAllReadyWikiQueues() {
+               wfProfileIn( __METHOD__ );
+               $res = $this->doGetAllReadyWikiQueues();
+               wfProfileOut( __METHOD__ );
+               return $res;
+       }
+
+       /**
+        * @see JobQueueAggregator::getAllReadyWikiQueues()
+        */
+       abstract protected function doGetAllReadyWikiQueues();
+
+       /**
+        * Purge all of the aggregator information
+        *
+        * @return bool Success
+        */
+       final public function purge() {
+               wfProfileIn( __METHOD__ );
+               $res = $this->doPurge();
+               wfProfileOut( __METHOD__ );
+               return $res;
+       }
+
+       /**
+        * @see JobQueueAggregator::purge()
+        */
+       abstract protected function doPurge();
+
+       /**
+        * Get all databases that have a pending job.
+        * This poll all the queues and is this expensive.
+        *
+        * @return Array (job type => (list of wiki IDs))
+        */
+       protected function findPendingWikiQueues() {
+               global $wgLocalDatabases;
+
+               $pendingDBs = array(); // (job type => (db list))
+               foreach ( $wgLocalDatabases as $db ) {
+                       foreach ( JobQueueGroup::singleton( $db )->getQueuesWithJobs() as $type ) {
+                               $pendingDBs[$type][] = $db;
+                       }
+               }
+
+               return $pendingDBs;
+       }
+}
diff --git a/includes/job/aggregator/JobQueueAggregatorMemc.php b/includes/job/aggregator/JobQueueAggregatorMemc.php
new file mode 100644 (file)
index 0000000..9434da0
--- /dev/null
@@ -0,0 +1,124 @@
+<?php
+/**
+ * Job queue aggregator code that uses BagOStuff.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Aaron Schulz
+ */
+
+/**
+ * Class to handle tracking information about all queues using BagOStuff
+ *
+ * @ingroup JobQueue
+ * @since 1.21
+ */
+class JobQueueAggregatorMemc extends JobQueueAggregator {
+       /** @var BagOStuff */
+       protected $cache;
+
+       protected $cacheTTL; // integer; seconds
+
+       /**
+        * @params include:
+        *   - objectCache : Name of an object cache registered in $wgObjectCaches.
+        *                   This defaults to the one specified by $wgMainCacheType.
+        *   - cacheTTL    : Seconds to cache the aggregate data before regenerating.
+        * @param array $params
+        */
+       protected function __construct( array $params ) {
+               parent::__construct( $params );
+               $this->cache = isset( $params['objectCache'] )
+                       ? wfGetCache( $params['objectCache'] )
+                       : wfGetMainCache();
+               $this->cacheTTL = isset( $params['cacheTTL'] ) ? $params['cacheTTL'] : 180; // 3 min
+       }
+
+       /**
+        * @see JobQueueAggregator::doNotifyQueueEmpty()
+        */
+       protected function doNotifyQueueEmpty( $wiki, $type ) {
+               $key = $this->getReadyQueueCacheKey();
+               // Delist the queue from the "ready queue" list
+               if ( $this->cache->add( "$key:lock", 1, 60 ) ) { // lock
+                       $curInfo = $this->cache->get( $key );
+                       if ( is_array( $curInfo ) && isset( $curInfo['pendingDBs'][$type] ) ) {
+                               if ( in_array( $wiki, $curInfo['pendingDBs'][$type] ) ) {
+                                       $curInfo['pendingDBs'][$type] = array_diff(
+                                               $curInfo['pendingDBs'][$type], array( $wiki ) );
+                                       $this->cache->set( $key, $curInfo );
+                               }
+                       }
+                       $this->cache->delete( "$key:lock" ); // unlock
+               }
+               return true;
+       }
+
+       /**
+        * @see JobQueueAggregator::doNotifyQueueNonEmpty()
+        */
+       protected function doNotifyQueueNonEmpty( $wiki, $type ) {
+               return true; // updated periodically
+       }
+
+       /**
+        * @see JobQueueAggregator::doAllGetReadyWikiQueues()
+        */
+       protected function doGetAllReadyWikiQueues() {
+               $key = $this->getReadyQueueCacheKey();
+               // If the cache entry wasn't present, is stale, or in .1% of cases otherwise,
+               // regenerate the cache. Use any available stale cache if another process is
+               // currently regenerating the pending DB information.
+               $pendingDbInfo = $this->cache->get( $key );
+               if ( !is_array( $pendingDbInfo )
+                       || ( time() - $pendingDbInfo['timestamp'] ) > $this->cacheTTL
+                       || mt_rand( 0, 999 ) == 0
+               ) {
+                       if ( $this->cache->add( "$key:rebuild", 1, 1800 ) ) { // lock
+                               $pendingDbInfo = array(
+                                       'pendingDBs' => $this->findPendingWikiQueues(),
+                                       'timestamp' => time()
+                               );
+                               for ( $attempts = 1; $attempts <= 25; ++$attempts ) {
+                                       if ( $this->cache->add( "$key:lock", 1, 60 ) ) { // lock
+                                               $this->cache->set( $key, $pendingDbInfo );
+                                               $this->cache->delete( "$key:lock" ); // unlock
+                                               break;
+                                       }
+                               }
+                               $this->cache->delete( "$key:rebuild" ); // unlock
+                       }
+               }
+               return is_array( $pendingDbInfo )
+                       ? $pendingDbInfo['pendingDBs']
+                       : array(); // cache is both empty and locked
+       }
+
+       /**
+        * @see JobQueueAggregator::doPurge()
+        */
+       protected function doPurge() {
+               return $this->cache->delete( $this->getReadyQueueCacheKey() );
+       }
+
+       /**
+        * @return string
+        */
+       private function getReadyQueueCacheKey() {
+               return "jobqueue:aggregator:ready-queues:v1"; // global
+       }
+}
diff --git a/includes/job/aggregator/JobQueueAggregatorRedis.php b/includes/job/aggregator/JobQueueAggregatorRedis.php
new file mode 100644 (file)
index 0000000..c6a799d
--- /dev/null
@@ -0,0 +1,193 @@
+<?php
+/**
+ * Job queue aggregator code that uses PhpRedis.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Aaron Schulz
+ */
+
+/**
+ * Class to handle tracking information about all queues using PhpRedis
+ *
+ * @ingroup JobQueue
+ * @ingroup Redis
+ * @since 1.21
+ */
+class JobQueueAggregatorRedis extends JobQueueAggregator {
+       /** @var RedisConnectionPool */
+       protected $redisPool;
+
+       /**
+        * @params include:
+        *   - redisConfig : An array of parameters to RedisConnectionPool::__construct().
+        *   - redisServer : A hostname/port combination or the absolute path of a UNIX socket.
+        *                   If a hostname is specified but no port, the standard port number
+        *                   6379 will be used. Required.
+        * @param array $params
+        */
+       protected function __construct( array $params ) {
+               parent::__construct( $params );
+               $this->server = $params['redisServer'];
+               $this->redisPool = RedisConnectionPool::singleton( $params['redisConfig'] );
+       }
+
+       /**
+        * @see JobQueueAggregator::doNotifyQueueEmpty()
+        */
+       protected function doNotifyQueueEmpty( $wiki, $type ) {
+               $conn = $this->getConnection();
+               if ( !$conn ) {
+                       return false;
+               }
+               try {
+                       $conn->hDel( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ) );
+                       return true;
+               } catch ( RedisException $e ) {
+                       $this->handleException( $conn, $e );
+                       return false;
+               }
+       }
+
+       /**
+        * @see JobQueueAggregator::doNotifyQueueNonEmpty()
+        */
+       protected function doNotifyQueueNonEmpty( $wiki, $type ) {
+               $conn = $this->getConnection();
+               if ( !$conn ) {
+                       return false;
+               }
+               try {
+                       $conn->hSet( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ), time() );
+                       return true;
+               } catch ( RedisException $e ) {
+                       $this->handleException( $conn, $e );
+                       return false;
+               }
+       }
+
+       /**
+        * @see JobQueueAggregator::doAllGetReadyWikiQueues()
+        */
+       protected function doGetAllReadyWikiQueues() {
+               $conn = $this->getConnection();
+               if ( !$conn ) {
+                       return array();
+               }
+               try {
+                       $conn->multi( Redis::PIPELINE );
+                       $conn->exists( $this->getReadyQueueKey() );
+                       $conn->hGetAll( $this->getReadyQueueKey() );
+                       list( $exists, $map ) = $conn->exec();
+
+                       if ( $exists ) { // cache hit
+                               $pendingDBs = array(); // (type => list of wikis)
+                               foreach ( $map as $key => $time ) {
+                                       list( $type, $wiki ) = $this->dencQueueName( $key );
+                                       $pendingDBs[$type][] = $wiki;
+                               }
+                       } else { // cache miss
+                               // Avoid duplicated effort
+                               $conn->multi( Redis::MULTI );
+                               $conn->setnx( $this->getReadyQueueKey() . ":lock", 1 );
+                               $conn->expire( $this->getReadyQueueKey() . ":lock", 3600 );
+                               if ( $conn->exec() !== array( true, true ) ) { // lock
+                                       return array(); // already in progress
+                               }
+
+                               $pendingDBs = $this->findPendingWikiQueues(); // (type => list of wikis)
+
+                               $conn->delete( $this->getReadyQueueKey() . ":lock" ); // unlock
+
+                               $now = time();
+                               $map = array();
+                               foreach ( $pendingDBs as $type => $wikis ) {
+                                       foreach ( $wikis as $wiki ) {
+                                               $map[$this->encQueueName( $type, $wiki )] = $now;
+                                       }
+                               }
+                               $conn->hMSet( $this->getReadyQueueKey(), $map );
+                       }
+
+                       return $pendingDBs;
+               } catch ( RedisException $e ) {
+                       $this->handleException( $conn, $e );
+                       return array();
+               }
+       }
+
+       /**
+        * @see JobQueueAggregator::doPurge()
+        */
+       protected function doPurge() {
+               $conn = $this->getConnection();
+               if ( !$conn ) {
+                       return false;
+               }
+               try {
+                       $conn->delete( $this->getReadyQueueKey() );
+               } catch ( RedisException $e ) {
+                       $this->handleException( $conn, $e );
+                       return false;
+               }
+               return true;
+       }
+
+       /**
+        * Get a connection to the server that handles all sub-queues for this queue
+        *
+        * @return Array (server name, Redis instance)
+        * @throws MWException
+        */
+       protected function getConnection() {
+               return $this->redisPool->getConnection( $this->server );
+       }
+
+       /**
+        * @param RedisConnRef $conn
+        * @param RedisException $e
+        * @return void
+        */
+       protected function handleException( RedisConnRef $conn, $e ) {
+               $this->redisPool->handleException( $this->server, $conn, $e );
+       }
+
+       /**
+        * @return string
+        */
+       private function getReadyQueueKey() {
+               return "jobqueue:aggregator:h-ready-queues:v1"; // global
+       }
+
+       /**
+        * @param string $type
+        * @param string $wiki
+        * @return string
+        */
+       private function encQueueName( $type, $wiki ) {
+               return rawurlencode( $type ) . '/' . rawurlencode( $wiki );
+       }
+
+       /**
+        * @param string $name
+        * @return string
+        */
+       private function dencQueueName( $name ) {
+               list( $type, $wiki ) = explode( '/', $name, 2 );
+               return array( rawurldecode( $type ), rawurldecode( $wiki ) );
+       }
+}
index e9f017b..563ce2f 100644 (file)
@@ -112,6 +112,8 @@ class RefreshLinksJob extends Job {
 class RefreshLinksJob2 extends Job {
        function __construct( $title, $params, $id = 0 ) {
                parent::__construct( 'refreshLinks2', $title, $params, $id );
+               // Base jobs for large templates can easily be de-duplicated
+               $this->removeDuplicates = !isset( $params['start'] ) && !isset( $params['end'] );
        }
 
        /**
index 9d6ab25..521cb8a 100644 (file)
@@ -518,17 +518,17 @@ class LogPage {
         * @return String
         */
        public static function formatBlockFlags( $flags, $lang ) {
-               $flags = explode( ',', trim( $flags ) );
+               $flags = trim( $flags );
+               if ( $flags === '' ) {
+                       return ''; //nothing to do
+               }
+               $flags = explode( ',', $flags );
 
-               if ( count( $flags ) > 0 ) {
-                       for ( $i = 0; $i < count( $flags ); $i++ ) {
-                               $flags[$i] = self::formatBlockFlag( $flags[$i], $lang );
-                       }
-                       return wfMessage( 'parentheses' )->inLanguage( $lang )
-                               ->rawParams( $lang->commaList( $flags ) )->escaped();
-               } else {
-                       return '';
+               for ( $i = 0; $i < count( $flags ); $i++ ) {
+                       $flags[$i] = self::formatBlockFlag( $flags[$i], $lang );
                }
+               return wfMessage( 'parentheses' )->inLanguage( $lang )
+                       ->rawParams( $lang->commaList( $flags ) )->escaped();
        }
 
        /**
index 911fffc..bb76d5a 100644 (file)
@@ -38,6 +38,13 @@ class PatrolLog {
         * @return bool
         */
        public static function record( $rc, $auto = false, User $user = null ) {
+               global $wgLogAutopatrol;
+
+               // do not log autopatrolled edits if setting disables it
+               if ( $auto && !$wgLogAutopatrol ) {
+                       return false;
+               }
+
                if ( !$rc instanceof RecentChange ) {
                        $rc = RecentChange::newFromId( $rc );
                        if ( !is_object( $rc ) ) {
index 99e749b..993642e 100644 (file)
@@ -49,8 +49,8 @@ grains of salt.
 There's an experimental PHP extension module which wraps the ICU library's
 normalization functions. This is *MUCH* faster than doing this work in pure
 PHP code. This is at https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/extensions/normal.git;a=summary.
-It is known to work with PHP 4.3.8 and 5.0.2 on Linux/x86 but hasn't
-been thoroughly tested on other configurations.
+It is used by the WMF, which currently runs PHP 5.3.10 on Linux.  It hasn't been
+thoroughly tested on other configurations, but may work.
 
 If the php_normal.so module is loaded in php.ini, the normalization functions
 will automatically use it. If you can't (or don't want to) load it in php.ini,
index 4588015..22ff6a7 100644 (file)
@@ -96,7 +96,7 @@ class ResourceLoaderContext {
                                $pos = strrpos( $group, '.' );
                                if ( $pos === false ) {
                                        // Prefixless modules, i.e. without dots
-                                       $retval = explode( ',', $group );
+                                       $retval = array_merge( $retval, explode( ',', $group ) );
                                } else {
                                        // We have a prefix and a bunch of suffixes
                                        $prefix = substr( $group, 0, $pos ); // 'foo'
index fd46c03..3b67554 100644 (file)
@@ -103,11 +103,8 @@ class SpecialPasswordReset extends FormSpecialPage {
        }
 
        public function alterForm( HTMLForm $form ) {
-               $form->setSubmitTextMsg( 'mailmypassword' );
-       }
-
-       protected function preText() {
                global $wgPasswordResetRoutes;
+
                $i = 0;
                if ( isset( $wgPasswordResetRoutes['username'] ) && $wgPasswordResetRoutes['username'] ) {
                        $i++;
@@ -119,7 +116,10 @@ class SpecialPasswordReset extends FormSpecialPage {
                        $i++;
                }
 
-               return $this->msg( 'passwordreset-pretext', $i )->parseAsBlock();
+               $message = ( $i > 1 ) ? 'passwordreset-text-many' : 'passwordreset-text-one';
+
+               $form->setHeaderText( $this->msg( $message, $i )->parseAsBlock() );
+               $form->setSubmitTextMsg( 'mailmypassword' );
        }
 
        /**
index 0d6378c..1b406d1 100644 (file)
@@ -876,16 +876,19 @@ class SpecialRecentChanges extends IncludableSpecialPage {
                }
 
                # Sort data for display and make sure it's unique after we've added user data.
-               $wgRCLinkLimits[] = $options['limit'];
-               $wgRCLinkDays[] = $options['days'];
-               sort( $wgRCLinkLimits );
-               sort( $wgRCLinkDays );
-               $wgRCLinkLimits = array_unique( $wgRCLinkLimits );
-               $wgRCLinkDays = array_unique( $wgRCLinkDays );
+               $linkLimits = $wgRCLinkLimits;
+               $linkLimits[] = $options['limit'];
+               sort( $linkLimits );
+               $linkLimits = array_unique( $linkLimits );
+
+               $linkDays = $wgRCLinkDays;
+               $linkDays[] = $options['days'];
+               sort( $linkDays );
+               $linkDays = array_unique( $linkDays );
 
                // limit links
                $cl = array();
-               foreach ( $wgRCLinkLimits as $value ) {
+               foreach ( $linkLimits as $value ) {
                        $cl[] = $this->makeOptionsLink( $lang->formatNum( $value ),
                                array( 'limit' => $value ), $nondefaults, $value == $options['limit'] );
                }
@@ -893,7 +896,7 @@ class SpecialRecentChanges extends IncludableSpecialPage {
 
                // day links, reset 'from' to none
                $dl = array();
-               foreach ( $wgRCLinkDays as $value ) {
+               foreach ( $linkDays as $value ) {
                        $dl[] = $this->makeOptionsLink( $lang->formatNum( $value ),
                                array( 'days' => $value, 'from' => '' ), $nondefaults, $value == $options['days'] );
                }
index ee737c6..98d0c9a 100644 (file)
@@ -456,7 +456,6 @@ class SpecialUpload extends SpecialPage {
         */
        public static function getInitialPageText( $comment = '', $license = '', $copyStatus = '', $source = '' ) {
                global $wgUseCopyrightUpload, $wgForceUIMsgAsContentMsg;
-               $wgForceUIMsgAsContentMsg = (array) $wgForceUIMsgAsContentMsg;
 
                $msg = array();
                /* These messages are transcluded into the actual text of the description page.
@@ -464,7 +463,7 @@ class SpecialUpload extends SpecialPage {
                 * instead of hardcoding it there in the uploader language.
                 */
                foreach ( array( 'license-header', 'filedesc', 'filestatus', 'filesource' ) as $msgName ) {
-                       if ( in_array( $msgName, $wgForceUIMsgAsContentMsg ) ) {
+                       if ( in_array( $msgName, (array)$wgForceUIMsgAsContentMsg ) ) {
                                $msg[$msgName] = "{{int:$msgName}}";
                        } else {
                                $msg[$msgName] = wfMessage( $msgName )->inContentLanguage()->text();
index 2e72f70..2f90d3c 100644 (file)
@@ -270,12 +270,9 @@ class UsercreateTemplateVForm extends BaseTemplate {
                // Pass each benefit's head text (by default a number) as a parameter to the body's message for PLURAL handling.
                $headUnescaped = $this->getMsg( "createacct-benefit-head$benefitIdx" )->text();
        ?>
-               <div>
-                       <div class="mw-benefits-icon <?php $this->msg( "createacct-benefit-icon$benefitIdx" ); ?>"></div>
-                       <div class="mw-number-text">
-                               <h3><?php $this->msg( "createacct-benefit-head$benefitIdx" ); ?></h3>
-                               <p><?php echo $this->getMsg( "createacct-benefit-body$benefitIdx" )->params( $headUnescaped )->escaped(); ?></p>
-                       </div>
+               <div class="mw-number-text <?php $this->msg( "createacct-benefit-icon$benefitIdx" ); ?>">
+                       <h3><?php $this->msg( "createacct-benefit-head$benefitIdx" ); ?></h3>
+                       <p><?php echo $this->getMsg( "createacct-benefit-body$benefitIdx" )->params( $headUnescaped )->escaped(); ?></p>
                </div>
        <?php
        }
index ea34363..92ea75c 100644 (file)
@@ -2953,12 +2953,16 @@ class Language {
        }
 
        /**
+        * Get all magic words from cache.
         * @return array
         */
        function getMagicWords() {
                return self::$dataCache->getItem( $this->mCode, 'magicWords' );
        }
 
+       /**
+        * Run the LanguageGetMagic hook once.
+        */
        protected function doMagicHook() {
                if ( $this->mMagicHookDone ) {
                        return;
@@ -2975,17 +2979,16 @@ class Language {
         * @param $mw
         */
        function getMagic( $mw ) {
-               $this->doMagicHook();
+               // Saves a function call
+               if ( ! $this->mMagicHookDone ) {
+                       $this->doMagicHook();
+               }
 
                if ( isset( $this->mMagicExtensions[$mw->mId] ) ) {
                        $rawEntry = $this->mMagicExtensions[$mw->mId];
                } else {
-                       $magicWords = $this->getMagicWords();
-                       if ( isset( $magicWords[$mw->mId] ) ) {
-                               $rawEntry = $magicWords[$mw->mId];
-                       } else {
-                               $rawEntry = false;
-                       }
+                       $rawEntry = self::$dataCache->getSubitem(
+                               $this->mCode, 'magicWords', $mw->mId );
                }
 
                if ( !is_array( $rawEntry ) ) {
index 61fed2c..027c054 100644 (file)
@@ -64,6 +64,8 @@
        'ba' => 'башҡортса',   # Bashkir
        'bar' => 'Boarisch',    # Bavarian (Austro-Bavarian and South Tyrolean)
        'bat-smg' => 'žemaitėška', # Samogitian (deprecated code, 'sgs' in ISO 693-3 since 2010-06-30 )
+       'bbc' => 'Batak Toba', # Batak Toba (falls back to bbc-latn)
+       'bbc-latn' => 'Batak Toba', # Batak Toba
        'bcc' => 'بلوچی مکرانی', # Southern Balochi
        'bcl' => 'Bikol Central', # Bikol: Central Bicolano language
        'be' => 'беларуская', #  Belarusian normative
index 49f6141..66875a6 100644 (file)
@@ -15,6 +15,7 @@
  * @author Kaganer
  * @author Manie
  * @author Naudefj
+ * @author Nemo bis
  * @author Purodha
  * @author Reedy
  * @author SPQRobin
@@ -769,11 +770,9 @@ U het moontlik reeds u wagwoord gewysig of 'n nuwe tydelike wagwoord aangevra.",
 
 # Special:PasswordReset
 'passwordreset' => 'Wagwoord herstel',
-'passwordreset-text' => 'Voltooi hierdie vorm om u wagwoord te herstel.',
 'passwordreset-legend' => 'Kry nuwe wagwoord',
 'passwordreset-disabled' => 'Die herskik van U wagwoord is gedeaktiveer op hierdie wiki.',
 'passwordreset-emaildisabled' => 'E-posfunksies is afgeskakel op hierdie wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1| | Voer een van die onderstaande velde in}}',
 'passwordreset-username' => 'Gebruiker:',
 'passwordreset-domain' => 'Domein:',
 'passwordreset-capture' => 'Wys resulterende e-pos?',
index 889d3db..840f1f8 100644 (file)
@@ -40,6 +40,7 @@
  * @author Mido
  * @author Mimouni
  * @author Mo7amedsalim
+ * @author Nemo bis
  * @author Obayd
  * @author OsamaK
  * @author Ouda
@@ -543,15 +544,15 @@ $messages = array(
 'thu' => 'خميس',
 'fri' => 'جمعة',
 'sat' => 'سبت',
-'january' => 'يناير \\ كانون الثاني',
+'january' => 'يناير',
 'february' => 'فبراير',
 'march' => 'مارس',
 'april' => 'أبريل',
-'may_long' => 'مايو \\ أيار',
-'june' => 'يونيو \\ حزيران',
-'july' => 'يوليو \\ تموز',
-'august' => 'أغسطس \\ آب',
-'september' => 'سبتمبر \\ أيلول',
+'may_long' => 'مايو',
+'june' => 'يونيو',
+'july' => 'يوليو',
+'august' => 'أغسطس',
+'september' => 'سبتمبر',
 'october' => 'أكتوبر',
 'november' => 'نوفمبر',
 'december' => 'ديسمبر',
@@ -643,7 +644,7 @@ $messages = array(
 'vector-simplesearch-preference' => 'فعّل شريط البحث المبسط (لواجهة فكتور فقط)',
 'vector-view-create' => 'أنشئ',
 'vector-view-edit' => 'عدّل',
-'vector-view-history' => 'استعرض Ø§Ù\84تأريخ',
+'vector-view-history' => 'اعرض Ø§Ù\84تاريخ',
 'vector-view-view' => 'طالع',
 'vector-view-viewsource' => 'طالع المصدر',
 'actions' => 'أفعال',
@@ -660,7 +661,7 @@ $messages = array(
 'go' => 'اذهب',
 'searcharticle' => 'اذهب',
 'history' => 'تاريخ الصفحة',
-'history_short' => 'تأريخ',
+'history_short' => 'تاريخ',
 'updatedmarker' => 'حُدِّثَت منذ زيارتي الأخيرة',
 'printableversion' => 'بتنسق للطباعة',
 'permalink' => 'رابط دائم',
@@ -1055,11 +1056,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'إعادة ضبط كلمة السر',
-'passwordreset-text' => 'أكمل هذا النموذج لإعادة ضبط كلمة السر الخاصة بك.',
 'passwordreset-legend' => 'إعادة تعيين كلمة السر',
 'passwordreset-disabled' => 'عُطّلت إعادة تعيين كلمة السر على هذه الويكي.',
 'passwordreset-emaildisabled' => 'تم تعطيل ميزات البريد الإلكتروني على هذه الويكي.',
-'passwordreset-pretext' => '{{PLURAL:$1||أدخل أحد أجزاء البيانات أدناه}}',
 'passwordreset-username' => 'اسم المستخدم:',
 'passwordreset-domain' => 'النطاق:',
 'passwordreset-capture' => 'أأعرض البريد الإلكتروني الناتج؟',
index bf039ce..46bf2f8 100644 (file)
@@ -2310,7 +2310,7 @@ $1',
 'blanknamespace' => '(رئيسى)',
 
 # Contributions
-'contributions' => 'تعديلات اليوزر',
+'contributions' => 'تعديلات اليوزر {{GENDER:$1|اليوزر|اليوزره}}',
 'contributions-title' => 'مساهمات اليوزر ل$1',
 'mycontris' => 'تعديلاتى',
 'contribsub2' => 'لليوزر $1 ($2)',
index e86d769..bcd7646 100644 (file)
@@ -756,11 +756,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'গুপ্তশব্দ ন-কৈ বহুৱাওক',
-'passwordreset-text' => ' আপোনাৰ গুপ্তশব্দ ন-কৈ বহুৱাবলৈ তলৰ প্ৰপত্ৰ সম্পূৰ্ণ কৰক।',
 'passwordreset-legend' => 'গুপ্তশব্দ ন-কৈ বহাওক',
 'passwordreset-disabled' => 'এই ৱিকিত গুপ্তশব্দ নবীকৰণ নিষ্ক্ৰিয় কৰা হৈছে ।',
 'passwordreset-emaildisabled' => 'এই ৱিকিত ই-মেইল বৈশিষ্টসমূহ নিষ্ক্ৰিয় কৰা হৈছে।',
-'passwordreset-pretext' => '{{PLURAL:$1||তলত উল্লেখ কৰা তথ্যৰ কোনো অংশ ভৰাওক}}',
 'passwordreset-username' => 'সদস্যনাম',
 'passwordreset-domain' => 'ডমেইন :',
 'passwordreset-capture' => 'ফলাফল ই-মেইলখন চাবলৈ বিচাৰিছে ?',
@@ -2181,7 +2179,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization চাওক।",
 'listusers-blocked' => '(বাৰণ কৰা)',
 
 # Special:ActiveUsers
-'activeusers' => 'সà¦\95à§\8dৰিয় à¦¬à§\8dযবহাৰকাৰীৰ তালিকা',
+'activeusers' => 'সà¦\95à§\8dৰিয় à¦¬à§\8dযৱহাৰকাৰীৰ তালিকা',
 'activeusers-intro' => 'যোৱা  {{PLURAL:$1|দিন|দিন}}ৰ ভিতৰত অৱদান আগবঢ়োৱা ব্যৱহাৰকাৰীৰ তালিকা',
 'activeusers-count' => 'যোৱা {{PLURAL:$3|দিনত|$3 দিনত}} সৰ্বমুঠ $1 {{PLURAL:$1|টা কাম}}',
 'activeusers-from' => 'ইয়াৰে আৰম্ভ হোৱা ব্যৱহাৰকাৰী সকল দেখুৱাওক:',
index cd207b9..ba1bc8d 100644 (file)
@@ -672,10 +672,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Паролде ташлатыу',
-'passwordreset-text' => 'Иҫәп яҙыуығыҙ мәғлүмәттәрен хат аша алыу өсөн киләһе форманы тултырығыҙ.',
 'passwordreset-legend' => 'Паролде ташлатыу',
 'passwordreset-disabled' => 'Был викила паролде ташлатыу ғәмәлдә түгел',
-'passwordreset-pretext' => '{{PLURAL:$1||аҫта күрһәтелгән мәғлүмәттәрҙең бер киҫәген керетегеҙ}}',
 'passwordreset-username' => 'Ҡулланыусы исеме:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Хәбәрҙең һуңғы хәлен ҡарарғамы?',
diff --git a/languages/messages/MessagesBbc.php b/languages/messages/MessagesBbc.php
new file mode 100644 (file)
index 0000000..e5072e9
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+/** Batak Toba (Batak Toba)
+ *
+ * See MessagesQqq.php for message documentation incl. usage of parameters
+ * To improve a translation please visit http://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ * @comment falls back to Batak Toba (Latin)
+ */
+
+$fallback = 'bbc-latn';
diff --git a/languages/messages/MessagesBbc_latn.php b/languages/messages/MessagesBbc_latn.php
new file mode 100644 (file)
index 0000000..da966b2
--- /dev/null
@@ -0,0 +1,737 @@
+<?php
+/** Batak Toba (Batak Toba)
+ *
+ * See MessagesQqq.php for message documentation incl. usage of parameters
+ * To improve a translation please visit http://translatewiki.net
+ *
+ * @ingroup Language
+ * @file
+ *
+ * @author Daniel Harahap
+ * @author Marvel manalu
+ * @author Naval Scene
+ * @author Stephensuleeman
+ * @author WBT001Erin
+ * @author WBT003Bugari
+ * @author WBT004Togu
+ * @author WBT006Hendra
+ * @author WBT009Anju
+ */
+
+$fallback = 'id';
+
+$messages = array(
+# User preference toggles
+'tog-underline' => 'Ondolhon panait',
+'tog-justify' => 'Padasip paragrap',
+'tog-hideminor' => 'Tabunihon editing na metmet di parubaan na imbaru',
+'tog-hidepatrolled' => 'Bunihon panotaan na metmet di parubaan na imbaru',
+'tog-numberheadings' => 'Bahen nomor judul otomatis',
+'tog-showtoolbar' => 'Pataridahon molo ula-ula haubaon',
+'tog-editondblclick' => 'Klik dua hali laho patotahon alaman (ringkot do JavaScript)',
+'tog-minordefault' => 'Tandai sude panotaan na metmet songon naung dipamasa',
+'tog-previewontop' => 'Patuduon preview andorang so kotak edit',
+'tog-previewonfirst' => 'Patudu pratayang di panotaan na parjolo',
+'tog-enotifwatchlistpages' => 'Tongoshon tu ahu surat elektronik molo muba sada alaman na humanat-manati',
+'tog-enotifusertalkpages' => 'Tongoshon tu ahu surat elektronik molo muba alaman panghataionku',
+'tog-enotifminoredits' => 'Tong ma tongoshon surat elektronik tu ahu diparubaan na metmet',
+'tog-enotifrevealaddr' => 'Papatar alamat surat elektronikku tikki notifikasi surat elektronik',
+'tog-shownumberswatching' => 'Patuduhon godang ni pamareso',
+'tog-oldsig' => 'Tandatangani saonari:',
+'tog-forceeditsummary' => 'Paingot ahu molo bongot tu poti panotaan na rumar',
+'tog-watchlisthideown' => 'Bunihon na hupatota sian pamareso',
+'tog-showhiddencats' => 'Papatar angka kategori na buni',
+
+'underline-always' => 'Tongtong',
+'underline-never' => 'Ndang hea masa',
+
+# Dates
+'sunday' => 'Ari Minggu',
+'monday' => 'Ari Senen',
+'tuesday' => 'Ari Selasa',
+'wednesday' => 'Ari Rabu',
+'thursday' => 'Ari Kamis',
+'friday' => 'Ari Jumat',
+'saturday' => 'Ari Sabtu',
+'sun' => 'Mgg',
+'mon' => 'Snn',
+'tue' => 'Sls',
+'wed' => 'Rb',
+'thu' => 'Kms',
+'fri' => 'Jmt',
+'sat' => 'Sbt',
+'january' => 'Sipaha Sampulu',
+'february' => 'Li',
+'march' => 'Hurung',
+'april' => 'Sipaha Sada',
+'may_long' => 'Sipaha Dua',
+'june' => 'Sipaha Tolu',
+'july' => 'Sipaha Opat',
+'august' => 'Sipaha Lima',
+'september' => 'Sipaha Onom',
+'october' => 'Sipaha Pitu',
+'november' => 'Sipaha Uwalu',
+'december' => 'Sipaha Sia',
+'january-gen' => 'Sipaha Sampulu',
+'february-gen' => 'Li',
+'march-gen' => 'Hurung',
+'april-gen' => 'Sipaha Sada',
+'may-gen' => 'Sipaha Dua',
+'june-gen' => 'Sipaha Tolu',
+'july-gen' => 'Sipaha Opat',
+'august-gen' => 'Sipaha Lima',
+'september-gen' => 'Sipaha Onom',
+'october-gen' => 'Sipaha Pitu',
+'november-gen' => 'Sipaha Uwalu',
+'december-gen' => 'Sipaha Sia',
+'jan' => 'Sipaha Sampulu',
+'feb' => 'Li',
+'mar' => 'Hurung',
+'apr' => 'Sipaha Sada',
+'may' => 'Sipaha Dua',
+'jun' => 'Sipaha Tolu',
+'jul' => 'Sipaha Opat',
+'aug' => 'Sipaha Lima',
+'sep' => 'Sipaha Onom',
+'oct' => 'Sipaha Pitu',
+'nov' => 'Sipaha Uwalu',
+'dec' => 'Sipaha Sia',
+
+# Categories related messages
+'pagecategories' => '{{PLURAL:$1|Horong|Angka horong}}',
+'category_header' => 'Angka alaman di horong "$1"',
+'subcategories' => 'Horong na metmet',
+'category-media-header' => 'Media dibagasan horong  "$1"',
+'category-empty' => '"Ndang adong alaman manang media di horong on nuaeng."',
+'hidden-categories' => '{{PLURAL:$1|Horong na buni|Angka horong na buni}}',
+'hidden-category-category' => 'Kategori na buni',
+'category-subcat-count' => '{{PLURAL:$2|Horong on marisi {{PLURAL:$1|$1 horong na metmet}} sian sude $2.}}',
+'category-article-count' => '{{PLURAL:$2|Horong on marisi {{PLURAL:$1|$1 alaman}}, sian sude $2.}}',
+'category-file-count' => '{{PLURAL:$2|Horong on holan marisi berkas{{PLURAL:$1|$1 alaman}}, sian sude $2.}}',
+'listingcontinuesabbrev' => 'udut.',
+'broken-file-category' => 'Alaman dohot gombaran na sega',
+
+'about' => 'Taringot',
+'article' => 'alaman isi',
+'newwindow' => '(ungkap ni pandiloi na imbaru)',
+'cancel' => 'Sundati',
+'moredotdotdot' => 'Tambai',
+'mypage' => 'Alaman',
+'mytalk' => 'Pangkataion',
+'navigation' => 'Angka ula-ula laho patuduhon dalan dohot luat',
+'and' => '&#32;dohot',
+
+# Cologne Blue skin
+'qbfind' => 'Jumpangi',
+'qbedit' => 'Patota',
+'qbpageoptions' => 'Alaman on',
+'qbmyoptions' => 'Alaman niiba',
+'faq' => 'FAQ',
+'faqpage' => 'Project:FAQ',
+
+# Vector skin
+'vector-action-addsection' => 'Bagian na imbaru',
+'vector-action-delete' => 'Sesa',
+'vector-action-move' => 'Pahusor',
+'vector-action-protect' => 'Ramoti',
+'vector-action-undelete' => 'unang sesa',
+'vector-action-unprotect' => 'Uba parlindungan',
+'vector-view-create' => 'Tompa',
+'vector-view-edit' => 'Paubah',
+'vector-view-history' => 'Patudu andorang na',
+'vector-view-view' => 'Jaha',
+'vector-view-viewsource' => 'Ida haroanna',
+'actions' => 'Pangulahonon',
+'namespaces' => 'Inganan ni goar',
+'variants' => 'Angka ragam',
+
+'errorpagetitle' => 'Sega',
+'returnto' => 'Mulak tu $1.',
+'tagline' => 'Sian {{SITENAME}}',
+'help' => 'Urupi',
+'search' => 'Diori',
+'searchbutton' => 'Diori',
+'go' => 'Laho tu',
+'searcharticle' => 'Laho tu',
+'history' => 'Alaman turiturian',
+'history_short' => 'Angka siingoton',
+'printableversion' => 'versi na boi dicetak',
+'permalink' => 'Pangait na togu',
+'view' => 'Ida',
+'edit' => 'Patota',
+'create' => 'Tompa',
+'editthispage' => 'Patota alaman on',
+'create-this-page' => 'Bahen alaman on',
+'delete' => 'Sesa',
+'deletethispage' => 'Sesa alaman on',
+'undelete_short' => 'Sundat sesa $1 {{PLURAL:$1|panotaan|panotaan}}',
+'protect' => 'Ramoti',
+'protect_change' => 'Pauba',
+'newpage' => 'Alaman na imbaru',
+'talkpage' => 'Hatahon alaman on',
+'talkpagelinktext' => 'Pangkataion',
+'personaltools' => 'Ula-ula ni sasahalak',
+'postcomment' => 'Bagian imbaru',
+'talk' => 'Panghataion',
+'views' => 'Hataridaan',
+'toolbox' => 'Poti ulaula',
+'userpage' => 'Ida alaman ni pamangke',
+'viewhelppage' => 'Ida alaman pangurupion',
+'viewtalkpage' => 'Ida alaman panghataion',
+'otherlanguages' => 'Di bagasan parhataan na asing',
+'redirectedfrom' => '(Ulanghon sian $1)',
+'lastmodifiedat' => 'Alaman on parpudi di uba ari $2, topet $1.',
+'viewcount' => 'Alaman on nungga dibongoti {{PLURAL:$1|sahali|$1 hali}}',
+'protectedpage' => 'Alaman na di jaga',
+'jumpto' => 'Manimbung tu:',
+'jumptonavigation' => 'angka ula-ula laho patuduhon dalan dohot luat',
+'jumptosearch' => 'Diori',
+'pool-timeout' => 'Suda tingki paimahon hincu',
+'pool-errorunknown' => 'Hasalaan na so binoto',
+
+# 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' => 'Taringot {{SITENAME}}',
+'aboutpage' => 'Project:Taringot tu',
+'copyright' => 'Sude siguriton rade saguru tu $1.',
+'copyrightpage' => '{{ns:project}}:Hak manopa',
+'currentevents' => 'Na tongon masa',
+'currentevents-url' => 'Project:Na masa nuaeng',
+'disclaimers' => 'Panyakalon',
+'disclaimerpage' => 'Project:Pamorsoon umum',
+'edithelp' => 'Pangurupion laho patotahon',
+'edithelppage' => 'Help:Panotaan',
+'helppage' => 'Help:Isi',
+'mainpage' => 'Pogu ni Alaman',
+'mainpage-description' => 'Pogu ni alaman',
+'portal' => 'Harbangan ni punguan',
+'portal-url' => 'Project:Harbangan ni punguan',
+
+'badaccess-group0' => 'Dang diloas hamu laho mangulahon na pinangidomu',
+
+'ok' => 'OK',
+'retrievedfrom' => 'Dijalo sian "$1"',
+'youhavenewmessages' => 'Adong di ho $1 ($2).',
+'newmessageslink' => 'Tona na imbaru',
+'newmessagesdifflink' => 'Parubaan na parpudi',
+'youhavenewmessagesmulti' => 'Adong tu ho tona na imbaru di $1',
+'editsection' => 'Patota',
+'editold' => 'patota',
+'viewsourceold' => 'Bereng harorona',
+'editlink' => 'Patota',
+'viewsourcelink' => 'Ida ma mual',
+'editsectionhint' => 'Patota ponggol: $1',
+'toc' => 'Isi',
+'showtoc' => 'Papatar',
+'hidetoc' => 'Bunihon',
+'collapsible-collapse' => 'Pagelleng',
+'collapsible-expand' => 'Paherbang',
+'thisisdeleted' => 'Ida manang Paulak $1?',
+'viewdeleted' => 'Ida $1?',
+'page-atom-feed' => 'Pele atom "$1"',
+'red-link-title' => '$1 (alaman naso adong dope)',
+'sort-descending' => 'Pajojor lam toru',
+'sort-ascending' => 'Pajojor lam timbo',
+
+# Short words for each namespace, by default used in the namespace tab in monobook
+'nstab-main' => 'Alaman',
+'nstab-user' => 'Pamangke',
+'nstab-special' => 'Alaman na marhasurungan',
+'nstab-project' => 'Alaman ulaon',
+'nstab-image' => 'Berkas',
+'nstab-mediawiki' => 'Tona',
+'nstab-template' => 'Templat',
+'nstab-help' => 'Alaman pangurupion',
+'nstab-category' => 'Hategori',
+
+# General errors
+'error' => 'Hasesega',
+'fileappenderror' => 'Ndang boi pamasuhon "$1" tu "$2".',
+'badarticleerror' => 'Ulaon on dang boi i ulahon di alaman on',
+'cannotdelete-title' => 'Ndang boi manesa alaman "$1"',
+'badtitle' => 'Ulu ni surat na rumar',
+'viewsource' => 'Ida haroanna',
+'namespaceprotected' => "Ndang diloas hamu laho patotahon alaman di '''$1''' inganan ni goar",
+
+# Virus scanner
+'virus-unknownscanner' => 'Antivirus ndang ditanda:',
+
+# Login and logout pages
+'welcomeuser' => 'Horas, $1 !',
+'yourname' => 'Goar pamangke',
+'userlogin-yourname' => 'Siparhaseang',
+'userlogin-yourname-ph' => 'Pamasuk goarmu',
+'yourpassword' => 'Hata hincu:',
+'userlogin-yourpassword' => 'HAta hinsu',
+'userlogin-yourpassword-ph' => 'Pamasuk hata hinsu',
+'yourpasswordagain' => 'Ulanghon surat hata hincu:',
+'userlogin-remembermypassword' => 'Paingot ahu',
+'password-change-forbidden' => 'Ndang boi ubaonmu hata hincu di wiki on',
+'login' => 'Bongot tu log',
+'nav-login-createaccount' => 'Bongot tu log/ bahen akun',
+'loginprompt' => 'Ikkon dipangolu do "cookies" laho bongot log tu {{SINTENAME}}.',
+'userlogin' => 'Bongot tu log/ bahen akun',
+'userlogout' => 'Haruar log',
+'userlogin-noaccount' => 'Ndang adong akun',
+'userlogin-joinproject' => 'Parsidohot',
+'nologin' => 'Ndang adong akun? $1.',
+'nologinlink' => 'Bahen sada akun',
+'createaccount' => 'Bahen akun na imbaru',
+'gotaccount' => 'Nungga adong akunmu? $1',
+'gotaccountlink' => 'Bongot tu log',
+'helplogin-url' => 'Pangurupion: Masuk tu bagasan',
+'userlogin-helplink' => 'MediaWiki:pangurupion bongot tu bagas',
+'createaccountreason' => 'Alanan',
+'createaccounterror' => 'Ndang boi manopa akun: $1',
+'nouserspecified' => 'Ingkon pamasukonmuna goar ni pamangke',
+'mailmypassword' => 'Tongoshon hata hincu na imbaru',
+'emailnotauthenticated' => 'Alamat ni surat elektronikmuna ndang dope dipareso. Andorang so dipareso ndang boi pangkeonmuna rumang surat elektronik.',
+'emailconfirmlink' => 'Tolopi alamat surat elektronikmuna',
+'emaildisabled' => 'Ndang boi situs on manongos surat elekronik',
+'accountcreated' => 'Akun nunga ditopa',
+'login-abort-generic' => 'Ndang marhasil bongot - Dipaso ma',
+'loginlanguagelabel' => 'Hata: $1',
+
+# Change password dialog
+'resetpass' => 'Pauba hata hinsu',
+'oldpassword' => 'Hata hinsu na leleng',
+'newpassword' => 'Password naimbaru',
+'resetpass-submit-loggedin' => 'Pauba hata hinsu',
+'resetpass-submit-cancel' => 'Sundati',
+'resetpass-temp-password' => 'Hata hinsu parsatongkinan',
+
+# Special:PasswordReset
+'passwordreset-username' => 'Goar pamangke',
+'passwordreset-domain' => 'Domain:',
+
+# Special:ChangeEmail
+'changeemail-none' => '(Ndada)',
+'changeemail-cancel' => 'Sundati',
+
+# Edit page toolbar
+'bold_sample' => 'Surat tobal',
+'bold_tip' => 'Surat na hapal',
+'italic_sample' => 'Guratan Italic',
+'italic_tip' => 'surat teleng',
+'link_sample' => 'Goar ni pangait',
+'link_tip' => 'Pangait di bagasan',
+'extlink_sample' => 'http://www.example.com goar ni pangait',
+'extlink_tip' => 'Pangait parduru (ingot mulai dohot http:// )',
+'headline_sample' => 'Ulu ni surat',
+'nowiki_sample' => 'Pamasuk siguraton na so boi ubaon',
+'media_tip' => 'Pangait ni berkas',
+'sig_tip' => 'Tanda tangan pake pananda tingki',
+'hr_tip' => 'Garis na adar',
+
+# Edit pages
+'minoredit' => 'Panotaan na metmet',
+'watchthis' => 'Parrohahon alaman on',
+'savearticle' => 'Simpan alaman',
+'preview' => 'Andorang pataridahon',
+'showpreview' => 'Patudu pratayang',
+'showdiff' => 'Ida parubahan',
+'anoneditwarning' => "'''Paminsangon:''' Ndang bongot tu log dope hamu.
+Di surathon do alamat IP mu di turiturian ni alaman on.",
+'blockednoreason' => 'ndang adong alana na dilehon',
+'loginreqpagetext' => 'Ingkon $1 do hamu laho mamereng alaman na asing.',
+'accmailtitle' => 'Hata hincu nunga ditongos.',
+'newarticle' => '(Imbaru)',
+'noarticletext' => 'Ndang adong siguriton di alaman on saonari. Parhaseang ma[[Special:Search/{{PAGENAME}}|laho mandiori judul ni alaman on]] di alaman na asing, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mandiori log na mardomu], manang [{{fullurl:{{FULLPAGENAME}}|action=edit}} laho manota alaman on]</span>.',
+'noarticletext-nopermission' => 'Ndang adong siguriton di alaman on saonari. Parhaseang ma[[Special:Search/{{PAGENAME}}|laho mandiori goar ni alaman on]] di alaman na asing, manang <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} mandiori angka log na mardomu]</span>, alai dang diloas hamu lahon mamungka alaman on.',
+'previewnote' => "'''Ingot ma holan sada andoramg pataridahon do on.'''
+Parubaan na binahenmu dang di simpan dope!",
+'editing' => 'Manota $1',
+'creating' => 'mambahen',
+'editingsection' => 'Manota $1 (ponggol)',
+'templatesused' => '{{PLURAL:$1|Templat|Angka templat}} na diparhaseang di alaman on:',
+'template-protected' => '(dijaga)',
+'template-semiprotected' => '(ndang apala sude diramoti)',
+'hiddencategories' => 'Alaman on ima sada sian {{PLURAL:$1|1 horong na buni|$1 horong na buni}}:',
+'moveddeleted-notice' => 'Alaman on nungnga disesa.',
+
+# Parser/template warnings
+'post-expand-template-inclusion-warning' => 'Pinsangpinsang: Lobi do balga ni templat on. Pigapiga templat gabe dipasiding.',
+'post-expand-template-inclusion-category' => 'Angka alaman na balgana lobi',
+
+# History pages
+'viewpagelogs' => 'Pataridahon angka log ni alaman on',
+'currentrev-asof' => 'Panotaan parpudi ni $1',
+'revisionasof' => 'Panotaan songon $1',
+'revision-info' => 'Parubaan ni $1; $2',
+'previousrevision' => '←Revisi andorang na',
+'nextrevision' => 'Panotaan na mangihut→',
+'currentrevisionlink' => 'Panotaan na parpudi',
+'cur' => 'nuaeng',
+'next' => 'udutna',
+'last' => 'andorang',
+'page_first' => 'parjolo',
+'page_last' => 'parpudi',
+'history-show-deleted' => 'Holan na disesa',
+'histfirst' => 'Parjolo sahali',
+'histlast' => 'parpudi sahali',
+
+# Revision feed
+'history-feed-item-nocomment' => '$1 di $2',
+
+# Revision deletion
+'rev-delundel' => 'patarida/tabunihon',
+'rev-showdeleted' => 'Paida',
+'revdelete-log' => 'Alana',
+'revdel-restore' => 'Pauba pardompahan',
+'revdel-restore-deleted' => 'Patota naung di sesa',
+'revdel-restore-visible' => 'revisi na tarbereng',
+
+# Merge log
+'revertmerge' => 'Sundati Pardomuan',
+
+# Diffs
+'lineno' => 'Baris $1:',
+'editundo' => 'Paulak',
+
+# Search results
+'searchresults' => 'Hasil na niluluan',
+'searchresults-title' => 'Hasil mandiori tu "$1"',
+'prevn' => 'andorang so {{PLURAL:$1|$1}}',
+'nextn' => 'Ulaon na naen sitoruson {{PLURAL:$1|$1}}',
+'prevn-title' => 'Andorang so $1 {{PLURAL:$1|hasil|angka hasil}}',
+'nextn-title' => 'Ulaon na naen sitoruson tu $1 {{PLURAL:$1|result|results}}',
+'shown-title' => 'Patuduhon $1 {{PLURAL:$1|hasil|angka hasil}} ganup alaman',
+'viewprevnext' => 'Bereng ($1{{int:pipe-separator}}$2)($3)',
+'searchmenu-exists' => "'''Adong sada alaman na digoari \"[[:\$1]]\" di wiki on.'''",
+'searchmenu-new' => "'''Bahen alaman \"[[:\$1]]\" di wiki on!'''",
+'searchprofile-articles' => 'Alaman isi',
+'searchprofile-project' => 'Alaman pangurupion dohot proyek',
+'searchprofile-images' => 'Akat na godang gunana',
+'searchprofile-everything' => 'Sasude',
+'searchprofile-advanced' => 'Timbul',
+'searchprofile-articles-tooltip' => 'Mandiori di $1',
+'searchprofile-project-tooltip' => 'Mandiori di $1',
+'searchprofile-images-tooltip' => 'Mandiori berkas',
+'searchprofile-everything-tooltip' => 'Mandiori di sude inganan (dohot di alaman panghataion)',
+'searchprofile-advanced-tooltip' => 'Mandiori pake inganan ni goar',
+'search-result-size' => '$1 ({{PLURAL:$2|1 hata|$2 hata}})',
+'search-redirect' => '(ualanghon $1)',
+'search-section' => '(ponggol $1)',
+'search-suggest' => 'On do ra maksudmu: $1',
+'searchrelated' => 'marpandomuan',
+'searchall' => 'sude',
+'showingresultsheader' => "{{PLURAL:$5|Hasil '''$1''' sian '''$3'''|Hasil '''$1 - $2''' sian '''$3'''}} tu '''$4'''",
+'search-nonefound' => 'Ndang adong hasil na suman tu pangidoan',
+'powersearch-toggleall' => 'Sude',
+'powersearch-togglenone' => 'Ndang adong',
+
+# Preferences page
+'mypreferences' => 'Preferensi',
+'searchresultshead' => 'diori',
+'youremail' => 'Tongos surel:',
+'yourrealname' => 'Goar na toho',
+'gender-male' => 'Baoa',
+'gender-female' => 'borua',
+
+# Rights
+'right-read' => 'Manjaha alaman',
+
+# Special:Log/newusers
+'newuserlogpage' => 'Log pamarhaseang na imbaru',
+
+# Associated actions - in the sentence "You do not have permission to X"
+'action-edit' => 'Patota alaman on',
+
+# Recent changes
+'nchanges' => '$1 {{PLURAL:$1|parubaan}}',
+'recentchanges' => 'Parubahan naimbaru',
+'recentchanges-legend' => 'sipilliton sian parubaan na imbaru',
+'recentchanges-label-newpage' => 'Panotaan on mamungka alaman na imbaru',
+'recentchanges-label-minor' => 'Sada panotaan na metmet',
+'recentchanges-label-bot' => 'Panotaan on diulahon bot',
+'recentchanges-label-unpatrolled' => 'Panotaan on ndang dipamanat dope',
+'rcnote' => "Na di toru on ima {{PLURAL:$1|'''1'''|'''$1'''}} perubaan  di bagasan {{PLURAL:$2|'''1''' ari|'''$2''' ari}} na parpudi, olat ni $4 pukul $5.",
+'rclistfrom' => 'Patuduhon parubaan na imbaru mamungka sian $1',
+'rcshowhideminor' => '$1 panotaan na metmet',
+'rcshowhidebots' => '$1 bot',
+'rcshowhideliu' => '$1 pamarhaseang bongot tu log',
+'rcshowhideanons' => '$1 pamarhaseang ndang margoar',
+'rcshowhidepatr' => '$1 panotaan na dipamanat',
+'rcshowhidemine' => '$1 na hupatota',
+'rclinks' => 'Patuduhon $1 parubaan na imbaru dibagasan na $2 ari on<br />$3',
+'diff' => 'duru',
+'hist' => 'turi',
+'hide' => 'Bunihon',
+'show' => 'Patuduhon',
+'minoreditletter' => 'm',
+'newpageletter' => 'I',
+'boteditletter' => 'b',
+'rc-enhanced-expand' => 'Pataridahon panjamotan (ringkot do JavaScript)',
+'rc-enhanced-hide' => 'Bunihon panjamotan',
+
+# Recent changes linked
+'recentchangeslinked' => 'Angka parubaan na mardomu tu',
+'recentchangeslinked-toolbox' => 'Angka parubaan na mardomu tu',
+'recentchangeslinked-title' => 'Parubaan na mardomu tu "$1"',
+'recentchangeslinked-page' => 'Goar ni alaman:',
+'recentchangeslinked-to' => 'Pataridahon parubaan ni angka alaman na marpandomuan dohot alaman on',
+
+# Upload
+'upload' => 'Tambahon berkas',
+'filedesc' => 'Panimpulan',
+
+'license' => 'Ragam ni lisensi:',
+'license-header' => 'Ragam ni lisensi',
+'nolicense' => 'Ndang adong na i pillit',
+
+# File description page
+'file-anchor-link' => 'Berkas',
+'filehist' => 'Turiturian ni berkas',
+'filehist-help' => 'Piltik di sada tanggal/tingki laho mamereng berkas on di tingki i.',
+'filehist-revert' => 'Sundati',
+'filehist-current' => 'masa nuaeng',
+'filehist-datetime' => 'Pukkul',
+'filehist-thumb' => 'Thumbnail',
+'filehist-thumbtext' => 'Ganaganaan tu versi songon $1',
+'filehist-user' => 'Pamangke',
+'filehist-dimensions' => 'Dimensi',
+'filehist-comment' => 'Hata panambai',
+'imagelinks' => 'Parhaseangon ni berkas',
+'linkstoimage' => '{{PLURAL:$1|alaman pangait|$1 angka alaman na marpangait}} tu berkas on:',
+'nolinkstoimage' => 'Ndang adong alaman na marpangait tu berkas on.',
+'sharedupload-desc-here' => 'Berkas on sian $1 jala olo do diparhaseang angka proyek na asing. Hatorangan na ima [$2 alaman hatoranganna] dipatorang di toru on.',
+
+# Random page
+'randompage' => 'Alaman sursar',
+
+# Statistics
+'statistics' => 'Statistik',
+
+'disambiguationspage' => 'Template:Disambig',
+
+'pageswithprop-submit' => 'Laho tu',
+
+# Miscellaneous special pages
+'nbytes' => '$1 {{PLURAL:$1|byte|bites}}',
+'nmembers' => '$1 {{PLURAL:$1|isi|angka isi}}',
+'usercreated' => '{{GENDER:$3|Dipungka}} ari $1 topet $2',
+'newpages' => 'Angka alaman na imbaru',
+'move' => 'Paorot',
+'pager-newer-n' => '{{PLURAL:$1|na imbaru|na imbaru $1}}',
+'pager-older-n' => '{{PLURAL:$1|na leleng|$1 na lumeleng}}',
+
+# Book sources
+'booksources-go' => 'Torushon',
+
+# Special:Log
+'log' => 'Angka log',
+
+# Special:AllPages
+'allpages' => 'Sude alaman',
+'alphaindexline' => '$1 tu $2',
+'allarticles' => 'Sude alaman',
+'allpagessubmit' => 'Torushon',
+
+# Special:Categories
+'categories' => 'Angka horong',
+
+# Special:LinkSearch
+'linksearch-line' => '$1 marpangait sian $2',
+
+# Special:ListGroupRights
+'listgrouprights-members' => '(daftar ni parsidohot)',
+
+# Email user
+'emailuser' => 'Surel pamarhaseang on',
+'emailfrom' => 'Sian',
+'emailto' => 'Tu',
+
+# Watchlist
+'watchlist' => 'Daftar na pinarrohahon',
+'mywatchlist' => 'Daftar na pinarrohahon',
+'watchlistfor2' => 'Laho tu $1 $2',
+'watch' => 'Parrohahon',
+'unwatch' => 'Sundat mamarrohahon',
+'wlshowlast' => 'Pataridahon $1 jom $2 ari $3 na parpudi',
+
+# Delete
+'actioncomplete' => 'Sae ulaon',
+'actionfailed' => 'Ulaon sundat',
+'dellogpage' => 'Log pasesaan',
+
+# Rollback
+'rollbacklink' => 'Paundur',
+
+# Protect
+'protectlogpage' => 'Log panghokhop',
+'protectedarticle' => 'manjaga "[[$1]]"',
+
+# Undelete
+'undeletelink' => 'Ida/paulak',
+'undeleteviewlink' => 'Ida',
+'undelete-show-file-submit' => 'Olo',
+
+# Namespace form on various pages
+'namespace' => 'Inganan ni goar:',
+'invert' => 'Paulak napinillit',
+'blanknamespace' => '(Rumingkot)',
+
+# Contributions
+'contributions' => 'Na niula {{GENDER:$1|pamarhaseang}}',
+'mycontris' => 'Angka silua',
+'contribsub2' => 'Laho tu $1 ($2)',
+'uctop' => 'di ginjang',
+'month' => 'Sian bulan (dohot andorang na)',
+'year' => 'Sian taon (dohot andorang na):',
+
+'sp-contributions-blocklog' => 'olati log',
+'sp-contributions-logs' => 'log',
+'sp-contributions-talk' => 'Pangkataion',
+'sp-contributions-username' => 'Alamat IP manang goar:',
+'sp-contributions-toponly' => 'Pataridahon holan panotaan parginjang',
+'sp-contributions-submit' => 'Diori',
+
+# What links here
+'whatlinkshere-title' => 'Angka alaman na marpangait tu "$1"',
+'whatlinkshere-page' => 'Alaman:',
+'linkshere' => "Angka alaman on marpangait tu '''[[:$1]]''':",
+'nolinkshere' => "Ndang adong alaman na marpangait tu '''[[:$1]]'''.",
+'isimage' => 'pangait berkas',
+'whatlinkshere-prev' => '{{PLURAL:$1|andorang so $1}}',
+'whatlinkshere-next' => '{{PLURAL:$1|udut na|udut na $1}}',
+'whatlinkshere-links' => '← angka pangait',
+'whatlinkshere-hideredirs' => '$1 manguba dalan',
+'whatlinkshere-hidelinks' => '$1 pangait',
+'whatlinkshere-hideimages' => '$1 pangait berkas',
+'whatlinkshere-filters' => 'Saringan',
+
+# Block/unblock
+'ipboptions' => '2 jom:2 hours,1 ari:1 day,3 ari:3 days,1 minggu:1 week,2 minggu:2 weeks,1 bulan:1 month,3 bulan:3 months,6 bulan:6 months,1 taon:1 year,salelengna:infinite',
+'ipblocklist' => 'Angka pamarhaseang na diolati',
+'blocklink' => 'ambati',
+'unblocklink' => 'Pamago Blokir',
+'change-blocklink' => 'Paubah blokir',
+'contribslink' => 'silehon-lehon',
+'blocklogpage' => 'Olati log',
+'block-log-flags-nocreate' => 'Ndang boi mamungka akun',
+
+# Move page
+'move-page-legend' => 'Papinda alaman',
+'movelogpage' => 'Log paorothon',
+'revertmove' => 'Sundati',
+
+# Export
+'export' => 'Ekspor alaman',
+
+# Namespace 8 related
+'allmessagesname' => 'Goar',
+'allmessages-filter-submit' => 'Laho tu',
+
+# Thumbnails
+'thumbnail-more' => 'Paheba',
+
+# Tooltip help for the actions
+'tooltip-pt-userpage' => 'Alaman ni na marparhaseang',
+'tooltip-pt-mytalk' => 'Alaman Pangkataionmuna',
+'tooltip-pt-preferences' => 'Pinillit ni hamu',
+'tooltip-pt-watchlist' => 'punguan angka goar ni alaman',
+'tooltip-pt-mycontris' => 'Daftar ni silua mu',
+'tooltip-pt-login' => 'Disosoi do hamu asa bongot tu log, alai dang pola di gogohon.',
+'tooltip-pt-logout' => 'Haruar Log',
+'tooltip-ca-talk' => 'Panghataion taringot tu alaman isi',
+'tooltip-ca-edit' => 'Boi do patotaonmu alaman on. Parhaseang tombol pratayang andorang so manimpan.',
+'tooltip-ca-addsection' => 'Mamungka bogas na imbaru',
+'tooltip-ca-viewsource' => 'Alaman on dijaga. Holan haroanna do boi berengon mu',
+'tooltip-ca-history' => 'Parubaan na parpudi di alaman on',
+'tooltip-ca-protect' => 'Hophop alamana on',
+'tooltip-ca-delete' => 'Sesa alaman on',
+'tooltip-ca-move' => 'Pindahon alaman on',
+'tooltip-ca-watch' => 'Tambahon alaman on tu daftar pamberengan hamu',
+'tooltip-ca-unwatch' => 'Sesa alaman on sian daftar na diparrohahon',
+'tooltip-search' => 'lului di bagasan wiki on',
+'tooltip-search-go' => 'Diori alaman na marnampunahon goar na tangkas molo adong',
+'tooltip-search-fulltext' => 'diori alaman na margurithon songonon',
+'tooltip-p-logo' => 'Duloi pogu ni alaman',
+'tooltip-n-mainpage' => 'Duloi pogu ni alaman',
+'tooltip-n-mainpage-description' => 'Duloi pogu ni alaman',
+'tooltip-n-portal' => 'Taringot tu ulaon, aha na boi ulaonmu,ima namandiori na adong',
+'tooltip-n-currentevents' => 'Dapoti informasi taringot tu na masa nuaeng',
+'tooltip-n-recentchanges' => 'Angka parubaan na imbaru di wiki',
+'tooltip-n-randompage' => 'Patudu Alaman na Asing',
+'tooltip-n-help' => 'Inganan mandiori alus',
+'tooltip-t-whatlinkshere' => 'Daftar ni sude alaman  wiki na marnampunahon pangait tu alaman on',
+'tooltip-t-recentchangeslinked' => 'Angka parubaan ni alaman na imbaru na marpangait tu alaman on',
+'tooltip-feed-atom' => 'Pele Atom hu alaman on',
+'tooltip-t-contributions' => 'Daftar ni tumpak ni pamarhaseang on',
+'tooltip-t-emailuser' => 'Tongoshon sada surel tu pamarhaseang on',
+'tooltip-t-upload' => 'Tambahaon angka berkas',
+'tooltip-t-specialpages' => 'Sude Alaman na Istimewa',
+'tooltip-t-permalink' => 'Pangait na togu tu parubaan ni alaman on',
+'tooltip-ca-nstab-main' => 'Dulo alaman isi',
+'tooltip-ca-nstab-user' => 'Bereng alaman ni pamarhaseang',
+'tooltip-ca-nstab-special' => 'On alaman na marhasurungan, ndang boi dipatota',
+'tooltip-ca-nstab-project' => 'Bereng alaman proyek',
+'tooltip-ca-nstab-image' => 'Bereng alaman berkas',
+'tooltip-ca-nstab-template' => 'Ida templat',
+'tooltip-ca-nstab-category' => 'Bereng alaman horong',
+'tooltip-minoredit' => 'Tandai on songon sada panotaan na metmet',
+'tooltip-save' => 'Simpan parubaan mu',
+'tooltip-preview' => 'Parrohahon parubaan mu, parhaseang on andorang so manimpan',
+'tooltip-diff' => 'Bereng parubaan na binahenmu tu siguraton',
+'tooltip-compareselectedversions' => 'Bereng aha ubana sian na dua ragam ni alaman na dipillit.',
+'tooltip-watch' => 'Tambahon alaman on tu daftar na diparrohahonmu',
+'tooltip-summary' => 'Pamasuk ringkasan pendek',
+
+# Browsing diffs
+'previousdiff' => '← Panotaan na salpu',
+'nextdiff' => 'Parubaan na imbaru →',
+
+# Media information
+'file-info-size' => '$1 × $2 piksel, balga ni berkas: $3, rumang na MIME: $4',
+'file-nohires' => 'Ndang adong resolusi natumimbo.',
+'svg-long-desc' => 'Berkas SVG, nominal $1 × $2 piksel, balga ni berkas: $3',
+'show-big-image' => 'Resolusi na umbalga',
+
+# Special:NewFiles
+'noimages' => 'Ndang adong na ni ida',
+'ilsubmit' => 'Diori',
+
+# Bad image list
+'bad_image_list' => 'Songon on ma rumangna:
+
+Holan daftar (baris na dimulai dohot tanda *) na masuk etongan. Pangait na parjolo di sada-sada baris ikkon do gabe pangait tu berkas na buruk. Pangait na manghihut di nasabaris i dietong do i pulik,ima alaman na patuduhon berkas i.',
+
+# Metadata
+'metadata' => 'Metadata',
+'metadata-help' => 'Berkas on marnampunahon informasi na asing, olo do sian kamera digital manang sian ula-ula na asing. Molo nungga dipauneune berkas on, hatoranganna olo do ndang apala toho songon informasi siang gombaran naung dipauneune on.',
+'metadata-fields' => 'Angka bidang metadata gombar na dipajojor di bagasan tona on naeng dipamasuk di hataridaan ni alaman gombar tingki tabel metadata dipametmet. Data na asing gabe dibunihon songon naung ditontuhon.
+ * make
+* model
+* datetimeoriginal
+* exposuretime
+* fnumber
+* isospeedratings
+* focallength
+* artist
+* copyright
+* imagedescription
+* gpslatitude
+* gpslongitude
+* gpsaltitude',
+
+# Exif tags
+'exif-imagewidth' => 'Bolak',
+'exif-imagelength' => 'Timbo',
+
+# External editor support
+'edit-externally' => 'Patota berkas on mamarhaseanghon ulaula parduru',
+
+# 'all' in various places, this might be different for inflected languages
+'watchlistall2' => 'Sasude',
+'namespacesall' => 'sude',
+'monthsall' => 'Sasude',
+
+# Watchlist editing tools
+'watchlisttools-edit' => 'Pataridahon jala patota daftar siparrohahonon',
+
+# Special:SpecialPages
+'specialpages' => 'Alaman na marhasurungan',
+
+# Special:Tags
+'tag-filter' => 'Saringan [[Special:Tags|tag]]:',
+
+);
index 4a44132..9d4f761 100644 (file)
@@ -670,11 +670,9 @@ Matriumpo mo nang nailaog an sekretong panlaog o nakua an bàgong temporaryong s
 
 # Special:PasswordReset
 'passwordreset' => 'Pakibago kan sekretong panlaog',
-'passwordreset-text' => 'Kumpletoha ining porma tangarig liwatong an saimong sekretong panlaog.',
 'passwordreset-legend' => 'Pakibago kan sekretong panlaog',
 'passwordreset-disabled' => 'An pagbago kan sekretong panlaog pinagpundo sa wiking ini.',
 'passwordreset-emaildisabled' => 'E-surat na mga estima pinag-uruntok sa wiking ini.',
-'passwordreset-pretext' => '{{PLURAL:$1||Pakilaog kan saro sa mga pedaso nin datos sa ibaba}}',
 'passwordreset-username' => 'Paragamit-ngaran:',
 'passwordreset-domain' => 'Kasakupan:',
 'passwordreset-capture' => 'Hilngon an kinaluwasang e-koreo?',
index c748ecb..a11c16e 100644 (file)
@@ -587,10 +587,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Выслаць мне новы пароль',
-'passwordreset-text' => 'Запоўніце гэтую форму, каб атрымаць па электроннай пошце напамін вашага акаўнта.',
 'passwordreset-legend' => 'Пераўстанавіць пароль',
 'passwordreset-disabled' => 'Функцыя пераўсталёўкі пароля адключаная на гэтай вікі.',
-'passwordreset-pretext' => '{{PLURAL:$1||Калі ласка, увядзіце адзін з фрагментаў дадзеных ніжэй}}',
 'passwordreset-username' => 'Імя ўдзельніка',
 'passwordreset-domain' => 'Дамен:',
 'passwordreset-capture' => 'Праглядзець напісаны ліст?',
@@ -812,6 +810,7 @@ $2
 Здаецца, што яна была сцёртая.',
 'edit-conflict' => 'Канфлікт правак.',
 'edit-no-change' => 'Вашая праўка была праігнараваная, таму што не мяняўся тэкст.',
+'postedit-confirmation' => 'Вашая праўка была захаваная.',
 'edit-already-exists' => 'Не ўдалося стварыць новую старонку.
 Такая ўжо існуе.',
 'editwarning-warning' => 'Выхад з гэтай старонкі прывядзе да страты правак, якія вы зрабілі. 
@@ -1117,7 +1116,7 @@ $1",
 'recentchangesdays' => 'За колькі дзён паказваць {{lc:{{:{{ns:mediawiki}}:recentchanges/be}}}}:',
 'recentchangesdays-max' => '(найбольш $1 {{PLURAL:$1|дзень|дзён}})',
 'recentchangescount' => 'Прадвызначаная колькасць правак дзеля паказу:',
-'prefs-help-recentchangescount' => 'Ð\93Ñ\8dÑ\82а Ñ\9eклÑ\8eÑ\87ае Ñ\9e Ñ\81Ñ\8fбе Ð½Ñ\8fдаÑ\9eнÑ\96Ñ\8f Ð·Ð¼Ñ\8fненнÑ\96, гісторыі старонак, журналы.',
+'prefs-help-recentchangescount' => 'Ð\93Ñ\8dÑ\82а Ñ\9eклÑ\8eÑ\87ае Ñ\9e Ñ\81Ñ\8fбе Ð°Ð¿Ð¾Ñ\88нÑ\96Ñ\8f Ð·Ð¼ÐµÐ½Ñ\8b, гісторыі старонак, журналы.',
 'prefs-help-watchlist-token' => 'Упісанне сакрэтнага ключа ў гэтае поле створыць RSS-струмень з вашага спісу назіранага. 
 Кожны, каму вядомы гэты ключ, зможа чытаць ваш спіс назіранага, таму выбірайце бяспечныя ключы. 
 Вось аўта-згенераваны ключ, які можна выкарыстаць: $1',
@@ -1348,7 +1347,7 @@ $1",
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|змена|змены|зменаў}}',
-'recentchanges' => 'Ð\9dÑ\8fдаÑ\9eнÑ\96Ñ\8f Ð·Ð¼Ñ\8fненнÑ\96',
+'recentchanges' => 'Ð\90поÑ\88нÑ\96Ñ\8f Ð·Ð¼ÐµÐ½Ñ\8b',
 'recentchanges-legend' => 'Магчымасці паказу',
 'recentchanges-summary' => 'Гэта апошнія мены на пляцоўцы {{SITENAME}}.',
 'recentchanges-feed-description' => 'Сачыць за найбольш актуальнымі змяненнямі ў віксе праз гэты струмень навін.',
@@ -3402,7 +3401,7 @@ MediaWiki распаўсюджваецца, спадзеючыся на прыд
 'specialpages-group-maintenance' => 'Звесткі аб працы',
 'specialpages-group-other' => 'Іншыя адмысловыя старонкі',
 'specialpages-group-login' => 'Прадстаўленне / рэгістрацыя',
-'specialpages-group-changes' => 'Ð\9dÑ\8fдаÑ\9eнÑ\96Ñ\8f Ð·Ð¼Ñ\8fненнÑ\96 і журналы',
+'specialpages-group-changes' => 'Ð\90поÑ\88нÑ\96Ñ\8f Ð·Ð¼ÐµÐ½Ñ\8b і журналы',
 'specialpages-group-media' => 'Укладзеныя файлы і звесткі пра іх',
 'specialpages-group-users' => 'Удзельнікі і дазволы',
 'specialpages-group-highuse' => 'Старонкі частага карыстання',
index 59a8514..1a836ac 100644 (file)
@@ -12,6 +12,7 @@
  * @author EugeneZelenko
  * @author Jim-by
  * @author Kaganer
+ * @author Nemo bis
  * @author Red Winged Duck
  * @author Renessaince
  * @author Wizardist
@@ -818,11 +819,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Ачыстка паролю',
-'passwordreset-text' => 'Запоўніце гэтую форму, каб скінуць пароль.',
 'passwordreset-legend' => 'Ачысьціць пароль',
 'passwordreset-disabled' => 'Магчымасьць ачысткі паролю была забароненая ў {{GRAMMAR:месны|{{SITENAME}}}}.',
 'passwordreset-emaildisabled' => 'Функцыі e-mail у гэтай вікі былі адключаныя.',
-'passwordreset-pretext' => '{{PLURAL:$1||Увядзіце ніжэй частку зьвестак}}',
 'passwordreset-username' => 'Імя ўдзельніка:',
 'passwordreset-domain' => 'Дамэн:',
 'passwordreset-capture' => 'Паказаць канчатковы электронны ліст?',
@@ -1057,6 +1056,7 @@ $2
 Падобна, што яна была выдаленая.',
 'edit-conflict' => 'Канфлікт рэдагаваньняў.',
 'edit-no-change' => 'Вашае рэдагаваньне было праігнараванае, таму што ў тэкст не былі ўнесеныя зьмены.',
+'postedit-confirmation' => 'Вашая праўка была захаваная.',
 'edit-already-exists' => 'Немагчыма стварыць новую старонку.
 Яна ўжо існуе.',
 'defaultmessagetext' => 'Перадвызначаны тэкст паведамленьня',
index 6b476a6..9e10dd4 100644 (file)
@@ -13,6 +13,7 @@
  * @author Daggerstab
  * @author Dimi z
  * @author Kaganer
+ * @author Simona
  * @author Spiritia
  * @author Stanqo
  * @author Termininja
@@ -344,6 +345,18 @@ $messages = array(
 'oct' => 'окт',
 'nov' => 'ное',
 'dec' => 'дек',
+'january-date' => '$1 януари',
+'february-date' => '$1 февруари',
+'march-date' => '$1 март',
+'april-date' => '$1 април',
+'may-date' => '$1 май',
+'june-date' => '$1 юни',
+'july-date' => '$1 юли',
+'august-date' => '$1 август',
+'september-date' => '$1 септември',
+'october-date' => '$1 октомври',
+'november-date' => '$1 ноември',
+'december-date' => '$1 декември',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Категория|Категории}}',
@@ -666,6 +679,7 @@ $2',
 'logout' => 'Излизане',
 'userlogout' => 'Излизане',
 'notloggedin' => 'Не сте влезли',
+'userlogin-joinproject' => 'Присъединяване към {{SITENAME}}',
 'nologin' => "Нямате потребителско име? '''$1'''.",
 'nologinlink' => 'Създаване на сметка',
 'createaccount' => 'Регистриране',
@@ -763,10 +777,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Възстановяване на парола',
-'passwordreset-text' => 'Попълването на формуляра ще доведе до възстановяване на паролата.',
 'passwordreset-legend' => 'Възстановяване на парола',
 'passwordreset-disabled' => 'Възстановяването на паролата е изключено в това уики.',
-'passwordreset-pretext' => '{{PLURAL:$1||Въведете някоя от информациите по-долу}}',
 'passwordreset-username' => 'Потребителско име:',
 'passwordreset-domain' => 'Домейн:',
 'passwordreset-capture' => 'Преглеждане на електронното писмо?',
@@ -998,6 +1010,7 @@ $2
 Вероятно междувременно е била изтрита.',
 'edit-conflict' => 'Редакционен конфликт.',
 'edit-no-change' => 'Вашата редакция беше игнорирана, тъй като не съдържа промени по текста.',
+'postedit-confirmation' => 'Вашата редакция беше съхранена',
 'edit-already-exists' => 'Не можа да се създаде нова страница.
 Такава вече съществува.',
 'defaultmessagetext' => 'Текст на съобщението по подразбиране',
index 959d107..f1ae1a5 100644 (file)
@@ -79,11 +79,11 @@ $messages = array(
 'tog-newpageshidepatrolled' => 'পরীক্ষিত পাতা গুলো নতুন পাতার তালিকায় আড়াল করো',
 'tog-extendwatchlist' => 'শুধু সাম্প্রতিক পরিবর্তনই নয়, সকল পরিবর্তন দেখতে নজর তালিকা সম্প্রসারণ করুন।',
 'tog-usenewrc' => 'সাম্প্রতিক পরিবর্তনসমূহ এবং নজরতালিকা পাতায় পরিবর্তনগুলো একত্রে প্রদর্শন (জাভাস্ক্রিপ্ট প্রয়োজন)',
-'tog-numberheadings' => 'শিরà§\8bনামà¦\97à§\81লà§\8bà¦\95à§\87 à¦¸à§\8dবয়à¦\82à¦\95à§\8dরিয়ভাবà§\87 à¦\95à§\8dরমাà¦\99à§\8dà¦\95িত à¦\95রা à¦¹à§\8bà¦\95',
-'tog-showtoolbar' => 'সমà§\8dপাদনা à¦\9fà§\81লবার à¦¦à§\87à¦\96ানà§\8b à¦¹à§\8bà¦\95 (à¦\9cাভাসà§\8dà¦\95à§\8dরিপà§\8dà¦\9fà§\87র à¦®à¦¾à¦§à§\8dযমà§\87)',
-'tog-editondblclick' => 'দুইবার ক্লিক করে পাতা সম্পাদনা করার ক্ষমতা দেয়া হোক (জাভাস্ক্রিপ্টের মাধ্যমে)',
+'tog-numberheadings' => 'শিরà§\8bনামà¦\97à§\81লà§\8bà¦\95à§\87 à¦¸à§\8dবয়à¦\82à¦\95à§\8dরিয়ভাবà§\87 à¦\95à§\8dরমিà¦\95 à¦¨à¦®à§\8dবর à¦¦à¦¾à¦\93',
+'tog-showtoolbar' => 'সমà§\8dপাদনা à¦\9fà§\81লবার à¦¦à§\87à¦\96াà¦\93 (à¦\9cাভাসà§\8dà¦\95à§\8dরিপà§\8dà¦\9f à¦ªà§\8dরয়à§\8bà¦\9cন)',
+'tog-editondblclick' => 'দুইবার ক্লিক করে পাতা সম্পাদনা (জাভাস্ক্রিপ্ট প্রয়োজন)',
 'tog-editsection' => '[সম্পাদনা] সংযোগের সাহায্যে পরিচ্ছেদ সম্পাদনা করার ক্ষমতা দেয়া হোক',
-'tog-editsectiononrightclick' => 'পরিচ্ছেদের শিরোনামে ডান ক্লিকের মাধ্যমে <br />পরিচ্ছেদ সম্পাদনা করার ক্ষমতা দেয়া হোক (জাভাস্ক্রিপ্ট)',
+'tog-editsectiononrightclick' => 'পরিচ্ছেদের শিরোনামে ডান ক্লিকের মাধ্যমে সম্পাদনা করার ক্ষমতা দেয়া হোক (জাভাস্ক্রিপ্ট)',
 'tog-showtoc' => 'সূচিপত্র দেখানো হোক (৩টির বেশি পরিচ্ছেদের শিরোনামবিশিষ্ট পাতার জন্য)',
 'tog-rememberpassword' => 'এই ব্রাউজারে আমার লগ ইন তথ্য (শব্দচাবি) মনে রাখো (সর্বোচ্চ $1 {{PLURAL:$1|দিনের|দিনের}} জন্য)',
 'tog-watchcreations' => 'আমার তৈরি পাতা এবং আপলোড করা ফাইলগুললো আমার নজরতালিকায় যোগ করা হোক',
@@ -135,13 +135,13 @@ $messages = array(
 'thursday' => 'বৃহস্পতিবার',
 'friday' => 'শুক্রবার',
 'saturday' => 'শনিবার',
-'sun' => 'রবিবার',
-'mon' => 'সোমবার',
-'tue' => 'মঙ্গলবার',
-'wed' => 'বুধবার',
-'thu' => 'বৃহস্পতিবার',
-'fri' => 'শুক্রবার',
-'sat' => 'শনিবার',
+'sun' => 'রবি',
+'mon' => 'সোম',
+'tue' => 'মঙ্গল',
+'wed' => 'বুধ',
+'thu' => 'বৃহস্পতি',
+'fri' => 'শুক্র',
+'sat' => 'শনি',
 'january' => 'জানুয়ারি',
 'february' => 'ফেব্রুয়ারি',
 'march' => 'মার্চ',
@@ -166,18 +166,18 @@ $messages = array(
 'october-gen' => 'অক্টোবর',
 'november-gen' => 'নভেম্বর',
 'december-gen' => 'ডিসেম্বর',
-'jan' => 'জানুয়ারি',
-'feb' => 'ফেব্রুয়ারি',
+'jan' => 'জানু',
+'feb' => 'ফেব্রু',
 'mar' => 'মার্চ',
 'apr' => 'এপ্রিল',
 'may' => 'মে',
 'jun' => 'জুন',
 'jul' => 'জুলাই',
 'aug' => 'আগস্ট',
-'sep' => 'সেপ্টেম্বর',
-'oct' => 'অক্টোবর',
-'nov' => 'নভেম্বর',
-'dec' => 'ডিসেম্বর',
+'sep' => 'সেপ্টে',
+'oct' => 'অক্টো',
+'nov' => 'নভে',
+'dec' => 'ডিসে',
 'january-date' => 'জানুয়ারি $1',
 'february-date' => 'ফেব্রুয়ারি $1',
 'march-date' => 'মার্চ $1',
@@ -185,7 +185,7 @@ $messages = array(
 'may-date' => 'মে $1',
 'june-date' => 'জুন $1',
 'july-date' => 'জুলাই $1',
-'august-date' => 'à¦\86à¦\97ষ্ট $1',
+'august-date' => 'à¦\86à¦\97স্ট $1',
 'september-date' => 'সেপ্টেম্বর $1',
 'october-date' => 'অক্টোবর $1',
 'november-date' => 'নভেম্বর $1',
@@ -223,11 +223,11 @@ $messages = array(
 'and' => '&#32;এবং',
 
 # Cologne Blue skin
-'qbfind' => 'অনুসন্ধান করুন',
+'qbfind' => 'অনুসন্ধান',
 'qbbrowse' => 'ব্রাউজ',
 'qbedit' => 'সম্পাদনা',
-'qbpageoptions' => 'এ পাতার বিকল্পসমূহ',
-'qbmyoptions' => 'à¦\86মার à¦ªà¦\9bনà§\8dদ',
+'qbpageoptions' => 'এই পাতা',
+'qbmyoptions' => 'à¦\86মার à¦ªà¦¾à¦¤à¦¾à¦¸à¦®à§\82হ',
 'qbspecialpages' => 'বিশেষ পাতাসমূহ',
 'faq' => 'সম্ভাব্য প্রশ্নসমূহ',
 'faqpage' => 'Project:প্রাজিপ্র',
@@ -240,7 +240,7 @@ $messages = array(
 'vector-action-undelete' => 'পুনরুদ্ধার',
 'vector-action-unprotect' => 'সুরক্ষা পরিবর্তন',
 'vector-simplesearch-preference' => 'সরল অনুসন্ধান সক্রিয় করুন (শুধুমাত্র ভেক্টর স্কিনের জন্য)',
-'vector-view-create' => 'তৈরি করুন',
+'vector-view-create' => 'তৈরি',
 'vector-view-edit' => 'সম্পাদনা',
 'vector-view-history' => 'ইতিহাস',
 'vector-view-view' => 'পড়ুন',
@@ -251,7 +251,7 @@ $messages = array(
 
 'navigation-heading' => 'পরিভ্রমণ মেনু',
 'errorpagetitle' => 'ত্রুটি',
-'returnto' => '$1 à¦¶à¦¿à¦°à§\8bনামà§\87র à¦ªà¦¾à¦¤à¦¾à¦¯à¦¼ à¦«à§\87রত à¦¯à¦¾à¦¨à¥¤',
+'returnto' => '$1 পাতায় ফেরত যান।',
 'tagline' => '{{SITENAME}} থেকে',
 'help' => 'সাহায্য',
 'search' => 'অনুসন্ধান',
@@ -266,7 +266,7 @@ $messages = array(
 'print' => 'মুদ্রণ',
 'view' => 'দেখাও',
 'edit' => 'সম্পাদনা',
-'create' => 'তৈরি করো',
+'create' => 'তৈরি',
 'editthispage' => 'সম্পাদনা করুন',
 'create-this-page' => 'পাতাটি তৈরি করো',
 'delete' => 'অপসারণ',
@@ -507,7 +507,7 @@ $2',
 'createacct-yourpasswordagain-ph' => 'আবারও শব্দচাবি প্রদান করুন',
 'remembermypassword' => 'একাধিক সেশনের জন্য শব্দচাবি মনে রাখা হোক (সর্বোচ্চ $1 {{PLURAL:$1|দিনের|দিনের}} জন্য)',
 'userlogin-remembermypassword' => 'আমাকে প্রবেশ অবস্থায় রাখো',
-'userlogin-signwithsecure' => 'নিরাপদ à¦¸à¦¾à¦°à§\8dভারà§\87র ব্যবহার করুন',
+'userlogin-signwithsecure' => 'নিরাপদ à¦¸à¦\82যà§\8bà¦\97 ব্যবহার করুন',
 'securelogin-stick-https' => 'লগইনের পর এইচটিটিপিএস-এর সাথে সংযোগকৃত থাকুন',
 'yourdomainname' => 'আপনার ডোমেইন',
 'password-change-forbidden' => 'আপনি এই উইকিতে পাসওয়ার্ড পরিবর্তন করতে পারবেন না।',
@@ -528,7 +528,7 @@ $2',
 'gotaccount' => "আপনার কি ইতিমধ্যে একটি অ্যাকাউন্ট তৈরি করা আছে? '''$1''' করুন।",
 'gotaccountlink' => 'প্রবেশ',
 'userlogin-resetlink' => 'আপনার লগইনের বিস্তারিত তথ্যাদি ভুলে গেছেন?',
-'userlogin-resetpassword-link' => 'পাসà¦\93য়ারà§\8dড à¦°à¦¿à¦¸à§\87à¦\9f করুন',
+'userlogin-resetpassword-link' => 'শবà§\8dদà¦\9aাবি à¦ªà§\81নরায় à¦§à¦¾à¦°à§\8dয করুন',
 'helplogin-url' => 'Help:প্রবেশ',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|লগইন সংক্রান্ত সাহায্য]]',
 'createacct-join' => 'আপনার সম্পর্কিত তথ্য নিচে যোগ করুন।',
@@ -634,11 +634,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'শব্দচাবি রিসেট',
-'passwordreset-text' => 'আপনার শব্দচাবি বদলের জন্য নিচের ফর্মটি পূরণ করুন।',
 'passwordreset-legend' => 'শব্দচাবি রিসেট',
 'passwordreset-disabled' => 'এই উইকিতে শব্দচাবি রিসেটের সুবিধা নিষ্ক্রিয় রয়েছে।',
 'passwordreset-emaildisabled' => 'এই উইকিতে ইমেইল অপশনটি বন্ধ করা হয়েছে।',
-'passwordreset-pretext' => '{{PLURAL:$1||নিচে উল্লেখিত ডেটাগুলোর কোনো একটি প্রবেশ করান}}',
 'passwordreset-username' => 'ব্যবহারকারী নাম:',
 'passwordreset-domain' => 'ডোমেইন:',
 'passwordreset-capture' => 'অনুসন্ধানের ফলাফলের ইমেইল দেখুন?',
@@ -870,6 +868,7 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 সম্ভবতঃ পাতাটি মুছে ফেলা হয়েছে।',
 'edit-conflict' => 'সম্পাদনা সংঘাত।',
 'edit-no-change' => 'আপনার সম্পাদনাটি উপেক্ষা করা হয়েছে, কারণ লেখাতে কোনো পরিবর্তন করা হয়নি।',
+'postedit-confirmation' => 'আপনার সম্পাদনা সংরক্ষিত হয়েছে।',
 'edit-already-exists' => 'নতুন পাতা সৃষ্টি করা যায়নি।
 পাতাটি ইতিমধ্যেই বিদ্যমান।',
 'defaultmessagetext' => 'আদি টেক্সট',
@@ -877,7 +876,7 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 'invalid-content-data' => 'ভুল কন্টেন্ট ডাটা',
 'content-not-allowed-here' => '"$1" কন্টেন্টটি [[$2]] পাতায় অনুমোদিত নয়',
 'editwarning-warning' => 'এই পাতাটি ত্যাগ করলে আপনার আপনার করা পরিবর্তনগুলো হারিয়ে যেতে পারে।
-আপনি যদি লগইন করা থাকেন, আপনি এই সতর্কীকরণ বার্তাটি আপনার পছন্দের "{{int:prefs-editing}}" অনুচ্ছেদ থেকে নিস্ক্রিয় করতে পারেন।',
+আপনি যদি লগইন করা থাকেন, আপনি এই সতর্কীকরণ বার্তাটি আপনার পছন্দের "সম্পাদনা" অনুচ্ছেদ থেকে নিস্ক্রিয় করতে পারেন।',
 
 # Content models
 'content-model-wikitext' => 'উইকিটেক্সট',
@@ -1246,6 +1245,7 @@ $1",
 'yourrealname' => 'আসল নাম *',
 'yourlanguage' => 'ভাষা:',
 'yourvariant' => 'বিষয়বস্তুর ভাষার বিকল্প:',
+'prefs-help-variant' => 'উইকিতে কন্টেন্ট পাতা দেখার জন্য আপনার পছন্দের বৈশিষ্ট।',
 'yournick' => 'স্বাক্ষর:',
 'prefs-help-signature' => 'আলাপ পাতায় আপনার মন্তব্য অবশ্যই "<nowiki>~~~~</nowiki>" চিহ্ন দ্বারা স্বাক্ষরিত হতে হবে, যা স্বয়ংক্রিয়ভাবে আপনার স্বাক্ষর ও সময় সংযুক্ত করবে।',
 'badsig' => 'অবৈধ স্বাক্ষর; এইচটিএমএল ট্যাগ পরীক্ষা করুন।',
@@ -1302,7 +1302,7 @@ $1",
 'userrights-notallowed' => 'আপনার অ্যাকাউন্ট থেকে ব্যবহারকারী অধিকার যুক্ত বা অপসারণ করার অনুমতি নেই।',
 'userrights-changeable-col' => 'দল যা আপনি পরিবর্তন করতে পারেন',
 'userrights-unchangeable-col' => 'দল যা আপনি পরিবর্তন করতে পারবেন না',
-'userrights-conflict' => 'বà§\8dযবহারà¦\95ারà§\80 à¦\85ধিà¦\95ার à¦¬à¦¿à¦°à§\8bধ! অনুগ্রহ করে পুনরায় চেষ্টা করুন।',
+'userrights-conflict' => 'বà§\8dযবহারà¦\95ারà§\80 à¦\85ধিà¦\95ার à¦¦à§\8dবনà§\8dদà§\8dব! অনুগ্রহ করে পুনরায় চেষ্টা করুন।',
 
 # Groups
 'group' => 'দল:',
@@ -1348,6 +1348,7 @@ $1",
 'right-purge' => 'নিশ্চিতকরণ ছাড়াই সাইটের ক্যাশ পার্জ করুন',
 'right-autoconfirmed' => 'অর্ধ-সুরক্ষিত পাতা সম্পাদনা',
 'right-bot' => 'সয়ংক্রিয় পদ্ধতি হিসাবে চিহ্নিত করণ',
+'right-nominornewtalk' => 'বার্তা লেখার মত আলাপ পাতায় কোনো অনুল্লেখ্য সম্পাদনা নেই',
 'right-apihighlimits' => 'API কোয়েরি হিসাবে আরও উচ্চ লিমিট ব্যবহার করুন',
 'right-writeapi' => 'write API এর ব্যবহার',
 'right-delete' => 'পাতা মুছে ফেলুন',
@@ -2029,7 +2030,7 @@ Maybe you want to edit the description on its [$2 file description page] there.'
 # Special:ActiveUsers
 'activeusers' => 'সক্রিয় ব্যবহারকারী তালিকা',
 'activeusers-intro' => 'এটি ব্যবহারকারী তালিকা যাদের $1 {{PLURAL:$1|দিনে|দিনে}} যেকোন কর্মকান্ড রয়েছে।',
-'activeusers-count' => 'গত {{PLURAL:$3|দিনে|$3 দিনে}} সর্বমোট {{PLURAL:$1|কর্মকাণ্ডের}} সংখ্যা $1',
+'activeusers-count' => 'গত {{PLURAL:$3|দিনে}} সর্বমোট {{PLURAL:$1|পদ}} সংখ্যা $1',
 'activeusers-from' => 'ব্যবহারকারী দেখাও যাদের নাম এই অক্ষর দিয়ে শুরু:',
 'activeusers-hidebots' => 'বট লুকাও',
 'activeusers-hidesysops' => 'প্রশাসক লুকাও',
@@ -2113,8 +2114,8 @@ Maybe you want to edit the description on its [$2 file description page] there.'
 'notvisiblerev' => 'অপর একজন ব্যবহারকারী কর্তৃক প্রণীত সর্বশেষ সংস্করণটি অপসারিত হয়েছে',
 'watchnochange' => 'প্রদর্শিত সময়সীমার মধ্যে আপনার নজরতালিকায় রাখা কোন পাতায় কোন রকম সম্পাদনা ঘটেনি।',
 'watchlist-details' => 'নজরতালিকাতে {{PLURAL:$1|$1টি পাতা|$1টি পাতা}} আছে (আলাপ পাতাগুলি গণনায় না ধরে)।',
-'wlheader-enotif' => 'ই-মেইল এর মাধমে নির্দেশনার ব্যবস্থা চালু করা আছে।',
-'wlheader-showupdated' => "আপনার শেষ আগমনের পর থেকে যেসব পাতায় পরিবর্তন হয়েছে সেগুলি '''গাঢ়''' করে দেখানো হয়েছে",
+'wlheader-enotif' => 'ইমেল বিজ্ঞপ্তি সক্রিয় করা আছে।',
+'wlheader-showupdated' => "আপনার শেষ আগমনের পর থেকে যেসব পাতায় পরিবর্তন হয়েছে সেগুলি '''গাঢ়''' করে দেখানো হয়েছে",
 'watchmethod-recent' => 'নজরে রাখা পাতাগুলিতে সাম্প্রতিক পরিবর্তন পরীক্ষা করা হচ্ছে',
 'watchmethod-list' => 'নজরে রাখা পাতাগুলিতে সাম্প্রতিক পরিবর্তন পরীক্ষা করা হচ্ছে',
 'watchlistcontains' => 'আপনার নজরতালিকায় $1 টি {{PLURAL:$1|পাতা|পাতা}} রয়েছে।',
@@ -2522,7 +2523,9 @@ $1',
 'proxyblocksuccess' => 'নিষ্পন্ন হয়েছে।',
 'sorbsreason' => 'আপনার আইপি ঠিকানাটি {{SITENAME}}-এর ব্যবহার করা DNSBL-এ উন্মুক্ত প্রক্সি হিসেবে তালিকাভুক্ত আছে।',
 'sorbs_create_account_reason' => 'আপনার আইপি ঠিকানাটি {{SITENAME}}-এর ব্যবহার করা DNSBL-এ উন্মুক্ত প্রক্সি হিসেবে তালিকাভুক্ত আছে। আপনি কোন অ্যাকাউন্ট সৃষ্টি করতে পারবেন না।',
+'xffblockreason' => 'X-Forwarded-For হেডারে থাকা আইপি ঠিকানাটি ব্লক করা হয়েছে, হয় এটি আপনার নিজের অথবা আপনার ব্যবহৃত প্রক্সি সার্ভারের আইপি ঠিকানা। ব্লক করার কারণ হল: $1',
 'cant-block-while-blocked' => 'আপনি নিজে ব্লক থাকা অবস্থায় অন্যন্য ব্যবহারকারীকে ব্লক করতে পারবেন না।',
+'cant-see-hidden-user' => 'আপনি যে ব্যবহারকারীকে ব্লক বা লুকিয়ে রাখতে চাচ্ছেন তাকে আগে থেকেই ব্লক বা লুকিয়ে রাখা হয়েছে। এছাড়া আপনার Hideuser অধিকার নেই, তাই আপনি ব্যবহারকারীর অবস্থা পরিবর্তন করতে পারবেন না।',
 'ipbblocked' => 'আপনি অন্য কোন ব্যবহারকরীকে ব্লক বা আনব্লক করতে পারবেন না, কারণ আপনি নিজেই ব্লক রয়েছেন',
 'ipbnounblockself' => 'আপনি নিজেকে আনব্লক করতে পারবেন না',
 
@@ -2622,6 +2625,7 @@ $1',
 'immobile-target-namespace-iw' => 'পাতা স্থানান্তরের ক্ষেত্রে ইন্টারউইকি লিংক ব্যবহার করা যাবে না।',
 'immobile-source-page' => 'এই পাতাটির স্থানান্তর সম্ভব নয়।',
 'immobile-target-page' => 'গন্তব্য শিরোনামে স্থানান্তর করা যাবে না।',
+'bad-target-model' => 'আপনার উল্লেখিত কন্টেন্ট মডেলটি আলাদা। $1 থেকে $2 কনভার্ট করা যাচ্ছে না।',
 'imagenocrossnamespace' => 'কোনো ফাইল ফাইলনয় এমন নামস্থানে স্থানান্তর সম্ভব নয়',
 'nonfile-cannot-move-to-file' => 'কোনো ফাইলনয় এমন কোনো পাতা ফাইল নামস্থানে স্থানান্তর সম্ভব নয়',
 'imagetypemismatch' => 'নতুন ফাইল এক্সটেনশনটি ফাইলের ধরনের সাথে মিলছে না',
@@ -2656,6 +2660,7 @@ $1',
 'export-addns' => 'যোগ',
 'export-download' => 'ফাইল হিসেবে সংরক্ষণ করা হোক',
 'export-templates' => 'টেম্পলেট অন্তর্ভুক্তি',
+'export-pagelinks' => 'সম্পর্কিত পাতাগুলো এই ধাপ পর্যন্ত যুক্ত করো:',
 
 # Namespace 8 related
 'allmessages' => 'সিস্টেম বার্তাসমূহ',
@@ -2666,7 +2671,7 @@ $1',
 আপনি যদি সাধারণ মিডিয়াউইকির স্থানীয়করণে অবদান রাখতে আগ্রহী হন, অনুগ্রহ করে [//www.mediawiki.org/wiki/Localisation মিডিয়াউইকি স্থানীয়করণ] এবং [//translatewiki.net translatewiki.net] দেখুন।',
 'allmessagesnotsupportedDB' => "এই পাতা ব্যবহার করা যাবে না কারণ '''\$wgUseDatabaseMessages''' বন্ধ করে রাখা আছে।",
 'allmessages-filter-legend' => 'ছাকনী',
-'allmessages-filter' => 'পরিবর্তের ধাপ অনুযায়ী ফিল্টার:',
+'allmessages-filter' => 'Filter by customization state:',
 'allmessages-filter-unmodified' => 'অপরিবর্তিত',
 'allmessages-filter-all' => 'সমস্ত',
 'allmessages-filter-modified' => 'পরিবর্তিত',
@@ -2678,6 +2683,8 @@ $1',
 'thumbnail-more' => 'বড় করো',
 'filemissing' => 'ফাইল হারিয়ে গেছে',
 'thumbnail_error' => 'থাম্বনেইল সৃষ্টি করতে গিয়ে ত্রুটি: $1',
+'thumbnail_error_remote' => '$1 থেকে ত্রুটির বার্তা:
+$2',
 'djvu_page_error' => 'DjVu পাতা সীমার বাইরে',
 'djvu_no_xml' => 'DjVu ফাইলের জন্য XML আনতে পারা যায়নি।',
 'thumbnail-temp-create' => 'অস্থায়ী থাম্বনেইল ফাইল তৈরী করা সম্ভব নয়',
@@ -2699,6 +2706,7 @@ $1',
 'import-interwiki-templates' => 'সকল টেম্পলেট অন্তর্ভুক্ত',
 'import-interwiki-submit' => 'আমদানি',
 'import-interwiki-namespace' => 'গন্তব্য নামস্থান:',
+'import-interwiki-rootpage' => 'মূল পাতা (ঐচ্ছিক):',
 'import-upload-filename' => 'ফাইলনাম:',
 'import-comment' => 'মন্তব্য:',
 'importtext' => 'অনুগ্রহ করে ফাইলটি উৎস উইকি থেকে [[Special:Export|এক্সপোর্ট ইউটিলিটি]] ব্যবহার করে এক্সপোর্ট করুন।
@@ -2732,6 +2740,7 @@ $1',
 'import-error-interwiki' => '"$1" পাতাটি ইম্পোর্ট করা যায়নি কারণ এই নামটি বহিঃসংযোগর জন্য নির্ধারিত (ইন্টারউইকি)।',
 'import-error-special' => '"$1" পাতাটি ইম্পোর্ট করা যায়নি কারণ এটি একটি বিশেষ নামস্থানকে নির্দেশ করে যেটি সম্পাদনার জন্য অনুমোদিত নয়।',
 'import-error-invalid' => '"$1" পাতাটি ইম্পোর্ট করা যায়নি কারণ নামটি সঠিক নয়।',
+'import-error-unserialize' => '$1 পাতার $2 সংস্করণটি সিরিয়ালাইজ করা যাচ্ছে না। এই রিভিশনে $4 হিসাবে $3 কন্টেন্ট মডেলে সিরিয়ালাইজ করা আছে।',
 'import-options-wrong' => 'ভুল {{PLURAL:$2|অপশন|অপশনসমূহ}}: <nowiki>$1</nowiki>',
 'import-rootpage-invalid' => 'মূল পাতার ভুল শিরনাম দেয়া হয়েছে।',
 'import-rootpage-nosubpage' => 'মূল পাতার "$1" নামস্থানে উপপাতা তৈরী অনুমোদিত নয়।',
@@ -2864,7 +2873,7 @@ $1',
 'pageinfo-robot-noindex' => 'ইনডেক্সের অনুপযোগী',
 'pageinfo-views' => 'পরিদর্শন সংখ্যা',
 'pageinfo-watchers' => 'পাতাটি প্রদর্শনের সংখ্যা',
-'pageinfo-few-watchers' => '$1 {{PLURAL:$1|নজরের}} কম',
+'pageinfo-few-watchers' => '$1 জন {{PLURAL:$1|নজরকারীও}} কম',
 'pageinfo-redirects-name' => 'এই পাতার রিডাইরেক্ট সমূহ',
 'pageinfo-subpages-name' => 'এই পাতার উপপাতাসমূহ',
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|পুনর্নির্দেশ|পুনর্নির্দেশসমূহ}}; $3 {{PLURAL:$3|পুনর্নির্দেশ নেই|পুনর্নির্দেশ নেই}})',
@@ -2879,12 +2888,15 @@ $1',
 'pageinfo-magic-words' => 'ম্যাজিক {{PLURAL:$1|শব্দ|শব্দসমূহ}} ($1)',
 'pageinfo-hidden-categories' => 'লুকানো {{PLURAL:$1|বিষয়শ্রেণী|বিষয়শ্রেণীসমূহ}} ($1)',
 'pageinfo-templates' => 'সংযুক্ত {{PLURAL:$1|টেমপ্লেট|টেমপ্লেটসমূহ}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|পাতা|পাতাসমূহ}} ট্রান্সক্লুড করার সময় ($1)',
 'pageinfo-toolboxlink' => 'পাতার তথ্য',
 'pageinfo-redirectsto' => 'পুননির্দেশিত হয়েছে',
 'pageinfo-redirectsto-info' => 'তথ্য',
 'pageinfo-contentpage' => 'তথ্য পাতা হিসাবে বিবেচিত হয়েছে',
 'pageinfo-contentpage-yes' => 'হ্যাঁ',
+'pageinfo-protect-cascading' => 'ক্যাসকেডিং সুরক্ষা পদ্ধতি চালু রয়েছে',
 'pageinfo-protect-cascading-yes' => 'হ্যাঁ',
+'pageinfo-protect-cascading-from' => 'ক্যাসকেডিং সুরক্ষা পদ্ধতি',
 'pageinfo-category-info' => 'বিষয়শ্রেণী তথ্য',
 'pageinfo-category-pages' => 'পাতার সংখ্যা',
 'pageinfo-category-subcats' => 'উপবিষয়শ্রেণীর সংখ্যা',
@@ -2906,6 +2918,8 @@ $1',
 'markedaspatrollederror' => 'পরীক্ষিত বলে চিহ্নিত করা যাবে না',
 'markedaspatrollederrortext' => 'পরীক্ষিত বলে চিহ্নিত করতে আপনাকে একটি সংস্করণ নির্দিষ্ট  করতে হবে।',
 'markedaspatrollederror-noautopatrol' => 'আপনার নিজের পাতাকে পরীক্ষিত বলে চিহ্নিত করার অনুমতি আপনার নেই।',
+'markedaspatrollednotify' => '$1 এর পরিবর্তন পরীক্ষিত হিসাবে চিহ্নিত করা হয়েছে।',
+'markedaspatrollederrornotify' => 'পরীক্ষিত হিসাবে চিহ্নিত করতে ব্যর্থ।',
 
 # Patrol log
 'patrol-log-page' => 'পরীক্ষণ লগ',
@@ -3194,6 +3208,9 @@ $1',
 
 # Exif attributes
 'exif-compression-1' => 'অসংকুচিত',
+'exif-compression-2' => 'সিসিআইটিটি গ্রুপ ৩ ১-ডাইমেনশনাম মডিফাইড হাফম্যান রান লেংক্থ এনকোডিং',
+'exif-compression-3' => 'সিসিআইটিটি গ্রুপ ৩ ফ্যাক্স এনকোডিং',
+'exif-compression-4' => 'সিসিআইটিটি গ্রুপ ৪ ফ্যাক্স এনকোডিং',
 
 'exif-copyrighted-true' => 'কপিরাইটকৃত',
 'exif-copyrighted-false' => 'পাবলিক ডোমেইন',
@@ -3262,6 +3279,7 @@ $1',
 'exif-flash-return-2' => 'স্ট্রোবের আলো চিহ্নিত করা যায়নি',
 'exif-flash-return-3' => 'স্ট্রোবের আলো চিহ্নিত হয়েছে',
 'exif-flash-mode-1' => 'বাধ্যতামূলকভাবে ফ্ল্যাশ ব্যবহৃত হয়েছে',
+'exif-flash-mode-2' => 'বাধ্যতামূলক ফ্ল্যাশ নিষ্ক্রিয়',
 'exif-flash-mode-3' => 'স্বয়ংক্রিয় মোড',
 'exif-flash-function-1' => 'ফ্ল্যাশ ব্যবহৃত হয়নি',
 'exif-flash-redeye-1' => 'রেড-আই হ্রাস মোড',
@@ -3364,6 +3382,7 @@ $1',
 'exif-ycbcrpositioning-2' => 'কো-সাইটেড',
 
 'exif-dc-contributor' => 'অবদানকারী',
+'exif-dc-coverage' => 'মিডিয়া ফাইলের বিশেষ অথবা অস্থায়ী ক্ষেত্র',
 'exif-dc-date' => 'তারিখ',
 'exif-dc-publisher' => 'প্রকাশক',
 'exif-dc-relation' => 'সম্পর্কিত মিডিয়া',
@@ -3437,6 +3456,30 @@ $3
 
 $5
 
+$4-এ নিশ্চিতকরণ কোডটি মেয়াদোত্তীর্ণ হয়ে যাবে।',
+'confirmemail_body_changed' => 'কেউ একজন, সম্ভবত আপনি, $1 আইপি ঠিকানা থেকে,
+{{SITENAME}}-এ "$2" নামে অ্যাকাউন্টের ইমেরইল ঠিকানা পরিবর্তন করেছেন।
+
+এই অ্যাকাউন্টটি যে আসলেই আপনার তা নিশ্চিত করার জন্য এবং {{SITENAME}}-এ ই-মেইল বৈশিষ্ট্যগুলো সক্রিয় করার জন্য আপনার ব্রাউজারে এই সংযোগটি খুলুন:
+
+$3
+
+যদি আপনি এই ব্যক্তি *না* হন, তাহলে ইমেইল ঠিকানা নিশ্চিতকরণ বাতিল করতে এই লিঙ্কটি অনুসরণ করুন"
+
+$5
+
+$4-এ নিশ্চিতকরণ কোডটি মেয়াদোত্তীর্ণ হয়ে যাবে।',
+'confirmemail_body_set' => 'কেউ একজন, সম্ভবত আপনি, $1 আইপি ঠিকানা থেকে,
+{{SITENAME}}-এ "$2" অ্যকাউন্টের ইমেইল ঠিকানা নির্ধারণ করেছেন।
+
+এই অ্যাকাউন্টটি যে আসলেই আপনার তা নিশ্চিত করার জন্য এবং {{SITENAME}}-এ ই-মেইল বৈশিষ্ট্যগুলো সক্রিয় করার জন্য আপনার ব্রাউজারে এই সংযোগটি খুলুন:
+
+$3
+
+যদি আপনি এই ব্যক্তি *না* হন, তাহলে ইমেইল ঠিকানা নিশ্চিতকরণ বাতিল করতে এই লিঙ্কটি অনুসরণ করুন"
+
+$5
+
 $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত্তীর্ণ হয়ে যাবে।',
 'confirmemail_invalidated' => 'ইমেইল ঠিকানা নিশ্চিতকরণ বাতিল হয়েছে',
 'invalidateemail' => 'ইমেইল নিশ্চিতকরণ বাতিল করুন',
@@ -3570,7 +3613,7 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'hijri-calendar-m12' => 'জ্বিলহজ্জ',
 
 # Hebrew month names
-'hebrew-calendar-m10' => 'তামমà§\81য',
+'hebrew-calendar-m10' => 'তামুয',
 'hebrew-calendar-m11' => 'আভ',
 'hebrew-calendar-m12' => 'এলুল',
 
@@ -3601,6 +3644,12 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'version-license' => 'লাইসেন্স',
 'version-poweredby-credits' => "এইক উইকিটি পরিচালিত হচ্ছে '''[//www.mediawiki.org/ মিডিয়াউইকি]'''-এর মাধ্যমে, কপিরাইট © ২০০১-$1 $2।",
 'version-poweredby-others' => 'অন্যান্য',
+'version-credits-summary' => '[[Special:Version|মিডিয়াউইকি]] সফটওয়্যারে অবদানের জন্য আমরা এই ব্যক্তিকে স্বীকৃতি দিতে চাই।',
+'version-license-info' => 'মিডিয়াউইকি এ++++কটি ফ্রি সফটওয়্যার, আপনি এটি বিতরণ করতে পারবেন এবং/অথবা সম্পদানা করতে পারবেন, এক্ষেত্রে ফ্রি সফটওয়্যার ফাউন্ডেশনের প্রকাশিত গনু জেনারেল পাবলিক লাইসেন্সের ২য় অথবা সাম্প্রতিকতম কোনো সংস্করণ মেনে চলতে হবে। 
+
+সকলের উপকারের লক্ষ্যে এটি বিতরণ করা হয়ে থাকে, কিন্তু এক্ষেত্রে কোনো ওয়ারেন্টি দেয়া হয় না, এমনকি বিশেষ কোনো কার্যক্ষেত্রে ব্যবহারের জন্যও তথাকথিত ওয়ারেন্টি দেয়া হয় না। বিস্তারিত জানতে দেখুন গনু জেনারেল পাবলিক লাইসেন্স। 
+
+এই সফটওয়্যারের সাথে [{{SERVER}}{{SCRIPTPATH}}/COPYING গনু জেনারেল পাবলিক লাইসেন্সের একটি কপি] থাকার কথা; যদি আপনি না পেয়ে থাকেন তাহলে অনুগ্রহ করে ফ্রি সফটওয়্যার ফাউন্ডেশনকে জানান এই ঠিকানায়, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA অথবা [//www.gnu.org/licenses/old-licenses/gpl-2.0.html অনলাইনে দেখুন]।',
 'version-software' => 'ইনস্টলকৃত সফটওয়্যার',
 'version-software-product' => 'পণ্য',
 'version-software-version' => 'সংস্করণ',
@@ -3609,6 +3658,9 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'version-entrypoints-header-url' => 'ইউআরএল',
 
 # Special:Redirect
+'redirect' => 'ফাইল, ব্যবহারকরী, অথবা রিভিশন আইডি দ্বারা পুনঃনির্দেশ করা হয়েছে',
+'redirect-legend' => 'একটি ফাইল অথবা পাতায় পুনঃনির্দেশ করা হয়েছে',
+'redirect-summary' => 'এই বিশেষ পাতাটি পুনঃনির্দেশিত হয়েছে একটি ফাইলে (ফাইলের নাম), একটি পাতা (রিভিশন আইডি), অথবা একটি ব্যবহারকরী পাতায় (সংখ্যায় লেখা ব্যবহারকারী আইডি)।',
 'redirect-submit' => 'যাও',
 'redirect-lookup' => 'দেখুন:',
 'redirect-value' => 'মান:',
@@ -3665,7 +3717,9 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'tag-filter' => '[[Special:Tags|ট্যাগ]] ছাকনী:',
 'tag-filter-submit' => 'ছাকনী',
 'tags-title' => 'ট্যাগসমূহ',
+'tags-intro' => 'এই পাতায় সফটওয়্যারটি একটি সম্পাদনা চিহ্নিত করার জন্য যে সকল ট্যাগ ব্যবহার করে তার তালিকা ও বর্ণনা রয়েছে।',
 'tags-tag' => 'ট্যাগ নাম',
+'tags-display-header' => 'পরিনর্তন পাতার বৈশিষ্ট',
 'tags-description-header' => 'অর্থের পূর্ণ বণনা',
 'tags-hitcount-header' => 'ট্যাগকৃত পরিবর্সতনমূহ',
 'tags-edit' => 'সম্পাদনা',
@@ -3744,10 +3798,13 @@ $4-এ নিশ্চিতকরণ কোডটি মেয়াদোত
 'logentry-newusers-byemail' => '$1, $3 ব্যবহারকরী অ্যাকাউন্টটি {{GENDER:$2|তৈরী করেছেন}} এবং পাসওয়ার্ড ইমেইলের মাধ্যমে পাঠানো হয়েছে',
 'logentry-newusers-autocreate' => '$1 অ্যাকাউন্টটি স্বয়ংক্রিয়ভাবে {{GENDER:$2|তৈরি}} হয়েছে',
 'logentry-rights-rights' => '$1 ব্যবহারকারী, $3 এর দলগত সদস্যপদ $4 থেকে $5 এ {{GENDER:$2|পরিবর্তন}} করেছেন',
+'logentry-rights-rights-legacy' => '$1 দলের সদস্যপদ পরিবর্তন করেছেন {{GENDER:$2|changed}} এর জন্য $3',
 'logentry-rights-autopromote' => '$1 সয়ংক্রিয়ভাবে $4 থেকে $5 এ {{GENDER:$2|উন্নীত}} হয়েছে',
 'rightsnone' => '(কিছু নাই)',
 
 # Feedback
+'feedback-bugornote' => 'কারিগরী ত্রুটির বিস্তারিত বর্ণনা জানতে [$1 বাগ রিপোর্ট করুন]।
+অথবা নিচের এই সরল ফর্মটি ব্যবহার করতে পারেন। "[$3 $2]" পাতায় আপনার ব্যবহারকারী নাম সহ মন্তব্যটি প্রকাশিত হবে।',
 'feedback-subject' => 'বিষয়:',
 'feedback-message' => 'বার্তা:',
 'feedback-cancel' => 'বাতিল',
index f9dc656..1f4f430 100644 (file)
@@ -15,6 +15,7 @@
  * @author Gwenn-Ael
  * @author Kaganer
  * @author Malafaya
+ * @author Nemo bis
  * @author VIGNERON
  * @author Y-M D
  * @author לערי ריינהארט
@@ -710,10 +711,8 @@ Gortozit a-raok klask en-dro.",
 
 # Special:PasswordReset
 'passwordreset' => 'Adderaouekaat ar ger-tremen',
-'passwordreset-text' => "Leuniañ ar furmskrid-mañ da resev ur postel da zegas soñj deoc'h eus titouroù ho kont.",
 'passwordreset-legend' => 'Adsevel ar ger-tremen',
 'passwordreset-disabled' => 'Diweredekaet eo bet an adsevel gerioù-tremen war ar wiki-mañ.',
-'passwordreset-pretext' => '{{PLURAL:$1||Merkit unan eus an tammoù roadennoù dindan}}',
 'passwordreset-username' => 'Anv implijer :',
 'passwordreset-domain' => 'Domani :',
 'passwordreset-capture' => 'Gwelet ar postel ?',
@@ -947,6 +946,7 @@ Abeg dianav.",
 Diverket eo bet evit doare.',
 'edit-conflict' => 'Tabut kemmañ.',
 'edit-no-change' => "N'eo ket bet kemeret ho tegasadenn e kont rak ne oa ket bet kemmet netra en destenn.",
+'postedit-confirmation' => 'Enrollet eo bet ho kemmoù.',
 'edit-already-exists' => "N'eus ket bet gallet krouiñ ur bajenn nevez.
 Krouet e oa bet c'hoazh.",
 'defaultmessagetext' => 'Testenn dre ziouer',
@@ -1562,7 +1562,7 @@ E '''tev''' emañ ar pajennoù zo war ho [[Special:Watchlist|roll evezhiañ]].",
 'reuploaddesc' => "Distreiñ d'ar furmskrid.",
 'upload-tryagain' => 'Kas deskrivadur ar restr kemmet',
 'uploadnologin' => 'Digevreet',
-'uploadnologintext' => "Ret eo deoc'h bezañ [[Special:UserLogin|kevreetet]] a-benn gellout enporzhiañ restroù war ar servijer.",
+'uploadnologintext' => "Ret eo deoc'h bezañ [[Special:UserLogin|kevreet]] evit gallout enporzhiañ restroù war ar servijer.",
 'upload_directory_missing' => "Mankout a ra ar c'havlec'h enporzhiañ ($1) ha n'eo ket bet ar servijer Web evit e grouiñ.",
 'upload_directory_read_only' => "N'hall ket ar servijer skrivañ e renkell ar c'hargadennoù ($1).",
 'uploaderror' => 'Fazi enporzhiañ',
index 61db53f..3f15e3b 100644 (file)
@@ -16,6 +16,7 @@
  * @author Kaganer
  * @author Kal-El
  * @author Malafaya
+ * @author Nemo bis
  * @author Palapa
  * @author Seha
  * @author Smooth O
@@ -689,9 +690,14 @@ Obratite pažnju da neke stranice mogu nastaviti da se prikazuju kao da ste još
 'welcomecreation-msg' => 'Vaš nalog je napravljen.
 Ne zaboravite da prilagodite sebi svoja [[Special:Preferences|{{SITENAME}} podešavanja]].',
 'yourname' => 'Korisničko ime:',
+'userlogin-yourname' => 'Korisničko ime',
+'userlogin-yourname-ph' => 'Unesite Vaše korisničko ime',
 'yourpassword' => 'Šifra:',
+'userlogin-yourpassword' => 'Šifra',
+'userlogin-yourpassword-ph' => 'Unesite Vašu šifru/lozinku',
 'yourpasswordagain' => 'Ponovite šifru:',
 'remembermypassword' => 'Zapamti moju šifru na ovom računaru (najviše $1 {{PLURAL:$1|dan|dana|dana}})',
+'userlogin-signwithsecure' => 'Koristite sigurnu konekciju',
 'securelogin-stick-https' => 'Ostani povezan na HTTPS nakon prijave',
 'yourdomainname' => 'Vaš domen:',
 'password-change-forbidden' => 'Ne možete da promjenite lozinku na ovom wikiju.',
@@ -704,12 +710,15 @@ Ne zaboravite da prilagodite sebi svoja [[Special:Preferences|{{SITENAME}} pode
 'logout' => 'Odjavi me',
 'userlogout' => 'Odjavi me',
 'notloggedin' => 'Niste prijavljeni',
+'userlogin-noaccount' => 'Nemate korisničko ime?',
+'userlogin-joinproject' => 'Pridružite se {{SITENAME}}',
 'nologin' => "Nemate korisničko ime? '''$1'''.",
 'nologinlink' => 'Napravite nalog',
 'createaccount' => 'Napravi nalog',
 'gotaccount' => "Imate nalog? '''$1'''.",
 'gotaccountlink' => 'Prijavi se',
 'userlogin-resetlink' => 'Zaboravili ste detalje vaše prijave?',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoć pri prijavljivanju]]',
 'createaccountmail' => 'e-poštom',
 'createaccountreason' => 'Razlog:',
 'badretype' => 'Šifre koje ste unijeli se ne poklapaju.',
@@ -804,10 +813,8 @@ Možda ste već uspješno promijenili Vašu šifru ili ste tražili novu privrem
 
 # Special:PasswordReset
 'passwordreset' => 'Poništavanje šifre',
-'passwordreset-text' => 'Ispunite ovaj obrazac da biste dobili e-mail podsjetnik o vašim detaljima računa.',
 'passwordreset-legend' => 'Poništi šifru',
 'passwordreset-disabled' => 'Poništavanje šifre  je onemogućeno na ovoj wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Unesite jedan dio podataka ispod}}',
 'passwordreset-username' => 'Korisničko ime:',
 'passwordreset-domain' => 'Domen:',
 'passwordreset-capture' => 'Pogledati krajnji e-mail?',
index 80c46ea..fe5bdf8 100644 (file)
@@ -24,6 +24,7 @@
  * @author Marcmpujol
  * @author Martorell
  * @author McDutchie
+ * @author Nemo bis
  * @author Pasqual (ca)
  * @author Paucabot
  * @author PerroVerd
@@ -31,6 +32,7 @@
  * @author Pitort
  * @author Pérez
  * @author Qllach
+ * @author QuimGil
  * @author SMP
  * @author Smeira
  * @author Solde
@@ -610,7 +612,7 @@ Tingueu en compte que algunes pàgines poden continuar mostrant-se com si encara
 'welcomecreation-msg' => 'El vostre compte ha estat creat.
 No oblideu de canviar les vostres [[Special:Preferences|preferències de {{SITENAME}}]].',
 'yourname' => "Nom d'usuari",
-'userlogin-yourname' => "Nom d'usuari",
+'userlogin-yourname' => 'Usuari',
 'userlogin-yourname-ph' => "Introduïu el vostre nom d'usuari",
 'yourpassword' => 'Contrasenya',
 'userlogin-yourpassword' => 'Contrasenya',
@@ -621,7 +623,7 @@ No oblideu de canviar les vostres [[Special:Preferences|preferències de {{SITEN
 'createacct-yourpasswordagain-ph' => 'Introduïu de nou la contrasenya',
 'remembermypassword' => 'Recorda la contrasenya entre sessions (per un màxim de $1 {{PLURAL:$1|dia|dies}})',
 'userlogin-remembermypassword' => "Recorda'm",
-'userlogin-signwithsecure' => 'Inicia la sessió amb un servidor segur',
+'userlogin-signwithsecure' => 'Connexió segura',
 'securelogin-stick-https' => "Roman connectat via HTTPS desprès d'autenticar-se",
 'yourdomainname' => 'El vostre domini',
 'password-change-forbidden' => 'No podeu canviar les contrasenyes en aquest wiki.',
@@ -642,18 +644,21 @@ No oblideu de canviar les vostres [[Special:Preferences|preferències de {{SITEN
 'gotaccount' => 'Ja teniu un compte? $1.',
 'gotaccountlink' => 'Inicia una sessió',
 'userlogin-resetlink' => "Heu oblidat les vostres dades d'accés?",
+'userlogin-resetpassword-link' => 'Reinicia la contrasenya',
 'helplogin-url' => 'Help:Registrar-se',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajuda per registrar-se]]',
-'createacct-join' => 'Introduïu les dades a continuació.',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajuda]]',
+'createacct-join' => 'Introduïu les vostres dades.',
 'createacct-emailrequired' => 'Adreça de correu electrònic',
 'createacct-emailoptional' => 'Adreça de correu electrònic (opcional)',
 'createacct-email-ph' => 'Introduïu la vostra adreça de correu electrònic',
-'createaccountmail' => "Utilitza una contrasenya aleatòria temporal i envia-la a l'adreça de correu electrònic especificat a continuació",
+'createaccountmail' => "Utilitza una contrasenya aleatòria temporal i envia-la a l'adreça de correu  especificada a continuació.",
 'createacct-realname' => 'Nom real (opcional)',
 'createaccountreason' => 'Motiu:',
 'createacct-reason' => 'Motiu',
+'createacct-reason-ph' => 'Per què creeu un altre compte',
 'createacct-captcha' => 'Control de seguretat',
 'createacct-imgcaptcha-ph' => 'Introduïu el text que apareix a dalt',
+'createacct-submit' => 'Crea el meu compte',
 'createacct-benefit-heading' => '{{SITENAME}} és feta per gent com tu.',
 'createacct-benefit-body1' => 'edicions',
 'createacct-benefit-body2' => 'pàgines',
@@ -744,14 +749,13 @@ Si us plau, esperi abans de tornar-ho a intentar.",
 'resetpass-wrong-oldpass' => 'Contrasenya actual o temporal no vàlida.
 Deveu haver canviat la vostra contrasenya o demanat una nova contrasenya temporal.',
 'resetpass-temp-password' => 'Contrasenya temporal:',
+'resetpass-abort-generic' => 'Una extensió ha interromput el canvi de contrasenya.',
 
 # Special:PasswordReset
 'passwordreset' => 'Restablir contrasenya',
-'passwordreset-text' => 'Completeu el següent formulari per reinicialitzar la vostra contrasenya',
 'passwordreset-legend' => 'Restablir contrasenya',
 'passwordreset-disabled' => "S'ha desactivat el restabliment de contranyes en aquest wiki.",
 'passwordreset-emaildisabled' => 'Les opcions de correu electrònic no estan habilitades en aquest wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Introduïu un dels elements de dades següents}}',
 'passwordreset-username' => "Nom d'usuari:",
 'passwordreset-domain' => 'Domini',
 'passwordreset-capture' => 'Veure el missatge de correu electrònic?',
@@ -982,6 +986,7 @@ No s'ha donat cap explicació.",
 Sembla haver estat esborrada.",
 'edit-conflict' => "Conflicte d'edició.",
 'edit-no-change' => 'La vostra modificació ha estat ignorada perquè no feia cap canvi al text.',
+'postedit-confirmation' => 'La modificació ha estat desada.',
 'edit-already-exists' => "No s'ha pogut crear una pàgina.
 Ja existeix.",
 'defaultmessagetext' => 'Missatge per defecte',
@@ -2130,7 +2135,7 @@ Es necessita com a mínim un domini de primer nivell, per exemple "*.org".<br />
 # Special:ActiveUsers
 'activeusers' => "Llista d'usuaris actius",
 'activeusers-intro' => "Aquí hi ha una llista d'usuaris que han tingut algun tipus d'activitat en {{PLURAL:$1|el darrer dia|els darrers $1 dies}}.",
-'activeusers-count' => '$1 {{PLURAL:$1|modificació|modificacions}} en {{PLURAL:$3|el darrer dia|els $3 darrers dies}}',
+'activeusers-count' => '$1 {{PLURAL:$1|acció|accions}} en {{PLURAL:$3|el darrer dia|els $3 darrers dies}}',
 'activeusers-from' => 'Mostra els usuaris començant per:',
 'activeusers-hidebots' => 'Amaga bots',
 'activeusers-hidesysops' => 'Amaga administradors',
@@ -2320,7 +2325,7 @@ de l'usuari [[User:$2|$2]] ([[User talk:$2|Discussió]]{{int:pipe-separator}}[[S
 
 La darrera modificació ha estat feta per l'usuari [[User:$3|$3]] ([[User talk:$3|Discussió]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
 'editcomment' => "El resum d'edició ha estat: «$1».",
-'revertpage' => "Revertides les edicions de [[Special:Contributions/$2|$2]] ([[User talk:$2|discussió]]). S'ha recuperat la darrera versió de l'usuari [[User:$1|$1]]",
+'revertpage' => "Revertides les edicions de [[Special:Contributions/$2|$2]] ([[User talk:$2|discussió]]) a l'última versió de [[User:$1|$1]]",
 'revertpage-nouser' => "Desfetes les edicions de (nom d'usuari eliminat) a l'última revisió feta per [[User:$1|$1]]",
 'rollback-success' => "Edicions revertides de $1; s'ha canviat a la darrera versió de $2.",
 
@@ -3832,15 +3837,15 @@ Amb aquest programa heu d'haver rebut [{{SERVER}}{{SCRIPTPATH}}/COPYING una còp
 # New logging system
 'logentry-delete-delete' => '$1 ha esborrat $3',
 'logentry-delete-restore' => '$1 ha restaurat $3',
-'logentry-delete-event' => "$1 ha canviat la visibilitat {{PLURAL:$5|d'un esdeveniment al registre|de $5 esdeveniments al registre}} de $3: $4",
-'logentry-delete-revision' => "$1 ha canviat la visibilitat {{PLURAL:$5|d'una revisió|de $5 revisions}} a la pàgina $3: $4",
-'logentry-delete-event-legacy' => "$1 ha canviat la visibilitat d'esdeveniments al registre de $3",
-'logentry-delete-revision-legacy' => '$1 ha canviat la visibilitat de revisions a la pàgina $3',
+'logentry-delete-event' => "$1 {{GENDER:$2|ha canviat}} la visibilitat {{PLURAL:$5|d'un esdeveniment al registre|de $5 esdeveniments al registre}} de $3: $4",
+'logentry-delete-revision' => "$1 {{GENDER:$2|ha canviat}} la visibilitat {{PLURAL:$5|d'una revisió|de $5 revisions}} a la pàgina $3: $4",
+'logentry-delete-event-legacy' => "$1 {{GENDER:$2|ha canviat}} la visibilitat d'esdeveniments al registre de $3",
+'logentry-delete-revision-legacy' => '$1 {{GENDER:$2|ha canviat}} la visibilitat de revisions a la pàgina $3',
 'logentry-suppress-delete' => '$1 {{GENDER:$2|ha suprimit}} la pàgina $3',
-'logentry-suppress-event' => "$1 secretament ha canviat la visibilitat {{PLURAL:$5|d'un esdeveniment al registre|de $5 esdeveniments al registre}} de $3: $4",
-'logentry-suppress-revision' => "$1 secretament ha canviat la visibilitat {{PLURAL:$5|d'una revisió|de $5 revisions}} a la pàgina $3: $4",
-'logentry-suppress-event-legacy' => "$1 secretament ha canviat la visibilitat d'esdeveniments al registre de $3",
-'logentry-suppress-revision-legacy' => '$1 secretament ha canviat la visibilitat de revisions a la pàgina $3',
+'logentry-suppress-event' => "$1 secretament {{GENDER:$2|ha canviat}} la visibilitat {{PLURAL:$5|d'un esdeveniment al registre|de $5 esdeveniments al registre}} de $3: $4",
+'logentry-suppress-revision' => "$1 secretament {{GENDER:$2|ha canviat}} la visibilitat {{PLURAL:$5|d'una revisió|de $5 revisions}} a la pàgina $3: $4",
+'logentry-suppress-event-legacy' => "$1 secretament {{GENDER:$2|ha canviat}} la visibilitat d'esdeveniments al registre de $3",
+'logentry-suppress-revision-legacy' => '$1 secretament {{GENDER:$2|ha canviat}} la visibilitat de revisions a la pàgina $3',
 'revdelete-content-hid' => 'ha ocultat contingut',
 'revdelete-summary-hid' => "ha ocultat el resum d'edició",
 'revdelete-uname-hid' => "ha ocultat el nom d'usuari",
@@ -3852,9 +3857,9 @@ Amb aquest programa heu d'haver rebut [{{SERVER}}{{SCRIPTPATH}}/COPYING una còp
 'logentry-move-move' => '$1 ha mogut $3 a $4',
 'logentry-move-move-noredirect' => '$1 ha mogut $3 a $4 sense deixar una redirecció',
 'logentry-move-move_redir' => '$1 ha mogut $3 a $4 sobre una redirecció',
-'logentry-move-move_redir-noredirect' => '$1 ha desplaçat la pàgina $3 a $4 on hi havia una redirecció i sense crear una nova redirecció',
-'logentry-patrol-patrol' => '1 $ va marcar la revisió $ 4 de "$ 3" com a supervisada',
-'logentry-patrol-patrol-auto' => '$1 ha marcat automàticament la versió $4 de la pàgina $3 com a patrullada',
+'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|ha desplaçat}} la pàgina $3 a $4 on hi havia una redirecció i sense crear una nova redirecció',
+'logentry-patrol-patrol' => '1$ {{GENDER:$2|ha marcat}} la revisió $4 de la pàgina «$3» com a patrullada',
+'logentry-patrol-patrol-auto' => '$1 {{GENDER:$2|ha marcat}} automàticament la versió $4 de la pàgina $3 com a patrullada',
 'logentry-newusers-newusers' => "El compte d'usuari $1 {{GENDER:$2|ha estat creat}}",
 'logentry-newusers-create' => "El compte d'usuari $1 {{GENDER:$2|ha estat creat}}",
 'logentry-newusers-create2' => "El compte d'usuari $3 {{GENDER:$2|ha estat creat}} per $1",
@@ -3938,4 +3943,7 @@ 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}}',
 
+# Image rotation
+'rotate-comment' => 'Imatge girada $1 {{PLURAL:$1|grau|graus}} en el sentit de les agulles del rellotge',
+
 );
index d83ef5c..967f2f5 100644 (file)
@@ -223,7 +223,7 @@ $messages = array(
 'tog-editsection' => 'Гайта хьажориг «нисйе» аьлла хlора агlона',
 'tog-editsectiononrightclick' => 'Нисде дакъа шозза бакъехьар дахка тlетаlийча оцу кортан (JavaScript)',
 'tog-showtoc' => 'Гойти коьртнаш (оцу агlонашна лаххара 3 коьртнашца)',
-'tog-rememberpassword' => 'Даглаца сан дlавазвалар хlокху гlулкхдечу гlирса тlяхь (цхьан $1 {{PLURAL:$1|де|ден|динахь}})',
+'tog-rememberpassword' => 'Даглаца сан дlавазвалар/ялар хlокху гlулкхдечу гlирса тlяхь (цхьан $1 {{PLURAL:$1|де|ден|динахь}})',
 'tog-watchcreations' => 'Тlетоха ас кхоллина агlонаш тергаме могlам чу',
 'tog-watchdefault' => 'Тlетоха ас нисйина агlонаш тергаме могlам чу',
 'tog-watchmoves' => 'Тlетоха ас цlераш хийцина агlонаш тергаме могlам чу',
@@ -317,6 +317,18 @@ $messages = array(
 'oct' => 'октябрь',
 'nov' => 'ноябрь',
 'dec' => 'декабрь',
+'january-date' => 'Январь $1',
+'february-date' => 'Февраль $1',
+'march-date' => 'Март $1',
+'april-date' => 'Апрель $1',
+'may-date' => 'Май $1',
+'june-date' => 'Июнь $1',
+'july-date' => 'Июль $1',
+'august-date' => 'Август  $1',
+'september-date' => 'Сентябрь $1',
+'october-date' => 'Октябрь $1',
+'november-date' => 'Ноябрь $1',
+'december-date' => 'Декабрь $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Категори|Категореш}}',
@@ -382,7 +394,7 @@ $messages = array(
 'errorpagetitle' => 'Гlалат',
 'returnto' => 'Юхагlо оцу агlоне $1.',
 'tagline' => 'Гlирс хlокхуьна бу {{grammar:genitive|{{SITENAME}}}}',
-'help' => 'Нисвохаам',
+'help' => 'Нийсвохаам',
 'search' => 'Лаха',
 'searchbutton' => 'Лаха',
 'go' => 'Дехьа вала',
@@ -422,7 +434,7 @@ $messages = array(
 'imagepage' => 'Хьажа хlуман агlоне',
 'mediawikipage' => 'Хьагайта хааман агlо',
 'templatepage' => 'Хьажа куцкепа агlоне',
-'viewhelppage' => 'Схьаэца нисвохаам',
+'viewhelppage' => 'Схьаэца нийсвохаам',
 'categorypage' => 'Хьажа категореши агӀоне',
 'viewtalkpage' => 'Хьажа дийцаре',
 'otherlanguages' => 'Кхечу маттахь дерш',
@@ -514,7 +526,7 @@ $1',
 'nstab-image' => 'Файл',
 'nstab-mediawiki' => 'Хаам',
 'nstab-template' => 'Кеп',
-'nstab-help' => 'Нисвохаам',
+'nstab-help' => 'Нийсвохаам',
 'nstab-category' => 'Категори',
 
 # Main script and global functions
@@ -536,6 +548,8 @@ $1',
 'internalerror' => 'Чоьхьара гlалат',
 'internalerror_info' => 'Чоьхьара гlалат: $1',
 'filedeleteerror' => 'ДӀаяккха цатарло файл «$1».',
+'cannotdelete' => 'Цатарло дӀаяккха я цӀе хийца «$1».
+АгӀо хьалхо дӀаяккхина хила тарло',
 'cannotdelete-title' => 'Цатарло агӀо дӀаяккха «$1»',
 'badtitle' => 'Цамегаш йолу цlе',
 'badtitletext' => 'Дехарца йолу агlонан цlе нийса яц, йаьсса ю, хила мега нийса ца хlоттийна меттаюкъар йа юкъарвики цlе. Хила мега, цlарца цамагош йолу саберг.',
@@ -544,7 +558,7 @@ $1',
 'protectedpagetext' => 'ХӀара агӀо дӀакъойлина йу рé цадаккхийта.',
 'viewsourcetext' => 'Хьоьга далундерг хьажар а дезахь хlокху агlон чура йоза хьаэцар:',
 'protectedinterface' => 'ХӀара схьгайтарна гӀирса хаамаш латтош йолу агӀо йу. Адаманкуьйгалхошна бен иза хийца цало.',
-'exception-nologin' => 'Ахьа хӀой вовзийтина вац',
+'exception-nologin' => 'Ахьа хӀой вовзийтина/йовзийтина вац/яц',
 
 # Login and logout pages
 'welcomeuser' => 'Марша ДогӀийла, $1!',
@@ -558,33 +572,33 @@ $1',
 'yourpasswordagain' => 'Юха язъйе ишар:',
 'createacct-yourpasswordagain' => 'Бакъе ишар',
 'createacct-yourpasswordagain-ph' => 'Кхин цкъа язъе ишар',
-'remembermypassword' => 'Даглаца сан дlавазвалар хlокху гlулкхдечу гlирса тlяхь (цхьан $1 {{PLURAL:$1|ден|динахь|динахь}})',
+'remembermypassword' => 'Даглаца сан дlавазвалар/ялар хlокху гlулкхдечу гlирса тlяхь (цхьан $1 {{PLURAL:$1|ден|динахь|динахь}})',
 'userlogin-remembermypassword' => 'Дагахь латт ве со',
 'yourdomainname' => 'Хьан машан меттиг:',
-'login' => 'Ð\92овзийÑ\82а Ñ\85Ñ\8cой Ð³lиÑ\80Ñ\81ан',
+'login' => 'ЧÑ\83 Ð²Ð°Ð»Ð°Ñ\80\8fлаÑ\80',
 'nav-login-createaccount' => 'Вовзийта хьой / дlавазло',
 'loginprompt' => 'Ахьа бакъо йала йеза оцу «cookies» хьайна вовзийта лаахь гlирсан.',
-'userlogin' => 'Чу вала йа дlавазло',
+'userlogin' => 'Чу валар/ялар я декъашхон дӀаяздар кхоллар',
 'userloginnocreate' => 'Вовзийта хьой',
-'logout' => 'Ара валар',
+'logout' => 'Аравалар/ялар',
 'userlogout' => 'Ара валар',
-'notloggedin' => 'Хьо вовзита веза гlирсан',
-'nologin' => "Хlинца дlа вазвин вац? '''$1'''.",
-'nologinlink' => 'Ð\9aÑ\85олла ÐºÐµÑ\80ла Ð´lавазвалар',
-'createaccount' => 'Ð\94lавазве ÐºÐµÑ\80ла Ð´ÐµÐºÑ\8aаÑ\88Ñ\85о',
+'notloggedin' => 'Хьо вовзийта/йовзийта гlирсан',
+'nologin' => "Хlинца дlа вазвина/язйина вац/яц? '''$1'''.",
+'nologinlink' => 'Ð\9aÑ\85олла Ð´ÐµÐºÑ\8aаÑ\88Ñ\85он Ð´Ó\80аÑ\8fздар',
+'createaccount' => 'Ð\9aÑ\85олла Ð´ÐµÐºÑ\8aаÑ\88Ñ\85он Ð´Ó\80аÑ\8fздаÑ\80',
 'gotaccount' => "Дlавазвелла вуй хьо? '''$1'''.",
 'gotaccountlink' => 'Вовзийта хьой',
 'createaccountmail' => 'хааман зlене хула',
 'createaccountreason' => 'Бахьан:',
 'createacct-reason' => 'Бахьна',
 'createacct-reason-ph' => '{{PLURAL:$1|агӀо|агӀонаш}}‎',
-'loginerror' => 'Гlалат ду декъашхо вовзарехь',
+'loginerror' => 'Гlалат ду декъашхо вовзарехь/йовзарехь',
 'nocookiesforlogin' => '{{int:nocookieslogin}}',
 'loginsuccesstitle' => 'Хьо вовзар хаз чакхдели',
 'loginsuccess' => 'Хlинца ахьа болх бó оцу цlарца $1.',
-'nosuchuser' => 'Ð\94екÑ\8aаÑ\88Ñ\85о Ñ\86lаÑ\80Ñ\86а $1 Ð²Ð¾Ñ\86аÑ\88 Ð²Ñ\83.
-Декъашхой цlераш хаалуш йу дlайазвалрца элраш.
-Нийса юьй хьажа цlе йа [[Special:UserLogin/signup|дlайазвалар кхолла керла]].',
+'nosuchuser' => 'ЦlаÑ\80Ñ\86а $1 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85о Ð²Ð°Ñ\86\8fÑ\86.
+Декъашхой цlераш хаалуш йу дlайазвалрца/яларца элраш.
+Нийса юьй хьажа цlе йа [[Special:UserLogin/signup|дlаяздар кхолла керла]].',
 'wrongpassword' => 'Ахьа язъйина йолу ишар нийса яц. Хьажа йуху цхьаъз.',
 'mailmypassword' => 'Схьаэца керла ишар',
 'emailauthenticated' => 'Хьан почтан адрес бакъдина $2 $3.',
@@ -751,6 +765,7 @@ $1',
 'revdelete-reasonotherlist' => 'Кхин бахьан',
 
 # History merging
+'mergehistory-from' => 'Дуьххьарлера агӀоно',
 'mergehistory-reason' => 'Бахьан:',
 
 # Merge log
@@ -808,15 +823,19 @@ $1',
 'powersearch-ns' => 'Цlераши анахь лахар:',
 'powersearch-redir' => 'Схьагайта дlасахьажийнарш',
 'powersearch-field' => 'Лаха',
+'powersearch-togglelabel' => 'Билгалдан:',
 'powersearch-toggleall' => 'Массо',
 'powersearch-togglenone' => 'Хlумма цаоьшу',
+'search-external' => 'Арахула лахар',
 
 # Preferences page
 'preferences' => 'Гlирс нисбан',
 'mypreferences' => 'ГӀирс нисбан',
 'prefs-edits' => 'Нисдарши дукхалла:',
 'changepassword' => 'Хийцамба ишарна',
+'prefs-skin' => 'Кечяран тема',
 'skin-preview' => 'Хьалха муха ю хьажа',
+'datedefault' => 'Хьан гlирс нисбар',
 'prefs-beta' => 'Гlоле таронаш',
 'prefs-datetime' => 'Терахь а хан',
 'prefs-labs' => 'Муха ю хьажарна таронаш',
@@ -833,6 +852,7 @@ $1',
 'restoreprefs' => 'МеттахӀоттабе гӀирс дуьхӀар сана',
 'prefs-editing' => 'Тадар',
 'rows' => 'МогӀанаш:',
+'columns' => 'БӀогӀамаш:',
 'searchresultshead' => 'Лаха',
 'timezonelegend' => 'Сахьатан аса:',
 'localtime' => 'Меттигера хан:',
@@ -843,7 +863,7 @@ $1',
 'prefs-emailconfirm-label' => 'Бакъ яр электрони почт:',
 'prefs-textboxsize' => 'Тадаран коран барам',
 'youremail' => 'Кехат яздо зlе цlе:',
-'username' => 'Дlаязвиначуьна цlе:',
+'username' => 'Декъашхон цlе:',
 'uid' => 'Декъашхочун {{GENDER:$1|код}}:',
 'prefs-memberingroups' => '{{GENDER:$2|Тобана|Тобана}} {{PLURAL:$1|декъашхо|декъашхо}}:',
 'prefs-registration' => '{{GENDER:$2|ДӀавазвелла|ДӀаязелла}} хан:',
@@ -872,9 +892,17 @@ $1',
 
 # User rights
 'userrights' => 'Декъашхочуьн бакъона урхалладар',
+'userrights-user-editname' => 'Язъе цӀе:',
+'editusergroup' => 'Хийца декъашхон бакъо',
 'editinguser' => "Хийца декъашхочуьна бакъо '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
+'userrights-editusergroup' => 'Хийца декъашхон бакъо',
 'userrights-groupsmember' => 'Декъашхо:',
 'userrights-reason' => 'Бахьан:',
+'userrights-no-interwiki' => 'Хьан бакъо яц декъашхой бакъо хийца кхечу википеди чохь.',
+'userrights-nologin' => 'Куьйгалхочунна бакъо йолу [[Special:UserLogin|д1аяздарца]] ло декъашхон бакъо.',
+'userrights-notallowed' => 'Хьан дӀаяздарца магийна дац декъашхошна бакъо яла а дӀаяккха а.',
+'userrights-changeable-col' => 'Хьона хийца луш йолу бакъонаш',
+'userrights-unchangeable-col' => 'Хьона хийца луш йоцу бакъонаш',
 
 # Groups
 'group' => 'Тоба:',
@@ -900,7 +928,21 @@ $1',
 'grouppage-suppress' => '{{ns:project}}:Левисорхой',
 
 # Rights
+'right-edit' => 'АгӀоаш нисяр',
+'right-createpage' => 'АгӀонаш кхоллар (дийцарш дац)',
+'right-createtalk' => 'Дийцаре агӀонаш кхоллар',
+'right-createaccount' => 'декъашхошна керла дӀаяздарш кхоллар',
+'right-move' => 'АгӀонашан цӀераш хийцар',
+'right-move-subpages' => 'АгӀонашан цӀераш хийцар цера бухара агӀонашцан',
+'right-movefile' => 'Файланши цӀе хийцар',
+'right-upload' => 'Файлаш чуйаьхар',
 'right-delete' => 'агӀош дӀаяхар',
+'right-bigdelete' => 'еха хийцаман истори йолу агӀонаш дӀаяхар',
+'right-browsearchive' => 'ДӀаяхна агӀонаш лахар',
+'right-undelete' => 'АгӀонаш меттахӀоттор',
+'right-blockemail' => 'Цамагдо декъашхошка хааман кехаташ кхехьийта',
+'right-unblockself' => 'Ша шин блокдӀаяккхар',
+'right-protect' => 'АгӀона гӀоралла хийцар а гӀоралла дина агӀо нисяр а',
 
 # Special:Log/newusers
 'newuserlogpage' => 'Декъашхой дlабазбина тептар',
@@ -957,6 +999,8 @@ $1',
 'uploadlogpage' => 'Чуйахаран тéптар',
 'uploadlogpagetext' => 'Лахахьа гойтуш бу могlам тlаьххьара чуяхна файлаши. Ишта хьажа. [[Special:ImageList|файлаши могlам]] йа [[Special:NewImages|галеларе файлаши]].',
 'filename' => 'Файлан цӀе',
+'filedesc' => 'Файлах лаьцна',
+'fileuploadsummary' => 'Файлах лаьцна:',
 'filereuploadsummary' => 'Файлан хийцамаш:',
 'uploadwarning' => 'Дlахьедар',
 'uploadedimage' => 'чуяккхина «[[$1]]»',
@@ -1002,9 +1046,11 @@ PICT # тайп тайпан
 'filehist-dimensions' => 'Файлан барам',
 'filehist-comment' => 'Билгалдаккхар',
 'imagelinks' => 'Хьажоригаш оцу файлан',
-'linkstoimage' => '{{PLURAL:$1|ТlаÑ\8cÑ\85Ñ\8cайогlÑ\83 $1 Ð°Ð³lо Ñ\82lеÑ\82ойжина|ТlаÑ\8cÑ\85Ñ\8cайогlÑ\83 $1 Ð°Ð³lонаÑ\88 Ñ\82lеÑ\82ойжина|ТlаÑ\8cÑ\85Ñ\8cайогlÑ\83 $1 Ð°Ð³lонаÑ\88 Ñ\82lеÑ\82ойжина}} Ñ\85lокÑ\85Ñ\83 Ñ\85\83ман:',
+'linkstoimage' => '{{PLURAL:$1|ТlаÑ\8cÑ\85Ñ\8cайогlÑ\83 $1 Ð°Ð³lо Ñ\82lеÑ\82ойжина|ТlаÑ\8cÑ\85Ñ\8cайогlÑ\83 $1 Ð°Ð³lонаÑ\88 Ñ\82lеÑ\82ойжина|ТlаÑ\8cÑ\85Ñ\8cайогlÑ\83 $1 Ð°Ð³lонаÑ\88 Ñ\82lеÑ\82ойжина}} Ñ\85lокÑ\85Ñ\83 Ñ\84айлан:',
 'nolinkstoimage' => 'АгӀонашчохь файл лелош яц.',
 'sharedupload' => 'Хlара хlума оцун $1 чура ю иза хила мега лелош кхечу кхолламашкахь.',
+'sharedupload-desc-here' => 'ХӀара файл $1 чура ю и лело йиш ю массо проекташи.
+Цунна хаам гайтина лахахь. [$2 Файл ВикидӀайуьллуче чохь]',
 'uploadnewversion-linktext' => 'Чуяккха керла верси хӀокху файлан',
 'shared-repo-name-wikimediacommons' => 'Викидlайуллуче',
 
@@ -1081,6 +1127,8 @@ PICT # тайп тайпан
 'nbytes' => '$1 {{PLURAL:$1|байт|байташ|байт}}',
 'ncategories' => '$1 {{PLURAL:$1|категори|категореш|категореш}}',
 'nmembers' => '$1 {{PLURAL:$1|файл|файл|файлаш}}',
+'nimagelinks' => 'Лелош ю $1 {{PLURAL:$1|агӀоначохь|агӀонашкахь|агӀонашкахь}}',
+'ntransclusions' => 'лелош ю $1 {{PLURAL:$1|агӀоначохь|агӀонашкахь|агӀонашкахь}}',
 'specialpage-empty' => 'Дехаро хlумма ца елла.',
 'lonelypages' => 'Байлахь йисина агIонаш',
 'uncategorizedpages' => 'Категори йоцу агIонаш',
@@ -1137,6 +1185,7 @@ PICT # тайп тайпан
 # Special:AllPages
 'allpages' => 'Массо агlонаш',
 'alphaindexline' => 'оцу $1 кху $2',
+'nextpage' => 'Тlаьхьа йогlу агlо ($1)',
 'prevpage' => 'Хьалхалера агlо ($1)',
 'allpagesfrom' => 'Гучé яха агlонаш, йуьлалуш йолу оцу:',
 'allpagesto' => 'Арайахар сацадé оцу:',
@@ -1184,7 +1233,7 @@ PICT # тайп тайпан
 # Watchlist
 'watchlist' => 'Тергаме могlам',
 'mywatchlist' => 'Тергаме могӀам',
-'watchnologin' => 'Хьо вовзита веза гlирсан',
+'watchnologin' => 'Хьо вовзийта/йовзийта гlирсан',
 'addedwatchtext' => 'Хlар агlо «[[:$1]]» тlетоьхна хьан [[Special:Watchlist|тидаме могlам чу]].
 Тlаьхьабогlу хийцамаш хlокх агlонна а кхунца дозуш долу дийцаре агlо а дlаяздийра ду кху могlамашкахь, ишта къастина хирду уьш шуьрочу элпашца хlокх агlон чохь [[Special:RecentChanges|керла хийцаме могlамашкахь]], бгlаьран га атту болуш.',
 'removedwatchtext' => 'Агlо «[[:$1]]» дlаяккхина йара хьан [[Special:Watchlist|тергаме могlам юкъар]].',
@@ -1204,7 +1253,7 @@ PICT # тайп тайпан
 
 # Delete
 'deletepage' => 'ДӀаяккха агӀо',
-'confirm' => 'Ð\9aÑ\8aобалде',
+'confirm' => 'Ð\91акÑ\8aдан',
 'excontent' => 'чуьраниг: «$1»',
 'excontentauthor' => 'чуьраниг: «$1» (дуьххьара кхоллина да вара иза [[Special:Contributions/$2|$2]])',
 'exbeforeblank' => 'чуьраниг дlацlанйале хьалха: «$1»',
@@ -1229,6 +1278,7 @@ PICT # тайп тайпан
 'rollbacklinkcount' => 'юхадаккха $1 {{PLURAL:$1|нисдар|нисдарш}}',
 'rollbacklinkcount-morethan' => 'Юхадаккха $1 дукха {{PLURAL:$1|нисдар|нисдарш|нисдарш}}',
 'revertpage' => 'Нисдарш [[Special:Contributions/$2|$2]] ([[User talk:$2|дийцаре]]) йуха йаьхна башхаллийн [[User:$1|$1]]',
+'rollback-success' => 'Юха даьхна $1; нисдарш, $2 версен.',
 
 # Protect
 'protectlogpage' => 'Гlаролли тептар',
@@ -1436,6 +1486,7 @@ PICT # тайп тайпан
 'movedto' => 'цlе хийцина оцу',
 'movetalk' => 'Цуьнца йогlуш йолу дийцаре агlон цlе хийцар',
 'move-subpages' => 'ЦӀeрш хийцае бухара агӀонаши ($1 кхаччалц)',
+'move-talk-subpages' => 'ЦӀе хийца бухара агӀонаши а агӀонашан дийцаре а ($1  кхаччалц)',
 'movepage-page-moved' => 'АгӀона $1 цӀе хийцина оцу $2.',
 'movelogpage' => 'Цlераш хийцаран тептар',
 'movesubpage' => '{{PLURAL:$1|Бухара агӀо|Бухара агӀонаш}}',
@@ -1492,7 +1543,7 @@ PICT # тайп тайпан
 'tooltip-pt-preferences' => 'Хьан гlирс нисбар',
 'tooltip-pt-watchlist' => 'Ахьа тергам бо агlонаши хийцаман могlам',
 'tooltip-pt-mycontris' => 'Хьан нисдаран могlам',
-'tooltip-pt-login' => 'Хlокху гlирса чохь дlавазвала мега, амма иза тlедожош дац.',
+'tooltip-pt-login' => 'Хlокху гlирса чохь дlавазвала/яла мега, амма иза тlедожош дац.',
 'tooltip-pt-logout' => 'Дlадерзадо болх бар',
 'tooltip-ca-talk' => 'Дийцаре агlон чулацам',
 'tooltip-ca-edit' => 'Хlара агlо хийцалур ю. Лелайе, дехар до, хьалххьажар айхьа чутохале lалашан',
@@ -1563,6 +1614,7 @@ PICT # тайп тайпан
 'spamprotectiontitle' => 'Совбиларна литтар',
 
 # Info page
+'pageinfo-language' => 'АгӀона мотт',
 'pageinfo-toolboxlink' => 'Агlонах болу бовзам',
 
 # Browsing diffs
@@ -1579,6 +1631,7 @@ PICT # тайп тайпан
 'show-big-image' => 'Сурт цlанал лаккхара бакъонца',
 'show-big-image-preview' => 'Барам хьажале: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Кхин шоралла|Кхин шоралла}}: $1.',
+'show-big-image-size' => '$1 × $2 пикселш',
 
 # Special:NewFiles
 'newimages' => 'Керлачу хlумни галеларе',
@@ -1618,6 +1671,7 @@ PICT # тайп тайпан
 # Exif tags
 'exif-datetime' => 'Хlума хийцина терахь а хан',
 'exif-datetimeoriginal' => 'Дуьххьарлера терахь а хан',
+'exif-languagecode' => 'Мотт',
 
 'exif-scenetype-1' => 'Сурт даьккхина нис дуьххьал',
 
@@ -1679,6 +1733,7 @@ PICT # тайп тайпан
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Лаха цхьатера йолу хIумнаш',
 'fileduplicatesearch-submit' => 'Лаха',
+'fileduplicatesearch-info' => '$1 × $2 {{PLURAL:$2|пиксель|пикселш|пикселш}}<br />Файлан барам: $3<br />MIME-тайп: $4',
 
 # Special:SpecialPages
 'specialpages' => 'Леррина агlонаш',
index a16630d..45accad 100644 (file)
@@ -664,7 +664,6 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'دووبارە ڕێکخستنەوەی تێپەڕوشە',
-'passwordreset-text' => 'ئەم فۆرمە پڕ بکەوە بۆ گرتنی ئیمەیلێکی بیرخەرەوەی وردەکارییەکانی ھەژمارەکەت.',
 'passwordreset-legend' => 'دووبارە ڕێکخستنەوەی تێپەڕوشە',
 'passwordreset-username' => 'ناوی بەکارھێنەری:',
 'passwordreset-domain' => 'پاوان:',
@@ -2361,8 +2360,8 @@ $1',
 'ipb-change-block' => 'دیسان بەربەست‌کردنەوەی ئەم بەکارهێنەرە بەم هەڵبژاردانە',
 'badipaddress' => 'ناونیشانی ئای‌پی نەگونجاو',
 'blockipsuccesssub' => 'بەربەست کردن سەرکەوتوو بوو',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] بەربەستکراوە.<br />
³Û\95Û\8cرÛ\8c [[Special:BlockList|Ù\84Û\8cستÛ\8c Ø¨Û\95ربÛ\95ستÙ\86]] Ø¨Ú©Û\95 Ø¨Û\86 Ø¨Û\8cÙ\86Û\8cنەوەی بەربەستنەکان.',
+'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] بەربەست کرا.<br />
¨Ú\95Ù\88اÙ\86Û\95 [[Special:BlockList|Ù¾Û\8eرستÛ\8c Ø¨Û\95ربÛ\95ستÙ\86]] Ø¨Û\86 Ø¨Û\95سÛ\95رداÚ\86Ù\88Ù\88نەوەی بەربەستنەکان.',
 'ipb-edit-dropdown' => 'دەستکاری هۆکارەکانی بەربەست',
 'ipb-unblock-addr' => 'لە بەربەست‌دەرهێنانی $1',
 'ipb-unblock' => 'لە بەربەست‌دەرهێنانی ناوی بەکارهێنەریەک یا ناونیشانێکی ئای‌پی',
index f18cf9e..2d908af 100644 (file)
@@ -469,6 +469,18 @@ $messages = array(
 'oct' => '10.',
 'nov' => '11.',
 'dec' => '12.',
+'january-date' => '$1. ledna',
+'february-date' => '$1. února',
+'march-date' => '$1. března',
+'april-date' => '$1. dubna',
+'may-date' => '$1. května',
+'june-date' => '$1. června',
+'july-date' => '$1. července',
+'august-date' => '$1. srpna',
+'september-date' => '$1. září',
+'october-date' => '$1. října',
+'november-date' => '$1. listopadu',
+'december-date' => '$1. prosince',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorie|Kategorie|Kategorie}}',
@@ -835,7 +847,7 @@ Zvolte si prosím jiné jméno.',
 'nocookiesfornew' => 'Uživatelský účet nebyl založen, neboť jsme nebyli schopni potvrdit jeho původ.
 Ujistěte se, že máte povoleny cookies, obnovte tuto stránku a zkuste to znovu.',
 'noname' => 'Musíte uvést jméno svého účtu.',
-'loginsuccesstitle' => 'Přihlášení uspělo',
+'loginsuccesstitle' => 'Přihlášení bylo úspěšné',
 'loginsuccess' => 'Nyní jste přihlášen na {{grammar:6sg|{{SITENAME}}}} jako uživatel „$1“.',
 'nosuchuser' => 'Neexistuje uživatel se jménem „$1“. U uživatelských jmen se rozlišují malá/velká písmena. Zkontrolujte zápis, nebo si [[Special:UserLogin/signup|vytvořte nový účet]].',
 'nosuchusershort' => 'Neexistuje uživatel se jménem „$1“. Zkontrolujte zápis.',
@@ -916,11 +928,9 @@ Možná jste si již úspěšně heslo změnili, nebo jste si vyžádali nové d
 
 # Special:PasswordReset
 'passwordreset' => 'Reset hesla',
-'passwordreset-text' => 'Pro získání nového hesla vyplňte tento formulář.',
 'passwordreset-legend' => 'Znovu nastavit heslo',
 'passwordreset-disabled' => 'Znovunastavení hesla je na této wiki zakázáno.',
 'passwordreset-emaildisabled' => 'E-mailové funkce byly na této wiki vypnuty.',
-'passwordreset-pretext' => '{{PLURAL:$1||Zadejte jeden z údajů níže}}',
 'passwordreset-username' => 'Uživatelské jméno:',
 'passwordreset-domain' => 'Doména:',
 'passwordreset-capture' => 'Prohlédnout si výsledný e-mail?',
@@ -1152,13 +1162,14 @@ Podrobnosti si můžete prohlédnout v níže zobrazeném seznamu provedených p
 Zřejmě byla smazána.',
 'edit-conflict' => 'Editační konflikt.',
 'edit-no-change' => 'Vaše editace byla ignorována, protože nedošlo k žádné změně textu.',
+'postedit-confirmation' => 'Vaše změny byly uloženy.',
 'edit-already-exists' => 'Nepodařilo se vytvořit novou stránku, protože již existuje.',
 'defaultmessagetext' => 'Výchozí text hlášení',
 'content-failed-to-parse' => 'Nepodařilo se zpracovat data $2 do modelu $1: $3',
 'invalid-content-data' => 'Obsažená data jsou chybná',
 'content-not-allowed-here' => 'Obsah typu $1 není na stránce [[$2]] dovolen.',
 'editwarning-warning' => 'Opuštěním této stránky se mohou veškeré provedené změny ztratit.
-Pokud jste {{GENDER:|přihlášen|přihlášena|přihlášeni}}, můžete si toto varování vypnout na záložce „{{int:prefs-editing}}“ v uživatelském nastavení.',
+Pokud jste {{GENDER:|přihlášen|přihlášena|přihlášeni}}, můžete si toto varování vypnout na záložce „Editace“ v uživatelském nastavení.',
 
 # Content models
 'content-model-wikitext' => 'wikitext',
index b559dbb..082f59c 100644 (file)
@@ -677,11 +677,9 @@ Gall fod eich bod wedi llwyddo newid eich cyfrinair eisoes neu eich bod wedi gof
 
 # Special:PasswordReset
 'passwordreset' => 'Ailosod cyfrinair',
-'passwordreset-text' => 'Cwblhewch y ffurflen hon er mwyn ailosod eich cyfrinair.',
 'passwordreset-legend' => 'Ailosod y cyfrinair',
 'passwordreset-disabled' => 'Analluogwyd ailosod cyfrineiriau ar y wici hwn.',
 'passwordreset-emaildisabled' => 'Analluogwyd offer e-bost ar y wici hwn.',
-'passwordreset-pretext' => "{{PLURAL:$1|||Rhowch un o'r darnau o ddata isod|Rhowch un o'r darnau o ddata isod|Rhowch un o'r darnau o ddata isod|Rhowch un o'r darnau o ddata isod|Rhowch un o'r darnau o ddata isod}}",
 'passwordreset-username' => 'Eich enw defnyddiwr:',
 'passwordreset-domain' => 'Parth:',
 'passwordreset-capture' => 'Gweld yr e-bost a gaiff ei anfon?',
@@ -917,7 +915,7 @@ Mae ar gael yn barod.',
 'invalid-content-data' => "Data annilys i'r cynnwys",
 'content-not-allowed-here' => 'Nid yw cynnwys ar ffurf "$1" yn cael ei ganiatau ar y dudalen [[$2]]',
 'editwarning-warning' => 'Os y gadewch y dudalen hon mae\'n bosib y collwch eich newidiadau iddi.
-Gallwch ddiddymu\'r rhybudd hwn yn yr adran "{{int:prefs-editing}}" yn eich dewisiadau.',
+Os ydych wedi mewngofnodi gallwch ddiddymu\'r rhybudd hwn yn yr adran "Golygu" yn eich dewisiadau.',
 
 # Content models
 'content-model-wikitext' => 'cystrawen wici',
index 413bba4..99c2da5 100644 (file)
@@ -884,7 +884,7 @@ Vergiss nicht, deine [[Special:Preferences|{{SITENAME}}-Einstellungen]] zu ände
 'createacct-realname' => 'Bürgerlicher Name (optional)',
 'createaccountreason' => 'Grund:',
 'createacct-reason' => 'Begründung',
-'createacct-reason-ph' => 'Warum du ein anderes Benutzerkonto erstellst',
+'createacct-reason-ph' => 'Warum erstellst du ein anderes Benutzerkonto?',
 'createacct-captcha' => 'Sicherheitsprüfung',
 'createacct-imgcaptcha-ph' => 'Gib den Text ein, den du oben siehst.',
 'createacct-submit' => 'Dein Benutzerkonto erstellen',
@@ -984,11 +984,11 @@ Möglicherweise hast du dein Passwort bereits erfolgreich geändert oder ein neu
 
 # Special:PasswordReset
 'passwordreset' => 'Passwort zurücksetzen',
-'passwordreset-text' => 'Bitte dieses Formular ausfüllen, um dein Passwort zurückzusetzen.',
+'passwordreset-text-one' => 'Fülle dieses Formular aus, um dein Passwort zurückzusetzen.',
+'passwordreset-text-many' => '{{PLURAL:$1|Gib eines der Daten ein, um dein Passwort zurückzusetzen.}}',
 'passwordreset-legend' => 'Passwort zurücksetzen',
 'passwordreset-disabled' => 'Das Zurücksetzen von Passwörtern wurde in diesem Wiki deaktiviert.',
 'passwordreset-emaildisabled' => 'Die E-Mail-Funktionen wurden auf diesem Wiki deaktiviert.',
-'passwordreset-pretext' => '{{PLURAL:$1||Gib eines der folgenden Daten ein.}}',
 'passwordreset-username' => 'Benutzername:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Die E-Mail-Nachricht ansehen?',
@@ -1223,13 +1223,14 @@ Zu deiner Information folgt das Lösch- und Verschiebungs-Logbuch mit der Begrü
 Sie wurde anscheinend gelöscht.',
 'edit-conflict' => 'Bearbeitungskonflikt.',
 'edit-no-change' => 'Deine Bearbeitung wurde ignoriert, da keine Änderung an dem Text vorgenommen wurde.',
+'postedit-confirmation' => 'Deine Bearbeitung wurde gespeichert.',
 'edit-already-exists' => 'Die neue Seite konnte nicht erstellt werden, da sie bereits vorhanden ist.',
 'defaultmessagetext' => 'Standardtext',
 'content-failed-to-parse' => 'Parsen des Inhalts $2 für Modell $1 fehlgeschlagen: $3',
 'invalid-content-data' => 'Ungültige Inhaltsdaten',
 'content-not-allowed-here' => 'Der Inhalt „$1“ ist auf der Seite [[$2]] nicht erlaubt',
 'editwarning-warning' => 'Das Verlassen dieser Seite kann dazu führen, dass deine Änderungen verloren gehen.
-Wenn du angemeldet bist, kannst du das Anzeigen dieser Warnung im „{{int:prefs-editing}}“-Bereich deiner Einstellungen abschalten.',
+Wenn du angemeldet bist, kannst du das Anzeigen dieser Warnung im Bereich „Bearbeiten“ deiner Einstellungen abschalten.',
 
 # Content models
 'content-model-wikitext' => 'Wikitext',
index 1b793bb..07d224b 100644 (file)
@@ -872,10 +872,8 @@ Bıne vındere u newe ra dest pê bıkere.',
 
 # Special:PasswordReset
 'passwordreset' => 'Parola reset ke',
-'passwordreset-text' => 'Seba eyarkerdışê parolaya xo ra nê formi pır kerê.',
 'passwordreset-legend' => 'Parola reset ke',
 'passwordreset-disabled' => 'Parola reset kerdış ena viki sera qefılneyayo.',
-'passwordreset-pretext' => '{{PLURAL:$1||Enê cerenan ra jeweri defiye de}}',
 'passwordreset-username' => 'Nameyê karberi:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'neticey e-postay bımocne?',
index 4a3193e..33f3516 100644 (file)
@@ -14,6 +14,7 @@
  * @author Kaganer
  * @author Michawiki
  * @author Murjarik
+ * @author Nemo bis
  * @author Nepl1
  * @author Pe7er
  * @author Qualia
@@ -673,10 +674,8 @@ Sy snaź swójo gronidło južo wuspěšnje změnił abo nowe nachylne gronidło
 
 # Special:PasswordReset
 'passwordreset' => 'Gronidło slědk stajiś',
-'passwordreset-text' => 'Wupołni toś ten formular, aby swójo gronidło anulěrował.',
 'passwordreset-legend' => 'Gronidło slědk stajiś',
 'passwordreset-disabled' => 'Slědkstajenja gronidłow su se znjemóžnili na toś tom wikiju.',
-'passwordreset-pretext' => '{{PLURAL:$1||Zapódaj dołojce jadne ze slědujucych datowych podaśow}}',
 'passwordreset-username' => 'Wužywarske mě:',
 'passwordreset-domain' => 'Domena:',
 'passwordreset-capture' => 'E-mail se woglědaś?',
@@ -895,6 +894,7 @@ Njejo žedno wujasnjenje.',
 Zda sem až jo wulašowany.',
 'edit-conflict' => 'Wobźěłański konflikt.',
 'edit-no-change' => 'Wašo wobźěłanje jo se ignorěrowało, dokulaž tekst njejo se změnił.',
+'postedit-confirmation' => 'Twója změna jo se składła.',
 'edit-already-exists' => 'Njejo móžno było nowy bok napóraś.
 Eksistěrujo južo.',
 'defaultmessagetext' => 'Standardny tekst powěźeńki',
index a4c3d10..a4f2da1 100644 (file)
@@ -462,6 +462,18 @@ $messages = array(
 'oct' => 'Οκτ',
 'nov' => 'Νοε',
 'dec' => 'Δεκ',
+'january-date' => 'Ιανουάριος $1',
+'february-date' => 'Φεβρουάριος $1',
+'march-date' => 'Μάρτιος $1',
+'april-date' => 'Απρίλιος $1',
+'may-date' => 'Μαΐος $1',
+'june-date' => 'Ιούνιος $1',
+'july-date' => 'Ιούλιος $1',
+'august-date' => 'Αύγουστος $1',
+'september-date' => 'Σεπτέμβριος $1',
+'october-date' => 'Οκτώβριος $1',
+'november-date' => 'Νοέμβριος $1',
+'december-date' => 'Δεκέμβριος $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Κατηγορία|Κατηγορίες}}',
@@ -905,11 +917,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Κωδικός επαναφοράς',
-'passwordreset-text' => 'Συμπληρώστε αυτή τη φόρμα για να επαναφέρετε τον κωδικό σας.',
 'passwordreset-legend' => 'Επαναφορά κωδικού πρόσβασης',
 'passwordreset-disabled' => 'Η επαναφορά κωδικού πρόσβασης έχει απενεργοποιηθεί σε αυτό το wiki',
 'passwordreset-emaildisabled' => "Τα χαρακτηριστικά ηλεκτρονικού ταχυδρομείου έχουν απενεργοποιηθεί σ' αυτό το wiki.",
-'passwordreset-pretext' => '{{PLURAL:$1||Εισάγεται ένα από τα στοιχεία δεδομένων που βλέπετε παρακάτω}}',
 'passwordreset-username' => 'Όνομα χρήστη:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Προβολή του μηνύματος ηλεκτρονικού ταχυδρομείου που δημιουργήθηκε;',
@@ -1143,7 +1153,7 @@ $2
 'invalid-content-data' => 'Μη έγκυρα δεδομένα περιεχομένου',
 'content-not-allowed-here' => 'Το περιεχόμενο «$1» δεν επιτρέπεται στη σελίδα [[$2]]',
 'editwarning-warning' => 'Αφήνοντας αυτή τη σελίδα μπορεί να σας κάνει να χάσετε κάποιες αλλαγές που έχετε κάνει.
\91ν Î­Ï\87εÏ\84ε Ï\83Ï\85νδεθεί, Î¼Ï\80οÏ\81είÏ\84ε Î½Î± Î±Ï\80ενεÏ\81γοÏ\80οιήÏ\83εÏ\84ε Î±Ï\85Ï\84ή Ï\84ην Ï\80Ï\81οειδοÏ\80οίηÏ\83η Ï\83Ï\84ο Ï\84μήμα "{{int:prefs-editing}}" των προτιμήσεών σας.',
\91ν Î­Ï\87εÏ\84ε Ï\83Ï\85νδεθεί, Î¼Ï\80οÏ\81είÏ\84ε Î½Î± Î±Ï\80ενεÏ\81γοÏ\80οιήÏ\83εÏ\84ε Î±Ï\85Ï\84ή Ï\84ην Ï\80Ï\81οειδοÏ\80οίηÏ\83η Ï\83Ï\84ην  ÎµÎ½Ï\8cÏ\84ηÏ\84α "Î\95Ï\80εξεÏ\81γαÏ\83ία" των προτιμήσεών σας.',
 
 # Content models
 'content-model-wikitext' => 'βικικείμενο',
@@ -2120,6 +2130,8 @@ $1',
 Αντιθέτως θα έπρεπε να κατευθύνουν στο κατάλληλο θέμα.<br />
 Μια σελίδα αντιμετωπίζεται ως σελίδα αποσαφήνισης αν χρησιμοποιεί ένα πρότυπο το οποίο συνδέεται από το [[MediaWiki:Disambiguationspage]]",
 
+'pageswithprop' => 'Σελίδες με ιδιότητα σελίδας',
+'pageswithprop-legend' => 'Σελίδες με ιδιότητα σελίδας',
 'pageswithprop-text' => 'Αυτή η σελίδα ταξινομεί σελίδες που χρησιμοποιούν μια συγκεκριμένη ιδιότητα σελίδας.',
 'pageswithprop-prop' => 'Όνομα ιδιότητας:',
 'pageswithprop-submit' => 'Μετάβαση',
@@ -2373,7 +2385,7 @@ $1',
 'notvisiblerev' => 'Η έκδοση έχει διαγραφεί',
 'watchnochange' => 'Δεν υπήρξε δραστηριότητα επεξεργασίας στις σελίδες που παρακολουθείτε κατά την εμφανιζόμενη χρονική περίοδο.',
 'watchlist-details' => '{{PLURAL:$1|$1 σελίδα|$1 σελίδες}} είναι στη λίστα παρακολούθησης σας, χωρίς τις σελίδες συζήτησης.',
-'wlheader-enotif' => 'Î\97 ÎµÎ¹Î´Î¿Ï\80οίηÏ\83η Î¼Îµ Î·Î»ÎµÎºÏ\84Ï\81ονικÏ\8c Ï\84αÏ\87Ï\85δÏ\81ομείο Î­Ï\87ει ÎµÎ½ÎµÏ\81γοÏ\80οιηθεί.',
+'wlheader-enotif' => 'Î\97 ÎµÎ¹Î´Î¿Ï\80οίηÏ\83η Î·Î»ÎµÎºÏ\84Ï\81ονικοÏ\8d Ï\84αÏ\87Ï\85δÏ\81ομείοÏ\85 ÎµÎ½ÎµÏ\81γοÏ\80οιήθηκε.',
 'wlheader-showupdated' => "Σελίδες που έχουν υποστεί αλλαγές από την τελευταία φορά που τις επισκεφθήκατε εμφανίζονται με '''έντονους χαρακτήρες'''.",
 'watchmethod-recent' => 'Έλεγχος πρόσφατων αλλαγών σε σελίδες υπό παρακολούθηση',
 'watchmethod-list' => 'Έλεγχος σελίδων υπό παρακολούθηση για πρόσφατες αλλαγές',
index bc3a381..6e0ecb5 100644 (file)
@@ -702,56 +702,56 @@ future releases. Also note that since each list value is wrapped in a unique
 'editfont-serif'     => 'Serif font',
 
 # Dates
-'sunday'        => 'Sunday',
-'monday'        => 'Monday',
-'tuesday'       => 'Tuesday',
-'wednesday'     => 'Wednesday',
-'thursday'      => 'Thursday',
-'friday'        => 'Friday',
-'saturday'      => 'Saturday',
-'sun'           => 'Sun',
-'mon'           => 'Mon',
-'tue'           => 'Tue',
-'wed'           => 'Wed',
-'thu'           => 'Thu',
-'fri'           => 'Fri',
-'sat'           => 'Sat',
-'january'       => 'January',
-'february'      => 'February',
-'march'         => 'March',
-'april'         => 'April',
-'may_long'      => 'May',
-'june'          => 'June',
-'july'          => 'July',
-'august'        => 'August',
-'september'     => 'September',
-'october'       => 'October',
-'november'      => 'November',
-'december'      => 'December',
-'january-gen'   => 'January',
-'february-gen'  => 'February',
-'march-gen'     => 'March',
-'april-gen'     => 'April',
-'may-gen'       => 'May',
-'june-gen'      => 'June',
-'july-gen'      => 'July',
-'august-gen'    => 'August',
-'september-gen' => 'September',
-'october-gen'   => 'October',
-'november-gen'  => 'November',
-'december-gen'  => 'December',
-'jan'           => 'Jan',
-'feb'           => 'Feb',
-'mar'           => 'Mar',
-'apr'           => 'Apr',
-'may'           => 'May',
-'jun'           => 'Jun',
-'jul'           => 'Jul',
-'aug'           => 'Aug',
-'sep'           => 'Sep',
-'oct'           => 'Oct',
-'nov'           => 'Nov',
-'dec'           => 'Dec',
+'sunday'         => 'Sunday',
+'monday'         => 'Monday',
+'tuesday'        => 'Tuesday',
+'wednesday'      => 'Wednesday',
+'thursday'       => 'Thursday',
+'friday'         => 'Friday',
+'saturday'       => 'Saturday',
+'sun'            => 'Sun',
+'mon'            => 'Mon',
+'tue'            => 'Tue',
+'wed'            => 'Wed',
+'thu'            => 'Thu',
+'fri'            => 'Fri',
+'sat'            => 'Sat',
+'january'        => 'January',
+'february'       => 'February',
+'march'          => 'March',
+'april'          => 'April',
+'may_long'       => 'May',
+'june'           => 'June',
+'july'           => 'July',
+'august'         => 'August',
+'september'      => 'September',
+'october'        => 'October',
+'november'       => 'November',
+'december'       => 'December',
+'january-gen'    => 'January',
+'february-gen'   => 'February',
+'march-gen'      => 'March',
+'april-gen'      => 'April',
+'may-gen'        => 'May',
+'june-gen'       => 'June',
+'july-gen'       => 'July',
+'august-gen'     => 'August',
+'september-gen'  => 'September',
+'october-gen'    => 'October',
+'november-gen'   => 'November',
+'december-gen'   => 'December',
+'jan'            => 'Jan',
+'feb'            => 'Feb',
+'mar'            => 'Mar',
+'apr'            => 'Apr',
+'may'            => 'May',
+'jun'            => 'Jun',
+'jul'            => 'Jul',
+'aug'            => 'Aug',
+'sep'            => 'Sep',
+'oct'            => 'Oct',
+'nov'            => 'Nov',
+'dec'            => 'Dec',
 'january-date'   => 'January $1',
 'february-date'  => 'February $1',
 'march-date'     => 'March $1',
@@ -1095,7 +1095,7 @@ Do not forget to change your [[Special:Preferences|{{SITENAME}} preferences]].',
 'yourname'                        => 'Username:',
 'userlogin-yourname'              => 'Username',
 'userlogin-yourname-ph'           => 'Enter your username',
-'createacct-helpusername'      => '', # do not translate or duplicate this message to other languages
+'createacct-helpusername'         => '', # do not translate or duplicate this message to other languages
 'yourpassword'                    => 'Password:',
 'userlogin-yourpassword'          => 'Password',
 'userlogin-yourpassword-ph'       => 'Enter your password',
@@ -1275,11 +1275,11 @@ You may have already successfully changed your password or requested a new tempo
 
 # Special:PasswordReset
 'passwordreset'                    => 'Reset password',
-'passwordreset-text'               => 'Complete this form to reset your password.',
+'passwordreset-text-one'           => 'Complete this form to reset your password.',
+'passwordreset-text-many'          => '{{PLURAL:$1|Enter one of the pieces of data to reset your password.}}',
 'passwordreset-legend'             => 'Reset password',
 'passwordreset-disabled'           => 'Password resets have been disabled on this wiki.',
 'passwordreset-emaildisabled'      => 'Email features have been disabled on this wiki.',
-'passwordreset-pretext'            => '{{PLURAL:$1||Enter one of the pieces of data below}}',
 'passwordreset-username'           => 'Username:',
 'passwordreset-domain'             => 'Domain:',
 'passwordreset-capture'            => 'View the resulting email?',
@@ -1542,6 +1542,7 @@ It gave no explanation.',
 It appears to have been deleted.',
 'edit-conflict'                    => 'Edit conflict.',
 'edit-no-change'                   => 'Your edit was ignored because no change was made to the text.',
+'postedit-confirmation'            => 'Your edit was saved.',
 'edit-already-exists'              => 'Could not create a new page.
 It already exists.',
 'addsection-preload'               => '', # do not translate or duplicate this message to other languages
index e5ef486..eb6a385 100644 (file)
@@ -28,6 +28,7 @@
  * @author Michawiki
  * @author Mihxil
  * @author MinuteElectron
+ * @author Nemo bis
  * @author Objectivesea
  * @author Omnipaedista
  * @author Pedroca cerebral
@@ -860,11 +861,9 @@ Vi eble jam ŝanĝis vian pasvorton aŭ petis novan provizoran pasvorton.',
 
 # Special:PasswordReset
 'passwordreset' => 'Restarigo de pasvorto',
-'passwordreset-text' => 'Plenigu ĉi tiun formularon por renovigi vian pasvorton.',
 'passwordreset-legend' => 'Refari pasvorton',
 'passwordreset-disabled' => 'Pasvortaj restarigoj estis malŝaltitaj en ĉi tiu vikio.',
 'passwordreset-emaildisabled' => 'Retpoŝtaj funkcioj estas malfunkciigitaj en tiu ĉi vikio.',
-'passwordreset-pretext' => '{{PLURAL:$1||Enigi unu el la jenaj datenoj}}',
 'passwordreset-username' => 'Salutnomo:',
 'passwordreset-domain' => 'Domajno:',
 'passwordreset-capture' => 'Vidi la rezultan retpoŝton?',
@@ -1108,6 +1107,7 @@ Jen la protokolo pri forigado kaj alinomigado por via referenco.',
 Verŝajne ĝi estis forigita.',
 'edit-conflict' => 'Redakto-konflikto.',
 'edit-no-change' => 'Via redakto estis ignorita, ĉar neniu ŝanĝo estis farita al la teksto.',
+'postedit-confirmation' => 'Via redakto estis konservita.',
 'edit-already-exists' => 'Ne eblis krei novan paĝon.
 Ĝi jam ekzistas.',
 'defaultmessagetext' => 'Defaŭlta teksto',
index 5ea65f0..9404ffb 100644 (file)
@@ -75,6 +75,7 @@
  * @author Piolinfax
  * @author Platonides
  * @author PoLuX124
+ * @author QuimGil
  * @author Ralgis
  * @author Remember the dot
  * @author Remux
@@ -476,6 +477,18 @@ $messages = array(
 'oct' => 'oct',
 'nov' => 'nov',
 'dec' => 'dic',
+'january-date' => '$1 de enero',
+'february-date' => '$1 de febrero',
+'march-date' => '$1 de marzo',
+'april-date' => '$1 de abril',
+'may-date' => '$1 de mayo',
+'june-date' => '$1 de junio',
+'july-date' => '$1 de julio',
+'august-date' => '$1 de agosto',
+'september-date' => '$1 de septiembre',
+'october-date' => '$1 de octubre',
+'november-date' => '$1 de noviembre',
+'december-date' => '$1 de diciembre',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Categoría|Categorías}}',
@@ -781,7 +794,7 @@ Ten en cuenta que las páginas que tengas abiertas en otras ventanas o pestañas
 'welcomecreation-msg' => 'Tu cuenta ha sido creada.
 No olvides cambiar tus [[Special:Preferences|preferencias de {{SITENAME}} ]].',
 'yourname' => 'Nombre de usuario:',
-'userlogin-yourname' => 'Nombre de usuario',
+'userlogin-yourname' => 'Usuario',
 'userlogin-yourname-ph' => 'Escribe tu nombre de usuario',
 'yourpassword' => 'Contraseña:',
 'userlogin-yourpassword' => 'Contraseña',
@@ -791,8 +804,8 @@ No olvides cambiar tus [[Special:Preferences|preferencias de {{SITENAME}} ]].',
 'createacct-yourpasswordagain' => 'Confirma la contraseña',
 'createacct-yourpasswordagain-ph' => 'Repite la contraseña',
 'remembermypassword' => 'Mantenerme conectado en este navegador (hasta $1 {{PLURAL:$1|día|días}})',
-'userlogin-remembermypassword' => 'Mantener mi sesión iniciada',
-'userlogin-signwithsecure' => 'Idetificarse mediante servidor seguro',
+'userlogin-remembermypassword' => 'Mantener mi sesión',
+'userlogin-signwithsecure' => 'Usar conexión segura',
 'securelogin-stick-https' => 'Permanecer conectado a HTTPS después de iniciar sesión',
 'yourdomainname' => 'Dominio',
 'password-change-forbidden' => 'No puedes cambiar las contraseñas de este wiki.',
@@ -806,15 +819,16 @@ No olvides cambiar tus [[Special:Preferences|preferencias de {{SITENAME}} ]].',
 'userlogout' => 'Cerrar sesión',
 'notloggedin' => 'No has iniciado sesión',
 'userlogin-noaccount' => '¿No tienes una cuenta?',
-'userlogin-joinproject' => 'Unirse a {{SITENAME}}',
+'userlogin-joinproject' => 'Únete a {{SITENAME}}',
 'nologin' => '¿No tienes una cuenta? $1.',
 'nologinlink' => 'Crear una cuenta',
 'createaccount' => 'Crear una cuenta',
 'gotaccount' => '¿Ya tienes una cuenta? $1.',
 'gotaccountlink' => 'Entrar',
 'userlogin-resetlink' => '¿Olvidaste tus datos de acceso?',
+'userlogin-resetpassword-link' => 'Restablecer la contraseña',
 'helplogin-url' => 'Help:Inicio de sesión',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ayuda para identificarse]]',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ayuda]]',
 'createacct-join' => 'Introduce tus datos debajo.',
 'createacct-emailrequired' => 'Dirección de correo electrónico',
 'createacct-emailoptional' => 'Dirección de correo electrónico (opcional)',
@@ -929,11 +943,9 @@ Puede que ya hayas cambiado la contraseña o que hayas pedido una temporal.',
 
 # Special:PasswordReset
 'passwordreset' => 'Restablecimiento de contraseña',
-'passwordreset-text' => 'Completa este formulario para restablecer la contraseña.',
 'passwordreset-legend' => 'Restablecer contraseña',
 'passwordreset-disabled' => 'Se ha desactivado el restablecimiento de contraseñas en este wiki.',
 'passwordreset-emaildisabled' => 'Las funciones de correo electrónico han sido desactivadas en esta wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Introduce uno de los elementos de datos siguientes}}',
 'passwordreset-username' => 'Nombre de usuario:',
 'passwordreset-domain' => 'Dominio:',
 'passwordreset-capture' => '¿Ver el mensaje resultante?',
@@ -1171,14 +1183,15 @@ No se aportaron explicaciones.',
 Parece que ha sido borrada.',
 'edit-conflict' => 'Conflicto de edición.',
 'edit-no-change' => 'Se ignoró tu revisión, porque no se hizo ningún cambio al texto.',
+'postedit-confirmation' => 'Se ha guardado tu edición.',
 'edit-already-exists' => 'No se pudo crear una página nueva.
 Ya existe.',
 'defaultmessagetext' => 'Texto de mensaje predeterminado',
 'content-failed-to-parse' => 'No se pudo analizar el contenido $2 del modelo $1: $3',
 'invalid-content-data' => 'Datos de contenido inválidos',
 'content-not-allowed-here' => 'El contenido "$1" no está permitido en la página [[$2]]',
-'editwarning-warning' => 'Dejar esta página le causará la pérdida de cualquier cambio que haya hecho.
-Si está "logueado", puede deshabilitar esta advertencia en la sección "{{int:prefs-editing}}" de sus preferencias.',
+'editwarning-warning' => 'Si abandonas esta página perderás tus cambios.
+Si estás identificado, puedes deshabilitar esta advertencia en la sección "Edición" de tus preferencias.',
 
 # Content models
 'content-model-wikitext' => 'texto wiki',
@@ -2427,8 +2440,8 @@ La dirección de correo electrónico que indicaste en [[Special:Preferences|tus
 'notvisiblerev' => 'La última revisión de un usuario diferente ha sido borrada',
 'watchnochange' => 'Ninguno de los artículos de tu lista de seguimiento fue editado en el periodo de tiempo mostrado.',
 'watchlist-details' => '{{PLURAL:$1|$1 página|$1 páginas}} en su lista de seguimiento, sin contar las de discusión.',
-'wlheader-enotif' => 'La notificación por correo electrónico está activada.',
-'wlheader-showupdated' => "Las páginas modificadas desde su última visita aparecen en '''negrita'''",
+'wlheader-enotif' => 'La notificación por correo está activada.',
+'wlheader-showupdated' => "Las páginas modificadas desde su última visita aparecen en '''negrita'''.",
 'watchmethod-recent' => 'revisando cambios recientes en páginas vigiladas',
 'watchmethod-list' => 'revisando las páginas vigiladas en busca de cambios recientes',
 'watchlistcontains' => 'Tu lista de seguimiento posee $1 {{PLURAL:$1|página|páginas}}.',
@@ -4099,7 +4112,7 @@ Este sitio está experimentando dificultades técnicas.',
 'logentry-move-move_redir-noredirect' => '$1 movió la página $3 a $4 sobre una redirección y sin dejar una redirección',
 'logentry-patrol-patrol' => '$1 marcó como patrullada la edición $4 de la página $3',
 'logentry-patrol-patrol-auto' => '$1 marcó automáticamente la edición $4 de la página $3 como patrullada',
-'logentry-newusers-newusers' => 'La cuenta de usuario $1 ha sido creada',
+'logentry-newusers-newusers' => 'La cuenta de usuario $1 ha sido {{GENDER:$2|creada}}',
 'logentry-newusers-create' => 'La cuenta de usuario $1 ha sido creada',
 'logentry-newusers-create2' => 'La cuenta de usuario $3 ha sido creada por $1',
 'logentry-newusers-byemail' => 'la cuenta de usuario $3 ha sido creada por $1 y la contraseña ha sido enviada por correo',
index b6e7791..9e98e47 100644 (file)
@@ -18,6 +18,7 @@
  * @author Ker
  * @author Kyng
  * @author Morel
+ * @author Nemo bis
  * @author Oop
  * @author Pikne
  * @author Silvar
@@ -842,11 +843,9 @@ Võib-olla oled juba edukalt muudnud oma salasõna või taotlenud uut ajutist sa
 
 # Special:PasswordReset
 'passwordreset' => 'Parooli lähtestamine',
-'passwordreset-text' => 'Täida see vorm, et oma parool lähtestada.',
 'passwordreset-legend' => 'Parooli lähtestamine',
 'passwordreset-disabled' => 'Selles vikis on paroolide lähtestamine keelatud.',
 'passwordreset-emaildisabled' => 'E-posti funktsioonid on selles vikis keelatud.',
-'passwordreset-pretext' => '{{PLURAL:$1||Sisesta üks järgmistest andmeüksustest.}}',
 'passwordreset-username' => 'Kasutajanimi:',
 'passwordreset-domain' => 'Domeen:',
 'passwordreset-capture' => 'Näita lähetatavat e-kirja?',
@@ -1080,6 +1079,7 @@ Allpool on esitatud lehekülje kustutamis- ja teisaldamislogi.',
 Tundub, et see on kustutatud.',
 'edit-conflict' => 'Redigeerimiskonflikt.',
 'edit-no-change' => 'Sinu redigeerimist ignoreeriti, sest tekstile ei olnud tehtud muudatusi.',
+'postedit-confirmation' => 'Sinu muudatus on salvestatud.',
 'edit-already-exists' => 'Ei saanud alustada uut lehekülge.
 See on juba olemas.',
 'defaultmessagetext' => 'Sõnumi vaiketekst',
index 4abb732..94354cb 100644 (file)
@@ -14,6 +14,7 @@
  * @author Kaustubh
  * @author Kobazulo
  * @author Malafaya
+ * @author Nemo bis
  * @author Reedy
  * @author Theklan
  * @author Unai Fdz. de Betoño
index 2d69c26..4431246 100644 (file)
@@ -473,7 +473,7 @@ $messages = array(
 'tog-diffonly' => 'محتوای صفحه، زیر تفاوت نمایش داده نشود',
 'tog-showhiddencats' => 'رده‌های پنهان نمایش داده شود',
 'tog-noconvertlink' => 'تبدیل عنوان پیوند غیرفعال شود',
-'tog-norollbackdiff' => 'بعد از واگردانی تفاوت نشان داده نشود',
+'tog-norollbackdiff' => 'بعد از واگردانی تفاوت نشان داده شود',
 'tog-useeditwarning' => 'زمان خروج از صفحهٔ ویرایش در صورت داشتن ویرایش‌های‌ ذخیره‌نشده به من هشدار داده شود',
 
 'underline-always' => 'همیشه',
@@ -538,6 +538,18 @@ $messages = array(
 'oct' => 'اکتبر',
 'nov' => 'نوامبر',
 'dec' => 'دسامبر',
+'january-date' => '$1 ژانویه',
+'february-date' => '$1 فوریه',
+'march-date' => '$1 مارس',
+'april-date' => '$1 آوریل',
+'may-date' => '$1 مه',
+'june-date' => '$1 ژوئن',
+'july-date' => '$1 ژوئیه',
+'august-date' => '$1 اوت',
+'september-date' => '$1 سپتامبر',
+'october-date' => '$1 اکتبر',
+'november-date' => '$1 نوامبر',
+'december-date' => '$1 دسامبر',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|رده|رده‌ها}}',
@@ -853,9 +865,18 @@ $2',
 'welcomecreation-msg' => 'حساب کاربری شما ایجاد شده است.
 فراموش نکنید که [[Special:Preferences|ترجیحات {{SITENAME}}]] خود را تغییر دهید.',
 'yourname' => 'نام کاربری:',
+'userlogin-yourname' => 'نام کاربری',
+'userlogin-yourname-ph' => 'نام کاربریتان را وارد کنید',
 'yourpassword' => 'گذرواژه:',
+'userlogin-yourpassword' => 'گذرواژه',
+'userlogin-yourpassword-ph' => 'گذرواژه را وارد کنید',
+'createacct-yourpassword-ph' => 'یک گذرواژه وارد کنید',
 'yourpasswordagain' => 'تکرار گذرواژه:',
+'createacct-yourpasswordagain' => 'گذرواژه را دوباره وارد کنید',
+'createacct-yourpasswordagain-ph' => 'گذرواژه را وارد کنید برای بار دوم',
 'remembermypassword' => 'گذرواژه را (تا حداکثر $1 {{PLURAL:$1|روز|روز}}) در این رایانه به خاطر بسپار',
+'userlogin-remembermypassword' => 'من را واردشده نگه‌دار',
+'userlogin-signwithsecure' => 'از ارتباط امن استفاده کن',
 'securelogin-stick-https' => 'پس از ورود به سامانه به HTTPS متصل بمان',
 'yourdomainname' => 'دامنهٔ شما:',
 'password-change-forbidden' => 'شما نمی‌توانید گذرواژه‌ها را در این ویکی تغییر دهید.',
@@ -868,14 +889,32 @@ $2',
 'logout' => 'خروج از سامانه',
 'userlogout' => 'خروج از سامانه',
 'notloggedin' => 'به سامانه وارد نشده‌اید',
+'userlogin-noaccount' => 'آیا حسابی ندارید؟',
+'userlogin-joinproject' => 'به {{SITENAME}} بپیوندید',
 'nologin' => 'حساب کاربری ندارید؟ $1.',
 'nologinlink' => 'یک حساب کاربری جدید بسازید',
 'createaccount' => 'ایجاد حساب کاربری',
 'gotaccount' => 'حساب کاربری دارید؟ $1.',
 'gotaccountlink' => 'به سامانه وارد شوید',
 'userlogin-resetlink' => 'جزئیات ورود را فراموش کرده‌اید؟',
+'userlogin-resetpassword-link' => 'گذرواژه را ریست کن',
+'helplogin-url' => 'Help:ورود به سامانه',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|راهنمای ورود به سامانه]]',
+'createacct-join' => 'اطلاعاتتان را در زیر وارد کنید',
+'createacct-emailrequired' => 'آدرس رایانامه',
+'createacct-emailoptional' => 'آدرس رایانامه (اختیاری)',
+'createacct-email-ph' => 'آدرس رایانامه را وارد کنید',
 'createaccountmail' => 'استفاده از رمز عبور موقت تصادفی و ارسال آن به آدرس ایمیل مشخص شده در زیر',
+'createacct-realname' => 'نام واقعی (اختیاری)',
 'createaccountreason' => 'دلیل:',
+'createacct-reason' => 'دلیل',
+'createacct-reason-ph' => 'چرا شما حساب دیگری می‌سازید؟',
+'createacct-captcha' => 'بررسی امنیتی',
+'createacct-imgcaptcha-ph' => 'متن تصویری که در بالا می‌بینید، وارد کنید',
+'createacct-submit' => 'حسابتان را بسازید',
+'createacct-benefit-heading' => '{{SITENAME}} توسط افرادی مانند شما ساخته شده‌است',
+'createacct-benefit-body1' => '{{PLURAL:$1|ویرایش|ویرایش‌ها}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|صفحه|صفحه‌ها}}',
 'badretype' => 'گذرواژه‌هایی که وارد کرده‌اید یکسان نیستند.',
 'userexists' => 'نام کاربری‌ای که وارد کردید قبلاً استفاده شده‌است.
 لطفاً یک نام دیگر انتخاب کنید.',
@@ -977,10 +1016,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'بازنشانی گذرواژه',
-'passwordreset-text' => 'این فرم را برای دریافت نامهٔ یادآور جزئیات حسابتان کامل کنید.',
 'passwordreset-legend' => 'بازنشانی گذرواژه',
 'passwordreset-disabled' => 'بازنشانی گذرواژه در این ویکی غیرفعال شده است.',
-'passwordreset-pretext' => '{{PLURAL:$1||یکی از قطعه‌های داده را در زیر وارد کنید}}',
 'passwordreset-username' => 'نام کاربری:',
 'passwordreset-domain' => 'دامنه:',
 'passwordreset-capture' => 'رایانامهٔ نهایی نشان داده شود؟',
index 55a9f1f..53168b0 100644 (file)
@@ -313,7 +313,7 @@ $linkTrail = '/^([a-zäö]+)(.*)$/sDu';
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'Linkkien alleviivaus',
+'tog-underline' => 'Linkkien alleviivaus:',
 'tog-justify' => 'Tasaa kappaleet',
 'tog-hideminor' => 'Piilota pienet muutokset tuoreet muutokset -listasta',
 'tog-hidepatrolled' => 'Piilota tarkastetut muutokset tuoreet muutokset -listasta',
@@ -420,6 +420,18 @@ $messages = array(
 'oct' => 'lokakuu',
 'nov' => 'marraskuu',
 'dec' => 'joulukuu',
+'january-date' => '$1. tammikuuta',
+'february-date' => '$1. helmikuuta',
+'march-date' => '$1. maaliskuuta',
+'april-date' => '$1. huhtikuuta',
+'may-date' => '$1. toukokuuta',
+'june-date' => '$1. kesäkuuta',
+'july-date' => '$1. heinäkuuta',
+'august-date' => '$1. elokuuta',
+'september-date' => '$1. syyskuuta',
+'october-date' => '$1. lokakuuta',
+'november-date' => '$1. marraskuuta',
+'december-date' => '$1. joulukuuta',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Luokka|Luokat}}',
@@ -852,11 +864,10 @@ Olet saattanut jo onnistuneesti vaihtaa salasanasi tai pyytää uutta väliaikai
 
 # Special:PasswordReset
 'passwordreset' => 'Salasanan alustus',
-'passwordreset-text' => 'Täytä tämä lomake vaihtaaksesi salasanasi.',
+'passwordreset-text-one' => 'Täytä tämä lomake vaihtaaksesi salasanasi.',
 'passwordreset-legend' => 'Salasanan vaihto',
 'passwordreset-disabled' => 'Salasanojen alustus ei ole mahdollista tässä wikissä.',
 'passwordreset-emaildisabled' => 'Sähköpostitoiminnot on poistettu käytöstä tässä wikissä.',
-'passwordreset-pretext' => '{{PLURAL:$1||Kirjoita jokin jäljempänä pyydetty tieto}}',
 'passwordreset-username' => 'Käyttäjätunnus',
 'passwordreset-domain' => 'Verkkotunnus',
 'passwordreset-capture' => 'Näytä lähetettävä sähköpostiviesti',
@@ -886,7 +897,7 @@ voit jättää tämän viestin huomiotta ja jatkaa vanhan salasanan käyttöä.'
 Väliaikainen salasana: $2',
 'passwordreset-emailsent' => 'Salasananpalautusviesti on lähetetty.',
 'passwordreset-emailsent-capture' => 'Salasananpalautusviesti on lähetetty, se näkyy myös alla.',
-'passwordreset-emailerror-capture' => 'Alla näytettävä sähköpostiviesti luotiin, mutta sen lähettäminen käyttäjälle epäonnistui: $1',
+'passwordreset-emailerror-capture' => 'Allaoleva sähköpostiviesti luotiin, mutta sen lähettäminen {{GENDER:$2|käyttäjälle}} epäonnistui: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'Muuta sähköpostiosoitetta',
@@ -1080,6 +1091,7 @@ Harkitse, kannattaako sivua luoda uudelleen. Alla on tämän sivun poisto- ja si
 Se on ilmeisesti poistettu.',
 'edit-conflict' => 'Päällekkäinen muokkaus.',
 'edit-no-change' => 'Muokkauksesi sivuutettiin, koska tekstiin ei tehty mitään muutoksia.',
+'postedit-confirmation' => 'Muokkauksesi on tallennettu.',
 'edit-already-exists' => 'Uuden sivun luominen ei onnistunut.
 Se on jo olemassa.',
 'defaultmessagetext' => 'Viestin oletusteksti',
@@ -1087,7 +1099,7 @@ Se on jo olemassa.',
 'invalid-content-data' => 'Virheellinen sisältö',
 'content-not-allowed-here' => 'Sivun [[$2]] sisältö ei voi olla tyyppiä $1.',
 'editwarning-warning' => 'Tältä sivulta poistuminen saattaa aiheuttaa kaikkien tekemiesi muutosten katoamisen.
-Jos olet kirjautuneena sisään, voit poistaa tämän varoituksen käytöstä asetuksissa osiossa ”{{int:prefs-editing}}”.',
+Jos olet kirjautuneena sisään, voit poistaa tämän varoituksen käytöstä asetuksissa osiossa »Muokkaus».',
 
 # Content models
 'content-model-wikitext' => 'wikiteksti',
@@ -1366,6 +1378,7 @@ Kokeile lisätä haun alkuun ''all:'', niin haku kohdistuu kaikkeen sisältöön
 'powersearch-togglenone' => 'Poista valinnat',
 'search-external' => 'Ulkoinen haku',
 'searchdisabled' => 'Tekstihaku on poistettu toistaiseksi käytöstä suuren kuorman vuoksi. Voit käyttää alla olevaa Googlen hakukenttää sivujen etsimiseen, kunnes haku tulee taas käyttöön. <small>Huomaa, että ulkopuoliset kopiot {{GRAMMAR:genitive|{{SITENAME}}}} sisällöstä eivät välttämättä ole ajan tasalla.</small>',
+'search-error' => 'Virhe ilmaantui haettaessa: $1',
 
 # Preferences page
 'preferences' => 'Asetukset',
@@ -2313,7 +2326,7 @@ Tulevaisuudessa sivuun ja sen keskustelusivuun tehtävät muutokset listataan t
 'notvisiblerev' => 'Versio on poistettu',
 'watchnochange' => 'Valittuna ajanjaksona yhtäkään tarkkailemistasi sivuista ei muokattu.',
 'watchlist-details' => 'Tarkkailulistalla on {{PLURAL:$1|$1 sivu|$1 sivua}} keskustelusivuja mukaan laskematta.',
-'wlheader-enotif' => 'Sähköposti-ilmoitukset ovat käytössä.',
+'wlheader-enotif' => 'Sähköposti-ilmoitus on käytössä.',
 'wlheader-showupdated' => "Sivut, joita on muokattu viimeisen käyntisi jälkeen, on '''lihavoitu'''.",
 'watchmethod-recent' => 'tarkistetaan tuoreimpia muutoksia tarkkailluille sivuille',
 'watchmethod-list' => 'tarkistetaan tarkkailtujen sivujen tuoreimmat muutokset',
@@ -2862,6 +2875,8 @@ Jos haluat muokata MediaWikin yleistä kotoistusta, käy [//www.mediawiki.org/wi
 'thumbnail-more' => 'Suurenna',
 'filemissing' => 'Tiedosto puuttuu',
 'thumbnail_error' => 'Pienoiskuvan luominen epäonnistui: $1',
+'thumbnail_error_remote' => 'Virheilmoitus kohteesta $1:
+$2',
 'djvu_page_error' => 'DjVu-tiedostossa ei ole pyydettyä sivua',
 'djvu_no_xml' => 'DjVu-tiedoston XML-vienti epäonnistui',
 'thumbnail-temp-create' => 'Väliaikaisen esikatselukuvan luonti epäonnistui',
@@ -3917,6 +3932,7 @@ Sinun olisi pitänyt saada [{{SERVER}}{{SCRIPTPATH}}/COPYING kopio GNU General P
 'htmlform-selectorother-other' => 'Muu',
 'htmlform-no' => 'Ei',
 'htmlform-yes' => 'Kyllä',
+'htmlform-chosen-placeholder' => 'Valitse vaihtoehto',
 
 # SQLite database support
 'sqlite-has-fts' => '$1, jossa on tuki kokotekstihaulle',
@@ -4031,4 +4047,7 @@ Muussa tapauksessa voit käyttää alla olevaa helpompaa lomaketta. Kommenttisi
 'duration-centuries' => '$1 {{PLURAL:$1|vuosisata|vuosisataa}}',
 'duration-millennia' => '$1 {{PLURAL:$1|vuosituhat|vuosituhatta}}',
 
+# Image rotation
+'rotate-comment' => 'Kuvaa käännettiin $1 aste{{PLURAL:$1||tta}} myötäpäivään',
+
 );
index 2145d25..92f5b4f 100644 (file)
@@ -958,11 +958,11 @@ Vous avez peut-être déjà changé votre mot de passe ou demandé un nouveau mo
 
 # Special:PasswordReset
 'passwordreset' => 'Remise à zéro du mot de passe',
-'passwordreset-text' => 'Remplissez ce formulaire pour réinitialiser votre mot de passe.',
+'passwordreset-text-one' => 'Remplissez ce formulaire pour réinitialiser votre mot de passe.',
+'passwordreset-text-many' => '{{PLURAL:$1|Entrez une de ces données pour réinitialiser votre mot de passe.}}',
 'passwordreset-legend' => 'Remise à zéro du mot de passe',
 'passwordreset-disabled' => 'La réinitialisation des mots de passe a été désactivée sur ce wiki.',
 'passwordreset-emaildisabled' => 'Les fonctionnalités e-mail ont été désactivées sur ce wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Entrez un élément de données ci-dessous}}',
 'passwordreset-username' => "Nom d'utilisateur :",
 'passwordreset-domain' => 'Domaine :',
 'passwordreset-capture' => 'Voir le courriel résultant?',
@@ -1191,6 +1191,7 @@ Cause inconnue',
 Il semble qu'elle ait été supprimée.",
 'edit-conflict' => 'Conflit de modification.',
 'edit-no-change' => "Votre modification a été ignorée car aucun changement n'a été fait au texte.",
+'postedit-confirmation' => 'Votre modification a été sauvegardée.',
 'edit-already-exists' => "La nouvelle page n'a pas pu être créée.
 Elle existe déjà.",
 'defaultmessagetext' => 'Message par défaut',
@@ -1198,7 +1199,7 @@ Elle existe déjà.",
 'invalid-content-data' => 'Données du contenu non valides',
 'content-not-allowed-here' => 'Le contenu "$1" n\'est pas autorisé sur la page [[$2]]',
 'editwarning-warning' => 'Quitter cette page vous fera perdre toutes les modifications que vous avez faites.
-Si vous êtes connecté avec votre compte, vous pouvez retirer cet avertissement dans la section « {{int:prefs-editing}} » de vos préférences.',
+Si vous êtes connecté, vous pouvez désactiver cet avertissement dans la section « Modification » de vos préférences.',
 
 # Content models
 'content-model-wikitext' => 'wikitexte',
index c1a3dd8..b41d24a 100644 (file)
@@ -20,60 +20,60 @@ $linkTrail = '/^([a-zäöüßåāđē]+)(.*)$/sDu';
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'Linke unerstrike:',
-'tog-justify' => 'Täkst ås blokseeting',
-'tog-hideminor' => 'Latje änringe fersteege',
-'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-underline' => 'Ferwisangen onerstrik:',
+'tog-justify' => 'Tekst üs blook saat',
+'tog-hideminor' => 'Letj anrangen fersteeg',
+'tog-hidepatrolled' => 'Letj anrangen fersteeg',
+'tog-newpageshidepatrolled' => 'Kontroliaret sidjen bi a "Nei sidjen" fersteeg',
+'tog-extendwatchlist' => "Ütjwidjet list faan sidjen, diar dü uun't uug behual wel",
 '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)',
-'tog-editsection' => 'Ferbininge tun wisen foon änkelte oufsnaase',
-'tog-editsectiononrightclick' => 'Änkelte stöögne ma ruchts kliken beårbe (brükt JavaScript)',
-'tog-showtoc' => 'Wis en inhåltsferteeknis for side ma mäs ås trii ouerschrafte',
-'tog-rememberpassword' => 'Aw diheere komputer foon duur önjmälde (maksimool for $1 {{PLURAL:$1|däi|deege}})',
+'tog-numberheadings' => 'Auerskraften automaatisk numeriare',
+'tog-showtoolbar' => 'Werktjüch tu bewerkin wise (brükt JavaScript)',
+'tog-editondblclick' => 'Sidjen mä dobelklik bewerke (brükt JavaScript)',
+'tog-editsection' => "Ferwisangen tu't bewerkin faan enkelt kirwer",
+'tog-editsectiononrightclick' => 'Enkelt kirwer mä rochtsklik bewerke (brükt JavaScript)',
+'tog-showtoc' => 'Üüb sidjen mä muar üs trii auerskraften en indeks uunwise',
+'tog-rememberpassword' => 'Üüb diheer reegner üüb düür uunmelde (maksimaal för $1 {{PLURAL:$1|dai|daar}})',
 'tog-watchcreations' => "Salew maaget sidjen an huuchlooset datein leewen uun't uug behual",
 'tog-watchdefault' => "Salew feranert sidjen an datein leewen uun't uug behual",
 'tog-watchmoves' => "Salew fersköwen sidjen an datein leewen uun't uug behual",
 'tog-watchdeletion' => "Salew stregen sidjen an datein leewen uun't uug behual",
-'tog-minordefault' => 'Äine änringe gewöönlik ås latj mårkiire',
-'tog-previewontop' => 'Forbekiiken boowen dåt beårbingswaning wise',
-'tog-previewonfirst' => 'Bai dåt jarst beårben åltens dåt forbekiiken wise',
-'tog-nocache' => 'Sidecache foon e browser deaktiwiire',
+'tog-minordefault' => 'Aanj feranrangen üs "letjen" kääntiakne',
+'tog-previewontop' => '"Iarst ans luke" boowen faan\'t wönang tu bewerkin',
+'tog-previewonfirst' => 'Bi\'t iarst bewerkin "iarst ans luke" uunwise',
+'tog-nocache' => 'Sidjencache faan di browser deaktiwiare',
 'tog-enotifwatchlistpages' => "Schüür mi en e-mail, wan sidjen of datein feranert wurd, diar ik uun't uug behual wal",
 'tog-enotifusertalkpages' => 'Bi fernarangen üüb min brüker-diskusjuunssidj en e-mail sjüür',
 'tog-enotifminoredits' => 'Schüür mi uk bi letj feranrangen faan sidjen an datein en e-mail',
 'tog-enotifrevealaddr' => 'Min e-mail adres uun e-mail noorachten uunwise',
-'tog-shownumberswatching' => 'Wis di tål foon wåchende brükere',
+'tog-shownumberswatching' => "Taal faan brükern uunwise, diar det sidj uun't uug haa",
 'tog-oldsig' => 'Aktuel signatuur:',
-'tog-fancysig' => 'Signatuur behoonle ås wikitäkst',
-'tog-showjumplinks' => '"Schafte tu"-ferbininge aktiwiire',
-'tog-uselivepreview' => 'Live-forbekiik ferwiinje (brükt JavaScript) (äksperimentäl)',
-'tog-forceeditsummary' => 'Woorschoue, wan bai dåt spiikern jü tuhuupefooting breecht',
-'tog-watchlisthideown' => 'Äine beårbinge önj e bekiiklist fersteege',
-'tog-watchlisthidebots' => 'Beårbinge döör bots önj e bekiiklist fersteege',
-'tog-watchlisthideminor' => 'Latje beårbinge önj e bekiiklist fersteege',
-'tog-watchlisthideliu' => 'Beårbinge foon önjmäldede brükere önj e bekiikliste fersteege',
-'tog-watchlisthideanons' => 'Beårbinge foon ai önjmäldede brükere önj e bekiikliste fersteege',
-'tog-watchlisthidepatrolled' => 'Eefterkiikede beårbinge önj e bekiiklist fersteege',
+'tog-fancysig' => 'Signatuur üs wikitekst uunsä (saner ferwisangen)',
+'tog-showjumplinks' => '"Waksle tu"-ferwisangen aktiwiare',
+'tog-uselivepreview' => 'Live-"iarst ans luke" funktjuun brük (brükt JavaScript, eksperimentel)',
+'tog-forceeditsummary' => "Wäärne, wan bi't seekrin nian tuupfaadang uunden woort",
+'tog-watchlisthideown' => "Aanj feranrangen bi a sidjen, diar ik uun't uug behual wal, fersteeg",
+'tog-watchlisthidebots' => "Feranrangen faan bots bi a sidjen, diar ik uun't uug behual wal, fersteeg",
+'tog-watchlisthideminor' => "Letj feranrangen bi a sidjen, diar ik uun't uug behual wal, fersteeg",
+'tog-watchlisthideliu' => "Feranrangen faan uunmeldet brükern bi sidjen, diar ik uun't uug behual wal, fersteeg",
+'tog-watchlisthideanons' => "Feranrangen faan anonüüm brükern (IPs) bi sidjen, diar ik uun't uug behual wal, fersteeg",
+'tog-watchlisthidepatrolled' => "Kontroliaret feranrangen bi a sidjen, diar ik uun't uug behual wal, fersteeg",
 'tog-ccmeonemails' => 'Schüür mi kopiin faan e-mails, diar ik tu ööder brükern schüür',
-'tog-diffonly' => 'Wis bai di fersjoonsferglik bloot da unerschiise, ai jü hiilj sid',
-'tog-showhiddencats' => 'Wis ferstäägene kategoriie',
-'tog-norollbackdiff' => 'Unerschiis eefter dåt tübäägseeten unerdrüke',
+'tog-diffonly' => 'Bi en werjuunsferglik bluas di ferskeel uunwise, ei det hialer sidj',
+'tog-showhiddencats' => 'Ferbürgen kategoriin uunwise',
+'tog-norollbackdiff' => "Ferskeel efter't turagsaaten fersteeg",
 'tog-useeditwarning' => 'Waarskaue mi, wan en sidj slööden woort, huar noch ünseekert feranrangen maaget wurden san',
 
-'underline-always' => 'Åltens',
-'underline-never' => 'uler',
+'underline-always' => 'Leewen',
+'underline-never' => 'Nimer',
 'underline-default' => 'Komt üüb dan browser uun',
 
 # Font style option in Special:Preferences
-'editfont-style' => 'Schraftfamiili for di takst onj dåt beårbingswaning:',
-'editfont-default' => 'oufhingi foon browser-önjstaling',
-'editfont-monospace' => 'Schraft ma fååst tiikenbrååtj',
-'editfont-sansserif' => 'Seriifen-lüüse grotäskschraft',
-'editfont-serif' => 'Schraft ma seriife',
+'editfont-style' => "Skraftoort för di tekst uun't werkfial:",
+'editfont-default' => 'Hinget faan browser-iinstelangen uf',
+'editfont-monospace' => 'Skraft mä en fääst tiakenbreetje',
+'editfont-sansserif' => 'Skraft saner seriifen (fiin onerstreger)',
+'editfont-serif' => 'Skraft mä seriifen (fiin onerstreger)',
 
 # Dates
 'sunday' => 'Saandi',
@@ -140,122 +140,122 @@ $messages = array(
 'december-date' => '$1. Detsember',
 
 # Categories related messages
-'pagecategories' => '{{PLURAL:$1|Kategorii|Kategoriie}}',
-'category_header' => 'Side önj e kategorii "$1"',
-'subcategories' => 'Unerkategoriie',
-'category-media-header' => 'Meedia önj e kategorii "$1"',
-'category-empty' => '"Jüdeer kategorii önjhüült nütutids niinj side unti meedie."',
-'hidden-categories' => '{{PLURAL:$1|Ferstäägen Kategorii|Ferstäägene Kategoriie}}',
-'hidden-category-category' => 'Ferstäägene kategoriie',
-'category-subcat-count' => '{{PLURAL:$2|Jüdeer kategorii önjthålt füliend unerkategorii:|{{PLURAL:$1|Füliend unerkategorii as iinj foon inåål $2 unerkategoriie önj jüdeer kategorii:|Deer wårde $1 foon inåål $2 unerkategoriie önj jüdeer kategorii wised:}}}}',
-'category-subcat-count-limited' => 'Jüdeer kategorii önjthålt füliende {{PLURAL:$1|unerkategorii|$1 unerkategoriie}}:',
-'category-article-count' => '{{PLURAL:$2|Jüdeer kategorii önjthålt füliende sid:|{{PLURAL:$1|Füliende sid as iinj foon inåål $2 side önj jüdeer kategorii:|Deer wårde $1 foon inåål $2 side önj jüdeer kategorii wised:}}}}',
-'category-article-count-limited' => 'Füliende {{PLURAL:$1|sid as|$1 side san}} önj jüheer kategorii önjthülen:',
-'category-file-count' => '{{PLURAL:$2|Jüdeer kategorii önjthålt füliende dootäi:|{{PLURAL:$1|Füliende dootäi as iinj foon inåål $2 side önj jüdeer kategorii:|Deer wårde $1 foon inåål $2 dootäie önj jüdeer kategorii wised:}}}}',
-'category-file-count-limited' => 'Füliende {{PLURAL:$1|Dootäi as|$1 Dootäie san}} önj jüdeer kategorii önjthülen:',
-'listingcontinuesabbrev' => '(fortseeting)',
-'index-category' => 'Indisiirde side',
-'noindex-category' => 'Ai indisiirde side',
+'pagecategories' => '{{PLURAL:$1|Kategorii|Kategoriin}}',
+'category_header' => 'Sidjen uun kategorii "$1"',
+'subcategories' => 'Onerkategoriin',
+'category-media-header' => 'Meedien uun kategorii "$1"',
+'category-empty' => '"Uun detdiar kategorii san uun uugenblak nian sidjen of meedien."',
+'hidden-categories' => '{{PLURAL:$1|Ferbürgen kategorii|Ferbürgen kategoriin}}',
+'hidden-category-category' => 'Ferbürgen kategoriin',
+'category-subcat-count' => "{{PLURAL:$2|Detdiar kategorii hää ian onerkategorii.|Uun detdiar kategorii {{PLURAL:$1|stäänt ian onerkategorii|stun $1 onerkategoriin}} faan $2 uun't gehial.}}",
+'category-subcat-count-limited' => 'Detdiar kategorii hää {{PLURAL:$1|ian onerkategorii|$1 onerkategoriin}}:',
+'category-article-count' => "{{PLURAL:$2|Uun detdiar kategorii stäänt ian sidj.|Uun detdiar kategorii {{PLURAL:$1|stäänt ian sidj|stun jodiar $1 sidjen}} faan $2 uun't gehial.}}",
+'category-article-count-limited' => '{{PLURAL:$1|Detdiar sidj stäänt|Jodiar $1 sidjen stun}} uun detdiar kategorii.',
+'category-file-count' => "{{PLURAL:$2|Uun detdiar kategorii stäänt ian datei.|Uun detdiar kategorii {{PLURAL:$1|stäänt ian datei|stun jodiar $1 datein}} faan $2 uun't gehial.}}",
+'category-file-count-limited' => '{{PLURAL:$1|Detdiar datei stäänt|Jodiar $1 datein stun}} uun detdiar kategorii.',
+'listingcontinuesabbrev' => '(gongt widjer)',
+'index-category' => 'Indisiaret sidjen',
+'noindex-category' => 'Ei indisiaret sidjen',
 'broken-file-category' => 'Sid ma önjstöögne ferwisinge',
 
-'about' => 'Ouer',
-'article' => 'Sid',
-'newwindow' => '(wårt önj en nai waning ääm mååged)',
-'cancel' => 'Oufbreege',
-'moredotdotdot' => 'Mör ...',
+'about' => 'Auer',
+'article' => 'Artiikel',
+'newwindow' => '(woort uun en nei wönang eeben maaget)',
+'cancel' => 'Ufbreeg',
+'moredotdotdot' => 'Muar ...',
 'morenotlisted' => 'Öödern, ei apfeerd ...',
 'mypage' => 'Sidj',
 'mytalk' => 'Diskusjuun',
-'anontalk' => 'Diskusjoonssid foon jüdeer IP',
-'navigation' => 'Navigasjoon',
-'and' => '&#32;än',
+'anontalk' => 'Diskusjuunssidj faan detdiar IP',
+'navigation' => 'Nawigatjuun',
+'and' => '&#32;an',
 
 # Cologne Blue skin
-'qbfind' => 'Fine',
-'qbbrowse' => 'Bleese',
-'qbedit' => 'Änre',
-'qbpageoptions' => 'Jüdeer sid',
-'qbmyoptions' => 'Min side',
-'qbspecialpages' => 'Spetsjåålside',
+'qbfind' => 'Finj',
+'qbbrowse' => 'Schük',
+'qbedit' => 'Bewerke',
+'qbpageoptions' => 'Detdiar sidj',
+'qbmyoptions' => 'Min sidjen',
+'qbspecialpages' => 'Spezial-sidjen',
 'faq' => 'FAQ',
 'faqpage' => 'Project:FAQ',
 
 # Vector skin
-'vector-action-addsection' => 'Stuk haanetufoue',
+'vector-action-addsection' => 'Nei kirew began',
 'vector-action-delete' => 'Strike',
-'vector-action-move' => 'Ferschüwe',
+'vector-action-move' => 'Fersküüw',
 'vector-action-protect' => 'Sääkere',
-'vector-action-undelete' => 'Wi mååge',
-'vector-action-unprotect' => 'Frijeewe unti späre',
+'vector-action-undelete' => 'Weder iinstel',
+'vector-action-unprotect' => 'Sidjenseekerhaid',
 'vector-simplesearch-preference' => 'Ianfacher sjüklist iinstel (bluas bi Vector)',
-'vector-view-create' => 'Mååge',
-'vector-view-edit' => 'Beårbe',
-'vector-view-history' => 'Dootäifärsjoone',
+'vector-view-create' => 'Maage',
+'vector-view-edit' => 'Bewerke',
+'vector-view-history' => 'Ferluup uunluke',
 'vector-view-view' => 'Lees',
-'vector-view-viewsource' => 'Kwältäkst önjkiike',
-'actions' => 'Aksjoone',
+'vector-view-viewsource' => 'Kweltekst uunluke',
+'actions' => 'Aktjuunen',
 'namespaces' => 'Noomerüme',
-'variants' => 'Fariante',
+'variants' => 'Warianten',
 
 'navigation-heading' => 'Nawigatsjuun',
-'errorpagetitle' => 'Fäägel',
-'returnto' => 'Tubääg tu jü side $1.',
-'tagline' => 'Üt {{SITENAME}}',
-'help' => 'Heelp',
-'search' => 'Säk',
-'searchbutton' => 'Säke',
-'go' => 'Ütfääre',
-'searcharticle' => 'Sid',
-'history' => 'Färsjoone',
-'history_short' => 'Färsjoone/autoore',
-'updatedmarker' => 'änred sunt man leest besäk',
-'printableversion' => 'Prantfärsjoon',
-'permalink' => 'Permanänten link',
-'print' => 'Prante',
+'errorpagetitle' => 'Diar as wat skiaf gingen',
+'returnto' => 'Turag tu sidj $1.',
+'tagline' => 'Faan {{SITENAME}}',
+'help' => 'Halep',
+'search' => 'Schük',
+'searchbutton' => 'Schük',
+'go' => 'Widjer',
+'searcharticle' => 'Sidj',
+'history' => 'Werjuunen',
+'history_short' => 'Ferluup',
+'updatedmarker' => 'feranert sant man leetst beschük',
+'printableversion' => 'Ütjdrük maage',
+'permalink' => 'Permanent link',
+'print' => 'Drük',
 'view' => 'Lees',
-'edit' => 'Beårbe',
-'create' => 'Mååge',
-'editthispage' => 'Sid beårbe',
-'create-this-page' => 'Sid mååge',
-'delete' => 'Strike',
-'deletethispage' => 'Jüdeer sid strike',
-'undelete_short' => '{{PLURAL:$1|1 färsjoon|$1 färsjoone}} widermååge',
-'viewdeleted_short' => '$1 {{PLURAL:$1|iinj sträägen färsjoon|$1 sträägene färsjoone}} önjkiike',
+'edit' => 'Bewerke',
+'create' => 'Maage',
+'editthispage' => 'Sidj bewerke',
+'create-this-page' => 'Nei sidj maage',
+'delete' => 'Strik',
+'deletethispage' => 'Detdiar sidj strik',
+'undelete_short' => '{{PLURAL:$1|1 werjuun|$1 werjuunen}} weder iinstel',
+'viewdeleted_short' => '{{PLURAL:$1|Ian stregen werjuun|$1 stregen werjuunen}} uunluke',
 'protect' => 'Sääkere',
-'protect_change' => 'änre',
-'protectthispage' => 'Sid önj ferbading hüülje',
-'unprotect' => 'Frijeewe unti späre',
+'protect_change' => 'feranre',
+'protectthispage' => 'Sidj seekre',
+'unprotect' => 'Sidjenseekerhaid',
 'unprotectthispage' => 'Sääkering aphääwe',
-'newpage' => 'Nai sid',
-'talkpage' => 'Jüdeer sid diskutiire',
-'talkpagelinktext' => 'diskusjoon',
-'specialpage' => 'Spetsjåålsid',
-'personaltools' => 'Persöönlike räischupe',
-'postcomment' => 'Nai oufsnaas',
-'articlepage' => 'Inhåltsid wise',
-'talk' => 'Diskusjoon',
-'views' => 'Önjsichte',
-'toolbox' => 'Räischape',
-'userpage' => 'Brükersid wise',
+'newpage' => 'Nei sidj',
+'talkpage' => 'Detdiar sidj diskutiare',
+'talkpagelinktext' => 'Diskusjuun',
+'specialpage' => 'Spezial-sidj',
+'personaltools' => 'Min werktjüügen',
+'postcomment' => 'Nei kirew',
+'articlepage' => 'Artiikel wise',
+'talk' => 'Diskusjuun',
+'views' => 'Uunsichten',
+'toolbox' => 'Werktjüügen',
+'userpage' => 'Brükersidj uunwise',
 'projectpage' => 'Prujäktsid wise',
-'imagepage' => 'Dååtäisid wise',
-'mediawikipage' => 'Mäldingssid wise',
-'templatepage' => 'Forlåågesid wise',
-'viewhelppage' => 'Heelpsid wise',
-'categorypage' => 'Kategoriisid wise',
-'viewtalkpage' => 'Diskusjoon',
-'otherlanguages' => 'Önj oudere spräke',
-'redirectedfrom' => '(Widerliidjet foon $1)',
-'redirectpagesub' => 'Widerliidjing',
-'lastmodifiedat' => 'Jüdeer sid wörd tuleest aw $1 am jü klook $2 änred.',
+'imagepage' => 'Dateisidj uunwise',
+'mediawikipage' => 'Mädialangssidj uunwise',
+'templatepage' => 'Föörlaagensidj uunwise',
+'viewhelppage' => 'Halepsidj uunwise',
+'categorypage' => 'Kategoriisidj uunwise',
+'viewtalkpage' => 'Diskusjuun uunluke',
+'otherlanguages' => 'Uun ööder spriaken',
+'redirectedfrom' => '(Widjerfeerd faan $1)',
+'redirectpagesub' => 'Widjerfeerang',
+'lastmodifiedat' => 'Detdiar sidj as tuleetst di $1, am a klook $2 anert wurden.',
 'viewcount' => 'Aw jüdeer sid as  {{PLURAL:$1|iinjsen|$1 tunge}} tugram wörden.',
 'protectedpage' => 'Sääkerd sid',
-'jumpto' => 'Schaft tu:',
-'jumptonavigation' => 'Navigasjoon',
-'jumptosearch' => 'k',
-'view-pool-error' => 'Önjschüliing, da särwere san nütutids ouerlååsted.
-Tufoole brükere fersäke, jüdeer sid tu besäken.
-Wees sü gödj än täiw hu minuute, iir dü dåt nuch iinjsen ferseechst.
+'jumpto' => 'Waksle tu:',
+'jumptonavigation' => 'Navigatsjuun',
+'jumptosearch' => 'Schük',
+'view-pool-error' => 'Det dää üs iarag, a servers san auerläästet.
+Tuföl brükern ferschük, det sidj tu beschüken.
+Wees so gud an teew en uugenblak, iar dü det noch ans ferschükst.
 
 $1',
 'pool-timeout' => "Tidj uflepen bi't teewen üüb't sperang",
@@ -263,124 +263,125 @@ $1',
 'pool-errorunknown' => 'Ünbekäänd feeler',
 
 # 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' => 'Ouer {{SITENAME}}',
-'aboutpage' => 'Project:Ouer',
-'copyright' => 'Inhålt stoont tu rädj uner jü $1.',
-'copyrightpage' => '{{ns:project}}:Uurhiiwerruchte',
-'currentevents' => 'Aktuäle schaiinge',
-'currentevents-url' => 'Project:Aktuäle schaiinge',
-'disclaimers' => 'Impressum',
-'disclaimerpage' => 'Project:Impressum',
-'edithelp' => 'Beårbingsheelp',
+'aboutsite' => 'Auer {{SITENAME}}',
+'aboutpage' => 'Project:Auer',
+'copyright' => 'Det stäänt oner det lisens $1.',
+'copyrightpage' => '{{ns:project}}:Copyrights',
+'currentevents' => 'Aktuels',
+'currentevents-url' => 'Project:Aktuels',
+'disclaimers' => 'Disclaimers',
+'disclaimerpage' => 'Project:Disclaimers',
+'edithelp' => "Halep bi't bewerkin",
 'edithelppage' => 'Help:Beårbe',
-'helppage' => 'Help:Inhåltsfertiiknis',
-'mainpage' => 'Hoodsid',
-'mainpage-description' => 'Hoodsid',
-'policy-url' => 'Project:Ruchtliinje',
-'portal' => 'Gemiinschaps-portåål',
-'portal-url' => 'Project:Gemiinschaps-portåål',
-'privacy' => 'Dootenschuts',
-'privacypage' => 'Project:Dootenschuts',
-
-'badaccess' => 'Niinj tulingende ruchte',
-'badaccess-group0' => 'Dü hääst ai jü nüsie beruchtiging for jüdeer aksjoon',
-'badaccess-groups' => 'Jüdeer aksjoon as begränsed aw brükere, da tu {{PLURAL:$2|di grupe|åån foon da grupe}} „$1“ hiire.',
-
-'versionrequired' => 'Färsjoon $1 foon MediaWiki as nüsi.',
-'versionrequiredtext' => 'Färsjoon $1 foon MediaWiki as nüsi, am jüdeer sid tu brüken.
-Sii jü [[Special:Version|Färsjoonssid]]',
+'helppage' => 'Help:Auersicht',
+'mainpage' => 'Hoodsidj',
+'mainpage-description' => 'Hoodsidj',
+'policy-url' => 'Project:Reegeln',
+'portal' => 'Gemianskap',
+'portal-url' => 'Project:Gemianskap',
+'privacy' => 'Persöönelk dooten',
+'privacypage' => 'Project:Persöönelk dooten',
+
+'badaccess' => 'Brükerrochten ling ei',
+'badaccess-group0' => 'För detdiar aktjuun heest dü ei nooch brükerrochten.',
+'badaccess-groups' => 'Detdiar aktjuun mut bluas faan brükern uun {{PLURAL:$2|det skööl|ian faan jodiar sköölen}} „$1“ ütjfeerd wurd.',
+
+'versionrequired' => 'Werjuun $1 faan MediaWiki woort brükt.',
+'versionrequiredtext' => "Werjuun $1 faan MediaWiki woort brükt, am detdiar sidj tu brüken.
+Luke efter bi't [[Special:Version|werjuunssidj]]",
 
 'ok' => 'OK',
 'pagetitle' => '$1 – {{SITENAME}}',
 'pagetitle-view-mainpage' => '{{SITENAME}}',
 'backlinksubtitle' => '← $1',
-'retrievedfrom' => 'Foon „$1“',
-'youhavenewmessages' => 'Dü hääst $1 aw din diskusjoonssid ($2).',
-'newmessageslink' => 'naie tisinge',
+'retrievedfrom' => 'Faan „$1“',
+'youhavenewmessages' => 'Dü heest $1 ($2).',
+'newmessageslink' => 'nei bööd',
 'newmessagesdifflink' => 'Leest änring',
 'youhavenewmessagesfromusers' => 'Dü heest $1 faan {{PLURAL:$3|en öödern brüker|$3 ööder brükern}} ($2).',
 'youhavenewmessagesmanyusers' => 'Dü heest $1 faan flook ööder brükern ($2).',
 'newmessageslinkplural' => '{{PLURAL:$1|ian nei nooracht|nei noorachten}}',
 'newmessagesdifflinkplural' => 'leetst {{PLURAL:$1|feranrang|feranrangen}}',
-'youhavenewmessagesmulti' => 'Dü hääst nai tisinge aw $1',
+'youhavenewmessagesmulti' => 'Dü heest nei bööd üüb $1',
 'editsection' => 'Beårbe',
 'editsection-brackets' => '[$1]',
 'editold' => 'Beårbe',
-'viewsourceold' => 'kwältakst wise',
-'editlink' => 'beårbe',
-'viewsourcelink' => 'kwältakst wise',
+'viewsourceold' => 'kweltekst uunwise',
+'editlink' => 'bewerke',
+'viewsourcelink' => 'kweltekst uunwise',
 'editsectionhint' => 'Säksjoon beårbe: $1',
 'toc' => 'Inhåltsfertiiknis',
 'showtoc' => 'Wise',
 'hidetoc' => 'Ferbärje',
 'collapsible-collapse' => 'Tuupdoble',
 'collapsible-expand' => 'Ütjenööderdoble',
-'thisisdeleted' => '$1 önjkiike unti widermååge?',
-'viewdeleted' => '$1 wise?',
-'restorelink' => '$1 {{PLURAL:$1|sträägen Färsjoon|sträägene Färsjoone}}',
+'thisisdeleted' => '$1 uunluke of weder iinstel',
+'viewdeleted' => '$1 uunluke?',
+'restorelink' => '$1 {{PLURAL:$1|stregen werjuun|stregen werjuunen}}',
 'feedlinks' => 'Feed:',
-'feed-invalid' => 'Üngülti feed-abonemänt-typ.',
-'feed-unavailable' => 'Deer stönje niinj feeds tu rädj.',
-'site-rss-feed' => 'RSS-feed for $1',
-'site-atom-feed' => 'Atom-feed for $1',
-'page-rss-feed' => 'RSS-feed for „$1“',
-'page-atom-feed' => 'Atom-feed for „$1“',
+'feed-invalid' => 'Feed-abonement-typ as ferkiard.',
+'feed-unavailable' => 'Diar san nian feeds.',
+'site-rss-feed' => 'RSS-feed för $1',
+'site-atom-feed' => 'Atom-feed för $1',
+'page-rss-feed' => 'RSS-feed för „$1“',
+'page-atom-feed' => 'Atom-feed för „$1“',
 'feed-atom' => 'Atom',
 'feed-rss' => 'RSS',
-'red-link-title' => '$1 (sid ai deer)',
+'red-link-title' => '$1 (sidj ei diar)',
 'sort-descending' => 'Sortiare faan boowen tu onern',
 'sort-ascending' => 'Sortiare faan onern tu boowen',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Sid',
-'nstab-user' => 'Brükersid',
-'nstab-media' => 'Meediesid',
-'nstab-special' => 'Spetsjåålsid',
-'nstab-project' => 'Prujäktsid',
-'nstab-image' => 'Dååtäi',
-'nstab-mediawiki' => 'Berucht',
-'nstab-template' => 'Forlååge',
-'nstab-help' => 'Heelpsid',
+'nstab-user' => 'Brükersidj',
+'nstab-media' => 'Meediensidj',
+'nstab-special' => 'Spezial-sidj',
+'nstab-project' => 'Projektsidj',
+'nstab-image' => 'Datei',
+'nstab-mediawiki' => 'Bööd',
+'nstab-template' => 'Föörlaag',
+'nstab-help' => 'Halepsidj',
 'nstab-category' => 'Kategorii',
 
 # Main script and global functions
-'nosuchaction' => "Ai sü'n aksjoon",
-'nosuchactiontext' => 'Jü aksjoon spesifisiird döör di URL jült ai.
-Dü koost di URL ferkiird tipt hääwe, unti dü hääst en ferkiirden link fülied.
-Dåt koon uk en fäägel önjjeewe önj e software, jü {{SITENAME}} brúkt.',
-'nosuchspecialpage' => "Ai sü'n spetsjäl sid",
-'nospecialpagetext' => '<strong>Jü önjfrååged spetsjåålsid as ai deer.</strong>
+'nosuchaction' => 'Son aktjuun jaft at ei',
+'nosuchactiontext' => 'Son aktjuun jaft at üüb MediaWiki ei.
+Ferlicht heest dü det URL ferkiard apskrewen, of dü beest en ferkiard ferwisang fulagt.
+Ferlicht as det uk en feeler uun det software faan {{SITENAME}}.',
+'nosuchspecialpage' => 'Son spezial-sidj jaft at ei.',
+'nospecialpagetext' => '<strong>Son spezial-sidj jaft at ei.</strong>
 
-Åle ferfäigboore spetsjåålside san önj e [[Special:SpecialPages|List foon da spetsjåålside]] tu finen.',
+En list mä aal a spezial-sidjen fanjst dü üüb [[Special:SpecialPages|{{int:specialpages}}]].',
 
 # General errors
-'error' => 'Fäägel',
-'databaseerror' => 'Dootebånkfäägel',
+'error' => 'Feeler',
+'databaseerror' => 'Dootenbeenkfeeler',
 'dberrortext' => 'Diar as wat skiaf gingen mä det dootenbeenk.
 Ferlicht as det software ei bi a rä.
 Det leetst uunfraag tu\'t dootenbeenk wiar:
 <blockquote><code>$1</code></blockquote>
 faan det funktsjuun "<code>$2</code>".
 Det dootenbeenk swaaret mä "<samp>$3: $4</samp>".',
-'dberrortextcl' => 'Dåt jäif en süntaksfäägel önj e dootebånk-ouffrååch.
-Jü leest dootebånkouffrååch wus  „$1“ üt e funksjoon „<tt>$2</tt>“.
-Jü dootebånk mälded jü fäägel: „<tt>$3: $4</tt>“.',
-'laggedslavemode' => "''''Woarschauing:''' Jü wised sid köö uner amstånde ai da leeste beåarbinge önjthüülje.",
-'readonly' => 'Dootebånk späred',
-'enterlockreason' => 'Wees swü gödj än jeew en grün önj, weeram jü dootebånk späred wårde schal än en schåting ouer e duur foon jü späre',
-'readonlytext' => 'Jü dootebånk as forluupi späred for naie önjdreege än änringe. Wees sü gödj än fersäk dåt lääser nuch iinjsen.
-
-Grün foon e späre: $1',
+'dberrortextcl' => "Bi't uffraagin faan a dootenbeenk as wat skiaf gingen. Det leetst uffraag wiar:
+„$1“
+ütj det funktjuun „$2“.
+At dootebeenk swaaret: „$3: $4“.",
+'laggedslavemode' => "'''Paase üüb:''' Ferlicht wiset detdiar sidj ei a leetst stant.",
+'readonly' => 'Dootenbeenk speret.',
+'enterlockreason' => 'Wees so gud an du en grünj uun, huaram det dootenbeenk speret wurd skal, an hü loong det (amanbi) speret wurd skal.',
+'readonlytext' => "Det dootenbeenk as iarst ans speret för nei iindracher an feranrangen, woorskiinelk, auer diar jüst apredet woort. Ferschük det leeder man noch ans.
+
+Grünj för't sperin: $1",
 'missing-article' => 'Di täkst for „$1“ $2 wörd ai önj e dååtenbånk fünen.
 
 Jü sid as möölikerwise tuninte mååged unti ferschääwen wörden.
 
 Wan dåt ai di fål as, hääst dü eewäntuäl en fäägel önj e software fünen. Mäld dåt hål en  [[Special:ListUsers/sysop|administrator]] unner nååming foon jü URL.',
-'missingarticle-rev' => '(Färsjoonsnumer: $1)',
-'missingarticle-diff' => '(Ferschääl twasche färsjoone: $1, $2)',
+'missingarticle-rev' => '(Werjuunsnumer: $1)',
+'missingarticle-diff' => '(Ferskeel tesken $1 an $2)',
 'readonly_lag' => 'Jü dootebånk wörd automaatisch for schriwtugraawe späred, deerma da ferdiiljde dootebånke (slaves) jam ma di hooddootebånksärwer (master) oufglike koone.',
-'internalerror' => 'Intärn fäägel',
-'internalerror_info' => 'Intärne fäägel: $1',
+'internalerror' => 'Süsteemfeeler',
+'internalerror_info' => 'Süsteemfeeler: $1',
 'fileappenderrorread' => '"$1" köö wilert dåt baitufäigen ai leesen wårde.',
 'fileappenderror' => 'Köö ai "$1" tu "$2" önjhinge.',
 'filecopyerror' => 'Jü dootäi "$1" köö ai eefter "$2" kopiiird wårde.',
@@ -396,7 +397,7 @@ Wan dåt ai di fål as, hääst dü eewäntuäl en fäägel önj e software fün
 Dåt as flicht ål straagen foon huum ouders.',
 'cannotdelete-title' => 'Sidj „$1“ koon ei stregen wurd.',
 'delete-hook-aborted' => 'Det striken as faan en software-feranerang faan MediaWiki ferhanert wurden. Di grünj as ei bekäänd.',
-'badtitle' => 'Ferkiirde tiitel',
+'badtitle' => 'Ferkiard tiitel',
 'badtitletext' => 'Di tiitel foon jü anfrååged sid as üngülti, lääsi unti n üngültigen spräklink foon en ouder wiki.',
 'perfcached' => 'Jodiar dooten kem faan a cache an san ferlicht ei muar aktuel. Huuchstens {{PLURAL:$1|ian resultoot as|$1 resultooten san}} uun a cache.',
 'perfcachedts' => 'Jodiar dooten kem faan a cache, leetst tooch nei: $1. Huuchstens {{PLURAL:$4|ian resultoot as|$4 resultooten san}} uun a cache.',
@@ -404,9 +405,9 @@ Dåt as flicht ål straagen foon huum ouders.',
 'wrong_wfQuery_params' => 'Ferkiirde parameetere for wfQuery()<br />
 Funksjoon: $1<br />
 Ouffrååch: $2',
-'viewsource' => 'Kwältäkst önjkiike',
+'viewsource' => 'Kweltekst uunluke',
 'viewsource-title' => 'Code faan sidj $1 uunluke',
-'actionthrottled' => 'Aksjoonstål limitiird',
+'actionthrottled' => 'Taal faan aktjuunen limitiaret',
 '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' => 'Detdiar sidj as seekert wurden, am dat diar näämen wat feranert.',
 'viewsourcetext' => 'Dü koost jü kwäle foon jüdeer sid bekiike än kopiire.',
@@ -415,14 +416,14 @@ Ouffrååch: $2',
 Dü könst [//translatewiki.net/ translatewiki.net] faan MediaWiki brük, am auersaatangen för ale wiki projekten tu maagin.',
 '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/ translatewiki.net], det as det MediaWiki lokalisiarangsprojekt.",
-'sqlhidden' => 'SCL-ouffrååg ferstäägen',
-'cascadeprotected' => 'Jüdeer sid as for beårbing spärd. Jü as önj {{PLURAL:$1|e füliende sid|da füliende side}}
-önjbünen, {{PLURAL:$1|jü|da}} madels e kaskaadespäropsjoon önj febading hüüljen {{PLURAL:$1|as|san}}:
+'sqlhidden' => 'SQL-uffraag as ferbürgen',
+'cascadeprotected' => 'Detdiar sidj koon ei bewerket wurd. Hat as uun {{PLURAL:$1|detdiar sidj|jodiar sidjen}}
+iinbünjen, diar auer kaskaadenseekerhaid seekert {{PLURAL:$1|as|san}}:
 $2',
-'namespaceprotected' => "Dü hääst niinj beruchtiging, jü sid önj di '''$1'''-noomerüm tu beårben.",
+'namespaceprotected' => "Dü heest ei det brükerrocht, am sidjen uun di nöömrüm '''$1''' tu bewerkin.",
 'customcssprotected' => 'Dü mutst detheer CSS sidj ei bewerke, auer det hoker ööders hiart.',
 'customjsprotected' => 'Dü mutst detheer JavaScript sidj ei bewerke, auer det hoker ööders hiart.',
-'ns-specialprotected' => 'Spetsjåålside koone ai beårbed wårde.',
+'ns-specialprotected' => 'Spezial-sidjen kön ei bewerket wurd.',
 'titleprotected' => 'En sid ma dideer noome koon ai önjläid wårde.
 Jü späre wörd döör [[User:$1|$1]] ma grün "$2" inruchted.',
 'filereadonlyerror' => 'Det datei „$1“ koon ei feranert wurd, auer uun det fertiaknis „$2“ bluas leesen wurd koon.
@@ -433,50 +434,50 @@ Di grünj faan di administraator as: „$3“.',
 'exception-nologin-text' => 'Det könst dü bluas bewerke, wan dü uunmeldet beest.',
 
 # Virus scanner
-'virus-badscanner' => "Hiinje konfigurasjoon: ünbekånde fiirusscanner: ''$1''",
-'virus-scanfailed' => 'scan fäägelsloin (code $1)',
-'virus-unknownscanner' => 'Ã\9cnbekÃ¥nde fiirusscanner:',
+'virus-badscanner' => "Ferkiard iinstelang: Ünbekäänd wiirenscanner: ''$1''",
+'virus-scanfailed' => 'scan ging skiaf (code $1)',
+'virus-unknownscanner' => 'Ã\9cnbekäänd wiirenscanner:',
 
 # Login and logout pages
-'logouttext' => "'''Dü bast nü oufmälded.'''
+'logouttext' => "'''Dü beest nü ufmeldet.'''
 
-Dü koost {{SITENAME}} nü anonüüm widerbrüke, unti de wider uner diseelew unti en oudern brükernoome <span class='plainlinks'>[$1 önjmälde]</span>.
-Påås aw, dåt hu side nuch wise koone, dåt dü önjmälded bast, sülung dü ai dan browsercache lääsimååged heest.",
+Dü könst {{SITENAME}} nü anonüüm widjerbrük, of di weder <span class='plainlinks'>[$1 uunmelde]</span>.
+Enkelt sidjen wise ferlicht noch uun, dat dü uunmeldet beest, so loong dü dan browser-cache ei leesag maaget heest.",
 'welcomeuser' => 'Welkimen, $1!',
 'welcomecreation-msg' => 'Din brükerkonto as iinracht wurden.
 Ferjid det ei, an aachte üüb din [[Special:Preferences|{{SITENAME}} iinstelangen]].',
-'yourname' => 'Brükernoome:',
+'yourname' => 'Brükernööm:',
 'userlogin-yourname' => 'Brükernööm',
 'userlogin-yourname-ph' => 'Du dan Brükernööm iin',
-'yourpassword' => 'Pååsuurd:',
+'yourpassword' => 'Paaswurd:',
 'userlogin-yourpassword' => 'Paaswurd',
 'userlogin-yourpassword-ph' => 'Paaswurd iindu',
 'createacct-yourpassword-ph' => 'Paaswurd iindu',
 'yourpasswordagain' => 'Schriw pååsuurd nuch iinjsen:',
 'createacct-yourpasswordagain' => 'Paaswurd gudkään',
 'createacct-yourpasswordagain-ph' => 'Du det paaswurd noch ans iin',
-'remembermypassword' => 'Aw diheere komputer foon duur önjmälde (maksimool for $1 {{PLURAL:$1|däi|deege}})',
+'remembermypassword' => 'Üüb diheer reegner üüb düür uunmelde (maksimaal för $1 {{PLURAL:$1|dai|daar}})',
 'userlogin-remembermypassword' => 'Uunmeldet bliiw',
 'userlogin-signwithsecure' => 'Seeker ferbinjang brük',
 'securelogin-stick-https' => 'Eefter önjmälding ma HTTPS ferbünen bliwe',
 'yourdomainname' => 'Din domain:',
 'password-change-forbidden' => 'Üüb detheer wiki könst dü nian paaswurden feranre.',
 'externaldberror' => 'Deer läit en fäägel bai jü äkstärn autentifisiiring for, unti dü möist din äkstärn brükerkonto äi aktualisiire.',
-'login' => 'Önjmälde',
-'nav-login-createaccount' => 'Önjmälde',
+'login' => 'Uunmelde',
+'nav-login-createaccount' => 'Melde di uun of skriiw di iin',
 'loginprompt' => 'For jü önjmälding monje cookies aktiwiird weese.',
-'userlogin' => 'Önjmälde / brükerkonte mååge',
-'userloginnocreate' => 'Önjmälde',
-'logout' => 'Oufmälde',
-'userlogout' => 'Oufmälde',
-'notloggedin' => 'Ai önjmälded',
+'userlogin' => 'Melde di uun of skriiw di iin',
+'userloginnocreate' => 'Uunmelde',
+'logout' => 'Ufmelde',
+'userlogout' => 'Ufmelde',
+'notloggedin' => 'Ei uunmeldet',
 'userlogin-noaccount' => 'Dü heest noch nään brükerkonto ?',
 'userlogin-joinproject' => 'Bi {{SITENAME}} mämaage',
 'nologin' => "Dü hääst niinj brükerkonto? '''$1'''.",
 'nologinlink' => 'Nai brükerkonto inruchte',
 'createaccount' => 'Brükerkonto inruchte',
 'gotaccount' => "Dü hääst ål en brükerkonto? '''$1'''.",
-'gotaccountlink' => 'Önjmälde',
+'gotaccountlink' => 'Uunmelde',
 'userlogin-resetlink' => 'Heest dü din login dooten ferjiden?',
 'userlogin-resetpassword-link' => 'Paaswurd turagsaat',
 'helplogin-url' => 'Help:Uunmelde',
@@ -487,7 +488,7 @@ Ferjid det ei, an aachte üüb din [[Special:Preferences|{{SITENAME}} iinstelang
 'createacct-email-ph' => 'Du din e-mail adres iin',
 'createaccountmail' => 'E-mail tu det adres oner ferschüür mä en tufelag paaswurd',
 'createacct-realname' => 'Rocht nööm (optional)',
-'createaccountreason' => 'Grün:',
+'createaccountreason' => 'Grünj:',
 'createacct-reason' => 'Grünj',
 'createacct-reason-ph' => 'Huaram dü en ööder brükerkonto iinrachtst',
 'createacct-captcha' => 'Seekerhaidspreew',
@@ -497,21 +498,21 @@ Ferjid det ei, an aachte üüb din [[Special:Preferences|{{SITENAME}} iinstelang
 'createacct-benefit-body1' => '{{PLURAL:$1|feranrang|feranrangen}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|sidj|sidjen}}',
 'createacct-benefit-body3' => 'aktiif {{PLURAL:$1|skriiwer|skriiwern}}',
-'badretype' => 'Da biise pååsuurde stime ai oueriinj.',
+'badretype' => 'Jo tau paaswurden san ei likedenang.',
 'userexists' => 'Dideer brükernoome as ål ferjääwen.
 Wees sü gödj en kiis en ouderen.',
-'loginerror' => 'Fäägel bai önjmälding',
+'loginerror' => "Bi't uunmeldin as wat skiaf gingen",
 'createacct-error' => "Bi't iinrachten faan det brükerkonto as wat skiaf gingen",
-'createaccounterror' => 'Brükerkonto köö ai mååged wÃ¥rde: $1',
+'createaccounterror' => 'Brükerkonto küd ei iinracht wurd: $1',
 'nocookiesnew' => 'Di benjütertugung wörd mååged, ouers dü bast ai önjmälded. {{SITENAME}} brükt for jüdeer funksjoon cookies.
 Wees sü gödj än aktiwiir da än mäld de dan ma dan naien benjüternoome än dåt tuhiirend pååsuurd önj.',
 'nocookieslogin' => '{{SITENAME}} benjütet cookies tu e önjmälding foon da benjütere. Dü heest Cookis deaktiwiird.
 Wees sü gödj än aktiwiir da än fersäk dåt wider.',
 'nocookiesfornew' => 'Det brükerkonto as ei iinracht wurden, auer wi ei witj, huar a dooten faan kem.
 Üüb dan kompjuuter skel cookies aktiwiaret wees. Do rep detheer sidj noch ans nei ap.',
-'noname' => 'Dü möist en gültigen brükernooem önjjeewe.',
-'loginsuccesstitle' => 'Önjmälding erfolchrik',
-'loginsuccess' => "'''Dü bast nü ås „$1“ bai {{SITENAME}} önjmälded.'''",
+'noname' => 'Dü skel en rochten brükernööm uundu.',
+'loginsuccesstitle' => 'Uunmeldin hää löket.',
+'loginsuccess' => "'''Dü beest nü üs „$1“ bi {{SITENAME}} uunmeldet.'''",
 'nosuchuser' => 'Di brükernoome „$1“ bestoont ai.
 Präiw jü schriwwise (grut-/latjschriwing beåchte) unti [[Special:UserLogin/signup|mäld de ås naie brüker önj]].',
 'nosuchusershort' => 'Deer as nåån brüker ma noome  "$1".
@@ -522,7 +523,7 @@ Präiw din ruchtschriwing.',
 Wees sü gödje än fersäk dåt nuch iinjsen.',
 'wrongpasswordempty' => 'Deer wörd niinj pååsuurd önjjääwen. Fersäk dåt foon naien.',
 'passwordtooshort' => 'Pååsuurde mönje tu t manst {{PLURAL:$1|1 tiiken|$1 tiikne}} lung weese.',
-'password-name-match' => 'Din pååsuurd mätj ferschääle foon dan brükernoome.',
+'password-name-match' => 'Dü könst dan brükernööm ei üs paaswurd nem.',
 'password-login-forbidden' => 'Jüdeer brükernoome än paasuurd as ferbin.',
 'mailmypassword' => 'Nai pååsuurd tusiinje',
 'passwordremindertitle' => 'Nai tidwise pååsuurd for {{SITENAME}}',
@@ -536,7 +537,7 @@ Wan dü ei salew am en nei paaswurd fraaget heest, do säärst dü di am niks wi
 'noemailcreate' => 'Dü skel en rocht e-mail adres uundu.',
 'passwordsent' => 'En nai pååsuurd as sånd tu jü e-mail-adräs registriird for "$1".
 Mälde wi önj eefter dü jü füngen heest.',
-'blocked-mailpassword' => 'Jü foon de ferwånde IP-adräs as for dåt änren foon side späred. Am en masbrük tu ferhanern, wórd jü möölikhäid tu dåt önjfråågen foon en nai pååsuurd uk späred.',
+'blocked-mailpassword' => 'Det IP-adres, wat dü brükst, as speret wurden. Am dat diar nian dom tjüch mä maaget woort, as uk det uffraagin faan paaswurden speret wurden.',
 'eauthentsent' => 'En bestääsiings-e-mail wörd önj jü önjjääwen adräs sånd.
 
 Iir en e-mail foon oudere brükere ouer jü e-mail-funksjoon emfångd wårde koon, mötj jü adräs än har wörklike tuhiirihäid tu dåtheer brükerkonto jarst bestääsied wårde. Wees sü gödj än befülie da haanewisinge önj di bestääsiings-e-mail.',
@@ -585,7 +586,7 @@ Nü wårst dü önjmälded...',
 'resetpass_forbidden' => 'Pååsuurde koone ai änred wårde',
 'resetpass-no-info' => 'Dü möist önjmälded weese am ju sid diräkt tu tu gripen.',
 'resetpass-submit-loggedin' => 'Pååsuurd änre',
-'resetpass-submit-cancel' => 'Oufbreege',
+'resetpass-submit-cancel' => 'Ufbreeg',
 'resetpass-wrong-oldpass' => 'Üngülti tämporäär unti antuäl pååsuurd.
 Möölikerwise heest dü din pååsuurd ål ma erfolch änred heest unti en nai tämporäär pååsuurd beönjdräägen.',
 'resetpass-temp-password' => 'Tidwise pååsuurd:',
@@ -593,11 +594,11 @@ Möölikerwise heest dü din pååsuurd ål ma erfolch änred heest unti en nai
 
 # Special:PasswordReset
 'passwordreset' => 'Paasuurd tubääg seete',
-'passwordreset-text' => 'Fal detheer formulaar ütj, am din paaswurd turag tu saaten.',
+'passwordreset-text-one' => 'Fal detheer formulaar ütj, am din paaswurd turag tu saaten.',
+'passwordreset-text-many' => '{{PLURAL:$1|Du ian stak faan a dooten iin, am din paaswurd turag tu saaten.}}',
 'passwordreset-legend' => 'Paasuurd tubääg seete',
 'passwordreset-disabled' => 'Dü koost din paasuurd aw jüdeer wiki ai tubääg seete',
 'passwordreset-emaildisabled' => 'E-mail as üüb detheer Wiki ufknipset wurden.',
-'passwordreset-pretext' => '{{PLURAL:$1||Du ian faan jo dooten oner iin}}',
 'passwordreset-username' => 'Brükernoome:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Wel dü det e-mail nooracht uunluke?',
@@ -670,7 +671,7 @@ Wan dü wider aw \"Sid spiikre\" klikst, wårt din änring suner tuhuupefooting
 Wan dü wider aw \"{{int:savearticle}}\" klakst, wårt din beårbing suner ouerschaft spiikerd.",
 'summary-preview' => 'Forlök foon jü tuhuupfootingssid:',
 'subject-preview' => 'Forkiik foon dåt subjäkt:',
-'blockedtitle' => 'Brüker as späred',
+'blockedtitle' => 'Brüker as speret',
 'blockedtext' => "'''Dan brükernööm of IP adres as speret wurden.'''
 
 Det as maaget wurden faan $1.
@@ -702,13 +703,13 @@ Dü könst ei det E-Mail-funktsjuun 'E-mail tu dideere brüker' brük, so loong
 Uugenblakelk as din IP addres $3, an det sper ID as #$5.
 För arke uunfraag wurd aal jo informatsjuunen boowen brükt.",
 'blockednoreason' => 'niinj grün önjjääwen',
-'whitelistedittext' => 'Dü möist de $1, am side beårbe tu koonen.',
+'whitelistedittext' => 'Dü skel di $1, am sidjen tu bewerkin.',
 'confirmedittext' => 'Dü möist din E-mail-adräs jarst bestääsie, iir dü beårbinge döörfääre koost. Mååg din årbe radi än bestääsie din E-mail önj da  [[Special:Preferences|önjstalinge]].',
 'nosuchsectiontitle' => 'Stuk ai fünen',
 'nosuchsectiontext' => 'Dü fersoochst en stuk tu änren, dåt dåt ai jeeft.
 Dåt koon ferschääwen unti wächhååld weese, wilt dü jü sid bekiikedest.',
-'loginreqtitle' => 'Önjmälden nüsi.',
-'loginreqlink' => 'Önjmälde',
+'loginreqtitle' => 'Dü skel di uunmelde.',
+'loginreqlink' => 'Uunmelde',
 'loginreqpagetext' => 'Dü möist $1 am oudere side tu bekiiken.',
 'accmailtitle' => 'Pååsuurd sånd.',
 'accmailtext' => "En tufäli generiird pååsuurd for [[User talk:$1|$1]] wörd tu $2 fersånd.
@@ -720,11 +721,11 @@ Am jü sid tu måågen, dreeg dan täkst önj e unerstönjene box in (sii jü
 [[{{MediaWiki:Helppage}}|heelpsid]] for mör informasjoon).
 Bast üt fersiien heer, klik di '''tubääg'''-klänkfläche foon dan browser.",
 'anontalkpagetext' => "----''Üüb detheer sidj könst dü en ünbekäänden brüker en nooracht du. Det lääpt auer sin IP adres. IP adresen kön faan flook brükern brükt wurd. Wan dü mä detheer nooracht niks began könst, do as det ferlicht för hoker ööders mend weesen. Dü säärst niks widjer onernem. Wan dü en aanj [[Special:UserLogin/signup|brükerkonto iinrachst]] of di [[Special:UserLogin|uunmeldest]], komt sowat ei weder föör.",
-'noarticletext' => 'Jüdeer sid önjhålt uugenblaklik nuch nån täkst.
-Dü koost dideere tiitel aw da ouder side [[Special:Search/{{PAGENAME}}|säke]],
-<span class="plainlinks">önj da deertuhiirende [{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} logböke säke] unti jüdeer sid [{{fullurl:{{FULLPAGENAME}}|action=edit}} beårbe]</span>.',
+'noarticletext' => 'Üüb detdiar sidj stäänt noch niks.
+Dü könst didiar tiitel üüb ööder sidjen [[Special:Search/{{PAGENAME}}|schük]],
+<span class="plainlinks">uun [{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} logbuken schük] of detdiar sidj [{{fullurl:{{FULLPAGENAME}}|action=edit}} bewerke]</span>.',
 'noarticletext-nopermission' => 'Üüb detdiar sidj stäänt noch niks, oober dü mutst diar uk niks iinskriiw.
-Dü könst diar üüb ööder sidjen efter [[Special:Search/{{PAGENAME}}|sjük]] of a <span class="plainlinks">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAME}}}} logbuken uunluke].</span>',
+Dü könst diar üüb ööder sidjen efter [[Special:Search/{{PAGENAME}}|schük]] of a <span class="plainlinks">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAME}}}} logbuken uunluke].</span>',
 'missing-revision' => 'Det werjuun #$1 faan det sidj "{{PAGENAME}}" jaft at ei.
 
 Det komt diar miast faan, dat en ual ferwisang stregen wurden as.
@@ -779,14 +780,16 @@ Wees so gud an kontroliare ales noch ans.",
 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',
+'yourtext' => 'Dan tekst',
 'storedversion' => 'Spiikerd färsjoon',
 'nonunicodebrowser' => "'''Påås aw:''' Dan browser koon unicode-tiikne ai rucht ferårbe. Brük hål en oudern browser am side tu ferårben.",
-'editingold' => "'''PÅÅS AW: Dü beårbest en üülj färsjoon foon jüdeer sid. \"
-Wan dü spiikerst, wårde åle naiere färsjoone ouerschraawen.",
-'yourdiff' => 'Ferschääle',
-'copyrightwarning' => "''' Hål kopiir niinj webside, da ai din äine san, brük niinj uurhääwerruchtlik schütsede wärke suner ferloof foon di uurhääwer!'''<br />
-Dü jeefst üs heerma dan tusååge, dåt dü di täkst '''seelew ferfooted''' hääst, dåt di täkst ålgemiingödj '''(public domain)''' as, unti dåt di '''uurhääwer''' sin '''tustiming''' jääwen heet. For di fål jüdeer täkst ål ouersweer ütdänj wörd, wis hål aw jü diskusjoonssid deeraw haane. <i>Beåcht hål, dåt åle {{SITENAME}}-tujeefte automaatisch uner jü „$2“ stönje (sii $1 for detaile). For di fål dü ai mååst, dåt diin årbe heer foon oudere feränred än språåt wårt, dan kröög ai aw „sid spikre“.</i>",
+'editingold' => "'''Paase üüb: Dü bewerkest en ual werjuun faan detdiar sidj.
+Wan dü det seekerst, wurd aal a nei werjuunen auerskrewen.'''",
+'yourdiff' => 'Ferskeeler',
+'copyrightwarning' => "Seenk diaram, dat bidracher tu {{SITENAME}} oner det \$1 ütjden wurd (muar stäänt bi \$2).
+Wan dü ei wel, dat öödern dan bidrach widjer bewerke, do trak ei üüb \"Seekre\".<br />
+Dü ferspräächst, dat dü di tekst salew skrewen heest of dat diar nian kopiarrochten üüb lei.
+'''Dü mutst nian werk mä kopiarrochten saner ferloof heer iinstel!'''",
 'copyrightwarning2' => "Seenk diaram, dat det sidj {{SITENAME}} faan öödern bewerket, feranert of uk stregen wurd koon. Wan dü det ei wel, do skriiw heer niks iin! 
 
 Wan dü heer wat iinskrafst, do beest dü diarmä iinferstenen an seekerst tu, dat dü det '''salew skrewen''' heest of faan en steed auernimen heest, huar '''nian rochten''' üüb lei. (Luke bi $1, wan dü muar wed wel.)
@@ -823,12 +826,13 @@ Dü koost bestönjene side änre unti de [[Special:UserLogin|önjmälde unti må
 Auerlei di det gud, amdat dü niks ferkiard maagest.
 Uun't logbuk stäänt muar diartu:",
 'moveddeleted-notice' => 'Jüheer sid wörd sleeked. Deer füliet en üttooch üt dåt sleek- än ferschüwingslogbök for jüheer sid.',
-'log-fulllog' => 'Åle logbük-önjdrååge önjkiike',
+'log-fulllog' => 'Logbuk-iindracher uunluke',
 'edit-hook-aborted' => 'Jü beårbing wörd suner ferklååring döör en snaasstää oufbräägen.',
 'edit-gone-missing' => 'Jü sid köö ai aktualisiird wårde.
 Jü wörd önjscheened sleeked.',
 'edit-conflict' => 'Beårbingskonflikt.',
 'edit-no-change' => 'Din beårbing wörd ignoriird, deer niinj änring an e täkst fornümen wörd.',
+'postedit-confirmation' => 'Din feranrang as seekert wurden.',
 'edit-already-exists' => 'Köö niinj nai sid mååge.
 Dåt bestöö ål.',
 'defaultmessagetext' => 'Standard tekst',
@@ -878,7 +882,7 @@ Luke oner, of dü det uk würelk du wel, an do seekre din feranrangen.',
 Grün foon jü späre: ''$2''",
 
 # History pages
-'viewpagelogs' => 'Logböke for jüdeer sid wise',
+'viewpagelogs' => 'Logbuken faan detdiar sidj uunwise',
 'nohistory' => 'Deer as niinj beårbingshistoori for jüdeer sid.',
 'currentrev' => 'Aktäle färsjoon.',
 'currentrev-asof' => 'Aktuäl färsjoon foon $2 am e klook $3',
@@ -892,11 +896,10 @@ Grün foon jü späre: ''$2''",
 'last' => 'leest',
 'page_first' => 'Began',
 'page_last' => 'Iinje',
-'histlegend' => 'Tu wising foon da änringe iinjfåch da tu ferglikene Färsjoone ütwääle än di klänkfläche „{{int:compareselectedversions}}“ klikke.<br />
-* (Aktuäl) = unerschiis tu e aktuäle färsjoon, (Leeste) = unerschiis tu e leeste färsjoon
-* Klook/dootem = färsjoon tu jüdeer tid, brükernoome/IP-adräs foon di beårber, L = latje änring.',
-'history-fieldset-title' => 'Säk önj e färsjoonshistoori',
-'history-show-deleted' => 'bloot straagene färsjoone',
+'histlegend' => "Am a feranrangen uuntuwisin, schük tau werjuunen ütj an trak üüb „{{int:compareselectedversions}}“.<br />
+* '''({{int:cur}})''' = ferskeel tu't aktuel werjuun, '''({{int:last}})''' = ferskeel tu't leetst werjuun, '''{{int:minoreditletter}}''' = letj feranrang.",
+'history-fieldset-title' => 'Schük uun a ferluup',
+'history-show-deleted' => 'Bluas stregen werjuunen',
 'histfirst' => 'Ålste',
 'histlast' => 'Naiste',
 'historysize' => '({{PLURAL:$1|1 Byte|$1 Bytes}})',
@@ -925,22 +928,20 @@ Dü koost nuch [$1 jüdeer färsjoon bekiike], wan dü wider gunge mååst.",
 Dü koost da wider önjkiike. Näre önjgoowen tu di sleekforgung ås uk en begrüning fant huum önj dåt [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbök].",
 'rev-suppressed-text-view' => "Jüdeer färsjoon as '''unerdrükd''' wörden.
 Dü koost da önjkiike. Ainkelthäide stönje önj dåt [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} unerdrukings-logbök].",
-'rev-deleted-no-diff' => "Dü koost jüdeer ferschääl ai bekiike, dan iinj foon da änringe wörd '''straagen'''. Näre önjgoowen tu di strikforgung ås uk en begrüning fant huum önj dåt [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbök].",
-'rev-suppressed-no-diff' => "Dü koost jüdeer ferschääl ai bekiike, dan iinj foon da änringe wörd '''straagen'''.",
-'rev-deleted-unhide-diff' => "Iinj foon da änringe doon jüdeer ferschääl as '''straagen''' wörden.
-Ainkelthäide fant huum önj dåt [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbök].
-Dü koost nuch [$1 jüdeer färsjoon bekiike], wan dü wider gunge mååst.",
-'rev-suppressed-unhide-diff' => "Iinj foon da färsjoone foon dåtdeer ferschääl wörd '''unerdrükd'''.
-Ainkelthäide fant huum önj dåt [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} unerdruk-logbök].
-Dü koost nuch [$1 dåtdeer ferschääl bekiike], wan dü wider gunge mååst.",
+'rev-deleted-no-diff' => "Dü könst di ferskeel ei uunluke, auer ian werjuun '''stregen''' wurden as.
+Wan dü muar wed wel, luke iin uun't [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbuk].",
+'rev-suppressed-no-diff' => "Dü könst di ferskeel ei uunluke, auer ian werjuun '''stregen''' wurden as.",
+'rev-deleted-unhide-diff' => "Ian faan jodiar werjuunen as '''stregen''' wurden. Wan dü muar wed wel, luke iin uun't [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbuk].
+Dü könst [$1 di ferskeel uunluke], wan dü wel.",
+'rev-suppressed-unhide-diff' => "Ian faan jodiar werjuunen as '''ferbürgen''' wurden. Wan dü muar wed wel, luke iin uun't [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} fersteeg-logbuk].
+Dü könst [$1 di ferskeel uunluke], wan dü wel.",
 'rev-deleted-diff-view' => "En Färsjoon foon dåtdeer färsjoonsferschääl wörd '''straagen'''.
 Dü koost dåt färsjoonsferschääl siinj.
 Näre önjgoowen fant huum önj dåt [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} strik-logbök].",
-'rev-suppressed-diff-view' => "Iinj foon da färsjoone foon dåtdeer färsjoonsferschääl wörd '''unerdrükd'''.
-Dü koost dåtheer färsjoonsferschääl siinj. Ainkelthäide stönje önj dåt [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} unerdrukings-logbök].",
+'rev-suppressed-diff-view' => "Ian faan jodiar werjuunen as '''ferbürgen''' wurden. Dü könst di ferskeel uunluke. Wan dü muar wed wel, luke iin uun't [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} fersteeg-logbuk].",
 'rev-delundel' => 'wis/fersteeg',
 'rev-showdeleted' => 'wise',
-'revisiondelete' => 'Färsjoone strike/wider mååge',
+'revisiondelete' => 'Werjuunen strik of weder iinstel',
 'revdelete-nooldid-title' => 'Niinj färsjoon önjjääwen',
 'revdelete-nooldid-text' => 'Dü heest nian werjuun för detheer aktjuun uunden, of det werjuun jaft at ei, of dü ferschükst, en aktuel werjuun tu striken.',
 'revdelete-nologtype-title' => 'Niinj logtüüp önjjääwen',
@@ -952,9 +953,9 @@ Dü koost dåtheer färsjoonsferschääl siinj. Ainkelthäide stönje önj dåt
 'revdelete-show-file-submit' => 'Jåå',
 'revdelete-selected' => "'''{{PLURAL:$2|Ütjsoocht werjuun|Ütjsoocht werjuunen}} faan [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Ütjsoocht logbukiindrach|Ütjsoocht logbukiindracher}}:'''",
-'revdelete-text' => "'''Stregen werjuunen an aktjuunen bliiw uun det werjuunshistoore an uun a logbuken, man det koon ei arken efterlees.'''
+'revdelete-text' => "'''Stregen werjuunen an aktjuunen bliiw uun di ferluup an uun a logbuken, man det koon ei arken efterlees.'''
 
-Ööder administratooren üüb {{SITENAME}} kön oober üüb det ferbürgen histoore tugrip an tu nuad en ual werjuun weder iinstel.",
+Ööder administratooren üüb {{SITENAME}} kön oober üüb di ferbürgen ferluup tugrip an tu nuad en ual werjuun weder iinstel.",
 'revdelete-confirm' => 'Ferseekre noch ans, dat dü det würelk du wel, dat dü witjst, wat dü dääst, an dat det mä a [[{{MediaWiki:Policy-url}}|bestemangen]] auerian stemet.',
 'revdelete-suppress-text' => "Det skul '''bluas''' onertrakt wurd bi:
 * Persöönelk informatsjuunen, diar näämen wat uungung
@@ -970,9 +971,9 @@ Dü koost dåtheer färsjoonsferschääl siinj. Ainkelthäide stönje önj dåt
 'revdelete-radio-set' => 'Jåå',
 'revdelete-radio-unset' => 'Nåån',
 'revdelete-suppress' => 'Grün foon dåt striken uk for administratoore fersteege',
-'revdelete-unsuppress' => 'Gränse for wi måågede färsjoone wächnaame',
+'revdelete-unsuppress' => 'Weder iinsteld werjuunen luasmaage',
 'revdelete-log' => 'Begrüning:',
-'revdelete-submit' => 'Aw {{PLURAL:$1|kiisd färsjoon|kiisde färsjoone}} önjwiinje',
+'revdelete-submit' => 'Widjer för {{PLURAL:$1|ütjsoocht werjuun|ütjsoocht werjuunen}}',
 'revdelete-success' => "'''Jü färsjoonsönjsicht wörd aktualisiird.'''",
 'revdelete-failure' => "'''Jü färsjoonsönjsicht köö ai aktualisiird wårde:'''
 $1",
@@ -980,10 +981,10 @@ $1",
 'logdelete-failure' => "'''Logböksachtboorhäid köö ai änred wårde:'''
 $1",
 'revdel-restore' => 'sichtboorhäid änre',
-'revdel-restore-deleted' => 'sleekede färsjoone',
-'revdel-restore-visible' => 'sachtboore färsjoone',
+'revdel-restore-deleted' => 'stregen werjuunen',
+'revdel-restore-visible' => 'sichtboor werjuunen',
 'pagehist' => 'Färsjoonshistoori',
-'deletedhist' => 'Straagene färsjoone',
+'deletedhist' => 'Stregen werjuunen',
 'revdelete-hide-current' => 'Fäägel bai t fersteegen foon di önjdråch foon e klook $1, $2; ditheer as jü aktuäl färsjoon,
 jü koon ai ferstäägen wårde.',
 'revdelete-show-no-access' => 'Fäägel bai t wisen foon di önjdråch foon $1, e klook $2: diheer önjdråch wörd ås "begränsed" markiird.
@@ -1015,15 +1016,15 @@ Stal sääker, dåt jü färsjoonshistoori foon en sid histoorisch koräkt as.',
 'mergehistory-box' => 'Rewisjoone foon tou side feriine:',
 'mergehistory-from' => 'Jurtkamstsid:',
 'mergehistory-into' => 'Müüljsid:',
-'mergehistory-list' => 'Färsjoone, da feriind wårde koone',
+'mergehistory-list' => 'Werjuunen, diar tuupfeerd wurd kön.',
 'mergehistory-merge' => 'Jodiar werjuunen faan „[[:$1]]“ kön efter „[[:$2]]“ auerdraanj wurd.
 Kääntiakne det wersjuun, wat üs leetst mä auerdraanj wurd skal.
 A nawigatjuun links saat ales weder turag üüb di ual stant.',
-'mergehistory-go' => 'Wis färsjoone da feriind wårde koone',
-'mergehistory-submit' => 'Feriinde färsjoone',
-'mergehistory-empty' => 'Niinj färsjoone koone feriind wårde.',
-'mergehistory-success' => '$3 {{PLURAL:$3|färsjoon|färsjoone}} foon [[:$1]] ma erfolch feriind tu [[:$2]].',
-'mergehistory-fail' => 'Färsjoone koone ai feriind wårde, wees sü gödj än kontroliir jü sid än da tidönjgoowe.',
+'mergehistory-go' => 'Wise werjuunen, diar tuupfeerd wurd kön.',
+'mergehistory-submit' => 'Werjuunen tuupfeer',
+'mergehistory-empty' => 'Nian werjuunen kön tuupfeerd wurd.',
+'mergehistory-success' => '$3 {{PLURAL:$3|werjuun|werjuunen}} faan [[:$1]] tuupfeerd tu [[:$2]].',
+'mergehistory-fail' => 'Werjuunen kön ei tuupfeerd wurd. Luke noch ans efter at sidj an a tidjen.',
 'mergehistory-no-source' => 'Jurtkamstsid "$1" as ai deer.',
 'mergehistory-no-destination' => 'Müüljsid „$1“ bestoont ai.',
 'mergehistory-invalid-source' => 'Jurtkamstsid mötj en gülti sidnoome heewe.',
@@ -1035,7 +1036,7 @@ A nawigatjuun links saat ales weder turag üüb di ual stant.',
 
 # Merge log
 'mergelog' => 'Feriin-logbök',
-'pagemerge-logentry' => 'feriind [[$1]] eefter [[$2]] (färsjoonen bit $3)',
+'pagemerge-logentry' => '[[$1]] efter [[$2]] tuupfeerd (werjuunen bit $3)',
 'revertmerge' => 'Feriining tuninte mååge',
 'mergelogpagetext' => 'Dåtheer as dåt logbök foon da feriinde färsjoonshistoorie.',
 
@@ -1043,10 +1044,10 @@ A nawigatjuun links saat ales weder turag üüb di ual stant.',
 'history-title' => '$1: Ferluup faan a werjuunen',
 'difference-title' => 'Ferskeel tesken a werjuunen faan "$1"',
 'difference-title-multipage' => 'Ferskeel tesken a sidjen "$1" an "$2"',
-'difference-multipage' => '(Ferschääl twasche side)',
+'difference-multipage' => '(Ferskeel tesken sidjen)',
 'lineno' => 'Ra $1:',
-'compareselectedversions' => 'Wäälde färsjoone ferglike',
-'showhideselectedversions' => 'Wäälde färsjoone wise/fersteege',
+'compareselectedversions' => 'Werjuunen ferglik',
+'showhideselectedversions' => 'Werjuunen wise of fersteeg',
 'editundo' => 'tunintemååge',
 'diff-multi' => '({{PLURAL:$1|Ian werjuun diartesken|$1 werjuunen diartesken}} faan {{PLURAL:$2|ään brüker|$2 brükern}} {{PLURAL:$1|woort|wurd}} ei uunwiset)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Ian werjuun diartesken|$1 werjuunen diartesken}} faan muar üs $2 {{PLURAL:$2|brüker|brükern}} wurd ei uunwiset)',
@@ -1056,9 +1057,9 @@ Det komt diar miast faan, dat en ual ferwisang stregen wurden as.
 Dü könst det uun't [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} logbuk faan stregen sidjen] efterlees.",
 
 # Search results
-'searchresults' => 'Säkjresultoote',
-'searchresults-title' => 'Säkjresultoote for „$1“',
-'searchresulttext' => 'For mör informasjoon tu jü säkj sii jü [[{{MediaWiki:Helppage}}|heelpsid]].',
+'searchresults' => 'Fünjen sidjen',
+'searchresults-title' => 'Fünjen sidjen för „$1“',
+'searchresulttext' => "Wan dü muar auer't schüken uun {{SITENAME}} wed wel, luke efter bi [[{{MediaWiki:Helppage}}|{{int:help}}]].",
 'searchsubtitle' => 'Din säkönjfrååg: „[[:$1|$1]]“ ([[Special:Prefixindex/$1|åle ma „$1“ beganende side]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|åle side, da eefter „$1“ ferlinke]])',
 'searchsubtitleinvalid' => 'Din säkönjfrååg: "$1".',
 'toomanymatches' => 'Diar kaam tuföl resultooten üüb din uunfraag. Fersjük det ööders.',
@@ -1077,16 +1078,16 @@ Dü könst det uun't [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'searchmenu-new' => "'''Mååg jü sid „[[:$1|$1]]“ önj jüdeer Wiki.'''",
 'searchhelp-url' => 'Help:Inhåltsfertiiknis',
 'searchmenu-prefix' => '[[Special:PrefixIndex/$1|Wise aal jo sidjen, diar so began]]',
-'searchprofile-articles' => 'Artiikle',
-'searchprofile-project' => 'Heelp än Prujäktside',
+'searchprofile-articles' => 'Artiikler',
+'searchprofile-project' => 'Halep- an Projektsidjen',
 'searchprofile-images' => 'Multimedia',
 'searchprofile-everything' => 'Ales',
-'searchprofile-advanced' => 'Ütwided',
-'searchprofile-articles-tooltip' => 'Säk önj $1',
-'searchprofile-project-tooltip' => 'Säk önj $1',
-'searchprofile-images-tooltip' => 'Bilen sjük',
-'searchprofile-everything-tooltip' => 'Sjük aueraal (uk diskusjuunssidjen)',
-'searchprofile-advanced-tooltip' => 'Onj mör noomerüme säke',
+'searchprofile-advanced' => 'Ütjwidjet',
+'searchprofile-articles-tooltip' => 'Schük uun $1',
+'searchprofile-project-tooltip' => 'Schük uun $1',
+'searchprofile-images-tooltip' => 'Bilen schük',
+'searchprofile-everything-tooltip' => 'Schük aueraal (uk diskusjuunssidjen)',
+'searchprofile-advanced-tooltip' => 'Uun ööder nöömrümer schük',
 'search-result-size' => '$1 ({{PLURAL:$2|1 uurd|$2 uurde}})',
 'search-result-category-size' => '{{PLURAL:$1|1 sidj|$1 sidjen}} ({{PLURAL:$2|1 onerkategorii|$2 onerkategoriin}}, {{PLURAL:$3|1 datei|$3 datein}})',
 'search-result-score' => 'Relevans: $1 %',
@@ -1098,31 +1099,31 @@ Dü könst det uun't [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'search-interwiki-more' => '(widere)',
 'search-relatedarticle' => 'früne',
 'mwsuggest-disable' => "Föörslacher för't sjüken deaktiwiare",
-'searcheverything-enable' => 'Onj ål noomerüme säke',
+'searcheverything-enable' => 'Uun arke nöömrüm schük',
 'searchrelated' => 'früne',
-'searchall' => 'åle',
+'searchall' => 'aaltumaal',
 'showingresults' => "Heer {{PLURAL:$1|as '''1''' resultoot|san '''$1''' resultoote}}, beganend ma numer '''$2.'''",
 'showingresultsnum' => "Heer {{PLURAL:$3|as '''1''' resultoot|san '''$3''' resultoote}}, beganend ma numer '''$2.'''",
 'showingresultsheader' => "{{PLURAL:$5|resultoot '''$1''' foon '''$3'''|resultoote '''$1-$2''' foon '''$3'''}}, for '''$4.'''",
 'nonefound' => "'''Haanewising:''' Deer wårde ståndardmääsi man ainkelde noomerüme döörsoocht. Seet ''all:'' for din Säkbegrip, am åle side (inkl. diskusjoonside, forlååge, äsw.) tu döörsäken unti gesiilt di noome foon di tu döörsäkende noomerüm.",
 'search-nonefound' => 'For din säkanfrååg würden niinj resultoote fünen.',
-'powersearch' => 'ütwided säkj',
-'powersearch-legend' => 'ütwided säkj',
-'powersearch-ns' => 'Säkj önj noomerüme:',
+'powersearch' => 'Ã\9ctjwidjet schüken',
+'powersearch-legend' => 'Ã\9ctjwidjet schüken',
+'powersearch-ns' => 'Schük uun nöömrümer:',
 'powersearch-redir' => 'Widerliidjinge anwise',
-'powersearch-field' => 'Säk eefter:',
-'powersearch-togglelabel' => 'Wääl üt:',
-'powersearch-toggleall' => 'Åle',
-'powersearch-togglenone' => 'Niinj',
-'search-external' => 'Extern säkj',
-'searchdisabled' => 'Jü {{SITENAME}}-säkj as deaktiviird. Dü koost intwasche ma Google säke. Betånk, dåt di säkindäks for {{SITENAME}} ferüüljet weese koon.',
+'powersearch-field' => 'Schük efter:',
+'powersearch-togglelabel' => 'Schük ütj:',
+'powersearch-toggleall' => 'Aaltumaal',
+'powersearch-togglenone' => 'Nianen',
+'search-external' => 'Schük ekstern',
+'searchdisabled' => 'Det schüken üüb {{SITENAME}} as ei aktiif. Dü könst uuntesken mä Google schük. Seenk diaram, dat Google sin steegwurden miast ei üüb a leetst stant san.',
 'search-error' => "Diar as wat skiaf gingen bi't schüken: $1",
 
 # Preferences page
 'preferences' => 'Önjstalinge',
 'mypreferences' => 'Iinstelangen',
 'prefs-edits' => 'Taal faan feranrangen:',
-'prefsnologin' => 'Ai önjmälded',
+'prefsnologin' => 'Ei uunmeldet',
 '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',
@@ -1133,7 +1134,7 @@ Dü könst det uun't [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'prefs-labs' => 'Alpha mögelkhaiden',
 'prefs-user-pages' => 'Brükersidjen',
 'prefs-personal' => 'Brüker dooten',
-'prefs-rc' => 'Leeste änringe',
+'prefs-rc' => 'Leetst feranrangen',
 '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}}',
@@ -1153,7 +1154,7 @@ Dü könst det uun't [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'prefs-edit-boxsize' => "Grate faan't wönang tu't bewerkin:",
 'rows' => 'Räen:',
 'columns' => 'Spleder:',
-'searchresultshead' => 'Sjük',
+'searchresultshead' => 'Schük',
 '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',
@@ -1181,9 +1182,9 @@ Dü könst det uun't [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'timezoneregion-indian' => 'Indik',
 'timezoneregion-pacific' => 'Pasiifik',
 'allowemail' => 'E-Mail foon oudere brükere tulätje',
-'prefs-searchoptions' => 'Sjük',
+'prefs-searchoptions' => 'Schük',
 'prefs-namespaces' => 'Noomerüme',
-'defaultns' => 'Ouers säk önj jüheer noomerüme:',
+'defaultns' => 'Ööders schük uun jodiar nöömrümer:',
 'default' => 'Forinstaling',
 'prefs-files' => 'Dååtäie',
 'prefs-custom-css' => 'Salew maaget CSS',
@@ -1221,11 +1222,11 @@ Do san jo ual iinstelangen wech.',
 'prefs-signature' => 'Signatuur',
 'prefs-dateformat' => "Formaat faan't dootem",
 'prefs-timeoffset' => 'Ferskeel faan a klooktidj',
-'prefs-advancedediting' => 'Ütwided möölikhäide',
-'prefs-advancedrc' => 'Ütwided möölikhäide',
-'prefs-advancedrendering' => 'Ütwided möölikhäide',
-'prefs-advancedsearchoptions' => 'Ütwided möölikhäide',
-'prefs-advancedwatchlist' => 'Ütwided möölikhäide',
+'prefs-advancedediting' => 'Ütjwidjet mögelkhaiden',
+'prefs-advancedrc' => 'Ütjwidjet mögelkhaiden',
+'prefs-advancedrendering' => 'Ütjwidjet mögelkhaiden',
+'prefs-advancedsearchoptions' => 'Ütjwidjet mögelkhaiden',
+'prefs-advancedwatchlist' => 'Ütjwidjet mögelkhaiden',
 'prefs-displayrc' => "Mögelkhaiden för't uunwisin",
 'prefs-displaysearchoptions' => "Mögelkhaiden för't uunwisin",
 'prefs-displaywatchlist' => "Mögelkhaiden för't uunwisin",
@@ -1310,8 +1311,8 @@ Do san jo ual iinstelangen wech.',
 'right-deletelogentry' => 'Enkelt werjuunen faan en logbuk-iindrach strik of turaghaale',
 'right-deleterevision' => 'Enkelt werjuunen faan en sidj strik of turaghaale',
 'right-deletedhistory' => 'Stregen iindracher uun a ferluup uunluke, saner di tekst, di diartu hiart',
-'right-deletedtext' => 'Stregen tekst an feranerangen tesken stregen werjuunen uunluke',
-'right-browsearchive' => 'Sjük stregen sidjen',
+'right-deletedtext' => 'Stregen tekst an feranrangen tesken stregen werjuunen uunluke',
+'right-browsearchive' => 'Schük stregen sidjen',
 'right-undelete' => 'Stregen sidjen turaghaale',
 'right-suppressrevision' => 'Werjuunen uunluke an turaghaale, diar uk för administratooren ei tu sen san',
 'right-suppressionlog' => 'Priwoot logbuken uunluke',
@@ -1327,7 +1328,7 @@ Do san jo ual iinstelangen wech.',
 'right-editusercssjs' => 'CSS- an JavaScript-datein faan ööder brükern bewerke',
 'right-editusercss' => 'CSS-datein faan ööder brükern bewerke',
 'right-edituserjs' => 'JavaScript-datein faan ööder brükern bewerke',
-'right-rollback' => 'Feranerangen faan di leetst brüker gau turagsaat',
+'right-rollback' => 'Feranrangen faan di leetst brüker gau turagsaat',
 'right-markbotedits' => 'Gau turagsaatangen üs bot-iindracher kääntiakne',
 'right-noratelimit' => 'Ei troch limits beskäären',
 'right-import' => 'Bilen faan ööder Wikis importiare',
@@ -1336,7 +1337,7 @@ Do san jo ual iinstelangen wech.',
 'right-autopatrol' => 'Aanj werk aleewen üs kontroliaret kääntiakne',
 'right-patrolmarks' => 'Kontrolkääntiaken uun a leetst feranrangen uunwise',
 'right-unwatchedpages' => 'List faan sidjen uunluke, diar näämen üüb aachtet',
-'right-mergehistory' => 'Werjuunshistoore faan sidjen tuupfeer',
+'right-mergehistory' => 'Ferluup faan sidjen tuupfeer',
 'right-userrights' => 'Brükerrochten bewerke',
 'right-userrights-interwiki' => 'Brükerrochten uun ööder Wikis bewerke',
 'right-siteadmin' => 'Dootenbeenk spere an eebenmaage',
@@ -1350,13 +1351,13 @@ Do san jo ual iinstelangen wech.',
 
 # User rights log
 'rightslog' => 'Ruchte-logbök',
-'rightslogtext' => 'Det as det logbuk auer feranerangen faan brükerrochten.',
+'rightslogtext' => 'Det as det logbuk auer feranrangen faan brükerrochten.',
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => 'jüdeer sid leese',
 'action-edit' => 'jüdeer sid beårbe',
 'action-createpage' => 'side mååge',
-'action-createtalk' => 'diskusjoonside mååge',
+'action-createtalk' => 'diskusjuunssidjen maage',
 'action-createaccount' => 'jüdeer brükerkonto mååge',
 'action-minoredit' => 'detdiar feranrang üs letj kääntiakne',
 'action-move' => 'jüdeer sid ferschüwe',
@@ -1371,17 +1372,17 @@ Do san jo ual iinstelangen wech.',
 'action-delete' => 'detdiar sidj strik',
 'action-deleterevision' => 'werjuunen tu striken',
 'action-deletedhistory' => 'det list mä stregen werjuunen uuntulukin',
-'action-browsearchive' => 'sjük stregen sidjen',
+'action-browsearchive' => 'schük stregen sidjen',
 'action-undelete' => 'detdiar sidj weder iinstel',
 'action-suppressrevision' => 'det ferbürgen werjuun uuntulukin an weder turagtuhaalin',
 'action-suppressionlog' => 'iin uun det priwoot logbuk tu lukin',
 'action-block' => 'di brüker tu sperin',
 'action-protect' => 'det seekerhaid faan sidjen tu feranrin',
-'action-rollback' => 'feranerangen faan di leetst brüker gau turagtusaaten',
+'action-rollback' => 'feranrangen faan di leetst brüker gau turagtusaaten',
 'action-import' => 'sidjen faan en ööder Wiki tu importiarin',
 'action-importupload' => 'sidjen auer det huuchschüüren faan datein tu importiarin',
 'action-patrol' => 'det werk faan ööder brükern üs kontroliaret tu kääntiaknin',
-'action-autopatrol' => 'aanj feranerangen üs kontroliaret tu kääntiaknin',
+'action-autopatrol' => 'aanj feranrangen üs kontroliaret tu kääntiaknin',
 'action-unwatchedpages' => 'det list faan sidjen uuntulukin, diar näämen üüb aachtet',
 'action-mergehistory' => 'werjuunshistoorin faan sidjen tuuptufeeren',
 'action-userrights' => 'brükerrochten tu bewerkin',
@@ -1391,7 +1392,7 @@ Do san jo ual iinstelangen wech.',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|änring|änringe}}',
-'recentchanges' => 'Leeste änringe',
+'recentchanges' => 'Leetst feranrangen',
 'recentchanges-legend' => 'Wis-opsjoone',
 '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}}.',
@@ -1402,17 +1403,17 @@ Do san jo ual iinstelangen wech.',
 '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 feranrangen sant '''$2'''uunwiset (ei muar üs '''$1''' feranrangen).",
 'rclistfrom' => 'Bloot änringe sunt $1 wise.',
-'rcshowhideminor' => 'Latje änringe $1',
+'rcshowhideminor' => 'Letj feranrangen $1',
 'rcshowhidebots' => 'Bots $1',
-'rcshowhideliu' => 'Önjmäldede brükere $1',
+'rcshowhideliu' => '$1 uunmeldet brükern',
 'rcshowhideanons' => 'Anonymen brüker $1',
 'rcshowhidepatr' => '$1 efterluket feranrangen',
-'rcshowhidemine' => 'Äine tujeefte $1',
+'rcshowhidemine' => 'Min bidracher $1',
 'rclinks' => 'Wis da leeste $1 änringe foon da leeste $2 deege.<br />$3',
-'diff' => 'ferschääl',
-'hist' => 'färsjoone',
-'hide' => 'ütbläne',
-'show' => 'önjbläne',
+'diff' => 'ferskeel',
+'hist' => 'werjuunen',
+'hide' => 'Fersteeg',
+'show' => 'Wise',
 'minoreditletter' => 'L',
 'newpageletter' => 'N',
 'boteditletter' => 'B',
@@ -1431,16 +1432,16 @@ Do san jo ual iinstelangen wech.',
 '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-summary' => "Detdiar spezial-sidj wiset a leetst feranrangen faan ferwiset sidjen (of faan sidjen uun en was kategorii). Sidjen, diar dü [[Special:Watchlist|uun't uug behual]] wel, san '''fäät''' skrewen.",
 'recentchangeslinked-page' => 'Sid:',
 'recentchangeslinked-to' => 'Wis änringe aw side, da heerjurt ferlinke',
 
 # Upload
-'upload' => 'Huuchschake',
+'upload' => 'Datei huuchschüür',
 'uploadbtn' => 'Datei huuchsjüür',
 'reuploaddesc' => "Ufbreeg an turag tu't sidj för't huuchsjüüren",
 'upload-tryagain' => 'Feranert dateibeskriiwang ufsjüür',
-'uploadnologin' => 'Ai önjmälded',
+'uploadnologin' => 'Ei uunmeldet',
 'uploadnologintext' => 'Dü möist [[Special:UserLogin|önjmälded weese]], am dat dü dootäie huuchsiinje koost.',
 'upload_directory_missing' => 'Dåt aplees-fertiiknis ($1) breecht än köö ai foon di wäbsärwer mååged wårde.',
 'upload_directory_read_only' => 'Dåt aplees-fertiiknis ($1) koon ai foon e wäbsärver beschraawen wårde.',
@@ -1465,7 +1466,7 @@ Am en '''bil''' uun en artiikel tu brüken, brük en link faan det furem:
 'filename' => 'Dateinööm',
 'filedesc' => 'Beskriiwang',
 'fileuploadsummary' => 'Beskriiwang',
-'filereuploadsummary' => 'Feranerangen faan det datei:',
+'filereuploadsummary' => 'Feranrangen faan det datei:',
 'filestatus' => 'Copyright-Status:',
 'filesource' => 'Kwel',
 'uploadedfiles' => 'Huuchschüürd datein',
@@ -1663,7 +1664,7 @@ För a seekerhaid as img_auth.php ei aktiwiaret.',
 
 # Special:ListFiles
 'listfiles-summary' => 'Üüb detdiar spezialsidj wurd aal a huuchschüürd datein uunwiset. Dü könst uk efter brükern filtre, diar datein tuleetst bewerket haa.',
-'listfiles_search_for' => 'Sjük efter det datei:',
+'listfiles_search_for' => 'Schük efter det datei:',
 'imgfile' => 'datei',
 'listfiles' => 'List faan datein',
 'listfiles_thumb' => 'Letjer bil',
@@ -1678,7 +1679,7 @@ För a seekerhaid as img_auth.php ei aktiwiaret.',
 'file-anchor-link' => 'Datei',
 'filehist' => 'Dååtäifärsjoone',
 'filehist-help' => 'Klik aw en tidpunkt, am jüdeer färsjoon önjiinjtunaamen.',
-'filehist-deleteall' => 'åle färsjoone strike',
+'filehist-deleteall' => 'aal a werjuunen strik',
 'filehist-deleteone' => 'jüdeer färsjoon strike',
 'filehist-revert' => 'tubääg seete',
 'filehist-current' => 'aktuäl',
@@ -1859,7 +1860,7 @@ Uun arke rä stun ferwisangen tu't iarst an ööder widjerfeerang an uk tu det s
 'mostimages' => 'Datein, huar a miast sidjen üüb ferwise',
 'mostinterwikis' => 'Sidjen mä a miast ferwisangen tu ööder spriaken',
 'mostrevisions' => 'Sidjen mä miast feranrangen',
-'prefixindex' => 'Åle side (ma prefiks)',
+'prefixindex' => 'Aal a sidjen (mä prefix)',
 'prefixindex-namespace' => 'Aal a sidjen mä prefix (nöömrüm $1)',
 'shortpages' => 'Kurt sidjen',
 'longpages' => 'Lung sidjen',
@@ -1895,16 +1896,16 @@ Uun arke rä stun ferwisangen tu't iarst an ööder widjerfeerang an uk tu det s
 'querypage-disabled' => 'Detdiar spezial-sidj as ei aktiif, am det süsteem ei tu auerläästin.',
 
 # Book sources
-'booksources' => 'ISBN-säkj',
-'booksources-search-legend' => 'Säk eefter betii-kwäle for böke',
-'booksources-go' => 'Säke',
+'booksources' => 'Schük efter ISBN-numer',
+'booksources-search-legend' => 'Schük efter bukloodens',
+'booksources-go' => 'Widjer',
 'booksources-text' => 'Detdiar list ferwiset üüb wääbsteeden, diar nei an brükt buken ferkuupe. Diar feist dü uk muar tu weden. {{SITENAME}} hää mo jodiar kuuplidj oober niks tu dun.',
 'booksources-invalid-isbn' => 'Detdiar ISBN as woorskiinelk ferkiard. Luke noch ans efter, of det rocht auerdraanj wurden as.',
 
 # Special:Log
 'specialloguserlabel' => 'Brüker:',
 'speciallogtitlelabel' => 'Mual (sidjennööm of brüker):',
-'log' => 'Logböke',
+'log' => 'Logbuken',
 'all-logs-page' => 'Aal a öfentelk logbuken',
 'alllogstext' => 'Diar wuad aal a logbuken faan {{SITENAME}} uunwiset.
 Det woort efter logbukslach, brüker of sidjennööm uunwiset. Grat- an letjskriiwang skel beaachtet wurd.',
@@ -1913,13 +1914,13 @@ Det woort efter logbukslach, brüker of sidjennööm uunwiset. Grat- an letjskri
 'showhideselectedlogentries' => 'Wise/fersteeg jodiar logbukiindracher',
 
 # Special:AllPages
-'allpages' => 'Åle side',
+'allpages' => 'Aal a sidjen',
 'alphaindexline' => '$1 bit $2',
 'nextpage' => 'Näist sid ($1)',
 'prevpage' => 'Leest sid ($1)',
 'allpagesfrom' => 'Side wise sunt:',
 'allpagesto' => 'Side wise bit:',
-'allarticles' => 'Åle side',
+'allarticles' => 'Aal a sidjen',
 'allinnamespace' => 'Aal a sidjen (nöömrüm: $1)',
 'allnotinnamespace' => 'Aal a sidjen (saner nöömrüm $1)',
 'allpagesprev' => 'Leest',
@@ -1950,10 +1951,10 @@ Luke uk bi det list faan [[Special:WantedCategories|nuadag kategoriin]].',
 'sp-deletedcontributions-contribs' => 'Bidracher',
 
 # Special:LinkSearch
-'linksearch' => "Sjük efter ferwisangen uun't näät",
+'linksearch' => "Schük efter ferwisangen uun't näät",
 'linksearch-pat' => 'Schükmünster:',
 'linksearch-ns' => 'Noomerüm:',
-'linksearch-ok' => 'Säk',
+'linksearch-ok' => 'Schük',
 'linksearch-text' => 'Diar kön wariaabeln üs t.b. "*.bispal.de" brükt wurd. Tumanst ian TLD üs t.b. "*.org" skal uunden wurd.<br />{{PLURAL:$2|Protokol|Protokolen}}: <code>$1</code> (Diar woort http nimen, wan niks ööders uunden as.)',
 'linksearch-line' => '$2 ferwiset üüb $1',
 'linksearch-error' => 'Wariaabeln ("*") mut bluas bi a began faan en URL uunden wurd.',
@@ -1982,7 +1983,7 @@ Muar diartu fanjst dü üüb  [[{{MediaWiki:Listgrouprights-helppage}}|detdiar s
 'listgrouprights-group' => 'Skööl',
 'listgrouprights-rights' => 'Rochten',
 'listgrouprights-helppage' => 'Help:Brükersköölrochten',
-'listgrouprights-members' => '(lasmoote-list)',
+'listgrouprights-members' => '(lasmooten)',
 'listgrouprights-addgroup' => 'Brüker tu {{PLURAL:$2|detdiar skööl|jodiar sköölen}} tuwise: $1',
 'listgrouprights-removegroup' => 'Brüker ütj {{PLURAL:$2|detdiar skööl|jodiar sköölen}} ütjnem: $1',
 'listgrouprights-addgroup-all' => 'Brüker tu aal a sköölen tuwise',
@@ -1995,7 +1996,7 @@ Muar diartu fanjst dü üüb  [[{{MediaWiki:Listgrouprights-helppage}}|detdiar s
 # Email user
 'mailnologin' => "Bi't e-mail ferschüüren as wat skiaf gingen",
 'mailnologintext' => 'Dü skel [[Special:UserLogin|uunmeldet wees]] an en gudkäänd e-mail-adres uun din [[Special:Preferences|iinstelangen]] haa, am dat dü ööder brükern en e-mail schüür könst.',
-'emailuser' => 'E-mail tu dideere brüker',
+'emailuser' => 'E-mail tu didiar brüker',
 'emailuser-title-target' => 'E-mail tu {{GENDER:$1|didiar brüker|detdiar brükerin}} schüür',
 'emailuser-title-notarget' => 'E-mail tu brüker',
 'emailpage' => 'E-mail tu brüker',
@@ -2039,7 +2040,7 @@ Din aanj e-mail adres faan din [[Special:Preferences|iinstelangen]] woort uunwis
 'watchnologintext' => "Dü skel [[Special:UserLogin|uunmeldet]] wees, am iindracher tu bewerkin, diar dü uun't uug behual wel.",
 'addwatch' => "Uk uun't uug behual",
 'addedwatchtext' => "Det sidj „[[:$1]]“ wel dü [[Special:Watchlist|uun't uug behual]].
-Feranerangen faan detdiar sidj wurd üüb detdiar list fäästhäälen.",
+Feranrangen faan detdiar sidj wurd üüb detdiar list fäästhäälen.",
 'removewatch' => "Ei muar uun't uug behual",
 'removedwatchtext' => 'Jü sid „[[:$1]]“ wörd foon din [[Special:Watchlist|eefterkiiklist]] wächhååld.',
 'watch' => 'Kiike eefter',
@@ -2103,6 +2104,8 @@ Am iinstelangen am sidjen, diar dü uun\'t uug behual wel, gung tu {{canonicalur
 Am det sidj ei linger uun\'t uug tu behualen, gung tu $UNWATCHURL.
 
 Halep an muar diartu: {{canonicalurl:{{MediaWiki:Helppage}}}}',
+'created' => 'maaget',
+'changed' => 'feranert',
 
 # Delete
 'deletepage' => 'Sid tunintemååge',
@@ -2114,7 +2117,7 @@ Halep an muar diartu: {{canonicalurl:{{MediaWiki:Helppage}}}}',
 'delete-confirm' => 'Strik "$1"',
 'delete-legend' => 'Strike',
 'historywarning' => "'''Paase üüb:''' Det sidj, wat dü strik wel, hää amanbi $1 {{PLURAL:$1|werjuun|werjuunen}}:",
-'confirmdeletetext' => 'Dü bast deerbai, en sid ma åle tuhiirende ålere färsjoone tuninte tu måågen. Bestääsie hål deertu, dåt dü de foon da konsekwänse bewust bast, än dåt dü önj oueriinjstiming ma da [[{{MediaWiki:Policy-url}}|ruchtliinjen]] hoonelst.',
+'confirmdeletetext' => 'Dü wel en sidj mä aal sin werjuunen strik. Dü skel gudkään, dat dü witjst, wat dü dääst an dat din dun mä a [[{{MediaWiki:Policy-url}}|brükerreegeln]] auerian stemet.',
 'actioncomplete' => 'Aksjoon beånd',
 'actionfailed' => 'Diar ging wat skiaf',
 'deletedtext' => '„$1“ wörd tunintemååged. In e $2 fanst dü en list foon da tuleest tunintemåågede side.',
@@ -2181,7 +2184,7 @@ Gung turag, an began faan föören.",
 'protect-locked-dblock' => "Det dootenbeenk as speret, det sidjenseekerang koon ei feranert wurd. So as det sidj '''„$1“:''' seekert wurden.",
 'protect-locked-access' => "Din brükerkonto ferfäiget ai ouer da nüsie ruchte tu jü änring foon e sideschüts. Heer san da aktuäle sideschütsönjstalinge fon jü sid '''„$1“:'''",
 'protect-cascadeon' => 'Jüdeer sid as nütutids diilj foon e kaskaadenspäre. Jü as önj {{PLURAL:$1|jü füliende sid|da füliende side}} önjbünen, huk döör jü kaskaadenspäropsjoon schütsed {{PLURAL:$1|as|san}}. Di sideschütsstatus koon for jüdeer sid änred wårde, dåtdeer heet ouers nån influs aw jü kaskaadenspäre:',
-'protect-default' => 'Åle brükere',
+'protect-default' => 'Arke brüker',
 'protect-fallback' => 'Ferloof bluas för brükern mä "$1"-rochten.',
 'protect-level-autoconfirmed' => 'Ferloof bluas för registriaret brükern.',
 'protect-level-sysop' => 'Ferloof bluas för administratooren.',
@@ -2228,8 +2231,8 @@ Gung turag, an began faan föören.",
 'viewdeletedpage' => 'Stregen sidjen uunwise',
 'undeletepagetext' => "{{PLURAL:$1|Detdiar sidj as stregen wurden, oober koon|Jodiar $1 sidjen san stregen wurden, oober kön}} faan administratooren weder iinsteld wurd, wan jo noch uun't archiif san.",
 'undelete-fieldset-title' => 'Weder iinstel',
-'undeleteextrahelp' => '* Am det sidj mä aal jo werjuunen weder iintustelen, sjük nian enkelt werjuun ütj, du en grünj uun an trak do üüb „{{int:undeletebtn}}“.*
-* Am en was werjuun weder iintustelen, sjük det werjuun ütj, du en grünj uun an trak do üüb „{{int:undeletebtn}}“.',
+'undeleteextrahelp' => '* Am det sidj mä aal jo werjuunen weder iintustelen, schük nian enkelt werjuun ütj, du en grünj uun an trak do üüb „{{int:undeletebtn}}“.*
+* Am en was werjuun weder iintustelen, schük det werjuun ütj, du en grünj uun an trak do üüb „{{int:undeletebtn}}“.',
 'undeleterevisions' => '{{PLURAL:$1|1 werjuun|$1 werjuunen}} archiwiaret',
 'undeletehistory' => 'Wan dü detdiar sidj weder iinstelst, wurd uk jo ual werjuunen weder iinsteld. 
 Wan sant det striken en nei sidj mä di salew nööm iinsteld wurden as, wurd jo ual werjuunen bi det nei sidj mä iinwerket.',
@@ -2255,10 +2258,10 @@ $1',
 'undeletedpage' => "'''„$1“''' as weder iinsteld wurden.
 Uun't [[Special:Log/delete|logbuk faan stregen sidjen]] stun a stregen an weder iinsteld sidjen.",
 'undelete-header' => "Luke uun't [[Special:Log/delete|logbuk för stregen sidjen]] efter stregen sidjen faan a leetst tidj.",
-'undelete-search-title' => 'Sjük stregen sidjen',
-'undelete-search-box' => 'Sjük stregen sidjen',
-'undelete-search-prefix' => 'Sjük sidjen, diar began mä:',
-'undelete-search-submit' => 'Sjük',
+'undelete-search-title' => 'Schük stregen sidjen',
+'undelete-search-box' => 'Schük stregen sidjen',
+'undelete-search-prefix' => 'Schük sidjen, diar began mä:',
+'undelete-search-submit' => 'Schük',
 'undelete-no-results' => "Uun't archiif wiar nian paasen sidjen.",
 'undelete-filename-mismatch' => 'Det werjuun faan $1 koon ei weder iinsteld wurd. Di dateinööm paaset ei.',
 'undelete-bad-store-key' => "Det dateiwersjuun faan $1 koon ei weder iinsteld wurd. Det datei wiar al föör't striken ei muar diar.",
@@ -2290,7 +2293,7 @@ $1",
 'month' => 'än moune:',
 'year' => 'bit iir:',
 
-'sp-contributions-newbies' => 'Wis bloot tujeefte foon naie brükere',
+'sp-contributions-newbies' => 'Wise bluas bidracher faan nei brükern',
 'sp-contributions-newbies-sub' => 'Faan nei brükern',
 'sp-contributions-newbies-title' => 'Brükerbidracher faan nei brükern',
 'sp-contributions-blocklog' => 'Spär-logbök',
@@ -2301,13 +2304,13 @@ $1",
 'sp-contributions-userrights' => 'Brükerrochten',
 'sp-contributions-blocked-notice' => "Didiar brüker as speret. Det stäänt uun't sperlogbuk:",
 'sp-contributions-blocked-notice-anon' => "Detdiar IP-adres as speret. Det stäänt uun't sperlogbuk:",
-'sp-contributions-search' => 'Säkj eefter brükertujeefte',
+'sp-contributions-search' => 'Schük efter brükerbidracher',
 'sp-contributions-username' => 'IP-adräs unti brükernoome',
 'sp-contributions-toponly' => 'Bluas aktuel werjuunen wise',
 'sp-contributions-submit' => 'Säike',
 
 # What links here
-'whatlinkshere' => 'Links aw jüdeer sid',
+'whatlinkshere' => 'Ferwisangen üüb detdiar sidj',
 'whatlinkshere-title' => 'Side, da aw "$1" ferlinke',
 'whatlinkshere-page' => 'sid:',
 'linkshere' => "Da füliende side ferlinke aw '''„[[:$1]]“''':",
@@ -2329,7 +2332,7 @@ $1",
 'autoblockid' => 'Automaatisk sper #$1',
 'block' => 'Brüker spere',
 'unblock' => 'Brüker ei muar spere',
-'blockip' => 'IP-adräs/brüker späre',
+'blockip' => 'IP-adres/brüker spere',
 'blockip-title' => 'Brüker spere',
 'blockip-legend' => 'IP-adres/brüker spere',
 'blockiptext' => 'Mä detdiar formulaar sperest dü en IP-adres of en brükernööm, so dat faan diar nian feranrangen muar maaget wurd kön. 
@@ -2391,7 +2394,7 @@ Am det aptuheewen, gung tu't [[Special:BlockList|sperlist]].",
 'blocklist-by' => 'Speret faan',
 'blocklist-params' => 'Speriinstelangen',
 'blocklist-reason' => 'Grünj',
-'ipblocklist-submit' => 'Sjük',
+'ipblocklist-submit' => 'Schük',
 'ipblocklist-localblock' => 'Lokaal sper',
 'ipblocklist-otherblocks' => 'Ööder {{PLURAL:$1|sper|speren}}',
 'infiniteblock' => 'saner aanj',
@@ -2403,10 +2406,10 @@ Am det aptuheewen, gung tu't [[Special:BlockList|sperlist]].",
 'blocklist-nousertalk' => 'koon sin aanj diskusjuunssidj ei bewerke',
 'ipblocklist-empty' => 'Det sperlist as leesag',
 'ipblocklist-no-results' => 'Detdiar IP-adres/di brükernööm as ei speret.',
-'blocklink' => 'späre',
+'blocklink' => 'Spere',
 'unblocklink' => 'frijeewe',
 'change-blocklink' => 'Späring änre',
-'contribslink' => 'tujeefte',
+'contribslink' => 'bidracher',
 'emaillink' => 'e-mail schake',
 'autoblocker' => 'Automatische spär, deer dü en gemiinsoom IP-adräs ma [[User:$1|brüker:$1]] brükst. Grün foon brükerspär: „$2“.',
 'blocklogpage' => 'Brükerspär-logbök',
@@ -2419,12 +2422,12 @@ Uun't logbuk stäänt:",
 'blocklogtext' => "Detdiar as det logbuk auer sperangen an apheewen sperangen faan brükernöömer an IP-adresen.
 Automaatisk sperd IP-adresen wurd ei uunwiset.
 Luke bi't [[Special:BlockList|sperlist]] för aal jo aktuel speren.",
-'unblocklogentry' => 'heet jü späre foon „$1“ aphääwen',
+'unblocklogentry' => 'hää det sper faan „$1“ apheewen',
 'block-log-flags-anononly' => 'bloot anonyme',
 'block-log-flags-nocreate' => 'Måågen foon brükerkonte spärd',
 'block-log-flags-noautoblock' => 'autoblock deaktiviird',
 'block-log-flags-noemail' => 'e-mail-fersiinjing spärd',
-'block-log-flags-nousertalk' => 'mötj äine diskusjoonssid ai beårbe',
+'block-log-flags-nousertalk' => 'koon sin aanj diskusjuunssidj ei bewerke',
 'block-log-flags-angry-autoblock' => 'ütbrååt autoblock aktiviird',
 'block-log-flags-hiddenname' => 'brükernoome ferstäägen',
 'range_block_disabled' => 'Jü möölikhäid, hiilj adräsrüme tu spären, as ai aktiviird.',
@@ -2474,20 +2477,26 @@ Fertel det dan ISP of dan süsteemsiinst. Eeben proxys stel det seekerhaid uun f
 # Move page
 'move-page' => 'Ferschüw $1',
 'move-page-legend' => 'Sid ferschüwe',
-'movepagetext' => "Ma dideere formulaar koost de en sid ambenååme (masamt åle färsjoone).
-Di üülje tiitel wårt tu di naie widerliidje.
-Dü koost widerliidjinge, da ap e originooltiitel ferlinke, automatisch korrigiire lätje.
-For di fål dåt dü dåt ai dääst, präiw aw [[Special:DoubleRedirects|dööwelte]] unti [[Special:BrokenRedirects|önjstööge widerliidjinge]].
-Dü bast deerfor feroontuurdlik, dåt links fortönj ap dåt koräkt muul wise.
-
-Jü sid wårt '''ai''' ferschääwen, wan dåt ål en sid ma di seelew noome jeeft,
-süwid jüdeer ai bloots en widerliidjing suner färsjoonshistoori as. Dåtdeer bedjüset,
-dåt dü jü sid tubääg ferschüwe koost, wan dü en fäägel mååged heest. Dü koost
-deeriinj niinj sid ouerschriwe.
-
-'''Woorschouing!'''
-Jü ferschüwing koon widlingende än ünfermousene fülie for beliifte side heewe.
-Dü schöist deerfor da konsekwänse ferstönjen heewe, iir dü baiblafst.",
+'movepagetext' => "Mä detdiar formulaar könst dü en sidj mä aal sin werjuunen amnääm.
+Di ual tiitel woort üüb di nei widjerfeerd.
+Dü könst widjerfeerangen, diar üüb di ual tiitel wise, automaatisk üüb di nei tiitel widjer feer läät.
+Wan dü det oober ei dääst, paase üüb, dat dü aal a [[Special:DoubleRedirects|dobelt]] of [[Special:BrokenRedirects|breegen]] widjerfeerangen noch ans efterlukest.
+Bluas dü könst diarför surge, dat ferwisangen widjerhen rocht werke.
+
+Det sidj woort '''ei''' fersköwen, wan't al en sidj mä di nei nööm jaft. Det loket bluas do, wan di nei nööm salew en widjerfeerang as. Det ment, dat dü det amnäämen turagsaat könst, wan dü niks ferkiard maaget heest. Dü könst oober nian sidj, diar't al jaft, auerskriiw.
+
+'''Paase üüb!'''
+Det fersküüwen hää widjloftag fulgen för ööder sidjen. Dü skulst begreben haa, wat dü diar maage wel.",
+'movepagetext-noredirectfixer' => "Mä detdiar formulaar könst dü en sidj mä aal sin werjuunen amnääm.
+Di ual tiitel woort üüb di nei widjerfeerd.
+Dü könst widjerfeerangen, diar üüb di ual tiitel wise, automaatisk üüb di nei tiitel widjer feer läät.
+Wan dü det oober ei dääst, paase üüb, dat dü aal a [[Special:DoubleRedirects|dobelt]] of [[Special:BrokenRedirects|breegen]] widjerfeerangen noch ans efterlukest.
+Bluas dü könst diarför surge, dat ferwisangen widjerhen rocht werke.
+
+Det sidj woort '''ei''' fersköwen, wan't al en sidj mä di nei nööm jaft. Det loket bluas do, wan di nei nööm salew en widjerfeerang as. Det ment, dat dü det amnäämen turagsaat könst, wan dü niks ferkiard maaget heest. Dü könst oober nian sidj, diar't al jaft, auerskriiw.
+
+'''Paase üüb!'''
+Det fersküüwen hää widjloftag fulgen för ööder sidjen. Dü skulst begreben haa, wat dü diar maage wel.",
 'movepagetalktext' => "Jü deertu hiirende diskusjoonssid wård, süwid deer, maferschääwen, '''unti dåt moost weese:'''
 *Deer bestoont ål en diskusjoonssid ma dideere noome, unti
 *dü wäälst jü uner stönjene opsjoon ouf.
@@ -2496,6 +2505,7 @@ Dü schöist deerfor da konsekwänse ferstönjen heewe, iir dü baiblafst.",
 
 Hål di '''naie''' tiitel uner '''muul''' önjdreege, deeruner jü ambenååming hål '''begrüne.'''",
 'movearticle' => 'Sid ferschüwe:',
+'moveuserpage-warning' => "'''Paase üüb:''' Dü wel en brükersidj fersküüw. Seenk diaram, dat bluas det brükersidj amnäämd woort, oober '''ei''' di brüker. Hi behäält san ual nööm.",
 'movenologin' => 'Ei uunmeldet',
 'movenologintext' => 'Dü skel registriaret an [[Special:UserLogin|uunmeldet]] wees, am en sidj tu fersküüwen.',
 'movenotallowed' => 'Dü mutst nian sidjen fersküüw.',
@@ -2513,7 +2523,7 @@ Hål di '''naie''' tiitel uner '''muul''' önjdreege, deeruner jü ambenååming
 'cantmove-titleprotected' => 'Dü könst det sidj ei so fersküüw, auer di nei nööm speret as.',
 'talkexists' => 'Jü sid seelew wörd erfolchrik ferschääwen, ouers jü deertu hiirende diskusjoonssid ai, deer ål iinj ma di nai tiitel bestoont. Glik hål da önjhålte foon hönj ouf.',
 'movedto' => 'ferschääwen eefter',
-'movetalk' => 'Jü diskusjoonssid maferschüwe, wan möölik',
+'movetalk' => "Uk det diskusjuunssidj fersküüw, wan't gongt",
 'move-subpages' => 'Onersidjen fersküüw (bit $1)',
 'move-talk-subpages' => "Onersidjen faan't diskusjuunssidj fersküüw (bit $1)",
 'movepage-page-exists' => 'Det sidj „$1“ as al diar an koon ei automaatisk auerskrewen wurd.',
@@ -2539,94 +2549,371 @@ Det sidj „[[:$1]]“ as al diar. Wel dü det strik, am det sidj tu fersküüwe
 'immobile-target-namespace-iw' => 'Dü könst nian sidj üüb en interwiki-link fersküüw.',
 'immobile-source-page' => 'Detdiar sidj koon ei fersköwen wurd.',
 'immobile-target-page' => 'Üüb detdiar sidj koon ei fersköwen wurd.',
+'bad-target-model' => 'Det nei sidj hää en ööder münster üs det ual. Det münster faan $1 koon ei tu det münster faan $2 feranert wurd.',
+'imagenocrossnamespace' => 'Datein kön ei ütj di {{ns:file}}-nöömrüm ütj fersköwen wurd.',
+'nonfile-cannot-move-to-file' => 'Det as nian datei, wat dü iin uun di {{ns:file}}-nöönmrüm fersküüw wel. Det gongt ei.',
+'imagetypemismatch' => 'Det nei dateiaanj as ei detsalew üs det ual.',
+'imageinvalidfilename' => 'Didiar dateinööm gongt ei.',
+'fix-double-redirects' => "Efter't fersküüwen aal a widjerfeerangen hen tu det ual sidj ferbeedre",
+'move-leave-redirect' => 'Widjerfeerang iinracht',
+'protectedpagemovewarning' => "'''Paase üüb: Detdiar sidj as speret wurden. Bluas administratooren kön det fersküüw.'''
+Uun't logbuk stäänt muar diartu:",
+'semiprotectedpagemovewarning' => "'''Paase üüb:''' Detdiar sidj as dialwiis tu't bewerkin speret wurden. Bluas gudkäänd brükern kön det fersküüw.
+Uun't logbuk stäänt muar diartu:",
+'move-over-sharedrepo' => '== Datei as al diar ==
+[[:$1]] stäänt uun en gemiansoom brükt archiif. Det fersküüwen üüb didiar nööm auerskraft det gemiansoom brükt datei.',
+'file-exists-sharedrepo' => 'Didiar dateinööm woort al uun en gemiansoom archiif brükt. Wees so gud, an nem en öödern nööm.',
 
 # Export
 'export' => 'Side äksportiire',
+'exporttext' => 'Mä detdiar spezial-sidj könst dü di tekst mä aal sin werjuunen tu en XML-datei eksportiare. Det nei datei koon do faan en ööder MediaWiki-Wiki [[Special:Import|importiaret]] wurd.
+
+Skriiw a sidjennöömer iin uun det tekstfial (man bluas ään noom uun arke rä).
+
+Di eksport as uk mä [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] mögelk, tun bispal för det [[{{MediaWiki:Mainpage}}]].',
+'exportall' => 'Aal a sidjen eksportiare',
+'exportcuronly' => 'Bluas det aktuel werjuun eksportiare, ei jo ual werjuunen',
+'exportnohistory' => "----
+'''Paase üüb:''' Di eksport faan di hial ferluup as uun uugenblak ei mögelk.",
+'exportlistauthors' => 'För arke sidj det hial list faan bewerkern mänem',
+'export-submit' => 'Eksport',
+'export-addcattext' => 'Sidjen faan detdiar kategorii diartunem:',
+'export-addcat' => 'Diartunem',
+'export-addnstext' => 'Sidjen faan didiar nöömrüm diartunem:',
+'export-addns' => 'Diartunem',
+'export-download' => 'Üs XML-datei seekre',
+'export-templates' => 'Mä föörlaagen',
+'export-pagelinks' => 'Ferwiset sidjen mänem bit tu en jipde faan:',
 
 # Namespace 8 related
+'allmessages' => 'MediaWiki-Süsteemnoorachten',
 'allmessagesname' => 'Nööm',
 'allmessagesdefault' => 'Standard tekst',
+'allmessagescurrent' => 'Aktuel tekst',
+'allmessagestext' => "Det as en list mä MediaWiki-süsteemteksten.
+Wees so gud an beschük a sidjen [//www.mediawiki.org/wiki/Localisation MediaWiki-auersaatang] an [//translatewiki.net translatewiki.net], wan dü bi't auersaaten mähalep meest.",
+'allmessagesnotsupportedDB' => 'Detdiar spezial-sidj koon ei brükt wurd, auer <tt>$wgUseDatabaseMessages</tt> ei aktiif as.',
+'allmessages-filter-legend' => 'Filter',
+'allmessages-filter' => 'Filter för di uunpaaset stant:',
+'allmessages-filter-unmodified' => 'Ünferanert',
+'allmessages-filter-all' => 'Aaltumaal',
+'allmessages-filter-modified' => 'Feranert',
+'allmessages-prefix' => 'Filter mä prefix:',
+'allmessages-language' => 'Spriak:',
+'allmessages-filter-submit' => 'Widjer',
 
 # Thumbnails
 'thumbnail-more' => 'fergrutre',
-'thumbnail_error' => "Bi't maagin faan't sümnaielbil ging wat skiaf: $1",
+'filemissing' => 'Datei ei diar',
+'thumbnail_error' => "Bi't skriiwen faan det sümnaielbil as wat skiaf gingen: $1",
+'thumbnail_error_remote' => 'Feeler faan $1:
+$2',
+'djvu_page_error' => 'DjVu-sidj as bütjen faan a sidjenrüm',
+'djvu_no_xml' => 'XML-dooten för det DjVu-datei kön ei ufrepen wurd',
+'thumbnail-temp-create' => 'Det datei för det tidjwiis sümnaielbil küd ei skrewen wurd',
+'thumbnail-dest-create' => 'Det sümnaielbil küd diar ei seekert wurd.',
+'thumbnail_invalid_params' => 'Sümnaieldooten steme ei',
+'thumbnail_dest_directory' => 'Det fertiaknis koon ei skrewen wurd.',
+'thumbnail_image-type' => 'Sok bilen kön ei brükt wurd',
+'thumbnail_gd-library' => 'GD-bibleteek ei gans diar: Det funktjuun $1 waant',
+'thumbnail_image-missing' => 'Det datei as wel ei diar: $1',
 
 # Special:Import
 'import' => 'Side importiire',
 'importinterwiki' => 'Transwiki import',
+'import-interwiki-text' => "Schük en Wiki an en sidj tu importiarin ütj. A werjuunen an brükernöömer bliiw erhäälen.
+Transwiki-import-aktjuunen wurd uun't [[Special:Log/import|Import-logbuk]] fäästhäälen.",
+'import-interwiki-source' => 'Faan hün Wiki/sidj:',
+'import-interwiki-history' => 'Aal a werjuunen faan det sidj importiare',
+'import-interwiki-templates' => 'Mä aal a föörlaagen',
 'import-interwiki-submit' => 'Import',
+'import-interwiki-namespace' => 'Tu hün nöömrüm:',
+'import-interwiki-rootpage' => 'Tu hün sidj (optional):',
+'import-upload-filename' => 'Dateinööm:',
+'import-comment' => 'Komentaar:',
+'importtext' => 'Wees so gud an eksportiare det datei mä det spezial-sidj [[Special:Export|Eksport]] ütj det ööder Wiki. Det seekerst dü üüb dan reegner an schüürst det do heer huuch.',
+'importstart' => 'Importiare sidjen ...',
+'import-revision-count' => '$1 {{PLURAL:$1|werjuun|werjuunen}}',
+'importnopages' => 'Diar san nian sidjen tu importiarin.',
+'imported-log-entries' => '$1 {{PLURAL:$1|logbukiindrach|logbukiindracher}} importiaret.',
+'importfailed' => 'Import as skiaf gingen: <nowiki>$1</nowiki>',
+'importunknownsource' => 'Ünbekäänd importkwel',
+'importcantopen' => 'Det import-datei küd ei eeben maaget wurd.',
+'importbadinterwiki' => 'Ferkiard interwiki-link',
+'importnotext' => 'Leesag of nään tekst',
+'importsuccess' => 'Import klaar!',
+'importhistoryconflict' => 'Diar san al ääler werjuunen diar. Ferlicht as det sidj al ans importiaret wurden.',
+'importnosources' => 'För di transwiki-import san nian kwelen uunden. Dü könst werjuunen ei direkt huuchschüür.',
+'importnofile' => 'Diar as nian importdatei bestemet wurden.',
+'importuploaderrorsize' => "Bi't huuchschüüren faan det importdatei as wat skiaf gingen. Det datei as tu grat.",
+'importuploaderrorpartial' => "Bi't huuchschüüren faan det importdatei as wat skiaf gingen. Det datei as bluas dialwiis huuchschüürd wurden.",
+'importuploaderrortemp' => "Bi't huuchschüüren faan det importdatei as wat skiaf gingen. Diar as nian tidjwiis fertiaknis.",
+'import-parse-failure' => "Bi't importiarin faan det XML-datei as wat skiaf gingen.",
+'import-noarticle' => 'Diar as nian sidj tu importiarin bestemet wurden.',
+'import-nonewrevisions' => 'Aal jodiar werjuunen san al ans importiaret wurden.',
+'xml-error-string' => '$1 uun rä $2, türn $3 (byte $4): $5',
+'import-upload' => 'XML-datein importiare',
+'import-token-mismatch' => 'Session dooten san wech. Ferschük det noch ans weder.',
+'import-invalid-interwiki' => 'Faan detdiar Wiki koon ik ei importiare.',
+'import-error-edit' => 'Det sidj „$1“ as ei importiaret wurden, auer dü det ei bewerke mutst.',
+'import-error-create' => 'Det sidj „$1“ as ei importiaret wurden, auer dü det ei maage mutst.',
+'import-error-interwiki' => 'Det sidj „$1“ as ei importiaret wurden, auer di nööm för ferwisangen (interwiki) föörsen as.',
+'import-error-special' => 'Det sidj „$1“ as ei importiaret wurden, auer hat tu en nöömrüm hiart, huar nian sidjen mögelk san.',
+'import-error-invalid' => 'Det sidj „$1“ as ei importiaret wurden, auer di nööm ei stemet.',
+'import-error-unserialize' => 'Det werjuun $2 faan det sidj „$1“ küd ei deserialisiaret wurd. Det werjuun woort mä det münster $3 brükt, an det as mä $4 serialisiaret.',
+'import-options-wrong' => 'Ferkiard {{PLURAL:$2|iinstelang|iinstelangen}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Didiar sidjennööm as ferkiard.',
+'import-rootpage-nosubpage' => 'Uun di nöömrüm „$1“ jaft at nian onersidjen.',
+
+# Import log
+'importlogpage' => 'Import-logbuk',
+'importlogpagetext' => 'Administratiif import faan sidjen mä aal a werjuunen faan ööder Wikis.',
+'import-logentry-upload' => '„[[$1]]“ faan en datei importiaret',
+'import-logentry-upload-detail' => '$1 {{PLURAL:$1|werjuun|werjuunen}}',
+'import-logentry-interwiki' => '„$1“ mä transwiki importiaret',
+'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|werjuun|werjuunen}} faan $2',
+
+# JavaScriptTest
+'javascripttest' => 'JavaScript-test',
+'javascripttest-title' => '$1-tests wurd ütjfeerd.',
+'javascripttest-pagetext-noframework' => 'Detdiar sidj as för JavaScript-tests föörsen.',
+'javascripttest-pagetext-unknownframework' => 'Ünbekäänd test-framework „$1“.',
+'javascripttest-pagetext-frameworks' => 'Schük ian faan jodiar test-frameworks ütj: $1',
+'javascripttest-pagetext-skins' => 'Schük en brüker-skak ütj, am di test ütjtufeeren:',
+'javascripttest-qunit-intro' => 'Luke efter bi [$1 test dokumentatjuun] üüb mediawiki.org',
+'javascripttest-qunit-heading' => 'JavaScript-QUnit-tester faan MediaWiki',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Din brükersid',
-'tooltip-pt-mytalk' => 'Din diskusjoonssid',
+'tooltip-pt-anonuserpage' => 'Brükersidj faan det IP-adres, faan huar ütj dü werkest',
+'tooltip-pt-mytalk' => 'Din diskusjuunssidj',
+'tooltip-pt-anontalk' => 'Diskusjuun auer feranrangen faan detdiar IP-adres',
 'tooltip-pt-preferences' => 'Äine önjstalinge',
 'tooltip-pt-watchlist' => 'List foon eefterkiikede side',
-'tooltip-pt-mycontris' => 'List foon din tujeefte',
-'tooltip-pt-login' => 'Ham önjmälde wårt wälj hål sänj, ouers as niinj plächt.',
-'tooltip-pt-anonlogin' => 'Ham önjmälde wårt wälj hål sänj, ouers as niinj plächt.',
-'tooltip-pt-logout' => 'Oufmälde',
-'tooltip-ca-talk' => 'Diskusjoon ouer jü sidinhålt',
+'tooltip-pt-mycontris' => 'List mä aanj bidracher',
+'tooltip-pt-login' => 'Wan dü di uunmeldest, heest dü muar mögelkhaiden. Dü säärst det oober ei.',
+'tooltip-pt-anonlogin' => 'Wan dü di uunmeldest, heest dü muar mögelkhaiden. Dü säärst det oober ei.',
+'tooltip-pt-logout' => 'Ufmelde',
+'tooltip-ca-talk' => 'Diskusjuun auer di artiikel',
 'tooltip-ca-edit' => 'Sid beårbe. Hål for dåt spikern jü forlökfunksjoon brüke.',
 'tooltip-ca-addsection' => 'Nai oufsnaas begane',
 'tooltip-ca-viewsource' => 'Jüdeer sid wårt uner ferbading hülen. Di kwältäkst koon önjkiiked wårde.',
-'tooltip-ca-history' => 'Iire färsjoone foon jüdeer sid',
+'tooltip-ca-history' => 'Ääler werjuunen faan detdiar sidj',
 'tooltip-ca-protect' => 'Jüdeer sid schütse',
 'tooltip-ca-unprotect' => 'Seekerang feranere',
 'tooltip-ca-delete' => 'Jüdeer sid tunintemååge',
+'tooltip-ca-undelete' => 'Iindracher faan det sidj turaghaale, iar det stregen wurden as.',
 'tooltip-ca-move' => 'Jüdeer sid ferschüwe',
 'tooltip-ca-watch' => 'Jüdeer sid tu jü persöönlike eefterkiiksid baitufäige',
 'tooltip-ca-unwatch' => 'Jüdeer sid foon jü persöönlike eefterkiikliste wächnaame',
 'tooltip-search' => '{{SITENAME}} döörsäke',
 'tooltip-search-go' => 'Gung matiinjs tu jü sid, jü äksakt di injääwen noome önjtspreecht.',
-'tooltip-search-fulltext' => 'Säk eefter side, da dideere täkst öjnthüülje',
-'tooltip-p-logo' => 'Besäk jü hoodsid',
-'tooltip-n-mainpage' => 'Hoodsid wise',
-'tooltip-n-mainpage-description' => 'Hoodsid besäke',
+'tooltip-search-fulltext' => 'Schük efter sidjen mä didiar tekst',
+'tooltip-p-logo' => 'Hoodsidj beschük',
+'tooltip-n-mainpage' => 'Hoodsidj wise',
+'tooltip-n-mainpage-description' => 'Hoodsidj beschük',
 'tooltip-n-portal' => 'Ouer dåt portåål, wat dü düünj koost, weer wat tu finen as',
 'tooltip-n-currentevents' => 'Äädergrüninformasjoone tu aktuäle schaiinge',
-'tooltip-n-recentchanges' => 'List foon da leeste änringe önj {{SITENAME}}',
+'tooltip-n-recentchanges' => 'Leetst feranrangen faan {{SITENAME}}',
 'tooltip-n-randompage' => 'Tufali sid',
 'tooltip-n-help' => 'Heelpsid wise',
 'tooltip-t-whatlinkshere' => 'List foon ål da side, da heer jurt wise',
 'tooltip-t-recentchangeslinked' => 'Leest änringen bai side, da foon heer ferlinkd san',
 'tooltip-feed-rss' => 'RSS-feed for jüdeer sid',
 'tooltip-feed-atom' => 'Atom-feed for jüdeer sid',
-'tooltip-t-contributions' => 'List foon tujeefte foon dideere brüker önjkiike',
+'tooltip-t-contributions' => 'List mä bidracher faan didiar brüker uunluke',
 'tooltip-t-emailuser' => 'En e-mail tu dideere brüker siinje',
-'tooltip-t-upload' => 'Bile huuchschake',
+'tooltip-t-upload' => 'Datein huuchschüür',
 'tooltip-t-specialpages' => 'List foon ål da spesjåålside',
 'tooltip-t-print' => 'Prantönjsacht foon jüdeer sid',
 'tooltip-t-permalink' => 'Wååri link tu jüdeer sidfärsjoon',
 'tooltip-ca-nstab-main' => 'Sidinhålt wise',
 'tooltip-ca-nstab-user' => 'Brükersid wise',
+'tooltip-ca-nstab-media' => 'Mediendateisidj uunwise',
 'tooltip-ca-nstab-special' => 'Jüdeer sid as en spetsjåålsid. Jü koon ai beåarbed wårde.',
 'tooltip-ca-nstab-project' => 'Portoolsid wise',
 'tooltip-ca-nstab-image' => 'Dååtäisid wise',
+'tooltip-ca-nstab-mediawiki' => 'MediaWiki-süsteemtekst uunwise',
 'tooltip-ca-nstab-template' => 'Forlååge wise',
 'tooltip-ca-nstab-help' => 'Heelpsid wise',
 'tooltip-ca-nstab-category' => 'Kategoriisid wise',
 'tooltip-minoredit' => 'Jüdeer änring as latj markiire.',
-'tooltip-save' => 'Feranerangen seekre',
+'tooltip-save' => 'Feranrangen seekre',
 'tooltip-preview' => 'Forlök foon da änringe bai jüdeer sid. Hål for dåt spikern brüke!',
 'tooltip-diff' => 'Änringe bai di täkst wise',
-'tooltip-compareselectedversions' => 'Ferschääl twasche tou ütwäälde färsjoone foon jüdeer sid wise.',
+'tooltip-compareselectedversions' => 'Ferskeel tesken tau werjuunen faan detdiar sidj uunwise.',
 'tooltip-watch' => 'Fäig jüdeer sid foon din eefterkiikliste tubai',
+'tooltip-watchlistedit-normal-submit' => 'Iindracher wechnem',
+'tooltip-watchlistedit-raw-submit' => "List mä sidjen, diar dü uun't uug behual wel, aktualisiare",
+'tooltip-recreate' => 'Sidj nei maage, likes dat det al ans stregen wurden as',
+'tooltip-upload' => 'Huuchsjüüren began',
 'tooltip-rollback' => 'Mååget åle leeste änringe foon jü sid, da foon di lik brüker fornümen wörden san, döör iinj klik tuninte.',
 'tooltip-undo' => 'Mååget bloot jüdeer iinje änring tuninte än wist dåt resultoot önj e forlöksid önj, deerma önj e tukuupefootingssid en begrüning önjjääwen wårde koon.',
+'tooltip-preferences-save' => 'Iinstelangen seekre',
 'tooltip-summary' => 'Faade det kurt tuup',
 
+# Metadata
+'notacceptable' => 'Di Wiki-server koon a dooten ei för dan aperoot apwerke.',
+
+# Attribution
+'anonymous' => '{{PLURAL:$1|anonüümen brüker|anonüüm brükern}} üüb {{SITENAME}}',
+'siteuser' => '{{SITENAME}}-brüker $1',
+'anonuser' => 'Anonüüm {{SITENAME}}-brüker $1',
+'lastmodifiedatby' => 'Det sidj as tuleetst di $1 am a klook $2 faan $3 feranert wurden.',
+'othercontribs' => 'Üüb grünjlaag faan det werk faan $1.',
+'others' => 'öödern',
+'siteusers' => '{{SITENAME}} {{PLURAL:$2|brüker|brükern}} $1',
+'anonusers' => '{{PLURAL:$2|anonüümen|anonüüm}} {{SITENAME}}-{{PLURAL:$2|brüker|brükern}} $1',
+'creditspage' => 'Sidjeninformatsjuunen',
+'nocredits' => 'Diar san nian sidjeninformatsjuunen',
+
+# Spam protection
+'spamprotectiontitle' => 'Spam-filter',
+'spamprotectiontext' => 'Di tekst, diar dü seekre wulst, as ei troch a spam-filter kimen. Det leit was uun en ferwisang üüb en sidj efter bütjen.',
+'spamprotectionmatch' => "'''Didiar tekst as faan a spam-filter fünjen wurden: ''$1'''''",
+'spambot_username' => 'MediaWiki-spam apklaarin',
+'spam_reverting' => 'Leetst werjuun saner ferwisangen tu $1 weder iinsteld.',
+'spam_blanking' => 'Aal a werjuunen mä en ferwisang tu $1 san apklaaret wurden.',
+'spam_deleting' => 'Aal a werjuunen mä en ferwisung tu $1 san stregen wurden.',
+
+# Info page
+'pageinfo-title' => 'Informatsjuun tu „$1“',
+'pageinfo-not-current' => 'Det informatsjuun jaft at ei för ual werjuunen.',
+'pageinfo-header-basic' => 'Grünjdooten',
+'pageinfo-header-edits' => 'Ferluup bewerke',
+'pageinfo-header-restrictions' => 'Sidjenseekerhaid',
+'pageinfo-header-properties' => 'Sidjeniinstelangen',
+'pageinfo-display-title' => 'Uunwiset sidjennööm',
+'pageinfo-default-sort' => 'Normool sortiariinstelang',
+'pageinfo-length' => 'Sidjenlengde (uun bytes)',
+'pageinfo-article-id' => 'Sidjenkäännumer (ID)',
+'pageinfo-language' => 'Sidjenspriak',
+'pageinfo-robot-policy' => 'Schükmaskiin-stant',
+'pageinfo-robot-index' => 'Koon indisiaret wurd',
+'pageinfo-robot-noindex' => 'Koon ei indisiaret wurd',
+'pageinfo-views' => 'Taal faan kliks üüb det sidj',
+'pageinfo-watchers' => "Taal faan brükern, diar det sidj uun't uug haa",
+'pageinfo-few-watchers' => "Maner üs {{PLURAL:$1|ään brüker|$1 brükern}}, diar det sidj uun't uug haa",
+'pageinfo-redirects-name' => 'Widjerfeerangen tu detdiar sidj',
+'pageinfo-subpages-name' => 'Onersidjen faan detdiar sidj',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|widjerfeerang|widjerfeerangen}}; $3 {{PLURAL:$3|onersidj|onersidjen}})',
+'pageinfo-firstuser' => 'Hoker det sidj maaget hää',
+'pageinfo-firsttime' => 'Wan det sidj maaget wurden as',
+'pageinfo-lastuser' => 'Leetst skriiwer',
+'pageinfo-lasttime' => "Dootem faan't leetst feranrang",
+'pageinfo-edits' => 'Taal faan feranrangen',
+'pageinfo-authors' => 'Taal faan skriiwern',
+'pageinfo-recent-edits' => 'Taal faan a leetst feranrangen (uun a leetst $1)',
+'pageinfo-recent-authors' => 'Taal faan skriiwern',
+'pageinfo-magic-words' => 'Maagisk {{PLURAL:$1|wurd|wurden}} ($1)',
+'pageinfo-hidden-categories' => 'Ferbürgen {{PLURAL:$1|kategorii|kategoriin}} ($1)',
+'pageinfo-templates' => 'Iinbünjen {{PLURAL:$1|föörlaag|föörlaagen}} ($1)',
+'pageinfo-transclusions' => 'Iinbünjen uun {{PLURAL:$1|1 sidj|$1 sidjen}}',
+'pageinfo-toolboxlink' => 'Sidjendooten',
+'pageinfo-redirectsto' => 'Widjerfeerangen tu',
+'pageinfo-redirectsto-info' => 'informatsjuun',
+'pageinfo-contentpage' => 'Üs artiikel tääld',
+'pageinfo-contentpage-yes' => 'Ja',
+'pageinfo-protect-cascading' => 'Sidjen mä kaskaadenseekerhaid faan heer',
+'pageinfo-protect-cascading-yes' => 'Ja',
+'pageinfo-protect-cascading-from' => 'Sidjen mä kaskaadenseekerhaid faan',
+'pageinfo-category-info' => 'Kategorii-informatjuun',
+'pageinfo-category-pages' => 'Taal faan sidjen',
+'pageinfo-category-subcats' => 'Taal faan onerkategoriin',
+'pageinfo-category-files' => 'Taal faan datein',
+
+# Patrolling
+'markaspatrolleddiff' => 'Üs kontroliaret kääntiakne',
+'markaspatrolledtext' => 'Sidj üs kontroliaret kääntiakne',
+'markedaspatrolled' => 'Üs kontroliaret kääntiakne',
+'markedaspatrolledtext' => 'Detdiar werjuun faan [[:$1]] as üs kontroliaret kääntiakent wurden.',
+'rcpatroldisabled' => 'A leetst feranrangen kön ei kontroliaret wurd.',
+'rcpatroldisabledtext' => 'A leetst feranrangen kön tu tidj ei kontroliaret wurd.',
+'markedaspatrollederror' => "Koon ei üs '''kontroliaret''' kääntiakent wurd.",
+'markedaspatrollederrortext' => 'Dü mutst en werjuun besteme, diar dü üs köntroliaret kääntiakne wel.',
+'markedaspatrollederror-noautopatrol' => 'Dü könst ei din aanj feranrangen üs kontroliaret kääntiakne.',
+'markedaspatrollednotify' => 'Det feranrang faan $1 as üs kontroliaret kääntiakent wurden.',
+'markedaspatrollederrornotify' => 'Det werjuun küd ei üs kontroliaret kääntiakent wurd.',
+
+# Patrol log
+'patrol-log-page' => 'Kontrol-logbuk',
+'patrol-log-header' => 'Det as det kontrol-logbuk.',
+'log-show-hide-patrol' => 'Kontrol-logbuk $1',
+
+# Image deletion
+'deletedrevision' => 'Ual werjuun $1 stregen',
+'filedeleteerror-short' => "Bi't striken faan det datei $1 as wat skiaf gingen.",
+'filedeleteerror-long' => "Bi't striken faan det datei as wat skiaf gingen:
+
+$1",
+'filedelete-missing' => 'Det datei „$1“ koon ei stregen wurd, auer hat goorei diar as.',
+'filedelete-old-unregistered' => 'Det datei-werjuun „$1“ as ei diar uun a dootenbeenk.',
+'filedelete-current-unregistered' => 'Det datei „$1“ as ei diar uun a dootenbeenk.',
+'filedelete-archive-read-only' => 'Det archiif-fertiaknis "$1" koon faan a webserver ei beskrewen wurd.',
+
 # Browsing diffs
 'previousdiff' => '← Tu di leest färsjoonsferschääl',
 'nextdiff' => 'Tu di näist färsjoonsferschääl →',
 
 # Media information
+'mediawarning' => "'''Paase üüb:''' Son datei koon fülk programcode haa. Bi't deelloosin an eeben maagin koon dan reegner komer fu.",
+'imagemaxsize' => "Bil mut ei grater wees üs:<br />''(för datei-beskriiwangen)''",
+'thumbsize' => 'Grate faan sümnaielbilen:',
+'widthheightpage' => '$1 × $2, {{PLURAL:$3|1 sidj|$3 sidjen}}',
+'file-info' => 'Dateigrate: $1, MIME-typ: $2',
 'file-info-size' => '$1 × $2 pixele, dååtäigrutelse: $3, MIME-typ: $4',
+'file-info-size-pages' => '$1 × $2 pixel, dateigrate: $3, MIME-typ: $4, $5 {{PLURAL:$5|sidj|sidjen}}',
 'file-nohires' => 'Niinj huuger apliising as deer.',
-'svg-long-desc' => 'SVG-dåtäi, basisgrutelse: $1 × $2 pixel, dåtäigrutelse: $3',
+'svg-long-desc' => 'SVG-datei, grate: $1 × $2 pixel, dateigrate: $3',
+'svg-long-desc-animated' => 'Animiaret SVG-datei, grate $1 × $2 pixel, dateigrate: $3',
+'svg-long-error' => 'Ferkiard SVG-datei: $1',
 'show-big-image' => 'Färsjon önj huuger apliising',
+'show-big-image-preview' => 'Grate faan det sümnaielbil: $1.',
+'show-big-image-other' => 'Ööder {{PLURAL:$2|apliasang|apliasangen}}: $1.',
+'show-big-image-size' => '$1 × $2 pixel',
+'file-info-gif-looped' => 'sleuf saner aanj',
+'file-info-gif-frames' => '$1 {{PLURAL:$1|bil|bilen}}',
+'file-info-png-looped' => 'sleuf saner aanj',
+'file-info-png-repeat' => '$1 {{PLURAL:$1|-sis}} ufspelet',
+'file-info-png-frames' => '$1 {{PLURAL:$1|bil|bilen}}',
+'file-no-thumb-animation' => "'''Paase üüb: Ütj technisk grünjer wurd sümnaielbilen ei animiaret uunwiset.'''",
+'file-no-thumb-animation-gif' => "'''Paase üüb: Ütj technisk grünjer wurd sümnaielbilen faan huuchapliasin GIF-datein ei animiaret uunwiset.'''",
 
 # Special:NewFiles
-'ilsubmit' => 'Sjük',
+'newimages' => 'Nei datein',
+'imagelisttext' => "Diar as en list faan '''$1''' {{PLURAL:$1|datei|datein}}, sortiaret $2.",
+'newimages-summary' => 'Detdiar spezial-sidj wiset a tuleetst huuchsjüürd datein uun.',
+'newimages-legend' => 'Filter',
+'newimages-label' => 'Dateinööm (of en dial diarfaan):',
+'showhidebots' => '(Bots $1)',
+'noimages' => 'Niks tu sen.',
+'ilsubmit' => 'Schük',
+'bydate' => 'efter dootem',
+'sp-newimages-showfrom' => 'Wise nei datein efter $1, klook $2',
+
+# Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'seconds' => '{{PLURAL:$1|$1 sekund|$1 sekunden}}',
+'minutes' => '{{PLURAL:$1|$1 minüüt|$1 minüüten}}',
+'hours' => '{{PLURAL:$1|$1 stünj|$1 stünjen}}',
+'days' => '{{PLURAL:$1|$1 dai|$1 daar}}',
+'weeks' => '{{PLURAL:$1|$1 weg|$1 wegen}}',
+'months' => '{{PLURAL:$1|$1 muun|$1 muuner}}',
+'years' => '{{PLURAL:$1|$1 juar|$1 juaren}}',
+'ago' => 'föör $1',
+'just-now' => 'jüst nü',
+
+# Human-readable timestamps
+'hours-ago' => 'föör {{PLURAL:$1|ian stünj|$1 stünjen}}',
+'minutes-ago' => 'föör {{PLURAL:$1|ian minüüt|$1 minüüten}}',
+'seconds-ago' => 'föör {{PLURAL:$1|ian sekund|$1 sekunden}}',
+'monday-at' => 'Mundai am a klook $1',
+'tuesday-at' => 'Teisdai am a klook $1',
+'wednesday-at' => 'Wäärnsdai am a klook $1',
+'thursday-at' => 'Süürsdai am a klook $1',
+'friday-at' => 'Freidai am a klook $1',
+'saturday-at' => 'Saninj am a klook $1',
+'sunday-at' => 'Söndai am a klook $1',
+'yesterday-at' => 'Jister am a klook $1',
 
 # Bad image list
 'bad_image_list' => 'Formååt:
@@ -2655,21 +2942,505 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 * gpsaltitude',
 
 # Exif tags
+'exif-imagewidth' => 'Breetje',
+'exif-imagelength' => 'Hööchde',
+'exif-bitspersample' => 'Bits per klöör',
+'exif-compression' => 'Komprimiarang',
+'exif-photometricinterpretation' => 'Pixel bonk',
+'exif-orientation' => 'Perspektiiw',
+'exif-samplesperpixel' => 'Taal faan komponenten',
+'exif-planarconfiguration' => 'Dooten skak',
+'exif-ycbcrsubsampling' => 'subsampling rate faan Y bit C',
+'exif-ycbcrpositioning' => 'Y an C positjuun',
+'exif-xresolution' => 'Wairocht apliasang',
+'exif-yresolution' => 'Luadrocht apliasang',
+'exif-stripoffsets' => 'Image data location',
+'exif-rowsperstrip' => 'Taal faan rän per strimel',
+'exif-stripbytecounts' => 'Bytes per komprimiaret strimel',
+'exif-jpeginterchangeformat' => 'Offset tu JPEG SOI',
+'exif-jpeginterchangeformatlength' => 'Bytes faan JPEG-dooten',
+'exif-whitepoint' => 'White point chromaticity',
+'exif-primarychromaticities' => 'Chromaticities of primarities',
+'exif-ycbcrcoefficients' => 'Color space transformation matrix coefficients',
+'exif-referenceblackwhite' => 'Suart/witj referens ponkter',
+'exif-datetime' => "Dootem an klooktidj faan't seekrin",
+'exif-imagedescription' => "Nööm faan't bil",
+'exif-make' => 'Knipser onernemen',
+'exif-model' => 'Knipser marke/model',
+'exif-software' => 'Software',
+'exif-artist' => 'Fotogroof',
+'exif-copyright' => 'Bilrochten',
 'exif-exifversion' => 'Stant faan Exif',
+'exif-flashpixversion' => 'Flashpix-werjuun',
+'exif-colorspace' => 'Klöörenrüm',
+'exif-componentsconfiguration' => 'Enkelt komponenten',
+'exif-compressedbitsperpixel' => 'Komprimiaret bits per pixel',
+'exif-pixelydimension' => 'Bilbreetje',
+'exif-pixelxdimension' => 'Bilhööchde',
+'exif-usercomment' => 'Brüker komentaaren',
+'exif-relatedsoundfile' => 'Ferbünjen tuundatei',
+'exif-datetimeoriginal' => "Dootem an klooktidj faan't knipsin",
+'exif-datetimedigitized' => "Dootem an klooktidj faan't digitalisiarin",
+'exif-subsectime' => 'Tidjponkt faan seekrin (1/100 s)',
+'exif-subsectimeoriginal' => "Tidjponkt faan't knipsin (1/100 s)",
+'exif-subsectimedigitized' => "Tidjponkt faan't digitalisiarin (1/100 s)",
+'exif-exposuretime' => 'Belaachtangstidj',
+'exif-exposuretime-format' => '$1 sekunden ($2)',
+'exif-fnumber' => 'F numer (blend)',
+'exif-exposureprogram' => 'Belaachtangsprogram',
+'exif-spectralsensitivity' => 'Spectral sensitivity',
+'exif-isospeedratings' => 'ISO emfintelkhaid',
+'exif-shutterspeedvalue' => 'APEX shutter speed',
+'exif-aperturevalue' => 'APEX aperture',
+'exif-brightnessvalue' => 'APEX brightness',
+'exif-exposurebiasvalue' => 'APEX exposure bias',
+'exif-maxaperturevalue' => 'Gratst blend',
+'exif-subjectdistance' => "Wai tu't subjekt",
+'exif-meteringmode' => 'Meed muude',
+'exif-lightsource' => 'Laachtkwel',
+'exif-flash' => 'Laid',
+'exif-focallength' => 'Braanwidjens',
+'exif-subjectarea' => 'Rüm',
+'exif-flashenergy' => 'Laidmäächt',
+'exif-focalplanexresolution' => 'Focal plane X resolution',
+'exif-focalplaneyresolution' => 'Focal plane Y resolution',
+'exif-focalplaneresolutionunit' => 'Focal plane resolution unit',
+'exif-subjectlocation' => "Steed faan't motiif",
+'exif-exposureindex' => 'Belaachtangsindex',
+'exif-sensingmethod' => 'Meed muude',
+'exif-filesource' => 'Dateikwel',
+'exif-scenetype' => 'Scene type',
+'exif-customrendered' => 'Custom image processing',
+'exif-exposuremode' => 'Belaachtangsmuude',
+'exif-whitebalance' => 'Witjufglik',
+'exif-digitalzoomratio' => 'Digital zoom ratio',
+'exif-focallengthin35mmfilm' => 'Braanwidjens bi en 35 mm film',
+'exif-scenecapturetype' => 'Scene capture type',
+'exif-gaincontrol' => 'Scene control',
+'exif-contrast' => 'Kontrast',
+'exif-saturation' => 'Intensiteet faan klöören',
+'exif-sharpness' => 'Skarepens',
+'exif-devicesettingdescription' => 'Iinstelangen',
+'exif-subjectdistancerange' => "Wai uf faan't motiif",
+'exif-imageuniqueid' => 'Bil-ID',
+'exif-gpsversionid' => 'GPS tag werjuun',
+'exif-gpslatituderef' => 'Nuurdelk of süüdelk breetje',
+'exif-gpslatitude' => 'Geograafisk Breetje',
+'exif-gpslongituderef' => 'Uastelk of waastelk lengde',
+'exif-gpslongitude' => 'Geograafisk lengde',
+'exif-gpsaltituderef' => 'Hööchde uun ferglik mä',
+'exif-gpsaltitude' => 'Hööchde',
+'exif-gpstimestamp' => 'GPS-tidj',
+'exif-gpssatellites' => "För't meeden brükt sateliten",
+'exif-gpsstatus' => 'Receiver status',
+'exif-gpsmeasuremode' => "Muude för't meeden",
+'exif-gpsdop' => "Nauhaid faan't meeden",
+'exif-gpsspeedref' => "Ianhaid faan't faard",
+'exif-gpsspeed' => 'Faard faan a GPS-aperoot',
+'exif-gpstrackref' => "Referens för di kurs faan't faard",
+'exif-gpstrack' => "Kurs faan't faard",
+'exif-gpsimgdirectionref' => "Referens för't ütjrachtang",
+'exif-gpsimgdirection' => "Ütjrachtang faan't bil",
+'exif-gpsmapdatum' => 'Geodeetisk referens-süsteem',
+'exif-gpsdestlatituderef' => "Referens för't geograafisk breetje",
+'exif-gpsdestlatitude' => "Geograafisk breetje faan't aanj",
+'exif-gpsdestlongituderef' => "Referens för't geograafisk lengde",
+'exif-gpsdestlongitude' => "Geograafisk lengde faan't aanj",
+'exif-gpsdestbearingref' => "Referens för di kurs faan't aanj",
+'exif-gpsdestbearing' => "Kurs faan't aanj",
+'exif-gpsdestdistanceref' => "Referens för di wai tu't motiif",
+'exif-gpsdestdistance' => "Wai tu't motiif",
+'exif-gpsprocessingmethod' => 'GPS muude',
+'exif-gpsareainformation' => 'GPS rüm',
+'exif-gpsdatestamp' => 'GPS dootem',
+'exif-gpsdifferential' => 'GPS diferential korektuur',
+'exif-jpegfilecomment' => 'JPEG dateikomentaar',
+'exif-keywords' => 'Steegwurden',
+'exif-worldregioncreated' => 'Weltregiuun, huar det bil apnimen wurden as',
+'exif-countrycreated' => 'Lun, huar det bil apnimen wurden as',
+'exif-countrycodecreated' => 'ISO-code faan det lun',
+'exif-provinceorstatecreated' => 'Prowins of federaalstoot, huar det bil aonimen wurden as',
+'exif-citycreated' => 'Stääd, huar det bil apnimen wurden as',
+'exif-sublocationcreated' => 'Stäädregiuun, huar det bil apnimen wurden as',
+'exif-worldregiondest' => 'Uunwiset weltregiuun',
+'exif-countrydest' => 'Uunwiset lun',
+'exif-countrycodedest' => 'ISO-code för det uunwiset lun',
+'exif-provinceorstatedest' => 'Prowins of federaalstoot',
+'exif-citydest' => 'Uunwiset stääd',
+'exif-sublocationdest' => 'Uunwiset stäädregiuun',
+'exif-objectname' => 'Kurt tiitel',
+'exif-specialinstructions' => 'Ekstra uunwisangen',
+'exif-headline' => 'Auerskraft',
+'exif-credit' => 'Faan hoker',
+'exif-source' => 'Faan huar',
+'exif-editstatus' => 'Hüwidj bewerket',
+'exif-urgency' => 'Hü nuadag',
+'exif-fixtureidentifier' => 'Ööders wat',
+'exif-locationdest' => 'Steed üüb det bil',
+'exif-locationdestcode' => "ISO-code faan det steed üüb't bil",
+'exif-objectcycle' => "Tidj üüb a dai för't iinstelen",
+'exif-contact' => 'Kontaktdooten',
+'exif-writer' => 'Skriiwer',
+'exif-languagecode' => 'Spriak',
+'exif-iimversion' => 'IIM werjuun',
+'exif-iimcategory' => 'Kategorii',
+'exif-iimsupplementalcategory' => 'Muar kategooriin',
+'exif-datetimeexpires' => 'Ei muar tu brüken efter',
+'exif-datetimereleased' => 'Ütjden di',
+'exif-originaltransmissionref' => 'ISO-code faan det steed, huar det bil auerdraanj wurden as',
+'exif-identifier' => 'Käänang',
+'exif-lens' => 'Hün objektiif',
+'exif-serialnumber' => 'Luupen numer faan a knipser',
+'exif-cameraownername' => 'Hoker di knipser hiart',
+'exif-label' => 'Betiaknang',
+'exif-datetimemetadata' => 'Leetst feranrang faan meta-dooten',
+'exif-nickname' => 'Nööm för det bil',
+'exif-rating' => 'Wäärdaghaid (1 tu 5, 5 as best)',
+'exif-rightscertificate' => 'Rights management certificate',
+'exif-copyrighted' => 'Copyright-Status:',
+'exif-copyrightowner' => 'Bilrochten lei bi',
+'exif-usageterms' => 'Brükerreegeln',
+'exif-webstatement' => 'Online copyright statement',
+'exif-originaldocumentid' => "Iandüüdag käänang (ID) faan't dokument",
+'exif-licenseurl' => 'URL for copyright license',
+'exif-morepermissionsurl' => 'Muar lisensen',
+'exif-attributionurl' => 'Wan dü det bil brük wel, saat en ferwisang üüb:',
+'exif-preferredattributionname' => 'Wan dü det bil brük wel, nääm:',
+'exif-pngfilecomment' => 'PNG dateikomentaar',
+'exif-disclaimer' => 'Disclaimer',
+'exif-contentwarning' => 'Wäärnang',
+'exif-giffilecomment' => 'GIF dateikomentaar',
+'exif-intellectualgenre' => 'Slach faan bil',
+'exif-subjectnewscode' => 'Motiif-code',
+'exif-scenecode' => 'IPTC-code',
+'exif-event' => 'Begeebenhaid',
+'exif-organisationinimage' => 'Organisatjuun',
+'exif-personinimage' => 'Persuun',
+'exif-originalimageheight' => "Hööchde faan't bil föör't beklapen",
+'exif-originalimagewidth' => "Breetje faan't bil föör't beklapen",
+
+# Exif attributes
+'exif-compression-1' => 'Ünkomprimiaret',
+'exif-compression-2' => 'CCITT Group 3 1-Dimensional Modified Huffman run length encoding',
+'exif-compression-3' => 'CCITT Group 3 fax encoding',
+'exif-compression-4' => 'CCITT Group 4 fax encoding',
+
+'exif-copyrighted-true' => 'Mä kopiarrocht',
+'exif-copyrighted-false' => 'Saner kopiarrocht',
+
+'exif-unknowndate' => 'Ünbekäänd dootem',
+
+'exif-orientation-1' => 'Normool',
+'exif-orientation-2' => 'Wairocht speegelt',
+'exif-orientation-3' => 'Am 180° dreid',
+'exif-orientation-4' => 'Luadrocht speegelt',
+'exif-orientation-5' => 'Jin a klook am 90° dreid an luadrocht speegelt.',
+'exif-orientation-6' => 'Jin a klook am 90° dreid',
+'exif-orientation-7' => 'Mä a klook am 90° dreid an luadrocht speegelt.',
+'exif-orientation-8' => 'Mä a klook am 90° dreid',
+
+'exif-planarconfiguration-1' => 'Grööw formaat',
+'exif-planarconfiguration-2' => 'Planaar formaat',
+
+'exif-colorspace-65535' => 'Ei kalibriaret',
+
+'exif-componentsconfiguration-0' => 'as ei diar',
+
+'exif-exposureprogram-0' => 'ei bekäänd',
+'exif-exposureprogram-1' => 'Manuel',
+'exif-exposureprogram-2' => 'Normool program',
+'exif-exposureprogram-3' => 'Tidjautomaatik',
+'exif-exposureprogram-4' => 'Blendenautomaatik',
+'exif-exposureprogram-5' => 'Kreatiifprogram mä jip skarepens',
+'exif-exposureprogram-6' => 'Aktjuunsprogram mä kurt belaachtangstidj',
+'exif-exposureprogram-7' => 'Portree-muude mä skarepen föörgrünj',
+'exif-exposureprogram-8' => 'Loonskap-muude mä skarepen bääftgrünj',
+
+'exif-subjectdistance-value' => '$1 meetern',
+
+'exif-meteringmode-0' => 'Ünbekäänd',
+'exif-meteringmode-1' => 'Madel',
+'exif-meteringmode-2' => 'Skarep maden',
+'exif-meteringmode-3' => 'Spot',
+'exif-meteringmode-4' => 'Multi-Spot',
+'exif-meteringmode-5' => 'Münster',
+'exif-meteringmode-6' => 'Bil-dial',
+'exif-meteringmode-255' => 'Ööder',
+
+'exif-lightsource-0' => 'Ünbekäänd',
+'exif-lightsource-1' => 'Dailaacht',
+'exif-lightsource-2' => 'Fluorescent',
+'exif-lightsource-3' => 'Konstlaacht',
+'exif-lightsource-4' => 'Laid',
+'exif-lightsource-9' => 'Smok weder',
+'exif-lightsource-10' => 'Betaanj',
+'exif-lightsource-11' => 'Skaad',
+'exif-lightsource-12' => 'Daylight fluorescent (D 5700 – 7100K)',
+'exif-lightsource-13' => 'Day white fluorescent (N 4600 – 5400K)',
+'exif-lightsource-14' => 'Cool white fluorescent (W 3900 – 4500K)',
+'exif-lightsource-15' => 'White fluorescent (WW 3200 – 3700K)',
+'exif-lightsource-17' => 'Standard light A',
+'exif-lightsource-18' => 'Standard light B',
+'exif-lightsource-19' => 'Standard light C',
+'exif-lightsource-24' => 'ISO studio konstlaacht',
+'exif-lightsource-255' => 'Ööder laacht',
+
+# Flash modes
+'exif-flash-fired-0' => 'Nään laid',
+'exif-flash-fired-1' => 'Laid ütjliaset',
+'exif-flash-return-0' => 'Laid schüürt nian dooten',
+'exif-flash-return-2' => 'Nään laid tu sen',
+'exif-flash-return-3' => 'Laid wiar tu sen',
+'exif-flash-mode-1' => 'Mä twüngen laid',
+'exif-flash-mode-2' => 'Laid ufsteld',
+'exif-flash-mode-3' => 'Automaatik',
+'exif-flash-function-1' => 'Nään laid mögelk',
+'exif-flash-redeye-1' => 'Nian ruad uugen muude',
+
+'exif-focalplaneresolutionunit-2' => 'tol',
+
+'exif-sensingmethod-1' => 'Ei bekäänd',
+'exif-sensingmethod-2' => 'One-chip color area sensor',
+'exif-sensingmethod-3' => 'Two-chip color area sensor',
+'exif-sensingmethod-4' => 'Three-chip color area sensor',
+'exif-sensingmethod-5' => 'Color sequential area sensor',
+'exif-sensingmethod-7' => 'Trilinear sensor',
+'exif-sensingmethod-8' => 'Color sequential linear sensor',
+
+'exif-filesource-3' => 'Digitaal stunbilknipser',
+
+'exif-scenetype-1' => 'Normool',
+
+'exif-customrendered-0' => 'Normool',
+'exif-customrendered-1' => 'Brüker-iinsteld',
+
+'exif-exposuremode-0' => 'Automaatisk belaachtang',
+'exif-exposuremode-1' => 'Manuel belaachtang',
+'exif-exposuremode-2' => 'Belaachtangsrä',
+
+'exif-whitebalance-0' => 'Automaatisk',
+'exif-whitebalance-1' => 'Manuel',
+
+'exif-scenecapturetype-0' => 'Normool',
+'exif-scenecapturetype-1' => 'Loonskap',
+'exif-scenecapturetype-2' => 'Portree',
+'exif-scenecapturetype-3' => 'Naacht',
+
+'exif-gaincontrol-0' => 'Nian',
+'exif-gaincontrol-1' => 'Letjet ap',
+'exif-gaincontrol-2' => 'Föl ap',
+'exif-gaincontrol-3' => 'Letjet deel',
+'exif-gaincontrol-4' => 'Föl deel',
+
+'exif-contrast-0' => 'Normool',
+'exif-contrast-1' => 'Swaak',
+'exif-contrast-2' => 'Stark',
+
+'exif-saturation-0' => 'Normool',
+'exif-saturation-1' => 'Letjet',
+'exif-saturation-2' => 'Huuch',
+
+'exif-sharpness-0' => 'Normool',
+'exif-sharpness-1' => 'Swaak',
+'exif-sharpness-2' => 'Stark',
+
+'exif-subjectdistancerange-0' => 'Ünbekäänd',
+'exif-subjectdistancerange-1' => 'Makro',
+'exif-subjectdistancerange-2' => 'Nai bi',
+'exif-subjectdistancerange-3' => 'Widj wech',
+
+# Pseudotags used for GPSLatitudeRef and GPSDestLatitudeRef
+'exif-gpslatitude-n' => 'Nuurdelk breetje',
+'exif-gpslatitude-s' => 'Süüdelk breetje',
+
+# Pseudotags used for GPSLongitudeRef and GPSDestLongitudeRef
+'exif-gpslongitude-e' => 'Uastelk lengde',
+'exif-gpslongitude-w' => 'Waastelk lengde',
+
+# Pseudotags used for GPSAltitudeRef
+'exif-gpsaltitude-above-sealevel' => '{{PLURAL:$1|Ään meeter|$1 meetern}} auer siapeegel',
+'exif-gpsaltitude-below-sealevel' => '{{PLURAL:$1|Ään meeter|$1 meetern}} oner siapeegel',
+
+'exif-gpsstatus-a' => 'Measurement in progress',
+'exif-gpsstatus-v' => 'Measurement interoperability',
+
+'exif-gpsmeasuremode-2' => '2-dimensional measurement',
+'exif-gpsmeasuremode-3' => '3-dimensional measurement',
+
+# Pseudotags used for GPSSpeedRef
+'exif-gpsspeed-k' => 'km/h',
+'exif-gpsspeed-m' => 'mph',
+'exif-gpsspeed-n' => 'kn',
+
+# Pseudotags used for GPSDestDistanceRef
+'exif-gpsdestdistance-k' => 'Kilomeetern',
+'exif-gpsdestdistance-m' => 'Miilen',
+'exif-gpsdestdistance-n' => 'Siamiilen',
+
+'exif-gpsdop-excellent' => 'Auer a miaten ($1)',
+'exif-gpsdop-good' => 'Gud ($1)',
+'exif-gpsdop-moderate' => 'Madel ($1)',
+'exif-gpsdop-fair' => 'Gongt so ($1)',
+'exif-gpsdop-poor' => 'Ei so dol ($1)',
+
+'exif-objectcycle-a' => 'Bluas am maarlem',
+'exif-objectcycle-p' => 'Bluas am injem',
+'exif-objectcycle-b' => 'Eder am maarlam an am injem',
+
+# Pseudotags used for GPSTrackRef, GPSImgDirectionRef and GPSDestBearingRef
+'exif-gpsdirection-t' => 'Rochtwisin kurs',
+'exif-gpsdirection-m' => 'Magneetisk kurs',
+
+'exif-ycbcrpositioning-1' => 'Sentriaret',
+'exif-ycbcrpositioning-2' => 'Uun naiberskap',
+
+'exif-dc-contributor' => 'Bidracher faan',
+'exif-dc-coverage' => 'Spatial or temporal scope of media',
+'exif-dc-date' => 'Dootem',
+'exif-dc-publisher' => 'Ütjden faan',
+'exif-dc-relation' => 'Ferbünjen meedien',
+'exif-dc-rights' => 'Rochten',
+'exif-dc-source' => 'Meeedienkwel',
+'exif-dc-type' => 'Meedienslach',
+
+'exif-rating-rejected' => 'Turagwiset',
+
+'exif-isospeedratings-overflow' => 'Grater üs 65535',
+
+'exif-iimcategory-ace' => 'Konst, kultüür an onerhualang',
+'exif-iimcategory-clj' => 'Rocht an ferbreegen',
+'exif-iimcategory-dis' => 'Katastroofen an ünfaaler',
+'exif-iimcategory-fin' => 'Wiartskap an bedriiwer',
+'exif-iimcategory-edu' => 'Onerracht',
+'exif-iimcategory-evn' => 'Natüür an amwelt',
+'exif-iimcategory-hth' => 'Sünjhaid',
+'exif-iimcategory-hum' => 'Persöönelk intresen',
+'exif-iimcategory-lab' => 'Werk',
+'exif-iimcategory-lif' => 'Freitidj an muude',
+'exif-iimcategory-pol' => 'Politik',
+'exif-iimcategory-rel' => 'Religioon an gluuw',
+'exif-iimcategory-sci' => 'Wedenskap an technologii',
+'exif-iimcategory-soi' => 'Mäenööder',
+'exif-iimcategory-spo' => 'Sport',
+'exif-iimcategory-war' => 'Kriich, stridj an ünrau',
+'exif-iimcategory-wea' => 'Weder',
+
+'exif-urgency-normal' => 'Normool ($1)',
+'exif-urgency-low' => 'Liach ($1)',
+'exif-urgency-high' => 'Huuch ($1)',
+'exif-urgency-other' => 'Faan a brüker fäästlaanj prioriteet ($1)',
 
 # External editor support
 'edit-externally' => 'Jüdeer dåtäi ma en äkstärn prugram beårbe',
 'edit-externally-help' => '(Sii da [//www.mediawiki.org/wiki/Manual:External_editors Installationsanweisungen] for widere Informasjoon)',
 
 # 'all' in various places, this might be different for inflected languages
-'watchlistall2' => 'åle',
-'namespacesall' => 'åle',
-'monthsall' => 'åle',
+'watchlistall2' => 'aaltumaal',
+'namespacesall' => 'aaltumaal',
+'monthsall' => 'aaltumaal',
 'limitall' => 'åle',
 
+# Email address confirmation
+'confirmemail' => 'E-mail-adres gudkään',
+'confirmemail_noemail' => 'Dü heest nian gud e-mail-adres uun din [[Special:Preferences|persöönelk iinstelangen]] iindraanj.',
+'confirmemail_text' => '{{SITENAME}} ferlangt, dat dü din e-mail-adres gudkäänst, iar dü a ütjwidjet e-mail-funktjuunen brük könst. Trak üüb det fial „E-mail-code tusjüür“, am dat dü en e-mail tuschüürd feist, huar di code uun stäänt an en URL, am din adres gudtukäänen.',
+'confirmemail_pending' => 'Dü heest al en e-mail mä di e-mail-code tuschüürd füngen. Teew noch en uugenblak, det komt wel noch. Bluas wan det goorei loket, ferlang efter en neien code.',
+'confirmemail_send' => 'E-mail-code tuschüür',
+'confirmemail_sent' => 'E-mail-code as wechschüürd wurden.',
+'confirmemail_oncreate' => "En e-mail mä di e-mail-code as tu din e-mail-adres schüürd wurden. Hi as ei nuadag tu uunmeldin, oober hi woort brükt för ütjwidjet e-mail-funktjuunen uun't Wiki.",
+'confirmemail_sendfailed' => '{{SITENAME}} küd det e-mail mä di e-mail-code ei wechschüür.
+Luke noch ans, of dü det e-mail-adres rocht apskrewen heest.
+
+Di mail-server swaaret: $1',
+'confirmemail_invalid' => 'Di e-mail-code as ei gud. Ferlicht as hi tu ual.
+Ferschük det man noch ans.',
+'confirmemail_needlogin' => 'Dü skel di $1, am din e-mail-adres gudtukäänen.',
+'confirmemail_success' => 'Din e-mail-adres as gudkäänd wurden.
+Dü könst di nü [[Special:UserLogin|uunmelde]].',
+'confirmemail_loggedin' => 'Din e-mail-adres as gudkäänd wurden.',
+'confirmemail_error' => "Bi't gudkäänen faan din e-mail-adres as wat skiaf gingen.",
+'confirmemail_subject' => '[{{SITENAME}}] E-mail-adres gudkään',
+'confirmemail_body' => 'Gud dai,
+
+hoker mä det IP-adres $1 (woorskiinelk dü salew) hää det brükerkonto „$2“ bi {{SITENAME}} iinracht.
+
+Am a e-mail-funktjuunen faan {{SITENAME}} (weder) aktiif tu fun, an am seeker tu stelen, dat det brükerkonto uk würelk mä din e-mail-adres tuuphiart, gung tu detdiar ferwisang:
+
+$3
+
+Wan dü det brükerkonto *ei* iinracht hast, do gung tu detdiar ferwisang, am det gudkäänen uftubreegen:
+
+$5
+
+Didiar code täält bit $6, am a klook $7.',
+'confirmemail_body_changed' => 'Hoker mä det IP-adres $1 (woorskiinelk dü salew) hää det e-mail-adres faan det brükerkonto „$2“ bi {{SITENAME}} feranert.
+
+Am seeker tu stelen, dat det brükerkonto uk würelk di hiart, an am a e-mail-funktjuunen bi {{SITENAME}} weder uun a gang tu fun, gung tu detdiar ferwisang:
+
+$3
+
+Wan det *ei* din brükerkonto as, do gung tu detdiar ferwisang, am det gudkäänen uftubreegen:
+
+$5
+
+Didiar code täält bit $4.',
+'confirmemail_body_set' => "Hoker mä det IP-adres $1 (woorskiinelk dü salew) hää det e-mail-adres faan't brükerkonto „$2“ üüb {{SITENAME}} tu detdiar e-mail-adres amanert.
+
+Am seeker tu stelen, dat det brükerkonto würelk di hiart, an am a e-mail-funktjuunen üüb {{SITENAME}} weder uun a gang tu fun, gung tu detdiar ferwisang:
+
+$3
+
+Wan det *ei* din konto as, do gung tu detdiar ferwisang, am det gudkäänen uftubreegen:
+
+$5
+
+Didiar code täält bit $4.",
+'confirmemail_invalidated' => "Det gudkäänen faan't e-mail-adres as ufbreegen wurden.",
+'invalidateemail' => "Breeg gudkäänen faan't e-mail-adres uf",
+
+# Scary transclusion
+'scarytranscludedisabled' => '[Iinbinjen faan interwikis as ei aktiif]',
+'scarytranscludefailed' => '[Iinbinjen faan föörlaagen för $1 as skiaf gingen]',
+'scarytranscludefailed-httpstatus' => '[Ufrepen faan föörlaagen för $1 as skiaf gingen: HTTP  $2]',
+'scarytranscludetoolong' => '[URL as tu lung]',
+
+# Delete conflict
+'deletedwhileediting' => "'''Paase üüb:''' Det sidj as stregen wurden, üs dü diar jüst bi werket heest!
+Uun't [{{fullurl:{{#special:Log}}|type=delete&page={{FULLPAGENAMEE}}}} Strik-logbuk] fanjst dü di grünj för't striken. Wan dü det sidj seekerst, woort det nei uunlaanj.",
+'confirmrecreate' => "Di brüker [[User:$1|$1]] ([[User talk:$1|Diskusjuun]]) hää det sidj stregen, üs dü diar jüst bi werket heest. Di grünj wiar:
+:''$2''
+Ferseekre, dat dü det sidj würelk nei maage wel.",
+'confirmrecreate-noreason' => 'Di brüker [[User:$1|$1 ]] ([[User talk:$1|Diskusjuun]]) hää det sidj stregen, huar dü jüst bi werket heest. Ferseekre, dat dü det sidj würelk nei maage wel.',
+'recreate' => 'Nei maage',
+
+# action=purge
+'confirm_purge_button' => 'OK',
+'confirm-purge-top' => 'Det sidj ütj a cache strik?',
+'confirm-purge-bottom' => 'Maaget di cache leesag an wiset det neist werjuun uun.',
+
+# action=watch/unwatch
+'confirm-watch-button' => 'OK',
+'confirm-watch-top' => "Wel dü detdiar sidj uun't uug behual?",
+'confirm-unwatch-button' => 'OK',
+'confirm-unwatch-top' => "Wel dü detdiar sidj ei muar uun't uug behual?",
+
+# Multipage image navigation
+'imgmultipageprev' => '← leetst sidj (turag)',
+'imgmultipagenext' => 'naist sidj →',
+'imgmultigo' => 'Widjer',
+'imgmultigoto' => 'Gung tu sidj $1',
+
 # Table pager
 'ascending_abbrev' => 'ap',
 'descending_abbrev' => 'deel',
+'table_pager_next' => 'Naist sidj',
+'table_pager_prev' => 'Leetst sidj (turag)',
+'table_pager_first' => 'Iarst sidj',
+'table_pager_last' => 'Leetst sidj',
+'table_pager_limit' => 'Wise $1 iindracher per sidj',
+'table_pager_limit_label' => 'Iindracher per sidj:',
+'table_pager_limit_submit' => 'Widjer',
+'table_pager_empty' => 'Diar wiar niks',
 
 # Auto-summaries
 'autosumm-blank' => 'Det sidj as leesag maaget wurden.',
@@ -2677,25 +3448,127 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 'autoredircomment' => 'Sidj tu [[$1]] widjerfeerd',
 'autosumm-new' => 'Det sidj as nei uunlaanj wurden: "$1"',
 
+# Live preview
+'livepreview-loading' => 'Loose ...',
+'livepreview-ready' => 'Loosin ... Klaar!',
+'livepreview-failed' => 'Live-preview wul ei!
+Ferschük det üüb di normool wai.',
+'livepreview-error' => 'Küd ei ferbinj: $1 "$2".
+Ferschük det üüb di normool wai.',
+
+# Friendlier slave lag warnings
+'lag-warn-normal' => 'Feranrangen faan {{PLURAL:$1|at leetst sekund|a leetst $1 sekunden}} kön noch ei uunwiset wurd.',
+'lag-warn-high' => 'Auer det huuch dootenbeenklääst kön a feranrangen faan {{PLURAL:$1|at leetst sekund|a leetst $1 sekunden}} noch ei uunwiset wurd.',
+
+# Watchlist editor
+'watchlistedit-numitems' => "Dü heest {{PLURAL:$1|ian sidj|$1 sidjen}} uun't uug. A diskusjuunssidjen wurd ei mätääld.",
+'watchlistedit-noitems' => "Dü heest nian sidjen, diar dü uun't uug behual wel.",
+'watchlistedit-normal-title' => "List mä sidjen, diar dü uun't uug behual wel, bewerke",
+'watchlistedit-normal-legend' => "Ei muar uun't uug behual",
+'watchlistedit-normal-explain' => "Jodiar sidjen wel dü uun't uug behual. Am iindracher tu striken, kääntiakne a kaschin üüb sidj faan di iindrach an trak oner üüb „{{int:Watchlistedit-normal-submit}}“. Dü könst det list uk uun't [[Special:EditWatchlist/raw|listenformoot]] bewerke.",
+'watchlistedit-normal-submit' => 'Iindracher wechnem',
+'watchlistedit-normal-done' => '{{PLURAL:$1|Ään iindrach as|$1 iindracher san}} faan det list wechnimen wurden:',
+'watchlistedit-raw-title' => "Uun't listenformoot bewerke",
+'watchlistedit-raw-legend' => "Uun't listenformoot bewerke",
+'watchlistedit-raw-explain' => "Jodiar sidjen, diar dü uun't uug behual wel, san uun't listenformoot apskrewen. A iindracher kön räwiis stregen of ütjwidjet wurd.
+Uun arke rä mut ään iindrach stun. Wan dü klaar beest, trak oner üüb „{{int:Watchlistedit-raw-submit}}“.
+Dü könst uk det [[Special:EditWatchlist|normool sidj]] tu bewerkin nem.",
+'watchlistedit-raw-titles' => 'Iindracher:',
+'watchlistedit-raw-submit' => "List mä sidjen, diar dü uun't uug behual wel, aktualisiare",
+'watchlistedit-raw-done' => "Det list mä sidjen, diar dü uun't uug behual wel, as nü üüb di neist stant.",
+'watchlistedit-raw-added' => '{{PLURAL:$1|Ään iindrach as|$1 iindracher san}} diartu skrewen wurden:',
+'watchlistedit-raw-removed' => '{{PLURAL:$1|Ään iindrach as|$1 iindracher san}} wechnimen wurden:',
+
 # Watchlist editing tools
 'watchlisttools-view' => 'Eefterkiiklist: änringe',
 'watchlisttools-edit' => 'normåål beårbe',
 'watchlisttools-raw' => 'Listeformoot beårbe (import/äksport)',
 
+# Signatures
+'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|Diskusjuun]])',
+
 # Core parser functions
+'unknown_extension_tag' => "Ünbekäänd ''tag'' „$1“",
 'duplicate-defaultsort' => '\'\'\'Paase üüb:\'\'\' Di sortiarkai "$2" auerskraft di ual sortiarkai "$1"',
 
 # Special:Version
+'version' => 'Werjuun',
+'version-extensions' => 'Instaliaret ütjwidjangen',
+'version-specialpages' => 'Spezial-sidjen',
+'version-parserhooks' => 'Ütjwidjet parserfunktjuunen',
+'version-variables' => 'Wariaabeln',
+'version-antispam' => "''Spam''seekerangen",
+'version-skins' => 'Brükerskaker',
+'version-other' => 'Ööders wat',
+'version-mediahandlers' => 'Ütjwidjet medien-funktjuunen',
+'version-hooks' => 'Hooks',
+'version-extension-functions' => 'Ütjwidjet funktjuunen',
+'version-parser-extensiontags' => 'Parser extension tags',
+'version-parser-function-hooks' => 'Parser function hooks',
+'version-hook-name' => 'Hook nööm',
+'version-hook-subscribedby' => 'Aprepen faan',
+'version-version' => '(Werjuun $1)',
+'version-license' => 'Lisens',
+'version-poweredby-credits' => "Detheer wääbsteed werket mä '''[//www.mediawiki.org/wiki/MediaWiki/de MediaWiki]''', Copyright © 2001–$1 $2.",
+'version-poweredby-others' => 'öödern',
+'version-credits-summary' => 'Wi besoonke üs bi jodiar persuunen för hör bidracher tu [[Special:Version|MediaWiki]].',
+'version-license-info' => 'MediaWiki is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
+
+MediaWiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+You should have received [{{SERVER}}{{SCRIPTPATH}}/COPYING 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 or [//www.gnu.org/licenses/old-licenses/gpl-2.0.html read it online].',
 'version-software' => 'Instaliird software',
 'version-software-product' => 'Produkt',
 'version-software-version' => 'Färsjoon',
+'version-entrypoints' => 'URLs faan hüsdörsidjen',
+'version-entrypoints-header-entrypoint' => 'Hüsdörsidj',
+'version-entrypoints-header-url' => 'URL',
+
+# Special:Redirect
+'redirect' => 'Widjerfeerang üüb en brükersidj, sidjenwerjuun of datei.',
+'redirect-legend' => 'Widjerfeerang üüb en sidjenwerjuun of datei.',
+'redirect-summary' => 'Det spezial-sidj feert widjer üüb en brükersidj, sidjenwerjuun of datei.',
+'redirect-submit' => 'Widjer',
+'redirect-lookup' => 'Schük:',
+'redirect-value' => 'Käänang of dateinööm:',
+'redirect-user' => 'Brüker-ID',
+'redirect-revision' => 'Sidjenwerjuun',
+'redirect-file' => 'Dateinööm',
+'redirect-not-exists' => 'Wäärs ei fünjen',
 
 # Special:FileDuplicateSearch
-'fileduplicatesearch-submit' => 'Sjük',
+'fileduplicatesearch' => 'Schük dobelt datein',
+'fileduplicatesearch-summary' => 'Dobelt datein schük üüb grünjlaag faan hör hash-wäärs',
+'fileduplicatesearch-legend' => 'Dobelt datein schük',
+'fileduplicatesearch-filename' => 'Dateinööm:',
+'fileduplicatesearch-submit' => 'Schük',
+'fileduplicatesearch-info' => '$1 × $2 pixel<br />Dateigrate: $3<br />MIME-typ: $4',
+'fileduplicatesearch-result-1' => 'Diar san nian dobelt datein faan „$1“.',
+'fileduplicatesearch-result-n' => 'Det datei „$1“ hää {{PLURAL:$2|1 dobelt ütjfeerang|$2 dobelt ütjfeerangen}}.',
+'fileduplicatesearch-noresults' => 'Nian datei mä di nööm „$1“ fünjen.',
 
 # Special:SpecialPages
-'specialpages' => 'Spetsjåålside',
+'specialpages' => 'Spezial-sidjen',
+'specialpages-note' => '----
+* Normool spezial-sidjen
+* <span class="mw-specialpagerestricted">Spezial-sidjen mä tugripsrochten</span>
+* <span class="mw-specialpagecached">Spezial-sidjen uun a cache (As ferlicht ei muar aktuel.)</span>',
+'specialpages-group-maintenance' => 'Werksteedsidjen',
+'specialpages-group-other' => 'Ööder spezial-sidjen',
 'specialpages-group-login' => 'Melde di uun of skriiw di iin',
+'specialpages-group-changes' => 'Leetst feranrangen an logbuken',
+'specialpages-group-media' => 'Medien',
+'specialpages-group-users' => 'Brükern an rochten',
+'specialpages-group-highuse' => 'Flooksis brükt sidjen',
+'specialpages-group-pages' => 'Sidjen',
+'specialpages-group-pagetools' => 'Sidjenwerktjüch',
+'specialpages-group-wiki' => 'Dooten an werktjüch',
+'specialpages-group-redirects' => 'Spezial-sidjen, diar widjer feer',
+'specialpages-group-spam' => "''Spam'' werktjüch",
+
+# Special:BlankPage
+'blankpage' => 'Leesag sidj',
+'intentionallyblankpage' => 'Det sidj as mä walem leesag. Hat woort för benchmarks brükt.',
 
 # External image whitelist
 'external_image_whitelist' => " #Feranere detheer rä ei<pre>
@@ -2708,10 +3581,57 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 #Skriiw dialen faan reguleer ütjdrüker auer detheer rä. Feranere detheer rä ei</pre>",
 
 # Special:Tags
+'tags' => 'Feranrangskääntiaken',
 'tag-filter' => '[[Special:Tags|Kääntiaken]] filter:',
+'tag-filter-submit' => 'Filter',
+'tags-title' => 'Kääntiaken',
+'tags-intro' => "Det sidj wiset kääntiaken, diar för't bewerkin brükt wurd, an wat jo men.",
+'tags-tag' => 'Kääntiaken-nööm',
+'tags-display-header' => 'Nööm üüb feranrangslisten',
+'tags-description-header' => 'Widjloftag beskriiwang',
+'tags-hitcount-header' => 'Kääntiakent feranrangen',
+'tags-edit' => 'bewerke',
+'tags-hitcount' => '$1 {{PLURAL:$1|feranrang|feranrangen}}',
+
+# Special:ComparePages
+'comparepages' => 'Sidjen ferglik',
+'compare-selector' => 'Sidjenwerjuunen ferglik',
+'compare-page1' => 'Sidj 1',
+'compare-page2' => 'Sidj 2',
+'compare-rev1' => 'Werjuun 1',
+'compare-rev2' => 'Werjuun 2',
+'compare-submit' => 'Ferglik',
+'compare-invalid-title' => 'Didiar sidjennööm gongt ei.',
+'compare-title-not-exists' => 'Son sidjennööm as diar ei.',
+'compare-revision-not-exists' => 'Son werjuun as diar ei.',
+
+# Database error messages
+'dberr-header' => 'Det Wiki hää komer.',
+'dberr-problems' => 'Dää mi iarag! Det sidj hää technisk komer.',
+'dberr-again' => 'Teew en uugenblak an ferschük det noch ans.',
+'dberr-info' => '(Koon ei mä a dootenbeenk-server ferbinj: $1)',
+'dberr-usegoogle' => 'Uun a teskentidj küdst dü det mä Google ferschük.',
+'dberr-outofdate' => 'Seenk diaram, dat Google ferlicht ual dooten uunwiset.',
+'dberr-cachederror' => 'Detheer komt ütj en cache an as ferlicht ei muar aktuel.',
 
 # HTML forms
+'htmlform-invalid-input' => 'Diar as wat skiaf gingen mä din uunfraag.',
+'htmlform-select-badoption' => 'Didiar wäärs as ei tuläät.',
+'htmlform-int-invalid' => 'Didiar wäärs as nian hial taal.',
+'htmlform-float-invalid' => 'Didiar wäärs as nian taal.',
+'htmlform-int-toolow' => 'Didiar wäärs as letjer üs det minimum faan $1.',
+'htmlform-int-toohigh' => 'Didiar wäärs as grater üs det maximum faan $1.',
+'htmlform-required' => 'Di wäärs woort brükt.',
+'htmlform-submit' => 'Auerdreeg',
+'htmlform-reset' => 'Feranrangen turagsaat.',
 'htmlform-selectorother-other' => 'Oudere',
+'htmlform-no' => 'Naan',
+'htmlform-yes' => 'Ja',
+'htmlform-chosen-placeholder' => 'Schük ütj',
+
+# SQLite database support
+'sqlite-has-fts' => "Werjuun $1 mä halep för't schüken uun di hialer tekst.",
+'sqlite-no-fts' => "Werjuun $1 saner halep för't schüken uun di hialer tekst.",
 
 # New logging system
 'logentry-delete-delete' => '$1 {{Gender:$2}} hää det sidj $3 stregen',
@@ -2725,7 +3645,11 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 'logentry-suppress-revision' => '$1 {{GENDER:$2}} hää stalswigin det uunsicht feranert faan {{PLURAL:$5|ian werjuun|$5 werjuunen}} faan det sidj $3: $4',
 'logentry-suppress-event-legacy' => '$1 {{GENDER:$2}} hää stalswigin det uunsicht feranert faan logbuk iindracher üüb $3',
 'logentry-suppress-revision-legacy' => '$1 {{GENDER:$2}} hää stalswigin det uunlukin feranert faan werjuunen faan det sidj $3',
+'revdelete-content-hid' => 'Ferbürgen',
+'revdelete-summary-hid' => 'Ferbürgen tuupfaadang',
 'revdelete-uname-hid' => 'brükernoome ferstäägen',
+'revdelete-content-unhid' => 'Ei muar ferberag',
+'revdelete-summary-unhid' => 'Tuupfaadang ei muar ferberag',
 'revdelete-uname-unhid' => 'brükernoome frijääwen',
 'revdelete-restricted' => 'gränse jüle uk for administratoore',
 'revdelete-unrestricted' => 'gränse for administratoore wächnümen',
@@ -2733,13 +3657,80 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 'logentry-move-move-noredirect' => '$1 {{GENDER:$2}} hää det sidj $3 efter $4 saner widjerfeerang fersköwen.',
 'logentry-move-move_redir' => '$1 {{GENDER:$2}} hää det sidj $3 efter $4 fersköwen an diarbi en widjerfeerang auerskrewen.',
 'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2}} hää det sidj $3 efter $4 fersköwen an diarbi en widjerfeerang auerskrewen saner salew en widjerfeerang uuntuleien.',
+'logentry-patrol-patrol' => '$1 {{GENDER:$2|hää}} det werjuun $4 faan sidj $3 üs kontroliaret kääntiakent.',
+'logentry-patrol-patrol-auto' => '$1 {{GENDER:$2|hää}} det werjuun $4 faan sidj $3 automaatisk üs kontroliaret kääntiakent.',
 'logentry-newusers-newusers' => 'Brükerkonto $1 as {{GENDER:$2|iinracht}} wurden',
+'logentry-newusers-create' => 'Brükerkonto as faan $1 {{GENDER:$2|iinracht}} wurden.',
 'logentry-newusers-create2' => 'Brükerkonto $3 as faan $1 {{GENDER:$2|iinracht}} wurden',
+'logentry-newusers-byemail' => 'Brükerkonto $3 as faan $1 {{GENDER:$2|iinracht}} wurden, an det paaswurd as per e-mail tuschüürd wurden.',
 'logentry-newusers-autocreate' => 'Brükerkonto $1 as automaatisk {{GENDER:$2|iinracht}} wurden',
+'logentry-rights-rights' => '$1 {{GENDER:$2|hää}} det brükerskööl för $3 faan $4 tu $5 feranert.',
+'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|hää}} det brükerskööl för $3 feranert.',
+'logentry-rights-autopromote' => '$1 as automaatisk faan $4 tu $5 {{GENDER:$2|tuwiset}} wurden.',
 'rightsnone' => '(-)',
 
+# Feedback
+'feedback-bugornote' => 'Wan dü en technisk probleem beskriiw wel, wees so gud an skriiw [$1 am di feeler].
+Ööders könst dü uk det formulaar oner brük. Dan komentaar woort tuup mä dan brükernööm an det werjuun faan dan browser üüb det sidj „[$3 $2]“ skrewen.',
+'feedback-subject' => 'Teemo:',
+'feedback-message' => 'Mädialang:',
+'feedback-cancel' => 'Ufbreeg',
+'feedback-submit' => 'Komentaar ufsjüür',
+'feedback-adding' => 'Komentaar woort tu det sidj skrewen ...',
+'feedback-error1' => 'Feeler: Ünbekäänd API-bööd',
+'feedback-error2' => 'Feeler: Bewerkin as skiaf gingen.',
+'feedback-error3' => 'Feeler: Nian API-oonswaar',
+'feedback-thanks' => 'Föl soonk. Dan komentaar as üüb det sidj „[$2 $1]“ skrewen wurden.',
+'feedback-close' => 'Klaar',
+'feedback-bugcheck' => 'Gud! Luke noch ans efter, of det ei ferlicht en [$1 bekäänden feeler] as.',
+'feedback-bugnew' => 'Haa ik efterluket. Nei feeler melde.',
+
 # Search suggestions
-'searchsuggest-search' => 'Sjük',
+'searchsuggest-search' => 'Schük',
+'searchsuggest-containing' => 'diar banen as ...',
+
+# API errors
+'api-error-badaccess-groups' => 'Dü mutst nian datein tu detdiar Wiki huuchschüür.',
+'api-error-badtoken' => 'Intern feeler: Token as ferkiard.',
+'api-error-copyuploaddisabled' => 'Det huuchschüüren auer URL as üüb didiar server ei aktiif.',
+'api-error-duplicate' => 'Uun det Wiki {{PLURAL:$1|as al [$2 en ööder datei]|san al [$2 muar datein]}} mä detsalew banen.',
+'api-error-duplicate-archive' => 'Diar wiar al {{PLURAL:$1|[$2 ööder datei]|[$2 ööder datein]}} mä detsalew banen. {{PLURAL:$1|Hat as |Jo san}} oober stregen wurden.',
+'api-error-duplicate-archive-popup-title' => 'Dobelt {{PLURAL:$1|datei, diar al stregen wurden as|datein, diar al stregen wurden san}}.',
+'api-error-duplicate-popup-title' => 'Dobelt {{PLURAL:$1|datei|datein}}',
+'api-error-empty-file' => 'Det datei, wat dü huuchsjüürd heest, as leesag.',
+'api-error-emptypage' => 'Dü mutst nian leesag sidjen nei iinstel.',
+'api-error-fetchfileerror' => "Intern feeler: Bi't ufrepen faan det datei as wat skiaf gingen.",
+'api-error-fileexists-forbidden' => 'En datei mä di nööm „$1“ as al diar. Hat koon ei auerskrewen wurd.',
+'api-error-fileexists-shared-forbidden' => "En date mä di nööm „$1“ as al uun't gemiansoom archiif an koon ei auerskrewen wurd.",
+'api-error-file-too-large' => 'Det datei, wat dü huuchsjüürd heest, as tu grat.',
+'api-error-filename-tooshort' => 'Di dateinööm as tu kurt.',
+'api-error-filetype-banned' => 'Son slach faan datei as ei tuläät.',
+'api-error-filetype-banned-type' => '$1 {{PLURAL:$4|as nään tuläät slach faan datein|san nian tuläät slacher faan datein}}.
+{{PLURAL:$3|En tuläät slach as|Tuläät slacher san}} $2.',
+'api-error-filetype-missing' => 'Det datei, wat dü huuchschüür wel, hää nian dateiaanj.',
+'api-error-hookaborted' => 'Det feranerang, wat dü maage wulst, as ufbreegen wurden.',
+'api-error-http' => 'Intern feeler: Ferbinjang tu a server as skiaf gingen.',
+'api-error-illegal-filename' => 'Didiar dateinööm as ei tuläät.',
+'api-error-internal-error' => "Intern feeler: diar as wat skiaf gingen bi't huuchschüüren faan det datei tu det Wiki.",
+'api-error-invalid-file-key' => 'Intern feeler: Det datei as uun det tidjwiis archiif ei fünjen wurden.',
+'api-error-missingparam' => 'Intern feeler: Det uunfraag as ei hial uunkimen.',
+'api-error-missingresult' => 'Intern feeler: Küd ei luke, of det kopiarin loket hää.',
+'api-error-mustbeloggedin' => 'Dü skel di uunmelde, am datein huuchtuschüüren.',
+'api-error-mustbeposted' => 'Intern feeler: Ferkiard HTTP-muude.',
+'api-error-noimageinfo' => 'Det huuchschüüren hää loket, oober di server hää nian datei-dooten.',
+'api-error-nomodule' => 'Intern feeler: Diar as nian modul tu huuchsjüüren fäästlaanj wurden.',
+'api-error-ok-but-empty' => 'Intern feeler: Di server sait niks.',
+'api-error-overwrite' => 'Dü könst nian datei auerskriiw, wat al diar as.',
+'api-error-stashfailed' => 'Intern feeler: Di server küd nian tidjwiis datei seekre.',
+'api-error-publishfailed' => 'Intern feeler: Di server küd det tidjwiis datei ei widjer schüür.',
+'api-error-timeout' => 'Di server hää ei rochttidjag swaaret (time-out).',
+'api-error-unclassified' => 'Diar as irgentwat skiaf gingen.',
+'api-error-unknown-code' => 'Ünbekäänd feeler: „$1“',
+'api-error-unknown-error' => "Intern feeler: Bi't huuchschüüren faan det datei as wat skiaf gingen.",
+'api-error-unknown-warning' => 'Ünbekäänd wäärnang: $1',
+'api-error-unknownerror' => 'Ünbekäänd feeler: „$1“',
+'api-error-uploaddisabled' => 'Uun detdiar Wiki könst dü niks huuchschüür.',
+'api-error-verification-error' => 'Det datei, wat dü huuchschüür wel, as uunstaken of hää en ferkiard dateiaanj.',
 
 # Durations
 'duration-seconds' => '$1 {{PLURAL:$1|sekund|sekunden}}',
@@ -2752,4 +3743,7 @@ Deeraw föliende sidelinke önj dåtseelwi ra definiire ütnååme, önj di kont
 'duration-centuries' => '$1 {{PLURAL:$1|juarhunert|juarhunerten}}',
 'duration-millennia' => '$1 {{PLURAL:$1|juardüüsen|juardüüsenen}}',
 
+# Image rotation
+'rotate-comment' => 'Bil am $1 {{PLURAL:$1|graad}} mä a klook dreid.',
+
 );
index 5e37b7d..82e2b23 100644 (file)
@@ -834,11 +834,11 @@ Pode ser que xa cambiase o seu contrasinal ou que solicitase un novo contrasinal
 
 # Special:PasswordReset
 'passwordreset' => 'Restablecer o contrasinal',
-'passwordreset-text' => 'Encha este formulario para restablecer o seu contrasinal.',
+'passwordreset-text-one' => 'Encha este formulario para restablecer o seu contrasinal.',
+'passwordreset-text-many' => '{{PLURAL:$1|Insira un dos datos para restablecer o seu contrasinal.}}',
 'passwordreset-legend' => 'Restablecer o contrasinal',
 'passwordreset-disabled' => 'O restablecemento de contrasinais está desactivado neste wiki.',
 'passwordreset-emaildisabled' => 'As funcións do correo electrónico están desactivadas neste wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Introduza un dos datos a continuación}}',
 'passwordreset-username' => 'Nome de usuario:',
 'passwordreset-domain' => 'Dominio:',
 'passwordreset-capture' => 'Quere ollar o correo electrónico?',
@@ -1083,6 +1083,7 @@ Este non deu ningunha explicación.',
 Semella que foi borrada.',
 'edit-conflict' => 'Conflito de edición.',
 'edit-no-change' => 'A súa edición foi ignorada dado que non fixo ningún cambio no texto.',
+'postedit-confirmation' => 'Gardouse a súa edición.',
 'edit-already-exists' => 'Non se pode crear a nova páxina.
 Esta xa existe.',
 'defaultmessagetext' => 'Texto predeterminado',
index a248e0d..5bb714f 100644 (file)
@@ -16,6 +16,7 @@
  * @author MaxSem
  * @author Melancholie
  * @author MichaelFrey
+ * @author Nemo bis
  * @author Purodha
  * @author Remember the dot
  * @author Spacebirdy
@@ -653,10 +654,8 @@ Villicht hesch Dyy Passwort scho gänderet oder e nej temporär Passwort aagford
 
 # Special:PasswordReset
 'passwordreset' => 'Passwort zruggsetze',
-'passwordreset-text' => 'Bitte des Formular uusfille, ass De E-Mail e Erinnerig zue dr Aamäldeinformatione vu Dyym Benutzerkonto iberchunnsch.',
 'passwordreset-legend' => 'Passwort zrucksetze',
 'passwordreset-disabled' => 'S Zrucksetze vu Passwerter isch in däm Wiki deaktiviert wore.',
-'passwordreset-pretext' => '{{PLURAL:$1||Gib eis vu däne Daten aa}}',
 'passwordreset-username' => 'Benutzername:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Die E-Mail aaluege?',
index daefa62..0f5594c 100644 (file)
@@ -148,6 +148,8 @@ $digitTransformTable = array(
 
 $digitGroupingPattern = "##,##,###";
 
+$linkTrail = '/^((?:[a-z]|ક્|ખ્|ગ્|ઘ્|ચ્|છ્|જ્|ઝ્|ટ્|ઠ્|ડ્|ઢ્|ણ્|ત્|થ્|દ્|ધ્|ન્|પ્|ફ્|બ્|ભ્|મ્|ય્|ર્|લ્|વ્|સ્|શ્|ષ્|હ્|ળ્|ક્ષ્|જ્ઞ્|અ|આ|ઇ|ઈ|ઉ|ઊ|એ|ઐ|ઓ|ઔ|અં|અઃ|અઁ|ઍ|ઑ|ઋ|ઁ|઼|।|્|ા|િ|ી|ુ|ૂ|ે|ૈ|ો|ૌ|ં|ઃ|ઁ|ૅ|ૉ|ૃ)+)(.*)$/sDu';
+
 $messages = array(
 # User preference toggles
 'tog-underline' => 'કડીઓની નીચે લીટી (અંડરલાઇન) ઉમેરો:',
@@ -257,6 +259,18 @@ $messages = array(
 'oct' => 'ઓકટો',
 'nov' => 'નવે',
 'dec' => 'ડિસે',
+'january-date' => 'જાન્યુઆરી $1',
+'february-date' => 'ફેબ્રુઆરી $1',
+'march-date' => 'માર્ચ $1',
+'april-date' => 'એપ્રિલ $1',
+'may-date' => 'મે $1',
+'june-date' => 'જુન $1',
+'july-date' => 'જુલાઈ $1',
+'august-date' => 'ઓગસ્ટ $1',
+'september-date' => 'સપ્ટેમ્બર $1',
+'october-date' => 'ઓક્ટોબર $1',
+'november-date' => 'નવેમ્બર $1',
+'december-date' => 'ડિસેમ્બર $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|શ્રેણી|શ્રેણીઓ}}',
@@ -724,11 +738,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'પાસવર્ડ રીસેટ કરો',
-'passwordreset-text' => 'તમારો પાસવર્ડ બદલવા માટે આ ફોર્મ પૂરુ કરો.',
 'passwordreset-legend' => 'પાસવર્ડ રીસેટ કરો',
 'passwordreset-disabled' => 'આ વિકી પર પાસવર્ડ રીસેટ કરવા પર પ્રતિબંધ છે.',
 'passwordreset-emaildisabled' => 'આ વિકિ પર ઇમેઇલ સગવડ બંધ છે.',
-'passwordreset-pretext' => '{{PLURAL: $1| | એક નીચે માહિતીના ટુકડાઓ દાખલ}}',
 'passwordreset-username' => 'સભ્ય નામ:',
 'passwordreset-domain' => 'ડોમેઈન:',
 'passwordreset-capture' => 'પરિણામી ઈ મેલ જોવો છે ?',
@@ -2197,8 +2209,8 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'notvisiblerev' => 'અન્ય સભ્ય દ્વારા થયેલું સંપાદન ભૂંસી નખાયું છે.',
 'watchnochange' => 'તમારા દ્વારા નિરીક્ષિત પાના આપેલ સમય ગાળામાં ફેરફારીત થયા',
 'watchlist-details' => 'ચર્ચાનાં પાનાં ન ગણતા {{PLURAL:$1|$1 પાનું|$1 પાનાં}} ધ્યાનસૂચીમાં છે.',
-'wlheader-enotif' => '*ઈ-મેલ સૂચના પદ્ધતિ સક્રીય કરાઈ.',
-'wlheader-showupdated' => "*તમારી મુલાકાત લીધા પછી બદલાયેલા પાના  '''ઘાટા''' અક્ષરો વડે દર્શાવ્યાં છે",
+'wlheader-enotif' => 'મેલ સૂચના પદ્ધતિ સક્રીય કરાઈ.',
+'wlheader-showupdated' => "તમારી છેલ્લી મુલાકાત પછી બદલાયેલાં પાના  '''ઘાટા''' અક્ષરો વડે દર્શાવ્યાં છે.",
 'watchmethod-recent' => 'હાલમાં ફેરફાર થયેલ પાનાની ચકાસણી જારી',
 'watchmethod-list' => 'હાલમાં થયેલ ફેરફાર માટે નીરીક્ષીત પાના તપાસાય છે',
 'watchlistcontains' => 'તમારી ધ્યાનસૂચીમાં $1 {{PLURAL:$1|પાનું|પાનાં}} છે.',
@@ -3800,14 +3812,14 @@ $5
 'logentry-delete-delete' => '$1 દ્વારા પાનું $3 {{GENDER:$2|દૂર કરવામાં આવ્યું}}',
 'logentry-delete-restore' => '$1 {{GENDER:$2|પુનઃસંગ્રહ}} પાનું $3',
 'logentry-delete-event' => '$1 એ {{PLURAL:$5|લૉગ ઘટના|$5 લૉગ ઘટનાઓ}} ની દ્રશ્યતા $3 પર {{GENDER:$2|બદલેલ}} છે: $4',
-'logentry-delete-revision' => '$1 બદલાઈ ના દૃશ્યતા {{PLURAL: $5 | સુધારણા | $5 આવૃત્તિઓ}} $3 પાનાં પર: $4',
-'logentry-delete-event-legacy' => '$1 બદલાઈ $3 પર લોગ ઘટનાઓ દૃશ્યતા',
-'logentry-delete-revision-legacy' => '$1 બદલાઈ પાનાં પર આવૃત્તિઓની દૃશ્યતા $3',
+'logentry-delete-revision' => '$1 {{GENDER:$2|બદલેલ}} બદલાઈ ના દૃશ્યતા {{PLURAL: $5 | સુધારણા | $5 આવૃત્તિઓ}} $3 પાનાં પર: $4',
+'logentry-delete-event-legacy' => '$1 {{GENDER:$2|બદલેલ}} બદલાઈ $3 પર લોગ ઘટનાઓ દૃશ્યતા',
+'logentry-delete-revision-legacy' => '$1 {{GENDER:$2|બદલેલ}} બદલાઈ પાનાં પર આવૃત્તિઓની દૃશ્યતા $3',
 'logentry-suppress-delete' => '$1 એ $3 પાનું {{GENDER:$2|દબાવ્યું}}',
-'logentry-suppress-event' => '$1  (છાની માહિતી) બદલાઈ {{PLURAL: $5 | લોગ ઘટના | $5 લોગ}} ની દ્રશ્યતા $3 : $4',
-'logentry-suppress-revision' => '$1 બદલાઈ ના દૃશ્યતા {{PLURAL: $5 | આવૃત્તિ એ | $5 આવૃત્તિઓ}}: $4 $3 પાનાં પર',
-'logentry-suppress-event-legacy' => '$1 ગુપ્ત બદલો $3 પર લોગ ઘટનાઓ દૃશ્યતા',
-'logentry-suppress-revision-legacy' => '$1 ગુપ્ત બદલાઈ પાનાં પર આવૃત્તિઓની દૃશ્યતા $3',
+'logentry-suppress-event' => '$1  (છાની માહિતી) {{GENDER:$2|બદલેલ}} બદલાઈ {{PLURAL: $5 | લોગ ઘટના | $5 લોગ}} ની દ્રશ્યતા $3 : $4',
+'logentry-suppress-revision' => '$1 àª\9bાનà«\80 àª®àª¾àª¹àª¿àª¤à«\80 {{GENDER:$2|બદલà«\87લ}} àª¬àª¦àª²àª¾àª\88 àª¨àª¾ àª¦à«\83શà«\8dયતા {{PLURAL: $5 | àª\86વà«\83તà«\8dતિ àª\8f | $5 àª\86વà«\83તà«\8dતિàª\93}}: $4 $3 àªªàª¾àª¨àª¾àª\82 àªªàª°',
+'logentry-suppress-event-legacy' => '$1 ગુપ્ત {{GENDER:$2|બદલેલ}} બદલો $3 પર લોગ ઘટનાઓ દૃશ્યતા',
+'logentry-suppress-revision-legacy' => '$1 ગુપ્ત {{GENDER:$2|બદલેલ}} બદલાઈ પાનાં પર આવૃત્તિઓની દૃશ્યતા $3',
 'revdelete-content-hid' => 'સામગ્રી છુપાયેલા',
 'revdelete-summary-hid' => 'ફેરફાર સાર છુપાયેલા',
 'revdelete-uname-hid' => 'વપરાશકર્તા નામ છુપાયેલા',
@@ -3816,7 +3828,7 @@ $5
 'revdelete-uname-unhid' => 'વપરાશકર્તા નામ છુપાવેલ નથીં',
 'revdelete-restricted' => 'પ્રબઁધકોના ફેરફાર કરવા પર પ્રતિબંધ મુકાયો',
 'revdelete-unrestricted' => 'પ્રબંધકોના ફેરફાર કરવા પર પ્રતિબંધ હટાવાયો.',
-'logentry-move-move' => '$1એ પાના $3ને $4 પર ખસેડ્યું',
+'logentry-move-move' => '$1એ {{GENDER:$2|ખસેડાયું }} પાના $3ને $4 પર ખસેડ્યું',
 'logentry-move-move-noredirect' => '$1એ દિશાનિર્દેશન છોડ્યા વગર પાના $3ને $4 પર વાળ્યું',
 'logentry-move-move_redir' => '$1એ દિશાનિર્દેશન કરીને પાના $3ને $4 પર ખસેડ્યું',
 'logentry-move-move_redir-noredirect' => '$1એ દિશાનિર્દેશન કરીને પાના $3ને $4 પર વાળ્યું પણ પાછળ દિશાનિર્દેશન છોડ્યું નહી',
index 205a178..adbc5cc 100644 (file)
@@ -569,11 +569,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => '重設密碼',
-'passwordreset-text' => '完成邇隻表格以重置汝嘅密碼。',
 'passwordreset-legend' => '重置密码',
 'passwordreset-disabled' => '邇隻維基上已禁止矣重設密碼。',
 'passwordreset-emaildisabled' => '電子郵件功能在此 wiki 上已禁用。',
-'passwordreset-pretext' => '{{PLURAL:$1||輸入下列其中一隻}}',
 'passwordreset-username' => '用戶名:',
 'passwordreset-domain' => '域名:',
 'passwordreset-capture' => '查看生成嘅電子郵件係無?',
@@ -1369,18 +1367,18 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'deletereasonotherlist' => '其它理由',
 
 # Rollback
-'rollback' => '編寫轉頭',
-'rollback_short' => '轉頭',
+'rollback' => '編寫轉頭',
+'rollback_short' => '轉頭',
 'rollbacklink' => '打轉頭',
-'rollbackfailed' => '無法轉頭',
+'rollbackfailed' => '無法轉頭',
 'cantrollback' => '編寫無法打轉頭;最後嘅貢獻者人本文嘅唯一作者。',
 'alreadyrolled' => 'Mò-fap fî-fu̍k yù [[User:$2|$2]] ([[User talk:$2|thó-lun]]) chin-hàng ke [[$1]] ke chui-heu phiên-si̍p; khì-thâ ngìn yí-kîn phiên-siá fe̍t-he fî-fu̍k liáu ke-hong. Chui-heu phiên-si̍p-chá: [[User:$3|$3]] ([[User talk:$3|Thó-lun]])。',
 'editcomment' => "Phiên-siá sot-mìn he: \"''\$1''\"。",
 'revertpage' => 'Fî-fu̍k yù [[Special:Contributions/$2|$2]] ([[User talk:$2|tui-fa]]) ke phiên-cho; kiên-kói fì-fu̍k [[User:$1|$1]] ke chui-heu yit-ke pán-pún',
 
 # Edit tokens
-'sessionfailure' => '汝嘅登會話好像有問題;
-為到防止會話劫持,邇個操作已經分取消。
+'sessionfailure' => '汝嘅登會話好像有問題;
+為到防止會話劫持,邇次操作已經畀取消。
 請轉到先前嘅頁面,重新載入邇頁面,然後重試。',
 
 # Protect
index 64691f6..51d83f5 100644 (file)
@@ -20,6 +20,7 @@
  * @author Rotemliss
  * @author YaronSh
  * @author ערן
+ * @author פדיחה
  * @author שומבלע
  * @author תומר ט
  */
@@ -793,7 +794,7 @@ $2',
 'createacct-yourpasswordagain' => 'אימות הסיסמה',
 'createacct-yourpasswordagain-ph' => 'יש להקליד את הסיסמה שנית',
 'remembermypassword' => 'שמירת הכניסה שלי בדפדפן הזה (ל{{PLURAL:$1|יום אחד|יומיים|־$1 ימים}} לכל היותר)',
-'userlogin-remembermypassword' => '×\9c×\94ש×\90×\99ר ×\90×\95ת×\99 ×\9e×\97×\95×\91ר',
+'userlogin-remembermypassword' => '×\9c×\96×\9b×\95ר ×©× ×\9bנסת×\99',
 'userlogin-signwithsecure' => 'שימוש בחיבור מאובטח',
 'securelogin-stick-https' => 'המשך שימוש ב־HTTPS אחרי הכניסה',
 'yourdomainname' => 'המתחם שלך:',
@@ -830,7 +831,7 @@ $2',
 'createacct-captcha' => 'בדיקת אבטחה',
 'createacct-imgcaptcha-ph' => 'יש להקליד את הטקסט המופיע למעלה',
 'createacct-submit' => 'יצירת החשבון',
-'createacct-benefit-heading' => '×\90ת ×\94×\90תר {{SITENAME}} ×\99×\95צר×\99×\9d ×\90נש×\99×\9d ×\9b×\9e×\95×\9a.',
+'createacct-benefit-heading' => '×\90נש×\99×\9d ×\9b×\9e×\95×\9a ×\99×\95צר×\99×\9d ×\90ת {{SITENAME}}.',
 'createacct-benefit-body1' => '{{PLURAL:$1|עריכה|עריכות}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|דף|דפים}}',
 'createacct-benefit-body3' => '{{PLURAL:$1|תורם|תורמים}} לאחרונה',
@@ -935,11 +936,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'איפוס סיסמה',
-'passwordreset-text' => 'מלאו טופס זה כדי לאפס את הסיסמה.',
 'passwordreset-legend' => 'איפוס סיסמה',
 'passwordreset-disabled' => 'איפוסי סיסמה בוטלו באתר ויקי זה.',
 'passwordreset-emaildisabled' => 'שירותי הדוא"ל בוטלו באתר ויקי זה.',
-'passwordreset-pretext' => '{{PLURAL:$1||הקלידו אחד מפריטי המידע למטה}}',
 'passwordreset-username' => 'שם משתמש:',
 'passwordreset-domain' => 'תחום:',
 'passwordreset-capture' => 'לצפות בדוא"ל הנשלח?',
@@ -1177,6 +1176,7 @@ $2
 נראה שהוא נמחק.',
 'edit-conflict' => 'התנגשות עריכה.',
 'edit-no-change' => 'המערכת התעלמה מעריכתכם, כיוון שלא נעשה שינוי בטקסט.',
+'postedit-confirmation' => 'עריכתך נשמרה.',
 'edit-already-exists' => 'לא ניתן ליצור דף חדש.
 הוא כבר קיים.',
 'defaultmessagetext' => 'טקסט ההודעה המקורי',
index a5b13c8..7b884dd 100644 (file)
@@ -22,6 +22,7 @@
  * @author MayaSimFan
  * @author Meno25
  * @author Mvrban
+ * @author Nemo bis
  * @author Roberta F.
  * @author SpeedyGonsales
  * @author Tivek
@@ -833,10 +834,8 @@ Možda ste već uspješno promijenili Vašu lozinku ili ste zatražili novu priv
 
 # Special:PasswordReset
 'passwordreset' => 'Ponovno postavi lozinku',
-'passwordreset-text' => 'Ispunite ovaj obrazac da biste dobili e-mail podsjetnik o vašim detaljima računa.',
 'passwordreset-legend' => 'Poništi lozinku',
 'passwordreset-disabled' => 'Poništavanje lozinke je onemogućeno na ovom wikiju.',
-'passwordreset-pretext' => '{{PLURAL:$1||Unesite jedan od dijelova podataka u nastavku}}',
 'passwordreset-username' => 'Suradničko ime:',
 'passwordreset-domain' => 'Domena:',
 'passwordreset-capture' => 'Pogledati krajnju poruku?',
index ebec077..156f504 100644 (file)
@@ -11,6 +11,7 @@
  * @author J budissin
  * @author Kaganer
  * @author Michawiki
+ * @author Nemo bis
  * @author Shirayuki
  * @author Tchoř
  * @author Tlustulimu
@@ -682,10 +683,8 @@ Snano sy swoje hesło hižo wuspěšnje změnił abo nowe nachwilne hesło poža
 
 # Special:PasswordReset
 'passwordreset' => 'Hesło wróćo stajić',
-'passwordreset-text' => 'Wupjelń tutón formular, zo by swoje hesło anulował.',
 'passwordreset-legend' => 'Hesło wróćo stajić',
 'passwordreset-disabled' => 'Wróćostajenje hesłow je so na  tutym wikiju znjemóžniło.',
-'passwordreset-pretext' => '{{PLURAL:$1||Zapodaj deleka jedne ze slědowacych datowych podaćow}}',
 'passwordreset-username' => 'Wužiwarske mjeno:',
 'passwordreset-domain' => 'Domena:',
 'passwordreset-capture' => 'E-mejlku sej wobhladać?',
@@ -908,6 +907,7 @@ Njeje žane wujasnjenje podała.',
 Zda so, zo je hîžo wušmórnjena.',
 'edit-conflict' => 'Wobdźěłanski konflikt.',
 'edit-no-change' => 'Waše wobdźěłanje bu ignorowane, dokelž tekst njebu zm,ěnjeny.',
+'postedit-confirmation' => 'Twoja změna je so składowała.',
 'edit-already-exists' => 'Njebě móžno nowu stronu wutworić.
 Eksistuje hižo.',
 'defaultmessagetext' => 'Standardny tekst zdźělenki',
index 03661da..2c2803c 100644 (file)
@@ -27,6 +27,7 @@
  * @author Kaganer
  * @author KossuthRad
  * @author Misibacsi
+ * @author Nemo bis
  * @author R-Joe
  * @author Samat
  * @author Sucy
@@ -588,7 +589,7 @@ További információkat a [[Special:Version|verzióinformációs lapon]] talál
 'youhavenewmessages' => '$1 a vitalapodon! ($2 külön is megtekintheted.)',
 'newmessageslink' => 'új üzenet vár',
 'newmessagesdifflink' => 'az utolsó üzenetet',
-'youhavenewmessagesfromusers' => "'''$2''' kaptál {{PLURAL:$3|egy|$3}} szerkesztőtől $1!",
+'youhavenewmessagesfromusers' => '$2 kaptál {{PLURAL:$3|egy|$3}} szerkesztőtől $1!',
 'youhavenewmessagesmanyusers' => '$1ed van több szerkesztőtől ($2).',
 'newmessageslinkplural' => 'a vitalapodon',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|Új üzenetet|Új üzeneteket}}',
@@ -872,11 +873,9 @@ Lehet, hogy már sikeresen megváltoztattad a jelszavad, vagy pedig időközben
 
 # Special:PasswordReset
 'passwordreset' => 'Jelszó törlése',
-'passwordreset-text' => 'Az alábbi űrlap kitöltése után egy jelszóemlékeztető e-mailt kapsz a fiókod adataival.',
 'passwordreset-legend' => 'Új jelszó kérése',
 'passwordreset-disabled' => 'Új jelszó kérése nem engedélyezett ezen a wikin.',
 'passwordreset-emaildisabled' => 'Az e-mail funkció le van tiltva ezen a wikin.',
-'passwordreset-pretext' => '{{PLURAL:$1||Írd be az alábbi adatok egyikét}}',
 'passwordreset-username' => 'Felhasználónév:',
 'passwordreset-domain' => 'Tartomány:',
 'passwordreset-capture' => 'Meg szeretnéd nézni az elkészült üzenetet?',
index 4aade05..0a0bde6 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Chaojoker
+ * @author Nemo bis
  * @author Pandukht
  * @author Reedy
  * @author Ruben Vardanyan (me@RubenVardanyan.com)
@@ -784,7 +785,6 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Վերականգնել գաղտնաբառը',
-'passwordreset-text' => 'Լրացրեք ձևը՝ էլ-փոստով ձեր տվյալների մասին հիշեցում ստանալու համար։',
 'passwordreset-legend' => 'Վերականգնել գաղտնաբառը',
 'passwordreset-disabled' => 'Գաղտնաբառի վերականգնումը այս վիքիում թույլատրված չէ։',
 'passwordreset-username' => 'Մասնակցի անուն՝',
index c244a2b..cbdabaf 100644 (file)
@@ -11,6 +11,7 @@
  * @author Kaganer
  * @author Malafaya
  * @author McDutchie
+ * @author Nemo bis
  * @author Reedy
  * @author Yfdyh000
  * @author לערי ריינהארט
@@ -725,11 +726,9 @@ Es possibile que tu ha ja cambiate tu contrasigno o requestate un nove contrasig
 
 # Special:PasswordReset
 'passwordreset' => 'Reinitialisar contrasigno',
-'passwordreset-text' => 'Completa iste formulario pro reinitialisar tu contrasigno.',
 'passwordreset-legend' => 'Reinitialisar contrasigno',
 'passwordreset-disabled' => 'Le reinitialisation de contrasignos ha essite disactivate in iste wiki.',
 'passwordreset-emaildisabled' => 'Le functionalitate de e-mail ha essite disactivate in iste wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Entra un del elementos de datos hic infra}}',
 'passwordreset-username' => 'Nomine de usator:',
 'passwordreset-domain' => 'Dominio:',
 'passwordreset-capture' => 'Vider le e-mail resultante?',
index 40a442a..31e5f15 100644 (file)
@@ -903,11 +903,9 @@ Anda mungkin telah berhasil mengganti kata sandi Anda atau telah meminta kata sa
 
 # Special:PasswordReset
 'passwordreset' => 'Setel ulang sandi',
-'passwordreset-text' => 'Lengkapi formulir ini untuk menyetel ulang kata sandi.',
 'passwordreset-legend' => 'Setel ulang sandi',
 'passwordreset-disabled' => 'Penyetelan ulang sandi telah dimatikan di wiki ini.',
 'passwordreset-emaildisabled' => 'Fitur surel telah dinonaktifkan pada wiki ini.',
-'passwordreset-pretext' => '{{PLURAL:$1||Masukkan salah satu data di bawah ini}}',
 'passwordreset-username' => 'Nama pengguna:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Lihat surel yang dihasilkan?',
@@ -1146,6 +1144,7 @@ tanpa ada keterangan.',
 Halaman kemungkinan telah dihapus.',
 'edit-conflict' => 'Konflik penyuntingan.',
 'edit-no-change' => 'Suntingan diabaikan, karena Anda tidak melakukan perubahan atas teks.',
+'postedit-confirmation' => 'Suntingan Anda tersimpan.',
 'edit-already-exists' => 'Tidak dapat membuat halaman baru
 karena telah ada.',
 'defaultmessagetext' => 'Teks baku',
@@ -1153,7 +1152,7 @@ karena telah ada.',
 'invalid-content-data' => 'Data konten tidak sah',
 'content-not-allowed-here' => 'Konten "$1" tidak diizinkan di halaman [[$2]]',
 'editwarning-warning' => 'Meninggalkan halaman ini dapat menyebabkan semua perubahan yang belum tersimpan hilang.
-Jika Anda telah masuk log, Anda dapat mematikan peringatan ini lewat "{{int:prefs-editing}}" pada halaman preferensi Anda.',
+Jika Anda telah masuk log, Anda dapat mematikan peringatan ini lewat bagian "Penyuntingan" pada halaman preferensi Anda.',
 
 # Content models
 'content-model-wikitext' => 'teks wiki',
index 3f2b7e3..d19a789 100644 (file)
@@ -45,9 +45,9 @@ $messages = array(
 'tog-usenewrc' => 'Dagiti grupo a panagbaliw babaen ti panid kadagiti kinaudi a panagbaliw ken banbantayan  (masapul ti JavaScript)',
 'tog-numberheadings' => 'Automatiko a pabilangan dagiti paulo',
 'tog-showtoolbar' => 'Ipakita ti ramit ti panag-urnos (masapul ti JavaScript)',
-'tog-editondblclick' => 'Urnosen dagiti panid iti mamindua a panagtakla (masapul ti JavaScript)',
-'tog-editsection' => 'Pakabaelan ti paset a panag-urnos babaen kadagiti [urnosen] a  panilpo',
-'tog-editsectiononrightclick' => 'Pakabaelan ti paset  a panag-urnos babaen ti panagtakla ti kanawan kadagiti paset a titulo (masapul ti JavaScript)',
+'tog-editondblclick' => 'Urnosen dagiti panid iti mamindua a panagpindut (masapul ti JavaScript)',
+'tog-editsection' => 'Pakabaelan ti paset a panag-urnos babaen kadagiti silpo nga [urnosen]',
+'tog-editsectiononrightclick' => 'Pakabaelan ti paset  a panag-urnos babaen ti panagpindut ti kanawan kadagiti paset a titulo (masapul ti JavaScript)',
 'tog-showtoc' => 'Ipakita ti tabla dagiti linaon (para kadagiti panid nga adda ti ad-adu ngem dagiti 3 a paulo)',
 'tog-rememberpassword' => 'Laglagipem ti iseserrekko iti daytoy a pagbasabasa (iti kapaut nga $1 {{PLURAL:$1|aldaw|al-aldaw}})',
 'tog-watchcreations' => 'Agnayon kadagiti panid a pinartuatko ken papeles nga inpanko idiay listaan ti bambantayak',
@@ -142,6 +142,18 @@ $messages = array(
 'oct' => 'Okt',
 'nov' => 'Nob',
 'dec' => 'Dis',
+'january-date' => 'Enero $1',
+'february-date' => 'Pebrero $1',
+'march-date' => 'Marso $1',
+'april-date' => 'Abril $1',
+'may-date' => 'Mayo $1',
+'june-date' => 'Hunio $1',
+'july-date' => 'Hulio $1',
+'august-date' => 'Agosto $1',
+'september-date' => 'Septiembre $1',
+'october-date' => 'Oktubre $1',
+'november-date' => 'Nobiembre $1',
+'december-date' => 'Disiembre $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategoria|Katkategoria}}',
@@ -452,9 +464,18 @@ Laglagipem a sumagmamano a pampanid ti mabalin a nakaparang latta a kasla nakase
 'welcomecreation-msg' => 'Naaramiden ti pakabilangam.
 Dimo liplipatan a sukatan dagiti kakaykayatam idiay [[Special:Preferences|{{SITENAME}} kakaykayatan]].',
 'yourname' => 'Nagan ti agar-aramat:',
+'userlogin-yourname' => 'Nagan ti agar-aramat',
+'userlogin-yourname-ph' => 'Ikabil ti naganmo nga agar-aramat',
 'yourpassword' => 'Kontrasenias:',
+'userlogin-yourpassword' => 'Kontrasenias',
+'userlogin-yourpassword-ph' => 'Ikabilmo ti kontrasenias',
+'createacct-yourpassword-ph' => 'Agikabil ti kontrasenias',
 'yourpasswordagain' => 'Uliten ti kontrasenias:',
+'createacct-yourpasswordagain' => 'Pasingkedan ti kontrasenias',
+'createacct-yourpasswordagain-ph' => 'Ikabil manen ti kontrasenias',
 'remembermypassword' => 'Laglagipem ti iseserrekko iti daytoy a pagbasabasa (para iti kapaut iti $1 {{PLURAL:$1|nga aldaw|nga al-aldaw}})',
+'userlogin-remembermypassword' => 'Taginayonennak nga iserrek',
+'userlogin-signwithsecure' => 'Usaren ti natalged a pannakaikapet',
 'securelogin-stick-https' => 'Agyanka a nakasilpo iti HTTPS kalpasan no nakastrekka',
 'yourdomainname' => 'Ti bukodmo a pagturayan:',
 'password-change-forbidden' => 'Saanmo a mabalin ti mangbaliw kadagiti kontrasenias iti daytoy a wiki.',
@@ -467,18 +488,38 @@ Dimo liplipatan a sukatan dagiti kakaykayatam idiay [[Special:Preferences|{{SITE
 'logout' => 'Rummuar',
 'userlogout' => 'Rummuar',
 'notloggedin' => 'Saan a nakastrek',
+'userlogin-noaccount' => 'Awan ti pakabilangam?',
+'userlogin-joinproject' => 'Tumipon {{SITENAME}}',
 'nologin' => "Awan kadi pay ti pakabilangam? '''$1'''.",
 'nologinlink' => 'Agaramid ti pakabilangan',
-'createaccount' => 'Agaramid ti pakabilangan',
+'createaccount' => 'Agaramiden ti pakabilangan',
 'gotaccount' => "Addaanka kadin ti pakabilangam? '''$1'''.",
 'gotaccountlink' => 'Sumrek',
-'userlogin-resetlink' => 'Nalipatam dagiti salaysay ti pagserrek mo?',
+'userlogin-resetlink' => 'Nalipatam dagiti salaysay ti pagserrekmo?',
+'userlogin-resetpassword-link' => 'Iyasentar manen ti kontrasenias',
+'helplogin-url' => 'Help:Panagserrek',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Tulong iti panagserrek]]',
+'createacct-join' => 'Ikabil ti pakaammom dita baba.',
+'createacct-emailrequired' => 'Esurat a pagtaengan',
+'createacct-emailoptional' => 'Esurat a pagtaengan (pagpilian)',
+'createacct-email-ph' => 'Ikabil ti esurat a pagtaengam',
 'createaccountmail' => 'Agusar ti maysa a temporario a pugto a kontrasenias ken ipatulod idiay esurat a pagtaengan a nainaganan dita baba',
+'createacct-realname' => 'Pudno a nagan (pagpilian)',
 'createaccountreason' => 'Rason:',
+'createacct-reason' => 'Rason',
+'createacct-reason-ph' => 'Apay nga agparpartuatka manen ti pakabilangam',
+'createacct-captcha' => 'Panagkita ti pannakatalinaay',
+'createacct-imgcaptcha-ph' => 'Ikabil ti testo a makitam dita ngato',
+'createacct-submit' => 'Partuatem ti pakabilangam',
+'createacct-benefit-heading' => 'Ti {{SITENAME}} ket inar-aramid babaen ti tattao a kasla kenka.',
+'createacct-benefit-body1' => '{{PLURAL:$1|nga inurnos|nga inur-urnos}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|a panid|a pampanid}}',
+'createacct-benefit-body3' => 'nga agdama a {{PLURAL:$1|nagparawad|nagparparawad}}',
 'badretype' => 'Saan nga agpada dagiti impanmo a kontrasenias.',
 'userexists' => 'Maus-usaren ti nagan a kayatmo.
 Pangngaasi nga agpilika ti sabali a nagan.',
 'loginerror' => 'Biddut ti sumrek',
+'createacct-error' => 'Biddut a panagpartuat ti pakabilangan',
 'createaccounterror' => 'Saan a makaaramid ti pakabilangan: $1',
 'nocookiesnew' => 'Naaramid ti pakabilangan ti agar-aramat, ngem saanka a nakastrek.
 Ti {{SITENAME}} ket agususar kadagiti "galietas" tapno maiserrek dagiti agaramat.
@@ -566,7 +607,7 @@ Tapno malpaska a makastrek, nasken a mangikabilka ti baro a kontrasenias ditoy:'
 'newpassword' => 'Baro a kontrasenias:',
 'retypenew' => 'Imakinilya manen ti baro a kontrasenias:',
 'resetpass_submit' => 'Ikabil ti kontrasenias ken sumrek',
-'resetpass_success' => 'Nagballigi a nabaliwan ti kontrasenias mo! 
+'resetpass_success' => 'Nagballigi a nabaliwan ti kontraseniasmo! 
 </br>
 Iserrek kan...',
 'resetpass_forbidden' => 'Saan a masukatan dagiti kontrasenias',
@@ -576,13 +617,13 @@ Iserrek kan...',
 'resetpass-wrong-oldpass' => 'Imbalido ti temporario wenno agdama a kontrasenias.
 Mabalin a nagballigi ti panagsukatmo ti kontrasenias wenno nagkiddaw ti baro a temporario a kontrasenias.',
 'resetpass-temp-password' => 'Temporario a kontrasenias:',
+'resetpass-abort-generic' => 'Ti panagsukat ti kontrasenias ket pinasardeng babaen ti pagpaatiddog.',
 
 # Special:PasswordReset
 'passwordreset' => 'Ipasubli ti kontrasenias',
-'passwordreset-text' => 'Lippasem daytoy a porma tapno maidisso manen ti bukodmo a kontrasenias.',
 'passwordreset-legend' => 'Ipasubli ti kontrasenias',
 'passwordreset-disabled' => 'Nabaldado dagiti panagisubli ti kontrasenias iti daytoy a wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Ikabil ti maysa a piraso ti datos dita baba}}',
+'passwordreset-emaildisabled' => 'Dagiti langa ti esurat ket nabaldado iti daytoy a wiki.',
 'passwordreset-username' => 'Nagan ti agar-aramat:',
 'passwordreset-domain' => 'Pagturayan:',
 'passwordreset-capture' => 'Kitaem ti nagbanagan ti esurat?',
@@ -612,7 +653,7 @@ agtuloykan nga agusar ti daan a kontraseniasmo.',
 Temporario a kontrasenias: $2',
 'passwordreset-emailsent' => 'Ti maysa nga esurat ti panangidisso manen ti kontrasenias ket naipatuloden.',
 'passwordreset-emailsent-capture' => 'Ti maysa nga esurat ti panangidisso manen ti kontrasenias ket naipatuloden, a napaikita dita baba.',
-'passwordreset-emailerror-capture' => 'Ti maysa nga esurat ti panangidisso manen ti kontrasenias ket naaramiden, a napaikita dita baba, ngem napaay a napaitulod iti agar-aramat: $1',
+'passwordreset-emailerror-capture' => 'Naaramid ti maysa nga esurat a panangyasentar manen ti kontrasenias, a napaikita dita baba, ngem ti panangitulod kenni {{GENDER:$2|agar-aramat}} ket napaay: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'Sukatan ti esurat a pagtaengan',
@@ -832,6 +873,7 @@ Awan ti intedna a palawag.',
 Kasla met naikkaten.',
 'edit-conflict' => 'Adda kasinnungat ti panag-urnos.',
 'edit-no-change' => 'Ti inurnosmo ket saan a naikaskaso, ngamin ket awan ti nasukatan a testo.',
+'postedit-confirmation' => 'Ti inurnosmo ket naidulinen.',
 'edit-already-exists' => 'Saan a makaaramid ti baro a panid.
 Adda met daytoyen.',
 'defaultmessagetext' => 'Kasisigud a testo ti mensahe',
@@ -873,7 +915,7 @@ Dagitoy a panangipalawag ket naikkaten.",
 '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 gaputa adda dagiti nakisinnungat a patingnga a naurnos.',
-'undo-norev' => 'Saan a maibabawi ti naurnos ngamin ket awan met daytoy wenno mabalin a naikkat.',
+'undo-norev' => 'Saan a maibabawi ti naurnos ngamin ket awan daytoy wenno mabalin a naikkaten.',
 'undo-summary' => 'Ibabawi ti $1 a binaliwan babaen ni [[Special:Contributions/$2|$2]] ([[User talk:$2|tungtungan]])',
 
 # Account creation failure
@@ -1127,6 +1169,7 @@ Padasem a  pasarunuan ti panagbiruk mo ti ''all:'' tapno birukem amin a nagyan (
 'searchdisabled' => 'Ti panagbiruk iti {{SITENAME}} ket nabaldado.
 Mabalin mo ti agbiruk idiay Google tattan.
 Laglagipem laeng a dagiti pagsurotan nagyan ti {{SITENAME}} ket baka baak.',
+'search-error' => 'Adda maysa a biddut  napasamak bayat nga agbirbiruk:$1',
 
 # Preferences page
 'preferences' => 'Kakaykayatan',
@@ -1274,6 +1317,7 @@ Ti esurat a pagtaengam ket saan a maipakita kadagiti agar-aramat nga agkontak ke
 'userrights-notallowed' => 'Awan ti pammalubos ti pakabilangam a mangted iti kakaberngan ti agar-aramat.',
 'userrights-changeable-col' => 'Dagiti grupo a mabalinmo a baliwan',
 'userrights-unchangeable-col' => 'Dagiti grupo a dimo mabalin a baliwan',
+'userrights-conflict' => 'Suppiat ti karbengan ti agar-aramat! Pangngaasi nga ipakatmo manen dagiti sinuksukatam.',
 
 # Groups
 'group' => 'Grupo:',
@@ -1872,7 +1916,7 @@ Tattan ket naibaw-ing idiay [[$2]].',
 'ncategories' => '$1 {{PLURAL:$1|a kategoria|kadagiti kategoria}}',
 'ninterwikis' => '$1 {{PLURAL:$1|interwiki|dagiti interwiki}}',
 'nlinks' => '$1 {{PLURAL:$1|a panilpo|kadagiti panilpo}}',
-'nmembers' => '$1 {{PLURAL:$1|a kameng|kadagiti kameng}}',
+'nmembers' => '$1 {{PLURAL:$1|a kameng|kamkameng}}',
 '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}}',
@@ -2095,8 +2139,8 @@ Dagiti masakbayan a panagsukat iti daytoy a panid ken dagiti mainaig a tungtunga
 'notvisiblerev' => 'Ti panagbalbaliw ti sabali nga agar-aramat ket naikkaten',
 '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 esurat.',
-'wlheader-showupdated' => "Dagiti panid a nasukatan manipud ti kinaudi a panagsarungkarmo ket naipakita iti '''napuskol'''",
+'wlheader-enotif' => 'Napakabaelan ti panangipakaammo ti esurat.',
+'wlheader-showupdated' => "Dagiti panid a nasukatanen 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' => 'Ti listaan ti bambantayam ket aglaon ti $1 {{PLURAL:$1|a panid|a pampanid}}.',
@@ -2684,6 +2728,8 @@ Pangngaasi a bisitaen ti [//www.mediawiki.org/wiki/Localisation Lokalisasion ti
 'thumbnail-more' => 'Padakkelen',
 'filemissing' => 'Mapukpukaw ti papeles',
 'thumbnail_error' => 'Biddut ti panagaramid ti bassit nga imahen: $1',
+'thumbnail_error_remote' => 'Biddut a mensahe manipud ti $1: 
+$2',
 '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',
@@ -2980,11 +3026,25 @@ No usarem daytoy, baka makompromiso ti sistema.",
 'minutes' => '{{PLURAL:$1|$1 minuto|$1 minutos}}',
 'hours' => '{{PLURAL:$1|$1 oras$1 oras}}',
 'days' => '{{PLURAL:$1|$1 aldaw|$1 al-aldaw}}',
+'weeks' => '{{PLURAL:$1|$1 a lawas|$1 a law-lawas}}',
 'months' => '{{PLURAL:$1|$1 a bulan|$1 a bulbulan}}',
 'years' => '{{PLURAL:$1|$1 a tawen|$1 a tawtawen}}',
 'ago' => '$1 nagtapos',
 'just-now' => 'tatta laeng',
 
+# Human-readable timestamps
+'hours-ago' => '$1 nga {{PLURAL:$1|oras|or-oras}} idi ugma',
+'minutes-ago' => '$1 a {{PLURAL:$1|minuto|minutos}} idi ugma',
+'seconds-ago' => '$1 a {{PLURAL:$1|segundo|seg-segundo}} idi ugma',
+'monday-at' => 'Lunes idiay $1',
+'tuesday-at' => 'Martes idiay $1',
+'wednesday-at' => 'Mierkoles idiay $1',
+'thursday-at' => 'Huebes idiay $1',
+'friday-at' => 'Biernes idiay $1',
+'saturday-at' => 'Sabado idiay $1',
+'sunday-at' => 'Dominggo idiay $1',
+'yesterday-at' => 'Idi kalman idiay $1',
+
 # Bad image list
 'bad_image_list' => 'Ti kinabuklan ket kas iti sumaganad:
 
@@ -3604,6 +3664,18 @@ Naka-awatka koman ti [{{SERVER}}{{SCRIPTPATH}}/COPYING kopia iti GNU Sapasap a
 'version-entrypoints-header-entrypoint' => 'Pagserrekan a puntos',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => 'Ibaw-ing babaen ti papeles, agar-aramat, wenno ID ti panagbaliw',
+'redirect-legend' => 'Ibaw-ing iti papeles wenno panid',
+'redirect-summary' => 'Daytoy nga espesial a panid ket maibaw-ing iti papeles (iti nagan ti papeles), ti panid (iti ID ti panagbaliw), wenno ti panid ti agar-aramat (iti numeriko nga ID ti agar-aramat).',
+'redirect-submit' => 'Inkan',
+'redirect-lookup' => 'Kitaen:',
+'redirect-value' => 'Pateg:',
+'redirect-user' => 'ID ti agar-aramat',
+'redirect-revision' => 'Panagbaliw ti panid',
+'redirect-file' => 'Nagan ti papeles',
+'redirect-not-exists' => 'Saan a nabirukan ti pateg',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Agbiruk kadagiti duplikado a papeles',
 'fileduplicatesearch-summary' => 'Agbiruk kadagiti duplikado a papeles a naibasta kadagiti "hash" a kuwenta.',
@@ -3694,6 +3766,9 @@ Daytoy a pagsaadan ket agdadama ti teknikal a pagrigrigatan.',
 'htmlform-submit' => 'Ited',
 'htmlform-reset' => 'Ibabawi ti sinukatan',
 'htmlform-selectorother-other' => 'Sabali',
+'htmlform-no' => 'Saan',
+'htmlform-yes' => 'Wen',
+'htmlform-chosen-placeholder' => 'Agpili ti pagpilian',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 adda ti suporta ti napno a testo ti panagbiruk',
@@ -3719,7 +3794,7 @@ 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' => 'Ni $1 ket {{GENDER:$2|inyalisna}}ti panid $3 idiay $4',
+'logentry-move-move' => 'Ni $1 ket {{GENDER:$2|inyalisna}} ti panid $3 idiay $4',
 'logentry-move-move-noredirect' => 'Ni $1 ket {{GENDER:$2|inyalisna}} ti panid ti $3 idiay $4 a saan a nangibati ti baw-ing',
 'logentry-move-move_redir' => 'Ni $1 ket {{GENDER:$2|inyalisna}} ti panid ti $3 idiay $4 nga adda iti maysa a baw-ing',
 'logentry-move-move_redir-noredirect' => 'Ni $1 ket {{GENDER:$2|inyalisna}} ti panid ti $3 idiay $4 nga adda iti maysa a baw-ing a saan a nangibati ti baw-ing',
index 6ef6b04..27d7950 100644 (file)
@@ -315,10 +315,10 @@ $messages = array(
 'october' => 'október',
 'november' => 'nóvember',
 'december' => 'desember',
-'january-gen' => 'janúars',
-'february-gen' => 'febrúars',
+'january-gen' => 'janúar',
+'february-gen' => 'febrúar',
 'march-gen' => 'mars',
-'april-gen' => 'apríls',
+'april-gen' => 'apríl',
 'may-gen' => 'maí',
 'june-gen' => 'júní',
 'july-gen' => 'júlí',
@@ -659,9 +659,18 @@ Athugaðu að sumar síður kunna að birtast líkt og þú sért ennþá skrá
 'welcomecreation-msg' => 'Aðgangurinn þinn hefur verið búinn til.
 Ekki gleyma að breyta [[Special:Preferences|{{SITENAME}} stillingunum]] þínum.',
 'yourname' => 'Notandanafn:',
+'userlogin-yourname' => 'Notandanafn',
+'userlogin-yourname-ph' => 'Skrifaðu inn notendanafnið þitt',
 'yourpassword' => 'Lykilorð:',
+'userlogin-yourpassword' => 'Lykilorð',
+'userlogin-yourpassword-ph' => 'Skrifaðu niður lykilorðið þitt',
+'createacct-yourpassword-ph' => 'Skrifaðu niður lykilorð',
 'yourpasswordagain' => 'Endurrita lykilorð:',
+'createacct-yourpasswordagain' => 'Staðfestu lykilorðið',
+'createacct-yourpasswordagain-ph' => 'Sláðu inn lykilorðið aftur',
 'remembermypassword' => 'Muna innskráninguna mína í þessum vafra (í allt að $1 {{PLURAL:$1|dag|daga}})',
+'userlogin-remembermypassword' => 'Muna innskráningu mína',
+'userlogin-signwithsecure' => 'Nota örugga tengingu',
 'securelogin-stick-https' => 'Halda öllum samskiptum áfram yfir HTTPS eftir að þú skráir þig inn',
 'yourdomainname' => 'Þitt lén:',
 'password-change-forbidden' => 'Þú getur ekki breytt lykilorðum á þessum wiki.',
@@ -674,18 +683,34 @@ Ekki gleyma að breyta [[Special:Preferences|{{SITENAME}} stillingunum]] þínum
 'logout' => 'Útskráning',
 'userlogout' => 'Útskrá',
 'notloggedin' => 'Ekki innskráð(ur)',
+'userlogin-noaccount' => 'Áttu ekki aðgang?',
 'nologin' => "Ekki með aðgang? '''$1'''.",
 'nologinlink' => 'Stofnaðu aðgang',
 'createaccount' => 'Nýskrá',
 'gotaccount' => "Nú þegar með notandanafn? '''$1'''.",
 'gotaccountlink' => 'Skráðu þig inn',
 'userlogin-resetlink' => 'Gleymdir þú notendaupplýsingunum þínum?',
+'userlogin-resetpassword-link' => 'Endursetja lykilorð',
+'helplogin-url' => 'Help:Innskráning',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjálp við innskráningu]]',
+'createacct-emailrequired' => 'Netfang',
+'createacct-emailoptional' => 'Netfang (valfrjálst)',
+'createacct-email-ph' => 'Skrifaðu niður netfangið þitt',
 'createaccountmail' => 'Nota handahófsvalið bráðabirgðalykilorð og senda það á netfangið sem er tilgreint hér fyrir neðan',
+'createacct-realname' => 'Raunverulegt nafn (valfrjálst)',
 'createaccountreason' => 'Ástæða:',
+'createacct-reason' => 'Ástæða',
+'createacct-captcha' => 'Öryggis athugun',
+'createacct-imgcaptcha-ph' => 'Sláðu inn textann að ofan',
+'createacct-submit' => 'Búa til aðganginn',
+'createacct-benefit-heading' => '{{SITENAME}} er skrifuð af fólki eins og þér.',
+'createacct-benefit-body1' => '{{PLURAL:$1|breyting|breytingar}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|síða|síður}}',
 'badretype' => 'Lykilorðin sem þú skrifaðir eru ekki eins.',
 'userexists' => 'Þetta notandanafn er þegar í notkun.
 Vinsamlegast veldu þér annað.',
 'loginerror' => 'Innskráningarvilla',
+'createacct-error' => 'Stofnun aðgangs mistókst',
 'createaccounterror' => 'Gat ekki búið til notanda: $1',
 'nocookiesnew' => 'Innskráningin var búin til, en þú ert ekki skráð(ur) inn.
 {{SITENAME}} notar vefkökur til að skrá inn notendur.
@@ -777,10 +802,8 @@ Til að klára að skrá þig inn, verður þú að endurstilla lykilorðið hé
 
 # Special:PasswordReset
 'passwordreset' => 'Endurstilla lykilorð',
-'passwordreset-text' => 'Fylltu út þennan reit til að endursetja lykilorðið þitt.',
 'passwordreset-legend' => 'Endurstilla lykilorð',
 'passwordreset-disabled' => 'Lokað hefur verið fyrir að endurstilla lykilorð á þessum wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Sláðu inn einn hluta gagnanna hér fyrir neðan}}',
 'passwordreset-username' => 'Notandanafn:',
 'passwordreset-domain' => 'Lén:',
 'passwordreset-capture' => 'Sjá áminninguna sem var send í tölvupósti?',
index 741edfc..30f3c9c 100644 (file)
@@ -740,7 +740,7 @@ Non dimenticare di personalizzare le [[Special:Preferences|preferenze di {{SITEN
 'userlogin-joinproject' => 'Registrati su {{SITENAME}}',
 'nologin' => 'Non hai ancora un accesso? $1.',
 'nologinlink' => 'Registrati',
-'createaccount' => "Crea un'utenza",
+'createaccount' => 'Registrati',
 'gotaccount' => 'Hai già un accesso? $1.',
 'gotaccountlink' => 'Entra',
 'userlogin-resetlink' => 'Hai dimenticato i tuoi dati di accesso?',
@@ -852,11 +852,9 @@ La password potrebbe essere stata già cambiata, oppure potrebbe essere stata ri
 
 # Special:PasswordReset
 'passwordreset' => 'Reimposta password',
-'passwordreset-text' => 'Compila questo modulo per reimpostare la tua password.',
 'passwordreset-legend' => 'Reimposta password',
 'passwordreset-disabled' => 'La reimpostazione delle password è stata disabilitata su questa wiki',
 'passwordreset-emaildisabled' => 'Le funzionalità di posta elettronica sono state disabilitate su questa wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Immetti uno dei dati richiesti qui sotto}}',
 'passwordreset-username' => 'Nome utente:',
 'passwordreset-domain' => 'Dominio:',
 'passwordreset-capture' => 'Visualizzare il contenuto del messaggio e-mail?',
@@ -1083,14 +1081,15 @@ Non è stata restituita alcuna spiegazione.",
 Sembra che sia stata cancellata.',
 'edit-conflict' => 'Conflitto di edizione.',
 'edit-no-change' => 'La modifica è stata ignorata poiché non sono stati apportati cambiamenti al testo.',
+'postedit-confirmation' => 'La modifica è stata salvata.',
 'edit-already-exists' => 'Impossibile creare una nuova pagina.
 Esiste già.',
 'defaultmessagetext' => 'Testo predefinito',
 'content-failed-to-parse' => 'Impossibile analizzare $2 per il modello $1: $3',
 'invalid-content-data' => 'Dati contenuti non validi',
 'content-not-allowed-here' => 'Contenuto in "$1" non consentito nella pagine [[$2]]',
-'editwarning-warning' => 'Lasciare questa pagina potrebbe costarti la perdita di tutti i cambiamenti effettuati.
-Se sei loggato, puoi disattivare questo avviso nella sezione "{{int:prefs-editing}}" delle tue preferenze.',
+'editwarning-warning' => 'Lasciare questa pagina potrebbe causare la perdita di tutte le modifiche fatte.
+Se hai effettuato l\'accesso, puoi disattivare questo avviso nella sezione "Casella di modifica" delle tue preferenze.',
 
 # Content models
 'content-model-wikitext' => 'wikitesto',
index cca59d4..62d3f0d 100644 (file)
@@ -956,11 +956,11 @@ Cookieを有効にしていることを確認して、このページを再読
 
 # Special:PasswordReset
 'passwordreset' => 'パスワードの再設定',
-'passwordreset-text' => 'このフォームに記入すると、パスワードを再設定できます。',
+'passwordreset-text-one' => 'パスワードを再設定するにはこのフォームに記入してください。',
+'passwordreset-text-many' => '{{PLURAL:$1|パスワードを再設定するにはいずれかの情報を入力してください。}}',
 'passwordreset-legend' => 'パスワードの再設定',
 'passwordreset-disabled' => 'パスワードの再設定は、このウィキでは無効になっています。',
 'passwordreset-emaildisabled' => 'メール機能は、このウィキでは無効化されています。',
-'passwordreset-pretext' => '{{PLURAL:$1||下記のデータのいずれか 1 つを入力してください}}',
 'passwordreset-username' => '利用者名:',
 'passwordreset-domain' => 'ドメイン:',
 'passwordreset-capture' => 'お送りするメールの内容を表示しますか?',
@@ -1215,6 +1215,7 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 既に削除されているようです。',
 'edit-conflict' => '編集が競合。',
 'edit-no-change' => '文章が変更されていないため、編集は無視されました。',
+'postedit-confirmation' => '編集を保存しました。',
 'edit-already-exists' => '新しいページを作成できませんでした。
 そのページは既に存在します。',
 'defaultmessagetext' => '既定のメッセージ文',
index d54e8d3..9278429 100644 (file)
@@ -16,6 +16,7 @@
  * @author ITshnik
  * @author Kaganer
  * @author Malafaya
+ * @author Nemo bis
  * @author Nodar Kherkheulidze
  * @author Reedy
  * @author Sopho
@@ -737,10 +738,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'პაროლის აღდგენა',
-'passwordreset-text' => 'შეავსეთ ეს ფორმა, რათა კვლავ დააყენოთ თქვენი პაროლი.',
 'passwordreset-legend' => 'პაროლის აღდგენა',
 'passwordreset-disabled' => 'ამ ვიკიში პაროლის კვლავ დაყენების ფუნქცია გამორთულია.',
-'passwordreset-pretext' => '{{PLURAL:$1||შეიყვანეთ ქვემოთ მოცემულ მონაცემთა ერთ-ერთი ნაწილი.}}',
 'passwordreset-username' => 'მომხმარებლის სახელი:',
 'passwordreset-domain' => 'დომენი:',
 'passwordreset-capture' => 'გამოსული ელ-ფოსტის ხილვა?',
@@ -986,6 +985,7 @@ $2
 შესაძლოა, იგი წაიშალა.',
 'edit-conflict' => 'რედაქციების კონფლიქტი.',
 'edit-no-change' => 'თქვენი შესწორება არ იქნა შენახული, რადგანაც ტექსტის ცვლილება არ მოხდა.',
+'postedit-confirmation' => 'თქვენი რედაქტირება შენახულია.',
 'edit-already-exists' => 'ახალი გვერდის შექმნა არ მოხერხდა.
 ის უკვე არსებობს.',
 'defaultmessagetext' => 'შეტყობინების სტანდარტული ტექსტი',
index 108dd9e..440e4c5 100644 (file)
@@ -12,6 +12,7 @@
  * @author Daniyar
  * @author GaiJin
  * @author Kaztrans
+ * @author Nemo bis
  * @author Urhixidur
  */
 
@@ -870,10 +871,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Құпия сөзді қайтару',
-'passwordreset-text' => 'Сіздің тіркелгіңіздің баптаулары туралы хабарламаларды алу үшін мына пішінді толтырыңыз.',
 'passwordreset-legend' => 'Құпия сөзді қайтару',
 'passwordreset-disabled' => 'Бұл уикиде құпия сөзді қайтару ажыратылған.',
-'passwordreset-pretext' => '{{PLURAL:$1||Төменде көрсетілгендердің ішіндегі біреуін жазыңыз}}',
 'passwordreset-username' => 'Қатысушы аты:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Келген хатты қарау керек пе?',
index ecddae0..b3fb68f 100644 (file)
@@ -12,6 +12,7 @@
  * @author Kaganer
  * @author Kiensvay
  * @author Lovekhmer
+ * @author Nemo bis
  * @author Sovichet
  * @author T-Rithy
  * @author Thearith
@@ -368,6 +369,18 @@ $messages = array(
 'oct' => 'តុលា',
 'nov' => 'វិច្ឆិកា',
 'dec' => 'ធ្នូ',
+'january-date' => '$1 មករា',
+'february-date' => '$1 កុម្ភៈ',
+'march-date' => '$1 មីនា',
+'april-date' => '$1 មេសា',
+'may-date' => '$1 ឧសភា',
+'june-date' => '$1 មិថុនា',
+'july-date' => '$1 កក្កដា',
+'august-date' => '$1 សីហា',
+'september-date' => '$1 កញ្ញា',
+'october-date' => '$1 តុលា',
+'november-date' => '$1 វិច្ឆិកា',
+'december-date' => '$1 ធ្នូ',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|ចំណាត់ថ្នាក់ក្រុម|ចំណាត់ថ្នាក់ក្រុម}}',
@@ -840,11 +853,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'កំណត់​ពាក្យសម្ងាត់​សាឡើងវិញ',
-'passwordreset-text' => 'បំពេញសំណុំបែបបទនេះដើម្បីស្ដារពាក្យសម្ងាត់របស់អ្នក។',
 'passwordreset-legend' => 'កំណត់​ពាក្យសម្ងាត់​សាឡើងវិញ',
 'passwordreset-disabled' => 'មុខងារប្ដូរទៅពាក្យសម្ងាត់ដើមត្រូវបានបិទមិនអោយប្រើនៅលើវិគីនេះ។',
 'passwordreset-emaildisabled' => 'មុខងារអ៊ីមែលត្រូវបានបិទមិនអោយប្រើនៅលើវិគីនេះ។',
-'passwordreset-pretext' => '{{PLURAL:$1||វាយបញ្ចូលផ្នែកមួយនៃទិន្នន័យខាងក្រោម}}',
 'passwordreset-username' => 'អត្តនាម៖',
 'passwordreset-domain' => 'ដូម៉ែន៖',
 'passwordreset-capture' => 'មើលអ៊ីមែលលទ្ធផល?',
@@ -3662,7 +3673,7 @@ $5
 'htmlform-reset' => 'ធ្វើដូចដើមវិញ',
 'htmlform-selectorother-other' => 'ផ្សេងទៀត',
 'htmlform-no' => 'ទេ',
-'htmlform-yes' => 'á\9e\94á\9e¶á\9e\91â\80\8bá\9e¬á\9e\85á\9e¶á\9e\9f',
+'htmlform-yes' => 'á\9e\96á\9f\92á\9e\9aá\9e\98',
 
 # New logging system
 'logentry-delete-delete' => '$1 បានលុបទំព័រ $3 ចោល',
index 4d3f16a..0ed5744 100644 (file)
@@ -394,7 +394,7 @@ $messages = array(
 'tog-showhiddencats' => '숨은 분류 보기',
 'tog-noconvertlink' => '링크 제목 변환을 비활성화',
 'tog-norollbackdiff' => '되돌리기 후 차이를 보이지 않기',
-'tog-useeditwarning' => 'ì\88\98ì \95í\95\9c ë\82´ì\9a©ì\9d\84 ì \80ì\9e¥í\95\98ì§\80 ì\95\8aê³  í\8e¸ì§\91 ì\96\91ì\8b\9dì\9d\84 ë\8b«ê±°ë\82\98 ë\8b¤ë¥¸ í\8e\98ì\9d´ì§\80ë¡\9c ì\9d´ë\8f\99í\95  ë\95\8c ì\95\8c림',
+'tog-useeditwarning' => 'ë°\94ê¾¼ ë\82´ì\9a©ì\9d\84 ì \80ì\9e¥í\95\98ì§\80 ì\95\8aê³  í\8e¸ì§\91 í\8e\98ì\9d´ì§\80를 ë²\97ì\96´ë\82  ë\95\8c ì\95\8c림',
 
 'underline-always' => '항상',
 'underline-never' => '치지 않음',
@@ -934,11 +934,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => '비밀번호 재설정',
-'passwordreset-text' => '비밀번호를 재설정하려면 이 양식을 채워주세요.',
 'passwordreset-legend' => '비밀번호 재설정',
 'passwordreset-disabled' => '이 위키에서는 비밀번호를 재설정할 수 없습니다.',
 'passwordreset-emaildisabled' => '이 위키에서 이메일 기능이 비활성화되어 있습니다.',
-'passwordreset-pretext' => '{{PLURAL:$1||아래에 한 가지 정보를 입력하세요}}',
 'passwordreset-username' => '사용자 이름:',
 'passwordreset-domain' => '도메인:',
 'passwordreset-capture' => '발송 결과 이메일을 보시겠습니까?',
@@ -1187,14 +1185,15 @@ IP 주소는 여러 사용자가 공유할 수 있습니다.
 문서가 삭제된 것 같습니다.',
 'edit-conflict' => '편집 충돌.',
 'edit-no-change' => '문서에 어떠한 바뀜도 없기 때문에 편집은 무시되었습니다.',
+'postedit-confirmation' => '편집을 저장했습니다.',
 'edit-already-exists' => '새 문서를 만들 수 없습니다.
 문서가 이미 존재합니다.',
 'defaultmessagetext' => '기본 메세지 내용',
 'content-failed-to-parse' => '$1 모델에 대한 $2 내용을 구문 분석하는 데 실패했습니다: $3',
 'invalid-content-data' => '잘못된 내용 데이터입니다',
 'content-not-allowed-here' => '"$1" 내용은 [[$2]] 문서예 허용하지 않습니다',
-'editwarning-warning' => '이 창에서 벗어나면 저장하지 않은 편집이 모두 사라집니다.
-로그인한 경우, 환경 설정 ‘{{int:prefs-editing}}’란에서 이 경고창을 띄우지 않도록 설정할 수 있습니다.',
+'editwarning-warning' => '이 페이지에서 벗어나면 저장하지 않은 바뀜이 모두 사라집니다.
+로그인을 했다면, 환경 설정의 "편집 상자"에서 이 경고를 띄우지 않도록 설정할 수 있습니다.',
 
 # Content models
 'content-model-wikitext' => '위키텍스트',
index 880e25a..82ef0ed 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Caesius noh en Idee vum Manes
+ * @author Nemo bis
  * @author Purodha
  * @author Reedy
  * @author Rentenirer
@@ -318,6 +319,18 @@ $messages = array(
 'oct' => 'Okt',
 'nov' => 'Nov',
 'dec' => 'Dez',
+'january-date' => '$1. Jannewaa',
+'february-date' => '$1. Fääbroaa',
+'march-date' => '$1. Määz',
+'april-date' => '$1. Aprell',
+'may-date' => '$1. Mai',
+'june-date' => '$1. Juuni',
+'july-date' => '$1. Juuli',
+'august-date' => '$1. Ojoßß',
+'september-date' => '$1. Säptämber',
+'october-date' => '$1. Oktoober',
+'november-date' => '$1. Novämber',
+'december-date' => '$1. Dezämber',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Saachjrupp|Saachjruppe}}',
@@ -822,11 +835,9 @@ Do häs Der enzwesche e neu Zweschepaßwood jehollt.',
 
 # Special:PasswordReset
 'passwordreset' => 'Et Paßwoot zeröck säze',
-'passwordreset-text' => 'Donn dat Fommulaa heh ußfölle, öm e neu Paßwoot faßzelääje.',
 'passwordreset-legend' => 'Et Paßwoot zeröck säze',
 'passwordreset-disabled' => 'Et Paßwoot zeröck ze säze es heh em Wiki afjeschalldt.',
 'passwordreset-emaildisabled' => 'Heh dat Wiki määt nix met <i lang="en">e-mail</i>!',
-'passwordreset-pretext' => '{{PLURAL:$1||Jiff ein vun dä Saache heh dronger enn|}}',
 'passwordreset-username' => 'Metmaacher Name:',
 'passwordreset-domain' => 'Domähn:',
 'passwordreset-capture' => 'Wells De di <i lang="en">e-mail</i> beloore?',
@@ -2449,7 +2460,7 @@ Wann di Sigg udder ier Klaafsigg verändert weed, kütt dat af jäz heh en di Op
 'notvisiblerev' => 'Di Version es fottjeschmesse',
 'watchnochange' => 'Keine Atikkel en Dinger Oppassliss es en dä aanjezeichte Zick verändert woode.',
 'watchlist-details' => 'Do häs {{PLURAL:$1|<strong>ein</strong> Sigg|<strong>$1</strong> Sigge|<strong>kein</strong> Sigg}} en dä Oppassliss{{PLURAL:$1|, un di Klaafsigg dozo|, un de Klaafsigge dozo|}}.',
-'wlheader-enotif' => 'Et E-mail Schecke es enjeschalt.',
+'wlheader-enotif' => 'Et <i lang="en">e-mail</i> Schecke es enjeschalt.',
 'wlheader-showupdated' => 'Wann se Einer jeändert hätt, zickdäm De se et letzte Mol aanjeluurt häs, sin die Sigge <strong>extra markeet</strong>.',
 'watchmethod-recent' => 'Ben de letzte Änderunge jäje de Oppassliss am pröfe',
 'watchmethod-list' => 'Ben de Oppassliss am pröfe, noh de letzte Änderung',
@@ -3037,6 +3048,8 @@ Wenn De jenerell aan [//www.mediawiki.org/wiki/Localisation MediaWiki singe Öve
 'thumbnail-more' => 'Jrößer aanzeije',
 'filemissing' => 'Datei es nit do',
 'thumbnail_error' => 'Ene Fähler es opjetauch beim Maache vun enem Breefmarke/Thumbnail-Beldche: „$1“',
+'thumbnail_error_remote' => 'Ene Fähler es em $1 opjevalle:
+$2',
 'djvu_page_error' => 'De DjVu-Sgg es ußerhallef',
 'djvu_no_xml' => 'De XML-Date för di DjVu-Datei kunnte mer nit afrofe',
 'thumbnail-temp-create' => 'Mer kunnte kein Zweschedattei für Minnibeldscher aanlääje.',
@@ -3153,7 +3166,7 @@ Bes esu joot, un versök et noch ens.',
 'tooltip-t-recentchangeslinked' => 'De neuste Änderunge aan Sigge, wo vun heh dä Sigg uß Links drop jon',
 'tooltip-feed-rss' => 'Dä RSS-Abonnomang-Kannal (Feed) för heh di Sigg',
 'tooltip-feed-atom' => 'Dä Atom-Abonnomang-Kannal (Feed) för heh di Sigg',
-'tooltip-t-contributions' => 'Donn de Liß met Bedträch vun däm Metmaacher beloore',
+'tooltip-t-contributions' => 'Donn en Leß met dä Bedrähsch vun däm Medmaacher belooere',
 'tooltip-t-emailuser' => 'Scheck en E-Mail aan dä Metmaacher',
 'tooltip-t-upload' => 'Dateie huhlade',
 'tooltip-t-specialpages' => 'Liss met de {{int:nstab-special}}e',
@@ -4126,7 +4139,7 @@ Do sullts en [{{SERVER}}{{SCRIPTPATH}}/COPYING Kopie vun dä <i lang="en">GNU Ge
 'specialpages-group-pages' => 'Siggeliste',
 'specialpages-group-pagetools' => 'Werrekzüch för Sigge',
 'specialpages-group-wiki' => 'Werrekzüch un Daate vum Syßteem',
-'specialpages-group-redirects' => '{{int:nstab-special}}e, die ömleite, söke, un finge',
+'specialpages-group-redirects' => '{{int:nstab-special}}e, die ömleide, söhke, un fenge',
 'specialpages-group-spam' => 'Werrekzüch jäje SPÄM',
 
 # Special:BlankPage
index af55371..ba16be5 100644 (file)
@@ -759,11 +759,9 @@ Vläicht hutt Dir Äert Passwuert scho geännert oder en neit temporäert Passwu
 
 # Special:PasswordReset
 'passwordreset' => 'Passwuert zrécksetzen',
-'passwordreset-text' => 'Fëllt dëse Formulaire aus fir Äert Passwuert zréckzesetzen.',
 'passwordreset-legend' => 'Passwuert zrécksetzen',
 'passwordreset-disabled' => "D'Zerécksetze vum Passwuert ass op dëser Wiki ausgeschalt.",
 'passwordreset-emaildisabled' => "D'E-Mail-Fonctioune goufen op dëser Wiki ausgeschalt.",
-'passwordreset-pretext' => '{{PLURAL:$1||Gitt eng vun dësen Donnéeën an}}',
 'passwordreset-username' => 'Benotzernumm:',
 'passwordreset-domain' => 'Domaine:',
 'passwordreset-capture' => "D'Mail kucken?",
@@ -999,12 +997,13 @@ Hei ass den Extrait aus dem Logbuch vum Réckelen a Läsche fir déi Säit.',
 Si gouf anscheinend geläscht.",
 'edit-conflict' => 'Ännerungskonflikt.',
 'edit-no-change' => 'Är ännerung gouf ignoréiert, well Dir näischt um Text geännert hutt.',
+'postedit-confirmation' => 'Är Ännerung gouf gespäichert.',
 'edit-already-exists' => 'Déi nei Säit konnt net ugeluecht ginn, well et se scho gëtt.',
 'defaultmessagetext' => 'Standardtext',
 'invalid-content-data' => 'Donnéeë vum Inhalt sinn net valabel',
 'content-not-allowed-here' => '"$1"-Inhalt ass op der Säit [[$2]] net erlaabt',
 'editwarning-warning' => 'Wann Dir dës Säit verloosst kann dat dozou féieren datt Dir all Ännerungen, déi Dir gemaach hutt, verléiert.
-Wann Dir ageloggt sidd, kënnt Dir dës Warnung an der Sektioun "{{int:prefs-editing}}" vun Ären Astellungen ausschalten.',
+Wann Dir ageloggt sidd, kënnt Dir dës Warnung an der Sektioun "Änneren" vun Ären Astellungen ausschalten.',
 
 # Content models
 'content-model-wikitext' => 'Wikitext',
@@ -2643,6 +2642,7 @@ Si ass awer als Deel vun der Rei $2 gespaart, an dës Spär kann opgehuewe ginn.
 'proxyblocksuccess' => 'Gemaach.',
 'sorbsreason' => 'Är IP Adress steet als oppene Proxy an der schwaarzer Lëscht (DNSBL) déi vu {{SITENAME}} benotzt gëtt.',
 'sorbs_create_account_reason' => 'Är IP-Adress steet als oppene Proxy an der schwaarzer Lëscht déi op {{SITENAME}} benotzt gëtt. DIr kënnt keen neie Benotzerkont opmaachen.',
+'xffblockreason' => 'Eng IP-Adress am X-Forwarded-For-Header gouf gespaart, entweder Är oder déi vum Proxyserver deen Dir benotzt. De Grond vun der Spär war: $1',
 'cant-block-while-blocked' => 'Dir däerft keng aner Benotzer spären, esou lang wéi dir selwer gespaart sidd.',
 'cant-see-hidden-user' => "De Benotzer deen Dir versicht ze spären ass scho gespaart a verstoppt. Well Dir d'Recht ''Hideuser'' net hutt kënnt Dir dëse Benotzer net gesinn an dem Benotzer seng Spär net änneren.",
 'ipbblocked' => 'Dir kënnt keng aner Benotzer spären oder hir Spär ophiewen well Dir selwer gespaart sidd',
index 869ae20..eccb360 100644 (file)
@@ -323,6 +323,18 @@ $messages = array(
 'oct' => 'Okt',
 'nov' => 'Nov',
 'dec' => 'Des',
+'january-date' => '$1 Janoary',
+'february-date' => '$1 Febroary',
+'march-date' => '$1 Martsa',
+'april-date' => '$1 Aprily',
+'may-date' => '$1 Mey',
+'june-date' => '$1 Jiona',
+'july-date' => '$1 Jolay',
+'august-date' => '$1 Aogositra',
+'september-date' => '$1 Septambra',
+'october-date' => '$1 Oktobra',
+'november-date' => '$1 Novambra',
+'december-date' => '$1 Desambra',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Sokajy|Sokajy}}',
@@ -631,9 +643,18 @@ Fantaro fa ny endriky ny pejy sasany dia mety mitovy amin'ny endrika nahitanao a
 'welcomecreation-msg' => "Noforonina ny aontinao.
 Aza adin ny manova ny [[Special:Preferences|safidinao ro amin'i{{SITENAME}}]].",
 'yourname' => 'Solonanarana',
+'userlogin-yourname' => 'Anaram-pikambana',
+'userlogin-yourname-ph' => 'Atsofohy ny anaram-pikambanao',
 'yourpassword' => 'Tenimiafina',
+'userlogin-yourpassword' => 'Tenimiafina',
+'userlogin-yourpassword-ph' => 'Atsofohy ny tenimiafinao',
+'createacct-yourpassword-ph' => 'Manatsofoha tenimiafina',
 'yourpasswordagain' => 'Avereno ampidirina eto ny tenimiafina',
+'createacct-yourpasswordagain' => 'Hamarino ny tenimiafinao',
+'createacct-yourpasswordagain-ph' => 'Mbola ampidiro fanindroany ny tenimiafinao',
 'remembermypassword' => '{{PLURAL:}}Tadidio ny tenimiafiko (mandritry ny $1 andro fara-fahabetsany)',
+'userlogin-remembermypassword' => 'Tadidio aho',
+'userlogin-signwithsecure' => "Fidirana amin'ny alalan'ny fanohizana azo antoka",
 'securelogin-stick-https' => "Mijanona tafiditra amin'i HTTPS rehefa tafiditra",
 'yourdomainname' => 'faritra (domaine) misy anao',
 'password-change-forbidden' => "Tsy afaka manova ny tenimiafina ianao eto amin'ity wiki ity.",
@@ -647,18 +668,37 @@ Mila manaiky cookies ianao raha te hiditra amin'ny {{SITENAME}}.",
 'logout' => 'Hiala',
 'userlogout' => 'Hiala',
 'notloggedin' => 'Tsy tafiditra',
+'userlogin-noaccount' => 'Tsy manana kaonty?',
+'userlogin-joinproject' => "Midira ho mpikamban'i {{SITENAME}}",
 'nologin' => "Tsy manana solonanarana? '''$1'''.",
 'nologinlink' => 'Manokafa kaonty',
 'createaccount' => 'Hamorona kaonty',
 'gotaccount' => "Efa manana kaonty? '''$1'''.",
 'gotaccountlink' => 'Midira',
 'userlogin-resetlink' => "Adinonavo ve ny antsipihan'ny fidiranao ?",
+'userlogin-resetpassword-link' => 'Hamerina ny tenimiafinao',
+'helplogin-url' => 'Fanoroana:Fidirana',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Fanoroana mikasika ny fidirana]]',
+'createacct-join' => 'Atsofohy eo ambany ny fampahalalana momba anao.',
+'createacct-emailrequired' => 'Adiresy mailaka :',
+'createacct-emailoptional' => 'Adiresy mailaka (azo tsy atao) :',
+'createacct-email-ph' => 'Atsofohy ny adiresy mailakao',
 'createaccountmail' => "Hampiasa tenimiafina kisendra vonjimaika ary handefa azy mailaka any amin'ny adiresy nolazaina teo ambany",
+'createacct-realname' => 'Tena anarana (azo tsy atao)',
 'createaccountreason' => 'Antony :',
+'createacct-reason' => 'Antony',
+'createacct-reason-ph' => 'Inona ny antony hamoronanao kaonty hafa',
+'createacct-imgcaptcha-ph' => 'Atsofohy ny teny hitanao eo ambony',
+'createacct-submit' => 'Hamorona ny kaontinao',
+'createacct-benefit-heading' => "Olona tahaka ianao no manoratra eo amin'i {{SITENAME}}",
+'createacct-benefit-body1' => 'fanovana{{PLURAL:}}',
+'createacct-benefit-body2' => 'pejy{{PLURAL:}}',
+'createacct-benefit-body3' => 'mpandray anjara vao haingana{{PLURAL:}}',
 'badretype' => 'Tsy mitovy ny tenimiafina nampidirinao.',
 'userexists' => 'Efa miasa io anaram-pikambana natsofokao io.
 Anarana hafa safidiana.',
 'loginerror' => "Tsy fetezana teo amin'ny fidirana",
+'createacct-error' => 'Hadisoana tam-pamoronana ny kaonty',
 'createaccounterror' => 'Tsy afaka mamorona kaonty : $1',
 'nocookiesnew' => "Voasikatra ny kaontim-pikambana, fa tsy tafiditra amin'ny kaontinao ianao.
 Mampiasa cookies ny {{SITENAME}} ho an'ny fidirana amin'ny kaonty.
@@ -752,10 +792,9 @@ Mety efa nanova tenimiafina na nanontany tenimiafina miserana angamba ianao.',
 
 # Special:PasswordReset
 'passwordreset' => 'Famafana ary famerenana ny tenimiafina',
-'passwordreset-text' => 'Fenoy ity fôrmiolera ity mba hamerenana ny tenimiafinao.',
 'passwordreset-legend' => 'Famafana ary famerenana ny tenimiafina',
 'passwordreset-disabled' => "Tsy nalefa ny fanovana tenimiafina adino eto amin'ity wiki ity.",
-'passwordreset-pretext' => '{{PLURAL:$1}}Mampidira singa data eo ambany',
+'passwordreset-emaildisabled' => "Tsy avela ny fampiasana mailaka eto amin'ity wiki ity.",
 'passwordreset-username' => 'Anaram-pikambana :',
 'passwordreset-domain' => 'Vala (domain) :',
 'passwordreset-capture' => 'Hijery ny imailaka vokany ?',
@@ -1948,6 +1987,8 @@ Aza manadino manamarina raha tsy misy rohy makany amin'ny endrika hafa alohan'ny
 'disambiguations' => 'Pejy misy rohy amina pejy fanalana ny fisalasalana',
 'disambiguationspage' => 'Template:homonimia',
 
+'pageswithprop-submit' => 'Alefa',
+
 'doubleredirects' => 'Fihodinana roa',
 'double-redirect-fixed-move' => "Ity fihodinana ity, nanana ny tanjona [[$1]] novaina anarana, dia mitondra mankany amin'ny [[$2]].",
 'double-redirect-fixer' => 'Mpanitsy fihodinana',
@@ -2308,6 +2349,7 @@ Ho ann'y fanazavana fanampiny, jereo [[Special:ProtectedPages|ny lisitry ny pejy
 'prot_1movedto2' => '[[$1]] voaova anarana ho [[$2]]',
 'protect-badnamespace-title' => 'Anaran-tsehatra tsy azo arovana',
 'protect-badnamespace-text' => "Tsy afaka arovana ny pejy ao amin'io anaran-tsehatra io.",
+'protect-norestrictiontypes-title' => 'Pejy tsy azo arovana',
 'protect-legend' => 'Fanekena ny fiarovana pejy',
 'protectcomment' => 'Antony :',
 'protectexpiry' => 'Daty fitsaharana :',
@@ -2744,6 +2786,8 @@ Andana vangio ny [//www.mediawiki.org/wiki/Localisation Fandikana an'i Mediawiki
 'thumbnail-more' => 'Angedazina',
 'filemissing' => 'Tsy hita ny rakitra',
 'thumbnail_error' => 'Tsy fetezana eo am-panamboarana ilay saritapaka : $1',
+'thumbnail_error_remote' => "Hafa-kadisoana avy amin'i $1:
+$2",
 'djvu_page_error' => "Pejy DjVu any ivelan'ny fetra",
 'djvu_no_xml' => "Tsy afaka alaina ny XML ho an'ny rakitra DjVu",
 'thumbnail-temp-create' => 'Tsy afaka namorona ilay thumbnail miserana',
@@ -2799,6 +2843,10 @@ Avereno fanindroany.',
 'import-logentry-upload' => "nampiditra [[$1]] tamin'ny fampidiran-drakitra",
 'import-logentry-interwiki' => "nampiditra $1 tamin'ny transwiki",
 
+# JavaScriptTest
+'javascripttest' => 'Fanandramana JavaScript',
+'javascripttest-title' => 'Mandefa fanandramana $1',
+
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Ny pejinao',
 'tooltip-pt-anonuserpage' => "Ny pejim-bikamban'ny IP andraisanao anjara",
@@ -2861,6 +2909,7 @@ Ampesao ny topi-maso aloha no mihatiry.",
 'tooltip-compareselectedversions' => "Jereo ny fahasamihafana amin'ireo votoatin'ny pejy anankiroa ireo.",
 'tooltip-watch' => "Ampidiro amin'ny lisitry ny pejy arahinao maso ity pejy ity",
 'tooltip-watchlistedit-normal-submit' => 'Hanala ny lohateny',
+'tooltip-watchlistedit-raw-submit' => 'Hanavao ny pejy arahana',
 'tooltip-recreate' => 'Hamorona ilay pejy fanindroany raha efa voafafa izy',
 'tooltip-upload' => 'Hanomboka ny fampidirana',
 'tooltip-rollback' => "Manala ny fanovan'ny mpikambana farany nanova azy ilay asa « foano » (Rollback) .",
@@ -2895,11 +2944,34 @@ Mamerina ny version taloha io asa io ary afaka manometraka ny antony anatin'ny a
 
 # Info page
 'pageinfo-title' => 'Fampahalalana ho an\'i "$1"',
+'pageinfo-header-basic' => 'Fampahalalana fototra',
 'pageinfo-header-edits' => "Tantaran'ny fanovana",
+'pageinfo-header-restrictions' => "Fiarovana an'ilay pejy",
+'pageinfo-header-properties' => "Tondron'ilay pejy",
+'pageinfo-display-title' => 'Lohateny aseho',
+'pageinfo-length' => 'Halavam-pejy (oktety)',
+'pageinfo-article-id' => 'Laharam-pejy',
+'pageinfo-language' => "Tenin'ny votoatiny",
+'pageinfo-robot-policy' => "Satan'ny motera fikarohana",
 'pageinfo-views' => "Isan'ny jery",
 'pageinfo-watchers' => "Isan'ny mpandray anjara manaraka",
+'pageinfo-firstuser' => 'Mpamorona ilay pejy',
+'pageinfo-firsttime' => 'Daty namoronana ilay pejy',
+'pageinfo-lastuser' => 'Mpanova farany',
+'pageinfo-lasttime' => "Datin'ny fanovana farany",
 'pageinfo-edits' => "Isa manontolon'ny fanovana",
 'pageinfo-authors' => "Isa manontolon'ny mpandray anjara",
+'pageinfo-recent-edits' => "Fanovana vao haingana (natao tanatin'ny $1)",
+'pageinfo-recent-authors' => "Isa vao haingan'ny mpanoratra misongadina",
+'pageinfo-hidden-categories' => 'Sokajy nafenina{{PLURAL:$1}} ($1)',
+'pageinfo-redirectsto' => "Fihdinana mankany amin'ny",
+'pageinfo-redirectsto-info' => 'fampahalalana',
+'pageinfo-contentpage' => 'Isaina ho pejim-botoatiny',
+'pageinfo-contentpage-yes' => 'Eny',
+'pageinfo-protect-cascading-yes' => 'Eny',
+'pageinfo-category-pages' => 'Isam-pejy',
+'pageinfo-category-subcats' => "Isan'ny zana-tsokajy",
+'pageinfo-category-files' => "Isan'ny rakitra",
 
 # Patrolling
 'markaspatrolleddiff' => 'Marihana ho voamarina',
@@ -2943,6 +3015,7 @@ Raha alefanao ilay izy, mety ho simban'io renifango io ny solosainao.",
 'file-info-size-pages' => '$1 × $2 teboka, haben-drakitra : $3, karazana MIME $4, pejy $5 {{PLURAL:}}',
 'file-nohires' => "Tsy misy sary ngeza non'io",
 'svg-long-desc' => 'rakitra SVG, habe $1 × $2 teboka, habe : $3',
+'svg-long-error' => 'Rakitra SVG tsy ekena : $1',
 'show-big-image' => "Hijery ny tena haben'ny sary",
 'show-big-image-size' => '$1 × $2 teboka',
 'file-info-gif-looped' => 'miverimberina',
@@ -2968,6 +3041,16 @@ Raha alefanao ilay izy, mety ho simban'io renifango io ny solosainao.",
 'days' => 'andro{{PLURAL:$1}}',
 'ago' => '$1 lasa izay',
 
+# Human-readable timestamps
+'monday-at' => "Alatsinainy tamin'ny $1",
+'tuesday-at' => "Talata tamin'ny $1",
+'wednesday-at' => "Alarobia tamin'ny $1",
+'thursday-at' => "Alakamisy tamin'ny $1",
+'friday-at' => "Zoma tamin'ny $1",
+'saturday-at' => "Sabotsy tamin'ny $1",
+'sunday-at' => "Alahady tamin'ny $1",
+'yesterday-at' => "Omaly tamin'ny $1",
+
 # Bad image list
 'bad_image_list' => "Ity ny andrefiny :
 
index ea369ed..4ae8d18 100644 (file)
@@ -646,11 +646,9 @@ Sanak mungkin alah berhasil mangganti kato sandi Sanak atau alah maminto kato sa
 
 # Special:PasswordReset
 'passwordreset' => 'Setel ulang sandi',
-'passwordreset-text' => 'Isi formulir ko untuak maubah kato sandi.',
 'passwordreset-legend' => 'Tuka baliak kato sandi',
 'passwordreset-disabled' => 'Pangubahan kato sandi alah dimatian di wiki iko.',
 'passwordreset-emaildisabled' => 'Fitur surel alah dimatian pado wiki iko.',
-'passwordreset-pretext' => '{{PLURAL:$1||Masuakan salah satu data di bawah ko}}',
 'passwordreset-username' => 'Namo pangguno:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Caliak kaputusannyo?',
@@ -2340,6 +2338,7 @@ Sanak hanyo buliah mancaliak sumbernyo sajo',
 'file-info-png-frames' => '$1 {{PLURAL:$1|bingkai}}',
 
 # Special:NewFiles
+'imagelisttext' => "Di bawah ko adolah daftar '''$1''' {{PLURAL:$1|berkas}} baruruik dari $2.",
 'newimages-summary' => 'Laman istimewa barikuik manunjuakan daftar berkas nan tarakhia dimuek',
 'newimages-legend' => 'Panyariang',
 'newimages-label' => 'Namo berkas (atau sabagian darinyo):',
@@ -2355,20 +2354,20 @@ Sanak hanyo buliah mancaliak sumbernyo sajo',
 'minutes-abbrev' => '$1 min',
 'hours-abbrev' => '$1 j',
 'days-abbrev' => '$1 h',
-'seconds' => '{{PLURAL:$1|satu datiak|$1 datiak}}',
-'minutes' => '{{PLURAL:$1|$1 minik|$1 minik}}',
-'hours' => '$1 {{PLURAL:$1|jam}}',
-'days' => '$1 {{PLURAL:$1|ari}}',
-'weeks' => '$1 {{PLURAL:$1|minggu}}',
-'months' => '$1 {{PLURAL:$1|bulan}}',
-'years' => '{{PLURAL:$1|$1 taun}}',
+'seconds' => '{{PLURAL:$1|1 datiak|$1 datiak}}',
+'minutes' => '{{PLURAL:$1|1 minik|$1 minik}}',
+'hours' => '{{PLURAL:$1|1 jam|$1 jam}}',
+'days' => '{{PLURAL:$1|1 ari|$1 ari}}',
+'weeks' => '{{PLURAL:$1|1 minggu|$1 minggu}}',
+'months' => '{{PLURAL:$1|1 bulan|$1 bulan}}',
+'years' => '{{PLURAL:$1|1 taun|$1 taun}}',
 'ago' => '$1 nan lalu',
 'just-now' => 'sabanta ko',
 
 # Human-readable timestamps
-'hours-ago' => '$1 {{PLURAL:$1|jam}} nan lalu',
-'minutes-ago' => '$1 {{PLURAL:$1|minik}} nan lalu',
-'seconds-ago' => '$1 {{PLURAL:$1|datiak}} nan lalu',
+'hours-ago' => '{{PLURAL:$1|1 jam|$1 jam}} nan lalu',
+'minutes-ago' => '{{PLURAL:$1|1 minik|$1 minik}} nan lalu',
+'seconds-ago' => '{{PLURAL:$1|1 datiak|$1 datiak}} nan lalu',
 'monday-at' => 'Sinayan pukua $1',
 'tuesday-at' => 'Salasa pukua $1',
 'wednesday-at' => "Raba'a pukua $1",
index 899c37f..b629fba 100644 (file)
@@ -498,7 +498,7 @@ $messages = array(
 'moredotdotdot' => 'Повеќе...',
 'morenotlisted' => 'Повеќе (вон списокот)...',
 'mypage' => 'Страница',
-'mytalk' => 'Разговор',
+'mytalk' => 'разговор',
 'anontalk' => 'Разговор за оваа IP-адреса',
 'navigation' => 'Навигација',
 'and' => '&#32;и',
@@ -936,11 +936,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Менување на лозинка',
-'passwordreset-text' => 'Пополнете го образецов за да ја измените лозинката.',
 'passwordreset-legend' => 'Нова лозинка',
 'passwordreset-disabled' => 'На ова вики е оневозможено задавање на нова лозинка.',
 'passwordreset-emaildisabled' => 'Можностите за е-пошта се исклучени на ова вики',
-'passwordreset-pretext' => '{{PLURAL:$1||Подолу внесете еден податок}}',
 'passwordreset-username' => 'Корисничко име:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Да ја прикажам пораката?',
@@ -1189,6 +1187,7 @@ $2
 Веројатно е избришана.',
 'edit-conflict' => 'Спротиставеност во уредувањето.',
 'edit-no-change' => 'Вашите уредувања беа игнорирани, бидејќи не се направени промени врз текстот.',
+'postedit-confirmation' => 'Вашето уредување е зачувано.',
 'edit-already-exists' => 'Не може да се создаде нова страница.
 Истата веќе постои.',
 'defaultmessagetext' => 'Текст на пораката по основно',
@@ -1196,7 +1195,7 @@ $2
 'invalid-content-data' => 'Неважечки податоци од содржината',
 'content-not-allowed-here' => 'Содржините од моделот „$1“ не се допуштени на страницата [[$2]]',
 'editwarning-warning' => 'Ако ја напуштите страницата ќе ги изгубите сите промени кои сте ги направиле.
-Ако сте најавени, можете да го исклучите ова предупредување во одделот „{{int:prefs-editing}}“ во вашите нагодувања.',
+Ако сте најавени, можете да го исклучите ова предупредување во одделот „Уредување“ во вашите нагодувања.',
 
 # Content models
 'content-model-wikitext' => 'викитекст',
@@ -2442,7 +2441,7 @@ $1',
 'usermessage-editor' => 'Системски гласник',
 
 # Watchlist
-'watchlist' => 'Ð\9dабљудувања',
+'watchlist' => 'набљудувања',
 'mywatchlist' => 'Набљудувања',
 'watchlistfor2' => 'За $1 $2',
 'nowatchlist' => 'Немате ништо во списокот на набљудувања.',
index aa5ffac..7547019 100644 (file)
@@ -19,6 +19,7 @@
  * @author Krenair
  * @author Manjith Joseph <manjithkaini@gmail.com>
  * @author Naveen Sankar
+ * @author Nemo bis
  * @author Praveen Prakash <me.praveen@gmail.com>
  * @author Praveenp
  * @author Sadik Khalid
@@ -465,7 +466,7 @@ $messages = array(
 'category-empty' => "''ഈ വർഗ്ഗത്തിൽ താളുകളോ പ്രമാണങ്ങളോ ഇല്ല.''",
 'hidden-categories' => '{{PLURAL:$1|മറഞ്ഞിരിക്കുന്ന വർഗ്ഗം|മറഞ്ഞിരിക്കുന്ന വർഗ്ഗങ്ങൾ}}',
 'hidden-category-category' => 'മറഞ്ഞിരിക്കുന്ന വർഗ്ഗങ്ങൾ',
-'category-subcat-count' => '{{PLURAL:$2|à´\88 à´µàµ¼à´\97àµ\8dà´\97à´¤àµ\8dതിനàµ\81 à´¤à´¾à´´àµ\86 à´¨àµ½à´\95ിയിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´\92à´°àµ\81 à´\89പവർà´\97àµ\8dà´\97à´\82 à´®à´¾à´¤àµ\8dരമാണàµ\81à´³àµ\8dളതàµ\8d.|à´\88 à´µàµ¼à´\97àµ\8dà´\97à´¤àµ\8dതിനàµ\8d ആകെ $2 ഉപവർഗ്ഗങ്ങൾ ഉള്ളതിൽ {{PLURAL:$1|ഒരു ഉപവർഗ്ഗം|$1 ഉപവർഗ്ഗങ്ങൾ}}, താഴെക്കൊടുത്തിരിക്കുന്നു.}}',
+'category-subcat-count' => '{{PLURAL:$2|à´\88 à´µàµ¼à´\97àµ\8dà´\97à´¤àµ\8dതിൽ à´¤à´¾à´´àµ\86 à´¨àµ½à´\95ിയിരിà´\95àµ\8dà´\95àµ\81à´¨àµ\8dà´¨ à´\92à´°àµ\81 à´\89പവർà´\97àµ\8dà´\97à´\82 à´®à´¾à´¤àµ\8dരമാണàµ\81à´³àµ\8dളതàµ\8d.|à´\88 à´µàµ¼à´\97àµ\8dà´\97à´¤àµ\8dതിൽ ആകെ $2 ഉപവർഗ്ഗങ്ങൾ ഉള്ളതിൽ {{PLURAL:$1|ഒരു ഉപവർഗ്ഗം|$1 ഉപവർഗ്ഗങ്ങൾ}}, താഴെക്കൊടുത്തിരിക്കുന്നു.}}',
 'category-subcat-count-limited' => 'ഈ വർഗ്ഗത്തിനു താഴെ നൽകിയിരിക്കുന്ന {{PLURAL:$1|ഉപവർഗ്ഗമുണ്ട്|$1 ഉപവർഗ്ഗങ്ങളുണ്ട്}}.',
 'category-article-count' => '{{PLURAL:$2|ഈ വർഗ്ഗത്തിൽ താഴെ നൽകിയിരിക്കുന്ന ഒരു താൾ മാത്രമാണുള്ളത്.|ഈ വർഗ്ഗത്തിൽ $2 താളുകളുള്ളതിൽ {{PLURAL:$1|ഒരു താൾ|$1 എണ്ണം}} താഴെ നൽകിയിരിക്കുന്നു.}}',
 'category-article-count-limited' => 'ഈ വർഗ്ഗത്തിൽ താഴെ നൽകിയിരിക്കുന്ന {{PLURAL:$1|ഒരു താൾ ഉണ്ട്|$1 താളുകൾ ഉണ്ട്}}.',
@@ -900,11 +901,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'രഹസ്യവാക്ക് പുനഃക്രമീകരിക്കുക',
-'passwordreset-text' => 'രഹസ്യവാക്ക് പുനർസജ്ജീകരിക്കാനായി ഈ ഫോം പൂരിപ്പിക്കുക.',
 'passwordreset-legend' => 'രഹസ്യവാക്ക് പുനഃക്രമീകരിക്കുക',
 'passwordreset-disabled' => 'ഈ വിക്കിയിൽ രഹസ്യവാക്ക് പുനഃക്രമീകരിക്കലുകൾ പ്രവർത്തരഹിതമാക്കിയിരിക്കുകയാണ്.',
 'passwordreset-emaildisabled' => 'ഈ വിക്കിയിൽ ഇമെയിൽ സൗകര്യങ്ങൾ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു.',
-'passwordreset-pretext' => '{{PLURAL:$1||താഴെ ഒരു വിവരശകലം നൽകുക}}',
 'passwordreset-username' => 'ഉപയോക്തൃനാമം:',
 'passwordreset-domain' => 'ഡൊമൈൻ:',
 'passwordreset-capture' => 'ഫലമായുണ്ടാകുന്ന ഇമെയിൽ കാണണോ?',
@@ -1126,6 +1125,7 @@ $1 ആണ് ഈ തടയൽ നടത്തിയത്. ''$2'' എന്ന
 ഇത് മായ്ക്കപ്പെട്ടതായി കാണുന്നു.',
 'edit-conflict' => 'തിരുത്തൽ സമരസപ്പെടായ്ക.',
 'edit-no-change' => 'ഇപ്പോഴുള്ള സ്ഥിതിയിൽ നിന്നു യാതൊരു മാറ്റവും ഇല്ലാത്തതിനാൽ താങ്കളുടെ തിരുത്തലുകൾ തിരസ്കരിക്കപ്പെട്ടിരിക്കുന്നു.',
+'postedit-confirmation' => 'താങ്കളുടെ തിരുത്ത് സേവ് ചെയ്തിരിക്കുന്നു.',
 'edit-already-exists' => 'പുതിയ താൾ സൃഷ്ടിക്കാൻ കഴിഞ്ഞില്ല.
 താൾ ഇപ്പോൾ തന്നെ നിലവിലുണ്ട്.',
 'defaultmessagetext' => 'സ്വതേയുള്ള സന്ദേശ എഴുത്ത്',
@@ -1560,6 +1560,7 @@ $1",
 'userrights-notallowed' => 'ഉപയോക്താക്കൾക്ക് അവകാശങ്ങൾ കൊടുക്കാനും എടുത്തുകളയാനുമുള്ള അനുമതി താങ്കളുടെ അംഗത്വത്തിനില്ല.',
 'userrights-changeable-col' => 'താങ്കൾക്ക് മാറ്റാവുന്ന സംഘങ്ങൾ',
 'userrights-unchangeable-col' => 'താങ്കൾക്ക് മാറ്റാനാവാത്ത സംഘങ്ങൾ',
+'userrights-conflict' => 'ഉപയോക്തൃ അവകാശങ്ങൾ സമരസപ്പെടായ്കയുണ്ടായി! ദയവായി താങ്കളുടെ മാറ്റങ്ങൾ വീണ്ടും നടപ്പിലാക്കുക.',
 
 # Groups
 'group' => 'സംഘം:',
index be0640a..0040e09 100644 (file)
@@ -305,6 +305,18 @@ $messages = array(
 'oct' => 'Okt',
 'nov' => 'Nov',
 'dec' => 'Dis',
+'january-date' => '$1 Januari',
+'february-date' => '$1 Februari',
+'march-date' => '$1 Mac',
+'april-date' => '$1 April',
+'may-date' => '$1 Mei',
+'june-date' => '$1 Jun',
+'july-date' => '$1 Julai',
+'august-date' => '$1 Ogos',
+'september-date' => '$1 September',
+'october-date' => '$1 Oktober',
+'november-date' => '$1 November',
+'december-date' => '$1 Disember',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategori|Kategori}}',
@@ -619,10 +631,13 @@ Jangan lupa untuk mengubah [[Special:Preferences|keutamaan anda di {{SITENAME}}]
 'yourpassword' => 'Kata laluan:',
 'userlogin-yourpassword' => 'Kata laluan',
 'userlogin-yourpassword-ph' => 'Masukkan kata laluan anda',
+'createacct-yourpassword-ph' => 'Isikan kata laluan',
 'yourpasswordagain' => 'Ulangi kata laluan:',
+'createacct-yourpasswordagain' => 'Sahkan kata laluan',
+'createacct-yourpasswordagain-ph' => 'Isikan kata laluan semula',
 'remembermypassword' => 'Ingat log masuk saya pada pelayar ini (tidak melebihi $1 {{PLURAL:$1|hari|hari}})',
-'userlogin-remembermypassword' => 'Ingati saya',
-'userlogin-signwithsecure' => 'Daftar masuk dengan pelayan terlindung',
+'userlogin-remembermypassword' => 'Biar saya kekal log masuk',
+'userlogin-signwithsecure' => 'Gunakan sambungan terlindung',
 'securelogin-stick-https' => 'Kekal disambungkan ke HTTPS selepas log masuk',
 'yourdomainname' => 'Domain anda:',
 'password-change-forbidden' => 'Anda tidak dapat mengubah kata laluan di wiki ini.',
@@ -643,14 +658,30 @@ Jangan lupa untuk mengubah [[Special:Preferences|keutamaan anda di {{SITENAME}}]
 'gotaccount' => "Sudah mempunyai akaun? '''$1'''.",
 'gotaccountlink' => 'Log masuk',
 'userlogin-resetlink' => 'Lupa nama pengguna/kata laluan anda?',
+'userlogin-resetpassword-link' => 'Reset kata laluan anda',
 'helplogin-url' => 'Help:Log masuk',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Bantuan untuk log masuk]]',
+'createacct-join' => 'Isikan keterangan anda di bawah.',
+'createacct-emailrequired' => 'Alamat e-mel',
+'createacct-emailoptional' => 'Alamat e-mel (pilihan)',
+'createacct-email-ph' => 'Isikan alamt e-mel anda',
 'createaccountmail' => 'Gunakan kata laluan rawak yang sementara dan hantarnya ke alamat e-mel yang dinyatakan di bawah',
+'createacct-realname' => 'Nama sebenar (pilihan)',
 'createaccountreason' => 'Sebab:',
+'createacct-reason' => 'Sebab',
+'createacct-reason-ph' => 'Mengapa anda membuka satu lagi akaun',
+'createacct-captcha' => 'Pemeriksaan sekuriti',
+'createacct-imgcaptcha-ph' => 'Isikan teks yang anda lihat di atas',
+'createacct-submit' => 'Wujudkan akaun anda',
+'createacct-benefit-heading' => '{{SITENAME}} dijayakan oleh orang ramai seperti anda.',
+'createacct-benefit-body1' => '{{PLURAL:$1|suntingan}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|halaman}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|penyumbang}} terkini',
 'badretype' => 'Sila ulangi kata laluan dengan betul.',
 'userexists' => 'Nama pengguna yang diisikan telah pun digunakan.
 Sila pilih nama yang lain.',
 'loginerror' => 'Ralat log masuk',
+'createacct-error' => 'Ralat pembukaan akaun',
 'createaccounterror' => 'Tidak dapat mencipta akaun: $1',
 'nocookiesnew' => 'Akaun anda telah dibuka, tetapi anda belum log masuk. {{SITENAME}} menggunakan kuki untuk mencatat status log masuk pengguna. Sila aktifkan sokongan kuki pada pelayar anda, kemudian log masuk dengan nama pengguna dan kata laluan baru anda.',
 'nocookieslogin' => "{{SITENAME}} menggunakan ''cookies'' untuk mencatat status log masuk pengguna. Sila aktifkan sokongan ''cookies'' pada pelayar anda dan cuba lagi.",
@@ -734,14 +765,15 @@ Sila tunggu sebentar dan cuba lagi.',
 'resetpass-wrong-oldpass' => 'Kata laluan sementara atau semasa tidak sah.
 Anda mungkin telah pun berjaya menukar kata laluan anda atau meminta kata laluan sementara yang baru.',
 'resetpass-temp-password' => 'Kata laluan sementara:',
+'resetpass-abort-generic' => 'Penukaran kata laluan telah dihenti paksa oleh sambungan.',
 
 # Special:PasswordReset
 'passwordreset' => 'Set semula kata laluan',
-'passwordreset-text' => 'Lengkapkan borang ini untuk mengeset semula kata laluan.',
+'passwordreset-text-one' => 'Lengkapkan borang ini untuk mengeset semula kata laluan anda.',
+'passwordreset-text-many' => '{{PLURAL:$1|Masukkan salah sebahagian data untuk mengeset semula kata laluan anda.}}',
 'passwordreset-legend' => 'Set semula kata laluan',
 'passwordreset-disabled' => 'Ciri set semula kata laluan telah dimatikan di wiki ini.',
 'passwordreset-emaildisabled' => 'Ciri-ciri e-mel telah dipadamkan di wiki ini.',
-'passwordreset-pretext' => '{{PLURAL:$1||Isikan data di bawah}}',
 'passwordreset-username' => 'Nama pengguna:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Lihat e-mel yang terhasil?',
@@ -970,6 +1002,7 @@ Log penghapusan bagi laman ini dilampirkan di bawah untuk rujukan.',
 'edit-gone-missing' => 'Laman tersebut telah dihapuskan dan tidak dapat dikemaskinikan.',
 'edit-conflict' => 'Percanggahan penyuntingan.',
 'edit-no-change' => 'Suntingan anda diabaikan kerana tiada perubahan dibuat pada teks tersebut.',
+'postedit-confirmation' => 'Suntingan anda telah disimpan.',
 'edit-already-exists' => 'Tidak dapat mencipta laman baru kerana ia telah wujud.',
 'defaultmessagetext' => 'Teks mesej asal',
 'content-failed-to-parse' => 'Kandungan $2 tidak dapat dihuraikan untuk model $1: $3',
@@ -1406,6 +1439,7 @@ Tindakan ini tidak boleh dibatalkan.',
 'userrights-changeable-col' => 'Kumpulan yang anda boleh ubah',
 'userrights-unchangeable-col' => 'Kumpulan yang anda tak boleh ubah',
 'userrights-irreversible-marker' => '$1*',
+'userrights-conflict' => 'Hak-hak pengguna bercanggah! Sila terapkan pengubahan anda sekali lagi.',
 
 # Groups
 'group' => 'Kumpulan:',
@@ -2224,8 +2258,8 @@ Perubahan-perubahan pada halaman ini dan halaman perbualannya pada masa akan dat
 'notvisiblerev' => 'Semakan ini telah dihapuskan',
 'watchnochange' => 'Tiada perubahan pada laman-laman yang dipantau dalam tempoh yang ditunjukkan.',
 'watchlist-details' => '$1 laman dipantau (tidak termasuk laman perbincangan).',
-'wlheader-enotif' => 'Pemberitahuan melalui e-mel diaktifkan.',
-'wlheader-showupdated' => "Laman-laman yang telah diubah sejak kunjungan terakhir anda dipaparkan dalam '''teks tebal'''",
+'wlheader-enotif' => 'Pemberitahuan melalui e-mel dibolehkan.',
+'wlheader-showupdated' => "Laman-laman yang telah diubah sejak kunjungan terakhir anda dipaparkan dalam '''teks tebal'''.",
 'watchmethod-recent' => 'menyemak laman yang dipantau dalam suntingan-suntingan terkini',
 'watchmethod-list' => 'menyemak suntingan terkini pada laman-laman yang dipantau',
 'watchlistcontains' => 'Terdapat $1 laman dalam senarai pantau anda.',
@@ -2803,6 +2837,7 @@ Sila lawat [//www.mediawiki.org/wiki/Localisation Penyetempatan MediaWiki] dan [
 'thumbnail-more' => 'Besarkan',
 'filemissing' => 'Fail hilang',
 'thumbnail_error' => 'Berlaku ralat ketika mencipta gambar kenit: $1',
+'thumbnail_error_remote' => 'Mesej ralat dari $1: $2',
 'djvu_page_error' => 'Laman DjVu di luar julat',
 'djvu_no_xml' => 'Gagal mendapatkan data XML bagi fail DjVu',
 'thumbnail-temp-create' => 'Fail gambar kenit sementara tidak dapat dibuat',
@@ -3111,11 +3146,25 @@ Dengan menjalankannya, komputer anda mungkin akan terjejas.",
 'minutes' => '$1 minit',
 'hours' => '$1 jam',
 'days' => '$1 hari',
+'weeks' => '$1 minggu',
 'months' => '$1 bulan',
 'years' => '$1 tahun',
 'ago' => '$1 yang lalu',
 'just-now' => 'tadi',
 
+# Human-readable timestamps
+'hours-ago' => '$1 jam yang lalu',
+'minutes-ago' => '$1 minit yang lalu',
+'seconds-ago' => '$1 saat yang lalu',
+'monday-at' => 'Isnin $1',
+'tuesday-at' => 'Selasa $1',
+'wednesday-at' => 'Rabu $1',
+'thursday-at' => 'Khamis $1',
+'friday-at' => 'Jumaat $1',
+'saturday-at' => 'Sabtu $1',
+'sunday-at' => 'Ahad $1',
+'yesterday-at' => 'Semalam $1',
+
 # Bad image list
 'bad_image_list' => 'Berikut adalah format yang digunakan:
 
@@ -3743,6 +3792,18 @@ Anda patut telah menerima [{{SERVER}}{{SCRIPTPATH}}/COPYING sebuah salinan bagi
 'version-entrypoints-articlepath' => '[https://www.mediawiki.org/wiki/Manual:$wgArticlePath Laluan rencana]',
 'version-entrypoints-scriptpath' => '[https://www.mediawiki.org/wiki/Manual:$wgScriptPath Laluan skrip]',
 
+# Special:Redirect
+'redirect' => 'Lencongkan mengikut fail, ID pengguna atau ID semakan',
+'redirect-legend' => 'Lencongkan ke fail atau halaman',
+'redirect-summary' => 'Halaman khas ini melencong kepada fail (dengan nama fail), halaman (dengan ID semakan) atau halaman pengguna (dengan ID pengguna berangka).',
+'redirect-submit' => 'Pergi',
+'redirect-lookup' => 'Cari:',
+'redirect-value' => 'Nilai:',
+'redirect-user' => 'ID Pengguna',
+'redirect-revision' => 'Semakan halaman',
+'redirect-file' => 'Nama fail',
+'redirect-not-exists' => 'Nilai tidak dijumpai',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Cari fail serupa',
 'fileduplicatesearch-summary' => 'Anda boleh mencari fail serupa berdasarkan nilai cincangannya.',
@@ -3834,6 +3895,7 @@ Anda patut telah menerima [{{SERVER}}{{SCRIPTPATH}}/COPYING sebuah salinan bagi
 'htmlform-selectorother-other' => 'Lain-lain',
 'htmlform-no' => 'Tidak',
 'htmlform-yes' => 'Ya',
+'htmlform-chosen-placeholder' => 'Pilih satu pilihan',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 dengan sokongan carian teks penuh',
index 8019574..f96cbda 100644 (file)
@@ -37,6 +37,7 @@
  * @author Purodha
  * @author Qaqqalik
  * @author Samuelsen
+ * @author Simen47
  * @author Simny
  * @author Sjurhamre
  * @author Stigmj
@@ -423,6 +424,18 @@ $messages = array(
 'oct' => 'okt',
 'nov' => 'nov',
 'dec' => 'des',
+'january-date' => 'Januar $1',
+'february-date' => 'Februar $1',
+'march-date' => 'Mars $1',
+'april-date' => 'April $1',
+'may-date' => 'Mai $1',
+'june-date' => 'Juni $1',
+'july-date' => 'Juli $1',
+'august-date' => 'August $1',
+'september-date' => 'September $1',
+'october-date' => 'Oktober $1',
+'november-date' => 'November $1',
+'december-date' => 'Desember $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategori|Kategorier}}',
@@ -734,9 +747,12 @@ Ikke glem å endre [[Special:Preferences|innstillingene dine]] på {{SITENAME}}.
 'yourpassword' => 'Passord:',
 'userlogin-yourpassword' => 'Passord',
 'userlogin-yourpassword-ph' => 'Skriv inn passordet ditt',
+'createacct-yourpassword-ph' => 'Skriv inn et passord',
 'yourpasswordagain' => 'Gjenta passord',
+'createacct-yourpasswordagain' => 'Bekreft passord',
+'createacct-yourpasswordagain-ph' => 'Skriv inn passordet igjen',
 'remembermypassword' => 'Husk meg på denne datamaskinen (i maks $1 {{PLURAL:$1|dag|dager}})',
-'userlogin-remembermypassword' => 'Husk brukernavn og passord',
+'userlogin-remembermypassword' => 'Hold meg innlogget',
 'userlogin-signwithsecure' => 'Logg inn med sikker tjener',
 'securelogin-stick-https' => 'Vær fortsatt koblet til HTTPS etter innlogging',
 'yourdomainname' => 'Ditt domene',
@@ -758,14 +774,30 @@ Ikke glem å endre [[Special:Preferences|innstillingene dine]] på {{SITENAME}}.
 'gotaccount' => 'Har du allerede en konto? $1.',
 'gotaccountlink' => 'Logg inn',
 'userlogin-resetlink' => 'Har du glemt påloggingsdetaljene dine?',
+'userlogin-resetpassword-link' => 'Tilbakestill passordet dit',
 'helplogin-url' => 'Help:Innlogging',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjelp med innlogging]]',
+'createacct-join' => 'Skriv inn informasjonen din under.',
+'createacct-emailrequired' => 'Email-adresse',
+'createacct-emailoptional' => 'Email-adresse (valgfritt)',
+'createacct-email-ph' => 'Skriv inn email-adressen din',
 'createaccountmail' => 'Bruk et midlertidig tilfeldig passord, og send det til e-postadressen nedenfor',
+'createacct-realname' => 'Virkelige navn (valgfritt)',
 'createaccountreason' => 'Årsak:',
+'createacct-reason' => 'Årsak',
+'createacct-reason-ph' => 'Hvorfor lager du en annen bruker',
+'createacct-captcha' => 'Sikkerhetssjekk',
+'createacct-imgcaptcha-ph' => 'Skriv inn teksten du ser ovenfor',
+'createacct-submit' => 'Lag deg en bruker',
+'createacct-benefit-heading' => '{{SITENAME}} er laget av personer som deg.',
+'createacct-benefit-body1' => '{{PLURAL:$1|edit|edits}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|page|pages}}',
+'createacct-benefit-body3' => 'siste {{PLURAL:$1|contributor|contributors}}',
 'badretype' => 'Passordene samsvarte ikke.',
 'userexists' => 'Brukernavnet er allerede i bruk.
 Velg et annet brukernavn.',
 'loginerror' => 'Innloggingsfeil',
+'createacct-error' => 'Feil med kontoppretting',
 'createaccounterror' => 'Kunne ikke opprette konto: $1',
 'nocookiesnew' => 'Din brukerkonto er nå opprettet, men du har ikke logget på. {{SITENAME}} bruker informasjonskapsler («cookies») for å logge brukere på og du har slått dem av. Slå dem på for å kunne logge på med ditt nye brukernavn og passord.',
 'nocookieslogin' => '{{SITENAME}} bruker informasjonskapsler («cookies») for å logge brukere på og du har slått dem av. Slå dem på og prøv igjen.',
@@ -848,14 +880,13 @@ Du kan ignorere denne beskjeden dersom kontoen ble opprettet ved en feil.',
 'resetpass-wrong-oldpass' => 'Ugyldig midlertidig eller nåværende passord.
 Du kan ha allerede byttet passordet, eller bedt om et nytt midlertidig passord.',
 'resetpass-temp-password' => 'Midlertidig passord:',
+'resetpass-abort-generic' => 'Endring av passord har blitt avbrutt av en utvidelse.',
 
 # Special:PasswordReset
 'passwordreset' => 'Passordresetting',
-'passwordreset-text' => 'Fyll ut dette skjemaet for å tilbakestille passordet ditt.',
 'passwordreset-legend' => 'Nullstill passord',
 'passwordreset-disabled' => 'Nullstilling av passord er deaktivert på denne wikien.',
 'passwordreset-emaildisabled' => 'E-posttjenester er slått av på denne wikien.',
-'passwordreset-pretext' => '{{PLURAL:$1||Skriv inn en av datadelene nedenfor}}',
 'passwordreset-username' => 'Brukernavn:',
 'passwordreset-domain' => 'Domene:',
 'passwordreset-capture' => 'Vise resulterende e-post?',
@@ -1530,6 +1561,7 @@ Den kan maks inneholde $1 {{PLURAL:$1|tegn|tegn}}.',
 'userrights-changeable-col' => 'Grupper du kan endre',
 'userrights-unchangeable-col' => 'Grupper du ikke kan endre',
 'userrights-irreversible-marker' => '$1 *',
+'userrights-conflict' => 'En konflikt med brukerrettighetene! Vennligst legg til endringene dine igjen.',
 
 # Groups
 'group' => 'Gruppe:',
@@ -2914,6 +2946,8 @@ Besøk [//translatewiki.net translatewiki.net] om du ønsker å bidra med overse
 'thumbnail-more' => 'Forstørr',
 'filemissing' => 'Filen mangler',
 'thumbnail_error' => 'Feil under oppretting av miniatyrbilde: $1',
+'thumbnail_error_remote' => 'Feil-melding fra $1:
+$2',
 'djvu_page_error' => 'DjVu-side ute av rekkevidde',
 'djvu_no_xml' => 'Klarte ikke å hente XML for DjVu-fil',
 'thumbnail-temp-create' => 'Kan ikke opprette midlertidig miniatyrbildefil',
@@ -3223,11 +3257,25 @@ Ved å åpne den kan systemet ditt kompromitteres.",
 'minutes' => '{{PLURAL:$1|$1 minutt|$1 minutter}}',
 'hours' => '{{PLURAL:$1|$1 time|$1 timer}}',
 'days' => '{{PLURAL:$1|$1 dag|$1 dager}}',
+'weeks' => '{{FLERTALL:$1|$1 uke|$1 uker}}',
 'months' => '{{PLURAL:$1|$1 måned|$1 måneder}}',
 'years' => '{{PLURAL:$1|$1 år}}',
 'ago' => '$1 siden',
 'just-now' => 'nettopp',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{FLERTALL:$1|time|timer}} siden',
+'minutes-ago' => '$1 {{FLERTALL:$1|minutt|minutter}} siden',
+'seconds-ago' => '$1 {{FLERTALL:$1|sekund|sekunder}} siden',
+'monday-at' => 'Mandag på $1',
+'tuesday-at' => 'Tirsdag på $1',
+'wednesday-at' => 'Onsdag på $1',
+'thursday-at' => 'Torsdag på $1',
+'friday-at' => 'Fredag på $1',
+'saturday-at' => 'Lørdag på $1',
+'sunday-at' => 'Søndag på $1',
+'yesterday-at' => 'I går på $1',
+
 # Bad image list
 'bad_image_list' => 'Formatet er som følger:
 
@@ -3869,6 +3917,15 @@ Du skal ha mottatt [{{SERVER}}{{SCRIPTPATH}}/COPYING en kopi av GNU General Publ
 'version-entrypoints-header-entrypoint' => 'Inngangspunkt',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect-submit' => 'Gå',
+'redirect-lookup' => 'Oppslag:',
+'redirect-value' => 'Verdi:',
+'redirect-user' => 'Bruker ID',
+'redirect-revision' => 'Side revisjon',
+'redirect-file' => 'Fil-navn',
+'redirect-not-exists' => 'Verdi er ikke funnet',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Søk etter duplikatfiler',
 'fileduplicatesearch-summary' => 'Søk etter duplikatfiler basert på dets hash-verdi.',
@@ -3960,6 +4017,7 @@ Du skal ha mottatt [{{SERVER}}{{SCRIPTPATH}}/COPYING en kopi av GNU General Publ
 'htmlform-selectorother-other' => 'Andre',
 'htmlform-no' => 'Nei',
 'htmlform-yes' => 'Ja',
+'htmlform-chosen-placeholder' => 'Velg et alternativ',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 med støtte for fulltekstsøk',
index d6c5492..71879af 100644 (file)
@@ -953,11 +953,11 @@ Mogelijk hebt u uw wachtwoord al gewijzigd of een nieuw tijdelijk wachtwoord aan
 
 # Special:PasswordReset
 'passwordreset' => 'Wachtwoord opnieuw instellen',
-'passwordreset-text' => 'Vul dit formulier in om uw wachtwoord opnieuw in te stellen.',
+'passwordreset-text-one' => 'Vul dit formulier in om uw wachtwoord opnieuw in te stellen.',
+'passwordreset-text-many' => '{{PLURAL:$1|Vul een van de gegevensvelden in om uw wachtwoord opnieuw in te stellen.}}',
 'passwordreset-legend' => 'Wachtwoord opnieuw instellen',
 'passwordreset-disabled' => 'Het is in deze wiki niet mogelijk uw wachtwoord opnieuw in te stellen.',
 'passwordreset-emaildisabled' => 'E-mailmogelijkheden zijn uitgeschakeld op deze wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Voer één van de onderstaande velden in}}',
 'passwordreset-username' => 'Gebruiker:',
 'passwordreset-domain' => 'Domein:',
 'passwordreset-capture' => 'De resulterende e-mail bekijken?',
@@ -1202,6 +1202,7 @@ Er is geen toelichting beschikbaar.',
 Deze lijkt verwijderd te zijn.',
 'edit-conflict' => 'Bewerkingsconflict.',
 'edit-no-change' => 'Uw bewerking is genegeerd, omdat er geen wijziging aan de tekst is gemaakt.',
+'postedit-confirmation' => 'Uw bewerking is opgeslagen',
 'edit-already-exists' => 'De pagina is niet aangemaakt.
 Deze bestaat al.',
 'defaultmessagetext' => 'Standaardinhoud',
index c1ba232..b3e2c98 100644 (file)
@@ -838,11 +838,9 @@ Du kan allereie ha byta passordet, eller ha bede om å få eit nytt mellombels p
 
 # Special:PasswordReset
 'passwordreset' => 'Attendestilling av passord',
-'passwordreset-text' => '↓Fyll ut dette skjemaet for å motta ei påminning om kontoopplysningane dine i ein e-post.',
 'passwordreset-legend' => '↓Nullstill passordet',
 'passwordreset-disabled' => '↓Tilbakestilling av passord er ikkje aktivert på denne wikien',
 'passwordreset-emaildisabled' => 'E-postfunksjonen er slegen av på wikien.',
-'passwordreset-pretext' => '↓{{PLURAL:$1||Tast inn ein av datadelane nedanfor}}',
 'passwordreset-username' => 'Brukarnamn:',
 'passwordreset-domain' => 'Domene:',
 'passwordreset-capture' => 'Vis resulterande epost',
@@ -1070,8 +1068,8 @@ Det ser ut til at ho er sletta.',
 'content-failed-to-parse' => 'Klarte ikkje å tolke innhaldet «$2» for innhaldsmodellen «$1»: $3',
 'invalid-content-data' => 'Ugyldig innhald',
 'content-not-allowed-here' => 'Innhaldsmodellen «$1» er ikkje tillaten på sida [[$2]]',
-'editwarning-warning' => 'Gjennom å navigera vekk frå denne sida vil du mista alle endringane du måtte ha gjort.
-Denne åtvaringa kan slåast av under {{int:prefs-editing}} i instillingane dine.',
+'editwarning-warning' => 'Ved å forlata denne sida kan du mista alle endringane du måtte ha gjort.
+Er du innlogga kan denne åtvaringa slåast av under bolken «Endring» i innstillingane dine.',
 
 # Content models
 'content-model-wikitext' => 'WikiTekst',
@@ -3886,7 +3884,7 @@ Du skal ha motteke [{{SERVER}}{{SCRIPTPATH}}/COPYING ein kopi av GNU General Pub
 'logentry-suppress-event-legacy' => '$1 {{GENDER:$2|endra}} i løyndom synlegdomen til logghendingar på $3',
 'logentry-suppress-revision-legacy' => '$1 {{GENDER:$2|endra}} i løyndom synlegdomen til versjonar på sida $3',
 'revdelete-content-hid' => 'innhald løynt',
-'revdelete-summary-hid' => 'endringsamandrag gøymt',
+'revdelete-summary-hid' => 'endringsamandrag løynt',
 'revdelete-uname-hid' => 'brukarnamn gøymt',
 'revdelete-content-unhid' => 'innhald gjort synleg',
 'revdelete-summary-unhid' => 'endringssamandrag gjort synleg',
index 148b3ed..5f0838e 100644 (file)
@@ -14,6 +14,7 @@
  * @author Jfblanc
  * @author Kaganer
  * @author McDutchie
+ * @author Nemo bis
  * @author Spacebirdy
  * @author Горан Анђелковић
  * @author לערי ריינהארט
index 347739c..651f561 100644 (file)
@@ -613,7 +613,7 @@ $2',
 'yourpasswordagain' => 'Пароль ногæй бафысс:',
 'createacct-yourpasswordagain' => 'Сбæлвырд кæн пароль',
 'createacct-yourpasswordagain-ph' => 'Пароль ногæй бафысс',
-'remembermypassword' => 'Ð\91аÑ\85Ñ\8aÑ\83Ñ\8bдÑ\8b Ð¼Ã¦ ÐºÃ¦Ð½Ã¦Ð´ Ð°Ñ\88Ñ\8b Ð±Ñ\80аÑ\83зеÑ\80Ñ\8b (макÑ\81имÑ\83м $1 {{PLURAL:$1|бонмæ|бонмæ}})',
+'remembermypassword' => 'Ð\91аÑ\85Ñ\8aÑ\83Ñ\8bдÑ\8b Ð¼Ã¦ ÐºÃ¦Ð½Ã¦Ð´ Ð°Ñ\86Ñ\8b Ð±Ñ\80аÑ\83зеÑ\80Ñ\8b (макÑ\81имÑ\83м $1 {{PLURAL:$1|бонмæ}})',
 'userlogin-remembermypassword' => 'Системæйы мæ дар',
 'userlogin-signwithsecure' => 'Æдас бастдзинадæй',
 'securelogin-stick-https' => 'Дарддæр дæр HTTPS-ы уылты, бахизыны фæстæ',
@@ -755,11 +755,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Пароль раппарæн',
-'passwordreset-text' => 'Байдзаг кæн ацы формæ, цæмæй райсай дæ пароль ногæй сæвæрай.',
 'passwordreset-legend' => 'Пароль раппарын',
 'passwordreset-disabled' => 'Парол фæлварын ацы викийы хицæн у.',
 'passwordreset-emaildisabled' => 'Электрон пост ацы викийы хицæн у.',
-'passwordreset-pretext' => '{{PLURAL:$1||Дæлдæр цы рардты хæйттæ ис, уыдонæй иу бафысс}}',
 'passwordreset-username' => 'Фæсномыг:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Цы e-mail рауадис, уый æвдыст æрцæуæт?',
index 075e00d..3a4c5a0 100644 (file)
@@ -191,23 +191,23 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'ਲਿੰਕ ਹੇਠ-ਲਾਈਨ:',
 'tog-justify' => 'ਪੈਰਾਗਰਾਫ਼ ਇਕਸਾਰ',
-'tog-hideminor' => 'ਹਾਲ â\80\99à¨\9a à¨¹à©\8bà¨\8f à¨¬à¨¦à¨²à¨¾à¨\85 à¨µà¨¿à©±à¨\9a à¨\9bà©\8bà¨\9fà©\87 à¨¬à¨¦à¨²à¨¾à¨\85 à¨\9bà©\81ਪਾਓ',
-'tog-hidepatrolled' => 'ਹਾਲ â\80\99à¨\9a à¨¹à©\8bà¨\8f à¨¬à¨¦à¨²à¨¾à¨\85 à¨µà¨¿à©±à¨\9aà©\8bà¨\82 à¨\9cਾà¨\82à¨\9aà©\87 à¨¸à©°à¨ªà¨¾à¨¦à¨¨ਾਂ ਲੁਕਾਓ',
+'tog-hideminor' => 'ਤਾà¨\9c਼ਾ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨µà¨¿à©±à¨\9aà©\8bà¨\82 à¨\9bà©\8bà¨\9fà©\80à¨\86à¨\82 à¨¸à©\8bਧਾà¨\82 à¨²à©\81à¨\95ਾਓ',
+'tog-hidepatrolled' => 'ਤਾà¨\9c਼ਾ à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨µà¨¿à©±à¨\9aà©\8bà¨\82 à¨\9cਾà¨\82à¨\9aà©\80à¨\86à¨\82 à¨¸à©\8bਧਾਂ ਲੁਕਾਓ',
 'tog-newpageshidepatrolled' => 'ਨਵੀਂ ਸਫ਼ਾ ਸੂਚੀ ਵਿੱਚੋਂ ਨਿਗਰਾਨੀ ਸਫ਼ੇ ਓਹਲੇ ਕਰੋ',
-'tog-extendwatchlist' => 'à¨\95à©\87ਵਲ à¨¹à¨¾à¨²à¨¿à¨\86 à¨¹à©\80 à¨¨à¨¹à©\80à¨\82, à¨¸à¨\97à©\8bà¨\82 à¨¸à¨¾à¨°à©\87 à¨ªà¨°à¨¿à¨µà¨°à¨¤à¨¨ à¨µà¨¿à¨\96ਾà¨\89ਣ à¨²à¨\88 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 à¨¨à©\82à©° à¨µà¨¿à¨¸à¨¥à¨¾à¨°à¨¿à¨¤ à¨\95ਰà©\8b',
-'tog-usenewrc' => 'ਹਾਲ â\80\99à¨\9a à¨¹à©\8bà¨\8f à¨¬à¨¦à¨²à¨¾à¨\85 à¨\85ਤà©\87 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 à¨µà¨¿à©±à¨\9a à¨ªà©°à¨¨à©\87 à¨®à©\81ਤਾਬà¨\95 à¨¬à¨¦à¨²à¨¾à¨\85 à¨¦à©\87 à¨¸à¨®à©\82ਹ à¨¬à¨£à¨¾à¨\93 (à¨\9cਾਵਾਸà¨\95à©\8dਰਿਪà¨\9f à¨¦à©\80 à¨\9cਰà©\82ਰਤ ਹੈ)',
+'tog-extendwatchlist' => 'ਸਿਰਫ਼ à¨¤à¨¾à¨\9c਼ਾ à¨¹à©\80 à¨¨à¨¹à©\80à¨\82, à¨¸à¨\97à©\8bà¨\82 à¨¸à¨¾à¨°à©\80à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨¨à©\82à©° à¨µà¨\96ਾà¨\89ਣ à¨²à¨\88 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨¨à©\82à©° à¨µà¨§à¨¾à¨\93',
+'tog-usenewrc' => 'ਹਾਲ â\80\99à¨\9a à¨¹à©\8bà¨\88à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨\85ਤà©\87 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨µà¨¿à©±à¨\9a à¨ªà©°à¨¨à©\87 à¨®à©\81ਤਾਬà¨\95 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨¦à©\87 à¨\97ਰà©\81ੱਪ à¨¬à¨£à¨¾à¨\93 (à¨\9cਾਵਾਸà¨\95à©\8dਰਿਪà¨\9f à¨²à©\8bà©\9cà©\80à¨\82ਦà©\80 ਹੈ)',
 'tog-numberheadings' => 'ਆਟੋ-ਨੰਬਰ ਹੈਡਿੰਗ',
 'tog-showtoolbar' => 'ਸੋਧ ਟੂਲਬਾਰ ਵੇਖੋ (JavaScript ਚਾਹੀਦੀ ਹੈ)',
-'tog-editondblclick' => 'ਦà©\82ਹਰà©\87 à¨\95ਲਿੱà¨\95 â\80\99ਤà©\87 à¨ªà©°à¨¨à©\87 à¨¦à¨¾ à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨\95ਰà©\8b (à¨\9cਾਵਾਸà¨\95à©\8dਰਿਪà¨\9f à¨¦à©\80 à¨\9cਰà©\82ਰਤ ਹੈ)',
-'tog-editsection' => '[ਸੰਪਾਦਨ] à¨\95à©\9cà©\80à¨\86à¨\82 à¨¦à©\81à¨\86ਰਾ à¨\85ਨà©\81ਭਾà¨\97 à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨¸à¨®à¨°à©±à¨¥à¨¾à¨µà¨¾à¨¨ ਕਰੋ',
+'tog-editondblclick' => 'ਦà©\8b à¨µà¨¾à¨° à¨\95ਲਿੱà¨\95 à¨\95ਰਨ à¨¨à¨¾à¨² à¨¸à¨«à¨¼à©\87 à¨¸à©\8bਧà©\8b (à¨\9cਾਵਾਸà¨\95à©\8dਰਿਪà¨\9f à¨\9aਾਹà©\80ਦà©\80 ਹੈ)',
+'tog-editsection' => '[ਸà©\8bਧà©\8b] à¨²à¨¿à©°à¨\95ਾà¨\82 à¨¦à©\81à¨\86ਰਾ à¨¸à©\88à¨\95ਸ਼ਨ à¨¸à©\8bਧਣਾ à¨\9aਾਲà©\82 ਕਰੋ',
 'tog-editsectiononrightclick' => 'ਭਾਗ ਸਿਰਲੇਖਾਂ ਤੇ ਸੱਜੀ ਕਲਿੱਕ ਦੁਆਰਾ ਸੋਧ ਯੋਗ ਕਰੋ (ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)',
 'tog-showtoc' => 'ਤਤਕਰਾ ਵਖਾਓ (3 ਤੋਂ ਵੱਧ ਸਿਰਲੇਖਾਂ ਵਾਲੇ ਪੰਨਿਆਂ ਲਈ)',
 'tog-rememberpassword' => 'ਇਸ ਬਰਾਊਜ਼ਰ ਉੱਤੇ ਮੇਰਾ ਲਾਗਇਨ ਯਾਦ ਰੱਖੋ ($1 {{PLURAL:$1|ਦਿਨ|ਦਿਨਾਂ}} ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ)',
-'tog-watchcreations' => 'ਮà©\87ਰà©\87 à¨µà¨²à©\8bà¨\82 à¨¬à¨£à¨¾à¨\8f à¨\97à¨\8f à¨ªà©°à¨¨à©\87 à¨\85ਤà©\87 à¨\85ੱਪਲà©\8bਡ à¨\95à©\80ਤà©\80à¨\86à¨\82 à¨«à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 ਵਿੱਚ ਪਾਓ',
-'tog-watchdefault' => 'ਮà©\87ਰà©\87 à¨µà©±à¨²à©\8bà¨\82 à¨¸à©°à¨ªà¨¾à¨¦à¨¤ à¨\97à¨\8f à¨ªà©°à¨¨à©\87 à¨\85ਤà©\87 à¨«à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 ਵਿੱਚ ਪਾਓ',
-'tog-watchmoves' => 'ਮà©\87ਰà©\87 à¨µà©±à¨²à©\8bà¨\82 à¨¸à¨¥à¨¾à¨¨à¨¾à¨\82ਤਰਤ à¨ªà©°à¨¨à©\87 à¨\85ਤà©\87 à¨«à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 ਵਿੱਚ ਪਾਓ',
-'tog-watchdeletion' => 'ਮà©\87ਰà©\87 à¨µà¨²à©\8bà¨\82 à¨¹à¨\9fਾà¨\8f à¨\97à¨\8f à¨ªà©°à¨¨à©\87 à¨\85ਤà©\87 à¨«à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨§à¨¿à¨\86ਨਸà©\82à¨\9aà©\80 ਵਿੱਚ ਪਾਓ',
-'tog-minordefault' => 'ਮà©\87ਰà©\87 à¨¸à¨¾à¨°à©\87 à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨\9bà©\8bà¨\9fà©\87 à¨¬à¨¦à¨²à¨¾à¨\85 à¨¹à¨¨',
+'tog-watchcreations' => 'ਮà©\87ਰà©\87 à¨µà¨²à©\8bà¨\82 à¨¬à¨£à¨¾à¨\8f à¨\97à¨\8f à¨ªà©°à¨¨à©\87 à¨\85ਤà©\87 à¨\85ੱਪਲà©\8bਡ à¨\95à©\80ਤà©\80à¨\86à¨\82 à¨«à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f ਵਿੱਚ ਪਾਓ',
+'tog-watchdefault' => 'ਮà©\87ਰà©\87 à¨µà©±à¨²à©\8bà¨\82 à¨¸à©\8bਧà©\87 à¨\97à¨\8f à¨ªà©°à¨¨à©\87 à¨\85ਤà©\87 à¨«à¨¼à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f ਵਿੱਚ ਪਾਓ',
+'tog-watchmoves' => 'ਮà©\87ਰà©\87 à¨µà©±à¨²à©\8bà¨\82 à¨¬à¨¦à¨²à©\87 à¨¸à¨¿à¨°à¨²à©\87à¨\96ਾà¨\82 à¨µà¨¾à¨²à¨¼à©\87 à¨ªà©°à¨¨à©\87 à¨\85ਤà©\87 à¨«à¨¼à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f ਵਿੱਚ ਪਾਓ',
+'tog-watchdeletion' => 'ਮà©\87ਰà©\87 à¨µà¨²à©\8bà¨\82 à¨®à¨¿à¨\9fਾà¨\8f à¨\97à¨\8f à¨ªà©°à¨¨à©\87 à¨\85ਤà©\87 à¨«à¨¼à¨¾à¨\88ਲਾà¨\82 à¨®à©\87ਰà©\80 à¨¨à¨¿à¨\97ਰਾਨà©\80-ਲਿਸà¨\9f ਵਿੱਚ ਪਾਓ',
+'tog-minordefault' => 'ਸਾਰà©\87 à¨«à©\87ਰ-ਬਦਲਾà¨\82 â\80\99ਤà©\87 à¨®à©\82ਲ à¨°à©\82ਪ à¨µà¨¿à¨\9a à¨\9bà©\8bà¨\9fà©\87 à¨¹à©\8bਣ à¨¦à¨¾ à¨¨à¨¿à¨¸à¨¼à¨¾à¨¨ à¨²à¨¾à¨\93',
 'tog-previewontop' => 'ਸੋਧ ਬਾਕਸ ਤੋਂ ਪਹਿਲਾਂ ਝਲਕ ਵੇਖਾਓ',
 'tog-previewonfirst' => 'ਪਹਿਲੀ ਸੋਧ ਉੱਤੇ ਝਲਕ ਵੇਖਾਓ',
 'tog-nocache' => 'ਬਰਾਊਜ਼ਰ ਸਫ਼ਾ ਕੈਸ਼ ਕਰਨਾ ਬੰਦ ਕਰੋ',
@@ -285,7 +285,7 @@ $messages = array(
 'jan' => 'ਜਨ',
 'feb' => 'ਫ਼ਰ',
 'mar' => 'ਮਾਰ',
-'apr' => 'ਅਪ੍ਰੈ॰',
+'apr' => 'ਅਪ',
 'may' => 'ਮਈ',
 'jun' => 'ਜੂਨ',
 'jul' => 'ਜੁਲਾ',
@@ -329,24 +329,24 @@ $messages = array(
 # Cologne Blue skin
 'qbfind' => 'ਖੋਜ',
 'qbbrowse' => 'ਝਲਕ',
-'qbedit' => 'ਸੰਪਾਦਨ',
+'qbedit' => 'ਸà©\8bਧ',
 'qbpageoptions' => 'ਇਹ ਸਫ਼ਾ',
 'qbmyoptions' => 'ਮੇਰੇ ਸਫ਼ੇ',
-'qbspecialpages' => 'ਵਿਸ਼à©\87ਸ਼ à¨ªà©°à¨¨ੇ',
+'qbspecialpages' => 'à¨\96਼ਾਸ à¨¸à¨«à¨¼ੇ',
 'faq' => 'ਸਵਾਲ-ਜਵਾਬ',
 'faqpage' => 'Project:ਸਵਾਲ-ਜਵਾਬ',
 
 # Vector skin
 'vector-action-addsection' => 'ਵਿਸ਼ਾ ਜੋੜੋ',
 'vector-action-delete' => 'ਹਟਾਓ',
-'vector-action-move' => 'ਸਥਾਨਾà¨\82ਤਰਨ',
+'vector-action-move' => 'ਭà©\87à¨\9cà©\8b',
 'vector-action-protect' => 'ਸੁਰੱਖਿਆ',
 'vector-action-undelete' => 'ਹਟਾਉਣਾ-ਵਾਪਸ',
 'vector-action-unprotect' => 'ਸੁਰੱਖਿਆ ਬਦਲੋ',
 'vector-simplesearch-preference' => 'ਸਧਾਰਨ ਖੋਜ ਸਲਾਹ ਪੱਟੀ ਯੋਗ ਕਰੋ (ਸਿਰਫ਼ ਵਿਕਟਰ ਸਕਿੰਨ ਵਿਚ)',
 'vector-view-create' => 'ਬਣਾਓ',
-'vector-view-edit' => 'ਸੰਪਾਦਨ',
-'vector-view-history' => 'à¨\87ਤਿਹਾਸ ਵੇਖੋ',
+'vector-view-edit' => 'ਸà©\8bਧ',
+'vector-view-history' => 'à¨\85ਤà©\80ਤ ਵੇਖੋ',
 'vector-view-view' => 'ਪੜ੍ਹੋ',
 'vector-view-viewsource' => 'ਸਰੋਤ ਵੇਖੋ',
 'actions' => 'ਕਾਰਵਾਈਆਂ',
@@ -362,14 +362,14 @@ $messages = array(
 'searchbutton' => 'ਖੋਜ',
 'go' => 'ਜਾਓ',
 'searcharticle' => 'ਜਾਓ',
-'history' => 'ਪੰਨà©\87 à¨¦à¨¾ à¨\87ਤਿਹਾਸ',
-'history_short' => 'à¨\87ਤਿਹਾਸ',
+'history' => 'ਸਫ਼à©\87 à¨¦à¨¾ à¨\85ਤà©\80ਤ',
+'history_short' => 'à¨\85ਤà©\80ਤ',
 'updatedmarker' => 'ਮੇਰੀ ਆਖਰੀ ਫੇਰੀ ਤੋਂ ਬਾਅਦ ਦੇ ਅੱਪਡੇਟ',
 'printableversion' => 'ਛਪਣਯੋਗ ਵਰਜਨ',
 'permalink' => 'ਪੱਕਾ ਲਿੰਕ',
 'print' => 'ਛਾਪੋ',
 'view' => 'ਵੇਖੋ',
-'edit' => 'ਸੰਪਾਦਨ à¨\95ਰੋ',
+'edit' => 'ਸà©\8bਧੋ',
 'create' => 'ਬਣਾਓ',
 'editthispage' => 'ਇਹ ਸਫ਼ਾ ਸੋਧੋ',
 'create-this-page' => 'ਇਹ ਸਫ਼ਾ ਬਣਾਓ',
@@ -396,14 +396,14 @@ $messages = array(
 'projectpage' => 'ਪ੍ਰੋਜੈਕਟ ਸਫ਼ਾ ਵੇਖੋ',
 'imagepage' => 'ਫਾਇਲ ਸਫ਼ਾ ਵੇਖੋ',
 'mediawikipage' => 'ਸੁਨੇਹਾ ਪੇਜ ਵੇਖੋ',
-'templatepage' => 'ਸਾà¨\82à¨\9aਾ ਪੰਨਾ ਵੇਖੋ',
+'templatepage' => 'ਫਰਮਾ ਪੰਨਾ ਵੇਖੋ',
 'viewhelppage' => 'ਮੱਦਦ ਸਫ਼ਾ ਵੇਖੋ',
 'categorypage' => 'ਕੈਟੈਗਰੀ ਸਫ਼ਾ ਵੇਖੋ',
 'viewtalkpage' => 'ਚਰਚਾ ਵੇਖੋ',
 'otherlanguages' => 'ਹੋਰ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ',
 'redirectedfrom' => '($1 ਤੋਂ ਰੀਡਿਰੈਕਟ)',
 'redirectpagesub' => 'ਰੀਡਿਰੈਕਟ ਸਫ਼ਾ',
-'lastmodifiedat' => 'à¨\87ਸ à¨ªà©°à¨¨à©\87 à¨¦à¨¾ à¨ªà¨¿à©±à¨\9bਲਾ à¨¬à¨¦à¨²à¨¾à¨\85  $1 à¨¨à©\82à©°  $2 à¨µà¨\9cà©\87 à¨¹à©\8bà¨\87à¨\86 à¨¸à©\80।',
+'lastmodifiedat' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨µà¨¿à©±à¨\9a à¨\86à¨\96਼ਰà©\80 à¨¸à©\8bਧ $1 à¨¨à©\82à©° $2 à¨µà¨\9cà©\87 à¨¹à©\8bà¨\88।',
 'viewcount' => 'ਇਹ ਸਫ਼ਾ {{PLURAL:$1|ਇੱਕ ਵਾਰ|$1 ਵਾਰ}} ਵੇਖਿਆ ਗਿਆ।',
 'protectedpage' => 'ਸੁਰੱਖਿਅਤ ਪੇਜ',
 'jumpto' => 'ਇਸ ’ਤੇ ਜਾਓ:',
@@ -432,7 +432,7 @@ $1',
 'mainpage' => 'ਮੁੱਖ ਸਫ਼ਾ',
 'mainpage-description' => 'ਮੁੱਖ ਸਫ਼ਾ',
 'policy-url' => 'Project:ਨੀਤੀ',
-'portal' => 'ਸਮਾà¨\9c à¨®à©\81ੱà¨\96 à¨ªà©°à¨¨à¨¾',
+'portal' => 'ਭਾà¨\88à¨\9aਾਰà¨\95 à¨¸à©±à¨¥',
 'portal-url' => 'Project:ਸਮਾਜ ਸੱਥ',
 'privacy' => 'ਪਰਾਈਵੇਸੀ ਨੀਤੀ',
 'privacypage' => 'Project:ਪਰਾਈਵੇਸੀ ਨੀਤੀ',
@@ -449,7 +449,7 @@ $1',
 'retrievedfrom' => '"$1" ਤੋਂ ਲਿਆ',
 'youhavenewmessages' => 'ਤੁਹਾਡੇ ਲਈ $1। ($2)',
 'newmessageslink' => 'ਨਵੇਂ ਸੁਨੇਹੇ',
-'newmessagesdifflink' => 'ਪਿੱà¨\9bਲਾ à¨¬à¨¦à¨²à¨¾à¨\85',
+'newmessagesdifflink' => 'à¨\86à¨\96਼ਰà©\80 à¨¤à¨¬à¨¦à©\80ਲà©\80',
 'youhavenewmessagesfromusers' => '{{PLURAL:$3|ਇੱਕ ਵਰਤੋਂਕਾਰ|$3 ਵਰਤੋਂਕਾਰਾਂ}} ਵੱਲੋਂ ਤੁਹਾਨੂੰ $1 ($2)।',
 'youhavenewmessagesmanyusers' => 'ਕਈ ਯੂਜ਼ਰ ਵੱਲੋਂ ਤੁਹਾਨੂੰ $1 ($2)।',
 'newmessageslinkplural' => '{{PLURAL:$1|ਇੱਕ ਨਵਾਂ ਸੁਨੇਹਾ|ਨਵੇਂ ਸੁਨੇਹੇ}} {{PLURAL:$1|ਹੈ|ਹਨ}}',
@@ -711,7 +711,6 @@ Note that some pages may continue to be displayed as if you were still logged in
 
 # Special:PasswordReset
 'passwordreset' => 'ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਕਰੋ',
-'passwordreset-text' => 'ਆਪਣਾ ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਕਰਨ ਲਈ ਇਹ ਫਾਰਮ ਪੂਰਾ ਕਰੋ।',
 'passwordreset-legend' => 'ਪਾਸਵਰਡ ਮੁੜ-ਸੈੱਟ ਕਰੋ',
 'passwordreset-disabled' => 'ਇਸ ਵਿਕੀ ਤੇ ਪਾਸਵਰਡ ਰੀਸੈੱਟ ਬੰਦ ਕੀਤੇ ਗਏ ਹਨ।',
 'passwordreset-emaildisabled' => 'ਇਹ ਵਿਕਿ ਉੱਤੇ ਈਮੇਲ ਫੀਚਰ ਬੰਦ ਕੀਤਾ ਹੋਇਆ ਹੈ।',
@@ -765,8 +764,8 @@ $2
 # Edit pages
 'summary' => 'ਸਾਰ:',
 'subject' => 'ਵਿਸ਼ਾ/ਹੈੱਡਲਾਈਨ:',
-'minoredit' => 'à¨\87ਹ à¨\87ੱà¨\95 à¨\9bà©\8bà¨\9fਾ à¨¬à¨¦à¨²à¨¾à¨\85 ਹੈ',
-'watchthis' => 'à¨\87ਸ à¨ªà©°à¨¨à©\87 â\80\99ਤà©\87 à¨§à¨¿à¨\86ਨ ਰੱਖੋ',
+'minoredit' => 'à¨\87ਹ à¨\87ੱà¨\95 à¨\9bà©\8bà¨\9fà©\80 à¨¸à©\8bਧ ਹੈ',
+'watchthis' => 'à¨\87ਸ à¨¸à¨«à¨¼à©\87 à¨¤à©\87 à¨¨à¨\9c਼ਰ ਰੱਖੋ',
 'savearticle' => 'ਸਫ਼ਾ ਸੰਭਾਲੋ',
 'preview' => 'ਝਲਕ',
 'showpreview' => 'ਝਲਕ ਵੇਖਾਓ',
@@ -835,9 +834,9 @@ sysop}}|administrator]] ਨਾਲ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ।
 '''ਇਹ ਹਾਲੇ ਸਾਂਭੀ ਨਹੀਂ ਗਈ ਹੈ!'''",
 'updated' => '(ਅੱਪਡੇਟ)',
 'note' => "'''ਨੋਟ:'''",
-'previewnote' => "'''ਯਾਦ ਰੱਖੋ, ਇਹ ਕੇਵਲ ਇੱਕ ਝਲਕ ਹੈ।'''
-ਤà©\81ਹਾਡà©\87 à¨¬à¨¦à¨²à¨¾à¨\85 à¨¹à©\81ਣà©\87 à¨¤à©±à¨\95 à¨¸à¨¾à¨\82ਭà©\87 à¨¨à¨¹à©\80à¨\82 à¨\97à¨\8f à¨¹à¨¨!",
-'continue-editing' => 'ਸੰਪਾਦਨ à¨\96à©\87ਤਰ â\80\99ਤੇ ਜਾਓ',
+'previewnote' => "'''ਯਾਦ ਰੱਖੋ ਇਹ ਸਿਰਫ਼ ਇੱਕ ਝਲਕ ਹੈ।'''
+ਤà©\81ਹਾਡà©\80à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨¹à¨¾à¨²à©\87 à¨¸à¨¾à¨\82ਭà©\80à¨\86à¨\82 à¨¨à¨¹à©\80à¨\82 à¨\97à¨\88à¨\86à¨\82!",
+'continue-editing' => 'ਸà©\8bਧ à¨\96à©\87ਤਰ ਤੇ ਜਾਓ',
 'previewconflict' => 'ਇਹ ਝਲਕ ਲਿਖਤ ਦਾ ਓਹ ਅਕਸ ਪੇਸ਼ ਕਰਦੀ ਹੈ ਜਿਵੇਂ ਓਹ ਤੁਹਾਡੇ ਸਾਂਭੇ ਜਾਣ ਤੋਂ ਬਾਅਦ ਦਿੱਸੇਗਾ।',
 'editing' => '$1 ਸੋਧ ਜਾਰੀ',
 'creating' => '$1 ਬਣਾਇਆ ਜਾ ਰਿਹਾ ਹੈ',
@@ -871,7 +870,7 @@ $1 ਲੁਕਵੀਆਂ ਸ਼੍ਰੇਣੀਆਂ}} ਦਾ ਮੈਂਬਰ 
 'nocreate-loggedin' => 'ਤੁਹਾਨੂੰ ਨਵੇਂ ਸਫ਼ੇ ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
 'permissionserrors' => 'ਅਧਿਕਾਰ ਗਲਤੀਆਂ',
 'permissionserrorstext' => 'ਤੁਹਾਨੂੰ ਇੰਝ ਕਰਨ ਦੇ ਅਧਿਕਾਰ ਨਹੀਂ ਹਨ। ਹੇਠ ਦਿੱਤੇ {{PLURAL:$1|ਕਾਰਨ|ਕਾਰਨ}} ਨੇ:',
-'permissionserrorstext-withaction' => 'ਤà©\81ਹਾਨà©\82à©°  $2 à¨²à¨\88 à¨\85ਧਿà¨\95ਾਰ à¨¨à¨¹à©\80à¨\82 à¨¹à¨¨, à¨\85ੱà¨\97à©\87 à¨¦à¨¿à©±à¨¤à©\87 {{PLURAL:$1|à¨\95ਾਰਨ|à¨\95ਾਰਨਾà¨\82}} à¨\95ਰà¨\95à©\87:',
+'permissionserrorstext-withaction' => 'à¨\85ੱà¨\97à©\87 à¨¦à¨¿à©±à¨¤à©\87 {{PLURAL:$1|à¨\95ਾਰਨ|à¨\95ਾਰਨਾà¨\82}} à¨\95ਰà¨\95à©\87 à¨¤à©\81ਹਾਡà©\87 à¨\95à©\8bਲ $2 à¨²à¨\88 à¨¹à©±à¨\95 à¨¨à¨¹à©\80à¨\82 à¨¹à¨¨:',
 'recreate-moveddeleted-warn' => "'''ਚਿਤਾਵਣੀ:
 ਤੁਸੀਂ ਐਸਾ ਪੰਨਾ ਬਣਾ ਰਹੇ ਹੋ ਜੋ ਪਹਿਲਾਂ ਹਟਾਇਆ ਜਾ ਚੁੱਕਾ ਹੈ।'''
 
@@ -927,10 +926,10 @@ $3 ਨੇ ਕਾਰਨ ਇਹ ਦੱਸਿਆ ਹੈ, ''$2''",
 'last' => 'ਪਿੱਛੇ',
 'page_first' => 'ਪਹਿਲਾਂ',
 'page_last' => 'ਆਖਰੀ',
-'histlegend' => "à¨\85ੰਤਰ ਵੇਖੋ:
-ਮੁਕਾਬਲਾ ਕਰਨ ਲਈ ਰੀਵਿਜਨਾਂ ਦੇ ਰੇਡੀਓ ਬਟਨਾਂ ਵਿੱਚ ਨਿਸ਼ਾਨ ਲਾਓ ਅਤੇ ਜਾਓ ਜਾਂ ਸਭ ਤੋਂ ਥੱਲੇ ਵਾਲੇ ਬਟਨ ਤੇ ਕਲਿੱਕ ਕਰੋ। <br />
+'histlegend' => "ਫ਼ਰà¨\95 ਵੇਖੋ:
+ਮੁਕਾਬਲਾ ਕਰਨ ਲਈ ਰੀਵਿਜਨਾਂ ਦੇ ਰੇਡੀਓ ਬਟਨਾਂ ਵਿੱਚ ਨਿਸ਼ਾਨ ਲਾਓ ਅਤੇ \"ਜਾਓ\" ਜਾਂ ਸਭ ਤੋਂ ਥੱਲੇ ਵਾਲੇ ਬਟਨ ਤੇ ਕਲਿੱਕ ਕਰੋ। <br />
 ਲੈਜਅੰਡ:
-'''({{int:cur}})''' = à¨¨à¨µà©\87à¨\82 à¨°à©\80ਵਿà¨\9cਨ à¨¨à¨¾à¨²à©\8bà¨\82 à¨\85ੰਤਰ, '''({{int:last}})''' = à¨ªà¨¿à©±à¨\9bਲà©\80 à¨°à©\80ਵਿà¨\9cਨ à¨¨à¨¾à¨²à©\8bà¨\82 à¨\85ੰਤਰ, '''({{int:minoreditletter}})''' = à¨\9bà©\8bà¨\9fਾ à¨¬à¨¦à¨²à¨¾à¨µ।",
+'''({{int:cur}})''' = à¨¨à¨µà©\87à¨\82 à¨°à©\80ਵਿà¨\9cਨ à¨¨à¨¾à¨²à©\8bà¨\82 à¨«à¨¼à¨°à¨\95, '''({{int:last}})''' = à¨ªà¨¿à¨\9bਲà©\87 à¨°à©\80ਵਿà¨\9cਨ à¨¨à¨¾à¨²à©\8bà¨\82 à¨«à¨¼à¨°à¨\95, '''({{int:minoreditletter}})''' = à¨\9bà©\8bà¨\9fà©\80 à¨¤à¨¬à¨¦à©\80ਲà©\80।",
 'history-fieldset-title' => 'ਬਰਾਊਜ਼ਰ ਅਤੀਤ',
 'history-show-deleted' => 'ਕੇਵਲ ਹਟਾਏ ਗਏ',
 'histfirst' => 'ਸਭ ਤੋਂ ਪਹਿਲਾਂ ਦੇ',
@@ -1026,7 +1025,7 @@ page={{FULLPAGENAMEE}}}} ਜ਼ਬਤੀ ਦੇ ਚਿੱਠੇ] ਵਿਚ ਵ
 'mergelogpagetext' => 'ਹੇਠਾਂ ਇੱਕ ਸਫ਼ੇ ਦੇ ਅਤੀਤ ਨੂੰ ਦੂਜੇ ਦੇ ਅਤੀਤ ਵਿਚ ਰਲ਼ਾਉਣ ਦੀ ਸਭ ਤੋਂ ਤਾਜ਼ਾ ਲਿਸਟ ਹੈ।',
 
 # Diffs
-'history-title' => 'ਰੀਵਿਜਨ ਦਾ ਇਤਿਹਾਸ "$1"',
+'history-title' => '"$1" ਦੇ ਰੀਵਿਜਨ ਦਾ ਅਤੀਤ',
 'difference-title' => '"$1" ਦੇ ਰੀਵਿਜ਼ਨਾਂ ਵਿਚ ਫ਼ਰਕ',
 'difference-title-multipage' => 'ਸਫ਼ਿਆਂ "$1" ਅਤੇ "$2" ਵਿਚ ਫ਼ਰਕ',
 'difference-multipage' => '(ਦੋ ਸਫ਼ਿਆਂ ਵਿਚਕਾਰ ਫ਼ਰਕ)',
@@ -1128,7 +1127,7 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'saveprefs' => 'ਸੰਭਾਲੋ',
 'resetprefs' => 'ਰੀ-ਸੈੱਟ',
 'restoreprefs' => 'ਸਭ ਮੂਲ ਸੈਟਿੰਗ ਮੁੜ-ਸਟੋਰ ਕਰੋ',
-'prefs-editing' => 'ਸੰਪਾਦਨ ਜਾਰੀ',
+'prefs-editing' => 'ਸà©\8bਧ ਜਾਰੀ',
 'prefs-edit-boxsize' => 'ਸੋਧ ਖਿੜਕੀ ਦਾ ਅਕਾਰ',
 'rows' => 'ਕਤਾਰਾਂ:',
 'columns' => 'ਕਾਲਮ:',
@@ -1170,7 +1169,7 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'yourrealname' => 'ਅਸਲੀ ਨਾਮ:',
 'yourlanguage' => 'ਭਾਸ਼ਾ:',
 'yourvariant' => 'ਸਮੱਗਰੀ ਭਾਸ਼ਾ ਰੂਪ:',
-'yournick' => 'ਨਵà©\87à¨\82 à¨¹à¨¸à¨¤à¨¾à¨\96ਰ:',
+'yournick' => 'ਨਵà©\87à¨\82 à¨¦à¨¸à¨¤à¨\96਼ਤ:',
 'prefs-help-signature' => 'ਗੱਲ-ਬਾਤ ਸਫ਼ਿਆਂ ਉੱਤੇ ਟਿੱਪਣੀਆਂ ਦੇ ਆਖ਼ਰ ਵਿਚ "<nowiki>~~~~</nowiki>" ਲਾਓ ਜੋ ਤੁਹਾਡੇ ਦਸਤਖ਼ਤ ਅਤੇ ਵਕਤ ਦੀ ਮੋਹਰ ਵਿਚ ਤਬਦੀਲ ਹੋ ਜਾਵੇਗਾ।',
 'badsiglength' => 'ਦਸਤਖ਼ਤ ਬਹੁਤ ਲੰਬਾ ਹੋ ਗਿਆ ਹੈ। ਇਹ {{PLURAL:$1|ਅੱਖਰ|ਅੱਖਰਾਂ}} ਤੋਂ ਲੰਬਾ ਨਹੀਂ ਹੋਣਾ ਚਾਹੀਦਾ।',
 'yourgender' => 'ਲਿੰਗ:',
@@ -1186,7 +1185,7 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'prefs-info' => 'ਮੁੱਢਲੀ ਜਾਣਕਾਰੀ',
 'prefs-i18n' => 'ਅੰਤਰਰਾਸ਼ਟਰੀਕਰਨ',
 'prefs-signature' => 'ਦਸਤਖ਼ਤ',
-'prefs-dateformat' => 'ਮਿਤà©\80 à¨¦à©\80 à¨¸à¨¼à©\88ਲà©\80',
+'prefs-dateformat' => 'ਮਿਤà©\80 à¨¦à¨¾ à¨\85ੰਦਾà¨\9c਼',
 'prefs-advancedediting' => 'ਤਕਨੀਕੀ ਚੋਣਾਂ',
 'prefs-advancedrc' => 'ਤਕਨੀਕੀ ਚੋਣਾਂ',
 'prefs-advancedrendering' => 'ਤਕਨੀਕੀ ਚੋਣਾਂ',
@@ -1241,8 +1240,8 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'right-upload_by_url' => 'URL ਤੋਂ ਫਾਇਲਾਂ ਅੱਪਲੋਡ ਕਰੋ',
 'right-autoconfirmed' => 'ਨੀਮ-ਸੁਰੱਖਿਅਤ ਸਫ਼ਿਆਂ ਨੂੰ ਸੋਧਣਾ',
 'right-delete' => 'ਸਫ਼ੇ ਹਟਾਓ',
-'right-bigdelete' => 'ਵੱਡà©\87 à¨\87ਤਿਹਾਸ à¨µà¨¾à¨²à©\87 à¨ªà©°à¨¨à©\87 à¨¹ਟਾਉਣੇ',
-'right-browsearchive' => 'ਹà¨\9fਾà¨\8f à¨\97à¨\8f à¨ªà©°à¨¨ੇ ਖੋਜੋ',
+'right-bigdelete' => 'ਵੱਡà©\87 à¨\85ਤà©\80ਤ à¨µà¨¾à¨²à©\87 à¨ªà©°à¨¨à©\87 à¨®à¨¿ਟਾਉਣੇ',
+'right-browsearchive' => 'ਮਿà¨\9fਾà¨\8f à¨¹à©\8bà¨\8f à¨¸à¨«à¨¼ੇ ਖੋਜੋ',
 'right-undelete' => 'ਸਫ਼ੇ ਨੂੰ ਅਣ-ਮਿਟਾਇਆ ਕਰਨਾ',
 'right-suppressionlog' => 'ਪ੍ਰਾਈਵੇਟ ਚਿੱਠੇ ਵੇਖਣਾ',
 'right-block' => 'ਦੂਜੇ ਮੈਂਬਰਾਂ ਦੇ ਸੋਧ ਕਰਨ ਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ',
@@ -1265,9 +1264,9 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'rightslogtext' => 'ਇਹ ਮੈਂਬਰ ਹੱਕਾਂ ਵਿਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਦਾ ਚਿੱਠਾ ਹੈ।',
 
 # Associated actions - in the sentence "You do not have permission to X"
-'action-read' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨ªà©\9cà©\8dਹà©\8bà¨\82',
+'action-read' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨ªà©\9cà©\8dਹà©\8b',
 'action-edit' => 'ਇਹ ਪੰਨੇ ਨੂੰ ਸੰਪਾਦਿਤ ਕਰਨ',
-'action-createpage' => 'ਪੰਨੇ ਬਣਾਓ',
+'action-createpage' => 'ਸਫ਼ੇ ਬਣਾਓ',
 'action-createtalk' => 'ਚਰਚਾ ਸਫ਼ੇ ਬਣਾਉਣ',
 'action-createaccount' => 'ਇਹ ਵਰਤੋਂਕਾਰ ਖਾਤਾ ਬਣਾਓ',
 'action-minoredit' => 'ਇਹ ਸੋਧ ਨੂੰ ਛੋਟੀ ਤੌਰ ਉੱਤੇ ਮੰਨੋ',
@@ -1279,8 +1278,8 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'action-reupload-shared' => 'ਇਹ ਫਾਇਲ ਨੂੰ ਸਾਂਝੀ ਕੀਤੀ ਰਿਪੋਜ਼ਟਰੀ ਉੱਤੇ ਲਿਖੋ',
 'action-upload_by_url' => 'ਇਹ ਫਾਇਲ ਨੂੰ URL ਤੋਂ ਅੱਪਲੋਡ ਕਰੋ',
 'action-writeapi' => 'ਲਿਖਣ API ਵਰਤੋਂ',
-'action-delete' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨¹ਟਾਓ',
-'action-deleterevision' => 'à¨\87ਹ à¨°à©\80ਵਿà¨\9cਨ à¨¹ਟਾਓ',
+'action-delete' => 'à¨\87ਹ à¨ªà©°à¨¨à¨¾ à¨®à¨¿ਟਾਓ',
+'action-deleterevision' => 'à¨\87ਹ à¨°à©\80ਵਿà¨\9cਨ à¨®à¨¿ਟਾਓ',
 'action-deletedhistory' => 'ਇਸ ਸਫ਼ੇ ਦਾ ਮਿਟਾਇਆ ਅਤੀਤ ਵੇਖਣ',
 'action-browsearchive' => 'ਮਿਟਾਏ ਸਫ਼ੇ ਖੋਜਣ',
 'action-undelete' => 'ਇਹ ਸਫ਼ਾ ਅਣ-ਮਿਟਿਆ ਕਰਨ',
@@ -1298,27 +1297,27 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'action-sendemail' => 'ਈ-ਮੇਲਾਂ ਭੇਜੋ',
 
 # Recent changes
-'nchanges' => '$1 {{PLURAL:$1|ਬਦਲਾà¨\85}}',
-'recentchanges' => 'ਹਾਲ â\80\99à¨\9a à¨¹à©\8bà¨\8f à¨¬à¨¦à¨²à¨¾à¨\85',
-'recentchanges-legend' => 'ਹਾਲ à¨¦à©\87 à¨ªà¨°à¨¿à¨µà¨°à¨¤à¨¨ à¨¸à¨¬à©°à¨§à©\80 à¨µà¨¿à¨\95ਲਪ',
+'nchanges' => '$1 {{PLURAL:$1|ਤਬਦà©\80ਲà©\80|ਤਬਦà©\80ਲà©\80à¨\86à¨\82}}',
+'recentchanges' => 'ਹਾਲ â\80\99à¨\9a à¨¹à©\8bà¨\88à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82',
+'recentchanges-legend' => 'ਹਾਲ à¨¦à©\80à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨¸à¨¬à©°à¨§à©\80 à¨\9aà©\8bਣਾà¨\82',
 'recentchanges-summary' => 'ਇਸ ਵਿਕੀ ’ਤੇ ਹੋਈਆਂ ਸਭ ਤੋਂ ਨਵੀਆਂ ਤਬਦੀਲੀਆਂ ਇਸ ਸਫ਼ੇ ’ਤੇ ਵੇਖੋ।',
-'recentchanges-feed-description' => 'ਇਸ ਵਿਕੀ ਪਰ ਹਾਲ ਵਿਚ ਹੋਏ ਬਦਲਾਅ ਇਸ ਫ਼ੀਡ ਵਿਚ ਦੇਖੇ ਜਾ ਸਕਦੇ ਹਨ।',
-'recentchanges-label-newpage' => 'à¨\87ਹ à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨¨à¨¾à¨² à¨¨à¨µà¨¾à¨\82 à¨ªà©°à¨¨à¨¾ à¨¬à¨£à¨¾à¨\87à¨\86 à¨\97ਿà¨\86',
-'recentchanges-label-minor' => 'à¨\87ਹ à¨\87ੱà¨\95 à¨\9bà©\8bà¨\9fਾ à¨¬à¨¦à¨²à¨¾à¨\85 ਹੈ',
-'recentchanges-label-bot' => 'à¨\87ਹ à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨\87ੱà¨\95 à¨¬à©\8bà¨\9fਾ à¨¦à©\81à¨\86ਰਾ à¨\95à©\80ਤਾ à¨\97ਿà¨\86 ਸੀ',
+'recentchanges-feed-description' => 'ਇਸ ਵਿਕੀ ’ਤੇ ਹਾਲ ‘ਚ ਹੋਈਆਂ ਤਬਦੀਲੀਆਂ ਇਸ ਫ਼ੀਡ ’ਚ ਵੇਖੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ।',
+'recentchanges-label-newpage' => 'à¨\87ਸ à¨¸à©\8bਧ à¨¨à©\87 à¨¨à¨µà¨¾à¨\82 à¨ªà©°à¨¨à¨¾ à¨¬à¨£à¨¾à¨\87à¨\86 à¨¹à©\88',
+'recentchanges-label-minor' => 'à¨\87ਹ à¨\87ੱà¨\95 à¨\9bà©\8bà¨\9fà©\80 à¨¸à©\8bਧ ਹੈ',
+'recentchanges-label-bot' => 'à¨\87ਹ à¨¸à©\8bਧ à¨\87ੱà¨\95 à¨¬à©\8bà¨\9f à¨¦à©\81à¨\86ਰਾ à¨\95à©\80ਤà©\80 à¨\97à¨\88 ਸੀ',
 'recentchanges-label-unpatrolled' => 'ਇਹ ਫੇਰ-ਬਦਲ ਹਾਲੇ ਵੇਖਿਆ ਨਹੀਂ ਗਿਆ',
 'rcnote' => "$4, $5 ਤੱਕ ਆਖਰੀ {{PLURAL:$2|ਦਿਨ|'''$2''' ਦਿਨਾਂ}} ਵਿੱਚ {{PLURAL:$1|'''1''' ਬਦਲੀ ਹੋਈ ਹੈ।|'''$1''' ਬਦਲੀਆਂ ਹੋਈਆਂ ਹਨ।}}",
 'rcnotefrom' => "'''$2''' ਤੱਕ ('''$1''' ਤੱਕ ਦਿੱਸਦੇ) ਬਦਲਾਵ ਹੇਠ ਦਿੱਤੀਆਂ ਹਨ।",
-'rclistfrom' => '$1 à¨¤à©\8bà¨\82 à¨¸à¨¼à©\81ਰà©\82 à¨\95ਰà¨\95à©\87 à¨¨à¨µà©\87à¨\82 à¨¬à¨¦à¨²à¨¾à¨\85 à¨µà©\87ਖਾਓ',
-'rcshowhideminor' => '$1 ਛੋਟੇ ਬਦਲਾਅ',
+'rclistfrom' => '$1 à¨¤à©\8bà¨\82 à¨¸à¨¼à©\81ਰà©\82 à¨\95ਰà¨\95à©\87 à¨¨à¨µà©\80à¨\86à¨\82 à¨¸à©\8bਧਾà¨\82 à¨µਖਾਓ',
+'rcshowhideminor' => 'ਛੋਟੀਆਂ ਤਬਦੀਲੀਆਂ $1',
 'rcshowhidebots' => '$1 ਬੋਟ',
 'rcshowhideliu' => '$1 ਲਾਗਇਨ ਹੋਏ ਵਰਤੋਂਕਾਰ',
-'rcshowhideanons' => '$1 ਆਈ॰ਪੀ ਵਰਤੋਂਕਾਰਾਂ ਦੇ ਬਦਲਾਅ',
-'rcshowhidepatr' => 'à¨\9cਾà¨\82à¨\9aà©\87 à¨¹à©\8bà¨\8f à¨¸à©°à¨ªà¨¾à¨¦à¨¨ $1',
-'rcshowhidemine' => 'ਮà©\87ਰà©\87 à¨¬à¨¦à¨²à¨¾à¨\85  $1',
-'rclinks' => 'ਪਿੱà¨\9bਲà©\87 $2 à¨¦à¨¿à¨¨à¨¾à¨\82 à¨µà¨¿à©±à¨\9a à¨¹à©\8bà¨\8f $1 à¨¬à¨¦à¨²à¨¾à¨\85 à¨µà©\87ਖਾਓ<br /> $3',
-'diff' => 'à¨\85ੰਤਰ',
-'hist' => 'à¨\87ਤਿਹਾਸ',
+'rcshowhideanons' => 'ਅਣਜਾਣ ਵਰਤੋਂਕਾਰ $1',
+'rcshowhidepatr' => 'à¨\9cਾà¨\82à¨\9aà©\80à¨\86à¨\82 à¨¹à©\8bà¨\88à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 $1',
+'rcshowhidemine' => 'ਮà©\87ਰà©\80à¨\86à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82  $1',
+'rclinks' => 'ਪਿà¨\9bਲà©\87 $2 à¨¦à¨¿à¨¨à¨¾à¨\82 à¨µà¨¿à©±à¨\9a à¨¹à©\8bà¨\88à¨\86à¨\82 $1 à¨¤à¨¬à¨¦à©\80ਲà©\80à¨\86à¨\82 à¨µਖਾਓ<br /> $3',
+'diff' => 'ਫ਼ਰà¨\95',
+'hist' => 'à¨\85ਤà©\80ਤ',
 'hide' => 'ਲੁਕਾਓ',
 'show' => 'ਵੇਖਾਓ',
 'minoreditletter' => 'ਛੋ',
@@ -1328,7 +1327,7 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'rc_categories_any' => 'ਕੋਈ ਵੀ',
 'newsectionsummary' => '/* $1 */ ਨਵਾਂ ਭਾਗ',
 'rc-enhanced-expand' => 'ਵੇਰਵਾ ਵੇਖਾਓ (ਜਾਵਾਸਕ੍ਰਿਪਟ ਲੋੜੀਂਦੀ ਹੈ)',
-'rc-enhanced-hide' => 'ਵà©\87ਰਵਾ à¨\9bà©\81ਪਾਓ',
+'rc-enhanced-hide' => 'ਵà©\87ਰਵਾ à¨²à©\81à¨\95ਾਓ',
 'rc-old-title' => 'ਅਸਲ ਵਿੱਚ "$1" ਵਜੋਂ ਬਣਾਇਆ',
 
 # Recent changes linked
@@ -1342,7 +1341,7 @@ $3|'''1''' ਨਤੀਜਾ|'''$3''' ਨਤੀਜੇ}} ਵਖਾਓ।",
 'recentchangeslinked-to' => 'ਇਸਦੇ ਬਦਲੇ ਇਸ ਪੰਨੇ ਨਾਲ ਜੁੜੇ ਪੰਨਿਆਂ ਵਿੱਚ ਹੋਏ ਬਦਲਾਅ ਵਿਖਾਓ',
 
 # Upload
-'upload' => 'ਫਾਈਲ ਅਪਲੋਡ ਕਰੋ',
+'upload' => 'ਫ਼ਾà¨\88ਲ à¨\85ਪਲà©\8bਡ à¨\95ਰà©\8b',
 'uploadbtn' => 'ਫਾਇਲ ਅੱਪਲੋਡ ਕਰੋ',
 'reuploaddesc' => 'ਅੱਪਲੋਡ ਫਾਰਮ ਉੱਤੇ ਜਾਓ।',
 'uploadnologin' => 'ਲਾਗਇਨ ਨਹੀਂ ਹੋ',
@@ -1367,7 +1366,7 @@ to upload files.',
 'filetype-missing' => 'ਫਾਇਲ ਦੀ ਕੋਈ ਐਕਸ਼ਟੇਸ਼ਨ ਨਹੀਂ ਹੈ (ਜਿਵੇਂ ".jpg").',
 'empty-file' => 'ਤੁਹਾਡੇ ਵਲੋਂ ਦਿੱਤੀ ਫਾਇਲ ਖਾਲੀ ਸੀ।',
 'file-too-large' => 'ਤੁਹਾਡੇ ਵਲੋਂ ਦਿੱਤੀ ਫਾਇਲ ਬਹੁਤ ਵੱਡੀ ਸੀ।',
-'filename-tooshort' => 'ਫਾà¨\88ਲ à¨¬à¨¹à©\81ਤ à¨\9bà©\8bà¨\9fà©\80 ਹੈ।',
+'filename-tooshort' => 'ਫ਼ਾà¨\88ਲ à¨¦à¨¾ à¨¨à¨¾à¨\82 à¨¬à¨¹à©\81ਤ à¨\9bà©\8bà¨\9fਾ ਹੈ।',
 'filetype-banned' => 'ਇਸ ਕਿਸਮ ਦੀ ਫਾਈਲ ਦੀ ਮਨਾਹੀ ਹੈ।',
 'verification-error' => 'ਇਹ ਫਾਇਲ ਫਾਇਲ ਜਾਂਚ ਪੂਰੀ ਨਹੀਂ ਕਰਦੀ ਹੈ।',
 'illegal-filename' => 'ਇਸ ਫਾਈਲ-ਨਾਮ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।',
@@ -1410,7 +1409,7 @@ to upload files.',
 'backend-fail-store' => 'ਫ਼ਾਈਲ "$1", "$2" ਵਿਚ ਸਾਂਭੀ ਨਹੀਂ ਜਾ ਸਕੀ।',
 'backend-fail-copy' => 'ਫ਼ਾਈਲ "$1", "$2" ਵਿਚ ਨਕਲ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕੀ।',
 'backend-fail-move' => 'ਫ਼ਾਈਲ "$1", "$2" ਤੇ ਭੇਜੀ ਨਹੀਂ ਜਾ ਸਕੀ।',
-'backend-fail-opentemp' => 'à¨\85ਸਥਾà¨\88 à¨«ਾਈਲ ਖੋਲ੍ਹੀ ਨਹੀਂ ਜਾ ਸਕੀ।',
+'backend-fail-opentemp' => 'à¨\86ਰà¨\9c਼à©\80 à¨«à¨¼ਾਈਲ ਖੋਲ੍ਹੀ ਨਹੀਂ ਜਾ ਸਕੀ।',
 
 # Special:UploadStash
 'uploadstash-refresh' => 'ਫ਼ਾਈਲਾਂ ਦੀ ਲਿਸਟ ਨੂੰ ਤਾਜ਼ਾ ਕਰੋ',
@@ -1444,7 +1443,7 @@ to upload files.',
 
 # File description page
 'file-anchor-link' => 'ਫਾਈਲ',
-'filehist' => 'ਫਾà¨\88ਲ à¨¦à¨¾ à¨\87ਤਿਹਾਸ',
+'filehist' => 'ਫ਼ਾà¨\88ਲ à¨¦à¨¾ à¨\85ਤà©\80ਤ',
 'filehist-help' => 'ਤਾਰੀਖ/ਸਮੇਂ ’ਤੇ ਕਲਿੱਕ ਕਰੋ ਤਾਂ ਉਸ ਸਮੇਂ ਦੀ ਫਾਈਲ ਪੇਸ਼ ਹੋ ਜਾਵੇਗੀ।',
 'filehist-deleteall' => 'ਸਭ ਹਟਾਓ',
 'filehist-deleteone' => 'ਇਹ ਹਟਾਓ',
@@ -1531,7 +1530,7 @@ to upload files.',
 'statistics-pages-desc' => 'ਇਸ ਵਿਕੀ ਦੇ ਸਾਰੇ ਸਫ਼ੇ, ਗੱਲ-ਬਾਤ ਸਫ਼ਿਆਂ, ਰੀਡਾਇਰੈਕਟਾਂ ਇਤਿਆਦਿ ਨੂੰ ਸ਼ਾਮਲ ਕਰਦੇ ਹੋਏ',
 'statistics-files' => 'ਅਪਲੋਡ ਕੀਤੀਆਂ ਗਈਆਂ ਫਾਈਲਾਂ',
 'statistics-edits-average' => 'ਪ੍ਰਤੀ ਸਫ਼ਾ ਔਸਤਨ ਸੋਧਾਂ',
-'statistics-users' => 'ਪੰà¨\9cà©\80à¨\95ਰਿਤ [[Special:ListUsers|ਵਰਤà©\8bà¨\82à¨\95ਾਰਾà¨\82]]',
+'statistics-users' => 'ਰà¨\9cਿਸà¨\9fà©\8dਰਡ [[Special:ListUsers|ਵਰਤà©\8bà¨\82à¨\95ਾਰ]]',
 'statistics-users-active' => 'ਸਰਗਰਮ ਯੂਜ਼ਰ',
 'statistics-users-active-desc' => 'ਮੈਂਬਰ, ਜਿੰਨ੍ਹਾ ਨੇ ਆਖ਼ਰੀ {{PLURAL:$1|ਦਿਨ|$1 ਦਿਨਾਂ}} ਵਿਚ ਕੋਈ ਕੰਮ ਕੀਤਾ ਹੈ।',
 'statistics-mostpopular' => 'ਸਭ ਤੋਂ ਵੱਧ ਵੇਖੇ ਸਫ਼ੇ',
@@ -1583,8 +1582,8 @@ to upload files.',
 'newpages' => 'ਨਵੇਂ ਸਫ਼ੇ',
 'newpages-username' => 'ਯੂਜ਼ਰ-ਨਾਂ:',
 'ancientpages' => 'ਸਭ ਤੋਂ ਪੁਰਾਣੇ ਪੇਜ',
-'move' => 'ਸਥਾਨਾà¨\82ਤਰਨ',
-'movethispage' => 'ਪà©\87à¨\9c à¨¦à¨¾ à¨¨à¨¾à¨® à¨¬à¨¦à¨²ੋ',
+'move' => 'ਸਿਰਲà©\87à¨\96 à¨¬à¨¦à¨²à©\8b',
+'movethispage' => 'à¨\87ਹ à¨¸à¨«à¨¼à¨¾ à¨­à©\87à¨\9cੋ',
 'unusedcategoriestext' => 'ਇਹ ਕੈਟੇਗਰੀ ਸਫ਼ੇ ਮੌਜੂਦ ਹਨ ਹਾਲਾਂਕਿ ਕਿਸੇ ਵੀ ਸਫ਼ੇ ਜਾਂ ਕੈਟੇਗਰੀ ਨੇ ਇਹਨਾਂ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ।',
 'notargettitle' => 'ਟਾਰਗੇਟ ਨਹੀਂ',
 'pager-newer-n' => '{{PLURAL:$1|1 ਨਵਾਂ|$1 ਨਵੇਂ}}',
@@ -1697,7 +1696,7 @@ to upload files.',
 
 # Watchlist
 'watchlist' => 'ਨਿਗਰਾਨ-ਸੂਚੀ',
-'mywatchlist' => 'ਧਿà¨\86ਨਸà©\82à¨\9aà©\80',
+'mywatchlist' => 'ਨਿà¨\97ਰਾਨà©\80-ਲਿਸà¨\9f',
 'watchlistfor2' => '$1 $2 ਲਈ',
 'nowatchlist' => 'ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ ਕੋਈ ਚੀਜ਼ ਨਹੀਂ ਹੈ।',
 'watchlistanontext' => 'ਆਪਣੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚਲੀਆਂ ਚੀਜ਼ਾਂ ਵੇਖਣ ਜਾਂ ਸੋਧਣ ਲਈ ਮਿਹਰਬਾਨੀ ਕਰਕੇ $1।',
@@ -1719,8 +1718,8 @@ to upload files.',
 'watchlistcontains' => 'ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ-ਲਿਸਟ ਵਿਚ $1 {{PLURAL:$1|ਸਫ਼ਾ ਹੈ|ਸਫ਼ੇ ਹਨ}}।',
 'wlnote' => "$3, $4 ਮੁਤਾਬਕ ਆਖ਼ਰੀ {{PLURAL:$2|ਘੰਟੇ|'''$2''' ਘੰਟਿਆਂ}} ਵਿਚ {{PLURAL:
 $1|ਤਬਦੀਲੀ ਹੋਈ|'''$1''' ਤਬਦੀਲੀਆਂ ਹੋਈਆਂ}}, ਹੇਠਾਂ ਵੇਖੋ।",
-'wlshowlast' => 'ਪਿੱà¨\9bਲà©\87 $1 à¨\98à©°à¨\9fà©\87 $2 à¨¦à¨¿à¨¨ $3 à¨µà©\87à¨\96à©\8b',
-'watchlist-options' => 'ਧਿà¨\86ਨਸà©\82à¨\9aà©\80 à¨µà¨¿à¨\95ਲਪ',
+'wlshowlast' => 'ਪਿà¨\9bਲà©\87 $1 à¨\98à©°à¨\9fà©\87 $2 à¨¦à¨¿à¨¨ $3 à¨µà¨\96ਾà¨\93',
+'watchlist-options' => 'ਨਿà¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨\9aà©\8bਣਾà¨\82',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'ਨਿਗ੍ਹਾ (ਵਾਚ) ਰੱਖੀ ਜਾ ਰਹੀ ਹੈ...',
@@ -1876,11 +1875,11 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'whatlinkshere-hideredirs' => 'ਅਸਿੱਧੇ ਰਾਹ $1',
 'whatlinkshere-hidetrans' => '$1 ਇੱਥੇ ਕੀ ਕੀ ਜੁੜਦਾ ਹੈ।',
 'whatlinkshere-hidelinks' => '$1 ਲਿੰਕ',
-'whatlinkshere-hideimages' => 'ਫਾਈਲ ਲਿੰਕ $1',
+'whatlinkshere-hideimages' => 'ਫ਼ਾà¨\88ਲ à¨²à¨¿à©°à¨\95 $1',
 'whatlinkshere-filters' => 'ਫਿਲਟਰ',
 
 # Block/unblock
-'blockip' => 'à¨\85ਵਰà©\8bਧਤ à¨\95ਰà©\8b',
+'blockip' => 'ਪਾਬੰਦà©\80ਸ਼à©\81ਦਾ à¨µà¨°à¨¤à©\8bà¨\82à¨\95ਾਰ',
 'ipadressorusername' => 'IP ਐਡਰੈਸ ਜਾਂ ਯੂਜ਼ਰ ਨਾਂ:',
 'ipbexpiry' => 'ਮਿਆਦ:',
 'ipbreason' => 'ਕਾਰਨ:',
@@ -1953,7 +1952,7 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'lockdb' => 'ਡਾਟਾਬੇਸ ਲਾਕ',
 
 # Move page
-'move-page-legend' => 'ਪੰਨਾ à¨¸à¨¥à¨¾à¨¨à¨¾à¨\82ਤਰਨ',
+'move-page-legend' => 'ਸਫ਼ਾ à¨­à©\87à¨\9cà©\8b',
 'movearticle' => 'ਸਫ਼ਾ ਭੇਜੋ:',
 'movenologin' => 'ਲਾਗਇਨ ਨਹੀਂ ਹੋ',
 'movenologintext' => 'ਇਕ ਸਫ਼ੇ ਦਾ ਸਿਰਲੇਖ ਬਦਲਣ ਲਈ ਤੁਸੀਂ ਰਜਿਸਟਰਡ ਮੈਂਬਰ ਹੋਣੇ ਚਾਹੀਦੇ ਹੋ ਅਤੇ [[Special:UserLogin|ਲਾਗਇਨ]] ਕੀਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ।',
@@ -1965,9 +1964,9 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'movepage-moved-redirect' => 'ਇੱਕ ਰੀਡਿਰੈਕਟ ਬਣਾ ਦਿੱਤਾ ਗਿਆ।',
 'articleexists' => 'ਇਸ ਨਾਮ ਦਾ ਸਫ਼ਾ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ ਜਾਂ ਤੁਹਾਡਾ ਚੁਣਿਆ ਹੋਇਆ ਨਾਮ ਸਹੀ ਨਹੀਂ ਹੈ।
 ਮਿਹਰਬਾਨੀ ਕਰਕੇ ਕੋਈ ਹੋਰ ਨਾਮ ਚੁਣੋ।',
-'movedto' => 'ਮà©\82ਵ à¨\95à©\80ਤਾ',
+'movedto' => 'ਭà©\87à¨\9cਿà¨\86',
 'movepage-page-moved' => 'ਸਫ਼ਾ $1 ਨੂੰ $2 ’ਤੇ ਭੇਜਿਆ ਜਾ ਚੁੱਕਾ ਹੈ।',
-'movelogpage' => 'ਸਥਾਨਾà¨\82ਤਰਣ ਦਾ ਚਿੱਠਾ',
+'movelogpage' => 'ਸਿਰਲà©\87à¨\96 à¨¬à¨¦à¨²à©\80 ਦਾ ਚਿੱਠਾ',
 'movereason' => 'ਕਾਰਨ:',
 'revertmove' => 'ਉਲਟਾਓ',
 'delete_and_move' => 'ਹਟਾਓ ਅਤੇ ਮੂਵ ਕਰੋ',
@@ -2040,7 +2039,7 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'tooltip-p-logo' => 'ਮੁੱਖ ਪੰਨੇ ’ਤੇ ਜਾਓ',
 'tooltip-n-mainpage' => 'ਮੁੱਖ ਪੰਨੇ ’ਤੇ ਜਾਓ',
 'tooltip-n-mainpage-description' => 'ਮੁੱਖ ਪੰਨੇ ’ਤੇ ਜਾਓ',
-'tooltip-n-portal' => 'ਪਰਯà©\8bà¨\9cਨਾ à¨¬à¨¾à¨°à©\87, à¨¤à©\81ਸà©\80à¨\82 à¨\95à©\80 à¨\95ਰ à¨¸à¨\95ਦà©\87 à¨¹à©\8b, à¨\95ਿੱਥà©\87 à¨\95à©\81ੱਝ ਲੱਭਣਾ ਹੈ',
+'tooltip-n-portal' => 'ਪà©\8dਰà©\8bà¨\9cà©\88à¨\95à¨\9f à¨¬à¨¾à¨°à©\87, à¨¤à©\81ਸà©\80à¨\82 à¨\95à©\80 à¨\95ਰ à¨¸à¨\95ਦà©\87 à¨¹à©\8b, à¨\95ਿੱਥà©\87 à¨\95à©\81ਝ ਲੱਭਣਾ ਹੈ',
 'tooltip-n-currentevents' => 'ਮੌਜੂਦਾ ਸਮਾਗਮ ਬਾਰੇ ਪਿਛਲੀ ਜਾਣਕਾਰੀ ਲੱਭੋ',
 'tooltip-n-recentchanges' => 'ਵਿਕੀ ਵਿੱਚ ਹਾਲ ’ਚ ਹੋਈਆਂ ਬਦਲੀਆਂ ਦੀ ਸੂਚੀ',
 'tooltip-n-randompage' => 'ਇੱਕ ਰਲਵਾਂ ਪੰਨਾ ਲੋਡ ਕਰੋ',
@@ -2050,15 +2049,15 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'tooltip-feed-atom' => 'ਇਸ ਪੰਨੇ ਦੀ ਐਟਮ ਫ਼ੀਡ',
 'tooltip-t-contributions' => 'ਇਸ ਵਰਤੋਂਕਾਰ ਦੇ ਯੋਗਦਾਨ ਦੀ ਸੂਚੀ',
 'tooltip-t-emailuser' => 'ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਈ-ਮੇਲ ਭੇਜੋ',
-'tooltip-t-upload' => 'à¨\9aਿੱਤਰ à¨\9cਾà¨\82 à¨®à©\80ਡà©\80à¨\86 à¨«ਾਈਲਾਂ ਅਪਲੋਡ ਕਰੋ',
-'tooltip-t-specialpages' => 'ਸਾਰà©\87 à¨µà¨¿à¨¸à¨¼à©\87ਸ਼ à¨ªà©°à¨¨à¨¿à¨\86à¨\82 à¨¦à©\80 à¨¸à©\82à¨\9aà©\80',
+'tooltip-t-upload' => 'ਤਸਵà©\80ਰ à¨\9cਾà¨\82 à¨®à©\80ਡà©\80à¨\86 à¨«à¨¼ਾਈਲਾਂ ਅਪਲੋਡ ਕਰੋ',
+'tooltip-t-specialpages' => 'ਸਾਰà©\87 à¨\96਼ਾਸ à¨ªà©°à¨¨à¨¿à¨\86à¨\82 à¨¦à©\80 à¨²à¨¿à¨¸à¨\9f',
 'tooltip-t-print' => 'ਇਹ ਪੰਨੇ ਦਾ ਛਪਣਯੋਗ ਵਰਜਨ',
 'tooltip-t-permalink' => 'ਪੰਨੇ ਦੇ ਇਸ ਰੀਵਿਜਨ ਲਈ ਪੱਕਾ ਲਿੰਕ',
 'tooltip-ca-nstab-main' => 'ਸਮੱਗਰੀ ਪੰਨਾ ਵੇਖੋ',
 'tooltip-ca-nstab-user' => 'ਵਰਤੋਂਕਾਰ ਪੰਨਾ ਵੇਖੋ',
 'tooltip-ca-nstab-media' => 'ਮੀਡਿਆ ਪੇਜ ਵੇਖੋ',
 'tooltip-ca-nstab-special' => 'ਇਹ ਵਿਸ਼ੇਸ਼ ਪੰਨਾ ਹੈ, ਤੁਸੀਂ ਇਸ ਪੰਨੇ ਨੂੰ ਬਦਲ ਨਹੀਂ ਸਕਦੇ।',
-'tooltip-ca-nstab-project' => 'ਪਰਯà©\8bà¨\9cਨਾ ਪੰਨਾ ਵੇਖੋ',
+'tooltip-ca-nstab-project' => 'ਪà©\8dਰà©\8bà¨\9cà©\88à¨\95à¨\9f ਪੰਨਾ ਵੇਖੋ',
 'tooltip-ca-nstab-image' => 'ਫਾਈਲ ਪੰਨਾ ਵੇਖੋ',
 'tooltip-ca-nstab-mediawiki' => 'ਸਿਸਟਮ ਸੁਨੇਹੇ ਵੇਖੋ',
 'tooltip-ca-nstab-template' => 'ਸਾਂਚਾ ਵੇਖੋ',
@@ -2071,7 +2070,7 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'tooltip-compareselectedversions' => 'ਇਸ ਪੰਨੇ ਦੇ ਦੋ ਚੁਣੇ ਹੋਏ ਸੋਧਾਂ ਵਿੱਚ ਫ਼ਰਕ ਵੇਖੋ',
 'tooltip-watch' => 'ਇਸ ਪੰਨੇ ਨੂੰ ਆਪਣੀ ਧਿਆਨਸੂਚੀ ਵਿੱਚ ਪਾਓ',
 'tooltip-watchlistedit-normal-submit' => 'ਸਿਰਲੇਖ ਹਟਾਓ',
-'tooltip-watchlistedit-raw-submit' => 'ਧਿà¨\86ਨਸà©\82à¨\9aà©\80 à¨¨à©\82à©° à¨\85ਪਡà©\87à¨\9f ਕਰੋ',
+'tooltip-watchlistedit-raw-submit' => 'ਨਿà¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨¤à¨¾à¨\9c਼ਾ ਕਰੋ',
 'tooltip-upload' => 'ਅਪਲੋਡ ਸ਼ੁਰੂ ਕਰੋ',
 'tooltip-rollback' => "''ਵਾਪਸ ਮੋੜੋ'' ਇੱਕ ਹੀ ਕਲਿੱਕ ਨਾਲ ਆਖਰੀ ਯੋਗਦਾਨ ਨੂੰ ਰੱਦ ਕਰ ਦਿੰਦਾ ਹੈ",
 'tooltip-undo' => '"ਉਧੇੜਨਾ" ਇਸ ਬਦਲਾਵ ਨੂੰ ਰੱਦ ਕਰਕੇ ਸੋਧ ਫ਼ਾਰਮ ਨੂੰ ਝਲਕ ਦੇ ਸ਼ੈਲੀ ਵਿੱਚ ਦਿਖਾਉਂਦਾ ਹੈ।
@@ -2098,8 +2097,8 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'skinname-monobook' => 'ਮੋਨੋਬੁੱਕ',
 
 # Browsing diffs
-'previousdiff' => 'â\86\90 à¨ªà©\81ਰਾਣਾ à¨¬à¨¦à¨²à¨¾à¨\85',
-'nextdiff' => 'ਤਾà¨\9cਾ à¨¸à©°à¨ªà¨¾à¨¦à¨¨ →',
+'previousdiff' => 'â\86\90 à¨ªà©\81ਰਾਣà©\80 à¨¤à¨¬à¨¦à©\80ਲà©\80',
+'nextdiff' => 'ਨਵà©\80à¨\82 à¨¤à¨¬à¨¦à©\80ਲà©\80 →',
 
 # Media information
 'thumbsize' => 'ਥੰਮਨੇਲ ਆਕਾਰ:',
@@ -2122,7 +2121,7 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 ਲਾਈਨ ਵਿਚ ਪਹਿਲੀ ਕੜੀ ਗ਼ਲਤ ਫ਼ਾਈਲ ਦੀ ਕੜੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ। ਉਸ ਲਾਈਨ ’ਚ ਅੱਗੇ ਦਿਤੀਆਂ ਕੜੀਆਂ ਨੂੰ ਇਤਰਾਜ਼ਯੋਗ ਮੰਨਿਆ ਜਾਵੇਗਾ, ਭਾਵ ਉਹ ਪੰਨੇ ਜਿਨ੍ਹਾਂ ਵਿਚ ਫ਼ਾਈਲ ਕਿਸੇ ਲਾਈਨ ਵਿਚ ਸਥਿਤ ਹੋ ਸਕਦੀ ਹੈ।',
 
 # Metadata
-'metadata' => 'ਮà©\80à¨\9fਾਡਾਟਾ',
+'metadata' => 'ਮà©\80à¨\9fਾਡà©\88ਟਾ',
 'metadata-help' => 'ਇਸ ਫ਼ਾਈਲ ਵਿੱਚ ਵਾਧੂ ਜਾਣਕਾਰੀਆਂ ਹਨ, ਜੋ ਸ਼ਾਇਦ ਉਸ ਕੈਮਰੇ ਜਾਂ ਸਕੈਨਰ ਦੀ ਦੇਣ ਹਨ ਜੋ ਇਸਨੂੰ ਬਣਾਉਣ ਲਈ ਵਰਤਿਆ ਗਿਆ। ਜੇ ਇਸ ਫ਼ਾਈਲ ਵਿੱਚ ਕੋਈ ਤਬਦੀਲੀ ਕੀਤੀ ਗਈ ਹੈ ਤਾਂ ਹੋ ਸਕਦਾ ਹੈ ਕੁਝ ਵੇਰਵੇ ਬਦਲੀ ਫ਼ਾਈਲ ਦਾ ਸਹੀ ਰੂਪਮਾਨ ਨਾ ਹੋਣ।',
 'metadata-fields' => 'ਇਸ ਸੁਨੇਹੇ ਵਿੱਚ ਸੂਚੀਬੱਧ ਖੇਤਰ ਚਿੱਤਰ ਪੰਨੇ ’ਚ ਸ਼ਾਮਲ ਕੀਤੇ ਜਾਣਗੇ ਜੋ ਉਦੋਂ ਦਿੱਸਦੇ ਹਨ ਜਦੋ ਮੈਟਾਡੈਟਾ ਖਾਕਾ ਬੰਦ ਹੋਵੇ। ਬਾਕੀ ਉਂਞ ਹੀ ਲੁਕੇ ਹੋਣਗੇ।',
 
@@ -2172,7 +2171,7 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'exif-urgency-normal' => 'ਸਧਾਰਨ ($1)',
 
 # External editor support
-'edit-externally' => 'ਬਾਹਰà©\80 à¨\90ਪਲà©\80à¨\95à©\87ਸ਼ਨ à¨µà¨°à¨¤à¨¦à©\87 à¨¹à©\8bà¨\8f à¨\87ਸ à¨«à¨¾à¨\88ਲ à¨¨à©\82à©° à¨¸à©°à¨ªà¨¾à¨¦à¨¨ à¨\95ਰà©\8b।',
+'edit-externally' => 'ਬਾਹਰà©\80 à¨\90ਪਲà©\80à¨\95à©\87ਸ਼ਨ à¨µà¨°à¨¤à¨¦à©\87 à¨¹à©\8bà¨\8f à¨\87ਸ à¨«à¨¾à¨\88ਲ à¨¨à©\82à©° à¨¸à©\8bਧà©\8b',
 'edit-externally-help' => '(ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ [//www.mediawiki.org/wiki/Manual:External_editors setup instructions] ਵੇਖੋ)',
 
 # 'all' in various places, this might be different for inflected languages
@@ -2187,7 +2186,7 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'confirmemail_sent' => 'ਪੁਸ਼ਟੀ ਈਮੇਲ ਭੇਜੀ ਗਈ।',
 'confirmemail_invalid' => 'ਗਲਤ ਪੁਸ਼ਟੀ ਕੋਡ ਹੈ। ਕੋਡ ਦੀ ਮਿਆਦ ਪੁੱਗੀ ਹੋ ਸਕਦੀ ਹੈ।',
 'confirmemail_loggedin' => 'ਤੁਹਾਡਾ ਈ-ਮੇਲ ਪਤਾ ਹੁਣ ਤਸਦੀਕ ਹੋ ਚੁੱਕਾ ਹੈ।',
-'confirmemail_subject' => '{{SITENAME}} ਈਮੇਲ ਐਡਰੈੱਸ ਪੁਸ਼ਟੀ',
+'confirmemail_subject' => '{{SITENAME}} ਈ-ਮੇਲ ਪਤਾ ਤਸਦੀਕ',
 
 # Scary transclusion
 'scarytranscludetoolong' => '[URL ਬਹੁਤ ਲੰਬਾ ਹੈ]',
@@ -2208,7 +2207,7 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'table_pager_next' => 'ਅਗਲਾ ਪੰਨਾ',
 'table_pager_prev' => 'ਪਿਛਲਾ ਪੰਨਾ',
 'table_pager_first' => 'ਪਹਿਲਾ ਪੰਨਾ',
-'table_pager_last' => 'ਆਖਰੀ ਪੰਨਾ',
+'table_pager_last' => 'à¨\86à¨\96਼ਰà©\80 à¨ªà©°à¨¨à¨¾',
 'table_pager_limit' => 'ਹਰੇਕ ਪੇਜ ਲਈ $1 ਆਈਟਮਾਂ',
 'table_pager_limit_label' => 'ਪ੍ਰਤੀ ਸਫ਼ਾ ਆਈਟਮਾਂ:',
 'table_pager_limit_submit' => 'ਜਾਓ',
@@ -2223,14 +2222,14 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'livepreview-ready' => '…ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ। ਤਿਆਰ!',
 
 # Watchlist editor
-'watchlistedit-normal-title' => 'ਧਿà¨\86ਨਸà©\82à¨\9aà©\80 à¨¬à¨¦à¨²ੋ',
+'watchlistedit-normal-title' => 'ਨਿà¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨¸à©\8bਧੋ',
 'watchlistedit-raw-titles' => 'ਟਾਇਟਲ:',
-'watchlistedit-raw-submit' => 'ਧਿà¨\86ਨਸà©\82à¨\9aà©\80 à¨¨à©\82à©° à¨\85ਪਡà©\87à¨\9f ਕਰੋ',
+'watchlistedit-raw-submit' => 'ਨਿà¨\97ਰਾਨà©\80-ਲਿਸà¨\9f à¨¤à¨¾à¨\9c਼à©\80 ਕਰੋ',
 'watchlistedit-raw-added' => '{{PLURAL:$1|1 title was|$1 titles were}} ਸ਼ਾਮਲ:',
 'watchlistedit-raw-removed' => '{{PLURAL:$1|1 title was|$1 titles were}} ਹਟਾਓ:',
 
 # Watchlist editing tools
-'watchlisttools-view' => 'à¨\86ਧਾਰਿਤ à¨¬à¨¦à¨²à¨¾à¨\85 ਵੇਖੋ',
+'watchlisttools-view' => 'ਸਬੰਧਤ à¨¤à¨¬à¨¦à¨²à©\80à¨\86à¨\82 ਵੇਖੋ',
 'watchlisttools-edit' => 'ਧਿਆਨਸੂਚੀ ਵੇਖੋ ’ਤੇ ਸੰਪਾਦਨ ਕਰੋ',
 'watchlisttools-raw' => 'ਕੱਚੀ ਧਿਆਨਸੂਚੀ ਸੰਪਾਦਨ ਕਰੋ',
 
@@ -2242,9 +2241,9 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 'version-other' => 'ਹੋਰ',
 
 # Special:SpecialPages
-'specialpages' => 'ਵਿਸ਼à©\87ਸ਼ ਪੰਨੇ',
+'specialpages' => 'à¨\96਼ਾਸ ਪੰਨੇ',
 'specialpages-group-login' => 'ਲਾਗਇਨ / ਖਾਤਾ ਬਣਾਓ',
-'specialpages-group-users' => 'ਵਰਤੋਂਕਾਰਾਂ ਅਤੇ ਅਧਿਕਾਰ',
+'specialpages-group-users' => 'ਵਰਤੋਂਕਾਰ ਅਤੇ ਹੱਕ',
 
 # Special:BlankPage
 'blankpage' => 'ਖ਼ਾਲੀ ਸਫ਼ਾ',
@@ -2262,7 +2261,7 @@ delete|ਹਟਾਉਣ ਦਾ ਚਿੱਠਾ]] ਵੇਖੋ।',
 # Special:Tags
 'tag-filter' => '[[Special:Tags|ਟੈਗ]] ਫਿਲਟਰ:',
 'tags-tag' => 'ਟੈਗ ਦਾ ਨਾਮ',
-'tags-edit' => 'ਸੰਪਾਦਨ à¨\95ਰੋ',
+'tags-edit' => 'ਸà©\8bਧੋ',
 
 # HTML forms
 'htmlform-submit' => 'ਭੇਜੋ',
index a254e04..32cfc57 100644 (file)
@@ -56,12 +56,18 @@ $namespaceAliases = array(
 
 $messages = array(
 # User preference toggles
-'tog-showtoolbar' => "Werkzaich zum Bearwaide zaische (dodezu brauchd's JavaScript)",
-'tog-showhiddencats' => 'Zaisch vaschdeglde Kadegorije',
+'tog-underline' => 'Lingg unnaschdraische',
+'tog-showtoolbar' => "Wergzaisch fas Beawaide zaische (dodezu brauchd's JavaScript)",
+'tog-showjumplinks' => 'Schdellde "Hubs uff"-Lingg o',
+'tog-showhiddencats' => 'Zaisch vaschdeglde Grubbe',
 
-'underline-always' => 'Immer',
-'underline-never' => 'Garnet',
-'underline-default' => 'Des nemme, was em Browser gsaachd hoschd.',
+'underline-always' => 'Imma',
+'underline-never' => 'Gaaned',
+'underline-default' => 'Des nemme, wum Browser gsachd hoschd.',
+
+# Font style option in Special:Preferences
+'editfont-sansserif' => 'Sans-serif Schrifd',
+'editfont-serif' => 'Serif Schrifd',
 
 # Dates
 'sunday' => 'Sundaach',
@@ -86,24 +92,24 @@ $messages = array(
 'june' => 'Juni',
 'july' => 'Juli',
 'august' => 'Auguschd',
-'september' => 'Sebdember',
-'october' => 'Ogdower',
-'november' => 'Nowember',
-'december' => 'Dezember',
-'january-gen' => 'Jänner',
-'february-gen' => 'Fewwer',
+'september' => 'Sebdemba',
+'october' => 'Ogdowa',
+'november' => 'Nowemba',
+'december' => 'Dezemba',
+'january-gen' => 'Janua',
+'february-gen' => 'Februa',
 'march-gen' => 'März',
 'april-gen' => 'Abril',
 'may-gen' => 'Mai',
 'june-gen' => 'Juni',
 'july-gen' => 'Juli',
 'august-gen' => 'Auguschd',
-'september-gen' => 'Sebdember',
-'october-gen' => 'Ogdower',
-'november-gen' => 'Nowember',
-'december-gen' => 'Dezember',
-'jan' => 'Jän',
-'feb' => 'Few',
+'september-gen' => 'Sebdemba',
+'october-gen' => 'Ogdowa',
+'november-gen' => 'Nowemba',
+'december-gen' => 'Dezemba',
+'jan' => 'Jan',
+'feb' => 'Feb',
 'mar' => 'Mär',
 'apr' => 'Abr',
 'may' => 'Mai',
@@ -116,226 +122,260 @@ $messages = array(
 'dec' => 'Dez',
 
 # Categories related messages
-'pagecategories' => '{{PLURAL:$1|Kadegorie|Kadegorie}}',
-'category_header' => 'Saide in de Kadegorie „$1“',
-'subcategories' => 'Unnerkadegorie',
-'category-media-header' => 'Medie in de Kadegorie „$1“',
-'category-empty' => '"Die Kadegorie hod kä Said oda Medije."',
-'hidden-categories' => '{{PLURAL:$1|Verschdegelde Kadegorie|Verschdegelde Kadegorije}}',
-'hidden-category-category' => 'Verschdegelde Kadegorije',
-'category-subcat-count' => '{{PLURAL:$2|Die Kadegorie hod bloß die Unnakadegorie.|Die Kadegorie hod {{PLURAL:$1|Unnakadegorie|$1 Unnakadegorije}},vun gsomd $2.}}',
-'category-article-count' => "{{PLURAL:$2|In derre Kadegorie hot's numme die Said.|Die {{PLURAL:$1|Said|$1 Saide}} gebbt's in derre Kadegorie, vun insgsamt $2.}}",
-'category-file-count' => "{{PLURAL:$2|Die Kadegorie hod bloß ä Said.|Die {{PLURAL:$1|Said isch äni vun $2 Saide:|S'werren $1 vun gsomd $2 Saide gzaischd:}}}}",
-'listingcontinuesabbrev' => '(Forts.)',
-'noindex-category' => 'Saide, wu ned im Vazaischnis sin',
-
-'about' => 'Iwwer',
-'newwindow' => '(werd im e naie Fenschter uffgmacht)',
+'pagecategories' => '{{PLURAL:$1|Grubb|Grubbe}}',
+'category_header' => 'Saide in de Grubb „$1“',
+'subcategories' => 'Unnagrubbe',
+'category-media-header' => 'Medije inde Grubb „$1“',
+'category-empty' => '"Die Grubb hod kä Said odda Medije."',
+'hidden-categories' => '{{PLURAL:$1|Vaschdegldi Grubb|Vaschdeglde Grubbe}}',
+'hidden-category-category' => 'Verschdegelde Grubbe',
+'category-subcat-count' => '{{PLURAL:$2|Die Grubb hod bloß die Unnagrubb.|Die Grubb hod {{PLURAL:$1|Unnagrubbe|$1 Unnagrubbe}},vun gsomd $2.}}',
+'category-article-count' => '{{PLURAL:$2|Inde Grubb hodss nua die Said.|Die {{PLURAL:$1|Said|$1 Saide}} gibbds inde Grubb, vun gsomd $2.}}',
+'category-file-count' => "{{PLURAL:$2|Die Grubb hod bloß ä Said.|Die {{PLURAL:$1|Said isch äni vun $2 Saide:|S'werren $1 vun gsomd $2 Saide gzaischd:}}}}",
+'listingcontinuesabbrev' => '(Fords.)',
+'noindex-category' => 'Saide, wu ned im Vazaischnis sinn',
+
+'about' => 'Iwwa',
+'newwindow' => '(werd inem naije Fenschda uffgmachd)',
 'cancel' => 'Abbresche',
+'moredotdotdot' => 'Mea …',
 'mypage' => 'Said',
 'mytalk' => 'Dischbediere',
 'navigation' => 'Nawigadzion',
 
 # Cologne Blue skin
 'qbfind' => 'Finne',
-'qbedit' => 'Bearwaide',
-'qbmyoptions' => 'Mai Saide',
+'qbbrowse' => 'Duaschschdewere',
+'qbedit' => 'Beawaide',
+'qbpageoptions' => 'Die Said',
+'qbmyoptions' => 'Moi Saide',
 'faq' => 'Ofd gschdeldi Froche',
 
 # Vector skin
+'vector-action-addsection' => 'Abschnidd dzufiesche',
 'vector-action-delete' => 'Lesche',
-'vector-action-move' => 'Verschiewe',
+'vector-action-move' => 'Vaschiewe',
 'vector-action-protect' => 'Schidze',
+'vector-action-undelete' => 'Zriggbringe',
 'vector-view-create' => 'Oleesche',
-'vector-view-edit' => 'Bearwaide',
+'vector-view-edit' => 'Beawaide',
 'vector-view-history' => 'Dadaigschischd',
 'vector-view-view' => 'Lese',
-'vector-view-viewsource' => 'Gwelltegschd ozaische',
-'actions' => 'Agzione',
+'vector-view-viewsource' => 'Gwelltegschd zaische',
+'actions' => 'Maßnohme',
 'namespaces' => 'Nomensreum',
 'variants' => 'Tibbe',
 
-'errorpagetitle' => 'Fehler',
+'errorpagetitle' => 'Irrdumm',
 'returnto' => 'Zrick zu $1.',
 'tagline' => 'Vun {{SITENAME}}',
-'help' => 'Hilf',
-'search' => 'Suche',
-'searchbutton' => 'Such',
-'go' => 'Adiggel',
-'searcharticle' => 'Suche',
-'history' => 'Gschichd vun de Said',
-'history_short' => 'Versione',
-'printableversion' => 'Drugg-Aasischd',
-'permalink' => 'Permanentlink',
-'print' => 'Ausdrugge',
-'view' => 'Lese',
-'edit' => 'Bearwaide',
+'help' => 'Unaschdidzung',
+'search' => 'Nochgugge',
+'searchbutton' => 'Gugg',
+'go' => 'Ausfiere',
+'searcharticle' => 'Ausfiare',
+'history' => 'Gschischd vunde Said',
+'history_short' => 'Gschischd',
+'printableversion' => 'Drugg-Asischd',
+'permalink' => 'Schdendischa Lingg',
+'print' => 'Drugge',
+'view' => 'Ogugge',
+'edit' => 'Beawaide',
 'create' => 'Aleesche',
-'editthispage' => 'Die Said bearwaide',
+'editthispage' => 'Die Said beawaide',
 'delete' => 'Lesche',
-'undelete_short' => '{{PLURAL:$1|ä Ännerung|$1 Ännerunge}} widderherschdelle',
+'deletethispage' => 'Lesch die Said',
+'undelete_short' => '{{PLURAL:$1|ä Ännarung|$1 Ännarunge}} widdaheaschdelle',
+'viewdeleted_short' => 'Zaisch {{PLURAL:$1|ä gleschdi Ännarung|$1 gleschde Ännarunge}}',
 'protect' => 'schidze',
-'protect_change' => 'ännere',
+'protect_change' => 'ännare',
 'protectthispage' => 'Die Said schidze',
-'unprotect' => 'Saideschudz änare',
-'newpage' => 'Naie Said',
-'talkpage' => 'Iwwer die Said dischbediere',
+'unprotect' => 'Saideschudz ännare',
+'newpage' => 'Naiji Said',
+'talkpage' => 'Iwwa die Said dischbediere',
 'talkpagelinktext' => 'Dischbediere',
-'personaltools' => 'Perseenliche Werkzeische',
+'personaltools' => 'Persenlischs Wergzaisch',
+'postcomment' => 'Naije Abschnidd',
 'talk' => 'Dischbediere',
 'views' => 'Uffruf',
-'toolbox' => 'Wergzaisch',
-'otherlanguages' => 'In annere Schbroche',
-'redirectedfrom' => '(Wairrerglaidet vun $1)',
-'redirectpagesub' => 'Wairerlaidungssaid',
-'lastmodifiedat' => 'Die Said isch zum ledschde Mol gännad worre om $1, om $2.',
-'viewcount' => 'Die Seid isch bis jetzerd {{PLURAL:$1|$1|$1}} mol uffgerufe worre.',
-'jumpto' => 'Wegsl zu:',
+'toolbox' => 'Wergzaischkischd',
+'viewtalkpage' => 'Zaischs Gbabbl',
+'otherlanguages' => 'In annare Schbroche',
+'redirectedfrom' => '(Nochgschiggd vun $1)',
+'redirectpagesub' => 'Nochschigg-Said',
+'lastmodifiedat' => 'Die Said ischs ledschde Mol gännad worre om $1, om $2.',
+'viewcount' => 'Die Said isch bis jedz {{PLURAL:$1|$1|$1}} mol uffgrufe worre.',
+'protectedpage' => 'Said schidze',
+'jumpto' => 'Hubs uff:',
 'jumptonavigation' => 'Nawigadzion',
-'jumptosearch' => 'Suche',
+'jumptosearch' => 'Nochgugge',
+'pool-errorunknown' => 'Ubkonnde Irrdumm',
 
 # 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' => 'Iwwer {{SITENAME}}',
-'aboutpage' => 'Project:Iwwer',
-'copyright' => 'Was do drin schdeht isch unner $1 verfiechbar.',
-'copyrightpage' => '{{ns:project}}:Urhewerrecht',
-'currentevents' => 'Was grad so bassierd isch',
-'currentevents-url' => 'Project: Leschdi Eraigniss',
+'aboutsite' => 'Iwwa {{SITENAME}}',
+'aboutpage' => 'Project:Iwwa',
+'copyright' => 'Was do drin schded isch unna $1 vafieschba.',
+'copyrightpage' => '{{ns:project}}:Urhewareschd',
+'currentevents' => 'Aggduelli Gscheniss',
+'currentevents-url' => 'Project: Leschdi Gschneniss',
 'disclaimers' => 'Hafdungsausschluß',
 'disclaimerpage' => 'Project:Impressum',
-'edithelp' => 'Hilf fas Bearwaide',
-'edithelppage' => 'Help:Ännere',
+'edithelp' => 'Unaschdizung fas Beawaide',
+'edithelppage' => 'Help:Ännare',
 'helppage' => 'Help:Inhald',
 'mainpage' => 'Schdadsaid',
 'mainpage-description' => 'Schdadsaid',
 'portal' => '{{SITENAME}}-Bordal',
 'portal-url' => 'Project:Gmoinschafdsbordal',
-'privacy' => 'Dadeschuds',
-'privacypage' => 'Project:Daadeschutz',
+'privacy' => 'Daadeschuds',
+'privacypage' => 'Project:Daadeschuds',
 
-'badaccess' => 'Kää ausraichende Reschd',
+'badaccess' => 'Ned genuch Reschd',
 
+'ok' => 'Alla gud',
 'retrievedfrom' => 'Vun "$1"',
-'youhavenewmessages' => 'Du hoscht $1 ($2).',
-'newmessageslink' => 'naie Nochrischde',
-'newmessagesdifflink' => 'ledschde Ännerung',
-'editsection' => 'bearwaide',
-'editold' => 'bearwaide',
-'viewsourceold' => 'Quelltegschd ogugge',
-'editlink' => 'bearwaide',
+'youhavenewmessages' => 'Du hoschd $1 ($2).',
+'newmessageslink' => 'naije Nochrischde',
+'newmessagesdifflink' => 'ledschdi Ännarung',
+'editsection' => 'beawaide',
+'editold' => 'beawaide',
+'viewsourceold' => 'Gwelltegschd ogugge',
+'editlink' => 'beawaide',
 'viewsourcelink' => 'Gwell aagugge',
-'editsectionhint' => 'Abschnidd ännere: $1',
+'editsectionhint' => 'Deel ännare: $1',
 'toc' => 'Inhald',
 'showtoc' => 'zaische',
-'hidetoc' => 'versteggle',
-'site-rss-feed' => '$1 RSS Feed',
-'site-atom-feed' => '$1 Atom Feed',
-'page-rss-feed' => '"$1" RSS Feed',
-'page-atom-feed' => '"$1" Atom Feed',
-'red-link-title' => '$1 (Said gebbds nid)',
+'hidetoc' => 'vaschdeggle',
+'collapsible-collapse' => 'Oiglabbe',
+'viewdeleted' => '$1 zaische?',
+'restorelink' => '{{PLURAL:$1|ä gleschdi Ännarung|$1 gleschde Ännarunge}}',
+'site-rss-feed' => '$1 RSS-Feed',
+'site-atom-feed' => '$1 Atom-Feed',
+'page-rss-feed' => '"$1" RSS-Feed',
+'page-atom-feed' => '"$1" Atom-Feed',
+'red-link-title' => '$1 (Said gibbds ned)',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Said',
 'nstab-user' => 'Benudzersaid',
-'nstab-media' => 'Media',
+'nstab-media' => 'Medije',
 'nstab-special' => 'Schbezialsaid',
 'nstab-project' => 'Bordal',
-'nstab-image' => 'Dadei',
-'nstab-mediawiki' => 'Mitdeelung',
-'nstab-template' => 'Vorlaach',
-'nstab-help' => 'Hilf',
+'nstab-image' => 'Dadai',
+'nstab-mediawiki' => 'Middeelung',
+'nstab-template' => 'Vorlach',
+'nstab-help' => 'Unaschdidzung',
 'nstab-category' => 'Kadegorie',
 
 # General errors
-'missing-article' => "De Text fer „$1“ $2 isch inde Daadebong'g nit gfunne worre.
+'error' => 'Irrdumm',
+'missing-article' => 'De Tegschd fa „$1“ $2 isch inde Daadebongg ned gfunne worre.
 
-Normalerwais hääßd des, dass die Said gleschd worre isch.
+Noamalawees heeßd des, dass die Said gleschd worre isch.
 
-Wenns des nit isch, hoschd villaischd en Fehler in de Daadebong'g gfunne.
-Bidde meldsm [[Special:ListUsers/sysop|Adminischdrador]], un gebb d URL dezu aa.",
+Wonnse des awwa ned isch, hoschd villaischdn Irddumm inde Daadebongg gfunne.
+Bidde meldsm [[Special:ListUsers/sysop|Adminischdrador]], un gebbde URL dzu aa.',
 'missingarticle-rev' => '(Versionsnummer#: $1)',
 'badtitle' => 'Schleschde Didl',
-'badtitletext' => 'De Titel vun de aageforderte Said isch nid giltich, leer, odder e nid giltiche Link vun eme annere Wiki.
-S kann sai, dass es ää odder meh Zaiche drin hot, wu im Titel vun de Said nid gebraucht werre därfe.',
-'viewsource' => 'Quelltegschd bedrachde',
+'badtitletext' => 'De Tidl vunde aagefordad Said isch nid gildisch, leer, oddan nid gildische Lingg vunem annare Wiki.
+S kann sai, dass es ää odda meh Zaische drin hod, wu im Tidl vunde Said nid gbrauchd werre dirfn.',
+'viewsource' => 'Gwelltegschd ogugge',
 
 # Login and logout pages
-'yourname' => 'Benutzername:',
+'welcomeuser' => 'Willkumme, $1!',
+'yourname' => 'Benudzernome:',
 'yourpassword' => 'Password:',
 'yourpasswordagain' => 'Password nomol oigewe:',
-'remembermypassword' => 'Mai Passwort uff dem Computer merke (hechschtens fer $1 {{PLURAL:$1|Dach|Dach}})',
+'remembermypassword' => 'Mai Passwort uffm Computer merge (hegschdns fa $1 {{PLURAL:$1|Daach|Daach}})',
 'login' => 'Omelde',
-'nav-login-createaccount' => 'Aamelde / Benudzerkondo aaleche',
+'nav-login-createaccount' => 'Amelde / Benudzerkondo aleesche',
 'loginprompt' => 'Cookies mugschd fa {{SITENAME}} schun ohawe.',
-'userlogin' => 'Omelde / Benutzerkonto anleche',
-'logout' => 'Abmelde',
+'userlogin' => 'Omelde / Benudzerkondo oleesche',
+'userloginnocreate' => 'Oilogge',
+'logout' => 'Uffhere',
 'userlogout' => 'Uffhere',
 'nologin' => 'Hoschd noch kä Kondo? $1',
-'nologinlink' => 'E Benutzerkondo aaleche',
+'nologinlink' => 'E Benudzerkondo aaleesche',
 'createaccount' => 'Bnudza oleesche',
 'gotaccount' => 'Hoschd schun ä Kondo? $1',
 'gotaccountlink' => 'Omelde',
-'userlogin-resetlink' => 'Hoschd doi Dade vagesse?',
-'mailmypassword' => 'Nais Passwort per E-Mail schicke',
+'userlogin-resetlink' => 'Hoschd doi Daade vagesse?',
+'mailmypassword' => 'Nais Passwort per E-Mail schigge',
 'loginlanguagelabel' => 'Schbrooch: $1',
 
+# Change password dialog
+'resetpass-submit-loggedin' => 'Password wegsle',
+
+# Special:PasswordReset
+'passwordreset-username' => 'Benudza:',
+
+# Special:ChangeEmail
+'changeemail-none' => '(käni)',
+'changeemail-cancel' => 'Uffhere',
+
 # Edit page toolbar
 'bold_sample' => 'Feddi Schrifd',
-'bold_tip' => 'Fedde Schrifd',
-'italic_sample' => 'Kursiv Schrifd',
-'italic_tip' => 'Kursiv Schrifd',
-'link_sample' => 'Schdischword',
-'link_tip' => 'Interner Link',
-'extlink_sample' => "http://www.example.com Ling'gtegschd",
-'extlink_tip' => 'Externer Link (uff http:// Acht gewwe)',
-'headline_sample' => 'Schlaachzail Iwwaschrifd',
-'headline_tip' => 'Iwwerschrift Ewene 2',
-'nowiki_sample' => 'Gebb do en Tegschd ai, wu nit formatiert werd',
-'nowiki_tip' => 'Wiki-Formatierunge ignoriere',
-'image_tip' => 'Bildverwais',
-'media_tip' => 'Dadeilink',
+'bold_tip' => 'Feddi Schrifd',
+'italic_sample' => 'Schebbi Schrifd',
+'italic_tip' => 'Schebbi Schrifd',
+'link_sample' => 'Schdischwoad',
+'link_tip' => 'Inderna Lingg',
+'extlink_sample' => 'http://www.example.com Linggtegschd',
+'extlink_tip' => 'Exderna Lingg (uff http:// uffbasse)',
+'headline_sample' => 'Schlaachzail',
+'headline_tip' => 'Iwwaschrifd Ewene 2',
+'nowiki_sample' => 'Gebb do en Tegschd ai, wu nit uffberaid werd',
+'nowiki_tip' => 'Wiki-Formatierunge ned beachde',
+'image_tip' => 'Bildvawais',
+'media_tip' => 'Dadailingg',
 'sig_tip' => 'Dai Unnerschrifd mid ener Zaidaagab',
 'hr_tip' => 'Horizontale Linie (sparsam verwenne)',
 
 # Edit pages
-'summary' => 'Zammefassung:',
+'summary' => 'Iwwabligg:',
 'subject' => 'Bedreff:',
 'minoredit' => 'Des isch e klänni Bearwaidung',
 'watchthis' => 'Die Said im Aach bhalde',
 'savearticle' => 'Said schbeichere',
 'preview' => 'Voaschau',
-'showpreview' => 'Vorschau zaische',
-'showlivepreview' => 'Live-Vorschau',
-'showdiff' => 'Ännerunge zaische',
-'anoneditwarning' => "'''Baßma uff:''' Du bischd nit aagemeldt. Dai IP-Adress werd in de Gschichd vum Aadiggl gspaischad.",
-'summary-preview' => 'Zammefassung:',
+'showpreview' => 'Voaschau zaische',
+'showlivepreview' => 'Live-Voaschau',
+'showdiff' => 'Ännarunge zaische',
+'anoneditwarning' => "'''Baßma uff:''' Du bischd nit aagemeld. Dai IP-Adress werd inde Gschischd vum Adiggl gschbaischad.",
+'summary-preview' => 'Iwwabligg:',
+'blockednoreason' => "s'hod kän Grund",
 'newarticle' => '(Nai)',
 'newarticletext' => "Du bisch eme Link nogange zu re Said, wu s no gar nit gebbt.
 Zum die Said aaleche, kannscht do in dem Käschtel unne aafange mid schraiwe (guck[[{{MediaWiki:Helppage}}|Hilfe]] fer meh Informatione).
 Wenn do nid hin hoscht welle, no druck in Daim Browser uff '''Zrick'''.",
-'noarticletext' => 'Uff de Said hods noch kän Tegschd. Du konnschd uff onnere Saide nochm [[Special:Search/{{PAGENAME}}|Aidrach gugge]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Logbuchaidrach gugge, wu dezu gherd],
-odda [{{fullurl:{{FULLPAGENAME}}|action=edit}} die Said bearwaide]</span>.',
+'noarticletext' => 'Uffde Said hods noch kän Tegschd. Du konnschd uff onnare Saide nochm [[Special:Search/{{PAGENAME}}|Oidrach gugge]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Logbuchaidrach gugge, wu dezu kead],
+odda [{{fullurl:{{FULLPAGENAME}}|action=edit}} die Said beawaide]</span>.',
+'updated' => '(Gännad)',
+'note' => "'''Hiwes:'''",
 'previewnote' => "'''Deng'g droa, dass des numme e Vorschau isch.'''
 Doi Ännerunge sinn no nid gschbaichert worre!",
-'editing' => 'Am $1 bearwaide',
-'editingsection' => '$1 bearwaide (Abschnitt)',
+'editing' => 'Om $1 beawaide',
+'editingsection' => '$1 beawaide (de Deel)',
 'yourtext' => 'Doin Tegschd',
 'storedversion' => 'Gschbaischerdi Version',
 'yourdiff' => 'Unaschied',
-'copyrightwarning' => "Bidde gebb achd, dass alle Baidräch zu {{SITENAME}} unner $2 vereffentlischd werre (guck $1 fer mehr Details).
-Wenn du nit willschd, dass deswu du gschriwwe hoschd, gänneret un kopierd werre kann, dann duu s do nit naischraiwe.<br />
-du gebbschd do au zu, dass Du des selwerschd gschriwwe hoschd orrer vun ere effendliche, fraie Quell ('''public domain''') orrer vun ere ähnliche fraie Quell her hoschd.
-'''SCHRAIB DO NIX NAI, WAS URHEWERRECHDLICH GSCHIZD ISCH!'''",
-'templatesused' => '{{PLURAL:$1|Vorlach wu uff derre Said gbrauchd werd|Vorlache wu uff derre Said gbrauchd werre}}:',
-'templatesusedpreview' => '{{PLURAL:$1|Vorlach wu in derre Vorschau gbrauchd werd|Vorlache wu in derre Vorschau gbrauchd werre}}:',
+'copyrightwarning' => "Baß uff, dass alli Baidräch fa {{SITENAME}} unna $2 vaeffendlischd werren (gugg $1 fa mea Enzlhaide).
+Wonnsda ned basse dud, dass des wu gschriwwe hoschd, gännad un kopiead werre konn, donn duus do ned noischraiwe.<br />
+Du gibbschd do a zu, dasses selwaschd gschriwwe hoschd odda vuna effendlischi, fraiji Gwell ('''public domain''') odda vuna ähnlichi fraiji Gwell hawe duschd.
+'''Du do nix noi schraiwe, wa unnam Uahewareschd gschizd isch!'''",
+'templatesused' => '{{PLURAL:$1|Vorlach wu uffde Said gbrauchd werd|Vorlache wu uffde Saide gbrauchd werren}}:',
+'templatesusedpreview' => '{{PLURAL:$1|Vorlach wu inde Vorschau gbrauchd werd|Vorlache wu inde Vorschau gbrauchd werren}}:',
 'template-protected' => '(gschizd)',
-'template-semiprotected' => '(halb-gschizd)',
+'template-semiprotected' => '(halwa-gschizd)',
 'hiddencategories' => 'Die Said ghert zu {{PLURAL:$1|1 versteckelte Kategorie|$1 versteckelte Kategorie}}:',
 'permissionserrorstext-withaction' => 'Du därfscht nid $2, wesche{{PLURAL:$1|m Grund|de Grind}}:',
 'recreate-moveddeleted-warn' => "'''Baßma uff: Du magschd do ä Said, wuma frija schumol geleschd kabd hod.'''",
 'moveddeleted-notice' => 'Die Said isch gleschd worre.
 De Leschaidrach fa die Said isch do unne als Kwell aagewwe.',
 
+# Content models
+'content-model-css' => 'CSS',
+
 # Parser/template warnings
 'post-expand-template-inclusion-warning' => "'''Baßma uff:''' Greeß vunde Vorlach isch iwwaschridde. Oinischi Vorlache werren ned bnuzd.",
 'post-expand-template-inclusion-category' => 'Saide mid Vorlache, wu die Greeß iwwaschridde worre isch',
@@ -344,59 +384,70 @@ De Leschaidrach fa die Said isch do unne als Kwell aagewwe.',
 # History pages
 'viewpagelogs' => 'Lochbischer fer die Said aagucke',
 'currentrev' => 'Ledschdi Änarung',
-'currentrev-asof' => 'Agduell Version vun $1',
-'revisionasof' => 'Version vun $1',
+'currentrev-asof' => 'Agduell Ausgab vun $1',
+'revisionasof' => 'Iwwaawaidung vun $1',
 'revision-info' => 'Ännarung vun $1 duasch $2',
 'previousrevision' => '← Älderi Beawaidung',
-'nextrevision' => 'Naiere Versione →',
-'currentrevisionlink' => 'Agduell Version',
+'nextrevision' => 'Naijare Ausgab →',
+'currentrevisionlink' => 'Agduell Ausgab',
 'cur' => 'jedzischi',
-'next' => 'Negschde',
+'next' => 'Negschd',
 'last' => 'vorischi',
+'page_first' => 'Easchd',
+'page_last' => 'Ledschd',
 'histlegend' => "Du kannscht zwää Versione auswähle un verglaiche.<br />
 Erklärung: '''({{int:cur}})''' = Unnerschied zu jetzert,
 '''({{int:last}})''' = Unnerschied zu de voriche Version, '''{{int:minoreditletter}}''' = klenni Ännerung.",
-'history-fieldset-title' => 'In de Versionsgschichd gugge',
+'history-fieldset-title' => 'Gugg die Gschischd',
 'history-show-deleted' => 'Bloß gleschdi Saide zaische',
 'histfirst' => 'Ältschde',
 'histlast' => 'Naischde',
+'historyempty' => '(lea)',
 
 # Revision feed
 'history-feed-item-nocomment' => '$1 om $2',
 
 # Revision deletion
 'rev-delundel' => 'zaisch/verschdeggle',
+'rev-showdeleted' => 'zaische',
 'revdelete-show-file-submit' => 'Ja',
+'revdelete-radio-same' => '(dudo nix ännare)',
 'revdelete-radio-set' => 'Ja',
 'revdelete-radio-unset' => 'Nä',
-'revdelete-submit' => 'Uff die gewehld {{PLURAL:$1|Version|Versione}} owende',
-'revdel-restore' => 'Sischdbakaid ännere',
-'revdel-restore-deleted' => 'gleschdi Änarunge',
-'revdel-restore-visible' => 'sischdbari Änarunge',
+'revdelete-submit' => 'Uff die {{PLURAL:$1|gewehld Asugab|gewehldi Ausgawe}} owende',
+'revdel-restore' => 'Sischdbakaid ännare',
+'revdel-restore-deleted' => 'gleschdi Ännarunge',
+'revdel-restore-visible' => 'sischdbari Ännarunge',
+'pagehist' => 'Gschischd vunde Said',
+
+# History merging
+'mergehistory-go' => 'Zaisch, wasma vaoinische konn',
 
 # Merge log
-'revertmerge' => 'Zammefiehrung rickgängich mache',
+'revertmerge' => 'Zammefiehrung rigggängisch mache',
 
 # Diffs
-'history-title' => 'Änarungsgschischd vun "$1"',
+'history-title' => 'Ännarungsgschischd vun "$1"',
 'lineno' => 'Zail $1:',
-'compareselectedversions' => 'Die Versione midnonna vaglaische',
-'editundo' => 'zrigg',
+'compareselectedversions' => 'Ausgawe midnonna vaglaische',
+'showhideselectedversions' => 'Zaisch/Vaschdeggl gwehldi Ausgawe',
+'editundo' => 'zriggnemme',
 
 # Search results
-'searchresults' => 'Ergebnis suche',
-'searchresults-title' => 'Ergewnis suche fer "$1"',
-'searchresulttext' => 'Fer mehr Informatione iwwer d Such in {{SITENAME}}, guck emol uff [[{{MediaWiki:Helppage}}|{{int:help}}]].',
-'searchsubtitle' => 'Du hoscht no \'\'\'[[:$1]]\'\'\' gesucht ([[Special:Prefixindex/$1|alle Saide wo mit "$1" aafange]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|alle Saide wo uf "$1" verlinkt sin]])',
-'searchsubtitleinvalid' => "Du hoscht '''$1''' gsucht",
-'notitlematches' => 'Kää Saidetitel gfunne',
-'notextmatches' => 'Kää Iwwerainstimmunge mit Inhalde',
+'searchresults' => 'Eagewnis nochgugge',
+'searchresults-title' => 'Eagewnis gugge fa "$1"',
+'searchresulttext' => 'Fa mea Ogawe iwwas Nochgugge uff {{SITENAME}}, guggmol uff [[{{MediaWiki:Helppage}}|{{int:help}}]].',
+'searchsubtitle' => 'Du hoschd noch \'\'\'[[:$1]]\'\'\' geguggd ([[Special:Prefixindex/$1|alle Saide, wu mid "$1" aafange]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|alle Saide, wu uff "$1" valinggd sinn]])',
+'searchsubtitleinvalid' => "Du hoschd '''$1''' gsuchd",
+'notitlematches' => 'Kän Saidedidl gfunne',
+'notextmatches' => 'Kä Iwwaoinschdimmunge midm Tegschd',
 'prevn' => 'vorisch {{PLURAL:$1|$1}}',
-'nextn' => 'negschde {{PLURAL:$1|$1}}',
-'prevn-title' => 'Frijari $1 {{PLURAL:$1|result|Ergewnis}}',
-'nextn-title' => 'Negschdi $1 {{PLURAL:$1|result|Ergewnis}}',
-'shown-title' => 'Zaisch $1 {{PLURAL:$1|Ergewnis}} vunde Said',
+'nextn' => 'negschd {{PLURAL:$1|$1}}',
+'prevn-title' => 'Frijari $1 {{PLURAL:$1|Ergewnis|Ergewnis}}',
+'nextn-title' => 'Negschdi $1 {{PLURAL:$1|Ergewnis|Ergewnis}}',
+'shown-title' => 'Zaisch $1 {{PLURAL:$1|Ergewnis}} bro Said',
 'viewprevnext' => 'Gugg ($1 {{int:pipe-separator}} $2) ($3)',
+'searchmenu-exists' => "'''Dohods ä Said \"[[:\$1]]\".'''",
 'searchmenu-new' => "'''Mach die Said „[[:$1]]“ im Wiki.'''",
 'searchprofile-articles' => 'Inhald',
 'searchprofile-project' => 'Hilf- un Brojegdsaide',
@@ -405,16 +456,18 @@ Erklärung: '''({{int:cur}})''' = Unnerschied zu jetzert,
 'searchprofile-advanced' => 'Foadgschridde',
 'searchprofile-articles-tooltip' => 'In $1 gugge',
 'searchprofile-project-tooltip' => 'In $1 gugge',
-'searchprofile-images-tooltip' => 'Gugg noch Bilder',
+'searchprofile-images-tooltip' => 'Gugg noch Bilda',
 'searchprofile-everything-tooltip' => 'Such iwwaraal (a wuma dischbedierd)',
-'searchprofile-advanced-tooltip' => 'Gugg in onare Nomensraim',
-'search-result-size' => '$1 ({{PLURAL:$2|1 Word|$2 Wärder}})',
+'searchprofile-advanced-tooltip' => 'Gugg in onare Nomensreum',
+'search-result-size' => '$1 ({{PLURAL:$2|1 Word|$2 Wärda}})',
 'search-redirect' => '(Waidalaidung $1)',
 'search-section' => '(Abschnidd $1)',
 'search-suggest' => 'Hoschd gemäänd: $1',
 'search-interwiki-caption' => 'Schweschterprojekt',
 'search-interwiki-default' => '$1 Ergebnis:',
 'search-interwiki-more' => '(meh)',
+'search-relatedarticle' => 'Vawond',
+'mwsuggest-disable' => 'Schald Voaschlesch ab',
 'searchrelated' => 'vawond',
 'searchall' => 'alle',
 'showingresultsheader' => "{{PLURAL:$5|Ergewnis '''$1''' vun '''$3'''|Ergewnis '''$1–$2''' vun '''$3'''}} fa '''$4'''",
@@ -423,26 +476,49 @@ Erklärung: '''({{int:cur}})''' = Unnerschied zu jetzert,
 'powersearch' => 'Erwaiterte Such',
 'powersearch-legend' => 'Erwaiterte Such',
 'powersearch-ns' => 'In de Namensraim suche:',
-'powersearch-redir' => 'Wairerlaitunge aazaiche',
+'powersearch-redir' => 'Waiderlaidunge aazaische',
 'powersearch-field' => 'Suche noch',
+'powersearch-togglelabel' => 'Wehl:',
+'powersearch-toggleall' => 'Alli',
 'powersearch-togglenone' => 'Kään',
 
 # Preferences page
-'preferences' => 'Optione',
+'preferences' => 'Obzione',
 'mypreferences' => 'Oischdellunge',
-'saveprefs' => 'Oischdellunge schbeichere',
-'resetprefs' => 'Oischdellunge verwerfe',
+'prefs-watchlist' => 'Beowachdungslischd',
+'prefs-misc' => 'Schunschdisches',
+'saveprefs' => 'Oischdellunge schbaischere',
+'resetprefs' => 'Oischdellunge vawerfe',
+'prefs-editing' => 'Schaffe',
+'rows' => 'Zaile',
+'columns' => 'Schbalde',
+'searchresultshead' => 'Nochgugge',
+'resultsperpage' => 'Dreffa bro Said',
+'stub-threshold-disabled' => 'Abgschdeld',
 'guesstimezone' => 'Aus em Browser iwwernemme',
+'timezoneregion-europe' => 'Oirobba',
+'prefs-searchoptions' => 'Nochgugge',
 'youremail' => 'E-Mail:',
-'yourrealname' => 'Birscherlischer Nome:',
+'yourrealname' => 'Birschalischa Nome:',
 'yourlanguage' => 'Schbrooch:',
+'yournick' => 'Naiji Unnaschfrid',
+'yourgender' => 'Gschleschd:',
 'gender-unknown' => 'Ghoim gkalde',
+'gender-male' => 'Männlisch',
+'gender-female' => 'Waiblisch',
+'prefs-help-email-others' => 'Konschd a wehle, ob onnare disch iwwan Lingg uff doina Dischbedier-Said oschbresche kennen.
+Doi Meil-Address isch ned zaisch nix waida.',
+'prefs-diffs' => 'Unaschied',
+
+# User rights
+'userrights-groupsmember' => 'Midglied vun:',
 
 # Groups
 'group' => 'Grubb:',
+'group-user' => 'Benudza',
 'group-bot' => 'Bots',
 'group-sysop' => 'Adminischdradore',
-'group-bureaucrat' => 'Birokrade',
+'group-bureaucrat' => 'Birograde',
 'group-all' => '(alle)',
 
 'group-bot-member' => '{{GENDER:$1|Bot}}',
@@ -451,6 +527,13 @@ Erklärung: '''({{int:cur}})''' = Unnerschied zu jetzert,
 
 'grouppage-sysop' => '{{ns:project}}:Adminischtratore',
 
+# Rights
+'right-move' => 'Said bwesche',
+'right-move-subpages' => 'Said midde Unasaide bwesche',
+'right-movefile' => 'Saide vaschiewe',
+'right-upload' => 'Dadaije nufflade',
+'right-delete' => 'Saide lesche',
+
 # Special:Log/newusers
 'newuserlogpage' => 'Naiaameldungs-Logbuch',
 
@@ -458,55 +541,59 @@ Erklärung: '''({{int:cur}})''' = Unnerschied zu jetzert,
 'rightslog' => 'Benutzerrecht-Logbuch',
 
 # Associated actions - in the sentence "You do not have permission to X"
-'action-edit' => 'die Said bearwaide',
+'action-edit' => 'die Said beawaide',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|Ännerung|Ännerunge}}',
 'recentchanges' => 'Ledschdi Ännarunge',
-'recentchanges-legend' => 'Optione fa die Aazaisch',
+'recentchanges-legend' => 'Wehl ä Aazaisch fa die ledschdi Ännarunge',
 'recentchanges-feed-description' => 'Di letschte Ännerunge vun {{SITENAME}} in des Feed aigewwe.',
+'recentchanges-label-newpage' => 'Domid magschd ä naiji Said',
 'recentchanges-label-minor' => "S'ische glänni Beawaidung",
 'recentchanges-label-bot' => 'Ännarunge duaschn Bod',
+'recentchanges-label-unpatrolled' => 'Die Änarung isch noch ned iwwabriefd worre',
 'rcnote' => "Aagezaicht {{PLURAL:$1|werd '''1''' Ännerung|werre die letschte '''$1''' Ännerunge}} {{PLURAL:$2|vum letschte Dach|in de letschte '''$2''' Dache}} (Stand: $4, $5)",
-'rclistfrom' => 'Zaisch die ledschd Ännerunge ab $1',
-'rcshowhideminor' => 'Klenne Ännerunge $1',
+'rclistfrom' => 'Zaisch die ledschd Ännarunge ab $1',
+'rcshowhideminor' => 'Klenne Ännarunge $1',
 'rcshowhidebots' => 'Bots $1',
 'rcshowhideliu' => 'Aagemeldte Benutzer $1',
 'rcshowhideanons' => 'Nit aagemeldt Benutzer $1',
 'rcshowhidepatr' => '$1 iwabriefde Ännarunge',
 'rcshowhidemine' => 'Mai Beawaidunge $1',
-'rclinks' => 'Zeich die letschte $1 Ännerunge in de letschte $2 Dache<br />$3',
-'diff' => 'Unnerschied',
+'rclinks' => 'Zaich die letschde $1 Ännarunge inde ledschde $2 Dach<br />$3',
+'diff' => 'Unnaschied',
 'hist' => 'Gschischd',
 'hide' => 'vaschdeggle',
 'show' => 'zaische',
 'minoreditletter' => 'k',
 'newpageletter' => 'N',
 'boteditletter' => 'B',
-'rc-enhanced-expand' => 'Details zaische (dodezu brauchds JavaScript)',
+'rc_categories_any' => 'Ebbes',
+'rc-enhanced-expand' => 'Änzlhaide zaische (dozu brauchds JavaScript)',
 'rc-enhanced-hide' => 'Ogawe vaschdeggle',
 
 # Recent changes linked
-'recentchangeslinked' => 'Was on verlinggde Saide gemachd worre isch',
-'recentchangeslinked-feed' => 'Was on verlinkde Seide gemacht worre isch',
-'recentchangeslinked-toolbox' => 'Was on verlingde Seide gemachd worre isch',
-'recentchangeslinked-title' => 'Ännerunge an Saide, wu „$1“ druff verlinggd',
+'recentchangeslinked' => 'Was on verlinggde Saide gännad worre isch',
+'recentchangeslinked-feed' => 'Ännarunge on valinggde Saide',
+'recentchangeslinked-toolbox' => 'Ännarunge on verlingde Saide',
+'recentchangeslinked-title' => 'Ännarunge on Saide, wu „$1“ druff verlinggd',
+'recentchangeslinked-noresult' => 'Inde Zaid ischdo nix gännad worre.',
 'recentchangeslinked-summary' => "Die Lischd zaischd ledschde Ännarunge, vunna bschdimmde Said, wu do valinggd isch (odda zu Midglied vuna bschdimmde Kadegorije isch).
 Saide uff [[Special:Watchlist|Dainer Beowachdungslischd]] sinn '''fedd'''.",
 'recentchangeslinked-page' => 'Saide:',
-'recentchangeslinked-to' => 'Zaisch Ännerunge uff Saide, wu do her verlinkt sinn',
+'recentchangeslinked-to' => 'Zaisch Ännarunge uff Saide, wu do her valinggd sinn',
 
 # Upload
 'upload' => 'Nufflade',
-'uploadbtn' => 'Datei hochlade',
-'uploadlogpage' => 'Dateie-Logbuch',
-'filedesc' => 'Zommefassung',
-'fileuploadsummary' => 'Zommefassung:',
-'savefile' => 'Datei schbeichere',
+'uploadbtn' => 'Dadai nufflade',
+'uploadlogpage' => 'Dadaije-Logbuch',
+'filedesc' => 'Iwwabligg',
+'fileuploadsummary' => 'Iwwabligg:',
+'savefile' => 'Dadai schbaischere',
 'uploadedimage' => 'hod „[[$1]]“ nuffglade',
 
 # Lock manager
-'lockmanager-notlocked' => '„$1“ hod ned uffgmachd were kenne, die isch ganed gschberd gwesd.',
+'lockmanager-notlocked' => "„$1“ hod ned uffgmachd were kenne, s'isch ganed gschberd gwesd.",
 'lockmanager-fail-closelock' => 'Die gbscherd Dadai „$1“ hod ned gschlosse were kenne.',
 'lockmanager-fail-deletelock' => 'Die gbscherd Dadai „$1“ hod ned gleschd were kenne.',
 'lockmanager-fail-acquirelock' => '„$1“ komma ned schberre.',
@@ -517,43 +604,59 @@ Saide uff [[Special:Watchlist|Dainer Beowachdungslischd]] sinn '''fedd'''.",
 'license-header' => 'Bwillischung',
 
 # Special:ListFiles
+'listfiles_name' => 'Nome',
+'listfiles_size' => 'Greeß',
 'listfiles_count' => 'Versione',
 
 # File description page
 'file-anchor-link' => 'Dadai',
 'filehist' => 'Dadaigschischd',
 'filehist-help' => 'Drigg uff e Zaidpunggd zum aazaische, wie s dord ausgseh hod.',
-'filehist-revert' => 'zuriggsedze',
+'filehist-deleteall' => 'alles lesche',
+'filehist-deleteone' => 'lesche',
+'filehist-revert' => 'zriggsedze',
 'filehist-current' => 'agduell',
 'filehist-datetime' => 'Zaidpungd',
 'filehist-thumb' => 'Gleenes Bild',
-'filehist-thumbtext' => 'Vorschaubild fer Version vum $1',
+'filehist-thumbtext' => 'Skizz fa die Ausgab vum $1',
 'filehist-user' => 'Benudzer',
 'filehist-dimensions' => 'Maß',
 'filehist-comment' => 'Aißarung',
 'imagelinks' => 'Dadaivawendung',
 'linkstoimage' => 'Die {{PLURAL:$1|Said verwaisd|$1 Saide verwaise}} uff die Datei:',
+'nolinkstoimage' => 'Do hods kä Said, wu dohea zaischd.',
 'sharedupload' => 'Die Datei isch vun $1 un s kann sai, dass se ach vun annere Projekt gebraucht werd.',
 'uploadnewversion-linktext' => 'E naiere Version vun derre Datei hochlade',
 
 # File deletion
+'filedelete' => 'Lesch $1',
+'filedelete-legend' => 'Dadai lesche',
 'filedelete-submit' => 'Lesche',
+'filedelete-success' => "'''$1''' isch gleschd worre.",
+'filedelete-maintenance-title' => 'Dadai konnned gleschd werre',
+
+# MIME search
+'download' => 'Runalaade',
 
 # Random page
-'randompage' => 'Irschnd en Adiggel',
+'randompage' => 'Irschnd en Adiggl',
 
 # Statistics
-'statistics' => 'Statischtike',
+'statistics' => 'Schdadischdigge',
+'statistics-pages' => 'Saide',
 
 'disambiguationspage' => 'Template:Vadaidlischung',
 
-'brokenredirects-edit' => 'bearwaide',
+'brokenredirects-edit' => 'beawaide',
 'brokenredirects-delete' => 'lesche',
 
+'withoutinterwiki-submit' => 'Zaische',
+
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|Byte|Bytes}}',
-'nmembers' => '$1 {{PLURAL:$1|Mitglied|Mitglieder}}',
+'nmembers' => '$1 {{PLURAL:$1|Dailnemma|Dailnemma}}',
 'prefixindex' => 'Alle Saide (mid Präfix)',
+'listusers-editsonly' => 'Zaisch bloß Bnudza mid Baidräsch',
 'newpages' => 'Naije Saide',
 'move' => 'Verschiewe',
 'movethispage' => 'Die Said verschiewe',
@@ -566,7 +669,7 @@ Saide uff [[Special:Watchlist|Dainer Beowachdungslischd]] sinn '''fedd'''.",
 'booksources-go' => 'Geh',
 
 # Special:Log
-'log' => 'Logbicher',
+'log' => 'Logbischa',
 
 # Special:AllPages
 'allpages' => 'Alle Saide',
@@ -576,28 +679,33 @@ Saide uff [[Special:Watchlist|Dainer Beowachdungslischd]] sinn '''fedd'''.",
 'allpagesto' => 'Saide aazaische wu ufhere mid:',
 'allarticles' => 'Alle Saide',
 'allpagesprev' => 'Voriche',
-'allpagesnext' => 'Negschte',
+'allpagesnext' => 'Negschd',
 'allpagessubmit' => 'Zaische',
 
 # Special:Categories
 'categories' => 'Kadegorije',
 
 # Special:LinkSearch
-'linksearch' => 'Externe Links',
+'linksearch' => 'Exderne Lings',
+'linksearch-line' => '$1 isch vun $2 valinggd',
 
 # Special:ListGroupRights
 'listgrouprights-members' => '(Midgliederlischd)',
 
 # Email user
 'emailuser' => 'E-Mail on de Benutzer',
+'emailfrom' => 'Vum:',
+'emailto' => 'Fa:',
+'emailsubject' => 'Bdreff:',
+'emailmessage' => 'Middeelung:',
 'emailsend' => 'Abschigge',
 
 # Watchlist
 'watchlist' => 'Beowachdungslischd',
 'mywatchlist' => 'Beowachdungslischd',
 'watchlistfor2' => 'Vun $1 $2',
-'addedwatchtext' => "Die Said \"[[:\$1]]\" isch zu Dainer [[Special:Watchlist|Beowachdungslischt]] zugefiecht worre.
-Zukimftiche Ännerunge an derre Said un de Dischbediersaid, wu dezu ghert, werre doo aagezaicht, un d Said werd '''fett''' aagezaicht in de [[Special:RecentChanges|Letschte Ännerunge]] fer dass es ääfacher isch zum finne.",
+'addedwatchtext' => "Die Said \"[[:\$1]]\" isch zu Doina [[Special:Watchlist|Beowachdungslischt]] zugfieschd worre.
+Zukinfdischi Ännarunge onde Said unde Dischbediersaid, wu dzu kead, werren doo aagzaischd, un die Said werd '''fedd''' aagzaisch inde [[Special:RecentChanges|Ledschdi Ännarunge]] domidmas efacha finne konn.",
 'removedwatchtext' => 'D Said "[[:$1]]" isch aus [[Special:Watchlist|Dainer Beowachdungslischt]] rausgenumme worre.',
 'watch' => 'Beowachde',
 'watchthispage' => 'Die Said beowachde',
@@ -614,7 +722,7 @@ Zukimftiche Ännerunge an derre Said un de Dischbediersaid, wu dezu ghert, werre
 
 # Delete
 'deletepage' => 'Said lesche',
-'confirm' => 'Bestädiche',
+'confirm' => 'Beschdedische',
 'delete-legend' => 'Lesche',
 'confirmdeletetext' => 'Du bisch debai e Said z lesche mid alle Versione.
 Bitte du bstätiche, dass Du des wllscht du, dass Du verstehsch, was des hääßt, un dass Du des machscht in Iwweraistimmung mit de [[{{MediaWiki:Policy-url}}|Richtline]].',
@@ -632,7 +740,7 @@ Guck $2 fer e Lischt vun de letschte Leschunge.',
 
 # Protect
 'protectlogpage' => 'Saideschutz-Logbuch',
-'protectedarticle' => 'hot "[[$1]]" gschizd',
+'protectedarticle' => 'hod "[[$1]]" gschizd',
 'modifiedarticleprotection' => 'hot de Schutzstatus vun "[[$1]]" gännert',
 'protectcomment' => 'Grund:',
 'protectexpiry' => 'Bis:',
@@ -643,19 +751,20 @@ Guck $2 fer e Lischt vun de letschte Leschunge.',
 Do hot s di aktuelle Aistellunge vun de Said '''$1''':",
 'protect-cascadeon' => 'Die Said isch gschizd, wail se {{PLURAL:$1|zu derre Said ghert|zu denne Saide ghert}}, wu e Kaskadesperrung gelt.
 Der Schutzstatus vun derre Said kannscht ännere, awwer des hot kää Aifluss uff d Kaskadesperrung.',
-'protect-default' => 'Alle Benutzer erlääwe',
-'protect-fallback' => '«$1»-Berechdichung nedich',
-'protect-level-autoconfirmed' => 'Naie un nid aagemeldte Benutzer sperre',
-'protect-level-sysop' => 'Numme Adminischtratore',
+'protect-default' => 'Alle Benudzer erlauwe',
+'protect-fallback' => 'Bloß fa Laid mid "$1" Bereschdischung',
+'protect-level-autoconfirmed' => 'Naije un nid aagemeldte Benutzer schberre',
+'protect-level-sysop' => 'Bloß fa Adminischdradore',
 'protect-summary-cascade' => 'Kaskade',
 'protect-expiring' => 'bis $1 (UTC)',
+'protect-expiring-local' => 'bis $1',
 'protect-cascade' => 'Kaskadesperrung – alle aigebunnene Vorlache sinn midgsperrd.',
 'protect-cantedit' => 'Du kannscht de Schutzstatus vun derre Said nit ännere, wail Du nid d Berechdichung dezu hoscht.',
 'restriction-type' => 'Berechdichung:',
-'restriction-level' => 'Schutzewene:',
+'restriction-level' => 'Schudsewene:',
 
 # Restrictions (nouns)
-'restriction-edit' => 'Bearwaide',
+'restriction-edit' => 'Beawaide',
 'restriction-move' => 'Verschiewe',
 
 # Undelete
@@ -663,13 +772,13 @@ Der Schutzstatus vun derre Said kannscht ännere, awwer des hot kää Aifluss uf
 'undeletebtn' => 'Widderherschdelle',
 'undeletelink' => 'aagucke/widda herschdelle',
 'undeleteviewlink' => 'Ogugge',
-'undeletereset' => 'Zuricksetze',
+'undeletereset' => 'Zuriggsedze',
 'undelete-show-file-submit' => 'Ja',
 
 # Namespace form on various pages
 'namespace' => 'Nomensraum',
-'invert' => 'Auswahl umkehre',
-'blanknamespace' => '(Haaptsaid)',
+'invert' => 'Wahl dausche',
+'blanknamespace' => '(Schdadsaid)',
 
 # Contributions
 'contributions' => '{{GENDER:$1|Wasa gemachd hod}}',
@@ -677,103 +786,106 @@ Der Schutzstatus vun derre Said kannscht ännere, awwer des hot kää Aifluss uf
 'mycontris' => 'Baidräsch',
 'contribsub2' => 'Fer $1 ($2)',
 'uctop' => '(akduell)',
-'month' => 'un Monet (un frieher):',
-'year' => 'Ab em Johr (un frieher):',
+'month' => 'än Monad (un frija):',
+'year' => 'Abm Johr (un frieja):',
 
-'sp-contributions-newbies' => 'Zaich numme Baidräch vun naie Benutzerkonte',
-'sp-contributions-blocklog' => 'Sperrlogbuch',
+'sp-contributions-newbies' => 'Zaisch nua Baidräsch vun naije Konde',
+'sp-contributions-blocklog' => 'Schberrlogbuch',
 'sp-contributions-uploads' => 'Nufflade',
-'sp-contributions-logs' => 'Logbicha',
+'sp-contributions-logs' => 'Logbischa',
 'sp-contributions-talk' => 'Dischbediere',
-'sp-contributions-search' => 'No Baidräch suche',
-'sp-contributions-username' => 'IP-Adress orrer Benutzername:',
+'sp-contributions-search' => 'Noch Baidräsch gugge',
+'sp-contributions-username' => 'IP-Adress odda Benudzernome:',
 'sp-contributions-toponly' => 'Bloß agduelli Ännarunge zaische',
 'sp-contributions-submit' => 'Suche',
 
 # What links here
-'whatlinkshere' => 'Was doher zeische dud',
+'whatlinkshere' => 'Was doher zaische dud',
 'whatlinkshere-title' => 'Saide wu uff "$1" verlinke',
 'whatlinkshere-page' => 'Said:',
-'linkshere' => "Die Saide verlinke zu '''[[:$1]]''':",
+'linkshere' => "Die Saide valingge uff '''[[:$1]]''':",
 'nolinkshere' => "Kä Said zaischd uff '''[[:$1]]'''.",
-'isredirect' => 'Wairerlaitungsaid',
-'istemplate' => 'Vorlacheaibindung',
-'isimage' => "Dadailing'g",
+'isredirect' => 'Waidalaidungsaid',
+'istemplate' => 'Vorlacheoibindung',
+'isimage' => 'Dadailingg',
 'whatlinkshere-prev' => '{{PLURAL:$1|vorich|voriche $1}}',
-'whatlinkshere-next' => '{{PLURAL:$1|negscht|negschte $1}}',
-'whatlinkshere-links' => '← Links',
+'whatlinkshere-next' => '{{PLURAL:$1|negschd|negschde $1}}',
+'whatlinkshere-links' => '← Linggs',
 'whatlinkshere-hideredirs' => '$1 Waidalaidunge',
 'whatlinkshere-hidetrans' => '$1 Vorlacheaibindunge',
-'whatlinkshere-hidelinks' => '$1 Links',
+'whatlinkshere-hidelinks' => '$1 Linggs',
 'whatlinkshere-filters' => 'Filda',
 
 # Block/unblock
-'blockip' => 'Benutzer bloggiere',
-'ipbsubmit' => 'Benutzer bloggiere',
+'blockip' => 'Benudzer bloggiere',
+'ipbsubmit' => 'Benudzer bloggiere',
 'ipboptions' => '2 Stunne:2 hours,1 Dach:1 day,3 Dache:3 days,1 Woch:1 week,2 Woche:2 weeks,1 Monet:1 month,3 Monet:3 months,6 Monet:6 months,1 Johr:1 year,Fer immer:infinite',
-'ipusubmit' => 'Die Adreß freigewwe',
+'ipbotheroption' => 'onnari',
+'ipusubmit' => 'Die Adreß fraigewwe',
 'ipblocklist' => 'Gschberrdi IP-Adress un Benudzernome',
+'infiniteblock' => 'ubgrensd',
 'blocklink' => 'schberre',
 'unblocklink' => 'Sperr uffhewe',
-'change-blocklink' => 'Schberr ännere',
-'contribslink' => 'Baidräch',
-'blocklogpage' => 'Sperrlogbuch',
+'change-blocklink' => 'Schberr ännare',
+'contribslink' => 'Baidräsch',
+'blocklogpage' => 'Schberrlogbuch',
 'blocklogentry' => 'hot [[$1]] gsperrt fer e Zaidraum vun $2 $3',
 'unblocklogentry' => 'hot d Sperr vun $1 uffghowwe',
-'block-log-flags-nocreate' => 'Aaleche vun Benutzerkonte isch gsperrt',
+'block-log-flags-nocreate' => 'Aalesche vun Benudzerkonde isch gschberrd',
 
 # Developer tools
-'lockbtn' => 'Dadebonk schberre',
-'unlockbtn' => 'Dadebonk freigewwe',
+'lockbtn' => 'Dadebongg schberre',
+'unlockbtn' => 'Dadebongg fraigewwe',
 
 # Move page
-'move-page-legend' => 'Said verschiewe',
-'movepagetext' => "Mid dem Format kannscht ener Said e naie Name gewwe, debai werre alle alde Versione uff de nai Name verschowe.
-Aus em Alde Name werd e Wairerlaidungssaid´zum naie Name.
-Wairerlaidungssaide, wu uff de ald Name umlaire, kannscht automatisch aktualisiere.
-Wenn De des nid willsch, no guck uff [[Special:DoubleRedirects|doppelte]] orrer [[Special:BrokenRedirects|kaputte Wairerlaidunge]].
-Du solltescht defer sorche, dass Links wairer zu de richdiche Saide fiehre.
-
-Gebb Acht, dass die Said '''nid''' verschowe werd, wenn s scho e Said mid em naie Name hot, außer wenn se leer isch orrer e Wairerlaidung.
-Des hääßt, Du kannscht ke Said, wu s schun gebbt, iwwerschraiwe.
-
-'''WARNUNG!'''
-Des isch e wichdiche Ännerung fer e Said un kann ziehmlich unerwartet sai fer wichdiche Saide;
-bitte mach des numme, wenn Du die Folche vun derre Aktion kannsch abschätze.",
+'move-page-legend' => 'Said vaschiewe',
+'movepagetext' => "Midm Formad konnschd ä Said en naije Nome gewwe, debai werrem alli alde Ausgawe uffde nai Nome vaschowe.
+Ausm alde Nome werd e Waidalaidungssaid zum naije Nome.
+Waidalaidungssaide, wu uffde ald Nome umlaide dun, konnschd vun allä uffde naischde Schdond bringe.
+Wonndes ned willschd, guggschd uff [[Special:DoubleRedirects|dobbldi]] odda [[Special:BrokenRedirects|kabuddi Waidalaidunge]].
+Soasch dfia, dass Linggs waida uffdie rischdische Saide fiehan.
+
+Gebb Achd, dass die Said '''ned''' vaschowe werd, wonns schunä Said midm naije Nome hod, außa wonnse lea isch odda e Waidalaidung.
+Des heeßd, Du konnschd ke Said, wus schun gibbd, iwwaschraiwe.
+
+'''BAßMAUFF!'''
+Des isch e wischdischi Ännarung fa e Said un konn zimlisch uuerwaaded soi fa wischdischi Saide;
+mach des bloß, wonn die Folsche vunde Maßnohm a abschedze konnschd.",
 'movepagetalktext' => "D Dischbediersaid werd ach mid verschowe, '''ausser:'''
 * Du verschiebsch die Saide in e annere Namensraum, odder
 * s gebbt schun e Dischbediersaid mi dem Name, orrer
 * Du wählsch unne d Option, se nid z verschiewe.
 
 In denne Fäll misst mer d Dischbediersaid vun Hand kopiere.",
-'movearticle' => 'Said verschiewe:',
-'newtitle' => 'Zum naie Titel:',
+'movearticle' => 'Said vaschiewe:',
+'newtitle' => 'Zum naije Didl:',
 'move-watch' => 'Die Said beowachde',
-'movepagebtn' => 'Said verschiewe',
+'movepagebtn' => 'Said vaschiewe',
 'pagemovedsub' => 'Verschiewung hot geklappt',
 'movepage-moved' => '\'\'\'"$1" isch verschowe worre uff "$2"\'\'\'',
 'articleexists' => 'E Said mid dem Name gebbt s schun, orrer de Name, wu du gewählt hoscht, isch nid gildich.
 Bitte nemm e annere Name.',
 'talkexists' => "'''Die Said selwerschd, isch verschowe worre, awwer d Dischbediersaid hot nid kenne verschowe werre, wail s schun enni gebbt mid dem Name.
 Bitte duu se vun Hand zammefiehre.'''",
-'movedto' => 'verschowe uff',
+'movedto' => 'vaschowe uff',
 'movetalk' => 'Dischbediersaid, wu dezu ghert, verschiewe',
 'movelogpage' => 'Verschiewungs-Logbuch',
 'movereason' => 'Grund:',
-'revertmove' => 'Zerigg verschiewe',
+'revertmove' => 'Zurigg vaschiewe',
 'delete_and_move' => 'Lesche un Verschiewe',
 'delete_and_move_confirm' => 'Ja, Said lesche',
 
 # Export
 'export' => 'Saide expordiere',
-'export-submit' => 'Seide exbordiere',
+'export-submit' => 'Saide exbordiere',
 
 # Namespace 8 related
 'allmessagesname' => 'Nome',
 'allmessagesdefault' => 'Vorgewene Tegschd',
+'allmessages-filter-modified' => 'Vaännad',
 
 # Thumbnails
-'thumbnail-more' => 'Greßer mache',
+'thumbnail-more' => 'Mags greßa',
 
 # Special:Import
 'import-interwiki-submit' => 'Impordiere',
@@ -783,67 +895,66 @@ Bitte duu se vun Hand zammefiehre.'''",
 'tooltip-pt-mytalk' => 'Dai Said fas Dischbediere',
 'tooltip-pt-preferences' => 'Dai Aistellunge',
 'tooltip-pt-watchlist' => 'D Lischd vun Saide, wu du beowachde duschd',
-'tooltip-pt-mycontris' => 'Lischd vun Daine Baidräch',
-'tooltip-pt-login' => 'Du kannscht Dich aamelde, awwer du muscht s nit',
+'tooltip-pt-mycontris' => 'Lischd vun Daine Baidräsch',
+'tooltip-pt-login' => 'Du konnschd disch aamelde, awwer du mugschd s nit',
 'tooltip-pt-logout' => 'Abmelde',
-'tooltip-ca-talk' => 'Iwwer d Inhaltssaid dischbediere',
-'tooltip-ca-edit' => 'Du kannschd die Said bearwaide.
-Bidde nemmde Vorschau-Knobb vorm Schbaischere',
+'tooltip-ca-talk' => 'Iwwa d Inhaldssaid dischbediere',
+'tooltip-ca-edit' => 'Du konnschd die Said beawaide.
+Bidde nemmde Vorschau-Gnobb vorm Schbaischare',
 'tooltip-ca-addsection' => 'E naie Abschnitt aaleche',
-'tooltip-ca-viewsource' => 'Die Said isch gschizd.
-Du konnschd awwer de Gwelltegschd aagugge',
+'tooltip-ca-viewsource' => 'Die Said isch gschizd. Du konnschd awwa de Gwelltegschd aagugge.',
 'tooltip-ca-history' => 'Ledschde Versione vun derre Said',
 'tooltip-ca-protect' => 'Die Said schidze',
 'tooltip-ca-delete' => 'Die Said lesche',
-'tooltip-ca-move' => 'Die Said verschiewe',
+'tooltip-ca-move' => 'Die Said vaschiewe',
 'tooltip-ca-watch' => 'Die Said zu Dainer Beowachdungslischd zufiesche',
-'tooltip-ca-unwatch' => 'Die Said aus Dainer Beowachdunschlischde rausnemme',
-'tooltip-search' => 'Durschsuch {{SITENAME}}',
+'tooltip-ca-unwatch' => 'Die Said aus Dainer Beowachdunschlischd wegnemme',
+'tooltip-search' => 'Gugg uff {{SITENAME}} noch',
 'tooltip-search-go' => 'Geh zu ere Said mid genää dem Namme, wenn s se gebbt',
-'tooltip-search-fulltext' => 'Gugg in de Said nochm Tegschd',
-'tooltip-p-logo' => 'Haubdsaid',
+'tooltip-search-fulltext' => 'Gugg inde Said nochm Tegschd',
+'tooltip-p-logo' => 'Schdadsaid',
 'tooltip-n-mainpage' => 'Uff d Schdadsaid geje',
-'tooltip-n-mainpage-description' => 'Haubdsaid aagucke',
+'tooltip-n-mainpage-description' => 'Haubdsaid aagugge',
 'tooltip-n-portal' => 'Iwwers Brojegd, wude duu kannschd, wu ebbes finne duschd',
 'tooltip-n-currentevents' => 'Finn Auskinfd iwwa naiji Voafell',
-'tooltip-n-recentchanges' => 'Lischd vun de ledschde Ännarunge in dem Wiki',
-'tooltip-n-randompage' => 'E zufällisch Said lade',
+'tooltip-n-recentchanges' => 'Lischd vun de ledschde Ännarunge im Wiki',
+'tooltip-n-randompage' => 'Lad e zufellischi Said',
 'tooltip-n-help' => 'Do konschds rausfinne',
 'tooltip-t-whatlinkshere' => 'Lischd vun alle Wikisaide, wu do hie verlingd sinn',
 'tooltip-t-recentchangeslinked' => 'Ledschde Ännerunge in Saide, wu vun do verlinggd sin',
 'tooltip-feed-rss' => 'RSS feed fer die Said',
-'tooltip-feed-atom' => 'Atom feed fer die Said',
-'tooltip-t-contributions' => 'Die ledschde Baidräch vun däm Benudzer aagucke',
+'tooltip-feed-atom' => 'Atom-Feed fa die Said',
+'tooltip-t-contributions' => 'Die ledschde Baidräsch vum Benudzer aagugge',
 'tooltip-t-emailuser' => 'Dem Benutzer e E-Mail schicke',
 'tooltip-t-upload' => 'Dadaije nufflade',
-'tooltip-t-specialpages' => 'Lischd vun alle Schbezialsaide',
-'tooltip-t-print' => 'Druggversion vun derre Said',
+'tooltip-t-specialpages' => 'Lischd vunde Schbezialsaide',
+'tooltip-t-print' => 'Druggausgab vunde Said',
 'tooltip-t-permalink' => 'E dauerhafte Link zu derre Version vun de Said',
-'tooltip-ca-nstab-main' => 'D Inhaldssaid aagucke',
-'tooltip-ca-nstab-user' => 'D Benutzersaid aagucke',
+'tooltip-ca-nstab-main' => 'Inhald agugge',
+'tooltip-ca-nstab-user' => 'D Benudzersaid aagucke',
 'tooltip-ca-nstab-special' => 'Des isch e Spezialsaid, du kannscht d Said sälwerscht nit ännere',
-'tooltip-ca-nstab-project' => 'D Projektsaid aagucke',
+'tooltip-ca-nstab-project' => 'Brojegdsaid agugge',
 'tooltip-ca-nstab-image' => 'D Dadaisaid aaugugge',
 'tooltip-ca-nstab-template' => 'Vorlach aagugge',
-'tooltip-ca-nstab-category' => 'D Kategoriesaid aagucke',
-'tooltip-minoredit' => 'Des als klenne Ännerung markiere',
-'tooltip-save' => 'Dai Ännerunge spaichere',
+'tooltip-ca-nstab-category' => 'D Kadegoriesaid aagucke',
+'tooltip-minoredit' => 'Des als klenni Ännarung makiere',
+'tooltip-save' => 'Dai Ännerunge schbaischere',
 'tooltip-preview' => 'Guck Daine Ännerunge in de Vorschau aa, vor Du uff Spaichere driksch!',
 'tooltip-diff' => 'Guck, welle Ännerunge Du im Text gmacht hoscht',
 'tooltip-compareselectedversions' => 'D Unnaschied zwische denne zwee gwehlde Versione aagugge',
 'tooltip-watch' => 'Die Said zu Dainer Beowachdunglischd zufieche',
-'tooltip-rollback' => "„Zeriggsetze“ machd alle Bearwaidunge vum ledschde Bearwaider rigg'gängisch",
-'tooltip-undo' => "„Zerigg“ machd numme die Ännerung rigg'gängich un zaichd d Vorschau aa.
-Du kannschd e Grund in dr Zammfassung aagewwe",
+'tooltip-rollback' => "„Zriggsedze“ machd alli Beawaidunge vum ledschde Midawaida rigg'gängisch",
+'tooltip-undo' => "„Zrigg“ machd nua die Ännarung rigg'gängich un zaischd ä Vorschau aa.
+Du kannschd e Grund in de Zommefassung aagewwe.",
 'tooltip-summary' => 'Gebä koaz Resimee',
 
 # Browsing diffs
 'previousdiff' => '← Ältere Bearwaidung',
-'nextdiff' => 'Naiere Bearwaidung →',
+'nextdiff' => 'Naijari Beawaidung →',
 
 # Media information
 'file-info-size' => '$1 × $2 Pixels, Dateigreß: $3, MIME-Type: $4',
-'file-nohires' => 'Ke hechere Ufflesung verfiechbar.',
+'file-nohires' => 'Ke heheri Ufflesung vafieschba.',
 'svg-long-desc' => 'SVG-Datei, Basisgreß $1 × $2 Pixels, Dateigreß: $3',
 'show-big-image' => 'Volli Ufflesung',
 
@@ -860,8 +971,8 @@ Annere Links in der glaiche Zail werre als Ausnahme behanneld, d. h. Saide, wu d
 
 # Metadata
 'metadata' => 'Metadata',
-'metadata-help' => 'Die Dadei hot waidere Informatione, wahrschainlich vun de Digidalkamera oder vum Scanner, mid dem wu sie gmacht worre sinn.
-Wenn die Dadei verännerd worre isch, dann kann s sai, dass die zusädzlich Information fer die verännert Dadei nimmi richdisch isch.',
+'metadata-help' => 'Die Dadai hod waideri Ogawe, waaschoinlisch vunde Digidalkomara odda vum Skänna, wuse mid gmachd worre isch.
+Wpnn die Dadai vaännad worre isch, donn konns soi, daß zusedzlischi Ogawe fa die vaännad Dadai nemme rischdisch sin.',
 'metadata-expand' => 'Erwaiterte Details aazaiche',
 'metadata-collapse' => 'Erwaiterte Details versteckeln',
 'metadata-fields' => 'Die EXIF-Medadaade werren inde Bild-Bschraiwung a ogzaischd, wonn die Medadaade-Tabelle verschdegld isch.
index 021f771..f03ea10 100644 (file)
@@ -753,7 +753,7 @@ Nie zapomnij dostosować [[Special:Preferences|preferencji]].',
 'userlogout' => 'Wyloguj',
 'notloggedin' => 'Nie jesteś zalogowany',
 'userlogin-noaccount' => 'Nie masz konta?',
-'userlogin-joinproject' => 'Dołącz do {{SITENAME}}',
+'userlogin-joinproject' => 'Dołącz do {{GRAMMAR:D.lp|{{SITENAME}}}}',
 'nologin' => "Nie masz konta? '''$1'''.",
 'nologinlink' => 'Zarejestruj się',
 'createaccount' => 'Załóż nowe konto',
@@ -762,7 +762,7 @@ Nie zapomnij dostosować [[Special:Preferences|preferencji]].',
 'userlogin-resetlink' => 'Zapomniałeś danych do zalogowania się?',
 'userlogin-resetpassword-link' => 'Nie pamiętasz hasła?',
 'helplogin-url' => 'Help:Logowanie',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoc z logowaniem]]',
+'userlogin-helplink' => '<p></p>',
 'createacct-join' => 'Wpisz poniżej swoje dane.',
 'createacct-emailrequired' => 'Adres e‐mail',
 'createacct-emailoptional' => 'Adres e-mail (opcjonalnie)',
@@ -775,7 +775,7 @@ Nie zapomnij dostosować [[Special:Preferences|preferencji]].',
 'createacct-captcha' => 'Kontrola bezpieczeństwa',
 'createacct-imgcaptcha-ph' => 'Wpisz tekst widoczny powyżej',
 'createacct-submit' => 'Utwórz konto',
-'createacct-benefit-heading' => '{{grammar:4sg|{{SITENAME}}}} tworzą ludzie tacy jak ty.',
+'createacct-benefit-heading' => '{{grammar:B.lp|{{SITENAME}}}} tworzą ludzie tacy jak Ty.',
 'createacct-benefit-body1' => '{{PLURAL:$1|edycja|edycje|edycji}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|strona|strony|stron}}',
 'createacct-benefit-body3' => '{{PLURAL:$1|użytkownik|użytkowników}} w ostatnim czasie',
@@ -880,11 +880,9 @@ Być może właśnie zmienił{{GENDER:|eś|aś|eś(‐aś)}} swoje hasło lub po
 
 # Special:PasswordReset
 'passwordreset' => 'Wyczyść hasło',
-'passwordreset-text' => 'Wypełnij formularz, aby zresetować swoje hasło.',
 'passwordreset-legend' => 'Zresetuj hasło',
 'passwordreset-disabled' => 'Na tej wiki wyłączono możliwość resetowania haseł.',
 'passwordreset-emaildisabled' => 'Wysyłanie emaili zostało wyłączone na tej wiki',
-'passwordreset-pretext' => '{{PLURAL:$1||Wprowadź jedną z danych poniżej}}',
 'passwordreset-username' => 'Nazwa użytkownika:',
 'passwordreset-domain' => 'Domena',
 'passwordreset-capture' => 'Czy pokazywać treść wiadomości e‐mail?',
@@ -1123,6 +1121,7 @@ Wystąpił z nieokreślonej przyczyny.',
 Zdaje się, że została skasowana.',
 'edit-conflict' => 'Konflikt edycji.',
 'edit-no-change' => 'Twoja edycja została zignorowana, ponieważ nie zmienił{{GENDER:|eś|aś|eś(‐aś)}} niczego w tekście.',
+'postedit-confirmation' => 'Twoja edycja została zapisana.',
 'edit-already-exists' => 'Nie udało się stworzyć nowej strony.
 Strona już istnieje.',
 'defaultmessagetext' => 'Domyślny tekst komunikatu',
@@ -1549,7 +1548,7 @@ Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje auto
 'userrights-groups-help' => 'Możesz zmienić przynależność tego użytkownika do podanych grup.
 * Zaznaczone pole oznacza przynależność użytkownika do danej grupy.
 * Niezaznaczone pole oznacza, że użytkownik nie należy do danej grupy.
-* Gwiazdka * informuje, że nie możesz usunąć z grupy po dodaniu do niej lub dodać po usunięciu z grupy.',
+* Gwiazdka * informuje, że nie możesz usunąć użytkownika z grupy po dodaniu do niej lub dodać po usunięciu z grupy.',
 'userrights-reason' => 'Powód',
 'userrights-no-interwiki' => 'Nie masz dostępu do edycji uprawnień na innych wiki.',
 'userrights-nodatabase' => 'Baza danych $1 nie istnieje lub nie jest lokalna.',
@@ -1722,7 +1721,7 @@ Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje auto
 'rc_categories_any' => 'Wszystkie',
 'rc-change-size-new' => '$1 {{PLURAL:$1|bajt|bajty|bajtów}} po zmianie',
 'newsectionsummary' => '/* $1 */ nowa sekcja',
-'rc-enhanced-expand' => 'Pokaż szczegóły (wymagana JavaScript)',
+'rc-enhanced-expand' => 'Pokaż szczegóły (wymagany JavaScript)',
 'rc-enhanced-hide' => 'Ukryj szczegóły',
 'rc-old-title' => 'oryginalnie utworzono jako "$1"',
 
@@ -2965,7 +2964,7 @@ Odwiedź [//www.mediawiki.org/wiki/Localisation Tłumaczenie MediaWiki] oraz [//
 'thumbnail-more' => 'Powiększ',
 'filemissing' => 'Brak pliku',
 'thumbnail_error' => 'Błąd przy generowaniu miniatury $1',
-'thumbnail_error_remote' => 'Komunikat o błędzie z  $1 :
+'thumbnail_error_remote' => 'Komunikat o błędzie z {{grammar:2sg|$1}}:
 $2',
 'djvu_page_error' => 'Strona DjVu poza zakresem',
 'djvu_no_xml' => 'Nie można pobrać danych w formacie XML dla pliku DjVu',
@@ -3971,7 +3970,7 @@ Możesz także użyć [[Special:EditWatchlist|standardowego edytora obserwowanyc
 'version-hook-subscribedby' => 'Zapotrzebowany przez',
 'version-version' => '(Wersja $1)',
 'version-license' => 'Licencja',
-'version-poweredby-credits' => "To wiki korzysta z oprogramowania '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001‐$1 $2.",
+'version-poweredby-credits' => "Ta wiki korzysta z oprogramowania '''[//www.mediawiki.org/ MediaWiki]''', copyright © 2001‐$1 $2.",
 'version-poweredby-others' => 'inni',
 'version-credits-summary' => 'Następujące osoby wniosły istotny wkład w rozwój oprogramowania [[Special:Version|MediaWiki]].',
 'version-license-info' => 'MediaWiki jest wolnym oprogramowaniem – możesz je dystrybuować i modyfikować zgodnie z warunkami licencji GNU General Public License opublikowanej przez Free Software Foundation w wersji 2 tej licencji lub (jeśli wolisz) dowolnej późniejszej.
@@ -3987,8 +3986,9 @@ Powinieneś otrzymać [{{SERVER}}{{SCRIPTPATH}}/COPYING kopię licencji GNU Gene
 'version-entrypoints-header-url' => 'URL',
 
 # Special:Redirect
-'redirect' => 'Przekierowanie przez identyfikator pliku, użytkownika lub zmiany',
+'redirect' => 'Przekierowanie według pliku, użytkownika albo identyfikatora wersji',
 'redirect-legend' => 'Przekieruj do pliku lub strony',
+'redirect-summary' => 'Ta strona specjalna przekierowuje do pliku (wg nazwy pliku), do strony (wg numeru wersji) albo do strony użytkownika (wg liczbowego identyfikatora użytkownika)',
 'redirect-submit' => 'Przejdź',
 'redirect-lookup' => 'Wyszukaj:',
 'redirect-value' => 'Wartość:',
index efc409a..9aaf4b6 100644 (file)
@@ -192,37 +192,37 @@ $messages = array(
 'faqpage' => 'Project:Soèns An Ciamo',
 
 # Vector skin
-'vector-action-addsection' => 'Gionta argoment',
-'vector-action-delete' => 'Scancela',
-'vector-action-move' => 'Tramuda',
-'vector-action-protect' => 'Protegg',
-'vector-action-undelete' => 'Arcùpera',
+'vector-action-addsection' => "Gionté n'argoment",
+'vector-action-delete' => 'Scancelé',
+'vector-action-move' => 'Tramudé',
+'vector-action-protect' => 'Protege',
+'vector-action-undelete' => 'Arcuperé',
 'vector-action-unprotect' => 'Cangé la protession',
 'vector-simplesearch-preference' => "Abilité la bara d'arserca semplificà (mach për la pel Vector)",
-'vector-view-create' => 'Crea',
-'vector-view-edit' => 'Modìfica',
-'vector-view-history' => 'Varda stòria',
-'vector-view-view' => 'Les',
-'vector-view-viewsource' => 'Varda sorgiss',
+'vector-view-create' => 'Creé',
+'vector-view-edit' => 'Modifiché',
+'vector-view-history' => 'Smon-e la stòria',
+'vector-view-view' => 'Lese',
+'vector-view-viewsource' => 'Vëdde la sorgiss',
 'actions' => 'Assion',
 'namespaces' => 'Spassi nominaj',
 'variants' => 'Variant',
 
 'navigation-heading' => 'Lista ëd navigassion',
 'errorpagetitle' => 'Eror',
-'returnto' => 'Torna andré a $1.',
+'returnto' => 'Torné andré a $1.',
 'tagline' => 'Da {{SITENAME}}.',
 'help' => 'Agiut',
-'search' => 'Sërca',
-'searchbutton' => 'Sërca',
-'go' => 'Va',
-'searcharticle' => 'Va',
+'search' => 'Sërc',
+'searchbutton' => 'Sërc',
+'go' => 'Andé',
+'searcharticle' => 'Andé',
 'history' => 'Version pì veje',
 'history_short' => 'Stòria',
-'updatedmarker' => "Agiornà da 'nt l'ùltima vira che i son passà",
+'updatedmarker' => "agiornà da l'ùltima vira che i son passà",
 'printableversion' => 'Version bon-a për stampé',
 'permalink' => 'Anliura fissa',
-'print' => 'Stampa',
+'print' => 'Stampé',
 'view' => 'Vardé',
 'edit' => 'Modìfica',
 'create' => 'Creé',
@@ -566,13 +566,12 @@ Për piasì speta prima ëd prové torna.",
 'resetpass-wrong-oldpass' => "Ciav a temp o corenta nen bon-a.
 Miraco it l'has già cambià la ciav o it l'has ciamà na neuva ciav a temp.",
 'resetpass-temp-password' => 'Ciav a temp:',
+'resetpass-abort-generic' => "Ël cangiament ëd la ciav a l'é stàit anulà da n'estension.",
 
 # Special:PasswordReset
 'passwordreset' => 'Cambi ëd ciav',
-'passwordreset-text' => "Ch'a completa 's formolari për arsèive un mëssagi ëd pòsta eletrònica con ij detaj ëd sò cont.",
 'passwordreset-legend' => 'Cambié la ciav',
 'passwordreset-disabled' => 'Ij cangiament ëd ciav a son stàit disabilità su sta wiki.',
-'passwordreset-pretext' => "{{PLURAL:$1||Ch'a anserissa un dij tòch ëd dat sì-sota}}",
 'passwordreset-username' => 'Stranòm:',
 'passwordreset-domain' => 'Domini:',
 'passwordreset-capture' => 'Vardé ël mëssagi arzultant?',
@@ -804,14 +803,15 @@ A-i é pa gnun-e spiegassion.",
 A smija che a sia stàita scancelà.',
 'edit-conflict' => "Conflit d'edission.",
 'edit-no-change' => "Toa modìfica a l'é stàita ignorà, përchè a l'é pa stàit fàit gnun cambiament al test.",
+'postedit-confirmation' => "Soa modìfica a l'é stàita salvà!",
 'edit-already-exists' => 'As peul nen creesse la pàgina.
 A esist già.',
 'defaultmessagetext' => "Test che a-i sarìa se a-i fusso pa 'd modìfiche",
 'content-failed-to-parse' => "Faliment ëd l'anàlisi dël contnù ëd $2 për ël model $1: $3",
 'invalid-content-data' => 'Dat dël contnù pa bon',
 'content-not-allowed-here' => "Ël contnù «$1» a l'é nen autorisà an sla pàgina [[$2]]",
-'editwarning-warning' => "Lassé sta pàgina-sì a peul fé an manera che it perde tute le modìfiche ch'it l'has fàit.
-S'it ses logà, it peule disabilité st'avis-sì ant la session \"{{int:prefs-editing}}\" dij tò gust.",
+'editwarning-warning' => "Chité sta pàgina-sì a peul feje perde tute le modìfiche ch'a l'ha fàit.
+S'a l'é rintrà ant ël sistema, a peul disabilité st'avis ant la session «Modìfiche» dij sò gust.",
 
 # Content models
 'content-model-wikitext' => 'test wiki',
index e1e8b79..1836ec5 100644 (file)
@@ -36,6 +36,7 @@
  * @author McDutchie
  * @author MetalBrasil
  * @author Minh Nguyen
+ * @author Nemo bis
  * @author Nuno Tavares
  * @author Opraco
  * @author Paulo Juntas
@@ -867,10 +868,8 @@ Pode ter já alterado com sucesso a sua palavra-chave ou solicitado uma nova pal
 
 # Special:PasswordReset
 'passwordreset' => 'Repor palavra-chave',
-'passwordreset-text' => 'Preencha este formulário para repor a sua palavra-passe.',
 'passwordreset-legend' => 'Reiniciar a palavra-chave',
 'passwordreset-disabled' => 'O reinício da palavra-chave foi impossibilitado nesta wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Introduza um dos dados abaixo}}',
 'passwordreset-username' => 'Nome de utilizador:',
 'passwordreset-domain' => 'Domínio:',
 'passwordreset-capture' => 'Ver o email resultante?',
@@ -1112,6 +1111,7 @@ Não foi dada nenhuma explicação.',
 Ela parece ter sido eliminada.',
 'edit-conflict' => 'Conflito de edição.',
 'edit-no-change' => 'A sua edição foi ignorada, uma vez que o texto não sofreu alterações.',
+'postedit-confirmation' => 'Sua edição foi gravada',
 'edit-already-exists' => 'Não foi possível criar uma página nova.
 Ela já existia.',
 'defaultmessagetext' => 'Texto da mensagem padrão',
index 9d654ed..e70911a 100644 (file)
@@ -46,6 +46,7 @@
  * @author McDutchie
  * @author MetalBrasil
  * @author MisterSanderson
+ * @author Nemo bis
  * @author Opraco
  * @author Pedroca cerebral
  * @author Ppena
@@ -428,6 +429,18 @@ $messages = array(
 'oct' => 'out.',
 'nov' => 'nov.',
 'dec' => 'dez.',
+'january-date' => '$1 de janeiro',
+'february-date' => '$1 de fevereiro',
+'march-date' => '$1 de março',
+'april-date' => '$1 de abril',
+'may-date' => '$1 de maio',
+'june-date' => '$1 de junho',
+'july-date' => '$1 de julho',
+'august-date' => '$1 de agosto',
+'september-date' => '$1 de setembro',
+'october-date' => '$1 de outubro',
+'november-date' => '$1 de novembro',
+'december-date' => '$1 de dezembro',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Categoria|Categorias}}',
@@ -881,11 +894,9 @@ Você pode já ter alterado com sucesso a sua senha, ou solicitado uma nova senh
 
 # Special:PasswordReset
 'passwordreset' => 'Redefinir senha',
-'passwordreset-text' => 'Preencha este formulário para recuperar os dados da sua conta pelo e-mail.',
 'passwordreset-legend' => 'Reiniciar a senha',
 'passwordreset-disabled' => 'Redefinições de senha foram desabilitadas nesta wiki.',
 'passwordreset-emaildisabled' => 'Os recursos de e-mail foram desativados nesta wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Introduza um dos dados abaixo}}',
 'passwordreset-username' => 'Nome de usuário:',
 'passwordreset-domain' => 'Domínio:',
 'passwordreset-capture' => 'Ver o e-mail resultante?',
@@ -1126,6 +1137,7 @@ Ele não deu nenhuma explicação.",
 Ela parece ter sido eliminada.',
 'edit-conflict' => 'Conflito de edição.',
 'edit-no-change' => 'A sua edição foi ignorada, uma vez que o texto não sofreu alterações.',
+'postedit-confirmation' => 'Sua edição foi salva',
 'edit-already-exists' => 'Não foi possível criar uma nova página.
 Ela já existia.',
 'defaultmessagetext' => 'Texto da mensagem padrão',
index e789898..ffaa0cb 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author *Surak*
+ * @author 127.0.0.1
  * @author Abanima
  * @author Ahonc
  * @author Aleator
@@ -1138,19 +1139,19 @@ See example: [{{canonicalurl:Special:UserLogin|useNew=1}} Special:UserLogin?useN
 {{Identical|Do not have an account}}',
 'nologinlink' => 'Text of the link to the account creation form. Before that link, the message {{msg-mw|Nologin}} appears.
 {{Identical|Create an account}}',
-'createaccount' => '{{doc-special|CreateAccount}}
-The special page enables users to register a new account.
+'createaccount' => 'Used on the top of the page for logged out users, where it appears next to {{msg-mw|login}}, so consider making them similar.
 
-Used on the submit button in the form where you register a new account.
-
-It is also used on the top of the page for logged out users, where it appears next to {{msg-mw|login}}, so consider making them similar.
+It is also used on the submit button in the form/special page where you register a new account.
+{{doc-special|CreateAccount}}
 {{Identical|Create account}}',
 'gotaccount' => 'A message shown in the account creation form.
 * $1 - a link to the log in form, and the text of it is {{msg-mw|Gotaccountlink}}',
 'gotaccountlink' => 'Text of the link to the log in form. Before that link, the message {{msg-mw|Gotaccount}} appears.
 {{Identical|Log in}}',
 'userlogin-resetlink' => 'Used on the login page.',
-'userlogin-resetpassword-link' => 'Text of link to [[Special:PasswordReset]] on new vertical-layout create account form.
+'userlogin-resetpassword-link' => 'Used as link text on new vertical-layout create account form.
+
+The link points to [[Special:PasswordReset]].
 
 See example: [{{canonicalurl:Special:UserLogin|useNew=1}} Special:UserLogin?useNew=1]
 
@@ -1348,13 +1349,13 @@ See also:
 # Special:PasswordReset
 'passwordreset' => 'Title of [[Special:PasswordReset]].
 {{Identical|Reset password}}',
-'passwordreset-text' => 'Text on [[Special:PasswordReset]]',
+'passwordreset-text-one' => 'Text on [[Special:PasswordReset]] that appears when there is only one way of resetting the password.',
+'passwordreset-text-many' => 'Text on [[Special:PasswordReset]] that appears when there are multiple ways of resetting the password.
+
+* $1 is the number of password reset routes.',
 'passwordreset-legend' => '{{Identical|Reset password}}',
 'passwordreset-disabled' => 'Used as error message in changing password.',
 'passwordreset-emaildisabled' => "Used as error message in changing password when site's email feature is disabled.",
-'passwordreset-pretext' => 'These instructions are shown on the password reset dialogue, which can, in principle, take the user\'s email address as well as, or instead of, their username. This text displays above one or more fields, at least one of which needs to be completed, and the message does not know which routes are available, so it needs to refer to some vague noun rather than specifically "username".
-"One of the pieces of data" means "an info"/"a datum" (probably to be translatea with a singular noun in your language if available). Parameters:
-* $1 is the number of password reset routes. This is never 1, but always two or more. Thus, the first plural option is empty in English.',
 'passwordreset-username' => '{{Identical|Username}}',
 'passwordreset-domain' => 'A domain like used in Domain Name System (DNS) or more specifically like a domain component in the Lightweight Directory Access Protocol (LDAP)',
 'passwordreset-capture' => 'Label for checkbox asking the user whether they want to see the contents of the password reset email (only shown if they have the <tt>passwordreset</tt> permission',
@@ -1712,6 +1713,7 @@ See also:
 * {{msg-mw|edit-gone-missing}}
 * {{msg-mw|edit-conflict}}
 * {{msg-mw|edit-already-exists}}',
+'postedit-confirmation' => 'Confirmation message that is displayed upon successful edit. Parameter $1 is the current user, for GENDER support.',
 'edit-already-exists' => 'Used as error message.
 
 See also:
@@ -4244,8 +4246,7 @@ The other parts are {{msg-mw|Prevpage}} and {{msg-mw|Nextpage}}.
 
 # Special:Categories
 'categories' => 'The page name of [[Special:Categories]].
-
-{{Identical|Categories}}',
+{{Identical|Category}}',
 'categoriespagetext' => "{{doc-important|Do not translate or change links.}}
 Text displayed in [[Special:Categories]].
 
index 1c232f7..1d48931 100644 (file)
@@ -619,11 +619,11 @@ Pò essere ca tu è già cangete 'a password toje o è richieste una temboranea
 
 # Special:PasswordReset
 'passwordreset' => "Azzere 'a passuord",
-'passwordreset-text' => "Comblete stu module pe ricevere 'na mail de promemorie de le dettaglie d'u cunde tune.",
+'passwordreset-text-one' => "Comblete stu module pe azzerà 'a passuord toje.",
+'passwordreset-text-many' => "{{PLURAL:$1|Mitte une de le pizze de date pe azzerà 'a passuord toje.}}",
 'passwordreset-legend' => "Azzere 'a passuord",
 'passwordreset-disabled' => "'U reset de le passuord ha state desabbilitate sus a sta uicchi.",
 'passwordreset-emaildisabled' => "Le funziune de l'email onne state disabbilitate sus a sta uicchi.",
-'passwordreset-pretext' => '{{PLURAL:$1||Mitte une de le stuèzze de le date aqquà sotte}}',
 'passwordreset-username' => 'Nome utende:',
 'passwordreset-domain' => 'Dominie:',
 'passwordreset-capture' => "Vide 'a mail resultande?",
@@ -870,6 +870,7 @@ Non g'à date nisciune mutive.",
 Pare proprie ca l'onne scangellete.",
 'edit-conflict' => 'conflitte de cangiaminde.',
 'edit-no-change' => "'U cangiamende ca p fatte, avène scettate purcè 'u teste non g'à cangete manghe de 'na virgola.",
+'postedit-confirmation' => "'U cangiamende tune ha state reggistrate.",
 'edit-already-exists' => "Non ge puè ccrejà 'na pàgene nove purcè esiste già!",
 'defaultmessagetext' => 'Messàgge de teste de base',
 'content-failed-to-parse' => "L'analise d'u condenute $2 pu modelle $1 ha fallite: $3",
index 0509978..199fca3 100644 (file)
  * @author KorneySan
  * @author Kv75
  * @author Lockal
+ * @author Matma Rex
  * @author MaxBioHazard
  * @author MaxSem
  * @author NBS
+ * @author Nemo bis
  * @author Ola
  * @author Ole Yves
  * @author Putnik
@@ -985,11 +987,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Сброс пароля',
-'passwordreset-text' => 'Чтобы сбросить свой пароль, заполните эту форму.',
 'passwordreset-legend' => 'Сбросить пароль',
 'passwordreset-disabled' => 'Сбросы пароля отключены на этой вики.',
 'passwordreset-emaildisabled' => 'Функции электронной почты отключены в этой вики.',
-'passwordreset-pretext' => '{{PLURAL:$1||Введите одну из частей данных, показанных ниже}}',
 'passwordreset-username' => 'Имя участника:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Просмотреть получившееся письмо?',
index 99272b3..0931e4f 100644 (file)
@@ -225,6 +225,18 @@ $messages = array(
 'oct' => 'окт',
 'nov' => 'нов',
 'dec' => 'дец',
+'january-date' => '$1. януара',
+'february-date' => '$1. фебруара',
+'march-date' => '$1. марца',
+'april-date' => '$1. апріля',
+'may-date' => '$1. мая',
+'june-date' => '$1. юна',
+'july-date' => '$1. юла',
+'august-date' => '$1. авґуста',
+'september-date' => '$1. септембра',
+'october-date' => '$1. октобра',
+'november-date' => '$1. новембра',
+'december-date' => '$1. децембра',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Катеґорія|Катеґорії}}',
@@ -472,7 +484,7 @@ $1',
 'directorycreateerror' => 'Не мож вытворити адресарь «$1».',
 'filenotfound' => 'Не было можне найти файл «$1».',
 'fileexistserror' => 'Не дасть ся записати до файлу «$1»: файл екзістує.',
-'unexpected' => 'Неочекавана годнота: «$1»=«$2».',
+'unexpected' => 'Несподїване значіня: «$1»=«$2».',
 'formerror' => 'Хыба: небыло можне одослати формуларь',
 'badarticleerror' => 'Тота дїя не може быти выконана на тій сторінцї.',
 'cannotdelete' => 'Не є можне вымазати сторінку або файл "$1".
@@ -672,26 +684,21 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Ресет гесла',
-'passwordreset-text' => 'Выпиште тот формуларь, жебы ся вам могло обновити гесло',
 'passwordreset-legend' => 'Знову наставити гесло',
 'passwordreset-disabled' => 'Зновунаставлїня гесла є на тій вікі заказане',
 'passwordreset-emaildisabled' => 'Функції електронічной пошты были выпнуы на тій вікі.',
-'passwordreset-pretext' => '{{PLURAL:$1||Задайте єден з дат ниже}}',
 'passwordreset-username' => 'Мено хоснователя:',
 'passwordreset-domain' => 'Домена:',
 'passwordreset-capture' => 'Посмотрити выслїдный імейл?',
 'passwordreset-capture-help' => 'Кідь означіте тото поличко, буде імейл (з дочасным геслом) оркем посланя хоснователёви указаный і вам.',
 'passwordreset-email' => 'Адреса електронічной пошты:',
 'passwordreset-emailtitle' => 'Детайлы конта на {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'Дахто (може вы, з IP адресы $1) пожадав о наставлїня гесла вашому 
-конту на {{grammar:6sg|{{SITENAME}}}} ($4). К тій адресї {{PLURAL:$3|є спрягнуте наступне конто|суть спрягнуты наступны конта}}:
+'passwordreset-emailtext-ip' => 'Дахто (може Вы, з IP адресы $1) попросив о наставлїня нового гесла до вашого конта на {{grammar:6sg|{{SITENAME}}}} ($4). З тов адресов {{PLURAL:$3|є повязане наступне конто|суть повазяны слїдуючі конта}}:
 
 $2
 
-{{PLURAL:$3|Тот дочасне гесло|Тоты дочасны гесла}} кінчать{{PLURAL:$5|за єден день|за $5 днїв|за $5 днїв}}.
-Нынї бы сьте ся мав(а) приголосити і зволити собі нове гесло. Як тоту пожадавку
-послав дахто другый або сьте собі на своє старе гесло спомянув(а), і не хочете го
-змінити, можете тото повідомлїня іґноровати та дале хосновати старе гесло.',
+{{PLURAL:$3|Тото дочасне гесло|Тоты дочасны гесла}} стануть неплатныма {{PLURAL:$5|за день|за $5 днї|за $5 днїв}}.
+Теперь бы хотїло, бы сьте ся приголосили та зволлил нове гесло. Кідь тоту просьбу післав хтось другый або сьте ся на старе гесло роспамнятали і не хочете го змінити, можете тото повідомлїня іґноровати та дале хосновати старе гесло.',
 'passwordreset-emailtext-user' => '{{gender:$1|Хоснователь|Хоснователька|Хоснователь}} $1 {{grammar:2sg|{{SITENAME}}}} {{gender:$1|попросив|попросила|попросив}} о наставлїня нового гесла к вашому
 конту на {{grammar:6sg|{{SITENAME}}}} ($4). К тій адресї {{PLURAL:$3|є спряжене наступне конто|суть спряжены наступну конта}}:
 
@@ -705,7 +712,7 @@ $2
 Дочасне гесло: $2',
 'passwordreset-emailsent' => 'Імейл з геслом быв посланый.',
 'passwordreset-emailsent-capture' => 'Быв выґенерованый імейл з геслом, што є вказаный ниже.',
-'passwordreset-emailerror-capture' => 'Быв выґенерованый імейл з геслом, котрый є указаный ниже, але одослати хоснователёви ся го не вдало: $1',
+'passwordreset-emailerror-capture' => 'Быв выґенерованый імейл з геслом, котрый є указаный ниже, але ся го не вдало загнати {{GENDER:$2|хоснователёви|хосновательцї}}: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'Зміна імейловой адресы',
@@ -1192,7 +1199,7 @@ $1",
 'powersearch-togglenone' => 'Жадный',
 'search-external' => 'Екстерне гляданя',
 'searchdisabled' => '<p>Перебачте. Повнотекстове гляданя є дочасно недоступне. Затля можете спробовати гляданя Google; є але можне, же ёго резултаты не мусять быти актуалны.</p>',
-'search-error' => 'Ð\9fÑ\96д Ñ\87аÑ\81 Ð³Ð»Ñ\8fданÑ\8f Ñ\81Ñ\8f Ñ\82Ñ\80аÑ\84ила Ñ\85Ñ\8bба',
+'search-error' => 'Як Ñ\81Ñ\8f Ð³Ð»Ñ\8fдало Ñ\82Ñ\80аÑ\84Ñ\96ла Ñ\81Ñ\8f Ñ\85Ñ\8bба: $1',
 
 # Preferences page
 'preferences' => 'Наставлїня',
@@ -2280,9 +2287,9 @@ $UNWATCHURL
 Моменталны наставлїня про сторінку : '''$1''':",
 'protect-cascadeon' => 'Тота сторінка є теперь хранена, бо є загорнута {{PLURAL:$1|до зазначеной сторінкы ніже, на яку|до ниже зазначеных сторінок, на якы}} становлена каскадова охрана. Вы можете змінити рівень охраны той сторінкы, але тото не буде впливати на каскадову охрану.',
 'protect-default' => 'Дозволити вшыткым хоснователям',
-'protect-fallback' => 'Ð\9fоÑ\80Ñ\82Ñ\80Ñ\96бнÑ\8b "$1" Ð¿Ñ\80ава',
-'protect-level-autoconfirmed' => 'Ð\91локоваÑ\82и Ð½Ð¾Ð²Ñ\8bÑ\85 Ñ\96 Ð½ÐµÐ·Ð°Ñ\80еÒ\91Ñ\96Ñ\81Ñ\82Ñ\80ованÑ\8bÑ\85 Ñ\85оÑ\81новаÑ\82елÑ\97в',
-'protect-level-sysop' => 'Ð\9bем Ð°Ð´Ð¼Ñ\96нÑ\96Ñ\81Ñ\82Ñ\80аÑ\82оÑ\80Ñ\8b',
+'protect-fallback' => 'Ð\94озволено Ð»ÐµÐ¼ Ñ\85оÑ\81новаÑ\82елÑ\8fм Ð· Ð¿Ñ\80авом â\80\9e$1â\80\9c',
+'protect-level-autoconfirmed' => 'Ð\94озволиÑ\82и Ð»ÐµÐ¼ Ð°Ð²Ñ\82омаÑ\82Ñ\96Ñ\87но Ð¿Ð¾Ñ\82веÑ\80дженÑ\8bм Ñ\85оÑ\81новаÑ\82елÑ\8fм',
+'protect-level-sysop' => 'Ð\94озволено Ð»ÐµÐ¼ Ð°Ð´Ð¼Ñ\96нÑ\96Ñ\81Ñ\82Ñ\80аÑ\82оÑ\80ам',
 'protect-summary-cascade' => 'каскадовый',
 'protect-expiring' => 'кінчіть $1 (UTC)',
 'protect-expiring-local' => 'кінчіть ся $1',
@@ -2543,6 +2550,7 @@ $1',
 'proxyblocksuccess' => 'Готово.',
 'sorbsreason' => 'Ваша IP-адреса є веджена як отвореный проксі в DNSBL.',
 'sorbs_create_account_reason' => 'Ваша IP-адреса є веджена як одкрытый проксі в DNSBL. З той адресы собі не можете створити конто.',
+'xffblockreason' => 'IP адреса написана в голові X-Forwarded-For, ці уж ваша, або проксі сервера, што хоснуєете, была заблокована. Оріґінална прічіна того блокованя: $1',
 'cant-block-while-blocked' => 'Не можете блоковати іншых хоснователїв, кідь сьте сам заблокованый(а).',
 'cant-see-hidden-user' => 'Хоснователь, котрого хочете заблоковати, уж быв заблокованый і схованый. Кідьже не маєте права hideuser, не можете собі наставлїня блокованя того хоснователя посмотрити ани го змінити.',
 'ipbblocked' => 'Не можете блоковати або одблоковати іншых хоснователїв, {{GENDER:|сам|сама|сам}} сьте {{GENDER:|заблокованый|заблокована|заблокованый}}',
@@ -2570,14 +2578,14 @@ $1',
 # Move page
 'move-page' => 'Переменовати „$1“',
 'move-page-legend' => 'Переменовати сторінку',
-'movepagetext' => "ХоÑ\81нÑ\83вÑ\87Ñ\96 Ñ\84оÑ\80мÑ\83 Ð½Ð¸Ð¶Ðµ, Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿ÐµÑ\80еменоваÑ\82и Ñ\81Ñ\82оÑ\80Ñ\96нкÑ\83, Ñ\94днÑ\8bм Ñ\80азом перемістивши на нове місце і лоґ єй едітовань.
-СÑ\82аÑ\80а Ð½Ð°Ð·Ð²Ð° Ñ\81Ñ\82ане Ð¿ÐµÑ\80енапÑ\80Ñ\8fмлинÑ\91м Ð½Ð° Ð½Ð¾Ð²Ñ\83 Ð½Ð°Ð·Ð²Ñ\83.
-Можете автоматично обновити напрямлиня на стару назву.
-Кідь вы тото не зробите, просиме Вас, перевірте наявність [[Special:DoubleRedirects|подвойных]] ці [[Special:BrokenRedirects|розорваных]] напрямлїнь.
+'movepagetext' => "ХоÑ\81нÑ\83вÑ\87Ñ\96 Ñ\84оÑ\80мÑ\83 Ð½Ð¸Ð¶Ðµ, Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿ÐµÑ\80еменоваÑ\82и Ñ\81Ñ\82оÑ\80Ñ\96нкÑ\83, Ñ\82акой перемістивши на нове місце і лоґ єй едітовань.
+Стара назва стане напрямлинём на нову назву.
+Можете автоматично обновити напрямлїня на стару назву.
+Кідь вы тото не зробите, просиме Вас, перевірте [[Special:DoubleRedirects|подвойны]] ці [[Special:BrokenRedirects|розорваны]] напрямлїня.
 Вы одповідате за то, жебы одказы і надале вказовали там, де мають.
 
-Уважте, же сторінка '''не''' буде переменована, кідь сторінка з новов назвов уж екзістує, окрем того, коли она порожня або є напрямлїнём, а лоґ єй едітовань порожнїй.
-То Ð·Ð½Ð°Ñ\87Ñ\96Ñ\82Ñ\8c, Ð¶Ðµ Ð²Ñ\8b Ð¼Ð¾Ð¶ÐµÑ\82е Ð²ÐµÑ\80нÑ\83Ñ\82и Ñ\81Ñ\82оÑ\80Ñ\96нÑ\86Ñ\97 Ñ\81Ñ\82аÑ\80Ñ\83 Ð½Ð°Ð·Ð²Ñ\83, ÐºÑ\96дÑ\8c Ð²Ñ\8b Ð¿ÐµÑ\80еменовали Ñ\94й Ð¿Ð¾Ð¼Ñ\8bлково, Ð°Ð»Ðµ Ð²Ñ\8b Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿ÐµÑ\80епиÑ\81аÑ\82и ÐµÐºÐ·Ñ\96Ñ\81Ñ\82уючу сторінку.
+Уважте, же сторінка '''не''' буде переменована, кідь сторінка з новов назвов уж існує, окрем того, коли она порожня або є напрямлїнём, а лоґ єй едітовань порожнїй.
+То Ð·Ð½Ð°Ñ\87Ñ\96Ñ\82Ñ\8c, Ð¶Ðµ Ð²Ñ\8b Ð¼Ð¾Ð¶ÐµÑ\82е Ð²ÐµÑ\80нÑ\83Ñ\82и Ñ\81Ñ\82оÑ\80Ñ\96нÑ\86Ñ\97 Ñ\81Ñ\82аÑ\80Ñ\83 Ð½Ð°Ð·Ð²Ñ\83, ÐºÑ\96дÑ\8c Ð²Ñ\8b Ð¿ÐµÑ\80еменовали Ñ\94й Ð½ÐµÐ½Ð°Ñ\80оком, Ð°Ð»Ðµ Ð²Ñ\8b Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ\82е Ð¿ÐµÑ\80епиÑ\81аÑ\82и Ñ\96Ñ\81нуючу сторінку.
 
 '''ВАРОВАНЯ!'''
 Тота дїя може ся стати причінов серіозных а неочекованых змін популарных сторінок.
@@ -2704,6 +2712,8 @@ $1',
 'thumbnail-more' => 'Звекшыти',
 'filemissing' => 'Файл хыбить',
 'thumbnail_error' => 'Хыба створїня нагляду: $1',
+'thumbnail_error_remote' => 'Хыбове голошіня з {{grammar:2sg|$1}}:
+$2',
 'djvu_page_error' => 'Сторінка DjVu мімо россяг',
 'djvu_no_xml' => 'Створїня XML про файл DjVu ся не вдало.',
 'thumbnail-temp-create' => 'Дочасный файл нагляду негодно было створити',
@@ -2889,6 +2899,7 @@ $1',
 'pageinfo-robot-noindex' => 'Не індексує ся',
 'pageinfo-views' => 'Чісло переглядів',
 'pageinfo-watchers' => 'Кількость слїдуючіх сторінку',
+'pageinfo-few-watchers' => 'Менше як $1 {{PLURAL:$1|слїдуючій|слїдуючі|слїдуючіх}}',
 'pageinfo-redirects-name' => 'Напрямлїня на гевсю сторінку',
 'pageinfo-subpages-name' => 'Підсторінкы гевсёй сторінкы',
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|напрямлїня}}; $3 {{PLURAL:$3|ненапрямлїня}})',
@@ -2903,6 +2914,7 @@ $1',
 'pageinfo-magic-words' => '{{PLURAL:$1|Маґічне слово|Маґічны слова}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Скрыта катеґорія|Скрыты катеґорії}} ($1)',
 'pageinfo-templates' => '{{PLURAL:$1|Хоснована шаблона|Хоснованы шаблоны}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Сторінка, до котрой|Сторінкы, до котрых}} є тота сторінка вложена ($1)',
 'pageinfo-toolboxlink' => 'Інформації о сторінцї',
 'pageinfo-redirectsto' => 'Напрямлює на',
 'pageinfo-redirectsto-info' => 'інформація',
@@ -2911,6 +2923,10 @@ $1',
 'pageinfo-protect-cascading' => 'Одты ся почінать каскадна охорона',
 'pageinfo-protect-cascading-yes' => 'Гей',
 'pageinfo-protect-cascading-from' => 'Каскадна охорона ся почінать гев',
+'pageinfo-category-info' => 'Інформація о катеґорії',
+'pageinfo-category-pages' => 'Кількость сторінок',
+'pageinfo-category-subcats' => 'Кількость підкатеґорій',
+'pageinfo-category-files' => 'Кількость файлів',
 
 # Patrolling
 'markaspatrolleddiff' => 'Означіти як перевірене',
@@ -2988,9 +3004,25 @@ $1',
 'minutes' => '{{PLURAL:$1|$1 минута|$1 минуты|$1 минут}}',
 'hours' => '{{PLURAL:$1|$1 година|$1 годины|$1 годин}}',
 'days' => '{{PLURAL:$1|$1 день|$1 днї|$1 днїв}}',
+'weeks' => '{{PLURAL:$1|$1 тыждень|$1 тыжднї|$1 тыжднїв}}',
+'months' => '{{PLURAL:$1|$1 місяць|$1 місяцї|$1 місяцїв}}',
+'years' => '{{PLURAL:$1|$1 рік|$1 рокы|$1 років}}',
 'ago' => '$1 тому',
 'just-now' => 'акурат теперь',
 
+# Human-readable timestamps
+'hours-ago' => 'перед $1 {{PLURAL:$1|годинов|годинами}}',
+'minutes-ago' => '$1 {{PLURAL:$1|минуту|минуты|минут}} тому',
+'seconds-ago' => '$1 {{PLURAL:$1|секунду|секунды|секунд}} тому',
+'monday-at' => 'В понедїлёк о $1',
+'tuesday-at' => 'У вівторок о $1',
+'wednesday-at' => 'В середу о $1',
+'thursday-at' => 'В четверь о $1',
+'friday-at' => 'В пятніцю о $1',
+'saturday-at' => 'В суботу о $1',
+'sunday-at' => 'В недїлю о $1',
+'yesterday-at' => 'Вчера о $1',
+
 # Bad image list
 'bad_image_list' => 'Формат має быти наступным:
 
@@ -3605,6 +3637,18 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'version-entrypoints-header-entrypoint' => 'Вступный пункт',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => 'Напрямлїня за файлом, хоснователям або ID ревізії',
+'redirect-legend' => 'Напрямити на файл або сторінку',
+'redirect-summary' => 'Тота шпеціална сторінка напрямує на файл (по назві), сторінку (по ID ревізії) або хоснователя (по чіселнім хоснователёвім ID).',
+'redirect-submit' => 'Перейти',
+'redirect-lookup' => 'Найти:',
+'redirect-value' => 'Значіня',
+'redirect-user' => 'ID хоснователя',
+'redirect-revision' => 'Ревізія сторінкы',
+'redirect-file' => 'Назва файлу',
+'redirect-not-exists' => 'Значіня ся не нашло',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Гляданя дуплікатных файлів',
 'fileduplicatesearch-summary' => 'Гляданя дупліцітных файлів ся базує на їх геш функції.',
@@ -3631,7 +3675,7 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'specialpages-group-highuse' => 'Часто поужываны сторінкы',
 'specialpages-group-pages' => 'Спискы сторінок',
 'specialpages-group-pagetools' => 'Інштрументы сторінок',
-'specialpages-group-wiki' => 'Ð\92Ñ\96кÑ\96 Ð´Ð°Ñ\82а і інштрументы',
+'specialpages-group-wiki' => 'Ð\94анÑ\8b і інштрументы',
 'specialpages-group-redirects' => 'Напрямлїня',
 'specialpages-group-spam' => 'Протиспамовы інштрументы',
 
@@ -3694,23 +3738,26 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'htmlform-submit' => 'Одослати',
 'htmlform-reset' => 'Вернути зміны',
 'htmlform-selectorother-other' => 'Інше',
+'htmlform-no' => 'Нє',
+'htmlform-yes' => 'Гей',
+'htmlform-chosen-placeholder' => 'Звольте параметер',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 з підпоров повнотекстового гляданя',
 'sqlite-no-fts' => '$1 без підпоры повнотекстового гляданя',
 
 # New logging system
-'logentry-delete-delete' => '$1 змазав сторінку $3',
-'logentry-delete-restore' => '$1 обновив сторінку $3',
-'logentry-delete-event' => '$1 змінив відимость {{PLURAL:$5|протоколового запису|$5 протоколовых записів}} к сторінцї $3: $4',
-'logentry-delete-revision' => '$1 змінив відимость {{PLURAL:$5|ревізії|$5 ревізій}} на сторінцї $3: $4',
-'logentry-delete-event-legacy' => '$1 змінив відимость протоколовых записів к сторінцї $3',
-'logentry-delete-revision-legacy' => '$1 змінив відимость ревізій на сторінцї $3',
-'logentry-suppress-delete' => '$1 утаїв сторінку $3',
-'logentry-suppress-event' => '$1 тайком змінив відимость {{PLURAL:$5|протоколового запису|$5 протоколовых записів}} к сторінцї $3: $4',
-'logentry-suppress-revision' => '$1 тайком змінив відимость {{PLURAL:$5|ревізії|$5 ревізій}} на сторінцї $3: $4',
-'logentry-suppress-event-legacy' => '$1 тайком змінив відимость протоколовых записів к сторінцї $3',
-'logentry-suppress-revision-legacy' => '$1 тайком змінив відимость ревізій на сторінцї $3',
+'logentry-delete-delete' => '$1 {{GENDER:$2|змазав|змазала}} сторінку $3',
+'logentry-delete-restore' => '$1 {{GENDER:$2|обновив|обновила}} сторінку $3',
+'logentry-delete-event' => '$1 {{GENDER:$2|змінив|змінила}}  відимость {{PLURAL:$5|протоколового запису|$5 протоколовых записів}} к сторінцї $3: $4',
+'logentry-delete-revision' => '$1 {{GENDER:$2|змінив|змінила}}  відимость {{PLURAL:$5|ревізії|$5 ревізій}} на сторінцї $3: $4',
+'logentry-delete-event-legacy' => '$1 {{GENDER:$2|змінив|змінила}} відимость протоколовых записів к сторінцї $3',
+'logentry-delete-revision-legacy' => '$1 {{GENDER:$2|змінив|змінила}}  відимость ревізій на сторінцї $3',
+'logentry-suppress-delete' => '$1 {{GENDER:$2|утаїв|утаїла}}  сторінку $3',
+'logentry-suppress-event' => '$1 тайком {{GENDER:$2|змінив|змінила}}  відимость {{PLURAL:$5|протоколового запису|$5 протоколовых записів}} к сторінцї $3: $4',
+'logentry-suppress-revision' => '$1 тайком {{GENDER:$2|змінив|змінила}}  відимость {{PLURAL:$5|ревізії|$5 ревізій}} на сторінцї $3: $4',
+'logentry-suppress-event-legacy' => '$1 тайком {{GENDER:$2|змінив|змінила}}  відимость протоколовых записів к сторінцї $3',
+'logentry-suppress-revision-legacy' => '$1 тайком {{GENDER:$2|змінив|змінила}} відимость ревізій на сторінцї $3',
 'revdelete-content-hid' => 'скрыти обсяг',
 'revdelete-summary-hid' => 'опис едітованя схованый',
 'revdelete-uname-hid' => 'імя хоснователя сховане',
@@ -3719,19 +3766,20 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'revdelete-uname-unhid' => 'імя хоснователя одкрыте',
 'revdelete-restricted' => 'приданы обмеджіня про адміністраторів',
 'revdelete-unrestricted' => 'зняты обмеджіня про адміністраторів',
-'logentry-move-move' => '$1 переменовав сторінку $3 на $4',
-'logentry-move-move-noredirect' => '$1 переменовав сторінку $3 на $4 без створїня напрямлїня',
-'logentry-move-move_redir' => '$1 переменовав сторінку $3 на $4 з вычерянём напрямлїнём',
-'logentry-move-move_redir-noredirect' => '$1 переменовав сторінку $3 на $4 місце напрямлїня без створїня напрямлїня',
-'logentry-patrol-patrol' => '$1 означів ревізію $4 сторінкы $3 як перевірену',
-'logentry-patrol-patrol-auto' => '$1 автоматічно означів ревізію $4 сторінкы $3 як перевірену',
-'logentry-newusers-newusers' => 'Створене хосновательске конто $1',
-'logentry-newusers-create' => 'Створене было хосновательске конто $1',
-'logentry-newusers-create2' => '$1 створив хосновательске конто $3',
-'logentry-newusers-autocreate' => 'Автоматічно было створене конто $1',
+'logentry-move-move' => '$1 {{GENDER:$2|переменовав|переменовала}} сторінку $3 на $4',
+'logentry-move-move-noredirect' => '$1 {{GENDER:$2|переменовав|переменовала}} сторінку $3 на $4 без створїня напрямлїня',
+'logentry-move-move_redir' => '$1 {{GENDER:$2|переменовав|переменовала}} сторінку $3 на $4 з вычерянём напрямлїнь',
+'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|змінив|змінила}} сторінку $3 на $4 місце напрямлїня без створїня напрямлїня',
+'logentry-patrol-patrol' => '$1 {{GENDER:$2|означів|означіла}} ревізію $4 сторінкы $3 як перевірену',
+'logentry-patrol-patrol-auto' => '$1 автоматічно {{GENDER:$2|означів|означіла}} ревізію $4 сторінкы $3 як перевірену',
+'logentry-newusers-newusers' => 'Было {{GENDER:$2|створене}} хосновательске конто $1',
+'logentry-newusers-create' => 'Было {{GENDER:$2|створене}} хосновательске конто $1',
+'logentry-newusers-create2' => '$1 {{GENDER:$2|створив|створила}} хосновательске конто $3',
+'logentry-newusers-byemail' => '$1 {{GENDER:$2|створив|створила}} хосновательске конто $3, гесло послане было імейлом',
+'logentry-newusers-autocreate' => 'Автоматічно было {{GENDER:$2|створене}} конто $1',
 'logentry-rights-rights' => '$1 {{GENDER:$1|змінив|змінила}} членство в ґрупах про $3 із $4 на $5',
 'logentry-rights-rights-legacy' => '$1 {{GENDER:$1|змінив|змінила}} членство в ґрупах про $3',
-'logentry-rights-autopromote' => '$1 было автоматічно переведено із $4 в $5',
+'logentry-rights-autopromote' => '$1 {{GENDER:$2|быв автоматічно переведеный|была автоматічно переведана}} з $4 на $5',
 'rightsnone' => '(жадне)',
 
 # Feedback
@@ -3786,6 +3834,7 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'api-error-ok-but-empty' => 'Внутрїшня хыба: сервер не одповідать.',
 'api-error-overwrite' => 'Не є дозволене переписати екзістуючій файл.',
 'api-error-stashfailed' => 'Внутрїшня хыба: серверу ся не вдало уложыти дочасный файл.',
+'api-error-publishfailed' => 'Внутрїшня хыба: серверови ся не вдало опубліковати дочасный файл.',
 'api-error-timeout' => 'Сервер не одповідав в очекаванім часї.',
 'api-error-unclassified' => 'Трафила ся незнама хыба.',
 'api-error-unknown-code' => 'Незнама хыба: „$1“',
@@ -3806,4 +3855,7 @@ MediaWiki є дістрібуована в надїї, же буде хосно
 'duration-centuries' => '$1 {{PLURAL:$1|стороча|стороча|стороч}}',
 'duration-millennia' => '$1 {{PLURAL:$1|тісячроча|тісячроча|тісячроч}}',
 
+# Image rotation
+'rotate-comment' => 'Образчік обернутый о $1 {{PLURAL:$1|ґрадус|ґрадусів}} за цайґером',
+
 );
index f8db620..332e052 100644 (file)
@@ -13,6 +13,7 @@
  * @author HalanTul
  * @author Kaganer
  * @author Meno25
+ * @author Nemo bis
  * @author Urhixidur
  */
 
@@ -582,10 +583,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Киирии тылы саҥаттан',
-'passwordreset-text' => 'Урукку киирии тылы уларытарга бу форманы толор.',
 'passwordreset-legend' => 'Киирии тылы саҥаттан',
 'passwordreset-disabled' => 'Бу биикигэ киирии тылы саҥардыы бобуллубут.',
-'passwordreset-pretext' => '{{PLURAL:$1||Аллара көстөр дааннайдартан биирин талан суруй}}',
 'passwordreset-username' => 'Кыттааччы:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Суруллубут суругу көрөҕүн дуо?',
index dfdcdcb..d7fc8d9 100644 (file)
@@ -11,6 +11,7 @@
  * @author Jeblad
  * @author Kaganer
  * @author Laila
+ * @author Linnea
  * @author Skuolfi
  * @author Teak
  * @author The Evil IP address
@@ -720,6 +721,12 @@ $1 {{int:pipe-separator}} $2',
 'rightslog' => 'Logga geavaheaddjirievttiin',
 'rightslogtext' => 'Vuolábealde lea logga geavaheaddjirivttiid rievdadusain.',
 
+# Associated actions - in the sentence "You do not have permission to X"
+'action-createpage' => 'álggahit siidduid',
+'action-createtalk' => 'álggahit ságastallansiidduid',
+'action-browsearchive' => 'ohcat sihkkojuvvon siidduid',
+'action-sendemail' => 'sáddet e-poasttaid',
+
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|rievdadus|rievdadusa}}',
 'recentchanges' => 'Varas rievdadusat',
index 00e3c75..6d58d82 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author Kaganer
+ * @author Nemo bis
  * @author OC Ripper
  * @author לערי ריינהארט
  */
@@ -250,6 +251,7 @@ $messages = array(
 'tog-diffonly' => 'Ne prikazuj sadržaj stranice ispod prikaza razlika',
 'tog-showhiddencats' => 'Prikaži skrivene kategorije',
 'tog-norollbackdiff' => 'Nakon povrata zanemari prikaz razlika',
+'tog-useeditwarning' => 'Upozori me kad napuštam stranicu za uređivanje bez snimanja izmjena',
 
 'underline-always' => 'Uvijek',
 'underline-never' => 'Nikad',
@@ -313,6 +315,18 @@ $messages = array(
 'oct' => 'okt',
 'nov' => 'nov',
 'dec' => 'dec',
+'january-date' => '$1. januar',
+'february-date' => '$1. februar',
+'march-date' => '$1. mart',
+'april-date' => '$1. april',
+'may-date' => '$1. maj',
+'june-date' => '$1. jun',
+'july-date' => '$1. jul',
+'august-date' => '$1. august',
+'september-date' => '$1. septembar',
+'october-date' => '$1. oktobar',
+'november-date' => '$1. novembar',
+'december-date' => '$1. decembar',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Kategorija|Kategorije}}',
@@ -620,9 +634,18 @@ Obratite pažnju da neke stranice mogu nastaviti da se prikazuju kao da ste još
 'welcomecreation-msg' => 'Vaš korisnički račun je napravljen.
 Ne zaboravite izmijeniti vlastite [[Special:Preferences|{{SITENAME}} postavke]].',
 'yourname' => 'Korisničko ime:',
+'userlogin-yourname' => 'Korisničko ime',
+'userlogin-yourname-ph' => 'Unesite svoje korisničko ime',
 'yourpassword' => 'Lozinka/zaporka:',
+'userlogin-yourpassword' => 'Lozinka/zaporka',
+'userlogin-yourpassword-ph' => 'Unesite svoju lozinku/zaporku',
+'createacct-yourpassword-ph' => 'Unesite lozinku/zaporku',
 'yourpasswordagain' => 'Ponovno utipkajte lozinku/zaporku:',
+'createacct-yourpasswordagain' => 'Potvrdite lozinku/zaporku',
+'createacct-yourpasswordagain-ph' => 'Unesite lozinku/zaporku ponovno',
 'remembermypassword' => 'Upamti moju lozinku na ovom kompjuteru (za maksimum od $1 {{PLURAL:$1|dan|dana}})',
+'userlogin-remembermypassword' => 'Držite me ulogiranog/u',
+'userlogin-signwithsecure' => 'Koristite sigurnu vezu',
 'securelogin-stick-https' => 'Ostanite povezani na HTTPS nakon prijave',
 'yourdomainname' => 'Vaš domen:',
 'password-change-forbidden' => 'Ne možete da promenite lozinku na ovom vikiju.',
@@ -635,18 +658,38 @@ Ne zaboravite izmijeniti vlastite [[Special:Preferences|{{SITENAME}} postavke]].
 'logout' => 'Odjavi me',
 'userlogout' => 'Odjava',
 'notloggedin' => 'Niste prijavljeni',
+'userlogin-noaccount' => 'Nemate račun?',
+'userlogin-joinproject' => 'Pridružite se {{SITENAME}}',
 'nologin' => "Nemate korisničko ime? '''$1'''.",
 'nologinlink' => 'Otvorite račun',
 'createaccount' => 'Napravi korisnički račun',
 'gotaccount' => "Imate račun? '''$1'''.",
 'gotaccountlink' => 'Prijavi se',
 'userlogin-resetlink' => 'Zaboravili ste detalje vaše prijave?',
+'userlogin-resetpassword-link' => 'Resetirajte svoju lozinku/zaporku',
+'helplogin-url' => 'Help:Logiranje',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoć pri logiranju]]',
+'createacct-join' => 'Unesite svoje informacije ispod',
+'createacct-emailrequired' => 'E-mail adresa',
+'createacct-emailoptional' => 'E-mail adresa (opcionalno)',
+'createacct-email-ph' => 'Unesite svoju E-mail adresu',
 'createaccountmail' => 'Koristite privremenu slučajno stvorenu lozinku i pošaljite na dolje specificiranu e-mail adresu',
+'createacct-realname' => 'Stvarno ime (opcionalno)',
 'createaccountreason' => 'Razlog:',
+'createacct-reason' => 'Razlog',
+'createacct-reason-ph' => 'Zašto stvarate novi račun',
+'createacct-captcha' => 'Sigurnosna provjera',
+'createacct-imgcaptcha-ph' => 'Unesite tekst koji vidite iznad',
+'createacct-submit' => 'Stvorite svoj račun',
+'createacct-benefit-heading' => '{{SITENAME}} se stvara od ljudi poput vas.',
+'createacct-benefit-body1' => '$1 {{PLURAL:$1|izmjena|izmjene}}',
+'createacct-benefit-body2' => '$1 {{PLURAL:$1|stranica|stranice|stranica}}',
+'createacct-benefit-body3' => 'nedavni {{PLURAL:$1|donator|donatora}}',
 'badretype' => 'Lozinke koje ste unijeli se ne poklapaju.',
 'userexists' => 'Uneseno korisničko ime već je u upotrebi.
 Unesite neko drugo ime.',
 'loginerror' => 'Greška pri prijavljivanju',
+'createacct-error' => 'Pogreška u stvaranju računa',
 'createaccounterror' => 'Ne može se napraviti račun: $1',
 'nocookiesnew' => "Korisnički nalog je napravljen, ali niste prijavljeni.
 {{SITENAME}} koristi kolačiće (''cookies'') da bi se korisnici prijavili.
@@ -737,21 +780,20 @@ Da biste završili prijavu, morate unijeti novu šifru ovdje:',
 'resetpass-wrong-oldpass' => 'Privremena ili trenutna lozinka nije valjana.
 Možda ste već uspješno promijenili Vašu lozinku ili ste tražili novu privremenu lozinku.',
 'resetpass-temp-password' => 'Privremena lozinka:',
+'resetpass-abort-generic' => 'Promjenu lozinke/zaporke je prekinula ekstenzija.',
 
 # Special:PasswordReset
 'passwordreset' => 'Ponovno postavi lozinku',
-'passwordreset-text' => 'Ispunite ovaj obrazac da biste dobili e-mail podsjetnik o vašim detaljima računa.',
 'passwordreset-legend' => 'Ponovno postavi lozinku',
 'passwordreset-disabled' => 'Ponovno postavljanje lozinke je onemogućeno na ovom wikiju.',
-'passwordreset-pretext' => '{{PLURAL:$1||Unesite jedan dio podataka ispod}}',
+'passwordreset-emaildisabled' => 'Postavke E-maila su deaktivirane na ovoj wiki.',
 'passwordreset-username' => 'Korisničko ime:',
 'passwordreset-domain' => 'Domena:',
 'passwordreset-capture' => 'Pogledati krajnji e-mail?',
 'passwordreset-capture-help' => 'Ako označite ovu kućicu, e-mail s privremenom lozinkom će biti prikazana i poslata korisniku.',
 'passwordreset-email' => 'E-mail adresa:',
 'passwordreset-emailtitle' => 'Detalji računa na {{SITENAME}}',
-'passwordreset-emailtext-ip' => 'Netko (vjerovatno Vi, s IP adrese $1) je zatražio podsjetnik Vaših detalja računa
-za {{SITENAME}} ($4). Sljedeći {{PLURAL:$3|račun korisnika je|računi korisnika su}}
+'passwordreset-emailtext-ip' => 'Netko (vjerovatno Vi, s IP adrese $1) je zatražio resetiranje vaše lozinke/zaporke {{SITENAME}} ($4). Sljedeći {{PLURAL:$3|račun korisnika je|računi korisnika su}}
 povezani s ovom e-mail adresom:
 
 $2
@@ -760,7 +802,7 @@ $2
 Trebate se prijaviti i odabrati novu lozinku. Ako je neko drugi napravio ovaj
 zahtjev, ili ako ste se sjetili Vaše početne lozinke, a ne želite je promijeniti, 
 možete zanemariti ovu poruku i nastaviti koristiti staru lozinku.',
-'passwordreset-emailtext-user' => 'Korisnik $1 na {{SITENAME}} je zatražio podsjetnik o detaljima Vašeg računa za {{SITENAME}}
+'passwordreset-emailtext-user' => 'Korisnik $1 na {{SITENAME}} je zatražio resetiranje vaše lozinke/zaporke za {{SITENAME}}
 ($4). Sljedeći {{PLURAL:$3|korisnički račun je|korisnički računi su}} povezani s ovom e-mail adresom:
 
 $2
@@ -771,9 +813,9 @@ zahtjev, ili ako ste se sjetili Vaše originalne lozinke, a ne želite je više
 možete zanemariti ovu poruku i nastaviti koristiti staru lozinku.',
 'passwordreset-emailelement' => 'Korisničko ime: $1
 Privremena šifra: $2',
-'passwordreset-emailsent' => 'E-mail podsjetnik je poslan.',
-'passwordreset-emailsent-capture' => 'Poslan je podsjetnik preko e-maila (prikazan dolje).',
-'passwordreset-emailerror-capture' => 'E-mail s podsjetnikom, prikazan dolje, je poslan, ali slanje korisniku nije uspjelo: $1',
+'passwordreset-emailsent' => 'E-mail za resetiranje lozinke/zaporke je poslan.',
+'passwordreset-emailsent-capture' => 'E-mail za resetiranje lozinke/zaporke je poslan (prikazan dolje).',
+'passwordreset-emailerror-capture' => 'E-mail za resetiranje lozinke/zaporke, prikazan dolje, je poslan, ali slanje {{GENDER:$2|korisniku|korisnici|korisniku}} nije uspjelo: $1',
 
 # Special:ChangeEmail
 'changeemail' => 'Promijeni e-mail adresu',
@@ -996,6 +1038,8 @@ Izgleda da već postoji.',
 'content-failed-to-parse' => 'Ne mogu da raščlanim sadržaj tipa $2 za model $1: $3',
 'invalid-content-data' => 'Neispravni podaci sadržaja',
 'content-not-allowed-here' => 'Sadržaj modela „$1“ nije dozvoljen na stranici [[$2]]',
+'editwarning-warning' => 'Napuštanje ove stranice može dovesti do gubitka svih promjena koje ste načinili.
+Ako ste prijavljeni, možete isključiti ovo upozorenje u "{{int:prefs-editing}}" dijelu vaših opcija.',
 
 # Content models
 'content-model-wikitext' => 'wikitekst',
@@ -1283,6 +1327,7 @@ Pokušajte u svoju pretragu staviti ''all:'' da se pretražuje cjelokupan sadrž
 'searchdisabled' => 'Pretraga teksta na ovoj Wiki je trenutno onemogućena.
 U međuvremenu možete pretraživati preko Googlea.
 Uzmite u obzir da njegovi indeksi za ovu Wiki ne moraju biti ažurirani.',
+'search-error' => 'Dogodila se pogreška prilikom pretraživanja: $1',
 
 # Preferences page
 'preferences' => 'Postavke',
@@ -1428,6 +1473,7 @@ Ako izaberete da date ime, biće korišteno za pripisivanje Vašeg rada.',
 'userrights-notallowed' => 'Vaš račun Vam ne daje dozvolu da postavljate i uklanjate korisnička prava.',
 'userrights-changeable-col' => 'Grupe koje možete mijenjati',
 'userrights-unchangeable-col' => 'Grupe koje ne možete mijenjati',
+'userrights-conflict' => 'Sukob u korisničkim pravima! Molimo pošaljite Vaše promjene ponovno.',
 
 # Groups
 'group' => 'Grupa:',
@@ -1991,6 +2037,12 @@ Prije brisanja provjerite da li druge stranice vode na te šablone.',
 One se možda moraju povezati sa konkretnim člankom.<br />
 Stranica se smatra stranicom za razvrstavanje, ukoliko koristi šablon koji je povezan sa spiskom [[MediaWiki:Disambiguationspage|stranica za razvrstavanje]]",
 
+'pageswithprop' => 'Stranice sa svojstvom stranice',
+'pageswithprop-legend' => 'Stranice sa svojstvom stranice',
+'pageswithprop-text' => 'Ova stranica navodi stranice sa specifičnim svojstvom stranice.',
+'pageswithprop-prop' => 'Naziv svojstva:',
+'pageswithprop-submit' => 'Idi',
+
 'doubleredirects' => 'Dvostruka preusmjerenja',
 'doubleredirectstext' => 'Ova stranica prikazuje stranice koje preusmjeravaju na druga preusmjerenja.
 Svaki red sadrži veze na prvo i drugo preusmjerenje, kao i na prvu liniju teksta drugog preusmjerenja, što obično daje "pravi" ciljni članak, na koji bi prvo preusmjerenje i trebalo da pokazuje.
@@ -2241,8 +2293,8 @@ Buduće promjene ove stranice i njoj pridružene stranice za razgovor će biti n
 'notvisiblerev' => 'Posljednja izmjena drugog korisnika je bila izbrisana',
 'watchnochange' => 'Ništa što pratite nije promjenjeno u prikazanom vremenu.',
 'watchlist-details' => '{{PLURAL:$1|$1 stranica praćena|$1 stranice praćene|$1 stranica praćeno}} ne računajući stranice za razgovor.',
-'wlheader-enotif' => 'Obavještavanje e-poštom je omogućeno.',
-'wlheader-showupdated' => "Stranice koje su izmijenjene od kad ste ih posljednji put posjetili su prikazane '''podebljanim slovima'''",
+'wlheader-enotif' => 'Obavještavanje e-poštom je omogućeno.',
+'wlheader-showupdated' => "Stranice koje su izmijenjene od kad ste ih posljednji put posjetili su prikazane '''podebljanim slovima'''",
 'watchmethod-recent' => 'provjerava se da li ima praćenih stranica u nedavnim izmjenama',
 'watchmethod-list' => 'provjerava se da li ima nedavnih izmjena u praćenim stranicama',
 'watchlistcontains' => 'Vaš spisak praćenih članaka sadrži $1 {{PLURAL:$1|stranicu|stranica}}.',
@@ -2664,6 +2716,7 @@ Molimo vas da kontaktirate vašeg davatelja internetskih usluga (Internet Servic
 'sorbsreason' => 'Vaša IP adresa je prikazana kao otvoreni proxy u DNSBL koji koristi {{SITENAME}}.',
 'sorbs_create_account_reason' => 'Vaša IP adresa je prikazana kao otvoreni proxy u DNSBL korišten od {{SITENAME}}.
 Ne možete napraviti račun',
+'xffblockreason' => 'IP adresa koja postoji u zagljavlju X-Forwarded-For, ili Vaša ili od proxy servera koji koristite, je blokirana. Originalni razlog za blokiranje je bio: $1',
 'cant-block-while-blocked' => 'Ne možete blokirati druge korisnike dok ste blokirani.',
 'cant-see-hidden-user' => 'Korisnik kojeg pokušavate blokirati je već blokiran i sakriven. 
 Pošto nemate prava hideuser (sakrivanje korisnika), ne možete vidjeti ni urediti korisnikovu blokadu.',
@@ -2828,6 +2881,8 @@ Molimo posjetite [//www.mediawiki.org/wiki/Localisation MediaWiki lokalizaciju]
 'thumbnail-more' => 'Uvećaj',
 'filemissing' => 'Nedostaje datoteka',
 'thumbnail_error' => 'Greška pri pravljenju umanjene slike: $1',
+'thumbnail_error_remote' => 'Poruka o pogrešci o $1:
+$2',
 'djvu_page_error' => 'DjVu stranica je van opsega',
 'djvu_no_xml' => 'Za XML-datoteku se ne može pozvati DjVu datoteka',
 'thumbnail-temp-create' => 'Ne mogu da napravim privremenu smanjenu sliku',
@@ -3127,11 +3182,25 @@ Njegovim izvršavanjem možete da ugrozite Vaš sistem.",
 'minutes' => '{{PLURAL:$1|$1 minut|$1 minuta|$1 minuta}}',
 'hours' => '{{PLURAL:$1|$1 sat|$1 sata|$1 sati}}',
 'days' => '{{PLURAL:$1|$1 dan|$1 dana|$1 dana}}',
+'weeks' => '{{PLURAL:$1|$1 sedmica}}',
 'months' => '{{PLURAL:$1|$1 mjesec|$1 mjeseci}}',
 'years' => '{{PLURAL:$1|$1 godina|$1 godine|$1 godina}}',
 'ago' => 'prije $1',
 'just-now' => 'upravo sada',
 
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|sat|sati}}',
+'minutes-ago' => '$1 {{PLURAL:$1|minut|minuta}}',
+'seconds-ago' => '$1 {{PLURAL:$1|sekunda|sekunde}}',
+'monday-at' => 'ponedjeljak u $1',
+'tuesday-at' => 'utorak u $1',
+'wednesday-at' => 'srijeda u $1',
+'thursday-at' => 'četvrtak u $1',
+'friday-at' => 'petak u $1',
+'saturday-at' => 'subota u $1',
+'sunday-at' => 'nedjelja u $1',
+'yesterday-at' => 'jučer u $1',
+
 # Bad image list
 'bad_image_list' => "Koristi se sljedeći format:
 
@@ -3756,6 +3825,18 @@ Trebali biste dobiti [{{SERVER}}{{SCRIPTPATH}}/KOPIJU GNU opće javne licence] z
 'version-entrypoints-header-entrypoint' => 'Ulazna tačka',
 'version-entrypoints-header-url' => 'URL',
 
+# Special:Redirect
+'redirect' => 'Preusmjeravanje preko datoteke, korisnika ili ID-a izmjene',
+'redirect-legend' => 'Preusmjeravanje na datoteku ili stranicu',
+'redirect-summary' => 'Ova posebna stranica preusmjerava na datoteku (ako je navedeno ime datoteke), stranicu (ako postoji ID revizije) ili korisničku stranicu (ako postoji brojčani ID korisnika).',
+'redirect-submit' => 'Idi',
+'redirect-lookup' => 'Pregled:',
+'redirect-value' => 'Vrijednost:',
+'redirect-user' => 'Korisnički ID',
+'redirect-revision' => 'Izmjena stranice',
+'redirect-file' => 'Naziv datoteke',
+'redirect-not-exists' => 'Vrijednost nije pronađena',
+
 # Special:FileDuplicateSearch
 'fileduplicatesearch' => 'Potraga za duplim datotekama',
 'fileduplicatesearch-summary' => 'Pretraga duplih datoteka na bazi njihove haš vrijednosti.',
@@ -3845,23 +3926,26 @@ Trebali biste dobiti [{{SERVER}}{{SCRIPTPATH}}/KOPIJU GNU opće javne licence] z
 'htmlform-submit' => 'Unesi',
 'htmlform-reset' => 'Vrati izmjene',
 'htmlform-selectorother-other' => 'Ostalo',
+'htmlform-no' => 'Ne',
+'htmlform-yes' => 'Da',
+'htmlform-chosen-placeholder' => 'Odaberi opciju',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 sa podrškom pretrage cijelog teksta',
 'sqlite-no-fts' => '$1 bez podrške pretrage cijelog teksta',
 
 # New logging system
-'logentry-delete-delete' => '$1 obrisa stranicu $3',
-'logentry-delete-restore' => '$1 povrati stranicu $3',
-'logentry-delete-event' => '$1 promijeni vidljivost {{PLURAL:$5|događaja u historiji|$5 događaja u historiji|$5 događaja u historiji}} na $3: $4',
-'logentry-delete-revision' => '$1 promijeni vidljivost {{PLURAL:$5|izmjene|$5 izmjene|$5 izmjena}} na stranici $3: $4',
-'logentry-delete-event-legacy' => '$1 promijeni vidljivost događajâ u historiji na $3',
-'logentry-delete-revision-legacy' => '$1 promijeni vidljivost izmjenâ na stranici $3',
-'logentry-suppress-delete' => '$1 potisnu stranicu $3',
+'logentry-delete-delete' => '$1 je {{GENDER:$2|obrisao|obrisala}} stranicu $3',
+'logentry-delete-restore' => '$1 je {{GENDER:$2|vratio|vratila}} stranicu $3',
+'logentry-delete-event' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|događaja|$5 događaja}} u evidenciji na $3: $4',
+'logentry-delete-revision' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|izmjene|$5 izmjene|$5 izmjena}} na stranici $3: $4',
+'logentry-delete-event-legacy' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost događaja u evidenciji na $3',
+'logentry-delete-revision-legacy' => '$1 je {{GENDER:$2|promijenio|promijenila}} vidljivost izmjena na stranici $3',
+'logentry-suppress-delete' => '$1 je {{GENDER:$2|potisnuo|potisnula}} stranicu $3',
 'logentry-suppress-event' => '$1 potajno promijeni vidljivost {{PLURAL:$5|događaja u historiji|$5 događaja u historiji|$5 događaja u historiji}} na $3: $4',
-'logentry-suppress-revision' => '$1 potajno promijeni vidljivost {{PLURAL:$5|izmjene|$5 izmjene|$5 izmjena}} na stranici $3: $4',
-'logentry-suppress-event-legacy' => '$1 potajno promijeni vidljivost događajâ u registru na $3',
-'logentry-suppress-revision-legacy' => '$1 potajno promijeni vidljivost izmjenâ na stranici $3',
+'logentry-suppress-revision' => '$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost {{PLURAL:$5|izmjene|$5 izmjene|$5 izmjena}} na stranici $3: $4',
+'logentry-suppress-event-legacy' => '$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost događaja u evidenciji na $3',
+'logentry-suppress-revision-legacy' => '$1 je tajno {{GENDER:$2|promijenio|promijenila}} vidljivost izmjena na stranici $3',
 'revdelete-content-hid' => 'sadržaj je sakriven',
 'revdelete-summary-hid' => 'sažetak izmjene je sakriven',
 'revdelete-uname-hid' => 'korisničko ime sakriveno',
@@ -3870,20 +3954,20 @@ Trebali biste dobiti [{{SERVER}}{{SCRIPTPATH}}/KOPIJU GNU opće javne licence] z
 'revdelete-uname-unhid' => 'korisničko ime je otkriveno',
 'revdelete-restricted' => 'primijenjena ograničenja za administratore',
 'revdelete-unrestricted' => 'uklonjena ograničenja za administratore',
-'logentry-move-move' => '$1 premjesti stranicu $3 na $4',
-'logentry-move-move-noredirect' => '$1 premjesti stranicu $3 na $4 bez ostavljanja preusmjerenja',
-'logentry-move-move_redir' => '$1 je premjestio stranicu $3 na $4 preko preusmjerenja',
-'logentry-move-move_redir-noredirect' => '$1 premjesti stranicu $3 na $4 preko preusmjerenja bez ostavljanja preusmjerenja',
-'logentry-patrol-patrol' => '$1 označi izmjenu $4 pregledane stranice $3',
-'logentry-patrol-patrol-auto' => '$1 samostalno označi izmjenu $4 pregledane stranice $3',
-'logentry-newusers-newusers' => 'Korisnički račun $1 je napravljen',
-'logentry-newusers-create' => 'Korisnički račun $1 je napravljen',
-'logentry-newusers-create2' => 'Korisnički račun $3 {{GENDER:|je napravio|je napravila|je napravio}} $1',
-'logentry-newusers-byemail' => 'Korisnički račun $3 je napravio $1 i lozinka/šifra je poslana putem e-maila',
-'logentry-newusers-autocreate' => 'Račun $1 je samostalno otvoren',
-'logentry-rights-rights' => '$1 {{GENDER:$1|je promijenio|je promijenila|je promijenio}} članstvo grupe za $3 iz $4 u $5',
-'logentry-rights-rights-legacy' => '$1 {{GENDER:$1|je promenio|je promenila|je promenio}} članstvo grupe za $3',
-'logentry-rights-autopromote' => '$1 je automatski {{GENDER:$1|unaprijeđen|unaprijeđena|unaprijeđen}} iz $4 u $5',
+'logentry-move-move' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4',
+'logentry-move-move-noredirect' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 bez ostavljanja preusmjerenja',
+'logentry-move-move_redir' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 preko preusmjeravanja',
+'logentry-move-move_redir-noredirect' => '$1 je {{GENDER:$2|premjestio|premjestila}} stranicu $3 na $4 preko preusmjeravanja bez ostavljanja preusmjeravanja',
+'logentry-patrol-patrol' => '$1 je {{GENDER:$2|označio|označila}} izmjenu $4 stranice $3 patroliranim',
+'logentry-patrol-patrol-auto' => '$1 je automatski {{GENDER:$2|označio|označila}} izmjenu $4 stranice $3 patroliranim',
+'logentry-newusers-newusers' => 'Korisnički račun $1 je {{GENDER:$2|napravljen}}',
+'logentry-newusers-create' => 'Korisnički račun $1 je {{GENDER:$2|napravljen}}',
+'logentry-newusers-create2' => 'Korisnički račun $3 {{GENDER:$2|je napravio|je napravila|je napravio}} $1',
+'logentry-newusers-byemail' => 'Korisnički račun $3 je {{GENDER:$2|napravio|napravila}} $1 i lozinka/šifra je poslana putem e-maila',
+'logentry-newusers-autocreate' => 'Korisnički račun $1 je automatski {{GENDER:$2|napravljen}}',
+'logentry-rights-rights' => '$1 je {{GENDER:$2|promijenio|promijenila|promijenio}} članstvo grupe za $3 iz $4 u $5',
+'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|je promijenio|je promijenila|je promijenio}} članstvo grupe za $3',
+'logentry-rights-autopromote' => '$1 {{GENDER:$2|je automatski unaprijeđen|je automatski unaprijeđena}} iz $4 u $5',
 'rightsnone' => '(nema)',
 
 # Feedback
@@ -3959,4 +4043,7 @@ U suprotnom, poslužite se jednostavnim obrascem ispod. Vaš komentar će stajat
 'duration-centuries' => '$1 {{PLURAL:$1|vijek|vijekova}}',
 'duration-millennia' => '$1 {{PLURAL:$1|milenijum|milenijuma}}',
 
+# Image rotation
+'rotate-comment' => 'Slika rotirana za $1 {{PLURAL:$1|stepeni}} u smjeru kazaljke na satu',
+
 );
index 36a95c5..d993ff5 100644 (file)
@@ -16,6 +16,7 @@
  * @author Maros
  * @author Michawiki
  * @author Mormegil
+ * @author Nemo bis
  * @author Palica
  * @author Pitr2311
  * @author Ragimiri
@@ -820,11 +821,9 @@ Je možné, že sa vám už podarilo úspešne zmeniť svoje heslo alebo ste si
 
 # Special:PasswordReset
 'passwordreset' => 'Reset hesla',
-'passwordreset-text' => 'Vyplnením tohto formulára si vytvoríte nové heslo.',
 'passwordreset-legend' => 'Obnoviť heslo',
 'passwordreset-disabled' => 'Obnovenie hesla bolo na tejto wiki zakázané.',
 'passwordreset-emaildisabled' => 'E-mailové funkcie boli na tejto wiki vypnuté.',
-'passwordreset-pretext' => '{{PLURAL:$1|Zadajte nižšie uvedený údaj|Zadajte jeden z nižšie uvedených údajov}}',
 'passwordreset-username' => 'Používateľské meno:',
 'passwordreset-domain' => 'Doména:',
 'passwordreset-capture' => 'Zobraziť výsledný e-mail?',
index a4cb380..b7869a6 100644 (file)
@@ -12,6 +12,7 @@
  * @author Freakolowsky
  * @author Irena Plahuta
  * @author McDutchie
+ * @author Nemo bis
  * @author Smihael
  * @author Vadgt
  * @author XJamRastafire
@@ -681,7 +682,7 @@ Ker jih imate onemogočene, vas prosimo, da jih omogočite in se ponovno prijavi
 Poskrbite, da imate omogočene piškotke, osvežite to stran in poskusite znova.',
 'noname' => 'Niste vnesli veljavnega uporabniškega imena.',
 'loginsuccesstitle' => 'Uspešno ste se prijavili',
-'loginsuccess' => "'''Sedaj ste prijavljeni v {{GRAMMAR:tožilnik|{{SITENAME}}}} kot »$1«.'''",
+'loginsuccess' => "'''Zdaj ste prijavljeni v {{GRAMMAR:tožilnik|{{SITENAME}}}} kot »$1«.'''",
 'nosuchuser' => 'Uporabnik z imenom »$1« ne obstaja.
 Uporabniška imena so občutljiva na velikost črk.
 Preverite črkovanje ali pa si [[Special:UserLogin/signup|ustvarite nov uporabniški račun]].',
@@ -769,11 +770,9 @@ Morda ste že uspešno spremenili geslo ali pa ste zahtevali novo začasno geslo
 
 # Special:PasswordReset
 'passwordreset' => 'Ponastavitev gesla',
-'passwordreset-text' => 'Izpolnite obrazec, da ponastavite geslo.',
 'passwordreset-legend' => 'Ponastavitev gesla',
 'passwordreset-disabled' => 'Ponastavljanje gesla je na tem wikiju onemogočeno.',
 'passwordreset-emaildisabled' => 'Na tem wikiju so možnosti e-pošte onemogočene.',
-'passwordreset-pretext' => '{{PLURAL:$1||Vnesite enega od dela podatkov spodaj}}',
 'passwordreset-username' => 'Uporabniško ime:',
 'passwordreset-domain' => 'Domena:',
 'passwordreset-capture' => 'Ogled nastale e-pošte?',
index 92bcdcc..4943b29 100644 (file)
@@ -833,12 +833,17 @@ $2',
 Не заборавите да промените своја [[Special:Preferences|подешавања]].',
 'yourname' => 'Корисничко име:',
 'userlogin-yourname' => 'Корисничко име',
+'userlogin-yourname-ph' => 'Унесите ново корисничко име',
 'yourpassword' => 'Лозинка:',
 'userlogin-yourpassword' => 'Лозинка',
 'userlogin-yourpassword-ph' => 'Унесите лозинку',
+'createacct-yourpassword-ph' => 'Унесите нову лозинку',
 'yourpasswordagain' => 'Потврда лозинке:',
+'createacct-yourpasswordagain' => 'Потврдите лозинку',
+'createacct-yourpasswordagain-ph' => 'Унесите лозинку још једном',
 'remembermypassword' => 'Запамти ме на овом прегледачу (најдуже $1 {{PLURAL:$1|дан|дана|дана}})',
 'userlogin-remembermypassword' => 'Запамти ме',
+'userlogin-signwithsecure' => 'Користите слигурну конекцију (SSL)',
 'securelogin-stick-https' => 'Останите повезани са HTTPS након пријаве',
 'yourdomainname' => 'Домен:',
 'password-change-forbidden' => 'Не можете да промените лозинку на овом викију.',
@@ -851,14 +856,30 @@ $2',
 'logout' => 'Одјава',
 'userlogout' => 'Одјави ме',
 'notloggedin' => 'Нисте пријављени',
+'userlogin-noaccount' => 'Немате налог?',
+'userlogin-joinproject' => 'Придружите се {{SITENAME}}',
 'nologin' => 'Немате налог? Идите на страницу „$1“.',
 'nologinlink' => 'Отварање налога',
 'createaccount' => 'Отвори налог',
 'gotaccount' => 'Већ имате налог? Идите на страницу „$1“.',
 'gotaccountlink' => 'Пријава',
 'userlogin-resetlink' => 'Заборавили сте податке за пријаву?',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Помоћ при пријављивању]]',
+'createacct-emailrequired' => 'Адреса е-поште',
+'createacct-emailoptional' => 'Адреса е-поште (опцијоно)',
+'createacct-email-ph' => 'Унесите вашу адресу е-поште',
 'createaccountmail' => 'Користите привремену, случајно створену лозинку и пошаљите на доле наведену адресу електронске поште',
+'createacct-realname' => 'Право име (опцијоно)',
 'createaccountreason' => 'Разлог:',
+'createacct-reason' => 'Разлог',
+'createacct-reason-ph' => 'Зашто правите још један налог?',
+'createacct-captcha' => 'Сигурносна провера',
+'createacct-imgcaptcha-ph' => 'Унесите текст који видите изнад',
+'createacct-submit' => 'Отворите налог',
+'createacct-benefit-heading' => '{{SITENAME}} је направљен од стране људи као што сте ви.',
+'createacct-benefit-body1' => '{{PLURAL:$1|измена}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|страница}}',
+'createacct-benefit-body3' => 'скорашњих {{PLURAL:$1|доприноса}}',
 'badretype' => 'Унете лозинке се не поклапају.',
 'userexists' => 'Корисничко име је заузето. Изаберите друго.',
 'loginerror' => 'Грешка при пријављивању',
@@ -957,10 +978,8 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'Обнављање лозинке',
-'passwordreset-text' => 'Попуните овај образац да бисте ресетовали лозинку.',
 'passwordreset-legend' => 'Поништи лозинку',
 'passwordreset-disabled' => 'Обнављање лозинке је онемогућено на овом викију.',
-'passwordreset-pretext' => '{{PLURAL:$1||Унесите један од делова података испод}}',
 'passwordreset-username' => 'Корисничко име:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Погледати крајњу поруку?',
@@ -3419,6 +3438,7 @@ $1',
 'hours' => '{{PLURAL:$1|$1 сат|$1 сата|$1 сати}}',
 'days' => '{{PLURAL:$1|$1 дан|$1 дана|$1 дана}}',
 'ago' => 'пре $1',
+'just-now' => 'управо сад',
 
 # Bad image list
 'bad_image_list' => 'Формат је следећи:
@@ -4243,7 +4263,7 @@ $5
 'specialpages-group-highuse' => 'Најчешће коришћене странице',
 'specialpages-group-pages' => 'Спискови страница',
 'specialpages-group-pagetools' => 'Алатке',
-'specialpages-group-wiki' => 'Подаци и алати енциклопедије',
+'specialpages-group-wiki' => 'Подаци и алати',
 'specialpages-group-redirects' => 'Преусмеравање посебних страница',
 'specialpages-group-spam' => 'Алатке против непожељних порука',
 
@@ -4308,6 +4328,7 @@ $5
 'htmlform-selectorother-other' => 'Друго',
 'htmlform-no' => 'Не',
 'htmlform-yes' => 'Да',
+'htmlform-chosen-placeholder' => 'Изаберите опцију',
 
 # SQLite database support
 'sqlite-has-fts' => '$1 с подршком претраге целог текста',
index 342b443..ce6edc4 100644 (file)
@@ -744,6 +744,7 @@ Imajte na umu da neke stranice mogu nastaviti da se prikazuju kao da ste još pr
 'gotaccount' => 'Već imate nalog? Idite na stranicu „$1“.',
 'gotaccountlink' => 'Prijava',
 'userlogin-resetlink' => 'Zaboravili ste podatke za prijavu?',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoć pri prijavljivanju]]',
 'createaccountmail' => 'E-poštom',
 'createaccountreason' => 'Razlog:',
 'badretype' => 'Unete lozinke se ne poklapaju.',
@@ -842,10 +843,8 @@ Možda ste već promenili lozinku ili ste zatražili novu privremenu lozinku.',
 
 # Special:PasswordReset
 'passwordreset' => 'Obnavljanje lozinke',
-'passwordreset-text' => 'Popunite ovaj obrazac da biste primili e-poruku sa svojim podacima za prijavu.',
 'passwordreset-legend' => 'Poništi lozinku',
 'passwordreset-disabled' => 'Obnavljanje lozinke je onemogućeno na ovom vikiju.',
-'passwordreset-pretext' => '{{PLURAL:$1||Unesite jedan od delova podataka ispod}}',
 'passwordreset-username' => 'Korisničko ime:',
 'passwordreset-domain' => 'Domen:',
 'passwordreset-capture' => 'Pogledati krajnju poruku?',
index 306c8bf..34c47dc 100644 (file)
@@ -33,6 +33,7 @@
  * @author Mikez
  * @author NH
  * @author Najami
+ * @author Nemo bis
  * @author Nghtwlkr
  * @author Ozp
  * @author Per
@@ -778,13 +779,13 @@ Glöm inte att justera dina [[Special:Preferences|{{SITENAME}}-inställningar]].
 'gotaccountlink' => 'Logga in',
 'userlogin-resetlink' => 'Har du glömt dina inloggningsuppgifter?',
 'userlogin-resetpassword-link' => 'Återställ ditt lösenord',
-'helplogin-url' => 'Help:Logging in',
+'helplogin-url' => 'Help:Logga in',
 'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjälp med inloggning]]',
 'createacct-join' => 'Ange din information nedan.',
 'createacct-emailrequired' => 'E-postadress',
 'createacct-emailoptional' => 'E-postadress (valfritt)',
 'createacct-email-ph' => 'Bekräfta din e-postadress',
-'createaccountmail' => 'Använd ett tillfällig slumpartat lösenord och skicka den till e-postadressen som anges nedan',
+'createaccountmail' => 'Använd ett tillfälligt slumpvis valt lösenord och skicka det till e-postadressen som anges nedan',
 'createacct-realname' => 'Riktigt namn (valfritt)',
 'createaccountreason' => 'Orsak:',
 'createacct-reason' => 'Anledning',
@@ -888,11 +889,9 @@ Du kanske redan har lyckats ändra ditt lösenord eller begärt ett nytt tillfä
 
 # Special:PasswordReset
 'passwordreset' => 'Lösenordsåterställning',
-'passwordreset-text' => 'Fyll i detta formulär för att återställa ditt lösenord.',
 'passwordreset-legend' => 'Återställ lösenord',
 'passwordreset-disabled' => 'Lösenordsåterställning har inaktiverats på denna wiki.',
 'passwordreset-emaildisabled' => 'E-postfunktioner har inaktiverats på denna wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1||Ange en av datadelarna nedan}}',
 'passwordreset-username' => 'Användarnamn:',
 'passwordreset-domain' => 'Domän:',
 'passwordreset-capture' => 'Visa resulterande e-post?',
@@ -1127,6 +1126,7 @@ Den gav ingen förklaring.',
 Det verkar som att den har raderats.',
 'edit-conflict' => 'Redigeringskonflikt.',
 'edit-no-change' => 'Din redigering ignorerades, eftersom ingen ändring gjordes i texten.',
+'postedit-confirmation' => 'Din redigering sparades.',
 'edit-already-exists' => 'Sidan kunde inte skapas.
 Den finns redan.',
 'defaultmessagetext' => 'Standardtext för meddelande',
index 84d05a0..367e3cd 100644 (file)
@@ -14,6 +14,7 @@
  * @author Malangali
  * @author Marcos
  * @author Muddyb Blast Producer
+ * @author Nemo bis
  * @author Robert Ullmann
  * @author Stephenwanjau
  * @author לערי ריינהארט
@@ -666,10 +667,8 @@ Inawezekana ikawa tayari umefaulu kubadilisha neno lako la siri au neno la siri
 
 # Special:PasswordReset
 'passwordreset' => 'Seti upya neno la siri',
-'passwordreset-text' => 'Jaza fomu hii ili upate barua pepe inayotoa maelezo ya akaunti yako.',
 'passwordreset-legend' => 'Seti upya neno la siri',
 'passwordreset-disabled' => 'Kuweka neno la siri jipya kumeshitishwa katika wiki hii.',
-'passwordreset-pretext' => '{{PLURAL:$1||Ingiza moja kati ya data hizi hapo chini}}',
 'passwordreset-username' => 'Jina la mtumiaji:',
 'passwordreset-domain' => 'Miliki',
 'passwordreset-capture' => 'Ioneshe barua-pepe itakayotumwa?',
index 6574f38..6003df4 100644 (file)
@@ -20,6 +20,7 @@
  * @author Mayooranathan
  * @author Naveen
  * @author Planemad
+ * @author Sank
  * @author Shanmugamp7
  * @author Sodabottle
  * @author Sundar
@@ -486,9 +487,12 @@ MySQL returned error "$3: $4".',
 'welcomeuser' => 'வருக $1',
 'welcomecreation-msg' => 'உங்களுக்கான பயனர் கணக்கு உருவாக்கப்பட்டுள்ளது. உங்களுக்கேற்றவாறு [[Special:Preferences|{{SITENAME}} விருப்பத்தேர்வுகளை]] மாற்றிக் கொள்ள மறவாதீர்கள்.',
 'yourname' => 'பயனர் பெயர்:',
+'userlogin-yourname' => 'பயனர் பெயர்',
 'userlogin-yourname-ph' => 'தங்களின் பயனர் பெயரை உள்ளிடவும்',
 'yourpassword' => 'கடவுச்சொல்:',
+'userlogin-yourpassword' => 'கடவுச்சொல்',
 'userlogin-yourpassword-ph' => 'தங்களின் கடவுச்சொல்லை உள்ளிடவும்',
+'createacct-yourpassword-ph' => 'கடவுச்சொல்லை உள்ளிடுக',
 'yourpasswordagain' => 'கடவுச்சொல்லைத் திரும்ப தட்டச்சிடுக:',
 'createacct-yourpasswordagain' => 'கடவுச்சொல்லை உறுதிசெய்க',
 'createacct-yourpasswordagain-ph' => 'கடவுச்சொல்லை மீளவும் இடுக',
@@ -507,6 +511,7 @@ MySQL returned error "$3: $4".',
 'logout' => 'விடுபதிகை',
 'userlogout' => 'விடுபதிகை',
 'notloggedin' => 'புகுபதிகை செய்யப்படவில்லை',
+'userlogin-noaccount' => 'பயனர் கணக்கு இல்லையா?',
 'userlogin-joinproject' => 'இணைக {{SITENAME}}',
 'nologin' => "பயனர் கணக்கு இல்லையா? '''$1'''.",
 'nologinlink' => 'கணக்கு ஒன்றை உருவாக்கவும்',
@@ -515,8 +520,9 @@ MySQL returned error "$3: $4".',
 'gotaccountlink' => 'புகுபதிகை',
 'userlogin-resetlink' => 'உங்கள் புகுபதிகைக் குறிப்புகளை மறந்துவிட்டீர்களா?',
 'createacct-join' => 'தங்களின் தகவலை கீழிடவும்',
+'createacct-emailrequired' => 'மின்னஞ்சல் முகவரி',
 'createacct-email-ph' => 'தங்களின் மின்னஞ்சல் முகவரியை உள்ளிடவும்',
-'createaccountmail' => 'தறà¯\8dà®\95ாலிà®\95மாà®\95 à®ªà¯\8aà®±à¯\81à®\95à¯\8dà®\95ிய à®\92à®°à¯\81 à®\95à®\9fவà¯\81à®\9aà¯\8dà®\9aà¯\8aலà¯\8dலà¯\88 à®\95à¯\80à®´à¯\87 à®¤à®°à®ªà¯\8dபà®\9fà¯\8dà®\9fà¯\81ளà¯\8dள à®®à®¿à®©à¯\8dனà®\9eà¯\8dà®\9aலà¯\81à®\95à¯\8dà®\95à¯\81à®\9aà¯\8d à®\9aà¯\86லà¯\81தà¯\8dதவà¯\81à®®à¯\8d',
+'createaccountmail' => 'தறà¯\8dà®\95ாலிà®\95மாà®\95 à®\8eà®´à¯\81நà¯\8dதமான à®\92à®°à¯\81 à®\95à®\9fவà¯\81à®\9aà¯\8dà®\9aà¯\8aலà¯\8dலà¯\88 à®ªà®¯à®©à¯\8dபà®\9fà¯\81தà¯\8dதà¯\81à®\95, à®\85தà¯\88 à®\95à¯\80à®´à¯\87 à®¤à®°à®ªà¯\8dபà®\9fà¯\8dà®\9fà¯\81ளà¯\8dள à®®à®¿à®©à¯\8dனà®\9eà¯\8dà®\9aலà¯\81à®\95à¯\8dà®\95à¯\81 à®\85னà¯\81பà¯\8dபà¯\81à®\95',
 'createacct-realname' => 'உண்மைப் பெயர் (விருப்பத்தேர்வு)',
 'createaccountreason' => 'காரணம்:',
 'createacct-reason-ph' => 'தாங்கள் ஏன் மற்றொரு கணக்கைத் துவங்குகிறீர்கள்?',
@@ -611,10 +617,8 @@ MySQL returned error "$3: $4".',
 
 # Special:PasswordReset
 'passwordreset' => 'கடவுச்சொல்லை மீட்டமை',
-'passwordreset-text' => ' உங்கள் கடவுச்சொல்லை மீட்டமைக்க இப்படிவத்தை பூர்த்தி செய்யவும்.',
 'passwordreset-legend' => 'கடவுச்சொல்லை மீட்டமை',
 'passwordreset-disabled' => 'கடவுச்சொல் மீட்டமைப்பு இந்த விக்கியில் செயலிழக்க செய்யப்பட்டுள்ளது.',
-'passwordreset-pretext' => '{{PLURAL:$1|| தரவு பகுதி ஒன்றை கீழே உள்ளிடு}}',
 'passwordreset-username' => 'பயனர் பெயர்:',
 'passwordreset-domain' => 'இணையதள முகவரி:',
 'passwordreset-capture' => 'விளைவு மின்னஞ்சலை காண்',
@@ -1098,7 +1102,7 @@ $1",
 'search-interwiki-default' => '$1 தளத்தின் முடிவுகள்:',
 'search-interwiki-more' => '(மேலும்)',
 'search-relatedarticle' => 'தொடர்புடையவை',
-'mwsuggest-disable' => 'AJAX பரிந்துரைகளை முடக்கு',
+'mwsuggest-disable' => 'தேடல் பரிந்துரைகளை முடக்கு',
 'searcheverything-enable' => 'அனைத்துப் பெயர்வெளிகளிலும் தேடவும்',
 'searchrelated' => 'தொடர்புடையவை',
 'searchall' => 'அனைத்தும்',
@@ -1183,7 +1187,7 @@ $1",
 'timezoneregion-indian' => 'இந்தியப் பெருங்கடல்',
 'timezoneregion-pacific' => 'பசிபிக் பெருங்கடல்',
 'allowemail' => 'ஏனைய பயனர்களிடம் இருந்தான மின்னஞ்சல்களை அனுமதி',
-'prefs-searchoptions' => 'தà¯\87à®\9fà¯\81à®\95',
+'prefs-searchoptions' => 'தà¯\87à®\9fலà¯\8d',
 'prefs-namespaces' => 'பெயர்வெளிகள்',
 'defaultns' => 'அப்படியில்லையென்றால் இந்த பொயர்வெளிகளில் தேடவும்:',
 'default' => 'பொதுவானது',
@@ -1198,7 +1202,7 @@ $1",
 'youremail' => 'மின்னஞ்சல்:',
 'username' => '{{GENDER:$1|பயனர் பெயர்}}:',
 'uid' => '{{GENDER:$1|User}} ID:',
-'prefs-memberingroups' => 'பின்வரும் {{பன்மை:$1|குழு|குழுக்களில்}} {{பாலினம்:$2|உறுப்பினர்}}:',
+'prefs-memberingroups' => 'பின்வரும் {{PLURAL:$1|குழு|குழுக்களில்}} உறுப்பினர்:',
 'prefs-registration' => 'பதிவு செய்யும் நேரம்:',
 'yourrealname' => 'உண்மைப் பெயர்:',
 'yourlanguage' => 'மொழி:',
@@ -2816,6 +2820,7 @@ $1',
 'file-info-size' => '$1 × $2 படவணுக்கள், கோப்பின் அளவு: $3, MIME வகை: $4',
 'file-nohires' => 'இதைவிட அளவில் பெரிய படிமம் இல்லை.',
 'svg-long-desc' => 'SVG கோப்பு, பெயரளவில் $1 × $2 பிக்சல்கள், கோப்பு அளவு: $3',
+'svg-long-error' => 'செல்லாத SVG கோப்பு: $1',
 'show-big-image' => 'முழு அளவிலான படிமம்',
 'show-big-image-preview' => 'இந்த முன்னோட்டத்தின் அளவு:  $1 .',
 'show-big-image-other' => 'மற்ற  {{PLURAL:$2|பிரிதிறன்|பிரிதிறன்கள்}}:  $1 .',
@@ -3496,14 +3501,14 @@ $5
 
 # Special:Tags
 'tags' => 'செல்லத்தக்க மாற்று குறிச்சொற்கள்',
-'tag-filter' => '[[Special:Tags|Tag]] [[சிறப்பு:மேற்கோள்கள்|மேற்கோள்]] வடிப்பான்:',
+'tag-filter' => '[[Special:Tags|குறொச்சொல்]] வடிப்பான்:',
 'tag-filter-submit' => 'வடிகட்டி',
 'tags-title' => 'குறிச்சொற்கள்',
 'tags-intro' => 'இப்பக்கத்தின் மென்பொருள் ஒரு திருத்ததுடனான குறியீடு என்று குறிச்சொற்கள், மற்றும் அவற்றின் பொருளை பட்டியலிடுகிறது.',
-'tags-tag' => 'à®\95à¯\81றிà®\9aà¯\8dà®\9aà¯\8aà®±à¯\8dà®\95ளினà¯\8d à®ªà¯\86யர்',
-'tags-display-header' => ' மாற்று பட்டியல்களின் தோற்றங்கள்',
-'tags-description-header' => 'à®\85à®°à¯\8dதà¯\8dததà¯\8dதினà¯\8d à®®à¯\81à®´à¯\81 விளக்கம்',
-'tags-hitcount-header' => 'à®\95à¯\81றிà®\9aà¯\8dà®\9aà¯\8aலà¯\8dலிà®\9fபà¯\8dபà®\9fà¯\8dà®\9f  à®®à®¾à®±à¯\8dà®±à®\99à¯\8dà®\95ளà¯\8d',
+'tags-tag' => 'à®\95à¯\81றிà®\9aà¯\8dà®\9aà¯\8aல்',
+'tags-display-header' => 'கவனிப்புப் பட்டியலில் தெரியும் பெயர்',
+'tags-description-header' => 'விரிவான விளக்கம்',
+'tags-hitcount-header' => 'மாறà¯\8dà®±à®\99à¯\8dà®\95ளினà¯\8d à®\8eணà¯\8dணிà®\95à¯\8dà®\95à¯\88',
 'tags-edit' => 'தொகு',
 'tags-hitcount' => '$1 {{PLURAL:$1|மாற்றம்|மாற்றங்கள்}}',
 
index 43d733b..4f0223c 100644 (file)
@@ -769,6 +769,7 @@ Ita-nia mudansa la armazenadu seidauk!",
 'blocklink' => 'blokeiu',
 'unblocklink' => 'la blokeiu',
 'contribslink' => 'kontribuisaun',
+'blocklogentry' => 'blokeiu [[$1]] ba tempu $2 $3',
 'block-log-flags-nocreate' => 'la bele kria konta foun',
 'block-log-flags-noemail' => 'korreiu eletróniku blokeiu',
 'block-log-flags-nousertalk' => 'la bele edita pájina diskusaun rasik',
index 05cc88f..e07655d 100644 (file)
@@ -728,7 +728,6 @@ $1',
 
 # Special:PasswordReset
 'passwordreset' => 'ตั้งรหัสผ่านใหม่',
-'passwordreset-text' => 'กรอกแบบฟอร์มนี้เพื่อตั้งรหัสผ่านใหม่',
 'passwordreset-legend' => 'เปลี่ยนรหัสผ่าน',
 'passwordreset-disabled' => 'การตั้งรหัสผ่านใหม่ปิดใช้งานบนวิกินี้',
 'passwordreset-emaildisabled' => 'คุณลักษณะอีเมลถูกปิดใช้งานบนวิกินี้',
index 911e69e..e1e4f45 100644 (file)
@@ -298,9 +298,9 @@ Bu sahypany ulanmak üçin MediaWikiniň $1 wersiýasy talap edilýär. [[Specia
 'ok' => 'OK',
 'retrievedfrom' => '"$1" adresinden alyndy.',
 'youhavenewmessages' => 'Size $1 bar. ($2)',
-'newmessageslink' => 'täze habarlaşyk',
+'newmessageslink' => 'täze habar',
 'newmessagesdifflink' => 'soňky üýtgeşme',
-'youhavenewmessagesmulti' => 'Size $1-de täze habarlaşyk bar.',
+'youhavenewmessagesmulti' => 'Size $1-de täze habar bar.',
 'editsection' => 'redaktirle',
 'editold' => 'redaktirle',
 'viewsourceold' => 'çeşmäni gör',
index 0ffb629..c9462d8 100644 (file)
@@ -39,6 +39,7 @@
  * @author Mskyrider
  * @author Myildirim2007
  * @author Nazif İLBEK
+ * @author Nemo bis
  * @author Reedy
  * @author Runningfridgesrule
  * @author Sadrettin
@@ -870,10 +871,8 @@ Girişi bitirmek için, burada yeni bir parola yazın:',
 
 # Special:PasswordReset
 'passwordreset' => 'Parola sıfırlama',
-'passwordreset-text' => 'Hesap bilgilerinizin e-posta ile hatırlatılması için bu formu doldurunuz.',
 'passwordreset-legend' => 'Şifreyi sıfırla',
 'passwordreset-disabled' => 'Parola sıfırlamaları bu wiki üzerinde devre dışı bırakıldı.',
-'passwordreset-pretext' => '{{PLURAL:$1||Aşağıdaki verilerden birini girin}}',
 'passwordreset-username' => 'Kullanıcı adı:',
 'passwordreset-domain' => 'Domain:',
 'passwordreset-capture' => 'Sonuç e-postasını görüntüle?',
@@ -1098,6 +1097,7 @@ Bir açıklama verilmedi.',
 Silinmiş görünüyor.',
 'edit-conflict' => 'Değişiklik çakışması.',
 'edit-no-change' => 'Değişikliğiniz yoksayıldı, çünkü metinde bir değişiklik yapılmadı.',
+'postedit-confirmation' => 'Değişikliğiniz kaydedildi.',
 'edit-already-exists' => 'Yeni sayfa oluşturulamıyor.
 Sayfa zaten mevcut.',
 'defaultmessagetext' => 'Varsayılan mesaj metni',
index 6b95cec..c93757f 100644 (file)
@@ -30,6 +30,7 @@
  * @author KEL
  * @author Kalan
  * @author Microcell
+ * @author Nemo bis
  * @author NickK
  * @author Olvin
  * @author Prima klasy4na
@@ -937,11 +938,9 @@ $1',
 
 # Special:PasswordReset
 'passwordreset' => 'Скинути пароль',
-'passwordreset-text' => 'Заповніть цю форму для відновлення пароля.',
 'passwordreset-legend' => 'Перевстановити пароль',
 'passwordreset-disabled' => 'У цій вікі вимкнена можливість скидання пароля.',
 'passwordreset-emaildisabled' => 'Функції електронної пошти вимкнуто в цій вікі.',
-'passwordreset-pretext' => '{{PLURAL:$1||Введіть одну з частин даних}}',
 'passwordreset-username' => "Ім'я користувача:",
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Продивитись результуючий електронний лист?',
@@ -1183,6 +1182,7 @@ $2
 Імовірно, вона була вилучена.',
 'edit-conflict' => 'Конфлікт редагувань.',
 'edit-no-change' => 'Ваше редагування відхилене, оскільки в тексті не було зроблено змін.',
+'postedit-confirmation' => 'Ваше редагування збережено',
 'edit-already-exists' => 'Неможливо створити нову сторінку.
 Вона вже існує.',
 'defaultmessagetext' => 'Текст «за замовчування»',
index a910e2b..4e05e33 100644 (file)
@@ -13,6 +13,7 @@
  * @author Frigotoni
  * @author GatoSelvadego
  * @author Kaganer
+ * @author Nemo bis
  * @author Nick1915
  * @author Omnipaedista
  * @author OrbiliusMagister
@@ -708,11 +709,9 @@ Forse te ghè zà canbià la to password o te ghè domandà na password tenporan
 
 # Special:PasswordReset
 'passwordreset' => 'Rinposta ła password',
-'passwordreset-text' => 'Conpleta sto moduło par resetar la to password.',
 'passwordreset-legend' => 'Rinposta ła password',
 'passwordreset-disabled' => 'Ła rinpostasion deła password xe stà dixabiłità so sto projeto wiki.',
 'passwordreset-emaildisabled' => 'Le funsionalità de posta eletrònega le xe stà disabilità su sta wiki.',
-'passwordreset-pretext' => '{{PLURAL:$1|| Inserisi una dełe porsion de dati cua soto}}',
 'passwordreset-username' => 'Nome utente:',
 'passwordreset-domain' => 'Dominio',
 'passwordreset-capture' => 'Vixuałixare el contenuto del mesajo de posta ełetronega?',
index 8469cc8..07171fb 100644 (file)
@@ -880,11 +880,9 @@ Có thể bạn đã thay đổi thành công mật khẩu của mình hoặc đ
 
 # Special:PasswordReset
 'passwordreset' => 'Tái tạo mật khẩu',
-'passwordreset-text' => 'Hãy điền mẫu đơn này để tái tạo mật khẩu.',
 'passwordreset-legend' => 'Tái tạo mật khẩu',
 'passwordreset-disabled' => 'Chức năng tái tạo mật khẩu đã bị tắt trên wiki này.',
 'passwordreset-emaildisabled' => 'Tính năng gửi thư điện tử không được kích hoạt trên wiki này.',
-'passwordreset-pretext' => '{{PLURAL:$1||Nhập một trong những thông tin được yêu cầu ở dưới}}',
 'passwordreset-username' => 'Tên người dùng:',
 'passwordreset-domain' => 'Tên miền:',
 'passwordreset-capture' => 'Xem thư điện tử có mật khẩu tạm',
@@ -1123,6 +1121,7 @@ Không có lý do nào được đưa ra.',
 Dường như trang này đã bị xóa.',
 'edit-conflict' => 'Sửa đổi mâu thuẫn.',
 'edit-no-change' => 'Sửa đổi của bạn không được tính đến, vì nó không làm thay đổi nội dung.',
+'postedit-confirmation' => 'Sửa đổi của bạn đã được lưu.',
 'edit-already-exists' => 'Không thể tạo trang mới.
 Nó đã tồn tại.',
 'defaultmessagetext' => 'Nội dung mặc định',
@@ -1130,7 +1129,7 @@ Nó đã tồn tại.',
 'invalid-content-data' => 'Dữ liệu nội dung không hợp lệ',
 'content-not-allowed-here' => 'Không cho phép đưa nội dung “$1” vào trang [[$2]]',
 'editwarning-warning' => 'Rời khỏi trang này sẽ khiến bạn mất các sửa đổi đã thực hiện.
-Nếu đã đăng nhập, bạn có thể tắt cảnh báo này tại mục “{{int:prefs-editing}}” trong tùy chọn cá nhân.',
+Nếu đã đăng nhập, bạn có thể tắt cảnh báo này tại mục “Sửa đổi” trong tùy chọn cá nhân.',
 
 # Content models
 'content-model-wikitext' => 'mã wiki',
index 05dda21..c8aa314 100644 (file)
@@ -772,11 +772,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => 'צוריקשטעלן פאַסווארט',
-'passwordreset-text' => 'דערגאַנצט די פאָרעם צוריקצושטעלן אײַער פאַסווארט.',
 'passwordreset-legend' => 'צוריקשטעלן פאַסווארט',
 'passwordreset-disabled' => 'מען האט אומאַקטיוויטר צוריקשטעלן פאַסווערטער אויף דער וויקי.',
 'passwordreset-emaildisabled' => 'ע-פאסט דינסטן זענען געווארן אומאקטיווירט אויף דער דאזיקער וויקי.',
-'passwordreset-pretext' => '{{PLURAL:$1| | קלאַפט אַרײַן איינע פֿון די דאַטן אונטן}}',
 'passwordreset-username' => 'באַניצער נאָמען:',
 'passwordreset-domain' => 'דאמען:',
 'passwordreset-capture' => 'זען  דעם געשיקטן ע־בריוו?',
@@ -1027,7 +1025,7 @@ $2
 'invalid-content-data' => 'אומגילטיקע אינהאלט דאטן',
 'content-not-allowed-here' => '"$1" אינהאלט נישט דערלויבט אויף בלאט [[$2]]',
 'editwarning-warning' => 'איבערלאזן דעם בלאט קען גורם זײַן פֿארלירן אײַערע ענדערונגען.
-אויב איר זענט ארײַנלאגירט, קענט איר מבטל זײַן די דאזיגע ווארענונג אין דער "{{int:prefs-editing}}" אפטיילונג פון אײַערע פרעפערענצן.',
+אויב איר זענט ארײַנלאגירט, קענט איר מבטל זײַן די דאזיגע ווארענונג אין דער "באארבעטן" אפטיילונג פון אײַערע פרעפערענצן.',
 
 # Content models
 'content-model-wikitext' => 'וויקיטעקסט',
@@ -1310,6 +1308,7 @@ $1",
 'searchdisabled' => "{{SITENAME}} זוך איז אָפאַקטיווירט.
 צווישנצײַט קענט איר זוכן מיט גוגל.
 געב אכט אז ס'איז מעגלעך אַז זייער אינדעקס פֿון {{SITENAME}} אינהאַלט איז אפשר פֿאַרעלטערט.",
+'search-error' => "ס'האט פאסירט א פֿעלער ביים זוכן: $1",
 
 # Preferences page
 'preferences' => 'פרעפֿערענצן',
@@ -1781,6 +1780,7 @@ $1",
 'lockmanager-notlocked' => 'מ\'קען נישט אויפֿשליסן "$1"; ער איז נישט פֿארשלאסן.',
 'lockmanager-fail-closelock' => 'נישט מעגלעך פארשפארן שלאס טעקע פאר "$1".',
 'lockmanager-fail-deletelock' => 'נישט מעגלעך אויסמעקן שלאס טעקע פאר "$1".',
+'lockmanager-fail-acquirelock' => 'נישט מעגלעך צו באקומען שלאס טעקע פאר "$1".',
 'lockmanager-fail-openlock' => 'נישט מעגלעך עפֿענען שלאס טעקע פאר "$1".',
 'lockmanager-fail-releaselock' => 'נישט מעגלעך באפֿרייען שלאס טעקע פאר "$1".',
 
@@ -1961,6 +1961,9 @@ $1",
 'disambiguationspage' => 'Template:באדייטן',
 'disambiguations-text' => "די קומענדיגע בלעטער פארבינדן צו א '''באדייטן בלאט'''. זיי ברויכן ענדערשט פֿארבינדן צו דעם רעלעוואנטן טעמע בלאט.<br />א בלאט ווערט פאררעכענט פאר א באדײַטן בלאט אויב ער באניצט זיך מיט א מוסטער וואס איז פארבינדען פון [[MediaWiki:Disambiguationspage]].",
 
+'pageswithprop' => 'בלעטער מיט א בלאט אייגנשאפט',
+'pageswithprop-legend' => 'בלעטער מיט א בלאט אייגנשאפט',
+'pageswithprop-text' => 'דער בלאט האלט א רשימה פון בלעטער וואס ניצן א געוויסע בלאט אייגנשאפט.',
 'pageswithprop-prop' => 'אייגנשאפט נאמען:',
 'pageswithprop-submit' => 'גייט',
 
index af96deb..3c4fec0 100644 (file)
@@ -13,6 +13,7 @@
  * @author Kaganer
  * @author KaiesTse
  * @author Mark85296341
+ * @author Nemo bis
  * @author Simon Shek
  * @author Waihorace
  * @author William915
index 23e7ace..b63cb57 100644 (file)
@@ -499,7 +499,7 @@ $messages = array(
 'newwindow' => '(将于新窗口中打开)',
 'cancel' => '取消',
 'moredotdotdot' => '更多',
-'morenotlisted' => 'æ\9b´å¤\9aæ\9cªè¢«å\88\97å\87ºç\9a\84模æ\9d¿...',
+'morenotlisted' => 'æ\9b´å¤\9a模æ\9d¿æ\9cªå\88\97å\87º...',
 'mypage' => '页面',
 'mytalk' => '讨论',
 'anontalk' => '该IP地址的讨论',
@@ -775,17 +775,17 @@ $2',
 'welcomecreation-msg' => '你的账户已创建。请不要忘记更改你的[[Special:Preferences|{{SITENAME}}系统设置]]。',
 'yourname' => '用户名:',
 'userlogin-yourname' => '用户名',
-'userlogin-yourname-ph' => 'è¾\93å\85¥æ\82¨的用户名',
+'userlogin-yourname-ph' => '请è¾\93å\85¥ä½ 的用户名',
 'yourpassword' => '密码:',
 'userlogin-yourpassword' => '密码',
-'userlogin-yourpassword-ph' => 'è¾\93å\85¥æ\82¨的密码',
+'userlogin-yourpassword-ph' => '请è¾\93å\85¥ä½ 的密码',
 'createacct-yourpassword-ph' => '请输入密码',
 'yourpasswordagain' => '再次输入密码:',
 'createacct-yourpasswordagain' => '确认新密码',
 'createacct-yourpasswordagain-ph' => '请再次输入密码',
 'remembermypassword' => '在该浏览器保存我的登录状态(最长$1日)',
-'userlogin-remembermypassword' => '保持我的登录状态',
-'userlogin-signwithsecure' => '使用安全接',
+'userlogin-remembermypassword' => '记住我的登录状态',
+'userlogin-signwithsecure' => '使用安全接',
 'securelogin-stick-https' => '登录后继续使用HTTPS连接',
 'yourdomainname' => '您的域名:',
 'password-change-forbidden' => '您不能在本wiki上更改密码。',
@@ -798,7 +798,7 @@ $2',
 'logout' => '退出',
 'userlogout' => '退出',
 'notloggedin' => '未登录',
-'userlogin-noaccount' => '还没有账号吗?',
+'userlogin-noaccount' => '没有账户?',
 'userlogin-joinproject' => '加入{{SITENAME}}',
 'nologin' => '没有账户?$1。',
 'nologinlink' => '创建账户',
@@ -806,9 +806,9 @@ $2',
 'gotaccount' => '已经拥有账户?请$1。',
 'gotaccountlink' => '登录',
 'userlogin-resetlink' => '忘记了你的登录信息?',
-'userlogin-resetpassword-link' => '重置的密码',
+'userlogin-resetpassword-link' => '重置的密码',
 'helplogin-url' => 'Help:登录',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|登录说明]]',
+'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|登录帮助]]',
 'createacct-join' => '请在下面输入你的信息。',
 'createacct-emailrequired' => '电子邮件地址:',
 'createacct-emailoptional' => '电子邮件地址 (可选)',
@@ -819,9 +819,9 @@ $2',
 'createacct-reason' => '原因',
 'createacct-reason-ph' => '为什么您要创建另一个帐户',
 'createacct-captcha' => '安全检查',
-'createacct-imgcaptcha-ph' => 'è¾\93å\85¥æ\82¨å\9c¨ä¸\8aé\9d¢ç\9c\8bå\88°ç\9a\84æ\96\87æ\9c¬',
+'createacct-imgcaptcha-ph' => '请è¾\93å\85¥ä¸\8aå\9b¾ä¸­ç\9a\84æ\96\87å­\97',
 'createacct-submit' => '创建您的账户',
-'createacct-benefit-heading' => '{{SITENAME}} 是由像你这样的人建立的。',
+'createacct-benefit-heading' => '{{SITENAME}}是由像您这样的人建立的。',
 'createacct-benefit-body1' => '{{PLURAL:$1|编辑}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|页面}}',
 'createacct-benefit-body3' => '最近{{PLURAL:$1|贡献者}}',
@@ -907,11 +907,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => '重置密码',
-'passwordreset-text' => '完成该表格以重设你的密码。',
 'passwordreset-legend' => '重置密码',
 'passwordreset-disabled' => '此wiki已经禁用密码重置。',
 'passwordreset-emaildisabled' => '此Wiki上无法使用邮件功能。',
-'passwordreset-pretext' => '{{PLURAL:$1||输入下面的数据项之一}}',
 'passwordreset-username' => '用户名:',
 'passwordreset-domain' => '域:',
 'passwordreset-capture' => '查看生成的电子邮件吗?',
@@ -1115,6 +1113,7 @@ $2
 它可能刚刚被删除。',
 'edit-conflict' => '编辑冲突。',
 'edit-no-change' => '因为没有文字更改,你的编辑已被忽略。',
+'postedit-confirmation' => '您的编辑已保存。',
 'edit-already-exists' => '不可以建立一个新页面。
 它已经存在。',
 'defaultmessagetext' => '默认消息文本',
@@ -1727,7 +1726,7 @@ $1",
 'upload-prohibited' => '禁止的文件类型:$1。',
 'uploadlog' => '上传日志',
 'uploadlogpage' => '上传日志',
-'uploadlogpagetext' => '下面是最近的文件上传的列表。图像概览请见[[Special:NewFiles|新文件库]]。',
+'uploadlogpagetext' => 'ä¸\8bé\9d¢æ\98¯æ\9c\80è¿\91ç\9a\84æ\96\87件ä¸\8aä¼ ç\9a\84å\88\97表ã\80\82å\9b¾å\83\8fæ¦\82è§\88请è§\81[[Special:NewFiles|æ\96°æ\96\87件å\9b¾åº\93]]ã\80\82',
 'filename' => '文件名',
 'filedesc' => '文件说明',
 'fileuploadsummary' => '摘要:',
@@ -2058,12 +2057,12 @@ $1',
 'statistics-users-active-desc' => '在前$1天中操作过的用户',
 'statistics-mostpopular' => '浏览最多的页面',
 
-'disambiguations' => '链接至消歧义页的页面',
+'disambiguations' => '链接至消歧义页的页面',
 'disambiguationspage' => 'Template:消歧义',
 'disambiguations-text' => "以下的页面都有到'''消歧义页'''的链接,但它们可能可以链接到更适当的页面。<br />一个页面如果使用了[[MediaWiki:Disambiguationspage]]内的模板,则会被视为消歧义页。",
 
-'pageswithprop' => '有页面属性的页面',
-'pageswithprop-legend' => '有页面属性的页面',
+'pageswithprop' => '有页面属性的页面',
+'pageswithprop-legend' => '有页面属性的页面',
 'pageswithprop-text' => '此页面列出了使用特定页面属性的页面名单。',
 'pageswithprop-prop' => '属性名称:',
 'pageswithprop-submit' => '提交',
@@ -2074,17 +2073,17 @@ $1',
 'double-redirect-fixed-maintenance' => '修复双重重定向自[[$1]]至[[$2]]。',
 'double-redirect-fixer' => '重定向页修复器',
 
-'brokenredirects' => '损坏的重定向页',
+'brokenredirects' => '受损重定向页',
 'brokenredirectstext' => '以下的重定向页面指向的是不存在的页面:',
 'brokenredirects-edit' => '编辑',
 'brokenredirects-delete' => '删除',
 
-'withoutinterwiki' => '无语言链接页面',
+'withoutinterwiki' => '无语言链接页面',
 'withoutinterwiki-summary' => '以下的页面是未有语言链接到其它语言版本。',
 'withoutinterwiki-legend' => '前缀',
 'withoutinterwiki-submit' => '显示',
 
-'fewestrevisions' => '最少版本页面',
+'fewestrevisions' => '版本最少页面',
 
 # Miscellaneous special pages
 'nbytes' => '$1字节',
@@ -2107,7 +2106,7 @@ $1',
 'unusedimages' => '未使用文件',
 'popularpages' => '热点页面',
 'wantedcategories' => '需要的分类',
-'wantedpages' => '待撰页面',
+'wantedpages' => '需要的页面',
 'wantedpages-badtitle' => '在结果组上的无效标题:$1',
 'wantedfiles' => '需要的文件',
 'wantedfiletext-cat' => '下列被使用的文件并不存在。已列出可能存在外部媒体库中的文件。任何此类误报将被<del>剔除</del>。此外,[[:$1]]列出列出了嵌入不存在文件的页面。',
@@ -2124,7 +2123,7 @@ $1',
 'prefixindex-namespace' => '所有有前缀的页面($1名字空间)',
 'shortpages' => '短页面',
 'longpages' => '长页面',
-'deadendpages' => 'æ\96­链页面',
+'deadendpages' => 'æ\97 链页面',
 'deadendpagestext' => '以下页面没有链接到{{SITENAME}}中的其它页面。',
 'protectedpages' => '受保护页面',
 'protectedpages-indef' => '仅无限期保护',
@@ -2141,7 +2140,7 @@ $1',
 'usercreated' => '$1 $2{{GENDER:$3|创建}}',
 'newpages' => '新页面',
 'newpages-username' => '用户名:',
-'ancientpages' => '最页面',
+'ancientpages' => '最页面',
 'move' => '移动',
 'movethispage' => '移动本页',
 'unusedimagestext' => '下列文件已存在,但并未插入任何页面。
@@ -3100,9 +3099,9 @@ $2',
 'pageinfo-redirectsto-info' => '信息',
 'pageinfo-contentpage' => '计为内容页面',
 'pageinfo-contentpage-yes' => '是',
-'pageinfo-protect-cascading' => 'ä»\8eè¿\99é\87\8cå¼\80å§\8bè¿\9eé\94\81ä¿\9dæ\8a¤',
+'pageinfo-protect-cascading' => 'ä¿\9dæ\8a¤è¿\9eé\94\81è\87ªæ­¤',
 'pageinfo-protect-cascading-yes' => '是',
-'pageinfo-protect-cascading-from' => '保护级联自',
+'pageinfo-protect-cascading-from' => '保护连锁自',
 'pageinfo-category-info' => '分类信息',
 'pageinfo-category-pages' => '页面数',
 'pageinfo-category-subcats' => '子分类数',
@@ -3170,7 +3169,7 @@ $1',
 'file-no-thumb-animation-gif' => "'''注意:由于技术限制,高分辨率GIF图像的缩略图无法进行动画处理。'''",
 
 # Special:NewFiles
-'newimages' => '新文件库',
+'newimages' => 'æ\96°æ\96\87件å\9b¾åº\93',
 'imagelisttext' => "以下是按$2排列的'''$1'''个文件列表。",
 'newimages-summary' => '本特殊页面展示最后上传的文件。',
 'newimages-legend' => '过滤',
index 54148cf..967887c 100644 (file)
@@ -712,8 +712,8 @@ $2',
 'userlogin-noaccount' => '沒有帳戶嗎?',
 'userlogin-joinproject' => '參與 {{SITENAME}}',
 'nologin' => '您還沒有帳號嗎?$1。',
-'nologinlink' => '建立戶',
-'createaccount' => '建立戶',
+'nologinlink' => '建立戶',
+'createaccount' => '建立戶',
 'gotaccount' => '已經擁有帳號?$1。',
 'gotaccountlink' => '登入',
 'userlogin-resetlink' => '忘記了你的登錄信息?',
@@ -731,7 +731,7 @@ $2',
 'createacct-reason-ph' => '您為甚麼要創建另一個帳號',
 'createacct-captcha' => '安全驗證',
 'createacct-imgcaptcha-ph' => '輸入您在上面看到的字符',
-'createacct-submit' => '建立帳',
+'createacct-submit' => '建立帳',
 'createacct-benefit-heading' => '{{SITENAME}}是由像您一樣的人建立。',
 'createacct-benefit-body1' => '{{PLURAL:$1|次編輯|次編輯}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|頁頁面|頁頁面}}',
@@ -826,11 +826,9 @@ $2',
 
 # Special:PasswordReset
 'passwordreset' => '重新設定密碼',
-'passwordreset-text' => '完成此表格以重置您的密碼。',
 'passwordreset-legend' => '重設密碼',
 'passwordreset-disabled' => '此維基上已禁止了重設密碼。',
 'passwordreset-emaildisabled' => '電子郵件功能在此 wiki 上已禁用。',
-'passwordreset-pretext' => '{{PLURAL:$1||輸入下列其中一個}}',
 'passwordreset-username' => '用戶名:',
 'passwordreset-domain' => '域名:',
 'passwordreset-capture' => '查看生成的電子郵件嗎?',
@@ -1060,6 +1058,7 @@ $2
 它可能剛剛被刪除。',
 'edit-conflict' => '編輯衝突。',
 'edit-no-change' => '您的編輯已經略過,因為文字無任何改動。',
+'postedit-confirmation' => '您的編輯已儲存。',
 'edit-already-exists' => '不可以建立一個新頁面。
 它已經存在。',
 'defaultmessagetext' => '預設訊息文字',
@@ -2039,7 +2038,7 @@ Template:消除歧義',
 'double-redirect-fixed-maintenance' => '修復從[[$1]]到[[$2]]的雙重重定向。',
 'double-redirect-fixer' => '重新定向修正器',
 
-'brokenredirects' => '損壞的重定向頁',
+'brokenredirects' => '受損重定向頁',
 'brokenredirectstext' => '以下的重定向頁指向的是不存在的頁面:',
 'brokenredirects-edit' => '編輯',
 'brokenredirects-delete' => '刪除',
index e6862ac..90e4f7e 100644 (file)
@@ -44,7 +44,7 @@ QT_AUTOBRIEF           = NO
 MULTILINE_CPP_IS_BRIEF = NO
 INHERIT_DOCS           = YES
 SEPARATE_MEMBER_PAGES  = NO
-TAB_SIZE               = 8
+TAB_SIZE               = 4
 ALIASES =      "type{1}=<b> \1 </b>:" \
                "types{2}=<b> \1 </b> or <b> \2 </b>:" \
                "types{3}=<b> \1 </b>, <b> \2 </b>, or <b> \3 </b>:" \
@@ -176,6 +176,7 @@ FILE_PATTERNS          = *.c \
                          *.txt \
                          README
 RECURSIVE              = YES
+EXCLUDE                = {{EXCLUDE}}
 EXCLUDE_SYMLINKS       = YES
 EXCLUDE_PATTERNS       = LocalSettings.php AdminSettings.php StartProfiler.php .svn */.git/* {{EXCLUDE_PATTERNS}}
 EXCLUDE_SYMBOLS        =
index 1ccd121..13301ed 100644 (file)
@@ -56,7 +56,7 @@ class CopyFileBackend extends Maintenance {
                $src = FileBackendGroup::singleton()->get( $this->getOption( 'src' ) );
                $dst = FileBackendGroup::singleton()->get( $this->getOption( 'dst' ) );
                $containers = explode( '|', $this->getOption( 'containers' ) );
-               $subDir = $this->getOption( rtrim( 'subdir', '/' ), '' );
+               $subDir = rtrim( $this->getOption( 'subdir', '' ), '/' );
 
                $rateFile = $this->getOption( 'ratefile' );
 
index fdd37e6..bc7a7d4 100644 (file)
@@ -584,11 +584,11 @@ $wgMessageStructure = array(
        ),
        'passwordreset' => array(
                'passwordreset',
-               'passwordreset-text',
+               'passwordreset-text-one',
+               'passwordreset-text-many',
                'passwordreset-legend',
                'passwordreset-disabled',
                'passwordreset-emaildisabled',
-               'passwordreset-pretext',
                'passwordreset-username',
                'passwordreset-domain',
                'passwordreset-capture',
@@ -738,6 +738,7 @@ $wgMessageStructure = array(
                'edit-gone-missing',
                'edit-conflict',
                'edit-no-change',
+               'postedit-confirmation',
                'edit-already-exists',
                'addsection-preload',
                'addsection-editintro',
@@ -3917,8 +3918,8 @@ $wgBlockComments = array(
 begin with * or ** are discarded, furthermore lines that do begin with ** and
 do not contain | are also discarded, but do not depend on this behavior for
 future releases. Also note that since each list value is wrapped in a unique
-XHTML id it should only appear once and include characters that are legal
-XHTML id names.",
+(X)HTML id it should only appear once and include characters that are legal
+(X)HTML id names.",
        'toggles'             => 'User preference toggles',
        'underline'           => '',
        'editfont'            => 'Font style option in Special:Preferences',
index 3439b74..9283264 100644 (file)
@@ -8,12 +8,6 @@
  * Usage:
  *   php mwdocgen.php
  *
- * KNOWN BUGS:
- *
- * - pass_thru seems to always use buffering (even with ob_implicit_flush()),
- * that make output slow when doxygen parses language files.
- * - the menu doesnt work, got disabled at revision 13740. Need to code it.
- *
  * 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
  * @version first release
  */
 
-#
-# Variables / Configuration
-#
-
-if ( PHP_SAPI != 'cli' ) {
-       echo 'Run "' . __FILE__ . '" from the command line.';
-       die( -1 );
-}
-
-/** Figure out the base directory for MediaWiki location */
-$mwPath = dirname( __DIR__ ) . DIRECTORY_SEPARATOR;
-
-/** doxygen binary script */
-$doxygenBin = 'doxygen';
-
-/** doxygen configuration template for mediawiki */
-$doxygenTemplate = $mwPath . 'maintenance/Doxyfile';
-
-/** doxygen input filter to tweak source file before they are parsed */
-$doxygenInputFilter = "php {$mwPath}maintenance/mwdoc-filter.php";
-
-/** where Phpdoc should output documentation */
-$doxyOutput = $mwPath . 'docs' . DIRECTORY_SEPARATOR;
-
-$doxyVersion = 'master';
-
-/** MediaWiki subpaths */
-$mwPathI = $mwPath . 'includes/';
-$mwPathL = $mwPath . 'languages/';
-$mwPathM = $mwPath . 'maintenance/';
-$mwPathS = $mwPath . 'skins/';
-
-/** Ignored paths relative to $mwPath */
-$mwExcludePaths = array(
-       'images',
-       'static',
-);
-
-/** Variable to get user input */
-$input = '';
-$excludePatterns = '';
-/** Whether to generates man pages: */
-$doxyGenerateMan = false;
-
-#
-# Functions
-#
-
-define( 'MEDIAWIKI', true );
-require_once "$mwPath/includes/GlobalFunctions.php";
-
-/**
- * Read a line from the shell
- * @param $prompt String
- * @return string
- */
-function readaline( $prompt = '' ) {
-       print $prompt;
-       $fp = fopen( "php://stdin", "r" );
-       $resp = trim( fgets( $fp, 1024 ) );
-       fclose( $fp );
-       return $resp;
-}
+require_once __DIR__ . '/Maintenance.php';
 
 /**
- * Generate a configuration file given user parameters and return the temporary filename.
- * @param $doxygenTemplate String: full path for the template.
- * @param $outputDirectory String: directory where the stuff will be output.
- * @param $stripFromPath String: path that should be stripped out (usually mediawiki base path).
- * @param $currentVersion String: Version number of the software
- * @param $input String: Path to analyze.
- * @param $exclude String: Additionals path regex to exclude
- * @param $excludePatterns String: Additionals path regex to exclude
- *                 (LocalSettings.php, AdminSettings.php, .svn and .git directories are always excluded)
- * @param $doxyGenerateMan Boolean
- * @return string
+ * Maintenance script that builds doxygen documentation.
+ * @ingroup Maintenance
  */
-function generateConfigFile( $doxygenTemplate, $outputDirectory, $stripFromPath, $currentVersion, $input, $exclude, $excludePatterns, $doxyGenerateMan, $doxygenInputFilter ) {
-
-       $template = file_get_contents( $doxygenTemplate );
-       // Replace template placeholders by correct values.
-       $replacements = array(
-               '{{OUTPUT_DIRECTORY}}' => $outputDirectory,
-               '{{STRIP_FROM_PATH}}' => $stripFromPath,
-               '{{CURRENT_VERSION}}' => $currentVersion,
-               '{{INPUT}}' => $input,
-               '{{EXCLUDE}}' => $exclude,
-               '{{EXCLUDE_PATTERNS}}' => $excludePatterns,
-               '{{HAVE_DOT}}' => `which dot` ? 'YES' : 'NO',
-               '{{GENERATE_MAN}}' => $doxyGenerateMan ? 'YES' : 'NO',
-               '{{INPUT_FILTER}}' => $doxygenInputFilter,
-       );
-       $tmpCfg = str_replace( array_keys( $replacements ), array_values( $replacements ), $template );
-       $tmpFileName = tempnam( wfTempDir(), 'mwdocgen-' );
-       file_put_contents( $tmpFileName, $tmpCfg ) or die( "Could not write doxygen configuration to file $tmpFileName\n" );
-
-       return $tmpFileName;
-}
-
-#
-# Main !
-#
-
-unset( $file );
+class MWDocGen extends Maintenance {
+
+       /**
+        * Prepare Maintenance class
+        */
+       public function __construct() {
+               parent::__construct();
+               $this->mDescription = 'Build doxygen documentation';
+
+               $this->addOption( 'doxygen',
+                       'Path to doxygen',
+                       false, true );
+               $this->addOption( 'version',
+                       'Pass a MediaWiki version',
+                       false, true );
+               $this->addOption( 'generate-man',
+                       'Whether to generate man files' );
+               $this->addOption( 'file',
+                       'Only process given file (relative to $IP)',
+                       false, true );
+               $this->addOption( 'output',
+                       'Path to write doc to',
+                       false, true );
+               $this->addOption( 'no-extensions',
+                       'Ignore extensions' );
+       }
 
-if ( is_array( $argv ) ) {
-       for ( $i = 0; $i < count( $argv ); $i++ ) {
-               switch ( $argv[$i] ) {
-               case '--all':
-                       $input = 0;
-                       break;
-               case '--includes':
-                       $input = 1;
-                       break;
-               case '--languages':
-                       $input = 2;
-                       break;
-               case '--maintenance':
-                       $input = 3;
-                       break;
-               case '--skins':
-                       $input = 4;
-                       break;
-               case '--file':
-                       $input = 5;
-                       $i++;
-                       if ( isset( $argv[$i] ) ) {
-                               $file = $argv[$i];
-                       }
-                       break;
-               case '--no-extensions':
-                       $input = 6;
-                       break;
-               case '--output':
-                       $i++;
-                       if ( isset( $argv[$i] ) ) {
-                               $doxyOutput = realpath( $argv[$i] );
-                       }
-                       break;
-               case '--version':
-                       $i++;
-                       if ( isset( $argv[$i] ) ) {
-                               $doxyVersion = $argv[$i];
-                       }
-                       break;
-               case '--generate-man':
-                       $doxyGenerateMan = true;
-                       break;
-               case '--help':
-                       print <<<END
-Usage: php mwdocgen.php [<command>] [<options>]
+       public function getDbType() {
+               return Maintenance::DB_NONE;
+       }
 
-Commands:
-    --all           Process entire codebase
-    --includes      Process only files in includes/ dir
-    --languages     Process only files in languages/ dir
-    --maintenance   Process only files in maintenance/ dir
-    --skins         Process only files in skins/ dir
-    --file <file>   Process only the given file
-    --no-extensions Process everything but extensions directorys
+       protected function init() {
+               global $IP;
+
+               $this->doxygen = $this->getOption( 'doxygen', 'doxygen' );
+               $this->mwVersion = $this->getOption( 'version', 'master' );
+               $this->input = $IP . '/' . $this->getOption( 'file', '' );
+               $this->output = $this->getOption( 'output', "$IP/docs" );
+
+               $this->inputFilter = wfShellWikiCmd(
+                       $IP . '/maintenance/mwdoc-filter.php' );
+               $this->template = $IP . '/maintenance/Doxyfile';
+               $this->excludes = array(
+                       'images',
+                       'static',
+               );
+               $this->excludePatterns = array();
+               if ( $this->hasOption( 'no-extensions' ) ) {
+                       $this->excludePatterns[] = 'extensions';
+               }
 
-If no command is given, you will be prompted.
+               $this->doDot = `which dot`;
+               $this->doMan = $this->hasOption( 'generate-man' );
+       }
 
-Other options:
-    --output <dir>  Set output directory (default: $doxyOutput)
-    --generate-man  Generates man page documentation
-    --version       Project version to display in the outut (default: $doxyVersion)
-    --help          Show this help and exit.
+       public function execute() {
+               global $IP;
 
+               $this->init();
 
-END;
-                       exit( 0 );
-                       break;
+               # Build out directories we want to exclude
+               $exclude = '';
+               foreach ( $this->excludes as $item ) {
+                       $exclude .= " $IP/$item";
                }
-       }
-}
-
-// TODO : generate a list of paths ))
 
-if ( $input === '' ) {
-       echo <<<OPTIONS
-Several documentation possibilities:
- 0 : whole documentation (1 + 2 + 3 + 4)
- 1 : only includes
- 2 : only languages
- 3 : only maintenance
- 4 : only skins
- 5 : only a given file
- 6 : all but the extensions directory
-OPTIONS;
-       while ( !is_numeric( $input ) ) {
-               $input = readaline( "\nEnter your choice [0]:" );
-               if ( $input == '' ) {
-                       $input = 0;
+               $excludePatterns = implode( ' ', $this->excludePatterns );
+
+               $conf = strtr( file_get_contents( $this->template ),
+                       array(
+                               '{{OUTPUT_DIRECTORY}}' => $this->output,
+                               '{{STRIP_FROM_PATH}}' => $IP,
+                               '{{CURRENT_VERSION}}' => $this->mwVersion,
+                               '{{INPUT}}' => $this->input,
+                               '{{EXCLUDE}}' => $exclude,
+                               '{{EXCLUDE_PATTERNS}}' => $excludePatterns,
+                               '{{HAVE_DOT}}' => $this->doDot ? 'YES' : 'NO',
+                               '{{GENERATE_MAN}}' => $this->doMan ? 'YES' : 'NO',
+                               '{{INPUT_FILTER}}' => $this->inputFilter,
+                       )
+               );
+
+               $tmpFile = tempnam( wfTempDir(), 'MWDocGen-' );
+               if ( file_put_contents( $tmpFile, $conf ) === false ) {
+                       $this->error( "Could not write doxygen configuration to file $tmpFile\n",
+                               /** exit code: */ 1 );
                }
-       }
-}
-
-switch ( $input ) {
-case 0:
-       $input = $mwPath;
-       break;
-case 1:
-       $input = $mwPathI;
-       break;
-case 2:
-       $input = $mwPathL;
-       break;
-case 3:
-       $input = $mwPathM;
-       break;
-case 4:
-       $input = $mwPathS;
-       break;
-case 5:
-       if ( !isset( $file ) ) {
-               $file = readaline( "Enter file name $mwPath" );
-       }
-       $input = $mwPath . $file;
-       break;
-case 6:
-       $input = $mwPath;
-       $excludePatterns = 'extensions';
-}
 
-// Generate path exclusions
-$excludedPaths = $mwPath . join( " $mwPath", $mwExcludePaths );
-print "EXCLUDE: $excludedPaths\n\n";
+               $command = $this->doxygen . ' ' . $tmpFile;
+               $this->output( "Executing command:\n$command\n" );
 
-$generatedConf = generateConfigFile( $doxygenTemplate, $doxyOutput, $mwPath, $doxyVersion, $input, $excludedPaths, $excludePatterns, $doxyGenerateMan, $doxygenInputFilter );
-$command = $doxygenBin . ' ' . $generatedConf;
+               $exitcode = 1;
+               system( $command, $exitcode );
 
-echo <<<TEXT
+               $this->output( <<<TEXT
 ---------------------------------------------------
-Launching the command:
-
-$command
+Doxygen execution finished.
+Check above for possible errors.
 
+You might want to delete the temporary file:
+ $tmpFile
 ---------------------------------------------------
 
-TEXT;
-
-$exitcode = 1;
-passthru( $command, $exitcode );
+TEXT
+       );
 
-echo <<<TEXT
----------------------------------------------------
-Doxygen execution finished.
-Check above for possible errors.
+               if ( $exitcode !== 0 ) {
+                       $this->error( "Something went wrong (exit: $exitcode)\n",
+                               $exitcode );
+               }
 
-You might want to delete the temporary file $generatedConf
+       }
 
-TEXT;
+}
 
-exit( $exitcode );
+$maintClass = 'MWDocGen';
+require_once RUN_MAINTENANCE_IF_MAIN;
index ddcefda..90f613e 100644 (file)
@@ -668,6 +668,7 @@ return array(
                        'jquery.client',
                        'jquery.placeholder',
                        'jquery.suggestions',
+                       'mediawiki.api',
                ),
        ),
        'mediawiki.Title' => array(
@@ -740,7 +741,14 @@ return array(
        ),
        'mediawiki.action.view.postEdit' => array(
                'scripts' => 'resources/mediawiki.action/mediawiki.action.view.postEdit.js',
-               'dependencies' => 'jquery.cookie'
+               'styles' => 'resources/mediawiki.action/mediawiki.action.view.postEdit.css',
+               'dependencies' => array(
+                       'jquery.cookie',
+                       'mediawiki.jqueryMsg'
+               ),
+               'messages' => array(
+                       'postedit-confirmation',
+               ),
        ),
        'mediawiki.action.view.rightClickEdit' => array(
                'scripts' => 'resources/mediawiki.action/mediawiki.action.view.rightClickEdit.js',
diff --git a/resources/mediawiki.action/images/green-checkmark.png b/resources/mediawiki.action/images/green-checkmark.png
new file mode 100644 (file)
index 0000000..8ec604e
Binary files /dev/null and b/resources/mediawiki.action/images/green-checkmark.png differ
diff --git a/resources/mediawiki.action/mediawiki.action.view.postEdit.css b/resources/mediawiki.action/mediawiki.action.view.postEdit.css
new file mode 100644 (file)
index 0000000..1e531bf
--- /dev/null
@@ -0,0 +1,80 @@
+.postedit-container {
+       margin: 0 auto;
+       position: fixed;
+       top: 0;
+       height: 0;
+       left: 50%;
+       z-index: 1000;
+}
+
+.postedit {
+       position: relative;
+       top: 0.6em;
+       left: -50%;
+       padding: .6em 3.6em .6em 1.1em;
+       font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+       font-size: 0.8em;
+       line-height: 1.5625em;
+       color: #626465;
+       background-color: #f4f4f4;
+       border: 1px solid #dcd9d9;
+       -webkit-text-shadow: 0 0.0625em 0 rgba(255, 255, 255, 0.5);
+       -moz-text-shadow: 0 0.0625em 0 rgba(255, 255, 255, 0.5);
+       text-shadow: 0 0.0625em 0 rgba(255, 255, 255, 0.5);
+       -webkit-border-radius: 5px;
+       -moz-border-radius: 5px;
+       border-radius: 5px;
+       -webkit-box-shadow: 0 2px 5px 0 #ccc;
+       -moz-box-shadow: 0 2px 5px 0 #ccc;
+       box-shadow: 0 2px 5px 0 #ccc;
+       -webkit-transition: all 0.25s ease-in-out;
+       -moz-transition: all 0.25s ease-in-out;
+       -ms-transition: all 0.25s ease-in-out;
+       -o-transition: all 0.25s ease-in-out;
+       transition: all 0.25s ease-in-out;
+}
+
+.skin-monobook .postedit {
+       top: 3em !important;
+}
+
+.postedit-faded {
+       opacity: 0;
+}
+
+.postedit-icon {
+       padding-left: 41px; /* 25 + 8 + 8 */
+       /* like min-height, but old IE compatible and keeps text vertically aligned, too */
+       line-height: 25px;
+       background-repeat: no-repeat;
+       background-position: 8px 50%;
+}
+
+.postedit-icon-checkmark {
+       /* @embed */
+       background-image: url(images/green-checkmark.png);
+       background-position: left;
+}
+
+.postedit-close {
+       position: absolute;
+       padding: 0 .8em;
+       right: 0;
+       top: 0;
+       font-size: 1.25em;
+       font-weight: bold;
+       line-height: 2.3em;
+       color: black;
+       text-shadow: 0 0.0625em 0 white;
+       text-decoration: none;
+       opacity: 0.2;
+       filter: alpha(opacity=20);
+}
+
+.postedit-close:hover {
+       color: black;
+       text-decoration: none;
+       cursor: pointer;
+       opacity: 0.4;
+       filter: alpha(opacity=40);
+}
index a11233f..e7a3e3c 100644 (file)
@@ -1,15 +1,45 @@
 ( function ( mw, $ ) {
-       // Only a view can be a post-edit.
-       if ( mw.config.get( 'wgAction' ) !== 'view' ) {
+       'use strict';
+
+       var config = mw.config.get( [ 'wgAction', 'wgCookiePrefix', 'wgCurRevisionId' ] ),
+               // This should match EditPage::POST_EDIT_COOKIE_KEY_PREFIX:
+               cookieKey = config.wgCookiePrefix + 'PostEditRevision' + config.wgCurRevisionId,
+               div, id;
+
+       if ( config.wgAction !== 'view' || $.cookie( cookieKey ) !== '1' ) {
                return;
        }
 
-       // Matches EditPage::POST_EDIT_COOKIE_KEY_PREFIX
-       var cookieKey = mw.config.get( 'wgCookiePrefix' ) + 'PostEditRevision' + mw.config.get( 'wgCurRevisionId' );
+       $.cookie( cookieKey, null, { path: '/' } );
+       mw.config.set( 'wgPostEdit', true );
+
+       function removeConfirmation() {
+               div.parentNode.removeChild( div );
+               mw.hook( 'postEdit.afterRemoval' ).fire();
+       }
+
+       function fadeOutConfirmation() {
+               clearTimeout( id );
+               div.firstChild.className = 'postedit postedit-faded';
+               setTimeout( removeConfirmation, 500 );
+               return false;
+       }
 
-       if ( $.cookie( cookieKey ) === '1' ) {
-               // We just saved this page
-               $.cookie( cookieKey, null, { path: '/' } );
-               mw.config.set( 'wgPostEdit', true );
+       function showConfirmation() {
+               div = document.createElement( 'div' );
+               div.className = 'postedit-container';
+               div.innerHTML =
+                       '<div class="postedit">' +
+                               '<div class="postedit-icon postedit-icon-checkmark">' +
+                                       mw.message( 'postedit-confirmation', mw.user ).escaped() +
+                               '</div>' +
+                               '<a href="#" class="postedit-close">&times;</a>' +
+                       '</div>';
+               id = setTimeout( fadeOutConfirmation, 3000 );
+               div.firstChild.lastChild.onclick = fadeOutConfirmation;
+               document.body.insertBefore( div, document.body.firstChild );
        }
+
+       mw.hook( 'postEdit' ).add( showConfirmation ).fire();
+
 } ( mediaWiki, jQuery ) );
index 2cd1b92..96947cc 100644 (file)
@@ -27,7 +27,7 @@
                                // an infinite loop. If this fresh token is bad, something else is very wrong.
                                useTokenToPost = function ( token ) {
                                        params.token = token;
-                                       api.post( params, ok, err );
+                                       api.post( params, { ok: ok, err: err } );
                                };
                                return api.getEditToken( useTokenToPost, err );
                        } else {
@@ -43,7 +43,7 @@
                                                err( code, result );
                                        }
                                };
-                               return api.post( params, { ok : ok, err : getTokenIfBad });
+                               return api.post( params, { ok: ok, err: getTokenIfBad } );
                        }
                },
 
@@ -85,7 +85,7 @@
                                        } else {
                                                d.reject( 'token-missing', data );
                                        }
-                               })
+                               } )
                                .fail( d.reject );
 
                        return d.promise( { abort: apiPromise.abort } );
index 2c251d7..f43505e 100644 (file)
Binary files a/resources/mediawiki.special/images/glyph-people-large.png and b/resources/mediawiki.special/images/glyph-people-large.png differ
index 62b37f9..e9b8874 100644 (file)
Binary files a/resources/mediawiki.special/images/icon-contributors.png and b/resources/mediawiki.special/images/icon-contributors.png differ
index 263832b..f4ec247 100644 (file)
Binary files a/resources/mediawiki.special/images/icon-edits.png and b/resources/mediawiki.special/images/icon-edits.png differ
index 306f1f1..4b3d4ee 100644 (file)
Binary files a/resources/mediawiki.special/images/icon-lock.png and b/resources/mediawiki.special/images/icon-lock.png differ
index 0389c84..a406ce7 100644 (file)
Binary files a/resources/mediawiki.special/images/icon-pages.png and b/resources/mediawiki.special/images/icon-pages.png differ
index ef16a1d..11d00e7 100644 (file)
 }
 
 div.mw-createacct-benefits-container {
-       float: left
+       /* Keeps this column compact and close to the form, but tends to squish contents. */
+       float: left;
 }
 
 div.mw-createacct-benefits-container h2 {
        margin-bottom: 30px;
 }
 
-div.mw-benefits-icon {
-       display: inline-block;
-       padding: 0;
-       float: left;
-       width: 80px;
-       height: 75px;
-       margin-right: 15px;
-       border: 0;
-}
-
-.mw-benefits-icon.icon-edits {
+.mw-number-text.icon-edits {
        /* @embed */
-       background: url(images/icon-edits.png) no-repeat right;
+       background: url(images/icon-edits.png) no-repeat left center;
 }
 
-.mw-benefits-icon.icon-pages {
+.mw-number-text.icon-pages {
        /* @embed */
-       background: url(images/icon-pages.png) no-repeat right;
+       background: url(images/icon-pages.png) no-repeat left center;
 }
 
-.mw-benefits-icon.icon-contributors {
+.mw-number-text.icon-contributors {
        /* @embed */
-       background: url(images/icon-contributors.png) no-repeat right;
+       background: url(images/icon-contributors.png) no-repeat left center;
 }
 
 /* Special font for numbers in benefits*/
@@ -86,10 +77,13 @@ div.mw-number-text h3 {
        text-align: center;
 }
 
+/* Contains a number and explanatory text, with space for an icon */
 div.mw-number-text {
        display: block;
        font-size: 1.2em;
        color: #444;
        margin-top: 1em;
+       padding: 0 0 0 95px; /* 80px wide icon plus "margin" */
+       min-height: 75px; /* matches max icon height, ensures icon emblem is visible */
        text-align: center;
 }
index 0f8d420..810340c 100644 (file)
@@ -178,7 +178,7 @@ a.mw-ui-button {
   -moz-box-sizing: border-box;
   box-sizing: border-box;
   font-size: 0.9em;
-  color: #7d7d7d;
+  color: #4a4a4a;
   width: auto;
   margin: 0 0 0.2em 0;
   padding: 0;
@@ -215,7 +215,7 @@ a.mw-ui-button {
 /* line 72, sourcefiles/scss/components/default/_forms.scss */
 .mw-ui-label {
   font-size: 0.9em;
-  color: #7d7d7d;
+  color: #4a4a4a;
 }
 /* line 34, sourcefiles/scss/mixins/_forms.scss */
 .mw-ui-label * {
index 9826526..5f03376 100644 (file)
@@ -307,7 +307,7 @@ a.mw-ui-button {
   -moz-box-sizing: border-box;
   box-sizing: border-box;
   font-size: 0.9em;
-  color: #7d7d7d;
+  color: #4a4a4a;
   width: auto;
   margin: 0 0 0.2em 0;
   padding: 0;
@@ -344,7 +344,7 @@ a.mw-ui-button {
 /* line 72, sourcefiles/scss/components/default/_forms.scss */
 .mw-ui-label {
   font-size: 0.9em;
-  color: #7d7d7d;
+  color: #4a4a4a;
 }
 /* line 34, sourcefiles/scss/mixins/_forms.scss */
 .mw-ui-label * {
index 6316232..5db857a 100644 (file)
@@ -29,7 +29,7 @@
         //weight: bold;
         size: 0.9em;
     };
-    color: darken($agoraGray, 30%);
+    color: darken($agoraGray, 50%);
 
     & * {
         font-weight: normal;
index 87529b4..ac6f2a1 100644 (file)
                } );
        }
 
+       $( document ).ready( function() {
+               var $matrixTooltips = $( '.mw-htmlform-matrix .mw-htmlform-tooltip' );
+               if ( $matrixTooltips.length ) {
+                       mw.loader.using( 'jquery.tipsy', function () {
+                               $matrixTooltips.tipsy();
+                       } );
+               }
+       } );
 }( mediaWiki, jQuery ) );
index 00e74c5..08f10fe 100644 (file)
                $( searchboxesSelectors.join(', ') )
                        .suggestions( {
                                fetch: function ( query ) {
-                                       var $el, jqXhr;
+                                       var $el;
 
                                        if ( query.length !== 0 ) {
-                                               $el = $(this);
-                                               jqXhr = $.ajax( {
-                                                       url: mw.util.wikiScript( 'api' ),
-                                                       data: {
-                                                               format: 'json',
-                                                               action: 'opensearch',
-                                                               search: query,
-                                                               namespace: 0,
-                                                               suggest: ''
-                                                       },
-                                                       dataType: 'json',
-                                                       success: function ( data ) {
-                                                               if ( $.isArray( data ) && data.length ) {
-                                                                       $el.suggestions( 'suggestions', data[1] );
-                                                               }
-                                                       }
-                                               });
-                                               $el.data( 'request', jqXhr );
+                                               $el = $( this );
+                                               $el.data( 'request', ( new mw.Api() ).get( {
+                                                       action: 'opensearch',
+                                                       search: query,
+                                                       namespace: 0,
+                                                       suggest: ''
+                                               } ).done( function ( data ) {
+                                                       $el.suggestions( 'suggestions', data[1] );
+                                               } ) );
                                        }
                                },
                                cancel: function () {
-                                       var jqXhr = $(this).data( 'request' );
+                                       var apiPromise = $( this ).data( 'request' );
                                        // If the delay setting has caused the fetch to have not even happened
-                                       // yet, the jqXHR object will have never been set.
-                                       if ( jqXhr && $.isFunction( jqXhr.abort ) ) {
-                                               jqXhr.abort();
-                                               $(this).removeData( 'request' );
+                                       // yet, the apiPromise object will have never been set.
+                                       if ( apiPromise && $.isFunction( apiPromise.abort ) ) {
+                                               apiPromise.abort();
+                                               $( this ).removeData( 'request' );
                                        }
                                },
                                result: {
index 481929d..977929d 100644 (file)
                 *
                 * @param {Mixed} message The DOM-element, jQuery object or HTML-string to be put inside the message box.
                 * to allow CSS/JS to hide different boxes. null = no class used.
-                * @deprecated Use mw#notify
+                * @deprecated since 1.20 Use mw#notify
                 */
                jsMessage: function ( message ) {
                        if ( !arguments.length || message === '' || message === null ) {
diff --git a/skins/common/images/question-small.png b/skins/common/images/question-small.png
new file mode 100644 (file)
index 0000000..590f0cb
Binary files /dev/null and b/skins/common/images/question-small.png differ
diff --git a/skins/common/images/question.svg b/skins/common/images/question.svg
new file mode 100644 (file)
index 0000000..2797305
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->\r
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\r
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\r
+        width="21.059px" height="21.06px" viewBox="0 0 21.059 21.06" enable-background="new 0 0 21.059 21.06" xml:space="preserve">\r
+<path fill="#575757" d="M10.529,0C4.715,0,0,4.714,0,10.529s4.715,10.53,10.529,10.53c5.816,0,10.529-4.715,10.529-10.53\r
+       S16.346,0,10.529,0z M10.527,16.767c-0.861,0-1.498-0.688-1.498-1.516c0-0.862,0.637-1.534,1.498-1.534c0.828,0,1.5,0.672,1.5,1.534\r
+       C12.027,16.078,11.355,16.767,10.527,16.767z M12.664,10.255c-0.723,0.568-1,0.931-1,1.739v0.5H9.459v-0.603\r
+       c0-1.517,0.449-2.136,1.154-2.688c0.707-0.552,1.139-0.845,1.139-1.637c0-0.672-0.414-1.051-1.24-1.051\r
+       c-0.707,0-1.328,0.189-1.982,0.638L7.479,5.346c0.861-0.604,1.93-1.034,3.342-1.034c1.912,0,3.516,1.051,3.516,3.066\r
+       C14.336,8.808,13.543,9.566,12.664,10.255z"/>\r
+</svg>\r
index fb140b2..d946ce2 100644 (file)
@@ -235,6 +235,32 @@ td.mw-label {
 .prefsection table.mw-htmlform-matrix {
        width: auto;
 }
+
+.mw-icon-question {
+       /* @embed */
+       background: url('images/question-small.png') no-repeat;
+       /* SVG support using a transparent gradient to guarantee cross-browser
+        * compatibility (browsers able to understand gradient syntax support also SVG)
+        * lifted from #pt-login css rule in skins/vector/screen.css */
+       /* @embed */
+       background: -webkit-linear-gradient(transparent, transparent), url('images/question.svg') no-repeat;
+       /* @embed */
+       background: linear-gradient(transparent, transparent), url('images/question.svg') no-repeat;
+       background-size: 13px 13px;
+       display: inline-block;
+       height: 13px;
+       width: 13px;
+       margin-left: 4px;
+}
+
+.mw-icon-question:lang(ar),
+.mw-icon-question:lang(fa),
+.mw-icon-question:lang(ur) {
+       -webkit-transform: scaleX(-1);
+       -ms-transform: scaleX(-1);
+       transform: scaleX(-1);
+}
+
 td.mw-submit {
        white-space: nowrap;
 }
index 65042ef..8c01ba3 100644 (file)
@@ -1,67 +1,61 @@
 /**
  * MediaWiki legacy wikibits
  */
-( function ( mw ) {
-
-window.clientPC = navigator.userAgent.toLowerCase(); // Get client info
-window.is_gecko = /gecko/.test( clientPC ) &&
-       !/khtml|spoofer|netscape\/7\.0/.test(clientPC);
-
-window.is_safari = window.is_safari_win = window.webkit_version =
-       window.is_chrome = window.is_chrome_mac = false;
-window.webkit_match = clientPC.match(/applewebkit\/(\d+)/);
-if (webkit_match) {
-       window.is_safari = clientPC.indexOf('applewebkit') != -1 &&
-               clientPC.indexOf('spoofer') == -1;
-       window.is_safari_win = is_safari && clientPC.indexOf('windows') != -1;
-       window.webkit_version = parseInt(webkit_match[1]);
-       // Tests for chrome here, to avoid breaking old scripts safari left alone
-       // This is here for accesskeys
-       window.is_chrome = clientPC.indexOf('chrome') !== -1 &&
-               clientPC.indexOf('spoofer') === -1;
-       window.is_chrome_mac = is_chrome && clientPC.indexOf('mac') !== -1
-}
+/*jshint quotmark:false, onevar:false */
+( function ( mw, $ ) {
+       var isIE6, isGecko,
+               ua = navigator.userAgent.toLowerCase(),
+               uaMsg = 'Use feature detection or module jquery.client instead.';
 
-// For accesskeys; note that FF3+ is included here!
-window.is_ff2 = /firefox\/[2-9]|minefield\/3/.test( clientPC );
-window.ff2_bugs = /firefox\/2/.test( clientPC );
-// These aren't used here, but some custom scripts rely on them
-window.is_ff2_win = is_ff2 && clientPC.indexOf('windows') != -1;
-window.is_ff2_x11 = is_ff2 && clientPC.indexOf('x11') != -1;
-
-window.is_opera = window.is_opera_preseven = window.is_opera_95 =
-       window.opera6_bugs = window.opera7_bugs = window.opera95_bugs = false;
-if (clientPC.indexOf('opera') != -1) {
-       window.is_opera = true;
-       window.is_opera_preseven = window.opera && !document.childNodes;
-       window.is_opera_seven = window.opera && document.childNodes;
-       window.is_opera_95 = /opera\/(9\.[5-9]|[1-9][0-9])/.test( clientPC );
-       window.opera6_bugs = is_opera_preseven;
-       window.opera7_bugs = is_opera_seven && !is_opera_95;
-       window.opera95_bugs = /opera\/(9\.5)/.test( clientPC );
-}
-// As recommended by <http://msdn.microsoft.com/en-us/library/ms537509.aspx>,
-// avoiding false positives from moronic extensions that append to the IE UA
-// string (bug 23171)
-window.ie6_bugs = false;
-if ( /msie ([0-9]{1,}[\.0-9]{0,})/.exec( clientPC ) != null
-&& parseFloat( RegExp.$1 ) <= 6.0 ) {
-       ie6_bugs = true;
+/**
+ * User-agent sniffing.
+ * To be removed in MediaWiki 1.23.
+ *
+ * @deprecated since 1.17 Use jquery.client instead.
+ */
+mw.log.deprecate( window, 'clientPC', ua, uaMsg );
+$.each([
+               'is_gecko',
+               'is_chrome_mac',
+               'is_chrome',
+               'webkit_version',
+               'is_safari_win',
+               'is_safari',
+               'webkit_match',
+               'is_ff2',
+               'ff2_bugs',
+               'is_ff2_win',
+               'is_ff2_x11',
+               'opera95_bugs',
+               'opera7_bugs',
+               'opera6_bugs',
+               'is_opera_95',
+               'is_opera_preseven',
+               'is_opera',
+               'ie6_bugs'
+       ],
+       function ( i, key ) {
+               mw.log.deprecate( window, key, false, uaMsg );
+       }
+);
+if ( /msie ([0-9]{1,}[\.0-9]{0,})/.exec( ua ) && parseFloat( RegExp.$1 ) <= 6.0 ) {
+       isIE6 = true;
 }
+isGecko = /gecko/.test( ua ) && !/khtml|spoofer|netscape\/7\.0/.test( ua );
 
 // add any onload functions in this hook (please don't hard-code any events in the xhtml source)
 window.doneOnloadHook = undefined;
 
-if (!window.onloadFuncts) {
+if ( !window.onloadFuncts ) {
        window.onloadFuncts = [];
 }
 
 window.addOnloadHook = function( hookFunct ) {
        // Allows add-on scripts to add onload functions
-       if( !doneOnloadHook ) {
-               onloadFuncts[onloadFuncts.length] = hookFunct;
+       if( !window.doneOnloadHook ) {
+               window.onloadFuncts[window.onloadFuncts.length] = hookFunct;
        } else {
-               hookFunct();  // bug in MSIE script loading
+               hookFunct(); // bug in MSIE script loading
        }
 };
 
@@ -69,15 +63,15 @@ window.importScript = function( page ) {
        var uri = mw.config.get( 'wgScript' ) + '?title=' +
                mw.util.wikiUrlencode( page ) +
                '&action=raw&ctype=text/javascript';
-       return importScriptURI( uri );
+       return window.importScriptURI( uri );
 };
 
 window.loadedScripts = {}; // included-scripts tracker
 window.importScriptURI = function( url ) {
-       if ( loadedScripts[url] ) {
+       if ( window.loadedScripts[url] ) {
                return null;
        }
-       loadedScripts[url] = true;
+       window.loadedScripts[url] = true;
        var s = document.createElement( 'script' );
        s.setAttribute( 'src', url );
        s.setAttribute( 'type', 'text/javascript' );
@@ -86,7 +80,7 @@ window.importScriptURI = function( url ) {
 };
 
 window.importStylesheet = function( page ) {
-       return importStylesheetURI( mw.config.get( 'wgScript' ) + '?action=raw&ctype=text/css&title=' + mw.util.wikiUrlencode( page ) );
+       return window.importStylesheetURI( mw.config.get( 'wgScript' ) + '?action=raw&ctype=text/css&title=' + mw.util.wikiUrlencode( page ) );
 };
 
 window.importStylesheetURI = function( url, media ) {
@@ -114,8 +108,10 @@ window.appendCSS = function( text ) {
 };
 
 if ( mw.config.get( 'wgBreakFrames' ) ) {
-       // Un-trap us from framesets
-       if ( window.top != window ) {
+       // Note: In IE < 9 strict comparison to window is non-standard (the standard didn't exist yet)
+       // it works only comparing to window.self or window.window (http://stackoverflow.com/q/4850978/319266)
+       if ( window.top !== window.self ) {
+               // Un-trap us from framesets
                window.top.location = window.location;
        }
 }
@@ -131,7 +127,7 @@ window.changeText = function( el, newText ) {
 
 window.killEvt = function( evt ) {
        evt = evt || window.event || window.Event; // W3C, IE, Netscape
-       if ( typeof ( evt.preventDefault ) != 'undefined' ) {
+       if ( typeof evt.preventDefault !== 'undefined' ) {
                evt.preventDefault(); // Don't follow the link
                evt.stopPropagation();
        } else {
@@ -148,7 +144,7 @@ window.escapeQuotes = function( text ) {
        text = text.replace( re, "\\'" );
        re = new RegExp( "\\n", "g" );
        text = text.replace( re, "\\n" );
-       return escapeQuotesHTML( text );
+       return window.escapeQuotesHTML( text );
 };
 
 window.escapeQuotesHTML = function( text ) {
@@ -164,63 +160,14 @@ window.escapeQuotesHTML = function( text ) {
 };
 
 /**
- * Set the accesskey prefix based on browser detection.
- */
-window.tooltipAccessKeyPrefix = 'alt-';
-if ( is_opera ) {
-       tooltipAccessKeyPrefix = 'shift-esc-';
-} else if ( is_chrome ) {
-       tooltipAccessKeyPrefix = is_chrome_mac ? 'ctrl-option-' : 'alt-';
-} else if ( !is_safari_win && is_safari && webkit_version > 526 ) {
-       tooltipAccessKeyPrefix = 'ctrl-alt-';
-} else if ( !is_safari_win && ( is_safari
-               || clientPC.indexOf('mac') != -1
-               || clientPC.indexOf('konqueror') != -1 ) ) {
-       tooltipAccessKeyPrefix = 'ctrl-';
-} else if ( is_ff2 ) {
-       tooltipAccessKeyPrefix = 'alt-shift-';
-}
-window.tooltipAccessKeyRegexp = /\[(ctrl-)?(alt-)?(shift-)?(esc-)?(.)\]$/;
-
-/**
- * Add the appropriate prefix to the accesskey shown in the tooltip.
- * If the nodeList parameter is given, only those nodes are updated;
- * otherwise, all the nodes that will probably have accesskeys by
- * default are updated.
+ * Accesskey prefix utilities.
+ * To be removed in MediaWiki 1.23.
  *
- * @param nodeList Array list of elements to update
+ * @deprecated since 1.17 Use mediawiki.util instead.
  */
-window.updateTooltipAccessKeys = function( nodeList ) {
-       if ( !nodeList ) {
-               // Rather than scan all links on the whole page, we can just scan these
-               // containers which contain the relevant links. This is really just an
-               // optimization technique.
-               var linkContainers = [
-                       'column-one', // Monobook and Modern
-                       'mw-head', 'mw-panel', 'p-logo' // Vector
-               ];
-               for ( var i in linkContainers ) {
-                       var linkContainer = document.getElementById( linkContainers[i] );
-                       if ( linkContainer ) {
-                               updateTooltipAccessKeys( linkContainer.getElementsByTagName( 'a' ) );
-                       }
-               }
-               // these are rare enough that no such optimization is needed
-               updateTooltipAccessKeys( document.getElementsByTagName( 'input' ) );
-               updateTooltipAccessKeys( document.getElementsByTagName( 'label' ) );
-               return;
-       }
-
-       for ( var i = 0; i < nodeList.length; i++ ) {
-               var element = nodeList[i];
-               var tip = element.getAttribute( 'title' );
-               if ( tip && tooltipAccessKeyRegexp.exec( tip ) ) {
-                       tip = tip.replace(tooltipAccessKeyRegexp,
-                                         '[' + tooltipAccessKeyPrefix + "$5]");
-                       element.setAttribute( 'title', tip );
-               }
-       }
-};
+mw.log.deprecate( window, 'tooltipAccessKeyPrefix', 'alt-', 'Use mediawiki.util instead.' );
+mw.log.deprecate( window, 'tooltipAccessKeyRegexp', /\[(alt-)?(.)\]$/, 'Use mediawiki.util instead.' );
+mw.log.deprecate( window, 'updateTooltipAccessKeys', mw.util.updateTooltipAccessKeys, 'Use mediawiki.util instead.' );
 
 /**
  * Add a link to one of the portlet menus on the page, including:
@@ -263,7 +210,7 @@ window.addPortletLink = function( portlet, href, text, id, tooltip, accesskey, n
                node = document.createElement( 'ul' );
                var lastElementChild = null;
                for ( var i = 0; i < root.childNodes.length; ++i ) { /* get root.lastElementChild */
-                       if ( root.childNodes[i].nodeType == 1 ) {
+                       if ( root.childNodes[i].nodeType === 1 ) {
                                lastElementChild = root.childNodes[i];
                        }
                }
@@ -303,10 +250,10 @@ window.addPortletLink = function( portlet, href, text, id, tooltip, accesskey, n
                link.setAttribute( 'title', tooltip );
        }
        if ( accesskey && tooltip ) {
-               updateTooltipAccessKeys( [link] );
+               mw.util.updateTooltipAccessKeys( [link] );
        }
 
-       if ( nextnode && nextnode.parentNode == node ) {
+       if ( nextnode && nextnode.parentNode === node ) {
                node.insertBefore( item, nextnode );
        } else {
                node.appendChild( item );  // IE compatibility (?)
@@ -316,10 +263,10 @@ window.addPortletLink = function( portlet, href, text, id, tooltip, accesskey, n
 };
 
 window.getInnerText = function( el ) {
-       if ( typeof el == 'string' ) {
+       if ( typeof el === 'string' ) {
                return el;
        }
-       if ( typeof el == 'undefined' ) {
+       if ( typeof el === 'undefined' ) {
                return el;
        }
        // Custom sort value through 'data-sort-value' attribute
@@ -341,7 +288,7 @@ window.getInnerText = function( el ) {
        for ( var i = 0; i < l; i++ ) {
                switch ( cs[i].nodeType ) {
                        case 1: // ELEMENT_NODE
-                               str += getInnerText( cs[i] );
+                               str += window.getInnerText( cs[i] );
                                break;
                        case 3: // TEXT_NODE
                                str += cs[i].nodeValue;
@@ -351,71 +298,21 @@ window.getInnerText = function( el ) {
        return str;
 };
 
-window.checkboxes = undefined;
-window.lastCheckbox = undefined;
-
-window.setupCheckboxShiftClick = function() {
-       checkboxes = [];
-       lastCheckbox = null;
-       var inputs = document.getElementsByTagName( 'input' );
-       addCheckboxClickHandlers( inputs );
-};
-
-window.addCheckboxClickHandlers = function( inputs, start ) {
-       if ( !start ) {
-               start = 0;
-       }
-
-       var finish = start + 250;
-       if ( finish > inputs.length ) {
-               finish = inputs.length;
-       }
-
-       for ( var i = start; i < finish; i++ ) {
-               var cb = inputs[i];
-               if ( !cb.type || cb.type.toLowerCase() != 'checkbox' || ( ' ' + cb.className + ' ' ).indexOf( ' noshiftselect ' )  != -1 ) {
-                       continue;
-               }
-               var end = checkboxes.length;
-               checkboxes[end] = cb;
-               cb.index = end;
-               addClickHandler( cb, checkboxClickHandler );
-       }
-
-       if ( finish < inputs.length ) {
-               setTimeout( function() {
-                       addCheckboxClickHandlers( inputs, finish );
-               }, 200 );
-       }
-};
-
-window.checkboxClickHandler = function( e ) {
-       if ( typeof e == 'undefined' ) {
-               e = window.event;
-       }
-       if ( !e.shiftKey || lastCheckbox === null ) {
-               lastCheckbox = this.index;
-               return true;
-       }
-       var endState = this.checked;
-       var start, finish;
-       if ( this.index < lastCheckbox ) {
-               start = this.index + 1;
-               finish = lastCheckbox;
-       } else {
-               start = lastCheckbox;
-               finish = this.index - 1;
-       }
-       for ( var i = start; i <= finish; ++i ) {
-               checkboxes[i].checked = endState;
-               if( i > start && typeof checkboxes[i].onchange == 'function' ) {
-                       checkboxes[i].onchange(); // fire triggers
-               }
-       }
-       lastCheckbox = this.index;
-       return true;
-};
-
+/**
+ * Toggle checkboxes with shift selection.
+ * To be removed in MediaWiki 1.23.
+ *
+ * @deprecated since 1.17 Use jquery.checkboxShiftClick instead.
+ */
+$.each({
+       checkboxes: [],
+       lastCheckbox: null,
+       setupCheckboxShiftClick: $.noop,
+       addCheckboxClickHandlers: $.noop,
+       checkboxClickHandler: $.noop
+}, function ( key, val ) {
+       mw.log.deprecate( window, key, val, 'Use jquery.checkboxShiftClick instead.' );
+} );
 
 /*
        Written by Jonathan Snook, http://www.snook.ca/jonathan
@@ -425,22 +322,22 @@ window.checkboxClickHandler = function( e ) {
 */
 window.getElementsByClassName = function( oElm, strTagName, oClassNames ) {
        var arrReturnElements = [];
-       if ( typeof( oElm.getElementsByClassName ) == 'function' ) {
+       if ( typeof oElm.getElementsByClassName === 'function' ) {
                /* Use a native implementation where possible FF3, Saf3.2, Opera 9.5 */
                var arrNativeReturn = oElm.getElementsByClassName( oClassNames );
-               if ( strTagName == '*' ) {
+               if ( strTagName === '*' ) {
                        return arrNativeReturn;
                }
                for ( var h = 0; h < arrNativeReturn.length; h++ ) {
-                       if( arrNativeReturn[h].tagName.toLowerCase() == strTagName.toLowerCase() ) {
+                       if( arrNativeReturn[h].tagName.toLowerCase() === strTagName.toLowerCase() ) {
                                arrReturnElements[arrReturnElements.length] = arrNativeReturn[h];
                        }
                }
                return arrReturnElements;
        }
-       var arrElements = ( strTagName == '*' && oElm.all ) ? oElm.all : oElm.getElementsByTagName( strTagName );
+       var arrElements = ( strTagName === '*' && oElm.all ) ? oElm.all : oElm.getElementsByTagName( strTagName );
        var arrRegExpClassNames = [];
-       if( typeof oClassNames == 'object' ) {
+       if( typeof oClassNames === 'object' ) {
                for( var i = 0; i < oClassNames.length; i++ ) {
                        arrRegExpClassNames[arrRegExpClassNames.length] =
                                new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)");
@@ -468,16 +365,17 @@ window.getElementsByClassName = function( oElm, strTagName, oClassNames ) {
 };
 
 window.redirectToFragment = function( fragment ) {
-       var match = navigator.userAgent.match(/AppleWebKit\/(\d+)/);
+       var webKitVersion,
+               match = navigator.userAgent.match(/AppleWebKit\/(\d+)/);
        if ( match ) {
-               var webKitVersion = parseInt( match[1] );
+               webKitVersion = parseInt( match[1], 10 );
                if ( webKitVersion < 420 ) {
                        // Released Safari w/ WebKit 418.9.1 messes up horribly
                        // Nightlies of 420+ are ok
                        return;
                }
        }
-       if ( window.location.hash == '' ) {
+       if ( !window.location.hash ) {
                window.location.hash = fragment;
 
                // Mozilla needs to wait until after load, otherwise the window doesn't
@@ -486,12 +384,12 @@ window.redirectToFragment = function( fragment ) {
                // version-testing.  If Firefox fixes the bug, they'll jump twice, but
                // better twice than not at all, so make the fix hit future versions as
                // well.
-               if ( is_gecko ) {
-                       addOnloadHook(function() {
-                               if ( window.location.hash == fragment ) {
+               if ( isGecko ) {
+                       $( function () {
+                               if ( window.location.hash === fragment ) {
                                        window.location.hash = fragment;
                                }
-                       });
+                       } );
                }
        }
 };
@@ -501,11 +399,9 @@ window.redirectToFragment = function( fragment ) {
  * something, replacing any preexisting message.
  *
  * @deprecated since 1.17 Use the 'mediawiki.notify' module instead.
- * @param {String|HTMLElement} message To be put inside the message box.
+ * @param {string|HTMLElement} message To be put inside the message box.
  */
-window.jsMsg = function () {
-       return mw.util.jsMessage.apply( mw.util, arguments );
-};
+mw.log.deprecate( window, 'jsMsg', mw.util.jsMessage, 'Use mediawiki.notify instead.' );
 
 /**
  * Inject a cute little progress spinner after the specified element
@@ -539,17 +435,17 @@ window.removeSpinner = function( id ) {
 
 window.runOnloadHook = function() {
        // don't run anything below this for non-dom browsers
-       if ( doneOnloadHook || !( document.getElementById && document.getElementsByTagName ) ) {
+       if ( window.doneOnloadHook || !( document.getElementById && document.getElementsByTagName ) ) {
                return;
        }
 
        // set this before running any hooks, since any errors below
        // might cause the function to terminate prematurely
-       doneOnloadHook = true;
+       window.doneOnloadHook = true;
 
        // Run any added-on functions
-       for ( var i = 0; i < onloadFuncts.length; i++ ) {
-               onloadFuncts[i]();
+       for ( var i = 0; i < window.onloadFuncts.length; i++ ) {
+               window.onloadFuncts[i]();
        }
 };
 
@@ -569,7 +465,7 @@ window.addHandler = function( element, attach, handler ) {
 };
 
 window.hookEvent = function( hookName, hookFunct ) {
-       addHandler( window, hookName, hookFunct );
+       window.addHandler( window, hookName, hookFunct );
 };
 
 /**
@@ -579,7 +475,7 @@ window.hookEvent = function( hookName, hookFunct ) {
  * @param handler callable Event handler callback
  */
 window.addClickHandler = function( element, handler ) {
-       addHandler( element, 'click', handler );
+       window.addHandler( element, 'click', handler );
 };
 
 /**
@@ -598,10 +494,10 @@ window.removeHandler = function( element, remove, handler ) {
 };
 // note: all skins should call runOnloadHook() at the end of html output,
 //      so the below should be redundant. It's there just in case.
-hookEvent( 'load', runOnloadHook );
+window.hookEvent( 'load', window.runOnloadHook );
 
-if ( ie6_bugs ) {
-       importScriptURI( mw.config.get( 'stylepath' ) + '/common/IEFixes.js' );
+if ( isIE6 ) {
+       window.importScriptURI( mw.config.get( 'stylepath' ) + '/common/IEFixes.js' );
 }
 
-}( mediaWiki ) );
+}( mediaWiki, jQuery ) );
index 8995593..f7296bd 100644 (file)
@@ -6290,7 +6290,7 @@ parsoid=wt2html,wt2wt
 {{echo|Bar}}
 !!result
 <!-- foo -->
-<p typeof="mw:Object/Template">Bar
+<p typeof="mw:Transclusion">Bar
 </p>
 !!end
 
@@ -6682,7 +6682,7 @@ parsoid=wt2html,wt2wt
 !!input
 {{echo_with_span|''a}}{{echo_with_span|b''c''d}}{{echo_with_span|''e}}
 !!result
-<p><span typeof="mw:Object/Template"><i>a</i></span><i typeof="mw:Object/Template"><span>b</span></i><span>c</span><i>d</i><span>e</span></p>
+<p><span typeof="mw:Transclusion"><i>a</i></span><i typeof="mw:Transclusion"><span>b</span></i><span>c</span><i>d</i><span>e</span></p>
 !!end
 
 !!test
@@ -6693,9 +6693,9 @@ parsoid=wt2html,wt2wt
 !!input
 {{echo_with_div|''a}}{{echo_with_div|b''c''d}}{{echo_with_div|''e}}
 !!result
-<div typeof="mw:Object/Template"><i>a</i></div>
-<div typeof="mw:Object/Template"><i>b</i>c<i>d</i></div>
-<div typeof="mw:Object/Template">e</div>
+<div typeof="mw:Transclusion"><i>a</i></div>
+<div typeof="mw:Transclusion"><i>b</i>c<i>d</i></div>
+<div typeof="mw:Transclusion">e</div>
 !!end
 
 !!test
@@ -6718,7 +6718,7 @@ parsoid
 |bar
 |}
 !!result
-<table typeof="mw:Object/Template">
+<table typeof="mw:Transclusion">
 <tbody>
 <tr>
 <td>foo</td></tr></tbody></table><span>bar</span>
@@ -6750,7 +6750,7 @@ parsoid
   </tr>
 </table>
 !!result
-<table  about="#mwt1" typeof="mw:Object/Template">
+<table  about="#mwt1" typeof="mw:Transclusion">
   <tbody><tr >
     <td >
     <table >
@@ -13978,11 +13978,11 @@ parsoid=wt2html,wt2wt
 {{echo|#a}}
 {{echo|:a}}
 !!result
-<span about="#mwt1" typeof="mw:Object/Template">
+<span about="#mwt1" typeof="mw:Transclusion">
 </span><ul about="#mwt1"><li>a</li></ul>
-<span about="#mwt2" typeof="mw:Object/Template">
+<span about="#mwt2" typeof="mw:Transclusion">
 </span><ol about="#mwt2"><li>a</li></ol>
-<span about="#mwt3" typeof="mw:Object/Template">
+<span about="#mwt3" typeof="mw:Transclusion">
 </span><dl about="#mwt3"><dd>a</dd></dl>
 !!end
 
@@ -15077,7 +15077,7 @@ parsoid=wt2html,wt2wt
 <table>
 <tbody>
 <tr></tr>
-<tr typeof="mw:Object/Template">
+<tr typeof="mw:Transclusion">
 <td>foo</td></tr></tbody></table>
 !!end
 
diff --git a/tests/phpunit/AutoLoaderTest.php b/tests/phpunit/AutoLoaderTest.php
deleted file mode 100644 (file)
index e49ea6d..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-class AutoLoaderTest extends MediaWikiTestCase {
-
-       public function testAutoLoadConfig() {
-               $results = self::checkAutoLoadConf();
-
-               $this->assertEquals(
-                       $results['expected'],
-                       $results['actual']
-               );
-       }
-
-       protected static function checkAutoLoadConf() {
-               global $wgAutoloadLocalClasses, $wgAutoloadClasses, $IP;
-               $supportsParsekit = function_exists( 'parsekit_compile_file' );
-
-               // wgAutoloadLocalClasses has precedence, just like in includes/AutoLoader.php
-               $expected = $wgAutoloadLocalClasses + $wgAutoloadClasses;
-               $actual = array();
-
-               $files = array_unique( $expected );
-
-               foreach ( $files as $file ) {
-                       // Only prefix $IP if it doesn't have it already.
-                       // Generally local classes don't have it, and those from extensions and test suites do.
-                       if ( substr( $file, 0, 1 ) != '/' && substr( $file, 1, 1 ) != ':' ) {
-                               $filePath = "$IP/$file";
-                       } else {
-                               $filePath = $file;
-                       }
-                       if ( $supportsParsekit ) {
-                               $parseInfo = parsekit_compile_file( "$filePath" );
-                               $classes = array_keys( $parseInfo['class_table'] );
-                       } else {
-                               $contents = file_get_contents( "$filePath" );
-                               $m = array();
-                               preg_match_all( '/\n\s*(?:final)?\s*(?:abstract)?\s*(?:class|interface)\s+([a-zA-Z0-9_]+)/', $contents, $m, PREG_PATTERN_ORDER );
-                               $classes = $m[1];
-                       }
-                       foreach ( $classes as $class ) {
-                               $actual[$class] = $file;
-                       }
-               }
-
-               return array(
-                       'expected' => $expected,
-                       'actual' => $actual,
-               );
-       }
-}
diff --git a/tests/phpunit/StructureTest.php b/tests/phpunit/StructureTest.php
deleted file mode 100644 (file)
index a942098..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-/**
- * The tests here verify the structure of the code.  This is for outright bugs,
- * not just style issues.
- */
-
-class StructureTest extends MediaWikiTestCase {
-       /**
-        * Verify all files that appear to be tests have file names ending in
-        * Test.  If the file names do not end in Test, they will not be run.
-        * @group medium
-        */
-       public function testUnitTestFileNamesEndWithTest() {
-               if ( wfIsWindows() ) {
-                       $this->markTestSkipped( 'This test does not work on Windows' );
-               }
-               $rootPath = escapeshellarg( __DIR__ );
-               $testClassRegex = implode( '|', array(
-                       'ApiFormatTestBase',
-                       'ApiTestCase',
-                       'ApiQueryTestBase',
-                       'ApiQueryContinueTestBase',
-                       'MediaWikiLangTestCase',
-                       'MediaWikiTestCase',
-                       'PHPUnit_Framework_TestCase',
-                       'DumpTestCase',
-               ) );
-               $testClassRegex = "^class .* extends ($testClassRegex)";
-               $finder = "find $rootPath -name '*.php' '!' -name '*Test.php'" .
-                       " | xargs grep -El '$testClassRegex|function suite\('";
-
-               $results = null;
-               $exitCode = null;
-               exec( $finder, $results, $exitCode );
-
-               $this->assertEquals(
-                       0,
-                       $exitCode,
-                       'Verify find/grep command succeeds.'
-               );
-
-               $results = array_filter(
-                       $results,
-                       array( $this, 'filterSuites' )
-               );
-               $strip = strlen( $rootPath ) - 1;
-               foreach ( $results as $k => $v ) {
-                       $results[$k] = substr( $v, $strip );
-               }
-               $this->assertEquals(
-                       array(),
-                       $results,
-                       "Unit test file in $rootPath must end with Test."
-               );
-       }
-
-       /**
-        * Filter to remove testUnitTestFileNamesEndWithTest false positives.
-        */
-       public function filterSuites( $filename ) {
-               return strpos( $filename, __DIR__ . '/suites/' ) !== 0;
-       }
-}
index 68db9ad..fa228a6 100644 (file)
@@ -79,7 +79,12 @@ class ResourceLoaderTest extends MediaWikiTestCase {
                                'Regression fixed in r88706 with dotless names',
                                array( 'foo', 'bar', 'baz' ),
                                'foo,bar,baz',
-                       )
+                       ),
+                       array(
+                               'Prefixless modules after a prefixed module',
+                               array( 'single.module', 'foobar', 'foobaz' ),
+                               'single.module|foobar,foobaz',
+                       ),
                );
        }
 }
index d382f6f..1c6b733 100644 (file)
@@ -101,11 +101,19 @@ class WebRequestTest extends MediaWikiTestCase {
        /**
         * @dataProvider provideGetIP
         */
-       function testGetIP( $expected, $input, $squid, $private, $description ) {
+       function testGetIP( $expected, $input, $squid, $xffList, $private, $description ) {
                $_SERVER = $input;
                $this->setMwGlobals( array(
                        'wgSquidServersNoPurge' => $squid,
                        'wgUsePrivateIPs' => $private,
+                       'wgHooks' => array(
+                               'IsTrustedProxy' => array(
+                                       function( &$ip, &$trusted ) use ( $xffList ) {
+                                               $trusted = $trusted || in_array( $ip, $xffList );
+                                               return true;
+                                       }
+                               )
+                       )
                ) );
 
                $request = new WebRequest();
@@ -121,6 +129,7 @@ class WebRequestTest extends MediaWikiTestCase {
                                        'REMOTE_ADDR' => '127.0.0.1'
                                ),
                                array(),
+                               array(),
                                false,
                                'Simple IPv4'
                        ),
@@ -130,6 +139,7 @@ class WebRequestTest extends MediaWikiTestCase {
                                        'REMOTE_ADDR' => '::1'
                                ),
                                array(),
+                               array(),
                                false,
                                'Simple IPv6'
                        ),
@@ -140,6 +150,7 @@ class WebRequestTest extends MediaWikiTestCase {
                                        'HTTP_X_FORWARDED_FOR' => '12.0.0.3, 12.0.0.2'
                                ),
                                array( '12.0.0.1', '12.0.0.2' ),
+                               array(),
                                false,
                                'With X-Forwaded-For'
                        ),
@@ -150,6 +161,7 @@ class WebRequestTest extends MediaWikiTestCase {
                                        'HTTP_X_FORWARDED_FOR' => '12.0.0.3, 12.0.0.2'
                                ),
                                array(),
+                               array(),
                                false,
                                'With X-Forwaded-For and disallowed server'
                        ),
@@ -160,29 +172,87 @@ class WebRequestTest extends MediaWikiTestCase {
                                        'HTTP_X_FORWARDED_FOR' => '12.0.0.3, 12.0.0.2'
                                ),
                                array( '12.0.0.1' ),
+                               array(),
                                false,
                                'With multiple X-Forwaded-For and only one allowed server'
                        ),
                        array(
-                               '12.0.0.2',
+                               '10.0.0.3',
                                array(
                                        'REMOTE_ADDR' => '12.0.0.2',
-                                       'HTTP_X_FORWARDED_FOR' => '10.0.0.3, 12.0.0.2'
+                                       'HTTP_X_FORWARDED_FOR' => '10.0.0.4, 10.0.0.3, 12.0.0.2'
                                ),
                                array( '12.0.0.1', '12.0.0.2' ),
+                               array(),
                                false,
-                               'With X-Forwaded-For and private IP'
+                               'With X-Forwaded-For and private IP (from cache proxy)'
                        ),
                        array(
-                               '10.0.0.3',
+                               '10.0.0.4',
                                array(
                                        'REMOTE_ADDR' => '12.0.0.2',
-                                       'HTTP_X_FORWARDED_FOR' => '10.0.0.3, 12.0.0.2'
+                                       'HTTP_X_FORWARDED_FOR' => '10.0.0.4, 10.0.0.3, 12.0.0.2'
+                               ),
+                               array( '12.0.0.1', '12.0.0.2', '10.0.0.3' ),
+                               array(),
+                               true,
+                               'With X-Forwaded-For and private IP (allowed)'
+                       ),
+                       array(
+                               '10.0.0.4',
+                               array(
+                                       'REMOTE_ADDR' => '12.0.0.2',
+                                       'HTTP_X_FORWARDED_FOR' => '10.0.0.4, 10.0.0.3, 12.0.0.2'
                                ),
                                array( '12.0.0.1', '12.0.0.2' ),
+                               array( '10.0.0.3' ),
                                true,
                                'With X-Forwaded-For and private IP (allowed)'
                        ),
+                       array(
+                               '10.0.0.3',
+                               array(
+                                       'REMOTE_ADDR' => '12.0.0.2',
+                                       'HTTP_X_FORWARDED_FOR' => '10.0.0.4, 10.0.0.3, 12.0.0.2'
+                               ),
+                               array( '12.0.0.1', '12.0.0.2' ),
+                               array( '10.0.0.3' ),
+                               false,
+                               'With X-Forwaded-For and private IP (disallowed)'
+                       ),
+                       array(
+                               '12.0.0.3',
+                               array(
+                                       'REMOTE_ADDR' => '12.0.0.1',
+                                       'HTTP_X_FORWARDED_FOR' => '12.0.0.3, 12.0.0.2'
+                               ),
+                               array(),
+                               array( '12.0.0.1', '12.0.0.2' ),
+                               false,
+                               'With X-Forwaded-For'
+                       ),
+                       array(
+                               '12.0.0.2',
+                               array(
+                                       'REMOTE_ADDR' => '12.0.0.1',
+                                       'HTTP_X_FORWARDED_FOR' => '12.0.0.3, 12.0.0.2'
+                               ),
+                               array(),
+                               array( '12.0.0.1' ),
+                               false,
+                               'With multiple X-Forwaded-For and only one allowed server'
+                       ),
+                       array(
+                               '12.0.0.2',
+                               array(
+                                       'REMOTE_ADDR' => '12.0.0.2',
+                                       'HTTP_X_FORWARDED_FOR' => '10.0.0.3, 12.0.0.2'
+                               ),
+                               array(),
+                               array( '12.0.0.2' ),
+                               false,
+                               'With X-Forwaded-For and private IP and hook (disallowed)'
+                       ),
                );
        }
 
diff --git a/tests/phpunit/includes/installer/OracleInstallerTest.php b/tests/phpunit/includes/installer/OracleInstallerTest.php
new file mode 100644 (file)
index 0000000..7c37f98
--- /dev/null
@@ -0,0 +1,47 @@
+<?php
+
+/**
+ * Tests for OracleInstaller
+ *
+ * @group Database
+ * @group Installer
+ */
+
+class OracleInstallerTest extends MediaWikiTestCase {
+
+       /**
+        * @dataProvider provideOracleConnectStrings
+        */
+       function testCheckConnectStringFormat( $expected, $connectString, $msg = '' ) {
+               $validity = $expected ? 'should be valid' : 'should NOT be valid';
+               $msg = "'$connectString' ($msg) $validity.";
+               $this->assertEquals( $expected,
+                       OracleInstaller::checkConnectStringFormat( $connectString ),
+                       $msg
+               );
+       }
+
+       /**
+        * Provider to test OracleInstaller::checkConnectStringFormat()
+        */
+       function provideOracleConnectStrings() {
+               // expected result, connectString[, message]
+               return array(
+                       array( true, 'simple_01', 'Simple TNS name' ),
+                       array( true, 'simple_01.world', 'TNS name with domain' ),
+                       array( true, 'simple_01.domain.net', 'TNS name with domain' ),
+                       array( true, 'host123', 'Host only' ),
+                       array( true, 'host123.domain.net', 'FQDN only' ),
+                       array( true, '//host123.domain.net', 'FQDN URL only' ),
+                       array( true, '123.223.213.132', 'Host IP only' ),
+                       array( true, 'host:1521', 'Host and port' ),
+                       array( true, 'host:1521/service', 'Host, port and service' ),
+                       array( true, 'host:1521/service:shared', 'Host, port, service and shared server type' ),
+                       array( true, 'host:1521/service:dedicated', 'Host, port, service and dedicated server type' ),
+                       array( true, 'host:1521/service:pooled', 'Host, port, service and pooled server type' ),
+                       array( true, 'host:1521/service:shared/instance1', 'Host, port, service, server type and instance' ),
+                       array( true, 'host:1521//instance1', 'Host, port and instance' ),
+               );
+       }
+
+}
diff --git a/tests/phpunit/includes/upload/UploadBaseTest.php b/tests/phpunit/includes/upload/UploadBaseTest.php
new file mode 100644 (file)
index 0000000..298420b
--- /dev/null
@@ -0,0 +1,144 @@
+<?php
+/**
+ * @group Upload
+ */
+class UploadBaseTest extends MediaWikiTestCase {
+       protected $upload;
+
+
+       protected function setUp() {
+               global $wgHooks;
+               parent::setUp();
+
+               $this->upload = new UploadTestHandler;
+               $this->hooks = $wgHooks;
+               $wgHooks['InterwikiLoadPrefix'][] = function ( $prefix, &$data ) {
+                       return false;
+               };
+       }
+
+       protected function tearDown() {
+               global $wgHooks;
+               $wgHooks = $this->hooks;
+
+               parent::tearDown();
+       }
+
+
+       /**
+        * First checks the return code
+        * of UploadBase::getTitle() and then the actual returned title
+        *
+        * @dataProvider provideTestTitleValidation
+        */
+       public function testTitleValidation( $srcFilename, $dstFilename, $code, $msg ) {
+               /* Check the result code */
+               $this->assertEquals( $code,
+                       $this->upload->testTitleValidation( $srcFilename ),
+                       "$msg code" );
+
+               /* If we expect a valid title, check the title itself. */
+               if ( $code == UploadBase::OK ) {
+                       $this->assertEquals( $dstFilename,
+                               $this->upload->getTitle()->getText(),
+                               "$msg text" );
+               }
+       }
+
+       /**
+        * Test various forms of valid and invalid titles that can be supplied.
+        */
+       public static function provideTestTitleValidation() {
+               return array(
+                       /* Test a valid title */
+                       array( 'ValidTitle.jpg', 'ValidTitle.jpg', UploadBase::OK,
+                               'upload valid title' ),
+                       /* A title with a slash */
+                       array( 'A/B.jpg', 'B.jpg', UploadBase::OK,
+                               'upload title with slash' ),
+                       /* A title with illegal char */
+                       array( 'A:B.jpg', 'A-B.jpg', UploadBase::OK,
+                               'upload title with colon' ),
+                       /* Stripping leading File: prefix */
+                       array( 'File:C.jpg', 'C.jpg', UploadBase::OK,
+                               'upload title with File prefix' ),
+                       /* Test illegal suggested title (r94601) */
+                       array( '%281%29.JPG', null, UploadBase::ILLEGAL_FILENAME,
+                               'illegal title for upload' ),
+                       /* A title without extension */
+                       array( 'A', null, UploadBase::FILETYPE_MISSING,
+                               'upload title without extension' ),
+                       /* A title with no basename */
+                       array( '.jpg', null, UploadBase::MIN_LENGTH_PARTNAME,
+                               'upload title without basename' ),
+                       /* A title that is longer than 255 bytes */
+                       array( str_repeat( 'a', 255 ) . '.jpg', null, UploadBase::FILENAME_TOO_LONG,
+                               'upload title longer than 255 bytes' ),
+                       /* A title that is longer than 240 bytes */
+                       array( str_repeat( 'a', 240 ) . '.jpg', null, UploadBase::FILENAME_TOO_LONG,
+                               'upload title longer than 240 bytes' ),
+               );
+       }
+
+       /**
+        * Test the upload verification functions
+        */
+       public function testVerifyUpload() {
+               /* Setup with zero file size */
+               $this->upload->initializePathInfo( '', '', 0 );
+               $result = $this->upload->verifyUpload();
+               $this->assertEquals( UploadBase::EMPTY_FILE,
+                       $result['status'],
+                       'upload empty file' );
+       }
+
+       // Helper used to create an empty file of size $size.
+       private function createFileOfSize( $size ) {
+               $filename = tempnam( wfTempDir(), "mwuploadtest" );
+
+               $fh = fopen( $filename, 'w' );
+               ftruncate( $fh, $size );
+               fclose( $fh );
+
+               return $filename;
+       }
+
+       /**
+        * test uploading a 100 bytes file with $wgMaxUploadSize = 100
+        *
+        * This method should be abstracted so we can test different settings.
+        */
+
+       public function testMaxUploadSize() {
+               global $wgMaxUploadSize;
+               $savedGlobal = $wgMaxUploadSize; // save global
+               global $wgFileExtensions;
+               $wgFileExtensions[] = 'txt';
+
+               $wgMaxUploadSize = 100;
+
+               $filename = $this->createFileOfSize( $wgMaxUploadSize );
+               $this->upload->initializePathInfo( basename( $filename ) . '.txt', $filename, 100 );
+               $result = $this->upload->verifyUpload();
+               unlink( $filename );
+
+               $this->assertEquals(
+                       array( 'status' => UploadBase::OK ), $result );
+
+               $wgMaxUploadSize = $savedGlobal; // restore global
+       }
+}
+
+class UploadTestHandler extends UploadBase {
+       public function initializeFromRequest( &$request ) {
+       }
+
+       public function testTitleValidation( $name ) {
+               $this->mTitle = false;
+               $this->mDesiredDestName = $name;
+               $this->mTitleError = UploadBase::OK;
+               $this->getTitle();
+
+               return $this->mTitleError;
+       }
+}
diff --git a/tests/phpunit/includes/upload/UploadTest.php b/tests/phpunit/includes/upload/UploadTest.php
deleted file mode 100644 (file)
index 94c78dc..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-<?php
-/**
- * @group Upload
- */
-class UploadTest extends MediaWikiTestCase {
-       protected $upload;
-
-
-       protected function setUp() {
-               global $wgHooks;
-               parent::setUp();
-
-               $this->upload = new UploadTestHandler;
-               $this->hooks = $wgHooks;
-               $wgHooks['InterwikiLoadPrefix'][] = function ( $prefix, &$data ) {
-                       return false;
-               };
-       }
-
-       protected function tearDown() {
-               global $wgHooks;
-               $wgHooks = $this->hooks;
-
-               parent::tearDown();
-       }
-
-
-       /**
-        * First checks the return code
-        * of UploadBase::getTitle() and then the actual returned title
-        *
-        * @dataProvider provideTestTitleValidation
-        */
-       public function testTitleValidation( $srcFilename, $dstFilename, $code, $msg ) {
-               /* Check the result code */
-               $this->assertEquals( $code,
-                       $this->upload->testTitleValidation( $srcFilename ),
-                       "$msg code" );
-
-               /* If we expect a valid title, check the title itself. */
-               if ( $code == UploadBase::OK ) {
-                       $this->assertEquals( $dstFilename,
-                               $this->upload->getTitle()->getText(),
-                               "$msg text" );
-               }
-       }
-
-       /**
-        * Test various forms of valid and invalid titles that can be supplied.
-        */
-       public static function provideTestTitleValidation() {
-               return array(
-                       /* Test a valid title */
-                       array( 'ValidTitle.jpg', 'ValidTitle.jpg', UploadBase::OK,
-                               'upload valid title' ),
-                       /* A title with a slash */
-                       array( 'A/B.jpg', 'B.jpg', UploadBase::OK,
-                               'upload title with slash' ),
-                       /* A title with illegal char */
-                       array( 'A:B.jpg', 'A-B.jpg', UploadBase::OK,
-                               'upload title with colon' ),
-                       /* Stripping leading File: prefix */
-                       array( 'File:C.jpg', 'C.jpg', UploadBase::OK,
-                               'upload title with File prefix' ),
-                       /* Test illegal suggested title (r94601) */
-                       array( '%281%29.JPG', null, UploadBase::ILLEGAL_FILENAME,
-                               'illegal title for upload' ),
-                       /* A title without extension */
-                       array( 'A', null, UploadBase::FILETYPE_MISSING,
-                               'upload title without extension' ),
-                       /* A title with no basename */
-                       array( '.jpg', null, UploadBase::MIN_LENGTH_PARTNAME,
-                               'upload title without basename' ),
-                       /* A title that is longer than 255 bytes */
-                       array( str_repeat( 'a', 255 ) . '.jpg', null, UploadBase::FILENAME_TOO_LONG,
-                               'upload title longer than 255 bytes' ),
-                       /* A title that is longer than 240 bytes */
-                       array( str_repeat( 'a', 240 ) . '.jpg', null, UploadBase::FILENAME_TOO_LONG,
-                               'upload title longer than 240 bytes' ),
-               );
-       }
-
-       /**
-        * Test the upload verification functions
-        */
-       public function testVerifyUpload() {
-               /* Setup with zero file size */
-               $this->upload->initializePathInfo( '', '', 0 );
-               $result = $this->upload->verifyUpload();
-               $this->assertEquals( UploadBase::EMPTY_FILE,
-                       $result['status'],
-                       'upload empty file' );
-       }
-
-       // Helper used to create an empty file of size $size.
-       private function createFileOfSize( $size ) {
-               $filename = tempnam( wfTempDir(), "mwuploadtest" );
-
-               $fh = fopen( $filename, 'w' );
-               ftruncate( $fh, $size );
-               fclose( $fh );
-
-               return $filename;
-       }
-
-       /**
-        * test uploading a 100 bytes file with $wgMaxUploadSize = 100
-        *
-        * This method should be abstracted so we can test different settings.
-        */
-
-       public function testMaxUploadSize() {
-               global $wgMaxUploadSize;
-               $savedGlobal = $wgMaxUploadSize; // save global
-               global $wgFileExtensions;
-               $wgFileExtensions[] = 'txt';
-
-               $wgMaxUploadSize = 100;
-
-               $filename = $this->createFileOfSize( $wgMaxUploadSize );
-               $this->upload->initializePathInfo( basename( $filename ) . '.txt', $filename, 100 );
-               $result = $this->upload->verifyUpload();
-               unlink( $filename );
-
-               $this->assertEquals(
-                       array( 'status' => UploadBase::OK ), $result );
-
-               $wgMaxUploadSize = $savedGlobal; // restore global
-       }
-}
-
-class UploadTestHandler extends UploadBase {
-       public function initializeFromRequest( &$request ) {
-       }
-
-       public function testTitleValidation( $name ) {
-               $this->mTitle = false;
-               $this->mDesiredDestName = $name;
-               $this->mTitleError = UploadBase::OK;
-               $this->getTitle();
-
-               return $this->mTitleError;
-       }
-}
index 7a22bd4..deef745 100755 (executable)
@@ -33,6 +33,9 @@ class PHPUnitMaintClass extends Maintenance {
                global $wgLocaltimezone, $wgLocalisationCacheConf;
                global $wgDevelopmentWarnings;
 
+               // Inject test autoloader
+               require_once __DIR__ . '/../TestsAutoLoader.php';
+
                // wfWarn should cause tests to fail
                $wgDevelopmentWarnings = true;
 
@@ -108,6 +111,4 @@ if ( PHPUnit_Runner_Version::id() !== '@package_version@'
        die( 'PHPUnit 3.6.7 or later required, you have ' . PHPUnit_Runner_Version::id() . ".\n" );
 }
 require_once 'PHPUnit/Autoload.php';
-
-require_once "$IP/tests/TestsAutoLoader.php";
 MediaWikiPHPUnitCommand::main();
diff --git a/tests/phpunit/resources/ResourcesTest.php b/tests/phpunit/resources/ResourcesTest.php
deleted file mode 100644 (file)
index 3af805a..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-/**
- * Sanity checks for making sure registered resources are sane.
- *
- * @file
- * @author Niklas Laxström, 2012
- * @author Antoine Musso, 2012
- * @author Santhosh Thottingal, 2012
- * @author Timo Tijhof, 2012
- * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
- */
-class ResourcesTest extends MediaWikiTestCase {
-
-       /**
-        * @dataProvider provideResourceFiles
-        */
-       public function testFileExistence( $filename, $module, $resource ) {
-               $this->assertFileExists( $filename,
-                       "File '$resource' referenced by '$module' must exist."
-               );
-       }
-
-       /**
-        * This ask the ResouceLoader for all registered files from modules
-        * created by ResourceLoaderFileModule (or one of its descendants).
-        *
-        *
-        * Since the raw data is stored in protected properties, we have to
-        * overrride this through ReflectionObject methods.
-        */
-       public static function provideResourceFiles() {
-               global $wgEnableJavaScriptTest;
-
-               // Test existance of test suite files as well
-               // (can't use setUp or setMwGlobals because providers are static)
-               $live_wgEnableJavaScriptTest = $wgEnableJavaScriptTest;
-               $wgEnableJavaScriptTest = true;
-
-               // Array with arguments for the test function
-               $cases = array();
-
-               // Initialize ResourceLoader
-               $rl = new ResourceLoader();
-
-               // See also ResourceLoaderFileModule::__construct
-               $filePathProps = array(
-                       // Lists of file paths
-                       'lists' => array(
-                               'scripts',
-                               'debugScripts',
-                               'loaderScripts',
-                               'styles',
-                       ),
-
-                       // Collated lists of file paths
-                       'nested-lists' => array(
-                               'languageScripts',
-                               'skinScripts',
-                               'skinStyles',
-                       ),
-               );
-
-               foreach ( $rl->getModuleNames() as $moduleName ) {
-                       $module = $rl->getModule( $moduleName );
-                       if ( !$module instanceof ResourceLoaderFileModule ) {
-                               continue;
-                       }
-
-                       $reflectedModule = new ReflectionObject( $module );
-
-                       $files = array();
-
-                       foreach ( $filePathProps['lists'] as $propName ) {
-                               $property = $reflectedModule->getProperty( $propName );
-                               $property->setAccessible( true );
-                               $list = $property->getValue( $module );
-                               foreach ( $list as $key => $value ) {
-                                       // 'scripts' are numeral arrays.
-                                       // 'styles' can be numeral or associative.
-                                       // In case of associative the key is the file path
-                                       // and the value is the 'media' attribute.
-                                       if ( is_int( $key ) ) {
-                                               $files[] = $value;
-                                       } else {
-                                               $files[] = $key;
-                                       }
-                               }
-                       }
-
-                       foreach ( $filePathProps['nested-lists'] as $propName ) {
-                               $property = $reflectedModule->getProperty( $propName );
-                               $property->setAccessible( true );
-                               $lists = $property->getValue( $module );
-                               foreach ( $lists as $list ) {
-                                       foreach ( $list as $key => $value ) {
-                                               // We need the same filter as for 'lists',
-                                               // due to 'skinStyles'.
-                                               if ( is_int( $key ) ) {
-                                                       $files[] = $value;
-                                               } else {
-                                                       $files[] = $key;
-                                               }
-                                       }
-                               }
-                       }
-
-                       // Get method for resolving the paths to full paths
-                       $method = $reflectedModule->getMethod( 'getLocalPath' );
-                       $method->setAccessible( true );
-
-                       // Populate cases
-                       foreach ( $files as $file ) {
-                               $cases[] = array(
-                                       $method->invoke( $module, $file ),
-                                       $module->getName(),
-                                       $file,
-                               );
-                       }
-               }
-
-               // Restore settings
-               $wgEnableJavaScriptTest = $live_wgEnableJavaScriptTest;
-
-               return $cases;
-       }
-}
diff --git a/tests/phpunit/structure/AutoLoaderTest.php b/tests/phpunit/structure/AutoLoaderTest.php
new file mode 100644 (file)
index 0000000..e49ea6d
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+class AutoLoaderTest extends MediaWikiTestCase {
+
+       public function testAutoLoadConfig() {
+               $results = self::checkAutoLoadConf();
+
+               $this->assertEquals(
+                       $results['expected'],
+                       $results['actual']
+               );
+       }
+
+       protected static function checkAutoLoadConf() {
+               global $wgAutoloadLocalClasses, $wgAutoloadClasses, $IP;
+               $supportsParsekit = function_exists( 'parsekit_compile_file' );
+
+               // wgAutoloadLocalClasses has precedence, just like in includes/AutoLoader.php
+               $expected = $wgAutoloadLocalClasses + $wgAutoloadClasses;
+               $actual = array();
+
+               $files = array_unique( $expected );
+
+               foreach ( $files as $file ) {
+                       // Only prefix $IP if it doesn't have it already.
+                       // Generally local classes don't have it, and those from extensions and test suites do.
+                       if ( substr( $file, 0, 1 ) != '/' && substr( $file, 1, 1 ) != ':' ) {
+                               $filePath = "$IP/$file";
+                       } else {
+                               $filePath = $file;
+                       }
+                       if ( $supportsParsekit ) {
+                               $parseInfo = parsekit_compile_file( "$filePath" );
+                               $classes = array_keys( $parseInfo['class_table'] );
+                       } else {
+                               $contents = file_get_contents( "$filePath" );
+                               $m = array();
+                               preg_match_all( '/\n\s*(?:final)?\s*(?:abstract)?\s*(?:class|interface)\s+([a-zA-Z0-9_]+)/', $contents, $m, PREG_PATTERN_ORDER );
+                               $classes = $m[1];
+                       }
+                       foreach ( $classes as $class ) {
+                               $actual[$class] = $file;
+                       }
+               }
+
+               return array(
+                       'expected' => $expected,
+                       'actual' => $actual,
+               );
+       }
+}
diff --git a/tests/phpunit/structure/ResourcesTest.php b/tests/phpunit/structure/ResourcesTest.php
new file mode 100644 (file)
index 0000000..3af805a
--- /dev/null
@@ -0,0 +1,126 @@
+<?php
+/**
+ * Sanity checks for making sure registered resources are sane.
+ *
+ * @file
+ * @author Niklas Laxström, 2012
+ * @author Antoine Musso, 2012
+ * @author Santhosh Thottingal, 2012
+ * @author Timo Tijhof, 2012
+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
+ */
+class ResourcesTest extends MediaWikiTestCase {
+
+       /**
+        * @dataProvider provideResourceFiles
+        */
+       public function testFileExistence( $filename, $module, $resource ) {
+               $this->assertFileExists( $filename,
+                       "File '$resource' referenced by '$module' must exist."
+               );
+       }
+
+       /**
+        * This ask the ResouceLoader for all registered files from modules
+        * created by ResourceLoaderFileModule (or one of its descendants).
+        *
+        *
+        * Since the raw data is stored in protected properties, we have to
+        * overrride this through ReflectionObject methods.
+        */
+       public static function provideResourceFiles() {
+               global $wgEnableJavaScriptTest;
+
+               // Test existance of test suite files as well
+               // (can't use setUp or setMwGlobals because providers are static)
+               $live_wgEnableJavaScriptTest = $wgEnableJavaScriptTest;
+               $wgEnableJavaScriptTest = true;
+
+               // Array with arguments for the test function
+               $cases = array();
+
+               // Initialize ResourceLoader
+               $rl = new ResourceLoader();
+
+               // See also ResourceLoaderFileModule::__construct
+               $filePathProps = array(
+                       // Lists of file paths
+                       'lists' => array(
+                               'scripts',
+                               'debugScripts',
+                               'loaderScripts',
+                               'styles',
+                       ),
+
+                       // Collated lists of file paths
+                       'nested-lists' => array(
+                               'languageScripts',
+                               'skinScripts',
+                               'skinStyles',
+                       ),
+               );
+
+               foreach ( $rl->getModuleNames() as $moduleName ) {
+                       $module = $rl->getModule( $moduleName );
+                       if ( !$module instanceof ResourceLoaderFileModule ) {
+                               continue;
+                       }
+
+                       $reflectedModule = new ReflectionObject( $module );
+
+                       $files = array();
+
+                       foreach ( $filePathProps['lists'] as $propName ) {
+                               $property = $reflectedModule->getProperty( $propName );
+                               $property->setAccessible( true );
+                               $list = $property->getValue( $module );
+                               foreach ( $list as $key => $value ) {
+                                       // 'scripts' are numeral arrays.
+                                       // 'styles' can be numeral or associative.
+                                       // In case of associative the key is the file path
+                                       // and the value is the 'media' attribute.
+                                       if ( is_int( $key ) ) {
+                                               $files[] = $value;
+                                       } else {
+                                               $files[] = $key;
+                                       }
+                               }
+                       }
+
+                       foreach ( $filePathProps['nested-lists'] as $propName ) {
+                               $property = $reflectedModule->getProperty( $propName );
+                               $property->setAccessible( true );
+                               $lists = $property->getValue( $module );
+                               foreach ( $lists as $list ) {
+                                       foreach ( $list as $key => $value ) {
+                                               // We need the same filter as for 'lists',
+                                               // due to 'skinStyles'.
+                                               if ( is_int( $key ) ) {
+                                                       $files[] = $value;
+                                               } else {
+                                                       $files[] = $key;
+                                               }
+                                       }
+                               }
+                       }
+
+                       // Get method for resolving the paths to full paths
+                       $method = $reflectedModule->getMethod( 'getLocalPath' );
+                       $method->setAccessible( true );
+
+                       // Populate cases
+                       foreach ( $files as $file ) {
+                               $cases[] = array(
+                                       $method->invoke( $module, $file ),
+                                       $module->getName(),
+                                       $file,
+                               );
+                       }
+               }
+
+               // Restore settings
+               $wgEnableJavaScriptTest = $live_wgEnableJavaScriptTest;
+
+               return $cases;
+       }
+}
diff --git a/tests/phpunit/structure/StructureTest.php b/tests/phpunit/structure/StructureTest.php
new file mode 100644 (file)
index 0000000..df00d4d
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+/**
+ * The tests here verify the structure of the code.  This is for outright bugs,
+ * not just style issues.
+ */
+
+class StructureTest extends MediaWikiTestCase {
+       /**
+        * Verify all files that appear to be tests have file names ending in
+        * Test.  If the file names do not end in Test, they will not be run.
+        * @group medium
+        */
+       public function testUnitTestFileNamesEndWithTest() {
+               if ( wfIsWindows() ) {
+                       $this->markTestSkipped( 'This test does not work on Windows' );
+               }
+               $rootPath = escapeshellarg( __DIR__ . '/..' );
+               $testClassRegex = implode( '|', array(
+                       'ApiFormatTestBase',
+                       'ApiTestCase',
+                       'ApiQueryTestBase',
+                       'ApiQueryContinueTestBase',
+                       'MediaWikiLangTestCase',
+                       'MediaWikiTestCase',
+                       'PHPUnit_Framework_TestCase',
+                       'DumpTestCase',
+               ) );
+               $testClassRegex = "^class .* extends ($testClassRegex)";
+               $finder = "find $rootPath -name '*.php' '!' -name '*Test.php'" .
+                       " | xargs grep -El '$testClassRegex|function suite\('";
+
+               $results = null;
+               $exitCode = null;
+               exec( $finder, $results, $exitCode );
+
+               $this->assertEquals(
+                       0,
+                       $exitCode,
+                       'Verify find/grep command succeeds.'
+               );
+
+               $results = array_filter(
+                       $results,
+                       array( $this, 'filterSuites' )
+               );
+               $strip = strlen( $rootPath ) - 1;
+               foreach ( $results as $k => $v ) {
+                       $results[$k] = substr( $v, $strip );
+               }
+               $this->assertEquals(
+                       array(),
+                       $results,
+                       "Unit test file in $rootPath must end with Test."
+               );
+       }
+
+       /**
+        * Filter to remove testUnitTestFileNamesEndWithTest false positives.
+        */
+       public function filterSuites( $filename ) {
+               return strpos( $filename, __DIR__ . '/../suites/' ) !== 0;
+       }
+}
index 56f6447..844c853 100644 (file)
@@ -29,7 +29,7 @@
                        <directory>maintenance</directory>
                </testsuite>
                <testsuite name="structure">
-                       <file>StructureTest.php</file>
+                       <directory>structure</directory>
                </testsuite>
                <testsuite name="uploadfromurl">
                        <file>suites/UploadFromUrlTestSuite.php</file>