Merge "Some phpcs-strict changes on includes/revisiondelete/"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 17 Jun 2014 19:22:57 +0000 (19:22 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 17 Jun 2014 19:22:57 +0000 (19:22 +0000)
258 files changed:
HISTORY
RELEASE-NOTES-1.23 [deleted file]
RELEASE-NOTES-1.24
docs/hooks.txt
includes/AutoLoader.php
includes/DefaultSettings.php
includes/Defines.php
includes/EditPage.php
includes/MimeMagic.php
includes/OutputPage.php
includes/PrefixSearch.php
includes/ProtectionForm.php
includes/Sanitizer.php
includes/Skin.php
includes/WebRequest.php
includes/WikiPage.php
includes/api/ApiBase.php
includes/api/ApiCreateAccount.php
includes/api/ApiEditPage.php
includes/api/ApiFeedContributions.php
includes/api/ApiFeedRecentChanges.php
includes/api/ApiFeedWatchlist.php
includes/api/ApiFormatBase.php
includes/api/ApiImport.php
includes/api/ApiLogin.php
includes/api/ApiMain.php
includes/api/ApiOpenSearch.php
includes/api/ApiParse.php
includes/api/ApiProtect.php
includes/api/ApiPurge.php
includes/api/ApiQuery.php
includes/api/ApiQueryAllImages.php
includes/api/ApiQueryAllMessages.php
includes/api/ApiQueryAllPages.php
includes/api/ApiQueryAllUsers.php
includes/api/ApiQueryBase.php
includes/api/ApiQueryBlocks.php
includes/api/ApiQueryCategoryMembers.php
includes/api/ApiQueryExtLinksUsage.php
includes/api/ApiQueryImageInfo.php
includes/api/ApiQueryInfo.php
includes/api/ApiQueryLogEvents.php
includes/api/ApiQueryProtectedTitles.php
includes/api/ApiQueryQueryPage.php
includes/api/ApiQueryRecentChanges.php
includes/api/ApiQueryRevisions.php
includes/api/ApiQuerySearch.php
includes/api/ApiQuerySiteinfo.php
includes/api/ApiQueryUserContributions.php
includes/api/ApiQueryUserInfo.php
includes/api/ApiQueryWatchlist.php
includes/api/ApiResult.php
includes/api/ApiUpload.php
includes/changes/ChangesList.php
includes/changes/EnhancedChangesList.php
includes/changes/OldChangesList.php
includes/changes/RCCacheEntryFactory.php
includes/changes/RecentChange.php
includes/db/DatabaseOracle.php
includes/db/LBFactory.php
includes/db/LBFactoryMulti.php
includes/db/LoadBalancer.php
includes/filebackend/FSFileBackend.php
includes/installer/i18n/ce.json
includes/installer/i18n/es.json
includes/installer/i18n/id.json
includes/installer/i18n/ka.json
includes/installer/i18n/pt-br.json
includes/media/SVG.php
includes/rcfeed/MachineReadableRCFeedFormatter.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderFileModule.php
includes/resourceloader/ResourceLoaderModule.php
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/specialpage/ChangesListSpecialPage.php
includes/specialpage/SpecialPage.php
includes/specials/SpecialAllMessages.php [new file with mode: 0644]
includes/specials/SpecialAllPages.php [new file with mode: 0644]
includes/specials/SpecialAllmessages.php [deleted file]
includes/specials/SpecialAllpages.php [deleted file]
includes/specials/SpecialEditWatchlist.php
includes/specials/SpecialLog.php
includes/specials/SpecialMostlinkedtemplates.php
includes/specials/SpecialPrefixindex.php
includes/specials/SpecialSearch.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialWatchlist.php
includes/utils/MWCryptRand.php
languages/i18n/af.json
languages/i18n/am.json
languages/i18n/ang.json
languages/i18n/ar.json
languages/i18n/arc.json
languages/i18n/arz.json
languages/i18n/as.json
languages/i18n/ast.json
languages/i18n/az.json
languages/i18n/azb.json
languages/i18n/bcc.json
languages/i18n/bcl.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bg.json
languages/i18n/bn.json
languages/i18n/br.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/co.json
languages/i18n/crh-cyrl.json
languages/i18n/crh-latn.json
languages/i18n/cs.json
languages/i18n/cy.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/dsb.json
languages/i18n/egl.json
languages/i18n/el.json
languages/i18n/en.json
languages/i18n/eo.json
languages/i18n/es.json
languages/i18n/et.json
languages/i18n/eu.json
languages/i18n/fa.json
languages/i18n/fi.json
languages/i18n/fo.json
languages/i18n/fr.json
languages/i18n/frr.json
languages/i18n/gd.json
languages/i18n/gl.json
languages/i18n/gsw.json
languages/i18n/gu.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hr.json
languages/i18n/hrx.json
languages/i18n/hsb.json
languages/i18n/hu.json
languages/i18n/hy.json
languages/i18n/ia.json
languages/i18n/id.json
languages/i18n/ilo.json
languages/i18n/is.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/jv.json
languages/i18n/ka.json
languages/i18n/kab.json
languages/i18n/kk-cyrl.json
languages/i18n/km.json
languages/i18n/ko.json
languages/i18n/krc.json
languages/i18n/ksh.json
languages/i18n/la.json
languages/i18n/lb.json
languages/i18n/lmo.json
languages/i18n/lrc.json
languages/i18n/lv.json
languages/i18n/mg.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/mn.json
languages/i18n/mr.json
languages/i18n/ms.json
languages/i18n/mt.json
languages/i18n/myv.json
languages/i18n/nb.json
languages/i18n/nds-nl.json
languages/i18n/nds.json
languages/i18n/ne.json
languages/i18n/nl.json
languages/i18n/nn.json
languages/i18n/oc.json
languages/i18n/pl.json
languages/i18n/pms.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/qu.json
languages/i18n/rm.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/sah.json
languages/i18n/sc.json
languages/i18n/scn.json
languages/i18n/sco.json
languages/i18n/sh.json
languages/i18n/sk.json
languages/i18n/sl.json
languages/i18n/so.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/sv.json
languages/i18n/te.json
languages/i18n/th.json
languages/i18n/tr.json
languages/i18n/tt-cyrl.json
languages/i18n/tyv.json
languages/i18n/ug-arab.json
languages/i18n/uk.json
languages/i18n/ur.json
languages/i18n/uz.json
languages/i18n/vec.json
languages/i18n/vi.json
languages/i18n/war.json
languages/i18n/yi.json
languages/i18n/yo.json
languages/i18n/yue.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/messages/MessagesEn.php
maintenance/deleteEqualMessages.php
maintenance/dev/includes/php.sh
maintenance/language/listVariants.php [new file with mode: 0644]
resources/Resources.php
resources/lib/jquery/jquery.jStorage.js
resources/lib/oojs-ui/i18n/bs.json
resources/lib/oojs-ui/i18n/hu.json
resources/lib/oojs-ui/images/indicators/arrow-down.png [new file with mode: 0644]
resources/lib/oojs-ui/images/indicators/arrow-down.svg [new file with mode: 0644]
resources/lib/oojs-ui/images/indicators/arrow-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/images/indicators/arrow-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/images/indicators/arrow-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/images/indicators/arrow-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/images/indicators/arrow-up.png [new file with mode: 0644]
resources/lib/oojs-ui/images/indicators/arrow-up.svg [new file with mode: 0644]
resources/lib/oojs-ui/images/indicators/down.png [deleted file]
resources/lib/oojs-ui/images/indicators/down.svg [deleted file]
resources/lib/oojs-ui/images/indicators/up.png [deleted file]
resources/lib/oojs-ui/images/indicators/up.svg [deleted file]
resources/lib/oojs-ui/oojs-ui-apex.css
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/oojs-ui.svg.css
resources/src/mediawiki.action/mediawiki.action.history.css [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.history.js
resources/src/mediawiki.less/mediawiki.mixins.less
resources/src/mediawiki.skinning/content.parsoid.less
resources/src/mediawiki.ui/settings/colors.less
resources/src/mediawiki.ui/vector.less
resources/src/mediawiki/mediawiki.js
skins/vector/Vector.php
skins/vector/variables.less
tests/phpunit/ResourceLoaderTestCase.php
tests/phpunit/data/media/Bishzilla_blink.gif [new file with mode: 0644]
tests/phpunit/data/media/README
tests/phpunit/data/media/Soccer_ball_animated.svg [new file with mode: 0644]
tests/phpunit/includes/api/ApiMainTest.php
tests/phpunit/includes/filerepo/files/FileTest.php [new file with mode: 0644]
tests/phpunit/includes/media/MediaWikiMediaTestCase.php
tests/phpunit/includes/media/SVGMetadataExtractorTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderStartupModuleTest.php
tests/qunit/data/load.mock.php
tests/qunit/suites/resources/mediawiki/mediawiki.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js

diff --git a/HISTORY b/HISTORY
index 12532db..8ba1a4b 100644 (file)
--- a/HISTORY
+++ b/HISTORY
@@ -1,5 +1,474 @@
 Change notes from older releases. For current info see RELEASE-NOTES-1.24.
 
+== MediaWiki 1.23 ==
+
+=== Configuration changes in 1.23 ===
+* (bug 13250) Restored method for clearing a watchlist in web UI
+  so that users with large watchlists don't have to perform
+  contortions to clear them.
+* When $wgJobRunRate is higher than zero, jobs are now executed via an
+  asynchronous HTTP request to a MediaWiki entry point. This may require
+  increasing the number of server worker threads. $wgRunJobsAsync has been
+  added to disable this feature if needed, falling back to executing the job
+  on the same process but making the execution synchronously.
+* $wgDebugLogGroups values may be set to an associative array with a
+  'destination' key specifying the log destination. The array may also contain
+  a 'sample' key with a positive integer value N indicating that the log group
+  should be sampled by dispatching one in every N messages on average. The
+  sampling is random.
+* In addition to the current exception log format, MediaWiki now serializes
+  exception metadata to JSON and logs it to the 'exception-json' log group.
+  This makes MediaWiki easier to integrate with log aggregation and analysis
+  tools.
+* $wgSquidServersNoPurge now supports the use of Classless Inter-Domain
+  Routing (CIDR) notation to specify contiguous blocks of IPv4 and/or IPv6
+  addresses that should be trusted to provide X-Forwarded-For headers.
+* Preferences 'watchcreations', 'watchdefault', 'enotifwatchlistpages' ("Add
+  pages I create and files I upload to my watchlist", "Add pages and files I
+  edit to my watchlist", "Email me when a page or file on my watchlist is
+  changed") are now enabled by default. In addition new user accounts' personal
+  and talk pages are now watched by them by default.
+* $wgLBFactoryConf: Class names have had underscores removed. The configuration
+  should be updated if LBFactory_Simple or LBFactory_Multi is configured.
+* $wgPasswordSenderName has been removed and is no longer functional. To set a
+  custom mailer name, the system message 'emailsender' should be modified
+  (default: "{{SITENAME}}").
+* (bug 63269) Email notifications were not correctly handling the
+  [[MediaWiki:Helppage]] message being set to a full URL (the default).
+  If you customized [[MediaWiki:Enotif body]] (the text of email notifications),
+  you'll need to edit it locally to include the URL via the new variable
+  $HELPPAGE instead of the parser functions fullurl and canonicalurl; otherwise
+  you don't have to do anything.
+* $wgDBAhandler was removed as the only class using it was also removed
+* The 'max threads' setting was removed from $wgDBservers.
+* Support for AdminSettings.php has been completely removed. All configuration
+  belongs in LocalSettings.php.
+* $wgSkipSkin, which has been replaceable by $wgSkipSkins since 2005 (r9249), is
+  now formally deprecated.
+* Removed deprecated $wgDisabledActions as it is hardly used anywhere.
+* $wgRateLimitLog has been deprecated and replaced by
+  $wgDebugLogGroup['ratelimit'].
+* $wgLocalInterwikis is an array containing multiple local interwiki prefixes
+  (interwiki prefixes that point back to the current wiki). This effectively
+  allows more than one value of $wgLocalInterwiki to be specified and
+  understood by the parser. The value of $wgLocalInterwiki is automatically
+  prepended to the start of this array.
+* $wgQueryPages has been removed. Query Pages should be added to by using the
+  wgQueryPages hook.
+* $wgHttpOnlyBlacklist has been removed.
+* $wgLicenseTerms has been removed as it was unused.
+* $wgProfileOnly is now deprecated; set the log file in
+  $wgDebugLogGroups['profileoutput'] to replace it.
+* $wgMaxBacklinksInvalidate was removed; use $wgJobBackoffThrottling instead
+* Deprecated ResourceLoaderGetStartupModules hook.
+
+=== New features in 1.23 ===
+* ResourceLoader can utilize the Web Storage API to cache modules client-side.
+  Compared to the browser cache, caching in Web Storage allows ResourceLoader
+  to be more granular about evicting stale modules from the cache while
+  retaining the ability to retrieve multiple modules in a single HTTP request.
+  This capability can be enabled by setting $wgResourceLoaderStorageEnabled to
+  true. This feature is currently considered experimental and should only be
+  enabled with care.
+* (bug 6092) Add expensive parser functions {{REVISIONID:}}, {{REVISIONUSER:}}
+  and {{REVISIONTIMESTAMP:}} (with friends).
+* Add "wgRelevantUserName" to mw.config containing the current
+  Skin::getRelevantUser value.
+* (bug 56033) Add content model to the page information.
+* Added Article::MissingArticleConditions hook to give extensions a chance to
+  hide their (unrelated) log entries.
+* Added LonelyPagesQuery hook to let extensions modify the query used to
+  generate Special:LonelyPages.
+* Added $wgOpenSearchDefaultLimit defining the default number of entries to show
+  on action=opensearch API call.
+* For namespaces with $wgNamespaceProtection (including the MediaWiki
+  namespace), the "protect" tab will be shown only if there are restriction
+  levels available that would restrict editing beyond what
+  $wgNamespaceProtection already applies. The protection form will offer only
+  those protection levels.
+* Added $wgAPIFormatModules, allowing extensions to add additional output
+  formatting modules for the API.
+* (bug 47812) The MediaWiki:Group-user.{css,js} pages can now be used to add
+  custom CSS or JavaScript enabled only for registered users.
+* (bug 52005) Special pages RecentChanges, RecentChangesLinked and Watchlist
+  now include a legend describing the symbols used in lists of changes.
+* Improved the accessibility of the tabs in Special:Preferences.
+* Added ApiBeforeMain hook, roughly equivalent to the BeforeInitialize hook:
+  it's called after everything is set up but before any major processing
+  happens.
+* The jquery.client module now performs a component-wise version comparison in
+  its #test method when strings are used in the browser map: version '1.10' is
+  now correctly considered larger than '1.2'. Using numbers in the version map
+  is not affected.
+* All API modules now support an assert parameter, which can either be
+  'user' or 'bot'. The API will throw an error if the user is not logged
+  in (user) or does not have the 'bot' userright (bot). Based off of the
+  AssertEdit extension by Steve Sanbeg.
+* [[Special:Diff]] was added, allowing users to create internal links to
+  revision comparison pages using syntax such as [[Special:Diff/12345]],
+  [[Special:Diff/12345/prev]] or [[Special:Diff/12345/98765]].
+* New user accounts' personal and talk pages are now watched by them by default.
+* Added SkinTemplateGetLanguageLink hook to allow changing the html of language
+  links.
+* Added MessageCache::get hook as a new way to customize messages across
+  multiple sites.
+* Added jquery.throttle-debounce ResourceLoader module to limit the number of
+  callbacks for frequently occurring events.
+* Special:ProtectedPages shows now a table. The timestamp, the reason and
+  the protecting user is also shown.
+* Added experimental support for using Microsoft SQL Server as the database
+  backend.
+** Added new Microsoft SQL Server-specific configuration variable
+   $wgDBWindowsAuthentication, which makes the web server authenticate against
+   the database server using Integrated Windows Authentication instead of
+   $wgDBuser/$wgDBpassword.
+* HTMLForm 'select', 'selectandother', 'selectorother', 'multiselect', and
+  'radio' fields can now use message keys as labels via the 'options-messages'
+  parameter, which overrides the 'options' parameter.
+* Admins can expire users users passwords manually, or on a schedule using the
+  $wgPasswordExpirationDays configuration setting.
+* Add new hook SendWatchlistEmailNotification, this will be used to determine
+  whether to send a watchlist email notification.
+* (bug 42026) Special:Contributions now includes an option to filter page
+  creations, similar to the topOnly option.
+* Add mediawiki.ui.button styling to all pages so wiki content can use styled
+  buttons.
+* Special:UserLogin/signup now does AJAX checks for invalid and taken usernames,
+  displaying the error live.
+* Added BaseTemplateAfterPortlet hook to allow injecting html after portlets in skins.
+* Support has been added for a JSON based localisation file format. The
+  installer has been updated to use it.
+* Changes to content typography (colors, line-height etc.). See
+  https://www.mediawiki.org/wiki/Typography_refresh for further information.
+* The Vector skin's visual treatment of external links has been simplified to a
+  single icon (from nine). This should not affect local rules unless they were
+  re-using these icons, which have now been deleted.
+* ResourceLoader: mw.loader.using() now implements a Promise interface.
+* Add new hook ChangesListInitRows accessed via ChangesList::initChangesListRows.
+  If called by the ChangesList consumer this gives extensions a chance to batch
+  process the result set prior to rendering.
+* A PoolCounterRedis class was added which can be make use of in $wgPoolCounterConf.
+  This requires at least one Redis 2.6+ server.
+* $wgProfileToDatabase was removed. Set $wgProfiler to ProfilerSimpleDB
+  in StartProfiler.php instead of using this.
+* (bug 63444) Made it possible to change the indent string (default: 4 spaces)
+  used by FormatJson::encode().
+
+=== Bug fixes in 1.23 ===
+* (bug 41759) The "updated since last visit" markers (on history pages, recent
+  changes and watchlist) and the talk page message indicator are now correctly
+  updated when the user is viewing old revisions of pages, instead of always
+  acting as if the latest revision was being viewed.
+* (bug 56443) Special:ConfirmEmail no longer shows a "Mail a confirmation code"
+  when the email address is already confirmed. Also, consistently use
+  "confirmed", rather than "authenticated", when messaging whether or not the
+  user has confirmed an email address.
+* (bug 19415) action=render no longer shows section edit links. This affects
+  behavior of several other features where (bogus) section edit links will
+  disappear, such as file description pages loaded via $wgUseInstantCommons or
+  pages transcluded cross-wiki via $wgEnableScaryTranscluding.
+* (bug 56912) Show correct link color on cached result of Special:DeadendPages.
+* Classes TitleListDependency and TitleDependency have been removed, as they
+  have been found unused in core and extensions for a long time.
+* (bug 57098) SpecialPasswordReset now obeys returnto parameter
+* (bug 37812) ResourceLoader will notice when a module's definition changes and
+  recompile it accordingly.
+* (bug 57201) SpecialRecentChangesFilters hook is now executed for feeds.
+* (bug 58640) Fixed a compatibility issue with PCRE 8.34 that caused pages
+  to appear blank or with missing text.
+* (bug 56931) Updated the plural rules to CLDR 24. They are in new format
+  which is detailed in UTS 35 Rev 33. The PHP parser and evaluator as well as
+  the JavaScript evaluator were updated to support the new format. Plural rules
+  for some languages have changed, most notably Russian. Affected software
+  messages have been updated and marked for review at translatewiki.net.
+* (bug 23542) imagelinks now stores both the redirect and target (as
+  templatelinks does).
+* (bug 58167) The web installer no longer throws an exception when PHP is
+  compiled without support for MySQL yet with support for another DBMS.
+* (bug 56199) Raw option of parser functions must now match complete word,
+  to take effect.
+* (bug 60543) Special:PrefixIndex forgot stripprefix=1 for "Next page" link
+* (bug 29762) Undoing an already-undone edit will now display an appropriate
+  message instead of leading the user to make a null edit.
+* (bug 52659) mediawiki.notification: Notification area remained visible when
+  empty and thus was stealing pointer events from links on the page.
+* (bug 26811) When a DBUnexpectedError occurs, DB server hostnames are now
+  hidden unless $wgShowExceptionDetails is true, and $wgShowDBErrorBacktrace
+  no longer applies in such cases.
+* (bug 60960) Avoid doing file_exist() checks on data: URIs, as they cause
+  warnings to be printed on Windows due to large path length.
+* (bug 48084) Fixed a bug in the installer that could cause $wgLogo to hold
+  the wrong path to the placeholder logo (skins/common/images/wiki.png).
+* (bug 64289) jquery.textSelection: Don't throw errors on empty collections.
+
+=== Web API changes in 1.23 ===
+* (bug 54884) action=parse&prop=categories now indicates hidden and missing
+  categories.
+* action=query&meta=filerepoinfo now returns additional information for each
+  repo.
+* action=parse&prop=languageshtml was deprecated in 1.18 and will be removed in
+  MediaWiki 1.24.
+* action=parse now has disabletoc flag to disable table of contents in output.
+* (bug 25702) list=allcategories, list=allimages, list=alllinks, list=allpages,
+  list=deletedrevs and list=filearchive did not handle case-sensitivity
+  properly for all parameters.
+* ApiQueryBase::titlePartToKey allows an extra parameter that indicates the
+  namespace in order to properly capitalize the title part.
+* (bug 57874) action=feedcontributions no longer has one item more than limit.
+* All API modules now support an assert parameter. See the new features section
+  for more details.
+* Added prop=contributors to fetch the list of contributors to the page.
+* The following API modules will now return entries where fields have been
+  revision-deleted: list=deletedrevs, list=filearchive, list=recentchanges,
+  list=watchlist. "hidden" indicators will be included, in the same style as is
+  already done for prop=revisions.
+* The following API modules will now return the content of revision-deleted
+  fields, in addition to the "hidden" indicators, if the querying user has the
+  necessary rights: list=logevents, list=usercontribs, prop=imageinfo,
+  prop=revisions.
+* The above modules, where applicable, will now return entries filtered by
+  revision-deleted fields if the querying user has the necessary rights. For
+  example, prop=revisions with rvuser or rvexcludeuser will no longer skip
+  revisions where the user was revision-deleted if the current user has the
+  deletedhistory right.
+* The 'hideuser' right, used when blocking, is no longer necessary or
+  sufficient for seeing contributions with revision-deleted in
+  list=usercontribs.
+* list=watchlist now uses the querying user's rights rather than the wlowner's
+  rights when checking whether wlprop=patrol is allowed.
+* (bug 32151) ApiWatch now has pageset capabilities (titles/pageids/generators).
+  Title parameter is now deprecated.
+* (bug 23005) Added action=revisiondelete.
+* Added siprop=restrictions to API action=query&meta=siteinfo for querying
+  possible page restriction (protection) levels and types.
+* Added prop 'limitreportdata' and 'limitreporthtml' to action=parse.
+* (bug 58627) Provide language names on action=parse&prop=langlinks.
+* Deprecated llurl= in favour of llprop=url for action=query&prop=langlinks.
+* Added llprop=langname and llprop=autonym for action=query&prop=langlinks.
+* prop=redirects is added, to return redirects to the pages in the query.
+* list=allredirects is added, to list all redirects pointing to a namespace.
+* (bug 42026) Added ucshow={new,!new,top,!top} to list=usercontribs.
+  Also added newonly to action=feedcontributions.
+* (bug 42026) Deprecated uctoponly in favor of ucshow=top.
+* list=search no longer has a "srredirects" parameter. Redirects are now
+  included in all searches.
+* Added list=prefixsearch that works like action=opensearch but can be used as
+  a generator.
+* (bug 24782) Various modules will now use unique continuation parameters.
+* (bug 63249) Cache RecentChanges Atom feed in varnish for 15 seconds.
+
+=== Languages updated in 1.23 ===
+
+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.
+
+* Support was added for Algerian Spoken Arabic (arq).
+* Support was added for Riograndenser Hunsrückisch (hrx).
+* Support was added for Northern Luri (lrc).
+
+=== Other changes in 1.23 ===
+* The rc_type field in the recentchanges table has been superseded by a new
+  rc_source field.  The rc_source field is a string representation of the
+  change type where rc_type was a numeric constant.  This field is not yet
+  queried but will be in a future release.
+** Utilize update.php to create and populate this new field.  On larger wikis
+   which do not wish to update recentchanges table in one large update please
+   review the SQL and comments in maintenance/archives/patch-rc_source.sql.
+** The rc_type field of recentchanges will be deprecated in a future release.
+* The global variable $wgArticle has been removed after a lengthy deprecation.
+* The global functions addButton and insertTags (for mw.toolbar.addButton and
+  mw.toolbar.insertTags) now emits mw.log.warn when accessed.
+* The ExpandTemplates extension has been moved into MediaWiki core.
+* (bug 52812) Removed "Disable search suggestions" from Preference.
+* (bug 52809) Removed "Disable browser page caching" from Preference.
+* Three new modules intended for use by custom skins were added:
+  'mediawiki.skinning.elements', 'mediawiki.skinning.content', and
+  'mediawiki.skinning.interface', representing three levels of standard
+  MediaWiki styling. Previously skin creators wishing to use them had to refer
+  to the file names of appropriate files directly, which is now discouraged.
+* The modules 'skins.vector' and 'skins.monobook' have been renamed to
+  'skins.vector.styles' and 'skins.monobook.styles', respectively,
+  and their definition was changed not to include the common*.css files;
+  the two skins now load the 'mediawiki.skinning.interface' module instead.
+* A page_links_updated field has been added to the page table.
+* SpecialPage::getTitle has been deprecated in favor of
+  SpecialPage::getPageTitle.
+* BREAKING CHANGE: Two potentially backwards-incompatible changes have been made
+  to the 'SpecialWatchlistQuery' hook's last parameter (array $values) to make
+  the hook more consistent with the 'SpecialRecentChangesQuery' one:
+** Several array keys have been renamed: hideMinor → hideminor,
+   hideBots → hidebots, hideAnons → hideanons, hideLiu → hideliu,
+   hidePatrolled → hidepatrolled, hideOwn → hidemyself.
+** The parameter value is now a FormOptions object, not a plain array (array
+   access operators should continue to work, as it implements the ArrayAccess
+   interface).
+* Option to mark hooks as deprecated has been added.
+* (bug 52811) Preference "Enable section editing via [edit] links" was removed.
+* (bug 52813) Preference "Show table of contents (for pages with more than
+  3 headings)" was removed.
+* (bug 52810) Preference "Justify paragraphs" was removed.
+* OutputPage::showErrorPage raises a notice if arguments are incoherent.
+* Thumbnails that keep failing to render in thumb.php will be rate-limited
+  againt further render attempts for 1 hour. $wgAttemptFailureEpoch can be
+  altered to reset all rate-limited thumbnails at once.
+* (bug 56572) Builds of the OOjs and OOjs UI libraries are now available.
+* mw.loader.go and mw.loader.version have been removed.
+* (bug 52815) Preference "Enable simplified search bar (Vector skin only)"
+  was removed.
+* A user_password_expires column has been added to the user table. The User
+  object expects this column to exist. Use update.php to create this new field.
+* The jquery.delayedBind ResourceLoader module was deprecated in favor of the
+  jquery.throttle-debounce module. It will be removed in MediaWiki 1.24.
+* mw.user.bucket has been deprecated.
+* On Special:PrefixIndex, a table#mw-prefixindex-list-table was changed to
+  table.mw-prefixindex-list-table to avoid duplicate ids when the special page
+  is transcluded.
+* (bug 62198) window.$j has been deprecated.
+* Preference "Disable link title conversion" was removed.
+* SpecialRecentChanges no longer includes any functionality for generating feeds
+  - it has been factored out to ApiFeedRecentChanges. Old URLs redirect to new
+  ones.
+* RecentChange::mExtra['lang'] is no longer set and should no longer be used.
+  Extensions should read from other configuration variables, including
+  $wgLocalInterwikis, to identify the current wiki.
+* Sections in the parser test framework have been renamed and the old
+  section names are deprecated.  Please use "!!wikitext" and "!!html"
+  (or "!!html/php") instead of "!!input" and "!!result".  This allows
+  us to extend parser tests to accommodate additional input/output
+  pairs, such as "!!html/parsoid" (for the output of the Parsoid
+  parser, where it differs from the PHP parser).
+* Special:Search no longer has an "include redirects" option on the advanced
+  tab. Redirects are now included in all searches.
+* mediawiki.api.category's getCategories() 'async' parameter was deprecated.
+* The locations of resources have been split between upstream libraries, now in
+  resources/lib/, local libaries in resources/src/, and local forks of upstream
+  libraries, also in resources/src/.
+* BREAKING CHANGE: The automatically-generated function closure with which
+  ResourceLoader wraps all modules' JavaScript code now binds the identifier
+  names 'jQuery' and '$' to the jQuery object of the version of jQuery that is
+  bundled with MediaWiki. If you bind these names to other objects in global
+  scope (like Zepto.js or document.querySelectorAll, for example) you will need
+  to use different names to or re-bind them at the top of each
+  ResourceLoader-loaded module.
+* (bug 52342) Preference "Remember my login" was removed.
+* The skin autodiscovery mechanism has been deprecated and will be removed in
+  MediaWiki 1.25. See https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery
+  for migration guide for creators and users of custom skins that relied on it.
+
+==== Removed classes ====
+* FakeMemCachedClient (deprecated in 1.18)
+* RdfMetaData (unused)
+* TitleDependency (unused)
+* TitleListDependency (unused)
+* WikiError (deprecated in 1.17)
+* WikiXmlError (deprecated in 1.17)
+* WikiErrorMsg (deprecated in 1.17)
+
+==== Renamed classes ====
+* CdbReader_DBA to CdbReaderDBA
+* CdbReader_PHP to CdbReaderPHP
+* CdbWriter_DBA to CdbWriterDBA
+* CdbWriter_PHP to CdbWriterPHP
+* DiffOp_Add to DiffOpAdd
+* DiffOp_Change to DiffOpChange
+* DiffOp_Copy to DiffOpCopy
+* DiffOp_Delete to DiffOpDelete
+* HWLDF_WordAccumulator to HWLDFWordAccumulator
+* LBFactory_Fake to LBFactoryFake
+* LBFactory_Multi to LBFactoryMulti
+* LBFactory_Simple to LBFactorySimple
+* LBFactory_Single to LBFactorySingle
+* LCStore_Accel to LCStoreAccel
+* LCStore_CDB to LCStoreCDB
+* LCStore_DB to LCStoreDB
+* LCStore_Null to LCStoreNull
+* LoadBalancer_Single to LoadBalancerSingle
+* LoadMonitor_MySQL to LoadMonitorMySQL
+* LoadMonitor_Null to LoadMonitorNull
+* LocalisationCache_BulkLoad to LocalisationCacheBulkLoad
+* csvStatsOutput to CsvStatsOutput
+* extensionLanguages to ExtensionLanguages
+* languages to Languages
+* statsOutput to StatsOutput
+* textStatsOutput to TextStatsOutput
+* wikiStatsOutput to WikiStatsOutput
+
+==== Removed methods ====
+* ApiBase::getValidNamespaces() (deprecated in 1.17)
+* ApiMain::setCachePrivate() (deprecated in 1.17)
+* ApiMain::setVaryCookie (deprecated in 1.17)
+* Article::doRedirect() (deprecated in 1.18)
+* Article::doUnwatch() (deprecated in 1.18)
+* Article::doWatch() (deprecated in 1.18)
+* Article::forUpdate() (deprecated in 1.18)
+* Article::markpatrolled() (deprecated in 1.18)
+* Article::unwatch() (deprecated in 1.18)
+* Article::watch() (deprecated in 1.18)
+* Block::clear() (deprecated in 1.18)
+* Block::decodeExpiry() (deprecated in 1.18)
+* Block::encodeExpiry() (deprecated in 1.18)
+* Block::forUpdate() (deprecated in 1.18)
+* Block::infinity() (deprecated in 1.18)
+* Block::load() (deprecated in 1.18)
+* Block::newFromDB() (deprecated in 1.18)
+* Block::normaliseRange() (deprecated in 1.18)
+* Block::parseExpiryInput() (deprecated in 1.18)
+* CategoryViewer::addSubcategory() (deprecated in 1.17)
+* EditPage::spamPage() (deprecated since 1.17)
+* Exif::getFormattedData() (deprecated in 1.18)
+* Exif::makeFormattedData() (deprecated in 1.18)
+* in_string (deprecated in 1.21)
+* Language::convertLinkToAllVariants() (deprecated in 1.17)
+* LanguageConverter::convertLinkToAllVariants() (deprecated in 1.17)
+* Linker::makeBrokenLink() (deprecated in 1.16)
+* Linker::makeBrokenLinkObj() (deprecated in 1.16)
+* Linker::makeColouredLinkObj() (deprecated in 1.16)
+* Linker::makeSizeLinkObj() (deprecated in 1.17)
+* MediaWiki::articleFromTitle() (deprecated in 1.18)
+* ParserOptions::getkin() (deprecated 1.18)
+* ProfilerSimple::getCpuTime (deprecated in 1.20)
+* Revision::revText() (deprecated in 1.17)
+* SkinTemplate::jstext() (deprecated in 1.21)
+* SpecialPage::__call() (deprecated in 1.17)
+* SpecialPage::executePath() (deprecated in 1.18)
+* SpecialPage::exists() (deprecated in 1.18)
+* SpecialPage::file() (deprecated in 1.18)
+* SpecialPage::func() (deprecated in 1.18)
+* SpecialPage::getGroup() (deprecated in 1.18)
+* SpecialPage::getPage() (deprecated in 1.18)
+* SpecialPage::getPageByAlias() (deprecated in 1.18)
+* SpecialPage::getLocalNameFor() (deprecated in 1.18)
+* SpecialPage::getRegularPages() (deprecated in 1.18)
+* SpecialPage::getRestrictedPages() (deprecated in 1.18)
+* SpecialPage::getTitleForAlias() (deprecated in 1.18)
+* SpecialPage::getUsablePages() (deprecated in 1.18)
+* SpecialPage::includable() (deprecated in 1.18)
+* SpecialPage::init()
+* SpecialPage::initAliasList() (deprecated in 1.18)
+* SpecialPage::initList() (deprecated in 1.18)
+* SpecialPage::name() (deprecated in 1.18)
+* SpecialPage::removePage() (deprecated in 1.18)
+* SpecialPage::resolveAlias() (deprecated in 1.18)
+* SpecialPage::resolveAliasWithSubpage() (deprecated in 1.18)
+* SpecialPage::restriction() (deprecated in 1.18)
+* SpecialPage::setGroup() (deprecated in 1.18)
+* SpecialRecentChanges::feedSetup()
+* SpecialRevisionDelete::extractBitField() (deprecated in 1.22)
+* User::getPageRenderingHash() (deprecated in 1.17)
+* WebRequest::getFileSize() (deprecated in 1.17)
+* WebRequest::isPathInfoBad() (deprecated in 1.17)
+* wfGenerateToken (deprecated in 1.20)
+* wfStreamFile (deprecated in 1.19)
+* wfUILang (deprecated in 1.18)
+* WikiPage::createUpdates() (deprecated in 1.18)
+* WikiPage::quickEdit() (deprecated in 1.18)
+* WikiPage::useParserCache() (deprecated in 1.18)
+* WikiPage::viewUpdates() (deprecated in 1.18)
+
+==== Removed globals ====
+* $wgBetterDirectionality (deprecated in 1.18)
+
 == MediaWiki 1.22 ==
 
 === Configuration changes in 1.22 ===
diff --git a/RELEASE-NOTES-1.23 b/RELEASE-NOTES-1.23
deleted file mode 100644 (file)
index baf69c5..0000000
+++ /dev/null
@@ -1,539 +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.23 ==
-
-THIS IS NOT A RELEASE YET
-
-MediaWiki 1.23 is an alpha-quality branch and is not recommended for use in
-production.
-
-=== Configuration changes in 1.23 ===
-* (bug 13250) Restored method for clearing a watchlist in web UI
-  so that users with large watchlists don't have to perform
-  contortions to clear them.
-* When $wgJobRunRate is higher that zero, jobs are now executed via an
-  asynchronous HTTP request to a MediaWiki entry point. This may require
-  increasing the number of server worker threads. $wgRunJobsAsync has been
-  added to disable this feature if needed, falling back to executing the job
-  on the same process but making the execution synchronously.
-* $wgDebugLogGroups values may be set to an associative array with a
-  'destination' key specifying the log destination. The array may also contain
-  a 'sample' key with a positive integer value N indicating that the log group
-  should be sampled by dispatching one in every N messages on average. The
-  sampling is random.
-* In addition to the current exception log format, MediaWiki now serializes
-  exception metadata to JSON and logs it to the 'exception-json' log group.
-  This makes MediaWiki easier to integrate with log aggregation and analysis
-  tools.
-* $wgSquidServersNoPurge now supports the use of Classless Inter-Domain
-  Routing (CIDR) notation to specify contiguous blocks of IPv4 and/or IPv6
-  addresses that should be trusted to provide X-Forwarded-For headers.
-* Preferences 'watchcreations', 'watchdefault', 'enotifwatchlistpages' ("Add
-  pages I create and files I upload to my watchlist", "Add pages and files I
-  edit to my watchlist", "Email me when a page or file on my watchlist is
-  changed") are now enabled by default. In addition new user accounts' personal
-  and talk pages are now watched by them by default.
-* $wgLBFactoryConf: Class names have had underscores removed. The configuration
-  should be updated if LBFactory_Simple or LBFactory_Multi is configured.
-* $wgPasswordSenderName has been removed and is no longer functional. To set a
-  custom mailer name, the system message 'emailsender' should be modified
-  (default: "{{SITENAME}}").
-* (bug 63269) Email notifications were not correctly handling the
-  [[MediaWiki:Helppage]] message being set to a full URL (the default).
-  If you customized [[MediaWiki:Enotif body]] (the text of email notifications),
-  you'll need to edit it locally to include the URL via the new variable
-  $HELPPAGE instead of the parser functions fullurl and canonicalurl; otherwise
-  you don't have to do anything.
-* $wgDBAhandler was removed as the only class using it was also removed
-* The 'max threads' setting was removed from $wgDBservers.
-* Support for AdminSettings.php has been completely removed. All configuration
-  belongs in LocalSettings.php.
-* $wgSkipSkin, which has been replaceable by $wgSkipSkins since 2005 (r9249), is
-  now formally deprecated.
-* Removed deprecated $wgDisabledActions as it is hardly used anywhere.
-* $wgRateLimitLog has been deprecated and replaced by
-  $wgDebugLogGroup['ratelimit'].
-* $wgLocalInterwikis is an array containing multiple local interwiki prefixes
-  (interwiki prefixes that point back to the current wiki). This effectively
-  allows more than one value of $wgLocalInterwiki to be specified and
-  understood by the parser. The value of $wgLocalInterwiki is automatically
-  prepended to the start of this array.
-* $wgQueryPages has been removed. Query Pages should be added to by using the
-  wgQueryPages hook.
-* $wgHttpOnlyBlacklist has been removed.
-* $wgLicenseTerms has been removed as it was unused.
-* $wgProfileOnly is now deprecated; set the log file in
-  $wgDebugLogGroups['profileoutput'] to replace it.
-* $wgMaxBacklinksInvalidate was removed; use $wgJobBackoffThrottling instead
-* Deprecated ResourceLoaderGetStartupModules hook.
-
-=== New features in 1.23 ===
-* ResourceLoader can utilize the Web Storage API to cache modules client-side.
-  Compared to the browser cache, caching in Web Storage allows ResourceLoader
-  to be more granular about evicting stale modules from the cache while
-  retaining the ability to retrieve multiple modules in a single HTTP request.
-  This capability can be enabled by setting $wgResourceLoaderStorageEnabled to
-  true. This feature is currently considered experimental and should only be
-  enabled with care.
-* (bug 6092) Add expensive parser functions {{REVISIONID:}}, {{REVISIONUSER:}}
-  and {{REVISIONTIMESTAMP:}} (with friends).
-* Add "wgRelevantUserName" to mw.config containing the current
-  Skin::getRelevantUser value.
-* (bug 56033) Add content model to the page information.
-* Added Article::MissingArticleConditions hook to give extensions a chance to
-  hide their (unrelated) log entries.
-* Added LonelyPagesQuery hook to let extensions modify the query used to
-  generate Special:LonelyPages.
-* Added $wgOpenSearchDefaultLimit defining the default number of entries to show
-  on action=opensearch API call.
-* For namespaces with $wgNamespaceProtection (including the MediaWiki
-  namespace), the "protect" tab will be shown only if there are restriction
-  levels available that would restrict editing beyond what
-  $wgNamespaceProtection already applies. The protection form will offer only
-  those protection levels.
-* Added $wgAPIFormatModules, allowing extensions to add additional output
-  formatting modules for the API.
-* (bug 47812) The MediaWiki:Group-user.{css,js} pages can now be used to add
-  custom CSS or JavaScript enabled only for registered users.
-* (bug 52005) Special pages RecentChanges, RecentChangesLinked and Watchlist
-  now include a legend describing the symbols used in lists of changes.
-* Improved the accessibility of the tabs in Special:Preferences.
-* Added ApiBeforeMain hook, roughly equivalent to the BeforeInitialize hook:
-  it's called after everything is set up but before any major processing
-  happens.
-* The jquery.client module now performs a component-wise version comparison in
-  its #test method when strings are used in the browser map: version '1.10' is
-  now correctly considered larger than '1.2'. Using numbers in the version map
-  is not affected.
-* All API modules now support an assert parameter, which can either be
-  'user' or 'bot'. The API will throw an error if the user is not logged
-  in (user) or does not have the 'bot' userright (bot). Based off of the
-  AssertEdit extension by Steve Sanbeg.
-* [[Special:Diff]] was added, allowing users to create internal links to
-  revision comparison pages using syntax such as [[Special:Diff/12345]],
-  [[Special:Diff/12345/prev]] or [[Special:Diff/12345/98765]].
-* New user accounts' personal and talk pages are now watched by them by default.
-* Added SkinTemplateGetLanguageLink hook to allow changing the html of language
-  links.
-* Added MessageCache::get hook as a new way to customize messages across
-  multiple sites.
-* Added jquery.throttle-debounce ResourceLoader module to limit the number of
-  callbacks for frequently occurring events.
-* Special:ProtectedPages shows now a table. The timestamp, the reason and
-  the protecting user is also shown.
-* Added experimental support for using Microsoft SQL Server as the database
-  backend.
-** Added new Microsoft SQL Server-specific configuration variable
-   $wgDBWindowsAuthentication, which makes the web server authenticate against
-   the database server using Integrated Windows Authentication instead of
-   $wgDBuser/$wgDBpassword.
-* HTMLForm 'select', 'selectandother', 'selectorother', 'multiselect', and
-  'radio' fields can now use message keys as labels via the 'options-messages'
-  parameter, which overrides the 'options' parameter.
-* Admins can expire users users passwords manually, or on a schedule using the
-  $wgPasswordExpirationDays configuration setting.
-* Add new hook SendWatchlistEmailNotification, this will be used to determine
-  whether to send a watchlist email notification.
-* (bug 42026) Special:Contributions now includes an option to filter page
-  creations, similar to the topOnly option.
-* Add mediawiki.ui.button styling to all pages so wiki content can use styled
-  buttons.
-* Special:UserLogin/signup now does AJAX checks for invalid and taken usernames,
-  displaying the error live.
-* Added BaseTemplateAfterPortlet hook to allow injecting html after portlets in skins.
-* Support has been added for a JSON based localisation file format. The
-  installer has been updated to use it.
-* Changes to content typography (colors, line-height etc.). See
-  https://www.mediawiki.org/wiki/Typography_refresh for further information.
-* The Vector skin's visual treatment of external links has been simplified to a
-  single icon (from nine). This should not affect local rules unless they were
-  re-using these icons, which have now been deleted.
-* ResourceLoader: mw.loader.using() now implements a Promise interface.
-* Add new hook ChangesListInitRows accessed via ChangesList::initChangesListRows.
-  If called by the ChangesList consumer this gives extensions a chance to batch
-  process the result set prior to rendering.
-* A PoolCounterRedis class was added which can be make use of in $wgPoolCounterConf.
-  This requires at least one Redis 2.6+ server.
-* $wgProfileToDatabase was removed. Set $wgProfiler to ProfilerSimpleDB
-  in StartProfiler.php instead of using this.
-* (bug 63444) Made it possible to change the indent string (default: 4 spaces)
-  used by FormatJson::encode().
-
-=== Bug fixes in 1.23 ===
-* (bug 41759) The "updated since last visit" markers (on history pages, recent
-  changes and watchlist) and the talk page message indicator are now correctly
-  updated when the user is viewing old revisions of pages, instead of always
-  acting as if the latest revision was being viewed.
-* (bug 56443) Special:ConfirmEmail no longer shows a "Mail a confirmation code"
-  when the email address is already confirmed. Also, consistently use
-  "confirmed", rather than "authenticated", when messaging whether or not the
-  user has confirmed an email address.
-* (bug 19415) action=render no longer shows section edit links. This affects
-  behavior of several other features where (bogus) section edit links will
-  disappear, such as file description pages loaded via $wgUseInstantCommons or
-  pages transcluded cross-wiki via $wgEnableScaryTranscluding.
-* (bug 56912) Show correct link color on cached result of Special:DeadendPages.
-* Classes TitleListDependency and TitleDependency have been removed, as they
-  have been found unused in core and extensions for a long time.
-* (bug 57098) SpecialPasswordReset now obeys returnto parameter
-* (bug 37812) ResourceLoader will notice when a module's definition changes and
-  recompile it accordingly.
-* (bug 57201) SpecialRecentChangesFilters hook is now executed for feeds.
-* (bug 58640) Fixed a compatibility issue with PCRE 8.34 that caused pages
-  to appear blank or with missing text.
-* (bug 56931) Updated the plural rules to CLDR 24. They are in new format
-  which is detailed in UTS 35 Rev 33. The PHP parser and evaluator as well as
-  the JavaScript evaluator were updated to support the new format. Plural rules
-  for some languages have changed, most notably Russian. Affected software
-  messages have been updated and marked for review at translatewiki.net.
-* (bug 23542) imagelinks now stores both the redirect and target (as
-  templatelinks does).
-* (bug 58167) The web installer no longer throws an exception when PHP is
-  compiled without support for MySQL yet with support for another DBMS.
-* (bug 56199) Raw option of parser functions must now match complete word,
-  to take effect.
-* (bug 60543) Special:PrefixIndex forgot stripprefix=1 for "Next page" link
-* (bug 29762) Undoing an already-undone edit will now display an appropriate
-  message instead of leading the user to make a null edit.
-* (bug 52659) mediawiki.notification: Notification area remained visible when
-  empty and thus was stealing pointer events from links on the page.
-* (bug 26811) When a DBUnexpectedError occurs, DB server hostnames are now
-  hidden unless $wgShowExceptionDetails is true, and $wgShowDBErrorBacktrace
-  no longer applies in such cases.
-* (bug 60960) Avoid doing file_exist() checks on data: URIs, as they cause
-  warnings to be printed on Windows due to large path length.
-* (bug 48084) Fixed a bug in the installer that could cause $wgLogo to hold
-  the wrong path to the placeholder logo (skins/common/images/wiki.png).
-* (bug 64289) jquery.textSelection: Don't throw errors on empty collections.
-
-=== Web API changes in 1.23 ===
-* (bug 54884) action=parse&prop=categories now indicates hidden and missing
-  categories.
-* action=query&meta=filerepoinfo now returns additional information for each
-  repo.
-* action=parse&prop=languageshtml was deprecated in 1.18 and will be removed in
-  MediaWiki 1.24.
-* action=parse now has disabletoc flag to disable table of contents in output.
-* (bug 25702) list=allcategories, list=allimages, list=alllinks, list=allpages,
-  list=deletedrevs and list=filearchive did not handle case-sensitivity
-  properly for all parameters.
-* ApiQueryBase::titlePartToKey allows an extra parameter that indicates the
-  namespace in order to properly capitalize the title part.
-* (bug 57874) action=feedcontributions no longer has one item more than limit.
-* All API modules now support an assert parameter. See the new features section
-  for more details.
-* Added prop=contributors to fetch the list of contributors to the page.
-* The following API modules will now return entries where fields have been
-  revision-deleted: list=deletedrevs, list=filearchive, list=recentchanges,
-  list=watchlist. "hidden" indicators will be included, in the same style as is
-  already done for prop=revisions.
-* The following API modules will now return the content of revision-deleted
-  fields, in addition to the "hidden" indicators, if the querying user has the
-  necessary rights: list=logevents, list=usercontribs, prop=imageinfo,
-  prop=revisions.
-* The above modules, where applicable, will now return entries filtered by
-  revision-deleted fields if the querying user has the necessary rights. For
-  example, prop=revisions with rvuser or rvexcludeuser will no longer skip
-  revisions where the user was revision-deleted if the current user has the
-  deletedhistory right.
-* The 'hideuser' right, used when blocking, is no longer necessary or
-  sufficient for seeing contributions with revision-deleted in
-  list=usercontribs.
-* list=watchlist now uses the querying user's rights rather than the wlowner's
-  rights when checking whether wlprop=patrol is allowed.
-* (bug 32151) ApiWatch now has pageset capabilities (titles/pageids/generators).
-  Title parameter is now deprecated.
-* (bug 23005) Added action=revisiondelete.
-* Added siprop=restrictions to API action=query&meta=siteinfo for querying
-  possible page restriction (protection) levels and types.
-* Added prop 'limitreportdata' and 'limitreporthtml' to action=parse.
-* (bug 58627) Provide language names on action=parse&prop=langlinks.
-* Deprecated llurl= in favour of llprop=url for action=query&prop=langlinks.
-* Added llprop=langname and llprop=autonym for action=query&prop=langlinks.
-* prop=redirects is added, to return redirects to the pages in the query.
-* list=allredirects is added, to list all redirects pointing to a namespace.
-* (bug 42026) Added ucshow={new,!new,top,!top} to list=usercontribs.
-  Also added newonly to action=feedcontributions.
-* (bug 42026) Deprecated uctoponly in favor of ucshow=top.
-* list=search no longer has a "srredirects" parameter. Redirects are now
-  included in all searches.
-* Added list=prefixsearch that works like action=opensearch but can be used as
-  a generator.
-* (bug 24782) Various modules will now use unique continuation parameters.
-* (bug 63249) Cache RecentChanges Atom feed in varnish for 15 seconds.
-
-=== Languages updated in 1.23 ===
-
-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.
-
-* Support was added for Algerian Spoken Arabic (arq).
-* Support was added for Riograndenser Hunsrückisch (hrx).
-* Support was added for Northern Luri (lrc).
-
-=== Other changes in 1.23 ===
-* The rc_type field in the recentchanges table has been superseded by a new
-  rc_source field.  The rc_source field is a string representation of the
-  change type where rc_type was a numeric constant.  This field is not yet
-  queried but will be in a future point release of 1.22.
-** Utilize update.php to create and populate this new field.  On larger wiki's
-   which do not wish to update recentchanges table in one large update please
-   review the sql and comments in maintenance/archives/patch-rc_source.sql.
-** The rc_type field of recentchanges will be deprecated in a future point
-   release.
-* The global variable $wgArticle has been removed after a lengthy deprecation.
-* The global functions addButton and insertTags (for mw.toolbar.addButton and
-  mw.toolbar.insertTags) now emits mw.log.warn when accessed.
-* The ExpandTemplates extension has been moved into MediaWiki core.
-* (bug 52812) Removed "Disable search suggestions" from Preference.
-* (bug 52809) Removed "Disable browser page caching" from Preference.
-* Three new modules intended for use by custom skins were added:
-  'mediawiki.skinning.elements', 'mediawiki.skinning.content', and
-  'mediawiki.skinning.interface', representing three levels of standard
-  MediaWiki styling. Previously skin creators wishing to use them had to refer
-  to the file names of appropriate files directly, which is now discouraged.
-* The modules 'skins.vector' and 'skins.monobook' have been renamed to
-  'skins.vector.styles' and 'skins.monobook.styles', respectively,
-  and their definition was changed not to include the common*.css files;
-  the two skins now load the 'mediawiki.skinning.interface' module instead.
-* A page_links_updated field has been added to the page table.
-* SpecialPage::getTitle has been deprecated in favor of
-  SpecialPage::getPageTitle.
-* BREAKING CHANGE: Two potentially backwards-incompatible changes have been made
-  to the 'SpecialWatchlistQuery' hook's last parameter (array $values) to make
-  the hook more consistent with the 'SpecialRecentChangesQuery' one:
-** Several array keys have been renamed: hideMinor → hideminor,
-   hideBots → hidebots, hideAnons → hideanons, hideLiu → hideliu,
-   hidePatrolled → hidepatrolled, hideOwn → hidemyself.
-** The parameter value is now a FormOptions object, not a plain array (array
-   access operators should continue to work, as it implements the ArrayAccess
-   interface).
-* Option to mark hooks as deprecated has been added.
-* (bug 52811) Preference "Enable section editing via [edit] links" was removed.
-* (bug 52813) Preference "Show table of contents (for pages with more than
-  3 headings)" was removed.
-* (bug 52810) Preference "Justify paragraphs" was removed.
-* OutputPage::showErrorPage raises a notice if arguments are incoherent.
-* Thumbnails that keep failing to render in thumb.php will be rate-limited
-  againt further render attempts for 1 hour. $wgAttemptFailureEpoch can be
-  altered to reset all rate-limited thumbnails at once.
-* (bug 56572) Builds of the OOjs and OOjs UI libraries are now available.
-* mw.loader.go and mw.loader.version have been removed.
-* (bug 52815) Preference "Enable simplified search bar (Vector skin only)"
-  was removed.
-* A user_password_expires column has been added to the user table. The User
-  object expects this column to exist. Use update.php to create this new field.
-* The jquery.delayedBind ResourceLoader module was deprecated in favor of the
-  jquery.throttle-debounce module. It will be removed in MediaWiki 1.24.
-* mw.user.bucket has been deprecated.
-* On Special:PrefixIndex, a table#mw-prefixindex-list-table was changed to
-  table.mw-prefixindex-list-table to avoid duplicate ids when the special page
-  is transcluded.
-* (bug 62198) window.$j has been deprecated.
-* Preference "Disable link title conversion" was removed.
-* SpecialRecentChanges no longer includes any functionality for generating feeds
-  - it has been factored out to ApiFeedRecentChanges. Old URLs redirect to new
-  ones.
-* RecentChange::mExtra['lang'] is no longer set and should no longer be used.
-  Extensions should read from other configuration variables, including
-  $wgLocalInterwikis, to identify the current wiki.
-* Sections in the parser test framework have been renamed and the old
-  section names are deprecated.  Please use "!!wikitext" and "!!html"
-  (or "!!html/php") instead of "!!input" and "!!result".  This allows
-  us to extend parser tests to accommodate additional input/output
-  pairs, such as "!!html/parsoid" (for the output of the Parsoid
-  parser, where it differs from the PHP parser).
-* Special:Search no longer has an "include redirects" option on the advanced
-  tab. Redirects are now included in all searches.
-* mediawiki.api.category's getCategories() 'async' parameter was deprecated.
-* The locations of resources have been split between upstream libraries, now in
-  resources/lib/, local libaries in resources/src/, and local forks of upstream
-  libraries, also in resources/src/.
-* BREAKING CHANGE: The automatically-generated function closure with which
-  ResourceLoader wraps all modules' JavaScript code now binds the identifier
-  names 'jQuery' and '$' to the jQuery object of the version of jQuery that is
-  bundled with MediaWiki. If you bind these names to other objects in global
-  scope (like Zepto.js or document.querySelectorAll, for example) you will need
-  to use different names to or re-bind them at the top of each
-  ResourceLoader-loaded module.
-* (bug 52342) Preference "Remember my login" was removed.
-
-==== Removed classes ====
-* FakeMemCachedClient (deprecated in 1.18)
-* RdfMetaData (unused)
-* TitleDependency (unused)
-* TitleListDependency (unused)
-* WikiError (deprecated in 1.17)
-* WikiXmlError (deprecated in 1.17)
-* WikiErrorMsg (deprecated in 1.17)
-
-==== Renamed classes ====
-* CdbReader_DBA to CdbReaderDBA
-* CdbReader_PHP to CdbReaderPHP
-* CdbWriter_DBA to CdbWriterDBA
-* CdbWriter_PHP to CdbWriterPHP
-* DiffOp_Add to DiffOpAdd
-* DiffOp_Change to DiffOpChange
-* DiffOp_Copy to DiffOpCopy
-* DiffOp_Delete to DiffOpDelete
-* HWLDF_WordAccumulator to HWLDFWordAccumulator
-* LBFactory_Fake to LBFactoryFake
-* LBFactory_Multi to LBFactoryMulti
-* LBFactory_Simple to LBFactorySimple
-* LBFactory_Single to LBFactorySingle
-* LCStore_Accel to LCStoreAccel
-* LCStore_CDB to LCStoreCDB
-* LCStore_DB to LCStoreDB
-* LCStore_Null to LCStoreNull
-* LoadBalancer_Single to LoadBalancerSingle
-* LoadMonitor_MySQL to LoadMonitorMySQL
-* LoadMonitor_Null to LoadMonitorNull
-* LocalisationCache_BulkLoad to LocalisationCacheBulkLoad
-* csvStatsOutput to CsvStatsOutput
-* extensionLanguages to ExtensionLanguages
-* languages to Languages
-* statsOutput to StatsOutput
-* textStatsOutput to TextStatsOutput
-* wikiStatsOutput to WikiStatsOutput
-
-==== Removed methods ====
-* ApiBase::getValidNamespaces() (deprecated in 1.17)
-* ApiMain::setCachePrivate() (deprecated in 1.17)
-* ApiMain::setVaryCookie (deprecated in 1.17)
-* Article::doRedirect() (deprecated in 1.18)
-* Article::doUnwatch() (deprecated in 1.18)
-* Article::doWatch() (deprecated in 1.18)
-* Article::forUpdate() (deprecated in 1.18)
-* Article::markpatrolled() (deprecated in 1.18)
-* Article::unwatch() (deprecated in 1.18)
-* Article::watch() (deprecated in 1.18)
-* Block::clear() (deprecated in 1.18)
-* Block::decodeExpiry() (deprecated in 1.18)
-* Block::encodeExpiry() (deprecated in 1.18)
-* Block::forUpdate() (deprecated in 1.18)
-* Block::infinity() (deprecated in 1.18)
-* Block::load() (deprecated in 1.18)
-* Block::newFromDB() (deprecated in 1.18)
-* Block::normaliseRange() (deprecated in 1.18)
-* Block::parseExpiryInput() (deprecated in 1.18)
-* CategoryViewer::addSubcategory() (deprecated in 1.17)
-* EditPage::spamPage() (deprecated since 1.17)
-* Exif::getFormattedData() (deprecated in 1.18)
-* Exif::makeFormattedData() (deprecated in 1.18)
-* in_string (deprecated in 1.21)
-* Language::convertLinkToAllVariants() (deprecated in 1.17)
-* LanguageConverter::convertLinkToAllVariants() (deprecated in 1.17)
-* Linker::makeBrokenLink() (deprecated in 1.16)
-* Linker::makeBrokenLinkObj() (deprecated in 1.16)
-* Linker::makeColouredLinkObj() (deprecated in 1.16)
-* Linker::makeSizeLinkObj() (deprecated in 1.17)
-* MediaWiki::articleFromTitle() (deprecated in 1.18)
-* ParserOptions::getkin() (deprecated 1.18)
-* ProfilerSimple::getCpuTime (deprecated in 1.20)
-* Revision::revText() (deprecated in 1.17)
-* SkinTemplate::jstext() (deprecated in 1.21)
-* SpecialPage::__call() (deprecated in 1.17)
-* SpecialPage::executePath() (deprecated in 1.18)
-* SpecialPage::exists() (deprecated in 1.18)
-* SpecialPage::file() (deprecated in 1.18)
-* SpecialPage::func() (deprecated in 1.18)
-* SpecialPage::getGroup() (deprecated in 1.18)
-* SpecialPage::getPage() (deprecated in 1.18)
-* SpecialPage::getPageByAlias() (deprecated in 1.18)
-* SpecialPage::getLocalNameFor() (deprecated in 1.18)
-* SpecialPage::getRegularPages() (deprecated in 1.18)
-* SpecialPage::getRestrictedPages() (deprecated in 1.18)
-* SpecialPage::getTitleForAlias() (deprecated in 1.18)
-* SpecialPage::getUsablePages() (deprecated in 1.18)
-* SpecialPage::includable() (deprecated in 1.18)
-* SpecialPage::init()
-* SpecialPage::initAliasList() (deprecated in 1.18)
-* SpecialPage::initList() (deprecated in 1.18)
-* SpecialPage::name() (deprecated in 1.18)
-* SpecialPage::removePage() (deprecated in 1.18)
-* SpecialPage::resolveAlias() (deprecated in 1.18)
-* SpecialPage::resolveAliasWithSubpage() (deprecated in 1.18)
-* SpecialPage::restriction() (deprecated in 1.18)
-* SpecialPage::setGroup() (deprecated in 1.18)
-* SpecialRecentChanges::feedSetup()
-* SpecialRevisionDelete::extractBitField() (deprecated in 1.22)
-* User::getPageRenderingHash() (deprecated in 1.17)
-* WebRequest::getFileSize() (deprecated in 1.17)
-* WebRequest::isPathInfoBad() (deprecated in 1.17)
-* wfGenerateToken (deprecated in 1.20)
-* wfStreamFile (deprecated in 1.19)
-* wfUILang (deprecated in 1.18)
-* WikiPage::createUpdates() (deprecated in 1.18)
-* WikiPage::quickEdit() (deprecated in 1.18)
-* WikiPage::useParserCache() (deprecated in 1.18)
-* WikiPage::viewUpdates() (deprecated in 1.18)
-
-==== Removed globals ====
-* $wgBetterDirectionality (deprecated in 1.18)
-
-== Compatibility ==
-
-MediaWiki 1.23 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 and Microsoft SQL Server.
-
-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
-* Microsoft SQL Server 2005 (9.00.1399)
-
-== Upgrading ==
-
-1.23 has several database changes since 1.22, 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.22.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 b15ef6d..0779f6b 100644 (file)
@@ -17,6 +17,10 @@ production.
 * $wgSearchEverythingOnlyLoggedIn was removed as the 'searcheverything'
   user option was removed. Use $wgNamespacesToBeSearchedDefault instead or
   if you used to have $wgDefaultUserOptions['searcheverything'] = 1.
+* $wgMasterWaitTimeout has been deprecated.
+* $wgDBClusterTimeout has been removed.
+* $wgProxyKey has been removed. It is no longer used by MediaWiki core.
+  Ensure $wgSecretKey is set in LocalSettings.php.
 
 === New features in 1.24 ===
 * Added a new hook, "WhatLinksHereProps", to allow extensions to annotate
@@ -33,8 +37,9 @@ production.
 * Added a new hook, "SidebarBeforeOutput", to allow to edit the structure of
   the sidebar just before its display.
 * (bug 49156) Added the mediawiki.cookie ResourceLoader module, which wraps
-  jQuery.cookie so that getting/setting a cookie is syntactically and functionally
-  similar to using the WebRequest#getCookie/WebResponse#setcookie methods.
+  jquery.cookie so that getting/setting a cookie is syntactically and
+  functionally similar to using the WebRequest::getCookie() and
+  WebResponse::setcookie() methods.
 * (bug 44740) jQuery upgraded from 1.8.3 to 1.11.1. A new configuration option,
   $wgIncludejQueryMigrate, also loads the jQuery Migrate hack to let extensions
   and gadgets use the long-deprecated functions that were removed in jQuery 1.9.
@@ -47,27 +52,35 @@ production.
   can probably be changed to no longer special-case redirects.
 * Header font set to a serif font stack. See
   https://www.mediawiki.org/wiki/Typography_refresh for further information.
-* (bug 65567) Added a new hook, "BeforeHttpsRedirect", to allow cancellation of the HTTP
-  to HTTPS redirect due to forceHTTPS cookie, userRequires, etc.  This is only for page views,
-  since this hook doesn't affect UserLogin, OAuth, CentralAuth, etc.
-  ATTENTION: This hook is likely to be removed soon due to overall design of the system.
+* (bug 65567) Added a new hook, "BeforeHttpsRedirect", to allow cancellation of
+  the HTTP to HTTPS redirect due to forceHTTPS cookie, userRequires, etc. This
+  is only for page views, since this hook doesn't affect UserLogin, OAuth,
+  CentralAuth, etc. ATTENTION: This hook is likely to be removed soon due to
+  overall design of the system.
 * (bug 17367) It is now possible to add pages to your watchlist from
   Special:UnwatchedPages without reloading the special page.
 * New methods setVolatile and isVolatile are added to PPFrame, so that
   extensions such as Cite.php can mark that their output is volatile and
   shouldn't be cached.
-* (bug 52817) Advanced search options are now saved on the search page itself, rather
-  than in a dedicated pane in the preferences panel.
+* (bug 52817) Advanced search options are now saved on the search page itself,
+  rather than in a dedicated pane in the preferences panel.
 * (bug 44591) The dropdown actions menu (little triangle next to page tabs) in
   the Vector skin has gained a label that should make it more discoverable.
 * MWCryptHKDF added for fast, cryptographically secure random number generation
   that won't deplete openssl's entropy pool.
+* ResourceLoader: File modules can now provide a skip function that uses an
+  inline feature test to bypass loading of the module.
+* (bug 20210) Special pages may now provide autocompletion of their subpage
+  names in search suggestions. Right now the only useful implementation is in
+  Special:Log, but more are to come.
+* Special:MostLinkedTemplates is no longer limited to transclusions from the
+  Template namespace.
 
 === Bug fixes in 1.24 ===
 * (bug 49116) Footer copyright notice is now always displayed in user language
   rather than content language (same as copyright notice for editing interface).
 * (bug 62258) A bug was fixed in File::getUnscaledThumb when a height
-  restriction was present in the parameters.  Images with both the "frame"
+  restriction was present in the parameters. Images with both the "frame"
   option and a size specification set will now always ignore the provided
   size and display an unscaled image, as the documentation has always
   claimed it would.
@@ -134,7 +147,13 @@ changes to languages because of Bugzilla reports.
 * The deprecated 'SpecialVersionExtensionTypes' hook was removed.
 * (bug 63891) Add 'X-Robots-Tag: noindex' header in action=render pages.
 * SpecialPage no longer supports the syntax for invoking wfSpecial*() functions.
-  All special pages should subclass SpecialPage and implement the execute() method.
+  Special pages should subclass SpecialPage and implement the execute() method.
+* (bug 63755) The deprecated constants RC_MOVE and RC_MOVE_OVER_REDIRECT were
+  removed.
+* Special:MostLinkedTemplates has been renamed to Special:MostTranscludedPages.
+* The skin autodiscovery mechanism has been deprecated and will be removed in
+  MediaWiki 1.25. See https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery
+  for migration guide for creators and users of custom skins that relied on it.
 
 ==== Renamed classes ====
 * CLDRPluralRuleConverter_Expression to CLDRPluralRuleConverterExpression
@@ -215,7 +234,7 @@ Don't forget to always back up your database before upgrading!
 
 See the file UPGRADE for more detailed upgrade instructions.
 
-For notes on 1.22.x and older releases, see HISTORY.
+For notes on 1.23.x and older releases, see HISTORY.
 
 == Online documentation ==
 
index cb76341..4c2fd89 100644 (file)
@@ -2039,6 +2039,16 @@ $oldtext : the text of the article before editing
 $subject : subject of the new section
 &$text : text of the new section
 
+'PostLoginRedirect': Modify the post login redirect behavior.
+Occurs after signing up or logging in, allows for interception of redirect.
+&$returnTo: The page name to return to, as a string
+&$returnToQuery: array of url parameters, mapping parameter names to values
+&$type: type of login redirect as string;
+  error: display a return to link ignoring $wgRedirectOnLogin
+  signup: display a return to link using $wgRedirectOnLogin if needed
+  success: display a return to link using $wgRedirectOnLogin if needed
+  successredirect: send an HTTP redirect using $wgRedirectOnLogin if needed
+
 'PreferencesGetLegend': Override the text used for the <legend> of a
 preferences section.
 $form: the PreferencesForm object. This is a ContextSource as well
index e7411a4..d547cb1 100644 (file)
@@ -936,7 +936,7 @@ $wgAutoloadLocalClasses = array(
 
        # includes/specials
        'ActiveUsersPager' => 'includes/specials/SpecialActiveusers.php',
-       'AllmessagesTablePager' => 'includes/specials/SpecialAllmessages.php',
+       'AllMessagesTablePager' => 'includes/specials/SpecialAllMessages.php',
        'AncientPagesPage' => 'includes/specials/SpecialAncientpages.php',
        'BlockListPager' => 'includes/specials/SpecialBlockList.php',
        'BrokenRedirectsPage' => 'includes/specials/SpecialBrokenRedirects.php',
@@ -980,9 +980,9 @@ $wgAutoloadLocalClasses = array(
        'RandomPage' => 'includes/specials/SpecialRandompage.php',
        'ShortPagesPage' => 'includes/specials/SpecialShortpages.php',
        'SpecialActiveUsers' => 'includes/specials/SpecialActiveusers.php',
-       'SpecialAllmessages' => 'includes/specials/SpecialAllmessages.php',
+       'SpecialAllMessages' => 'includes/specials/SpecialAllMessages.php',
        'SpecialAllMyUploads' => 'includes/specials/SpecialMyRedirectPages.php',
-       'SpecialAllpages' => 'includes/specials/SpecialAllpages.php',
+       'SpecialAllPages' => 'includes/specials/SpecialAllPages.php',
        'SpecialBlankpage' => 'includes/specials/SpecialBlankpage.php',
        'SpecialBlock' => 'includes/specials/SpecialBlock.php',
        'SpecialBlockList' => 'includes/specials/SpecialBlockList.php',
index f9cafc9..5b42750 100644 (file)
@@ -1710,6 +1710,7 @@ $wgLBFactoryConf = array( 'class' => 'LBFactorySimple' );
 
 /**
  * How long to wait for a slave to catch up to the master
+ * @deprecated since 1.24
  */
 $wgMasterWaitTimeout = 10;
 
@@ -1738,11 +1739,6 @@ $wgDBerrorLog = false;
  */
 $wgDBerrorLogTZ = false;
 
-/**
- * When to give an error message
- */
-$wgDBClusterTimeout = 10;
-
 /**
  * Scale load balancer polling time so that under overload conditions, the
  * database server receives a SHOW STATUS query at an average interval of this
@@ -4826,11 +4822,6 @@ $wgSecretKey = false;
  */
 $wgProxyList = array();
 
-/**
- * @deprecated since 1.14
- */
-$wgProxyKey = false;
-
 /** @} */ # end of proxy scanner settings
 
 /************************************************************************//**
@@ -5781,24 +5772,42 @@ $wgUnwatchedPageThreshold = false;
  * To register a new one:
  * @code
  * $wgRecentChangesFlags['flag'] => array(
+ *   // message for the letter displayed next to rows on changes lists
  *   'letter' => 'letter-msg',
- *   'title' => 'tooltip-msg'
+ *   // message for the tooltip of the letter
+ *   'title' => 'tooltip-msg',
+ *   // optional (defaults to 'tooltip-msg'), message to use in the legend box
+ *   'legend' => 'legend-msg',
+ *   // optional (defaults to 'flag'), CSS class to put on changes lists rows
+ *   'class' => 'css-class',
  * );
  * @endcode
  *
- * Optional 'class' allows to set a css class different than the flag name.
- *
  * @since 1.22
  */
 $wgRecentChangesFlags = array(
-       'newpage' => array( 'letter' => 'newpageletter',
-               'title' => 'recentchanges-label-newpage' ),
-       'minor' => array( 'letter' => 'minoreditletter',
-               'title' => 'recentchanges-label-minor', 'class' => 'minoredit' ),
-       'bot' => array( 'letter' => 'boteditletter',
-               'title' => 'recentchanges-label-bot', 'class' => 'botedit' ),
-       'unpatrolled' => array( 'letter' => 'unpatrolledletter',
-               'title' => 'recentchanges-label-unpatrolled' ),
+       'newpage' => array(
+               'letter' => 'newpageletter',
+               'title' => 'recentchanges-label-newpage',
+               'legend' => 'recentchanges-legend-newpage',
+       ),
+       'minor' => array(
+               'letter' => 'minoreditletter',
+               'title' => 'recentchanges-label-minor',
+               'legend' => 'recentchanges-legend-minor',
+               'class' => 'minoredit',
+       ),
+       'bot' => array(
+               'letter' => 'boteditletter',
+               'title' => 'recentchanges-label-bot',
+               'legend' => 'recentchanges-legend-bot',
+               'class' => 'botedit',
+       ),
+       'unpatrolled' => array(
+               'letter' => 'unpatrolledletter',
+               'title' => 'recentchanges-label-unpatrolled',
+               'legend' => 'recentchanges-legend-unpatrolled',
+       ),
 );
 
 /** @} */ # end RC/watchlist }
index 19801ec..ce4ede3 100644 (file)
@@ -177,9 +177,7 @@ define( 'MW_DATE_ISO', 'ISO 8601' );
  */
 define( 'RC_EDIT', 0 );
 define( 'RC_NEW', 1 );
-define( 'RC_MOVE', 2 ); // obsolete
 define( 'RC_LOG', 3 );
-define( 'RC_MOVE_OVER_REDIRECT', 4 ); // obsolete
 define( 'RC_EXTERNAL', 5 );
 /**@}*/
 
index 9108783..98e0ec4 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Page edition user interface.
+ * User interface for page editing.
  *
  * 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
index 582ba60..f4d4697 100644 (file)
@@ -569,20 +569,30 @@ class MimeMagic {
         * @param string $file
         * @param mixed $ext
         * @return bool|string
+        * @throws MWException
         */
        private function doGuessMimeType( $file, $ext ) { // TODO: remove $ext param
                // Read a chunk of the file
                wfSuppressWarnings();
-               // @todo FIXME: Shouldn't this be rb?
-               $f = fopen( $file, 'rt' );
+               $f = fopen( $file, 'rb' );
                wfRestoreWarnings();
 
                if ( !$f ) {
                        return 'unknown/unknown';
                }
+
+               $fsize = filesize( $file );
+               if ( $fsize === false ) {
+                       return 'unknown/unknown';
+               }
+
                $head = fread( $f, 1024 );
-               fseek( $f, -65558, SEEK_END );
-               $tail = fread( $f, 65558 ); // 65558 = maximum size of a zip EOCDR
+               $tailLength = min( 65558, $fsize ); // 65558 = maximum size of a zip EOCDR
+               if ( fseek( $f, -1 * $tailLength, SEEK_END ) === -1 ) {
+                       throw new MWException(
+                               "Seeking $tailLength bytes from EOF failed in " . __METHOD__ );
+               }
+               $tail = fread( $f, $tailLength );
                fclose( $f );
 
                wfDebug( __METHOD__ . ": analyzing head and tail of $file for magic numbers.\n" );
index 6075d8d..8fd7812 100644 (file)
@@ -1889,7 +1889,12 @@ class OutputPage extends ContextSource {
         *   /w/index.php?title=Main_page&variant=zh-cn should never be served.
         */
        function addAcceptLanguage() {
-               $lang = $this->getTitle()->getPageLanguage();
+               $title = $this->getTitle();
+               if ( !$title instanceof Title ) {
+                       return;
+               }
+
+               $lang = $title->getPageLanguage();
                if ( !$this->getRequest()->getCheck( 'variant' ) && $lang->hasVariants() ) {
                        $variants = $lang->getVariants();
                        $aloption = array();
index a796d35..13696ad 100644 (file)
@@ -166,10 +166,26 @@ abstract class PrefixSearch {
        protected function specialSearch( $search, $limit ) {
                global $wgContLang;
 
-               # normalize searchKey, so aliases with spaces can be found - bug 25675
-               $search = str_replace( ' ', '_', $search );
+               list( $searchKey, $subpageSearch ) = explode( '/', $search, 2 );
+
+               // Handle subpage search separately.
+               if ( $subpageSearch !== null ) {
+                       // Try matching the full search string as a page name
+                       $specialTitle = Title::makeTitleSafe( NS_SPECIAL, $searchKey );
+                       $special = SpecialPageFactory::getPage( $specialTitle->getText() );
+                       if ( $special ) {
+                               $subpages = $special->prefixSearchSubpages( $subpageSearch, $limit );
+                               return array_map( function ( $sub ) use ( $specialTitle ) {
+                                       return $specialTitle->getSubpage( $sub );
+                               }, $subpages );
+                       } else {
+                               return array();
+                       }
+               }
 
-               $searchKey = $wgContLang->caseFold( $search );
+               # normalize searchKey, so aliases with spaces can be found - bug 25675
+               $searchKey = str_replace( ' ', '_', $searchKey );
+               $searchKey = $wgContLang->caseFold( $searchKey );
 
                // Unlike SpecialPage itself, we want the canonical forms of both
                // canonical and alias title forms...
index d34ee03..456e4e6 100644 (file)
@@ -117,15 +117,12 @@ class ProtectionForm {
                                // Expiry selected from list
                                $this->mExpiry[$action] = '';
                                $this->mExpirySelection[$action] = $requestExpirySelection;
-                       } elseif ( $existingExpiry == 'infinity' ) {
-                               // Existing expiry is infinite, use "infinite" in drop-down
-                               $this->mExpiry[$action] = '';
-                               $this->mExpirySelection[$action] = 'infinite';
                        } elseif ( $existingExpiry ) {
                                // Use existing expiry in its own list item
                                $this->mExpiry[$action] = '';
                                $this->mExpirySelection[$action] = $existingExpiry;
                        } else {
+                               // Catches 'infinity' - Existing expiry is infinite, use "infinite" in drop-down
                                // Final default: infinite
                                $this->mExpiry[$action] = '';
                                $this->mExpirySelection[$action] = 'infinite';
index 1ea6523..6a568c2 100644 (file)
@@ -1507,11 +1507,11 @@ class Sanitizer {
         */
        static function setupAttributeWhitelist() {
                global $wgAllowRdfaAttributes, $wgAllowMicrodataAttributes;
-
                static $whitelist, $staticInitialised;
+
                $globalContext = implode( '-', compact( 'wgAllowRdfaAttributes', 'wgAllowMicrodataAttributes' ) );
 
-               if ( isset( $whitelist ) && $staticInitialised == $globalContext ) {
+               if ( $whitelist !== null && $staticInitialised == $globalContext ) {
                        return $whitelist;
                }
 
index 84dd3de..0d165fe 100644 (file)
@@ -73,9 +73,19 @@ abstract class Skin extends ContextSource {
                                                // This is one of the reasons we should have never used autodiscovery in the first
                                                // place. This hack can be safely removed when autodiscovery is gone.
                                                if ( in_array( $aSkin, array( 'CologneBlue', 'Modern', 'MonoBook', 'Vector' ) ) ) {
+                                                       wfLogWarning(
+                                                               "An old copy of the $aSkin skin was found in your skins/ directory. " .
+                                                               "You should remove it to avoid problems in the future." .
+                                                               "See https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery for details."
+                                                       );
                                                        continue;
                                                }
 
+                                               wfLogWarning(
+                                                       "A skin using autodiscovery mechanism, $aSkin, was found in your skins/ directory. " .
+                                                       "The mechanism will be removed in MediaWiki 1.25 and the skin will no longer be recognized. " .
+                                                       "See https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery for information how to fix this."
+                                               );
                                                $wgValidSkinNames[strtolower( $aSkin )] = $aSkin;
                                        }
                                }
index ecc2372..a703b64 100644 (file)
@@ -1119,6 +1119,9 @@ HTML;
 
                # collect the originating ips
                $ip = $this->getRawIP();
+               if ( !$ip ) {
+                       throw new MWException( 'Unable to determine IP.' );
+               }
 
                # Append XFF
                $forwardedFor = $this->getHeader( 'X-Forwarded-For' );
@@ -1126,34 +1129,35 @@ HTML;
                        $isConfigured = IP::isConfiguredProxy( $ip );
                        $ipchain = array_map( 'trim', explode( ',', $forwardedFor ) );
                        $ipchain = array_reverse( $ipchain );
-                       if ( $ip ) {
-                               array_unshift( $ipchain, $ip );
-                       }
+                       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). However, prefer private
                        # IP addresses over proxy servers controlled by this site (more sensible).
+                       # Note that some XFF values might be "unknown" with Squid/Varnish.
                        foreach ( $ipchain as $i => $curIP ) {
-                               // ignore 'unknown' value from Squid when 'forwarded_for off' and try next
-                               if ( $curIP === 'unknown' ) {
-                                       continue;
-                               }
                                $curIP = IP::sanitizeIP( IP::canonicalize( $curIP ) );
-                               if ( IP::isTrustedProxy( $curIP ) && isset( $ipchain[$i + 1] ) ) {
-                                       if ( IP::isConfiguredProxy( $curIP ) || // bug 48919; treat IP as sane
-                                               IP::isPublic( $ipchain[$i + 1] ) ||
-                                               $wgUsePrivateIPs
-                                       ) {
-                                               $nextIP = IP::canonicalize( $ipchain[$i + 1] );
-                                               if ( !$nextIP && $isConfigured ) {
-                                                       // We have not yet made it past CDN/proxy servers of this site,
-                                                       // so either they are misconfigured or there is some IP spoofing.
-                                                       throw new MWException( "Invalid IP given in XFF '$forwardedFor'." );
-                                               }
-                                               $ip = $nextIP;
-                                               continue;
+                               if ( !$curIP || !isset( $ipchain[$i + 1] ) || $ipchain[$i + 1] === 'unknown'
+                                       || !IP::isTrustedProxy( $curIP )
+                               ) {
+                                       break; // IP is not valid/trusted or does not point to anything
+                               }
+                               if (
+                                       IP::isPublic( $ipchain[$i + 1] ) ||
+                                       $wgUsePrivateIPs ||
+                                       IP::isConfiguredProxy( $curIP ) // bug 48919; treat IP as sane
+                               ) {
+                                       // Follow the next IP according to the proxy
+                                       $nextIP = IP::canonicalize( $ipchain[$i + 1] );
+                                       if ( !$nextIP && $isConfigured ) {
+                                               // We have not yet made it past CDN/proxy servers of this site,
+                                               // so either they are misconfigured or there is some IP spoofing.
+                                               throw new MWException( "Invalid IP given in XFF '$forwardedFor'." );
                                        }
+                                       $ip = $nextIP;
+                                       // keep traversing the chain
+                                       continue;
                                }
                                break;
                        }
index db8e104..cedbcf9 100644 (file)
@@ -1585,7 +1585,7 @@ class WikiPage implements Page, IDBAccessObject {
 
                                if ( !$rev ) {
                                        wfDebug( __METHOD__ . " asked for bogus section (page: " .
-                                               $this->getId() . "; section: $section; edittime: $edittime)\n" );
+                                               $this->getId() . "; section: $section)\n" );
                                        wfProfileOut( __METHOD__ );
                                        return null;
                                }
@@ -2874,7 +2874,11 @@ class WikiPage implements Page, IDBAccessObject {
                $logEntry->setTarget( $logTitle );
                $logEntry->setComment( $reason );
                $logid = $logEntry->insert();
-               $logEntry->publish( $logid );
+
+               $dbw->onTransactionPreCommitOrIdle( function() use ( $dbw, $logEntry, $logid ) {
+                       // Bug 56776: avoid deadlocks (especially from FileDeleteForm)
+                       $logEntry->publish( $logid );
+               } );
 
                if ( $commit ) {
                        $dbw->commit( __METHOD__ );
index b649adf..25a1714 100644 (file)
@@ -87,17 +87,19 @@ abstract class ApiBase extends ContextSource {
         */
        const GET_VALUES_FOR_HELP = 1;
 
-       private $mMainModule, $mModuleName, $mModulePrefix;
+       /** @var ApiMain */
+       private $mMainModule;
+       /** @var string */
+       private $mModuleName, $mModulePrefix;
        private $mSlaveDB = null;
        private $mParamCache = array();
 
        /**
-        * Constructor
         * @param ApiMain $mainModule
         * @param string $moduleName Name of this module
         * @param string $modulePrefix Prefix to use for parameter names
         */
-       public function __construct( $mainModule, $moduleName, $modulePrefix = '' ) {
+       public function __construct( ApiMain $mainModule, $moduleName, $modulePrefix = '' ) {
                $this->mMainModule = $mainModule;
                $this->mModuleName = $moduleName;
                $this->mModulePrefix = $modulePrefix;
@@ -1963,15 +1965,13 @@ abstract class ApiBase extends ContextSource {
         * @since 1.21
         */
        public function dieUsageMsgOrDebug( $error ) {
-               global $wgDebugAPI;
-               if ( $wgDebugAPI !== true ) {
+               if ( $this->getConfig()->get( 'DebugAPI' ) !== true ) {
                        $this->dieUsageMsg( $error );
                }
 
                if ( is_string( $error ) ) {
                        $error = array( $error );
                }
-
                $parsed = $this->parseMsg( $error );
                $this->setWarning( '$wgDebugAPI: ' . $parsed['code'] . ' - ' . $parsed['info'] );
        }
index be8286c..35bba17 100644 (file)
@@ -90,7 +90,6 @@ class ApiCreateAccount extends ApiBase {
                $result = array();
                if ( $status->isGood() ) {
                        // Success!
-                       global $wgEmailAuthentication;
                        $user = $status->getValue();
 
                        if ( $params['language'] ) {
@@ -106,7 +105,7 @@ class ApiCreateAccount extends ApiBase {
                                        'createaccount-title',
                                        'createaccount-text'
                                ) );
-                       } elseif ( $wgEmailAuthentication && Sanitizer::validateEmail( $user->getEmail() ) ) {
+                       } elseif ( $this->getConfig()->get( 'EmailAuthentication' ) && Sanitizer::validateEmail( $user->getEmail() ) ) {
                                // Send out an email authentication message if needed
                                $status->merge( $user->sendConfirmationMail() );
                        }
@@ -183,8 +182,6 @@ class ApiCreateAccount extends ApiBase {
        }
 
        public function getAllowedParams() {
-               global $wgEmailConfirmToEdit;
-
                return array(
                        'name' => array(
                                ApiBase::PARAM_TYPE => 'user',
@@ -195,7 +192,7 @@ class ApiCreateAccount extends ApiBase {
                        'token' => null,
                        'email' => array(
                                ApiBase::PARAM_TYPE => 'string',
-                               ApiBase::PARAM_REQUIRED => $wgEmailConfirmToEdit
+                               ApiBase::PARAM_REQUIRED => $this->getConfig()->get( 'EmailConfirmToEdit' ),
                        ),
                        'realname' => null,
                        'mailpassword' => array(
@@ -293,10 +290,9 @@ class ApiCreateAccount extends ApiBase {
                );
 
                // 'passwordtooshort' has parameters. :(
-               global $wgMinimalPasswordLength;
                $errors[] = array(
                        'code' => 'passwordtooshort',
-                       'info' => wfMessage( 'passwordtooshort', $wgMinimalPasswordLength )
+                       'info' => wfMessage( 'passwordtooshort', $this->getConfig()->get( 'MinimalPasswordLength' ) )
                                ->inLanguage( 'en' )->useDatabase( false )->parse()
                );
 
index cb0f8c2..884306a 100644 (file)
@@ -399,7 +399,6 @@ class ApiEditPage extends ApiBase {
 
                $status = $ep->internalAttemptSave( $result, $user->isAllowed( 'bot' ) && $params['bot'] );
                $wgRequest = $oldRequest;
-               global $wgMaxArticleSize;
 
                switch ( $status->value ) {
                        case EditPage::AS_HOOK_ERROR:
@@ -423,7 +422,7 @@ class ApiEditPage extends ApiBase {
 
                        case EditPage::AS_MAX_ARTICLE_SIZE_EXCEEDED:
                        case EditPage::AS_CONTENT_TOO_BIG:
-                               $this->dieUsageMsg( array( 'contenttoobig', $wgMaxArticleSize ) );
+                               $this->dieUsageMsg( array( 'contenttoobig', $this->getConfig()->get( 'MaxArticleSize' ) ) );
 
                        case EditPage::AS_READ_ONLY_PAGE_ANON:
                                $this->dieUsageMsg( 'noedit-anon' );
@@ -499,8 +498,6 @@ class ApiEditPage extends ApiBase {
        }
 
        public function getPossibleErrors() {
-               global $wgMaxArticleSize;
-
                return array_merge( parent::getPossibleErrors(),
                        $this->getTitleOrPageIdErrorMessage(),
                        array(
@@ -519,7 +516,7 @@ class ApiEditPage extends ApiBase {
                                array( 'spamdetected', 'spam' ),
                                array( 'summaryrequired' ),
                                array( 'blockedtext' ),
-                               array( 'contenttoobig', $wgMaxArticleSize ),
+                               array( 'contenttoobig', $this->getConfig()->get( 'MaxArticleSize' ) ),
                                array( 'noedit-anon' ),
                                array( 'noedit' ),
                                array( 'actionthrottledtext' ),
index afd5a13..3392a5c 100644 (file)
@@ -41,30 +41,29 @@ class ApiFeedContributions extends ApiBase {
        public function execute() {
                $params = $this->extractRequestParams();
 
-               global $wgFeed, $wgFeedClasses, $wgFeedLimit, $wgSitename, $wgLanguageCode;
-
-               if ( !$wgFeed ) {
+               $config = $this->getConfig();
+               if ( !$config->get( 'Feed' ) ) {
                        $this->dieUsage( 'Syndication feeds are not available', 'feed-unavailable' );
                }
 
-               if ( !isset( $wgFeedClasses[$params['feedformat']] ) ) {
+               $feedClasses = $config->get( 'FeedClasses' );
+               if ( !isset( $feedClasses[$params['feedformat']] ) ) {
                        $this->dieUsage( 'Invalid subscription feed type', 'feed-invalid' );
                }
 
-               global $wgMiserMode;
-               if ( $params['showsizediff'] && $wgMiserMode ) {
+               if ( $params['showsizediff'] && $this->getConfig()->get( 'MiserMode' ) ) {
                        $this->dieUsage( 'Size difference is disabled in Miser Mode', 'sizediffdisabled' );
                }
 
                $msg = wfMessage( 'Contributions' )->inContentLanguage()->text();
-               $feedTitle = $wgSitename . ' - ' . $msg . ' [' . $wgLanguageCode . ']';
+               $feedTitle = $config->get( 'Sitename' ) . ' - ' . $msg . ' [' . $config->get( 'LanguageCode' ) . ']';
                $feedUrl = SpecialPage::getTitleFor( 'Contributions', $params['user'] )->getFullURL();
 
                $target = $params['user'] == 'newbies'
                        ? 'newbies'
                        : Title::makeTitleSafe( NS_USER, $params['user'] )->getText();
 
-               $feed = new $wgFeedClasses[$params['feedformat']] (
+               $feed = new $feedClasses[$params['feedformat']] (
                        $feedTitle,
                        htmlspecialchars( $msg ),
                        $feedUrl
@@ -82,8 +81,9 @@ class ApiFeedContributions extends ApiBase {
                        'showSizeDiff' => $params['showsizediff'],
                ) );
 
-               if ( $pager->getLimit() > $wgFeedLimit ) {
-                       $pager->setLimit( $wgFeedLimit );
+               $feedLimit = $this->getConfig()->get( 'FeedLimit' );
+               if ( $pager->getLimit() > $feedLimit ) {
+                       $pager->setLimit( $feedLimit );
                }
 
                $feedItems = array();
@@ -159,8 +159,7 @@ class ApiFeedContributions extends ApiBase {
        }
 
        public function getAllowedParams() {
-               global $wgFeedClasses;
-               $feedFormatNames = array_keys( $wgFeedClasses );
+               $feedFormatNames = array_keys( $this->getConfig()->get( 'FeedClasses' ) );
 
                return array(
                        'feedformat' => array(
index a2641ee..bb68d5a 100644 (file)
@@ -40,15 +40,16 @@ class ApiFeedRecentChanges extends ApiBase {
         * as an RSS/Atom feed.
         */
        public function execute() {
-               global $wgFeed, $wgFeedClasses;
+               $config = $this->getConfig();
 
                $this->params = $this->extractRequestParams();
 
-               if ( !$wgFeed ) {
+               if ( !$config->get( 'Feed' ) ) {
                        $this->dieUsage( 'Syndication feeds are not available', 'feed-unavailable' );
                }
 
-               if ( !isset( $wgFeedClasses[$this->params['feedformat']] ) ) {
+               $feedClasses = $config->get( 'FeedClasses' );
+               if ( !isset( $feedClasses[$this->params['feedformat']] ) ) {
                        $this->dieUsage( 'Invalid subscription feed type', 'feed-invalid' );
                }
 
@@ -110,8 +111,8 @@ class ApiFeedRecentChanges extends ApiBase {
        }
 
        public function getAllowedParams() {
-               global $wgFeedClasses, $wgAllowCategorizedRecentChanges, $wgFeedLimit;
-               $feedFormatNames = array_keys( $wgFeedClasses );
+               $config = $this->getConfig();
+               $feedFormatNames = array_keys( $config->get( 'FeedClasses' ) );
 
                $ret = array(
                        'feedformat' => array(
@@ -133,7 +134,7 @@ class ApiFeedRecentChanges extends ApiBase {
                        'limit' => array(
                                ApiBase::PARAM_DFLT => 50,
                                ApiBase::PARAM_MIN => 1,
-                               ApiBase::PARAM_MAX => $wgFeedLimit,
+                               ApiBase::PARAM_MAX => $config->get( 'FeedLimit' ),
                                ApiBase::PARAM_TYPE => 'integer',
                        ),
                        'from' => array(
@@ -157,7 +158,7 @@ class ApiFeedRecentChanges extends ApiBase {
                        'showlinkedto' => false,
                );
 
-               if ( $wgAllowCategorizedRecentChanges ) {
+               if ( $config->get( 'AllowCategorizedRecentChanges' ) ) {
                        $ret += array(
                                'categories' => array(
                                        ApiBase::PARAM_TYPE => 'string',
index 64c3eec..983b6a8 100644 (file)
@@ -50,16 +50,16 @@ class ApiFeedWatchlist extends ApiBase {
         * Wrap the result as an RSS/Atom feed.
         */
        public function execute() {
-               global $wgFeed, $wgFeedClasses, $wgFeedLimit, $wgSitename, $wgLanguageCode;
-
+               $config = $this->getConfig();
+               $feedClasses = $config->get( 'FeedClasses' );
                try {
                        $params = $this->extractRequestParams();
 
-                       if ( !$wgFeed ) {
+                       if ( !$config->get( 'Feed' ) ) {
                                $this->dieUsage( 'Syndication feeds are not available', 'feed-unavailable' );
                        }
 
-                       if ( !isset( $wgFeedClasses[$params['feedformat']] ) ) {
+                       if ( !isset( $feedClasses[$params['feedformat']] ) ) {
                                $this->dieUsage( 'Invalid subscription feed type', 'feed-invalid' );
                        }
 
@@ -75,7 +75,7 @@ class ApiFeedWatchlist extends ApiBase {
                                'wlprop' => 'title|user|comment|timestamp|ids',
                                'wldir' => 'older', // reverse order - from newest to oldest
                                'wlend' => $endTime, // stop at this time
-                               'wllimit' => min( 50, $wgFeedLimit )
+                               'wllimit' => min( 50, $this->getConfig()->get( 'FeedLimit' ) )
                        );
 
                        if ( $params['wlowner'] !== null ) {
@@ -122,10 +122,10 @@ class ApiFeedWatchlist extends ApiBase {
 
                        $msg = wfMessage( 'watchlist' )->inContentLanguage()->text();
 
-                       $feedTitle = $wgSitename . ' - ' . $msg . ' [' . $wgLanguageCode . ']';
+                       $feedTitle = $this->getConfig()->get( 'Sitename' ) . ' - ' . $msg . ' [' . $this->getConfig()->get( 'LanguageCode' ) . ']';
                        $feedUrl = SpecialPage::getTitleFor( 'Watchlist' )->getFullURL();
 
-                       $feed = new $wgFeedClasses[$params['feedformat']] (
+                       $feed = new $feedClasses[$params['feedformat']] (
                                $feedTitle,
                                htmlspecialchars( $msg ),
                                $feedUrl
@@ -137,14 +137,14 @@ class ApiFeedWatchlist extends ApiBase {
                        $this->getMain()->setCacheMaxAge( 0 );
 
                        // @todo FIXME: Localise  brackets
-                       $feedTitle = $wgSitename . ' - Error - ' .
+                       $feedTitle = $this->getConfig()->get( 'Sitename' ) . ' - Error - ' .
                                wfMessage( 'watchlist' )->inContentLanguage()->text() .
-                               ' [' . $wgLanguageCode . ']';
+                               ' [' . $this->getConfig()->get( 'LanguageCode' ) . ']';
                        $feedUrl = SpecialPage::getTitleFor( 'Watchlist' )->getFullURL();
 
                        $feedFormat = isset( $params['feedformat'] ) ? $params['feedformat'] : 'rss';
                        $msg = wfMessage( 'watchlist' )->inContentLanguage()->escaped();
-                       $feed = new $wgFeedClasses[$feedFormat] ( $feedTitle, $msg, $feedUrl );
+                       $feed = new $feedClasses[$feedFormat] ( $feedTitle, $msg, $feedUrl );
 
                        if ( $e instanceof UsageException ) {
                                $errorCode = $e->getCodeString();
@@ -205,8 +205,7 @@ class ApiFeedWatchlist extends ApiBase {
        }
 
        public function getAllowedParams( $flags = 0 ) {
-               global $wgFeedClasses;
-               $feedFormatNames = array_keys( $wgFeedClasses );
+               $feedFormatNames = array_keys( $this->getConfig()->get( 'FeedClasses' ) );
                $ret = array(
                        'feedformat' => array(
                                ApiBase::PARAM_DFLT => 'rss',
index 8954abc..03a6843 100644 (file)
@@ -154,9 +154,9 @@ abstract class ApiFormatBase extends ApiBase {
                $this->getMain()->getRequest()->response()->header( "Content-Type: $mime; charset=utf-8" );
 
                //Set X-Frame-Options API results (bug 39180)
-               global $wgApiFrameOptions;
-               if ( $wgApiFrameOptions ) {
-                       $this->getMain()->getRequest()->response()->header( "X-Frame-Options: $wgApiFrameOptions" );
+               $apiFrameOptions = $this->getConfig()->get( 'ApiFrameOptions' );
+               if ( $apiFrameOptions ) {
+                       $this->getMain()->getRequest()->response()->header( "X-Frame-Options: $apiFrameOptions" );
                }
 
                if ( $isHtml ) {
index 1d960c9..3144fc1 100644 (file)
@@ -98,8 +98,6 @@ class ApiImport extends ApiBase {
        }
 
        public function getAllowedParams() {
-               global $wgImportSources;
-
                return array(
                        'token' => array(
                                ApiBase::PARAM_TYPE => 'string',
@@ -110,7 +108,7 @@ class ApiImport extends ApiBase {
                                ApiBase::PARAM_TYPE => 'upload',
                        ),
                        'interwikisource' => array(
-                               ApiBase::PARAM_TYPE => $wgImportSources
+                               ApiBase::PARAM_TYPE => $this->getConfig()->get( 'ImportSources' ),
                        ),
                        'interwikipage' => null,
                        'fullhistory' => false,
index 6336e81..f818c5f 100644 (file)
@@ -79,8 +79,6 @@ class ApiLogin extends ApiBase {
                $loginForm = new LoginForm();
                $loginForm->setContext( $context );
 
-               global $wgCookiePrefix, $wgPasswordAttemptThrottle;
-
                $authRes = $loginForm->authenticateUserData();
                switch ( $authRes ) {
                        case LoginForm::SUCCESS:
@@ -100,14 +98,14 @@ class ApiLogin extends ApiBase {
                                $result['lguserid'] = intval( $user->getId() );
                                $result['lgusername'] = $user->getName();
                                $result['lgtoken'] = $user->getToken();
-                               $result['cookieprefix'] = $wgCookiePrefix;
+                               $result['cookieprefix'] = $this->getConfig()->get( 'CookiePrefix' );
                                $result['sessionid'] = session_id();
                                break;
 
                        case LoginForm::NEED_TOKEN:
                                $result['result'] = 'NeedToken';
                                $result['token'] = $loginForm->getLoginToken();
-                               $result['cookieprefix'] = $wgCookiePrefix;
+                               $result['cookieprefix'] = $this->getConfig()->get( 'CookiePrefix' );
                                $result['sessionid'] = session_id();
                                break;
 
@@ -149,7 +147,8 @@ class ApiLogin extends ApiBase {
 
                        case LoginForm::THROTTLED:
                                $result['result'] = 'Throttled';
-                               $result['wait'] = intval( $wgPasswordAttemptThrottle['seconds'] );
+                               $throttle = $this->getConfig()->get( 'PasswordAttemptThrottle' );
+                               $result['wait'] = intval( $throttle['seconds'] );
                                break;
 
                        case LoginForm::USER_BLOCKED:
index df56735..84db9ed 100644 (file)
@@ -186,12 +186,12 @@ class ApiMain extends ApiBase {
                        }
                }
 
-               global $wgAPIModules, $wgAPIFormatModules;
+               $config = $this->getConfig();
                $this->mModuleMgr = new ApiModuleManager( $this );
                $this->mModuleMgr->addModules( self::$Modules, 'action' );
-               $this->mModuleMgr->addModules( $wgAPIModules, 'action' );
+               $this->mModuleMgr->addModules( $config->get( 'APIModules' ), 'action' );
                $this->mModuleMgr->addModules( self::$Formats, 'format' );
-               $this->mModuleMgr->addModules( $wgAPIFormatModules, 'format' );
+               $this->mModuleMgr->addModules( $config->get( 'APIFormatModules' ), 'format' );
 
                $this->mResult = new ApiResult( $this );
                $this->mEnableWrite = $enableWrite;
@@ -465,8 +465,6 @@ class ApiMain extends ApiBase {
         * @return bool False if the caller should abort (403 case), true otherwise (all other cases)
         */
        protected function handleCORS() {
-               global $wgCrossSiteAJAXdomains, $wgCrossSiteAJAXdomainExceptions;
-
                $originParam = $this->getParameter( 'origin' ); // defaults to null
                if ( $originParam === null ) {
                        // No origin parameter, nothing to do
@@ -494,10 +492,11 @@ class ApiMain extends ApiBase {
                        return false;
                }
 
+               $config = $this->getConfig();
                $matchOrigin = self::matchOrigin(
                        $originParam,
-                       $wgCrossSiteAJAXdomains,
-                       $wgCrossSiteAJAXdomainExceptions
+                       $config->get( 'CrossSiteAJAXdomains' ),
+                       $config->get( 'CrossSiteAJAXdomainExceptions' )
                );
 
                if ( $matchOrigin ) {
@@ -554,29 +553,29 @@ class ApiMain extends ApiBase {
        }
 
        protected function sendCacheHeaders() {
-               global $wgUseXVO, $wgVaryOnXFP;
                $response = $this->getRequest()->response();
                $out = $this->getOutput();
 
-               if ( $wgVaryOnXFP ) {
+               $config = $this->getConfig();
+
+               if ( $config->get( 'VaryOnXFP' ) ) {
                        $out->addVaryHeader( 'X-Forwarded-Proto' );
                }
 
                if ( $this->mCacheMode == 'private' ) {
                        $response->header( 'Cache-Control: private' );
-
                        return;
                }
 
+               $useXVO = $config->get( 'UseXVO' );
                if ( $this->mCacheMode == 'anon-public-user-private' ) {
                        $out->addVaryHeader( 'Cookie' );
                        $response->header( $out->getVaryHeader() );
-                       if ( $wgUseXVO ) {
+                       if ( $useXVO ) {
                                $response->header( $out->getXVO() );
                                if ( $out->haveCacheVaryCookies() ) {
                                        // Logged in, mark this request private
                                        $response->header( 'Cache-Control: private' );
-
                                        return;
                                }
                                // Logged out, send normal public headers below
@@ -591,7 +590,7 @@ class ApiMain extends ApiBase {
 
                // Send public headers
                $response->header( $out->getVaryHeader() );
-               if ( $wgUseXVO ) {
+               if ( $useXVO ) {
                        $response->header( $out->getXVO() );
                }
 
@@ -644,8 +643,6 @@ class ApiMain extends ApiBase {
         * @return string
         */
        protected function substituteResultWithError( $e ) {
-               global $wgShowHostnames;
-
                $result = $this->getResult();
 
                // Printer may not be initialized if the extractRequestParams() fails for the main module
@@ -669,6 +666,8 @@ class ApiMain extends ApiBase {
                // Update raw mode flag for the selected printer.
                $result->setRawMode( $this->mPrinter->getNeedsRawData() );
 
+               $config = $this->getConfig();
+
                if ( $e instanceof UsageException ) {
                        // User entered incorrect parameters - print usage screen
                        $errMessage = $e->getMessageArray();
@@ -678,9 +677,8 @@ class ApiMain extends ApiBase {
                                ApiResult::setContent( $errMessage, $this->makeHelpMsg() );
                        }
                } else {
-                       global $wgShowSQLErrors, $wgShowExceptionDetails;
                        // Something is seriously wrong
-                       if ( ( $e instanceof DBQueryError ) && !$wgShowSQLErrors ) {
+                       if ( ( $e instanceof DBQueryError ) && !$config->get( 'ShowSQLErrors' ) ) {
                                $info = 'Database query error';
                        } else {
                                $info = "Exception Caught: {$e->getMessage()}";
@@ -692,7 +690,7 @@ class ApiMain extends ApiBase {
                        );
                        ApiResult::setContent(
                                $errMessage,
-                               $wgShowExceptionDetails ? "\n\n{$e->getTraceAsString()}\n\n" : ''
+                               $config->get( 'ShowExceptionDetails' ) ? "\n\n{$e->getTraceAsString()}\n\n" : ''
                        );
                }
 
@@ -707,7 +705,7 @@ class ApiMain extends ApiBase {
                if ( !is_null( $requestid ) ) {
                        $result->addValue( null, 'requestid', $requestid );
                }
-               if ( $wgShowHostnames ) {
+               if ( $config->get( 'ShowHostnames' ) ) {
                        // servedby is especially useful when debugging errors
                        $result->addValue( null, 'servedby', wfHostName() );
                }
@@ -725,8 +723,6 @@ class ApiMain extends ApiBase {
         * @return array
         */
        protected function setupExecuteAction() {
-               global $wgShowHostnames;
-
                // First add the id to the top element
                $result = $this->getResult();
                $requestid = $this->getParameter( 'requestid' );
@@ -734,7 +730,7 @@ class ApiMain extends ApiBase {
                        $result->addValue( null, 'requestid', $requestid );
                }
 
-               if ( $wgShowHostnames ) {
+               if ( $this->getConfig()->get( 'ShowHostnames' ) ) {
                        $servedby = $this->getParameter( 'servedby' );
                        if ( $servedby ) {
                                $result->addValue( null, 'servedby', wfHostName() );
@@ -792,7 +788,6 @@ class ApiMain extends ApiBase {
        protected function checkMaxLag( $module, $params ) {
                if ( $module->shouldCheckMaxlag() && isset( $params['maxlag'] ) ) {
                        // Check for maxlag
-                       global $wgShowHostnames;
                        $maxLag = $params['maxlag'];
                        list( $host, $lag ) = wfGetLB()->getMaxLag();
                        if ( $lag > $maxLag ) {
@@ -801,7 +796,7 @@ class ApiMain extends ApiBase {
                                $response->header( 'Retry-After: ' . max( intval( $maxLag ), 5 ) );
                                $response->header( 'X-Database-Lag: ' . intval( $lag ) );
 
-                               if ( $wgShowHostnames ) {
+                               if ( $this->getConfig()->get( 'ShowHostnames' ) ) {
                                        $this->dieUsage( "Waiting for $host: $lag seconds lagged", 'maxlag' );
                                }
 
@@ -1057,8 +1052,7 @@ class ApiMain extends ApiBase {
         * @param bool $isError
         */
        protected function printResult( $isError ) {
-               global $wgDebugAPI;
-               if ( $wgDebugAPI !== false ) {
+               if ( $this->getConfig()->get( 'DebugAPI' ) !== false ) {
                        $this->setWarning( 'SECURITY WARNING: $wgDebugAPI is enabled' );
                }
 
@@ -1257,20 +1251,22 @@ class ApiMain extends ApiBase {
         * @return string
         */
        public function makeHelpMsg() {
-               global $wgMemc, $wgAPICacheHelpTimeout;
+               global $wgMemc;
                $this->setHelp();
                // Get help text from cache if present
                $key = wfMemcKey( 'apihelp', $this->getModuleName(),
                        str_replace( ' ', '_', SpecialVersion::getVersion( 'nodb' ) ) );
-               if ( $wgAPICacheHelpTimeout > 0 ) {
+
+               $cacheHelpTimeout = $this->getConfig()->get( 'APICacheHelpTimeout' );
+               if ( $cacheHelpTimeout > 0 ) {
                        $cached = $wgMemc->get( $key );
                        if ( $cached ) {
                                return $cached;
                        }
                }
                $retval = $this->reallyMakeHelpMsg();
-               if ( $wgAPICacheHelpTimeout > 0 ) {
-                       $wgMemc->set( $key, $retval, $wgAPICacheHelpTimeout );
+               if ( $cacheHelpTimeout > 0 ) {
+                       $wgMemc->set( $key, $retval, $cacheHelpTimeout );
                }
 
                return $retval;
index 68b62af..7fb045e 100644 (file)
@@ -45,7 +45,6 @@ class ApiOpenSearch extends ApiBase {
        }
 
        public function execute() {
-               global $wgEnableOpenSearchSuggest, $wgSearchSuggestCacheExpiry;
                $params = $this->extractRequestParams();
                $search = $params['search'];
                $limit = $params['limit'];
@@ -53,11 +52,11 @@ class ApiOpenSearch extends ApiBase {
                $suggest = $params['suggest'];
 
                // Some script that was loaded regardless of wgEnableOpenSearchSuggest, likely cached.
-               if ( $suggest && !$wgEnableOpenSearchSuggest ) {
+               if ( $suggest && !$this->getConfig()->get( 'EnableOpenSearchSuggest' ) ) {
                        $searches = array();
                } else {
                        // Open search results may be stored for a very long time
-                       $this->getMain()->setCacheMaxAge( $wgSearchSuggestCacheExpiry );
+                       $this->getMain()->setCacheMaxAge( $this->getConfig()->get( 'SearchSuggestCacheExpiry' ) );
                        $this->getMain()->setCacheMode( 'public' );
 
                        $searcher = new StringPrefixSearch;
@@ -70,12 +69,10 @@ class ApiOpenSearch extends ApiBase {
        }
 
        public function getAllowedParams() {
-               global $wgOpenSearchDefaultLimit;
-
                return array(
                        'search' => null,
                        'limit' => array(
-                               ApiBase::PARAM_DFLT => $wgOpenSearchDefaultLimit,
+                               ApiBase::PARAM_DFLT => $this->getConfig()->get( 'OpenSearchDefaultLimit' ),
                                ApiBase::PARAM_TYPE => 'limit',
                                ApiBase::PARAM_MIN => 1,
                                ApiBase::PARAM_MAX => 100,
index fcba5b5..a276117 100644 (file)
@@ -574,9 +574,9 @@ class ApiParse extends ApiBase {
                        'and will be removed in MediaWiki 1.24. Use "prop=langlinks" ' .
                        'to generate your own HTML.' );
 
-               global $wgContLang, $wgHideInterlanguageLinks;
+               global $wgContLang;
 
-               if ( $wgHideInterlanguageLinks || count( $languages ) == 0 ) {
+               if ( $this->getConfig()->get( 'HideInterlanguageLinks' ) || count( $languages ) == 0 ) {
                        return '';
                }
 
index 27f0f1e..b9f97e3 100644 (file)
@@ -29,7 +29,6 @@
  */
 class ApiProtect extends ApiBase {
        public function execute() {
-               global $wgRestrictionLevels;
                $params = $this->extractRequestParams();
 
                $pageObj = $this->getTitleOrPageId( $params, 'fromdbmaster' );
@@ -74,11 +73,11 @@ class ApiProtect extends ApiBase {
                        if ( !in_array( $p[0], $restrictionTypes ) && $p[0] != 'create' ) {
                                $this->dieUsageMsg( array( 'protect-invalidaction', $p[0] ) );
                        }
-                       if ( !in_array( $p[1], $wgRestrictionLevels ) && $p[1] != 'all' ) {
+                       if ( !in_array( $p[1], $this->getConfig()->get( 'RestrictionLevels' ) ) && $p[1] != 'all' ) {
                                $this->dieUsageMsg( array( 'protect-invalidlevel', $p[1] ) );
                        }
 
-                       if ( in_array( $expiry[$i], array( 'infinite', 'indefinite', 'never' ) ) ) {
+                       if ( in_array( $expiry[$i], array( 'infinite', 'indefinite', 'infinity', 'never' ) ) ) {
                                $expiryarray[$p[0]] = $db->getInfinity();
                        } else {
                                $exp = strtotime( $expiry[$i] );
@@ -188,7 +187,7 @@ class ApiProtect extends ApiBase {
                        'expiry' => array(
                                'Expiry timestamps. If only one timestamp is ' .
                                        'set, it\'ll be used for all protections.',
-                               'Use \'infinite\', \'indefinite\' or \'never\', for a never-expiring protection.'
+                               'Use \'infinite\', \'indefinite\', \'infinity\' or \'never\', for a never-expiring protection.'
                        ),
                        'reason' => 'Reason for (un)protecting',
                        'cascade' => array(
index e5d6a3c..981dc18 100644 (file)
@@ -54,17 +54,16 @@ class ApiPurge extends ApiBase {
 
                        if ( $forceLinkUpdate || $forceRecursiveLinkUpdate ) {
                                if ( !$this->getUser()->pingLimiter( 'linkpurge' ) ) {
-                                       global $wgEnableParserCache;
-
                                        $popts = $page->makeParserOptions( 'canonical' );
 
                                        # Parse content; note that HTML generation is only needed if we want to cache the result.
                                        $content = $page->getContent( Revision::RAW );
+                                       $enableParserCache = $this->getConfig()->get( 'EnableParserCache' );
                                        $p_result = $content->getParserOutput(
                                                $title,
                                                $page->getLatest(),
                                                $popts,
-                                               $wgEnableParserCache
+                                               $enableParserCache
                                        );
 
                                        # Update the links tables
@@ -74,7 +73,7 @@ class ApiPurge extends ApiBase {
 
                                        $r['linkupdate'] = '';
 
-                                       if ( $wgEnableParserCache ) {
+                                       if ( $enableParserCache ) {
                                                $pcache = ParserCache::singleton();
                                                $pcache->save( $p_result, $page, $popts );
                                        }
index fc115b8..a2f4121 100644 (file)
@@ -131,13 +131,13 @@ class ApiQuery extends ApiBase {
                $this->mModuleMgr = new ApiModuleManager( $this );
 
                // Allow custom modules to be added in LocalSettings.php
-               global $wgAPIPropModules, $wgAPIListModules, $wgAPIMetaModules;
+               $config = $this->getConfig();
                $this->mModuleMgr->addModules( self::$QueryPropModules, 'prop' );
-               $this->mModuleMgr->addModules( $wgAPIPropModules, 'prop' );
+               $this->mModuleMgr->addModules( $config->get( 'APIPropModules' ), 'prop' );
                $this->mModuleMgr->addModules( self::$QueryListModules, 'list' );
-               $this->mModuleMgr->addModules( $wgAPIListModules, 'list' );
+               $this->mModuleMgr->addModules( $config->get( 'APIListModules' ), 'list' );
                $this->mModuleMgr->addModules( self::$QueryMetaModules, 'meta' );
-               $this->mModuleMgr->addModules( $wgAPIMetaModules, 'meta' );
+               $this->mModuleMgr->addModules( $config->get( 'APIMetaModules' ), 'meta' );
 
                // Create PageSet that will process titles/pageids/revids/generator
                $this->mPageSet = new ApiPageSet( $this );
index 4266a8e..68d968f 100644 (file)
@@ -228,8 +228,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase {
                }
 
                if ( !is_null( $params['mime'] ) ) {
-                       global $wgMiserMode;
-                       if ( $wgMiserMode ) {
+                       if ( $this->getConfig()->get( 'MiserMode' ) ) {
                                $this->dieUsage( 'MIME search disabled in Miser Mode', 'mimesearchdisabled' );
                        }
 
index 8d4af0b..c6171e9 100644 (file)
@@ -63,14 +63,13 @@ class ApiQueryAllMessages extends ApiQueryBase {
                if ( in_array( '*', $params['messages'] ) ) {
                        $message_names = Language::getMessageKeysFor( $langObj->getCode() );
                        if ( $params['includelocal'] ) {
-                               global $wgLanguageCode;
                                $message_names = array_unique( array_merge(
                                        $message_names,
                                        // Pass in the content language code so we get local messages that have a
                                        // MediaWiki:msgkey page. We might theoretically miss messages that have no
                                        // MediaWiki:msgkey page but do have a MediaWiki:msgkey/lang page, but that's
                                        // just a stupid case.
-                                       MessageCache::singleton()->getAllMessageKeys( $wgLanguageCode )
+                                       MessageCache::singleton()->getAllMessageKeys( $this->getConfig()->get( 'LanguageCode' ) )
                                ) );
                        }
                        sort( $message_names );
@@ -116,7 +115,7 @@ class ApiQueryAllMessages extends ApiQueryBase {
                        global $wgContLang;
                        $lang = $langObj->getCode();
 
-                       $customisedMessages = AllmessagesTablePager::getCustomisedStatuses(
+                       $customisedMessages = AllMessagesTablePager::getCustomisedStatuses(
                                array_map( array( $langObj, 'ucfirst' ), $messages_target ), $lang, $lang != $wgContLang->getCode() );
 
                        $customised = $params['customised'] === 'modified';
index b283177..a3ba5ab 100644 (file)
@@ -225,8 +225,6 @@ class ApiQueryAllPages extends ApiQueryGeneratorBase {
        }
 
        public function getAllowedParams() {
-               global $wgRestrictionLevels;
-
                return array(
                        'from' => null,
                        'continue' => null,
@@ -255,7 +253,7 @@ class ApiQueryAllPages extends ApiQueryGeneratorBase {
                                ApiBase::PARAM_ISMULTI => true
                        ),
                        'prlevel' => array(
-                               ApiBase::PARAM_TYPE => $wgRestrictionLevels,
+                               ApiBase::PARAM_TYPE => $this->getConfig()->get( 'RestrictionLevels' ),
                                ApiBase::PARAM_ISMULTI => true
                        ),
                        'prfiltercascade' => array(
index 42464ef..e32104f 100644 (file)
@@ -155,7 +155,6 @@ class ApiQueryAllUsers extends ApiQueryBase {
                }
 
                if ( $params['activeusers'] ) {
-                       global $wgActiveUserDays;
                        $this->addTables( 'recentchanges' );
 
                        $this->addJoinConds( array( 'recentchanges' => array(
@@ -165,7 +164,7 @@ class ApiQueryAllUsers extends ApiQueryBase {
                        $this->addFields( array( 'recentedits' => 'COUNT(*)' ) );
 
                        $this->addWhere( 'rc_log_type IS NULL OR rc_log_type != ' . $db->addQuotes( 'newusers' ) );
-                       $timestamp = $db->timestamp( wfTimestamp( TS_UNIX ) - $wgActiveUserDays * 24 * 3600 );
+                       $timestamp = $db->timestamp( wfTimestamp( TS_UNIX ) - $this->getConfig()->get( 'ActiveUserDays' ) * 24 * 3600 );
                        $this->addWhere( 'rc_timestamp >= ' . $db->addQuotes( $timestamp ) );
 
                        $this->addOption( 'GROUP BY', $userFieldToSort );
@@ -368,8 +367,6 @@ class ApiQueryAllUsers extends ApiQueryBase {
        }
 
        public function getParamDescription() {
-               global $wgActiveUserDays;
-
                return array(
                        'from' => 'The user name to start enumerating from',
                        'to' => 'The user name to stop enumerating at',
@@ -391,7 +388,7 @@ class ApiQueryAllUsers extends ApiQueryBase {
                        ),
                        'limit' => 'How many total user names to return',
                        'witheditsonly' => 'Only list users who have made edits',
-                       'activeusers' => "Only list users active in the last {$wgActiveUserDays} days(s)"
+                       'activeusers' => "Only list users active in the last {$this->getConfig()->get( 'ActiveUserDays' )} days(s)"
                );
        }
 
index 01384c0..8e014df 100644 (file)
@@ -321,8 +321,7 @@ abstract class ApiQueryBase extends ApiBase {
                );
                $this->profileDBOut();
 
-               global $wgAPIMaxDBRows;
-               if ( $rowcount > $wgAPIMaxDBRows ) {
+               if ( $rowcount > $this->getConfig()->get( 'APIMaxDBRows' ) ) {
                        return false;
                }
 
index 7d27a64..d62e87d 100644 (file)
@@ -109,14 +109,14 @@ class ApiQueryBlocks extends ApiQueryBase {
                        $this->addWhereFld( 'ipb_auto', 0 );
                }
                if ( isset( $params['ip'] ) ) {
-                       global $wgBlockCIDRLimit;
+                       $blockCIDRLimit = $this->getConfig()->get( 'BlockCIDRLimit' );
                        if ( IP::isIPv4( $params['ip'] ) ) {
                                $type = 'IPv4';
-                               $cidrLimit = $wgBlockCIDRLimit['IPv4'];
+                               $cidrLimit = $blockCIDRLimit['IPv4'];
                                $prefixLen = 0;
                        } elseif ( IP::isIPv6( $params['ip'] ) ) {
                                $type = 'IPv6';
-                               $cidrLimit = $wgBlockCIDRLimit['IPv6'];
+                               $cidrLimit = $blockCIDRLimit['IPv6'];
                                $prefixLen = 3; // IP::toHex output is prefixed with "v6-"
                        } else {
                                $this->dieUsage( 'IP parameter is not valid', 'param_ip' );
@@ -331,7 +331,7 @@ class ApiQueryBlocks extends ApiQueryBase {
        }
 
        public function getParamDescription() {
-               global $wgBlockCIDRLimit;
+               $blockCIDRLimit = $this->getConfig()->get( 'BlockCIDRLimit' );
                $p = $this->getModulePrefix();
 
                return array(
@@ -343,7 +343,7 @@ class ApiQueryBlocks extends ApiQueryBase {
                        'ip' => array(
                                'Get all blocks applying to this IP or CIDR range, including range blocks.',
                                "Cannot be used together with bkusers. CIDR ranges broader than " .
-                                       "IPv4/{$wgBlockCIDRLimit['IPv4']} or IPv6/{$wgBlockCIDRLimit['IPv6']} " .
+                                       "IPv4/{$blockCIDRLimit['IPv4']} or IPv6/{$blockCIDRLimit['IPv6']} " .
                                        "are not accepted"
                        ),
                        'limit' => 'The maximum amount of blocks to list',
@@ -427,18 +427,18 @@ class ApiQueryBlocks extends ApiQueryBase {
        }
 
        public function getPossibleErrors() {
-               global $wgBlockCIDRLimit;
+               $blockCIDRLimit = $this->getConfig()->get( 'BlockCIDRLimit' );
 
                return array_merge( parent::getPossibleErrors(),
                        $this->getRequireMaxOneParameterErrorMessages( array( 'users', 'ip' ) ),
                        array(
                                array(
                                        'code' => 'cidrtoobroad',
-                                       'info' => "IPv4 CIDR ranges broader than /{$wgBlockCIDRLimit['IPv4']} are not accepted"
+                                       'info' => "IPv4 CIDR ranges broader than /{$blockCIDRLimit['IPv4']} are not accepted"
                                ),
                                array(
                                        'code' => 'cidrtoobroad',
-                                       'info' => "IPv6 CIDR ranges broader than /{$wgBlockCIDRLimit['IPv6']} are not accepted"
+                                       'info' => "IPv6 CIDR ranges broader than /{$blockCIDRLimit['IPv6']} are not accepted"
                                ),
                                array( 'code' => 'param_ip', 'info' => 'IP parameter is not valid' ),
                                array( 'code' => 'param_user', 'info' => 'User parameter may not be empty' ),
index a3bc3b9..dc11071 100644 (file)
@@ -86,9 +86,8 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
 
                // Scanning large datasets for rare categories sucks, and I already told
                // how to have efficient subcategory access :-) ~~~~ (oh well, domas)
-               global $wgMiserMode;
                $miser_ns = array();
-               if ( $wgMiserMode ) {
+               if ( $this->getConfig()->get( 'MiserMode' ) ) {
                        $miser_ns = $params['namespace'];
                } else {
                        $this->addWhereFld( 'page_namespace', $params['namespace'] );
@@ -339,7 +338,6 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
        }
 
        public function getParamDescription() {
-               global $wgMiserMode;
                $p = $this->getModulePrefix();
                $desc = array(
                        'title' => "Which category to enumerate (required). Must include " .
@@ -374,7 +372,7 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
                        'limit' => 'The maximum number of pages to return.',
                );
 
-               if ( $wgMiserMode ) {
+               if ( $this->getConfig()->get( 'MiserMode' ) ) {
                        $desc['namespace'] = array(
                                $desc['namespace'],
                                "NOTE: Due to \$wgMiserMode, using this may result in fewer than \"{$p}limit\" results",
index 070681c..33e8739 100644 (file)
@@ -59,9 +59,8 @@ class ApiQueryExtLinksUsage extends ApiQueryGeneratorBase {
                $this->addOption( 'USE INDEX', 'el_index' );
                $this->addWhere( 'page_id=el_from' );
 
-               global $wgMiserMode;
                $miser_ns = array();
-               if ( $wgMiserMode ) {
+               if ( $this->getConfig()->get( 'MiserMode' ) ) {
                        $miser_ns = $params['namespace'];
                } else {
                        $this->addWhereFld( 'page_namespace', $params['namespace'] );
@@ -209,7 +208,6 @@ class ApiQueryExtLinksUsage extends ApiQueryGeneratorBase {
        }
 
        public function getParamDescription() {
-               global $wgMiserMode;
                $p = $this->getModulePrefix();
                $desc = array(
                        'prop' => array(
@@ -230,7 +228,7 @@ class ApiQueryExtLinksUsage extends ApiQueryGeneratorBase {
                        'expandurl' => 'Expand protocol-relative URLs with the canonical protocol',
                );
 
-               if ( $wgMiserMode ) {
+               if ( $this->getConfig()->get( 'MiserMode' ) ) {
                        $desc['namespace'] = array(
                                $desc['namespace'],
                                "NOTE: Due to \$wgMiserMode, using this may result in fewer than \"{$p}limit\" results",
index 5a82f19..4b49a80 100644 (file)
@@ -256,15 +256,13 @@ class ApiQueryImageInfo extends ApiQueryBase {
         * @return array Array of parameters for transform.
         */
        protected function mergeThumbParams( $image, $thumbParams, $otherParams ) {
-               global $wgThumbLimits;
-
                if ( !isset( $thumbParams['width'] ) && isset( $thumbParams['height'] ) ) {
                        // We want to limit only by height in this situation, so pass the
                        // image's full width as the limiting width. But some file types
                        // don't have a width of their own, so pick something arbitrary so
                        // thumbnailing the default icon works.
                        if ( $image->getWidth() <= 0 ) {
-                               $thumbParams['width'] = max( $wgThumbLimits );
+                               $thumbParams['width'] = max( $this->getConfig()->get( 'ThumbLimits' ) );
                        } else {
                                $thumbParams['width'] = $image->getWidth();
                        }
index f160791..8b6886d 100644 (file)
@@ -57,21 +57,20 @@ class ApiQueryInfo extends ApiQueryBase {
         * @return void
         */
        public function requestExtraData( $pageSet ) {
-               global $wgDisableCounters, $wgContentHandlerUseDB;
-
                $pageSet->requestField( 'page_restrictions' );
                // when resolving redirects, no page will have this field
                if ( !$pageSet->isResolvingRedirects() ) {
                        $pageSet->requestField( 'page_is_redirect' );
                }
                $pageSet->requestField( 'page_is_new' );
-               if ( !$wgDisableCounters ) {
+               $config = $this->getConfig();
+               if ( !$config->get( 'DisableCounters' ) ) {
                        $pageSet->requestField( 'page_counter' );
                }
                $pageSet->requestField( 'page_touched' );
                $pageSet->requestField( 'page_latest' );
                $pageSet->requestField( 'page_len' );
-               if ( $wgContentHandlerUseDB ) {
+               if ( $config->get( 'ContentHandlerUseDB' ) ) {
                        $pageSet->requestField( 'page_content_model' );
                }
        }
@@ -295,9 +294,7 @@ class ApiQueryInfo extends ApiQueryBase {
                        : array();
                $this->pageIsNew = $pageSet->getCustomField( 'page_is_new' );
 
-               global $wgDisableCounters;
-
-               if ( !$wgDisableCounters ) {
+               if ( !$this->getConfig()->get( 'DisableCounters' ) ) {
                        $this->pageCounter = $pageSet->getCustomField( 'page_counter' );
                }
                $this->pageTouched = $pageSet->getCustomField( 'page_touched' );
@@ -359,11 +356,9 @@ class ApiQueryInfo extends ApiQueryBase {
                $pageInfo['pagelanguage'] = $title->getPageLanguage()->getCode();
 
                if ( $titleExists ) {
-                       global $wgDisableCounters;
-
                        $pageInfo['touched'] = wfTimestamp( TS_ISO_8601, $this->pageTouched[$pageid] );
                        $pageInfo['lastrevid'] = intval( $this->pageLatest[$pageid] );
-                       $pageInfo['counter'] = $wgDisableCounters
+                       $pageInfo['counter'] = $this->getConfig()->get( 'DisableCounters' )
                                ? ''
                                : intval( $this->pageCounter[$pageid] );
                        $pageInfo['length'] = intval( $this->pageLength[$pageid] );
@@ -711,15 +706,14 @@ class ApiQueryInfo extends ApiQueryBase {
         * Get the count of watchers and put it in $this->watchers
         */
        private function getWatcherInfo() {
-               global $wgUnwatchedPageThreshold;
-
                if ( count( $this->everything ) == 0 ) {
                        return;
                }
 
                $user = $this->getUser();
                $canUnwatchedpages = $user->isAllowed( 'unwatchedpages' );
-               if ( !$canUnwatchedpages && !is_int( $wgUnwatchedPageThreshold ) ) {
+               $unwatchedPageThreshold = $this->getConfig()->get( 'UnwatchedPageThreshold' );
+               if ( !$canUnwatchedpages && !is_int( $unwatchedPageThreshold ) ) {
                        return;
                }
 
@@ -737,7 +731,7 @@ class ApiQueryInfo extends ApiQueryBase {
                ) );
                $this->addOption( 'GROUP BY', array( 'wl_namespace', 'wl_title' ) );
                if ( !$canUnwatchedpages ) {
-                       $this->addOption( 'HAVING', "COUNT(*) >= $wgUnwatchedPageThreshold" );
+                       $this->addOption( 'HAVING', "COUNT(*) >= $unwatchedPageThreshold" );
                }
 
                $res = $this->select( __METHOD__ );
index d74526b..3aad785 100644 (file)
@@ -187,8 +187,7 @@ class ApiQueryLogEvents extends ApiQueryBase {
                $prefix = $params['prefix'];
 
                if ( !is_null( $prefix ) ) {
-                       global $wgMiserMode;
-                       if ( $wgMiserMode ) {
+                       if ( $this->getConfig()->get( 'MiserMode' ) ) {
                                $this->dieUsage( 'Prefix search disabled in Miser Mode', 'prefixsearchdisabled' );
                        }
 
@@ -449,10 +448,12 @@ class ApiQueryLogEvents extends ApiQueryBase {
                return $vals;
        }
 
+       /**
+        * @return array
+        */
        private function getAllowedLogActions() {
-               global $wgLogActions, $wgLogActionsHandlers;
-
-               return array_keys( array_merge( $wgLogActions, $wgLogActionsHandlers ) );
+               $config = $this->getConfig();
+               return array_keys( array_merge( $config->get( 'LogActions' ), $config->get( 'LogActionsHandlers' ) ) );
        }
 
        public function getCacheMode( $params ) {
@@ -472,8 +473,7 @@ class ApiQueryLogEvents extends ApiQueryBase {
        }
 
        public function getAllowedParams( $flags = 0 ) {
-               global $wgLogTypes;
-
+               $config = $this->getConfig();
                return array(
                        'prop' => array(
                                ApiBase::PARAM_ISMULTI => true,
@@ -492,7 +492,7 @@ class ApiQueryLogEvents extends ApiQueryBase {
                                )
                        ),
                        'type' => array(
-                               ApiBase::PARAM_TYPE => $wgLogTypes
+                               ApiBase::PARAM_TYPE => $config->get( 'LogTypes' )
                        ),
                        'action' => array(
                                // validation on request is done in execute()
@@ -567,8 +567,6 @@ class ApiQueryLogEvents extends ApiQueryBase {
        }
 
        public function getResultProperties() {
-               global $wgLogTypes;
-
                return array(
                        'ids' => array(
                                'logid' => 'integer',
@@ -580,7 +578,7 @@ class ApiQueryLogEvents extends ApiQueryBase {
                        ),
                        'type' => array(
                                'type' => array(
-                                       ApiBase::PROP_TYPE => $wgLogTypes
+                                       ApiBase::PROP_TYPE => $this->getConfig()->get( 'LogTypes' )
                                ),
                                'action' => 'string'
                        ),
index 8f120c6..2cc18c5 100644 (file)
@@ -175,8 +175,6 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
        }
 
        public function getAllowedParams() {
-               global $wgRestrictionLevels;
-
                return array(
                        'namespace' => array(
                                ApiBase::PARAM_ISMULTI => true,
@@ -184,7 +182,7 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
                        ),
                        'level' => array(
                                ApiBase::PARAM_ISMULTI => true,
-                               ApiBase::PARAM_TYPE => array_diff( $wgRestrictionLevels, array( '' ) )
+                               ApiBase::PARAM_TYPE => array_diff( $this->getConfig()->get( 'RestrictionLevels' ), array( '' ) )
                        ),
                        'limit' => array(
                                ApiBase::PARAM_DFLT => 10,
@@ -246,8 +244,6 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
        }
 
        public function getResultProperties() {
-               global $wgRestrictionLevels;
-
                return array(
                        '' => array(
                                'ns' => 'namespace',
@@ -277,7 +273,7 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
                        ),
                        'level' => array(
                                'level' => array(
-                                       ApiBase::PROP_TYPE => array_diff( $wgRestrictionLevels, array( '' ) )
+                                       ApiBase::PROP_TYPE => array_diff( $this->getConfig()->get( 'RestrictionLevels' ), array( '' ) )
                                )
                        )
                );
index 45950e7..1a7f826 100644 (file)
@@ -35,10 +35,10 @@ class ApiQueryQueryPage extends ApiQueryGeneratorBase {
        public function __construct( ApiQuery $query, $moduleName ) {
                parent::__construct( $query, $moduleName, 'qp' );
                // Build mapping from special page names to QueryPage classes
-               global $wgAPIUselessQueryPages;
+               $uselessQueryPages = $this->getConfig()->get( 'APIUselessQueryPages' );
                $this->qpMap = array();
                foreach ( QueryPage::getPages() as $page ) {
-                       if ( !in_array( $page[1], $wgAPIUselessQueryPages ) ) {
+                       if ( !in_array( $page[1], $uselessQueryPages ) ) {
                                $this->qpMap[$page[1]] = $page[0];
                        }
                }
@@ -56,8 +56,6 @@ class ApiQueryQueryPage extends ApiQueryGeneratorBase {
         * @param ApiPageSet $resultPageSet
         */
        public function run( $resultPageSet = null ) {
-               global $wgQueryCacheLimit;
-
                $params = $this->extractRequestParams();
                $result = $this->getResult();
 
@@ -77,7 +75,7 @@ class ApiQueryQueryPage extends ApiQueryGeneratorBase {
                                if ( $ts ) {
                                        $r['cachedtimestamp'] = wfTimestamp( TS_ISO_8601, $ts );
                                }
-                               $r['maxresults'] = $wgQueryCacheLimit;
+                               $r['maxresults'] = $this->getConfig()->get( 'QueryCacheLimit' );
                        }
                }
                $result->addValue( array( 'query' ), $this->getModuleName(), $r );
index 1fb2a69..3067006 100644 (file)
@@ -738,7 +738,6 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
        }
 
        public function getResultProperties() {
-               global $wgLogTypes;
                $props = array(
                        '' => array(
                                'type' => array(
@@ -814,7 +813,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                                        ApiBase::PROP_NULLABLE => true
                                ),
                                'logtype' => array(
-                                       ApiBase::PROP_TYPE => $wgLogTypes,
+                                       ApiBase::PROP_TYPE => $config->get( 'LogTypes' ),
                                        ApiBase::PROP_NULLABLE => true
                                ),
                                'logaction' => array(
index 50c3c7b..3ff6805 100644 (file)
@@ -624,10 +624,9 @@ class ApiQueryRevisions extends ApiQueryBase {
                }
 
                if ( $content && ( !is_null( $this->diffto ) || !is_null( $this->difftotext ) ) ) {
-                       global $wgAPIMaxUncachedDiffs;
                        static $n = 0; // Number of uncached diffs we've had
 
-                       if ( $n < $wgAPIMaxUncachedDiffs ) {
+                       if ( $n < $this->getConfig()->get( 'APIMaxUncachedDiffs' ) ) {
                                $vals['diff'] = array();
                                $context = new DerivativeContext( $this->getContext() );
                                $context->setTitle( $title );
index d67fac2..1c41113 100644 (file)
@@ -257,8 +257,6 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
        }
 
        public function getAllowedParams() {
-               global $wgSearchType;
-
                $params = array(
                        'search' => array(
                                ApiBase::PARAM_TYPE => 'string',
@@ -319,7 +317,7 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
                                $alternatives[0] = self::BACKEND_NULL_PARAM;
                        }
                        $params['backend'] = array(
-                               ApiBase::PARAM_DFLT => $wgSearchType,
+                               ApiBase::PARAM_DFLT => $this->getConfig()->get( 'SearchType' ),
                                ApiBase::PARAM_TYPE => $alternatives,
                        );
                }
index 0a97d04..ca7cc21 100644 (file)
@@ -120,31 +120,34 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        protected function appendGeneralInfo( $property ) {
-               global $wgContLang, $wgDisableLangConversion, $wgDisableTitleConversion;
+               global $wgContLang;
+
+               $config = $this->getConfig();
 
                $data = array();
                $mainPage = Title::newMainPage();
                $data['mainpage'] = $mainPage->getPrefixedText();
                $data['base'] = wfExpandUrl( $mainPage->getFullURL(), PROTO_CURRENT );
-               $data['sitename'] = $GLOBALS['wgSitename'];
+               $data['sitename'] = $config->get( 'Sitename' );
 
                // wgLogo can either be a relative or an absolute path
                // make sure we always return an absolute path
-               $data['logo'] = wfExpandUrl( $GLOBALS['wgLogo'], PROTO_RELATIVE );
+               $data['logo'] = wfExpandUrl( $config->get( 'Logo' ), PROTO_RELATIVE );
+
+               $data['generator'] = "MediaWiki {$config->get( 'Version' )}";
 
-               $data['generator'] = "MediaWiki {$GLOBALS['wgVersion']}";
                $data['phpversion'] = phpversion();
                $data['phpsapi'] = PHP_SAPI;
-               $data['dbtype'] = $GLOBALS['wgDBtype'];
+               $data['dbtype'] = $config->get( 'DBtype' );
                $data['dbversion'] = $this->getDB()->getServerVersion();
 
                $allowFrom = array( '' );
                $allowException = true;
-               if ( !$GLOBALS['wgAllowExternalImages'] ) {
-                       if ( $GLOBALS['wgEnableImageWhitelist'] ) {
+               if ( !$config->get( 'AllowExternalImages' ) ) {
+                       if ( $config->get( 'EnableImageWhitelist' ) ) {
                                $data['imagewhitelistenabled'] = '';
                        }
-                       $allowFrom = $GLOBALS['wgAllowExternalImagesFrom'];
+                       $allowFrom = $config->get( 'AllowExternalImagesFrom' );
                        $allowException = !empty( $allowFrom );
                }
                if ( $allowException ) {
@@ -152,11 +155,11 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                        $this->getResult()->setIndexedTagName( $data['externalimages'], 'prefix' );
                }
 
-               if ( !$wgDisableLangConversion ) {
+               if ( !$config->get( 'DisableLangConversion' ) ) {
                        $data['langconversion'] = '';
                }
 
-               if ( !$wgDisableTitleConversion ) {
+               if ( !$config->get( 'DisableTitleConversion' ) ) {
                        $data['titleconversion'] = '';
                }
 
@@ -177,22 +180,22 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                        $data['linktrail'] = '';
                }
 
-               $git = SpecialVersion::getGitHeadSha1( $GLOBALS['IP'] );
+               global $IP;
+               $git = SpecialVersion::getGitHeadSha1( $IP );
                if ( $git ) {
                        $data['git-hash'] = $git;
                        $data['git-branch'] =
                                SpecialVersion::getGitCurrentBranch( $GLOBALS['IP'] );
                } else {
-                       $svn = SpecialVersion::getSvnRevision( $GLOBALS['IP'] );
+                       $svn = SpecialVersion::getSvnRevision( $IP );
                        if ( $svn ) {
                                $data['rev'] = $svn;
                        }
                }
 
                // 'case-insensitive' option is reserved for future
-               $data['case'] = $GLOBALS['wgCapitalLinks'] ? 'first-letter' : 'case-sensitive';
-
-               $data['lang'] = $GLOBALS['wgLanguageCode'];
+               $data['case'] = $config->get( 'CapitalLinks' ) ? 'first-letter' : 'case-sensitive';
+               $data['lang'] = $config->get( 'LanguageCode' );
 
                $fallbacks = array();
                foreach ( $wgContLang->getFallbackLanguages() as $code ) {
@@ -222,12 +225,12 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                        $data['readonly'] = '';
                        $data['readonlyreason'] = wfReadOnlyReason();
                }
-               if ( $GLOBALS['wgEnableWriteAPI'] ) {
+               if ( $config->get( 'EnableWriteAPI' ) ) {
                        $data['writeapi'] = '';
                }
 
-               $tz = $GLOBALS['wgLocaltimezone'];
-               $offset = $GLOBALS['wgLocalTZoffset'];
+               $tz = $config->get( 'Localtimezone' );
+               $offset = $config->get( 'LocalTZoffset' );
                if ( is_null( $tz ) ) {
                        $tz = 'UTC';
                        $offset = 0;
@@ -236,33 +239,34 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                }
                $data['timezone'] = $tz;
                $data['timeoffset'] = intval( $offset );
-               $data['articlepath'] = $GLOBALS['wgArticlePath'];
-               $data['scriptpath'] = $GLOBALS['wgScriptPath'];
-               $data['script'] = $GLOBALS['wgScript'];
-               $data['variantarticlepath'] = $GLOBALS['wgVariantArticlePath'];
-               $data['server'] = $GLOBALS['wgServer'];
-               $data['servername'] = $GLOBALS['wgServerName'];
+               $data['articlepath'] = $config->get( 'ArticlePath' );
+               $data['scriptpath'] = $config->get( 'ScriptPath' );
+               $data['script'] = $config->get( 'Script' );
+               $data['variantarticlepath'] = $config->get( 'VariantArticlePath'  );
+               $data['server'] = $config->get( 'Server' );
+               $data['servername'] = $config->get( 'ServerName' );
                $data['wikiid'] = wfWikiID();
                $data['time'] = wfTimestamp( TS_ISO_8601, time() );
 
-               if ( $GLOBALS['wgMiserMode'] ) {
+               if ( $config->get( 'MiserMode' ) ) {
                        $data['misermode'] = '';
                }
 
                $data['maxuploadsize'] = UploadBase::getMaxUploadSize();
 
-               $data['thumblimits'] = $GLOBALS['wgThumbLimits'];
+               $data['thumblimits'] = $config->get( 'ThumbLimits' );
                $this->getResult()->setIndexedTagName( $data['thumblimits'], 'limit' );
                $data['imagelimits'] = array();
                $this->getResult()->setIndexedTagName( $data['imagelimits'], 'limit' );
-               foreach ( $GLOBALS['wgImageLimits'] as $k => $limit ) {
+               foreach ( $config->get( 'ImageLimits' ) as $k => $limit ) {
                        $data['imagelimits'][$k] = array( 'width' => $limit[0], 'height' => $limit[1] );
                }
 
-               if ( !empty( $GLOBALS['wgFavicon'] ) ) {
+                $favicon = $config->get( 'Favicon' );
+                if ( !empty( $favicon ) ) {
                        // wgFavicon can either be a relative or an absolute path
                        // make sure we always return an absolute path
-                       $data['favicon'] = wfExpandUrl( $GLOBALS['wgFavicon'], PROTO_RELATIVE );
+                       $data['favicon'] = wfExpandUrl( $favicon, PROTO_RELATIVE );
                }
 
                wfRunHooks( 'APIQuerySiteInfoGeneralInfo', array( $this, &$data ) );
@@ -309,8 +313,8 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        protected function appendNamespaceAliases( $property ) {
-               global $wgNamespaceAliases, $wgContLang;
-               $aliases = array_merge( $wgNamespaceAliases, $wgContLang->getNamespaceAliases() );
+               global $wgContLang;
+               $aliases = array_merge( $this->getConfig()->get( 'NamespaceAliases' ), $wgContLang->getNamespaceAliases() );
                $namespaces = $wgContLang->getNamespaces();
                $data = array();
                foreach ( $aliases as $title => $ns ) {
@@ -415,11 +419,11 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        protected function appendDbReplLagInfo( $property, $includeAll ) {
-               global $wgShowHostnames;
                $data = array();
                $lb = wfGetLB();
+               $showHostnames = $this->getConfig()->get( 'ShowHostnames' );
                if ( $includeAll ) {
-                       if ( !$wgShowHostnames ) {
+                       if ( !$showHostnames ) {
                                $this->dieUsage(
                                        'Cannot view all servers info unless $wgShowHostnames is true',
                                        'includeAllDenied'
@@ -436,7 +440,7 @@ class ApiQuerySiteinfo extends ApiQueryBase {
                } else {
                        list( , $lag, $index ) = $lb->getMaxLag();
                        $data[] = array(
-                               'host' => $wgShowHostnames
+                               'host' => $showHostnames
                                                ? $lb->getServerName( $index )
                                                : '',
                                'lag' => intval( $lag )
@@ -450,11 +454,10 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        protected function appendStatistics( $property ) {
-               global $wgDisableCounters;
                $data = array();
                $data['pages'] = intval( SiteStats::pages() );
                $data['articles'] = intval( SiteStats::articles() );
-               if ( !$wgDisableCounters ) {
+               if ( !$this->getConfig()->get( 'DisableCounters' ) ) {
                        $data['views'] = intval( SiteStats::views() );
                }
                $data['edits'] = intval( SiteStats::edits() );
@@ -470,33 +473,32 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        protected function appendUserGroups( $property, $numberInGroup ) {
-               global $wgGroupPermissions, $wgAddGroups, $wgRemoveGroups;
-               global $wgGroupsAddToSelf, $wgGroupsRemoveFromSelf;
+               $config = $this->getConfig();
 
                $data = array();
                $result = $this->getResult();
-               foreach ( $wgGroupPermissions as $group => $permissions ) {
+               foreach ( $config->get( 'GroupPermissions' ) as $group => $permissions ) {
                        $arr = array(
                                'name' => $group,
                                'rights' => array_keys( $permissions, true ),
                        );
 
                        if ( $numberInGroup ) {
-                               global $wgAutopromote;
+                               $autopromote = $config->get( 'Autopromote' );
 
                                if ( $group == 'user' ) {
                                        $arr['number'] = SiteStats::users();
                                // '*' and autopromote groups have no size
-                               } elseif ( $group !== '*' && !isset( $wgAutopromote[$group] ) ) {
+                               } elseif ( $group !== '*' && !isset( $autopromote[$group] ) ) {
                                        $arr['number'] = SiteStats::numberInGroup( $group );
                                }
                        }
 
                        $groupArr = array(
-                               'add' => $wgAddGroups,
-                               'remove' => $wgRemoveGroups,
-                               'add-self' => $wgGroupsAddToSelf,
-                               'remove-self' => $wgGroupsRemoveFromSelf
+                               'add' => $config->get( 'AddGroups' ),
+                               'remove' => $config->get( 'RemoveGroups' ),
+                               'add-self' => $config->get( 'GroupsAddToSelf' ),
+                               'remove-self' => $config->get( 'GroupsRemoveFromSelf' )
                        );
 
                        foreach ( $groupArr as $type => $rights ) {
@@ -516,10 +518,8 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        protected function appendFileExtensions( $property ) {
-               global $wgFileExtensions;
-
                $data = array();
-               foreach ( array_unique( $wgFileExtensions ) as $ext ) {
+               foreach ( array_unique( $this->getConfig()->get( 'FileExtensions' ) ) as $ext ) {
                        $data[] = array( 'ext' => $ext );
                }
                $this->getResult()->setIndexedTagName( $data, 'fe' );
@@ -528,9 +528,8 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        protected function appendExtensions( $property ) {
-               global $wgExtensionCredits;
                $data = array();
-               foreach ( $wgExtensionCredits as $type => $extensions ) {
+               foreach ( $this->getConfig()->get( 'ExtensionCredits' ) as $type => $extensions ) {
                        foreach ( $extensions as $ext ) {
                                $ret = array();
                                $ret['type'] = $type;
@@ -611,10 +610,10 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        protected function appendRightsInfo( $property ) {
-               global $wgRightsPage, $wgRightsUrl, $wgRightsText;
-               $title = Title::newFromText( $wgRightsPage );
-               $url = $title ? wfExpandUrl( $title->getFullURL(), PROTO_CURRENT ) : $wgRightsUrl;
-               $text = $wgRightsText;
+               $config = $this->getConfig();
+               $title = Title::newFromText( $config->get( 'RightsPage' ) );
+               $url = $title ? wfExpandUrl( $title->getFullURL(), PROTO_CURRENT ) : $config->get( 'RightsUrl' );
+               $text = $config->get( 'RightsText' );
                if ( !$text && $title ) {
                        $text = $title->getPrefixedText();
                }
@@ -628,14 +627,12 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        protected function appendRestrictions( $property ) {
-               global $wgRestrictionTypes, $wgRestrictionLevels,
-                       $wgCascadingRestrictionLevels, $wgSemiprotectedRestrictionLevels;
-
+               $config = $this->getConfig();
                $data = array(
-                       'types' => $wgRestrictionTypes,
-                       'levels' => $wgRestrictionLevels,
-                       'cascadinglevels' => $wgCascadingRestrictionLevels,
-                       'semiprotectedlevels' => $wgSemiprotectedRestrictionLevels,
+                       'types' => $config->get( 'RestrictionTypes' ),
+                       'levels' => $config->get( 'RestrictionLevels' ),
+                       'cascadinglevels' => $config->get( 'CascadingRestrictionLevels' ),
+                       'semiprotectedlevels' => $config->get( 'SemiprotectedRestrictionLevels' ),
                );
 
                $this->getResult()->setIndexedTagName( $data['types'], 'type' );
@@ -709,9 +706,8 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        public function appendProtocols( $property ) {
-               global $wgUrlProtocols;
                // Make a copy of the global so we don't try to set the _element key of it - bug 45130
-               $protocols = array_values( $wgUrlProtocols );
+               $protocols = array_values( $this->getConfig()->get( 'UrlProtocols' ) );
                $this->getResult()->setIndexedTagName( $protocols, 'p' );
 
                return $this->getResult()->addValue( 'query', $property, $protocols );
@@ -726,15 +722,15 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        public function appendSubscribedHooks( $property ) {
-               global $wgHooks;
-               $myWgHooks = $wgHooks;
+               $hooks = $this->getConfig()->get( 'Hooks' );
+               $myWgHooks = $hooks;
                ksort( $myWgHooks );
 
                $data = array();
-               foreach ( $myWgHooks as $hook => $hooks ) {
+               foreach ( $myWgHooks as $name => $subscribers ) {
                        $arr = array(
-                               'name' => $hook,
-                               'subscribers' => array_map( array( 'SpecialVersion', 'arrayToString' ), $hooks ),
+                               'name' => $name,
+                               'subscribers' => array_map( array( 'SpecialVersion', 'arrayToString' ), $subscribers ),
                        );
 
                        $this->getResult()->setIndexedTagName( $arr['subscribers'], 's' );
index 568ccb5..24c4c20 100644 (file)
@@ -517,8 +517,8 @@ class ApiQueryContributions extends ApiQueryBase {
        }
 
        public function getParamDescription() {
-               global $wgRCMaxAge;
                $p = $this->getModulePrefix();
+               $RCMaxAge = $this->getConfig()->get( 'RCMaxAge' );
 
                return array(
                        'limit' => 'The maximum number of contributions to return',
@@ -548,7 +548,7 @@ class ApiQueryContributions extends ApiQueryBase {
                        'show' => array(
                                "Show only items that meet thse criteria, e.g. non minor edits only: {$p}show=!minor",
                                "NOTE: If {$p}show=patrolled or {$p}show=!patrolled is set, revisions older than",
-                               "\$wgRCMaxAge ($wgRCMaxAge) won't be shown",
+                               "\$wgRCMaxAge ($RCMaxAge) won't be shown",
                        ),
                        'tag' => 'Only list revisions tagged with this tag',
                        'toponly' => 'Only list changes which are the latest revision',
index e46baa6..140f35a 100644 (file)
@@ -52,7 +52,6 @@ class ApiQueryUserInfo extends ApiQueryBase {
        }
 
        protected function getCurrentUserInfo() {
-               global $wgHiddenPrefs, $wgRCMaxAge;
                $user = $this->getUser();
                $result = $this->getResult();
                $vals = array();
@@ -122,7 +121,7 @@ class ApiQueryUserInfo extends ApiQueryBase {
                        $vals['ratelimits'] = $this->getRateLimits();
                }
 
-               if ( isset( $this->prop['realname'] ) && !in_array( 'realname', $wgHiddenPrefs ) ) {
+               if ( isset( $this->prop['realname'] ) && !in_array( 'realname', $this->getConfig()->get( 'HiddenPrefs' ) ) ) {
                        $vals['realname'] = $user->getRealName();
                }
 
@@ -181,7 +180,6 @@ class ApiQueryUserInfo extends ApiQueryBase {
        }
 
        protected function getRateLimits() {
-               global $wgRateLimits;
                $user = $this->getUser();
                if ( !$user->isPingLimitable() ) {
                        return array(); // No limits
@@ -205,7 +203,7 @@ class ApiQueryUserInfo extends ApiQueryBase {
 
                // Now get the actual limits
                $retval = array();
-               foreach ( $wgRateLimits as $action => $limits ) {
+               foreach ( $this->getConfig()->get( 'RateLimits' ) as $action => $limits ) {
                        foreach ( $categories as $cat ) {
                                if ( isset( $limits[$cat] ) && !is_null( $limits[$cat] ) ) {
                                        $retval[$action][$cat]['hits'] = intval( $limits[$cat][0] );
index 837ad28..506fb59 100644 (file)
@@ -562,8 +562,6 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
        }
 
        public function getResultProperties() {
-               global $wgLogTypes;
-
                return array(
                        '' => array(
                                'type' => array(
@@ -632,7 +630,7 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                                        ApiBase::PROP_NULLABLE => true
                                ),
                                'logtype' => array(
-                                       ApiBase::PROP_TYPE => $wgLogTypes,
+                                       ApiBase::PROP_TYPE => $this->getConfig()->get( 'LogTypes' ),
                                        ApiBase::PROP_NULLABLE => true
                                ),
                                'logaction' => array(
index 2719f12..7d0a15a 100644 (file)
@@ -314,15 +314,14 @@ class ApiResult extends ApiBase {
         * @since 1.21 int $flags replaced boolean $override
         */
        public function addValue( $path, $name, $value, $flags = 0 ) {
-               global $wgAPIMaxResultSize;
-
                $data = &$this->mData;
                if ( $this->mCheckingSize ) {
                        $newsize = $this->mSize + self::size( $value );
-                       if ( $newsize > $wgAPIMaxResultSize ) {
+                       $maxResultSize = $this->getConfig()->get( 'APIMaxResultSize' );
+                       if ( $newsize > $maxResultSize ) {
                                $this->setWarning(
                                        "This result was truncated because it would otherwise be larger than the " .
-                                               "limit of {$wgAPIMaxResultSize} bytes" );
+                                               "limit of {$maxResultSize} bytes" );
 
                                return false;
                        }
index 49306d7..5e6c962 100644 (file)
@@ -34,8 +34,6 @@ class ApiUpload extends ApiBase {
        protected $mParams;
 
        public function execute() {
-               global $wgEnableAsyncUploads;
-
                // Check whether upload is enabled
                if ( !UploadBase::isEnabled() ) {
                        $this->dieUsageMsg( 'uploaddisabled' );
@@ -47,7 +45,7 @@ class ApiUpload extends ApiBase {
                $this->mParams = $this->extractRequestParams();
                $request = $this->getMain()->getRequest();
                // Check if async mode is actually supported (jobs done in cli mode)
-               $this->mParams['async'] = ( $this->mParams['async'] && $wgEnableAsyncUploads );
+               $this->mParams['async'] = ( $this->mParams['async'] && $this->getConfig()->get( 'EnableAsyncUploads' ) );
                // Add the uploaded file to the params array
                $this->mParams['file'] = $request->getFileName( 'file' );
                $this->mParams['chunk'] = $request->getFileName( 'chunk' );
@@ -471,8 +469,6 @@ class ApiUpload extends ApiBase {
         * Performs file verification, dies on error.
         */
        protected function checkVerification( array $verification ) {
-               global $wgFileExtensions;
-
                // @todo Move them to ApiBase's message map
                switch ( $verification['status'] ) {
                        // Recoverable errors
@@ -504,7 +500,7 @@ class ApiUpload extends ApiBase {
                        case UploadBase::FILETYPE_BADTYPE:
                                $extradata = array(
                                        'filetype' => $verification['finalExt'],
-                                       'allowed' => array_values( array_unique( $wgFileExtensions ) )
+                                       'allowed' => array_values( array_unique( $this->getConfig()->get( 'FileExtensions' ) ) )
                                );
                                $this->getResult()->setIndexedTagName( $extradata['allowed'], 'ext' );
 
@@ -666,8 +662,7 @@ class ApiUpload extends ApiBase {
         * Checks if asynchronous copy uploads are enabled and throws an error if they are not.
         */
        protected function checkAsyncDownloadEnabled() {
-               global $wgAllowAsyncCopyUploads;
-               if ( !$wgAllowAsyncCopyUploads ) {
+               if ( !$this->getConfig()->get( 'AllowAsyncCopyUploads' ) ) {
                        $this->dieUsage( 'Asynchronous copy uploads disabled', 'asynccopyuploaddisabled' );
                }
        }
index 246f95d..cd43f82 100644 (file)
@@ -432,13 +432,11 @@ class ChangesList extends ContextSource {
         * @return string
         */
        public function insertComment( $rc ) {
-               if ( $rc->mAttribs['rc_type'] != RC_MOVE && $rc->mAttribs['rc_type'] != RC_MOVE_OVER_REDIRECT ) {
-                       if ( $this->isDeleted( $rc, Revision::DELETED_COMMENT ) ) {
-                               return ' <span class="history-deleted">' .
-                                       $this->msg( 'rev-deleted-comment' )->escaped() . '</span>';
-                       } else {
-                               return Linker::commentBlock( $rc->mAttribs['rc_comment'], $rc->getTitle() );
-                       }
+               if ( $this->isDeleted( $rc, Revision::DELETED_COMMENT ) ) {
+                       return ' <span class="history-deleted">' .
+                               $this->msg( 'rev-deleted-comment' )->escaped() . '</span>';
+               } else {
+                       return Linker::commentBlock( $rc->mAttribs['rc_comment'], $rc->getTitle() );
                }
 
                return '';
index 7307c69..0c073c6 100644 (file)
@@ -143,11 +143,7 @@ class EnhancedChangesList extends ChangesList {
 
                $type = $cacheEntry->mAttribs['rc_type'];
 
-               // @todo remove handling for RC_MOVE and RC_MOVE_OVER_REDIRECT (bug 63755)
-               if ( $type == RC_MOVE || $type == RC_MOVE_OVER_REDIRECT ) {
-                       // Use an # character to prevent collision with page names
-                       $cacheGroupingKey = '##' . ( $this->rcMoveIndex++ );
-               } elseif ( $type == RC_LOG ) {
+               if ( $type == RC_LOG ) {
                        // Group by log type
                        $cacheGroupingKey = SpecialPage::getTitleFor(
                                'Log',
@@ -551,16 +547,12 @@ class EnhancedChangesList extends ChangesList {
 
                $r .= '<td class="mw-enhanced-rc"><span class="mw-enhancedchanges-arrow-space"></span>';
                # Flag and Timestamp
-               if ( $type == RC_MOVE || $type == RC_MOVE_OVER_REDIRECT ) {
-                       $r .= $this->recentChangesFlags( array() ); // no flags, but need the placeholders
-               } else {
-                       $r .= $this->recentChangesFlags( array(
-                               'newpage' => $type == RC_NEW,
-                               'minor' => $rcObj->mAttribs['rc_minor'],
-                               'unpatrolled' => $rcObj->unpatrolled,
-                               'bot' => $rcObj->mAttribs['rc_bot'],
-                       ) );
-               }
+               $r .= $this->recentChangesFlags( array(
+                       'newpage' => $type == RC_NEW,
+                       'minor' => $rcObj->mAttribs['rc_minor'],
+                       'unpatrolled' => $rcObj->unpatrolled,
+                       'bot' => $rcObj->mAttribs['rc_bot'],
+               ) );
                $r .= '&#160;' . $rcObj->timestamp . '&#160;</td><td>';
                # Article or log link
                if ( $logType ) {
index 458f21a..d590ff6 100644 (file)
@@ -53,10 +53,7 @@ class OldChangesList extends ChangesList {
                $classes[] = $watched && $rc->mAttribs['rc_timestamp'] >= $watched
                        ? 'mw-changeslist-line-watched' : 'mw-changeslist-line-not-watched';
 
-               // Moved pages (very very old, not supported anymore)
-               if ( $rc->mAttribs['rc_type'] == RC_MOVE || $rc->mAttribs['rc_type'] == RC_MOVE_OVER_REDIRECT ) {
-               // Log entries
-               } elseif ( $rc->mAttribs['rc_log_type'] ) {
+               if ( $rc->mAttribs['rc_log_type'] ) {
                        $logtitle = SpecialPage::getTitleFor( 'Log', $rc->mAttribs['rc_log_type'] );
                        $this->insertLog( $s, $logtitle, $rc->mAttribs['rc_log_type'] );
                // Log entries (old format) or log targets, and special pages
index 25a572b..c3fe183 100644 (file)
@@ -97,11 +97,8 @@ class RCCacheEntryFactory {
        private function buildCLink( RecentChange $cacheEntry ) {
                $type = $cacheEntry->mAttribs['rc_type'];
 
-               // Page moves, very old style, not supported anymore
-               if ( $type == RC_MOVE || $type == RC_MOVE_OVER_REDIRECT ) {
-                       $clink = '';
                // New unpatrolled pages
-               } elseif ( $cacheEntry->unpatrolled && $type == RC_NEW ) {
+               if ( $cacheEntry->unpatrolled && $type == RC_NEW ) {
                        $clink = Linker::linkKnown( $cacheEntry->getTitle() );
                // Log entries
                } elseif ( $type == RC_LOG ) {
@@ -171,7 +168,7 @@ class RCCacheEntryFactory {
        private function buildCurLink( RecentChange $cacheEntry, $showDiffLinks, $counter ) {
                $queryParams = $this->buildCurQueryParams( $cacheEntry );
                $curMessage = $this->getMessage( 'cur' );
-               $logTypes = array( RC_LOG, RC_MOVE, RC_MOVE_OVER_REDIRECT );
+               $logTypes = array( RC_LOG );
 
                if ( !$showDiffLinks || in_array( $cacheEntry->mAttribs['rc_type'], $logTypes ) ) {
                        $curLink = $curMessage;
@@ -206,7 +203,7 @@ class RCCacheEntryFactory {
        private function buildDiffLink( RecentChange $cacheEntry, $showDiffLinks, $counter ) {
                $queryParams = $this->buildDiffQueryParams( $cacheEntry );
                $diffMessage = $this->getMessage( 'diff' );
-               $logTypes = array( RC_NEW, RC_LOG, RC_MOVE, RC_MOVE_OVER_REDIRECT );
+               $logTypes = array( RC_NEW, RC_LOG );
 
                if ( !$showDiffLinks ) {
                        $diffLink = $diffMessage;
@@ -230,7 +227,7 @@ class RCCacheEntryFactory {
                $lastOldid = $cacheEntry->mAttribs['rc_last_oldid'];
                $lastMessage = $this->getMessage( 'last' );
                $type = $cacheEntry->mAttribs['rc_type'];
-               $logTypes = array( RC_LOG, RC_MOVE, RC_MOVE_OVER_REDIRECT );
+               $logTypes = array( RC_LOG );
 
                // Make "last" link
                if ( !$showDiffLinks || !$lastOldid || in_array( $type, $logTypes ) ) {
index 60aba7e..8fa6ed9 100644 (file)
@@ -147,18 +147,12 @@ class RecentChange {
                        case RC_NEW:
                                $type = 'new';
                                break;
-                       case RC_MOVE: // obsolete
-                               $type = 'move';
-                               break;
                        case RC_LOG:
                                $type = 'log';
                                break;
                        case RC_EXTERNAL:
                                $type = 'external';
                                break;
-                       case RC_MOVE_OVER_REDIRECT: // obsolete
-                               $type = 'move over redirect';
-                               break;
                        default:
                                $type = "$rcType";
                }
index 396de4f..7686010 100644 (file)
@@ -1491,6 +1491,10 @@ class DatabaseOracle extends DatabaseBase {
                                        throw new DBUnexpectedError( $this, "Cannot create LOB descriptor: " . $e['message'] );
                                }
 
+                               if ( is_object( $val ) ) {
+                                       $val = $val->getData();
+                               }
+
                                if ( $col_type == 'BLOB' ) {
                                        $lob[$col]->writeTemporary( $val );
                                        oci_bind_by_name( $stmt, ":$col", $lob[$col], -1, SQLT_BLOB );
index bea195b..168d846 100644 (file)
@@ -236,7 +236,7 @@ class LBFactorySimple extends LBFactory {
         * @return LoadBalancer
         */
        function newMainLB( $wiki = false ) {
-               global $wgDBservers, $wgMasterWaitTimeout;
+               global $wgDBservers;
                if ( $wgDBservers ) {
                        $servers = $wgDBservers;
                } else {
@@ -267,7 +267,6 @@ class LBFactorySimple extends LBFactory {
 
                return new LoadBalancer( array(
                        'servers' => $servers,
-                       'masterWaitTimeout' => $wgMasterWaitTimeout
                ) );
        }
 
index 3c1885f..bda3dd6 100644 (file)
@@ -286,11 +286,9 @@ class LBFactoryMulti extends LBFactory {
         * @return LoadBalancer
         */
        function newLoadBalancer( $template, $loads, $groupLoads ) {
-               global $wgMasterWaitTimeout;
                $servers = $this->makeServerArray( $template, $loads, $groupLoads );
                $lb = new LoadBalancer( array(
                        'servers' => $servers,
-                       'masterWaitTimeout' => $wgMasterWaitTimeout
                ) );
 
                return $lb;
index 38c3d2d..ee35c13 100644 (file)
@@ -45,7 +45,6 @@ class LoadBalancer {
        /**
         * @param array $params with keys:
         *   servers           Required. Array of server info structures.
-        *   masterWaitTimeout Replication lag wait timeout
         *   loadMonitor       Name of a class used to fetch server lag and load.
         * @throws MWException
         */
@@ -54,12 +53,7 @@ class LoadBalancer {
                        throw new MWException( __CLASS__ . ': missing servers parameter' );
                }
                $this->mServers = $params['servers'];
-
-               if ( isset( $params['waitTimeout'] ) ) {
-                       $this->mWaitTimeout = $params['waitTimeout'];
-               } else {
-                       $this->mWaitTimeout = 10;
-               }
+               $this->mWaitTimeout = 10;
 
                $this->mReadIndex = -1;
                $this->mWriteIndex = -1;
index 9586657..8a2dc4a 100644 (file)
@@ -213,7 +213,13 @@ class FSFileBackend extends FileBackendStore {
                                wfEscapeShellArg( $this->cleanPathSlashes( $tempFile->getPath() ) ),
                                wfEscapeShellArg( $this->cleanPathSlashes( $dest ) )
                        ) );
-                       $status->value = new FSFileOpHandle( $this, $params, 'Create', $cmd, $dest );
+                       $handler = function( $errors, Status $status, array $params, $cmd ) {
+                               if ( $errors !== '' && !( wfIsWindows() && $errors[0] === " " ) ) {
+                                       $status->fatal( 'backend-fail-create', $params['dst'] );
+                                       trigger_error( "$cmd\n$errors", E_USER_WARNING ); // command output
+                               }
+                       };
+                       $status->value = new FSFileOpHandle( $this, $params, $handler, $cmd, $dest );
                        $tempFile->bind( $status->value );
                } else { // immediate write
                        $this->trapWarnings();
@@ -230,16 +236,6 @@ class FSFileBackend extends FileBackendStore {
                return $status;
        }
 
-       /**
-        * @see FSFileBackend::doExecuteOpHandlesInternal()
-        */
-       protected function getResponseCreate( $errors, Status $status, array $params, $cmd ) {
-               if ( $errors !== '' && !( wfIsWindows() && $errors[0] === " " ) ) {
-                       $status->fatal( 'backend-fail-create', $params['dst'] );
-                       trigger_error( "$cmd\n$errors", E_USER_WARNING ); // command output
-               }
-       }
-
        protected function doStoreInternal( array $params ) {
                $status = Status::newGood();
 
@@ -256,7 +252,13 @@ class FSFileBackend extends FileBackendStore {
                                wfEscapeShellArg( $this->cleanPathSlashes( $params['src'] ) ),
                                wfEscapeShellArg( $this->cleanPathSlashes( $dest ) )
                        ) );
-                       $status->value = new FSFileOpHandle( $this, $params, 'Store', $cmd, $dest );
+                       $handler = function( $errors, Status $status, array $params, $cmd ) {
+                               if ( $errors !== '' && !( wfIsWindows() && $errors[0] === " " ) ) {
+                                       $status->fatal( 'backend-fail-store', $params['src'], $params['dst'] );
+                                       trigger_error( "$cmd\n$errors", E_USER_WARNING ); // command output
+                               }
+                       };
+                       $status->value = new FSFileOpHandle( $this, $params, $handler, $cmd, $dest );
                } else { // immediate write
                        $this->trapWarnings();
                        $ok = copy( $params['src'], $dest );
@@ -277,16 +279,6 @@ class FSFileBackend extends FileBackendStore {
                return $status;
        }
 
-       /**
-        * @see FSFileBackend::doExecuteOpHandlesInternal()
-        */
-       protected function getResponseStore( $errors, Status $status, array $params, $cmd ) {
-               if ( $errors !== '' && !( wfIsWindows() && $errors[0] === " " ) ) {
-                       $status->fatal( 'backend-fail-store', $params['src'], $params['dst'] );
-                       trigger_error( "$cmd\n$errors", E_USER_WARNING ); // command output
-               }
-       }
-
        protected function doCopyInternal( array $params ) {
                $status = Status::newGood();
 
@@ -318,7 +310,13 @@ class FSFileBackend extends FileBackendStore {
                                wfEscapeShellArg( $this->cleanPathSlashes( $source ) ),
                                wfEscapeShellArg( $this->cleanPathSlashes( $dest ) )
                        ) );
-                       $status->value = new FSFileOpHandle( $this, $params, 'Copy', $cmd, $dest );
+                       $handler = function( $errors, Status $status, array $params, $cmd ) {
+                               if ( $errors !== '' && !( wfIsWindows() && $errors[0] === " " ) ) {
+                                       $status->fatal( 'backend-fail-copy', $params['src'], $params['dst'] );
+                                       trigger_error( "$cmd\n$errors", E_USER_WARNING ); // command output
+                               }
+                       };
+                       $status->value = new FSFileOpHandle( $this, $params, $handler, $cmd, $dest );
                } else { // immediate write
                        $this->trapWarnings();
                        $ok = ( $source === $dest ) ? true : copy( $source, $dest );
@@ -341,16 +339,6 @@ class FSFileBackend extends FileBackendStore {
                return $status;
        }
 
-       /**
-        * @see FSFileBackend::doExecuteOpHandlesInternal()
-        */
-       protected function getResponseCopy( $errors, Status $status, array $params, $cmd ) {
-               if ( $errors !== '' && !( wfIsWindows() && $errors[0] === " " ) ) {
-                       $status->fatal( 'backend-fail-copy', $params['src'], $params['dst'] );
-                       trigger_error( "$cmd\n$errors", E_USER_WARNING ); // command output
-               }
-       }
-
        protected function doMoveInternal( array $params ) {
                $status = Status::newGood();
 
@@ -382,7 +370,13 @@ class FSFileBackend extends FileBackendStore {
                                wfEscapeShellArg( $this->cleanPathSlashes( $source ) ),
                                wfEscapeShellArg( $this->cleanPathSlashes( $dest ) )
                        ) );
-                       $status->value = new FSFileOpHandle( $this, $params, 'Move', $cmd );
+                       $handler = function( $errors, Status $status, array $params, $cmd ) {
+                               if ( $errors !== '' && !( wfIsWindows() && $errors[0] === " " ) ) {
+                                       $status->fatal( 'backend-fail-move', $params['src'], $params['dst'] );
+                                       trigger_error( "$cmd\n$errors", E_USER_WARNING ); // command output
+                               }
+                       };
+                       $status->value = new FSFileOpHandle( $this, $params, $handler, $cmd );
                } else { // immediate write
                        $this->trapWarnings();
                        $ok = ( $source === $dest ) ? true : rename( $source, $dest );
@@ -398,16 +392,6 @@ class FSFileBackend extends FileBackendStore {
                return $status;
        }
 
-       /**
-        * @see FSFileBackend::doExecuteOpHandlesInternal()
-        */
-       protected function getResponseMove( $errors, Status $status, array $params, $cmd ) {
-               if ( $errors !== '' && !( wfIsWindows() && $errors[0] === " " ) ) {
-                       $status->fatal( 'backend-fail-move', $params['src'], $params['dst'] );
-                       trigger_error( "$cmd\n$errors", E_USER_WARNING ); // command output
-               }
-       }
-
        protected function doDeleteInternal( array $params ) {
                $status = Status::newGood();
 
@@ -431,7 +415,13 @@ class FSFileBackend extends FileBackendStore {
                                wfIsWindows() ? 'DEL' : 'unlink',
                                wfEscapeShellArg( $this->cleanPathSlashes( $source ) )
                        ) );
-                       $status->value = new FSFileOpHandle( $this, $params, 'Copy', $cmd );
+                       $handler = function( $errors, Status $status, array $params, $cmd ) {
+                               if ( $errors !== '' && !( wfIsWindows() && $errors[0] === " " ) ) {
+                                       $status->fatal( 'backend-fail-delete', $params['src'] );
+                                       trigger_error( "$cmd\n$errors", E_USER_WARNING ); // command output
+                               }
+                       };
+                       $status->value = new FSFileOpHandle( $this, $params, $handler, $cmd );
                } else { // immediate write
                        $this->trapWarnings();
                        $ok = unlink( $source );
@@ -446,16 +436,6 @@ class FSFileBackend extends FileBackendStore {
                return $status;
        }
 
-       /**
-        * @see FSFileBackend::doExecuteOpHandlesInternal()
-        */
-       protected function getResponseDelete( $errors, Status $status, array $params, $cmd ) {
-               if ( $errors !== '' && !( wfIsWindows() && $errors[0] === " " ) ) {
-                       $status->fatal( 'backend-fail-delete', $params['src'] );
-                       trigger_error( "$cmd\n$errors", E_USER_WARNING ); // command output
-               }
-       }
-
        /**
         * @param string $fullCont
         * @param string $dirRel
@@ -716,8 +696,8 @@ class FSFileBackend extends FileBackendStore {
 
                foreach ( $fileOpHandles as $index => $fileOpHandle ) {
                        $status = Status::newGood();
-                       $function = 'getResponse' . $fileOpHandle->call;
-                       $this->$function( $errs[$index], $status, $fileOpHandle->params, $fileOpHandle->cmd );
+                       $function = $fileOpHandle->call;
+                       $function( $errs[$index], $status, $fileOpHandle->params, $fileOpHandle->cmd );
                        $statuses[$index] = $status;
                        if ( $status->isOK() && $fileOpHandle->chmodPath ) {
                                $this->chmod( $fileOpHandle->chmodPath );
index ebd94ec..72b6f73 100644 (file)
@@ -83,5 +83,5 @@
        "config-help": "гӀо",
        "config-nofile": "Файл \"$1\" каро цаелира. И дӀаяьккхина ярий?",
        "mainpagetext": "'''Вики-белха гlирс «MediaWiki» кхочуш дика дlахlоттийна.'''",
-       "mainpagedocfooter": "Викийца болх бан хаамаш карор бу хlокху чохь [//meta.wikimedia.org/wiki/Help:Contents нисвохааман куьйгаллица].\n\n== Цхьаболу пайде гlирсаш ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Гlирс нисбан тарлушболу могlам];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Сих сиха лушдолу хаттарш а жоьпаш оцу MediaWiki];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Хаам бохьуьйту араяларца башхонца керла MediaWiki].\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
+       "mainpagedocfooter": "Викийца болх бан хаамаш карор бу хӀокху чохь [//meta.wikimedia.org/wiki/Help:Contents нисвохааман куьйгаллица].\n\n== Цхьаболу пайде гӀирсаш ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings ГӀирс нисбан тарлушболу могӀам];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Сих сиха лушдолу хаттарш а жоьпаш оцу MediaWiki];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Хаам бохьуьйту араяларца башхонца керла MediaWiki].\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index 3c58150..b37a1b7 100644 (file)
@@ -99,7 +99,7 @@
        "config-gd": "Se ha encontrado una biblioteca de gráficos GD integrada.\nLa miniaturización de imágenes se habilitará si habilitas las subidas.",
        "config-no-scaling": "No se ha encontrado ninguma biblioteca GD o ImageMagik.\nSe inhabilitará la miniaturización de imágenes.",
        "config-no-uri": "'''Error:''' No se pudo determinar el URI actual.\nSe interrumpió la instalación.",
-       "config-no-cli-uri": "''' Advertencia ''': No se ha especificado ningún <code>--scriptpath</code>, por defecto se usará: <code>$1</code> .",
+       "config-no-cli-uri": "<strong>Aviso:</strong> No se especificó <code>--scriptpath</code>; se usa el valor predeterminado: <code>$1</code>.",
        "config-using-server": "Utilizando el nombre de servidor \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Utilizando la dirección URL del servidor \"<nowiki>$1$2</nowiki>\".",
        "config-uploads-not-safe": "'''Atención:''' Su directorio por defecto para las cargas, <code>$1</code>, es vulnerable a la ejecución de scripts arbitrarios.\nAunque MediaWiki comprueba todos los archivos cargados por si hubiese amenazas de seguridad, es altamente recomendable [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security cerrar esta vulnerabilidad de seguridad] antes de activar las cargas.",
index 5f01e6d..a37ed89 100644 (file)
@@ -7,7 +7,8 @@
                        "Reedy",
                        "아라",
                        "C5st4wr6ch",
-                       "Seb35"
+                       "Seb35",
+                       "Arifin.wijaya"
                ]
        },
        "config-desc": "Penginstal untuk MediaWiki",
@@ -57,7 +58,7 @@
        "config-unicode-using-intl": "Menggunakan [http://pecl.php.net/intl ekstensi PECL intl] untuk normalisasi Unicode.",
        "config-unicode-pure-php-warning": "'''Peringatan''': [http://pecl.php.net/intl Ekstensi intl PECL] untuk menangani normalisasi Unicode tidak tersedia, kembali menggunakan implementasi murni PHP yang lambat.\nJika Anda menjalankan situs berlalu lintas tinggi, Anda harus sedikit membaca [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalisasi Unicode].",
        "config-unicode-update-warning": "'''Peringatan''': Versi terinstal dari pembungkus normalisasi Unicode menggunakan versi lama pustaka [http://site.icu-project.org/ proyek ICU].\nAnda harus [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations memutakhirkannya] jika Anda ingin menggunakan Unicode.",
-       "config-no-db": "Pengandar basis data yang sesuai tidak ditemukan! Anda perlu menginstal pengandar basis data untuk PHP.\nJenis basis data yang didukung: $1.\n\nJika Anda menggunakan inang bersama, mintalah penyedia inang Anda untuk menginstal pengandar basis data yang sesuai.\nJika Anda mengompilasi sendiri PHP, ubahlah konfigurasinya dengan mengaktifkan klien basis data, misalnya menggunakan <code>./configure --with-mysql</code>.\nJika Anda menginstal PHP dari paket Debian atau Ubuntu, maka Anda juga perlu menginstal modul php5-mysql.",
+       "config-no-db": "Pengandar basis data yang sesuai tidak ditemukan! Anda perlu menginstal pengandar basis data untuk PHP.\nJenis basis data yang didukung: $1.\n\nJika Anda mengompilasi sendiri PHP, ubahlah konfigurasinya dengan mengaktifkan klien basis data, misalnya menggunakan <code>./configure --with-mysql</code>.\nJika Anda menginstal PHP dari paket Debian atau Ubuntu, maka Anda juga perlu menginstal modul php5-mysql.",
        "config-outdated-sqlite": "<strong>Peringatan:</strong> Anda menggunakan SQLite $1, yang lebih rendah dari versi minimum yang diperlukan $2. SQLite akan tidak tersedia.",
        "config-no-fts3": "'''Peringatan''': SQLite dikompilasi tanpa [//sqlite.org/fts3.html modul FTS3], fitur pencarian tidak akan tersedia pada konfigurasi ini.",
        "config-register-globals": "'''Peringatan: Opsi <code>[http://php.net/register_globals register_globals]</code> PHP diaktifkan.'''\n'''Nonaktifkan kalau bisa.'''\nMediaWiki akan bekerja, tetapi server Anda memiliki potensi kerentanan keamanan.",
        "config-mbstring": "'''Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] aktif!'' '\nPilihan ini dapat menyebabkan kesalahan dan kerusakan data yang tidak terduga.\nAnda tidak dapat menginstal atau menggunakan MediaWiki kecuali pilihan ini dinonaktifkan.",
        "config-safe-mode": "''' Peringatan:''' [http://www.php.net/features.safe-mode Mode aman] PHP aktif.\nHal ini akan menyebabkan masalah, terutama jika menggunakan pengunggahan berkas dan dukungan <code>math</code>.",
        "config-xml-bad": "Modul XML PHP hilang.\nMediaWiki membutuhkan fungsi dalam modul ini dan tidak akan bekerja dalam konfigurasi ini.\nJika Anda menggunakan Mandrake, instal paket php-xml.",
+       "config-pcre-old": "<strong>Fatal:</strong> PCRE $1 atau kemudian diperlukan.\nBiner PHP Anda dihubungkan dengan PCRE $2. [https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Selengkapnya].",
        "config-pcre-no-utf8": "'''Fatal''': Modul PCRE PHP tampaknya dikompilasi tanpa dukungan PCRE_UTF8.\nMediaWiki memerlukan dukungan UTF-8 untuk berfungsi dengan benar.",
        "config-memory-raised": "<code>memory_limit</code> PHP adalah $1, dinaikkan ke $2.",
        "config-memory-bad": "'''Peringatan:''' <code>memory_limit</code> PHP adalah $1.\nIni terlalu rendah.\nInstalasi terancam gagal!",
+       "config-ctype": "<strong>Fatal:</strong> PHP harus disusun dengan dukungan untuk [http://www.php.net/manual/en/ctype.installation.php ekstensi Ctype].",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] telah diinstal",
        "config-apc": "[http://www.php.net/apc APC] telah diinstal",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] telah diinstal",
        "config-no-cache": "'''Peringatan:''' Tidak dapat menemukan [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache], atau [http://www.iis.net/download/WinCacheForPhp WinCache]. Pinggahan obyek tidak dinonaktifkan.",
        "config-mod-security": "<strong>Peringatan:</strong> Server web Anda memiliki [http://modsecurity.org/ mod_security] yang diaktifkan. Jika salah dalam mengkonfigurasi, ini dapat menyebabkan masalah untuk MediaWiki atau perangkat lunak lain yang memungkinkan pengguna untuk mengirim sembarang konten.\nLihat [http://modsecurity.org/documentation/ dokumentasi mod_security] atau hubungi layanan host Anda jika Anda mengalami kesalahan acak.",
        "config-diff3-bad": "GNU diff3 tidak ditemukan.",
+       "config-git": "Menemukan perangkat lunak kontrol versi Git: <code>$1</code>.",
+       "config-git-bad": "Perangkat lunak kontrol versi Git tidak ditemukan.",
        "config-imagemagick": "ImageMagick ditemukan: <code>$1</code> .\nPembuatan gambar mini akan diaktifkan jika Anda mengaktifkan pengunggahan.",
        "config-gd": "Pustaka grafis GD terpasang ditemukan.\nPembuatan gambar mini akan diaktifkan jika Anda mengaktifkan pengunggahan.",
        "config-no-scaling": "Pustaka GD atau ImageMagick tidak ditemukan.\nPembuatan gambar mini dinonaktifkan.",
        "config-no-uri": "'''Kesalahan:''' URI saat ini tidak dapat ditentukan.\nInstalasi dibatalkan.",
+       "config-no-cli-uri": "<strong>Peringatan:</strong> Tidak ada <code>--scriptpath</code> yang ditentukan, dengan menggunakan standar: <code>$1</code>.",
+       "config-using-server": "Menggunakan nama server \"<nowiki>$1</nowiki>\".",
+       "config-using-uri": "Menggunakan URL server \"<nowiki>$1$2</nowiki>\".",
        "config-uploads-not-safe": "'''Peringatan:''' Direktori bawaan pengunggahan <code>$1</code> Anda rentan terhadap eksekusi skrip yang sewenang-wenang.\nMeskipun MediaWiki memeriksa semua berkas unggahan untuk ancaman keamanan, sangat dianjurkan untuk [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security menutup kerentanan keamanan ini] sebelum mengaktifkan pengunggahan.",
        "config-brokenlibxml": "Sistem Anda memiliki kombinasi versi PHP dan libxml2 yang memiliki bug dan dapat menyebabkan kerusakan data tersembunyi pada MediaWiki dan aplikasi web lain.\nMutakhirkan ke PHP 5.2.9 atau yang lebih baru dan libxml2 2.7.3 atau yang lebih baru ([https://bugs.php.net/bug.php?id=45996 arsip bug di PHP]).\nInstalasi dibatalkan.",
        "config-suhosin-max-value-length": "Suhosin terpasang dan membatasi parameter GET <code>length</code> sebesar $1 bita. Komponen ResourceLoader MediaWiki akan berjalan dalam batasan ini, tetapi penanganannya akan menurunkan kinerja. Jika memungkinkan, Anda sebaiknya menetapkan nilai <code>suhosin.get.max_value_length</code> menjadi 1024 atau lebih tinggi dalam <code>php.ini</code> dan menyetel <code>$wgResourceLoaderMaxQueryLength</code> dengan nilai yang sama dalam <code>LocalSettings.php</code>.",
        "config-db-username": "Nama pengguna basis data:",
        "config-db-password": "Kata sandi basis data:",
        "config-db-password-empty": "Silakan masukkan sandi untuk pengguna basis data baru: $1.\nMeskipun dimungkinkan untuk membuat pengguna tanpa sandi, hal itu tidak aman.",
+       "config-db-username-empty": "Anda harus memasukkan nilai untuk \"{{int:config-db-username}}\".",
        "config-db-install-username": "Masukkan nama pengguna yang akan digunakan untuk terhubung ke basis data selama proses instalasi.\nIni bukan nama pengguna akun MediaWiki, melainkan nama pengguna untuk basis data Anda.",
        "config-db-install-password": "Masukkan sandi yang akan digunakan untuk terhubung ke basis data selama proses instalasi.\nIni bukan sandi untuk akun MediaWiki, melainkan sandi untuk basis data Anda.",
        "config-db-install-help": "Masukkan nama pengguna dan sandi yang akan digunakan untuk terhubung ke basis data pada saat proses instalasi.",
        "config-type-oracle": "Oracle",
        "config-support-info": "MediaWiki mendukung sistem basis data berikut:\n\n$1\n\nJika Anda tidak melihat sistem basis data yang Anda gunakan tercantum di bawah ini, ikuti petunjuk terkait di atas untuk mengaktifkan dukungan.",
        "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] adalah target utama MediaWiki dan memiliki dukungan terbaik. MediaWiki juga berjalan dengan [{{int:version-db-mariadb-url}} MariaDB] dan [{{int:version-db-percona-url}} Server Percona], yang kompatibel dengan MySQL. ([http://www.php.net/manual/en/mysql.installation.php Cara mengompilasi PHP dengan dukungan MySQL])",
-       "config-dbsupport-postgres": "* $1 adalah sistem basis data sumber terbuka populer sebagai alternatif untuk MySQL ([http://www.php.net/manual/en/pgsql.installation.php cara mengompilasi PHP dengan dukungan PostgreSQL]). Mungkin ada beberapa bug terbuka dan alternatif ini tidak direkomendasikan untuk dipakai dalam lingkungan produksi.",
-       "config-dbsupport-sqlite": "* $1 adalah sistem basis data yang ringan yang sangat baik dukungannya. ([http://www.php.net/manual/en/pdo.installation.php cara mengompilasi PHP dengan dukungan SQLite], menggunakan PDO)",
-       "config-dbsupport-oracle": "* $1 adalah basis data komersial untuka perusahaan. ([http://www.php.net/manual/en/oci8.installation.php cara mengompilasi PHP dengan dukungan OCI8])",
+       "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] adalah sistem basis data sumber terbuka populer sebagai alternatif untuk MySQL. Mungkin ada beberapa bug terbuka dan alternatif ini tidak direkomendasikan untuk dipakai dalam lingkungan produksi. ([http://www.php.net/manual/en/pgsql.installation.php cara mengompilasi PHP dengan dukungan PostgreSQL])",
+       "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] adalah sistem basis data yang ringan yang sangat baik dukungannya. ([http://www.php.net/manual/en/pdo.installation.php cara mengompilasi PHP dengan dukungan SQLite], menggunakan PDO)",
+       "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] adalah basis data komersial untuk perusahaan. ([http://www.php.net/manual/en/oci8.installation.php cara mengompilasi PHP dengan dukungan OCI8])",
+       "config-dbsupport-mssql": "[{{int:version-db-mssql-url}} Microsoft SQL Server] adalah database perusahaan komersial untuk Windows. ([http://www.php.net/manual/en/sqlsrv.installation.php Bagaimana cara mengkompilasi PHP dengan dukungan SQLSRV])",
        "config-header-mysql": "Pengaturan MySQL",
        "config-header-postgres": "Pengaturan PostgreSQL",
        "config-header-sqlite": "Pengaturan SQLite",
        "config-header-oracle": "Pengaturan Oracle",
        "config-header-mssql": "Setelan Microsoft SQL Server",
        "config-invalid-db-type": "Jenis basis data tidak sah",
-       "config-missing-db-name": "Anda harus memasukkan nilai untuk \"Nama basis data\"",
-       "config-missing-db-host": "Anda harus memasukkan nilai untuk \"Inang basis data\"",
-       "config-missing-db-server-oracle": "Anda harus memasukkan nilai untuk \"TNS basis data\"",
+       "config-missing-db-name": "Anda harus memasukkan nilai untuk \"{{int:config-db-name}}\"",
+       "config-missing-db-host": "Anda harus memasukkan nilai untuk \"{{int:config-db-host}}\"",
+       "config-missing-db-server-oracle": "Anda harus memasukkan nilai untuk \"{{int:config-db-host-oracle}}\"",
        "config-invalid-db-server-oracle": "TNS basis data \"$1\" tidak sah.\nGunakan hanya huruf ASCII (a-z, A-Z), angka (0-9), garis bawah (_), dan titik (.).",
        "config-invalid-db-name": "Nama basis data \"$1\" tidak sah.\nGunakan hanya huruf ASCII (a-z, A-Z), angka (0-9), garis bawah (_), dan tanda hubung (-).",
        "config-invalid-db-prefix": "Prefiks basis data \"$1\" tidak sah.\nGunakan hanya huruf ASCII (a-z, A-Z), angka (0-9), garis bawah (_), dan tanda hubung (-).",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-myisam-dep": "<strong>Peringatan:</strong> Anda telah memilih MyISAM sebagai mesin penyimpanan MySQL, yang tidak dianjurkan untuk digunakan dengan MediaWiki, karena:\n * nyaris tidak mendukung operasi bersamaan karena penguncian tabel\n * lebih rentan terhadap korupsi daripada mesin lain\n * basis kode MediaWiki tidak selalu menangani MyISAM sebagaimana mestinya\n\nJika instalasi MySQL Anda mendukung InnoDB, sangat disarankan bagi Anda memilih itu.\nJika instalasi MySQL tidak mendukung InnoDB, mungkin sudah waktunya untuk pemutakhiran.",
+       "config-mysql-only-myisam-dep": "<strong>Peringatan:</strong> MyISAM adalah satu-satunya mesin penyimpanan yang tersedia untuk MySQL pada mesin ini, dan hal ini tidak dianjurkan untuk digunakan dengan MediaWiki, karena:\n* hampir tidak mendukung konkurensi karena penguncian tabel\n* basis kode MediaWiki tidak selalu menangani MyISAM sebagaimana mestinya\n\nInstalasi MySQL Anda tidak mendukung InnoDB, mungkin sudah waktunya untuk peningkatan.",
        "config-mysql-engine-help": "'''InnoDB''' hampir selalu merupakan pilihan terbaik karena memiliki dukungan konkurensi yang baik.\n\n'''MyISAM''' mungkin lebih cepat dalam instalasi pengguna-tunggal atau hanya-baca.\nBasis data MyISAM cenderung lebih sering rusak daripada basis data InnoDB.",
        "config-mysql-charset": "Set karakter basis data:",
        "config-mysql-binary": "Biner",
        "config-mssql-auth": "Jenis otentikasi:",
        "config-mssql-install-auth": "Pilih jenis otentikasi yang akan digunakan untuk menyambung ke database selama proses instalasi.\nJika Anda memilih \"{{int:config-mssql-windowsauth}}\", kredensial dari pengguna apapun pada server web yang berjalan akan digunakan.",
        "config-mssql-web-auth": "Pilih jenis otentikasi yang akan digunakan oleh server web untuk menyambung ke server basis data, selama operasi biasa dari wiki.\nJika Anda memilih \"{{int:config-mssql-windowsauth}}\", kredensial dari pengguna apapun pada server web yang berjalan akan digunakan.",
+       "config-mssql-sqlauth": "Otentikasi Server SQL",
        "config-mssql-windowsauth": "Otentikasi Windows",
        "config-site-name": "Nama wiki:",
        "config-site-name-help": "Ini akan muncul di bilah judul peramban dan di berbagai tempat lainnya.",
        "config-install-pg-plpgsql": "Memeriksa bahasa PL / pgSQL",
        "config-pg-no-plpgsql": "Anda perlu menginstal bahasa PL/pgSQL pada basis data $1",
        "config-pg-no-create-privs": "Akun yang Anda tetapkan untuk instalasi tidak memiliki hak yang cukup untuk membuat akun.",
+       "config-pg-not-in-role": "Akun yang ditentukan untuk pengguna web sudah ada.\nAkun yang ditentukan untuk instalasi tidak superuser dan bukan anggota dari peran pengguna Web, sehingga tidak dapat membuat objek yang dimiliki oleh pengguna web.\n\nMediaWiki saat ini membutuhkan bahwa tabel dimiliki oleh pengguna web. Silakan tentukan nama account web lain, atau klik \"back\" dan tentukan pengguna yang terinstal sesuai istimewa.",
        "config-install-user": "Membuat pengguna basis data",
        "config-install-user-alreadyexists": "Pengguna \"$1\" sudah ada",
        "config-install-user-create-failed": "Pembuatan pengguna \"$1\" gagal: $2",
        "config-install-user-grant-failed": "Memberikan izin untuk pengguna \"$1\" gagal: $2",
        "config-install-user-missing": "Pengguna \"$1\" yang dimaksud tidak ditemukan.",
+       "config-install-user-missing-create": "Akun yang ditentukan \"$1\" tidak ada.\nSilahkan klik kotak centang \"Buat akun\" di bawah ini jika Anda ingin membuatnya.",
        "config-install-tables": "Membuat tabel",
        "config-install-tables-exist": "'''Peringatan''': Tabel MediaWiki sepertinya sudah ada.\nMelompati pembuatan.",
        "config-install-tables-failed": "'''Kesalahan''': Pembuatan tabel gagal dengan kesalahan berikut: $1",
        "config-install-done": "'''Selamat!'''\nAnda telah berhasil menginstal MediaWiki.\n\nPenginstal telah membuat berkas <code>LocalSettings.php</code>.\nBerkas itu berisi semua konfigurasi Anda.\n\nAnda perlu mengunduh berkas itu dan meletakkannya di direktori instalasi wiki (direktori yang sama dengan index.php). Pengunduhan akan dimulai secara otomatis.\n\nJika pengunduhan tidak terjadi, atau jika Anda membatalkannya, Anda dapat mengulangi pengunduhan dengan mengeklik tautan berikut:\n\n$3\n\n'''Catatan''': Jika Anda tidak melakukannya sekarang, berkas konfigurasi yang dihasilkan ini tidak akan tersedia lagi setelah Anda keluar dari proses instalasi tanpa mengunduhnya.\n\nSetelah melakukannya, Anda dapat '''[$2 memasuki wiki Anda]'''.",
        "config-download-localsettings": "Unduh <code>LocalSettings.php</code>",
        "config-help": "bantuan",
+       "config-help-tooltip": "klik untuk memperluas",
        "config-nofile": "Berkas \"$1\" tidak dapat ditemukan. Mungkin sudah dihapus?",
+       "config-extension-link": "Tahukah Anda bahwa wiki Anda mendukung [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Extensions ekstensi]?\n\nAnda dapat menjelajahi [//www.mediawiki.org/wiki/Special:MyLanguage/Category:Extensions_by_category ekstensi menurut kategori] atau [//www.mediawiki.org/wiki/Extension_Matrix Ekstensi Matriks] untuk melihat daftar lengkap ekstensi.",
        "mainpagetext": "'''MediaWiki telah terpasang dengan sukses'''.",
        "mainpagedocfooter": "Silakan baca [//www.mediawiki.org/wiki/Help:Contents Panduan Pengguna] untuk cara penggunaan perangkat lunak wiki ini.\n\n== Memulai penggunaan ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings/id Daftar pengaturan konfigurasi]\n* [//www.mediawiki.org/wiki/Manual:FAQ/id Daftar pertanyaan yang sering diajukan mengenai MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Milis rilis MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Terjemahkan MediaWiki ke bahasa Anda]"
 }
index 08d4462..726b74d 100644 (file)
        "config-page-readme": "წამიკითხე",
        "config-page-copying": "ლიცენზია",
        "config-page-upgradedoc": "განახლება",
+       "config-page-existingwiki": "არსებული ვიკი",
        "config-restart": "დიახ, თავიდან დაიწყეთ",
        "config-sidebar": "* [//www.mediawiki.org მედიავიკის ვებ-გვერდი]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/ka მომხმარებლების დახმარება]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/ka ადმინისტრატორების დახმარება]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/ka FAQ]\n----\n* <doclink href=Readme>წამიკითხე</doclink>\n* <doclink href=ReleaseNotes>ინფორმაცია გამოშვებაზე</doclink>\n* <doclink href=Copying>ლიცენზია</doclink>\n* <doclink href=UpgradeDoc>განახლება</doclink>",
+       "config-xcache": "[http://xcache.lighttpd.net/ XCache] დაყენდა",
+       "config-apc": "[http://www.php.net/apc APC] დაყენდა",
+       "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] დაყენდა",
+       "config-diff3-bad": "GNU diff3 ვერ მოიძებნა.",
        "config-db-type": "მონაცემთა ბაზის ტიპი:",
        "config-db-host-oracle": "მონაცემთა ბაზის TNS:",
        "config-db-name": "მონაცემთა ბაზის სახელი:",
@@ -38,6 +43,7 @@
        "config-header-sqlite": "SQLite-ის პარამეტრები",
        "config-header-oracle": "Oracle-ის პარამეტრები",
        "config-invalid-db-type": "არასწორი მონაცემთა ბაზის ტიპი",
+       "config-sqlite-readonly": "ფაილი <code>$1</code> ჩასაწერად მიუწვდომელია.",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
        "config-mysql-binary": "ორობითი",
        "config-admin-password": "პაროლი:",
        "config-admin-password-confirm": "პაროლი ხელმეორედ:",
        "config-admin-name-blank": "შეიყვანეთ ადმინისტრატორის მომხმარებლის სახელი.",
+       "config-admin-password-blank": "შეიყვანეთ ადმინისტრატორის ანგარიშის პაროლი.",
+       "config-admin-password-mismatch": "თქვენ მიერ შეყვანილი პაროლები ერთმანეთს არ ემთხვევა.",
        "config-admin-email": "ელ. ფოსტის მისამართი:",
+       "config-admin-error-bademail": "თქვენ მიერ შეყვანილი ელ.ფოსტა არასწორია.",
+       "config-subscribe": "გამოიწერეთ [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce მედიავიკის ახალი ვერსიის გამოსვლის სიახლეები].",
        "config-profile": "მომხმარებელთა უფლებების პროფილი:",
        "config-profile-wiki": "ღია ვიკი",
+       "config-profile-no-anon": "საჭიროა ანგარიშის შექმნა",
+       "config-profile-fishbowl": "მხოლოდ ავტორიზებული რედაქტორებისათვის",
        "config-profile-private": "დახურული ვიკი",
        "config-license": "საავტორო უფლები და ლიცენზია:",
        "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
        "config-upload-enable": "ფაილების ატვირთვის ჩართვა",
        "config-logo": "ლოგოს URL:",
        "config-cc-again": "აირჩიეთ კიდევ ერთხელ...",
+       "config-advanced-settings": "დამატებითი კონფიგურაცია",
        "config-extensions": "გაფართოებები",
        "config-install-step-done": "შესრულდა",
        "config-install-step-failed": "ვერ მოხერხდა",
+       "config-install-schema": "სქემის შექმნა",
        "config-install-tables": "ცხრილების შექმნა",
        "config-install-interwiki-list": "ვერ მოიძებნა ფაილი <code>interwiki.list</code>.",
        "config-download-localsettings": "<code>LocalSettings.php</code>-ის გადმოწერა",
        "config-help": "დახმარება",
+       "config-help-tooltip": "გასაშლელად დააწკაპუნეთ",
        "mainpagetext": "'''მედიავიკი წარმატებით ჩაიტვირთა.'''",
        "mainpagedocfooter": "ვიკი პროგრამის გამოყენების ინფორმაციისთვის იხილეთ [//meta.wikimedia.org/wiki/Help:Contents მომხმარებლის მეგზური].\n\n== დაწყება ==\n\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings კონფიგურაციის მაჩვენებლების სია]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce მედიავიკის გამოცემის დაგზავნის სია]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources მედიავიკის ლოკალიზება თქვენ ენაზე]"
 }
index 6da4caf..d5a2d8f 100644 (file)
        "config-advanced-settings": "Configuração avançada",
        "config-extensions": "Extensões",
        "config-install-step-done": "feito",
+       "config-install-extensions": "Incluindo extensões",
        "config-install-database": "Criando base de dados",
+       "config-install-schema": "Criando esquema",
+       "config-install-pg-commit": "Enviando alterações",
+       "config-install-user": "Criando usuário de banco de dados",
+       "config-install-user-alreadyexists": "O usuário \"$1\" já existe!",
        "config-install-user-missing-create": "O usuário especificado \" $1 \" não existe.\nPor favor, clique na opção de \"criar conta\" abaixo se você deseja criá-lo.",
        "config-install-tables": "Criando tabelas",
        "config-install-tables-exist": "'''Aviso''': As tabelas do MediaWiki parecem já existir.\nA criação das tabelas será pulada.",
index 5a10741..e28b38f 100644 (file)
@@ -116,7 +116,7 @@ class SvgHandler extends ImageHandler {
        /**
         * We do not support making animated svg thumbnails
         */
-       function canAnimateThumb( $file ) {
+       function canAnimateThumbnail( $file ) {
                return false;
        }
 
index d61b6c0..18e6003 100644 (file)
@@ -87,6 +87,7 @@ abstract class MachineReadableRCFeedFormatter implements RCFeedFormatter {
                                break;
 
                        case RC_LOG:
+                               $packet['log_id'] = $attrib['rc_logid'];
                                $packet['log_type'] = $attrib['rc_log_type'];
                                $packet['log_action'] = $attrib['rc_log_action'];
                                if ( $attrib['rc_params'] ) {
index 7765714..5ac874d 100644 (file)
@@ -35,6 +35,9 @@ class ResourceLoader {
        /** @var array */
        protected static $requiredSourceProperties = array( 'loadScript' );
 
+       /** @var bool */
+       protected static $debugMode = null;
+
        /** @var array Module name/ResourceLoaderModule object pairs */
        protected $modules = array();
 
@@ -145,9 +148,10 @@ class ResourceLoader {
         *
         * @param string $filter Name of filter to run
         * @param string $data Text to filter, such as JavaScript or CSS text
+        * @param string $cacheReport Whether to include the cache key report
         * @return string Filtered data, or a comment containing an error message
         */
-       protected function filter( $filter, $data ) {
+       public function filter( $filter, $data, $cacheReport = true ) {
                global $wgResourceLoaderMinifierStatementsOnOwnLine, $wgResourceLoaderMinifierMaxLineLength;
                wfProfileIn( __METHOD__ );
 
@@ -179,11 +183,15 @@ class ResourceLoader {
                                                $wgResourceLoaderMinifierStatementsOnOwnLine,
                                                $wgResourceLoaderMinifierMaxLineLength
                                        );
-                                       $result .= "\n/* cache key: $key */";
+                                       if ( $cacheReport ) {
+                                               $result .= "\n/* cache key: $key */";
+                                       }
                                        break;
                                case 'minify-css':
                                        $result = CSSMin::minify( $data );
-                                       $result .= "\n/* cache key: $key */";
+                                       if ( $cacheReport ) {
+                                               $result .= "\n/* cache key: $key */";
+                                       }
                                        break;
                        }
 
@@ -1074,15 +1082,15 @@ class ResourceLoader {
         * Returns JS code which calls mw.loader.register with the given
         * parameters. Has three calling conventions:
         *
-        *   - ResourceLoader::makeLoaderRegisterScript( $name, $version, $dependencies, $group, $source ):
+        *   - ResourceLoader::makeLoaderRegisterScript( $name, $version, $dependencies, $group, $source, $skip ):
         *       Register a single module.
         *
         *   - ResourceLoader::makeLoaderRegisterScript( array( $name1, $name2 ) ):
         *       Register modules with the given names.
         *
         *   - ResourceLoader::makeLoaderRegisterScript( array(
-        *        array( $name1, $version1, $dependencies1, $group1, $source1 ),
-        *        array( $name2, $version2, $dependencies1, $group2, $source2 ),
+        *        array( $name1, $version1, $dependencies1, $group1, $source1, $skip1 ),
+        *        array( $name2, $version2, $dependencies1, $group2, $source2, $skip2 ),
         *        ...
         *     ) ):
         *        Registers modules with the given names and parameters.
@@ -1092,10 +1100,11 @@ class ResourceLoader {
         * @param array $dependencies List of module names on which this module depends
         * @param string $group Group which the module is in
         * @param string $source Source of the module, or 'local' if not foreign
+        * @param string $skip Script body of the skip function
         * @return string
         */
        public static function makeLoaderRegisterScript( $name, $version = null,
-               $dependencies = null, $group = null, $source = null
+               $dependencies = null, $group = null, $source = null, $skip = null
        ) {
                if ( is_array( $name ) ) {
                        return Xml::encodeJsCall(
@@ -1107,7 +1116,7 @@ class ResourceLoader {
                        $version = (int)$version > 1 ? (int)$version : 1;
                        return Xml::encodeJsCall(
                                'mw.loader.register',
-                               array( $name, $version, $dependencies, $group, $source ),
+                               array( $name, $version, $dependencies, $group, $source, $skip ),
                                ResourceLoader::inDebugMode()
                        );
                }
@@ -1201,13 +1210,24 @@ class ResourceLoader {
         * @return bool
         */
        public static function inDebugMode() {
-               global $wgRequest, $wgResourceLoaderDebug;
-               static $retval = null;
-               if ( is_null( $retval ) ) {
-                       $retval = $wgRequest->getFuzzyBool( 'debug',
-                               $wgRequest->getCookie( 'resourceLoaderDebug', '', $wgResourceLoaderDebug ) );
+               if ( self::$debugMode === null ) {
+                       global $wgRequest, $wgResourceLoaderDebug;
+                       self::$debugMode = $wgRequest->getFuzzyBool( 'debug',
+                               $wgRequest->getCookie( 'resourceLoaderDebug', '', $wgResourceLoaderDebug )
+                       );
                }
-               return $retval;
+               return self::$debugMode;
+       }
+
+       /**
+        * Reset static members used for caching.
+        *
+        * Global state and $wgRequest are evil, but we're using it right
+        * now and sometimes we need to be able to force ResourceLoader to
+        * re-evaluate the context because it has changed (e.g. in the test suite).
+        */
+       public static function clearCache() {
+               self::$debugMode = null;
        }
 
        /**
index f9ff029..fa9a8f0 100644 (file)
@@ -106,6 +106,11 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         */
        protected $dependencies = array();
 
+       /**
+        * @var string File name containing the body of the skip function
+        */
+       protected $skipFunction = null;
+
        /**
         * @var array List of message keys used by this module
         * @par Usage:
@@ -204,6 +209,10 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         *         'group' => [group name string],
         *         // Position on the page to load this module at
         *         'position' => ['bottom' (default) or 'top']
+        *         // Function that, if it returns true, makes the loader skip this module.
+        *         // The file must contain valid JavaScript for execution in a private function.
+        *         // The file must not contain the "function () {" and "}" wrapper though.
+        *         'skipFunction' => [file path]
         *     )
         * @endcode
         */
@@ -267,6 +276,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                                case 'position':
                                case 'localBasePath':
                                case 'remoteBasePath':
+                               case 'skipFunction':
                                        $this->{$member} = (string)$option;
                                        break;
                                // Single booleans
@@ -410,6 +420,28 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                return $this->dependencies;
        }
 
+       /**
+        * Get the skip function.
+        *
+        * @return string|null
+        */
+       public function getSkipFunction() {
+               if ( !$this->skipFunction ) {
+                       return null;
+               }
+
+               global $wgResourceLoaderValidateStaticJS;
+               $localPath = $this->getLocalPath( $this->skipFunction );
+               if ( !file_exists( $localPath ) ) {
+                       throw new MWException( __METHOD__ . ": skip function file not found: \"$localPath\"" );
+               }
+               $contents = file_get_contents( $localPath );
+               if ( $wgResourceLoaderValidateStaticJS ) {
+                       $contents = $this->validateScriptFile( $fileName, $contents );
+               }
+               return $contents;
+       }
+
        /**
         * @return bool
         */
@@ -463,6 +495,9 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                        self::tryForKey( $this->skinScripts, $context->getSkin(), 'default' ),
                        $this->loaderScripts
                );
+               if ( $this->skipFunction ) {
+                       $files[] = $this->skipFunction;
+               }
                $files = array_map( array( $this, 'getLocalPath' ), $files );
                // File deps need to be treated separately because they're already prefixed
                $files = array_merge( $files, $this->getFileDependencies( $context->getSkin() ) );
@@ -511,6 +546,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                        'targets',
                        'group',
                        'position',
+                       'skipFunction',
                        'localBasePath',
                        'remoteBasePath',
                        'debugRaw',
index 9ddd184..f636105 100644 (file)
@@ -293,6 +293,24 @@ abstract class ResourceLoaderModule {
                return $this->targets;
        }
 
+       /**
+        * Get the skip function.
+        *
+        * Modules that provide fallback functionality can provide a "skip function". This
+        * function, if provided, will be passed along to the module registry on the client.
+        * When this module is loaded (either directly or as a dependency of another module),
+        * then this function is executed first. If the function returns true, the module will
+        * instantly be considered "ready" without requesting the associated module resources.
+        *
+        * The value returned here must be valid javascript for execution in a private function.
+        * It must not contain the "function () {" and "}" wrapper though.
+        *
+        * @return string|null A JavaScript function body returning a boolean value, or null
+        */
+       public function getSkipFunction() {
+               return null;
+       }
+
        /**
         * Get the files this module depends on indirectly for a given skin.
         * Currently these are only image files referenced by the module's CSS.
index 63a444b..8a936c6 100644 (file)
@@ -222,12 +222,24 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
 
                        // FIXME: Convert to numbers, wfTimestamp always gives us stings, even for TS_UNIX
 
+                       $skipFunction = $module->getSkipFunction();
+                       if ( $skipFunction !== null && !ResourceLoader::inDebugMode() ) {
+                               $skipFunction = $resourceLoader->filter( 'minify-js',
+                                       $skipFunction,
+                                       // There will potentially be lots of these little string in the registrations
+                                       // manifest, we don't want to blow up the startup module with
+                                       // "/* cache key: ... */" all over it in non-debug mode.
+                                       /* cacheReport = */ false
+                               );
+                       }
+
                        $registryData[ $name ] = array(
                                'version' => $mtime,
                                'dependencies' => $module->getDependencies(),
                                'group' => $module->getGroup(),
                                'source' => $module->getSource(),
                                'loader' => $module->getLoaderScript(),
+                               'skip' => $skipFunction,
                        );
                }
 
@@ -255,17 +267,25 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                        if (
                                !count( $data['dependencies'] ) &&
                                $data['group'] === null &&
-                               $data['source'] === 'local'
+                               $data['source'] === 'local' &&
+                               $data['skip'] === null
                        ) {
-                               // Modules without dependencies, a group or a foreign source;
+                               // Modules with no dependencies, group, foreign source or skip function;
                                // call mw.loader.register(name, timestamp)
                                $registrations[] = array( $name, $data['version'] );
-                       } elseif ( $data['group'] === null && $data['source'] === 'local' ) {
-                               // Modules with dependencies but no group or foreign source;
+                       } elseif (
+                               $data['group'] === null &&
+                               $data['source'] === 'local' &&
+                               $data['skip'] === null
+                       ) {
+                               // Modules with dependencies but no group, foreign source or skip function;
                                // call mw.loader.register(name, timestamp, dependencies)
                                $registrations[] = array( $name, $data['version'], $data['dependencies'] );
-                       } elseif ( $data['source'] === 'local' ) {
-                               // Modules with a group but no foreign source;
+                       } elseif (
+                               $data['source'] === 'local' &&
+                               $data['skip'] === null
+                       ) {
+                               // Modules with a group but no foreign source or skip function;
                                // call mw.loader.register(name, timestamp, dependencies, group)
                                $registrations[] = array(
                                        $name,
@@ -273,8 +293,8 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                                        $data['dependencies'],
                                        $data['group']
                                );
-                       } else {
-                               // Modules with a foreign source;
+                       } elseif ( $data['skip'] === null ) {
+                               // Modules with a foreign source but no skip function;
                                // call mw.loader.register(name, timestamp, dependencies, group, source)
                                $registrations[] = array(
                                        $name,
@@ -283,6 +303,17 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                                        $data['group'],
                                        $data['source']
                                );
+                       } else {
+                               // Modules with a skip function;
+                               // call mw.loader.register(name, timestamp, dependencies, group, source, skip)
+                               $registrations[] = array(
+                                       $name,
+                                       $data['version'],
+                                       $data['dependencies'],
+                                       $data['group'],
+                                       $data['source'],
+                                       $data['skip']
+                               );
                        }
                }
 
index f7c95d1..ad1ee36 100644 (file)
@@ -412,23 +412,16 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                        unset( $legendItems['unpatrolled'] );
                }
                foreach ( $legendItems as $key => $item ) { # generate items of the legend
-                       $label = $item['title'];
+                       $label = isset( $item['legend'] ) ? $item['legend'] : $item['title'];
                        $letter = $item['letter'];
                        $cssClass = isset( $item['class'] ) ? $item['class'] : $key;
 
                        $legend .= Html::element( 'dt',
                                array( 'class' => $cssClass ), $context->msg( $letter )->text()
+                       ) . "\n" .
+                       Html::rawElement( 'dd', array(),
+                               $context->msg( $label )->parse()
                        ) . "\n";
-                       if ( $key === 'newpage' ) {
-                               $legend .= Html::openElement( 'dd' );
-                               $legend .= $context->msg( $label )->escaped();
-                               $legend .= ' ' . $context->msg( 'recentchanges-legend-newpage' )->parse();
-                               $legend .= Html::closeElement( 'dd' ) . "\n";
-                       } else {
-                               $legend .= Html::element( 'dd', array(),
-                                       $context->msg( $label )->text()
-                               ) . "\n";
-                       }
                }
                # (+-123)
                $legend .= Html::rawElement( 'dt',
index 3968187..da51a33 100644 (file)
@@ -329,6 +329,25 @@ class SpecialPage {
                }
        }
 
+       /**
+        * Return an array of subpages beginning with $search that this special page will accept.
+        *
+        * For example, if a page supports subpages "foo", "bar" and "baz" (as in Special:PageName/foo,
+        * etc.):
+        *
+        *   - `prefixSearchSubpages( "ba" )` should return `array( "bar", "baz" )`
+        *   - `prefixSearchSubpages( "f" )` should return `array( "foo" )`
+        *   - `prefixSearchSubpages( "z" )` should return `array()`
+        *   - `prefixSearchSubpages( "" )` should return `array( foo", "bar", "baz" )`
+        *
+        * @param string $search Prefix to search for
+        * @param integer $limit Maximum number of results to return
+        * @return string[] Matching subpages
+        */
+       public function prefixSearchSubpages( $search, $limit = 10 ) {
+               return array();
+       }
+
        /**
         * Sets headers - this should be called from the execute() method of all derived classes!
         */
diff --git a/includes/specials/SpecialAllMessages.php b/includes/specials/SpecialAllMessages.php
new file mode 100644 (file)
index 0000000..d44b94e
--- /dev/null
@@ -0,0 +1,483 @@
+<?php
+/**
+ * Implements Special:Allmessages
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup SpecialPage
+ */
+
+/**
+ * Use this special page to get a list of the MediaWiki system messages.
+ *
+ * @file
+ * @ingroup SpecialPage
+ */
+class SpecialAllMessages extends SpecialPage {
+       /**
+        * @var AllmessagesTablePager
+        */
+       protected $table;
+
+       /**
+        * Constructor
+        */
+       public function __construct() {
+               parent::__construct( 'Allmessages' );
+       }
+
+       /**
+        * Show the special page
+        *
+        * @param string $par Parameter passed to the page or null
+        */
+       public function execute( $par ) {
+               $request = $this->getRequest();
+               $out = $this->getOutput();
+
+               $this->setHeaders();
+
+               global $wgUseDatabaseMessages;
+               if ( !$wgUseDatabaseMessages ) {
+                       $out->addWikiMsg( 'allmessagesnotsupportedDB' );
+
+                       return;
+               } else {
+                       $this->outputHeader( 'allmessagestext' );
+               }
+
+               $out->addModuleStyles( 'mediawiki.special' );
+
+               $this->table = new AllmessagesTablePager(
+                       $this,
+                       array(),
+                       wfGetLangObj( $request->getVal( 'lang', $par ) )
+               );
+
+               $this->langcode = $this->table->lang->getCode();
+
+               $out->addHTML( $this->table->buildForm() .
+                       $this->table->getNavigationBar() .
+                       $this->table->getBody() .
+                       $this->table->getNavigationBar() );
+       }
+
+       protected function getGroupName() {
+               return 'wiki';
+       }
+}
+
+/**
+ * Use TablePager for prettified output. We have to pretend that we're
+ * getting data from a table when in fact not all of it comes from the database.
+ */
+class AllMessagesTablePager extends TablePager {
+       protected $filter, $prefix, $langcode, $displayPrefix;
+
+       public $mLimitsShown;
+
+       /**
+        * @var Language
+        */
+       public $lang;
+
+       /**
+        * @var null|bool
+        */
+       public $custom;
+
+       function __construct( $page, $conds, $langObj = null ) {
+               parent::__construct( $page->getContext() );
+               $this->mIndexField = 'am_title';
+               $this->mPage = $page;
+               $this->mConds = $conds;
+               $this->mDefaultDirection = true; // always sort ascending
+               $this->mLimitsShown = array( 20, 50, 100, 250, 500, 5000 );
+
+               global $wgContLang;
+
+               $this->talk = $this->msg( 'talkpagelinktext' )->escaped();
+
+               $this->lang = ( $langObj ? $langObj : $wgContLang );
+               $this->langcode = $this->lang->getCode();
+               $this->foreign = $this->langcode !== $wgContLang->getCode();
+
+               $request = $this->getRequest();
+
+               $this->filter = $request->getVal( 'filter', 'all' );
+               if ( $this->filter === 'all' ) {
+                       $this->custom = null; // So won't match in either case
+               } else {
+                       $this->custom = ( $this->filter === 'unmodified' );
+               }
+
+               $prefix = $this->getLanguage()->ucfirst( $request->getVal( 'prefix', '' ) );
+               $prefix = $prefix !== '' ?
+                       Title::makeTitleSafe( NS_MEDIAWIKI, $request->getVal( 'prefix', null ) ) :
+                       null;
+
+               if ( $prefix !== null ) {
+                       $this->displayPrefix = $prefix->getDBkey();
+                       $this->prefix = '/^' . preg_quote( $this->displayPrefix ) . '/i';
+               } else {
+                       $this->displayPrefix = false;
+                       $this->prefix = false;
+               }
+
+               // The suffix that may be needed for message names if we're in a
+               // different language (eg [[MediaWiki:Foo/fr]]: $suffix = '/fr'
+               if ( $this->foreign ) {
+                       $this->suffix = '/' . $this->langcode;
+               } else {
+                       $this->suffix = '';
+               }
+       }
+
+       function buildForm() {
+               global $wgScript;
+
+               $attrs = array( 'id' => 'mw-allmessages-form-lang', 'name' => 'lang' );
+               $msg = wfMessage( 'allmessages-language' );
+               $langSelect = Xml::languageSelector( $this->langcode, false, null, $attrs, $msg );
+
+               $out = Xml::openElement( 'form', array(
+                               'method' => 'get',
+                               'action' => $wgScript,
+                               'id' => 'mw-allmessages-form'
+                       ) ) .
+                       Xml::fieldset( $this->msg( 'allmessages-filter-legend' )->text() ) .
+                       Html::hidden( 'title', $this->getTitle()->getPrefixedText() ) .
+                       Xml::openElement( 'table', array( 'class' => 'mw-allmessages-table' ) ) . "\n" .
+                       '<tr>
+                               <td class="mw-label">' .
+                       Xml::label( $this->msg( 'allmessages-prefix' )->text(), 'mw-allmessages-form-prefix' ) .
+                       "</td>\n
+                       <td class=\"mw-input\">" .
+                       Xml::input(
+                               'prefix',
+                               20,
+                               str_replace( '_', ' ', $this->displayPrefix ),
+                               array( 'id' => 'mw-allmessages-form-prefix' )
+                       ) .
+                       "</td>\n
+                       </tr>
+                       <tr>\n
+                       <td class='mw-label'>" .
+                       $this->msg( 'allmessages-filter' )->escaped() .
+                       "</td>\n
+                               <td class='mw-input'>" .
+                       Xml::radioLabel( $this->msg( 'allmessages-filter-unmodified' )->text(),
+                               'filter',
+                               'unmodified',
+                               'mw-allmessages-form-filter-unmodified',
+                               ( $this->filter === 'unmodified' )
+                       ) .
+                       Xml::radioLabel( $this->msg( 'allmessages-filter-all' )->text(),
+                               'filter',
+                               'all',
+                               'mw-allmessages-form-filter-all',
+                               ( $this->filter === 'all' )
+                       ) .
+                       Xml::radioLabel( $this->msg( 'allmessages-filter-modified' )->text(),
+                               'filter',
+                               'modified',
+                               'mw-allmessages-form-filter-modified',
+                               ( $this->filter === 'modified' )
+                       ) .
+                       "</td>\n
+                       </tr>
+                       <tr>\n
+                               <td class=\"mw-label\">" . $langSelect[0] . "</td>\n
+                               <td class=\"mw-input\">" . $langSelect[1] . "</td>\n
+                       </tr>" .
+
+                       '<tr>
+                               <td class="mw-label">' .
+                       Xml::label( $this->msg( 'table_pager_limit_label' )->text(), 'mw-table_pager_limit_label' ) .
+                       '</td>
+                       <td class="mw-input">' .
+                       $this->getLimitSelect() .
+                       '</td>
+                       <tr>
+                               <td></td>
+                               <td>' .
+                       Xml::submitButton( $this->msg( 'allmessages-filter-submit' )->text() ) .
+                       "</td>\n
+                       </tr>" .
+
+                       Xml::closeElement( 'table' ) .
+                       $this->getHiddenFields( array( 'title', 'prefix', 'filter', 'lang', 'limit' ) ) .
+                       Xml::closeElement( 'fieldset' ) .
+                       Xml::closeElement( 'form' );
+
+               return $out;
+       }
+
+       function getAllMessages( $descending ) {
+               wfProfileIn( __METHOD__ );
+               $messageNames = Language::getLocalisationCache()->getSubitemList( 'en', 'messages' );
+               if ( $descending ) {
+                       rsort( $messageNames );
+               } else {
+                       asort( $messageNames );
+               }
+
+               // Normalise message names so they look like page titles
+               $messageNames = array_map( array( $this->lang, 'ucfirst' ), $messageNames );
+
+               wfProfileOut( __METHOD__ );
+
+               return $messageNames;
+       }
+
+       /**
+        * Determine which of the MediaWiki and MediaWiki_talk namespace pages exist.
+        * Returns array( 'pages' => ..., 'talks' => ... ), where the subarrays have
+        * an entry for each existing page, with the key being the message name and
+        * value arbitrary.
+        *
+        * @param array $messageNames
+        * @param string $langcode What language code
+        * @param bool $foreign Whether the $langcode is not the content language
+        * @return array A 'pages' and 'talks' array with the keys of existing pages
+        */
+       public static function getCustomisedStatuses( $messageNames, $langcode = 'en', $foreign = false ) {
+               // FIXME: This function should be moved to Language:: or something.
+               wfProfileIn( __METHOD__ . '-db' );
+
+               $dbr = wfGetDB( DB_SLAVE );
+               $res = $dbr->select( 'page',
+                       array( 'page_namespace', 'page_title' ),
+                       array( 'page_namespace' => array( NS_MEDIAWIKI, NS_MEDIAWIKI_TALK ) ),
+                       __METHOD__,
+                       array( 'USE INDEX' => 'name_title' )
+               );
+               $xNames = array_flip( $messageNames );
+
+               $pageFlags = $talkFlags = array();
+
+               foreach ( $res as $s ) {
+                       $exists = false;
+
+                       if ( $foreign ) {
+                               $titleParts = explode( '/', $s->page_title );
+                               if ( count( $titleParts ) === 2 &&
+                                       $langcode === $titleParts[1] &&
+                                       isset( $xNames[$titleParts[0]] )
+                               ) {
+                                       $exists = $titleParts[0];
+                               }
+                       } elseif ( isset( $xNames[$s->page_title] ) ) {
+                               $exists = $s->page_title;
+                       }
+
+                       $title = Title::newFromRow( $s );
+                       if ( $exists && $title->inNamespace( NS_MEDIAWIKI ) ) {
+                               $pageFlags[$exists] = true;
+                       } elseif ( $exists && $title->inNamespace( NS_MEDIAWIKI_TALK ) ) {
+                               $talkFlags[$exists] = true;
+                       }
+               }
+
+               wfProfileOut( __METHOD__ . '-db' );
+
+               return array( 'pages' => $pageFlags, 'talks' => $talkFlags );
+       }
+
+       /**
+        *  This function normally does a database query to get the results; we need
+        * to make a pretend result using a FakeResultWrapper.
+        * @param string $offset
+        * @param int $limit
+        * @param bool $descending
+        * @return FakeResultWrapper
+        */
+       function reallyDoQuery( $offset, $limit, $descending ) {
+               $result = new FakeResultWrapper( array() );
+
+               $messageNames = $this->getAllMessages( $descending );
+               $statuses = self::getCustomisedStatuses( $messageNames, $this->langcode, $this->foreign );
+
+               $count = 0;
+               foreach ( $messageNames as $key ) {
+                       $customised = isset( $statuses['pages'][$key] );
+                       if ( $customised !== $this->custom &&
+                               ( $descending && ( $key < $offset || !$offset ) || !$descending && $key > $offset ) &&
+                               ( ( $this->prefix && preg_match( $this->prefix, $key ) ) || $this->prefix === false )
+                       ) {
+                               $actual = wfMessage( $key )->inLanguage( $this->langcode )->plain();
+                               $default = wfMessage( $key )->inLanguage( $this->langcode )->useDatabase( false )->plain();
+                               $result->result[] = array(
+                                       'am_title' => $key,
+                                       'am_actual' => $actual,
+                                       'am_default' => $default,
+                                       'am_customised' => $customised,
+                                       'am_talk_exists' => isset( $statuses['talks'][$key] )
+                               );
+                               $count++;
+                       }
+
+                       if ( $count === $limit ) {
+                               break;
+                       }
+               }
+
+               return $result;
+       }
+
+       function getStartBody() {
+               return Xml::openElement( 'table', array(
+                               'class' => 'mw-datatable TablePager',
+                               'id' => 'mw-allmessagestable'
+                       ) ) .
+                       "\n" .
+                       "<thead><tr>
+                               <th rowspan=\"2\">" .
+                       $this->msg( 'allmessagesname' )->escaped() . "
+                               </th>
+                               <th>" .
+                       $this->msg( 'allmessagesdefault' )->escaped() .
+                       "</th>
+                       </tr>\n
+                       <tr>
+                               <th>" .
+                       $this->msg( 'allmessagescurrent' )->escaped() .
+                       "</th>
+                       </tr></thead><tbody>\n";
+       }
+
+       function formatValue( $field, $value ) {
+               switch ( $field ) {
+                       case 'am_title' :
+                               $title = Title::makeTitle( NS_MEDIAWIKI, $value . $this->suffix );
+                               $talk = Title::makeTitle( NS_MEDIAWIKI_TALK, $value . $this->suffix );
+                               $translation = Linker::makeExternalLink(
+                                       'https://translatewiki.net/w/i.php?' . wfArrayToCgi( array(
+                                               'title' => 'Special:SearchTranslations',
+                                               'group' => 'mediawiki',
+                                               'grouppath' => 'mediawiki',
+                                               'query' => 'language:' . $this->getLanguage()->getCode() . '^25 ' .
+                                                       'messageid:"MediaWiki:' . $value . '"^10 "' .
+                                                       $this->msg( $value )->inLanguage( 'en' )->plain() . '"'
+                                       ) ),
+                                       $this->msg( 'allmessages-filter-translate' )->text()
+                               );
+
+                               if ( $this->mCurrentRow->am_customised ) {
+                                       $title = Linker::linkKnown( $title, $this->getLanguage()->lcfirst( $value ) );
+                               } else {
+                                       $title = Linker::link(
+                                               $title,
+                                               $this->getLanguage()->lcfirst( $value ),
+                                               array(),
+                                               array(),
+                                               array( 'broken' )
+                                       );
+                               }
+                               if ( $this->mCurrentRow->am_talk_exists ) {
+                                       $talk = Linker::linkKnown( $talk, $this->talk );
+                               } else {
+                                       $talk = Linker::link(
+                                               $talk,
+                                               $this->talk,
+                                               array(),
+                                               array(),
+                                               array( 'broken' )
+                                       );
+                               }
+
+                               return $title . ' '
+                               . $this->msg( 'parentheses' )->rawParams( $talk )->escaped()
+                               . ' '
+                               . $this->msg( 'parentheses' )->rawParams( $translation )->escaped();
+
+                       case 'am_default' :
+                       case 'am_actual' :
+                               return Sanitizer::escapeHtmlAllowEntities( $value, ENT_QUOTES );
+               }
+
+               return '';
+       }
+
+       function formatRow( $row ) {
+               // Do all the normal stuff
+               $s = parent::formatRow( $row );
+
+               // But if there's a customised message, add that too.
+               if ( $row->am_customised ) {
+                       $s .= Xml::openElement( 'tr', $this->getRowAttrs( $row, true ) );
+                       $formatted = strval( $this->formatValue( 'am_actual', $row->am_actual ) );
+
+                       if ( $formatted === '' ) {
+                               $formatted = '&#160;';
+                       }
+
+                       $s .= Xml::tags( 'td', $this->getCellAttrs( 'am_actual', $row->am_actual ), $formatted )
+                               . "</tr>\n";
+               }
+
+               return $s;
+       }
+
+       function getRowAttrs( $row, $isSecond = false ) {
+               $arr = array();
+
+               if ( $row->am_customised ) {
+                       $arr['class'] = 'allmessages-customised';
+               }
+
+               if ( !$isSecond ) {
+                       $arr['id'] = Sanitizer::escapeId( 'msg_' . $this->getLanguage()->lcfirst( $row->am_title ) );
+               }
+
+               return $arr;
+       }
+
+       function getCellAttrs( $field, $value ) {
+               if ( $this->mCurrentRow->am_customised && $field === 'am_title' ) {
+                       return array( 'rowspan' => '2', 'class' => $field );
+               } elseif ( $field === 'am_title' ) {
+                       return array( 'class' => $field );
+               } else {
+                       return array( 'lang' => $this->langcode, 'dir' => $this->lang->getDir(), 'class' => $field );
+               }
+       }
+
+       // This is not actually used, as getStartBody is overridden above
+       function getFieldNames() {
+               return array(
+                       'am_title' => $this->msg( 'allmessagesname' )->text(),
+                       'am_default' => $this->msg( 'allmessagesdefault' )->text()
+               );
+       }
+
+       function getTitle() {
+               return SpecialPage::getTitleFor( 'Allmessages', false );
+       }
+
+       function isFieldSortable( $x ) {
+               return false;
+       }
+
+       function getDefaultSort() {
+               return '';
+       }
+
+       function getQueryInfo() {
+               return '';
+       }
+}
diff --git a/includes/specials/SpecialAllPages.php b/includes/specials/SpecialAllPages.php
new file mode 100644 (file)
index 0000000..17e080f
--- /dev/null
@@ -0,0 +1,396 @@
+<?php
+/**
+ * Implements Special:Allpages
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup SpecialPage
+ */
+
+/**
+ * Implements Special:Allpages
+ *
+ * @ingroup SpecialPage
+ */
+class SpecialAllPages extends IncludableSpecialPage {
+
+       /**
+        * Maximum number of pages to show on single subpage.
+        *
+        * @var int $maxPerPage
+        */
+       protected $maxPerPage = 345;
+
+       /**
+        * Determines, which message describes the input field 'nsfrom'.
+        *
+        * @var string $nsfromMsg
+        */
+       protected $nsfromMsg = 'allpagesfrom';
+
+       /**
+        * Constructor
+        *
+        * @param string $name name of the special page, as seen in links and URLs (default: 'Allpages')
+        */
+       function __construct( $name = 'Allpages' ) {
+               parent::__construct( $name );
+       }
+
+       /**
+        * Entry point : initialise variables and call subfunctions.
+        *
+        * @param string $par becomes "FOO" when called like Special:Allpages/FOO (default null)
+        */
+       function execute( $par ) {
+               $request = $this->getRequest();
+               $out = $this->getOutput();
+
+               $this->setHeaders();
+               $this->outputHeader();
+               $out->allowClickjacking();
+
+               # GET values
+               $from = $request->getVal( 'from', null );
+               $to = $request->getVal( 'to', null );
+               $namespace = $request->getInt( 'namespace' );
+               $hideredirects = $request->getBool( 'hideredirects', false );
+
+               $namespaces = $this->getContext()->getLanguage()->getNamespaces();
+
+               $out->setPageTitle(
+                       ( $namespace > 0 && array_key_exists( $namespace, $namespaces ) ) ?
+                               $this->msg( 'allinnamespace', str_replace( '_', ' ', $namespaces[$namespace] ) ) :
+                               $this->msg( 'allarticles' )
+               );
+               $out->addModuleStyles( 'mediawiki.special' );
+
+               if ( $par !== null ) {
+                       $this->showChunk( $namespace, $par, $to, $hideredirects );
+               } elseif ( $from !== null && $to === null ) {
+                       $this->showChunk( $namespace, $from, $to, $hideredirects );
+               } else {
+                       $this->showToplevel( $namespace, $from, $to, $hideredirects );
+               }
+       }
+
+       /**
+        * HTML for the top form
+        *
+        * @param int $namespace A namespace constant (default NS_MAIN).
+        * @param string $from DbKey we are starting listing at.
+        * @param string $to DbKey we are ending listing at.
+        * @param bool $hideredirects Dont show redirects  (default false)
+        * @return string
+        */
+       function namespaceForm( $namespace = NS_MAIN, $from = '', $to = '', $hideredirects = false ) {
+               global $wgScript;
+               $t = $this->getPageTitle();
+
+               $out = Xml::openElement( 'div', array( 'class' => 'namespaceoptions' ) );
+               $out .= Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) );
+               $out .= Html::hidden( 'title', $t->getPrefixedText() );
+               $out .= Xml::openElement( 'fieldset' );
+               $out .= Xml::element( 'legend', null, $this->msg( 'allpages' )->text() );
+               $out .= Xml::openElement( 'table', array( 'id' => 'nsselect', 'class' => 'allpages' ) );
+               $out .= "<tr>
+       <td class='mw-label'>" .
+                       Xml::label( $this->msg( 'allpagesfrom' )->text(), 'nsfrom' ) .
+                       "       </td>
+       <td class='mw-input'>" .
+                       Xml::input( 'from', 30, str_replace( '_', ' ', $from ), array( 'id' => 'nsfrom' ) ) .
+                       "       </td>
+</tr>
+<tr>
+       <td class='mw-label'>" .
+                       Xml::label( $this->msg( 'allpagesto' )->text(), 'nsto' ) .
+                       "       </td>
+                       <td class='mw-input'>" .
+                       Xml::input( 'to', 30, str_replace( '_', ' ', $to ), array( 'id' => 'nsto' ) ) .
+                       "               </td>
+</tr>
+<tr>
+       <td class='mw-label'>" .
+                       Xml::label( $this->msg( 'namespace' )->text(), 'namespace' ) .
+                       "       </td>
+                       <td class='mw-input'>" .
+                       Html::namespaceSelector(
+                               array( 'selected' => $namespace ),
+                               array( 'name' => 'namespace', 'id' => 'namespace' )
+                       ) . ' ' .
+                       Xml::checkLabel(
+                               $this->msg( 'allpages-hide-redirects' )->text(),
+                               'hideredirects',
+                               'hideredirects',
+                               $hideredirects
+                       ) . ' ' .
+                       Xml::submitButton( $this->msg( 'allpagessubmit' )->text() ) .
+                       "       </td>
+</tr>";
+               $out .= Xml::closeElement( 'table' );
+               $out .= Xml::closeElement( 'fieldset' );
+               $out .= Xml::closeElement( 'form' );
+               $out .= Xml::closeElement( 'div' );
+
+               return $out;
+       }
+
+       /**
+        * @param int $namespace (default NS_MAIN)
+        * @param string $from List all pages from this name
+        * @param string $to List all pages to this name
+        * @param bool $hideredirects Dont show redirects (default false)
+        */
+       function showToplevel( $namespace = NS_MAIN, $from = '', $to = '', $hideredirects = false ) {
+               $from = Title::makeTitleSafe( $namespace, $from );
+               $to = Title::makeTitleSafe( $namespace, $to );
+               $from = ( $from && $from->isLocal() ) ? $from->getDBkey() : null;
+               $to = ( $to && $to->isLocal() ) ? $to->getDBkey() : null;
+
+               $this->showChunk( $namespace, $from, $to, $hideredirects );
+       }
+
+       /**
+        * @param int $namespace Namespace (Default NS_MAIN)
+        * @param string $from List all pages from this name (default false)
+        * @param string $to List all pages to this name (default false)
+        * @param bool $hideredirects Dont show redirects (default false)
+        */
+       function showChunk( $namespace = NS_MAIN, $from = false, $to = false, $hideredirects = false ) {
+               $output = $this->getOutput();
+
+               $fromList = $this->getNamespaceKeyAndText( $namespace, $from );
+               $toList = $this->getNamespaceKeyAndText( $namespace, $to );
+               $namespaces = $this->getContext()->getLanguage()->getNamespaces();
+               $n = 0;
+
+               if ( !$fromList || !$toList ) {
+                       $out = $this->msg( 'allpagesbadtitle' )->parseAsBlock();
+               } elseif ( !array_key_exists( $namespace, $namespaces ) ) {
+                       // Show errormessage and reset to NS_MAIN
+                       $out = $this->msg( 'allpages-bad-ns', $namespace )->parse();
+                       $namespace = NS_MAIN;
+               } else {
+                       list( $namespace, $fromKey, $from ) = $fromList;
+                       list( , $toKey, $to ) = $toList;
+
+                       $dbr = wfGetDB( DB_SLAVE );
+                       $conds = array(
+                               'page_namespace' => $namespace,
+                               'page_title >= ' . $dbr->addQuotes( $fromKey )
+                       );
+
+                       if ( $hideredirects ) {
+                               $conds['page_is_redirect'] = 0;
+                       }
+
+                       if ( $toKey !== "" ) {
+                               $conds[] = 'page_title <= ' . $dbr->addQuotes( $toKey );
+                       }
+
+                       $res = $dbr->select( 'page',
+                               array( 'page_namespace', 'page_title', 'page_is_redirect', 'page_id' ),
+                               $conds,
+                               __METHOD__,
+                               array(
+                                       'ORDER BY' => 'page_title',
+                                       'LIMIT' => $this->maxPerPage + 1,
+                                       'USE INDEX' => 'name_title',
+                               )
+                       );
+
+                       if ( $res->numRows() > 0 ) {
+                               $out = Xml::openElement( 'table', array( 'class' => 'mw-allpages-table-chunk' ) );
+                               while ( ( $n < $this->maxPerPage ) && ( $s = $res->fetchObject() ) ) {
+                                       $t = Title::newFromRow( $s );
+                                       if ( $t ) {
+                                               $link = ( $s->page_is_redirect ? '<div class="allpagesredirect">' : '' ) .
+                                                       Linker::link( $t ) .
+                                                       ( $s->page_is_redirect ? '</div>' : '' );
+                                       } else {
+                                               $link = '[[' . htmlspecialchars( $s->page_title ) . ']]';
+                                       }
+
+                                       if ( $n % 3 == 0 ) {
+                                               $out .= '<tr>';
+                                       }
+
+                                       $out .= "<td style=\"width:33%\">$link</td>";
+                                       $n++;
+                                       if ( $n % 3 == 0 ) {
+                                               $out .= "</tr>\n";
+                                       }
+                               }
+
+                               if ( ( $n % 3 ) != 0 ) {
+                                       $out .= "</tr>\n";
+                               }
+                               $out .= Xml::closeElement( 'table' );
+                       } else {
+                               $out = '';
+                       }
+               }
+
+               if ( $this->including() ) {
+                       $output->addHTML( $out );
+                       return;
+               }
+
+               if ( $from == '' ) {
+                       // First chunk; no previous link.
+                       $prevTitle = null;
+               } else {
+                       # Get the last title from previous chunk
+                       $dbr = wfGetDB( DB_SLAVE );
+                       $res_prev = $dbr->select(
+                               'page',
+                               'page_title',
+                               array( 'page_namespace' => $namespace, 'page_title < ' . $dbr->addQuotes( $from ) ),
+                               __METHOD__,
+                               array( 'ORDER BY' => 'page_title DESC',
+                                       'LIMIT' => $this->maxPerPage, 'OFFSET' => ( $this->maxPerPage - 1 )
+                               )
+                       );
+
+                       # Get first title of previous complete chunk
+                       if ( $dbr->numrows( $res_prev ) >= $this->maxPerPage ) {
+                               $pt = $dbr->fetchObject( $res_prev );
+                               $prevTitle = Title::makeTitle( $namespace, $pt->page_title );
+                       } else {
+                               # The previous chunk is not complete, need to link to the very first title
+                               # available in the database
+                               $options = array( 'LIMIT' => 1 );
+                               if ( !$dbr->implicitOrderby() ) {
+                                       $options['ORDER BY'] = 'page_title';
+                               }
+                               $reallyFirstPage_title = $dbr->selectField( 'page', 'page_title',
+                                       array( 'page_namespace' => $namespace ), __METHOD__, $options );
+                               # Show the previous link if it s not the current requested chunk
+                               if ( $from != $reallyFirstPage_title ) {
+                                       $prevTitle = Title::makeTitle( $namespace, $reallyFirstPage_title );
+                               } else {
+                                       $prevTitle = null;
+                               }
+                       }
+               }
+
+               $self = $this->getPageTitle();
+
+               $topLinks = array(
+                       Linker::link( $self, $this->msg( 'allpages' )->escaped() )
+               );
+               $bottomLinks = array();
+
+               # Do we put a previous link ?
+               if ( $prevTitle && $pt = $prevTitle->getText() ) {
+                       $query = array( 'from' => $prevTitle->getText() );
+
+                       if ( $namespace ) {
+                               $query['namespace'] = $namespace;
+                       }
+
+                       if ( $hideredirects ) {
+                               $query['hideredirects'] = $hideredirects;
+                       }
+
+                       $prevLink = Linker::linkKnown(
+                               $self,
+                               $this->msg( 'prevpage', $pt )->escaped(),
+                               array(),
+                               $query
+                       );
+                       $topLinks[] = $prevLink;
+                       $bottomLinks[] = $prevLink;
+               }
+
+               if ( $n == $this->maxPerPage && $s = $res->fetchObject() ) {
+                       # $s is the first link of the next chunk
+                       $t = Title::makeTitle( $namespace, $s->page_title );
+                       $query = array( 'from' => $t->getText() );
+
+                       if ( $namespace ) {
+                               $query['namespace'] = $namespace;
+                       }
+
+                       if ( $hideredirects ) {
+                               $query['hideredirects'] = $hideredirects;
+                       }
+
+                       $nextLink = Linker::linkKnown(
+                               $self,
+                               $this->msg( 'nextpage', $t->getText() )->escaped(),
+                               array(),
+                               $query
+                       );
+                       $topLinks[] = $nextLink;
+                       $bottomLinks[] = $nextLink;
+               }
+
+               $nsForm = $this->namespaceForm( $namespace, $from, $to, $hideredirects );
+               $out2 = Xml::openElement( 'table', array( 'class' => 'mw-allpages-table-form' ) ) .
+                       '<tr>
+                                               <td>' .
+                       $nsForm .
+                       '</td>
+                                               <td class="mw-allpages-nav">' .
+                       $this->getLanguage()->pipeList( $topLinks ) .
+                       '</td></tr></table>';
+
+               $output->addHTML( $out2 . $out );
+
+               if ( count( $bottomLinks ) ) {
+                       $output->addHTML(
+                               Html::element( 'hr' ) .
+                                       Html::rawElement( 'div', array( 'class' => 'mw-allpages-nav' ),
+                                               $this->getLanguage()->pipeList( $bottomLinks )
+                                       )
+                       );
+               }
+       }
+
+       /**
+        * @param int $ns The namespace of the article
+        * @param string $text The name of the article
+        * @return array( int namespace, string dbkey, string pagename ) or null on error
+        */
+       protected function getNamespaceKeyAndText( $ns, $text ) {
+               if ( $text == '' ) {
+                       # shortcut for common case
+                       return array( $ns, '', '' );
+               }
+
+               $t = Title::makeTitleSafe( $ns, $text );
+               if ( $t && $t->isLocal() ) {
+                       return array( $t->getNamespace(), $t->getDBkey(), $t->getText() );
+               } elseif ( $t ) {
+                       return null;
+               }
+
+               # try again, in case the problem was an empty pagename
+               $text = preg_replace( '/(#|$)/', 'X$1', $text );
+               $t = Title::makeTitleSafe( $ns, $text );
+               if ( $t && $t->isLocal() ) {
+                       return array( $t->getNamespace(), '', '' );
+               } else {
+                       return null;
+               }
+       }
+
+       protected function getGroupName() {
+               return 'pages';
+       }
+}
diff --git a/includes/specials/SpecialAllmessages.php b/includes/specials/SpecialAllmessages.php
deleted file mode 100644 (file)
index 687cbd0..0000000
+++ /dev/null
@@ -1,483 +0,0 @@
-<?php
-/**
- * Implements Special:Allmessages
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup SpecialPage
- */
-
-/**
- * Use this special page to get a list of the MediaWiki system messages.
- *
- * @file
- * @ingroup SpecialPage
- */
-class SpecialAllmessages extends SpecialPage {
-       /**
-        * @var AllmessagesTablePager
-        */
-       protected $table;
-
-       /**
-        * Constructor
-        */
-       public function __construct() {
-               parent::__construct( 'Allmessages' );
-       }
-
-       /**
-        * Show the special page
-        *
-        * @param string $par Parameter passed to the page or null
-        */
-       public function execute( $par ) {
-               $request = $this->getRequest();
-               $out = $this->getOutput();
-
-               $this->setHeaders();
-
-               global $wgUseDatabaseMessages;
-               if ( !$wgUseDatabaseMessages ) {
-                       $out->addWikiMsg( 'allmessagesnotsupportedDB' );
-
-                       return;
-               } else {
-                       $this->outputHeader( 'allmessagestext' );
-               }
-
-               $out->addModuleStyles( 'mediawiki.special' );
-
-               $this->table = new AllmessagesTablePager(
-                       $this,
-                       array(),
-                       wfGetLangObj( $request->getVal( 'lang', $par ) )
-               );
-
-               $this->langcode = $this->table->lang->getCode();
-
-               $out->addHTML( $this->table->buildForm() .
-                       $this->table->getNavigationBar() .
-                       $this->table->getBody() .
-                       $this->table->getNavigationBar() );
-       }
-
-       protected function getGroupName() {
-               return 'wiki';
-       }
-}
-
-/**
- * Use TablePager for prettified output. We have to pretend that we're
- * getting data from a table when in fact not all of it comes from the database.
- */
-class AllmessagesTablePager extends TablePager {
-       protected $filter, $prefix, $langcode, $displayPrefix;
-
-       public $mLimitsShown;
-
-       /**
-        * @var Language
-        */
-       public $lang;
-
-       /**
-        * @var null|bool
-        */
-       public $custom;
-
-       function __construct( $page, $conds, $langObj = null ) {
-               parent::__construct( $page->getContext() );
-               $this->mIndexField = 'am_title';
-               $this->mPage = $page;
-               $this->mConds = $conds;
-               $this->mDefaultDirection = true; // always sort ascending
-               $this->mLimitsShown = array( 20, 50, 100, 250, 500, 5000 );
-
-               global $wgContLang;
-
-               $this->talk = $this->msg( 'talkpagelinktext' )->escaped();
-
-               $this->lang = ( $langObj ? $langObj : $wgContLang );
-               $this->langcode = $this->lang->getCode();
-               $this->foreign = $this->langcode !== $wgContLang->getCode();
-
-               $request = $this->getRequest();
-
-               $this->filter = $request->getVal( 'filter', 'all' );
-               if ( $this->filter === 'all' ) {
-                       $this->custom = null; // So won't match in either case
-               } else {
-                       $this->custom = ( $this->filter === 'unmodified' );
-               }
-
-               $prefix = $this->getLanguage()->ucfirst( $request->getVal( 'prefix', '' ) );
-               $prefix = $prefix !== '' ?
-                       Title::makeTitleSafe( NS_MEDIAWIKI, $request->getVal( 'prefix', null ) ) :
-                       null;
-
-               if ( $prefix !== null ) {
-                       $this->displayPrefix = $prefix->getDBkey();
-                       $this->prefix = '/^' . preg_quote( $this->displayPrefix ) . '/i';
-               } else {
-                       $this->displayPrefix = false;
-                       $this->prefix = false;
-               }
-
-               // The suffix that may be needed for message names if we're in a
-               // different language (eg [[MediaWiki:Foo/fr]]: $suffix = '/fr'
-               if ( $this->foreign ) {
-                       $this->suffix = '/' . $this->langcode;
-               } else {
-                       $this->suffix = '';
-               }
-       }
-
-       function buildForm() {
-               global $wgScript;
-
-               $attrs = array( 'id' => 'mw-allmessages-form-lang', 'name' => 'lang' );
-               $msg = wfMessage( 'allmessages-language' );
-               $langSelect = Xml::languageSelector( $this->langcode, false, null, $attrs, $msg );
-
-               $out = Xml::openElement( 'form', array(
-                               'method' => 'get',
-                               'action' => $wgScript,
-                               'id' => 'mw-allmessages-form'
-                       ) ) .
-                       Xml::fieldset( $this->msg( 'allmessages-filter-legend' )->text() ) .
-                       Html::hidden( 'title', $this->getTitle()->getPrefixedText() ) .
-                       Xml::openElement( 'table', array( 'class' => 'mw-allmessages-table' ) ) . "\n" .
-                       '<tr>
-                               <td class="mw-label">' .
-                       Xml::label( $this->msg( 'allmessages-prefix' )->text(), 'mw-allmessages-form-prefix' ) .
-                       "</td>\n
-                       <td class=\"mw-input\">" .
-                       Xml::input(
-                               'prefix',
-                               20,
-                               str_replace( '_', ' ', $this->displayPrefix ),
-                               array( 'id' => 'mw-allmessages-form-prefix' )
-                       ) .
-                       "</td>\n
-                       </tr>
-                       <tr>\n
-                       <td class='mw-label'>" .
-                       $this->msg( 'allmessages-filter' )->escaped() .
-                       "</td>\n
-                               <td class='mw-input'>" .
-                       Xml::radioLabel( $this->msg( 'allmessages-filter-unmodified' )->text(),
-                               'filter',
-                               'unmodified',
-                               'mw-allmessages-form-filter-unmodified',
-                               ( $this->filter === 'unmodified' )
-                       ) .
-                       Xml::radioLabel( $this->msg( 'allmessages-filter-all' )->text(),
-                               'filter',
-                               'all',
-                               'mw-allmessages-form-filter-all',
-                               ( $this->filter === 'all' )
-                       ) .
-                       Xml::radioLabel( $this->msg( 'allmessages-filter-modified' )->text(),
-                               'filter',
-                               'modified',
-                               'mw-allmessages-form-filter-modified',
-                               ( $this->filter === 'modified' )
-                       ) .
-                       "</td>\n
-                       </tr>
-                       <tr>\n
-                               <td class=\"mw-label\">" . $langSelect[0] . "</td>\n
-                               <td class=\"mw-input\">" . $langSelect[1] . "</td>\n
-                       </tr>" .
-
-                       '<tr>
-                               <td class="mw-label">' .
-                       Xml::label( $this->msg( 'table_pager_limit_label' )->text(), 'mw-table_pager_limit_label' ) .
-                       '</td>
-                       <td class="mw-input">' .
-                       $this->getLimitSelect() .
-                       '</td>
-                       <tr>
-                               <td></td>
-                               <td>' .
-                       Xml::submitButton( $this->msg( 'allmessages-filter-submit' )->text() ) .
-                       "</td>\n
-                       </tr>" .
-
-                       Xml::closeElement( 'table' ) .
-                       $this->getHiddenFields( array( 'title', 'prefix', 'filter', 'lang', 'limit' ) ) .
-                       Xml::closeElement( 'fieldset' ) .
-                       Xml::closeElement( 'form' );
-
-               return $out;
-       }
-
-       function getAllMessages( $descending ) {
-               wfProfileIn( __METHOD__ );
-               $messageNames = Language::getLocalisationCache()->getSubitemList( 'en', 'messages' );
-               if ( $descending ) {
-                       rsort( $messageNames );
-               } else {
-                       asort( $messageNames );
-               }
-
-               // Normalise message names so they look like page titles
-               $messageNames = array_map( array( $this->lang, 'ucfirst' ), $messageNames );
-
-               wfProfileOut( __METHOD__ );
-
-               return $messageNames;
-       }
-
-       /**
-        * Determine which of the MediaWiki and MediaWiki_talk namespace pages exist.
-        * Returns array( 'pages' => ..., 'talks' => ... ), where the subarrays have
-        * an entry for each existing page, with the key being the message name and
-        * value arbitrary.
-        *
-        * @param array $messageNames
-        * @param string $langcode What language code
-        * @param bool $foreign Whether the $langcode is not the content language
-        * @return array A 'pages' and 'talks' array with the keys of existing pages
-        */
-       public static function getCustomisedStatuses( $messageNames, $langcode = 'en', $foreign = false ) {
-               // FIXME: This function should be moved to Language:: or something.
-               wfProfileIn( __METHOD__ . '-db' );
-
-               $dbr = wfGetDB( DB_SLAVE );
-               $res = $dbr->select( 'page',
-                       array( 'page_namespace', 'page_title' ),
-                       array( 'page_namespace' => array( NS_MEDIAWIKI, NS_MEDIAWIKI_TALK ) ),
-                       __METHOD__,
-                       array( 'USE INDEX' => 'name_title' )
-               );
-               $xNames = array_flip( $messageNames );
-
-               $pageFlags = $talkFlags = array();
-
-               foreach ( $res as $s ) {
-                       $exists = false;
-
-                       if ( $foreign ) {
-                               $titleParts = explode( '/', $s->page_title );
-                               if ( count( $titleParts ) === 2 &&
-                                       $langcode === $titleParts[1] &&
-                                       isset( $xNames[$titleParts[0]] )
-                               ) {
-                                       $exists = $titleParts[0];
-                               }
-                       } elseif ( isset( $xNames[$s->page_title] ) ) {
-                               $exists = $s->page_title;
-                       }
-
-                       $title = Title::newFromRow( $s );
-                       if ( $exists && $title->inNamespace( NS_MEDIAWIKI ) ) {
-                               $pageFlags[$exists] = true;
-                       } elseif ( $exists && $title->inNamespace( NS_MEDIAWIKI_TALK ) ) {
-                               $talkFlags[$exists] = true;
-                       }
-               }
-
-               wfProfileOut( __METHOD__ . '-db' );
-
-               return array( 'pages' => $pageFlags, 'talks' => $talkFlags );
-       }
-
-       /**
-        *  This function normally does a database query to get the results; we need
-        * to make a pretend result using a FakeResultWrapper.
-        * @param string $offset
-        * @param int $limit
-        * @param bool $descending
-        * @return FakeResultWrapper
-        */
-       function reallyDoQuery( $offset, $limit, $descending ) {
-               $result = new FakeResultWrapper( array() );
-
-               $messageNames = $this->getAllMessages( $descending );
-               $statuses = self::getCustomisedStatuses( $messageNames, $this->langcode, $this->foreign );
-
-               $count = 0;
-               foreach ( $messageNames as $key ) {
-                       $customised = isset( $statuses['pages'][$key] );
-                       if ( $customised !== $this->custom &&
-                               ( $descending && ( $key < $offset || !$offset ) || !$descending && $key > $offset ) &&
-                               ( ( $this->prefix && preg_match( $this->prefix, $key ) ) || $this->prefix === false )
-                       ) {
-                               $actual = wfMessage( $key )->inLanguage( $this->langcode )->plain();
-                               $default = wfMessage( $key )->inLanguage( $this->langcode )->useDatabase( false )->plain();
-                               $result->result[] = array(
-                                       'am_title' => $key,
-                                       'am_actual' => $actual,
-                                       'am_default' => $default,
-                                       'am_customised' => $customised,
-                                       'am_talk_exists' => isset( $statuses['talks'][$key] )
-                               );
-                               $count++;
-                       }
-
-                       if ( $count === $limit ) {
-                               break;
-                       }
-               }
-
-               return $result;
-       }
-
-       function getStartBody() {
-               return Xml::openElement( 'table', array(
-                               'class' => 'mw-datatable TablePager',
-                               'id' => 'mw-allmessagestable'
-                       ) ) .
-                       "\n" .
-                       "<thead><tr>
-                               <th rowspan=\"2\">" .
-                       $this->msg( 'allmessagesname' )->escaped() . "
-                               </th>
-                               <th>" .
-                       $this->msg( 'allmessagesdefault' )->escaped() .
-                       "</th>
-                       </tr>\n
-                       <tr>
-                               <th>" .
-                       $this->msg( 'allmessagescurrent' )->escaped() .
-                       "</th>
-                       </tr></thead><tbody>\n";
-       }
-
-       function formatValue( $field, $value ) {
-               switch ( $field ) {
-                       case 'am_title' :
-                               $title = Title::makeTitle( NS_MEDIAWIKI, $value . $this->suffix );
-                               $talk = Title::makeTitle( NS_MEDIAWIKI_TALK, $value . $this->suffix );
-                               $translation = Linker::makeExternalLink(
-                                       'https://translatewiki.net/w/i.php?' . wfArrayToCgi( array(
-                                               'title' => 'Special:SearchTranslations',
-                                               'group' => 'mediawiki',
-                                               'grouppath' => 'mediawiki',
-                                               'query' => 'language:' . $this->getLanguage()->getCode() . '^25 ' .
-                                                       'messageid:"MediaWiki:' . $value . '"^10 "' .
-                                                       $this->msg( $value )->inLanguage( 'en' )->plain() . '"'
-                                       ) ),
-                                       $this->msg( 'allmessages-filter-translate' )->text()
-                               );
-
-                               if ( $this->mCurrentRow->am_customised ) {
-                                       $title = Linker::linkKnown( $title, $this->getLanguage()->lcfirst( $value ) );
-                               } else {
-                                       $title = Linker::link(
-                                               $title,
-                                               $this->getLanguage()->lcfirst( $value ),
-                                               array(),
-                                               array(),
-                                               array( 'broken' )
-                                       );
-                               }
-                               if ( $this->mCurrentRow->am_talk_exists ) {
-                                       $talk = Linker::linkKnown( $talk, $this->talk );
-                               } else {
-                                       $talk = Linker::link(
-                                               $talk,
-                                               $this->talk,
-                                               array(),
-                                               array(),
-                                               array( 'broken' )
-                                       );
-                               }
-
-                               return $title . ' '
-                               . $this->msg( 'parentheses' )->rawParams( $talk )->escaped()
-                               . ' '
-                               . $this->msg( 'parentheses' )->rawParams( $translation )->escaped();
-
-                       case 'am_default' :
-                       case 'am_actual' :
-                               return Sanitizer::escapeHtmlAllowEntities( $value, ENT_QUOTES );
-               }
-
-               return '';
-       }
-
-       function formatRow( $row ) {
-               // Do all the normal stuff
-               $s = parent::formatRow( $row );
-
-               // But if there's a customised message, add that too.
-               if ( $row->am_customised ) {
-                       $s .= Xml::openElement( 'tr', $this->getRowAttrs( $row, true ) );
-                       $formatted = strval( $this->formatValue( 'am_actual', $row->am_actual ) );
-
-                       if ( $formatted === '' ) {
-                               $formatted = '&#160;';
-                       }
-
-                       $s .= Xml::tags( 'td', $this->getCellAttrs( 'am_actual', $row->am_actual ), $formatted )
-                               . "</tr>\n";
-               }
-
-               return $s;
-       }
-
-       function getRowAttrs( $row, $isSecond = false ) {
-               $arr = array();
-
-               if ( $row->am_customised ) {
-                       $arr['class'] = 'allmessages-customised';
-               }
-
-               if ( !$isSecond ) {
-                       $arr['id'] = Sanitizer::escapeId( 'msg_' . $this->getLanguage()->lcfirst( $row->am_title ) );
-               }
-
-               return $arr;
-       }
-
-       function getCellAttrs( $field, $value ) {
-               if ( $this->mCurrentRow->am_customised && $field === 'am_title' ) {
-                       return array( 'rowspan' => '2', 'class' => $field );
-               } elseif ( $field === 'am_title' ) {
-                       return array( 'class' => $field );
-               } else {
-                       return array( 'lang' => $this->langcode, 'dir' => $this->lang->getDir(), 'class' => $field );
-               }
-       }
-
-       // This is not actually used, as getStartBody is overridden above
-       function getFieldNames() {
-               return array(
-                       'am_title' => $this->msg( 'allmessagesname' )->text(),
-                       'am_default' => $this->msg( 'allmessagesdefault' )->text()
-               );
-       }
-
-       function getTitle() {
-               return SpecialPage::getTitleFor( 'Allmessages', false );
-       }
-
-       function isFieldSortable( $x ) {
-               return false;
-       }
-
-       function getDefaultSort() {
-               return '';
-       }
-
-       function getQueryInfo() {
-               return '';
-       }
-}
diff --git a/includes/specials/SpecialAllpages.php b/includes/specials/SpecialAllpages.php
deleted file mode 100644 (file)
index 0490d82..0000000
+++ /dev/null
@@ -1,396 +0,0 @@
-<?php
-/**
- * Implements Special:Allpages
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup SpecialPage
- */
-
-/**
- * Implements Special:Allpages
- *
- * @ingroup SpecialPage
- */
-class SpecialAllpages extends IncludableSpecialPage {
-
-       /**
-        * Maximum number of pages to show on single subpage.
-        *
-        * @var int $maxPerPage
-        */
-       protected $maxPerPage = 345;
-
-       /**
-        * Determines, which message describes the input field 'nsfrom'.
-        *
-        * @var string $nsfromMsg
-        */
-       protected $nsfromMsg = 'allpagesfrom';
-
-       /**
-        * Constructor
-        *
-        * @param string $name name of the special page, as seen in links and URLs (default: 'Allpages')
-        */
-       function __construct( $name = 'Allpages' ) {
-               parent::__construct( $name );
-       }
-
-       /**
-        * Entry point : initialise variables and call subfunctions.
-        *
-        * @param string $par becomes "FOO" when called like Special:Allpages/FOO (default null)
-        */
-       function execute( $par ) {
-               $request = $this->getRequest();
-               $out = $this->getOutput();
-
-               $this->setHeaders();
-               $this->outputHeader();
-               $out->allowClickjacking();
-
-               # GET values
-               $from = $request->getVal( 'from', null );
-               $to = $request->getVal( 'to', null );
-               $namespace = $request->getInt( 'namespace' );
-               $hideredirects = $request->getBool( 'hideredirects', false );
-
-               $namespaces = $this->getContext()->getLanguage()->getNamespaces();
-
-               $out->setPageTitle(
-                       ( $namespace > 0 && array_key_exists( $namespace, $namespaces ) ) ?
-                               $this->msg( 'allinnamespace', str_replace( '_', ' ', $namespaces[$namespace] ) ) :
-                               $this->msg( 'allarticles' )
-               );
-               $out->addModuleStyles( 'mediawiki.special' );
-
-               if ( $par !== null ) {
-                       $this->showChunk( $namespace, $par, $to, $hideredirects );
-               } elseif ( $from !== null && $to === null ) {
-                       $this->showChunk( $namespace, $from, $to, $hideredirects );
-               } else {
-                       $this->showToplevel( $namespace, $from, $to, $hideredirects );
-               }
-       }
-
-       /**
-        * HTML for the top form
-        *
-        * @param int $namespace A namespace constant (default NS_MAIN).
-        * @param string $from DbKey we are starting listing at.
-        * @param string $to DbKey we are ending listing at.
-        * @param bool $hideredirects Dont show redirects  (default false)
-        * @return string
-        */
-       function namespaceForm( $namespace = NS_MAIN, $from = '', $to = '', $hideredirects = false ) {
-               global $wgScript;
-               $t = $this->getPageTitle();
-
-               $out = Xml::openElement( 'div', array( 'class' => 'namespaceoptions' ) );
-               $out .= Xml::openElement( 'form', array( 'method' => 'get', 'action' => $wgScript ) );
-               $out .= Html::hidden( 'title', $t->getPrefixedText() );
-               $out .= Xml::openElement( 'fieldset' );
-               $out .= Xml::element( 'legend', null, $this->msg( 'allpages' )->text() );
-               $out .= Xml::openElement( 'table', array( 'id' => 'nsselect', 'class' => 'allpages' ) );
-               $out .= "<tr>
-       <td class='mw-label'>" .
-                       Xml::label( $this->msg( 'allpagesfrom' )->text(), 'nsfrom' ) .
-                       "       </td>
-       <td class='mw-input'>" .
-                       Xml::input( 'from', 30, str_replace( '_', ' ', $from ), array( 'id' => 'nsfrom' ) ) .
-                       "       </td>
-</tr>
-<tr>
-       <td class='mw-label'>" .
-                       Xml::label( $this->msg( 'allpagesto' )->text(), 'nsto' ) .
-                       "       </td>
-                       <td class='mw-input'>" .
-                       Xml::input( 'to', 30, str_replace( '_', ' ', $to ), array( 'id' => 'nsto' ) ) .
-                       "               </td>
-</tr>
-<tr>
-       <td class='mw-label'>" .
-                       Xml::label( $this->msg( 'namespace' )->text(), 'namespace' ) .
-                       "       </td>
-                       <td class='mw-input'>" .
-                       Html::namespaceSelector(
-                               array( 'selected' => $namespace ),
-                               array( 'name' => 'namespace', 'id' => 'namespace' )
-                       ) . ' ' .
-                       Xml::checkLabel(
-                               $this->msg( 'allpages-hide-redirects' )->text(),
-                               'hideredirects',
-                               'hideredirects',
-                               $hideredirects
-                       ) . ' ' .
-                       Xml::submitButton( $this->msg( 'allpagessubmit' )->text() ) .
-                       "       </td>
-</tr>";
-               $out .= Xml::closeElement( 'table' );
-               $out .= Xml::closeElement( 'fieldset' );
-               $out .= Xml::closeElement( 'form' );
-               $out .= Xml::closeElement( 'div' );
-
-               return $out;
-       }
-
-       /**
-        * @param int $namespace (default NS_MAIN)
-        * @param string $from List all pages from this name
-        * @param string $to List all pages to this name
-        * @param bool $hideredirects Dont show redirects (default false)
-        */
-       function showToplevel( $namespace = NS_MAIN, $from = '', $to = '', $hideredirects = false ) {
-               $from = Title::makeTitleSafe( $namespace, $from );
-               $to = Title::makeTitleSafe( $namespace, $to );
-               $from = ( $from && $from->isLocal() ) ? $from->getDBkey() : null;
-               $to = ( $to && $to->isLocal() ) ? $to->getDBkey() : null;
-
-               $this->showChunk( $namespace, $from, $to, $hideredirects );
-       }
-
-       /**
-        * @param int $namespace Namespace (Default NS_MAIN)
-        * @param string $from List all pages from this name (default false)
-        * @param string $to List all pages to this name (default false)
-        * @param bool $hideredirects Dont show redirects (default false)
-        */
-       function showChunk( $namespace = NS_MAIN, $from = false, $to = false, $hideredirects = false ) {
-               $output = $this->getOutput();
-
-               $fromList = $this->getNamespaceKeyAndText( $namespace, $from );
-               $toList = $this->getNamespaceKeyAndText( $namespace, $to );
-               $namespaces = $this->getContext()->getLanguage()->getNamespaces();
-               $n = 0;
-
-               if ( !$fromList || !$toList ) {
-                       $out = $this->msg( 'allpagesbadtitle' )->parseAsBlock();
-               } elseif ( !array_key_exists( $namespace, $namespaces ) ) {
-                       // Show errormessage and reset to NS_MAIN
-                       $out = $this->msg( 'allpages-bad-ns', $namespace )->parse();
-                       $namespace = NS_MAIN;
-               } else {
-                       list( $namespace, $fromKey, $from ) = $fromList;
-                       list( , $toKey, $to ) = $toList;
-
-                       $dbr = wfGetDB( DB_SLAVE );
-                       $conds = array(
-                               'page_namespace' => $namespace,
-                               'page_title >= ' . $dbr->addQuotes( $fromKey )
-                       );
-
-                       if ( $hideredirects ) {
-                               $conds['page_is_redirect'] = 0;
-                       }
-
-                       if ( $toKey !== "" ) {
-                               $conds[] = 'page_title <= ' . $dbr->addQuotes( $toKey );
-                       }
-
-                       $res = $dbr->select( 'page',
-                               array( 'page_namespace', 'page_title', 'page_is_redirect', 'page_id' ),
-                               $conds,
-                               __METHOD__,
-                               array(
-                                       'ORDER BY' => 'page_title',
-                                       'LIMIT' => $this->maxPerPage + 1,
-                                       'USE INDEX' => 'name_title',
-                               )
-                       );
-
-                       if ( $res->numRows() > 0 ) {
-                               $out = Xml::openElement( 'table', array( 'class' => 'mw-allpages-table-chunk' ) );
-                               while ( ( $n < $this->maxPerPage ) && ( $s = $res->fetchObject() ) ) {
-                                       $t = Title::newFromRow( $s );
-                                       if ( $t ) {
-                                               $link = ( $s->page_is_redirect ? '<div class="allpagesredirect">' : '' ) .
-                                                       Linker::link( $t ) .
-                                                       ( $s->page_is_redirect ? '</div>' : '' );
-                                       } else {
-                                               $link = '[[' . htmlspecialchars( $s->page_title ) . ']]';
-                                       }
-
-                                       if ( $n % 3 == 0 ) {
-                                               $out .= '<tr>';
-                                       }
-
-                                       $out .= "<td style=\"width:33%\">$link</td>";
-                                       $n++;
-                                       if ( $n % 3 == 0 ) {
-                                               $out .= "</tr>\n";
-                                       }
-                               }
-
-                               if ( ( $n % 3 ) != 0 ) {
-                                       $out .= "</tr>\n";
-                               }
-                               $out .= Xml::closeElement( 'table' );
-                       } else {
-                               $out = '';
-                       }
-               }
-
-               if ( $this->including() ) {
-                       $output->addHTML( $out );
-                       return;
-               }
-
-               if ( $from == '' ) {
-                       // First chunk; no previous link.
-                       $prevTitle = null;
-               } else {
-                       # Get the last title from previous chunk
-                       $dbr = wfGetDB( DB_SLAVE );
-                       $res_prev = $dbr->select(
-                               'page',
-                               'page_title',
-                               array( 'page_namespace' => $namespace, 'page_title < ' . $dbr->addQuotes( $from ) ),
-                               __METHOD__,
-                               array( 'ORDER BY' => 'page_title DESC',
-                                       'LIMIT' => $this->maxPerPage, 'OFFSET' => ( $this->maxPerPage - 1 )
-                               )
-                       );
-
-                       # Get first title of previous complete chunk
-                       if ( $dbr->numrows( $res_prev ) >= $this->maxPerPage ) {
-                               $pt = $dbr->fetchObject( $res_prev );
-                               $prevTitle = Title::makeTitle( $namespace, $pt->page_title );
-                       } else {
-                               # The previous chunk is not complete, need to link to the very first title
-                               # available in the database
-                               $options = array( 'LIMIT' => 1 );
-                               if ( !$dbr->implicitOrderby() ) {
-                                       $options['ORDER BY'] = 'page_title';
-                               }
-                               $reallyFirstPage_title = $dbr->selectField( 'page', 'page_title',
-                                       array( 'page_namespace' => $namespace ), __METHOD__, $options );
-                               # Show the previous link if it s not the current requested chunk
-                               if ( $from != $reallyFirstPage_title ) {
-                                       $prevTitle = Title::makeTitle( $namespace, $reallyFirstPage_title );
-                               } else {
-                                       $prevTitle = null;
-                               }
-                       }
-               }
-
-               $self = $this->getPageTitle();
-
-               $topLinks = array(
-                       Linker::link( $self, $this->msg( 'allpages' )->escaped() )
-               );
-               $bottomLinks = array();
-
-               # Do we put a previous link ?
-               if ( $prevTitle && $pt = $prevTitle->getText() ) {
-                       $query = array( 'from' => $prevTitle->getText() );
-
-                       if ( $namespace ) {
-                               $query['namespace'] = $namespace;
-                       }
-
-                       if ( $hideredirects ) {
-                               $query['hideredirects'] = $hideredirects;
-                       }
-
-                       $prevLink = Linker::linkKnown(
-                               $self,
-                               $this->msg( 'prevpage', $pt )->escaped(),
-                               array(),
-                               $query
-                       );
-                       $topLinks[] = $prevLink;
-                       $bottomLinks[] = $prevLink;
-               }
-
-               if ( $n == $this->maxPerPage && $s = $res->fetchObject() ) {
-                       # $s is the first link of the next chunk
-                       $t = Title::makeTitle( $namespace, $s->page_title );
-                       $query = array( 'from' => $t->getText() );
-
-                       if ( $namespace ) {
-                               $query['namespace'] = $namespace;
-                       }
-
-                       if ( $hideredirects ) {
-                               $query['hideredirects'] = $hideredirects;
-                       }
-
-                       $nextLink = Linker::linkKnown(
-                               $self,
-                               $this->msg( 'nextpage', $t->getText() )->escaped(),
-                               array(),
-                               $query
-                       );
-                       $topLinks[] = $nextLink;
-                       $bottomLinks[] = $nextLink;
-               }
-
-               $nsForm = $this->namespaceForm( $namespace, $from, $to, $hideredirects );
-               $out2 = Xml::openElement( 'table', array( 'class' => 'mw-allpages-table-form' ) ) .
-                       '<tr>
-                                               <td>' .
-                       $nsForm .
-                       '</td>
-                                               <td class="mw-allpages-nav">' .
-                       $this->getLanguage()->pipeList( $topLinks ) .
-                       '</td></tr></table>';
-
-               $output->addHTML( $out2 . $out );
-
-               if ( count( $bottomLinks ) ) {
-                       $output->addHTML(
-                               Html::element( 'hr' ) .
-                                       Html::rawElement( 'div', array( 'class' => 'mw-allpages-nav' ),
-                                               $this->getLanguage()->pipeList( $bottomLinks )
-                                       )
-                       );
-               }
-       }
-
-       /**
-        * @param int $ns The namespace of the article
-        * @param string $text The name of the article
-        * @return array( int namespace, string dbkey, string pagename ) or null on error
-        */
-       protected function getNamespaceKeyAndText( $ns, $text ) {
-               if ( $text == '' ) {
-                       # shortcut for common case
-                       return array( $ns, '', '' );
-               }
-
-               $t = Title::makeTitleSafe( $ns, $text );
-               if ( $t && $t->isLocal() ) {
-                       return array( $t->getNamespace(), $t->getDBkey(), $t->getText() );
-               } elseif ( $t ) {
-                       return null;
-               }
-
-               # try again, in case the problem was an empty pagename
-               $text = preg_replace( '/(#|$)/', 'X$1', $text );
-               $t = Title::makeTitleSafe( $ns, $text );
-               if ( $t && $t->isLocal() ) {
-                       return array( $t->getNamespace(), '', '' );
-               } else {
-                       return null;
-               }
-       }
-
-       protected function getGroupName() {
-               return 'pages';
-       }
-}
index ebbef17..02d8d70 100644 (file)
@@ -117,6 +117,21 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
                }
        }
 
+       /**
+        * Return an array of subpages beginning with $search that this special page will accept.
+        *
+        * @param string $search Prefix to search for
+        * @param integer $limit Maximum number of results to return
+        * @return string[] Matching subpages
+        */
+       public function prefixSearchSubpages( $search, $limit = 10 ) {
+               // SpecialWatchlist uses SpecialEditWatchlist::getMode, so new types should be added
+               // here and there - no 'edit' here, because that the default for this page
+               $subpages = array( 'clear', 'raw' );
+               $escaped = preg_quote( $search );
+               return array_slice( preg_grep( "/^$escaped/i", $subpages ), 0, $limit );
+       }
+
        /**
         * Extract a list of titles from a blob of text, returning
         * (prefixed) strings; unwatchable titles are ignored
index 6da6674..aaa55a3 100644 (file)
@@ -115,6 +115,22 @@ class SpecialLog extends SpecialPage {
                $this->show( $opts, $qc );
        }
 
+       /**
+        * Return an array of subpages beginning with $search that this special page will accept.
+        *
+        * @param string $search Prefix to search for
+        * @param integer $limit Maximum number of results to return
+        * @return string[] Matching subpages
+        */
+       public function prefixSearchSubpages( $search, $limit = 10 ) {
+               global $wgLogTypes;
+               $subpages = $wgLogTypes;
+               $subpages[] = 'all';
+               sort( $subpages );
+               $escaped = preg_quote( $search );
+               return array_slice( preg_grep( "/^$escaped/i", $subpages ), 0, $limit );
+       }
+
        private function parseParams( FormOptions $opts, $par ) {
                global $wgLogTypes;
 
index 8ee583b..8e6a596 100644 (file)
@@ -68,7 +68,6 @@ class MostlinkedTemplatesPage extends QueryPage {
                                'title' => 'tl_title',
                                'value' => 'COUNT(*)'
                        ),
-                       'conds' => array( 'tl_namespace' => NS_TEMPLATE ),
                        'options' => array( 'GROUP BY' => array( 'tl_namespace', 'tl_title' ) )
                );
        }
index 34e803d..2a1bf11 100644 (file)
@@ -26,7 +26,7 @@
  *
  * @ingroup SpecialPage
  */
-class SpecialPrefixindex extends SpecialAllpages {
+class SpecialPrefixindex extends SpecialAllPages {
 
        /**
         * Whether to remove the searched prefix from the displayed link. Useful
index ea0a29a..1cc5930 100644 (file)
@@ -207,7 +207,8 @@ class SpecialSearch extends SpecialPage {
 
                $profile = new ProfileSection( __METHOD__ );
                $search = $this->getSearchEngine();
-               $search->setLimitOffset( $this->limit, $this->offset );
+               // Request an extra result to determine whether a "next page" link is useful
+               $search->setLimitOffset( $this->limit + 1, $this->offset );
                $search->setNamespaces( $this->namespaces );
                $this->saveNamespaces();
                $search->prefix = $this->mPrefix;
@@ -374,7 +375,7 @@ class SpecialSearch extends SpecialPage {
                                        $this->offset,
                                        $this->limit,
                                        $this->powerSearchOptions() + array( 'search' => $term ),
-                                       max( $titleMatchesNum, $textMatchesNum ) < $this->limit
+                                       max( $titleMatchesNum, $textMatchesNum ) <= $this->limit
                                );
                        }
                        wfRunHooks( 'SpecialSearchResults', array( $term, &$titleMatches, &$textMatches ) );
@@ -411,7 +412,7 @@ class SpecialSearch extends SpecialPage {
                if ( $num === 0 ) {
                        if ( $textStatus ) {
                                $out->addHTML( '<div class="error">' .
-                                       htmlspecialchars( $textStatus->getWikiText( 'search-error' ) ) . '</div>' );
+                                       $textStatus->getMessage( 'search-error' ) . '</div>' );
                        } else {
                                $out->wrapWikiMsg( "<p class=\"mw-search-nonefound\">\n$1</p>",
                                        array( 'search-nonefound', wfEscapeWikiText( $term ) ) );
@@ -569,9 +570,11 @@ class SpecialSearch extends SpecialPage {
 
                $out = "<ul class='mw-search-results'>\n";
                $result = $matches->next();
-               while ( $result ) {
+               $count = 0;
+               while ( $result && $count < $this->limit ) {
                        $out .= $this->showHit( $result, $terms );
                        $result = $matches->next();
+                       $count++;
                }
                $out .= "</ul>\n";
 
index bee94f8..1ef96c3 100644 (file)
@@ -929,7 +929,8 @@ class LoginForm extends SpecialPage {
                                break;
                        case self::ABORTED:
                                $error = $this->mAbortLoginErrorMsg ?: 'login-abort-generic';
-                               $this->mainLoginForm( $this->msg( $error )->text() );
+                               $this->mainLoginForm( $this->msg( $error,
+                                               wfEscapeWikiText( $this->mUsername ) )->text() );
                                break;
                        default:
                                throw new MWException( 'Unhandled case value' );
@@ -1009,7 +1010,7 @@ class LoginForm extends SpecialPage {
                wfRunHooks( 'UserLoginComplete', array( &$currentUser, &$injected_html ) );
 
                if ( $injected_html !== '' ) {
-                       $this->displaySuccessfulAction( $this->msg( 'loginsuccesstitle' ),
+                       $this->displaySuccessfulAction( 'success', $this->msg( 'loginsuccesstitle' ),
                                'loginsuccess', $injected_html );
                } else {
                        $this->executeReturnTo( 'successredirect' );
@@ -1037,18 +1038,22 @@ class LoginForm extends SpecialPage {
                 */
                wfRunHooks( 'BeforeWelcomeCreation', array( &$welcome_creation_msg, &$injected_html ) );
 
-               $this->displaySuccessfulAction( $this->msg( 'welcomeuser', $this->getUser()->getName() ),
-                       $welcome_creation_msg, $injected_html );
+               $this->displaySuccessfulAction(
+                       'signup',
+                       $this->msg( 'welcomeuser', $this->getUser()->getName() ),
+                       $welcome_creation_msg, $injected_html
+               );
        }
 
        /**
-        * Display an "successful action" page.
+        * Display a "successful action" page.
         *
+        * @param string $type condition of return to; see `executeReturnTo`
         * @param string|Message $title Page's title
         * @param string $msgname
         * @param string $injected_html
         */
-       private function displaySuccessfulAction( $title, $msgname, $injected_html ) {
+       private function displaySuccessfulAction( $type, $title, $msgname, $injected_html ) {
                $out = $this->getOutput();
                $out->setPageTitle( $title );
                if ( $msgname ) {
@@ -1057,7 +1062,7 @@ class LoginForm extends SpecialPage {
 
                $out->addHTML( $injected_html );
 
-               $this->executeReturnTo( 'success' );
+               $this->executeReturnTo( $type );
        }
 
        /**
@@ -1103,6 +1108,7 @@ class LoginForm extends SpecialPage {
         *
         * @param string $type One of the following:
         *    - error: display a return to link ignoring $wgRedirectOnLogin
+        *    - signup: display a return to link using $wgRedirectOnLogin if needed
         *    - success: display a return to link using $wgRedirectOnLogin if needed
         *    - successredirect: send an HTTP redirect using $wgRedirectOnLogin if needed
         * @param string $returnTo
@@ -1124,6 +1130,7 @@ class LoginForm extends SpecialPage {
         *
         * @param string $type One of the following:
         *    - error: display a return to link ignoring $wgRedirectOnLogin
+        *    - signup: display a return to link using $wgRedirectOnLogin if needed
         *    - success: display a return to link using $wgRedirectOnLogin if needed
         *    - successredirect: send an HTTP redirect using $wgRedirectOnLogin if needed
         */
@@ -1138,6 +1145,9 @@ class LoginForm extends SpecialPage {
                        $returnToQuery = wfCgiToArray( $this->mReturnToQuery );
                }
 
+               // Allow modification of redirect behavior
+               wfRunHooks( 'PostLoginRedirect', array( &$returnTo, &$returnToQuery, &$type ) );
+
                $returnToTitle = Title::newFromText( $returnTo );
                if ( !$returnToTitle ) {
                        $returnToTitle = Title::newMainPage();
index 490e81f..2aec8df 100644 (file)
@@ -79,6 +79,20 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                parent::execute( $subpage );
        }
 
+       /**
+        * Return an array of subpages beginning with $search that this special page will accept.
+        *
+        * @param string $search Prefix to search for
+        * @param integer $limit Maximum number of results to return
+        * @return string[] Matching subpages
+        */
+       public function prefixSearchSubpages( $search, $limit = 10 ) {
+               // See also SpecialEditWatchlist::prefixSearchSubpages
+               $subpages = array( 'clear', 'edit', 'raw' );
+               $escaped = preg_quote( $search );
+               return array_slice( preg_grep( "/^$escaped/i", $subpages ), 0, $limit );
+       }
+
        /**
         * Get a FormOptions object containing the default options
         *
index 0172974..eb74d12 100644 (file)
@@ -134,12 +134,10 @@ class MWCryptRand {
                // It's mostly worthless but throw the wiki's id into the data for a little more variance
                $state .= wfWikiID();
 
-               // If we have a secret key or proxy key set then throw it into the state as well
-               global $wgSecretKey, $wgProxyKey;
+               // If we have a secret key set then throw it into the state as well
+               global $wgSecretKey;
                if ( $wgSecretKey ) {
                        $state .= $wgSecretKey;
-               } elseif ( $wgProxyKey ) {
-                       $state .= $wgProxyKey;
                }
 
                return $state;
index 5b74395..d17d38c 100644 (file)
        "vector-view-view": "Lees",
        "vector-view-viewsource": "Wys bronteks",
        "actions": "Aksies",
+       "vector-more-actions": "Meer",
        "namespaces": "Naamruimtes",
        "variants": "Variante",
        "navigation-heading": "Navigasie-keuseskerm",
        "jumptonavigation": "navigasie",
        "jumptosearch": "soek",
        "view-pool-error": "Jammer, die bedieners is tans oorbelas.\nTe veel gebruikers probeer om na hierdie bladsy te kyk.\nWag asseblief 'n rukkie voordat u weer probeer om die bladsy op te roep.\n\n$1",
+       "generic-pool-error": "Jammer, die bedieners is tans oorbelas.\nTe veel gebruikers probeer om na hierdie bladsy te kyk.\nWag asseblief 'n rukkie voordat u weer probeer.",
        "pool-timeout": "Die maksimum wagtyd vir 'n databasisversperring is oorskry.",
        "pool-queuefull": "Die poel se wagtou is vol",
        "pool-errorunknown": "Onbekende fout",
+       "pool-servererror": "Die \"pool counter\"-diens is nie beskikbaar nie ($1).",
        "aboutsite": "Inligting oor {{SITENAME}}",
        "aboutpage": "Project:Omtrent",
        "copyright": "Inhoud is onderhewig aan $1, tensy anders vermeld",
        "gotaccountlink": "Meld aan",
        "userlogin-resetlink": "U besonderhede vergeet?",
        "userlogin-resetpassword-link": "Wagwoord vergeet?",
+       "userlogin-helplink2": "Hulp met aanmelding",
        "userlogin-loggedin": "U is reeds aangemeld as {{GENDER:$1|$1}}.\nGebruik die onderstaande vorm om as 'n ander gebruiker aan te meld.",
        "userlogin-createanother": "Skep nog 'n rekening",
        "createacct-emailrequired": "E-posadres",
        "undo-success": "Die wysiging kan ongedaan gemaak word.\nKontroleer die vergelyking hieronder om seker te maak dis wat u wil doen, en stoor dan om die terugrol te voltooi.",
        "undo-failure": "Die wysiging kan nie ongedaan gemaak word nie omdat dit met intermediêre wysigings bots.",
        "undo-norev": "Die wysiging kon nie ongedaan gemaak word nie omdat dit nie bestaan nie of reeds verwyder is.",
+       "undo-nochange": "Die wysiging is klaarblyklik reeds teruggerol.",
        "undo-summary": "Rol weergawe $1 deur [[Special:Contributions/$2|$2]] ([[User talk:$2|bespreek]]) terug.",
        "undo-summary-username-hidden": "Rol weergawe $1 deur 'n versteekte gebruiker terug",
        "cantcreateaccounttitle": "Kan nie rekening skep nie",
        "prefs-signature": "Handtekening",
        "prefs-dateformat": "Datumformaat",
        "prefs-timeoffset": "Tydsverskil",
-       "prefs-advancedediting": "Algemeen",
+       "prefs-advancedediting": "Algemene instellings",
        "prefs-editor": "Redigeerder",
        "prefs-preview": "Voorskou",
        "prefs-advancedrc": "Gevorderde instellings",
        "right-move": "Skuif bladsye",
        "right-move-subpages": "skuif bladsye met hul subblaaie",
        "right-move-rootuserpages": "Skuif gebruikersblaaie op hoogste vlak",
+       "right-move-categorypages": "Skuif kategoriebladsye",
        "right-movefile": "Skuif lêers",
        "right-suppressredirect": "Geen aansture agterlaat by die skuif van bladsye nie",
        "right-upload": "Laai lêers op",
        "action-createpage": "skep bladsye",
        "action-createtalk": "skep besprekingsblaaie",
        "action-createaccount": "skep die gebruiker",
+       "action-history": "wys die bladsy se geskiedenis",
        "action-minoredit": "merk die wysiging as 'n klein verandering",
        "action-move": "skuif die bladsy",
        "action-move-subpages": "skuif die bladsy met sy subbladsye",
        "action-move-rootuserpages": "gebruikersbladsye van die hoogste vlak te skuif nie",
+       "action-move-categorypages": "skuif kategoriebladsye",
        "action-movefile": "skuif die lêer",
        "action-upload": "laai die lêer op",
        "action-reupload": "oorskryf die bestaande lêer",
        "listusers": "Gebruikerslys",
        "listusers-editsonly": "Slegs gebruikers met wysigings",
        "listusers-creationsort": "Sorteer volgens registrasiedatum",
+       "listusers-desc": "Sorteer in aflopende volgorde",
        "usereditcount": "$1 {{PLURAL:$1|wysiging|wysigings}}",
        "usercreated": "{{GENDER:$3|Geregistreer}} op $1 om $2",
        "newpages": "Nuwe bladsye",
        "listgrouprights-removegroup-self": "Die volgende {{PLURAL:$2|groep|groepe}} verwyder van eie gebruiker: $1",
        "listgrouprights-addgroup-self-all": "Alle groepe byvoeg tot eie gebruiker",
        "listgrouprights-removegroup-self-all": "Alle groepe verwyder van eie gebruiker",
+       "listgrouprights-namespaceprotection-header": "Naamruimtebeperkings",
        "listgrouprights-namespaceprotection-namespace": "Naamruimte",
+       "trackingcategories-msg": "Volg kategorie",
        "trackingcategories-name": "Boodskapnaam",
        "trackingcategories-nodesc": "Geen beskrywing beskikbaar nie.",
        "trackingcategories-disabled": "Kategorie is gedeaktiveer",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 titel|$1 titels}} was bygevoeg:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 titel|$1 titels}} verwyder:",
        "watchlistedit-clear-titles": "Titels:",
+       "watchlistedit-clear-done": "U dophoulys is uitgevee.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 titel|$1 titels}} is verwyder:",
+       "watchlisttools-clear": "Vee dophoulys uit",
        "watchlisttools-view": "Besigtig veranderinge",
        "watchlisttools-edit": "Bekyk en wysig dophoulys",
        "watchlisttools-raw": "Wysig bronkode",
index 3752ef0..57e359a 100644 (file)
        "userlogin-yourname-ph": "የብዕር ስም ያስገቡ",
        "createacct-another-username-ph": "የብዕር ስም ያስገቡ",
        "yourpassword": "Password / መግቢያ ቃል",
+       "userlogin-yourpassword": "የይለፍ ቃል",
        "userlogin-yourpassword-ph": "የመግቢያ ቃል ያስገቡ",
+       "createacct-yourpassword-ph": "የይለፍ ቃል ያስገቡ",
        "yourpasswordagain": "መግቢያ ቃልዎን ዳግመኛ ይስጡ",
        "createacct-yourpasswordagain": "የመግቢያ ቃሉን ይድገሙ",
        "createacct-yourpasswordagain-ph": "የመግቢያ ቃሉን ይድገሙ",
        "gotaccount": "(አባልነት አሁን ካለዎ፥ '''$1''' ይግቡ)",
        "gotaccountlink": "በዚህ",
        "userlogin-resetlink": "የመግቢያ ዝርዝርዎን ረተዋልን?",
+       "userlogin-resetpassword-link": "የይለፍ ቃልዎን አጡ?",
        "createacct-emailrequired": "ኢ-ሜይል አድራሻ",
        "createacct-email-ph": "ኢ-ሜይል አድራሻዎን ያስገቡ",
        "createaccountmail": "በኢ-ሜል",
        "loginlanguagelabel": "ቋምቋ፦ $1",
        "pt-login": "ለመግባት",
        "pt-login-button": "ለመግባት",
+       "pt-userlogout": "መውጫ",
        "user-mail-no-addy": "እሚደርስበት ኢ-ሜል አድራሻ ሳይታወቅ መላክ አይቻልም።",
        "changepassword": "መግቢያ ቃልዎን ለመቀየር",
        "resetpass_announce": "በኢ-ሜል በተላከ ጊዜያዊ ኮድ ገብተዋል። መግባትዎን ለመጨርስ፣ አዲስ መግቢያ ቃል እዚህ መምረጥ አለብዎ።",
        "searchmenu-exists": "'''\"[[:$1]]\" የሚባል መጣጥፍ በዚሁ ዊኪ ላይ አለ።'''",
        "searchmenu-new": "'''\"[[:$1]]\" የሚባል መጣጥፍ ይፈጠር?'''",
        "searchprofile-articles": "ይዞታ ያላቸው መጣጥፎች",
-       "searchprofile-project": "የዕርዳታ እና የመርሃግብሩ ገጾች",
        "searchprofile-images": "ፋይሎች",
        "searchprofile-everything": "ሁሉም",
        "searchprofile-advanced": "የተደረጀ ፍለጋ",
        "searchprofile-articles-tooltip": "በ$1 ለመፈለግ",
-       "searchprofile-project-tooltip": "በ$1 ለመፈለግ",
        "searchprofile-images-tooltip": "ለፋይሎች ለመፈለግ",
        "searchprofile-everything-tooltip": "ይዞታውን ሁሉ (ከነውይይት ገጾች) ለመፈለግ",
        "searchprofile-advanced-tooltip": "በልዩ ክፍለ-ዊኪዎች ለመፈለግ",
        "search-interwiki-default": "$1 ውጤቶች፦",
        "search-interwiki-more": "(ተጨማሪ)",
        "search-relatedarticle": "የተዛመደ",
-       "searcheverything-enable": "በክፍለ-ዊኪዎች ሁሉ ለመፈለግ",
        "searchrelated": "የተዛመደ",
        "searchall": "ሁሉ",
        "showingresults": "ከ ቁ.#<b>$2</b> ጀምሮ እስከ <b>$1</b> ውጤቶች ድረስ ከዚህ በታች ይታያሉ።",
        "allowemail": "ኢሜል ከሌሎች ተጠቃሚዎች ለመፍቀድ",
        "prefs-searchoptions": "የፍለጋ ምርጫዎች",
        "prefs-namespaces": "ክፍለ-ዊኪዎች",
-       "defaultns": "በመጀመርያው ፍለጋዎ በነዚህ ክፍለ-ዊኪዎች ብቻ ይደረግ:",
        "default": "ቀዳሚ",
        "prefs-files": "የስዕሎች መጠን",
        "prefs-custom-css": "ልዩ CSS",
        "prefs-emailconfirm-label": "የኢ-ሜል ማረጋገጫ",
        "youremail": "ኢ-ሜል *",
        "username": "የብዕር ስም:",
-       "uid": "የገባበት ቁ.: #",
        "prefs-memberingroups": "ተጠቃሚው {{PLURAL:$1|ያለበት ስብስባ|ያለባቸው ስብስባዎች}}፦",
        "prefs-registration": "የተመዘገበበት ሰዓት፦",
        "yourrealname": "ዕውነተኛ ስም፦",
        "logempty": "(በመዝገቡ ምንም የለም...)",
        "log-title-wildcard": "ከዚህ ፊደል ጀምሮ አርዕስቶችን ለመፈልግ",
        "allpages": "ገጾች ሁሉ በሙሉ",
-       "alphaindexline": "$1 እስከ $2 ድረስ",
        "nextpage": "የሚቀጥለው ገጽ (ከ$1 ጀምሮ)",
        "prevpage": "ፊተኛው ገጽ (ከ$1 ጀምሮ)",
        "allpagesfrom": "ገጾች ከዚሁ ፊደል ጀምሮ ይታዩ፦",
index d685f8f..e05a19a 100644 (file)
        "viewprevnext": "Sēon ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-new": "<strong>Scieppan þone tramet \"[[:$1]]\" on þissum wiki!</strong> {{PLURAL:$2|0=|Seoh ēac þone tramet þe wæs gefunden mid þīnre sōcne.|Seoh ēac þā þing þā wǣron gefunden.}}",
        "searchprofile-articles": "Innunge trametas",
-       "searchprofile-project": "Helpes and Weorca trametas",
        "searchprofile-images": "Missenendebyrdness",
        "searchprofile-everything": "Gehwæt",
        "searchprofile-articles-tooltip": "Sēcan in $1",
-       "searchprofile-project-tooltip": "Sēcan in $1",
        "searchprofile-images-tooltip": "Sēcan ymelan",
        "search-result-size": "$1 ({{PLURAL:$2|1 word|$2 worda}})",
        "search-redirect": "(edlǣded fram \"$1\")",
        "savedprefs": "Þīna fōreberunga wurdon gehordod.",
        "timezonelegend": "Tīdgeard",
        "servertime": "Þegntōles tīd is nū:",
-       "defaultns": "Elles sēcan on þissum namstedum:",
        "default": "gewunelic",
        "youremail": "Spearcǣrenda nama:",
        "username": "{{GENDER:$1|Brūcendnama}}:",
        "recentchanges-label-newpage": "Þēos adihtung scōp nīwne tramet",
        "recentchanges-label-minor": "Þēos is lytel adihtung",
        "recentchanges-label-bot": "Searuþrǣl fremede þās adihtunge",
-       "recentchanges-legend-newpage": "(seoh ēac [[Special:NewPages|getæl nīwra trameta]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (seoh ēac [[Special:NewPages|getæl nīwra trameta]])",
        "rcnotefrom": "Niðer sind þā andwendunga fram <strong>$2</strong> (mǣst īweþ <strong>$1</strong>).",
        "rclistfrom": "Īwan nīwa andwendunga fram $3 $2 and siþþan",
        "rcshowhideminor": "$1 lytela adihtunga",
index 4649132..7e11835 100644 (file)
@@ -44,7 +44,8 @@
                        "وهراني",
                        "아라",
                        "Test Create account",
-                       "Kuwaity26"
+                       "Kuwaity26",
+                       "Calak"
                ]
        },
        "tog-underline": "سطر تحت الوصلات:",
        "vector-view-view": "اقرأ",
        "vector-view-viewsource": "اعرض المصدر",
        "actions": "أفعال",
+       "vector-more-actions": "مزيد",
        "namespaces": "فضاءات التسمية",
        "variants": "المتغيرات",
        "navigation-heading": "قائمة التصفح",
        "searchmenu-exists": "'''توجد صفحة اسمها \"[[:$1]]\" على هذه الويكي.''' {{PLURAL:$2|0=|انظر ايضا نتائج البحث الأخرى.}}",
        "searchmenu-new": "<strong>أنشئ الصفحة \"[[:$1]]\" على هذه الويكي!</strong>  {{PLURAL:$2|0=|انظر أيضا الصفحة التي تم العثور عليها من بحثك.|انظر ايضا نتائج البحث.}}",
        "searchprofile-articles": "صفحات المحتوى",
-       "searchprofile-project": "صفحات المساعدة والمشروع",
        "searchprofile-images": "الوسائط المتعددة",
        "searchprofile-everything": "الكل",
        "searchprofile-advanced": "متقدم",
        "searchprofile-articles-tooltip": "ابحث في $1",
-       "searchprofile-project-tooltip": "ابحث في $1",
        "searchprofile-images-tooltip": "ابحث عن الصور",
        "searchprofile-everything-tooltip": "ابحث في كل المحتوى (شاملا صفحات النقاش)",
        "searchprofile-advanced-tooltip": "ابحث في النطاقات المخصصة",
        "search-interwiki-default": "نتائح من $1:",
        "search-interwiki-more": "(المزيد)",
        "search-relatedarticle": "مرتبطة",
-       "searcheverything-enable": "ابحث في جميع النطاقات",
        "searchrelated": "مرتبطة",
        "searchall": "الكل",
        "showingresults": "معروض بالأسفل {{PLURAL:$1|'''1''' نتيجة|'''$1''' نتيجة}} بدءا من رقم '''$2'''.",
        "powersearch-togglelabel": "اختر:",
        "powersearch-toggleall": "الكل",
        "powersearch-togglenone": "لا شيء",
+       "powersearch-remember": "تذكر الاختيار لبحث المستقبل",
        "search-external": "بحث خارجي",
        "searchdisabled": "البحث في {{SITENAME}} معطل.\nيمكنك البحث من خلال جوجل في الوقت الحالي.\nلاحظ أن فهارسه لمحتوى {{SITENAME}} ربما تكون غير محدثة.",
        "search-error": "حدث خطأ ما أثناء البحث: $1",
        "allowemail": "مكن تلقي البريد الإلكتروني من المستخدمين الآخرين",
        "prefs-searchoptions": "البحث",
        "prefs-namespaces": "أسماء النطاقات",
-       "defaultns": "أو ابحث في هذه النطاقات:",
        "default": "افتراضي",
        "prefs-files": "ملفات",
        "prefs-custom-css": "CSS مخصص",
        "recentchanges-label-unpatrolled": "لم يراجع هذا التعديل إلى الآن",
        "recentchanges-label-plusminus": "حجم الصفحة تغير بهذا العدد من وحدات البايت",
        "recentchanges-legend-heading": "شرح",
-       "recentchanges-legend-newpage": "(راجع أيضا [[Special:NewPages|قائمة الصفحات الجديدة]])",
-       "rcnotefrom": "بالأسفل التغييرات منذ '''$2''' (إلى '''$1''' معروضة).",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (راجع أيضا [[Special:NewPages|قائمة الصفحات الجديدة]])",
+       "rcnotefrom": "بالأسفل التغييرات منذ <strong>$2</strong> (إلى <strong>$1</strong> معروضة).",
        "rclistfrom": "أظهر التغييرات بدء من $3 $2",
        "rcshowhideminor": "$1 التعديلات الطفيفة",
        "rcshowhideminor-show": "أظهر",
        "listgrouprights-namespaceprotection-namespace": "النطاق",
        "trackingcategories-name": "اسم الرسالة",
        "trackingcategories-desc": "معايير إدراج تصنيف",
+       "trackingcategories-nodesc": "لا يتوفر وصف.",
        "trackingcategories-disabled": "التصنيف غير مفعل",
        "mailnologin": "لا يوجد عنوان للإرسال",
        "mailnologintext": "يجب أن تقوم [[Special:UserLogin|بتسجيل الدخول]] وإدخال بريد إلكتروني صالح في صفحة [[Special:Preferences|التفضيلات]] لتتمكن من إرسال الرسائل لمستخدمين آخرين.",
        "emailuser-title-target": "راسل بالبريد الإلكتروني هذا  {{GENDER:$1| المستخدم}}",
        "emailuser-title-notarget": "مراسلة المستخدم",
        "emailpage": "إرسال رسالة للمستخدم",
-       "emailpagetext": "يمكنك استخدام الاستمارة بالأسفل لإرسال رسالة بريد إلكتروني إلى {{GENDER:$1|هذا المستخدم|هذه المستخدمة}}.\nسيظهر عنوان البريد الإلكتروني الذي أدخلته في [[Special:Preferences|تفضيلاتك]] كعنوان المرسل في البريد الإلكتروني، كي يستطيع المتلقي الرد عليك مباشرة.",
+       "emailpagetext": "يمكنك استخدام الاستمارة بالأسفل لإرسال رسالة بريد إلكتروني إلى {{GENDER:$1|هذا المستخدم|هذه المستخدمة}}.\n'''يمكن أن يرى المرسل إليه عنوان بريدك الإلكتروني''' الذي أدخلته في [[Special:Preferences|تفضيلاتك]] كعنوان المرسل في البريد الإلكتروني، كي يستطيع المتلقي الرد عليك مباشرة.",
        "defemailsubject": "رسالة {{SITENAME}} من المستخدم \"$1\"",
        "usermaildisabled": "بريد المستخدم الإلكتروني معطل",
        "usermaildisabledtext": "لا يمكنك إرسال بريد إلكتروني إلى مستخدمين آخرين على هذه الويكي",
        "watchnologin": "غير مسجل الدخول",
        "addwatch": "إضافة إلى قائمة المراقبة",
        "addedwatchtext": "أضيفت الصفحة  \"[[:$1]]\" إلى [[Special:Watchlist|قائمة مراقبتك]].\nالتغييرات القادمة على هذه الصفحة وصفحة نقاشها سيتم وضعها هناك.",
+       "addedwatchtext-short": "أضيفت صفحة \"$1\" إلى قائمة مراقبتك.",
        "removewatch": "إزالة من قائمة المراقبة",
        "removedwatchtext": "أزيلت الصفحة \"[[:$1]]\" من [[Special:Watchlist|قائمة مراقبتك]].",
+       "removedwatchtext-short": "أزيلت صفحة \"$1\" من قائمة مراقبتك.",
        "watch": "راقب",
        "watchthispage": "راقب هذه الصفحة",
        "unwatch": "أوقف المراقبة",
        "unwatchthispage": "أوقف المراقبة",
        "notanarticle": "ليست صفحة محتوى",
        "notvisiblerev": "المراجعة تم حذفها",
-       "watchlist-details": "{{PLURAL:$1||صÙ\81حة Ù\88احدة|صÙ\81حتاÙ\86|$1 ØµÙ\81حات|$1 ØµÙ\81حة}} Ù\81Ù\8a Ù\82ائÙ\85Ø© Ù\85راÙ\82بتÙ\83Ø\8c Ø¨Ø¯Ù\88Ù\86 Ø¹Ø¯ ØµÙ\81حات Ø§Ù\84Ù\86Ù\82اش.",
+       "watchlist-details": "{{PLURAL:$1||صÙ\81حة Ù\88احدة|صÙ\81حتاÙ\86|$1 ØµÙ\81حات|$1 ØµÙ\81حة}} Ù\81Ù\8a Ù\82ائÙ\85Ø© Ù\85راÙ\82بتÙ\83Ø\8c Ø¯Ù\88Ù\86 Ø§Ø¹ØªØ¨Ø§Ø± ØµÙ\81حات Ø§Ù\84Ù\86Ù\82اش ØµÙ\81حات Ù\85Ù\86Ù\81صÙ\84Ø©.",
        "wlheader-enotif": "الإخطار بالبريد الإلكتروني مُفعّل.",
        "wlheader-showupdated": "الصفحات التي تم تحريرها بعد مطالعتك إياها آخر مرة عناوينها بالخط '''الغليظ'''",
        "wlnote2": "فيما يلي تعرض التعديلات التي أجريت في آخر {{PLURAL:$1|ساعة|ساعتين|<strong>$1</strong> ساعات|<strong>$1</strong> ساعة}}، وذلك اعتبارا من $2، $3.",
        "enotif_lastvisited": "انظر $1 لكل التغييرات منذ زيارتك الأخيرة.",
        "enotif_lastdiff": "انظر $1 لرؤية هذا التغيير.",
        "enotif_anon_editor": "مستخدم مجهول $1",
-       "enotif_body": "عزيزي $WATCHINGUSERNAME\n\n$PAGEINTRO $NEWPAGE\n\nملخص التعديل: $PAGESUMMARY $PAGEMINOREDIT\n\nاتصل بالمحرر:\nالبريد: $PAGEEDITOR_EMAIL\nويكي: $PAGEEDITOR_WIKI\n\nلن يكون هناك إخطارات أخرى في حالة حدوث مزيد من التغييرات إلا إذا قمت بزيارة تلك الصفحة أثناء تواجدك. يمكنك أيضاً إزالة العلامات عن جميع الصفحات في قائمة مراقبتك.\n\nنظام {{SITENAME}} للإشعار\n\n--\nلتغيير إعدادات الإشعار بالبريد الإلكتروني الخاص بك، قم بزيارة\n{{canonicalurl:{{#special:Preferences}}}}\n\nلتغيير إعدادات قائمة مراقبتك، قم بزيارة\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nلحذف الصفحة من قائمة مراقبتك، قم بزيارة\n$UNWATCHURL\n\nللمقترحات وللحصول على مساعدة إضافية:\n{{canonicalurl: {{MediaWiki:Helppage}}}}",
+       "enotif_body": "عزيزي $WATCHINGUSERNAME\n\n$PAGEINTRO $NEWPAGE\n\nملخص التعديل: $PAGESUMMARY $PAGEMINOREDIT\n\nاتصل بالمحرر:\nالبريد: $PAGEEDITOR_EMAIL\nويكي: $PAGEEDITOR_WIKI\n\nلن يكون هناك إخطارات أخرى في حالة حدوث مزيد من التغييرات إلا إذا قمت بزيارة تلك الصفحة أثناء تواجدك. يمكنك أيضاً إزالة العلامات عن جميع الصفحات في قائمة مراقبتك.\n\nنظام {{SITENAME}} للإشعار\n\n--\nلتغيير إعدادات الإشعار بالبريد الإلكتروني الخاص بك، قم بزيارة\n{{canonicalurl:{{#special:Preferences}}}}\n\nلتغيير إعدادات قائمة مراقبتك، قم بزيارة\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nلحذف الصفحة من قائمة مراقبتك، قم بزيارة\n$UNWATCHURL\n\nللمقترحات وللحصول على مساعدة إضافية:\n$HELPPAGE",
        "created": "أنشئت",
        "changed": "غيرت",
        "deletepage": "حذف الصفحة",
        "protect-locked-blocked": "لا يمكنك تغيير مستويات الحماية وأنت ممنوع.\nالإعدادات الحالية للصفحة '''$1''' هي:",
        "protect-locked-dblock": "لا يمكن تغيير مستويات الحماية بسبب غلق قاعدة البيانات حاليا.\nالإعدادات الحالية للصفحة '''$1''' هي:",
        "protect-locked-access": "لا يملك حسابك هذا صلاحية تغيير مستوى حماية الصفحة.\nالإعدادات الحالية للصفحة '''$1''' هي:",
-       "protect-cascadeon": "هذه الصفحة محمية لكونها مضمنة في {{PLURAL:$1|الصفحة|الصفحات}} التالية، والتي بها خيار حماية الصفحات المدمجة فعال.\nيمكنك تغيير مستوى حماية هذه الصفحة بدون التأثير على حماية الصفحات المدمجة الأخرى.",
+       "protect-cascadeon": "هذه الصفحة محمية لكونها مضمنة في {{PLURAL:$1||الصفحة التالية|الصفحتين التاليتين|الصفحات التالية}}، والتي بها خيار حماية الصفحات المدمجة فعال.\nلن يؤثر تغيير مستوى حماية هذه الصفحة على حماية الصفحات المدمجة.",
        "protect-default": "اسمح لكل المستخدمين",
        "protect-fallback": "السماح فقط للمستخدمين ذوي الصلاحية \"$1\"",
        "protect-level-autoconfirmed": "السماح فقط للمستخدمين المؤكدين تلقائيا",
        "contributions-title": "مساهمات {{GENDER:$1|المستخدم|المستخدمة}} $1",
        "mycontris": "مساهماتي",
        "contribsub2": "ل{{GENDER:$3|$1}} ($2)",
+       "contributions-userdoesnotexist": "حساب المستخدم \"$1\" غير مسجل.",
        "nocontribs": "لم يتم العثور على تغييرات تطابق هذه المحددات.",
        "uctop": "حالي",
        "month": "من شهر (وأقدم):",
        "movepagetalktext": "صفحة النقاش المرفقة سيتم نقلها كذلك، '''إلا في حالة''':\n* توجد صفحة نقاش غير فارغة تحت العنوان الجديد، أو\n* قمت بإزالة اختيار الصندوق بالأسفل.\n\nوفي هذه الحالات، يجب عليك نقل أو دمج محتويات الصفحة يدويا، إذا رغب في ذلك.",
        "movearticle": "انقل الصفحة:",
        "moveuserpage-warning": "'''تحذير: أنت على وشك نقل صفحة مستخدم. من فضلك لاحظ أن الصفحة وحدها سوف تنقل وأن المستخدم لن يعاد تسميته.'''",
+       "movecategorypage-warning": "<strong>تحذير:</strong> أنت على وشك نقل صفحة تصنيف. نرجو التنبه إلى أن ذلك سينقل الصفحة فقط و<em>لن</em>  يعاد تصنيف أي صفحة في التصنيف السابق إلى التصنيف الجديد.",
        "movenologintext": "يجب أن تكون مستخدماً مسجلاً وأن  [[Special:UserLogin|تسجل دخولك]] لكي تنقل صفحة.",
        "movenotallowed": "أنت لا تمتلك الصلاحية لنقل الصفحات.",
        "movenotallowedfile": "أنت لا تمتلك الصلاحية لنقل الملفات.",
        "cant-move-user-page": "أنت لا تمتلك الصلاحية لنقل صفحات المستخدم الرئيسية.",
        "cant-move-to-user-page": "أنت لا تمتلك الصلاحية لنقل صفحة إلى صفحة مستخدم (ماعدا إلى صفحة مستخدم فرعية).",
+       "cant-move-category-page": "أنت لا تمتلك صلاحية نقل صفحات التصانيف.",
+       "cant-move-to-category-page": "أنت لا تمتلك صلاحية نقل صفحة إلى صفحة تصنيف.",
        "newtitle": "إلى العنوان الجديد:",
        "move-watch": "راقب هذه الصفحة",
        "movepagebtn": "انقل الصفحة",
        "tooltip-preferences-save": "احفظ التغييرات",
        "tooltip-summary": "أدخل ملخصا قصيرا",
        "common.css": "/* ستؤثر الأنماط المتراصة (CSS) المعروضة هنا على كل الواجهات */",
-       "cologneblue.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة كولون بلو */",
        "monobook.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة مونوبوك */",
-       "modern.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة مودرن */",
        "vector.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمي واجهة فكتور */",
        "print.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على ناتج الطباعة */",
        "noscript.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على المستخدمين الذين الجافاسكريبت لديهم معطلة */",
        "group-sysop.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على الإداريين فقط */",
        "group-bureaucrat.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على البيروقراطيين فقط */",
        "common.js": "/* الجافاسكريبت الموضوع هنا سيتم تحميله لكل المستخدمين مع كل تحميل للصفحة. */",
-       "cologneblue.js": "/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة كولون بلو */",
        "monobook.js": "/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة مونوبوك */",
-       "modern.js": "/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة مودرن */",
        "vector.js": "/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين الذين يستعملون واجهة فكتور */",
        "group-autoconfirmed.js": "/* أي جافاسكريبت هنا سيتم تحميلها للمستخدمين المؤكدين تلقائيا فقط */",
        "group-bot.js": "/* أي جافاسكريبت هنا سيتم تحميلها للبوتات فقط */",
        "pageinfo-category-pages": "عدد الصفحات",
        "pageinfo-category-subcats": "عدد التصنيفات الفرعية",
        "pageinfo-category-files": "عدد الملفات",
-       "skinname-cologneblue": "كولون بلو",
        "skinname-monobook": "مونوبوك",
-       "skinname-modern": "مودرن",
        "skinname-vector": "فكتور",
        "markaspatrolleddiff": "علم بعلامة المراجعة",
        "markaspatrolledtext": "علم هذه الصفحة بعلامة المراجعة",
        "watchlistedit-raw-done": "قائمة مراقبتك تم تحديثها.",
        "watchlistedit-raw-added": "تمت إضافة {{PLURAL:$1||عنوان واحد|عنوانين|$1 عناوين|$1 عنوانا|$1 عنوان}}:",
        "watchlistedit-raw-removed": "تمت إزالة {{PLURAL:$1||عنوان واحد|عنوانين|$1 عناوين|$1 عنوانا|$1 عنوان}}:",
+       "watchlistedit-clear-title": "قائمة مراقبة ممسوحة",
+       "watchlistedit-clear-legend": "امسح قائمة المراقبة",
+       "watchlistedit-clear-explain": "ستحذف جميع الصفحات من قائمة مراقبتك",
        "watchlistedit-clear-titles": "العناوين:",
+       "watchlistedit-clear-submit": "امسح قائمة المراقبة (هذا دائم!)",
+       "watchlistedit-clear-done": "مُسِحت قائمة مراقبتك.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1||أزيل العنوان التالي|أزيل العنوانان التاليان|أزيلت العناوين ال$1 التالية}}:",
+       "watchlistedit-too-many": "الصفحات أكثر من أن تعرض هنا.",
+       "watchlisttools-clear": "امسح قائمة المراقبة",
        "watchlisttools-view": "اعرض التغييرات المرتبطة",
        "watchlisttools-edit": "اعرض قائمة المراقبة وعدلها",
        "watchlisttools-raw": "عدل قائمة المراقبة الخام",
index 3cc092e..917f8c7 100644 (file)
        "permissionserrors": "ܦܘܕܐ ܕܦܣܣܐ",
        "permissionserrorstext-withaction": "ܠܝܬ ܠܟ ܦܣܣܐ ܠ$2, ܒ{{PLURAL:$1|ܥܠܬܐ|ܥܠܬ̈ܐ}} ܕ:",
        "log-fulllog": "ܚܙܝ ܣܓܠܐ ܓܡܝܪܐ",
-       "postedit-confirmation": "ܫܘܚܠܦܟ ܐܬܠܒܟ.",
+       "postedit-confirmation-saved": "ܫܘܚܠܦܟ ܐܬܠܒܟ.",
        "edit-already-exists": "ܒܪܝܐ ܕܦܐܬܐ ܚܕܬܐ ܠܐ ܡܬܡܨܝܢܐ.\nܗܕܐ ܦܐܬܐ ܐܝܬ ܡܢ ܟܕܘ.",
        "editwarning-warning": "ܐܢ ܫܒܩܬ ܦܐܬܐ ܗܕܐ ܡܬܡܨܝܢܬܐ ܐܝܬܝܗ ܕܚܣܪܬ ܟܠ ܫܘܚܠܦ̈ܐ ܕܥܒܝܕܬ ܗܪܟܐ.\nܡܨܬ ܕܬܒܛܠ ܙܘܗܪܐ ܗܢܐ ܐܢ ܥܠܝܠܐ ܐܝܬܝܟ ܒܡܢܬܐ ܕ\"ܫܚܠܦܬܐ\" ܒܨܒܝܢܝܘܬ̈ܐ.",
        "undo-summary": "ܠܐ ܬܥܒܕ $1 ܒܝܕ [[Special:Contributions/$2|$2]] ([[User talk:$2|ܡܡܠܠܐ]])",
        "searchmenu-exists": "'''ܐܝܬ ܦܐܬܐ ܒܫܡ \"[[:$1]]\" ܥܠ ܗܢܐ ܘܝܩܝ'''",
        "searchmenu-new": "'''ܒܪܝ ܦܐܬܐ \"[[:$1]]\" ܥܠ ܗܢܐ ܘܝܩܝ!'''",
        "searchprofile-articles": "ܦܐܬܬ̈ܐ ܕܚܒܝܫܬ̈ܐ",
-       "searchprofile-project": "ܦܐܬܬ̈ܐ ܕܬܪ̈ܡܝܬܐ ܘܕܥܘܕܪܢܐ",
        "searchprofile-images": "ܡܝܕ̈ܝܐ ܣܓܝܐ̈ܐ (Multimedia)",
        "searchprofile-everything": "ܟܠ ܡܕܡ",
        "searchprofile-advanced": "ܡܬܩܕܡܢܐ",
        "searchprofile-articles-tooltip": "ܒܨܝ ܒܓܘ $1",
-       "searchprofile-project-tooltip": "ܒܨܝ ܒ $1",
        "searchprofile-images-tooltip": "ܒܨܝ ܥܠ ܠܦܦ̈ܐ",
        "search-result-size": "$1 ({{PLURAL:$2|1 ܡܠܬܐ|$2 ܡܠ̈ܐ}})",
        "search-redirect": "(ܨܝܒ $1)",
        "search-interwiki-default": "ܦܠܛ̈ܐ ܕ $1:",
        "search-interwiki-more": "(ܝܬܝܪ)",
        "search-relatedarticle": "ܐܚܝܢܝ̈ܐ",
-       "searcheverything-enable": "ܒܨܝ ܒܟܠ ܚܩܠܬ̈ܐ",
        "searchrelated": "ܐܚܝܢܝ̈ܐ",
        "searchall": "ܟܠ",
        "showingresults": "ܚܘܘܝܐ ܠܬܚܬ {{PLURAL:$1|'''1''' ܦܠܛܐ|'''$1''' ܦܠܛ̈ܐ}} ܫܪܐ ܡܢ ܡܢܝܢܐ '''$2'''.",
        "timezoneregion-pacific": "ܐܘܩܝܢܘܣ ܫܩܛܝܐ",
        "prefs-searchoptions": "ܒܨܝܐ",
        "prefs-namespaces": "ܚܩܠܬ̈ܐ",
-       "defaultns": "ܐܘ ܒܨܝ ܒܚܩܠܬ̈ܐ ܗܢܝܢ",
        "prefs-files": "ܠܦܦ̈ܐ",
        "prefs-emailconfirm-label": "ܫܘܪܪܐ ܕܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ:",
        "youremail": "ܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ:",
        "username": "{{GENDER:$1|ܫܡܐ ܕܡܦܠܚܢܐ|ܫܡܐ ܕܡܦܠܚܢܬܐ}}:",
-       "uid": "ܗܝܝܘܬܐ ܕ{{GENDER:$1|ܡܦܠܚܢܐ|ܡܦܠܚܢܬܐ}}:",
        "prefs-memberingroups": "{{GENDER:$2|ܗܕܡܐ}} ܕ{{PLURAL:$1|ܟܢܘܫܬܐ|ܟܢܘܫܬ̈ܐ}}:",
        "prefs-registration": "ܙܒܢܐ ܕܣܘܓܠܐ:",
        "yourrealname": "ܫܡܐ ܫܪܝܪܐ:",
        "recentchanges-label-unpatrolled": "ܫܘܚܠܦܐ ܗܢܐ ܠܐ ܗܘ ܟܪܝܟܐ ܠܗܫܐ",
        "recentchanges-label-plusminus": "ܥܓܪܐ ܕܦܐܬܐ ܐܫܬܚܠܦ ܒܗܢܐ ܡܢܝܢܐ ܡܢ ܒܝܛ̈",
        "recentchanges-legend-heading": "'''ܦܘܫܩܐ:'''",
-       "recentchanges-legend-newpage": "(ܐܦ ܚܙܝ [[Special:NewPages|ܡܟܬܒܘܬܐ ܕܦܐܬܬ̈ܐ ܚܕ̈ܬܬܐ]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ܐܦ ܚܙܝ [[Special:NewPages|ܡܟܬܒܘܬܐ ܕܦܐܬܬ̈ܐ ܚܕ̈ܬܬܐ]])",
        "rcnotefrom": "ܠܬܚܬ ܫܘܚܠܦ̈ܐ ܕܡܢ '''$2''' (ܥܕ '''$1''' ܡܬܚܙܝܢ̈ܐ).",
        "rclistfrom": "ܚܘܝ ܫܘܚܠܦ̈ܐ ܚܕ̈ܬܐ ܡܢ $3 $2",
        "rcshowhideminor": "$1 ܫܘܚܠܦ̈ܐ ܙܥܘܪ̈ܐ",
        "log-title-wildcard": "ܒܨܝ ܥܠ ܟܘܢܝ̈ܐ ܕܫܪܝܢ ܥܡ ܟܬܒܬܐ ܗܕܐ",
        "showhideselectedlogentries": "ܚܘܝ/ܛܫܝ ܣܓܠ̈ܐ ܕܥܠܠܐ ܓܒܝ̈ܐ",
        "allpages": "ܟܠ ܦܐܬܬ̈ܐ",
-       "alphaindexline": "$1 ܠ $2",
        "nextpage": "ܦܐܬܐ ܕܒܬܪ ($1)",
        "prevpage": "ܦܐܬܐ ܕܩܕܡ ($1)",
        "allpagesfrom": "ܚܘܝ ܦܐܬܬ̈ܐ ܕܫܪܐ ܥܡ:",
        "unblock": "ܫܩܘܠ ܚܪܡܐ ܡܢ ܡܦܠܚܢܐ",
        "blockip": "ܚܪܘܡ ܡܦܠܚܢܐ",
        "blockip-legend": "ܚܪܘܡ ܡܦܠܚܢܐ",
-       "ipadressorusername": "ܐܝ ܦܝ (IP) ܐܘ ܫܡܐ ܕܡܦܠܚܢܐ:",
+       "ipaddressorusername": "ܐܝ ܦܝ (IP) ܐܘ ܫܡܐ ܕܡܦܠܚܢܐ:",
        "ipbexpiry": "ܡܬܚܐ ܕܚܪܡܐ:",
        "ipbreason": "ܥܠܬܐ:",
        "ipbsubmit": "ܚܪܘܡ ܡܦܠܚܢܐ ܗܢܐ",
        "newimages": "ܒܝܬ ܓܠܚܐ ܕܠܦܦ̈ܐ ܚܕܬ̈ܐ",
        "newimages-legend": "ܡܨܦܝܢܝܬܐ",
        "newimages-label": "ܫܡܐ ܕܠܦܦܐ (ܐܘ ܡܢܬܐ ܡܢܗ)",
-       "showhidebots": "($1 ܒܘܬ̈ܐ)",
        "noimages": "ܠܝܬ ܡܕܡ ܠܚܙܝܐ.",
        "ilsubmit": "ܒܨܝ",
        "bydate": "ܒܣܝܩܘܡܐ",
index ae9538a..232683c 100644 (file)
        "searchmenu-exists": "'''فيه صفحه اسمها \"[[:$1]]\" على الويكى ده.''' {{PLURAL:$2|0=|بص كمان على نتايج البحث التانيه.}}",
        "searchmenu-new": "'''ابتدى الصفحه \"[[:$1]]\" ع الويكى دا!''' {{PLURAL:$2|0=|بص كمان على الصفحه اللى لقيناها من بحثك.|بص كمان على نتايج البحث اللى لقيناها.}}",
        "searchprofile-articles": "صفحات محتوى",
-       "searchprofile-project": "صفحات  المساعده و المشروع",
        "searchprofile-images": "مالتيميديا",
        "searchprofile-everything": "كل شىء",
        "searchprofile-advanced": "متقدم",
        "searchprofile-articles-tooltip": "دور فى $1",
-       "searchprofile-project-tooltip": "دور فى $1",
        "searchprofile-images-tooltip": "دور على الصور",
        "searchprofile-everything-tooltip": "دور فى  كل المحتوى (شامل صفحات النقاش)",
        "searchprofile-advanced-tooltip": "دور فى النطاقات المخصصة",
        "search-interwiki-default": "$1 نتيجة:",
        "search-interwiki-more": "(اأكتر)",
        "search-relatedarticle": "مرتبطه",
-       "searcheverything-enable": "دور فى النطاقات كلها.",
        "searchrelated": "مرتبطه",
        "searchall": "الكل",
        "showingresults": "القائمة دى بتعرض {{PLURAL:$1|'''1''' نتيجة|'''$1''' نتيجة}} من أول  رقم '''$2'''.",
        "allowemail": "السماح لليوزرز التانيين يبعتولى ايميل",
        "prefs-searchoptions": "اختيارات التدوير",
        "prefs-namespaces": "أسماء النطاقات",
-       "defaultns": "أو دور فى النطاقات دى:",
        "default": "اوتوماتيكي",
        "prefs-files": "ملفات",
        "prefs-custom-css": "CSS مخصص",
        "prefs-emailconfirm-label": "التأكد من الايميل:",
        "youremail": "الايميل:",
        "username": "{{GENDER:$1|اسم اليوزر}}:",
-       "uid": "رقم {{GENDER:$1|اليوزر}}:",
        "prefs-memberingroups": "{{GENDER:$2|عضو}} فى {{PLURAL:$1|مجموعه|مجموعات}}:",
        "prefs-registration": "وقت التسجيل:",
        "yourrealname": "الاسم الحقيقى:",
        "recentchanges-label-minor": "ده تعديل صغير",
        "recentchanges-label-bot": "التعديل ده عمله بوت",
        "recentchanges-label-unpatrolled": "التعديل ده مإتراجعش لسه",
-       "recentchanges-legend-newpage": "(بص كمان على [[Special:NewPages|قايمه الصفحات الجديده]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (بص كمان على [[Special:NewPages|قايمه الصفحات الجديده]])",
        "rcnotefrom": "دى التعديلات من '''$2''' (ل '''$1''' معروضه).",
        "rclistfrom": "اظهر التعديلات بدايه من $3 $2",
        "rcshowhideminor": "$1 تعديلات صغيره",
        "logempty": "مافيش  سجلات مطابقة فى السجل.",
        "log-title-wildcard": "التدوير على عناوين تبتدى بالنص دا",
        "allpages": "كل الصفحات",
-       "alphaindexline": "$1 ل $2",
        "nextpage": "الصفحه اللى بعد كده ($1)",
        "prevpage": "الصفحه اللى قبل كده ($1)",
        "allpagesfrom": "عرض الصفحات بدايه من:",
        "tooltip-summary": "اكتب ملخص قصير",
        "interlanguage-link-title": "ل $1 – $2",
        "common.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على كل الواجهات */",
-       "cologneblue.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمى واجهة كولون بلو */",
        "monobook.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمى واجهة مونوبوك */",
-       "modern.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على مستخدمى واجهة مودرن */",
        "vector.css": "/* CSS اللى هنا حتأثر على اليوزرز اللى بيستخدموا واجهة فكتور */",
        "print.css": "/* الأنماط المتراصة CSS المعروضة هنا ستؤثر على ناتج الطباعة */",
        "common.js": "/*  أى جافاسكريبت  هناح يتحمل لكل اليوزرز مع كل تحميل للصفحة. */",
-       "cologneblue.js": "/* أى جافاسكريبت هنا ح تتحمل لليوزرز اللى بيستعملو واجهة كولون بلو */",
        "monobook.js": "/* أى جافاسكريبت هنا ح تتحمل لليوزرز اللى بيستعملو واجهة مونوبوك */",
-       "modern.js": "/* أى جافاسكريبت هنا ح تتحمل لليوزرز اللى بيستعملو واجهة مودرن */",
        "vector.js": "/* اى جافاسكريبت هنا حتتحمل لكل يوزر بيستخدم واجهة فكتور */",
        "anonymous": "{{PLURAL:$1|يوزر مجهول|يوزرز مجهولين}} ل {{SITENAME}}",
        "siteuser": "يوزر {{SITENAME}} $1",
        "spam_reverting": "ترجيع آخر نسخة مافيهاش لينكات لـ $1",
        "spam_blanking": "كل النسخ فيها لينكات ل $1، فضيها",
        "simpleantispam-label": "اختبار انتي-سبام.\n'''ماتعبيش''' دا!",
-       "skinname-cologneblue": "كولون بلو",
        "skinname-monobook": "مونوبوك",
-       "skinname-modern": "مودرن",
        "markaspatrolleddiff": "علم عليها انها متراجعة",
        "markaspatrolledtext": "علم على المقاله دى إنها متراجعة",
        "markedaspatrolled": "اتعلم عليها متراجعة",
index 6ce9f9c..2b7fe74 100644 (file)
        "recentchanges-label-unpatrolled": "এই সম্পাদনাটো এতিয়াও পৰীক্ষা কৰা হোৱা নাই",
        "recentchanges-label-plusminus": "পৃষ্ঠাৰ আকাৰ এই পৰিমাণৰ বাইট পৰিৱৰ্তন হৈছে",
        "recentchanges-legend-heading": "'''ব্যাখ্যা:'''",
-       "recentchanges-legend-newpage": "(লগতে [[Special:NewPages|নতুন পৃষ্ঠাসমূহৰ তালিকা]] চাওক)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (লগতে [[Special:NewPages|নতুন পৃষ্ঠাসমূহৰ তালিকা]] চাওক)",
        "recentchanges-legend-plusminus": "(''±১২৩'')",
        "rcnotefrom": "তলত '''$2''' ৰ পৰা হোৱা ('''$1''' লৈকে) পৰিৱৰ্তন দেখুৱা হৈছে ।",
        "rclistfrom": "$3 $2ৰ পৰা নতুন সালসলনি দেখুৱাওক",
index 69e78f5..caa9810 100644 (file)
        "searchmenu-exists": "'''Hai una páxina nomada \"[[$1]]\" nesta wiki'''",
        "searchmenu-new": "<strong>¡Crear la páxina «[[:$1]]» nesta wiki!</strong> {{PLURAL:$2|0=|Vea tamién la páxina que s'alcontró cola gueta.|Vea tamién los resultaos qu'alcontró la gueta.}}",
        "searchprofile-articles": "Páxines de conteníu",
-       "searchprofile-project": "Páxines de proyeutu y ayuda",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Too",
        "searchprofile-advanced": "Avanzao",
        "searchprofile-articles-tooltip": "Buscar en $1",
-       "searchprofile-project-tooltip": "Buscar en $1",
        "searchprofile-images-tooltip": "Buscar ficheros",
        "searchprofile-everything-tooltip": "Buscar tol conteníu (incluyendo páxines d'alderique)",
        "searchprofile-advanced-tooltip": "Buscar nos espacios de nomes personalizaos",
        "search-interwiki-default": "Resultaos de $1:",
        "search-interwiki-more": "(más)",
        "search-relatedarticle": "Rellacionáu",
-       "searcheverything-enable": "Buscar en tolos espacios de nome",
        "searchrelated": "rellacionáu",
        "searchall": "toos",
        "showingresults": "Abaxo {{PLURAL:$1|amuésase '''un''' resultáu|amuésense '''$1''' resultaos}}, entamando col #'''$2'''.",
        "allowemail": "Dexar a los otros usuarios mandate correos",
        "prefs-searchoptions": "Buscar",
        "prefs-namespaces": "Espacios de nome",
-       "defaultns": "Sinón, buscar nestos espacios de nome:",
        "default": "predetermináu",
        "prefs-files": "Ficheros",
        "prefs-custom-css": "CSS personalizada",
        "recentchanges-label-unpatrolled": "Esta edición ta ensin patrullar entá",
        "recentchanges-label-plusminus": "El tamañu d'esta páxina cambió nesti númberu de bytes",
        "recentchanges-legend-heading": "'''Lleenda:'''",
-       "recentchanges-legend-newpage": "(ver tamién la  [[Special:NewPages|llista de páxines nueves]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ver tamién la  [[Special:NewPages|llista de páxines nueves]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Abaxo tan los cambeos dende <strong>$2</strong> (s'amuesen fasta <strong>$1</strong>).",
        "rclistfrom": "Amosar los nuevos cambios dende $3 $2",
        "tooltip-summary": "Escribi un resume curtiu",
        "interlanguage-link-title": "$1 – $2",
        "common.css": "/* Los CSS allugaos equí s'aplicarán a tolos aspeutos */",
-       "cologneblue.css": "/* Los CSS allugaos equí afeutarán a los usuarios del aspeutu Cologne Blue */",
        "monobook.css": "/* Los CSS allugaos equí afeutarán a los usuarios del aspeutu Monobook */",
-       "modern.css": "/* Los CSS allugaos equí afeutarán a los usuarios del aspeutu Modern */",
        "vector.css": "/* Los CSS allugaos equí afeutarán a los usuarios del aspeutu Vector */",
        "print.css": "/* Los CSS allugaos equí afeutarán a la salida pola imprentadora */",
        "noscript.css": "/* Los CSS allugaos equí afeutarán a los usuarios col JavaScript desactiváu */",
        "group-sysop.css": "/* Los CSS allugaos equí afeutarán a los sysops namái */",
        "group-bureaucrat.css": "/* Los CSS allugaos equí afeutarán a los burócrates namái */",
        "common.js": "/* Cualesquier JavaScript que tea equí se cargará pa tolos usuarios en cada carga de páxina. */",
-       "cologneblue.js": "/* Cualesquier JavaScript que tea equí se cargará pa los usuarios del aspeutu Cologne Blue */",
        "monobook.js": "/* Cualesquier JavaScript que tea equí se cargará pa los usuarios del aspeutu MonoBook */",
-       "modern.js": "/* Cualesquier JavaScript que tea equí se cargará pa los usuarios del aspeutu Modern */",
        "vector.js": "/* Cualesquier JavaScript que tea equí se cargará pa los usuarios del aspeutu Vector */",
        "group-autoconfirmed.js": "/* Cualesquier JavaScript que tea equí se cargará pa los usuarios autoconfirmaos namái */",
        "group-bot.js": "/* Cualesquier JavaScript que tea equí se cargará pa los bots namái */",
        "pageinfo-category-pages": "Númberu de páxines",
        "pageinfo-category-subcats": "Númberu de subcategoríes",
        "pageinfo-category-files": "Númberu de ficheros",
-       "skinname-cologneblue": "Azul Colonia",
-       "skinname-modern": "Modernu",
        "markaspatrolleddiff": "Marcar como supervisada",
        "markaspatrolledtext": "Marcar esta páxina como supervisada",
        "markedaspatrolled": "Marcar como supervisada",
index f5beabd..a04b01c 100644 (file)
@@ -22,7 +22,8 @@
                        "Vugar 1981",
                        "Wertuose",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Arystanbek"
                ]
        },
        "tog-underline": "Keçidlərin altını xətlə:",
        "vector-view-view": "Oxu",
        "vector-view-viewsource": "Mənbəyə bax",
        "actions": "Hərəkətlər",
+       "vector-more-actions": "Daha",
        "namespaces": "Adlar fəzası",
        "variants": "Variantlar",
        "navigation-heading": "Naviqasiya menyusu",
index b51d2b2..4898f0c 100644 (file)
        "searchmenu-exists": "'''بو ویکی‌ده «[[:$1]]» آدلی صحیفه واردیر.'''",
        "searchmenu-new": "'''بو ویکی‌ده «[[:$1]]» صحیفه‌‌سینی يارات!'''",
        "searchprofile-articles": "مقاله‌لر",
-       "searchprofile-project": "یاردیم و پروژه صحیفه‌لری",
        "searchprofile-images": "مولتی‌مئدیا",
        "searchprofile-everything": "هرشئی",
        "searchprofile-advanced": "گلیشمیش",
        "searchprofile-articles-tooltip": "$1-ده آختار",
-       "searchprofile-project-tooltip": "$1-ده آختار",
        "searchprofile-images-tooltip": "فایل‌لار اوچون آختار",
        "searchprofile-everything-tooltip": "بوتون متنلری آختار (دانیشیق صحیفه‌لری اولماقلا)",
        "searchprofile-advanced-tooltip": "تاپشیریلان آدفضالاریندا آختار",
        "search-interwiki-default": "$1 سونوج:",
        "search-interwiki-more": "(داها)",
        "search-relatedarticle": "ایلگیلی",
-       "searcheverything-enable": "بوتون آدفضالاریندا آختار",
        "searchrelated": "ایلگیلی",
        "searchall": "بوتون",
        "showingresults": "آشاغیدا نومره '''$2'''-دن باشلایان {{PLURAL:$1|'''بیر'''|'''$1'''}} سونوجا قدر گؤستریلیر.",
        "allowemail": "باشقا ایستیفاده‌چیلردن ایمیل آلماغی آچ",
        "prefs-searchoptions": "آختار",
        "prefs-namespaces": "آدلار فضاسی:",
-       "defaultns": "یوخسا بو آدفضالاریندا آختار:",
        "default": "فرض ائدیلن",
        "prefs-files": "فایل‌لار",
        "prefs-custom-css": "شخصی سی‌اس‌اس",
        "recentchanges-label-bot": "بو دییشیک بیر بوت طرفیندن ائدیلیب‌دیر",
        "recentchanges-label-unpatrolled": "بو دییشیکلیک هله گؤزدن گئچیریلمه‌ییب‌دیر",
        "recentchanges-legend-heading": "'''ایختیصارلار:'''",
-       "recentchanges-legend-newpage": "(هم‌ده [[Special:NewPages|یئنی صحیفه‌لرین لیستینه]] باخین)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (هم‌ده [[Special:NewPages|یئنی صحیفه‌لرین لیستینه]] باخین)",
        "rcnotefrom": "آشاغیدا '''$2'''-دن ('''$1'''-ه قدر) ديَیشیکلیکلر گلیبلر.",
        "rclistfrom": "$3 $2 واختیندان باشلایاراق یئنی دییشیکلری گؤستر",
        "rcshowhideminor": "کیچیک دَییشیکلری $1",
index f98f58a..e554b9e 100644 (file)
@@ -7,7 +7,8 @@
                        "Mostafadaneshvar",
                        "Reedy",
                        "ZxxZxxZ",
-                       "아라"
+                       "아라",
+                       "RigiMahnoor"
                ]
        },
        "tog-underline": ":لینکانآ خط کش",
        "tog-hidepatrolled": "ته نوکین تغییرات اصلاحاتی که گردگ بیتگن پناه کن",
        "tog-newpageshidepatrolled": "پناه کتن صفحاتی که گردگ بوتگن چه لیست نوکین صفحه",
        "tog-extendwatchlist": "لیست چارگ مزن کن دان کل تغییرات پیش داریت نه که فقط نوکینءَ",
-       "tog-usenewrc": "کارÙ\85رز Ú©ØªÙ\86 ØªØºÛ\8cÛ\8cرات Ù\86Ù\88Ú©Û\8cÙ\86 Ø¨Ù\87تر Ø¨Ù\88تگÛ\8cÙ\86(جاÙ\88ا Ø§Ø³Ú©Ø±Û\8cپت)",
+       "tog-usenewrc": "گرÙ\88پء ØªØºÛ\8cÛ\8cراÙ\86 ØªØ§Ú©Ø¡ Ù\88استÙ\87 Ù\85اÙ\86 Ù\86Ù\88Ú©Û\8cÙ\86 ØªØºÛ\8cÛ\8cراÙ\86 Ø¡Ù\8f Ú\86ارÙ\88Ú© Ù\84Û\8cست",
        "tog-numberheadings": "اتوماتیک شماره کتن عناوین",
-       "tog-showtoolbar": "میله ابزار اصلاح پیش درا(جاوا)",
-       "tog-editondblclick": "صفحات گون دو کلیک اصلاح کن(جاوا)",
-       "tog-editsectiononrightclick": "Ù\81عاÙ\84 Ú©ØªÙ\86 Ø§ØµÙ\84اح Ú©Ø³Ù\85ت Ú¯Ù\88Ù\86 Ú©Ù\84Û\8cÚ© Ø±Ø§Ø³Øª Ø§Ù\88ر Ú©Ø³Ù\85ت Ø¹Ù\86اÙ\88Û\8cÙ\86(جاÙ\88ا)",
-       "tog-watchcreations": "Ù\87Ù\88ر Ú©Ù\86 Ù\85Ù\86Û\8c ØµÙ\81حاتÛ\8c Ú©Ù\87 Ù\85Ù\86 ØªÙ\87 Ù\84Û\8cست Ú\86ارگ Ø´Ø±Ú©ØªØª",
-       "tog-watchdefault": "Ù\87Ù\88رکÙ\86 ØµÙ\81حاتÛ\8c Ú©Ù\87 Ù\85Ù\86 Ø§ØµÙ\84اح Ú©ØªÙ\86 ØªÙ\87 Ù\85Ù\86Û\8c Ù\84Û\8cست Ú\86ارگ",
-       "tog-watchmoves": "Ù\87Ù\88ر Ú©Ù\86 ØµÙ\81حاتÛ\8c Ú©Ù\87 Ù\85Ù\86 Ø¬Ø§Ù\87 Ù¾Ù\87 Ø¬Ø§Ù\87 Ú©Øª ØªÙ\87 Ù\85Ù\86Û\8c Ù\84Û\8cست Ú\86ارگ",
-       "tog-watchdeletion": "Ù\87Ù\88ر Ú©Ù\86 ØµÙ\81حاتÛ\8c Ú©Ù\87 Ù\85Ù\86 ØªÙ\87 Ù\84Û\8cست Ú\86ارگ Ú©Ù\87 Ù\85Ù\86 Ø­Ø°Ù\81 Ú©Øªن",
+       "tog-showtoolbar": "اصلاح کنوکین میلگ ابزارء پیش بدار",
+       "tog-editondblclick": "ویبتاکانء مان دو کلیک ٹگل بدئ",
+       "tog-editsectiononrightclick": "Ù\81عاÙ\84 Ú©ØªÙ\86 Ø²Ø±ØªÚ¯Û\8cÙ\86 Ø¨Ù\87رء Ø§ØµÙ\84اح Ú©ØªÙ\86 Ú¯Ù\88Ù\86 Ú©Ù\84Û\8cÚ© Ø²Ø±ØªÚ¯Û\8cÙ\86 Ø¹Ù\86Ù\88اÙ\86اÙ\86Ø¡ Ø³Ø±Ø§",
+       "tog-watchcreations": "Ù\85Ù\86Û\8c Ø§Ú\88 Ú©ØªÚ¯Û\8cÙ\86 Ù¾Û\8cج Ù\88 Ø§Ù¾Ù\84Ù\88د Ú©ØªÚ¯Û\8cÙ\86 Ù\81اÛ\8cÙ\84اÙ\86Ø¡ Ú\86ارگ Ù\84Û\8cستء ØªÙ\88کا Ù\87Ù\88ار Ú©Ù\86",
+       "tog-watchdefault": "Ù\85Ù\86Û\8c Ø§ØµÙ\84اح Ú©ØªÚ¯Û\8cÙ\86 Ù\81اÛ\8cÙ\84 Ù\88 Ù¾Û\8cجاÙ\86Ø¡ Ú\86ارگ Ù\84Û\8cستء ØªÙ\88کا Ù\87Ù\88ار Ú©Ù\86",
+       "tog-watchmoves": "Ù\85Ù\86Û\8c Ø³Ù\8fرÛ\8cÙ\86تگÛ\8cÙ\86 Ù\81اÛ\8cÙ\84 Ù\88 Ù¾Û\8cجاÙ\86Ø¡ Ú\86ارگ Ù\84Û\8cستء ØªÙ\88کا Ù\87Ù\88ار Ú©Ù\86",
+       "tog-watchdeletion": "Ù\85Ù\86Û\8c Ø­Ø°Ù\81 Ú©ØªÚ¯Û\8cÙ\86 Ù\81اÛ\8cÙ\84 Ù\88 Ù¾Û\8cجاÙ\86Ø¡ Ú\86ارگ Ù\84Û\8cستء ØªÙ\88کا Ù\87Ù\88ار Ø¨Ú©ن",
        "tog-minordefault": "په طور پیش فرض کل اصلاحات آ په داب جزی مشخص کن",
        "tog-previewontop": "بازبین پیش دار پیش چه جعبه اصلاح",
        "tog-previewonfirst": "ته اولین اصلاح بازبینی پیش دار",
-       "tog-enotifwatchlistpages": "Ù\85Ù\86Û\8c Ø§Û\8cÙ\85Û\8cÙ\84 Ø¬Ù\86 Ù\88Ù\87دÛ\8c Ú©Ù\87 Û\8cÚ© ØµÙ\81Ø­Ù\87 Ø§Û\8c ØªÙ\87 Ù\85Ù\86Û\8c Ù\84Û\8cست Ú\86ارگ Ø¹Ù\88ص Ø¨Û\8cت",
+       "tog-enotifwatchlistpages": "Ù\88Ù\87دÛ\8c Ú©Ù\87 Û\8cÚ© Ù¾Û\8cج Û\8cاÙ\86 Ú©Ù\87 Ù\81اÛ\8cÙ\84Ø¡ Ù¹Ú¯Ù\84 Ù\88ارت Ù¾Ø± Ù\85Ù\86Ø¡ Ø§Û\8cÙ\85Û\8cÙ\84 Ø¯Û\8cÙ\85 Ø¨Ø¯Ø¦",
        "tog-enotifusertalkpages": "منآ ایمیل جن وهدی که صفحه ی گپ کاربر من عوض بیت",
-       "tog-enotifminoredits": "Ù\85Ù\86 Ø§Û\8cÙ\85Û\8cÙ\84 Ø¬Ù\86 Ù\87Ù\85Û\8c Ø¯Ø§Ø¨ Ù¾Ù\87 Ù\87Ù\88ردÛ\8cÙ\86 Ø§ØµÙ\84احات ØµÙ\81حات",
+       "tog-enotifminoredits": "Ù\87Ù\86Ú\86Ù\88Ø´ Ù¾Ø± Ù\87Ù\88ردÛ\8cÙ\86 Ù¹Ú¯Ù\84 Ù\85اÙ\86 Ù¾Û\8cج Ù\88 Ù\81اÛ\8cÙ\84اÙ\86 Ù¾Ø± Ù\85Ù\86Ø¡ Ø§Û\8cÙ\85Û\8cÙ\84 Ø¯Û\8cÙ\85 Ø¨Ø¯Ø¦",
        "tog-enotifrevealaddr": "منی ایمیل پیش دار ته ایمیل أن هوژاری",
        "tog-shownumberswatching": "پیش دار تعداد کاربرانی که چارگتن",
+       "tog-oldsig": "انیگین ایمزا کنوک",
        "tog-fancysig": "امضاءَ په داب ویکی متنی بزان(بی اتوماتیکی لینک)",
-       "tog-uselivepreview": "چه زنده این بازبین استفاده کن(جاوا)(تجربی)",
+       "tog-uselivepreview": "لایو پیشچارگء کارمرز بکن(تجربی)",
        "tog-forceeditsummary": "من آ هال دی وهدی وارد کتن یک هالیکین خلاصه ی اصلاح",
        "tog-watchlisthideown": "منی اصلاحات آ چه لیست چارگ پناه کن",
        "tog-watchlisthidebots": "اصلاحات بوت چه لیست چارگ پناه کن",
        "tog-diffonly": "چیر تفاوت محتوای صفحه ی پیش مدار",
        "tog-showhiddencats": "پناه ین دسته یان پیش دار",
        "tog-norollbackdiff": "تفاوتء حذف کن بعد چه اجرای یک ترینگ",
+       "tog-useeditwarning": "وهدی دربیگ مان اصلاح کتگین پیج اگان تغییران سیو نبوت اتنت منء هشتار بدئ",
+       "tog-prefershttps": "پر مان بوتنء واسته هروهدء یک ایمنین کنکشنء کارمرز بکن",
        "underline-always": "یکسره",
        "underline-never": "هچ وهد",
-       "underline-default": "پیشفرضین بروزر",
+       "underline-default": "وفاولتء پێم پر برۆزر یان پۆسته",
+       "editfont-style": "اصلاح کنۆکێن فۆنتء استایل",
+       "editfont-default": "دفاۆلتێن برۆزر",
+       "editfont-monospace": "فۆنت گۆن مالومێن پاسلگ",
+       "editfont-sansserif": "بئ گۆشگێن فۆنت",
+       "editfont-serif": "گۆشه دارێن فۆنت",
        "sunday": "یک شنبه",
        "monday": "دوشنبه",
        "tuesday": "سی شنبه",
        "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",
        "pagecategories": "{{PLURAL:$1|دسته|دسته جات}}",
        "category_header": "صفحات ته دسته \"$1\"",
        "subcategories": "زیردسته جات",
        "category-file-count": "{{PLURAL:$2|ای دسته فقط شامل جهلیگین فایل انت.|جهلیگین {{PLURAL:$1|افایل انت|$1 فایلان انت}}ته ای دسته, چه $2کلl.}}",
        "category-file-count-limited": "جهلیگین {{PLURAL:$1|فایل|$1 فایلان}} ته هنوکین دسته اینت",
        "listingcontinuesabbrev": "ادامه.",
+       "index-category": "سرتاک بوتگێن پێجان",
+       "noindex-category": "سرتاک نبوتگین پیجان",
+       "broken-file-category": "پیج گون پرشتگین لینک فایل",
        "about": "باره",
        "article": "محتوا صفحه",
        "newwindow": "(ته نوکین پنچره ی پچ کن)",
        "cancel": "کنسل",
        "moredotdotdot": "گیشتر...",
-       "mypage": "می صفحه",
-       "mytalk": "منی گپ",
+       "morenotlisted": "ائ لیست پکا نه انت",
+       "mypage": "تاک",
+       "mytalk": "گپ",
        "anontalk": "گپ کن گون ای آی پی",
        "navigation": "گردگ",
        "and": "&#32;و",
        "vector-action-move": "جاه په جاه",
        "vector-action-protect": "حفاظت",
        "vector-action-undelete": "ترینگ",
-       "vector-action-unprotect": "حفاظت درگیزگ",
+       "vector-action-unprotect": "پروتکشنء ٹگل بدئ",
        "vector-view-create": "شرکتن",
        "vector-view-edit": "اصلاح",
        "vector-view-history": "چارتن تاریح",
        "vector-view-view": "وانتن",
        "vector-view-viewsource": "پیشدارگ بن جاه",
        "actions": "کاران",
+       "vector-more-actions": "گیشتر",
        "namespaces": "فضانامان",
        "variants": "گوشگان",
+       "navigation-heading": "منوء ناویگ",
        "errorpagetitle": "حطا",
        "returnto": "تررگ به $1.",
        "tagline": "چه {{SITENAME}}",
        "printableversion": "نسخه چهاپی",
        "permalink": "دایمی لینک",
        "print": "چهاپ",
+       "view": "چارگ",
+       "view-foreign": "بچار مان $1",
        "edit": "اصلاح",
+       "edit-local": "لوکال دسکریپشنء اصلاح کن",
        "create": "شرکتن",
+       "create-local": "لوکال دسکریپشنء هوار کن",
        "editthispage": "ای صفحه اصلاح کن",
        "create-this-page": "ای صفحه شرکتن کن",
        "delete": "حذف",
        "deletethispage": "ای صفحه حذف کن",
+       "undeletethispage": "ائ تاکء دلیت مکن",
        "undelete_short": "حذف مکن {{PLURAL:$1|one edit|$1 edits}}",
+       "viewdeleted_short": "چارگ {{باز،زیاتیگ:$1|یکین حذف بوتگین اصلاح|$1 اصلاح کتگانء حذف بکن}}",
        "protect": "حفاظت",
        "protect_change": "عوض کن",
        "protectthispage": "ای صفحه حفاظت کن",
-       "unprotect": "Ù\85حاÙ\81ظت Ù\85Ú©Ù\86",
-       "unprotectthispage": "ای صفحه محافظت مکن",
+       "unprotect": "پرÙ\88تکشÙ\86Ø¡ Ù¹Ú¯Ù\84 Ø¨Ø¯Ø¦",
+       "unprotectthispage": "ائ تاکء پروتکشنء ٹگل بدئ",
        "newpage": "نوکین صفحه",
        "talkpage": "ای صفحه بحث کن",
        "talkpagelinktext": "گپ کن",
        "articlepage": "محتوا صفحه به گند",
        "talk": "بحث",
        "views": "چارگان",
-       "toolbox": "جعبÙ\87 Ø§Ø¨Ø²Ø§Ø±",
+       "toolbox": "ابزار",
        "userpage": "به گند صفحه کاربر",
        "projectpage": "به گند صفحه",
        "imagepage": "به چار فایل صفحه ءَ",
        "jumptonavigation": "گردگ",
        "jumptosearch": "گردگ",
        "view-pool-error": "متاسفانه، سرور هنون بازگین باری سر انت.\nبازگین کاربری این تاک ءَ چارگنت.\nلطفا کمی صبر کنیت پیش چه شی که دگه ای تاک بچاریت.\n\n$1",
+       "generic-pool-error": "پر بژنء سرورء زیاتیگین بارئ سر انت. بازین کاربر انیگء ائ تاکء چارگء لوٹنت. دزبندی انت کمئ موه بداریت پیسر چه ایشی که ائ تاکء توکا رهشون به بیت.",
+       "pool-timeout": "شمئی انتظارء وهد پر قفل کنگء آسر بوت",
+       "pool-queuefull": "مهزنء صف پر انت",
+       "pool-errorunknown": "ناپجارین ارور",
+       "pool-servererror": "سرویسء پول سینٹر ودی نبیت ($1).",
        "aboutsite": "باره {{SITENAME}}",
        "aboutpage": "Project:باره",
-       "copyright": "محتوا موجودانت تحت $1.",
+       "copyright": "محتوا مان اجازت نامهٔ $1 انت مگان ایشی که آئی هلاپء آرگ ببیت انت.",
        "copyrightpage": "{{ns:project}}:حق کپی",
        "currentevents": "هنوکین رویداد",
        "currentevents-url": "Project:هنوکین رویداد",
        "ok": "هوبنت",
        "retrievedfrom": "درگیجگ بیت چه  \"$1\"",
        "youhavenewmessages": "شما هست  $1 ($2).",
+       "youhavenewmessagesfromusers": "شما چه {{PLURAL:$3|یک دگرین کاربر|$3  کاربر}} $1 داریت ($2).",
+       "youhavenewmessagesmanyusers": "شما چه لهتئ کاربر $1 داریت ($2).",
+       "newmessageslinkplural": "{{PLURAL:$1|نوکین کله|999=نوکین کله هان}}",
+       "newmessagesdifflinkplural": "$1 {{PLURAL:$1|ٹگل داتن|پهکین ٹگل}}",
        "youhavenewmessagesmulti": "شما را نوکین کوله یان هست ته   $1",
        "editsection": "اصلاح",
        "editold": "اصلاح",
        "toc": "محتوا",
        "showtoc": "پیش دار",
        "hidetoc": "پناه کن",
+       "collapsible-collapse": "چیر داتن",
+       "collapsible-expand": "تچک کتن",
        "thisisdeleted": "به گند یا پچ ترین $1?",
        "viewdeleted": "به گند $1?",
        "restorelink": "{{PLURAL:$1|یک حذف اصلاح|$1 حذف اصلاح}}",
        "feed-atom": "اتم",
        "feed-rss": "ار اس اس",
        "red-link-title": "$1 (هنگت  نیستن)",
+       "sort-descending": "نزولی نز آرتن",
+       "sort-ascending": "صعودی نز آرتن",
        "nstab-main": "صفحه",
        "nstab-user": "صفحه کاربر",
        "nstab-media": "صفحه مدیا",
        "nospecialpagetext": "<strong>شما یک نامعتبرین صفحه حاصین درخواست کت.</strong>\n\nیک لیستی چه معتبرین صفحات حاص در کپیت ته [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "حطا",
        "databaseerror": "حطا دیتابیس",
+       "databaseerror-text": "یک ارورء مان دیتابیسء شوهازیگء ودی بیت. هنچوش بیتء کنت ائ یک نکسء مان سفتورء هن پیداگ بکنت انت.",
+       "databaseerror-textcl": "یک ارورء مان دیتابیسء شوهازیگء پیداگ بوت.",
+       "databaseerror-query": "شوهاز: $1",
+       "databaseerror-function": "Function: $1",
+       "databaseerror-error": "ارور: $1",
        "laggedslavemode": "هوژاری: صفحه شاید نوکین په روچ بییگان داشته می بیت",
        "readonly": "دیتابیس کبلنت",
        "enterlockreason": "یک دلیلی په کبل وارد کنیت، شامل یک برآوردی چه وهد کبل ویل بیت",
        "unexpected": "ارزش نه لوٹتیگن : \"$1\"=\"$2\".",
        "formerror": "حطا: نه تونیت فرم دیم دنت",
        "badarticleerror": "ای کار ته ای صفحه اجرای نه بیت",
-       "cannotdelete": "نه نونیت فایل یا صفحه مشخص بیتگین آ حذف کن.\nشاید گون یکی دگه  حذف بوتت",
+       "cannotdelete": "تاک یان پیکچرء هزپ کنگ «$1» بیت نه کنت.\nبلکین پیسرء دگر شهسء آئرا هزپ کتگ.",
+       "cannotdelete-title": "نبیت تاکء «$1» هزپ به بیت.",
+       "delete-hook-aborted": "هزپ گون قلابء واسته ایر دارگ بوت.\nائ بابتء توضیحء درشان نه بوت.",
+       "no-null-revision": "امکان نوکین هالیگ نسخهء اڈ کتن پر تاکء «$1» نه انت",
        "badtitle": "عنوان بد",
        "badtitletext": "لوٹتگین عنوان صفحه نامعتبر ،هالیک یا یک عنوان هرابین لینک بین زبانی یا بین وی کی انت.\nآی شاید شامل یک یا گیشترین کاراکترانت که ته عناوین استفاده نه بنت.",
-       "perfcached": "جهلیگین دیتا ذخیره بیتگنت و شاید نوک می بنت. A maximum of {{PLURAL:$1|one result is|$1 results are}} available in the cache.",
-       "perfcachedts": "جهلیگین دیتا ذخیره بیتگنت و اهرین په روچ بیگ $1. A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.",
+       "perfcached": "جهلیگین دیتا مان چیرداتگین حافظهء ذخیره بیتگ انت و بلکین نوک نه انت. زیاتیگ چه {{PLURAL:$1|one result is|$1 results are}} مان چیرداتگین حافظهء ودی بیت انت.",
+       "perfcachedts": "جهلیگین دیتا مان چیرداتگین حافظهء ذخیره بوتگ انت و آهرین باریگ مان  $1 چه نوک بیت انت. زیاتیگء {{PLURAL:$4|یک نتیجه|$4 نتیجه}} مان چیرداتگین حافظهء ودی بیت انت.",
        "querypage-no-updates": "په روچ بیگان په ای صفحه الان غیر فعالنت. دیتا ادان الان نوکین نهنت.",
        "viewsource": "به گند منبع آ",
+       "viewsource-title": "منبعء پیش دارگ پر $1",
        "actionthrottled": "کار گیر نت",
        "actionthrottledtext": "په خاطر یک معیار ضد اسپم شما چه انجام ای کار ته یک کمی زمان محدود بیتگیت، و شما چه ای محدودیت رد بیتگیت.\nلطفا چند دقیقه بعد کوشست کن",
-       "protectedpagetext": "ای صفحه کبل بوتت په حاطر اصلاح بیگ",
+       "protectedpagetext": "ائ تاک پر دیم دارگ چه ادگرانی اصلاح کتن یان کارمرز کتن پراتکتء بوتگ انت.",
        "viewsourcetext": "شما تونیت به گند و کپی کنیت منبع ای صفحه آ",
-       "protectedinterface": "ای صفحه فراهم آریت مداخله ی متنی په برنامه و کبل بیتت په جلوگیری چه سو استفاده.",
-       "editinginterface": "'''هوژاری:''' شما یک صفحه ای اصلاح کنیت که به عنوان مداخله گر متنی برنامه استفاده بیت.\nتغییرات ای صفحه کاربرد مداخله گر په دگه کابران تاثیر هلیت.\n  [//translatewiki.net/wiki/Main_Page?setlang=en translatewiki.net],  په ترجمه یان لطفا توجه کنیت په استفاده پروژه ملکی کتن مدیا وی کی",
+       "viewyourtext": "توانیت منبعی کد چه '''شمئ اصلاح کتگان''' مان ائ تاکء بگند ات و کپی بکن ات:",
+       "protectedinterface": "ائ پیجء توکا تکستء پر واسط کاربری ائ سفتورء مان ائ ویکی انت و پر دست دارگ چه ٹگل داتنء پراتکت بیتگ انت.\n\nپر هوار کتن یانکه رجانکء ٹگل پر پهکین ویکی هان، دزبندی انت چه [//translatewiki.net/ translatewiki.net]، محلی‌سازیء پراجکت پر مدیاویکی، کارمرز به کنیت.",
+       "editinginterface": "'''هوژاری:''' ائ پیجء که انیگء ٹگل دئیت یک تکستء هوار انت که مان ائ سفتورء واسط کاربری کارمرز بیتگ انت.\nائ پیجء ٹگل بیتن واسط کاربریء ظاهرءادگر کاربرانء ٹگل دنت انت.\nپر هوار کتن یانکه رجانکء ٹگل پر پهکین ویکی هان، دزبندی انت چه [//translatewiki.net/ translatewiki.net]، محلی‌سازیء پراجکت پر مدیاویکی، کارمرز به کنیت.",
        "cascadeprotected": "ای صفحه محافظت بیت چه اصلاح چرا که آیی شامل جهلیگین {{PLURAL:$1|صفحه, که|صفحات, که}} محافظتی گون the \"cascading\" option turned on:\n$2",
        "namespaceprotected": "شما اجازت په اصلاح صفحات ته  '''$1'' نام فضا نیست",
+       "customcssprotected": "شما ائ پیجء سی اس اسء اصلاح کتنء اجازتء نداریت، پرچا که آئی توکا وتیگین تنظیمان چه ادگر کاربرء انت.",
        "ns-specialprotected": "حاصین صفحات اصلاح نه بنت",
        "titleprotected": "ای عنوان محافظت بوتت چه سربیگ به وسیله  [[User:$1|$1]].\nای دلیل دییگ بیتت ''$2''.",
        "virus-badscanner": "تنظیم بد: ناشناسین اسکنر ویروس: ''$1''",
        "searchmenu-exists": "'''صفحه گون نام \"[[$1]]\" ته ای ویکی نیستن'''",
        "searchmenu-new": "'''شر کن صفحه ای \"[[:$1]]\" ته ای ویکی!'''",
        "searchprofile-articles": "صفحات محتوا",
-       "searchprofile-project": "کمک و صفحات پروژه ای",
        "searchprofile-images": "ملتیمدیا",
        "searchprofile-everything": "هر چیز",
        "searchprofile-advanced": "پیشرفتگین",
        "searchprofile-articles-tooltip": "گردگ ته $1",
-       "searchprofile-project-tooltip": "گردگ ته $1",
        "searchprofile-images-tooltip": "گردگ په فایلان ته",
        "searchprofile-everything-tooltip": "گردگ په کل محتوا (هور گون صفحات گپ)",
        "searchprofile-advanced-tooltip": "گردگ ته نام فضایان دل واه",
        "search-interwiki-default": "$1 نتایج:",
        "search-interwiki-more": "(گیشتر)",
        "search-relatedarticle": "مربوطین",
-       "searcheverything-enable": "گردگ ته کل فضانامان",
        "searchrelated": "مربوط",
        "searchall": "کل",
        "showingresults": "جهل پیش دارگنت تا  {{PLURAL:$1|'''1'''نتیجه|'''$1''' نتایج}} شروع بنت گون #'''$2'''.",
        "allowemail": "فعال کن ایمیل چه دگه کابران",
        "prefs-searchoptions": "گردگ انتخابان",
        "prefs-namespaces": "نام فصا",
-       "defaultns": "گردگ ته ای نام فضا آن په طور پیش فرض:",
        "default": "پیش فرض",
        "prefs-files": "فایلان",
        "prefs-custom-css": "رسمی سی‌اس‌اس",
        "prefs-emailconfirm-label": "تایید کتن پست الکترونیک:",
        "youremail": "ایمیل:",
        "username": "نام کاربری:",
-       "uid": "کاربر شناسگ:",
        "prefs-memberingroups": "عضو گروه {{PLURAL:$1|group|groups}}:",
        "prefs-registration": "ثبت نام وهد:",
        "yourrealname": "راستین  نام:",
        "logempty": "هچ آیتم هم دپ ته آمار",
        "log-title-wildcard": "بگرد عناوین که گون ای متن شروع بنت",
        "allpages": "کل صفحات",
-       "alphaindexline": "$1 په $2",
        "nextpage": "صفحه ی بعدی ($1)",
        "prevpage": " ($1)پیشگین صفحه",
        "allpagesfrom": "پیش در صفحات شروع بنت ته:",
        "spam_reverting": "عوض کتن په آهری نسحه که شامل لینکان می بیت په $1",
        "spam_blanking": "کل بازبینی آن شامل لینکان په $1, بوتت  هالیکی",
        "simpleantispam-label": "کنترل ضد اسپم.\nای شیء پر ''مکن''",
-       "skinname-cologneblue": "نیلی کولاجن",
        "skinname-monobook": "منوبوک",
-       "skinname-modern": "مدرن",
        "markaspatrolleddiff": "نشان کن په داب نظارت بوتگین",
        "markaspatrolledtext": "ای صفحه نشان کن په داب نظارت بوتگین",
        "markedaspatrolled": "نشاننت په داب نظارتی",
index 1864d83..562b3e2 100644 (file)
        "recentchanges-label-unpatrolled": "Ining pagliwat dae pa tabi pinagpatrolyahan",
        "recentchanges-label-plusminus": "An kadakulaan nin pahina pinagliwat sa paagi kaining numero nin mga bayta",
        "recentchanges-legend-heading": "'''Kabalaynan:'''",
-       "recentchanges-legend-newpage": "(hilngon man [[Special:NewPages|listahan kan mga baguhong pahina]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (hilngon man [[Special:NewPages|listahan kan mga baguhong pahina]])",
        "recentchanges-legend-plusminus": "(''±saro-duwa-tolo'')",
        "rcnotefrom": "Sa ibaba iyo an mga kaliwatan poon kan '''$2''' (sagkod sa '''$1''' na ipinapahiling).",
        "rclistfrom": "Ipahiling an baguhon na mga kaliwatan magpoon kan $3 $2",
index 240795c..0e4df24 100644 (file)
        "recentchanges-label-unpatrolled": "Гэтае рэдагаваньне яшчэ не было адпатруляванае",
        "recentchanges-label-plusminus": "Памер старонкі зьмяніўся на такую колькасьць байтаў",
        "recentchanges-legend-heading": "'''Легенда:'''",
-       "recentchanges-legend-newpage": "(глядзіце таксама [[Special:NewPages|сьпіс новых старонак]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (глядзіце таксама [[Special:NewPages|сьпіс новых старонак]])",
        "rcnotefrom": "Ніжэй знаходзяцца зьмены з <strong>$2</strong> (да <strong>$1</strong> на старонку).",
        "rclistfrom": "Паказаць зьмены з $2 $3",
        "rcshowhideminor": "$1 дробныя праўкі",
        "wantedtemplates": "Запатрабаваныя шаблёны",
        "mostlinked": "Старонкі, на якія найчасьцей спасылаюцца",
        "mostlinkedcategories": "Катэгорыі з найбольшай колькасьцю старонак",
-       "mostlinkedtemplates": "ШаблÑ\91нÑ\8b, Ñ\8fкÑ\96Ñ\8f Ð½Ð°Ð¹Ñ\87аÑ\81Ñ\8cÑ\86ей Ð²Ñ\8bкаÑ\80Ñ\8bÑ\81Ñ\82оÑ\9eваÑ\8eÑ\86Ñ\86а",
+       "mostlinkedtemplates": "СÑ\82аÑ\80онкÑ\96, Ñ\8fкÑ\96Ñ\8f Ð½Ð°Ð¹Ñ\87аÑ\81Ñ\8cÑ\86ей Ñ\83клÑ\8eÑ\87аÑ\8eÑ\86Ñ\86а Ñ\9e Ñ\96нÑ\88Ñ\8bÑ\8f Ñ\81Ñ\82аÑ\80онкÑ\96",
        "mostcategories": "Старонкі з найбольшай колькасьцю катэгорыяў",
        "mostimages": "Файлы, на якія найчасьцей спасылаюцца",
        "mostinterwikis": "Старонкі з найбольшай колькасьцю інтэрвікі",
        "version-license-title": "Ліцэнзія для $1",
        "version-license-not-found": "Для гэтага пашырэньня няма падрабязных зьвестак пра ліцэнзію.",
        "version-credits-title": "Сьпіс аўтараў $1",
+       "version-credits-not-found": "Для гэтага пашырэньня ня знойдзена падрабязных зьвестак пра аўтараў.",
        "version-poweredby-credits": "{{SITENAME}} працуе на праграмным забесьпячэньні '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
        "version-poweredby-others": "іншыя",
        "version-poweredby-translators": "перакладчыкі з translatewiki.net",
index 4bc2c71..73604bb 100644 (file)
        "youhavenewmessagesmulti": "У вас ёсць новыя паведамленні на $1",
        "editsection": "правіць",
        "editold": "правіць",
-       "viewsourceold": "гл. Ð²Ñ\8bÑ\82ок",
+       "viewsourceold": "гл. Ð·Ñ\8bÑ\85однÑ\96к",
        "editlink": "правіць",
        "viewsourcelink": "паказ крыніцы",
        "editsectionhint": "Правіць раздзел: $1",
        "nocookiesfornew": "Уліковы запіс карыстальніка не быў створаны, бо мы не змаглі пацвердзіць яго крыніцы. \nУпэўніцеся, што кукі ўключаныя, абнавіце старонку і паспрабуйце яшчэ раз.",
        "noname": "Вы не вызначылі правільнага імя ўдзельніка.",
        "loginsuccesstitle": "Паспяховы ўваход у сістэму",
-       "loginsuccess": "'''Цяпер Вы ўвайшлі на {{SITENAME}} як \"$1\".'''",
+       "loginsuccess": "<strong>Цяпер Вы ўвайшлі на {{SITENAME}} як \"$1\".</strong>",
        "nosuchuser": "Няма ўдзельніка з імем \"$1\". Праверце правільнасць напісання або [[Special:UserLogin/signup|стварыце новы рахунак]]. Вялікія і малыя літары ў такіх імёнах лічацца рознымі.",
        "nosuchusershort": "Удзельніка з імем \"$1\" не існуе. Праверце яго напісанне.",
        "nouserspecified": "Вы мусіце вызначыць імя ўдзельніка.",
        "userrights-notallowed": "Вам не дазволена дадаваць ці выдаляць правы ўдзельнікаў.",
        "userrights-changeable-col": "Групы, якія вам дазволена мяняць",
        "userrights-unchangeable-col": "Групы, якія вам не дазволена мяняць",
+       "userrights-conflict": "Канфлікт змянення ўдзельніцкіх дазволаў! Калі ласка, праверце і пацвердзіце змены.",
        "userrights-removed-self": "Вы паспяхова выдалілі свае ўласныя правы. Такім чынам, Вы больш не зможаце атрымаць доступ да гэтай старонкі.",
        "group": "Група:",
        "group-user": "Удзельнікі",
        "right-reupload-shared": "Перамагаць файлы з агульнага сховішча тутэйшымі файламі",
        "right-upload_by_url": "Укладваць файл з сеціўнага адрасу (URL)",
        "right-purge": "Чысціць кэш пляцоўкі для старонкі без пацверджання",
-       "right-autoconfirmed": "Ð\9fÑ\80авÑ\96Ñ\86Ñ\8c Ñ\81Ñ\82аÑ\80онкÑ\96 Ð·-пад Ñ\87аÑ\81Ñ\82ковай Ð°Ñ\85овÑ\8b",
+       "right-autoconfirmed": "Ð\9dе Ð¿Ð°Ð´Ð¿Ð°Ñ\80адкоÑ\9eваÑ\86Ñ\86а Ð°Ð±Ð¼ÐµÐ¶Ð°Ð²Ð°Ð½Ð½Ñ\8fм Ñ\85Ñ\83Ñ\82каÑ\81Ñ\86Ñ\96, Ð½Ð°ÐºÐ»Ð°Ð´Ð·ÐµÐ½Ñ\8bм Ð½Ð° IP",
        "right-bot": "Лічыцца аўтаматычным працэсам",
        "right-nominornewtalk": "Не паведамляць пра новыя паведамленні ў адказ на дробныя праўкі размоўных старонак",
        "right-apihighlimits": "Карыстацца вышэйшымі лімітамі ў API-зваротах",
        "right-proxyunbannable": "Перамагаць аўтаматычныя забароны на проксі",
        "right-unblockself": "Разблакаваць сябе",
        "right-protect": "Мяняць узроўні аховы і правіць старонкі пад каскаднай аховай",
-       "right-editprotected": "Правіць старонкі, што пад аховай (але без каскаднай аховы)",
+       "right-editprotected": "Правіць старонкі пад аховай \"{{int:protect-level-sysop}}\"",
+       "right-editsemiprotected": "Правіць старонкі, што пад аховай \"{{int:protect-level-autoconfirmed}}\"",
        "right-editinterface": "Правіць карыстальніцкі інтэрфейс",
        "right-editusercssjs": "Правіць файлы CSS і JS іншых удзельнікаў",
        "right-editusercss": "Правіць файлы CSS іншых удзельнікаў",
        "right-edituserjs": "Правіць файлы JS іншых удзельнікаў",
        "right-editmyusercss": "Правіць уласныя файлы CSS",
        "right-editmyuserjs": "Правіць уласныя файлы JavaScript",
+       "right-viewmywatchlist": "Глядзець свой спіс назірання",
+       "right-editmywatchlist": "Правіць свой спіс назірання. Заўвага: некаторыя дзеянні будуць дадаваць старонкі нават без гэтага дазволу.",
+       "right-viewmyprivateinfo": "Глядзець свае асабістыя звесткі (напр., адрас эл.пошты, сапраўднае імя)",
+       "right-editmyprivateinfo": "Правіць свае асабістыя звесткі (напр., адрас эл.пошты, сапраўднае імя)",
+       "right-editmyoptions": "Змяняць свае настройкі",
        "right-rollback": "Паскорана адкочваць праўкі апошняга ўдзельніка, які правіў пэўную старонку",
        "right-markbotedits": "Меціць адкочаныя праўкі як праўкі робатаў",
        "right-noratelimit": "Не падпарадкоўвацца абмежаванням хуткасці",
        "recentchanges-label-unpatrolled": "Праўка яшчэ не атрымала адзнакі ўхваленасці (за ёй не сочыць \"патруль\")",
        "recentchanges-label-plusminus": "Аб'ём старонкі змяніўся на гэтую лічбу байтаў",
        "recentchanges-legend-heading": "'''Легенда:'''",
-       "recentchanges-legend-newpage": "(гл. таксама [[Special:NewPages|спіс новых старонак]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (гл. таксама [[Special:NewPages|спіс новых старонак]])",
        "rcnotefrom": "Ніжэй знаходзяцца змены з <b>$2</b> (паказана не больш чым <b>$1</b>).",
        "rclistfrom": "Паказаць змены з $3 $2",
        "rcshowhideminor": "$1 дробныя праўкі",
        "backend-fail-notsame": "Ужо існуе неідэнтычны файл $1.",
        "backend-fail-invalidpath": "$1 не з'яўляецца дапушчальным шляхам",
        "backend-fail-delete": "Не ўдалося сцерці файл \"$1\".",
+       "backend-fail-describe": "Немагчыма змяніць метазвесткі для файла \"$1\".",
        "backend-fail-alreadyexists": "Файл $1 ужо існуе.",
        "backend-fail-store": "Не ўдалося захаваць файл $1 на $2 .",
        "backend-fail-copy": "Не ўдалося капіраваць файл \"$1\" у \"$2\".",
        "emailuser": "Эл.пошта ўдзельніка",
        "emailuser-title-notarget": "Напісанне электроннага ліста ўдзельніку",
        "emailpage": "Зварот да ўдзельніка праз эл.пошту",
-       "emailpagetext": "Тут можна выслаць эл.пошту гэтаму ўдзельніку.\nАдрас эл.пошты, уведзены вамі ў [[Special:Preferences|сваіх настаўленнях]], з'явіцца ў полі \"From\" вашага ліста, і атрымальнік зможа адказаць на ваш ліст.",
+       "emailpagetext": "Тут можна выслаць эл.пошту гэта{{GENDER:$1|му ўдзельніку|й удзельніцы}}.\nАдрас эл.пошты, уведзены вамі ў [[Special:Preferences|сваіх настройках]], з'явіцца ў полі \"Ад каго (From)\" вашага ліста, і атрымальнік зможа адказаць на ваш ліст.",
        "defemailsubject": "{{SITENAME}} — Ліст ад $1",
        "usermaildisabled": "Электронная пошта ўдзельніка не працуе",
        "usermaildisabledtext": "Вы не можаце адпраўляць паведамленні электроннай пошты іншым карыстальнікам гэтай вікі",
        "emailuserfooter": "Гэты эл.ліст быў высланы ад $1 да $2 праз функцыю \"{{:{{ns:mediawiki}}:emailuser/be}}\" пляцоўкі {{SITENAME}}.",
        "usermessage-summary": "Пакінуць адмысловае паведамленне.",
        "usermessage-editor": "Адмысловая дастаўка",
-       "watchlist": "Ð\9cой Ñ\81пÑ\96Ñ\81 Ð½Ð°Ð·Ñ\96Ñ\80анага",
+       "watchlist": "Ð\9cой Ñ\81пÑ\96Ñ\81 Ð½Ð°Ð·Ñ\96Ñ\80аннÑ\8f",
        "mywatchlist": "Спіс назірання",
        "watchlistfor2": "Для $1 $2",
        "nowatchlist": "Ваш спіс назірання зараз пусты.",
        "rollback": "Адкаціць праўкі",
        "rollback_short": "Адкат",
        "rollbacklink": "адкат",
+       "rollbacklinkcount-morethan": "адкаціць больш за $1 {{PLURAL:$1|праўку|праўкі|правак}}",
        "rollbackfailed": "Не ўдалося адкаціць",
        "cantrollback": "Немагчыма адкаціць праўку; апошні аўтар гэта адзіны аўтар на гэтай старонцы.",
        "alreadyrolled": "Немагчыма адкаціць апошнюю праўку ў [[:$1]], аўтарства [[User:$2|$2]] ([[User talk:$2|Talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);\nз таго часу нехта іншы правіў або адкатваў гэтую старонку.\n\nАпошняя праўка старонкі была аўтарства [[User:$3|$3]] ([[User talk:$3|Talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "namespace_association": "Звязаная прастора",
        "tooltip-namespace_association": "Устанавіце гэтую адзнаку, каб таксама ўключыць прастору імёнаў абмеркавання (або прадметную), звязаную з абранай прасторай імёнаў",
        "blanknamespace": "(Артыкулы)",
-       "contributions": "Уклад удзельніка",
-       "contributions-title": "Уклад удзельніка $1",
+       "contributions": "Уклад {{GENDER:$1|удзельніка|удзельніцы}}",
+       "contributions-title": "Уклад {{GENDER:$1|удзельніка|удзельніцы}} $1",
        "mycontris": "Уклад",
        "contribsub2": "Для $1 ($2)",
        "nocontribs": "Не знойдзена змен, адпаведных зададзеным параметрам.",
        "range_block_disabled": "Не дазволена адміністратарская магчымасць ставіць блокі на адрасныя дыяпазоны.",
        "ipb_expiry_invalid": "Некарэктны час сканчэння.",
        "ipb_expiry_temp": "Скрытыя блокі на імёны ўдзельнікаў мусяць быць сталымі.",
-       "ipb_hide_invalid": "Ð\9dемагÑ\87Ñ\8bма Ð·Ð°Ð³Ð»Ñ\83Ñ\88Ñ\8bÑ\86Ñ\8c Ð³Ñ\8dÑ\82Ñ\8b Ñ\80аÑ\85Ñ\83нак; Ð¼Ð°Ð³Ñ\87Ñ\8bма, Ð´Ð»Ñ\8f Ñ\8fго Ð¼Ð°ÐµÑ\86Ñ\86а Ð·Ð°Ñ\88маÑ\82 Ð¿Ñ\80авак.",
+       "ipb_hide_invalid": "Ð\9dемагÑ\87Ñ\8bма Ð·Ð°Ð³Ð»Ñ\83Ñ\88Ñ\8bÑ\86Ñ\8c Ð³Ñ\8dÑ\82Ñ\8b Ñ\80аÑ\85Ñ\83нак; Ð´Ð»Ñ\8f Ñ\8fго Ð¼Ð°ÐµÑ\86Ñ\86а Ð±Ð¾Ð»Ñ\8cÑ\88 Ð·Ð° {{PLURAL:$1|аднÑ\83 Ð¿Ñ\80аÑ\9eкÑ\83|$1 Ð¿Ñ\80аÑ\9eкÑ\96|$1 Ð¿Ñ\80авак}}.",
        "ipb_already_blocked": "\"$1\" ужо знаходзіцца пад блокам",
        "ipb-needreblock": "$1 ужо заблакіраваны. Жадаеце змяніць настройкі блакіроўкі?",
        "ipb-otherblocks-header": "{{PLURAL:$1|Іншая блакіроўка|Іншыя блакіроўкі}}",
        "htmlform-submit": "Падаць",
        "htmlform-reset": "Адкаціць змяненні",
        "htmlform-selectorother-other": "Рознае",
+       "htmlform-cloner-create": "Дадаць яшчэ",
        "sqlite-has-fts": "$1 з падтрымкай поўна-тэкставага пошуку",
        "sqlite-no-fts": "$1 без падтрымкі поўна-тэкставага пошуку",
        "logentry-delete-delete": "$1 выдаліў старонку $3",
index 9ba8a82..e334f2a 100644 (file)
        "recentchanges-label-unpatrolled": "Тази редакция все още не е проверена",
        "recentchanges-label-plusminus": "Размерът на страницата е променен с този брой байтове",
        "recentchanges-legend-heading": "'''Легенда:'''",
-       "recentchanges-legend-newpage": "(вижте също [[Special:NewPages|списъка с нови страници]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (вижте също [[Special:NewPages|списъка с нови страници]])",
        "rcnotefrom": "Дадени са промените от <strong>$2</strong> (до <strong>$1</strong> показани).",
        "rclistfrom": "Показване на промени, като се започва от $3 $2",
        "rcshowhideminor": "$1 на малки промени",
index c79beaf..c76d3b9 100644 (file)
        "nouserspecified": "আপনাকে অবশ্যই ব্যবহারকারী নাম নির্দিষ্ট করতে হবে।",
        "login-userblocked": "এই ব্যবহারকারীকে বাধা দেওয়া হয়েছে। লগ-ইন সম্ভব নয়।",
        "wrongpassword": "আপনি ভুল শব্দচাবি ব্যবহার করেছেন। অনুগ্রহ করে আবার চেষ্টা করুন।",
-       "wrongpasswordempty": "শব্দচাবি (password) প্রবেশের ঘরটি খালি ছিল। দয়াকরে আবার চেষ্টা করুন।",
+       "wrongpasswordempty": "শব্দচাবি (password) প্রবেশের ঘরটি খালি ছিল। দয়া করে আবার চেষ্টা করুন।",
        "passwordtooshort": "শব্দচাবি অবশ্যই {{PLURAL:$1|১ অক্ষরের|$1 অক্ষরের}} হতে হবে।",
        "password-name-match": "আপনার শব্দচাবি আপনার ব্যবহারকারী নাম থেকে আলাদা হতে হবে।",
        "password-login-forbidden": "এই ব্যবহারকারীর নাম এবং শব্দচাবিটি ব্যবহার নিষিদ্ধ করা হয়েছে।",
        "passwordsent": "একটি নতুন শব্দচাবি \"$1\" ব্যবহারকারীর ই-মেইল ঠিকানায় পাঠানো হয়েছে। দয়াকরে তা পাওয়ার পর আবার লগ-ইন করুন।",
        "blocked-mailpassword": "আপনার আইপি ঠিকানাটি থেকে সম্পাদনা করতে বাধা আছে, তাই এই ঠিকানার অপব্যবহার করে শব্দচাবি ফেরত আনতে দেয়া যাবে না।",
        "eauthentsent": "মনোনীত ই-মেইল ঠিকানায় একটি নিশ্চিতকরণ ই-মেইল পাঠানো হয়েছে।\nঐ অ্যাকাউন্টটে অন্য কোন ই-মেইল পাঠানোর আগে আপনাকে ই-মেইলের নির্দেশগুলি অনুসরণ করতে হবে, যাতে অ্যাকাউন্টটি যে আসলেই আপনার, তা নিশ্চিত হয়।",
-       "throttled-mailpassword": "বিà¦\97ত {{PLURAL:$1|à¦\98নà§\8dà¦\9fার|$1 à¦\98নà§\8dà¦\9fার}} à¦®à¦§à§\8dযà§\87 à¦\87তিমধà§\8dযà§\87à¦\87 à¦\8fà¦\95বার à¦¶à¦¬à§\8dদà¦\9aাবি à¦¬à¦¦à¦²à§\87র à¦¤à¦¥à§\8dয à¦ªà¦¾à¦ à¦¾à¦¨à§\8b à¦¹à¦¯à¦¼à§\87à¦\9bà§\87। à¦\85পবà§\8dযবহার à¦°à§\8bধà§\87 à¦ªà§\8dরতি {{PLURAL:$1|à¦\98নà§\8dà¦\9fায়|$1 à¦\98ন্টায়}} কেবল একবার শব্দচাবি বদলের তথ্য পাঠানো যাবে।",
+       "throttled-mailpassword": "বিà¦\97ত {{PLURAL:$1|à¦\98ণà§\8dà¦\9fার|$1 à¦\98ণà§\8dà¦\9fার}} à¦®à¦§à§\8dযà§\87 à¦\87তিমধà§\8dযà§\87à¦\87 à¦\8fà¦\95বার à¦¶à¦¬à§\8dদà¦\9aাবি à¦¬à¦¦à¦²à§\87র à¦¤à¦¥à§\8dয à¦ªà¦¾à¦ à¦¾à¦¨à§\8b à¦¹à¦¯à¦¼à§\87à¦\9bà§\87। à¦\85পবà§\8dযবহার à¦°à§\8bধà§\87 à¦ªà§\8dরতি {{PLURAL:$1|à¦\98ণà§\8dà¦\9fায়|$1 à¦\98ণ্টায়}} কেবল একবার শব্দচাবি বদলের তথ্য পাঠানো যাবে।",
        "mailerror": "ইমেইল পাঠাতে সমস্যা: $1",
        "acct_creation_throttle_hit": "এই উইকির দর্শক আপনার IP থেকে বিগত সময়ে {{PLURAL:$1|1 টি অ্যাকাউন্ট|$1 গুলো অ্যাকাউন্ট}} তৈরি করেছেন, যা এই সময়ের জন্য সর্বোচ্চ অনুমোদনকৃত।\nফলে, এই IP থেকে দর্শক এই সময়ে নতুন অ্যাকাউন্ট তৈরি করতে পারবেন না।",
        "emailauthenticated": "আপনার ইমেইল ঠিকানাটি $2 তারিখের $3 এ নিশ্চিত করা হয়েছে।",
        "extlink_tip": "বহিঃসংযোগ (মনে রাখবেন http:// উপসর্গ)",
        "headline_sample": "শিরোনাম",
        "headline_tip": "২য় স্তরের শিরোনাম",
-       "nowiki_sample": "à¦\85-ফরমà§\8dযাà¦\9fà¦\95à§\83ত à¦\9fà§\87à¦\95à§\8dসà¦\9f à¦\8fà¦\96ানà§\87 à¦ªà§\8dরবিষà§\8dà¦\9f করুন",
+       "nowiki_sample": "à¦\85-ফরমà§\8dযাà¦\9fà¦\95à§\83ত à¦\9fà§\87à¦\95à§\8dসà¦\9f à¦\8fà¦\96ানà§\87 à¦¯à§\8bà¦\97 করুন",
        "nowiki_tip": "উইকি ফরম্যাটিং উপেক্ষা করা হোক",
        "image_sample": "উদাহরণ.jpg",
        "image_tip": "গ্রথিত ফাইল",
        "searchprofile-everything-tooltip": "সকল বিষয়বস্তু অনুসন্ধান করো (আলাপের পাতা সহ)",
        "searchprofile-advanced-tooltip": "স্বনির্ধারিত নামস্থানে অনুসন্ধান করো",
        "search-result-size": "$1 ({{PLURAL:$2|১টি শব্দ|$2টি শব্দ}})",
-       "search-result-category-size": "{{PLURAL:$1 | 1 সদস্য | $1 সদস্যবৃন্দ}} ({{PLURAL:$2 | 1 উপবিষয়শ্রেণীটি | $2 টি}}, {{PLURAL:$3 | 1 ফাইল | $3 ফাইল}})",
+       "search-result-category-size": "{{PLURAL:$1 |১টি সদস্য |$1টি সদস্য}} ({{PLURAL:$2 |১টি উপবিষয়শ্রেণী|$2টি উপবিষয়শ্রেণী}}, {{PLURAL:$3 |১টি ফাইল |$3টি ফাইল}})",
        "search-result-score": "মিলেছে: $1%",
        "search-redirect": "(পুনর্নিদেশনা $1)",
        "search-section": "(অনুচ্ছেদ $1)",
        "recentchanges-label-unpatrolled": "এই সম্পাদনাটি এখনও পরীক্ষিত নয়",
        "recentchanges-label-plusminus": "পাতার আকারে এই পরিমান বাইট পরিবর্তিত হয়েছে",
        "recentchanges-legend-heading": "'''ব্যাখ্যামূলক বর্ণনা:'''",
-       "recentchanges-legend-newpage": "(আরও দেখুন [[Special:NewPages|নতুন পাতার তালিকা]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (আরও দেখুন [[Special:NewPages|নতুন পাতার তালিকা]])",
        "recentchanges-legend-plusminus": "(''±১২৩'')",
        "rcnotefrom": "<strong>$2</strong>টা থেকে সংঘটিত পরিবর্তনগুলি (সর্বোচ্চ <strong>$1টি</strong> দেখানো হয়েছে)",
        "rclistfrom": "$2, $3 তারিখের পর সংঘটিত নতুন পরিবর্তনগুলো দেখাও",
        "pageswithprop-prophidden-binary": "বাইনারি প্রোপার্টি টেক্সটগুলো লুকানো রয়েছে ($1)",
        "doubleredirects": "দুইবার করা পুনর্নির্দেশনাগুলি",
        "doubleredirectstext": "এই পাতায় এমন পাতাগুলোর তালিকা আছে, যেগুলো অন্য কোন পুনর্নির্দেশনা পাতায় পুনর্নির্দেশিত হয়েছে। প্রতিটি সারিতে প্রথম ও দ্বিতীয় পুনর্নির্দেশনার জন্য সংযোগ আছে এবং দ্বিতীয় পুনর্নির্দেশনাটির লক্ষ্য সংযোগটিও দেওয়া আছে। এই লক্ষ্য সংযোগটিই সাধারণত \"আসল\" লক্ষ্য পাতা, যেটিতে প্রথম পুনর্নির্দেশনাটি থেকে সংযোগ থাকা উচিত।\n<del>কেটে দেওয়া</del> ভুক্তিগুলো ঠিক করা হয়েছে।",
-       "double-redirect-fixed-move": "[[$1]] সরিয়ে নেওয়া হয়েছে।\nএটি এখন [[$2]] এ পুনঃনির্দেশিত হয়েছে।",
+       "double-redirect-fixed-move": "[[$1]] à¦¸à¦°à¦¿à¦¯à¦¼à§\87 à¦¨à§\87à¦\93য়া à¦¹à¦¯à¦¼à§\87à¦\9bà§\87।\nà¦\8fà¦\9fি à¦¸à§\8dবয়à¦\82à¦\95à§\8dরিয়ভাবà§\87 à¦¹à¦¾à¦²à¦¨à¦¾à¦\97াদ à¦¹à¦¯à¦¼à§\87à¦\9bà§\87 à¦\8fবà¦\82 à¦\8fà¦\9fি à¦\8fà¦\96ন [[$2]] à¦\8f à¦ªà§\81নà¦\83নিরà§\8dদà§\87শিত à¦¹à¦¯à¦¼à§\87à¦\9bà§\87।",
        "double-redirect-fixed-maintenance": "রক্ষণাবেক্ষণ কাজ হিসাবে [[$1]] থেকে [[$2]] এর দ্বিপুনঃর্নিদেশ স্বয়ংক্রিয়ভাবে সংশোধন করা হয়েছে।",
        "double-redirect-fixer": "পুনঃনির্দেশনা মেরামতকারী",
        "brokenredirects": "অকার্যকর পুনর্নির্দেশনাসমূহ",
        "ncategories": "$1 {{PLURAL:$1|বিষয়শ্রেণী|বিষয়শ্রেণীসমূহ}}",
        "ninterwikis": "$1 {{PLURAL:$1|ইন্টারউইকি|ইন্টারউইকিসমূহ}}",
        "nlinks": "$1টি {{PLURAL:$1|সংযোগ|সংযোগসমূহ}}",
-       "nmembers": "$1 {{PLURAL:$1|সদস্য|সদস্যবৃন্দ}}",
+       "nmembers": "$1টি {{PLURAL:$1|সদস্য}}",
        "nmemberschanged": "$1 জন → $2 জন {{PLURAL:$2|সদস্য}}",
        "nrevisions": "$1 {{PLURAL:$1|সংশোধন|সংশোধনসমূহ}}",
        "nviews": "$1 {{PLURAL:$1|বার দেখা হয়েছে|বার দেখা হয়েছে}}",
        "deadendpagestext": "নিচের পাতাগুলি থেকে {{SITENAME}}-এর অন্য কোন পাতায় সংযোগ নেই।",
        "protectedpages": "সুরক্ষিত পাতাসমূহ",
        "protectedpages-indef": "শুধুমাত্র অসীম সুরক্ষা",
+       "protectedpages-summary": "এই পাতাটি বর্তমানে সুরক্ষিত থাকা বিদ্যমান পাতগুলির তালিকা। সৃষ্টি করা থেকে সুরক্ষিত রয়েছে এমন পাতার তালিকার জন্য, [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] দেখুন।",
        "protectedpages-cascade": "শুধুমাত্র প্রপাতাকার সুরক্ষা",
        "protectedpages-noredirect": "পুনর্নির্দেশনাগুলো লুকাও",
        "protectedpagesempty": "কোন পাতা বর্তমানে এই প্যারামিটারগুলিসহ সুরক্ষিত নয়।",
        "wlheader-enotif": "ইমেল বিজ্ঞপ্তি সক্রিয় করা আছে।",
        "wlheader-showupdated": "আপনার শেষ আগমনের পর থেকে যেসব পাতায় পরিবর্তন হয়েছে সেগুলি '''গাঢ়''' করে দেখানো হয়েছে।",
        "wlnote2": "$3, $2 অনুসারে, সর্বশেষ {{PLURAL:$1|ঘণ্টার|<strong>$1</strong> ঘণ্টার}} পরিবর্তন নিচে দেয়া হয়েছে।",
-       "wlshowlast": "দà§\87à¦\96াà¦\93 à¦¸à¦°à§\8dবশà§\87ষ  $1 à¦\98ন্টা $2 দিন $3",
+       "wlshowlast": "দà§\87à¦\96াà¦\93 à¦¸à¦°à§\8dবশà§\87ষ  $1 à¦\98ণ্টা $2 দিন $3",
        "watchlist-options": "নজর তালিকা পছন্দসমূহ",
        "watching": "নজর রাখা হচ্ছে...",
        "unwatching": "নজর তুলে নেওয়া হচ্ছে...",
        "protect-otherreason-op": "অন্য কারণ",
        "protect-dropdown": "*সুরক্ষার প্রচলিত কারণ\n** অতিরিক্ত ধ্বংসপ্রবণতা\n** অতিরিক্ত অর্থহীন বিষয়বস্তু প্রবেশ করানো\n** পাল্টা-গঠনমূলক সম্পাদনা যুদ্ধ\n** বেশি মাত্রায় প্রদর্শনকৃত পাতা",
        "protect-edit-reasonlist": "সম্পাদনা সুরক্ষার কারণ",
-       "protect-expiry-options": "1 ঘন্টা:1 hour,1 দিন:1 day,1 সপ্তাহ:1 week,2 সপ্তাহ:2 weeks,1 মাস:1 month,3 মাস:3 months,6 মাস:6 months,1 বছর:1 year,অসীম:infinite",
+       "protect-expiry-options": "১ ঘণ্টা:1 hour,১ দিন:1 day,১ সপ্তাহ:1 week,২ সপ্তাহ:2 weeks,১ মাস:1 month,৩ মাস:3 months,৬ মাস:6 months,১ বছর:1 year,অসীম:infinite",
        "restriction-type": "অনুমতি:",
        "restriction-level": "বাধার স্তর:",
        "minimum-size": "ন্যূনতম আকার",
        "ipbenableautoblock": "এই ব্যবহারকারীর ব্যবহার করা সর্বশেষ আইপি ঠিকানা, এবং পরবর্তী যেসব আইপি ঠিকানা থেকে সম্পাদনার চেষ্টা করা হবে, সেগুলিকেও স্বয়ংক্রিয়ভাবে বাধা দেয়া হোক।",
        "ipbsubmit": "এই ব্যবহারকারীকে বাধা দেয়া হোক",
        "ipbother": "অন্য সময়:",
-       "ipboptions": "২ à¦\98ন্টা:2 hours,১ দিন:1 day,৩ দিন:3 days,১ সপ্তাহ:1 week,২ সপ্তাহ:2 weeks,১ মাস:1 month,৩ মাস:3 months,৬ মাস:6 months,১ বছর:1 year,অসীম:infinite",
+       "ipboptions": "২ à¦\98ণ্টা:2 hours,১ দিন:1 day,৩ দিন:3 days,১ সপ্তাহ:1 week,২ সপ্তাহ:2 weeks,১ মাস:1 month,৩ মাস:3 months,৬ মাস:6 months,১ বছর:1 year,অসীম:infinite",
        "ipbhidename": "সম্পাদনা ও তালিকা থেকে ব্যবহারকারী নাম লুকিয়ে রাখা হোক",
        "ipbwatchuser": "এই ব্যবহাকারীর পাতা এবং আলাপের পাতা নজরতালিকায় রাখো",
        "ipb-disableusertalk": "এই ব্যবহারকারীকে বাধাদানকৃত অবস্থায় নিচের আলাপ পাতায় সম্পাদনা করা থেকে বিরত রাখো",
        "years": "{{PLURAL:$1|$1 বছর}}",
        "ago": "$1 আগে",
        "just-now": "এখনই",
-       "hours-ago": "$1 {{PLURAL:$1|à¦\98ন্টা}} পূর্বে",
+       "hours-ago": "$1 {{PLURAL:$1|à¦\98ণ্টা}} পূর্বে",
        "minutes-ago": "$1 {{PLURAL:$1|মিনিট}} পূর্বে",
        "seconds-ago": "$1 {{PLURAL:$1|সেকেন্ড}} পূর্বে",
        "monday-at": "সোমবার, $1",
        "exif-gpsstatus-v": "পরিমাপ একত্রীকরণ-ক্ষমতা",
        "exif-gpsmeasuremode-2": "দ্বিমাত্রিক পরিমাপ",
        "exif-gpsmeasuremode-3": "ত্রিমাত্রিক পরিমাপ",
-       "exif-gpsspeed-k": "à¦\95িলà§\8bমিà¦\9fার à¦ªà§\8dরতি à¦\98ন্টা",
-       "exif-gpsspeed-m": "মাà¦\87ল à¦ªà§\8dরতি à¦\98ন্টা",
+       "exif-gpsspeed-k": "à¦\95িলà§\8bমিà¦\9fার à¦ªà§\8dরতি à¦\98ণ্টা",
+       "exif-gpsspeed-m": "মাà¦\87ল à¦ªà§\8dরতি à¦\98ণ্টা",
        "exif-gpsspeed-n": "নট",
        "exif-gpsdestdistance-k": "কিলোমিটার",
        "exif-gpsdestdistance-m": "ফাইল",
        "api-error-verification-error": "সম্ভবত এই ফাইলটি ত্রুটিপূর্ণ অথবা এর এক্সটেনশনটি ভুল।",
        "duration-seconds": "$1 {{PLURAL:$1|সেকেন্ড|সেকেন্ড}}",
        "duration-minutes": "$1 {{PLURAL:$1|মিনিট|মিনিট}}",
-       "duration-hours": "$1 {{PLURAL:$1|à¦\98নà§\8dà¦\9fা|à¦\98ন্টা}}",
+       "duration-hours": "$1 {{PLURAL:$1|à¦\98ণ্টা}}",
        "duration-days": "$1 {{PLURAL:$1|দিন|দিন}}",
        "duration-weeks": "$1 {{PLURAL:$1|সপ্তাহ}}",
        "duration-years": "$1 {{PLURAL:$1|বছর|বছর}}",
index 48f4605..d7f080b 100644 (file)
        "vector-view-view": "Lenn",
        "vector-view-viewsource": "Sellet ouzh tarzh an destenn",
        "actions": "Oberoù",
+       "vector-more-actions": "Muioc'h",
        "namespaces": "Esaouennoù anv",
        "variants": "Adstummoù",
        "navigation-heading": "Lañser merdeiñ",
        "recentchanges-label-unpatrolled": "N'eo ket bet gwiriet ar c'hemm-mañ evit c'hoazh.",
        "recentchanges-label-plusminus": "Kemmet eo ment ar bajenn eus an niver-mañ a oktedoù",
        "recentchanges-legend-heading": "'''Alc'hwez :'''",
-       "recentchanges-legend-newpage": "(gwelet ivez [[Special:NewPages|roll ar pajennoù nevez]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (gwelet ivez [[Special:NewPages|roll ar pajennoù nevez]])",
        "rcnotefrom": "Setu aze roll ar c'hemmoù c'hoarvezet abaoe an <strong>$2</strong> (<strong>$1</strong> d'ar muiañ).",
        "rclistfrom": "Diskouez ar c'hemmoù diwezhañ abaoe an $3 $2",
        "rcshowhideminor": "$1 ar c'hemmoù dister",
index dabd1ca..db5235c 100644 (file)
        "recentchanges-label-unpatrolled": "Ova izmjena još nije patrolirana",
        "recentchanges-label-plusminus": "Veličina stranice promijenila se za ovoliko bajtova",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "(također pogledajte [[Special:NewPages|spisak novih stranica]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (također pogledajte [[Special:NewPages|spisak novih stranica]])",
        "rcnotefrom": "Ispod su izmjene od <strong>$2</strong> (do <strong>$1</strong> prikazano).",
        "rclistfrom": "Prikaži nove izmjene počev od $3 $2",
        "rcshowhideminor": "$1 male izmjene",
index 35c0489..951f810 100644 (file)
@@ -40,7 +40,8 @@
                        "XVEC",
                        "Àlex",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Calak"
                ]
        },
        "tog-underline": "Subratlla els enllaços:",
        "vector-view-view": "Mostra",
        "vector-view-viewsource": "Mostra el codi",
        "actions": "Accions",
+       "vector-more-actions": "Més",
        "namespaces": "Espais de noms",
        "variants": "Variants",
        "navigation-heading": "Menú de navegació",
        "powersearch-togglelabel": "Activar:",
        "powersearch-toggleall": "Tots",
        "powersearch-togglenone": "Cap",
+       "powersearch-remember": "Recorda la selecció en cerques futures",
        "search-external": "Cerca externa",
        "searchdisabled": "La cerca dins el projecte {{SITENAME}} està inhabilitada. Mentrestant, podeu cercar a través de Google, però tingueu en compte que la seua base de dades no estarà actualitzada.",
        "search-error": "S'ha produït un error durant la recerca: $1",
        "recentchanges-label-unpatrolled": "Aquesta modificació encara no s'ha patrullat",
        "recentchanges-label-plusminus": "La mida de la pàgina ha canviat aquest nombre de bytes",
        "recentchanges-legend-heading": "'''Llegenda:'''",
-       "recentchanges-legend-newpage": "(vegeu també la [[Special:NewPages|llista de pàgines noves]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vegeu també la [[Special:NewPages|llista de pàgines noves]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "A sota hi ha els canvis des de <strong>$2</strong> (es mostren fins <strong>$1</strong>).",
        "rclistfrom": "Mostra els canvis nous des de $3 $2",
        "watchnologin": "No heu iniciat la sessió",
        "addwatch": "Afegeix a llista de seguiment",
        "addedwatchtext": "S'ha afegit la pàgina \"[[:$1]]\" a la vostra [[Special:Watchlist|llista de seguiment]].\nS'hi mostraran els canvis futurs que tinguin lloc en aquesta pàgina i la corresponent discussió.",
+       "addedwatchtext-short": "S’ha afegit la pàgina «$1» a la vostra llista de seguiment.",
        "removewatch": "Treu de la llista de seguiment",
        "removedwatchtext": "S'ha tret la pàgina «[[:$1]]» de la vostra [[Special:Watchlist|llista de seguiment]].",
+       "removedwatchtext-short": "S’ha tret la pàgina «$1» de la vostra llista de seguiment.",
        "watch": "Vigila",
        "watchthispage": "Vigila aquesta pàgina",
        "unwatch": "Desatén",
index e1b1419..2bd08b1 100644 (file)
@@ -14,7 +14,7 @@
        "tog-hideminor": "Къайладаха кигийра нисдарш оц могӀама керла хийцамехь",
        "tog-hidepatrolled": "Къайладаха гӀаролладина нисдарш оц могӀама керла нисдаршкахь",
        "tog-newpageshidepatrolled": "Къайлаяха гӀароллайина агӀонаш оьцу могӀама керла агӀонашкахь",
-       "tog-extendwatchlist": "Шорбина тlехьажарна могlам, ша беригге а хийцамаш чубогlуш, тlяхьабина боцурш а",
+       "tog-extendwatchlist": "Шорбина тӀехьажарна могӀам, ша беригге а хийцамаш чубогӀуш, тӀехьаббина боцурш а",
        "tog-usenewrc": "Лелабе дика могӀам керла чу хийцамашна (оьшу JavaScript)",
        "tog-numberheadings": "Ша шех хlитто терахь корташна",
        "tog-showtoolbar": "Гайта лакхара гӀирсан дакъа нисйеш аттон оц тадар чохь (JavaScript)",
        "vector-view-view": "Éшар",
        "vector-view-viewsource": "Билглонашка хьажа",
        "actions": "Дийраш",
+       "vector-more-actions": "Кхин",
        "namespaces": "Цlерийн ана",
        "variants": "Кепараш",
        "navigation-heading": "Навигацин меню",
        "generic-pool-error": "Бехк цабиллар доьха, хӀинц сервер йоьттина ю.\nКаьчна дуккха дехарш хӀокху агӀонтӀе хьажарца.\nДехар до, собардеш а юха хьажа хӀокху агӀонтӀе жим тӀаьхьо.",
        "pool-timeout": "Блоктоха еза хан тӀех йаьлла",
        "pool-queuefull": "Дехаршан чоь юьззина ю",
-       "pool-errorunknown": "Дойзаш доцу гlалат",
+       "pool-errorunknown": "Дойзаш доцу гӀалат",
        "pool-servererror": "Пулан ларар тӀекхочучехь дац ($1).",
        "aboutsite": "{{grammar:genitive|{{SITENAME}}}} лаьцна",
        "aboutpage": "Project:Цуьнах лаьцна",
        "nosuchactiontext": "ДӀаязйина URL нийса яц.\nURL язъеш гӀалат даьлла хила мега.\nИза кхин {{SITENAME}} пороектехь гӀалат хила мега.",
        "nosuchspecialpage": "Иштта белхан агӀо яц",
        "nospecialpagetext": "<strong>Иштта белхан агӀо яц.</strong>\n\nБелхан агӀонашан могӀам: [[Special:SpecialPages|{{int:specialpages}}]].",
-       "error": "Гlалат",
-       "databaseerror": "Гlалат хаамийн бухера",
+       "error": "ГӀалат",
+       "databaseerror": "ГӀалат хаамийн бухера",
        "databaseerror-text": "Хаамийн базан гӀалат даьлла.\nИза хила мега программин гӀалат.",
        "databaseerror-textcl": "Хаамийн базан гӀалат даьлла.",
        "databaseerror-query": "Дехар: $1",
        "missingarticle-rev": "(верси № $1)",
        "missingarticle-diff": "(тейп тайпнара: $1, $2)",
        "readonly_lag": "Хаамашан базина цхьана хан блоктоьхна, хаамашан базан сервераш нисялца.",
-       "internalerror": "Чоьхьара гlалат",
-       "internalerror_info": "Чоьхьара гlалат: $1",
+       "internalerror": "Чоьхьара гӀалат",
+       "internalerror_info": "Чоьхьара гӀалат: $1",
        "filecopyerror": "Йиш яц копий ян «$1» оцунах «$2».",
        "filerenameerror": "Файлан «$1» цӀе хийца «$2» йиш яц.",
        "filedeleteerror": "ДӀаяккха цатарло файл «$1».",
        "createacct-benefit-body3": "{{PLURAL:$1|декъашхо|декъашхой}} тӀаьхьарчу хенахь",
        "badretype": "Ахьа язъен ишарш цхьатера яц",
        "userexists": "Ахьа язъен декъашхочун цӀе йолуш ю, дехар до кхин цӀе харжар.",
-       "loginerror": "Гlалат ду декъашхо вовзарехь/йовзарехь",
+       "loginerror": "ГӀалат ду декъашхо вовзарехь/йовзарехь",
        "createacct-error": "ДӀаяздар кхуллуш гӀалат ду",
        "createaccounterror": "Декъашхочун дӀаяздар кхолла йиш яц: $1",
        "nocookiesnew": "Декъашхочун дӀаяздар ду амма системин чохь вац/яц. Декъашхой чу гӀош {{SITENAME}} «cookies» лелош ю. Хьа «cookies» лелаян магийна дац дехар до и магийтина керлачу цӀарца а паролаца а системин чугӀо.",
        "accmailtitle": "Пароль дlаяхьийтина.",
        "accmailtext": "Пароль декъашхочуьна [[User talk:$1|$1]], йина ша шех хитта делла чу элпашах, дlаяхийтина хьокху $2 адрес тӀе.\n\nЧуваьлла/яла чул тӀехьа , кху гlирса чохь шуьга хийцалур ю ''[[Special:ChangePassword|шай пароль]]''.",
        "newarticle": "(Kерла)",
-       "newarticletext": "Хьо веана хьажоригци хlокху агlон тlе, хlара агlо хlинца йоцаш ю.\nНагахь иза кхолла лаахь, хlотта де лахо гуш долу корехь йоза (мадарра хьажа. [$1 гlон агlон чу]).\nНагахь гlалат даьлла нисвелляхь кхузе, атта тlе тlаlа йе '''юха йоккхуриг''' хьай гlирса тlяхь.",
+       "newarticletext": "Хьо веана хьажоригци хӀокху агӀон тӀе, хӀара агӀо хӀинца йоцаш ю.\nНагахь иза кхолла лаахь, хӀотта де лахо гуш долу корехь йоза (мадарра хьажа. [$1 гӀон агӀон чу]).\nНагахь гӀалат даьлла цахууш кхечехь кхузе, атта тӀе тӀаӀа йе '''юха йоккхуриг''' хьай гӀирса тӀехь.",
        "anontalkpagetext": "----''ХӀара дийцаре агӀо къайлаха декъашхочуьна ю, хӀинца дӀаяздар доцу, я лелош воцуш/йоцуш.\nЦундела иза вовзийта/йовзийта лелош ду терахьца IP-адрес.\nИза терахь долу меттиг хила мега кхечу декъашхойчух терра.\nНагахь хьо къайлах волу декъашхо валахь хьайна хаам кхаьчна аьлла хеташн, хьуна хьажийна доцуш, дехар до, кхолла хьай меттиг кху чохь[[Special:UserLogin/signup|дӀаяздар кхоллар]] я [[Special:UserLogin|системин чугӀо]],",
        "noarticletext": "Хlокх хан чохь кху агlонца йоза дац.\nШуьга далундерг [[Special:Search/{{PAGENAME}}|лахар ишта хьехош йолу цlе]] кхечу яззамашкахь,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} лахар кхечу тептаршкахь],\nйа '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} кхолла ишта цlе йолу агlо]'''</span>.",
        "noarticletext-nopermission": "ХӀокх хан чохь кху агӀонца йоза дац.\nШуьга далундерг [[Special:Search/{{PAGENAME}}|лахар ишта хьехош йолу цӀе]] кхечу яззамашкахь,\nйа <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} лаха оцуьнах терадерг кхечу тептаршкахь].</span>",
        "recentchanges-label-bot": "ХӀара нисдар шаболх бечо дина",
        "recentchanges-label-unpatrolled": "ХӀара нисдар хӀинца цхьано патрулировать дина дац",
        "recentchanges-label-plusminus": "байташкахь барам хийцар",
-       "recentchanges-legend-newpage": "(хьажа кхин [[Special:NewPages|керла агӀонийн могӀа]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (хьажа кхин [[Special:NewPages|керла агӀонийн могӀа]])",
        "rcnotefrom": "Лахахь гайтина тӀера <strong>$2</strong> (хийцамаш <strong>$1</strong> кӀезиг).",
        "rclistfrom": "Гайта хийцам оцу $3 $2",
        "rcshowhideminor": "$1 кегийра нисдарш",
        "statistics-views-total": "Массо хьажарш",
        "statistics-views-total-desc": "Ма лара дӀаяьхна а белхан а агӀонашка хьажар",
        "statistics-views-peredit": "Нисдаре хьажарш",
-       "statistics-users": "[[ВП:Дlаязвалар|Дlаязбелларш]] шаберигге декъашхой чохь болу [[Special:ListUsers|(могlам)]]",
+       "statistics-users": "[[ВП:ДӀаязвалар|ДӀаязбелларш]] берриге декъашхой чохь болу [[Special:ListUsers|(могӀам)]]",
        "statistics-users-active": "Жигара декъашхой",
        "statistics-users-active-desc": "Декъашхой, муьлха цхьа хӀум дина болу, кху {{PLURAL:$1|1=тӀаьххьара $1 динахь|тӀаьххьара $1 дийнахь}}",
        "statistics-mostpopular": "Дукху хьоьжу агӀонаш",
        "protectedpages-unknown-timestamp": "Хууш дац",
        "protectedpages-unknown-performer": "Хууш доцу декъашхо",
        "protectedtitles": "ГIаролла дина цIераш",
-       "listusers": "Декъашхой могlам",
+       "listusers": "Декъашхой могӀам",
        "listusers-editsonly": "Цхаъ мукъане а хийцам бина декъашхой гайта",
        "listusers-creationsort": "Кхоьллина хене хьаьжна нисъяр",
        "listusers-desc": "Харжа къезиг хиларца",
        "listusers-submit": "Гайта",
        "listusers-noresult": "Декъашхой цакарий.",
        "listusers-blocked": "(блоктоьхна)",
-       "activeusers": "Жигар декъашхой могlам",
+       "activeusers": "Жигар декъашхой могӀам",
        "activeusers-intro": "Лахахь гойтуш бу  {{PLURAL:$1|1=тӀаьхьара $1 динахь|тӀаьхьара $1 деношкахь}} хийцамаш бина декъашхой.",
        "activeusers-count": "{{PLURAL:$3|1=тӀаьхьарчу $3 динахь|тӀаьхьара $3 деношкахь}} $1 {{PLURAL:$1|1=нисдар|нисдарш}} дина",
        "activeusers-from": "Гучé баха декъашхой, болалуш болу тӀера:",
        "listgrouprights-group": "Тоба",
        "listgrouprights-rights": "Бакъонаш",
        "listgrouprights-helppage": "Help:Тобан бакъонаш",
-       "listgrouprights-members": "(тобан могlам)",
+       "listgrouprights-members": "(тобан могӀам)",
        "listgrouprights-addgroup": "{{PLURAL:$2|тоба|тобанаш}} тӀетоха ло: $1",
        "listgrouprights-removegroup": "{{PLURAL:$2|тобан чура дӀабаха|тобанаш чура дӀабаха}} ло: $1",
        "listgrouprights-addgroup-all": "массо тобанийн юкъатоха йиш ю",
        "tooltip-pt-mytalk": "Сан дийцаре агlо",
        "tooltip-pt-preferences": "Хьан гlирс нисбар",
        "tooltip-pt-watchlist": "Ахьа тергам бо агӀонийн хийцаман могӀам",
-       "tooltip-pt-mycontris": "Хьан нисдаран могlам",
+       "tooltip-pt-mycontris": "Хьан нисдаран могӀам",
        "tooltip-pt-login": "Хlокху гlирса чохь дlавазвала/яла мега, амма иза тlедожош дац.",
        "tooltip-pt-logout": "Дlадерзадо болх бар",
        "tooltip-ca-talk": "Дийцаре агlон чулацам",
        "tooltip-n-mainpage": "Коьрта агӀона дехьа гӀо",
        "tooltip-n-mainpage-description": "Коьрта агӀона дехьа гӀо",
        "tooltip-n-portal": "Оцу кхолламах, мичахь хlу йу лаьташ а хlудалур ду шуьга",
-       "tooltip-n-currentevents": "Дlаоьхуш болу хаамашна могlам",
-       "tooltip-n-recentchanges": "Тlаьххьаралера хийцаман могlам",
+       "tooltip-n-currentevents": "ДӀаоьхуш болу хаамашна могӀам",
+       "tooltip-n-recentchanges": "ТӀаьххьаралера хийцаман могӀам",
        "tooltip-n-randompage": "Хьажа цахууш нисйеллачу агlоне",
        "tooltip-n-help": "ГӀоде меттиг",
-       "tooltip-t-whatlinkshere": "Массо агlон могlам, хlокху агlонтlе хьажийна йолу",
+       "tooltip-t-whatlinkshere": "Массо агӀон могӀам, хӀокху агӀонтӀе хьажийна йолу",
        "tooltip-t-recentchangeslinked": "Тlаьхьарлера хийцамаш хlокху агlонашкахь, мичхьа хьажийна хlара агlо",
        "tooltip-feed-rss": "Хьагайтар оцу RSS цани хlокху агlон",
        "tooltip-feed-atom": "Хьагайтар оцу Atom цани хlокху агlон",
        "siteusers": "{{PLURAL:$2|1=декъашхо|декъашхой}} {{grammar:genitive|{{SITENAME}}}} $1",
        "anonusers": "{{PLURAL:$2|1=цӀе хьулйина декъашхо|цӀе хьулйина декъашхой}} {{grammar:genitive|{{SITENAME}}}} $1",
        "creditspage": "Баркаллаш",
-       "nocredits": "Бац декъашхойн могlам хlокху яззамца",
+       "nocredits": "Бац декъашхойн могӀам хӀокху яззамца",
        "spamprotectiontitle": "Совбиларна литтар",
        "spamprotectiontext": "Хьо дӀаязъян гӀерта агӀо спам-литтаро дӀакъоьвлина.\nЦуна бахьна хила там бу агӀона чохь зулам литтаран чутоьхна йолу хьажораг хилар.",
        "spambot_username": "Спам дӀацӀаняр",
        "pageinfo-category-pages": "АгӀонийн дукхалла",
        "pageinfo-category-subcats": "Бухара категорийн дукхалла",
        "pageinfo-category-files": "Файлийн дукхалла",
-       "skinname-vector": "Ð\92екÑ\82оÑ\80ни",
+       "skinname-vector": "Ð\92екÑ\82оÑ\80ан",
        "markaspatrolleddiff": "Билгалйе теллина санна",
        "markaspatrolledtext": "Билгала йе хӀара агӀо хьаьжна сана",
        "markedaspatrolled": "ДӀадахка теллина санна хилар",
        "watchlistedit-too-many": "Кхуззахь гайта тӀехь дукха агӀонаш ю.",
        "watchlisttools-clear": "Тергаман могӀам дӀацӀанбан",
        "watchlisttools-view": "МогӀам чура агӀонашан хийцамаш",
-       "watchlisttools-edit": "Хьажа/нисбé могlам",
+       "watchlisttools-edit": "Хьажа/нисбé могӀам",
        "watchlisttools-raw": "Йоза санна нисдé",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|дийцаре]])",
        "version": "Верси MediaWiki",
index 9e5748a..12e7239 100644 (file)
        "vector-view-view": "بیخوێنەوە",
        "vector-view-viewsource": "سەرچاوەکەی ببینە",
        "actions": "کردەوەکان",
+       "vector-more-actions": "زیاتر",
        "namespaces": "شوێنناوەکان",
        "variants": "شێوەزارەکان",
        "navigation-heading": "مێنۆی ڕێدۆزی",
        "recentchanges-label-unpatrolled": "ئەم دەستکارییە ھێشتا پاس نەدراوە",
        "recentchanges-label-plusminus": "قەبارەی پەڕە ئەوەندە بایت گۆڕاوە",
        "recentchanges-legend-heading": "'''کورتکراوەکان:'''",
-       "recentchanges-legend-newpage": "(ھەروەھا بڕوانە [[Special:NewPages|پێرستی پەڕە نوێکان]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ھەروەھا بڕوانە [[Special:NewPages|پێرستی پەڕە نوێکان]])",
        "recentchanges-legend-plusminus": "(''±۱٢٣'')",
        "rcnotefrom": "ژێرەوە گۆڕانکارییەکانە لە <strong>$2</strong>ەوە (ھەتا <strong>$1</strong> نیشان دراوە).",
        "rclistfrom": "گۆڕانکارییە نوێکان نیشان بدە بە دەستپێکردن لە $3 $2",
index 3c328ec..7d74d59 100644 (file)
        "recentchanges-label-bot": "Sta mudifica hè stata effettuata da un botu",
        "recentchanges-label-unpatrolled": "Sta mudifica ùn hè ancu stata verificata",
        "recentchanges-label-plusminus": "A dimensione di a pagina hè stata cambiata di 'ssu numaru d'ottetti",
-       "recentchanges-legend-newpage": "(vede ancu [[Special:NewPages|a lista di e pagine nove]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vede ancu [[Special:NewPages|a lista di e pagine nove]])",
        "rcnotefrom": "Quì seguitanu e mudifiche dapoi u '''$2''' ('''$1''' à u massimu).",
        "rclistfrom": "Mustrà e mudifiche dapoi u $3 $2",
        "rcshowhideminor": "$1 i cambiamenti minori",
index ba9a538..9e627a8 100644 (file)
        "recentchanges-label-minor": "Бу, кичик бир денъиштирме",
        "recentchanges-label-bot": "Бу бир ботнынъ япкъан денъиштирмеси",
        "recentchanges-label-unpatrolled": "Бу денъиштирме аля даа тешкерильмеген",
-       "recentchanges-legend-newpage": "([[Special:NewPages|янъы саифелер джедвелине]] де бакъынъыз)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|янъы саифелер джедвелине]] де бакъынъыз)",
        "rcnotefrom": "'''$2''' тарихындан итибарен япылгъан денъиштирмелер ашагъыдадыр (энъ чокъ '''$1''' дане саифе косьтериле).",
        "rclistfrom": "$3 $2 тарихындан берли япылгъан денъиштирмелерни косьтер",
        "rcshowhideminor": "кичик денъиштирмелерни $1",
index 940e4d7..b607567 100644 (file)
        "recentchanges-label-minor": "Bu, kiçik bir deñiştirme",
        "recentchanges-label-bot": "Bu bir botnıñ yapqan deñiştirmesi",
        "recentchanges-label-unpatrolled": "Bu deñiştirme alâ daa teşkerilmegen",
-       "recentchanges-legend-newpage": "([[Special:NewPages|yañı saifeler cedveline]] de baqıñız)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|yañı saifeler cedveline]] de baqıñız)",
        "rcnotefrom": "'''$2''' tarihından itibaren yapılğan deñiştirmeler aşağıdadır (eñ çоq '''$1''' dane saife kösterile).",
        "rclistfrom": "$3 $2 tarihından berli yapılğan deñiştirmelerni köster",
        "rcshowhideminor": "kiçik deñiştirmelerni $1",
index ff48881..26fa002 100644 (file)
        "recentchanges-label-unpatrolled": "Tato změna dosud nebyla prověřena",
        "recentchanges-label-plusminus": "Velikost stránky se změnila o tolik bajtů",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "(vizte též [[Special:NewPages|seznam nových stránek]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vizte též [[Special:NewPages|seznam nových stránek]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Níže jsou změny od <strong>$2</strong> ({{PLURAL:$1|zobrazena|zobrazeny|zobrazeno}} nejvýše <strong>$1</strong>).",
        "rclistfrom": "Ukázat nové změny, počínaje od $2, $3",
        "wantedtemplates": "Chybějící šablony",
        "mostlinked": "Nejodkazovanější stránky",
        "mostlinkedcategories": "Nejpoužívanější kategorie",
-       "mostlinkedtemplates": "Nejvkládanější šablony",
+       "mostlinkedtemplates": "Nejvkládanější stránky",
        "mostcategories": "Stránky s nejvyšším počtem kategorií",
        "mostimages": "Nejpoužívanější soubory",
        "mostinterwikis": "Stránky s nejvyšším počtem mezijazykových odkazů",
index 1c51611..b52336a 100644 (file)
        "recentchanges-label-unpatrolled": "Nid yw'r golygiad hwn wedi derbyn ymweliad patrôl eto",
        "recentchanges-label-plusminus": "Newidiodd maint y dudalen o'r nifer hwn o feitiau",
        "recentchanges-legend-heading": "'''Allwedd:'''",
-       "recentchanges-legend-newpage": "(gweler hefyd [[Special:NewPages|restr y tudalennau newydd]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (gweler hefyd [[Special:NewPages|restr y tudalennau newydd]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Isod rhestrir pob newid er <strong>'''$2'''</strong> (ymddengys hyd at <strong>'''$1'''</strong> ohonynt).",
        "rclistfrom": "Dangos newidiadau newydd, gan ddechrau ers $3 $2",
index f4749fb..734139d 100644 (file)
        "searchmenu-exists": "'''Der er en side med navnet \"[[:$1]]\" på denne wiki'''",
        "searchmenu-new": "<strong>Opret siden \"[[:$1]]\" på denne wiki!</strong> {{PLURAL:$2|0=|Se også siden der blev fundet for din søgning.|Se også de søgeresultater der blev fundet.}}",
        "searchprofile-articles": "Indholdssider",
-       "searchprofile-project": "Hjælpe- og projektsider",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Alt",
        "searchprofile-advanced": "Avanceret",
        "searchprofile-articles-tooltip": "Søg i $1",
-       "searchprofile-project-tooltip": "Søg i $1",
        "searchprofile-images-tooltip": "Søg efter filer",
        "searchprofile-everything-tooltip": "Søg i alt indhold (inklusive diskussionssider)",
        "searchprofile-advanced-tooltip": "Søg i bestemte navnerum",
        "search-interwiki-default": "Resultater fra $1:",
        "search-interwiki-more": "(mere)",
        "search-relatedarticle": "Relateret",
-       "searcheverything-enable": "Søg i alle navnerum",
        "searchrelated": "relateret",
        "searchall": "alle",
        "showingresults": "Nedenfor vises <b>$1</b> {{PLURAL:$1|resultat|resultater}} startende med nummer <b>$2</b>.",
        "allowemail": "Tillad e-mail fra andre brugere",
        "prefs-searchoptions": "Søg",
        "prefs-namespaces": "Navnerum",
-       "defaultns": "Ellers søg i disse navnerum:",
        "default": "standard",
        "prefs-files": "Filer",
        "prefs-custom-css": "Personlig CSS",
        "prefs-emailconfirm-label": "Bekræftelse af e-mail:",
        "youremail": "Din e-mailadresse:",
        "username": "{{GENDER:$1|Brugernavn}}:",
-       "uid": "{{GENDER:$1|Brugernummer}}:",
        "prefs-memberingroups": "{{GENDER:$2|Medlem}} af {{PLURAL:$1|gruppen|grupperne}}:",
        "prefs-registration": "Registreringstidspunkt:",
        "yourrealname": "Dit rigtige navn:",
        "recentchanges-label-unpatrolled": "Denne redigering er endnu ikke blevet patruljeret",
        "recentchanges-label-plusminus": "Størrelsen på siden blev ændret med dette antal bytes",
        "recentchanges-legend-heading": "'''Forklaring:'''",
-       "recentchanges-legend-newpage": "(se også [[Special:NewPages|listen over nye sider]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (se også [[Special:NewPages|listen over nye sider]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Nedenfor er op til '''$1''' ændringer siden '''$2''' vist.",
        "rclistfrom": "Vis nye ændringer startende fra $3 $2",
        "log-title-wildcard": "Søg i titler som begynder med teksten",
        "showhideselectedlogentries": "Vis/skjul de markerede loghændelser",
        "allpages": "Alle sider",
-       "alphaindexline": "$1 til $2",
        "nextpage": "Næste side ($1)",
        "prevpage": "Forrige side ($1)",
        "allpagesfrom": "Vis sider fra og med:",
        "pageinfo-category-pages": "Antal sider",
        "pageinfo-category-subcats": "Antal underkategorier",
        "pageinfo-category-files": "Antal filer",
-       "skinname-cologneblue": "Kølnerblå",
        "skinname-monobook": "MonoBook",
-       "skinname-modern": "Moderne",
        "markaspatrolleddiff": "Markér som patruljeret",
        "markaspatrolledtext": "Markér denne side som patruljeret",
        "markedaspatrolled": "Markeret som patruljeret",
index 5c1d35b..43b4c77 100644 (file)
        "recentchanges-label-unpatrolled": "Nicht-kontrollierte Änderung",
        "recentchanges-label-plusminus": "Die Änderung der Seitengröße in Bytes",
        "recentchanges-legend-heading": "'''Legende:'''",
-       "recentchanges-legend-newpage": "(siehe auch die [[Special:NewPages|Liste neuer Seiten]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (siehe auch die [[Special:NewPages|Liste neuer Seiten]])",
        "recentchanges-legend-plusminus": "''(±123)''",
        "rcnotefrom": "Angezeigt werden die Änderungen seit <strong>$2</strong> (max. <strong>$1</strong> Einträge).",
        "rclistfrom": "Nur Änderungen seit $3, $2 Uhr zeigen.",
        "wantedtemplates": "Gewünschte Vorlagen",
        "mostlinked": "Seiten mit den meisten Links",
        "mostlinkedcategories": "Meistbenutzte Kategorien",
-       "mostlinkedtemplates": "Meistbenutzte Vorlagen",
+       "mostlinkedtemplates": "Meisteingebundene Seiten",
        "mostcategories": "Seiten mit den meisten Kategorien",
        "mostimages": "Meistbenutzte Dateien",
        "mostinterwikis": "Seiten mit den meisten Interwikilinks",
index 62a1421..24aecc3 100644 (file)
@@ -19,7 +19,8 @@
                        "Xoser",
                        "Geitost",
                        "Microchip08",
-                       "아라"
+                       "아라",
+                       "Calak"
                ]
        },
        "tog-underline": "Bınê gırey de xete bance:",
        "vector-view-view": "Bıwane",
        "vector-view-viewsource": "Çımey bıvêne",
        "actions": "Hereketi",
+       "vector-more-actions": "Zêde",
        "namespaces": "Heruna naman",
        "variants": "Varyanti",
        "navigation-heading": "Menuyê navigasyoni",
        "recentchanges-label-unpatrolled": "Eno vurnayış hewna dewriya nêbiyo",
        "recentchanges-label-plusminus": "Ebadê pele de bazê bayti de vayeyê cı",
        "recentchanges-legend-heading": "'''Kıtabek:'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|Lista pelanê neweyan]] zi bıvêne)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|Lista pelanê neweyan]] zi bıvêne)",
        "recentchanges-legend-plusminus": "''(±123)''",
        "rcnotefrom": "Cêr de <strong>$2</strong> ra nata vurnayışiyê asenê (tewr vêşi <strong>$1</strong> asenê).",
        "rclistfrom": "$3 $2 ra tepiya vurnayışanê neweyan bımocne",
index 0756701..671f9b4 100644 (file)
        "currentrev": "Aktualna wersija",
        "currentrev-asof": "Aktualna wersija wót $1",
        "revisionasof": "Wersija z $1",
-       "revision-info": "Wersija z $1 wót wužywarja $2",
+       "revision-info": "Wersija z $1 wót wužywarja {{GENDER:$6|$2}}$7",
        "previousrevision": "← Zachadna rewizija",
        "nextrevision": "Pśiduca wersija →",
        "currentrevisionlink": "Aktualna wersija",
        "searchmenu-exists": "'''Jo bok z mjenim \"[[$1]]\" na toś tom wikiju'''",
        "searchmenu-new": "<strong>Napóraj bok \"[[:$1]]\" na toś tom wikiju!</strong> {{PLURAL:$2|0=|Glej teke bok namakany z twójim pytanim.|Glej teke namakane pytańske wuslědki.}}",
        "searchprofile-articles": "Wopśimjeśowe boki",
-       "searchprofile-project": "Pomoc a projektowe boki",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Wšykno",
        "searchprofile-advanced": "Rozšyrjony",
        "searchprofile-articles-tooltip": "W $1 pytaś",
-       "searchprofile-project-tooltip": "W $1 pytaś",
        "searchprofile-images-tooltip": "Za datajami pytaś",
        "searchprofile-everything-tooltip": "Cełe wopsímjeśe pśepytaś (inkluziwnje diskusijne boki)",
        "searchprofile-advanced-tooltip": "W swójskich mjenjowych rumach pytaś",
        "search-interwiki-default": "Wuslědki z $1:",
        "search-interwiki-more": "(wěcej)",
        "search-relatedarticle": "swójźbne",
-       "searcheverything-enable": "We wšych mjenjowych rumach pytaś",
        "searchrelated": "swójźbne",
        "searchall": "wše",
        "showingresults": "How {{PLURAL:|jo '''1''' wuslědk|stej '''$1''' wuslědka|su '''$1''' wuslědki}} wót cysła '''$2'''.",
        "allowemail": "Dostawanje e-mailow drugich wužywarjow zmóžniś.",
        "prefs-searchoptions": "Pytaś",
        "prefs-namespaces": "Mjenjowe rumy",
-       "defaultns": "Howac w toś tych mjenjowych rumach pytaś:",
        "default": "Standard",
        "prefs-files": "Dataje",
        "prefs-custom-css": "Swójski CSS",
        "recentchanges-label-unpatrolled": "Toś ta změna hyšći njejo se pśekontrolěrowała",
        "recentchanges-label-plusminus": "Změnjona wjelikosc boka (licba bajtow)",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "(glej teke [[Special:NewPages|lisćinu nowych bokow]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (glej teke [[Special:NewPages|lisćinu nowych bokow]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Dołojce pokazuju se změny wót <strong>$2</strong> (maks. <strong>$1</strong> zapisow).",
        "rclistfrom": "Nowe změny wót $3 $2 pokazaś",
        "wantedtemplates": "Brachujuce pśedłogi",
        "mostlinked": "Nejcesćej zalinkowane boki",
        "mostlinkedcategories": "Nejcesćej wužywane kategorije",
-       "mostlinkedtemplates": "Nejcesćej wužywane psedłogi",
+       "mostlinkedtemplates": "Nejcesćej zapśěgnjone boki",
        "mostcategories": "Boki z nejwěcej kategorijami",
        "mostimages": "Nejcesćej wótkazane dataje",
        "mostinterwikis": "Boki z nejwěcej mjazyrěcnymi wótkazami",
        "pageinfo-category-pages": "Licba bokow",
        "pageinfo-category-subcats": "Licba pódkategorijow",
        "pageinfo-category-files": "Licba datajow",
-       "skinname-cologneblue": "Kölnski Módry",
        "skinname-monobook": "MonoBook",
-       "skinname-modern": "Moderny",
        "markaspatrolleddiff": "Ako kontrolěrowane markěrowaś",
        "markaspatrolledtext": "Markěruj toś ten bok ako kontrolěrowany",
        "markedaspatrolled": "jo se ako kontrolěrowany markěrował",
index b50697d..27f7929 100644 (file)
        "vector-view-view": "Lēş",
        "vector-view-viewsource": "Guêrda la surzéia",
        "actions": "Asiòun",
+       "vector-more-actions": "Êter",
        "namespaces": "Spâsi di nòm",
        "variants": "Mudéfichi",
        "navigation-heading": "Lésta 'd navigasiòun",
        "showhideselectedversions": "Fà vèder/lōga versiòun sernîdi",
        "editundo": "scanşèla",
        "diff-empty": "(Nisóna diferèinsa)",
+       "diff-multi-sameuser": "({{PLURAL:$1|'Na versiòun ed mèz|$1 versiòun ed mèz }} 'd un stès uitèint în mìa mustrêdi)",
+       "diff-multi-otherusers": "({{PLURAL:$1|'Na versiòun ed mèz|$1 versiòun ed mèz }} ed {{PLURAL:$2|'n êter utèint|$2 utèint}} mìa fâti vèder)",
+       "diff-multi-manyusers": "({{PLURAL:$1|'Na versiòun ed mèz|$1 versiòun ed mèz }} pió in là ed $2{{PLURAL:$2|utèint}} mìa {{PLURAL:$1|mustrêda|mustrêdi}})",
+       "difference-missing-revision": "{{PLURAL:$2|'Na versiòun|$2 versiòun}} ed cla diferèinsa ché ($1) {{PLURAL:$2|an n'é mìa stêda catêda|în mìa stêdi catêdi}}. \n\nCòst a sucēd ed sôlit quând a's và adrē a un colegamèint vèc ed 'na diff a 'na pàgina scanşlêda. I particulêr a pōlen èser catê int al [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} regéster dal scanşladûri].",
        "searchresults": "Rişultê 'd la sērca",
        "searchresults-title": "Rişultê 'd la sērca ed \"$1\"",
+       "toomanymatches": "Trôpi relasiòun. Cambiêr la dmânda.",
+       "titlematches": "Rapôrt int al tétol dal pàgini",
+       "textmatches": "Rapôrt int al tèst dal pàgini",
+       "notextmatches": "Nisóna relasiòun int al tèst dal pàgini",
        "prevn": "{{PLURAL:$1|còl préma|quî préma $1}}",
        "nextn": "{{PLURAL:$1|al seguèint|i seguèint $1}}",
        "prevn-title": "{{PLURAL:$1|Al rişultêt ed préma|$1 i rişultêt ed préma}}",
        "searchprofile-advanced-tooltip": "Sērca int i spâsi di nòm fât só mzûra.",
        "search-result-size": "$1 ({{PLURAL:$2|'na parôla|$2 parôli}})",
        "search-result-category-size": "{{PLURAL:$1|1 utèint|$1 utèint}} ({{PLURAL:$2|1 sotcategoréia|$2 sotcategoréi}},{{PLURAL:$3|1 file|$3 files}})",
+       "search-result-score": "Impurtânsa: $1%",
        "search-redirect": "(redirect $1)",
        "search-section": "(sesiòun $1)",
        "search-suggest": "Fōrsi 't serchêv $1",
index a3fe77c..b6eebbc 100644 (file)
@@ -36,7 +36,8 @@
                        "Περίεργος",
                        "לערי ריינהארט",
                        "Kolega2357",
-                       "아라"
+                       "아라",
+                       "Calak"
                ]
        },
        "tog-underline": "Υπογράμμιση συνδέσμων:",
        "vector-view-view": "Ανάγνωση",
        "vector-view-viewsource": "Προβολή κώδικα",
        "actions": "Ενέργειες",
+       "vector-more-actions": "Περισσότερα",
        "namespaces": "Χώροι ονομάτων",
        "variants": "Παραλλαγές",
        "navigation-heading": "Μενού πλοήγησης",
        "recentchanges-label-unpatrolled": "Αυτή η επεξεργασία δεν έχει ελεγχθεί ακόμα",
        "recentchanges-label-plusminus": "Μεταβολή του μεγέθους της σελίδας σε bytes",
        "recentchanges-legend-heading": "'''Υπόμνημα:'''",
-       "recentchanges-legend-newpage": "(δείτε [[Special:NewPages|Νέες σελίδες]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (δείτε [[Special:NewPages|Νέες σελίδες]])",
        "rcnotefrom": "Παρακάτω είναι οι αλλαγές από τις <strong>$2</strong>  (εμφανίζονται μέχρι <strong>$1</strong> ).",
        "rclistfrom": "Εμφάνιση νέων αλλαγών αρχίζοντας από $3 $2",
        "rcshowhideminor": "$1 μικροεπεξεργασιών",
index df4a05f..14b6b66 100644 (file)
        "recentchanges-label-unpatrolled": "This edit has not yet been patrolled",
        "recentchanges-label-plusminus": "The page size changed by this number of bytes",
        "recentchanges-legend-heading": "'''Legend:'''",
-       "recentchanges-legend-newpage": "(also see [[Special:NewPages|list of new pages]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (also see [[Special:NewPages|list of new pages]])",
+       "recentchanges-legend-minor": "{{int:recentchanges-label-minor}}",
+       "recentchanges-legend-bot": "{{int:recentchanges-label-bot}}",
+       "recentchanges-legend-unpatrolled": "{{int:recentchanges-label-unpatrolled}}",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "rcnotefrom": "Below are the changes since <strong>$2</strong> (up to <strong>$1</strong> shown).",
        "rclistfrom": "Show new changes starting from $2, $3",
        "largefileserver": "This file is bigger than the server is configured to allow.",
        "emptyfile": "The file you uploaded seems to be empty.\nThis might be due to a typo in the filename.\nPlease check whether you really want to upload this file.",
        "windows-nonascii-filename": "This wiki does not support filenames with special characters.",
-       "fileexists": "A file with this name exists already, please check <strong>[[:$1]]</strong> if you are not sure if you want to change it.\n[[$1|thumb]]",
+       "fileexists": "A file with this name exists already, please check <strong>[[:$1]]</strong> if {{GENDER:|you}} are not sure if you want to change it.\n[[$1|thumb]]",
        "filepageexists": "The description page for this file has already been created at <strong>[[:$1]]</strong>, but no file with this name currently exists.\nThe summary you enter will not appear on the description page.\nTo make your summary appear there, you will need to manually edit it.\n[[$1|thumb]]",
        "fileexists-extension": "A file with a similar name exists: [[$2|thumb]]\n* Name of the uploading file: <strong>[[:$1]]</strong>\n* Name of the existing file: <strong>[[:$2]]</strong>\nPlease choose a different name.",
        "fileexists-thumbnail-yes": "The file seems to be an image of reduced size <em>(thumbnail)</em>.\n[[$1|thumb]]\nPlease check the file <strong>[[:$1]]</strong>.\nIf the checked file is the same image of original size it is not necessary to upload an extra thumbnail.",
        "mostlinked-summary": "",
        "mostlinkedcategories": "Most linked-to categories",
        "mostlinkedcategories-summary": "",
-       "mostlinkedtemplates": "Most linked-to templates",
+       "mostlinkedtemplates": "Most transcluded pages",
        "mostlinkedtemplates-summary": "",
        "mostcategories": "Pages with the most categories",
        "mostcategories-summary": "",
index dd696b5..0d6d4e2 100644 (file)
        "vector-view-view": "Legi",
        "vector-view-viewsource": "Vidi fonton",
        "actions": "Agoj",
+       "vector-more-actions": "Pli",
        "namespaces": "Nomspacoj",
        "variants": "Variantoj",
        "navigation-heading": "Navigacia menuo",
        "permalink": "Konstanta ligilo",
        "print": "Printi",
        "view": "Vidi",
+       "view-foreign": "Rigardi en $1",
        "edit": "Redakti",
        "edit-local": "Redakti lokan priskribon",
        "create": "Krei",
        "searchmenu-exists": "'''Estas paĝo nomita \"[[:$1]]\" en ĉi tiu vikio'''",
        "searchmenu-new": "<strong>Krei la paĝon \"[[:$1]]\" en ĉi tiu vikio!</strong>{{PLURAL:$2|0=|Vidu ankaŭ la paĝon trovitan per via serĉo.|Vidu ankaŭ la trovitajn serĉrezultojn.}}",
        "searchprofile-articles": "Enhavaj paĝoj",
-       "searchprofile-project": "Paĝoj pri Helpo kaj Projektoj",
        "searchprofile-images": "Plurmedio",
        "searchprofile-everything": "Ĉio",
        "searchprofile-advanced": "Progresa",
        "searchprofile-articles-tooltip": "Serĉo en $1",
-       "searchprofile-project-tooltip": "Serĉo en $1",
        "searchprofile-images-tooltip": "Serĉi dosierojn",
        "searchprofile-everything-tooltip": "Traserĉi ĉiun enhavon (inkluzivante diskuto-paĝojn)",
        "searchprofile-advanced-tooltip": "Serĉi en specialaj nomspacoj",
        "search-interwiki-default": "Rezultoj de $1:",
        "search-interwiki-more": "(plu)",
        "search-relatedarticle": "Relataj",
-       "searcheverything-enable": "Traserĉi ĉiujn nomspacojn",
        "searchrelated": "rilataj",
        "searchall": "ĉiuj",
        "showingresults": "Montras {{PLURAL:$1|'''1''' trovitan|'''$1''' trovitajn}} ekde la #'''$2'''-a.",
        "allowemail": "Rajtigi retmesaĝojn de aliaj uzantoj",
        "prefs-searchoptions": "Serĉi",
        "prefs-namespaces": "Nomspacoj",
-       "defaultns": "Alimaniere, traserĉi la jenajn nomspacojn:",
        "default": "defaŭlte",
        "prefs-files": "Dosieroj",
        "prefs-custom-css": "Propra CSS",
        "prefs-emailconfirm-label": "Retpoŝta konfirmado:",
        "youremail": "Retadreso:",
        "username": "{{GENDER:$1|Salutnomo}}:",
-       "uid": "{{GENDER:$1|Uzanto}}-identaĵo:",
        "prefs-memberingroups": "{{GENDER:$2|Ano}} de {{PLURAL:$1|grupo|grupoj}}:",
        "prefs-registration": "Tempo de registrado:",
        "yourrealname": "Vera nomo:",
        "right-move": "Movi paĝojn",
        "right-move-subpages": "Alinomigi paĝojn kun ĝiaj subpaĝoj",
        "right-move-rootuserpages": "Movi radikajn uzanto-paĝojn",
+       "right-move-categorypages": "Alinomigi kategoriajn paĝojn",
        "right-movefile": "Alinomigi dosierojn",
        "right-suppressredirect": "Ne krei alidirektilon de la malnova nomo kiam movante paĝon",
        "right-upload": "Alŝuti dosierojn",
        "action-createpage": "krei paĝojn",
        "action-createtalk": "krei diskuto-paĝojn",
        "action-createaccount": "krei ĉi tiun uzanto-konton",
+       "action-history": "rigardi historion de tiu ĉi paĝo",
        "action-minoredit": "marki ĉi tiun redakton eta",
        "action-move": "movi ĉi tiun paĝon",
        "action-move-subpages": "movi ĉi tiun paĝon, kaj ties subpaĝojn",
        "action-move-rootuserpages": "movi radikajn uzanto-paĝojn",
+       "action-move-categorypages": "alinomigi kategoriajn paĝojn",
        "action-movefile": "alinomigi ĉi tiun dosieron",
        "action-upload": "alŝuti ĉi tiun dosieron",
        "action-reupload": "anstataŭigi ĉi tiun ekzistantan dosieron",
        "recentchanges-label-unpatrolled": "Ĉi tiu redakto ne jam estis patrolata.",
        "recentchanges-label-plusminus": "La paĝa grandeco ŝanĝiĝis je ĉi tiu nombro de bajtoj",
        "recentchanges-legend-heading": "'''Klarigo:'''",
-       "recentchanges-legend-newpage": "(vidu ankaŭ [[Special:NewPages|liston de novaj paĝoj]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vidu ankaŭ [[Special:NewPages|liston de novaj paĝoj]])",
        "rcnotefrom": "Malsupre estas ŝanĝoj ekde <strong>$2</strong> ({{PLURAL:$1|lasta|lastaj}} <strong>$1</strong>).",
        "rclistfrom": "Montri novajn ŝanĝojn ekde \"$3 $2\"",
        "rcshowhideminor": "$1 redaktetojn",
        "pageswithprop-prophidden-binary": "duuma trajta valoro kaŝita ($1)",
        "doubleredirects": "Duoblaj alidirektadoj",
        "doubleredirectstext": "Ĉi tiu paĝo montras paĝojn kiuj alidirektas al aliaj alidirektiloj.\nĈiu vico enhavas ligilojn ĉe la unua kaj dua alidirektadoj, kaj la unua linio de la dua alidirektado, kiu ĝenerale montras la \"veran\" celpaĝon, kiu celu la unuan alidirektadon.\n<del>Forstrekitaj</del> listeroj estis riparitaj.",
-       "double-redirect-fixed-move": "[[$1]] estis alinomita; ĝi nun alidirektas al [[$2]]",
+       "double-redirect-fixed-move": "[[$1]] estis alinomigita. Ĝi estis ĝisdatigita kaj nun ĝi alidirektas al [[$2]].",
        "double-redirect-fixed-maintenance": "Riparas duoblan alidirektilon de [[$1]] al [[$2]].",
        "double-redirect-fixer": "Alidirektila riparilo",
        "brokenredirects": "Rompitaj alidirektadoj",
        "wantedtemplates": "Dezirataj ŝablonoj",
        "mostlinked": "Plej ligitaj paĝoj",
        "mostlinkedcategories": "Plej ligitaj kategorioj",
-       "mostlinkedtemplates": "Plej ligitaj ŝablonoj",
+       "mostlinkedtemplates": "Plej transkludataj paĝoj",
        "mostcategories": "Artikoloj kun la plej multaj kategorioj",
        "mostimages": "Plej ligitaj bildoj",
        "mostinterwikis": "Artikoloj kun la plej multaj interlingvaj ligiloj",
        "log-title-wildcard": "Serĉi titolojn komencantajn kun ĉi tiu teksto",
        "showhideselectedlogentries": "Montri/kaŝi elektitajn protokolerojn",
        "allpages": "Ĉiuj paĝoj",
-       "alphaindexline": "$1 ĝis $2",
        "nextpage": "Sekvanta paĝo ($1)",
        "prevpage": "Antaŭa paĝo ($1)",
        "allpagesfrom": "Montri paĝojn ekde:",
        "unwatchthispage": "Malatenti paĝon",
        "notanarticle": "Ne estas artikolo",
        "notvisiblerev": "Versio estis forigita",
-       "watchlist-details": "{{PLURAL:$1|$1 paĝon|$1 paĝojn}} en via atentaro, krom diskutpaĝoj.",
+       "watchlist-details": "{{PLURAL:$1|$1 paĝo|$1 paĝoj}} en via atentaro, ne aparte kalkulante diskutpaĝojn.",
        "wlheader-enotif": "Retpoŝta sciigo estas ŝalta.",
        "wlheader-showupdated": "Paĝoj montriĝis per '''dikaj literoj''' kiuj estis ŝanĝitaj ekde vi laste vizitis.",
        "wlnote2": "Malsupre estas la ŝanĝoj en la {{PLURAL:$1|lasta horo|lastaj <strong>$1</strong> horoj}}, ekde $2, $3.",
        "contributions-title": "Kontribuoj de uzanto $1",
        "mycontris": "Kontribuoj",
        "contribsub2": "De {{GENDER:$3|$1}} ($2)",
+       "contributions-userdoesnotexist": "Uzanto-konto \"$1\" ne estas registrita.",
        "nocontribs": "Trovis neniajn redaktojn laŭ tiu kriterio.",
        "uctop": " (aktuala)",
        "month": "Ekde monato (kaj pli frue):",
        "tooltip-summary": "Enigu mallongan resumon",
        "interlanguage-link-title": "$1 — $2",
        "common.css": "/* La jena CSS influos la aspekton de ĉiaj temoj. */",
-       "cologneblue.css": "/* La jena CSS influos la paĝaspekton por uzantoj de la Kolonja Blua temo. */",
        "monobook.css": "/* La jena CSS influos la paĝaspekton por uzantoj de la Libreja temo. */",
-       "modern.css": "/* La jena CSS influos la paĝaspekton por uzantoj de la Moderna temo. */",
        "vector.css": "/* La jena CSS influos la paĝaspekton por uzantoj de la Vektora temo. */",
        "print.css": "/* La jena CSS influos la prezentadon de la presaĵo. */",
        "noscript.css": "/* La jena CSS influos uzantojn, kiuj desebligis Ĝavaskripton. */",
        "group-sysop.css": "/* La jena CSS sole influos administrantojn. */",
        "group-bureaucrat.css": "/* La jena CSS sole influos burokratojn. */",
        "common.js": "/* La jena Ĝavaskripto ŝargiĝos por ĉiaj uzantoj ĉe ĉiu paĝoŝargado. */",
-       "cologneblue.js": "/* La jena Ĝavaskripto ŝargiĝos por uzantoj de la Kolonja Blua temo. */",
        "monobook.js": "/* La jena Ĝavaskripto ŝargiĝos por uzantoj de la Libreja temo. */",
-       "modern.js": "/* La jena Ĝavaskripto ŝargiĝos por uzantoj de la Moderna temo. */",
        "vector.js": "/* La jena Ĝavaskripto ŝargiĝos por uzantoj de la Vektora temo. */",
        "group-autoconfirmed.js": "/* La jena Ĝavaskripto sole ŝargiĝos por auxtokonfirmataj uzantoj. */",
        "group-bot.js": "/* La jena Ĝavaskripto sole ŝargiĝos por robotoj. */",
        "pageinfo-category-pages": "Nombro de paĝoj",
        "pageinfo-category-subcats": "Nombro de subkategorioj",
        "pageinfo-category-files": "Nombro de dosieroj",
-       "skinname-cologneblue": "Kolonja Bluo",
        "skinname-monobook": "Librejo",
-       "skinname-modern": "Moderno",
        "skinname-vector": "Vektoro",
        "markaspatrolleddiff": "Marki kiel patrolitan",
        "markaspatrolledtext": "Marki ĉi tiun paĝon kiel patrolitan",
        "htmlform-no": "Ne",
        "htmlform-yes": "Jes",
        "htmlform-chosen-placeholder": "Elektu opcion",
+       "htmlform-cloner-create": "Aldoni plian",
+       "htmlform-cloner-delete": "Forigi",
+       "htmlform-cloner-required": "Almenaŭ unu valoro estas nepra.",
        "sqlite-has-fts": "$1 kun tut-teksta subteno",
        "sqlite-no-fts": "$1 sen tut-teksta subteno",
        "logentry-delete-delete": "$1 forigis paĝon $3",
index 825efea..7764be8 100644 (file)
                        "Csbotero",
                        "아라",
                        "Mcervera",
-                       "Wifidel"
+                       "Wifidel",
+                       "Macofe"
                ]
        },
        "tog-underline": "Subrayar los enlaces:",
        "tog-usenewrc": "Agrupar los cambios por página en los cambios recientes y en la lista de seguimiento",
        "tog-numberheadings": "Numerar automáticamente los encabezados",
        "tog-showtoolbar": "Mostrar la barra de edición",
-       "tog-editondblclick": "Editar las páginas al hace doble clic",
-       "tog-editsectiononrightclick": "Activar la edición de secciones pulsando el botón derecho en los títulos de secciones",
+       "tog-editondblclick": "Editar las páginas al hacer doble clic",
+       "tog-editsectiononrightclick": "Permitir modificar secciones al pulsar con el botón secundario del ratón en sus títulos",
        "tog-watchcreations": "Añadir las páginas que cree y los archivos que suba a mi lista de seguimento",
        "tog-watchdefault": "Añadir las páginas y archivos que edite a mi lista de seguimiento",
        "tog-watchmoves": "Añadir las páginas y archivos que mueva a mi lista de seguimiento",
        "tog-watchlisthideliu": "Ocultar las ediciones de los usuarios registrados en la lista de seguimiento",
        "tog-watchlisthideanons": "Ocultar las ediciones de los usuarios anónimos en la lista de seguimiento",
        "tog-watchlisthidepatrolled": "Ocultar las ediciones patrulladas en la lista de seguimiento",
-       "tog-ccmeonemails": "Recibir copias de los mensajes que envíe a otros usuarios",
-       "tog-diffonly": "No mostrar bajo las ''diferencias'' el contenido de la página",
-       "tog-showhiddencats": "Mostrar las categorías escondidas",
+       "tog-ccmeonemails": "Enviarme copias de los correos electrónicos que envíe a otros usuarios",
+       "tog-diffonly": "No mostrar el contenido de la página bajo las diferencias",
+       "tog-showhiddencats": "Mostrar las categorías ocultas",
        "tog-norollbackdiff": "Omitir la diferencia después de revertir",
-       "tog-useeditwarning": "Advertirme cuando abandone una página editada con cambios sin grabar",
+       "tog-useeditwarning": "Avisarme cuando abandone una página de edición con cambios sin guardar",
        "tog-prefershttps": "Utilizar una conexión segura siempre que haya iniciado una sesión",
        "underline-always": "Siempre",
        "underline-never": "Nunca",
        "category_header": "Páginas en la categoría «$1»",
        "subcategories": "Subcategorías",
        "category-media-header": "Archivos multimedia en la categoría «$1»",
-       "category-empty": "''La categoría no contiene ninguna página o archivo.''",
+       "category-empty": "<em>Esta categoría no contiene ninguna página o archivo.</em>",
        "hidden-categories": "{{PLURAL:$1|Categoría oculta|Categorías ocultas}}",
        "hidden-category-category": "Categorías ocultas",
        "category-subcat-count": "{{PLURAL:$2|Esta categoría solo contiene la siguiente subcategoría.|Esta categoría contiene {{PLURAL:$1|la siguiente subcategoría|las siguientes $1 subcategorías}}, de un total de $2.}}",
        "qbedit": "Editar",
        "qbpageoptions": "Opciones de página",
        "qbmyoptions": "Mis páginas",
-       "faq": "Preguntas más frecuentes",
+       "faq": "Preguntas frecuentes",
        "faqpage": "Project:P+F",
        "vector-action-addsection": "Nueva sección",
        "vector-action-delete": "Borrar",
        "portal": "Portal de la comunidad",
        "portal-url": "Project:Portal de la comunidad",
        "privacy": "Política de privacidad",
-       "privacypage": "Project:Política de protección de datos",
+       "privacypage": "Project:Política de privacidad",
        "badaccess": "Error de permisos",
        "badaccess-group0": "No estás autorizado a ejecutar la acción solicitada.",
        "badaccess-groups": "La acción que has solicitado está restringida a los usuarios {{PLURAL:$2|del grupo|de uno de estos $2 grupos}}: $1.",
        "ns-specialprotected": "No se pueden editar las páginas especiales.",
        "titleprotected": "Esta página ha sido protegida contra creación por [[User:$1|$1]].\nEl motivo dado fue: \"''$2''\".",
        "filereadonlyerror": "No se puede modificar el archivo \"$1\" porque el repositorio de archivos \"$2\" está en modo de sólo lectura.\nEl administrador que lo ha bloqueado ofrece esta explicación: \"$3\".",
-       "invalidtitle-knownnamespace": "Título no válido con el espacio de nombres \"$2\" y el texto \"$3\"",
-       "invalidtitle-unknownnamespace": "Título no válido con número de espacio de nombres desconocido  $1  y el texto \"$2\"",
+       "invalidtitle-knownnamespace": "El título con el espacio de nombres «$2» y el texto «$3» no es válido",
+       "invalidtitle-unknownnamespace": "El título con el espacio de nombres desconocido (n.º $1) y el texto «$2» no es válido",
        "exception-nologin": "No has iniciado sesión",
        "exception-nologin-text": "[[Special:Userlogin|Inicia sesión]] para acceder a esta página o acción.",
        "exception-nologin-text-manual": "Necesitas $1 para acceder a esta página o acción.",
        "createacct-emailrequired": "Dirección de correo electrónico",
        "createacct-emailoptional": "Dirección de correo electrónico (opcional)",
        "createacct-email-ph": "Escribe tu dirección de correo electrónico",
-       "createacct-another-email-ph": "Introduzca la dirección de correo electrónico",
+       "createacct-another-email-ph": "Escribe la dirección de correo electrónico",
        "createaccountmail": "Utilizar una contraseña aleatoria temporal y enviarla a la dirección de correo electrónico especificada",
        "createacct-realname": "Nombre real (opcional)",
        "createaccountreason": "Motivo:",
        "nocookiesfornew": "No se pudo crear la cuenta de usuario, porque no pudimos confirmar su origen.\nAsegúrate de que tienes las cookies activadas, luego recarga esta página e inténtalo de nuevo.",
        "noname": "No se ha especificado un nombre de usuario válido.",
        "loginsuccesstitle": "Ya iniciaste sesión",
-       "loginsuccess": "'''Has iniciado sesión en {{SITENAME}} como «$1».'''",
+       "loginsuccess": "<strong>Has accedido a {{SITENAME}} como «$1».</strong>",
        "nosuchuser": "No existe ningún usuario llamado «$1».\nLos nombres de usuario son sensibles a las mayúsculas.\nRevisa la ortografía, o [[Special:UserLogin/signup|crea una cuenta nueva]].",
        "nosuchusershort": "No hay un usuario con el nombre «$1». Comprueba que lo has escrito correctamente.",
        "nouserspecified": "Debes especificar un nombre de usuario.",
        "session_fail_preview_html": "'''Lo sentimos, no hemos podido procesar tu cambio debido a una pérdida de datos de sesión.'''\n\n''Puesto que este wiki tiene el HTML puro habilitado, la visión preliminar está oculta para prevenirse contra ataques en JavaScript.''\n\n'''Si éste es un intento legítimo de modificación, por favor, inténtalo de nuevo. Si aún así no funcionase, [[Special:UserLogout|cierra la sesión]] e ingresa de nuevo.'''",
        "token_suffix_mismatch": "'''Tu edición ha sido rechazada porque tu cliente ha mezclado los signos de puntuación en el token de edición.\nSe rechazó la edición para evitar que el texto de la página se corrompa.\nEsto sucede en ocasiones cuando se usa un servicio de proxy anónimo defectuoso.'''",
        "edit_form_incomplete": "'''Algunas partes del formulario de edición no llegaron al servidor, comprueba que tus ediciones están intactas e inténtalo de nuevo'''.",
-       "editing": "Editar $1",
+       "editing": "Edición de «$1»",
        "creating": "Crear la página $1",
        "editingsection": "Editar $1 (sección)",
-       "editingcomment": "Editar $1 (sección nueva)",
+       "editingcomment": "Edición de «$1» (sección nueva)",
        "editconflict": "Conflicto de edición: $1",
        "explainconflict": "Alguien más ha cambiado esta página desde que empezaste a editarla.\nEl área de texto superior contiene el texto de la página como existe actualmente.\nTus cambios se muestran en el área de texto inferior.\nSi quieres grabar tus cambios, has de trasladarlos al área superior.\n'''Sólo''' el texto en el área de texto superior será grabado cuando pulses «{{int:savearticle}}».",
        "yourtext": "Tu texto",
        "edit-hook-aborted": "Edición cancelada por la extensión.\nNo se aportaron explicaciones.",
        "edit-gone-missing": "No se pudo actualizar la página.\nParece 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.",
+       "edit-no-change": "Se ignoró tu edición porque no se hizo ningún cambio en el texto.",
        "postedit-confirmation-created": "Se ha creado la página.",
        "postedit-confirmation-restored": "Se ha restaurado la página.",
        "postedit-confirmation-saved": "Se ha guardado tu edición.",
        "prefs-advancedrendering": "Opciones avanzadas",
        "prefs-advancedsearchoptions": "Opciones avanzadas",
        "prefs-advancedwatchlist": "Opciones avanzadas",
-       "prefs-displayrc": "Opciones de mostrado",
+       "prefs-displayrc": "Opciones de visualización",
        "prefs-displaywatchlist": "Opciones de visualización",
        "prefs-tokenwatchlist": "Clave",
        "prefs-diffs": "Diferencias",
        "recentchanges-summary": "Sigue los cambios más recientes de la wiki en esta página.",
        "recentchanges-noresult": "No hubo cambios durante el período seleccionado que respondan a esos criterios.",
        "recentchanges-feed-description": "Realiza un seguimiento de los cambios más recientes en el wiki en este canal.",
-       "recentchanges-label-newpage": "Esta edición creó una nueva página",
+       "recentchanges-label-newpage": "Esta edición inició una página",
        "recentchanges-label-minor": "Esta es una edición menor",
        "recentchanges-label-bot": "Esta edición fue realizada por un robot",
        "recentchanges-label-unpatrolled": "Esta edición todavía no se ha patrullado",
        "recentchanges-label-plusminus": "El tamaño de la página cambió esta cantidad de bytes",
        "recentchanges-legend-heading": "'''Leyenda:'''",
-       "recentchanges-legend-newpage": "(véase también la [[Special:NewPages|lista de páginas nuevas]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (véase también la [[Special:NewPages|lista de páginas nuevas]])",
        "rcnotefrom": "A continuación se presentan los cambios desde <strong> $2 </strong> (hasta <strong> $1 </strong> se muestra).",
        "rclistfrom": "Mostrar nuevos cambios desde $2, $3",
        "rcshowhideminor": "$1 ediciones menores",
        "wantedtemplates": "Plantillas requeridas",
        "mostlinked": "Artículos más enlazados",
        "mostlinkedcategories": "Categorías más enlazadas",
-       "mostlinkedtemplates": "Plantillas más enlazadas",
+       "mostlinkedtemplates": "Páginas más transcluídas",
        "mostcategories": "Páginas con más categorías",
        "mostimages": "Imágenes más usadas",
        "mostinterwikis": "Páginas con más interwikis",
        "movepage-moved": "'''«$1» ha sido trasladado a «$2».'''",
        "movepage-moved-redirect": "Se ha creado una redirección.",
        "movepage-moved-noredirect": "Se ha suprimido la creación de la redirección.",
-       "articleexists": "Ya existe una página con ese nombre, o el nombre que has escogido no es válido.\nPor favor, elige otro nombre.",
+       "articleexists": "Ya existe una página con ese nombre o el nombre que elegiste no es válido.\nElige otro nombre.",
        "cantmove-titleprotected": "No puedes trasladar la página a esta ubicación, porque el nuevo título ha sido protegido para evitar su creación.",
        "movetalk": "Renombrar la página de discusión asociada",
        "move-subpages": "Intentar trasladar las subpáginas (hasta $1)",
        "spam_blanking": "Todas las revisiones contienen enlaces a $1, blanqueando",
        "spam_deleting": "Todas las revisiones que contienen enlaces a $1, en proceso de eliminación",
        "simpleantispam-label": "Comprobación anti-spam\n¡NO rellenes esto!",
-       "pageinfo-title": "Información para «$1»",
+       "pageinfo-title": "Información de «$1»",
        "pageinfo-not-current": "Lo sentimos, no es posible mostrar esta información para las revisiones antiguas.",
        "pageinfo-header-basic": "Información básica",
        "pageinfo-header-edits": "Historial de ediciones",
        "pageinfo-header-restrictions": "Protección de página",
        "pageinfo-header-properties": "Propiedades de página",
-       "pageinfo-display-title": "Visualizar el título",
+       "pageinfo-display-title": "Título visualizado",
        "pageinfo-default-sort": "Criterio de ordenación predeterminado",
        "pageinfo-length": "Longitud de la página (en bytes)",
-       "pageinfo-article-id": "Identificador ID de la página",
+       "pageinfo-article-id": "Identificador de la página",
        "pageinfo-language": "Idioma de la página",
        "pageinfo-content-model": "Modelo de contenido de la página",
        "pageinfo-robot-policy": "Indización por robots",
index e61932e..0408191 100644 (file)
        "recentchanges-label-unpatrolled": "Seda muudatust ei ole veel kontrollitud",
        "recentchanges-label-plusminus": "Lehekülje suuruse muutus baitides",
        "recentchanges-legend-heading": "'''Seletus:'''",
-       "recentchanges-legend-newpage": "(vaata ka [[Special:NewPages|uute lehekülgede loendit]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vaata ka [[Special:NewPages|uute lehekülgede loendit]])",
        "rcnotefrom": "Allpool on toodud muudatused alates: <strong>$2</strong> (näidatakse kuni <strong>$1</strong> muudatust)",
        "rclistfrom": "Näita muudatusi alates: $3, kell $2",
        "rcshowhideminor": "Pisiparandused ($1)",
        "wantedtemplates": "Kõige oodatumad mallid",
        "mostlinked": "Kõige viidatumad leheküljed",
        "mostlinkedcategories": "Kõige viidatumad kategooriad",
-       "mostlinkedtemplates": "Kõige viidatumad mallid",
+       "mostlinkedtemplates": "Kõige kasutatumad mallid",
        "mostcategories": "Enim kategoriseeritud leheküljed",
        "mostimages": "Kõige kasutatumad failid",
        "mostinterwikis": "Suurima keelelinkide arvuga leheküljed",
index e52f495..3455cc7 100644 (file)
        "recentchanges-label-unpatrolled": "Aldaketa hau ez da oraindik patruilatua izan",
        "recentchanges-label-plusminus": "Orriaren neurriak byte kopuru honen gorabehera izan du",
        "recentchanges-legend-heading": "'''Azalpenak:'''",
-       "recentchanges-legend-newpage": "(ikus, gainera, [[Special:NewPages|orri berrien zerrenda]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ikus, gainera, [[Special:NewPages|orri berrien zerrenda]])",
        "rcnotefrom": "Jarraian azaltzen diren aldaketak data honetatik aurrerakoak dira: <b>$2</b> (gehienez <b>$1</b> erakusten dira).",
        "rclistfrom": "Erakutsi $3 $2 ondorengo aldaketa berriak",
        "rcshowhideminor": "$1 aldaketa txikiak",
index eaec19a..40bfabc 100644 (file)
        "vector-view-view": "خواندن",
        "vector-view-viewsource": "نمایش مبدأ",
        "actions": "عملکردها",
+       "vector-more-actions": "بیشتر",
        "namespaces": "فضاهای نام",
        "variants": "گویش‌ها",
        "navigation-heading": "منوی ناوبری",
        "currentrev": "نسخهٔ فعلی",
        "currentrev-asof": "نسخهٔ کنونی تا $1",
        "revisionasof": "نسخهٔ $1",
-       "revision-info": "نسخهٔ تاریخ $1 توسط $2",
+       "revision-info": "نسخهٔ تاریخ $1 توسط {{GENDER:$6|$2}}$7",
        "previousrevision": "→ نسخهٔ قدیمی‌تر",
        "nextrevision": "نسخهٔ جدیدتر ←",
        "currentrevisionlink": "نمایش نسخهٔ فعلی",
        "powersearch-togglelabel": "بررسی:",
        "powersearch-toggleall": "همه",
        "powersearch-togglenone": "هیچ‌کدام",
+       "powersearch-remember": "انتخاب را برای جستجوهای بعدی به خاطر داشته‌باش",
        "search-external": "جستجوی خارجی",
        "searchdisabled": "جستجو در {{SITENAME}} فعال نیست.\nموقتاً می‌توانید از جستجوی Google استفاده کنید.\nتوجه کنید که نتایج حاصل از جستجو با آن روش ممکن است به‌روز نباشند.",
        "search-error": "خطایی هنگام جست‌وجو رخ داده است: $1",
        "recentchanges-label-unpatrolled": "این ویرایش هنوز گشت‌زنی نشده‌است",
        "recentchanges-label-plusminus": "حجم صفحه به اندازه این بایت‌ها تغییر یافته‌است",
        "recentchanges-legend-heading": "'''اختصارها:'''",
-       "recentchanges-legend-newpage": "(همچنین به [[Special:NewPages|فهرست صفحات جدید]] نگاه کنید)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (همچنین به [[Special:NewPages|فهرست صفحات جدید]] نگاه کنید)",
        "recentchanges-legend-plusminus": "('' ±۱۲۳'')",
        "rcnotefrom": "در زیر تغییرات از <strong>$2</strong> (تا <strong>$1</strong> نشان داده شده‌است).",
        "rclistfrom": "نمایش تغییرات جدید با شروع از $3 $2",
        "watchnologin": "به سامانه وارد نشده‌اید",
        "addwatch": "افزودن به فهرست پی‌گیری",
        "addedwatchtext": "صفحهٔ «[[:$1]]» به [[Special:Watchlist|فهرست پی‌گیری‌های]] شما اضافه شد.\nتغییرات این صفحه و صفحهٔ بحث متناظرش در آینده در اینجا فهرست خواهد شد.",
+       "addedwatchtext-short": "صفحه \" $1 \" به فهرست پیگیریهای خود اضافه شده است.",
        "removewatch": "حذف از فهرست پی‌گیری",
        "removedwatchtext": "صفحهٔ «[[:$1]]» از [[Special:Watchlist|فهرست پی‌گیری‌های شما]] برداشته شد.",
+       "removedwatchtext-short": "صفحهٔ \"$1\" از فهرست پیگیری‌های شما حذف شده‌است.",
        "watch": "پی‌گیری",
        "watchthispage": "پی‌گیری این صفحه",
        "unwatch": "توقف پی‌گیری",
index 8163bad..a4b0188 100644 (file)
        "vector-view-view": "Lue",
        "vector-view-viewsource": "Näytä lähdekoodi",
        "actions": "Toiminnot",
-       "vector-more-actions": "Lisää",
+       "vector-more-actions": "Muut",
        "namespaces": "Nimiavaruudet",
        "variants": "Kirjoitusjärjestelmät",
        "navigation-heading": "Navigointivalikko",
        "recentchanges-label-unpatrolled": "Tätä muutosta ei ole vielä tarkastettu",
        "recentchanges-label-plusminus": "Sivun koon muutos tavuina",
        "recentchanges-legend-heading": "'''Selitys:'''",
-       "recentchanges-legend-newpage": "(katso myös [[Special:NewPages|lista uusista sivuista]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (katso myös [[Special:NewPages|lista uusista sivuista]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Alla ovat muutokset <strong>$2</strong> lähtien. (Enintään <strong>$1</strong> näytetään.)",
        "rclistfrom": "Näytä uudet muutokset $3 $2 alkaen",
        "wantedtemplates": "Halutut mallineet",
        "mostlinked": "Viitatuimmat sivut",
        "mostlinkedcategories": "Viitatuimmat luokat",
-       "mostlinkedtemplates": "Viitatuimmat mallineet",
+       "mostlinkedtemplates": "Eniten sisällytetyt sivut",
        "mostcategories": "Luokitelluimmat sivut",
        "mostimages": "Viitatuimmat tiedostot",
        "mostinterwikis": "Sivut, joilla on eniten kielilinkkejä",
index cd41181..795825f 100644 (file)
        "edit-gone-missing": "Tað var ikki møguligt at dagføra síðuna.\nTað sær út til at hon er blivin strikað.",
        "edit-conflict": "Rættingar trupulleiki (konflikt).",
        "edit-no-change": "Tín rætting var sæð burtur frá, tí ongin broyting varð gjørd í tekstinum.",
-       "postedit-confirmation": "Tín rætting varð goymd.",
+       "postedit-confirmation-saved": "Tín rætting varð goymd.",
        "edit-already-exists": "Tað var ikki møguligt at upprætta nýggja síðu.\nSíðan er longu til.",
        "defaultmessagetext": "Standard boðtekstur",
        "content-failed-to-parse": "Kláraði ikki at tulka $2 innihaldi fyri $1 modell: $3",
        "searchmenu-exists": "'''Tað er longu ein síða sum eitur \"[[:$1]]\" á hesi wiki.'''",
        "searchmenu-new": "<strong>'''Stovna síðuna \"[[:$1]]\" á hesi wiki!</strong> {{PLURAL:$2|0=|Sí eisini síðuna sum varð funnin við tínari leiting.|Sí eisini leitiúrslitini ið funnin vóru.}}",
        "searchprofile-articles": "Innihaldssíður",
-       "searchprofile-project": "Hjálpar og verkætlanar síður",
        "searchprofile-images": "Fjølmiðlar - multimedia",
        "searchprofile-everything": "Alt",
        "searchprofile-advanced": "Víðkað",
        "searchprofile-articles-tooltip": "Leita í $1",
-       "searchprofile-project-tooltip": "Leita í $1",
        "searchprofile-images-tooltip": "Leita eftir fílum",
        "searchprofile-everything-tooltip": "Leita í øllum innihaldi (eisini í kjaksíðum)",
        "searchprofile-advanced-tooltip": "Leita í ávísum navnaøkjum",
        "search-interwiki-default": "$1 úrslit:",
        "search-interwiki-more": "(meira)",
        "search-relatedarticle": "Líknandi",
-       "searcheverything-enable": "Leita í øllum navnaøkjum",
        "searchrelated": "líknandi",
        "searchall": "alt",
        "showingresults": "Niðanfyri standa upp til {{PLURAL:$1|'''$1''' úrslit, sum byrjar|'''$1''' úrslit, sum byrja}} við #<b>$2</b>.",
        "allowemail": "Tilset t-post frá øðrum brúkarum",
        "prefs-searchoptions": "Leita",
        "prefs-namespaces": "Navnarúm",
-       "defaultns": "Um ikki, leita so í hesum navnateigum:",
        "default": "standard",
        "prefs-files": "Fílur",
        "prefs-custom-css": "Tilpassað CSS",
        "prefs-emailconfirm-label": "Vátta tína t-post adressu:",
        "youremail": "T-postur (sjálvboðið)*:",
        "username": "{{GENDER:$1|Brúkaranavn}}:",
-       "uid": "{{GENDER:$1|Brúkari}} ID:",
        "prefs-memberingroups": "{{GENDER:$2|Limur}} í {{PLURAL:$1|bólki|bólkum}}:",
        "prefs-registration": "Skrásett tíðspunkt:",
        "yourrealname": "Títt navn*:",
        "recentchanges-label-bot": "Henda rætting varð gjørd av einum botti",
        "recentchanges-label-unpatrolled": "Henda rætting er ikki blivin eftirkannað enn",
        "recentchanges-legend-heading": "'''Teknfrágreiðing:'''",
-       "recentchanges-legend-newpage": "(sí eisini [[Special:NewPages|yvirlit yvir nýggjar síður]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (sí eisini [[Special:NewPages|yvirlit yvir nýggjar síður]])",
        "rcnotefrom": "Niðanfyri standa broytingarnar síðani '''$2''', (upp til '''$1''' er sýndar).",
        "rclistfrom": "Sýn nýggjar broytingar byrjandi við $3 $2",
        "rcshowhideminor": "$1 minni rættingar",
        "log-title-wildcard": "Leita í heitum sum byrja við hesum teksti",
        "showhideselectedlogentries": "Vís/fjal útvaldu loggarnir",
        "allpages": "Allar síður",
-       "alphaindexline": "$1 til $2",
        "nextpage": "Næsta síða ($1)",
        "prevpage": "Fyrrverandi síða ($1)",
        "allpagesfrom": "Vís síður sum byrja við:",
        "unblock": "Tak sperring av brúkara burtur",
        "blockip": "Banna brúkara",
        "blockip-legend": "Sperra brúkara",
-       "ipadressorusername": "IP-adressa ella brúkaranavn:",
+       "ipaddressorusername": "IP-adressa ella brúkaranavn:",
        "ipbexpiry": "Gongur út:",
        "ipbreason": "Orsøk:",
        "ipbreason-dropdown": "*Vanligar orsøkir fyri sperring\n** Innsetan av følskum upplýsingum\n** Tekur burtur innihald av síðum\n** Spammar leinkjur til uttanhýsis síður\n** Skrivar tvætl á síður\n** Ber seg skeivt at/ger seg inn á brúkarar\n** Misnýtir fleiri kontur\n** Brúkaranavn ið ikki kann góðtakast",
        "pageinfo-category-pages": "Tal av síðum",
        "pageinfo-category-subcats": "Tal av undirbólkum",
        "pageinfo-category-files": "Tal av fílum",
-       "skinname-cologneblue": "Cologne-bláur",
        "markaspatrolleddiff": "Merk síðuna sum eftirhugda",
        "markaspatrolledtext": "Merk hesa síðu sum eftirhugda",
        "markedaspatrolled": "Merk sum eftirkannað",
        "newimages": "Nýggjar myndir",
        "newimages-legend": "Filtur",
        "newimages-label": "Fílunavn (ella ein partur av tí):",
-       "showhidebots": "($1 bottar)",
        "noimages": "Einki at síggja.",
        "ilsubmit": "Leita",
        "bydate": "eftir dato",
index c795872..0f1dacc 100644 (file)
        "recentchanges-label-unpatrolled": "Cette modification n'a pas encore été patrouillée.",
        "recentchanges-label-plusminus": "La taille de la page a changé de ce nombre d’octets.",
        "recentchanges-legend-heading": "'''Légende :'''",
-       "recentchanges-legend-newpage": "(voir aussi la [[Special:NewPages|liste des nouvelles pages]]).",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (voir aussi la [[Special:NewPages|liste des nouvelles pages]]).",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Ci-dessous les modifications effectuées depuis le <strong>$2</strong> (jusqu’à <strong>$1</strong> affichés).",
        "rclistfrom": "Afficher les nouvelles modifications depuis le $3 à $2",
        "wantedtemplates": "Modèles demandés",
        "mostlinked": "Pages les plus liées",
        "mostlinkedcategories": "Catégories les plus utilisées",
-       "mostlinkedtemplates": "Modèles les plus utilisés",
+       "mostlinkedtemplates": "Pages les plus incluses",
        "mostcategories": "Pages utilisant le plus de catégories",
        "mostimages": "Fichiers les plus utilisés",
        "mostinterwikis": "Pages avec le plus d'interwikis",
index 624a890..eecbc54 100644 (file)
        "searchmenu-exists": "'''Deer as en sid nååmd \"[[:$1]]\" önj jüdeer Wiki'''",
        "searchmenu-new": "<strong>Maage det sidj „[[:$1]]“ uun detheer wiki!</strong> {{PLURAL:$2|0=|Luke uk bi det fünjen sidj.|Luke uk bi a fünjen sidjen.}}",
        "searchprofile-articles": "Artiikler",
-       "searchprofile-project": "Halep- an Projektsidjen",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Ales",
        "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-interwiki-default": "Resultaaten faan $1:",
        "search-interwiki-more": "(muar)",
        "search-relatedarticle": "Ferbünjen",
-       "searcheverything-enable": "Uun arke nöömrüm schük",
        "searchrelated": "ferbünjen",
        "searchall": "aaltumaal",
        "showingresults": "Heer {{PLURAL:$1|as '''1''' resultaat|san '''$1''' resultaaten}}, jo began mä numer '''$2.'''",
        "allowemail": "E-mail faan ööder brükern tuläät",
        "prefs-searchoptions": "Schük",
        "prefs-namespaces": "Nöömrümer",
-       "defaultns": "Ööders schük uun jodiar nöömrümer:",
        "default": "Fööriinstelang",
        "prefs-files": "Datein",
        "prefs-custom-css": "Salew maaget CSS",
        "prefs-emailconfirm-label": "E-Mail gudkäänd:",
        "youremail": "E-mail:",
        "username": "{{GENDER:$1|Brükernööm}}:",
-       "uid": "{{GENDER:$1|Brükerkäänang}}:",
        "prefs-memberingroups": "{{GENDER:$2|Lasmoot}} faan {{PLURAL:$1|brükerskööl|brükersköölen}}:",
        "prefs-registration": "Uunmelde-tidj",
        "yourrealname": "Rocht nööm:",
        "recentchanges-label-unpatrolled": "Detdiar feranrang as noch ei efterluket wurden",
        "recentchanges-label-plusminus": "Feranert sidjengrate (am soföl bytes)",
        "recentchanges-legend-heading": "'''Ferklaarang:'''",
-       "recentchanges-legend-newpage": "(luke uk bi't [[Special:NewPages|list mä nei sidjen]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (luke uk bi't [[Special:NewPages|list mä nei sidjen]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Diar wurd a feranrangen sant <strong>$2</strong>uunwiset (ei muar üs <strong>$1</strong> feranrangen).",
        "rclistfrom": "Bluas feranrangen sant $3 $2 wise",
        "log-title-wildcard": "Sidjennööm begant mä ...",
        "showhideselectedlogentries": "Wise/fersteeg jodiar logbukiindracher",
        "allpages": "Aal a sidjen",
-       "alphaindexline": "$1 bit $2",
        "nextpage": "Naist sidj ($1)",
        "prevpage": "Leetst sidj ($1)",
        "allpagesfrom": "Sidjen wise sant:",
index f02ddac..aa1a1ab 100644 (file)
        "recentchanges-label-bot": "'S e bot a rinn an deasachadh seo",
        "recentchanges-label-unpatrolled": "Cha deach freiceadan tron deasachadh seo fhathast",
        "recentchanges-label-plusminus": "Seo meud atharrachadh na duilleige ann am byte",
-       "recentchanges-legend-newpage": "(faic [[Special:NewPages|liosta nan duilleagan ùra]] cuideachd)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (faic [[Special:NewPages|liosta nan duilleagan ùra]] cuideachd)",
        "rcnotefrom": "Gheibhear na mùthaidhean a-mach o <strong>$2</strong> (gu ruige <strong>$1</strong>) gu h-ìosal.",
        "rclistfrom": "Seall na mùthaidhean ùra a-mach o $3 $2",
        "rcshowhideminor": "$1 mùthaidhean beaga",
index 50633b9..0f017d4 100644 (file)
        "laggedslavemode": "'''Aviso:''' A páxina pode non conter as actualizacións recentes.",
        "readonly": "Base de datos pechada",
        "enterlockreason": "Dea unha razón para o peche, incluíndo unha estimación de até cando se manterá",
-       "readonlytext": "Nestes intres a base de datos está pechada a novas entradas e outras modificacións, probabelmente debido a rutinas de mantemento, tras as que volverá á normalidade.\n\nO administrador que a pechou deu esta explicación: $1",
+       "readonlytext": "Nestes intres a base de datos está pechada a novas entradas e outras modificacións, probablemente debido a procesos de mantemento, tras os que volverá á normalidade.\n\nO administrador que a pechou deu esta explicación: $1",
        "missing-article": "A base de datos non atopou o texto da páxina chamada \"$1\" $2, que debera ter atopado.\n\nNormalmente, isto está causado por seguir unha ligazón cara a unha diferenza vella ou a unha páxina que foi borrada.\n\nSe este non é o caso, poida que atopase un erro no software.\nPor favor, comuníquello a un [[Special:ListUsers/sysop|administrador]] tomando nota do enderezo URL.",
        "missingarticle-rev": "(nº de revisión: $1)",
        "missingarticle-diff": "(dif: $1, $2)",
        "powersearch-togglelabel": "Seleccionar:",
        "powersearch-toggleall": "Todos",
        "powersearch-togglenone": "Ningún",
-       "powersearch-remember": "Lembrar a selección e futuras pescudas",
+       "powersearch-remember": "Lembrar a selección en futuras pescudas",
        "search-external": "Procura externa",
        "searchdisabled": "As procuras en {{SITENAME}} están deshabilitadas por cuestións de rendemento.\nMentres tanto pode procurar usando o Google.\nNote que os seus índices do contido de {{SITENAME}} poden estar desactualizados.",
        "search-error": "Produciuse un erro durante a procura: $1",
        "recentchanges-label-unpatrolled": "Esta edición aínda non foi comprobada",
        "recentchanges-label-plusminus": "O tamaño da páxina variou este número de bytes",
        "recentchanges-legend-heading": "'''Lenda:'''",
-       "recentchanges-legend-newpage": "(véxase tamén a [[Special:NewPages|lista de páxinas novas]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (véxase tamén a [[Special:NewPages|lista de páxinas novas]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "A continuación móstranse os cambios feitos desde o <strong>$3</strong> ás <strong>$4</strong> (móstranse <strong>$1</strong> como máximo).",
        "rclistfrom": "Mostrar os cambios novos desde o $3 ás $2",
index a3ec3ba..5b86822 100644 (file)
        "searchmenu-exists": "* Syte '''[[$1]]'''",
        "searchmenu-new": "'''[[:$1|Leg d Syte ''$1'' in dem Wiki aa!]]'''",
        "searchprofile-articles": "Inhaltssyte",
-       "searchprofile-project": "Hilf- un Projäktsyte",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Alles",
        "searchprofile-advanced": "Erwyteret",
        "searchprofile-articles-tooltip": "Sueche in $1",
-       "searchprofile-project-tooltip": "Sueche in $1",
        "searchprofile-images-tooltip": "Noch Bilder sueche",
        "searchprofile-everything-tooltip": "Gsamte Inhalt dursueche (au d Diskussionssyte)",
        "searchprofile-advanced-tooltip": "Suech in wytere Namensryym",
        "search-interwiki-default": "$1 Ergebniss:",
        "search-interwiki-more": "(meh)",
        "search-relatedarticle": "Verwandti",
-       "searcheverything-enable": "In alle Namensryym sueche",
        "searchrelated": "verwandt",
        "searchall": "alli",
        "showingresults": "Do {{PLURAL:$1|isch '''1''' Ergebnis|sin '''$1''' Ergebniss}}, s fangt aa mit dr Nummerer '''$2.'''",
        "allowemail": "andere Benutzer erlaube, dass si Ihne E-Mails chenne schicke",
        "prefs-searchoptions": "Suechoptione",
        "prefs-namespaces": "Namensryym",
-       "defaultns": "Sunscht in däne Namensryym sueche:",
        "default": "Voryystellig",
        "prefs-files": "Bilder",
        "prefs-custom-css": "Benutzerdefinierti CSS",
        "prefs-emailconfirm-label": "E-Mail-Bstätigung:",
        "youremail": "E-Mail-Adräss:",
        "username": "{{GENDER:$1|Benutzername}}:",
-       "uid": "{{GENDER:$1|Benutzernummere}}:",
        "prefs-memberingroups": "{{GENDER:$2|Mitglid}} vu dr {{PLURAL:$1|Benutzergruppe}}:",
        "prefs-registration": "Aamäldzyt:",
        "yourrealname": "Echte Name:",
        "recentchanges-label-bot": "Die Bearbeitig isch dur e Bott uusgfiert wore",
        "recentchanges-label-unpatrolled": "Die Bearbeitig isch nonig vun eme Fäldhieter aagluegt wore",
        "recentchanges-label-plusminus": "Di gänderet Sytegreßi (Aazahl in Byte)",
-       "recentchanges-legend-newpage": "(lueg au d [[Special:NewPages|Lischt vu neie Syte]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (lueg au d [[Special:NewPages|Lischt vu neie Syte]])",
        "rcnotefrom": "Des sin d Ändrige syter <b>$2</b> (bis zem <b>$1</b> zeigt).",
        "rclistfrom": "Nume Änderige syt $3, $2 Uhr zeige.",
        "rcshowhideminor": "Chlynigkeite $1",
        "log-title-wildcard": "Titel fangt aa mit",
        "showhideselectedlogentries": "Uusgwehlti Logbuechyytreg aazeige/verstecke",
        "allpages": "alli Sytene",
-       "alphaindexline": "vo $1 bis $2",
        "nextpage": "Nächscht Syte ($1)",
        "prevpage": "Vorderi Syte ($1)",
        "allpagesfrom": "Syte aazeige vo:",
index bc124ce..8951265 100644 (file)
        "searchmenu-exists": "''' આ વિકિ પર  \"[[:$1]]\" નામે પાનું પહેલેથી અસ્તિત્વમાં છે.'''",
        "searchmenu-new": "<strong>આ વિકિ પર \"[[:$1]]\" પાનું બનાવો!</strong> {{PLURAL:$2|0=|તમારી શોધમાં મળેલ પાનું પણ જુઓ.|તમારી શોધમાં મળેલ પરિણામો પણ જુઓ.}}",
        "searchprofile-articles": "લેખનું પાનું",
-       "searchprofile-project": "મદદ અને યોજના પાનું",
        "searchprofile-images": "દ્રશ્ય શ્રાવ્ય માધ્યમ",
        "searchprofile-everything": "દરેકમાં શોધો",
        "searchprofile-advanced": "ઉચ્ચ",
        "searchprofile-articles-tooltip": "$1 માં શોધો",
-       "searchprofile-project-tooltip": "$1માં શોધો",
        "searchprofile-images-tooltip": "ફાઇલ શોધો",
        "searchprofile-everything-tooltip": "બધે જ શોધો (ચર્ચાનાં પાના સહિત)",
        "searchprofile-advanced-tooltip": "સ્થાનીય નામસ્થળોમાં શોધો:",
        "search-interwiki-default": "$1 માંથી પરીણામો:",
        "search-interwiki-more": "(વધુ)",
        "search-relatedarticle": "શોધ સંબંધિત",
-       "searcheverything-enable": "નામસ્થળોમાં શોધો:",
        "searchrelated": "શોધ સંબંધિત",
        "searchall": "બધા",
        "showingresults": " {{PLURAL:$1|'''1''' પરિણામ|'''$1''' પરિણામો}} સુધી #'''$2''' થી શરૂ  કરી",
        "allowemail": "અન્ય સભ્યો તરફથી આવતા ઇ-મેલને પરવાનગી આપો",
        "prefs-searchoptions": "શોધો",
        "prefs-namespaces": "નામ અવકાશો",
-       "defaultns": "અન્યથા આ નામ અવકાશ માં શોધો",
        "default": "મૂળ વિકલ્પ",
        "prefs-files": "ફાઇલ",
        "prefs-custom-css": "ખાસ  CSS",
        "prefs-emailconfirm-label": "ઇ-મેલ પુષ્ટી",
        "youremail": "ઇ-મેઇલ:",
        "username": "{{GENDER:$1|સભ્યનામ}}:",
-       "uid": "{{GENDER:$1|સભ્ય}} ઓળખ:",
        "prefs-memberingroups": "{{PLURAL:$1|સમુહ|સમુહો}}ના {{GENDER:$2|સભ્ય}}:",
        "prefs-registration": "નોંધણી સમય",
        "yourrealname": "સાચું નામ:",
        "recentchanges-label-unpatrolled": "આ ફેરફાર હજી ચકાસાયો નથી",
        "recentchanges-label-plusminus": "પાનાનું કદ આપેલા અંકો જેટલાં બાઈટ્સ જેટલું બદલ્યુ છે.",
        "recentchanges-legend-heading": "'''કળ:'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|નવા પાનાઓની યાદી]] પણ જુઓ)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|નવા પાનાઓની યાદી]] પણ જુઓ)",
        "rcnotefrom": "નીચે <strong>$2</strong> થી ફેરફારો દર્શાવેલ છે (<strong>$1</strong> સુધી દર્શાવલે છે).",
        "rclistfrom": "$3 $2 બાદ થયેલા નવા ફેરફારો બતાવો",
        "rcshowhideminor": "નાના ફેરફારો $1",
        "log-title-wildcard": "આ શબ્દો દ્વારા શરૂ થનાર શીર્ષકો શોધો",
        "showhideselectedlogentries": "પસંદગીની લોગ નોંધણીઓ બતાવો/છૂપાવો",
        "allpages": "બધા પાના",
-       "alphaindexline": "$1 થી $2",
        "nextpage": "આગળનું પાનું ($1)",
        "prevpage": "પાછળનું પાનું ($1)",
        "allpagesfrom": "આનાથી શરૂ થતા પાના દર્શાવો:",
index e917886..06b0ee4 100644 (file)
        "recentchanges-label-unpatrolled": "עריכה זו טרם נבדקה",
        "recentchanges-label-plusminus": "גודל הדף השתנה במספר זה של בתים",
        "recentchanges-legend-heading": "'''מקרא:'''",
-       "recentchanges-legend-newpage": "(ראו גם [[Special:NewPages|רשימת דפים חדשים]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ראו גם [[Special:NewPages|רשימת דפים חדשים]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "להלן השינויים שבוצעו החל מ‏‏֫־<b>$2</b> (עד <b>$1</b> מוצגים).",
        "rclistfrom": "הצגת שינויים חדשים החל מ־$2, $3",
        "wantedtemplates": "תבניות מבוקשות",
        "mostlinked": "הדפים המקושרים ביותר",
        "mostlinkedcategories": "הקטגוריות המקושרות ביותר",
-       "mostlinkedtemplates": "×\94ת×\91× ×\99×\95ת ×\94×\9eק×\95שר×\95ת ביותר",
+       "mostlinkedtemplates": "×\94×\93פ×\99×\9d ×\94×\9e×\95×\9b×\9c×\9c×\99×\9d ביותר",
        "mostcategories": "הדפים עם המספר הרב ביותר של קטגוריות",
        "mostimages": "הקבצים המקושרים ביותר",
        "mostinterwikis": "הדפים עם המספר הרב ביותר של קישורי בינוויקי",
index 5aea0f6..f54cf3f 100644 (file)
        "searchmenu-exists": "'''इस विकि पर \"[[:$1]]\" नाम का एक पृष्ठ है'''",
        "searchmenu-new": "<strong>इस विकि पर \"[[:$1]]\" नाम का पृष्ठ बनाएँ!</strong>{{PLURAL:$2|0=|आपकी खोज से मिला पृष्ठ भी देखें।|खोज परिणाम भी देखें।}}",
        "searchprofile-articles": "सामग्री पृष्ठ",
-       "searchprofile-project": "सहायता और परियोजना पृष्ठ",
        "searchprofile-images": "मल्टीमीडिया",
        "searchprofile-everything": "सब कुछ",
        "searchprofile-advanced": "उन्नत",
        "searchprofile-articles-tooltip": "$1 में खोजें",
-       "searchprofile-project-tooltip": "$1 में खोजें",
        "searchprofile-images-tooltip": "फ़ाइलें खोजें",
        "searchprofile-everything-tooltip": "(वार्ता पृष्ठों सहित) सारी सामग्री में खोजें",
        "searchprofile-advanced-tooltip": "विशेष नामस्थानों में खोजें",
        "search-interwiki-default": "$1 से परिणाम:",
        "search-interwiki-more": "(और)",
        "search-relatedarticle": "सम्बंधित",
-       "searcheverything-enable": "सभी नामस्थानों में खोजें",
        "searchrelated": "सम्बंधित",
        "searchall": "सभी",
        "showingresults": "नीचे क्रमांक '''$2''' से प्रारंभ कर के अधिकतम '''$1''' परिणाम {{PLURAL:$1|दिखाया गया है|दिखाए गए हैं}}।",
        "allowemail": "अन्य सदस्यों से ई-मेल सक्षम करें",
        "prefs-searchoptions": "खोज",
        "prefs-namespaces": "नामस्थान",
-       "defaultns": "अन्यथा इन नामस्थानों में खोजें:",
        "default": "डिफ़ॉल्ट",
        "prefs-files": "फ़ाइलें",
        "prefs-custom-css": "खासमखास सी॰एस॰एस",
        "prefs-emailconfirm-label": "ई-मेल पुष्टिकरण:",
        "youremail": "आपका ई-मेल पता:",
        "username": "{{GENDER:$1|सदस्यनाम}}:",
-       "uid": "{{GENDER:$1|सदस्य}} क्रमांक:",
        "prefs-memberingroups": "निम्नलिखित {{PLURAL:$1|समूह|समूहों}} के {{GENDER:$2|सदस्य}}:",
        "prefs-registration": "पंजीकरण समय:",
        "yourrealname": "वास्तविक नाम:",
        "recentchanges-label-unpatrolled": "यह संपादन अभी जाँचा नहीं गया है",
        "recentchanges-label-plusminus": "पृष्ठ आकार इस बाइट संख्या से बदला",
        "recentchanges-legend-heading": "'''कुंजी:'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|नए पन्नों की सूची]] को भी देखें)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|नए पन्नों की सूची]] को भी देखें)",
        "rcnotefrom": "नीचे <strong>$2</strong> के बाद से (<strong>$1</strong> तक) हुए बदलाव दर्शाए गये हैं।",
        "rclistfrom": "$3 $2 से नये बदलाव दिखाएँ",
        "rcshowhideminor": "छोटे बदलाव $1",
        "log-title-wildcard": "इस पाठ से शुरू होने वाले शीर्षक खोजें",
        "showhideselectedlogentries": "चयनित लॉग प्रविष्टियाँ दिखाएँ/छुपाएँ",
        "allpages": "सभी पृष्ठ",
-       "alphaindexline": "$1 से $2",
        "nextpage": "अगला पृष्ठ ($1)",
        "prevpage": "पिछला पृष्ठ ($1)",
        "allpagesfrom": "इस अक्षर से आरंभ होने वाले पृष्ठ दर्शाएँ:",
index e747c41..2057d05 100644 (file)
        "user-mail-no-addy": "Pokušaj slanja e-maila bez e-mail adrese.",
        "user-mail-no-body": "Pokušali ste poslati e-mail bez sadržaja ili s prekratkim sadržajem.",
        "changepassword": "Promjena lozinke",
-       "resetpass_announce": "Prijavljeni ste s privremenom lozinkom. Da završite proces mijenjanja lozinke, upišite ovdje novu lozinku:",
+       "resetpass_announce": "Da biste završili proces mijenjanja lozinke, upišite \nnovu lozinku.",
        "resetpass_header": "Promijeni lozinku računa",
        "oldpassword": "Stara lozinka",
        "newpassword": "Nova lozinka",
        "resetpass-abort-generic": "Poništena je promjena zaporke.",
        "passwordreset": "Ponovno postavi lozinku",
        "passwordreset-text-one": "Ispunite ovaj obrazac ako želite ponovno postaviti Vašu zaporku.",
-       "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja za ponovno postavljanje Vaše zaporke.}}",
+       "passwordreset-text-many": "{{PLURAL:$1|Ispunite jedno od polja da biste dobili privremenu zaporku e-poštom.}}",
        "passwordreset-legend": "Poništi lozinku",
        "passwordreset-disabled": "Poništavanje lozinke je onemogućeno na ovom wikiju.",
        "passwordreset-emaildisabled": "Funkcija e-pošte je onemogućena na ovom wikiju.",
        "passwordreset-emailelement": "Suradničko ime: $1\nPrivremena lozinka: $2",
        "passwordreset-emailsent": "E-mail podsjetnik zaporke je poslan.",
        "passwordreset-emailsent-capture": "Poslan Vam je podsjetnik kao e-pošta (tekst je prikazan dolje).",
-       "passwordreset-emailerror-capture": "Napravljen je podsjetnik za slanje e-pošte (prikazan dolje), ali njegovo slanje nije uspjelo: $1",
+       "passwordreset-emailerror-capture": "Napravljena je e-poruka za ponovno postavljanje zaporke (prikazana ispod), ali njeno slanje suradniku nije uspjelo: $1",
        "changeemail": "Promijeni e-mail adresu",
        "changeemail-header": "Promijeni e-mail adresu računa",
        "changeemail-text": "Za promjenu e-mail adrese popunite ovaj obrazac. Morat ćete unijeti svoju lozinku da potvrdite ovu promjenu.",
        "revdelete-no-file": "Navedena datoteka ne postoji.",
        "revdelete-show-file-confirm": "Jeste li sigurni da želite pregledati izbrisanu inačicu datoteke \"<nowiki>$1</nowiki>\" od $2 u $3?",
        "revdelete-show-file-submit": "Da",
+       "revdelete-selected-text": "{{PLURAL:$1|Označena izmjena|Označene izmjene}} stranice [[:$2]]:",
+       "revdelete-selected-file": "{{PLURAL:$1|Označena inačica|Označene inačice}} datoteke [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Odabrani zapis u evidenciji|Odabrani zapisi u evidenciji}}:",
+       "revdelete-text-text": "Izbrisane izmjene će i dalje biti vidljive u povijesti stranice, ali dijelovi sadržaja neće biti vidljivi javno.",
+       "revdelete-text-others": "Ostali administratori na projektu {{SITENAME}} će moći vidjeti i vratiti izbrisani sadržaj na isti način, osim ako nisu postavljena dodatna ograničenja.",
        "revdelete-confirm": "Molimo potvrdite da namjeravate ovo učiniti, da razumijete posljedice i da to činite u skladu s [[{{MediaWiki:Policy-url}}|pravilima]].",
        "revdelete-suppress-text": "Sklanjanje uređivanja treba raditi '''iznimno''' u slijedećih par slučajeva:\n* Privatne informacije neprilične javnom mediju tipa\n*: ''kućna adresa i broj telefona, JMBG ili OIB, itd.''",
        "revdelete-legend": "Postavi ograničenja na izmjenu:",
        "svg-long-desc": "SVG datoteka, nominalno $1 × $2 piksela, veličina datoteke: $3",
        "svg-long-desc-animated": "Animirana SVG datoteka, veličine $1 × $2 piksela, veličina datoteke: $3",
        "svg-long-error": "Nevaljana SVG datoteka: $1",
-       "show-big-image": "Vidi sliku u punoj veličini (rezoluciji)",
+       "show-big-image": "Vidi sliku u punoj veličini",
        "show-big-image-preview": "Veličina ovog prikaza: $1.",
        "show-big-image-other": "{{PLURAL:$2|Druga rezolucija|Ostale rezolucije}}: $1.",
        "show-big-image-size": "$1 × $2 piksela",
index b9bec71..ce8e72b 100644 (file)
        "searchmenu-exists": "'''Es gebt en Seit, wo den Noome \"[[:$1]]\" hot.''' \n{{PLURAL:$2|0=|Sieh ooch die annre Suchresultate wo gefund woore.}}",
        "searchmenu-new": "<strong>Erstell die Seit \"[[:$1]]\" in dem Wiki.</strong> {{PLURAL:$2|0=|Sieh ooch die üwer dein Such gefundne Seit.|Sieh ooch die gefundne Suchergebnisse.}}",
        "searchprofile-articles": "Inhaltsseite",
-       "searchprofile-project": "Helleft - und Projektseite",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Alles",
        "searchprofile-advanced": "Erweitert",
        "searchprofile-articles-tooltip": "Suche in $1",
-       "searchprofile-project-tooltip": "Such in $1",
        "searchprofile-images-tooltip": "Noh Dateie suche",
        "searchprofile-everything-tooltip": "Gesamte Inhalt doorrichsuche (inklusive Diskussionsseite)",
        "searchprofile-advanced-tooltip": "Such in weitre Noomeräume",
        "search-interwiki-default": "Ergebnisse von $1:",
        "search-interwiki-more": "(weitre)",
        "search-relatedarticle": "Verwandte",
-       "searcheverything-enable": "In alle Noomeräume suche",
        "searchrelated": "verwandt",
        "searchall": "alle",
        "showingresults": "Hier {{PLURAL:$1|ist '''1''' Ergebnis|sind '''$1''' Ergebnisse}}, beginnend mit Nummer '''$2.'''",
        "allowemail": "E-Mail-Empfang von annre Benutzer ermöchliche",
        "prefs-searchoptions": "Such",
        "prefs-namespaces": "Noomeräume",
-       "defaultns": "Annrenfalls in den Noomeräume suche:",
        "default": "Voareinstellung",
        "prefs-files": "Dateie",
        "prefs-custom-css": "Benutzerdefinierte CSS",
        "recentchanges-label-unpatrolled": "Nicht-kontrollierte Ännrung",
        "recentchanges-label-plusminus": "Die Ännrung von der Seitengröss in Bytes",
        "recentchanges-legend-heading": "'''Legende:'''",
-       "recentchanges-legend-newpage": "(sieh ooch die [[Special:NewPages|List von neier Seite]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (sieh ooch die [[Special:NewPages|List von neier Seite]])",
        "rcnotefrom": "Oongezeicht sin die Ännrunge seit <strong>$2</strong> (max. <strong>$1</strong> Einträch).",
        "rclistfrom": "Nuar Ännrunge seit $3, $2 Uhr zeiche.",
        "rcshowhideminor": "Klene Ändrunge $1",
index 336c9c1..c4368db 100644 (file)
        "vector-view-view": "Čitać",
        "vector-view-viewsource": "Žórło sej wobhladać",
        "actions": "Akcije",
+       "vector-more-actions": "Wjace",
        "namespaces": "Mjenowe rumy",
        "variants": "Warianty",
        "navigation-heading": "Nawigaciski meni",
        "parser-template-recursion-depth-warning": "Limit za rekursijnu hłubokosć předłohi překročeny ($1)",
        "language-converter-depth-warning": "Limit hłubokosće rěčneho konwertera překročena ($1)",
        "node-count-exceeded-category": "Strony, hdźež ličba sukow je překročena",
+       "node-count-exceeded-category-desc": "Kategorija za strony, hdźež ličba sukow je překročena.",
        "node-count-exceeded-warning": "Strona je ličbu sukow překročiła",
        "expansion-depth-exceeded-category": "Strony, hdźež ekspansiska hłubokosć je překročena",
+       "expansion-depth-exceeded-category-desc": "To je kategorija za strony, hdźež ekspansiska hłubokosć je překročena.",
        "expansion-depth-exceeded-warning": "Strona je ekspansisku hłubokosć překročił",
        "parser-unstrip-loop-warning": "Njeskónčna sekla namakana",
        "parser-unstrip-recursion-limit": "Rekursiska hranica překročena ($1)",
        "currentrev": "Aktualna wersija",
        "currentrev-asof": "Aktualna wersija wot $1",
        "revisionasof": "Wersija wot $1",
-       "revision-info": "Wersija wot $1 wužiwarja $2",
+       "revision-info": "Wersija wot $1 wužiwarja {{GENDER:$6|$2}}$7",
        "previousrevision": "← Starša wersija",
        "nextrevision": "Nowša wersija →",
        "currentrevisionlink": "Aktualna wersija",
        "searchmenu-exists": "'''Je strona z mjenom \"[[$1]]\" na tutym wikiju'''",
        "searchmenu-new": "<strong>Wutwor stronu \"[[:$1]]\" na tutym wikiju!</strong> {{PLURAL:$2|0=|Hlej tež stronu namakanu z twojim pytanjom.|Hlej tež namakane pytanske wuslědki.}}",
        "searchprofile-articles": "Wobsahowe strony",
-       "searchprofile-project": "Pomoc a projektowe strony",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Wšitko",
        "searchprofile-advanced": "Rozšěrjeny",
        "searchprofile-articles-tooltip": "W $1 pytać",
-       "searchprofile-project-tooltip": "W $1 pytać",
        "searchprofile-images-tooltip": "Za datajemi pytać",
        "searchprofile-everything-tooltip": "Cyły wobsah přepytać (inkluziwnje diskusijne strony)",
        "searchprofile-advanced-tooltip": "W swójskich mjenowych rumach pytać",
        "search-interwiki-default": "Wuslědki z $1:",
        "search-interwiki-more": "(dalše)",
        "search-relatedarticle": "Přiwuzne",
-       "searcheverything-enable": "We wšěch mjenowych rumach pytać",
        "searchrelated": "přiwuzny",
        "searchall": "wšě",
        "showingresults": "Deleka so hač {{PLURAL:$1|'''1''' wuslědk pokazuje|'''$1''' wuslědkaj pokazujetej|'''$1''' wuslědki pokazuja|'''$1''' wuslědkow pokazuje}}, započinajo z #'''$2'''.",
        "powersearch-togglelabel": "Kontrolować:",
        "powersearch-toggleall": "Wšě",
        "powersearch-togglenone": "Žadyn",
+       "powersearch-remember": "Wuběr za přichodne pytanja sej spomjatkować",
        "search-external": "Eksterne pytanje",
        "searchdisabled": "Pytanje w {{GRAMMAR:lokatiw|{{SITENAME}}}} tuchwilu móžne njeje. Móžeš mjeztym z Google pytać. Wobkedźbuj, zo móža wuslědki z wobsaha {{GRAMMAR:genitiw|{{SITENAME}}}} zestarjene być.",
        "search-error": "Při pytanju je so zmylk wustupił: $1",
        "allowemail": "Mejlki wot druhich wužiwarjow přijimować",
        "prefs-searchoptions": "Pytać",
        "prefs-namespaces": "Mjenowe rumy",
-       "defaultns": "Hewak w tutych mjenowych rumach pytać:",
        "default": "standard",
        "prefs-files": "Dataje",
        "prefs-custom-css": "Swójski CSS",
        "right-move": "Strony přesunyć",
        "right-move-subpages": "Strony z jich podstronami přesunyć",
        "right-move-rootuserpages": "Hłowne wužiwarske strony přesunyć",
+       "right-move-categorypages": "Kategorijowe strony přesunyć",
        "right-movefile": "Dataje přesunyć",
        "right-suppressredirect": "Při přesunjenju strony ze stareho mjena žane daleposrědkowanje wutworić",
        "right-upload": "Dataje nahrać",
        "action-move": "tutu stronu přesunyć",
        "action-move-subpages": "tutu stronu a jeje podstrony přesunyć",
        "action-move-rootuserpages": "hłowne wužiwarske strony přesunyć",
+       "action-move-categorypages": "kategorijowe strony přesunyć",
        "action-movefile": "Tutu dataju přesunyć",
        "action-upload": "tutu dataju nahrać",
        "action-reupload": "eksistowacu dataju přepisać",
        "recentchanges-label-unpatrolled": "Tuta změnu hišće njebu přepruwowana",
        "recentchanges-label-plusminus": "Změnjena wulkosć strony (w bajtach)",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "(hlej tež [[Special:NewPages|lisćinu nowych stronow]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (hlej tež [[Special:NewPages|lisćinu nowych stronow]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Deleka so změny wot <strong>$2</strong> pokazuja (hač k <strong>$1</strong>).",
        "rclistfrom": "Nowe změny pokazać, započinajo z $3 $2",
        "wantedtemplates": "Falowace předłohi",
        "mostlinked": "Z najwjace stronami zwjazane strony",
        "mostlinkedcategories": "Z najwjace stronami zwjazane kategorije",
-       "mostlinkedtemplates": "Najhusćišo wužiwane předłohi",
+       "mostlinkedtemplates": "Najhusćišo zapřijate strony",
        "mostcategories": "Strony z najwjace kategorijemi",
        "mostimages": "Z najwjace stronami zwjazane dataje",
        "mostinterwikis": "Strony z najwjace mjezyrěčnymi wotkazami",
        "watchnologin": "Njejsy přizjewjeny.",
        "addwatch": "K wobkedźbowankam přidać",
        "addedwatchtext": "Strona [[:$1]] bu k twojim [[Special:Watchlist|wobkedźbowankam]] přidata.\nPřichodne změny tuteje strony a přisłušneje diskusijneje strony budu so tam nalistować.",
+       "addedwatchtext-short": "Strona \"$1\" je so wobkedźbowankam přidała.",
        "removewatch": "Z wobkedźbowankow wotstronić",
        "removedwatchtext": "Strona \"[[:$1]]\" bu z [[Special:Watchlist|twojich wobkedźbowankow]] wotstronjena.",
+       "removedwatchtext-short": "Strona \"$1\" je so z twojich wobkedźbowankow wotstroniła.",
        "watch": "wobkedźbować",
        "watchthispage": "stronu wobkedźbować",
        "unwatch": "njewobkedźbować",
        "movepagetalktext": "Přisłušna diskusijna strona přesunje so awtomatisce hromadźe z njej, <b>chibazo:</b>\n*Njeprózdna diskusijna strona pod nowym mjenom hižo eksistuje abo\n*wotstronješ hóčku z kašćika deleka.\n\nW tutych padach dyrbiš stronu manuelnje přesunyć abo zaměšeć, jeli sej to přeješ.",
        "movearticle": "Stronu přesunyć",
        "moveuserpage-warning": "'''Warnowanje:''' Sy při tym wužiwarsku stronu přesunyć. Prošu dźiwaj na to, zo so jenož strona posunje a wužiwar so ''nje''budźe přemjenować.",
+       "movecategorypage-warning": "<strong>Warnowanje:</strong> Chceš runje kategorijowu stronu přesunyć. Prošu dźiwaj na to, zo so jenož strona přesunje a strony w starej kategoriji <em>nje</em>budu so nowo kategorizować.",
        "movenologintext": "Dyrbiš zregistrowany wužiwar a [[Special:UserLogin|přizjewjeny]] być, zo by stronu přesunył.",
        "movenotallowed": "Nimaš prawo, zo by strony přesunył.",
        "movenotallowedfile": "Nimaš prawo dataje přesunyć.",
        "cant-move-user-page": "Nimaš prawo wužiwarske strony přesunyć (wothladajo wot podstronow)",
        "cant-move-to-user-page": "Nimaš prawo stronu do wužiwarskeje strony přesunyć (z wuwzaćom do wužiwarskeje podstrony).",
+       "cant-move-category-page": "Nimaš prawo, zo by kategorijowe strony přesunył.",
+       "cant-move-to-category-page": "Nimaš prawo, stronu do kategorijoweje strony přesunyć.",
        "newtitle": "pod nowe hesło",
        "move-watch": "Stronu wobkedźbować",
        "movepagebtn": "Stronu přesunyć",
        "pageinfo-category-pages": "Ličba rěkow",
        "pageinfo-category-subcats": "Ličba podkategorijow",
        "pageinfo-category-files": "Ličba datajow",
-       "skinname-cologneblue": "Kölnjanska módrina",
        "skinname-monobook": "MonoBook",
-       "skinname-modern": "Moderny",
        "markaspatrolleddiff": "Změnu jako přepruwowanu woznamjenić",
        "markaspatrolledtext": "Tutu změnu nastawka jako přepruwowanu woznamjenić",
        "markedaspatrolled": "Změna bu jako přepruwowana woznamjenjena.",
        "newimages-summary": "Tuta specialna strona naliči aktualnje nahrate wobrazy a druhe dataje.",
        "newimages-legend": "Filter",
        "newimages-label": "Datajowe mjeno (abo dźěl z njeho):",
+       "newimages-showbots": "Nahraća boćikow pokazać",
        "noimages": "Žane dataje.",
        "ilsubmit": "Pytać",
        "bydate": "datumje",
        "watchlistedit-raw-done": "Twoje wobkedźbowanki buchu składowane.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 zapisk bu dodaty|$1 zapiskaj buštej dodatej|$1 zapiski buchu dodate|$1 zapiskow buchu dodate}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 zapisk bu wotstronjeny|$1 zapiskaj buštej wotstronjenej|$1 zapiski buchu wotstronjene|$1 zapiskow buchu wotstronjene}}:",
+       "watchlistedit-clear-title": "Wotstronjene wobkedźbowanki",
+       "watchlistedit-clear-legend": "Wobkedźbowanki wotstronić",
+       "watchlistedit-clear-explain": "Wšě titule budu so z twojich wobkedźbowankow wotstronjeć",
+       "watchlistedit-clear-titles": "Titule:",
+       "watchlistedit-clear-submit": "Wobkedźbowanki wotstronić (To je na přeco!)",
+       "watchlistedit-clear-done": "Waše wobkedźbowanki su so wotstronili.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 titul bu wotstronjeny|$1 titulej buštej wotstronjenej|$1 titule buchu wotstronjene|$1 titulow bu wotstronjene}}:",
+       "watchlistedit-too-many": "Je tu přewjele stronow za zwobraznjenje.",
+       "watchlisttools-clear": "Wobkedźbowanki wotstronić",
        "watchlisttools-view": "Wobkedźbowanki: Změny",
        "watchlisttools-edit": "normalnje wobdźěłać",
        "watchlisttools-raw": "Lisćinowy format wobdźěłać (import/eksport)",
index e163ae0..97bdee8 100644 (file)
        "powersearch-togglelabel": "Megjelölés:",
        "powersearch-toggleall": "Mind",
        "powersearch-togglenone": "Egyik sem",
+       "powersearch-remember": "Kiválasztások megjegyzése a későbbi keresésekhez",
        "search-external": "Külső kereső",
        "searchdisabled": "Elnézésed kérjük, de a teljes szöveges keresés terhelési okok miatt átmenetileg nem használható. Ezidő alatt használhatod a lenti Google keresést, mely viszont lehetséges, hogy nem teljesen friss adatokkal dolgozik.",
        "search-error": "A keresés közben hiba történt: $1",
        "recentchanges-label-unpatrolled": "Ezt a szerkesztést még nem ellenőrizték",
        "recentchanges-label-plusminus": "Az oldal mérete ennyi bájttal módosult",
        "recentchanges-legend-heading": "Jelmagyarázat:",
-       "recentchanges-legend-newpage": "(lásd még: [[Special:NewPages|Új lapok]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (lásd még: [[Special:NewPages|új lapok listája]])",
        "rcnotefrom": "Alább a <b>$2</b> óta történt változtatások láthatóak (legfeljebb <b>$1</b> db).",
        "rclistfrom": "$3 $2 után történt változtatások megtekintése",
        "rcshowhideminor": "apró szerkesztések $1",
        "protect-existing-expiry": "Jelenleg érvényben lévő lejárati idő: $2, $3",
        "protect-otherreason": "További okok:",
        "protect-otherreason-op": "Más/további ok:",
-       "protect-dropdown": "*Általános védelmi okok\n** Gyakori vandalizmus\n** Gyakori spamelés\n** Nagyforgalmú lap",
+       "protect-dropdown": "*Általános védelmi okok\n** Gyakori vandalizmus\n** Gyakori spammelés\n** Destruktív szerkesztési háború\n** Nagy forgalmú lap",
        "protect-edit-reasonlist": "Lapvédelem oka",
        "protect-expiry-options": "1 óra:1 hour,1 nap:1 day,1 hét:1 week,2 hét:2 weeks,1 hónap:1 month,3 hónap:3 months,6 hónap:6 months,1 év:1 year,végtelen:infinite",
        "restriction-type": "Engedély:",
index ce10d7e..606ff5b 100644 (file)
        "searchmenu-exists": "'''Այս վիքիում, գոյություն ունի \"[[:$1]]\" անվանումով էջը։'''",
        "searchmenu-new": "'''Ստեղծե՛լ \"[[:$1]]\" էջը այս վիքիում'''",
        "searchprofile-articles": "Հիմնական էջեր",
-       "searchprofile-project": "Օգնության և նախագծերի էջեր",
        "searchprofile-images": "Մուլտիմեդիա",
        "searchprofile-everything": "Ամենուրեք",
        "searchprofile-advanced": "Ընդլայնված",
        "searchprofile-articles-tooltip": "Որոնել $1ում",
-       "searchprofile-project-tooltip": "Որոնել $1ում",
        "searchprofile-images-tooltip": "Նիշքերի որոնում",
        "searchprofile-everything-tooltip": "Որոնել բոլոր էջերում (այդ թվում քննարկման)",
        "searchprofile-advanced-tooltip": "Որոնել նշված անվանատարածքներում",
        "search-interwiki-default": "$1 արդյունք.",
        "search-interwiki-more": "(էլի)",
        "search-relatedarticle": "Հարակից",
-       "searcheverything-enable": "Որոնել բոլոր անվանատարածքներում",
        "searchrelated": "հարակից",
        "searchall": "բոլոր",
        "showingresults": "Ստորև բերված է մինչև {{PLURAL:$1|'''1''' արդյունք|'''$1''' արդյունք}}՝ սկսած №&nbsp;<strong>$2</strong>-ից։",
        "allowemail": "Թույլատրել էլ-նամակներ մյուս մասնակիցներից",
        "prefs-searchoptions": "Որոնում",
        "prefs-namespaces": "Անվանատարածք",
-       "defaultns": "Հակառակ դեպքում, որոնել այս անվանատարծքներում․",
        "default": "լռությամբ",
        "prefs-files": "Նիշքեր",
        "prefs-custom-css": "Անհատական CSS",
        "prefs-emailconfirm-label": "Էլ-փոստի վավերացում․",
        "youremail": "Էլեկտրոնային փոստ.",
        "username": "{{GENDER:$1|Մասնակցի անուն}}՝",
-       "uid": "Մասնակցի իդենտիֆիկատոր.",
        "prefs-memberingroups": "Անդամակցության {{PLURAL:$1|խումբ|խմբեր}}.",
        "prefs-registration": "Գրանցման ամսաթիվը․",
        "yourrealname": "Ձեր իրական անունը.",
        "recentchanges-label-bot": "Այս խմբագրումը կատարվել է բոտի կողմից",
        "recentchanges-label-unpatrolled": "Այս խմբագրումը դեռ չի պարեկվել",
        "recentchanges-label-plusminus": "Էջի չափսն փոխոխվեց այսքան բայթով։",
-       "recentchanges-legend-newpage": "(տես նաև՝  [[Special:NewPages|նոր էջերի ցանկ]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (տես նաև՝  [[Special:NewPages|նոր էջերի ցանկ]])",
        "rcnotefrom": "Ստորև բերված են փոփոխությունները սկսած՝ '''$2''' (մինչև՝ '''$1''')։",
        "rclistfrom": "Ցույց տալ նոր փոփոխությունները սկսած $3 $2",
        "rcshowhideminor": "$1 չնչին խմբագրումները",
        "logempty": "Տեղեկամատյանում չկան համընկնող տարրեր։",
        "log-title-wildcard": "Որոնել այս տեքստով սկսվող անվանումներ",
        "allpages": "Բոլոր էջերը",
-       "alphaindexline": "$1 -ից՝ $2",
        "nextpage": "Հաջորդ էջը ($1)",
        "prevpage": "Նախորդ էջը ($1)",
        "allpagesfrom": "Ցույց տալ էջերը, որոնք սկսվում են՝",
        "pageinfo-contentpage": "Հաշվառված որպես բովանդակային էջ",
        "pageinfo-contentpage-yes": "Այո",
        "pageinfo-protect-cascading-yes": "Այո",
-       "skinname-cologneblue": "Քյոլնի թախիծ",
        "skinname-monobook": "ՄիաԳիրք",
-       "skinname-modern": "Մոդերն",
        "skinname-vector": "Սովորական",
        "markaspatrolleddiff": "Նշել որպես ստուգված",
        "markaspatrolledtext": "Նշել այս էջը որպես ստուգված",
index ad82ee0..119fc6c 100644 (file)
        "recentchanges-label-unpatrolled": "Iste modification non ha ancora essite patruliate",
        "recentchanges-label-plusminus": "Le dimension del pagina ha cambiate de iste numero de bytes",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "(vide etiam le [[Special:NewPages|lista de nove paginas]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vide etiam le [[Special:NewPages|lista de nove paginas]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Ecce le modificationes a partir del <strong>$3 a $4</strong> (usque a <strong>$1</strong> entratas).",
        "rclistfrom": "Monstrar nove modificationes a partir de $3 $2",
index 8224a9c..cc9919b 100644 (file)
@@ -34,7 +34,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "C5st4wr6ch",
-                       "Raynasution"
+                       "Raynasution",
+                       "Arifin.wijaya"
                ]
        },
        "tog-underline": "Garis bawahi pranala:",
@@ -47,7 +48,7 @@
        "tog-showtoolbar": "Tampilkan bilah alat penyuntingan",
        "tog-editondblclick": "Sunting halaman dengan klik ganda",
        "tog-editsectiononrightclick": "Fungsikan penyuntingan bagian dengan mengeklik kanan pada judul bagian",
-       "tog-watchcreations": "Tambahkan halaman yang saya buat ke daftar pantauan",
+       "tog-watchcreations": "Tambahkan halaman yang saya buat dan berkas yang saya unggah ke daftar pantauan",
        "tog-watchdefault": "Tambahkan halaman yang saya sunting ke daftar pantauan",
        "tog-watchmoves": "Tambahkan halaman yang saya pindahkan ke daftar pantauan",
        "tog-watchdeletion": "Tambahkan halaman yang saya hapus ke daftar pantauan",
        "vector-view-view": "Baca",
        "vector-view-viewsource": "Lihat sumber",
        "actions": "Tindakan",
+       "vector-more-actions": "Lainnya",
        "namespaces": "Ruang nama",
        "variants": "Varian",
        "navigation-heading": "Menu navigasi",
        "pool-timeout": "Lewat waktu menunggu kunci",
        "pool-queuefull": "Kumpulan antrean penuh",
        "pool-errorunknown": "Kesalahan yang tidak diketahui",
+       "pool-servererror": "Layanan penghitung pool ini tidak tersedia ($1).",
        "aboutsite": "Tentang {{SITENAME}}",
        "aboutpage": "Project:Perihal",
        "copyright": "Konten tersedia sesuai di bawah $1.",
        "parser-template-recursion-depth-warning": "Limit kedalaman hubungan berulang templat terlampaui ($1)",
        "language-converter-depth-warning": "Batas kedalaman pengonversi bahasa terlampaui ($1)",
        "node-count-exceeded-category": "Halaman dimana hitungan-node terlampaui",
+       "node-count-exceeded-category-desc": "Kategori untuk halaman dimana hitungan-node terlampaui.",
        "node-count-exceeded-warning": "Page exceeded the node-count",
        "expansion-depth-exceeded-category": "Pages where expansion depth is exceeded",
+       "expansion-depth-exceeded-category-desc": "Ini adalah kategori untuk halaman dimana kedalaman ekspansi terlampaui.",
        "expansion-depth-exceeded-warning": "Page exceeded the expansion depth",
        "parser-unstrip-loop-warning": "Unstrip loop detected",
        "parser-unstrip-recursion-limit": "Unstrip recursion limit exceeded ($1)",
        "currentrev": "Revisi terkini",
        "currentrev-asof": "Revisi terkini pada $1",
        "revisionasof": "Revisi per $1",
-       "revision-info": "Revisi per $1; $2",
+       "revision-info": "Revisi per $1 oleh {{GENDER:$6|$2}}$7",
        "previousrevision": "←Revisi sebelumnya",
        "nextrevision": "Revisi selanjutnya→",
        "currentrevisionlink": "Revisi terkini",
        "revdelete-selected-text": "{{PLURAL:$1|Revisi terpilih|Revisi terpilih}} dari [[:$2]]:",
        "revdelete-selected-file": "{{PLURAL:$1|Versi berkas terpilih|Versi berkas terpilih}} dari [[:$2]]:",
        "logdelete-selected": "{{PLURAL:$1|Log|Log-log}} pilihan untuk:",
+       "revdelete-text-text": "Revisi yang dihapus akan tetap muncul di halaman riwayat, tetapi bagian dari konten mereka akan menjadi tidak dapat diakses untuk umum.",
+       "revdelete-text-file": "Versi berkas yang dihapus akan tetap muncul di riwayat berkas, tetapi bagian dari konten mereka akan menjadi tidak dapat diakses untuk umum.",
+       "logdelete-text": "Acara log yang dihapus akan tetap muncul di log, tetapi bagian dari konten mereka akan menjadi tidak dapat diakses untuk umum.",
        "revdelete-text-others": "Pengurus lain pada {{SITENAME}} masih akan dapat mengakses konten tersembunyi dan dapat membatalkan penghapusan itu kembali melalui antarmuka yang sama ini, kecuali ada batasan-batasan tambahan yang ditetapkan.",
        "revdelete-confirm": "Tolong konfirmasi bahwa Anda memang bermaksud melakukan ini, memahami konsekuensinya, dan bahwa Anda melakukannya sesuai dengan [[{{MediaWiki:Policy-url}}|kebijakan]].",
        "revdelete-suppress-text": "Penyembunyian revisi '''hanya''' boleh digunakan untuk kasus-kasus berikut:\n* Informasi yang berpotensi memfitnah\n* Informasi pribadi yang tak sepantasnya\n*: ''alamat rumah dan nomor telepon, nomor kartu identitas, dan lain-lain.''",
        "editundo": "balikkan",
        "diff-empty": "(Tidak ada perbedaan)",
        "diff-multi-sameuser": "({{PLURAL:$1|Satu revisi antara|$1 revisi antara}} oleh pengguna yang sama tidak ditampilkan)",
+       "diff-multi-otherusers": "({{PLURAL:$1|Satu revisi antara|$1 revisi antara}} oleh {{PLURAL:$2|satu pengguna lainnya|$2 pengguna}} tidak ditampilkan)",
        "diff-multi-manyusers": "({{PLURAL:$1|Satu|$1}} revisi antara oleh lebih dari $2 {{PLURAL:$2|satu|$2}} pengguna tak ditampilkan)",
        "difference-missing-revision": "{{PLURAL:$2|Satu revisi|$2 revisi}} dari perbedaan ini ($1) {{PLURAL:$2|tidak|tidak}} ditemukan.\n\nHal ini biasanya disebabkan oleh tautan diff yang kedaluwarsa ke halaman yang sudah dihapus.\nRinciannya dapat ditemukan di [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log penghapusan].",
        "searchresults": "Hasil pencarian",
        "right-move": "Memindahkan halaman",
        "right-move-subpages": "Memindahkan halaman dengan seluruh subhalamannya",
        "right-move-rootuserpages": "Memindahkan halaman utama pengguna",
+       "right-move-categorypages": "Pindahkan halaman kategori",
        "right-movefile": "Memindahkan berkas",
        "right-suppressredirect": "Tidak membuat pengalihan dari nama lama ketika memindahkan halaman",
        "right-upload": "Memuat berkas",
        "action-createpage": "membuat halaman baru",
        "action-createtalk": "membuat halaman pembicaraan baru",
        "action-createaccount": "membuat akun pengguna ini",
+       "action-history": "lihat riwayat halaman ini",
        "action-minoredit": "menandai sebagai suntingan kecil",
        "action-move": "memindahkan halaman ini",
        "action-move-subpages": "memindahkan halaman ini, dan semua sub-halamannya",
        "action-move-rootuserpages": "memindahkan halaman utama pengguna",
+       "action-move-categorypages": "pindahkan halaman kategori",
        "action-movefile": "pindahkan berkas ini",
        "action-upload": "memuatkan berkas ini",
        "action-reupload": "menimpa berkas yang telah ada",
        "recentchanges-label-unpatrolled": "Suntingan ini belum terpatroli",
        "recentchanges-label-plusminus": "Perubahan ukuran halaman dalam bita",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "(lihat pula [[Special:NewPages|daftar halaman baru]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (lihat pula [[Special:NewPages|daftar halaman baru]])",
        "rcnotefrom": "Di bawah ini adalah perubahan sejak <strong>$2</strong> (ditampilkan sampai <strong>$1</strong> perubahan).",
        "rclistfrom": "Perlihatkan perubahan terbaru sejak $3 $2",
        "rcshowhideminor": "$1 suntingan kecil",
        "unwatchedpages": "Halaman yang tak dipantau",
        "listredirects": "Daftar pengalihan",
        "listduplicatedfiles": "Daftar berkas yang berduplikat",
+       "listduplicatedfiles-summary": "Ini adalah daftar berkas di mana versi terbaru dari berkas tersebut merupakan duplikat dari versi terbaru dari beberapa berkas lain. Hanya berkas lokal yang dianggap.",
        "listduplicatedfiles-entry": "[[:File:$1|$1]] memiliki [[$3|{{PLURAL:$2|sebuah duplikat|$2 duplikat}}]].",
        "unusedtemplates": "Templat yang tak digunakan",
        "unusedtemplatestext": "Daftar berikut adalah semua halaman pada ruang nama {{ns:template}} yang tidak dipakai di halaman mana pun.\nCek dahulu pranala lain ke templat tersebut sebelum menghapusnya.",
        "trackingcategories-name": "Nama pesan",
        "trackingcategories-desc": "Kriteria inklusi kategori",
        "noindex-category-desc": "Halaman tidak diindeks oleh robot karena ini mempunyai kata khusus <code><nowiki>__NOINDEX__</nowiki></code> padanya dan berada dalam ruang nama yang mengizinkan penanda itu.",
+       "index-category-desc": "Halaman ini memiliki <code><nowiki>__INDEX__</nowiki></code> di atasnya (dan dalam ruang nama yang mana bendera yang diperbolehkan), dan karenanya diindeks oleh robot di mana itu biasanya tidak akan.",
        "post-expand-template-inclusion-category-desc": "Setelah memperluas semua templat, ukuran halaman menjadi lebih besar dari <code>$wgMaxArticleSize</code>, sehingga beberapa templat tidak diperluas.",
+       "post-expand-template-argument-category-desc": "Setelah memperluas argumen templat (sesuatu dalam tiga tanda kurung, seperti <code>{{{Foo}}}</code>), halaman tersebut lebih besar dari <code>$wgMaxArticleSize</code>.",
+       "expensive-parserfunction-category-desc": "Terlalu banyak fungsi parser (seperti <code>#ifexist</code>) termasuk pada halaman. Lihat [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:$wgExpensiveParserFunctionLimit Manual:$wgExpensiveParserFunctionLimit].",
        "broken-file-category-desc": "Kategori ditambahkan jika halaman tersebut berisi pranala rusak (pranala untuk menanamkan sebuah berkas ketika berkas tersebut tidak ada).",
+       "hidden-category-category-desc": "Ini adalah kategori dengan <code><nowiki>__HIDDENCAT__</nowiki></code> di atasnya, yang mencegah dari muncul di kotak tautan kategori pada halaman, secara default.",
        "trackingcategories-nodesc": "Deskripsi tidak tersedia.",
        "trackingcategories-disabled": "Kategori dinonaktifkan",
        "mailnologin": "Tidak ada alamat surel",
        "watchnologin": "Belum masuk log",
        "addwatch": "Tambahkan ke daftar pantauan",
        "addedwatchtext": "Halaman \"[[:$1]]\" telah ditambahkan ke [[Special:Watchlist|daftar pantauan]] Anda.\nPerubahan-perubahan berikutnya pada halaman tersebut dan halaman pembicaraan terkaitnya akan tercantum di sini.",
+       "addedwatchtext-short": "Halaman \"$1\" telah ditambahkan ke daftar pantauan Anda.",
        "removewatch": "Hapus dari daftar pantauan",
        "removedwatchtext": "Halaman \"[[:$1]]\" telah dihapus dari [[Special:Watchlist|daftar pantauan]] Anda.",
+       "removedwatchtext-short": "Halaman \"$1\" telah dihapus dari daftar pantauan Anda.",
        "watch": "Pantau",
        "watchthispage": "Pantau halaman ini",
        "unwatch": "Batal pantau",
        "sp-contributions-newbies-sub": "Untuk pengguna baru",
        "sp-contributions-newbies-title": "Kontribusi pengguna baru",
        "sp-contributions-blocklog": "Log pemblokiran",
+       "sp-contributions-suppresslog": "kontribusi pengguna yang dihapus",
        "sp-contributions-deleted": "kontribusi pengguna yang dihapus",
        "sp-contributions-uploads": "unggahan",
        "sp-contributions-logs": "log",
        "blockipsuccesstext": "[[Special:Contributions/$1|$1]] telah diblokir.<br />\nLihat [[Special:BlockList|daftar pemblokiran]] untuk meninjau kembali pemblokiran.",
        "ipb-blockingself": "Anda akan memblokir diri sendiri! Apakah Anda yakin akan melakukannya?",
        "ipb-confirmhideuser": "Anda akan memblokir pengguna dengan mengaktifkan \"sembunyikan pengguna\" diaktifkan. Ini akan menyembunyikan nama pengguna pada semua daftar dan entri log. Apakah Anda yakin ingin melakukannya?",
+       "ipb-confirmaction": "Jika Anda yakin Anda benar-benar ingin melakukannya, periksa kolom \"{{int:ipb-confirm}}\" di bagian bawah.",
        "ipb-edit-dropdown": "Sunting alasan pemblokiran",
        "ipb-unblock-addr": "Hilangkan blokir $1",
        "ipb-unblock": "Hilangkan blokir seorang pengguna atau suatu alamat IP",
        "movepagetalktext": "Halaman pembicaraan yang berkaitan juga akan dipindahkan secara otomatis '''kecuali apabila:'''\n\n*Sebuah halaman pembicaraan yang tidak kosong telah ada di bawah judul baru, atau\n*Anda tidak memberi tanda cek pada kotak di bawah ini\n\nDalam kasus tersebut, apabila diinginkan, Anda dapat memindahkan atau menggabungkan halaman secara manual.",
        "movearticle": "Pindahkan halaman:",
        "moveuserpage-warning": "'''Peringatan:''' Anda tengah memindahkan halaman pengguna. Perlu diketahui bahwa hanya halaman yang akan dipindahkan namun pengguna ''tidak akan'' berganti nama.",
+       "movecategorypage-warning": "<strong>Peringatan:</strong> Anda akan memindahkan halaman kategori. Perlu diketahui bahwa hanya halaman yang akan dipindahkan dan setiap halaman dalam kategori lama <em>tidak</em> akan dikategorikan ulang ke yang baru.",
        "movenologintext": "Anda harus menjadi pengguna terdaftar dan telah [[Special:UserLogin|masuk log]] untuk dapat memindahkan suatu halaman.",
        "movenotallowed": "Anda tak memiliki hak akses untuk memindahkan halaman.",
        "movenotallowedfile": "Anda tak memiliki hak untuk memindahkan berkas.",
        "cant-move-user-page": "Anda tidak memiliki hak akses untuk memindahkan halaman pengguna (terpisah dari subhalaman).",
        "cant-move-to-user-page": "Anda tidak memiliki hak akses untuk memindahkan halaman ke suatu halaman pengguna (kecuali ke subhalaman pengguna).",
+       "cant-move-category-page": "Anda tidak memiliki izin untuk memindahkan halaman kategori.",
+       "cant-move-to-category-page": "Anda tidak memiliki izin untuk memindahkan halaman ke halaman kategori.",
        "newtitle": "Ke judul baru:",
        "move-watch": "Pantau halaman ini",
        "movepagebtn": "Pindahkan halaman",
        "thumbnail_image-type": "Tipe gambar tidak didukung",
        "thumbnail_gd-library": "Konfigurasi pustaka GD tak lengkap: tak ada fungsi $1",
        "thumbnail_image-missing": "Berkas yang tampaknya hilang: $1",
+       "thumbnail_image-failure-limit": "Ada terlalu banyak upaya yang gagal baru-baru ini ($1 atau lebih) untuk membuat miniatur ini. Silakan coba lagi nanti.",
        "import": "Impor halaman",
        "importinterwiki": "Impor transwiki",
        "import-interwiki-text": "Pilih suatu wiki dan judul halaman yang akan di impor.\nTanggal revisi dan nama penyunting akan dipertahankan.\nSemua aktivitas impor transwiki akan dicatat di [[Special:Log/import|log impor]].",
        "newimages-summary": "Halaman istimewa berikut menampilkan daftar berkas yang terakhir dimuat",
        "newimages-legend": "Penyaring",
        "newimages-label": "Nama berkas (atau sebagian dari nama berkas):",
+       "newimages-showbots": "Tampilkan unggahan oleh bot",
        "noimages": "Tidak ada yang dilihat.",
        "ilsubmit": "Cari",
        "bydate": "berdasarkan tanggal",
        "imgmultigo": "Cari!",
        "imgmultigoto": "Pergi ke halaman $1",
        "img-lang-default": "(bahasa default)",
+       "img-lang-info": "Jadikan gambar ini dalam $1. $2",
        "img-lang-go": "Tuju ke",
        "ascending_abbrev": "naik",
        "descending_abbrev": "turun",
        "watchlistedit-raw-done": "Daftar pantauan Anda telah diperbarui.",
        "watchlistedit-raw-added": "{{PLURAL:$1|$1 judul telah}} ditambahkan:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|$1 judul telah}} dikeluarkan:",
+       "watchlistedit-clear-title": "Daftar pantauan dihapus",
+       "watchlistedit-clear-legend": "Hapus daftar pantauan",
+       "watchlistedit-clear-explain": "Semua judul akan dihapus dari daftar pantauan Anda",
+       "watchlistedit-clear-titles": "Judul:",
+       "watchlistedit-clear-submit": "Hapus daftar pantauan (Ini bersifat permanen!)",
+       "watchlistedit-clear-done": "Daftar pantauan Anda telah dihapus.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 judul telah|$1 judul telah}} dihapus:",
+       "watchlistedit-too-many": "Ada terlalu banyak halaman untuk ditampilkan di sini.",
+       "watchlisttools-clear": "Hapus daftar pantauan",
        "watchlisttools-view": "Tampilkan perubahan terkait",
        "watchlisttools-edit": "Tampilkan dan sunting daftar pantauan",
        "watchlisttools-raw": "Sunting daftar pantauan mentah",
        "duration-centuries": "{{PLURAL:$1||}}$1 abad",
        "duration-millennia": "{{PLURAL:$1||}}$1 milenium",
        "rotate-comment": "Gambar diputar $1 {{PLURAL:$1|derajat}} searah jarum jam",
+       "limitreport-title": "Parser profil data:",
        "limitreport-cputime": "Penggunaan waktu CPU",
        "limitreport-cputime-value": "$1 {{PLURAL:$1|detik|detik}}",
        "limitreport-walltime": "Penggunaan waktu riil",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|detik|detik}}",
+       "limitreport-ppvisitednodes": "Preprosesor mengunjungi hitungan node",
+       "limitreport-ppgeneratednodes": "Preprosesor menghasilkan hitungan node",
+       "limitreport-postexpandincludesize": "Pasca memperluas mencakup ukuran",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|bita|bita}}",
        "limitreport-templateargumentsize": "Ukuran argumen temlat",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|bita|bita}}",
index ff43f68..2df91a7 100644 (file)
        "recentchanges-label-unpatrolled": "Daytoy a panag-urnos ket saan pay a napatruliaan",
        "recentchanges-label-plusminus": "Ti panagbaliw ti kadakkel ti panid babaen ti bilang dagiti byte",
        "recentchanges-legend-heading": "'''Leyenda:'''",
-       "recentchanges-legend-newpage": "(kitaen pay ti [[Special:NewPages|listaan ti baro a pampanid]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (kitaen pay ti [[Special:NewPages|listaan ti baro a pampanid]])",
        "rcnotefrom": "Dita baba ket dagiti sinukatan manipud idi strong>$2</strong> (agingga iti <strong>$1</strong> a naipakita).",
        "rclistfrom": "Ipakita dagiti kabarbaro a sinukatan a mangrugi manipud idi $3 $2",
        "rcshowhideminor": "$1 dagiti bassit a panag-urnos",
index d7a1e69..51a299b 100644 (file)
        "searchmenu-exists": "'''Það er síða að nafni „[[:$1]]“ á þessum wiki'''",
        "searchmenu-new": "<strong>Skapaðu síðuna \"[[:$1]]\" á þessum wiki!<strong>\nSjá einnig {{PLURAL:$2|0=|leitarniðurstöðuna|leitarniðurstöðurnar}}.",
        "searchprofile-articles": "Efnissíður",
-       "searchprofile-project": "Hjálpar- og verkefnasíður",
        "searchprofile-images": "Margmiðlanir",
        "searchprofile-everything": "Allt",
        "searchprofile-advanced": "Nánar",
        "searchprofile-articles-tooltip": "Leita í $1",
-       "searchprofile-project-tooltip": "Leita í $1",
        "searchprofile-images-tooltip": "Leita að skrám",
        "searchprofile-everything-tooltip": "Leita í öllu efni (þar á meðal spjallsíðum)",
        "searchprofile-advanced-tooltip": "Leita í ákveðnum nafnrýmum",
        "search-interwiki-default": "$1 útkomur:",
        "search-interwiki-more": "(fleiri)",
        "search-relatedarticle": "Tengt",
-       "searcheverything-enable": "Leita í öllum nafnrýmum",
        "searchrelated": "tengt",
        "searchall": "öllum",
        "showingresults": "Sýni <strong>$1</strong> {{PLURAL:$1|niðurstöðu|niðurstöður}} frá og með #<strong>$2</strong>.",
        "allowemail": "Virkja tölvupóst frá öðrum notendum",
        "prefs-searchoptions": "Leit",
        "prefs-namespaces": "Nafnrými",
-       "defaultns": "Leita í þessum nafnrýmum sjálfgefið:",
        "default": "sjálfgefið",
        "prefs-files": "Skrár",
        "prefs-custom-css": "Sérsniðið CSS-útlit",
        "prefs-emailconfirm-label": "Staðfesting netfangs:",
        "youremail": "Netfang:",
        "username": "{{Gender:$1|Notandanafn}}:",
-       "uid": "Raðnúmer {{GENDER:$1|notanda}}:",
        "prefs-memberingroups": "{{GENDER:$2|Meðlimur}} {{PLURAL:$1|hóps|hópa}}:",
        "prefs-registration": "Nýskráningartími:",
        "yourrealname": "Fullt nafn:",
        "recentchanges-label-minor": "Þetta er minniháttar breyting",
        "recentchanges-label-bot": "Þessi breyting var gerð af vélmenni",
        "recentchanges-label-unpatrolled": "Þessi breyting hefur ekki verið yfirfarin",
-       "recentchanges-legend-newpage": "(sjá einng [[Special:NewPages|lista yfir nýjar síður]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (sjá einng [[Special:NewPages|lista yfir nýjar síður]])",
        "rcnotefrom": "Að neðan eru breytingar síðan <strong>$2<strong> (allt að <strong>$1<strong> sýndar).",
        "rclistfrom": "Sýna breytingar frá og með $3 $2",
        "rcshowhideminor": "$1 minniháttar breytingar",
        "log-title-wildcard": "Leita að titlum sem byrja á þessum texta",
        "showhideselectedlogentries": "Sýna/fela valdar aðgerða færslur",
        "allpages": "Allar síður",
-       "alphaindexline": "$1 til $2",
        "nextpage": "Næsta síða ($1)",
        "prevpage": "Fyrri síða ($1)",
        "allpagesfrom": "Sýna síður frá og með:",
        "pageinfo-category-pages": "Fjöldi síðna",
        "pageinfo-category-subcats": "Fjöldi undirflokka",
        "pageinfo-category-files": "Fjöldi skráa",
-       "skinname-cologneblue": "Kölnarblátt",
        "skinname-monobook": "EinBók",
-       "skinname-modern": "Nútímalegt",
        "markaspatrolleddiff": "Merkja sem yfirfarið",
        "markaspatrolledtext": "Merkja þessa síðu sem yfirfarna",
        "markedaspatrolled": "Merkja sem yfirfarið",
index ffd715b..a94af0e 100644 (file)
        "recentchanges-label-unpatrolled": "Modifica non ancora verificata",
        "recentchanges-label-plusminus": "Variazione della pagina in numero di byte",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "(vedi [[Special:NewPages|le nuove pagine]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vedi [[Special:NewPages|le nuove pagine]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Di seguito sono elencate le modifiche apportate a partire da <strong>$2</strong> (mostrate fino a <strong>$1</strong>).",
        "rclistfrom": "Mostra le modifiche apportate a partire da $3 $2",
        "wantedtemplates": "Template richiesti",
        "mostlinked": "Pagine più richiamate",
        "mostlinkedcategories": "Categorie più richiamate",
-       "mostlinkedtemplates": "Template più utilizzati",
+       "mostlinkedtemplates": "Pagine più inlcuse",
        "mostcategories": "Pagine con più categorie",
        "mostimages": "File più richiamati",
        "mostinterwikis": "Pagine con più interwiki",
index 06bc350..cec5444 100644 (file)
        "recentchanges-label-unpatrolled": "巡回されていない編集",
        "recentchanges-label-plusminus": "ページ サイズの増減 (バイト単位)",
        "recentchanges-legend-heading": "'''凡例:'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|新しいページ一覧]]も参照)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|新しいページ一覧]]も参照)",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "rcnotefrom": "以下は<strong>$2</strong>以降の更新です (最大 <strong>$1</strong> 件)。",
        "rclistfrom": "$3の$2以降の更新を表示する",
index dc61e25..f579940 100644 (file)
        "searchmenu-exists": "'''Ana kaca kanthi jeneng \"[[$1]]\" ing wiki iki'''",
        "searchmenu-new": "'''Gawé kaca \"[[:$1]]\" ing wiki iki!'''",
        "searchprofile-articles": "Kaca isi",
-       "searchprofile-project": "Kaca pitulung lan proyèk",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Kabèh",
        "searchprofile-advanced": "Tataran luwih dhuwur/maju",
        "searchprofile-articles-tooltip": "Panggolèkan ing $1",
-       "searchprofile-project-tooltip": "Panggolèkan ing $1",
        "searchprofile-images-tooltip": "Panggolèkan berkas",
        "searchprofile-everything-tooltip": "Panggolèkan kabèh isi (klebu kaca-kaca wicara)",
        "searchprofile-advanced-tooltip": "Panggolèkan ing bilik jeneng biasa (''custom'')",
        "search-interwiki-default": "Pituwas $1:",
        "search-interwiki-more": "(luwih akèh)",
        "search-relatedarticle": "Kagandhèng",
-       "searcheverything-enable": "Golèki ing kabèh bilik-jeneng",
        "searchrelated": "kagandhèng",
        "searchall": "kabèh",
        "showingresults": "Ing ngisor iki dituduhaké {{PLURAL:$1|'''1''' kasil|'''$1''' kasil}}, wiwitané saking #<strong>$2</strong>.",
        "allowemail": "Marengaké panganggo liyané ngirim layang èlèktronik (email).",
        "prefs-searchoptions": "Golèk",
        "prefs-namespaces": "Ruang jeneng / Bilik jeneng",
-       "defaultns": "Utawa golèki ing bilik jeneng iki:",
        "default": "baku",
        "prefs-files": "Berkas",
        "prefs-custom-css": "CSS pribadi",
        "prefs-emailconfirm-label": "Konfirmasi layang-e:",
        "youremail": "Layang élèktronik (E-mail):",
        "username": "{{GENDER:$1|Asma panganggo}}:",
-       "uid": "{{GENDER:$1|ID panganggo}}:",
        "prefs-memberingroups": "{{GENDER:$2|Anggota}} {{PLURAL:$1|klompok|klompok-klompok}}:",
        "prefs-registration": "Wektu régistrasi:",
        "yourrealname": "Asma sajatiné :",
        "recentchanges-label-unpatrolled": "Suntingan iki durung dipatroli",
        "recentchanges-label-plusminus": "Gedhene kaca wis diowahi segede niki.",
        "recentchanges-legend-heading": "'''Katrangan:'''",
-       "recentchanges-legend-newpage": "(dhelengen uga: [[Special:NewPages|daftar kaca anyar]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (dhelengen uga: [[Special:NewPages|daftar kaca anyar]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Ing ngisor iki owah-owahan wiwit <strong>$2</strong> (kapacak nganti <strong>$1</strong> owah-owahan).",
        "rclistfrom": "Saiki nuduhaké owah-owahan wiwit tanggal $3 $2",
        "log-title-wildcard": "Golèk irah-irahan utawa judhul sing diawali mawa tèks kasebut",
        "showhideselectedlogentries": "Tuduhalé/dhelikaké èntri log kapilih",
        "allpages": "Kabèh kaca",
-       "alphaindexline": "$1 tumuju $2",
        "nextpage": "Kaca sabanjuré ($1)",
        "prevpage": "Kaca sadurungé ($1)",
        "allpagesfrom": "Kaca-kaca kawiwitan kanthi:",
index 62e368a..f279420 100644 (file)
        "recentchanges-label-unpatrolled": "ეს რედაქტირება გადაუმოწმებელია",
        "recentchanges-label-plusminus": "ცვლილებების ზომა ბაიტებში",
        "recentchanges-legend-heading": "'''ლეგენდა:'''",
-       "recentchanges-legend-newpage": "(იხ. აგრეთვე [[Special:NewPages|ახალი გვერდების სია]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (იხ. აგრეთვე [[Special:NewPages|ახალი გვერდების სია]])",
        "rcnotefrom": "ქვემოთ მოყვანილია ცვლილებები <strong>$2</strong>-დან (ნაჩვენებია არაუმეტეს <strong>$1</strong>).",
        "rclistfrom": "ახალი ცვლილებების ჩვენება დაწყებული $3 $2-დან",
        "rcshowhideminor": "მცირე რედაქტირების $1",
        "contributions-title": "მომხმარებლის წვლილი $1",
        "mycontris": "წვლილი",
        "contribsub2": "მომხმარებელი {{GENDER:$3|$1}} წვლილი ($2)",
+       "contributions-userdoesnotexist": "მომხმარებლის ანგარიში „$1“ არ არის რეგისტრირებული.",
        "nocontribs": "ძებნისას მითითებული პარამეტრების შესაბამისი არც ერთი ცვლილება ნაპოვნი არ არის",
        "uctop": "(მიმდინარე)",
        "month": "თვე:",
        "sp-contributions-newbies-sub": "ახალბედებისთვის",
        "sp-contributions-newbies-title": "ბოლოს დარეგისტრირებულ მომხმარებელთა წვლილი",
        "sp-contributions-blocklog": "ბლოკირების ისტორია",
+       "sp-contributions-suppresslog": "მომხმარებლის წაშლილი წვლილი",
        "sp-contributions-deleted": "მომხმარებლის წაშლილი შესწოებები",
        "sp-contributions-uploads": "ატვირთვები",
        "sp-contributions-logs": "ჟურნალები",
        "sp-contributions-toponly": "აჩვენე მხოლოდ ბოლო ვერსიები",
        "sp-contributions-submit": "ძიება",
        "whatlinkshere": "ბმული გვერდზე",
-       "whatlinkshere-title": "გვერდები, რომლებიც შეიცავენ ბმულებს „$1“-ზე",
+       "whatlinkshere-title": "გვერდები, რომლებიც შეიცავენ „$1“-ის ბმულებს",
        "whatlinkshere-page": "გვერდი:",
        "linkshere": "მომდევნო გვერდები შეიცავენ ბმულებს '''[[:$1]]'''-ზე:",
        "nolinkshere": "'''[[:$1]]'''-ზე ბმული არ არის.",
        "pageinfo-length": "გვერდის სიგრძე (ბაიტებში)",
        "pageinfo-article-id": "გვერდის ID",
        "pageinfo-language": "გვერდის შინაარსის ენა",
+       "pageinfo-content-model": "გვერდის შინაარსის მოდელი",
        "pageinfo-robot-policy": "ინდექსაცია საძიებო რობოტებით",
        "pageinfo-robot-index": "დაშვებულია",
        "pageinfo-robot-noindex": "არ არის დაშვებული",
        "newimages-summary": "ეს სპეცგვერდი აჩვენებს ბოლო დროს ატვირთულ ფაილებს.",
        "newimages-legend": "ფილტრი",
        "newimages-label": "ფაილის (ან მისი სახელის) ნაწილი",
+       "newimages-showbots": "ბოტის ატვირთვების ჩვენება",
        "noimages": "გადასახედი არაფერია.",
        "ilsubmit": "ძიება",
        "bydate": "თარიღით",
        "watchlistedit-raw-done": "თქვენი კონტროლის სია განახლდა.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 სათაური|$1 სათაურები}} მიემატა:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 სათაური|$1 სათაურები}} წაიშალა:",
+       "watchlistedit-clear-title": "კონტროლის სიის გასუფთავება",
+       "watchlistedit-clear-legend": "კონტროლის სიის გასუფთავება",
+       "watchlistedit-clear-explain": "თქვენი კონტროლის სიიდან ყველა ჩანაწერი წაიშლება",
        "watchlistedit-clear-titles": "სათაურები:",
+       "watchlistedit-clear-submit": "კონტროლის სიის გასუფთავება (ეს შეუქცევადია!)",
+       "watchlistedit-clear-done": "თქვენი კონტროლის სია გასუფთავდა.",
+       "watchlisttools-clear": "კონტროლის სიის გასუფთავება",
        "watchlisttools-view": "დაკავშირებული ცვლილებების ხილვა",
        "watchlisttools-edit": "კონტროლის სიის ხილვა და რედაქტირება",
        "watchlisttools-raw": "კონტროლის სიის რედაქტირება ტექსტის ფორმატში",
        "htmlform-no": "არა",
        "htmlform-yes": "დიახ",
        "htmlform-chosen-placeholder": "აირჩიეთ პარამეტრი",
+       "htmlform-cloner-create": "მეტის დამატება",
        "htmlform-cloner-delete": "წაშლა",
        "sqlite-has-fts": "$1 სრული ტექსტის ძიების მხარდაჭერით",
        "sqlite-no-fts": "$1 სრული ტექსტის ძიების მხარდაჭერის გარეშე",
index 7737c39..5d33b0c 100644 (file)
        "searchmenu-exists": "'''Yella asebter s isem \"[[:$1]]\" deg wiki agi.'''",
        "searchmenu-new": "'''Snulfud asebter « [[:$1|$1]] » deg wiki agi !'''",
        "searchprofile-articles": "Isebtar n ugbur",
-       "searchprofile-project": "Isebtaren n tallat dɣa n usenfa",
        "searchprofile-images": "Agetmedia",
        "searchprofile-everything": "Akk",
        "searchprofile-advanced": "Anadi anemhal",
        "searchprofile-articles-tooltip": "Nadi deg $1",
-       "searchprofile-project-tooltip": "Nadi deg $1",
        "searchprofile-images-tooltip": "Nadi  ifuyla agetmedia",
        "searchprofile-everything-tooltip": "Nadi deg akk usmel (ula deg isebtaren n umyannan)",
        "searchprofile-advanced-tooltip": "Fren ideggen n isemawen i unadi",
        "search-interwiki-default": "Igemmaḍ ɣef $1 :",
        "search-interwiki-more": "(ugar)",
        "search-relatedarticle": "Amassaɣ",
-       "searcheverything-enable": "Nadi deg akkw tallunin n isemawen",
        "searchrelated": "ineqqes",
        "searchall": "akk",
        "showingresults": "Tamuli n {{PLURAL:$1|'''Yiwen''' wegmud|'''$1''' n yigmad}} seg  #'''$2'''.",
        "allowemail": "Eǧǧ imseqdacen wiyaḍ a k-aznen email",
        "prefs-searchoptions": "Nadi",
        "prefs-namespaces": "Talluntin n isemawen",
-       "defaultns": "Nadi s lexṣas deg tallunin agi n isemawen :",
        "default": "ameslugen",
        "prefs-files": "Ifayluwen",
        "prefs-custom-css": "CSS asagen",
        "prefs-emailconfirm-label": "Aragag n tirawt :",
        "youremail": "E-mail *:",
        "username": "{{GENDER:$1|Isem n umseqdac|Isem n tamseqdact}} :",
-       "uid": "Uḍḍun n {{GENDER:$1|umseqdac|tamseqdact}}:",
        "prefs-memberingroups": "{{GENDER:$2|Aεeggal|Taɛggalt}} n {{PLURAL:$1|ugraw|igrawen}} :",
        "prefs-registration": "Azmez n tiggezt :",
        "yourrealname": "Isem n ṣṣeḥ *:",
        "recentchanges-label-unpatrolled": "Abeddel agi mazal yesɛa aselken.",
        "recentchanges-label-plusminus": "Tiddi n usebtar tetwebeddel s umḍan agi n itamḍanen.",
        "recentchanges-legend-heading": "'''Aglam :'''",
-       "recentchanges-legend-newpage": "(zeṛ daɣen [[Special:NewPages|umuɣ n isebtar imaynuten]]).",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (zeṛ daɣen [[Special:NewPages|umuɣ n isebtar imaynuten]]).",
        "recentchanges-legend-plusminus": "(''± 123'')",
        "rcnotefrom": "Deg ukessar llan ibeddlen seg wasmi '''$2''' (ar '''$1''').",
        "rclistfrom": "Ssken ibeddlen imaynuten seg $3 $2",
        "log-title-wildcard": "Nadi ɣef izwal i yebdan s uḍris-agi",
        "showhideselectedlogentries": "Beqqeḍ/ffer isekcam n uɣmis agi",
        "allpages": "Akk isebtar",
-       "alphaindexline": "$1 ar $2",
        "nextpage": "Asebter ameḍfir ($1)",
        "prevpage": "Asebter ssabeq ($1)",
        "allpagesfrom": "Ssken isebtar seg:",
index 9403278..6534651 100644 (file)
        "vector-view-view": "Оқу",
        "vector-view-viewsource": "Қайнарын қарау",
        "actions": "Әрекеттер",
+       "vector-more-actions": "Тағы",
        "namespaces": "Есім кеңістіктері",
        "variants": "Нұсқалар",
        "navigation-heading": "Бағыттау мәзірі",
        "explainconflict": "Осы бетті сіз өңдей бастағанда басқа біреу бетті өзгерткен.\nЖоғарғы мәтін аумағында қазіргі уақытта бар бет мәтінінен тұрады.\nТөменгі мәтін аумағында сіздің өзгертулеріңіз көрсетіледі.\nӨзгертуіңізді бар мәтінге біріктіруге тура келеді.\n«{{int:savearticle}}» батырмасын басқанда </strong>тек</strong> жоғарғы мәтін аумағы сақталады.",
        "yourtext": "Мәтініңіз",
        "storedversion": "Сақталған нұсқасы",
-       "nonunicodebrowser": "<strong>Ескерту: Шолғышыңыз Unicode белгілеуіне үйлесімді емес</strong>\nЖұмыс істеуге ықтималдық беру үшін, төмендегі кірістіру орнында ASCII емес таңбалар оналтылық кодымен көрсетіледі.",
-       "editingold": "<strong>Ð\95Ñ\81кеÑ\80Ñ\82Ñ\83: Ð\9eÑ\81Ñ\8b Ð±ÐµÑ\82Ñ\82Ñ\96Ò£ ÐµÑ\80Ñ\82еÑ\80ек Ñ\82үзеÑ\82Ñ\83Ñ\96н Ó©Ò£Ð´ÐµÐ¿ Ð¶Ð°Ñ\82Ñ\8bÑ\80Ñ\81Ñ\8bз.</strong>\nÐ\91ұнÑ\8b Ñ\81аÒ\9bÑ\82аÑ\81аңÑ\8bз Ð¾Ñ\81Ñ\8b Ñ\82үзеÑ\82Ñ\83ден кейінгі барлық өзгерістер жоғалады.",
+       "nonunicodebrowser": "<strong>Ескерту: Шолғышыңыз Юникод белгілеуіне үйлесімді емес</strong>\nЖұмыс істеуге ықтималдық беру үшін төмендегі кірістіру орнында ASCII емес таңбалар оналтылық кодымен көрсетіледі.",
+       "editingold": "<strong>Ð\95Ñ\81кеÑ\80Ñ\82Ñ\83: Ð\9eÑ\81Ñ\8b Ð±ÐµÑ\82Ñ\82Ñ\96Ò£ Ð±Ò±Ñ\80Ñ\8bÒ£Ò\93Ñ\8b Ð½Ò±Ñ\81Ò\9bаÑ\81Ñ\8bн Ó©Ò£Ð´ÐµÑ\83деÑ\81Ñ\96з.</strong>\nÐ\91ұнÑ\8b Ñ\81аÒ\9bÑ\82аÑ\81аңÑ\8bз Ð¾Ñ\81Ñ\8b Ð½Ò±Ñ\81Ò\9bадан кейінгі барлық өзгерістер жоғалады.",
        "yourdiff": "Айырмашылықтар",
-       "copyrightwarning": "Аңғартпа: {{SITENAME}} жобасына берілген барлық үлестер $2 (көбірек ақпарат үшін: $1) құжатына сай деп саналады.\nЕгер жазуыңыздың еркін өңделуін және ақысыз көпшілікке таратуын қаламасаңыз, мында жарияламауыңыз жөн.<br />\nТағы да, бұл мағлұмат өзіңіз жазғаныңызға, не қоғам қазынасынан немесе сондай ашық қорлардан көшірілгеніне бізге уәде бересіз.\n'''АВТОРЛЫҚ ҚҰҚЫҚПЕН ҚОРҒАУҒАН МАҒЛҰМАТТЫ РҰҚСАТСЫЗ ЖАРИЯЛАМАҢЫЗ!'''",
-       "copyrightwarning2": "Аңғартпа: {{SITENAME}} жобасына берілген барлық үлестерді басқа үлескерлер өңдеуге, өзгертуге, не аластауға мүмкін.\nЕгер жазуыңыздың еркін өңделуін қаламасаңыз, мында жарияламауыңыз жөн.<br />\nТағы да, бұл мағлұмат өзіңіз жазғаныңызға, не қоғам қазынасынан немесе сондай ашық қорлардан көшірілгеніне бізге уәде бересіз (көбірек ақпарат үшін $1 қужатын қараңыз).\n'''АВТОРЛЫҚ ҚҰҚЫҚПЕН ҚОРҒАУҒАН МАҒЛҰМАТТЫ РҰҚСАТСЫЗ ЖАРИЯЛАМАҢЫЗ!'''",
-       "longpageerror": "<strong>Ò\9aÐ\90ТÐ\95Ð\9bÐ\86Ð\9a: Ð¡Ð°Ò\9bÑ\82амаÒ\9bÑ\88Ñ\8b Ð±Ð¾Ð»Ò\93ан Ð¼Ó\99Ñ\82Ñ\96нÑ\96Ò£Ñ\96здÑ\96Ò£ ÐºÓ©Ð»ÐµÐ¼Ñ\96 {{PLURAL:$1|килобайÑ\82|$1 ÐºÐ¸Ð»Ð¾Ð±Ð°Ð¹Ñ\82}}, ең көбі {{PLURAL:$2|килобайт|$2 килобайт}} рұқсат етілген көлемінен асқан.</strong>\nБұл сақталмайды.",
-       "readonlywarning": "'''ЕСКЕТУ: Дерекқор баптау үшін құлыпталған, сондықтан дәл қазір өңдемеңізді сақтай алмайсыз.\nКейін қолдану үшін мәтінді қойып алып және қойып, мәтін файлына сақтауңызға болады.''' \nӘкімшінің құлыптау себебі келесідей: $1",
-       "protectedpagewarning": "<strong>Ескерту: Бұл бет өңдеуден қорғалған. Тек әкімші құқықтары бар қатысушылар ғана өңдей алады.</strong>\nТөменде бет журналының соңғы жазбасы көрсетілген:",
+       "copyrightwarning": "{{SITENAME}} жобасына қосқан барлық үлестеріңіз $2 (көбірек ақпарат үшін: $1) аясында жарияланатынын ескеріңіз.\nЕгер еңбегіңіздің еркін өңделуін және ақысыз көпшілікке таралуын қаламасаңыз мұнда жарияламаңыз<br />\nТағы да бұл мәліметті өзіңіз жазғаныңызға не қоғам қазынасынан немесе сондай ашық қорлардан көшірілгеніне бізге уәде бересіз.\n<strong>Авторлық құқықпен қорғалған мәліметті рұқсатсыз жарияламаңыз!</strong>",
+       "copyrightwarning2": "{{SITENAME}} жобасына қосқан барлық үлестеріңізді басқа үлескерлер өңдеуге, өзгертуге немесе аластауы мүмкін екенін ескеріңіз.\nЕгер еңбегіңіздің еркін өңделуін қаламасаңыз осында жарияламаңыз.<br />\nТағы да бұл мәліметті өзіңіз жазғаныңызға не қоғам қазынасынан немесе сондай ашық қорлардан көшірілгеніне бізге уәде бересіз. (көбірек ақпарат үшін $1 құжатын қараңыз).\n<strong>Авторлық құқықпен қорғалған мәліметті рұқсатсыз жарияламаңыз!",
+       "longpageerror": "<strong>Ò\9aÐ\90ТÐ\95Ð\9bÐ\86Ð\9a: Ð¡Ð°Ò\9bÑ\82амаÒ\9bÑ\88Ñ\8b Ð±Ð¾Ð»Ò\93ан Ð¼Ó\99Ñ\82Ñ\96нÑ\96Ò£Ñ\96здÑ\96Ò£ ÐºÓ©Ð»ÐµÐ¼Ñ\96 {{PLURAL:$1|бÑ\96Ñ\80 ÐºÐ¸Ð»Ð¾Ð±Ð°Ð¹Ñ\82|$1 ÐºÐ¸Ð»Ð¾Ð±Ð°Ð¹Ñ\82}} ең көбі {{PLURAL:$2|килобайт|$2 килобайт}} рұқсат етілген көлемінен асқан.</strong>\nБұл сақталмайды.",
+       "readonlywarning": "<strong>ЕСКЕРТУ: Дерекқор техникалық жұмыстар жасау үшін құлыпталған сондықтан дәл қазір өңдемеңізді сақтай алмайсыз.</strong>\nКейін сақтау үшін мәтініңізді мәтін файлына көшіріп алыпуңызға болады. \n\nАдминстратор оны құлыптау себебін келесідей түсіндіреді: $1",
+       "protectedpagewarning": "<strong>Ескерту: Бұл бет өңдеуден қорғалған сондықтан тек әкімші құқықтары бар қатысушылар ғана өңдей алады.</strong>\nТөменде соңғы журнал жазбасы көрсетілген:",
        "semiprotectedpagewarning": "<strong>Ескерту:</strong> Бет жартылай қорғалған, сондықтан осыны тек тіркелген қатысушылар өңдей алады.\nТөменде бет журналының соңғы жазбасы көрсетілген:",
-       "cascadeprotectedwarning": "<strong>Ескерту:</strong>  Бұл бет қорғалған, енді тек әкімші құқықтары бар қатысушылар ғана бұны өңдей алады, себебі бұл келесі «баулы қорғауы» бар {{PLURAL:$1|бетіне|беттеріне}} кірістілген бет:",
-       "titleprotectedwarning": "'''Ескерту: Бұл бет атауы бастаудан қорғалған, сондықтан [[Special:ListGroupRights|арнайы құқықтары]] бар қатысушылар бұндай атаумен бетті бастай алады.'''\nТөменде бет журналының соңғы жазбасы көрсетілген:",
+       "cascadeprotectedwarning": "<strong>Ескерту:</strong> Бұл бет қорғалған, сондықтан тек әкімші құқықтары бар қатысушылар ғана өңдей алады, себебі бұл келесі «баулы қорғауы» бар {{PLURAL:$1|бетіне|беттеріне}} кірістілген бет:",
+       "titleprotectedwarning": "</strong>Ескерту: Бұл бет атауы бастаудан қорғалған, сондықтан [[Special:ListGroupRights|арнайы құқықтары]] бар қатысушылар бұндай атаумен бетті бастай алады.</strong>\nТөменде бет журналының соңғы жазбасы көрсетілген:",
        "templatesused": "Бұл бетте қолданылған {{PLURAL:$1|үлгі|үлгілер}}:",
        "templatesusedpreview": "Беттің қарап шығуында қолданылған {{PLURAL:$1|үлгі|үлгілер}}:",
        "templatesusedsection": "Бұл бөлімде қолданылған {{PLURAL:$1|үлгі|үлгілер}}:",
        "template-protected": "(қорғалған)",
        "template-semiprotected": "(жартылай қорғалған)",
        "hiddencategories": "Бұл бет {{PLURAL:$1|1 жасырын санаттың|$1 жасырын санаттың}} мүшесі:",
-       "nocreatetext": "{{SITENAME}} жобасында жаңа бет бастауы шектелген.\nКері қайтып бар бетті өңдеуіңізге болады, немесе [[Special:UserLogin|кіруіңізге не тіркелуіңізге]] болады.",
-       "nocreate-loggedin": "Жаңа бет бастауға рұқсатыңыз жоқ.",
+       "nocreatetext": "{{SITENAME}} жобасында жаңа беттерді бастау мүмкіндігі шектелген.\nКері қайта аласыз және бар бетті өңдей аласыз немесе [[Special:UserLogin|кіріңіз не тіркеліңіз]].",
+       "nocreate-loggedin": "Жаңа беттерді бастауға рұқсатыңыз жоқ.",
        "sectioneditnotsupported-title": "Бөлімдерді өңдеу қолдамайды",
-       "sectioneditnotsupported-text": "Бұл бетте бөлімдерді өңдеуді қолдамайды.",
+       "sectioneditnotsupported-text": "Бұл бетте бөлім өңдеуін қолдамайды.",
        "permissionserrors": "Рұқсат қатесі",
-       "permissionserrorstext": "Ð\91ұнÑ\8b Ñ\96Ñ\81Ñ\82еÑ\83ге Ñ\80Ò±Ò\9bÑ\81аÑ\82Ñ\8bÒ£Ñ\8bз Ð¶Ð¾Ò\9b, ÐºÐµÐ»ÐµÑ\81Ñ\96 {{PLURAL:$1|Ñ\81ебеп|Ñ\81ебепÑ\82еÑ\80}} Ð±Ð¾Ð¹Ñ\8bнÑ\88а:",
-       "permissionserrorstext-withaction": "$2 дегенге рұқсатыңыз жоқ, келесі {{PLURAL:$1|себеп|себептер}} бойынша:",
-       "recreate-moveddeleted-warn": "'''Назар аудар: Алдында жойылған бетті қайта бастайын деп тұрсыз.'''\n\nБұл бетті жаңадан бастаудың орынды екеніне көз жеткізіңіз.\nТөменде бұл бетке қатысты жою және жылжыту журналы көрсетілген:",
+       "permissionserrorstext": "Ð\9aелеÑ\81Ñ\96 {{PLURAL:$1|Ñ\81ебеп|Ñ\81ебепÑ\82еÑ\80}} Ð±Ð¾Ð¹Ñ\8bнÑ\88а Ð±Ò±Ð½Ñ\8b Ñ\96Ñ\81Ñ\82еÑ\83ге Ñ\80Ò±Ò\9bÑ\81аÑ\82Ñ\8bÒ£Ñ\8bз Ð¶Ð¾Ò\9b:",
+       "permissionserrorstext-withaction": "Келесі {{PLURAL:$1|себеп|себептер}} бойынша $2 дегенге рұқсатыңыз жоқ:",
+       "recreate-moveddeleted-warn": "<strong>Назар аударыңыз: Алдында жойылған бетті қайта бастамақшысыз.</strong>\n\nБұл бетті жаңадан бастаудың орынды екеніне көз жеткізіңіз.\nТөменде бұл бетке қатысты жою және жылжыту журналы ыңғайлылық үшін көрсетілген:",
        "moveddeleted-notice": "Бұл бет жойылған.\nТөменде бұл бетке қатысты жою және жылжыту журналы көрсетілген:",
        "log-fulllog": "Толық журналды қарау",
-       "edit-hook-aborted": "Түзету ілмек арқылы болдырмады.\nҚосымша түсіндірмелер көрсетілмеген.",
-       "edit-gone-missing": "Ð\91еÑ\82Ñ\82Ñ\96 Ð¶Ð°Ò£Ð°Ñ\80Ñ\82Ñ\83 Ð¼Ò¯Ð¼ÐºÑ\96н ÐµÐ¼ÐµÑ\81.\nÐ\9cүмкÑ\96н, Ð±Ò±Ð» Ð±ÐµÑ\82 Ð¶Ð¾Ð¹Ñ\8bлÒ\93ан.",
+       "edit-hook-aborted": "Өңдеме ілмек арқылы болдырмады.\nҚандай да бір түсіндірме берілмеген.",
+       "edit-gone-missing": "Ð\91еÑ\82Ñ\82Ñ\96 Ð¶Ð°Ò£Ð°Ñ\80Ñ\82Ñ\83 Ð¼Ò¯Ð¼ÐºÑ\96н ÐµÐ¼ÐµÑ\81.\nÐ\91ұл Ð±ÐµÑ\82 Ð¶Ð¾Ð¹Ñ\8bлÒ\93ан Ð±Ð¾Ð»Ñ\83 Ð¼Ò¯Ð¼ÐºÑ\96н.",
        "edit-conflict": "Өңдемелер қақтығысы.",
        "edit-no-change": "Өңдемеңіз мәтінге өзгеріс жасамағандықтан еленілмеді.",
+       "postedit-confirmation-created": "Бетті бастадыңыз.",
+       "postedit-confirmation-restored": "Бетті қалпына келтірдіңіз.",
        "postedit-confirmation-saved": "Өңдемеңіз сақталды.",
-       "edit-already-exists": "Ð\96аңа Ð±ÐµÑ\82 Ð¶Ð°Ñ\81ау мүмкін емес.\nОл әлдеқашан бар.",
-       "defaultmessagetext": "Әдепкі мәтіні",
+       "edit-already-exists": "Ð\96аңа Ð±ÐµÑ\82 Ð±Ð°Ñ\81Ñ\82ау мүмкін емес.\nОл әлдеқашан бар.",
+       "defaultmessagetext": "Әдепкі хабарлама мәтіні",
        "invalid-content-data": "Жарамсыз дерек мазмұны",
-       "content-not-allowed-here": "\"$1\" контенті [[$2]] бетінде рұқсат етілмейді.",
-       "editwarning-warning": "Ð\91ұл Ð±ÐµÑ\82Ñ\82Ñ\96 Ò\9bалдÑ\8bÑ\80Ñ\81аңÑ\8bз қандай да бір жасаған өзгерістеріңізді жоғалтуыңыз мүмкін. \nЕгер сiз кіріп отырсаңыз баптауларыңыздағы «{{int:prefs-editing}}» бөлімінен бұл ескертуді өшіре аласыз.",
+       "content-not-allowed-here": "«$1» мазмұны [[$2]] бетінде рұқсат етілмейді.",
+       "editwarning-warning": "Ð\91ұл Ð±ÐµÑ\82Ñ\82Ñ\96 Ò\9bалдÑ\8bÑ\80Ñ\8bп ÐºÐµÑ\82Ñ\81еңÑ\96з қандай да бір жасаған өзгерістеріңізді жоғалтуыңыз мүмкін. \nЕгер сiз кіріп отырсаңыз баптауларыңыздағы «{{int:prefs-editing}}» бөлімінен бұл ескертуді өшіре аласыз.",
        "editpage-notsupportedcontentformat-title": "Контент форматы қолдамайды",
-       "content-model-wikitext": "Уикимәтін",
+       "content-model-wikitext": "уикимәтін",
        "content-model-text": "қалыпты мәтін",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
-       "expensive-parserfunction-warning": "'''Ескерту:''' Бұл бетте тым көп шығыс алатын құрылым талдатқыш жетелерінің қоңырау шалулары бар.\n\nБұл $2  {{PLURAL:$2|call|calls}} шамасынан кем болуы жөн, осы арада {{PLURAL:$1|қазір $1 call|қазір $1 calls}}.",
+       "expensive-parserfunction-warning": "<strong>Ескерту:</strong> Бұл бет тым көп шығыс алатын құрылым талдатқыш жетелер шақыруынан тұрады.\n\nБұл $2  {{PLURAL:$2|шақыру|шақырулар}} шамасынан кем болуы керек, осы арада {{PLURAL:$1|қазір $1 шақыру|қазір $1 шақыру}}.",
        "expensive-parserfunction-category": "Шығыс алатын құрылым талдатқыш жетелерінің тым көп шақырымы бар беттер",
-       "post-expand-template-inclusion-warning": "Ескерту: Үлгі кірістіру өлшемі тым үлкен.\nКейбір үлгілер кірістірілмейді.",
+       "post-expand-template-inclusion-warning": "<strong>Ескерту:</strong> Үлгі кірістіру мөлшері тым үлкен.\nКейбір үлгілер кірістірілмейді.",
        "post-expand-template-inclusion-category": "Үлгі кірістірілген беттер өлшемі асып кетті",
        "post-expand-template-argument-warning": "<strong>Ескерту:</strong> Бұл бетте тым көп ұлғайтылған өлшемі болған ең кемінде бір үлгі дәлелі бар.\nБұның дәлелдерін қалдырып кеткен.",
        "post-expand-template-argument-category": "Үлгі дәлелдерін қалдырып кеткен беттер",
-       "undo-success": "Бұл өңдеме жоққа шығарылуы мүмкін. Талабыңызды құптап алдын ала төмендегі салыстыруды тексеріп шығыңыз да, өңдемені жоққа шығаруын бітіру үшін төмендегі өзгерістерді сақтаңыз.",
+       "parser-template-loop-warning": "Үлгі тұйығы кездесті: [[$1]]",
+       "undo-success": "Бұл өңдемені жоққа шығарымақшысыз. Алдымен алдын-ала төмендегі салыстыруды тексеріп шығыңыз да бетті сақтаңыз.",
        "undo-failure": "Бұл өңдеме жоққа шығарылмайды, себебі арада қақтығысты өңдемелер бар.",
-       "undo-norev": "Бұл өңдеме жоққа шығарылмайды, себебі бұл жоқ немесе жойылған.",
+       "undo-norev": "Ð\91ұл Ó©Ò£Ð´ÐµÐ¼Ðµ Ð¶Ð¾Ò\9bÒ\9bа Ñ\88Ñ\8bÒ\93аÑ\80Ñ\8bлмайдÑ\8b, Ñ\81ебебÑ\96 Ð±Ò±Ð» Ð±ÐµÑ\82 Ð¶Ð¾Ò\9b Ð½ÐµÐ¼ÐµÑ\81е Ð¶Ð¾Ð¹Ñ\8bлÒ\93ан.",
        "undo-nochange": "Өңдеме әлдеқашан жоққа шығарылғаны анықталды.",
-       "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|т]]) істеген нөмір $1 түзетуін [[Project:Жоққа шығару|жоққа шығарды]]",
+       "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|т]]) істеген нөмір $1 түзетуін жоққа шығарды",
        "undo-summary-username-hidden": "$1 нұсқасын жасырылған қатысушы жоққа шығарды",
-       "cantcreateaccounttitle": "Ð\96аңа Ñ\82іркелгі жасалмады",
+       "cantcreateaccounttitle": "Тіркелгі жасалмады",
        "cantcreateaccount-text": "Бұл IP мекенжайдан (<strong>$1</strong>) жаңа тіркелгі жасауын [[User:$3|$3]] бұғаттаған.\n\n$3 есімді қатысушының келтіріген себебі: <em>$2</em>",
-       "viewpagelogs": "Бұл бет үшін журнал оқиғаларын қарау",
-       "nohistory": "Мында бұл беттінің түзету тарихы жоқ.",
-       "currentrev": "Ең соңғы түзету",
-       "currentrev-asof": "$1 кезіндегі нұсқасы",
-       "revisionasof": "$1 кезіндегі түзету",
-       "revision-info": "$1 кезіндегі $2 істеген түзету",
-       "previousrevision": "← Ескі түзетулер",
-       "nextrevision": "Жаңа түзетулер →",
-       "currentrevisionlink": "Ағымдағы түзетулер",
-       "cur": "ағым.",
-       "next": "кел.",
-       "last": "соң.",
+       "cantcreateaccount-range-text": "'''$1''' ауқымындағы IP мекенжайдан сіздің IP мекенжайыңыз да кіреді ('''$4''') жаңа тіркелгі жасауын [[User:$3|$3]] бұғаттаған.\n\n$3 есімді қатысушының келтіріген себебі: ''$2'",
+       "viewpagelogs": "Бұл беттің журнал оқиғаларын қарау",
+       "nohistory": "Мында бұл беттің өңделу тарихы жоқ.",
+       "currentrev": "Ең соңғы нұсқа",
+       "currentrev-asof": "$1 кезіндегі ең соңғы нұсқасы",
+       "revisionasof": "$1 кезіндегі нұсқасы",
+       "revision-info": "$1 кезіндегі $2 істеген нұсқа",
+       "previousrevision": "← Ескілеу нұсқасы",
+       "nextrevision": "Жаңалау нұсқасы →",
+       "currentrevisionlink": "Ең соңғы нұсқасы",
+       "cur": "ағым",
+       "next": "келесі",
+       "last": "соңғы",
        "page_first": "алғашқысына",
        "page_last": "соңғысына",
-       "histlegend": "Айырмасын бөлектеу: салыстырмақ нұсқаларының қосу көздерін белгілеп <Enter> пернесін басыңыз, немесе төмендегі батырманы нұқыңыз.<br />\nШартты белгілер: (ағым.) = ағымдық нұсқамен айырмасы,\n(соң.) = алдыңғы нұсқамен айырмасы, ш = шағын өңдеме",
+       "histlegend": "Айырмасын таңдау: Салыстырмақ нұсқаларының қосу көздерін белгілеп <Enter> пернесін басыңыз немесе төмендегі батырманы басыңыз.<br />\nШартты белгілер: <strong>({{int:cur}})</strong> = ең соңғы нұсқамен айырмасы,\n<strong>({{int:last}})</strong> = алдыңғы нұсқамен айырмасы, <strong>{{int:minoreditletter}}</strong> = шағын өңдеме",
        "history-fieldset-title": "Тарихынан іздеу",
        "history-show-deleted": "Жойылғанын ғана көрсету",
        "histfirst": "Ең ескісіне",
        "histlast": "Ең жаңасына",
        "historysize": "({{PLURAL:$1|1 байт|$1 байт}})",
        "historyempty": "(бос)",
-       "history-feed-title": "Түзету тарихы",
-       "history-feed-description": "Мына уикидегі бұл беттің түзету тарихы",
+       "history-feed-title": "Өңделу тарихы",
+       "history-feed-description": "Мына уикидегі бұл беттің өңделу тарихы",
        "history-feed-item-nocomment": "$2 кезіндегі $1 деген",
-       "history-feed-empty": "Сұратылған бет жоқ болды.\nОл мына уикиден жойылған, немесе атауы ауыстырылған.\nОсыған қатысты жаңа беттерді [[Special:Search|бұл уикиден іздеуді]] байқап көріңіз.",
-       "rev-deleted-comment": "(өңдеу түйіндемесі аласталды)",
-       "rev-deleted-user": "(қатысушы аты аласталды)",
-       "rev-deleted-event": "(әрекет журналы аласталды)",
-       "rev-deleted-user-contribs": "[Қатысушы аты немесе IP-мекенжайы жойылған — өңдемелері қатысушы үлесі бетінен жасырылған]",
-       "rev-deleted-text-permission": "Бұл беттің түзетуі (нұсқасы) <strong>жойылған</strong>.\n[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналында] егжей-тегжейін таба аласыз.",
-       "rev-deleted-text-unhide": "Бұл беттің түзетуі (нұсқасы) <strong>жойылған</strong>.\n[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналында] егжей-тегжейін таба аласыз.\nЕгер сіз жалғастырсаңыз [$1 бұл нұсқаны көре] аласыз.",
-       "rev-deleted-text-view": "Бұл беттің түзетуі (нұсқасы) <strong>жойылған</strong>.\n[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналында] егжей-тегжейін таба аласыз.",
-       "rev-deleted-no-diff": "Бұл айырмашылықты көре алмайсыз себебі бір түзетуі (нұсқасы) <strong>жойылған</strong>.\n[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналында] егжей-тегжейін таба аласыз.",
+       "history-feed-empty": "Сұратылған бет жоқ.\nОл бұл уикиден жойылған немесе атауы өзгертілген.\nОсыған қатысты жаңа беттерді [[Special:Search|бұл уикиден іздеуді]] байқап көріңіз.",
+       "rev-deleted-comment": "(өңдеу түйіндемесін аластады)",
+       "rev-deleted-user": "(қатысушы есімін аластады)",
+       "rev-deleted-event": "(әрекет журналын аластады)",
+       "rev-deleted-user-contribs": "[Қатысушы аты немесе IP мекенжайы жойылған — өңдемелері қатысушы үлесі бетінен жасырылған]",
+       "rev-deleted-text-permission": "Бұл беттің түзетуі (нұсқасы) <strong>жойылған</strong>.\n[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Жою журналынан] егжей-тегжейін таба аласыз.",
+       "rev-deleted-text-unhide": "Бұл беттің түзетуі (нұсқасы) <strong>жойылған</strong>.\n[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Жою журналынан] егжей-тегжейін таба аласыз.\nЕгер сіз жалғастырсаңыз [$1 бұл нұсқаны көре] аласыз.",
+       "rev-suppressed-text-unhide": "Бұл беттің түзетуі (нұсқасы) <strong>жасырылған</strong>.\n[{{fullurl:{{#special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Жасыру журналынан] егжей-тегжейін таба аласыз.\nЕгер сіз жалғастырсаңыз [$1 бұл нұсқаны көре] аласыз.",
+       "rev-deleted-text-view": "Бұл беттің түзетуі (нұсқасы) <strong>жойылған</strong>.\n[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Жою журналынан] егжей-тегжейін таба аласыз.",
+       "rev-suppressed-text-view": "Бұл беттің түзетуі (нұсқасы) <strong>жасырылған</strong>.\n[{{fullurl:{{#special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Жасыру журналынан] егжей-тегжейін таба аласыз.",
+       "rev-deleted-no-diff": "Бұл айырмашылықты көре алмайсыз себебі бір түзетуі (нұсқасы) <strong>жойылған</strong>.\n[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Жою журналынан] егжей-тегжейін таба аласыз.",
        "rev-suppressed-no-diff": "Бұл айырмашылықты көре алмайсыз себебі бір түзетуі (нұсқасы) <strong>жойылған</strong>.",
-       "rev-deleted-unhide-diff": "Бір түзетуі (нұсқасы) <strong>жойылған</strong>.\nегжей-тегжейін [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналынан] таба аласыз.\nЕгер жалғастырсаңыз [$1 бұл айырмашылықты] көре аласыз.",
+       "rev-deleted-unhide-diff": "Бір түзетуі (нұсқасы) <strong>жойылған</strong>.\nЕгжей-тегжейін [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналынан] таба аласыз.\nЕгер жалғастырсаңыз [$1 бұл айырмашылықты] көре аласыз.",
+       "rev-suppressed-unhide-diff": "Бір түзетуі (нұсқасы) <strong>жасырылған</strong>.\nЕгжей-тегжейін [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналынан] таба аласыз.\nЕгер жалғастырсаңыз [$1 бұл айырмашылықты] көре аласыз.",
+       "rev-deleted-diff-view": "Бұл нұсқалар айырмасының бір нұсқасы <strong>жойылған</strong>.\n[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Жою журналынан] егжей-тегжейін таба аласыз.",
+       "rev-suppressed-diff-view": "Бұл нұсқалар айырмасының бір нұсқасы <strong>жасырылған</strong>.\n[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} Жасыру журналынан] егжей-тегжейін таба аласыз.",
        "rev-delundel": "көрінісін өзгерту",
        "rev-showdeleted": "көрсету",
-       "revisiondelete": "ТүзеÑ\82Ñ\83леÑ\80дÑ\96 жою/жоюды болдырмау",
+       "revisiondelete": "Ð\9dÒ±Ñ\81Ò\9bалаÑ\80дÑ\8b жою/жоюды болдырмау",
        "revdelete-nooldid-title": "Нысана түзету жарамсыз",
-       "revdelete-nooldid-text": "Бұл жетені орындау үшін нысана түзетуін/түзетулерін келтірілмепсіз,\nкелтірілген түзету жоқ, не ағымдық түзетуді жасыру үшін әрекеттеніп көрдіңіз.",
+       "revdelete-nooldid-text": "Бұл жетені орындау үшін нысана түзету(лер)ін келтірілмепсіз,\nкелтірілген нұсқа жоқ немесе ағымдық түзетуді жасыру үшін әрекеттеніп көрдіңіз.",
+       "revdelete-no-file": "Көрсетілген файл жоқ",
+       "revdelete-show-file-confirm": "$2 $3 кезіндегі «<nowiki>$1</nowiki>» файлының жойылған нұсқаларын көргіңіз келе ме?",
        "revdelete-show-file-submit": "Иә",
+       "revdelete-selected-text": "[[:$2]] бетінің {{PLURAL:$1|таңдалған нұсқасы|таңдалған нұсқалары}} :",
+       "revdelete-selected-file": "[[:$2]] дегеннің {{PLURAL:$1|таңдалған файл нұсқасы|таңдалған файл нұсқалары}} :",
        "logdelete-selected": "Бөлектенген {{PLURAL:$1|журнал оқиғасы|журнал оқиғалары}}:",
        "revdelete-legend": "Көрініс тиымдарын қою:",
        "revdelete-hide-text": "Түзету мәтінін жасыр",
        "recentchanges-label-unpatrolled": "Бұл өңдеме әлі тексеруден өтпеді.",
        "recentchanges-label-plusminus": "Байт бойынша беттің өзгеріс өлшемі",
        "recentchanges-legend-heading": "'''Шартты белгілер:'''",
-       "recentchanges-legend-newpage": "(қ: [[Special:NewPages|бөлек бетте]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (қ: [[Special:NewPages|бөлек бетте]])",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "rcnotefrom": "Төменде <strong>$2</strong> кезінен бергі (<strong>$1</strong> өңдемеге дейін) өзгерістер көрсетіледі.",
        "rclistfrom": "$2, $3 кезінен бергі жаңа өзгерістерді көрсет.",
index fa16fff..3585ccd 100644 (file)
        "searchmenu-exists": "* ទំព័រ '''[[$1]]'''",
        "searchmenu-new": "'''បង្កើតទំព័រ \"[[:$1]]\" នៅ​លើ​វិគី​នេះ!'''",
        "searchprofile-articles": "ទំព័រ​មាតិកា",
-       "searchprofile-project": "ជំនួយ និង​ទំព័រ​គម្រោង",
        "searchprofile-images": "ពហុ​ព័ត៌មាន",
        "searchprofile-everything": "ទាំងអស់",
        "searchprofile-advanced": "ថ្នាក់ខ្ពស់",
        "searchprofile-articles-tooltip": "ស្វែងរកក្នុង $1",
-       "searchprofile-project-tooltip": "ស្វែងរកក្នុង $1",
        "searchprofile-images-tooltip": "ស្វែងរកឯកសាររូបភាព",
        "searchprofile-everything-tooltip": "ស្វែងរកក្នុងខ្លឹមសារទាំងអស់(រួមបញ្ចូលទាំងទំព័រពិភាក្សា)",
        "searchprofile-advanced-tooltip": "ស្វែងរកក្នុងប្រភេទកំណត់ដោយអ្នកប្រើប្រាស់",
        "search-interwiki-default": "លទ្ធផលពី$1៖",
        "search-interwiki-more": "(បន្ថែមទៀត)",
        "search-relatedarticle": "ទាក់ទិន",
-       "searcheverything-enable": "ស្វែងរកនៅក្នុងលំហឈ្មោះទាំងអស់",
        "searchrelated": "ទាក់ទិន",
        "searchall": "ទាំងអស់",
        "showingresults": "ខាងក្រោមកំពុងបង្ហាញរហូតដល់ {{PLURAL:$1|'''១''' លទ្ឋផល|'''$1''' លទ្ឋផល}} ចាប់ផ្ដើមពីលេខ #'''$2'''។",
        "allowemail": "ទទួលអ៊ីមែលពីអ្នកប្រើប្រាស់ដទៃទៀត",
        "prefs-searchoptions": "ស្វែងរក",
        "prefs-namespaces": "ប្រភេទ",
-       "defaultns": "ស្វែងរក​ក្នុង​លំហឈ្មោះ​ទាំងនេះ​តាម​បែប​ផ្សេង៖",
        "default": "លំនាំដើម",
        "prefs-files": "ឯកសារ",
        "prefs-custom-css": "កែតំរូវ CSS",
        "prefs-emailconfirm-label": "បញ្ជាក់ទទួលស្គាល់អ៊ីមែល៖",
        "youremail": "អ៊ីមែល៖",
        "username": "{{GENDER:$1|អត្តនាម}}៖",
-       "uid": "អត្តលេខ{{GENDER:$1|អ្នកប្រើប្រាស់}}៖",
        "prefs-memberingroups": "{{GENDER:$2|សមាជិក}}ក្នុង{{PLURAL:$1|ក្រុម|ក្រុម}}៖",
        "prefs-registration": "កាលបរិច្ឆេទចុះឈ្មោះ៖",
        "yourrealname": "ឈ្មោះពិត៖",
        "recentchanges-label-unpatrolled": "ការកែប្រែនេះមិនទាន់ត្រូវបានល្បាតទេ",
        "recentchanges-label-plusminus": "ទំហំទំព័រត្រូវបានផ្លាស់ប្ដូរគិតជាចំនួនបៃ",
        "recentchanges-legend-heading": "''កំណត់សម្គាល់៖'''",
-       "recentchanges-legend-newpage": "(មើលផងដែរនូវ [[Special:NewPages|បញ្ជីទំព័រថ្មី]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (មើលផងដែរនូវ [[Special:NewPages|បញ្ជីទំព័រថ្មី]])",
        "rcnotefrom": "ខាងក្រោមនេះជាបន្លាស់ប្ដូរនានាគិតចាប់តាំងពី '''$2''' (បង្ហាញអតិបរមាចំនួន '''$1''')។",
        "rclistfrom": "បង្ហាញបន្លាស់ប្ដូរថ្មីៗចាប់តាំងពី $3 $2",
        "rcshowhideminor": "$1កំណែប្រែ​តិចតួច",
        "log-title-wildcard": "ស្វែងរកចំណងជើងចាប់ផ្តើមដោយឃ្លានេះ",
        "showhideselectedlogentries": "បង្ហាញ/លាក់កំណត់ហេតុដែលបានជ្រើសយក",
        "allpages": "ទំព័រទាំងអស់",
-       "alphaindexline": "ពីទំព័រ $1 ដល់ទំព័រ $2",
        "nextpage": "ទំព័របន្ទាប់ ($1)",
        "prevpage": "ទំព័រមុន ($1)",
        "allpagesfrom": "បង្ហាញទំព័រផ្ដើមដោយ៖",
        "tooltip-preferences-save": "រក្សាទុកចំណង់ចំណូលចិត្ត",
        "tooltip-summary": "សរសេរចំណារពន្យល់ថ្មីមួយ",
        "common.css": "/* CSS បានដាក់ទីនេះនឹងមានអនុភាពលើគ្រប់សំបកទាំងអស់ */",
-       "cologneblue.css": "/* CSS បានដាក់ទីនេះនឹងមានអនុភាពលើអ្នកប្រើប្រាស់នៃសំបក Cologne Blue */",
        "monobook.css": "/* CSS បានដាក់ទីនេះនឹងមានអនុភាពលើអ្នកប្រើប្រាស់នៃសំបក Monobook */",
-       "modern.css": "/* CSS បានដាក់ទីនេះនឹងមានអនុភាពលើអ្នកប្រើប្រាស់នៃសំបក Modern */",
        "vector.css": "/* CSS បានដាក់ទីនេះនឹងមានអនុភាពលើអ្នកប្រើប្រាស់នៃសំបក Vector */",
        "anonymous": "{{PLURAL:$1|user|អ្នកប្រើប្រាស់}}អនាមិកនៃ {{SITENAME}}",
        "siteuser": "អ្នកប្រើប្រាស់{{SITENAME}} $1",
        "pageinfo-category-pages": "ចំនួនទំព័រ",
        "pageinfo-category-subcats": "ចំនួនកូនចំណាត់ថ្នាក់ក្រុម",
        "pageinfo-category-files": "ចំនួនឯកសារ",
-       "skinname-cologneblue": "ទឹកអប់ខៀវ",
        "skinname-monobook": "សៀវភៅឯក",
-       "skinname-modern": "ទំនើប",
        "skinname-vector": "វ៉ិចទ័រ​​",
        "markaspatrolleddiff": "ចំណាំថាបានល្បាត",
        "markaspatrolledtext": "ចំណាំទំព័រនេះថាបានល្បាត",
index a7cc5f3..2aa278a 100644 (file)
        "virus-scanfailed": "검사 실패 (코드 $1)",
        "virus-unknownscanner": "알 수 없는 백신 소프트웨어:",
        "logouttext": "'''지금 로그아웃했습니다.'''\n\n브라우저 캐시를 지우지 않으면 일부 문서에서 로그인이 되어 있는 것처럼 보일 수 있습니다.",
-       "welcomeuser": "$1 님, 환영합니다!",
+       "welcomeuser": "$1님, 환영합니다!",
        "welcomecreation-msg": "계정이 만들어졌습니다.\n[[Special:Preferences|{{SITENAME}} 사용자 환경 설정]]을 바꿀 수 있습니다.",
        "yourname": "사용자 이름:",
        "userlogin-yourname": "사용자 계정 이름",
        "recentchanges-label-unpatrolled": "아직 순찰하지 않은 편집",
        "recentchanges-label-plusminus": "바이트로 표기된 바뀐 문서 크기",
        "recentchanges-legend-heading": "'''범례:'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|새 문서 목록]]도 보세요)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|새 문서 목록]]도 보세요)",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "다음은 <strong>$2</strong>에서부터 바뀐 문서 <strong>$1</strong>개입니다.",
        "rclistfrom": "$3 $2부터 시작하는 새로 바뀐 문서 보기",
        "sp-contributions-newbies-sub": "새 사용자의 기여",
        "sp-contributions-newbies-title": "새 사용자의 기여",
        "sp-contributions-blocklog": "차단 기록",
-       "sp-contributions-suppresslog": "ì\82­ì \9cë\90\9c 사용자 기여",
+       "sp-contributions-suppresslog": "ì\88¨ê²¨ì§\84 사용자 기여",
        "sp-contributions-deleted": "삭제된 사용자 기여",
        "sp-contributions-uploads": "올린 파일",
        "sp-contributions-logs": "기록",
        "importbadinterwiki": "인터위키 링크가 잘못되었습니다.",
        "importsuccess": "가져오기 완료!",
        "importnosources": "문서를 가져올 출처가 정의되지 않았고 문서 역사 올리기가 비활성화되었습니다.",
-       "importnofile": "가져오기 파일이 올려지지 않았습니다.",
+       "importnofile": "가져오기 파일이 올려지지 않았습니다.",
        "importuploaderrorsize": "파일 올리기를 통한 가져오기에 실패했습니다.\n파일이 허용된 크기 제한보다 큽니다.",
        "importuploaderrorpartial": "가져오기 파일을 올리는 데 실패하였습니다.\n파일이 부분적으로만 올려졌습니다.",
        "importuploaderrortemp": "가져오기 파일을 올리는 데 실패했습니다.\n임시 폴더가 존재하지 않습니다.",
index 7711ae0..138054b 100644 (file)
        "vector-action-unprotect": "Джакълауну тюрлендир",
        "vector-view-create": "Къура",
        "vector-view-edit": "Тюрлендир",
-       "vector-view-history": "Тарихин кёргюз",
+       "vector-view-history": "Тарихи",
        "vector-view-view": "Окъу",
        "vector-view-viewsource": "Кодха къара",
        "actions": "Этиуле",
        "recentchanges-label-bot": "Бу тюрлендириуню бот этгенди",
        "recentchanges-label-unpatrolled": "Бу тюрлендириу алкъын патруль этилинмегенди",
        "recentchanges-label-plusminus": "Бетни ёлчеми быллай бир байтха тюрленнгенди",
-       "recentchanges-legend-newpage": "(къарагъыз: [[Special:NewPages|джангы бетлени тизмеси]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (къарагъыз: [[Special:NewPages|джангы бетлени тизмеси]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Тюбюрекде <strong>$2</strong> башлаб (<strong>$1</strong> дери) тюрлендириуле кёрюнедиле",
        "rclistfrom": "$3 $2 башлаб джангы тюрлениулени кёргюз",
index 8a7e9cb..695500f 100644 (file)
        "searchmenu-exists": "*Sigg '''[[$1]]'''",
        "searchmenu-new": "<strong>Donn de Sigg „[[:$1|$1]]“ hee em Wiki aanlääje.</strong>\n{{PLURAL:$2|Beloor Der ävver och die Sigg, di beim Söhke jefonge wood.|Beloor Der ävver och die Sigge, di beim Söhke jefonge woode sin.|}}",
        "searchprofile-articles": "Sigge vum Enhalt",
-       "searchprofile-project": "Hülp- ov Projäk-Sigge",
        "searchprofile-images": "Dateie met Medije",
        "searchprofile-everything": "Övverall noh",
        "searchprofile-advanced": "Extra",
        "searchprofile-articles-tooltip": "Söök en de $1",
-       "searchprofile-project-tooltip": "Söök en de $1",
        "searchprofile-images-tooltip": "Söök noh Dateie",
        "searchprofile-everything-tooltip": "Söök övverall dren, och op de Klaafsigge",
        "searchprofile-advanced-tooltip": "Donn en ußjesohte Appachtemangs sööke",
        "search-interwiki-default": "Op $1 woodte heh di Träffer jefonge:",
        "search-interwiki-more": "(mieh)",
        "search-relatedarticle": "Ähnlesch",
-       "searcheverything-enable": "En alle Appachtemangs söhke",
        "searchrelated": "ähnlesch",
        "searchall": "all",
        "showingresults": "Onge {{PLURAL:$1|weed <strong>eine</strong>|wääde bes <strong>$1</strong>|weed <strong>keine</strong>}} vun de jefonge Endrähsch jezeisch, vun de Nommer <strong>$2</strong> av.",
        "allowemail": "E-Mail vun andere Metmaacher zolooße",
        "prefs-searchoptions": "Enschtällonge för et Söhke",
        "prefs-namespaces": "Appachtemangs",
-       "defaultns": "Söns don en hee dä Appachtemengs söhke:",
        "default": "Standaad",
        "prefs-files": "Dateie",
        "prefs-custom-css": "Selfsjemaat <i lang=\"en\">Cascading Style Sheet</i>",
        "recentchanges-label-unpatrolled": "Heh di Änderung es noch nit nohjeloort",
        "recentchanges-label-plusminus": "Der Ömvang vun dä Sigg hät sesch öm di Aanzahl Bytes verändert.",
        "recentchanges-legend-heading": "'''Lejänd:'''",
-       "recentchanges-legend-newpage": "(Loor och noh de [[Special:NewPages|Leß met de neue Sigge]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (Loor och noh de [[Special:NewPages|Leß met de neue Sigge]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Hee {{PLURAL:$1|es ein|sin bes op <strong>$1</strong>|es keine}} fun de Änderunge zick dem <strong>$3</strong> öm <strong>$4</strong> Uhr opjelėß.",
        "rclistfrom": "Zeich de Änderunge vum $3 $2 aan",
        "tooltip-summary": "Jif en koote Zesammefassung en",
        "interlanguage-link-title": "$1 ($2)",
        "common.css": "/* CSS heh aan dä Stell hät Uswirkunge op all Ovverflääsche */",
-       "cologneblue.css": "/* CSS heh aan dä Stell wirrek nur op de Ovverflääsch „Kölsch Blau“ */",
        "monobook.css": "/* CSS heh aan dä Stell wirrek nur op de Ovverflääsch „Monobooch“ */",
-       "modern.css": "/* CSS heh aan dä Stell wirrek nur op de Ovverflääsch „Modern“ */",
        "vector.css": "/* CSS heh aan dä Stell wirrek nur op de Ovverflääsch „Vector“ */",
        "print.css": "/* CSS heh aan dä Stell wirrek nur op et Sigge Drökke */",
        "noscript.css": "/* Dat CSS heh aan dä Stell krijje nur de Metmaacher met affjeschaldt JavaSkrepp jescheck */",
        "group-sysop.css": "/* Dat CSS heh aan dä Stell krijje nur dem Wiki sing Köbeße jescheck */",
        "group-bureaucrat.css": "/* Dat CSS heh aan dä Stell krijje nur de Bürrokraate jescheck */",
        "common.js": "/* Jedes JavaScrip hee kütt för jede Metmaacher in jede Sigg erinn */",
-       "cologneblue.js": "/* De JavaSkrippte fun hee krijje alle Sigge met de Ovverflääsch \"Kölsch Blou\" jescheck */",
        "monobook.js": "/* De JavaSkrippte fun hee krijje alle Sigge met de Ovverflääsch \"Monnobooch\" jescheck */",
-       "modern.js": "/* De JavaSkrippte fun hee krijje alle Sigge met de Ovverflääsch \"Modern\" jescheck */",
        "vector.js": "/* De JavaSkrippte fun hee krijje alle Sigge met de Ovverflääsch \"Vector\" jescheck */",
        "group-autoconfirmed.js": "/* De JavaSkreppte fun hee krijje bloß de autemattesch beshtääteschte Metmaacher jescheck */",
        "group-bot.js": "/* De JavaSkreppte fun hee krijje bloß de Bots jescheck */",
        "pageinfo-category-pages": "De Aanzahl Sigge",
        "pageinfo-category-subcats": "De Aanzahl Ongerjroppe",
        "pageinfo-category-files": "De Aanzahl Dateie",
-       "skinname-cologneblue": "Kölsch Blau",
        "skinname-monobook": "MonoBoch",
-       "skinname-modern": "Modern",
        "skinname-vector": "Vektor",
        "markaspatrolleddiff": "Nohjeluurt. Dun dat fasshallde.",
        "markaspatrolledtext": "De Änderung es nohjeluert, dun dat fasshallde",
index c48b946..019ed05 100644 (file)
        "vector-view-view": "Legere",
        "vector-view-viewsource": "Fontem inspicere",
        "actions": "Actiones",
+       "vector-more-actions": "Plus",
        "namespaces": "Spatia nominalia",
        "variants": "Variantes",
        "errorpagetitle": "Erratum",
        "searchmenu-exists": "'''Iam est pagina \"[[:$1]]\"'''",
        "searchmenu-new": "'''Creare paginam \"[[:$1]]\"'''",
        "searchprofile-articles": "Paginae contentorum",
-       "searchprofile-project": "Paginae adiutati et incepti",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Omnia",
        "searchprofile-advanced": "Callidissime",
        "searchprofile-articles-tooltip": "Quaerere in $1",
-       "searchprofile-project-tooltip": "Quaerere in $1",
        "searchprofile-images-tooltip": "Fasciculos quaerere",
        "searchprofile-everything-tooltip": "Omnia perscrutari (etiam paginae disputationis)",
        "searchprofile-advanced-tooltip": "In spatiis nominalibus accommotis quaerere",
        "search-interwiki-default": "$1 eventus:",
        "search-interwiki-more": "(plus)",
        "search-relatedarticle": "Relata",
-       "searcheverything-enable": "Quaerere in omnibus spatiis nominalibus",
        "searchrelated": "relata",
        "searchall": "omnia",
        "showingresults": "Subter monstrans {{PLURAL:$1|'''1''' eventu|'''$1''' eventibus}} tenus incipiens ab #'''$2'''.",
        "allowemail": "Sinere litteras electronicas inscriptioni electronicae meae mittere",
        "prefs-searchoptions": "Quaerere",
        "prefs-namespaces": "Spatia nominalia",
-       "defaultns": "Aut quaerere per haec spatia nominalia:",
        "default": "praedeterminatum",
        "prefs-files": "Fasciculi",
        "prefs-custom-css": "CSS proprium",
        "prefs-emailconfirm-label": "Adfirmatio inscriptionis electronicae:",
        "youremail": "Inscriptio electronica:",
        "username": "Nomen usoris:",
-       "uid": "ID usoris:",
        "prefs-registration": "Dies creationis rationis:",
        "yourrealname": "Nomen verum:",
        "yourlanguage": "Lingua:",
        "recentchanges-label-bot": "Hanc recensionem automaton fecit",
        "recentchanges-label-unpatrolled": "Haec recensio nondum est examinata",
        "recentchanges-label-plusminus": "Magnitudo paginae per istam copiam octetorum mutata est",
-       "recentchanges-legend-newpage": "(vide etiam [[Special:NewPages|indicem paginarum novarum]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vide etiam [[Special:NewPages|indicem paginarum novarum]])",
        "rcnotefrom": "Subter sunt '''$1''' nuperrime mutata in proxima '''$2''' die.",
        "rclistfrom": "Monstrare mutata nova incipiens ab $3 $2",
        "rcshowhideminor": "$1 recensiones minores",
        "alllogstext": "Ostentantur omnia acta {{grammar:genitive|{{SITENAME}}}}.\nAdspectum graciliorem potes facere modum indicum, nomen usoris (cave litteras maiusculas minusculasque), vel titulum paginae (cave etiam litteras maiusculas minusculasque) seligendo.",
        "log-title-wildcard": "Quaerere titulos qui incipiunt litteris",
        "allpages": "Paginae omnes",
-       "alphaindexline": "$1 ad $2",
        "nextpage": "Pagina proxima ($1)",
        "prevpage": "Pagina superior ($1)",
        "allpagesfrom": "Monstrare paginas ab:",
        "pageinfo-recent-edits": "Praesens numerus recensionum (intra praeterita $1)",
        "pageinfo-hidden-categories": "{{PLURAL:$1|Categoria celata|Categoriae celatae}} ($1)",
        "pageinfo-toolboxlink": "De hac pagina",
-       "skinname-cologneblue": "Caerulus Colonia",
        "markaspatrolleddiff": "Indicare hanc paginam qua circumita",
        "markaspatrolledtext": "Indicare hanc paginam qua circumita",
        "markedaspatrolled": "Indicare hanc paginam qua circumita",
index 09bac72..cca61f8 100644 (file)
        "recentchanges-label-unpatrolled": "Dës Ännerung gouf nach net nogekuckt",
        "recentchanges-label-plusminus": "D'Gréisst vun der Säit huet sech ëm déi Zuel vu Bytes geännert",
        "recentchanges-legend-heading": "'''Legend:'''",
-       "recentchanges-legend-newpage": "(kuckt och [[Special:NewPages|Lëscht vun den neie Säiten]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (kuckt och [[Special:NewPages|Lëscht vun den neie Säiten]])",
        "recentchanges-legend-plusminus": "''(±123)''",
        "rcnotefrom": "Ugewise ginn d'Ännerunge vum <strong>$2</strong> un (maximal <strong>$1</strong> Ännerunge gi gewisen).",
        "rclistfrom": "Nei Ännerunge vu(n) $3 $2 u weisen",
        "wantedtemplates": "Gewënscht Schablounen",
        "mostlinked": "Dacks verlinkt Säiten",
        "mostlinkedcategories": "Dacks benotzt Kategorien",
-       "mostlinkedtemplates": "Dacks benotzt Schablounen",
+       "mostlinkedtemplates": "Säiten déi am dacksten agebonn sinn",
        "mostcategories": "Säite mat de meeschte Kategorien",
        "mostimages": "Dacks benotzt Biller",
        "mostinterwikis": "Säite mat de meeschten Interwikilinken",
index 3e3fe0c..a4ca693 100644 (file)
@@ -67,7 +67,7 @@
        "editfont-sansserif": "Font sans-serif",
        "editfont-serif": "Font serif",
        "sunday": "Dumeniga",
-       "monday": "Lündesdí",
+       "monday": "Lünesdí",
        "tuesday": "Martedì",
        "wednesday": "Merculdí",
        "thursday": "Giuedí",
        "postcomment": "Sezión növa",
        "articlepage": "Varda l'articul",
        "talk": "Discüssión",
-       "views": "Visid",
+       "views": "Vìste",
        "toolbox": "Arnés",
        "userpage": "Vidè la pàgina del dovrat",
        "projectpage": "Varda la pagina de servizzi",
        "viewsourcelink": "fà vidè el codes surgent",
        "editsectionhint": "Mudifega la sezión $1",
        "toc": "Cuntegnüü",
-       "showtoc": "fà vidè",
+       "showtoc": "fà ved",
        "hidetoc": "scund",
        "collapsible-collapse": "sara sü",
-       "collapsible-expand": "slarga",
+       "collapsible-expand": "dèrf fò",
        "thisisdeleted": "Varda o rimet a post $1?",
-       "viewdeleted": "Te vöret vidè $1?",
+       "viewdeleted": "Vöret vidè $1?",
        "restorelink": "{{PLURAL:$1|1 mudifega scancelada|$1 mudifegh scancelaa}}",
        "feedlinks": "Feed:",
        "feed-invalid": "Mudalità de sotascrizión del feed minga valida",
        "directorycreateerror": "L'è mía staa pussibel creà la cartèla \"$1\"",
        "filenotfound": "L'è mía staa pussibel trövà l'archivi \"$1\"",
        "unexpected": "Valur inaspetaa: \"$1\"=\"$2\"",
+       "formerror": "Erur: el sistéma 'l rìa mìa a mandà vià 'l mòdulo",
+       "badarticleerror": "Operasiù mìa pirmitìda per chèsta pàgina.",
        "cannotdelete": "La pagina o l'archivi \"$1\" i g'ha mìa püdìt véser scancelàcc.\nPöl das che i sàpe zà stacc scancelàcc de vergü óter.",
        "cannotdelete-title": "L'è mìa stat pusìbol scancelà la pàgina \"$1\"",
        "delete-hook-aborted": "El scancelamènt l'è stat anulàt de l'hook.\nGh'è stat dat nesöna spiegasiù.",
        "mypreferencesprotected": "Te g'hét mìa i permès nesesàre per mudificà le tò preferènse",
        "ns-specialprotected": "I paginn special i pören mía vess mudifegaa",
        "exception-nologin": "Te seet minga dent in del sistema",
+       "exception-nologin-text": "Te g'harèset de [[Special:Userlogin|autenticàt]] (cioè fà 'l log-in) per püdì doprà chèsta pàgina o asiù.",
        "virus-scanfailed": "scansiù falìda (còdes $1)",
        "logouttext": "'''Ades te sét scolegàt.'''\n\nOcio che 'na quach pàgina la te pödarès vègner fò compàgn che se te g'hèset mìa fat el log-out enfìna a che te snètet mìa fò la cache del tò browser.",
        "welcomeuser": "Benvegnüü\\Benriàt, $1",
        "login-userblocked": "Chèsta ütènsa l'è blocàda. La conesiù l'è mìa cunsentìda.",
        "wrongpassword": "La ciav che t'hee metüü denter l'è nò giüsta. Pröva turna per piasè.",
        "wrongpasswordempty": "T'hee no metüü denter la parola ciav. Pröva turna per piasè.",
+       "passwordtooshort": "Le password le g'ha de ìga alméno {{PLURAL:$1|1 caràter|$1 caràter}}.",
        "password-name-match": "La tò password la g'ha de éser diferènta del tò nòm de ütènt",
+       "password-login-forbidden": "L'üzo de chesto nom ütent e de chèsta password l'è stat pruibìt.",
        "mailmypassword": "Tùrna a defenéser la password",
        "passwordremindertext": "Un quajdün (prubabilment ti, cun l'indiriz IP $1) l'ha ciamaa da mandagh 'na ciav növa per andà denter int 'l sistema de {{SITENAME}} ($4).\nLa ciav per 'l druvadur \"$2\" adess l'è \"$3\".\nSariss mej andà denter int 'l sit almanch una völta prima de cambià la ciav.\nLa to ciav tempuranea la scaderà da chì a {{PLURAL:$5|un dì|$5 dì}}.\n\nSe te nò staa ti a ciamà 'sta ciav chì, o magara t'hee truaa la ciav vegia e te vör pü cambiala, te pör ignurà 'stu messagg chì e 'ndà inanz a druà la ciav vegia.",
        "noemail": "Gh'è registràt nisü indirìs e-mail per l'ütènt \"$1\".",
        "pt-login-button": "Va dent",
        "pt-createaccount": "Creá un cünt",
        "pt-userlogout": "Va fö (logout)",
-       "changepassword": "Mudifega la paròla d'urdin",
+       "user-mail-no-addy": "Te g'hét sercàt de mandà vià 'na e-mail sènsa specificà l'indirìs",
+       "user-mail-no-body": "Te g'hét sercàt de mandà vià 'na e-mail conden tèst vöt o tròp cürt.",
+       "changepassword": "Càmbia la password",
        "resetpass_announce": "Per completà la conesiù, te g'hét de definì 'na password nöa.",
        "resetpass_header": "Càmbia la password de l'ütènsa",
        "oldpassword": "Password vècia:",
        "retypenew": "Tùrna a mèter dét la password nöa:",
        "resetpass_submit": "Defenés la password e regìstret (fà 'l log-in)",
        "changepassword-success": "La tò password l'è stàda cambiàda sènsa erùr!",
-       "changepassword-throttled": "Te g'hét fat tròp tacc tentatìf de cunitìt en poch tép, adès te g'hét de spetà $1 per püdì turnà a pröà.",
+       "changepassword-throttled": "Te g'hét fat tròp tacc tentatìf de autenticàt en poch tép, adès te g'hét de spetà $1 per püdì turnà a pröà.",
        "resetpass_forbidden": "Te pödet mìa cambià le password",
        "resetpass-no-info": "Te g'hét de éser cunitìt per acéder diretamènt a la pàgina",
        "resetpass-submit-loggedin": "Càmbia la password",
        "resetpass-submit-cancel": "Scancèla l'operasiù",
+       "resetpass-wrong-oldpass": "Password temporànea o atöàla mìa bùna.\nLa password la pödarès véser stàda zamò cambiàda, o sedenò te pödarèset vìga zamò fat domànda de 'na password temporànea nöa.",
+       "resetpass-recycled": "Te g'harèset de turnà a defenéser la tò password con vergót de diferènt de la password che te g'hét adès.",
+       "resetpass-temp-emailed": "L'autenticasiù l'è stàda fàda conden còdes temporàneo, mandàt per e-mail. Per completà la registrasiù, bizògna che te defenéset 'na password nöa ché:",
+       "resetpass-temp-password": "Password temporànea:",
+       "resetpass-abort-generic": "La mudìfica de la password l'è stàda blocàda de 'n estensiù.",
+       "resetpass-expired": "La tò password l'è scadìda. Te g'harèset de defenéser 'na password nöa semài che te öt autenticàt.",
+       "resetpass-validity-soft": "La tò password l'è mìa bùna: $1\n\nTe g'harèset de catà fò 'n ótra password o clicà sö \"{{int:resetpass-submit-cancel}}\" per turnà a definìla piö tàrde.",
        "passwordreset": "Tùrna a defenéser la password",
+       "passwordreset-text-one": "Empenés chèsto mòdulo per turnà a defenéser la tò password.",
        "passwordreset-legend": "Tùrna a defenéser la password",
        "passwordreset-disabled": "La ridefinisiù de la password l'è mìa atìva sö chèsta wiki",
        "passwordreset-emaildisabled": "Le funsiù de pòsta eletrònica i è stàde disativàde sö chèsta wiki.",
        "passwordreset-username": "Nòm de ütènt",
        "passwordreset-domain": "Domini:",
        "passwordreset-email": "Indirìs e-mail:",
+       "passwordreset-emailtitle": "Detài de l'ütènsa sö {{SITENAME}}",
+       "passwordreset-emailelement": "Nòm ütènt: $1\nPassword temporànea: $2",
+       "passwordreset-emailsent": "Gh'è stat mandàt vià 'na e-mail de redefinisiù de la password.",
+       "passwordreset-emailsent-capture": "Gh'è stat mandàt vià chèsta e-mail de redefinisiù de la password:",
+       "changeemail": "Càmbia l'indirìs e-mail",
+       "changeemail-header": "Càmbia l'indirìs e-mail de l'ütènsa",
        "changeemail-none": "(nisü)",
        "changeemail-password": "La password sö {{SITENAME}}:",
        "changeemail-submit": "Càmbia l'indirìs e-mail",
        "changeemail-cancel": "Scancèla l'operasiù",
+       "changeemail-throttled": "Te g'hét fat tròp tacc tentatìf de autenticàt, adès te g'hét de spetà $1 per püdì turnà a pröà.",
        "resettokens": "Redefenés i tokens",
+       "resettokens-no-tokens": "Gh'è nisü token de redefenéser.",
        "resettokens-legend": "Redefenés i tokens",
        "resettokens-tokens": "Token:",
        "resettokens-token-label": "$1 (valùr de adès: $2)",
        "showpreview": "Famm vedè prima",
        "showdiff": "Famm vedè i cambiament",
        "anoneditwarning": "Tì te set minga entraa. In de la crunulugia de la pagina se vedarà el tò IP.",
+       "anonpreviewwarning": "''Te g'hét mìa fat el log-in. Semài che te sàlvet la pàgina, el tò indirìs IP el vegnarà registràt endèla crunulugìa.''",
        "missingcommenttext": "Mèt dét en comènt ché sota",
        "summary-preview": "Pröva de l'uget:",
        "blockedtitle": "Ütènsa blocàda",
        "currentrev": "Versiù de adès",
        "currentrev-asof": "Versión curenta di $1",
        "revisionasof": "Revisión $1",
-       "revision-info": "Versiù del $4 a le $5 de $2",
+       "revision-info": "Versiù del $4 a le $5 de {{GENDER:$6|$2}}$7",
        "previousrevision": "←Versión püssee vegia",
        "nextrevision": "Revisión püssee növ →",
        "currentrevisionlink": "Varda la revisión curenta",
        "revdelete-radio-same": "(càmbia mìa)",
        "revdelete-radio-set": "Scond",
        "revdelete-radio-unset": "Fà vèt",
+       "revdelete-unsuppress": "Tira vià le restrisiù sö le versiù ripristinàde",
        "revdelete-log": "Mutìf:",
+       "revdelete-submit": "Aplica {{PLURAL:$1|a la versiù selesiunàda|a le versiù selesiunàde}}",
        "revdel-restore": "Cambia la visibilità",
        "pagehist": "Crunulugia de la pagina",
        "deletedhist": "Crunulugìa scancelàda",
        "mergehistory-reason": "Mutìf:",
        "pagemerge-logentry": "el g'ha ünìt [[$1]] a [[$2]] (reviziù 'nfìna al $3)",
        "revertmerge": "Scancela i ünión",
-       "history-title": "Cronolugia di mudifegh de \"$1\"",
+       "history-title": "Crunulugia di mudifegh de \"$1\"",
+       "difference-title-multipage": "Diferènsa 'ntra le pàgine \"$1\" e \"$2\"",
+       "difference-multipage": "(Diferènsa 'ntra le pàgine)",
        "lineno": "Riga $1:",
        "compareselectedversions": "Compara i versión seleziunaa",
        "editundo": "turna a 'me che l'era",
+       "diff-empty": "(Nesöna diferènsa)",
        "searchresults": "Risültaa de la recerca.",
        "searchresults-title": "Resültaa de la ricerca de \"$1\"",
        "toomanymatches": "Gh'è tropi curispundens. Mudifichè la richiesta.",
+       "titlematches": "Corespondènse endel tìtol de le pàgine",
        "textmatches": "Truvaa int 'l test di paginn",
        "notextmatches": "La vus che t'hee ciamaa la gh'ha minga una curispundenza in del test di paginn.",
        "prevn": "precedent {{PLURAL:$1|$1}}",
        "nextn": "pròssim {{PLURAL:$1|$1}}",
        "prevn-title": "{{PLURAL:$1|Rezültàt precedènt|$1 rezültàcc precedèncc}}",
        "nextn-title": "Next $1 {{PLURAL:$1|result|results}}",
-       "viewprevnext": "Vidé ($1 {{int:pipe-separator}} $2) ($3).",
+       "shown-title": "Fà ved {{PLURAL:$1|on resultaa|$1 resultaa}} per pàgina",
+       "viewprevnext": "Ved ($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-new": "'''Trà in pee la pagina \"[[:$1]]\" ins quel sit chì!'''",
        "searchprofile-articles": "Paginn de cuntegnüü",
        "searchprofile-images": "Multimedia",
        "search-result-score": "Atinènsa: $1%",
        "search-redirect": "(redirezión $1)",
        "search-section": "(sessión $1)",
+       "search-file-match": "(corespondènsa endèl test de l'archivi)",
        "search-suggest": "Vurivet dì: $1",
        "search-interwiki-caption": "Pruget fredej",
        "search-interwiki-default": "Rezültàcc de $1:",
        "preferences": "Preferenz",
        "mypreferences": "Preferenz",
        "prefs-edits": "Quantità de mudifegh faa:",
+       "prefsnologintext2": "Te g'harèset de $1 per defenéser le preferènse de l'ütènt.",
        "prefs-skin": "Aspett de l'interfacia",
        "skin-preview": "Anteprìma",
        "datedefault": "Nesöna preferènsa",
        "prefs-watchlist-days": "Nümer de dì da mustrà ind i paginn da tegn d'ögg:",
        "prefs-watchlist-days-max": "Màsimo $1 {{PLURAL:$1|dé|dé}}",
        "prefs-watchlist-edits": "Nümer de mudifegh da mustrà cunt i fünzión avanzaa:",
+       "prefs-watchlist-edits-max": "Nömer màsim: 1000",
        "prefs-misc": "Ólter",
        "prefs-resetpass": "Càmbia la password",
        "prefs-changeemail": "Càmbia l'indirìs e-mail",
        "columns": "Culònn:",
        "searchresultshead": "Cerca",
        "stub-threshold-disabled": "Dezativàt",
+       "recentchangesdays": "Dé de fà éder endèi öltem cambiamèncc:",
+       "recentchangesdays-max": "Màsimo $1 {{PLURAL:$1|dé|dé}}",
        "recentchangescount": "Nümer de mudifegh da mustrà per ''default'':",
        "savedprefs": "I preferenz hinn stai salvaa.",
        "timezonelegend": "Füs oràre:",
        "prefs-help-variant": "La variant o grafia co la qual te preferéset véder le pàgine de la wiki.",
        "yournick": "Suranomm:",
        "prefs-help-signature": "I cument ind i paginn de discüssion i gh'han de vess firmaa cun \"<nowiki>~~~~</nowiki>\" che 'l sarà pö cunvertì int la tua firma cun tacada la data e l'ura.",
-       "yourgender": "Géner:",
+       "yourgender": "Gh'è de rivulgìs a té come màs·cc o fèmina?",
        "gender-unknown": "Preferissi specifegaa nò",
-       "gender-male": "Mas'c",
-       "gender-female": "Femena",
-       "prefs-help-gender": "Upziunal: druvaa per adatà i messagg del software a segónda del gener del druvadur. Questa infurmazion chì la sarà püblica.",
+       "gender-male": "L'è registrat sö {{SITENAME}}",
+       "gender-female": "L'è registràda sö {{SITENAME}}",
+       "prefs-help-gender": "La definisiù de chèsta preferènsa l'è m,ìa ubligatória.\nEl software el dòpra chèsto valur per rivulgìs a té o lüminàt ai óter col tò zèner gramaticàl giöst (al maschìl o al feminìl).\nChèsta 'nformasiù però la sarà püblica.",
        "email": "Indirizz de pòsta elettrònica.",
-       "prefs-help-email": "L'e-mail a l'è mia obligatòri, però al permet da mandàv una ciav noeva in cas che ve la desmenteghé. A podé apó scernì da lassà entrà i alter dovrat in contat con violter senza da busogn da svelà la vosta identità.",
+       "prefs-help-email": "L'indirìs e-mail l'è mìa ubligatóre, ma 'l serf per mandàt la tò password semài che te g'hèset de desmentegàtela.",
        "prefs-help-email-required": "L'indirìs e-mail l'è ubligatóre",
        "prefs-info": "Infurmazion de bas",
        "prefs-i18n": "Internaziunalizazión",
        "userrights-lookup-user": "Gestion di grüp di druvaduu",
        "userrights-user-editname": "Butée dent un nom da dovrat",
        "editusergroup": "Mudifega i grüp del druvadur",
-       "editinguser": "Mudifega di dirit del druvadur '''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]]{{int:pipe-separator}}[[Special:Contributions/$1|{{int:contribslink}}]])",
+       "editinguser": "Mudìfica i dirìcc de ütènt de l'ütènsa '''[[User:$1|$1]]''' $2",
        "userrights-editusergroup": "Mudifega i grüp del druvadur",
        "saveusergroups": "Salva i grüp di druvadur",
        "userrights-groupsmember": "El fà part di grüp:",
        "userrights-no-interwiki": "Te gh'hee mía i permiss necessari per pudè mudifegà i dirit di druvadur di olter wiki.",
        "userrights-nodatabase": "La base dat $1 a gh'é mia, o pura a l'é mia locala.",
        "userrights-nologin": "Al gh'a da [[Special:UserLogin|rintrà ent el sistema]] con un cunt d'administrator par podé dà di drecc ai dovracc.",
-       "userrights-notallowed": "A l'ha mia li permission par podé dà di drecc ai dovracc.",
+       "userrights-notallowed": "Te g'hét mìa l'autorizasiù per mudificà i permès de ütènt.",
        "userrights-changeable-col": "Grüp che te pö mudifegà",
        "userrights-unchangeable-col": "Grüp che te pö mia mudifegà",
        "group-user": "Druvadur",
        "grouppage-bot": "{{ns:project}}:Bots",
        "grouppage-sysop": "{{ns:project}}:Aministradur",
        "right-edit": "Edita pàgini",
-       "right-createaccount": "Crea cünt de dovratt bej-e növ",
+       "right-createtalk": "Creà pàgine de discusiù",
+       "right-createaccount": "Creà ütènse nöe",
+       "right-minoredit": "Segnà le mudìfiche come picinìne",
+       "right-move": "Spostà le pàgine",
+       "right-move-subpages": "Spostà le pàgine e le sotapàgine",
+       "right-move-rootuserpages": "Spostà le pàgine principài dei ütèncc",
+       "right-move-categorypages": "Spostà le categurìe",
+       "right-movefile": "Spostà i archivi",
+       "right-suppressredirect": "Mìa creà 'n ''redirect'' automàtich quan che se spòsta 'na pàgina",
+       "right-upload": "Cargà sö 'n archivi",
+       "right-reupload": "Surascrìer i archìvi che ezìste zamò",
+       "right-reupload-own": "Surascrìer en ardchivi che ezìste zamò cargàt sö del stès ütènt",
        "right-delete": "Scancelà pàgine",
+       "right-browsearchive": "Sercà pàgine scancelàde",
+       "right-undelete": "Ripristinà pàgine scancelàde",
+       "right-suppressrevision": "Eder e ripristinà versiù scundìde ai aministradùr",
+       "right-suppressionlog": "Eder regìster privàcc",
+       "right-block": "Blocà le mudìfiche de ótre ütènse",
+       "right-blockemail": "Fà in manera che quel ütent chì 'l poda mia spedì di messagg e-mail",
+       "right-hideuser": "Blocà en nòm de ütènt e scundìl al püblich",
+       "right-unblockself": "Desblocà sè stès",
        "right-siteadmin": "Blocà e desblocà el database",
        "newuserlogpage": "Register di ütent növ",
        "rightslog": "Dirit di druvat",
        "action-history": "ardà la crunulugìa de chèsta pàgina",
        "action-minoredit": "segnà chèsta mudìfica come picinìna",
        "action-move": "spostà chèsta pàgina",
+       "action-move-rootuserpages": "spostà le pàgine principài dei ütèncc",
        "action-move-categorypages": "spostà le categurìe",
-       "action-movefile": "Spòsta chèsto archivi",
-       "action-upload": "Càrga sö chèsto archivi",
+       "action-movefile": "spòsta chèsto archivi",
+       "action-upload": "càrga sö chèsto archivi",
        "action-reupload": "surascrìf chèsto archivi (che l'ezìste zà)",
        "action-upload_by_url": "cargà chèsto archivi de 'n indirìs URL",
        "action-writeapi": "doprà le API en scritüra",
        "action-undelete": "ripristinà chèsta pàgina",
        "action-suppressrevision": "riéder e ripristinà le mudìfiche scundìde",
        "action-suppressionlog": "éder chèsto regìster privàt",
+       "action-block": "blocà le mudìfiche de chèsto ütènt",
        "action-protect": "cambià i leèi de protesiù de chèsta pàgina",
        "action-import": "emportà pàgine de le ótre wiki",
        "action-importupload": "emportà pàgine col upload de archivi",
        "recentchanges-label-minor": "Quela chì l'è una mudifega piscinina.",
        "recentchanges-label-bot": "Quela mudifega chì l'ha fada un bot",
        "recentchanges-label-unpatrolled": "Quela mudifega chì a l'è stada mimga anmò verificada.",
-       "recentchanges-legend-newpage": "(arda apò [[Special:NewPages|la lìsta de le pàgine nöe]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (arda apò [[Special:NewPages|la lìsta de le pàgine nöe]])",
        "rcnotefrom": "Chì de sota gh'è la lista di mudifegh de <b>$2</b> (fina a <b>$1</b>).",
        "rclistfrom": "Fà vidè i cambiament növ a partì de $3 $2",
        "rcshowhideminor": "$1 i mudifegh piscinín",
        "rcshowhidebots": "$1 i bot",
        "rcshowhidebots-show": "Fà ved",
        "rcshowhidebots-hide": "Scond",
-       "rcshowhideliu": "$1 i dupradur cunetüü",
+       "rcshowhideliu": "$1 ütèncc registràcc",
        "rcshowhideliu-show": "Fà ved",
        "rcshowhideliu-hide": "Scond",
        "rcshowhideanons": "$1 i dupradur anònim",
        "rcshowhideanons-show": "Fà ved",
        "rcshowhideanons-hide": "Scond",
+       "rcshowhidepatr": "$1 mudìfiche verificàde",
        "rcshowhidepatr-show": "Fà ved",
        "rcshowhidepatr-hide": "Scond",
        "rcshowhidemine": "$1 i mè mudifich",
        "diff": "dif",
        "hist": "stòria",
        "hide": "Scund",
-       "show": "Famm vedè",
+       "show": "Fà ved",
        "minoreditletter": "m",
        "newpageletter": "N",
        "boteditletter": "b",
+       "number_of_watching_users_pageview": "[tignìda d'öcc de {{PLURAL:$1|1 ütènt|$1 ütèncc}}]",
        "rc_categories_any": "Töcc",
        "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} dopo la mudìfica",
        "newsectionsummary": "/* $1 */ sezión növa",
-       "rc-enhanced-expand": "Fà ved i detali",
+       "rc-enhanced-expand": "Fà ved i detai",
        "rc-enhanced-hide": "Scund i detali",
        "rc-old-title": "creàda en urìgin come \"$1\"",
        "recentchangeslinked": "Cambiament culegaa",
        "filename": "Nom de l'archivi",
        "filedesc": "Sumari",
        "fileuploadsummary": "Sumari:",
+       "filesource": "Fónt:",
        "ignorewarnings": "Ignora tücc i avertimeent",
        "largefileserver": "Chel archivi-chí al è püssee graant che ul serviduur al sía cunfigüraa da permett.",
        "savefile": "Salva l'archivi",
        "filehist-thumb": "Miniadüra",
        "filehist-thumbtext": "Miniadüra de la versión di $1",
        "filehist-nothumb": "Nesöna miniadüra",
-       "filehist-user": "Dovrat",
-       "filehist-dimensions": "Dimensión",
+       "filehist-user": "Ütent",
+       "filehist-dimensions": "Dimensiù",
        "filehist-filesize": "Dimensiù de l'archivi",
        "filehist-comment": "Comènt",
        "imagelinks": "Üzo de l'archivi",
        "protectedpages": "Pàgine prutigìde",
        "protectedpages-indef": "Apéna protesiù infinìte",
        "protectedpages-noredirect": "Scond i redirezion (redirect)",
+       "protectedpages-page": "Articul",
+       "protectedpages-expiry": "Scadènsa:",
+       "protectedpages-performer": "Ütènt che l'ha prutigìda",
+       "protectedpages-params": "Tìpo de protesiù",
+       "protectedpages-reason": "Mutìf",
+       "protectedpages-unknown-timestamp": "Mìa cunusìt",
+       "protectedpages-unknown-performer": "Ütènt mìa cunusìt",
+       "protectedtitles": "Tìtoi prutigìcc",
        "listusers": "Lista di dupradur registraa",
        "listusers-editsonly": "Mustra dumà i dupradur cun di mudifegh",
        "listusers-creationsort": "Cavèzza per data de creazión",
+       "listusers-desc": "Mèt en ùrden a calà",
+       "usereditcount": "$1 {{PLURAL:$1|cambiamènt|cambiamèncc}}",
        "usercreated": "Creaa el $1 a $2",
        "newpages": "Paginn növ",
+       "newpages-username": "Nòm ütènt:",
        "ancientpages": "Paginn püssee vegg",
        "move": "Sposta",
        "movethispage": "Sposta quela pagina chì",
        "allpagesprefix": "Varda i pagin ch'i scumenza per:",
        "allpages-hide-redirects": "Scond i bot",
        "categories": "Categurij",
-       "deletedcontributions": "Cuntribüziun scancelaa",
+       "special-categories-sort-count": "mèt en ùrden per nömer",
+       "special-categories-sort-abc": "mèt en ùrden alfabétich",
+       "deletedcontributions": "Mudìfiche del ütènt scancelàde",
        "deletedcontributions-title": "Cuntribüziun scancelaa",
+       "sp-deletedcontributions-contribs": "mudìfiche",
        "linksearch": "Sérca ligam de föra",
        "listusersfrom": "Fàm vedè i dupradur a partì da:",
        "listusers-submit": "Fà ved",
+       "activeusers": "Lìsta dei ütèncc atìf",
        "activeusers-from": "Fàm vedè i dupradur a partì da:",
        "activeusers-hidebots": "Scond i bot",
-       "listgrouprights": "Dirit del grüp di druvat",
+       "activeusers-hidesysops": "Scond i aministradur",
+       "activeusers-noresult": "Nisü ütènt troàt",
+       "listgrouprights": "Diricc del grüp dei ütèncc",
+       "listgrouprights-group": "Grüp",
        "listgrouprights-rights": "Dirìcc",
        "listgrouprights-helppage": "Help:Diricc del grupo",
        "listgrouprights-members": "(Lista di member)",
        "modifiedarticleprotection": "A l'è müdaa el nivel de prutezión per \"[[$1]]\"",
        "unprotectedarticle": "l'ha sblucaa \"[[$1]]\"",
        "protect-title": "Prutezziún da \"$1\"",
+       "protect-title-notallowed": "Arda el leèl de protesiù de \"$1\"",
        "prot_1movedto2": "[[$1]] spustaa in [[$2]]",
-       "protect-legend": "Cunferma de blocch",
+       "protect-norestrictiontypes-title": "Pàgina che se pöl mìa protèger",
+       "protect-legend": "Cunferma la protesiù",
        "protectcomment": "Mutìf:",
        "protectexpiry": "Scadènsa:",
        "protect_expiry_invalid": "Scadenza pü bona",
        "protect-level-sysop": "dumà per i aministradur",
        "protect-summary-cascade": "recursiva",
        "protect-expiring": "scadenza: $1 (UTC)",
+       "protect-expiring-local": "scadés ai $1",
+       "protect-expiry-indefinite": "per semper",
        "protect-cascade": "Prutegg i paginn ch'i fan part de questa (prutezión recursiva)",
        "protect-cantedit": "Te pödet minga mudifegà i nivel de prutezión a quela pagina chì, per via che t'hee minga el permiss de mudifegala.",
        "protect-dropdown": "*Mutiv cumün per la prutezion\n** Tròp vandalism\n** Tròp spam\n** Edit war\n** Pagina cun parecc tràfich",
        "maximum-size": "Misüra màssima:",
        "pagesize": "(byte)",
        "restriction-edit": "Mudifega",
+       "restriction-move": "Sposta",
+       "restriction-create": "Crea",
+       "restriction-upload": "Carga sö",
+       "restriction-level-all": "töcc i leèi",
        "undelete": "Varda i pagin scancelaa",
+       "undeletepage": "Arda e riprìstina le pàgine scancelàde",
+       "viewdeletedpage": "Varda i pagin scancelaa",
+       "undelete-fieldset-title": "Riprìstina versiù",
        "undelete-nodiff": "Per questa pagina gh'è nanca una revisiun precedenta.",
        "undeletebtn": "Rimett a post",
        "undeletelink": "Varda/büta indree",
+       "undeleteviewlink": "arda",
+       "undeleteinvert": "Invertì la seleziòn",
+       "undeletecomment": "Mutìf:",
        "undeletedrevisions": "{{PLURAL:$1|1 revision|$1 versiun}} rimetüü a post",
+       "undelete-search-title": "Sérca pàgine scancelàde",
+       "undelete-search-box": "Sérca pàgine scancelàde",
        "undelete-search-prefix": "Fà ved i paginn che scumenzen per:",
+       "undelete-search-submit": "Sérca",
+       "undelete-show-file-submit": "Sé",
        "namespace": "Namespace:",
        "invert": "Invertì la seleziòn",
        "blanknamespace": "(Principal)",
        "linkshere": "I paginn chì de sota gh'hann di ligam che porten a '''[[:$1]]''':",
        "isredirect": "redirezión",
        "istemplate": "inclüsión",
-       "isimage": "ligam a una figüra",
+       "isimage": "ligam a un archivi",
        "whatlinkshere-prev": "{{PLURAL:$1|quel prima|$1 prima}}",
        "whatlinkshere-next": "{{PLURAL:$1|dopu|$1 dopu}}",
        "whatlinkshere-links": "← ligam",
        "unblockip": "Desblòca quel druvàt chì",
        "ipusubmit": "Tö via 'stu bloch chì",
        "unblocked": "[[User:$1|$1]] l'è staa desblucaa",
-       "ipblocklist": "Adrèss IP e druvàt blucaa",
+       "ipblocklist": "Ütèncc blocàcc",
+       "ipblocklist-legend": "Sérca 'n ütènt blocàt",
+       "blocklist-userblocks": "Scond i bloch dei ütencc registràcc",
+       "blocklist-tempblocks": "Scond i bloch temporanei",
+       "blocklist-addressblocks": "Scond i bloch de 'n IP",
+       "blocklist-rangeblocks": "Scond i bloch de pachècc de IP",
+       "blocklist-timestamp": "Data e ùra",
+       "blocklist-target": "Destinasiù",
+       "blocklist-expiry": "Scadés",
+       "blocklist-by": "Aministradur che g'ha blocàt",
+       "blocklist-params": "Tìpo de bloch",
        "blocklist-reason": "Mutìf",
+       "ipblocklist-submit": "Sérca",
+       "ipblocklist-localblock": "Bloch locàl",
+       "ipblocklist-otherblocks": "{{PLURAL:$1|Óter blòch|Óter blòch}}",
        "infiniteblock": "per semper",
        "expiringblock": "el finiss el $1 a $2",
        "anononlyblock": "dumà i anònim",
        "emailblock": "e-mail blucaa",
        "blocklist-nousertalk": "el pö mía mudifegà la soa pagina de discüssión",
        "ipblocklist-empty": "El register di bloch l'è vöj.",
+       "ipblocklist-no-results": "L'indirìs IP o 'l nòm de ütènt sercàt l'è mìa blocàt.",
        "blocklink": "bloca",
        "unblocklink": "desbloca",
        "change-blocklink": "cambia bloch",
        "noimages": "Gh'è negót de éder.",
        "ilsubmit": "Truvá",
        "bydate": "per data",
+       "monday-at": "Lönesdé a le $1",
+       "tuesday-at": "Martedé a le $1",
+       "wednesday-at": "Mercoldé a le $1",
+       "thursday-at": "Giöedé a le $1",
+       "friday-at": "Venerdé a le $1",
+       "saturday-at": "Sàbot a le $1",
+       "sunday-at": "Dümìnica a le $1",
+       "yesterday-at": "Gér a le $1",
        "bad_image_list": "El furmaa a l'è quest chì:\n\nSe tegnen bón dumà i list póntaa (i righ che scumincen per *).\nEl prim ligam de ogni riga la gh'ha de vess un ligam a un file minga desideraa.\nI ligam che i vegnen dopu, in sü l'istessa riga, i vegnen cónsideraa di ecezión (che'l vör dì paginn induè che 'l file se'l pö riciamà in manera nurmala).",
        "metadata": "Metadat",
        "metadata-help": "Quel file chì al gh'ha dent di infurmazión adiziunaj, che l'è prubabil che j'ha giuntaa la fotocamera o 'l scanner dupraa per fàl o digitalizàl. Se el file a l'è staa mudifegaa, un quajvün di detali i pudarien curespund pü ai mudifegh faa.",
        "metadata-expand": "Fà vidè i detali",
        "metadata-collapse": "Scund i detali",
        "metadata-fields": "I camp di metadat EXIF listaa in quel messagg chì i saran mustraa in de la pagina de la figüra quand che la tabela di metadat la sarà presentada furma cürta. Per impustazión i alter camp i saran scundüü.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "exif-imagewidth": "Larghèsa",
+       "exif-imagelength": "Altèsa",
+       "exif-bitspersample": "Bit per componènt",
+       "exif-compression": "Sistéma de compresiù",
+       "exif-photometricinterpretation": "Strütüra dei pixel",
+       "exif-orientation": "Orientamènt",
+       "exif-samplesperpixel": "Nömer de le componencc",
+       "exif-planarconfiguration": "Dispuzisiù dei dati",
+       "exif-ycbcrsubsampling": "Rapórt de campinamènt Y / C",
+       "exif-ycbcrpositioning": "Puzisiù componèncc Y e C",
+       "exif-xresolution": "Resulusiù orizontàla",
+       "exif-yresolution": "Resulusiù verticàla",
+       "exif-stripoffsets": "Puzisiù dei dati de la foto",
+       "exif-rowsperstrip": "Nömer de rìghe per fàsa",
+       "exif-imagedescription": "Tìtol de la foto",
        "watchlistall2": "tücc",
        "namespacesall": "tücc",
        "monthsall": "tücc",
        "tags-active-yes": "Sé",
        "tags-active-no": "Nò",
        "tags-edit": "mudìfica",
-       "rightsnone": "(nisü)"
+       "rightsnone": "(nisü)",
+       "expand_templates_ok": "OK"
 }
index 9d75789..eab0c70 100644 (file)
        "recentchanges-label-bot": "ای ويرايشت نه يه بوت انجوم ديئه",
        "recentchanges-label-unpatrolled": "ای ويرايشت هنی تيه واداشت نبيه",
        "recentchanges-legend-heading": "'''میراث:'''",
-       "recentchanges-legend-newpage": "(همچنو بوینیت [[ویجه:بلگیا تازه|نوم گه بلگیا تازه]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (همچنو بوینیت [[ویجه:بلگیا تازه|نوم گه بلگیا تازه]])",
        "rcnotefrom": "د هار آلشتیا د $2 هیئن(د بال د $1 نشون دئه بیه)",
        "rclistfrom": "آلشتیا تازه ایی که وا $3 $2 شرو بیه نشونش بئه",
        "rcshowhideminor": "ويرايشتيا کؤچک $1",
index 172614c..0ce7d1c 100644 (file)
        "image_sample": "Piemers.jpg",
        "image_tip": "Ievietots attēls",
        "media_sample": "Piemers.ogg",
-       "media_tip": "Saite uz multimēdiju failu",
+       "media_tip": "Faila saite",
        "sig_tip": "Tavs paraksts ar laika atzīmi",
        "hr_tip": "Horizontāla līnija (neizmanto lieki)",
        "summary": "Kopsavilkums:",
        "recentchanges-label-unpatrolled": "Šis labojums vēl nav pārbaudīts",
        "recentchanges-label-plusminus": "Par tik baitiem tika izmainīts lapas izmērs",
        "recentchanges-legend-heading": "'''Apzīmējumi:'''",
-       "recentchanges-legend-newpage": "(skatīt arī [[Special:NewPages|jaunās lapas]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (skatīt arī [[Special:NewPages|jaunās lapas]])",
        "rcnotefrom": "Šobrīd redzamas izmaiņas kopš '''$2''' (parādītas ne vairāk par '''$1''').",
        "rclistfrom": "Parādīt jaunas izmaiņas kopš $3 $2",
        "rcshowhideminor": "$1 maznozīmīgos",
index a86a3c9..4e9e21b 100644 (file)
        "recentchanges-label-unpatrolled": "Ity fanovana ity dia mbola tsy voamarina",
        "recentchanges-label-plusminus": "IO ny isan'ny oktety niova tamin'ilay pejy",
        "recentchanges-legend-heading": "'''Maribolana:'''",
-       "recentchanges-legend-newpage": "(jereo koa ny [[Special:NewPage|lisitry ny pejy vaovao]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (jereo koa ny [[Special:NewPage|lisitry ny pejy vaovao]])",
        "rcnotefrom": "Ity eto ambany ity ny lisitry ny vao niova manomboka ny <b>$2</b> (hatramin'ny <b>$1</b> no miseho).",
        "rclistfrom": "Asehoy izay vao niova manomboka ny $3 $2",
        "rcshowhideminor": "$1 ny fanovàna kely",
index 1821119..c297f41 100644 (file)
        "recentchanges-label-unpatrolled": "Ова уредување сè уште не е испатролирано",
        "recentchanges-label-plusminus": "Промена на големината на страницата во бајти",
        "recentchanges-legend-heading": "'''Легенда:'''",
-       "recentchanges-legend-newpage": "(погл. и [[Special:NewPages|списокот на нови страници]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (погл. и [[Special:NewPages|списокот на нови страници]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Подолу се промените направени од <strong>$2</strong> наваму (се прикажуваат до <b>$1</b>).",
        "rclistfrom": "Прикажи нови промени почнувајќи од $3 $2",
        "wantedtemplates": "Потребни шаблони",
        "mostlinked": "Најмногу врски до страници",
        "mostlinkedcategories": "Најмногу врски до категории",
-       "mostlinkedtemplates": "Ð\9dаÑ\98многÑ\83 Ð²Ñ\80Ñ\81ки ÐºÐ¾Ð½ Ñ\88аблони",
+       "mostlinkedtemplates": "Ð\9dаÑ\98многÑ\83 Ð¿Ñ\80евмеÑ\82наÑ\82и Ñ\81Ñ\82Ñ\80аниÑ\86и",
        "mostcategories": "Страници со најмногу категории",
        "mostimages": "Најмногу врски до податотеки",
        "mostinterwikis": "Страници со најмногу меѓувики",
index 7f4c7c6..cf92c02 100644 (file)
        "vector-view-view": "വായിക്കുക",
        "vector-view-viewsource": "മൂലരൂപം കാണുക",
        "actions": "നടപടികൾ",
+       "vector-more-actions": "കൂടുതൽ",
        "namespaces": "നാമമേഖല",
        "variants": "രൂപഭേദങ്ങൾ",
        "navigation-heading": "ഗമന വഴികാട്ടി",
        "recentchanges-label-unpatrolled": "ഇതുവരെ റോന്തുചുറ്റപ്പെടാത്ത തിരുത്ത്",
        "recentchanges-label-plusminus": "താളിന്റെ വലിപ്പം ഇത്രയും ബൈറ്റുകൾ മാറിയിരിക്കുന്നു",
        "recentchanges-legend-heading": "'''സൂചന:'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|പുതിയ താളുകളുടെ പട്ടികയും]] കാണുക)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|പുതിയ താളുകളുടെ പട്ടികയും]] കാണുക)",
        "rcnotefrom": "<strong>$2</strong> മുതലുള്ള മാറ്റങ്ങൾ (<strong>$1</strong> എണ്ണം വരെ കാണാം).",
        "rclistfrom": "$3 $2 മുതലുള്ള മാറ്റങ്ങൾ പ്രദർശിപ്പിക്കുക",
        "rcshowhideminor": "ചെറുതിരുത്തലുകൾ $1",
index c034a61..83c1024 100644 (file)
        "recentchanges-label-unpatrolled": "Энэ засварыг манаж амжаагүй",
        "recentchanges-label-plusminus": "Өөрчлөгдсөн байт хэмжээ",
        "recentchanges-legend-heading": "'''Таних үсэг:'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|жагсааж харах]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|жагсааж харах]])",
        "rcnotefrom": "Доорх нь '''$2'''-с хойших өөрчлөлтүүд ('''$1''' хүртэлхийг харуулав) юм.",
        "rclistfrom": "$3 $2-с хойших шинэ засваруудыг үзүүлэх",
        "rcshowhideminor": "Бага зэргийн засваруудыг $1",
index 123340e..745e48e 100644 (file)
        "recentchanges-label-unpatrolled": "हे संपादन अजून तपासल्या गेले नाही",
        "recentchanges-label-plusminus": "या पानाचा आकार इतक्या बाइट्स ने बदलला",
        "recentchanges-legend-heading": "'''विवरण:'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|नविन पानांची यादी]] हेही पाहा)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|नविन पानांची यादी]] हेही पाहा)",
        "recentchanges-legend-plusminus": "(''±१२३'')",
        "rcnotefrom": "खाली <b>$2</b> पासूनचे ('''$1''' पर्यंत) बदल दाखविले आहेत.",
        "rclistfrom": "$3 $2 नंतर केले गेलेले बदल दाखवा.",
index 02f1d2f..35e9b13 100644 (file)
        "recentchanges-label-unpatrolled": "Suntingan ini belum dirondai",
        "recentchanges-label-plusminus": "Saiz laman telah berubah sebanyak jumlah bait ini",
        "recentchanges-legend-heading": "'''Petunjuk:'''",
-       "recentchanges-legend-newpage": "(lihat juga [[Special:NewPages|senarai laman baru]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (lihat juga [[Special:NewPages|senarai laman baru]])",
        "rcnotefrom": "Yang berikut adalah semua suntingan sejak <b>$2</b> (yang dipaparkan sehingga <b>$1</b>).",
        "rclistfrom": "Paparkan perubahan sejak $3 $2",
        "rcshowhideminor": "$1 suntingan kecil",
index 6767d6a..345975d 100644 (file)
        "recentchanges-label-bot": "Din il-modifika ġiet effettwata minn bot",
        "recentchanges-label-unpatrolled": "Din il-modifika għadha ma ġietx verifikata",
        "recentchanges-label-plusminus": "Id-daqs tal-paġna nbidel b'dan in-numru ta' bytes",
-       "recentchanges-legend-newpage": "(ara wkoll il-[[Special:NewPages|lista tal-paġni l-ġodda]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ara wkoll il-[[Special:NewPages|lista tal-paġni l-ġodda]])",
        "rcnotefrom": "Ħawn taħt jinsabu l-modifiki minn '''$2''' (sa '''$1''').",
        "rclistfrom": "Uri l-modifiki ġodda li jibdew minn $3 $2",
        "rcshowhideminor": "$1 modifiki żgħar",
index d4630c2..e68762c 100644 (file)
        "searchmenu-exists": "'''Те викисэнть ули \"[[$1]]\" лем марто лопа'''",
        "searchmenu-new": "<strong>Шкик \"[[:$1]]\" лопанть те викисэнть!</strong> {{PLURAL:$2|0=|Ваномс лопантькак, конань муик вешнемасонть.|Ваномс савкстнэньгак, конатне вешнемасонть муевсть.}}",
        "searchprofile-articles": "Потмокс лопат",
-       "searchprofile-project": "Лезкс ды проекттэ лопат",
        "searchprofile-images": "Мультимедия",
        "searchprofile-everything": "Весе",
        "searchprofile-advanced": "Седе домка",
        "searchprofile-articles-tooltip": "Вешнемс вана тестэ $1",
-       "searchprofile-project-tooltip": "Вешнемс вана тестэ $1",
        "searchprofile-images-tooltip": "Вешнемс файлат",
        "searchprofile-everything-tooltip": "Вешнемс весе лопатнева (кортнема лопатневаяк)",
        "searchprofile-advanced-tooltip": "Вешнемс башка теезь лемпотмотнестэ",
        "search-interwiki-default": "$1 савкс:",
        "search-interwiki-more": "(седе ламо)",
        "search-relatedarticle": "Малавикс",
-       "searcheverything-enable": "Вешнемс весе лем потмотнестэ",
        "searchrelated": "малавикс",
        "searchall": "весе",
        "showingresultsheader": "{{PLURAL:$5|муевсь <strong>$1</strong> вана <strong>$3</strong>-тнень эйстэ|муевсть <strong>$1 - $2</strong> <strong>$3</strong>-тнень эйстэ}} <strong>$4</strong> вешнеманть лангс",
        "prefs-files": "Файлат",
        "youremail": "Е-сёрма:",
        "username": "Теицянь леметь:",
-       "uid": "Теицянь ID:",
        "yourrealname": "Алкуксонь леметь:",
        "yourlanguage": "Келесь:",
        "yournick": "Кедень путома:",
        "recentchanges-label-minor": "Те а покшкэ витнемась-петнемась",
        "recentchanges-label-bot": "Те витнеманть-петнеманть теизе кона-кона бот",
        "recentchanges-label-unpatrolled": "",
-       "recentchanges-legend-newpage": "(вантаять [[Special:NewPages|од лопань лемрисьме]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (вантаять [[Special:NewPages|од лопань лемрисьме]])",
        "rcnotefrom": "Ало невтезь  '''$2''' лиякстомтомасто саезь ('''$1''' видс).",
        "rclistfrom": "Невтемс од витьнематнень $3 $2-нть эйстэ саезь.",
        "rcshowhideminor": "$1 апокшкэ витнемат-петнемат",
        "all-logs-page": "Весемень туртов весе совамодо-кемекстамодо журналт",
        "logempty": "Сови-лиси журналсто а муевить тень марто вейкеть тевть",
        "allpages": "Весе лопат",
-       "alphaindexline": "$1-сто  $2-нтень",
        "nextpage": "Седе тов лопась ($1)",
        "prevpage": "Седе икелень лопа ($1)",
        "allpagesfrom": "Невтемс лопатнень тестэ ушодозь:",
        "unblock": "Нолдамс теицянть саймасто",
        "blockip": "Аравтомс теицянть саймас",
        "blockip-legend": "Аравтомс теицянть саймас",
-       "ipadressorusername": "IP адрес эли теицянь лем:",
+       "ipaddressorusername": "IP адрес эли теицянь лем:",
        "ipbexpiry": "Таштомома шказо:",
        "ipbreason": "Тувталось:",
        "ipbsubmit": "Озавтомс те теицянть саймес",
        "pageinfo-subpages-name": "Те лопанть явкслопанзо",
        "pageinfo-edits": "Зяроксть витнезь-петнезь",
        "pageinfo-authors": "Весемезэ зяро авторонзо",
-       "skinname-modern": "НееньШкань",
        "markaspatrolleddiff": "Тешкстамс ванстнемань ютазекс",
        "markaspatrolledtext": "Тешкстамс те лопанть ванстнемань ютазекс",
        "markedaspatrolled": "Тешкстазь ванстнемань ютазекс",
        "newimages": "Од файлатьнень галлереясь",
        "newimages-legend": "Сувтеме",
        "newimages-label": "Файлалем (эли пельксэзэ):",
-       "showhidebots": "($1 ботт)",
        "noimages": "Арась мезе ваномс.",
        "ilsubmit": "Вешнэмс",
        "bydate": "чинь коряс",
index ba7438c..0c04b4f 100644 (file)
        "vector-view-view": "Les",
        "vector-view-viewsource": "Vis kilden",
        "actions": "Handlinger",
+       "vector-more-actions": "Mer",
        "namespaces": "Navnerom",
        "variants": "Varianter",
        "navigation-heading": "Navigasjonsmeny",
        "recentchanges-label-unpatrolled": "Denne redigeringen har ikke blitt patruljert ennå",
        "recentchanges-label-plusminus": "Sidestørrelsen kan endres med dette antallet bytes",
        "recentchanges-legend-heading": "'''Tegnforklaring:'''",
-       "recentchanges-legend-newpage": "(se også [[Special:NewPages|liste av nye sider]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (se også [[Special:NewPages|liste av nye sider]])",
        "recentchanges-legend-plusminus": "«(±123)»",
        "rcnotefrom": "Nedenfor er endringene gjort siden <strong>$2</strong> (frem til <strong>$1</strong> vises).",
        "rclistfrom": "Vis nye endringer fra og med $3 $2",
index 1fc788b..639926c 100644 (file)
@@ -14,7 +14,8 @@
                        "Urhixidur",
                        "Ævar Arnfjörð Bjarmason <avarab@gmail.com>",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Kolega2357"
                ]
        },
        "tog-underline": "Verwiezingen onderstrepen",
        "vector-view-view": "Lezen",
        "vector-view-viewsource": "Brontekste bekieken",
        "actions": "Haandeling",
+       "vector-more-actions": "Meer",
        "namespaces": "Naamruumtes",
        "variants": "Variaanten",
        "navigation-heading": "Navigasiemenu",
        "currentrev": "Leste versie",
        "currentrev-asof": "Leste versie van $1",
        "revisionasof": "Versie op $1",
-       "revision-info": "Versie op $1 van $2",
+       "revision-info": "Versie op $1 van {{GENDER:$6|$2}}$7",
        "previousrevision": "&larr; eerdere versie",
        "nextrevision": "niejere versie &rarr;",
        "currentrevisionlink": "versie zo as t noen is",
        "searchmenu-exists": "'''Der is n zied mit de naam \"[[:$1]]\" op disse wiki.'''",
        "searchmenu-new": "<strong>De zied \"[[:$1]]\" op disse wiki anmaken!</strong> \n{{PLURAL:$2|0=|Zie oek de zied mit joew zeukresultaoten.|Zie oek de lieste mit evunnen zeukresultaoten.}}",
        "searchprofile-articles": "Artikels",
-       "searchprofile-project": "Hulp- en projektziejen",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Alles",
        "searchprofile-advanced": "Uutebreid",
        "searchprofile-articles-tooltip": "Zeuken in $1",
-       "searchprofile-project-tooltip": "Zeuken in $1",
        "searchprofile-images-tooltip": "Zeuken naor bestaanden",
        "searchprofile-everything-tooltip": "Alle inhoud deurzeuken (oek overlegziejen)",
        "searchprofile-advanced-tooltip": "Zeuken in de an-egeven naamruumtes",
        "search-interwiki-default": "Resultaoten van $1:",
        "search-interwiki-more": "(meer)",
        "search-relatedarticle": "Verwaant",
-       "searcheverything-enable": "In alle naamruumten zeuken",
        "searchrelated": "verwaant",
        "searchall": "alles",
        "showingresults": "Hieronder {{PLURAL:$1|steet '''1''' resultaot|staon '''$1''' resultaoten}}  <b>$1</b> vanaof nummer <b>$2</b>.",
        "allowemail": "Berichten van aandere gebrukers toestaon",
        "prefs-searchoptions": "Zeukinstellingen",
        "prefs-namespaces": "Naamruumtes",
-       "defaultns": "Aanders in de volgende naamruumten zeuken:",
        "default": "standard",
        "prefs-files": "Bestaanden",
        "prefs-custom-css": "Persoonlike CSS",
        "recentchanges-label-bot": "Disse bewarking is uutevoerd deur n bot",
        "recentchanges-label-unpatrolled": "Disse bewarking is nog niet nao-ekeken",
        "recentchanges-label-plusminus": "Disse ziedgrootte is mit dit antal bytes ewiezigd",
-       "recentchanges-legend-newpage": "(zie oek de [[Special:NewPages|lieste mit nieje ziejen]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (zie oek de [[Special:NewPages|lieste mit nieje ziejen]])",
        "rcnotefrom": "Dit bin de wiezigingen sinds <strong>$2</strong> (maximum van <strong>$1</strong> wiezigingen).",
        "rclistfrom": "Bekiek wiezigingen vanaof $3 $2",
        "rcshowhideminor": "$1 kleine wiezigingen",
        "cantrollback": "De wiezigingen konnen niet hersteld wörden; der is mer 1 auteur.",
        "alreadyrolled": "Kan de leste wieziging van de zied [[:$1]] deur [[User:$2|$2]] ([[User talk:$2|Overleg]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]); niet weerummedreien.\nn Aander hef disse zied al bewarkt of hersteld naor n eerdere versie.\n\nDe leste bewarking op disse zied is edaon deur [[User:$3|$3]] ([[User talk:$3|Overleg]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).",
        "editcomment": "De bewarkingssamenvatting was: ''$1''.",
-       "revertpage": "Wiezigingen deur [[Special:Contributions/$2|$2]] hersteld tot de versie nao de leste wieziging deur $1",
+       "revertpage": "Wiezigingen deur [[Special:Contributions/$2|$2]] hersteld tot de versie nao de leste wieziging deur [[User:$1|$1]]",
        "revertpage-nouser": "Wiezigingen deur n verbörgen gebruker weerummedreid naor de leste versie deur {{GENDER:$1|[[User:$1|$1]]}}",
        "rollback-success": "Wiezigingen van $1; weerummedreid naor de leste versie van $2.",
        "sessionfailure-title": "Sessiefout",
        "pageinfo-category-pages": "Antal ziejen",
        "pageinfo-category-subcats": "Antal onderkategorieën",
        "pageinfo-category-files": "Antal bestaanden",
-       "skinname-cologneblue": "Keuls blauw",
        "skinname-monobook": "Monobook",
-       "skinname-modern": "Niejmoeds",
        "markaspatrolleddiff": "Zet op nao-ekeken",
        "markaspatrolledtext": "Disse zied is op nao-ekeken ezet",
        "markedaspatrolled": "Op nao-ekeken ezet",
index a2f5334..0a479c3 100644 (file)
@@ -10,7 +10,8 @@
                        "Urhixidur",
                        "Zylbath",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Kolega2357"
                ]
        },
        "tog-underline": "Verwies ünnerstrieken",
        "searchmenu-exists": "* Sied '''[[$1]]'''",
        "searchmenu-new": "'''Stell de Sied „[[:$1]]“ in dit Wiki nee op!'''",
        "searchprofile-articles": "Inholdsieden",
-       "searchprofile-project": "Hülp- un Projektsieden",
        "searchprofile-images": "Datein",
        "searchprofile-everything": "Allens",
        "searchprofile-advanced": "Verwiedert",
        "searchprofile-articles-tooltip": "Söken in $1",
-       "searchprofile-project-tooltip": "Söken in $1",
        "searchprofile-images-tooltip": "Na Datein söken",
        "searchprofile-everything-tooltip": "Allen Inholt dörsöken (inklusiv Diskuschoonssieden)",
        "searchprofile-advanced-tooltip": "Söök in angevene Naamrüüm",
        "search-interwiki-default": "$1 Resultaten:",
        "search-interwiki-more": "(mehr)",
        "search-relatedarticle": "Verwandt",
-       "searcheverything-enable": "In all Naamrüüm söken",
        "searchrelated": "verwandt",
        "searchall": "all",
        "showingresults": "Hier {{PLURAL:$1|is een Resultat|sünd '''$1''' Resultaten}}, anfungen mit #'''$2'''.",
        "allowemail": "Nettbreven vun annere Brukers annehmen",
        "prefs-searchoptions": "Söökopschonen",
        "prefs-namespaces": "Naamrüüm",
-       "defaultns": "Anners söök in disse Naamrüüm:",
        "default": "Standard",
        "prefs-files": "Datein",
        "prefs-custom-css": "Anpasst CSS",
        "prefs-emailconfirm-label": "E-Mail-Bestätigung:",
        "youremail": "Dien E-Mail (kene Plicht) *",
        "username": "Brukernaam:",
-       "uid": "Bruker-ID:",
        "prefs-memberingroups": "Liddmaten vun de {{PLURAL:$1|Grupp|Gruppen}}:",
        "prefs-registration": "Tied vun dat Anmellen:",
        "yourrealname": "Dien echten Naam (kene Plicht)",
        "logempty": "In’e Logböker nix funnen, wat passt.",
        "log-title-wildcard": "Titel fangt an mit …",
        "allpages": "Alle Sieden",
-       "alphaindexline": "$1 bet $2",
        "nextpage": "tokamen Siet ($1)",
        "prevpage": "Vörige Siet ($1)",
        "allpagesfrom": "Sieden wiesen, de mit disse Bookstaven anfangt:",
        "cantrollback": "De Ännern kann nich trüchnahmen warrn; de letzte Autor is de eenzige.",
        "alreadyrolled": "Dat Trüchnehmen vun de Ännern an de Siet [[:$1]] vun [[User:$2|$2]] ([[User talk:$2|Diskuschoonssiet]]{{int:pipe-separator}}[[Special:Contributions/$2|Bidrääg]]) is nich mööglich, vun wegen dat dor en annere Ännern oder Trüchnahm wesen is.\n\nDe letzte Ännern is vun [[User:$3|$3]] ([[User talk:$3|Diskuschoon]]{{int:pipe-separator}}[[Special:Contributions/$3|Bidrääg]]).",
        "editcomment": "De Ännerkommentar weer: „''$1''“.",
-       "revertpage": "Ännern vun [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskuschoon]]) rut un de Version vun [[User:$1]] wedderhaalt",
+       "revertpage": "Ännern vun [[Special:Contributions/$2|$2]] ([[User talk:$2|Diskuschoon]]) rut un de Version vun [[User:$1|$1]] wedderhaalt",
        "rollback-success": "Ännern vun $1 trüchsett op letzte Version vun $2.",
        "sessionfailure": "Dor weer en Problem mit diene Brukersitzung.\nDisse Akschoon is nu ut Sekerheitsgrünn afbraken, dat de Ännern nich verkehrt en annern Bruker toornt warrt.\nGah een Sied trüch un versöök dat noch wedder.",
        "protectlogpage": "Sietenschuul-Logbook",
        "blockip": "IP-Adress blocken",
        "blockip-legend": "Bruker blocken",
        "blockiptext": "Bruuk dat Formular, ene IP-Adress to blocken.\nDit schall blots maakt warrn, Vandalismus to vermasseln, aver jümmer in Övereenstimmen mit uns [[{{MediaWiki:Policy-url}}|Leidlienen]].\nOk den Grund för dat Blocken indregen.",
-       "ipadressorusername": "IP-Adress oder Brukernaam:",
+       "ipaddressorusername": "IP-Adress oder Brukernaam:",
        "ipbexpiry": "Aflooptiet",
        "ipbreason": "Grund:",
        "ipbreason-dropdown": "* Allgemene Sperrgrünn\n** Tofögen vun verkehrte Infos\n** Leddigmaken vun Sieden\n** Schrifft Tüdelkraam in Sieden\n** Bedroht annere\n** Brukernaam nich akzeptabel",
        "pageinfo-category-info": "Kategorieinformatschoon",
        "pageinfo-category-pages": "Tall vun Sied",
        "pageinfo-category-subcats": "TAll vun Ünnerkategorien",
-       "skinname-cologneblue": "Kölsch Blau",
        "markaspatrolleddiff": "As nakeken marken",
        "markaspatrolledtext": "Disse Siet as nakeken marken",
        "markedaspatrolled": "As nakeken marken",
        "newimages-summary": "Disse Spezialsiet wiest de Datein, de toletzt hoochladen worrn sünd.",
        "newimages-legend": "Filter",
        "newimages-label": "Dateinaam (oder Deel dorvun):",
-       "showhidebots": "($1 Bots)",
        "noimages": "Kene Biller.",
        "ilsubmit": "Söken",
        "bydate": "na Datum",
index c3a89be..728cc6f 100644 (file)
        "recentchanges-label-minor": "यो साधारण सम्पादन हो",
        "recentchanges-label-bot": "यो सम्पादन बोटद्वारा गरिएको थियो",
        "recentchanges-label-unpatrolled": "यो सम्पादन अहिले सम्म पट्रोल गरिएको छैन",
-       "recentchanges-legend-newpage": "([[Special:NewPages|list of new pages]] यो पनि हेर्नुहोस्)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|list of new pages]] यो पनि हेर्नुहोस्)",
        "recentchanges-legend-plusminus": "(''±१२३'')",
        "rcnotefrom": "'''$2''' देखिका परिवर्तनहरु तल ('''$1''' सम्मका देखाइन्छ)।",
        "rclistfrom": "$3 $2 देखिका नयाँ परिवर्तनहरू देखाउनु",
index 85d11d5..77fe5a6 100644 (file)
@@ -56,7 +56,8 @@
                        "Wolf Lambert",
                        "לערי ריינהארט",
                        "아라",
-                       "Mar(c)"
+                       "Mar(c)",
+                       "Calak"
                ]
        },
        "tog-underline": "Koppelingen onderstrepen:",
        "vector-view-view": "Lezen",
        "vector-view-viewsource": "Brontekst bekijken",
        "actions": "Acties",
+       "vector-more-actions": "Meer",
        "namespaces": "Naamruimten",
        "variants": "Varianten",
        "navigation-heading": "Navigatiemenu",
        "logdelete-text": "Verwijderde logboekregels zijn nog zichtbaar in de logboeken, maar delen van de inhoud zijn niet openbaar.",
        "revdelete-text-others": "Andere beheerders van {{SITENAME}} kunnen de verborgen inhoud nog steeds inzien en weer zichtbaar maken via deze interface, tenzij er aanvullende beperkingen zijn ingesteld.",
        "revdelete-confirm": "Bevestig dat u dit wilde doen, dat u de consequenties begrijpt en dat u dit doet in overeenstemming met het geldende [[{{MediaWiki:Policy-url}}|beleid]].",
-       "revdelete-suppress-text": "Gebruik versies verbergen '''alleen''' in de volgende gevallen:\n* Mogelijk smadelijke informatie;\n* Ongepaste persoonlijke gegevens, zoals:\n*: ''adres, telefoonnummers, Burger Service Nummers, enzovoort.''",
+       "revdelete-suppress-text": "Gebruik versies verbergen '''alleen''' in de volgende gevallen:\n* Mogelijk smadelijke informatie;\n* Ongepaste persoonlijke gegevens, zoals:\n*: ''adres, telefoonnummers, identificatienummer, enzovoort.''",
        "revdelete-legend": "Zichtbaarheidsbeperkingen instellen",
        "revdelete-hide-text": "Versietekst",
        "revdelete-hide-image": "Bestandsinhoud verbergen",
        "powersearch-togglelabel": "Selecteren:",
        "powersearch-toggleall": "Alle",
        "powersearch-togglenone": "Geen",
+       "powersearch-remember": "Selectie onthouden voor toekomstige zoekopdrachten",
        "search-external": "Extern zoeken",
        "searchdisabled": "Zoeken in {{SITENAME}} is niet mogelijk.\nU kunt gebruik maken van Google.\nDe gegevens over {{SITENAME}} zijn mogelijk niet bijgewerkt.",
        "search-error": "Er is een fout opgetreden tijdens het zoeken: $1",
index 61dc924..ddfb030 100644 (file)
        "recentchanges-label-unpatrolled": "Endringa er ikkje patruljert enno",
        "recentchanges-label-plusminus": "Storleiken til sida vart endra med så mange byte",
        "recentchanges-legend-heading": "'''Tyding:'''",
-       "recentchanges-legend-newpage": "(sjå dessutan [[Special:NewPages|lista over nye sider]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (sjå dessutan [[Special:NewPages|lista over nye sider]])",
        "rcnotefrom": "Nedanfor er endringane gjorde sidan <strong>$2</strong> viste (opp til <strong>$1</strong> stykke)",
        "rclistfrom": "Vis nye endringar sidan $3 $2",
        "rcshowhideminor": "$1 småplukk",
        "watchlistanontext": "Du lyt $1 for å vise eller endre sider på overvakingslista di.",
        "watchnologin": "Ikkje innlogga",
        "addwatch": "↓Legg til i overvakingslista",
-       "addedwatchtext": "Sida «[[:$1]]» er lagd til i [[Special:Watchlist|overvakingslista]] di. Framtidige endringar av henne og den tilhøyrande diskusjonssida hennar vil bli oppførde der.",
+       "addedwatchtext": "Sida «[[:$1]]» er lagd til i [[Special:Watchlist|overvakingslista]] di. Framtidige endringar av henne og den tilhøyrande diskusjonssida hennar vil bli oppførte der.",
        "removewatch": "Fjerna frå overvakingslista",
        "removedwatchtext": "Sida «[[:$1]]» er fjerna frå [[Special:Watchlist|overvakingslista di]].",
        "watch": "Overvak",
index a7dafa9..ecf18f9 100644 (file)
        "searchmenu-exists": "* Pagina '''[[$1]]'''",
        "searchmenu-new": "<strong>Crear la pagina « [[:$1|$1]] » sus aqueste wiki !</strong> {{PLURAL:$2|0=|Vejatz tanben la pagina trobada amb vòstra recèrca.|Vejatz tanben los resultats de vòstra recèrca.}}",
        "searchprofile-articles": "Paginas de contengut",
-       "searchprofile-project": "Paginas d'ajuda e del projècte",
        "searchprofile-images": "Multimèdia",
        "searchprofile-everything": "Tot",
        "searchprofile-advanced": "Avançat",
        "searchprofile-articles-tooltip": "Recercar dins $1",
-       "searchprofile-project-tooltip": "Recercar dins $1",
        "searchprofile-images-tooltip": "Recercar de fichièrs",
        "searchprofile-everything-tooltip": "Recercar dins tot lo contengut (tot incluissent las paginas de discussion)",
        "searchprofile-advanced-tooltip": "Recercar dins d'espacis de noms personalizats",
        "search-interwiki-default": "Resultats de $1 :",
        "search-interwiki-more": "(mai)",
        "search-relatedarticle": "Relatat",
-       "searcheverything-enable": "Recercar dins totes los espacis de noms",
        "searchrelated": "relatat",
        "searchall": "Totes",
        "showingresults": "Afichatge de <b>$1</b> resultat{{PLURAL:$1||s}} a partir del n°<b>$2</b>.",
        "allowemail": "Autorizar lo mandadís de corrièr electronic venent d’autres utilizaires",
        "prefs-searchoptions": "Recèrca",
        "prefs-namespaces": "Noms d’espacis",
-       "defaultns": "Autrament recercar dins aquestes espacis de noms :",
        "default": "defaut",
        "prefs-files": "Fichièrs",
        "prefs-custom-css": "CSS personalizat",
        "prefs-emailconfirm-label": "Confirmacion del corrièr electronic :",
        "youremail": "Adreça de corrièr electronic :",
        "username": "{{GENDER:$1|Nom d'utilizaire|Nom d'utilizaira}}:",
-       "uid": "Numèro d'{{GENDER:$1|utilizaire|utilizaira}}:",
        "prefs-memberingroups": "{{GENDER:$2|Membre|Membra}} {{PLURAL:$1|del grop|dels gropes}}:",
        "prefs-registration": "Data de creacion del compte :",
        "yourrealname": "Nom vertadièr :",
        "recentchanges-label-unpatrolled": "Aqueste cambiament es pas estat verificat encara.",
        "recentchanges-label-plusminus": "La talha de la pagina a cambiat d'aqueste nombre d’octets.",
        "recentchanges-legend-heading": "'''Legenda :'''",
-       "recentchanges-legend-newpage": "(veire tanben la [[Special:NewPages|lista de las paginas novèlas]]).",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (veire tanben la [[Special:NewPages|lista de las paginas novèlas]]).",
        "rcnotefrom": "Çaijós las modificacions efectuadas dempuèi lo <strong>$2</strong> (fins a <strong>$1</strong> afichats).",
        "rclistfrom": "Afichar las modificacions novèlas dempuèi lo $3 $2",
        "rcshowhideminor": "$1 los cambiaments menors",
        "tooltip-preferences-save": "Salvar las preferéncias",
        "tooltip-summary": "Apondètz un brèu resumit",
        "common.css": "/** Lo CSS plaçat aicí serà aplicat a totas las aparéncias. */",
-       "cologneblue.css": "/* Lo CSS plaçat aicí afectarà los utilizaires de l’abilhatge Cologne Blue */",
        "monobook.css": "/* Lo CSS plaçat aicí afectarà los utilizaires del skin Monobook */",
-       "modern.css": "/* Lo CSS plaçat aicí afectarà los utilizaires de l’abilhatge Modern */",
        "vector.css": "/* Lo CSS plaçat aicí afectarà los utilizaires de l’abilhatge Vector */",
        "print.css": "/* Lo CSS plaçat aicí afectarà las impressions */",
        "common.js": "/* Tot JavaScript serà cargat amb cada pagina accedida per un utilizaire quin que siá. */",
-       "cologneblue.js": "/* Tot JavaScript aicí serà cargat amb las paginas accedidas pels utilizaires de l’abilhatge Cologne Blue unicament. */",
        "monobook.js": "/* Tot JavaScript aicí serà cargat amb las paginas accedidas pels utilizaires de l’abilhatge MonoBook unicament. */",
-       "modern.js": "/* Tot JavaScript aicí serà cargat amb las paginas accedidas pels utilizaires de l’abilhatge Modern unicament. */",
        "vector.js": "/* Tot JavaScript aicí serà cargat amb las paginas accedidas pels utilizaires de l’abilhatge Vector unicament. */",
        "anonymous": "{{PLURAL:$1|Utilizaire anonim|Utilizaires anonims}} de {{SITENAME}}",
        "siteuser": "Utilizaire $1 de {{SITENAME}}",
        "pageinfo-category-pages": "Nombre de paginas",
        "pageinfo-category-subcats": "Nombre de soscategorias",
        "pageinfo-category-files": "Nombre de fichièrs",
-       "skinname-cologneblue": "Colonha Blau",
        "skinname-monobook": "Monobook",
-       "skinname-modern": "Modèrne",
        "markaspatrolleddiff": "Marcar coma essent pas un vandalisme",
        "markaspatrolledtext": "Marcar aqueste article coma pas vandalizat",
        "markedaspatrolled": "Marcat coma pas vandalizat",
index 4764aa3..380ea15 100644 (file)
        "recentchanges-label-unpatrolled": "Ta edycja nie została jeszcze sprawdzona",
        "recentchanges-label-plusminus": "Zmieniony rozmiar strony (liczba bajtów)",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "(zobacz też [[Special:NewPages|listę nowych stron]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (zobacz też [[Special:NewPages|listę nowych stron]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Poniżej pokazano zmiany wykonane po '''$2''' (nie więcej niż '''$1''' pozycji).",
        "rclistfrom": "Pokaż nowe zmiany od $3 $2",
index 64e3008..c258fb7 100644 (file)
        "searchmenu-exists": "'''A-i é na pàgina ciamà \"[[:$1]]\" dzora a costa wiki'''",
        "searchmenu-new": "<strong>Creé la pàgina «[[:$1]]» ansima a costa wiki!</strong> {{PLURAL:$2|0=|Vëdde ëdcò la pàgina trovà con larserca.|Vëdde ëdcò j'arzultà d'arserca trovà.}}",
        "searchprofile-articles": "Pàgine ëd contnù",
-       "searchprofile-project": "Pàgine d'agiut e ëd proget",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Tut",
        "searchprofile-advanced": "Avansà",
        "searchprofile-articles-tooltip": "Sërché an $1",
-       "searchprofile-project-tooltip": "Sërché an $1",
        "searchprofile-images-tooltip": "Sërché dj'archivi",
        "searchprofile-everything-tooltip": "Sërché daspërtut (ëdcò ant le pàgine ëd discussion)",
        "searchprofile-advanced-tooltip": "Sërché ant jë spassi nominaj përsonalisà",
        "search-interwiki-default": "Arzultà da $1:",
        "search-interwiki-more": "(ëd pì)",
        "search-relatedarticle": "Corelà",
-       "searcheverything-enable": "Sërché ant tùit jë spassi nominaj",
        "searchrelated": "corelà",
        "searchall": "tuti",
        "showingresults": "Ambelessì-sota a treuva fin a {{PLURAL:$1|'''1'''|'''$1'''}} arzultà, a parte dal nùmer #'''$2'''.",
        "allowemail": "Lassa che j'àutri utent am mando ëd mëssagi ëd pòsta eletrònica",
        "prefs-searchoptions": "Sërca",
        "prefs-namespaces": "Spassi nominaj",
-       "defaultns": "Dësnò, sërché an costi spassi nominaj-sì:",
        "default": "stàndard",
        "prefs-files": "Archivi",
        "prefs-custom-css": "CSS përsonaj",
        "prefs-emailconfirm-label": "Conferma dl'adrëssa ëd pòsta eletrònica:",
        "youremail": "Soa adrëssa ëd pòsta eletrònica:",
        "username": "{{GENDER:$1|Stranòm}}:",
-       "uid": "Identificativ dl'{{GENDER:$1|utent}}:",
        "prefs-memberingroups": "{{GENDER:$2|Mèmber}} {{PLURAL:$1|dla partìa|dle partìe}}:",
        "prefs-memberingroups-type": "$1",
        "prefs-registration": "Data ëd registrassion:",
        "recentchanges-label-unpatrolled": "Sta modìfica-sì a l'é pa ancó stàita verificà",
        "recentchanges-label-plusminus": "La taja dla pàgina a l'é cangià d'un nùmer ëd bytes",
        "recentchanges-legend-heading": "'''Legend:'''",
-       "recentchanges-legend-newpage": "(vëdde ëdcò [[Special:NewPages|lista dle pàgine neuve]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vëdde ëdcò [[Special:NewPages|lista dle pàgine neuve]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Ambelessì sota a-i é la lista dle modìfiche da <strong>$2</strong> (mostrà fin-a a <strong>$1</strong>).",
        "rclistfrom": "Mostré le modìfiche a parte da $3 $2",
        "log-title-wildcard": "Sërché ant ij tìtoj ch'as anandio për",
        "showhideselectedlogentries": "Smon-e/stërmé le vos ëd registr selessionà",
        "allpages": "Tute le pàgine",
-       "alphaindexline": "$1 a $2",
        "nextpage": "Pàgina che a-i ven ($1)",
        "prevpage": "Pàgina anans ($1)",
        "allpagesfrom": "Smon-e le pàgine ën partend da:",
index 1212ab8..c2daf16 100644 (file)
        "searchmenu-exists": "'''په دې ويکي يو مخ د \"[[:$1]]\" په نامه دی'''",
        "searchmenu-new": "<strong>په دې ويکي د \"[[:$1]]\" مخ جوړول!</strong> {{PLURAL:$2|0=|See also the page found with your search.|د پلټنو موندل شوې پايلې هم وگورئ.}}",
        "searchprofile-articles": "مېنځپانگيز مخونه",
-       "searchprofile-project": "د لارښود او پروژې مخونه",
        "searchprofile-images": "گڼرسنۍ",
        "searchprofile-everything": "هرڅه",
        "searchprofile-advanced": "پرمختللی",
        "searchprofile-articles-tooltip": "په $1 کې پلټل",
-       "searchprofile-project-tooltip": "په $1 کې پلټل",
        "searchprofile-images-tooltip": "د دوتنو پلټنه",
        "searchprofile-everything-tooltip": "د ټولې مېنځپانگې پلټنه (د خبرو اترو مخونو سره)",
        "searchprofile-advanced-tooltip": "د خپل خوښې په نوم-تشيالونو کې پلټل",
        "search-interwiki-default": "پايلې له $1 څخه:",
        "search-interwiki-more": "(نور)",
        "search-relatedarticle": "اړونده",
-       "searcheverything-enable": "په ټولو نوم-تشيالونو کې پلټل",
        "searchrelated": "اړونده",
        "searchall": "ټول",
        "showingresults": "دلته لاندې تر {{PLURAL:$1|'''1''' پايله|'''$1''' پايلې}} ښکاره شوي پيل له #'''$2''' شوی.",
        "allowemail": "د نورو کارنانو لخوا د برېښليک رالېږل چارن کړه",
        "prefs-searchoptions": "پلټنه",
        "prefs-namespaces": "نوم-تشيالونه",
-       "defaultns": "او يا هم په دغو نوم-تشيالونو کې پلټل:",
        "default": "تلواليز",
        "prefs-files": "دوتنې",
        "prefs-custom-css": "ځاني CSS",
        "prefs-emailconfirm-label": "د برېښليک باورتيا:",
        "youremail": "برېښليک *",
        "username": "{{GENDER:$1|کارن نوم}}:",
-       "uid": "{{GENDER:$1|کارن}} پېژندنه:",
        "prefs-memberingroups": "د {{PLURAL:$1|ډله|ډلې}} {{GENDER:$2|غړی}}:",
        "prefs-registration": "د نومليکنې وخت:",
        "yourrealname": "اصلي نوم:",
        "recentchanges-label-unpatrolled": "دغه سمون تر اوسه پورې نه دی څارل شوی",
        "recentchanges-label-plusminus": "د بايټونو د شمېر له مخې د مخ د بدلون کچه",
        "recentchanges-legend-heading": "'''لنډونونه:'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|د نويو مخونو لړليک]] هم وگورئ)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|د نويو مخونو لړليک]] هم وگورئ)",
        "rcnotefrom": "دلته لاندې د <strong>$2</strong> څخه راپدېخوا پېښ شوي بدلونونه راغلي (تر <strong>$1</strong> پورې ښکاري).",
        "rclistfrom": "هغه نوي بدلونونه ښکاره کول چې له $3 $2 نه پيلېږي",
        "rcshowhideminor": "وړې سمونې $1",
        "pageinfo-category-pages": "د مخونو شمېر",
        "pageinfo-category-subcats": "د څېرمه وېشنيزو شمېر",
        "pageinfo-category-files": "د دوتنو شمېر",
-       "skinname-cologneblue": "شين کلون",
        "skinname-monobook": "مونوبوک",
-       "skinname-modern": "نوی",
        "skinname-vector": "وېکټور",
        "markaspatrolleddiff": "دا مخ څارل شوی په نخښه کول",
        "markaspatrolledtext": "دا مخ څارل شوی په نخښه کول",
index 0a9e52f..f5bb154 100644 (file)
        "edit-gone-missing": "Não foi possível atualizar a página.\nEla 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-restored": "Esta página foi restaurada.",
        "postedit-confirmation-saved": "Sua edição foi salva",
        "edit-already-exists": "Não foi possível criar uma nova página.\nEla já existia.",
        "defaultmessagetext": "Texto da mensagem padrão",
        "parser-template-recursion-depth-warning": "O limite de profundidade de recursividade de predefinição foi ultrapassado ($1)",
        "language-converter-depth-warning": "O limite de profundidade do conversor de línguas excedeu a ($1)",
        "node-count-exceeded-category": "Páginas em que o total de nós é excedido",
+       "node-count-exceeded-category-desc": "Uma categoria para páginas onde a contagem de nós é ultrapassada.",
        "node-count-exceeded-warning": "A página excedeu o total de nós",
        "expansion-depth-exceeded-category": "Páginas em que a profundidade de expansão é excedida",
+       "expansion-depth-exceeded-category-desc": "Esta é uma categoria para as páginas onde a profundidade de expansão é ultrapassada.",
        "expansion-depth-exceeded-warning": "A página excedeu a profundidade de expansão",
        "parser-unstrip-loop-warning": "Foi detectado um ciclo infinito unstrip",
        "parser-unstrip-recursion-limit": "Limite de recursão do unstrip excedido ($1)",
        "currentrev": "Revisão atual",
        "currentrev-asof": "Edição atual tal como às $1",
        "revisionasof": "Edição das $1",
-       "revision-info": "Edição feita às $1 por $2",
+       "revision-info": "Revisão de $1 por {{GENDER:$6|$2}}$7",
        "previousrevision": "← Edição anterior",
        "nextrevision": "Versão posterior →",
        "currentrevisionlink": "Revisão atual",
        "powersearch-togglelabel": "Selecionar:",
        "powersearch-toggleall": "Todos",
        "powersearch-togglenone": "Nenhum",
+       "powersearch-remember": "Lembrar seleção para futuras pesquisas",
        "search-external": "Pesquisa externa",
        "searchdisabled": "A busca em {{SITENAME}} se encontra desativada.\nVocê poderá pesquisar através do Google enquanto isso.\nNote que os índices do sistema de busca externo poderão conter referências desatualizadas a {{SITENAME}}.",
        "search-error": "Ocorreu um erro ao buscar por: $1",
        "right-move": "Mover páginas",
        "right-move-subpages": "Mover páginas com as suas subpáginas",
        "right-move-rootuserpages": "Mover páginas raiz de usuários",
+       "right-move-categorypages": "Mover páginas de categorias",
        "right-movefile": "Mover arquivos",
        "right-suppressredirect": "Não criar um redirecionamento do nome antigo quando uma página é movida",
        "right-upload": "Enviar arquivos",
        "action-createpage": "criar páginas",
        "action-createtalk": "criar páginas de discussão",
        "action-createaccount": "criar esta conta de usuário",
+       "action-history": "Ver o histórico desta página",
        "action-minoredit": "marcar esta edição como uma edição menor",
        "action-move": "mover esta página",
        "action-move-subpages": "mover esta página e suas subpáginas",
        "action-move-rootuserpages": "mover páginas raiz de usuários",
+       "action-move-categorypages": "Mover páginas de categorias",
        "action-movefile": "mover este arquivo",
        "action-upload": "enviar este arquivo",
        "action-reupload": "sobrescrever o arquivo existente",
        "recentchanges-label-unpatrolled": "Esta edição ainda não foi patrulhada",
        "recentchanges-label-plusminus": "Alteração no tamanho da página, em bytes",
        "recentchanges-legend-heading": "'''Legenda''':",
-       "recentchanges-legend-newpage": "(veja também a [[Special:NewPages|lista de páginas novas]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (veja também a [[Special:NewPages|lista de páginas novas]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Abaixo estão mostradas as alterações desde <strong>$2</strong> (até <strong>$1</strong>).",
        "rclistfrom": "Mostrar as novas alterações a partir das $3 $2",
        "wantedtemplates": "Predefinições pedidas",
        "mostlinked": "Páginas com mais afluentes",
        "mostlinkedcategories": "Categorias com mais membros",
-       "mostlinkedtemplates": "Predefinições com mais afluentes",
+       "mostlinkedtemplates": "Páginas com mais transclusões",
        "mostcategories": "Páginas de conteúdo com mais categorias",
        "mostimages": "Imagens com mais afluentes",
        "mostinterwikis": "Páginas com mais interwikis",
        "protectedpages-timestamp": "Data e hora",
        "protectedpages-page": "Página",
        "protectedpages-expiry": "Expira",
-       "protectedpages-performer": "Protegendo usuário",
+       "protectedpages-performer": "Usuário que protegeu",
        "protectedpages-params": "Parâmetros de proteção.",
        "protectedpages-reason": "Motivo",
        "protectedpages-unknown-timestamp": "Desconhecido",
        "protectedpages-unknown-performer": "Usuário desconhecido",
        "protectedtitles": "Títulos protegidos",
-       "protectedtitles-summary": "Está página lista os títulos já protegidos desde a criação. Para ver a lista de páginas existentes que estão protegidas, consulte [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
+       "protectedtitles-summary": "Esta página lista títulos cuja criação está impossibilitada. Para ver uma lista de páginas protegidas, consulte [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "Neste momento, nenhum dos títulos está protegido com estes parâmetros.",
        "listusers": "Lista de usuários",
        "listusers-editsonly": "Mostrar apenas usuários com edições",
        "listgrouprights-removegroup-self": "Pode remover {{PLURAL:$2|grupo|grupos}} da própria conta: $1",
        "listgrouprights-addgroup-self-all": "Pode adicionar todos os grupos à própria conta",
        "listgrouprights-removegroup-self-all": "Pode remover todos os grupos da própria conta",
+       "listgrouprights-namespaceprotection-header": "Restrições de namespace",
+       "listgrouprights-namespaceprotection-namespace": "Namespace",
+       "listgrouprights-namespaceprotection-restrictedto": "Direito(s) permitindo edições do usuário",
        "trackingcategories": "Monitorando categorias",
+       "trackingcategories-disabled": "A categoria está desabilitada",
        "mailnologin": "Nenhum endereço de envio",
        "mailnologintext": "Necessita de estar [[Special:UserLogin|autenticado]] e de possuir um endereço de e-mail válido nas suas [[Special:Preferences|preferências]] para poder enviar um e-mail a outros usuários.",
        "emailuser": "Enviar-lhe um e-mail",
        "watchnologin": "Não está autenticado",
        "addwatch": "Adicionar às páginas vigiadas",
        "addedwatchtext": "A página \"[[:$1]]\" foi adicionada à sua [[Special:Watchlist|lista de páginas vigiadas]].\nFuturas modificações em tal página e páginas de discussão relacionadas serão listadas lá.",
+       "addedwatchtext-short": "A página \"$1\" foi adicionada à sua lista de páginas vigiadas.",
        "removewatch": "Remover das páginas vigiadas",
        "removedwatchtext": "A página \"[[:$1]]\" foi removida de sua [[Special:Watchlist|lista de páginas vigiadas]].",
+       "removedwatchtext-short": "A página \"$1\" foi removida de sua lista de páginas vigiadas.",
        "watch": "Vigiar",
        "watchthispage": "Vigiar esta página",
        "unwatch": "Desinteressar-se",
        "unwatchthispage": "Parar de vigiar esta página",
        "notanarticle": "Não é uma página de conteúdo",
        "notvisiblerev": "Edição eliminada",
-       "watchlist-details": "{{PLURAL:$1|$1 página|$1 páginas}} na sua lista de páginas vigiadas, excluindo páginas de discussão.",
+       "watchlist-details": "{{PLURAL:$1|$1 página|$1 páginas}} na sua lista de páginas vigiadas, excluindo as páginas de discussão.",
        "wlheader-enotif": "A notificação por email encontra-se ativada.",
        "wlheader-showupdated": "Páginas modificadas desde a sua última visita são mostradas em '''negrito'''",
        "wlnote2": "A seguir estão as mudanças nas últimas {{PLURAL:$1|hora|<strong>$1</strong> horas}}, a partir de $2, $3.",
        "contributions-title": "Contribuições {{GENDER:$1|do usuário|da usuária}} $1",
        "mycontris": "Contribuições",
        "contribsub2": "Para {{GENDER:$3|$1}} ($2)",
+       "contributions-userdoesnotexist": "A conta de usuário \"$1\" não está registrada.",
        "nocontribs": "Não foram encontradas mudanças com este critério.",
        "uctop": "(atual)",
        "month": "Mês (inclusive anteriores):",
        "movenotallowedfile": "Você não possui permissão para mover arquivos.",
        "cant-move-user-page": "Você não possui permissão de mover páginas principais de usuários.",
        "cant-move-to-user-page": "Você não tem permissão para mover uma página para uma página de usuários (exceto para uma subpágina de usuário).",
+       "cant-move-category-page": "Você não possui permissão para mover páginas de categorias.",
+       "cant-move-to-category-page": "Você não tem permissão para mover uma página para uma categoria de páginas.",
        "newtitle": "Para novo título",
        "move-watch": "Vigiar esta página",
        "movepagebtn": "Mover página",
        "newimages-summary": "Esta página especial mostra os arquivos mais recentemente enviados",
        "newimages-legend": "Filtrar",
        "newimages-label": "Nome de arquivo (ou parte dele):",
+       "newimages-showbots": "Mostrar uploads realizados por bots",
        "noimages": "Nada para ver.",
        "ilsubmit": "Pesquisar",
        "bydate": "por data",
        "watchlistedit-raw-done": "Sua lista de páginas vigiadas foi atualizada.",
        "watchlistedit-raw-added": "{{PLURAL:$1|Foi adicionado um título|Foram adicionados $1 títulos}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|Foi removido um título|Foram removidos $1 títulos}}:",
+       "watchlistedit-clear-explain": "Todos os títulos serão removidos da sua lista de páginas vigiadas",
+       "watchlistedit-clear-titles": "Títulos:",
+       "watchlistedit-clear-submit": "Limpar a lista de páginas vigiadas (Esta ação é permanente!)",
+       "watchlistedit-clear-done": "Sua lista de páginas vigiadas foi limpa.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|Foi removido um título|Foram removidos $1 títulos}}:",
+       "watchlistedit-too-many": "Há muitas páginas para exibir aqui.",
+       "watchlisttools-clear": "Limpar a lista de páginas vigiadas",
        "watchlisttools-view": "Ver alterações relevantes",
        "watchlisttools-edit": "Ver e editar a lista de páginas vigiadas",
        "watchlisttools-raw": "Edição crua da lista de páginas vigiadas",
index a2c3c01..7dcba69 100644 (file)
@@ -85,8 +85,8 @@
        "tog-enotifminoredits": "Notificar-me por correio electrónico também sobre edições menores de páginas ou ficheiros",
        "tog-enotifrevealaddr": "Revelar o meu endereço de correio electrónico nas notificações",
        "tog-shownumberswatching": "Mostrar o número de utilizadores a vigiar",
-       "tog-oldsig": "Assinatura existente:",
-       "tog-fancysig": "Tratar assinatura como texto wiki (sem link automático)",
+       "tog-oldsig": "Assinatura atual:",
+       "tog-fancysig": "Tratar assinatura como texto wiki (sem hiperligações automáticas)",
        "tog-uselivepreview": "Usar a antevisão ao vivo (experimental)",
        "tog-forceeditsummary": "Avisar-me se deixar o resumo da edição vazio",
        "tog-watchlisthideown": "Esconder as minhas edições ao listar mudanças às páginas vigiadas",
        "tog-showhiddencats": "Mostrar categorias ocultas",
        "tog-norollbackdiff": "Omitir diferenças depois de reverter edições em bloco",
        "tog-useeditwarning": "Avisar-me ao abandonar uma página editada sem gravar as alterações.",
-       "tog-prefershttps": "Usar sempre uma ligação segura quando estiver autenticado",
+       "tog-prefershttps": "Usar sempre uma ligação segura enquanto tiver sessão iniciada",
        "underline-always": "Sempre",
        "underline-never": "Nunca",
        "underline-default": "Usar opção padrão do tema ou do navegador",
        "loginerror": "Erro ao iniciar sessão",
        "createacct-error": "Erro na criação da conta",
        "createaccounterror": "Não foi possível criar a conta: $1",
-       "nocookiesnew": "A conta de utilizador foi criada, mas neste momento não está autenticado.\nA {{SITENAME}} utiliza ''cookies'' para autenticar os utilizadores.\nOs ''cookies'' estão desativados no seu navegador.\nAtive-os e autentique-se com o seu nome de utilizador e a sua palavra-chave, por favor.",
+       "nocookiesnew": "A conta de utilizador foi criada, mas neste momento não tem sessão iniciada.\nA {{SITENAME}} utiliza ''cookies'' para autenticar os utilizadores.\nOs ''cookies'' estão desativados no seu navegador.\nAtive-os e inicie sessão com o seu nome de utilizador e a sua palavra-passe, por favor.",
        "nocookieslogin": "A {{SITENAME}} utiliza ''cookies'' para autenticar os utilizadores.\nOs ''cookies'' estão desativados no seu navegador.\nAtive-os e tente novamente, por favor.",
        "nocookiesfornew": "A conta de utilizador não foi criada, porque não foi possível confirmar a sua origem.\nCertifique-se de que tem os ''cookies'' ativados, recarregue esta página e tente novamente.",
        "noname": "Não especificou um nome de utilizador válido.",
        "password-login-forbidden": "Foi proibido o uso deste nome de utilizador e palavra-passe.",
        "mailmypassword": "Reiniciar a palavra-passe",
        "passwordremindertitle": "Nova palavra-passe temporária na {{SITENAME}}",
-       "passwordremindertext": "Alguém (provavelmente você, a partir do endereço IP $1) solicitou uma palavra-chave nova para a sua conta na {{SITENAME}} ($4).\nFoi criada a palavra-passe temporária \"$3\" para o utilizador \"$2\".\nSe o pedido foi feito por si, entre agora na sua conta e escolha uma palavra-passe nova.\nA palavra-passe temporária expira após {{PLURAL:$5|um dia|$5 dias}}.\n\nCaso outra pessoa tenha feito o pedido, ou se entretanto se recordou da sua palavra-passe e já não deseja alterá-la, ignore esta mensagem e continue a utilizar a palavra-passe antiga.",
+       "passwordremindertext": "Alguém (provavelmente você, a partir do endereço IP $1) solicitou uma palavra-passe nova para a sua conta na {{SITENAME}} ($4).\nFoi criada a palavra-passe temporária \"$3\" para o utilizador \"$2\".\nSe o pedido foi feito por si, entre agora na sua conta e escolha uma palavra-passe nova.\nA palavra-passe temporária expira após {{PLURAL:$5|um dia|$5 dias}}.\n\nCaso outra pessoa tenha feito o pedido, ou se entretanto se recordou da sua palavra-passe e já não deseja alterá-la, ignore esta mensagem e continue a utilizar a palavra-passe antiga.",
        "noemail": "Não foi registado um endereço de correio eletrónico para o utilizador \"$1\".",
        "noemailcreate": "Tem de fornecer um endereço de correio eletrónico válido.",
        "passwordsent": "Foi enviada uma palavra-passe nova para o endereço de correio eletrónico do utilizador \"$1\".\nVolte a iniciar sessão após recebê-la, por favor.",
        "resetpass-temp-emailed": "Iniciou a sessão com um código temporário.\nPara completar a autenticação, tem de definir uma palavra-passe nova aqui:",
        "resetpass-temp-password": "Palavra-passe temporária:",
        "resetpass-abort-generic": "A alteração da palavra-passe foi cancelada por uma extensão.",
-       "resetpass-expired": "A sua palavra-chave passe. Para iniciar sessão, defina uma nova.",
+       "resetpass-expired": "A sua palavra-passe expirou. Por favor, defina uma nova para iniciar a sessão.",
        "resetpass-expired-soft": "A sua palavra-passe expirou e tem de ser redefinida. Escolha uma nova agora ou clique \"{{int:resetpass-submit-cancel}}\" para redefini-la mais tarde.",
        "resetpass-validity-soft": "A sua palavra-passe não é válida: $1\n\nPor favor, escolha uma nova palavra-passe agora, ou clique em \"{{int:resetpass-submit-cancel}}\" para redefini-la mais tarde.",
        "passwordreset": "Redefinir palavra-passe",
        "changeemail-oldemail": "Correio eletrónico atual:",
        "changeemail-newemail": "Novo endereço de correio eletrónico:",
        "changeemail-none": "(nenhum)",
-       "changeemail-password": "A sua palavra-chave em {{SITENAME}}:",
+       "changeemail-password": "A sua palavra-passe em {{SITENAME}}:",
        "changeemail-submit": "Alterar correio eletrónico",
        "changeemail-cancel": "Cancelar",
        "changeemail-throttled": "Realizou demasiadas tentativas de início de sessão.\nAguarde $1 antes de tentar novamente, por favor.",
        "recentchanges-label-unpatrolled": "Esta edição ainda não foi patrulhada",
        "recentchanges-label-plusminus": "Alteração no tamanho da página, em bytes",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|lista de páginas novas]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|lista de páginas novas]])",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "rcnotefrom": "Abaixo estão as mudanças desde <strong>$2</strong> (mostradas até <strong>$1</strong>).",
        "rclistfrom": "Mostrar as novas mudanças a partir das $3 $2",
        "wantedtemplates": "Predefinições desejadas",
        "mostlinked": "Páginas com mais afluentes",
        "mostlinkedcategories": "Categorias com mais membros",
-       "mostlinkedtemplates": "Predefinições com mais afluentes",
+       "mostlinkedtemplates": "Páginas com mais afluentes",
        "mostcategories": "Páginas com mais categorias",
        "mostimages": "Ficheiros com mais afluentes",
        "mostinterwikis": "Páginas com mais interlínguas",
        "logentry-newusers-newusers": "A conta de utilizador $1 foi {{GENDER:$2|criada}}",
        "logentry-newusers-create": "A conta de utilizador $1 foi criada",
        "logentry-newusers-create2": "A conta de utilizador $3 foi criada por $1",
-       "logentry-newusers-byemail": "A conta de utilizador $3 foi criada por $1 e a palavra-chave foi enviada por correio eletrónico",
+       "logentry-newusers-byemail": "A conta de utilizador $3 foi criada por $1 e a palavra-passe foi enviada por correio eletrónico",
        "logentry-newusers-autocreate": "A conta de utilizador $1 foi criada automaticamente",
        "logentry-rights-rights": "$1 modificou os privilégios do utilizador $3 de $4 para $5",
        "logentry-rights-rights-legacy": "$1 alterou os grupos de $3",
index 2dd4d63..26a58de 100644 (file)
        "recentchanges-label-unpatrolled": "Tooltip for {{msg-mw|unpatrolledletter}}",
        "recentchanges-label-plusminus": "Legend item for plus/minus.\n\nPreceded by legend example {{msg-mw|Recentchanges-legend-plusminus}}.",
        "recentchanges-legend-heading": "Used as a heading for legend box on [[Special:RecentChanges]] and [[Special:Watchlist]].\n{{Identical|Legend}}",
-       "recentchanges-legend-newpage": "Used as legend in [[Special:RecentChanges]]. Preceded by {{msg-mw|Recentchanges-label-newpage}}.",
+       "recentchanges-legend-newpage": "{{doc-important|Do not translate <code>Special:NewPages</code>.}}\nUsed as legend on [[Special:RecentChanges]] and [[Special:Watchlist]].\n\nRefers to {{msg-mw|Recentchanges-label-newpage}}.",
+       "recentchanges-legend-minor": "Used as legend on [[Special:RecentChanges]] and [[Special:Watchlist]].\n\nRefers to {{msg-mw|Recentchanges-label-minor}}.",
+       "recentchanges-legend-bot": "Used as legend on [[Special:RecentChanges]] and [[Special:Watchlist]].\n\nRefers to {{msg-mw|Recentchanges-label-bot}}.",
+       "recentchanges-legend-unpatrolled": "Used as legend on [[Special:RecentChanges]] and [[Special:Watchlist]].\n\nRefers to {{msg-mw|Recentchanges-label-unpatrolled}}.",
        "recentchanges-legend-plusminus": "{{optional}}\nA plus/minus sign with a number for the legend.",
        "rcnotefrom": "This message is displayed at [[Special:RecentChanges]] when viewing recentchanges from some specific time.\n\nThe corresponding message is {{msg-mw|Rclistfrom}} (split into date and time).\n\nParameters:\n* $1 - the maximum number of changes that are displayed\n* $2 - a date and time\n* $3 - (Optional) a date\n* $4 - (Optional) a time",
        "rclistfrom": "Used on [[Special:RecentChanges]]. Parameters:\n* $1 - (Currently not use) date and time. The date and the time adds to the rclistfrom description.\n* $2 - time. The time adds to the rclistfrom link description (with split of date and time).\n* $3 - date. The date adds to the rclistfrom link description (with split of date and time).\n\nThe corresponding message is {{msg-mw|Rcnotefrom}}.",
        "nrevisions": "Used as link text in [[Special:FewestRevisions]].\n\nThe link points to the page history (action=history).\n\nParameters:\n* $1 - number of revisions",
        "nviews": "This message is used on [[Special:PopularPages]] to say how many times each page has been viewed.\n\nPreceded by the page title, like: Page title ($1 views)\n\nParameters:\n* $1 - the number of views",
        "nimagelinks": "Used on [[Special:MostLinkedFiles]] to indicate how often a specific file is used.\n\nParameters:\n* $1 - number of pages\nSee also:\n* {{msg-mw|Ntransclusions}}",
-       "ntransclusions": "Used on [[Special:MostLinkedTemplates]] to indicate how often a template is in use.\n\nParameters:\n* $1 - number of pages\nSee also:\n* {{msg-mw|Nimagelinks}}",
+       "ntransclusions": "Used on [[Special:MostTranscludedPages]] to indicate how often a template is in use.\n\nParameters:\n* $1 - number of pages\nSee also:\n* {{msg-mw|Nimagelinks}}",
        "specialpage-empty": "Used on a special page when there is no data. For example on [[Special:Unusedimages]] when all images are used.",
        "lonelypages": "{{doc-special|LonelyPages}}",
        "lonelypages-summary": "{{doc-specialpagesummary|lonelypages}}",
        "mostlinked-summary": "{{doc-specialpagesummary|mostlinked}}",
        "mostlinkedcategories": "{{doc-special|MostLinkedCategories}}",
        "mostlinkedcategories-summary": "{{doc-specialpagesummary|mostlinkedcategories}}",
-       "mostlinkedtemplates": "{{doc-special|MostLinkedTemplates}}",
+       "mostlinkedtemplates": "{{doc-special|MostTranscludedPages}}",
        "mostlinkedtemplates-summary": "{{doc-specialpagesummary|mostlinkedtemplates}}",
        "mostcategories": "{{doc-special|MostCategories}}",
        "mostcategories-summary": "{{doc-specialpagesummary|mostcategories}}",
        "exif-meteringmode-2": "{{Related|Exif-meteringmode}}",
        "exif-meteringmode-3": "{{Related|Exif-meteringmode}}",
        "exif-meteringmode-4": "{{Related|Exif-meteringmode}}",
-       "exif-meteringmode-5": "{{Related|Exif-meteringmode}}",
+       "exif-meteringmode-5": "{{Related|Exif-meteringmode}}\n{{Identical|Pattern}}",
        "exif-meteringmode-6": "{{Related|Exif-meteringmode}}",
        "exif-meteringmode-255": "{{Identical|Other}}",
        "exif-lightsource-0": "{{Identical|Unknown}}\n{{Related|Exif-lightsource}}",
index 4cb40b3..22d6484 100644 (file)
        "vector-view-view": "Ñawiriy",
        "vector-view-viewsource": "Pukyu qillqata qhaway",
        "actions": "Ruraykuna",
+       "vector-more-actions": "Aswan",
        "namespaces": "Suti k'itikuna",
        "variants": "Ñawra rikch'akuykuna",
        "navigation-heading": "Wamp'una last'a",
        "permalink": "Kakuq t'inki",
        "print": "Ch'ipachiy",
        "view": "Qhaway",
+       "view-foreign": "$1 nisqapi qhaway",
        "edit": "qillqay",
+       "edit-local": "Kayllapi t'iktunata llamk'apuy",
        "create": "Kamariy",
+       "create-local": "Kayllapi t'iktunata yapay",
        "editthispage": "Kay p'anqata llamk'apuy",
        "create-this-page": "Kay p'anqata kamariy",
        "delete": "Qulluy",
        "jumptonavigation": "wamp'una",
        "jumptosearch": "maskana",
        "view-pool-error": "Achachaw, sirwiqkunaqa nisyu sasachakuyniyuqmi kachkan.\nNisyu ruraqkunam kay p'anqataqa qhawayta munachkan.\nAma hina kaspa, ratullata suyay kay p'anqata manaraq musuqmanta qhawaykachaspa.\n\n$1",
+       "generic-pool-error": "Achachaw, sirwiqkunaqa nisyu sasachakuyniyuqmi kachkan.\nNisyu ruraqkunam kay kaqtaqa qhawayta munachkan.\nAma hina kaspa, ratullata suyay kay kaqta manaraq musuqmanta qhawaykachaspa.",
        "pool-timeout": "Wichq'aypaq suyaspa mit'a llallisqa",
        "pool-queuefull": "Suyana siq'iqa huntasqañam",
        "pool-errorunknown": "Mana riqsisqa pantasqa",
+       "pool-servererror": "Wayt'ana yupana sirwiyqa manam kanchu ($1).",
        "aboutsite": "{{SITENAME}}manta",
        "aboutpage": "Project:{{SITENAME}}manta",
        "copyright": "Samiqwanqa llamk'ankiman $1 nisqa ruraq hayñikama, mana wakin hina willaptinqa.",
        "invalidtitle-unknownnamespace": "Mana riqsisqa $1 kaq sutisuyu yupay, \"$2\" qillqasqayuq mana allin kaq qillqa suti",
        "exception-nologin": "Manam yaykurqankichu",
        "exception-nologin-text": "Ama hina kaspa [[Special:Userlogin|yaykuy]] kay p'anqaman rinata icha kayta ruranata atinaykipaq.",
+       "exception-nologin-text-manual": "Ama hina kaspa, $1 kay p'anqata icha rurayta atinaykipaq.",
        "virus-badscanner": "Manam allintachu churapusqa: mana riqsisqa añaw maskaq: ''$1''",
        "virus-scanfailed": "manam atinchu añaw maskayta (tuyru: $1)",
        "virus-unknownscanner": "mana riqsisqa añaw qulluna (antivirus):",
        "userlogin-resetlink": "Yaykuna willayniykikunatari qunqarqankichu?",
        "userlogin-resetpassword-link": "Yaykuna rimaykita qunqarqankichu?",
        "userlogin-helplink2": "Yaykuywan yanapay",
+       "userlogin-loggedin": "{{GENDER:$1|$1}} sutiyuq kaspa yaykusqañam kachkanki.\nKay qatiq hunt'ana p'anqata llamk'achiy wakin sutiwan yaykunaykipaq.",
        "userlogin-createanother": "Huk rakiqunata kamariy",
        "createacct-emailrequired": "E-chaski imamayta",
        "createacct-emailoptional": "E-chaski imamayta (munaspayki)",
        "retypenew": "Musuq yaykuna rimaykita takyachiy:",
        "resetpass_submit": "Yaykuna rimata hukchaspa yaykuy",
        "changepassword-success": "Yaykuna rimaykiqa aypalla hukchasqañam.",
+       "changepassword-throttled": "Nisyu kutiñam yaykuykacharqunki.\nAma hina kaspa, $1 suyay manaraq musuqmanta yaykuykachaspayki.",
        "resetpass_forbidden": "Manam saqillanchu yaykuna rimata hukchayta",
        "resetpass-no-info": "Yaykunaykim tiyan kay p'anqata chiqalla aypanaykipaq.",
        "resetpass-submit-loggedin": "Yaykuna rimata hukchay",
        "resetpass-submit-cancel": "Tatiy",
        "resetpass-wrong-oldpass": "Mit'alla icha kunan yaykuna rimaqa manam allinchu.\nYaykuna rimaykitaqa aypalla hukcharqunkiñachá icha huk mit'alla yaykuna rimata mañakurqunkiñachá.",
+       "resetpass-recycled": "Ama hina kaspa, yaykuna rimaykita imamanpas kutichiy, amataq kunan kachkaq yaykuna rimaykimanchu.",
+       "resetpass-temp-emailed": "E-chaskiwan kachamusqa mit'alla yaykuna rimawanmi yaykurqunki. Chay yaykunaykita tukuchinaykipaqqa, kaypi musuq yaykuna rimaykita churay:",
        "resetpass-temp-password": "Mit'alla yaykuna rima:",
        "resetpass-abort-generic": "Yaykuna rima hukchaytaqa yapa wakichim p'itirqan.",
+       "resetpass-expired": "Yaykuna rimaykiqa mawk'ayasqañam. Ama hina kaspa, yaykunaykipaq musuq yaykuna rimaykita churay.",
+       "resetpass-expired-soft": "Yaykuna rimayki mawk'ayasqaña kaspa kutichinam tiyan. Ama hina kaspa, kunallan musuq yaykuna rimaykita akllay icha \"{{int:resetpass-submit-cancel}}\"-ta ñit'iy qhipaqta kutichinaykipaq.",
+       "resetpass-validity-soft": "Yaykuna rimaykiqa manam allinchu: $1.\n\nAma hina kaspa, kunallan musuq yaykuna rimaykita akllay icha \"{{int:resetpass-submit-cancel}}\"-ta ñit'iy qhipaqta kutichinaykipaq.",
        "passwordreset": "Yaykuna rimata kutichiy",
        "passwordreset-text-one": "Kay hunt'ana p'anqata hunt'ay, yaykuna rimaykita kutichinaykipaq.",
        "passwordreset-text-many": "{{PLURAL:$1|Kay k'itichakunamanta hukta hunt'achiy, yaykuna rimaykita kutichinaykipaq.}}",
        "changeemail-password": "{{SITENAME}} yaykuna rimayki:",
        "changeemail-submit": "E-chaskita wakinchay",
        "changeemail-cancel": "Ama niy",
+       "changeemail-throttled": "Nisyu kutiñam yaykuykacharqunki.\nAma hina kaspa, $1 suyay manaraq musuqmanta yaykuykachaspayki.",
        "resettokens": "Llawikunata kutichiy",
        "resettokens-no-tokens": "Manam kanchu kutichina llawikuna.",
        "resettokens-legend": "Llawikunata kutichiy",
        "invalid-content-data": "Samiqmanta willaykunaqa manam allinchu",
        "content-not-allowed-here": "\"$1\" nisqa samiqqa [[$2]] sutiyuq p'anqapi manam saqillasqachu",
        "editwarning-warning": "Kay p'anqata saqispaykiqa lliw rurarqusqayki hukchasqakunatachá chinkachiykiman.\nYaykusqa kaspaykiqa, kay yuyampayta hark'ayta atinki allinkachinaykikunapi \"Llamk'apusqa\" rakipi.",
+       "editpage-notsupportedcontentformat-title": "Samiqpa rikch'ayninqa manam q'imisqachu",
        "content-model-wikitext": "wiki qillqa",
        "content-model-text": "qillqalla",
        "content-model-javascript": "JavaScript",
        "currentrev": "Kunan hukchasqa",
        "currentrev-asof": "Kunan musuqchasqa, $1 pacha",
        "revisionasof": "$1-pa llamk'apusqan",
-       "revision-info": "Kayqa p'anqap mawk'a llamk'apusqa kasqanmi, $1 p'unchawpi $2-pa rurasqan",
+       "revision-info": "Kayqa p'anqap musuqchasqa kasqanmi, $1 p'unchawpi {{GENDER:$6|$2}}$7-pa rurasqan",
        "previousrevision": "← ñawpaq hukchasqa",
        "nextrevision": "Qatiq hukchasqa →",
        "currentrevisionlink": "Kunan hukchasqata qhaway",
        "revdelete-no-file": "Sapaqchasqa willañiqiqa manam kanchu.",
        "revdelete-show-file-confirm": "Allinta yachankichu \"<nowiki>$1</nowiki>\" willañiqimanta qullusqa $2-manta $3-pi musuqchasqata qhawayta munaspayki?",
        "revdelete-show-file-submit": "Arí",
+       "revdelete-selected-text": "{{PLURAL:$1|Akllasqa musuqchasqa|Akllasqa musuqchasqakuna}} [[:$2]]-manta:",
+       "revdelete-selected-file": "{{PLURAL:$1|Akllasqa p'anqa musuqchasqa|Akllasqa p'anqa musuqchasqakuna}} [[:$2]]-manta:",
        "logdelete-selected": "{{PLURAL:$1|Akllasqa tukusqa|Akllasqa tukusqakuna}} hallch'api:",
        "revdelete-confirm": "Ama hina kaspa, takyachiy munayniykita, qatiqninkunata riqsiyniykita, [[{{MediaWiki:Policy-url}}|kawpaykama]] rurayniykitapas.",
        "revdelete-suppress-text": "Pakay ruranata '''kaylla kaptin''' llamk'achiy:\n* K'amiqchá willakuna\n* Runamanta mana allin willakuna\n*: ''wasi tiyay imamaytakuna, karu rimay huchhakuna, mamallaqta sut'inchay huchhakuna, chay hinakunapas.''",
        "searchmenu-exists": "'''Kay wikipiqa «[[$1]]» sutiyuq p'anqam kachkan'''",
        "searchmenu-new": "<strong>Kay wikipi \"[[:$1]]\" sutiyuq p'anqata kamariy!</strong> {{PLURAL:$2|0=|Maskayniykiwan tarisqa p'anqatapas qhaway.|Maskaywan taripasqakunatapas qhaway.}}'",
        "searchprofile-articles": "Samiq p'anqakuna",
-       "searchprofile-project": "Yanapanapaq ruraykamaypaqpas p'anqakuna",
        "searchprofile-images": "Multimidya",
        "searchprofile-everything": "Tukuy",
        "searchprofile-advanced": "Ñawparikusqa",
        "searchprofile-articles-tooltip": "$1 nisqapi maskay",
-       "searchprofile-project-tooltip": "$1 nisqapi maskay",
        "searchprofile-images-tooltip": "Willañiqikunata maskay",
        "searchprofile-everything-tooltip": "Tukuy samiqninpi maskay (rimanakuy p'anqakunapipas)",
        "searchprofile-advanced-tooltip": "Akllasqa suti k'itikunapi maskay",
        "search-result-score": "Chaniyuq kaynin: $1%",
        "search-redirect": "(pusapuna $1)",
        "search-section": "(raki $1)",
+       "search-file-match": "(willañiqip samiqninta taripan)",
        "search-suggest": "Kaytachu niyta munanki? - $1",
        "search-interwiki-caption": "Ñaña ruraykamaykuna",
-       "search-interwiki-default": "$1 taripasqakuna:",
+       "search-interwiki-default": "$1-manta taripasqakuna:",
        "search-interwiki-more": "(aswan)",
        "search-relatedarticle": "Apanakuq",
-       "searcheverything-enable": "Tukuy suti k'itikunapi maskay",
        "searchrelated": "apanakuq",
        "searchall": "tukuy",
        "showingresults": "Qhipanpiqa rikuchkanki {{PLURAL:$1|'''1''' tarisqatam|'''$1'''-kama tarisqakunatam}}, '''$2''' huchhawan qallarispa.",
+       "showingresultsinrange": "Qhipanpiqa rikuchkanki {{PLURAL:$1|<strong>1</strong>-kama tarisqatam|<strong>$1</strong>-kama tarisqakunatam}}, #<strong>$2</strong> huchhamanta #<strong>$3</strong> huchhakama.",
        "showingresultsnum": "Qhipanpiqa rikuchkanki {{PLURAL:$3|'''1''' tarisqatam|'''$3''' tarisqakunatam}}, '''$2''' yupaywan qallarispa.",
        "showingresultsheader": "{{PLURAL:$5|Taripasqa: '''$1''', '''$3'''-manta|Taripasqa: '''$1 - $2''', '''$3'''-manta}}, '''$4'''-paq",
        "search-nonefound": "Maskaypaq kay hina kachun nisqakamaqa manam kanchu taripasqakuna.",
        "allowemail": "Huk ruraqkunamanta e-chaskita saqillay",
        "prefs-searchoptions": "Maskay",
        "prefs-namespaces": "Suti k'itikuna",
-       "defaultns": "Mana hinaptintaq kay suti k'itikunapi maskay:",
        "default": "kikinmanta",
        "prefs-files": "Willañiqikuna",
        "prefs-custom-css": "Munakusqa CSS",
        "right-move": "P'anqakunata astay",
        "right-move-subpages": "P'anqakunata urin p'anqankunatawan astay",
        "right-move-rootuserpages": "Ruraqpa saphi p'anqankunata astay",
+       "right-move-categorypages": "Katiguriya p'anqakunata astay",
        "right-movefile": "Willañiqikunata astay",
        "right-suppressredirect": "Huk p'anqata astaspa pusapuna p'anqata mana kamariy",
        "right-upload": "Willañiqikunata churkuy",
        "action-createpage": "p'anqakunata kamariy",
        "action-createtalk": "rimanakuy p'anqakunata kamariy",
        "action-createaccount": "kay ruraqpa rakiqunanta kamariy",
+       "action-history": "kay p'anqap wiñay kawsayninta qhaway",
        "action-minoredit": "kay llamk'apusqata asllalla nispa sananchay",
        "action-move": "kay p'anqata astay",
        "action-move-subpages": "kay p'anqata urin p'anqankunatapas astay",
        "action-move-rootuserpages": "ruraqpa saphi p'anqankunata astay",
+       "action-move-categorypages": "katiguriya p'anqakunata astay",
        "action-movefile": "kay willañiqita astay",
        "action-upload": "kay willañiqita churkuy",
        "action-reupload": "kay kachkaqña willañiqita huknachay",
        "recentchanges-label-minor": "Kayqa aslla llamk'apuymi",
        "recentchanges-label-bot": "Kayqa rurana antachap llamk'apusqanmi",
        "recentchanges-label-unpatrolled": "Kay llamk'apusqaqa manaraqmi patrullasqachu",
+       "recentchanges-label-plusminus": "P'anqap chhikan, kay byte yupaywan wakinchasqa",
        "recentchanges-legend-heading": "'''Sut'ichana:'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|musuq p'anqakunatapas]] qhaway)",
-       "rcnotefrom": "Kay qatiqpiqa '''$2'''-mantapacha ('''$1'''-kama) hukchasqakunatam rikunki.",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|musuq p'anqakunatapas]] qhaway)",
+       "rcnotefrom": "Kay qatiqpiqa <strong>$2</strong>-mantapacha (<strong>$1</strong>-kama) hukchasqakunatam rikunki.",
        "rclistfrom": "$3 $2-manta musuq hukchasqakunata rikuchiy",
        "rcshowhideminor": "$1 uchuylla llamk'apusqakunata",
+       "rcshowhideminor-show": "Rikuchiy",
+       "rcshowhideminor-hide": "Pakay",
        "rcshowhidebots": "$1 rurana antachakunata",
+       "rcshowhidebots-show": "Rikuchiy",
+       "rcshowhidebots-hide": "Pakay",
        "rcshowhideliu": "$1 hallch'asqa ruraqkunata",
+       "rcshowhideliu-show": "Rikuchiy",
+       "rcshowhideliu-hide": "Pakay",
        "rcshowhideanons": "$1 IP-niyuq ruraqkunata",
+       "rcshowhideanons-show": "Rikuchiy",
+       "rcshowhideanons-hide": "Pakay",
        "rcshowhidepatr": "$1 patrullachasqa llamk'apusqakunata",
+       "rcshowhidepatr-show": "Rikuchiy",
+       "rcshowhidepatr-hide": "Pakay",
        "rcshowhidemine": "$1 llamk'apusqaykunata",
+       "rcshowhidemine-show": "Rikuchiy",
+       "rcshowhidemine-hide": "Pakay",
        "rclinks": "Qhipaq $1 hukchasqata qhipaq $2 p'unchawmanta qhaway.<br />$3",
        "diff": "dif",
        "hist": "wñka",
        "fileexists-shared-forbidden": "Kay sutiyuq willañiqiqa kachkañam rakinakusqa willañiqi qullqapi. Ama hina kaspa, churkuyta munaspaykiraq, ñawpaq p'anqaman kutispa willañiqiykita huk sutiwan churkuy. [[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "Kay willañiqiqa kay qatiq {{PLURAL:$1|willañiqip|willañiqikunap}} iskaychasqanmi:",
        "file-deleted-duplicate": "Kay hinalla ([[:$1]]) willañiqiña qullusqam karqa. Qhawariy imarayku qullusqa karqa, manaraq musuqmanta churkuykachaspa.",
+       "file-deleted-duplicate-notitle": "Kay willañiqiwan kaqlla kaq willañiqi qullusqañam karqan, sutintaq uraychasqam karqan. Ama hina kaspa, uraychasqa willañiqikunata qhawayta atiq runata tapuy kay sasachakuyta kuskinaykipaq, willañiqita manaraq churkuspa.",
        "uploadwarning": "Willañiqi churkuymanta paqtataq niy",
        "uploadwarning-text": "Ama hina kaspa, kay qatiqpi kaq willañiqimanta willaykunata hukchaspa musuqmanta ruraykachay.",
        "savefile": "Willañiqita waqaychay",
        "uploaddisabledtext": "Willañiqi churkuyqa manam saqillasqachu.",
        "php-uploaddisabledtext": "PHP-wan willañiqi churkuyqa hark'asqam. Ama hina kaspa, willañiqi churkuy allinkachinakunata llanchiy.",
        "uploadscripted": "Kay willañiqiqa wakichi icha HTML qillqayuqmi, llika wamp'unaqa pantalla unanchanmanchá.",
+       "uploadscriptednamespace": "Kay SVG willañiqiqa mana allin \"$1\" sutisuyuyuqmi.",
        "uploadinvalidxml": "Manam atinichu churkusqa willañiqipi XML-ta kuskiyta.",
        "uploadvirus": "Willañiqipiqa añawmi! Yuyay: $1",
        "uploadjava": "Kay ZIP willañiqiqa Java .class willañiqiyuqmi.\nJava churkuyqa manam saqillasqachu, qasikanapaq saywachasqa kanman karunchana tiyanman.",
        "download": "chaqnamuy",
        "unwatchedpages": "Mana watiqasqa p'anqakuna",
        "listredirects": "Tukuy pusapuykuna",
+       "listduplicatedfiles": "Iskaychasqayuq willañiqikuna",
+       "listduplicatedfiles-summary": "Kaypiqa iskaychasqayuq willañiqikunatam rikunki: paypaq lliwmanta aswan musuq musuqchasqaqa huk willañiqipaq lliwmanta aswan musuq musuqchasqamanta iskaychasqam, kay tiyayllapi kaq willañiqipura.",
+       "listduplicatedfiles-entry": "[[:File:$1|$1]]-manta [[$3|{{PLURAL:$2|huk iskaychasqam|$2 iskaychasqam}}]] kan.",
        "unusedtemplates": "Mana llamk'achisqa plantillakuna",
        "unusedtemplatestext": "Kay p'anqapi tukuy {{ns:template}} suti k'itipi kaq, manataq huk p'anqapi ch'aqtasqa p'anqakunap sutinkunam. Yuyariy, manaraq qulluspayki chay p'anqakunaman t'inkikunata qhaway.",
        "unusedtemplateswlh": "huk t'inkikuna",
        "pageswithprop-submit": "Riy",
        "doubleredirects": "Iskaylla pusapunakuna",
        "doubleredirectstext": "Kay p'anqapiqa huk pusapuna p'anqaman pusapuq p'anqakunap sutinkunatam rikunki. Sapa sinrupiqa ñawpaq ñiqin, iskay ñiqinpas pusapunaman t'inkikunam, iskay ñiqin pusapunap taripananpa qallariyninpas, sapsilla \"chiqap\" allin taripana qillqam, maymanchus ñawpaq ñiqin pusapuna p'anqa pusachun.\n<del>Chakapusqa</del> taripasqakunaqa paskasqañam.",
-       "double-redirect-fixed-move": "[[$1]] nisqaqa astasqam, kunantaq [[$2]] nisqaman pusapunam",
-       "double-redirect-fixed-maintenance": "[[$1]]-manta [[$2]]-man iskaylla pusapunata allinchaspa.",
+       "double-redirect-fixed-move": "[[$1]] nisqaqa astasqam. Kikinmantataq musuqchasqa kaspa kunan [[$2]] nisqaman pusapunam.",
+       "double-redirect-fixed-maintenance": "Hat'alliy llamk'aykuypi [[$1]]-manta [[$2]]-man iskaylla pusapunata kikinmanta allinchaspa.",
        "double-redirect-fixer": "Pusapuna allinchaq",
        "brokenredirects": "P'akisqa pusapunakuna",
        "brokenredirectstext": "Kay pusapuna p'anqakunaqa mana kachkaq p'anqakunamanmi pusapuchkan:",
        "ninterwikis": "{{PLURAL:$1|huk wikipura|$1 wikipura}}",
        "nlinks": "$1 {{PLURAL:$1|t'inki|t'inkikuna}}",
        "nmembers": "$1 {{PLURAL:$1|qillqa|qillqakuna}}",
+       "nmemberschanged": "$1 → $2 {{PLURAL:$2|wankurisqa|wankurisqakuna}}",
        "nrevisions": "$1 {{PLURAL:$1|llamk'apusqa|llamk'apusqakuna}}",
        "nviews": "$1 {{PLURAL:$1|rikuy|rikuykuna}}",
        "nimagelinks": "$1 {{PLURAL:$1|p'anqapi|p'anqakunapi}} llamk'achisqa",
        "wantedtemplates": "Munakusqa plantillakuna",
        "mostlinked": "Lliwmanta aswan t'inkimuqniyuq qillqakuna",
        "mostlinkedcategories": "Lliwmanta aswan t'inkimuqniyuq katiguriyakuna",
-       "mostlinkedtemplates": "Lliwmanta aswan t'inkimuqniyuq plantillakuna",
+       "mostlinkedtemplates": "Lliwmanta aswan t'inkimuqniyuq p'anqakuna",
        "mostcategories": "Lliwmanta aswan katiguriyayuq p'anqakuna",
        "mostimages": "Lliwmanta astawan llamk'achisqa rikchakuna",
        "mostinterwikis": "Lliwmanta aswan wikipurayuq p'anqakuna",
        "listgrouprights-removegroup-self": "{{PLURAL:$2|Huñu|Huñukuna}}tam qichuyta atin kikinpa raqiqunanmanta: $1",
        "listgrouprights-addgroup-self-all": "Tukuy huñukunatam yapayta atin kikinpa raqiqunanman",
        "listgrouprights-removegroup-self-all": "Tukuy huñukunatam qichuyta atin kikinpa raqiqunanmanta",
+       "listgrouprights-namespaceprotection-header": "Suti k'iti saywachanakuna",
+       "listgrouprights-namespaceprotection-namespace": "Suti k'iti",
+       "trackingcategories-name": "Willaypa sutin",
+       "trackingcategories-nodesc": "T'iktuna manam kanchu.",
+       "trackingcategories-disabled": "Katiguriyaman ama nisqa",
        "mailnologin": "Imamaytataqa ama kachaychu",
        "mailnologintext": "[[Special:UserLogin|Yaykunaykim]], [[Special:Preferences|allinkachinaykikunapi]] chaniyuq e-chaski imamaytappas kananmi tiyan huk ruraqkunaman e-chaskita kachanaykipaq.",
        "emailuser": "Kay ruraqman e-chaskita kachay",
        "unwatchthispage": "Amaña watiqaychu",
        "notanarticle": "Manam qillqachu",
        "notvisiblerev": "Musuqchasqaqa qullusqam",
-       "watchlist-details": "Watiqana sutisuyuykipiqa {{PLURAL:$1|huk p'anqam|$1 p'anqakunam}}, rimanakuna p'anqakunata mana yupaspa.",
+       "watchlist-details": "Watiqana sutisuyuykipiqa {{PLURAL:$1|$1 p'anqam|$1 p'anqakunam}}, rimanakuna p'anqakunata mana yupaspa.",
        "wlheader-enotif": "E-chaskimanta musyachinaman arí nisqañam.",
        "wlheader-showupdated": "Qayna watukamusqaykimantapacha hukchasqa p'anqakunataqa '''yanasapa''' nisqapim rikunki.",
        "wlshowlast": "$1 ura, $2 p'unchaw $3-mantapacha hukchasqakunata rikuchiy",
        "protect-locked-blocked": "Hark'asqa kaspayki manam atinkichu amachasqa kachkayninta hukchayta. Kay qatiqpiqa '''$1''' sutiyuq p'anqap kunan allinkachinankunatam rikunki:",
        "protect-locked-dblock": "Willañiqintin hark'asqa kachkaptinmi, manam atinkichu amachaypa kachkayninkunata hukchayta.\nKay qatiqpiqa '''$1''' sutiyuq p'anqap kunan allinkachinankunatam rikunki:",
        "protect-locked-access": "Qampa rakiqunaykiwanqa manam p'anqa amachaypa kachkayninkunata hukchayta atinkichu.\nKay qatiqpiqa '''$1''' sutiyuq p'anqap kunan allinkachinankunatam rikunki:",
-       "protect-cascadeon": "Kay p'anqaqa amachasqam kachkan, kay phaqchalla amachasqa {{PLURAL:$1|p'anqapi|p'anqakunapi}} ch'aqtasqa kaspanmi. Kay p'anqap amachasqa kachkayninta hukchaytam atinki, hinaspapas manam phaqcha nisqa amachasqa kaynintachu hukchanki.",
+       "protect-cascadeon": "Kay p'anqaqa amachasqam kachkan, kay phaqchalla amachasqa {{PLURAL:$1|p'anqapi|p'anqakunapi}} ch'aqtasqa kaspanmi.\nKay p'anqap amachasqa kachkayninta hukchaspaykiqa manam phaqcha nisqa amachasqa kaynintachu hukchanki.",
        "protect-default": "Tukuy ruraqkunapaq",
        "protect-fallback": "\"$1\" saqillanayuq ruraqkunallapaq",
        "protect-level-autoconfirmed": "Kikin rakiqunayuq ruraqkunallapaq",
        "contributions-title": "$1 sutiyuq ruraqpa llamk'apusqankuna",
        "mycontris": "Llamk'apusqaykuna",
        "contribsub2": "{{GENDER:$3|$1}}paq ($2)",
+       "contributions-userdoesnotexist": "\"$1\" sutiyuq rakiqunaqa manam hallch'asqachu.",
        "nocontribs": "Manam kay hina hukchasqakuna kanchu.",
        "uctop": "(qhipaq hukchasqa)",
        "month": "Kay killamanta (ñawpaqmantapas):",
        "sp-contributions-newbies-sub": "Musuqkunapaq",
        "sp-contributions-newbies-title": "Musuq ruraqkunap llamk'apusqankuna",
        "sp-contributions-blocklog": "Hark'ay hallch'asqakuna",
+       "sp-contributions-suppresslog": "uraychasqa ruraqpa hukchasqankuna",
        "sp-contributions-deleted": "qullusqa ruraqpa hukchasqankuna",
        "sp-contributions-uploads": "churkuykuna",
        "sp-contributions-logs": "hallch'akuna",
        "sp-contributions-search": "Llamk'apusqakunata maskay",
        "sp-contributions-username": "IP huchha icha ruraqpa sutin:",
        "sp-contributions-toponly": "Pata musuqchasqakunallata rikuchiy",
+       "sp-contributions-newonly": "P'anqa kamarisqakunallata rikuchiy",
        "sp-contributions-submit": "Maskay",
        "whatlinkshere": "Kayman t'inkimuq",
        "whatlinkshere-title": "$1 sutiyuq p'anqaman t'inkimuqkuna",
        "tooltip-preferences-save": "Akllasqakunata waqaychay",
        "tooltip-summary": "Pisichaychata yaykuchiy",
        "common.css": "/* Churamusqa CSS chantakunaqa tukuy qarakunapim llamk'anqa */",
-       "cologneblue.css": "/* Churamusqa CSS chantakunaqa ''Cologne Blue skin'' nisqa qarata llamk'achiq ruraqkunapaq llamk'anqa */",
        "monobook.css": "/* Kayman churasqa CSS nisqaqa Monobook qaratam hukchanqa tukuy internet tiyanapaq */",
-       "modern.css": "/* Churamusqa CSS chantakunaqa ''Modern skin'' nisqa qarata llamk'achiq ruraqkunapaq llamk'anqa */",
        "print.css": "/* Churamusqa CSS chantakunaqa ch'ipachinap rikch'akuynintam hukchanqa */",
        "common.js": "/* Ima kaypi kaq JavaScript qillqapas tukuy ruraqkunapaq tukuy p'anqakunap tukuy chaqnankunapi chaqnamusqa kanqa. */",
-       "cologneblue.js": "/* Ima kaypi qillqamusqa JavaScript nisqa wakichi qillqapas ''Cologne Blue skin'' nisqa qarata llamk'achiq ruraqkunapaq chaqnasqa kanqa */",
        "monobook.js": "/* Ima kaypi qillqamusqa JavaScript nisqa wakichi qillqapas MonoBook nisqata llamk'achiq ruraqkunapaq chaqnasqa kanqa */",
-       "modern.js": "/* Ima kaypi qillqamusqa JavaScript nisqa wakichi qillqapas ''Modern skin'' nisqa qarata llamk'achiq ruraqkunapaq chaqnasqa kanqa */",
        "anonymous": "{{SITENAME}}pi sutinnaq {{PLURAL:$1|ruraq|ruraqkuna}}",
        "siteuser": "{{SITENAME}}-pa $1 sutiyuq ruraqnin",
        "anonuser": "{{SITENAME}} rakiqunannaq ruraq $1",
        "confirm-watch-top": "Kay p'anqata watiqayta munankichu?",
        "confirm-unwatch-button": "Arí niy",
        "confirm-unwatch-top": "Kay p'anqata manaña watiqayta munankichu?",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← ñawpaq p'anqa",
        "imgmultipagenext": "qatiq p'anqa →",
        "imgmultigo": "Riy!",
        "imgmultigoto": "$1 sutiyuq p'anqaman riy",
        "img-lang-default": "(kikinmanta rimay)",
+       "img-lang-info": "Rikchata kaypi rindirisay: $1. $2",
        "img-lang-go": "Riy",
        "ascending_abbrev": "wich",
        "descending_abbrev": "uray",
        "watchlistedit-raw-done": "Watiqana sutisuyuykiqa musuqchasqañam.",
        "watchlistedit-raw-added": "{{PLURAL:$1|Huk yapasqa p'anqa suti|$1 yapasqa p'anqa sutikuna}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|Huk qichusqa p'anqa suti|$1 qichusqa p'anqa sutikuna}}:",
+       "watchlistedit-clear-title": "Ch'usaqchasqa watiqana sutisuyu",
+       "watchlistedit-clear-legend": "Watiqana sutisuyuta ch'usaqchay",
+       "watchlistedit-clear-explain": "Tukuy qillqa sutikunam watiqana sutisuyuykimanta qichusqa kanqa",
+       "watchlistedit-clear-titles": "P'anqakuna:",
+       "watchlistedit-clear-submit": "Watiqana sutisuyuta ch'usaqchay (manapunim kutichisqachu kanqa!)",
+       "watchlistedit-clear-done": "Watiqana sutisuyuykiqa ch'usaqchasqañam.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|Huk qichusqa p'anqa suti|$1 qichusqa p'anqa sutikuna}}:",
+       "watchlistedit-too-many": "Kaypiqa nisyu qhawana p'anqakunam.",
+       "watchlisttools-clear": "Watiqana sutisuyuta ch'usaqchay",
        "watchlisttools-view": "Hukchasqakunata qhaway",
        "watchlisttools-edit": "Watiqana sutisuyuta qhawaspa llamk'apuy",
        "watchlisttools-raw": "Chawa watiqana sutisuyuta llamk'apuy",
        "htmlform-no": "Mana",
        "htmlform-yes": "Arí",
        "htmlform-chosen-placeholder": "Akllanata akllay",
+       "htmlform-cloner-create": "Astawan yapay",
+       "htmlform-cloner-delete": "Qichuy",
        "sqlite-has-fts": "$1 hunt'a qillqa maskana yanapawan",
        "sqlite-no-fts": "$1 mana hunt'a qillqa maskana yanapawan",
        "logentry-delete-delete": "{{GENDER:$2|}}$1 sutiyuq ruraqqa $3 nisqa p'anqatam qullun",
index b1b19df..92ecf7f 100644 (file)
        "searchmenu-exists": "'''Igl exista ina pagina cun il num \"[[:$1]] sin questa vichi\"'''",
        "searchmenu-new": "<strong>Crear la pagina «[[:$1]]» sin quest vichi!</strong> {{PLURAL:$2|0=|Vesair er la pagina chattada cun tia tschertga.|Vesair er las resultats da tia tschertga.}}",
        "searchprofile-articles": "Paginas da cuntegn",
-       "searchprofile-project": "Agid e paginas dal project",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Tut",
        "searchprofile-advanced": "Avanzà",
        "searchprofile-articles-tooltip": "Tschertgar en $1",
-       "searchprofile-project-tooltip": "Tschertgar en $1",
        "searchprofile-images-tooltip": "Tschertgar datotecas",
        "searchprofile-everything-tooltip": "Tschertgar en tut il cuntegn (inclusivamain paginas da discussiun)",
        "searchprofile-advanced-tooltip": "Tschertgar en ulteriurs tips da pagina",
        "search-interwiki-default": "$1 resultats:",
        "search-interwiki-more": "(dapli)",
        "search-relatedarticle": "Sumegliant",
-       "searcheverything-enable": "Tschertgar en tut ils tips da pagina",
        "searchrelated": "sumegliant",
        "searchall": "tuts",
        "showingresults": "Sutvart èn enfin {{PLURAL:$1|'''in''' resultat|'''$1''' resultats}} cumenzond cun il numer '''$2'''.",
        "allowemail": "Retschaiver e-mails dad auters utilisaders",
        "prefs-searchoptions": "Tschertgar",
        "prefs-namespaces": "Tips da pagina",
-       "defaultns": "Uschiglio tschertgar en quests tips da pagina:",
        "default": "Standard",
        "prefs-files": "Datotecas",
        "prefs-custom-css": "CSS persunalisà",
        "prefs-emailconfirm-label": "Confirmaziun per e-mail:",
        "youremail": "Adressa dad e-mail:",
        "username": "{{GENDER:$1|Num d'utilisader|Num da l'utilisadra}}:",
-       "uid": "ID da l'{{GENDER:$1|utilisader|utilisadra}}:",
        "prefs-memberingroups": "{{GENDER:$2|Commember|Commembra}} da {{PLURAL:$1|la gruppa|las gruppas}}:",
        "prefs-registration": "Temp da registraziun:",
        "yourrealname": "Num real:",
        "recentchanges-label-bot": "Questa modificaziun è vegnida exequida dad in bot",
        "recentchanges-label-unpatrolled": "Questa midada n'è anc betg vegnida controllada",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "(vesair era la [[Special:NewPages|glista da novas paginas]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vesair era la [[Special:NewPages|glista da novas paginas]])",
        "rcnotefrom": "I vegnan mussadas las midadas a partir da las <strong>$4</strong> dals <strong>$3</strong> (maximalmain <strong>$1</strong>).",
        "rclistfrom": "Mussar las novas midadas a partir da las $2 dals $3",
        "rcshowhideminor": "$1 midadas pitschnas",
        "log-title-wildcard": "Tschertgar titels che cumenzan cun quest text",
        "showhideselectedlogentries": "Mussar/zuppentar las endataziuns tschernidas dal protocol",
        "allpages": "Tut ils artitgels",
-       "alphaindexline": "$1 enfin $2",
        "nextpage": "proxima pagina ($1)",
        "prevpage": "ultima pagina ($1)",
        "allpagesfrom": "Mussar paginas davent da:",
index 4406a24..5c9707d 100644 (file)
        "recentchanges-label-unpatrolled": "Această modificare nu a fost încă verificată",
        "recentchanges-label-plusminus": "Dimensiunea paginii s-a modificat corespunzător acestui număr de octeți",
        "recentchanges-legend-heading": "'''Legendă:'''",
-       "recentchanges-legend-newpage": "(vedeți și [[Special:NewPages|lista cu pagini noi]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (vedeți și [[Special:NewPages|lista cu pagini noi]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Dedesubt sunt modificările începând cu <b>$2</b> (maximum <b>$1</b> afișate).",
        "rclistfrom": "Se afișează modificările începând cu $3, $2",
        "wantedtemplates": "Formate dorite",
        "mostlinked": "Cele mai căutate articole",
        "mostlinkedcategories": "Cele mai căutate categorii",
-       "mostlinkedtemplates": "Cele mai folosite formate",
+       "mostlinkedtemplates": "Cele mai transcluse pagini",
        "mostcategories": "Articole cu cele mai multe categorii",
        "mostimages": "Cele mai căutate imagini",
        "mostinterwikis": "Pagini cu cele mai multe legături interwiki",
index 3b26c28..e6b4805 100644 (file)
        "recentchanges-label-bot": "Stu cangiamende ha state fatte da 'nu bot",
        "recentchanges-label-unpatrolled": "Stu cangiamende non g'à state angore condrollate",
        "recentchanges-legend-heading": "'''Leggende:'''",
-       "recentchanges-legend-newpage": "('ndruche pure [[Special:NewPages|elenghe de le pàggene nuève]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ('ndruche pure [[Special:NewPages|elenghe de le pàggene nuève]])",
        "rcnotefrom": "Sotte stonne le cangiaminde da '''$2''' ('nzigne a '''$1''' fatte vedè).",
        "rclistfrom": "Fà vedè le urteme cangiaminde partenne da $3 $2",
        "rcshowhideminor": "$1 cangiaminde stuèdeche",
index a6fa914..12b14d0 100644 (file)
@@ -66,7 +66,8 @@
                        "Meshkov.a",
                        "아라",
                        "Eroha",
-                       "Niklem"
+                       "Niklem",
+                       "Agilight"
                ]
        },
        "tog-underline": "Подчёркивание ссылок:",
        "recentchanges-label-unpatrolled": "Эта правка ещё никем не патрулировалась",
        "recentchanges-label-plusminus": "Размер страницы изменился на данное количество байт",
        "recentchanges-legend-heading": "'''Легенда:'''",
-       "recentchanges-legend-newpage": "(см. также [[Special:NewPages|список новых страниц]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (см. также [[Special:NewPages|список новых страниц]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Ниже перечислены изменения с <strong>$2</strong> (показано не более <strong>$1</strong>).",
        "rclistfrom": "Показать изменения с $3 $2.",
index 9df57b7..5094902 100644 (file)
        "recentchanges-label-unpatrolled": "Бу уларытыы өссө ботурууллана илик",
        "recentchanges-label-plusminus": "Сирэй кээмэйэ бачча баайтынан уларыйбыт",
        "recentchanges-legend-heading": "'''Легендата:'''",
-       "recentchanges-legend-newpage": "(өссө көр: [[Special:NewPages|Саҥа сирэйдэр тиһиктэрэ]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (өссө көр: [[Special:NewPages|Саҥа сирэйдэр тиһиктэрэ]])",
        "rcnotefrom": "Улартыылар бу кэмтэн ыла көрдөрүлүннүлэр: <strong>$2</strong> (мантан элбэх көрдөрүллүбэтэ: <strong>$1</strong>).",
        "rclistfrom": "Бу кэм $3 $2 кэнниттэн оҥоһуллубуттары көрдөр",
        "rcshowhideminor": "$1 кыра уларыйыылары",
index 35e7d41..14ae576 100644 (file)
        "tog-hidepatrolled": "Cua is acontzos verificados in is ùrtimas mudàntzias",
        "tog-newpageshidepatrolled": "Cua is pàginas verificadas dae sa lista de is pàginas noas",
        "tog-extendwatchlist": "Ammània sa watchlist pro ammustrare totu is mudàntzias, non feti is prus reghentes",
-       "tog-usenewrc": "Imprea is ùrtimas mudàntzias megioradas (esigit JavaScript)",
+       "tog-usenewrc": "Poni a pari is mudàntzias de dònnia pàgina in is ùrtimas mudàntzias e in watchlist",
        "tog-numberheadings": "Auto-numeratzione de is tìtulos",
-       "tog-showtoolbar": "Ammustra s'amusta de is ainas pro is acontzos (esigit JavaScript)",
-       "tog-editondblclick": "Acontza pàginas cun dòpiu click (esigit JavaScript)",
-       "tog-editsectiononrightclick": "Abilita s'acontzu de is setziones cun dòpiu click in is tìtulos de is setziones (esigit JavaScript)",
-       "tog-watchcreations": "Aciungi is pàginas chi apo creadu a sa watchlist mea",
-       "tog-watchdefault": "Aciungi is pàginas chi apo acontzadu a sa watchlist mea",
-       "tog-watchmoves": "Aciungi is pàginas chi apo mòvidu a sa watchlist mea",
-       "tog-watchdeletion": "Aciungi is pàginas chi apo fuliadu a sa watchlist mea",
+       "tog-showtoolbar": "Amosta s'amusta de is ainas pro is acontzos",
+       "tog-editondblclick": "Acontza pàginas cun dòpiu click",
+       "tog-editsectiononrightclick": "Abilita s'acontzu de is setziones cun click a dereta in is tìtulos de is setziones",
+       "tog-watchcreations": "Aciungi is pàginas chi apo creadu e is files chi apo carrigau a sa watchlist mea",
+       "tog-watchdefault": "Aciungi pàginas e files chi apo acontzadu a sa watchlist mea",
+       "tog-watchmoves": "Aciungi pàginas e files chi apo mòvidu a sa watchlist mea",
+       "tog-watchdeletion": "Aciungi pàginas e files chi apo fuliadu a sa watchlist mea",
        "tog-minordefault": "Signa totu is acontzos comente minores pro difetu",
        "tog-previewontop": "Ammustra s'antiprima a subra sa casella de acontzu e no a suta",
        "tog-previewonfirst": "Ammustra s'antiprima pro su primu acontzu",
-       "tog-enotifwatchlistpages": "Spedi·mi una missada eletrònica cando una pàgina de sa watchlist mea est acontzada",
+       "tog-enotifwatchlistpages": "Spedi·mi una missada eletrònica cando una pàgina o file de sa watchlist mea est acontzada",
        "tog-enotifusertalkpages": "Spedi·mi una missada eletrònica cando sa pàgina de is cuntierras mias est acontzada",
-       "tog-enotifminoredits": "Spedi·mi una missada eletrònica fintzas pro is acontzos minores de is pàginas",
+       "tog-enotifminoredits": "Spedi·mi una missada eletrònica fintzas pro is acontzos minores de is pàginas e files",
        "tog-enotifrevealaddr": "Faghe schire s'indiritzu e-mail miu in is notìficas de is e-mails",
        "tog-shownumberswatching": "Ammustra su nùmeru de is usuàrios ca sunt ponende ogru a sa pàgina",
-       "tog-oldsig": "Antiprima de sa firma atuale:",
+       "tog-oldsig": "Firma atuale:",
        "tog-fancysig": "Trata sa firma comente unu testu wiki (chentza cullegamentos automaticos)",
-       "tog-uselivepreview": "Imprea sa funtzione \"live preview\" (esigit JavaScript) (sperimentale)",
+       "tog-uselivepreview": "Imprea sa funtzione \"live preview\" (sperimentale)",
        "tog-forceeditsummary": "Avertimì si su campu ogetu est buidu",
        "tog-watchlisthideown": "Cua is acontzos meos dae sa watclist",
        "tog-watchlisthidebots": "Cua is acontzos de is bots dae sa watchlist",
        "cancel": "Burra",
        "moredotdotdot": "Àteru…",
        "morenotlisted": "Sa lista no est cumpreta",
-       "mypage": "Sa pàgina mea",
+       "mypage": "Pàgina",
        "mytalk": "Cuntierras meas",
        "anontalk": "Cuntierras pro custu IP",
        "navigation": "Navigadura",
        "printableversion": "Versione de imprenta",
        "permalink": "Acàpiu fitianu",
        "print": "Imprenta",
+       "view": "Amosta",
+       "view-foreign": "Amosta in $1",
        "edit": "Acontza",
+       "edit-local": "Acontza sa descridura locali",
        "create": "Crea",
+       "create-local": "Aciungi descridura locali",
        "editthispage": "Acontza custa pàgina",
        "create-this-page": "Crea custa pàgina",
        "delete": "Fùlia",
        "deletethispage": "Fùlia custa pàgina",
+       "undeletethispage": "Torrandi custa pàgina",
        "undelete_short": "Restaurare {{PLURAL:$1|un acontzu|$1 acontzos}}",
+       "viewdeleted_short": "Amosta {{PLURAL:$1|unu acontzu burradu|$1 acontzos burrados}}",
        "protect": "Ampara",
        "protect_change": "mudàntzia",
        "protectthispage": "Ampara custa pàgina",
-       "unprotect": "Disampara",
-       "unprotectthispage": "Disampara custa pàgina",
+       "unprotect": "Muda amparu",
+       "unprotectthispage": "Muda amparu de custa pàgina",
        "newpage": "Pàgina noa",
        "talkpage": "Pàgina de cuntierra",
        "talkpagelinktext": "Cuntierra",
        "jumpto": "Bae a:",
        "jumptonavigation": "navigadura",
        "jumptosearch": "chirca",
+       "view-pool-error": "Teni passièntzia, is servers funt càrrigus de traballu.\nIn medas megant de biri custa pàgina.\nPo praxeri, torra a provai tra unu pagu.\n\n$1",
+       "generic-pool-error": "Teni passièntzia, is servers funt càrrigus de traballu.\nIn medas megant de biri custa risorsa.\nPo praxeri, torra a provai tra unu pagu.",
        "pool-errorunknown": "Faddina disconnota",
        "aboutsite": "A propòsitu de {{SITENAME}}",
        "aboutpage": "Project:Informatziones",
index 777e5f1..2ef479f 100644 (file)
        "createacct-captcha": "Cuntrollu di sicurezza",
        "createacct-imgcaptcha-ph": "Nzirìsci lu testu ca vidi ccassupra",
        "createacct-submit": "Crèa nu cuntu",
-       "createacct-benefit-heading": "{{SITENAME}} è fatta di pirsunu comu a tìa.",
+       "createacct-benefit-heading": "{{SITENAME}} è fatta di pirsuni comu a tìa.",
        "createacct-benefit-body1": "{{PLURAL:$1|cuntribbutu|cuntribbuti}}",
        "createacct-benefit-body2": "{{PLURAL:$1|pàggina|pàggini}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|cuntribbutuori ricenti|cuntribbutura ricenti}}",
        "badretype": "La ''password'' chi mittisti nun è bona.",
        "userexists": "Lu nomu utenti nzeritu è già usatu. Ti prijamu pirciò di vuliri scègghiri nu nomu utenti diversu.",
        "loginerror": "Erruri nta l'accessu",
+       "createacct-error": "Erruri ntâ criazzioni di l'utenza",
        "createaccounterror": "Mpussibbili di criari l'account $1",
        "nocookiesnew": "Lu nomu utenti pi tràsiri fu criatu, ma nun hai effittuatu lu log in. {{SITENAME}} usa li cookies pi gistiri li log in. Lu tò browser havi li cookies disabbilitati. Abbìlita li cookies, appoi effèttua lu login cu li tò username e password novi.",
        "nocookieslogin": "{{SITENAME}} usa li cookies pi gistiri lu log in. Lu tò browser havi li cookies disabbilitati. Abbìlita li cookies, appoi effèttua lu login cu li tò username e password.",
index 1fa5fa8..be43c4c 100644 (file)
        "searchmenu-exists": "<strong>Thaur's ae page named \"[[:$1]]\" oan this wiki.</strong> {{PLURAL:$2|0=|See the ither rake ootcomes foond aes weel.}}",
        "searchmenu-new": "<strong>Cræft the page \"[[:$1]]\" oan this wiki!</strong> {{PLURAL:$2|0=|See the page foond wi yer rake ava.|See the rake ootcome foond ava.}}",
        "searchprofile-articles": "Content pages",
-       "searchprofile-project": "Heelp n Waurk pages",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Awthing",
        "searchprofile-advanced": "Advanced",
        "searchprofile-articles-tooltip": "Rake in $1",
-       "searchprofile-project-tooltip": "Rake in $1",
        "searchprofile-images-tooltip": "Rake fer files",
        "searchprofile-everything-tooltip": "Rake aw o content (inclædin tauk pages)",
        "searchprofile-advanced-tooltip": "Rake in custom namespaces",
        "search-interwiki-default": "Ootcomes fae $1:",
        "search-interwiki-more": "(mair)",
        "search-relatedarticle": "Relatit",
-       "searcheverything-enable": "Rake in aw namespaces",
        "searchrelated": "relatit",
        "searchall": "aw",
        "showingresults": "Shawin ablo up tae {{PLURAL:$1|'''1''' ootcome|'''$1''' ootcomes}} stertin wi #'''$2'''.",
        "timezoneregion-pacific": "Paceefic Ocean",
        "allowemail": "Allou email fae ither uisers",
        "prefs-searchoptions": "Rake",
-       "defaultns": "Itherwise rake in thir namespaces:",
        "default": "defaut",
        "prefs-files": "Files",
        "prefs-custom-css": "Custom CSS",
        "recentchanges-label-bot": "This eedit wis performed bi ae bot",
        "recentchanges-label-unpatrolled": "This eedit haes no bin patrolled yet",
        "recentchanges-label-plusminus": "The page size chynged bi this nummer o bytes",
-       "recentchanges-legend-newpage": "(see [[Special:NewPages|leet o new pages]] ava)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (see [[Special:NewPages|leet o new pages]] ava)",
        "rcnotefrom": "Ablo ar the chynges sin <strong>$2</strong> (up til <strong>$1</strong> shawn).",
        "rclistfrom": "Shaw new chynges stertin fae $3 $2",
        "rcshowhideminor": "$1 smaa eedits",
index c5a3b1e..f0fabb5 100644 (file)
@@ -79,7 +79,7 @@
        "august": "avgust-коловоз",
        "september": "septembar-рујан",
        "october": "oktobar-листопад",
-       "november": "novembar",
+       "november": "студени-novembar",
        "december": "decembar-просинац",
        "january-gen": "januara-сијечња",
        "february-gen": "februara-вељаче",
@@ -91,7 +91,7 @@
        "august-gen": "augusta-коловоза",
        "september-gen": "septembra-рујна",
        "october-gen": "oktobra-листопада",
-       "november-gen": "novembar",
+       "november-gen": "студенога-novembra",
        "december-gen": "decembra-просинца",
        "jan": "jan-сиј",
        "feb": "feb-вељ",
        "aug": "aug-кол",
        "sep": "sep-руј",
        "oct": "okt-лис",
-       "nov": "nov",
+       "nov": "сту-nov",
        "dec": "dec-про",
        "january-date": "$1. januar",
        "february-date": "$1. februar",
        "mediawikipage": "Pogledaj stranicu s porukom",
        "templatepage": "Pogledajte stranicu sa šablonom",
        "viewhelppage": "Pogledajte stranicu za pomoć",
-       "categorypage": "Pogledajte stranicu kategorije",
+       "categorypage": "Pogledaj stranicu kategorije",
        "viewtalkpage": "Pogledajte raspravu",
        "otherlanguages": "Drugi jezici / Други језици",
        "redirectedfrom": "(Preusmjereno sa $1)",
        "loginprompt": "Morate imati kolačiće ('''cookies''') omogućene da biste se prijavili na {{SITENAME}}.",
        "userlogin": "Prijavi se / Пријави се",
        "userloginnocreate": "Prijavi se",
-       "logout": "Odjavi se - Одјави се",
+       "logout": "Odjavi se / Одјави се",
        "userlogout": "Odjavi se / Одјави се",
        "notloggedin": "Niste prijavljeni",
        "userlogin-noaccount": "Nemate račun?",
        "previousrevision": "← Starija revizija",
        "nextrevision": "Novija izmjena →",
        "currentrevisionlink": "Trenutna verzija",
-       "cur": "tren",
+       "cur": "tren - трен",
        "next": "sljed - след",
        "last": "preth - претх",
        "page_first": "prva",
        "difference-title-multipage": "Razlika između stranica \"$1\" i \"$2\"",
        "difference-multipage": "(Razlika između stranica)",
        "lineno": "Linija $1:",
-       "compareselectedversions": "Uporedite označene verzije",
+       "compareselectedversions": "Uporedi označene verzije",
        "showhideselectedversions": "Pokaži/sakrij odabrane verzije",
        "editundo": "ukloni ovu izmjenu - уклони ову измену",
        "diff-empty": "(nema razlike)",
        "recentchanges-label-unpatrolled": "Ova izmjena još nije patrolirana",
        "recentchanges-label-plusminus": "Veličina stranice promijenila se za ovoliko bajtova",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "(također pogledajte [[Special:NewPages|spisak novih stranica]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (također pogledajte [[Special:NewPages|spisak novih stranica]])",
        "rcnotefrom": "Ispod su izmjene od <strong>$2</strong> (do <strong>$1</strong> prikazano).",
        "rclistfrom": "Prikaži nove poruke od / Прикажи нове поруке од $3 $2",
        "rcshowhideminor": "$1 male izmjene / мале измене",
        "hide": "Sakrij",
        "show": "prikaži / прикажи",
        "minoreditletter": "m/м",
-       "newpageletter": "N",
+       "newpageletter": "N",
        "boteditletter": "b",
        "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|korisnik|korisnika}} koji pregledaju]",
        "rc_categories": "Ograniči na kategorije (razdvojene sa \"|\")",
        "uncategorizedimages": "Slike bez kategorije",
        "uncategorizedtemplates": "Šabloni bez kategorije",
        "unusedcategories": "Neiskorištene kategorije",
-       "unusedimages": "Neupotrebljene datoteke",
+       "unusedimages": "Neiskorišćene slike / Неискоришћене слике",
        "popularpages": "Popularne stranice",
        "wantedcategories": "Tražene kategorije",
        "wantedpages": "Tražene stranice / Тражене странице",
        "deletepage": "Izbrišite stranicu",
        "confirm": "Potvrdi / Потврди",
        "excontent": "sadržaj je bio: '$1'",
-       "excontentauthor": "sadržaj je bio: '$1' (i jedini korisnik koji je mijenjao bio je '[[Special:Contributions/$2|$2]]')",
+       "excontentauthor": "sadržaj je bio: '$1', a jedini urednik '[[Special:Contributions/$2|$2]]'",
        "exbeforeblank": "sadržaj prije brisanja je bio: '$1'",
        "delete-confirm": "Brisanje \"$1\"",
        "delete-legend": "Obriši",
        "rollback-success": "Vraćene su izmjene korisnika $1;\nvraćeno na posljednju verziju koju je snimio $2.",
        "sessionfailure-title": "Greška u sesiji",
        "sessionfailure": "Izgleda da postoji problem sa vašom sesijom; ova akcija je otkazana kao prevencija protiv napadanja sesija. Kliknite \"back\" (''nazad'') i osvježite stranicu sa koje ste došli, i opet pokušajte.",
-       "protectlogpage": "Registar zaštite",
+       "protectlogpage": "Evidencija zaštite",
        "protectlogtext": "Ispod je spisak promjena zaštićenja stranice.\nPogledajte [[Special:ProtectedPages|spisak zaštićenih stranica]] za pregled trenutno operativnih zaštita stranica.",
        "protectedarticle": "\"[[$1]]\" zaštićeno",
        "modifiedarticleprotection": "promijenjen nivo zaštite za \"[[$1]]\"",
        "blocklist-nousertalk": "ne može uređivati vlastitu stranicu za razgovor",
        "ipblocklist-empty": "Spisak blokiranja je prazan.",
        "ipblocklist-no-results": "Tražena IP adresa ili korisničko ime nisu blokirani.",
-       "blocklink": "blokirajte",
+       "blocklink": "blokiraj",
        "unblocklink": "Odblokiraj / Одблокирај",
        "change-blocklink": "promijeni blokadu",
        "contribslink": "doprinosi",
        "blocklogpage": "Evidencija blokiranja",
        "blocklog-showlog": "Ovaj korisnik je ranije blokiran. \nEvidencija blokiranja je prikazana ispod kao referenca:",
        "blocklog-showsuppresslog": "Ovaj korisnik je ranije blokiran i sakriven. \nEvidencija sakrivanja je prikazana ispod kao referenca:",
-       "blocklogentry": "blokiran [[$1]] s rokom: $2 $3",
+       "blocklogentry": "Blokiran \"[[$1]]\" sa vremenom isticanja od $2 $3",
        "reblock-logentry": "promjena postavki blokiranja za [[$1]] sa vremenom isteka u $2 $3",
        "blocklogtext": "Ovo je historija akcija blokiranja i deblokiranja korisnika.\nAutomatski blokirane IP adrese nisu navedene ovdje.\nPogledajte [[Special:BlockList|spisak blokiranja]] za spisak trenutnih zabrana i blokiranja.",
        "unblocklogentry": "Odblokiran / Одблокиран \"$1\"",
        "movepagetalktext": "Odgovarajuća stranica za razgovor, ako postoji, će automatski biti premještena istovremeno '''osim:'''\n*Neprazna stranica za razgovor već postoji pod novim imenom, ili\n*Odznačite donju kutiju.\n\nU tim slučajevima, moraćete ručno da premjestite stranicu ukoliko to želite.",
        "movearticle": "Premjesti stranicu – Премјести страницу",
        "moveuserpage-warning": "'''Upozorenje:''' Premještate korisničku stranicu. Molimo da zapamtite da će se samo stranica premjestiti a korisnik se ''neće'' preimenovati.",
-       "movenologintext": "Morate biti registrovani korisnik i [[Special:UserLogin|prijavljeni]] da biste premjestili stranicu.",
+       "movenologintext": "Morate se registrovati ili [[Special:Userlogin|prijaviti]] kako biste premjestili članak.<br>\nМорате се регистровати или [[Special:Userlogin|пријавити]] како бисте преместили чланак.",
        "movenotallowed": "Nemate dopuštenje za premještanje stranica.",
        "movenotallowedfile": "Nemate dopuštenja da premještate datoteke.",
        "cant-move-user-page": "Nemate dopuštenje da premještate korisničke stranice (osim podstranica).",
        "rcpatroldisabledtext": "Funkcija patroliranja nedavnih izmjena je trenutno isključena.",
        "markedaspatrollederror": "Ne može se označiti kao patrolirano",
        "markedaspatrollederrortext": "Morate naglasiti reviziju koju treba označiti kao patroliranu.",
-       "markedaspatrollederror-noautopatrol": "Nije Vam dopušteno da vlastite izmjene označavate patroliranim.",
+       "markedaspatrollederror-noautopatrol": "Ne možete da označite svoje izmene patroliranim.",
        "markedaspatrollednotify": "Ova izmjena stranice $1 označena je kao patrolirana.",
        "markedaspatrollederrornotify": "Nije uspjelo označavanje ove stranice kao patrolirane.",
        "patrol-log-page": "Evidencija patroliranja",
        "metadata-fields": "Polja metapodataka slika su prikazani ispod slike će biti uključeni u prikaz stranice slike kada je sakrivena tabela metapodataka. U suprotnom će biti sakrivena po postavkama.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "Širina",
        "exif-imagelength": "Visina",
-       "exif-bitspersample": "Bita po komponenti",
+       "exif-bitspersample": "Dubina boje",
        "exif-compression": "Šema kompresije",
        "exif-photometricinterpretation": "Sastav piksela",
        "exif-orientation": "Orijentacija",
        "exif-exifversion": "Exif verzija",
        "exif-flashpixversion": "Podržana verzija Flashpix",
        "exif-colorspace": "Prostor boje",
-       "exif-componentsconfiguration": "Značenje svake komponente",
-       "exif-compressedbitsperpixel": "Način kompresije slike",
+       "exif-componentsconfiguration": "Značenje pojedine komponente",
+       "exif-compressedbitsperpixel": "Dubina boje poslije sažimanja",
        "exif-pixelydimension": "Širina slike",
        "exif-pixelxdimension": "Visina slike",
        "exif-usercomment": "Korisnički komentari",
        "exif-isospeedratings": "Rejting ISO brzine",
        "exif-shutterspeedvalue": "Brzina APEX okidača",
        "exif-aperturevalue": "Otvor blende",
-       "exif-brightnessvalue": "APEX osvijetljenost",
+       "exif-brightnessvalue": "Osvjetljenost",
        "exif-exposurebiasvalue": "Kompozicija ekspozicije",
        "exif-maxaperturevalue": "Najveći broj otvora blende",
        "exif-subjectdistance": "Udaljenost objekta",
        "exif-personinimage": "Prikazana osoba",
        "exif-originalimageheight": "Visina slike prije nego što je odrezana",
        "exif-originalimagewidth": "Širina slike prije nego što je odrezana",
-       "exif-compression-1": "Nekompresovano",
+       "exif-compression-1": "Nesažeto",
        "exif-compression-2": "CCITT Grupa 3 1 — Dimenzionalno izmijenjeo Huffmanovo šifriranje po dužini",
        "exif-compression-3": "CCITT Group 3 faks kodiranje",
        "exif-compression-4": "CCITT Group 4 faks kodiranje",
        "monthsall": "sve",
        "confirmemail": "Potvrdite adresu e-pošte",
        "confirmemail_noemail": "Niste unijeli tačnu e-mail adresu u Vaše [[Special:Preferences|korisničke postavke]].",
-       "confirmemail_text": "Ova viki zahtjeva da potvrdite adresu Vaše e-pošte prije nego što koristite mogućnosti e-pošte. ž\nAktivirajte dugme ispod kako bi ste poslali poštu za potvrdu na Vašu adresu.\nPošta uključuje poveznicu koja sadrži kod;\nučitajte poveznicu u Vaš brauzer da bi ste potvrdili da je adresa Vaše e-pošte valjana.",
+       "confirmemail_text": "Ova wiki zahtjeva da potvrdite adresu Vaše e-pošte prije nego što koristite mogućnosti e-pošte. \nAktivirajte dugme ispod kako bi ste poslali poštu za potvrdu na Vašu adresu.\nPošta uključuje poveznicu koja sadrži kod;\nučitajte poveznicu u Vaš brauzer da bi ste potvrdili da je adresa Vaše e-pošte valjana.",
        "confirmemail_pending": "Kod za potvrdu Vam je već poslan putem e-maila;\nako ste nedavno otvorili Vaš račun, trebali bi pričekati par minuta da poslana pošta stigne, prije nego što ponovno zahtijevate novi kod.",
        "confirmemail_send": "Pošaljite kod za potvrdu",
        "confirmemail_sent": "E-pošta za potvrđivanje poslata.",
        "table_pager_limit_label": "Stavke po stranici:",
        "table_pager_limit_submit": "Idi",
        "table_pager_empty": "Bez rezultata",
-       "autosumm-blank": "Uklanjanje sadržaja stranice",
+       "autosumm-blank": "Uklanjanje svog sadržaja stranice",
        "autosumm-replace": "Zamjena stranice sa '$1'",
        "autoredircomment": "Preusmjereno na [[$1]]",
        "autosumm-new": "Napravljena stranica sa '$1'",
        "watchlistedit-raw-done": "Vaš spisak praćenja je ažuriran.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 naslov je dodan|$1 naslova su dodana|$1 naslova je dodano}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 naslov je uklonjen|$1 naslova je uklonjeno}}:",
+       "watchlistedit-clear-legend": "Obriši spisak praćenja",
+       "watchlistedit-clear-done": "Vaš spisak praćenja je obrisan. Svi naslovi su uklonjeni.",
        "watchlisttools-view": "Vidi relevantne promjene",
        "watchlisttools-edit": "Vidi i uredi listu praćenja",
        "watchlisttools-raw": "Uredi grubu listu praćenja",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|razgovor]])",
        "unknown_extension_tag": "Nepoznata oznaka ekstenzije \"$1\"",
        "duplicate-defaultsort": "'''Upozorenje''': Postavljeni ključ sortiranja \"$2\" zamjenjuje raniji ključ \"$1\".",
-       "version": "Verzija",
+       "version": "Verzija / Верзија",
        "version-extensions": "Instalirana proširenja (ekstenzije)",
        "version-specialpages": "Posebne stranice",
        "version-parserhooks": "Kuke parsera",
        "specialpages-group-media": "Multimedijalne datoteke \\ fajlovi i njihovo postavljanje / Мултимедијалне датотеке \\ фајлови и њихово постављање",
        "specialpages-group-users": "Korisnici i njihova prava / Корисници и њихова права",
        "specialpages-group-highuse": "Najčešće korištene stranice / Најчешће кориштене странице",
-       "specialpages-group-pages": "Spiskovi stranica",
+       "specialpages-group-pages": "Liste stranica / Листе страна",
        "specialpages-group-pagetools": "Alati za stranice",
-       "specialpages-group-wiki": "Podaci i alati",
+       "specialpages-group-wiki": "Wiki podaci i alati - Вики подаци и алати",
        "specialpages-group-redirects": "Posebne stranice za preusmjeravanje / Посебне стране за преусмеравање",
        "specialpages-group-spam": "Spam alati",
        "blankpage": "Prazna stranica",
index f9e4885..bbb6c02 100644 (file)
        "vector-view-view": "Čítať",
        "vector-view-viewsource": "Zobraziť zdroj",
        "actions": "Operácie",
+       "vector-more-actions": "Viac",
        "namespaces": "Menné priestory",
        "variants": "Varianty",
        "navigation-heading": "Navigačné menu",
        "searchmenu-exists": "*Stránka '''[[$1]]'''",
        "searchmenu-new": "<strong>Vytvoriť na tejto wiki stránku „[[:$1|$1]]“!</strong> {{PLURAL:$2|0=|Pozrite si tiež stránku nájdenú vašim vyhľadávaním.|Pozrite si tiež stránky nájdené vašim vyhľadávaním.}}",
        "searchprofile-articles": "Stránky s obsahom",
-       "searchprofile-project": "Stránky pomocníka a projektu",
        "searchprofile-images": "Multimédiá",
        "searchprofile-everything": "Všetky",
        "searchprofile-advanced": "Pokročilé",
        "searchprofile-articles-tooltip": "Hľadať v $1",
-       "searchprofile-project-tooltip": "Hľadať v $1",
        "searchprofile-images-tooltip": "Hľadať súbory",
        "searchprofile-everything-tooltip": "Hľadať v celom obsahu (vrátane diskusných stránok)",
        "searchprofile-advanced-tooltip": "Hľadať vo vymenovaných menných priestoroch",
        "search-interwiki-default": "$1 výsledkov:",
        "search-interwiki-more": "(viac)",
        "search-relatedarticle": "Súvisiace",
-       "searcheverything-enable": "Vyhľadať vo všetkých menných priestoroch",
        "searchrelated": "súvisiace",
        "searchall": "všetko",
        "showingresults": "Nižšie {{PLURAL:$1|je zobrazený jeden výsledok|sú zobrazené '''1''' výsledky|je zobrazených '''$1''' výsledkov}}, počnúc od  #<b>$2</b>.",
        "allowemail": "Povoliť prijímanie e-mailov od iných používateľov",
        "prefs-searchoptions": "Hľadanie",
        "prefs-namespaces": "Menné priestory",
-       "defaultns": "Inak vyhľadávať v týchto menných priestoroch:",
        "default": "predvolený",
        "prefs-files": "Súbory",
        "prefs-custom-css": "Vlastný CSS",
        "recentchanges-label-unpatrolled": "Táto úprava zatiaľ nebola strážená",
        "recentchanges-label-plusminus": "Veľkosť stránky sa zmenila o toľkoto bajtov",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "(pozri tiež [[Special:NewPages|zoznam nových stránok]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (pozri tiež [[Special:NewPages|zoznam nových stránok]])",
        "rcnotefrom": "Nižšie sú zobrazené úpravy od <strong>$2</strong> (do <strong>$1</strong>).",
        "rclistfrom": "Zobraziť nové úpravy počnúc od $3 $2",
        "rcshowhideminor": "$1 drobné úpravy",
        "tooltip-preferences-save": "Uložiť nastavenia",
        "tooltip-summary": "Zadajte krátke zhrnutie",
        "common.css": "/* Tu umiestnené CSS bude ovplyvňovať všetky štýly */",
-       "cologneblue.css": "/* Tu umiestnené CSS bude ovplyvňovať používateľov štýlu Kolínska modrá */",
        "monobook.css": "/* Tu umiestnené CSS bude ovplyvňovať používateľov štýlu Monobook */",
-       "modern.css": "/* Tu umiestnené CSS bude ovplyvňovať používateľov štýlu Moderný */",
        "vector.css": "/* Tu umiestnené CSS bude ovplyvňovať používateľov štýlu Vector */",
        "print.css": "/* Tu umiestnené CSS bude ovplyvňovať tlačový výstup */",
        "noscript.css": "/* Tu umiestnené CSS bude ovplyvňovať používateľov s vypnutým JavaScriptom */",
        "group-sysop.css": "/* Tu umiestnené CSS bude ovplyvňovať iba správcov */",
        "group-bureaucrat.css": "/* Tu umiestnené CSS bude ovplyvňovať iba byrokratov */",
        "common.js": "/* Tu uvedený JavaScript sa nahrá všetkým používateľom pri každom nahraní stránky. */",
-       "cologneblue.js": "/* Tu sa nachádzajúci JavaScript sa načíta používateľom vzhľadu Kolínska modrá */",
        "monobook.js": "/* Tu sa nachádzajúci JavaScript sa načíta používateľom vzhľadu Monobook */",
-       "modern.js": "/* Tu sa nachádzajúci JavaScript sa načíta používateľom vzhľadu Moderný */",
        "vector.js": "/* Tu sa nachádzajúci JavaScript sa načíta používateľom vzhľadu Vector */",
        "group-autoconfirmed.js": "/* Tu sa nachádzajúci JavaScript sa načíta používateľom s potvrdenou emailovou adresou */",
        "group-bot.js": "/* Tu sa nachádzajúci JavaScript sa načíta len robotom */",
        "pageinfo-category-pages": "Počet stránok",
        "pageinfo-category-subcats": "Počet podkategórií",
        "pageinfo-category-files": "Počet súborov",
-       "skinname-cologneblue": "Kolínska modrá",
        "skinname-monobook": "MonoBook",
-       "skinname-modern": "Moderný",
        "skinname-vector": "Vector",
        "markaspatrolleddiff": "Označiť ako stráženú",
        "markaspatrolledtext": "Označiť túto stránku ako stráženú",
index 32a18a5..6d3b739 100644 (file)
        "recentchanges-label-unpatrolled": "Urejanje še ni bilo pregledano",
        "recentchanges-label-plusminus": "uporabnik je velikost strani spremenil za tolikšno število bajtov",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "(glej tudi [[Special:NewPages|seznam novih strani]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (glej tudi [[Special:NewPages|seznam novih strani]])",
        "rcnotefrom": "Navedene so spremembe od <strong>$2</strong> dalje (prikazujem jih do <strong>$1</strong>).",
        "rclistfrom": "Prikaži spremembe od $3 $2 naprej",
        "rcshowhideminor": "$1 manjša urejanja",
        "wantedtemplates": "Želene predloge",
        "mostlinked": "Strani, na katere se največ povezuje",
        "mostlinkedcategories": "Kategorije z največ elementi",
-       "mostlinkedtemplates": "Najbolj uporabljane predloge",
+       "mostlinkedtemplates": "Največkrat vključene strani",
        "mostcategories": "Članki z največ kategorijami",
        "mostimages": "Najbolj uporabljane datoteke",
        "mostinterwikis": "Strani z največ medjezikovnimi povezavami",
index dc27bbc..0dba998 100644 (file)
        "recentchanges-label-unpatrolled": "bedelkaan hadda wali lama waardiyeen",
        "recentchanges-label-plusminus": "Qaadka bogga wuxuu ku bedelmay tirada halbeega baytka",
        "recentchanges-legend-heading": "'''Sharaxaad:'''",
-       "recentchanges-legend-newpage": "(sidoo kale eeg [[Special:NewPages|liiska bogagga cusub]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (sidoo kale eeg [[Special:NewPages|liiska bogagga cusub]])",
        "rcnotefrom": "Hoostaan waa isbedaladii dhacay  '''$2''' (waxaad arkoosaa ilaa '''$1''' ).",
        "rclistfrom": "Itusi isbedelada cusub oo ka bilaabaneyso $3 $2",
        "rcshowhideminor": "$1 bedelada yar",
index e2e4d0c..8ea3efc 100644 (file)
@@ -30,7 +30,7 @@
        "tog-underline": "Подвлачење веза:",
        "tog-hideminor": "Сакриј мање измене у списку скорашњих измена",
        "tog-hidepatrolled": "Сакриј патролиране измене у списку скорашњих измена",
-       "tog-newpageshidepatrolled": "Сакриј прегледане странице са списка нових страница",
+       "tog-newpageshidepatrolled": "Сакриј патролиране странице са списка нових страница",
        "tog-extendwatchlist": "Прошири списак надгледања за приказ свих измена, не само скорашњих",
        "tog-usenewrc": "Промене у групи по страници у списку скорашњих измена и надгледаних страница",
        "tog-numberheadings": "Аутоматски нумериши поднаслове",
        "changeemail-submit": "Промени",
        "changeemail-cancel": "Откажи",
        "changeemail-throttled": "Превише пута сте покушали да се пријавите.\nМолимо вас да сачекате $1 пре него што покушате поново.",
-       "resettokens": "Ресетује токене",
+       "resettokens": "Ресетовање токена",
        "resettokens-no-tokens": "Нема токена за ресетовање.",
-       "resettokens-legend": "Ресетује токене",
+       "resettokens-legend": "Ресетовање токена",
        "resettokens-tokens": "Токени:",
        "resettokens-token-label": "$1 (тренутна вредност: $2)",
        "resettokens-watchlist-token": "Токен за веб довод (Atom/RSS) вашег [[Special:Watchlist|списка надгледања]]",
        "link_sample": "Наслов везе",
        "link_tip": "Унутрашња веза",
        "extlink_sample": "http://www.primer.com наслов везе",
-       "extlink_tip": "Спољна веза (с предметком ''http://'')",
+       "extlink_tip": "Спољна веза (с предметком http://)",
        "headline_sample": "Наслов",
        "headline_tip": "Поднаслов",
        "nowiki_sample": "Убаците необликован текст овде",
        "recentchanges-label-unpatrolled": "Ова измена још није патролирана",
        "recentchanges-label-plusminus": "Промена величине странице у бајтовима",
        "recentchanges-legend-heading": "'''Легенда:'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|списак нових страница]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|списак нових страница]])",
        "rcnotefrom": "Испод су измене од <strong>$2</strong> (до <strong>$1</strong> измена).",
        "rclistfrom": "Прикажи нове измене почев од $2 $3",
        "rcshowhideminor": "$1 мање измене",
        "mostlinked": "Странице с највише веза",
        "mostlinkedcategories": "Чланци с највише категорија",
        "mostlinkedtemplates": "Шаблони с највише веза",
-       "mostcategories": "ЧланÑ\86и с највише категорија",
+       "mostcategories": "СÑ\82Ñ\80аниÑ\86е с највише категорија",
        "mostimages": "Датотеке с највише веза",
        "mostinterwikis": "Странице са највише међувикија",
        "mostrevisions": "Странице с највише измена",
index c27465a..36a99ac 100644 (file)
@@ -22,7 +22,7 @@
        "tog-underline": "Podvlačenje veza:",
        "tog-hideminor": "Sakrij manje izmene u spisku skorašnjih izmena",
        "tog-hidepatrolled": "Sakrij patrolirane izmene u spisku skorašnjih izmena",
-       "tog-newpageshidepatrolled": "Sakrij pregledane stranice sa spiska novih stranica",
+       "tog-newpageshidepatrolled": "Sakrij patrolirane stranice sa spiska novih stranica",
        "tog-extendwatchlist": "Proširi spisak nadgledanja za prikaz svih izmena, ne samo skorašnjih",
        "tog-usenewrc": "Promene u grupi po stranici u spisku skorašnjih izmena i nadgledanih stranica",
        "tog-numberheadings": "Automatski numeriši podnaslove",
        "changeemail-submit": "Promeni",
        "changeemail-cancel": "Otkaži",
        "changeemail-throttled": "Previše puta ste pokušali da se prijavite.\nMolimo vas da sačekate $1 pre nego što pokušate ponovo.",
-       "resettokens": "Resetuje tokene",
+       "resettokens": "Resetovanje tokena",
        "resettokens-no-tokens": "Nema tokena za resetovanje.",
-       "resettokens-legend": "Resetuje tokene",
+       "resettokens-legend": "Resetovanje tokena",
        "resettokens-tokens": "Tokeni:",
        "resettokens-token-label": "$1 (trenutna vrednost: $2)",
        "resettokens-watchlist-token": "Token za veb dovod (Atom/RSS) vašeg [[Special:Watchlist|spiska nadgledanja]]",
        "link_sample": "Naslov veze",
        "link_tip": "Unutrašnja veza",
        "extlink_sample": "http://www.primer.com naslov veze",
-       "extlink_tip": "Spoljna veza (s predmetkom ''http://'')",
+       "extlink_tip": "Spoljna veza (s predmetkom http://)",
        "headline_sample": "Naslov",
        "headline_tip": "Podnaslov",
        "nowiki_sample": "Ubacite neoblikovan tekst ovde",
        "recentchanges-label-unpatrolled": "Ova izmena još nije patrolirana",
        "recentchanges-label-plusminus": "Promena veličine stranice u bajtovima",
        "recentchanges-legend-heading": "'''Legenda:'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|spisak novih stranica]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|spisak novih stranica]])",
        "rcnotefrom": "Ispod su izmene od <b>$2</b> (do <b>$1</b> izmena).",
        "rclistfrom": "Prikaži nove izmene počev od $2 $3",
        "rcshowhideminor": "$1 manje izmene",
        "mostlinked": "Stranice s najviše veza",
        "mostlinkedcategories": "Članci s najviše kategorija",
        "mostlinkedtemplates": "Šabloni s najviše veza",
-       "mostcategories": "Članci s najviše kategorija",
+       "mostcategories": "Stranice s najviše kategorija",
        "mostimages": "Datoteke s najviše veza",
        "mostinterwikis": "Stranice sa najviše međuvikija",
        "mostrevisions": "Stranice s najviše izmena",
index e635a45..027eea3 100644 (file)
        "recentchanges-label-unpatrolled": "Denna redigering har inte blivit patrullerad ännu",
        "recentchanges-label-plusminus": "Sidans storlek ändrades med detta antal byte",
        "recentchanges-legend-heading": "'''Teckenförklaring:'''",
-       "recentchanges-legend-newpage": "(se även [[Special:NewPages|listan över nya sidor]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (se även [[Special:NewPages|listan över nya sidor]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Nedan visas ändringar sedan <strong>$2</strong> (upp till <strong>$1</strong> ändringar visas).",
        "rclistfrom": "Visa ändringar från och med $3 $2",
        "ntransclusions": "använd på $1 {{PLURAL:$1|sida|sidor}}",
        "specialpage-empty": "Den här sidan är tom.",
        "lonelypages": "Föräldralösa sidor",
-       "lonelypagestext": "Följande sidor länkas inte till från någon annan sida på {{SITENAME}}.",
+       "lonelypagestext": "Följande sidor länkas inte till eller inkluderas på någon annan sida på {{SITENAME}}.",
        "uncategorizedpages": "Ej kategoriserade sidor",
        "uncategorizedcategories": "Ej kategoriserade kategorier",
        "uncategorizedimages": "Ej kategoriserade filer",
        "wantedtemplates": "Önskade mallar",
        "mostlinked": "Sidor med flest länkar till sig",
        "mostlinkedcategories": "Kategorier med flest länkar till sig",
-       "mostlinkedtemplates": "Mallar med flest länkar till sig",
+       "mostlinkedtemplates": "Mest inkluderade sidor",
        "mostcategories": "Sidor med flest kategorier",
        "mostimages": "Filer med flest länkar till sig",
        "mostinterwikis": "Sidor med flest interwikis",
        "whatlinkshere-next": "{{PLURAL:$1|nästa|nästa $1}}",
        "whatlinkshere-links": "← länkar",
        "whatlinkshere-hideredirs": "$1 omdirigeringar",
-       "whatlinkshere-hidetrans": "$1 mallinkluderingar",
+       "whatlinkshere-hidetrans": "$1 inkluderingar",
        "whatlinkshere-hidelinks": "$1 länkar",
        "whatlinkshere-hideimages": "$1 fillänkar",
        "whatlinkshere-filters": "Filter",
        "pageinfo-magic-words": "{{PLURAL:$1|Magiskt|Magiska}} ord ($1)",
        "pageinfo-hidden-categories": "{{PLURAL:$1|Dold kategori|Dolda kategorier}} ($1)",
        "pageinfo-templates": "{{PLURAL:$1|Inkluderad mall|Inkluderade mallar}} ($1)",
-       "pageinfo-transclusions": "{{PLURAL:$1|Sida|Sidor}} mallinkluderas på ($1)",
+       "pageinfo-transclusions": "{{PLURAL:$1|Sida|Sidor}} inkluderas på ($1)",
        "pageinfo-toolboxlink": "Sidinformation",
        "pageinfo-redirectsto": "Omdirigerar till",
        "pageinfo-redirectsto-info": "info",
        "version-hooks": "Hakar",
        "version-parser-extensiontags": "Tilläggstaggar",
        "version-parser-function-hooks": "Parserfunktioner",
-       "version-hook-name": "Namn",
+       "version-hook-name": "Namn på hook",
        "version-hook-subscribedby": "Används av",
        "version-version": "(Version $1)",
        "version-license": "MediaWiki-licens",
index f8becd3..a255932 100644 (file)
        "recentchanges-label-unpatrolled": "ఈ దిద్దుబాటు మీద నిఘా లేదు",
        "recentchanges-label-plusminus": "ఈ పేజి పరిమాణంలో  జరిగిన మార్పుల  బైట్ల సంఖ్య",
        "recentchanges-legend-heading": "'''సూచిక :'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|కొత్త పేజీల జాబితా]]ను కూడా చూడండి)",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|కొత్త పేజీల జాబితా]]ను కూడా చూడండి)",
        "rcnotefrom": "<strong>$2</strong> నుండి జరిగిన మార్పులు (<strong>$1</strong> వరకు) కింద చూపబడ్డాయి.",
        "rclistfrom": "$3, $2 నుండి జరిగిన మార్పులను చూపించు",
        "rcshowhideminor": "చిన్న మార్పులను $1",
index 189bc5c..965baac 100644 (file)
        "vector-view-view": "อ่าน",
        "vector-view-viewsource": "ดูโค้ด",
        "actions": "ปฏิบัติการ",
+       "vector-more-actions": "เพิ่มเติม",
        "namespaces": "เนมสเปซ",
        "variants": "สิ่งที่แตกต่าง",
        "navigation-heading": "รายการเลือกป้ายบอกทาง",
        "recentchanges-label-unpatrolled": "การแก้ไขนี้ยังไม่ได้ตรวจสอบ",
        "recentchanges-label-plusminus": "ขนาดของหน้าเปลี่ยนไปด้วยจำนวนไบต์เท่านี้",
        "recentchanges-legend-heading": "'''คำอธิบายสัญลักษณ์:'''",
-       "recentchanges-legend-newpage": "(ดูเพิ่มที่[[Special:NewPages|รายชื่อหน้าใหม่]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ดูเพิ่มที่[[Special:NewPages|รายชื่อหน้าใหม่]])",
        "rcnotefrom": "ด้านล่างเป็นการเปลี่ยนแปลงตั้งแต่ <strong>$2</strong> (มากสุด <strong>$1</strong> รายการ)",
        "rclistfrom": "แสดงการเปลี่ยนแปลงใหม่เริ่มตั้งแต่ $3 $2",
        "rcshowhideminor": "$1การแก้ไขเล็กน้อย",
index 8df60af..db73b4d 100644 (file)
@@ -58,7 +58,8 @@
                        "Vito Genovese",
                        "Vugar 1981",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Arystanbek"
                ]
        },
        "tog-underline": "Bağlantıların altını çiz:",
        "vector-view-view": "Oku",
        "vector-view-viewsource": "Kaynağı gör",
        "actions": "Eylemler",
+       "vector-more-actions": "Diğer",
        "namespaces": "Ad alanları",
        "variants": "Türevler",
        "navigation-heading": "Gezinti menüsü",
        "searchmenu-exists": "'''Bu vikide \"[[:$1]]\" adında bir sayfa mevcut'''",
        "searchmenu-new": "<strong>Bu vikide \"[[:$1]]\" sayfasını oluştur!</strong> {{PLURAL:$2|0=|Ayrıca aramınızda bulunan sayfayı görün.|Ayrıca bulunan arama sonuçlarını görün.}}",
        "searchprofile-articles": "İçerik sayfaları",
-       "searchprofile-project": "Yardım ve proje sayfaları",
        "searchprofile-images": "Çokluortam",
        "searchprofile-everything": "Her şey",
        "searchprofile-advanced": "Gelişmiş",
        "searchprofile-articles-tooltip": "$1 içinde ara",
-       "searchprofile-project-tooltip": "$1 içinde ara",
        "searchprofile-images-tooltip": "Dosya ara",
        "searchprofile-everything-tooltip": "Tüm içerikte ara (tartışma sayfaları dahil)",
        "searchprofile-advanced-tooltip": "Özel ad alanlarında ara",
        "search-interwiki-default": "$1 sonuçlar:",
        "search-interwiki-more": "(daha çok)",
        "search-relatedarticle": "ilgili",
-       "searcheverything-enable": "Tüm ad alanlarında ara",
        "searchrelated": "ilgili",
        "searchall": "hepsi",
        "showingresults": "$2. sonuçtan başlayarak {{PLURAL:$1|'''1''' sonuç |'''$1''' sonuç }} aşağıdadır:",
        "allowemail": "Diğer kullanıcılar bana e-posta atabilsin",
        "prefs-searchoptions": "Arama",
        "prefs-namespaces": "İsim alanları",
-       "defaultns": "Aksi halde bu ad alanlarında ara:",
        "default": "varsayılan",
        "prefs-files": "Dosyalar",
        "prefs-custom-css": "Özel CSS",
        "recentchanges-label-unpatrolled": "Bu değişiklik henüz gözlenmemiş",
        "recentchanges-label-plusminus": "Sayfa boyutundaki değişikliğin bayt bazında değeri",
        "recentchanges-legend-heading": "'''Gösterge:'''",
-       "recentchanges-legend-newpage": "(ayrıca bakınız [[Special:NewPages|yeni sayfalar listesi]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ayrıca bakınız [[Special:NewPages|yeni sayfalar listesi]])",
        "rcnotefrom": "'''$2''' tarihinden itibaren yapılan değişiklikler aşağıdadır (en fazla <b>$1</b> tanesi gösterilmektedir).",
        "rclistfrom": "$3 $2 tarihinden itibaren yeni değişiklikleri göster",
        "rcshowhideminor": "Küçük değişiklikleri $1",
        "rcshowhideminor-show": "Göster",
-       "rcshowhideminor-hide": "Gizle",
+       "rcshowhideminor-hide": "gizle",
        "rcshowhidebots": "botları $1",
-       "rcshowhidebots-show": "Göster",
-       "rcshowhidebots-hide": "Gizle",
+       "rcshowhidebots-show": "göster",
+       "rcshowhidebots-hide": "gizle",
        "rcshowhideliu": "Kayıtlı kullanıcıları $1",
        "rcshowhideliu-show": "göster",
        "rcshowhideliu-hide": "gizle",
        "rcshowhideanons": "Anonim kullanıcıları $1",
        "rcshowhideanons-show": "Göster",
-       "rcshowhideanons-hide": "Gizle",
+       "rcshowhideanons-hide": "gizle",
        "rcshowhidepatr": "İzlenmiş değişiklikleri $1",
        "rcshowhidepatr-show": "Göster",
        "rcshowhidepatr-hide": "Gizle",
        "rcshowhidemine": "Değişikliklerimi $1",
        "rcshowhidemine-show": "Göster",
-       "rcshowhidemine-hide": "Gizle",
+       "rcshowhidemine-hide": "gizle",
        "rclinks": "Son $2 günde yapılan son $1 değişikliği göster;<br /> $3",
        "diff": "fark",
        "hist": "geçmiş",
        "pageinfo-category-pages": "Sayfa sayısı",
        "pageinfo-category-subcats": "Alt kategori sayısı",
        "pageinfo-category-files": "Dosya sayısı",
-       "skinname-modern": "Modern",
        "markaspatrolleddiff": "Kontrol edilmiş olarak işaretle",
        "markaspatrolledtext": "Kontrol edilmiş olarak işaretle",
        "markedaspatrolled": "Kontrol edildi",
index 3812afb..7f173ef 100644 (file)
        "searchmenu-exists": "'''Бу вики-проекта «[[:$1]]» исемле бит бар инде'''",
        "searchmenu-new": "'''«[[:$1]]»  исемле яңа бит ясау'''",
        "searchprofile-articles": "Төп битләр",
-       "searchprofile-project": "Ярдәм һәм проектлар бите",
        "searchprofile-images": "Мультимедиа",
        "searchprofile-everything": "Һәркайда",
        "searchprofile-advanced": "Киңәйтелгән",
        "searchprofile-articles-tooltip": "$1 дә эзләү",
-       "searchprofile-project-tooltip": "$1 дә эзләү",
        "searchprofile-images-tooltip": "Файллар эзләү",
        "searchprofile-everything-tooltip": "Барлык битләрдә дә эзләү",
        "searchprofile-advanced-tooltip": "Бирелгән исемнәр мәйданында эзләү",
        "search-interwiki-default": "$1 нәтиҗә:",
        "search-interwiki-more": "(тагын)",
        "search-relatedarticle": "Бәйләнгән",
-       "searcheverything-enable": "Барлык исемнәр мәйданында эзләү",
        "searchrelated": "бәйләнгән",
        "searchall": "барлык",
        "showingresults": "Аста № '''$2''' {{PLURAL:$1|башлап}} '''$1''' {{PLURAL:$1|результат}} күрсәтелгән.",
        "allowemail": "Башка кулланучылардан хатлар алырга рөхсәт ителсен",
        "prefs-searchoptions": "Эзләү көйләнмәләре",
        "prefs-namespaces": "Исемнәр мәйданы",
-       "defaultns": "Алайса менә бу исемнәр мәйданында эзләү",
        "default": "килешү буенча",
        "prefs-files": "Файллар",
        "prefs-custom-css": "Үземнең CSS",
        "prefs-emailconfirm-label": "E-mail раслау",
        "youremail": "Электрон почта:",
        "username": "Кулланучы исеме:",
-       "uid": "Кулланучының идентификаторы:",
        "prefs-memberingroups": "Төркем {{PLURAL:$1|әгъзасы}}:",
        "prefs-memberingroups-type": "$1",
        "prefs-registration": "Теркәлү вакыты:",
        "recentchanges-label-bot": "Бу үзгәртү бот белән эшләнгән",
        "recentchanges-label-unpatrolled": "Үзгәртүне әлегә тикшермәгәннәр",
        "recentchanges-label-plusminus": "Битнең зурлыгы шуның кадәрле байтка үзгәрде",
-       "recentchanges-legend-newpage": "([[Special:NewPages|яңа бит]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|яңа бит]])",
        "rcnotefrom": "Астарак '''$2''' башлап ('''$1''' кадәр) үзгәртүләр күрсәтелгән.",
        "rclistfrom": "$3 $2 башлап яңа үзгәртүләрне күрсәт",
        "rcshowhideminor": "кече үзгәртүләрне $1",
        "alllogstext": "{{SITENAME}} сәхифәсенең гомуми көндәлекләре исемлеге.\nСез нәтиҗәләрне көндәлек төре, кулланучы исеме (хәреф зурлыгын истә тотыгыз) яки куззаллаган бит (шулай ук хәреф зурлыгын истә тотыгыз) буенча тәртипкә салырга мөмкин.",
        "logempty": "Кирәкле язмалар көндәлектә юк.",
        "allpages": "Барлык битләр",
-       "alphaindexline": "$1 битеннән $2 битенә кадәр",
        "nextpage": "Алдагы бит ($1)",
        "prevpage": "Алдагы бит ($1)",
        "allpagesfrom": "Моңа башланучы битләрне чыгару:",
        "creditspage": "Рәхмәтләр",
        "spamprotectiontitle": "Спам фильтры",
        "pageinfo-toolboxlink": "Бит турында мәгълүмат",
-       "skinname-cologneblue": "Зәңгәр сагыш",
        "skinname-monobook": "Китап",
-       "skinname-modern": "Замана",
        "skinname-vector": "Сызымлы",
        "markaspatrolledtext": "Бу мәкаләне тикшерелгән дип тамгалау",
        "markedaspatrolled": "Тикшерелгән дип тамгаланды",
index 332c006..598df5f 100644 (file)
        "databaseerror": "Медээ шыгжамыры алдаг",
        "laggedslavemode": "'''Оваарымчалыг:''' Бо арында чаартыышкыннар чок болуп болур.",
        "readonly": "шоочалаарынга медээ шыгжамыры",
-       "missing-article": "Ð\94аннÑ\8bйлаÑ\80 Ð±Ð°Ð·Ð°Ð·Ñ\8bнда Ñ\82Ñ\8bваÑ\80 Ñ\83жÑ\83Ñ\80лÑ\83г Â«$1» $2 Ð´ÐµÐ¿ Ð°Ñ\80Ñ\8bннÑ\8bÒ£ Ð½ÐµÐ³ÐµÑ\82Ñ\82инип Ñ\82Ñ\83Ñ\80аÑ\80 Ñ\81өзүглели Ñ\82Ñ\8bвÑ\8bлбаан.\n\nÐ\9dÑ\83Ñ\80гÑ\83лайÑ\8bнда Ñ\8bндÑ\8bг Ð±Ð°Ð¹Ð´Ð°Ð» Ñ\8dÑ\80ги Ñ\88өлүлге-биле казыттынган арынның өскерилге төөгүзүнче дамчып оралдажырга тыптыр.\n\nА шынында ындыг эвес болза, Силер программа хандырылгазының алдаанга душканыңар хөңнү.\n\nОоң дугайында кайы-бир [[Special:ListUsers/sysop|удуртукчуларга]], мүн URL-ин айытпышаан, дамчыдыңарам.",
+       "missing-article": "Ð\94аннÑ\8bйлаÑ\80 Ð±Ð°Ð·Ð°Ð·Ñ\8bнда Ñ\82Ñ\8bваÑ\80 Ñ\83жÑ\83Ñ\80лÑ\83г Â«$1» $2 Ð´ÐµÐ¿ Ð°Ñ\80Ñ\8bннÑ\8bÒ£ Ð½ÐµÐ³ÐµÑ\82Ñ\82инип Ñ\82Ñ\83Ñ\80аÑ\80 Ñ\81өзүглели Ñ\82Ñ\8bвÑ\8bлбаан.\n\nÐ\9dÑ\83Ñ\80гÑ\83лайÑ\8bнда Ñ\8bндÑ\8bг Ð±Ð°Ð¹Ð´Ð°Ð» Ñ\8dÑ\80ги Ñ\88өлүг-биле казыттынган арынның өскерилге төөгүзүнче дамчып оралдажырга тыптыр.\n\nА шынында ындыг эвес болза, Силер программа хандырылгазының алдаанга душканыңар хөңнү.\n\nОоң дугайында кайы-бир [[Special:ListUsers/sysop|удуртукчуларга]], мүн URL-ин айытпышаан, дамчыдыңарам.",
        "missingarticle-rev": "(үндүрериниң саны: $1)",
        "missingarticle-diff": "(Ылгал: $1, $2)",
        "internalerror": "Иштики алдаг",
        "viewsource": "Дөзүн көөрү",
        "actionthrottled": "Шеглээн дүрген",
        "exception-nologin": "Кирбес",
+       "welcomeuser": "Кирип моорлаңар, %s!",
        "yourname": "Aжыглакчының ады",
        "yourpassword": "Чажыт сөс",
        "yourpasswordagain": "Чажыт сөзүңерни катап бижиңер:",
        "searchmenu-exists": "'''Бо викиде \"[[:$1]]\" деп арын бар.'''",
        "searchmenu-new": "'''Бо викиде «[[:$1]]» арынны чогаадыры'''",
        "searchprofile-articles": "үндезин арыннар",
-       "searchprofile-project": "Төлевилел биле дуза арыннары",
        "searchprofile-images": "Мультимедиа",
        "searchprofile-everything": "Бүгүде",
        "searchprofile-advanced": "Калбайтыр",
        "searchprofile-articles-tooltip": "$1 иштинден дилээри",
-       "searchprofile-project-tooltip": "$1 иштинде дилээри",
        "searchprofile-images-tooltip": "Файлдар дилээри",
        "searchprofile-everything-tooltip": "Шупту арыннардан дилээри (сумележиишкиннерден база)",
        "searchprofile-advanced-tooltip": "Айыткан аттар делгемнеринден дилээри",
        "search-section": "(«$1» деп салбыр)",
        "search-suggest": "Силер «$1» деп бодадыңар чадавас",
        "search-interwiki-more": "(артык)",
-       "searcheverything-enable": "Шупту аттар делгемнеринден дилээри",
        "searchrelated": "холбаалыг",
        "searchall": "шупту",
        "showingresultsheader": "«'''$4'''» дилээниниң {{PLURAL:$5|1='''$3''' одуругдан '''$1''' түңнели|'''$3''' одуругдан '''$1—$2''' түңнелдери}}",
        "timezoneregion-asia": "Азия",
        "timezoneregion-australia": "Австралия",
        "timezoneregion-europe": "Европа",
+       "prefs-searchoptions": "Дилээшкин",
        "prefs-namespaces": "Аттар делгемнери",
        "default": "ниити",
        "prefs-files": "файлдар",
        "prefs-custom-js": "Бодуңар JavaScript",
        "youremail": "Э-чагааңар:",
        "username": "Aжыглакчының ады:",
-       "uid": "Ажыглакчынын саны (ID):",
        "prefs-memberingroups": "Силерниң {{PLURAL:$1|1=бөлүү|бөлүктери}}:",
        "prefs-registration": "Кажан даңзылатканыл:",
        "yourrealname": "Шын адыңар:",
        "speciallogtitlelabel": "Target (aтка азы ажыглакчыга):",
        "log": "Журналдар",
        "allpages": "Шупту арыннар",
-       "alphaindexline": "«$1» деп арындан «$2» деп арында",
        "nextpage": "Дараазында арын ($1)",
        "prevpage": "Эрткен арын ($1)",
        "allarticles": "Шупту арыннар",
        "block": "Ажыглакчыны кызыгаарлаары",
        "blockip": "Ажыглакчыны кызыгаарлаары",
        "blockip-legend": "Ажыглакчыны кызыгаарлаары",
-       "ipadressorusername": "ИП-адрес азы aжыглaкчының aды",
+       "ipaddressorusername": "ИП-адрес азы aжыглaкчының aды",
        "ipbreason": "Чылдагаан:",
        "ipbsubmit": "Бо ажыглакчыны кызыгаарлаары",
        "ipbother": "Өске шак:",
        "tooltip-undo": "Киирген эдигни казааш, ойталалдың чылдагаанын айтыр аргалыг мурнай көргүзүүн көргүзер.",
        "tooltip-summary": "Кысказы-биле бижиңер",
        "anonymous": "{{grammar:genitive|{{SITENAME}}}} адыжок {{PLURAL:$1|киржикчизи}}",
-       "skinname-cologneblue": "Cologne Blue",
+       "pageinfo-toolboxlink": "Арын дугайында медээлел",
        "skinname-monobook": "МоноБук",
-       "skinname-modern": "Модерн",
        "skinname-vector": "Вектор",
        "filedelete-missing": "«$1» деп файл чок, ынчангаш ол ап калдынмас.",
        "previousdiff": "← Артык эрги үндүрери",
        "show-big-image": "Улуг чурумал",
        "show-big-image-size": "$1 × $2 пиксел",
        "newimages-legend": "Шүүрү",
-       "showhidebots": "(роботтарны $1)",
        "noimages": "Nothing to see.",
        "ilsubmit": "Дилээр",
        "seconds": "{{PLURAL:$1|$1 секунда|$1 секунда}}",
        "feedback-subject": "Кол сөс:",
        "feedback-message": "Чагаа:",
        "feedback-cancel": "Соксаары",
+       "searchsuggest-search": "Дилээшкин",
        "duration-seconds": "$1 {{PLURAL:$1|секунда|секунда}}",
        "duration-minutes": "$1 {{PLURAL:$1|минут|минут}}",
        "duration-hours": "$1 {{PLURAL:$1|шак|шак}}",
index 2e329dc..22a8abb 100644 (file)
        "searchmenu-exists": "'''بۇ wiki دا  \"[[:$1]]\" ئاتلىق بەت بار '''",
        "searchmenu-new": "'''بۇ wiki دا  \"[[:$1]]\" ئاتلىق بەت قۇر!'''",
        "searchprofile-articles": "مەزمۇن بېتى",
-       "searchprofile-project": "ياردەم ۋە قۇرۇلۇش بەتلەر",
        "searchprofile-images": "كۆپ ۋاسىتە",
        "searchprofile-everything": "ھەممە بەت",
        "searchprofile-advanced": "ئالىي",
        "searchprofile-articles-tooltip": "$1 دىن ئىزدە",
-       "searchprofile-project-tooltip": "$1 دىن ئىزدە",
        "searchprofile-images-tooltip": "ھۆججەت ئىزدە",
        "searchprofile-everything-tooltip": "ھەممە مەزمۇننى ئىزدە (مۇنازىرە بەتمۇ ئىچىدە)",
        "searchprofile-advanced-tooltip": "ئادەتلەنگەن ئات بوشلۇقىدىن ئىزدە",
        "search-interwiki-default": "$1 نەتىجە:",
        "search-interwiki-more": "(تېخىمۇ كۆپ)",
        "search-relatedarticle": "ئالاقىدار",
-       "searcheverything-enable": "ھەممە ئات بوشلۇقىدىن ئىزدە",
        "searchrelated": "ئالاقىدار",
        "searchall": "ھەممىسى",
        "showingresults": "تۆۋەندە '''$2''' - نەتىجىدىن باشلانغان {{PLURAL:$1|'''1''' نەتىجە|'''$1''' نەتىجە}} كۆرسىتىدۇ:",
        "allowemail": "باشقا ئىشلەتكۈچىلەر ئېلخەت ئەۋەتىشنى قوزغات",
        "prefs-searchoptions": "ئىزدەش",
        "prefs-namespaces": "ئات بوشلۇقى",
-       "defaultns": "بولمىسا بۇ ئات بوشلۇقلىرىدىن ئىزدە:",
        "default": "كۆڭۈلدىكى",
        "prefs-files": "ھۆججەتلەر",
        "prefs-custom-css": "ئىختىيارى CSS",
        "prefs-emailconfirm-label": "ئېلخەت جەزملەش:",
        "youremail": "ئېلخەت:",
        "username": "{{GENDER:$1|ئىشلەتكۇچى ئىسمى}}:",
-       "uid": "{{GENDER:$1|ئىشلەتكۇچى}} كىملىك:",
        "prefs-memberingroups": "{{PLURAL:$1|گۇرۇپپا}} دىكى{{GENDER:$2| ئەزا}}:",
        "prefs-memberingroups-type": "$1",
        "prefs-registration": "خەتلەتكەن ۋاقىت:",
        "recentchanges-label-minor": "بۇ ئازراقلا تەھرىرلەش",
        "recentchanges-label-bot": "بۇ تەھرىرنى ماشىنا ئادەم ئېلىپ بارغان",
        "recentchanges-label-unpatrolled": "بۇ تەھرىر تېخى كۆزىتىلمىگەن",
-       "recentchanges-legend-newpage": "(بۇنىڭغىمۇ قاراڭ [[Special:NewPages|يېڭى بەتلەر تىزىملىگى]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (بۇنىڭغىمۇ قاراڭ [[Special:NewPages|يېڭى بەتلەر تىزىملىگى]])",
        "rcnotefrom": "تۆۋەندىكىسى '''$2''' نىڭ ئۆزگەرتىشى (ئەڭ كۆپ بولغاندا '''$1''' كۆرسىتىدۇ )",
        "rclistfrom": "$3 $2 دىن باشلانغان يېڭى ئۆزگەرتىشنى كۆرسەت",
        "rcshowhideminor": "$1 ئازراقلا تەھرىر",
        "log-title-wildcard": "بۇ تېكست بىلەن باشلانغان ماۋزۇنى ئىزدە",
        "showhideselectedlogentries": "تالغان خاتىرىسى كۈرسەت / يوشۇر",
        "allpages": "ھەممە بەت",
-       "alphaindexline": "$1 دىن $2",
        "nextpage": "كەينى بەت ($1)",
        "prevpage": "ئالدىنقى بەت ($1)",
        "allpagesfrom": "باشلانغان بەتنى كۆرسەت:",
        "tooltip-preferences-save": "مايىللىق ساقلا",
        "tooltip-summary": "قىسقىچە ئۈزۈندە كىرگۈزۈڭ",
        "common.css": "/* CSS placed here will be applied to all skins */",
-       "cologneblue.css": "/* CSS placed here will affect users of the Cologne Blue skin */",
        "monobook.css": "/* CSS placed here will affect users of the Monobook skin */",
-       "modern.css": "/* CSS placed here will affect users of the Modern skin */",
        "vector.css": "/* CSS placed here will affect users of the Vector skin */",
        "print.css": "/* CSS placed here will affect the print output */",
        "noscript.css": "/* CSS placed here will affect users with JavaScript disabled */",
        "group-sysop.css": "/* CSS placed here will affect sysops only */",
        "group-bureaucrat.css": "/* CSS placed here will affect bureaucrats only */",
        "common.js": "/* Any JavaScript here will be loaded for all users on every page load. */",
-       "cologneblue.js": "/* Any JavaScript here will be loaded for users using the Cologne Blue skin */",
        "monobook.js": "/* Any JavaScript here will be loaded for users using the MonoBook skin */",
-       "modern.js": "/* Any JavaScript here will be loaded for users using the Modern skin */",
        "vector.js": "/* Any JavaScript here will be loaded for users using the Vector skin */",
        "group-autoconfirmed.js": "/* Any JavaScript here will be loaded for autoconfirmed users only */",
        "group-bot.js": "/* Any JavaScript here will be loaded for bots only */",
        "pageinfo-category-pages": "بەت سانى",
        "pageinfo-category-subcats": "تارماق تۈر سانى",
        "pageinfo-category-files": "ھۆججەت سانى",
-       "skinname-cologneblue": "Cologne Blue",
        "skinname-monobook": "MonoBook",
-       "skinname-modern": "Modern",
        "skinname-vector": "Vector",
        "markaspatrolleddiff": "چارلاش بەلگىسى قوي",
        "markaspatrolledtext": "بۇ بەتكە چارلاش بەلگىسى قوي",
index 710c1e0..c077d79 100644 (file)
@@ -46,7 +46,8 @@
                        "Дар'я Козлова",
                        "Максим Підліснюк",
                        "Тест",
-                       "아라"
+                       "아라",
+                       "Calak"
                ]
        },
        "tog-underline": "Підкреслювати посилання:\nПідкреслювання посилань:",
        "vector-view-view": "Читати",
        "vector-view-viewsource": "Переглянути код",
        "actions": "Дії",
+       "vector-more-actions": "Більше",
        "namespaces": "Простори назв",
        "variants": "Варіанти",
        "navigation-heading": "Навігаційне меню",
        "recentchanges-label-unpatrolled": "Це редагування ще не було відпатрульоване",
        "recentchanges-label-plusminus": "Розмір сторінки змінився на таке число байтів",
        "recentchanges-legend-heading": "'''Легенда:'''",
-       "recentchanges-legend-newpage": "(див. також [[Special:NewPages|список нових сторінок]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (див. також [[Special:NewPages|список нових сторінок]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Нижче відображені редагування з <strong>$2</strong> (до <strong>$1</strong>).",
        "rclistfrom": "Показати редагування починаючи з $3 $2.",
index 1128468..22d26c3 100644 (file)
@@ -18,7 +18,8 @@
                        "سمرقندی",
                        "محبوب عالم",
                        "පසිඳු කාවින්ද",
-                       "아라"
+                       "아라",
+                       "Calak"
                ]
        },
        "tog-underline": "ربط کی خط کشیدگی:",
        "vector-view-view": "مطالعہ",
        "vector-view-viewsource": "مسودہ",
        "actions": "ایکشنز",
+       "vector-more-actions": "زیادہ",
        "namespaces": "جائے نام",
        "variants": "متغیرات",
        "errorpagetitle": "خطاء",
        "edit-gone-missing": "صفحہ تجدید نہیں کیا جاسکتا.\nلگتا ہے یہ حذف ہوچکا ہے.",
        "edit-conflict": "تنازعۂ تدوین.",
        "edit-no-change": "آپ کی تدوین کو نظرانداز کردیا گیا، کیونکہ متن میں کوئی تبدیلی نہیں ہوئی تھی.",
-       "postedit-confirmation": "آپ کی ترمیم محفوظ ہوگئی۔",
+       "postedit-confirmation-saved": "آپ کی ترمیم محفوظ ہوگئی۔",
        "edit-already-exists": "نیا صفحہ تخلیق نہیں کیا جاسکتا.\nیہ پہلے سے موجود ہے.",
        "content-model-text": "سادہ متن",
        "content-model-javascript": "جاوا اسکرپٹ",
        "searchmenu-exists": "'''اِس ویکی پر \"[[:$1]]\" نامی ایک صفحہ موجود ہے'''",
        "searchmenu-new": "'''اِس ویکی پر صفحہ \"[[:$1]]\" تخلیق کیجئے!'''",
        "searchprofile-articles": "مشمولاتی صفحات",
-       "searchprofile-project": "صفحاتِ مدد و منصوبہ",
        "searchprofile-images": "کثیرالوسیط",
        "searchprofile-everything": "سب کچھ",
        "searchprofile-advanced": "پیشرفتہ",
        "searchprofile-articles-tooltip": "$1 میں تلاش",
-       "searchprofile-project-tooltip": "$1 میں تلاش",
        "searchprofile-images-tooltip": "تلاش برائے ملفات",
        "searchprofile-everything-tooltip": " تلاش تمام مشمولات (بشمول تبادلۂ خیال صفحات) میں",
        "searchprofile-advanced-tooltip": "اپنی پسند کے جائے نام میں تلاش",
        "prefs-emailconfirm-label": "برقی پتہ کی تصدیق:",
        "youremail": "٭ برقی خط",
        "username": "اسم صارف",
-       "uid": "صارف نمبر:",
        "prefs-memberingroups": "{{PLURAL:$1|گروہ|گروہوں}} کا رُکن:",
        "prefs-registration": "وقتِ اندراج:",
        "yourrealname": "* اصلی نام",
        "speciallogtitlelabel": "عنوان:",
        "log": "نوشتہ جات",
        "allpages": "تمام صفحات",
-       "alphaindexline": "$1 تا $2",
        "nextpage": "اگلا صفحہ ($1)",
        "prevpage": "پچھلا صفحہ ($1)",
        "allpagesfrom": "مطلوبہ حرف شروع ہونے والے صفحات کی نمائش:",
        "file-nohires": "اس سے بڑی تصمیم دستیاب نہیں۔",
        "show-big-image": "مکمل تصمیم",
        "newimages": "نئی فائلوں کی گیلری",
-       "showhidebots": "($1 بوٹ)",
        "ilsubmit": "تلاش",
        "bydate": "بالحاظ تاریخ",
        "weeks": "{{PLURAL:$1|$1ہفتہ| $1  ہفتے}}",
index 6ae2b30..27aa74a 100644 (file)
@@ -8,7 +8,8 @@
                        "Lyncos",
                        "Nataev",
                        "Sociologist",
-                       "Xexdof"
+                       "Xexdof",
+                       "Arystanbek"
                ]
        },
        "tog-underline": "Havolalarning tagiga chizish:",
        "vector-view-view": "Mutolaa",
        "vector-view-viewsource": "Manbasini koʻrish",
        "actions": "Amallar",
+       "vector-more-actions": "Yana",
        "namespaces": "Nomfazolar",
        "variants": "Variantlar",
        "navigation-heading": "Navigatsiya",
        "searchmenu-exists": "'''Ushbu vikida \"[[:$1]]\" nomli sahifa mavjud.'''",
        "searchmenu-new": "<strong>'''Ushbu vikida \"[[:$1]]\" sahifasini yarating!</strong> {{PLURAL:$2|0=|Shuningdek qidiruvingiz orqali topilgan sahifani qarang.|Shuningdek topilgan qidiruv natijalarini qarang.}}",
        "searchprofile-articles": "Maqolalar",
-       "searchprofile-project": "Yordam va loyiha sahifalari",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Hamma joyda",
        "searchprofile-advanced": "Tanlangan joyda",
        "searchprofile-articles-tooltip": "$1da qidirish",
-       "searchprofile-project-tooltip": "$1da qidirish",
        "searchprofile-images-tooltip": "Fayllarni qidirish",
        "searchprofile-everything-tooltip": "Barcha sahifalardan qidirish (munozara sahifalarinidan ham)",
        "searchprofile-advanced-tooltip": "Belgilangan nomfazolardan qidirish",
        "search-interwiki-default": "$1 natijalar:",
        "search-interwiki-more": "(yana)",
        "search-relatedarticle": "Bog'liq",
-       "searcheverything-enable": "Barcha nomfazolardan qidirish",
        "searchrelated": "bogʻlangan",
        "searchall": "barchasi",
        "showingresults": "Quyida №'''$2'''dan boshlab {{PLURAL:$1|'''bitta''' natija|'''$1''' ta natija}} koʻrsatilgan.",
        "allowemail": "Boshqa foydalanuvchilardan elektron xat olishga ruxsat berish",
        "prefs-searchoptions": "Qidiruv",
        "prefs-namespaces": "Nomfazolar",
-       "defaultns": "Aks holda quyidagi nomfazolardan qidirish:",
        "default": "Sukut boʻyicha",
        "prefs-files": "Fayllar",
        "prefs-custom-css": "Shaxsiy CSS",
        "prefs-emailconfirm-label": "Elektron pochta manzilini tasdiqlash:",
        "youremail": "E-mail:",
        "username": "Foydalanuvchi nomi",
-       "uid": "Identifikator:",
        "prefs-memberingroups": "Qaysi {{PLURAL:$1|guruh|guruhlar}} aʼzosi:",
        "prefs-registration": "Hisob yaratilgan vaqt:",
        "yourrealname": "Haqiqiy ism *:",
        "recentchanges-label-unpatrolled": "Bu tahrir hali tekshirilmagan",
        "recentchanges-label-plusminus": "Sahifa vazni qanchaga oʻzgargani (bayt)",
        "recentchanges-legend-heading": "'''Izoh:'''",
-       "recentchanges-legend-newpage": "([[Special:NewPages|alohida roʻyxat]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|alohida roʻyxat]])",
        "rcnotefrom": "Quyida <strong>$2</strong> dan keyin amalga oshirilgan oʻzgarishlar keltirilgan (oxirgi <strong>$1</strong> tasi)",
        "rclistfrom": "$3, $2 dan keyingi oʻzgarishlarni koʻrsat",
        "rcshowhideminor": "Kichik tahrirlarni $1",
        "logempty": "Talabga mos yozuvlar mavjud emas.",
        "log-title-wildcard": "Shu matndan boshlanuvchi sarlavhalarni izlash",
        "allpages": "Barcha sahifalar",
-       "alphaindexline": "$1 dan $2 ga",
        "nextpage": "Keyingi sahifa ($1)",
        "prevpage": "Avvalgi sahifa ($1)",
        "allpagesfrom": "Quyidagidan boshlanuvchi sahifalarni koʻrsatish:",
        "pageinfo-edits": "Jami tahrirlar soni",
        "pageinfo-toolboxlink": "Sahifa haqida maʼlumot",
        "pageinfo-redirectsto": "Qayta yoʻnaltirish",
-       "skinname-cologneblue": "Kyolncha sogʻinch",
-       "skinname-modern": "Zamonaviy",
        "skinname-vector": "Vektor",
        "patrol-log-page": "Patrullash qaydlari",
        "previousdiff": "← Avvalgi tahrir",
index 23d8abd..e3fcd21 100644 (file)
        "searchmenu-exists": "Su sto sito ghe xe na pagina che se ciama \"[[:$1]]\"",
        "searchmenu-new": "'''Crèa la pagina \"[[:$1]]\" su sta wiki!'''",
        "searchprofile-articles": "Pagine de contenuti",
-       "searchprofile-project": "Pagine de progeto e de ajuto",
        "searchprofile-images": "File",
        "searchprofile-everything": "Tuto quanto",
        "searchprofile-advanced": "Avansada",
        "searchprofile-articles-tooltip": "Serca in $1",
-       "searchprofile-project-tooltip": "Serca in $1",
        "searchprofile-images-tooltip": "Serca file",
        "searchprofile-everything-tooltip": "Serca dapartuto (anca su le pagine de discussion)",
        "searchprofile-advanced-tooltip": "Serca nei namespace personalixài",
        "search-interwiki-default": "Risultati da $1:",
        "search-interwiki-more": "(altro)",
        "search-relatedarticle": "Ligà",
-       "searcheverything-enable": "Serca in tuti quanti i namespace",
        "searchrelated": "ligà",
        "searchall": "tuti",
        "showingresults": "Qua de soto vien mostrà al massimo {{PLURAL:$1|'''1''' risultato|'''$1''' risultati}} a partir dal nùmaro '''$2'''.",
        "allowemail": "Consenti la ricezion de e-mail da altri utenti<sup>1</sup>",
        "prefs-searchoptions": "Riserca",
        "prefs-namespaces": "Namespace",
-       "defaultns": "Serca in sti namespace se no diversamente specificà:",
        "default": "predefinìo",
        "prefs-files": "File",
        "prefs-custom-css": "CSS personalixà",
        "prefs-emailconfirm-label": "Conferma de l'e-mail:",
        "youremail": "La to e-mail",
        "username": "{{GENDER:$1|Nome utente}}:",
-       "uid": "{{GENDER:$1|ID utente}}:",
        "prefs-memberingroups": "{{GENDER:$2|Menbro}} {{PLURAL:$1|del grupo|de i grupi}}:",
        "prefs-registration": "Data de registrassion:",
        "yourrealname": "El to vero nome:",
        "recentchanges-label-bot": "Sta modifica el la ga fata un bot",
        "recentchanges-label-unpatrolled": "Sta modifica no la xe stà gnancora verificà",
        "recentchanges-label-plusminus": "La dimension de la pagina la xe canbià de sto nùmaro de byte",
-       "recentchanges-legend-newpage": "(varda anca [[Special:NewPages|l'elenco de le pagine nove]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (varda anca [[Special:NewPages|l'elenco de le pagine nove]])",
        "rcnotefrom": "Qui di seguito sono elencate le modifiche da '''$2''' (fino a '''$1''').",
        "rclistfrom": "Fà védar i canbiamenti fati dal $3 $2",
        "rcshowhideminor": "$1 i canbiamenti picenini",
        "log-title-wildcard": "Riçerca dei titoli che scuminsia con",
        "showhideselectedlogentries": "Mostra/scondi łe voxe de registro sełesionae",
        "allpages": "Tute le pagine",
-       "alphaindexline": "da $1 a $2",
        "nextpage": "Pagina dopo ($1)",
        "prevpage": "La pagina prima ($1)",
        "allpagesfrom": "Mostra le pagine tacando da:",
index 0b2c78e..b94b77b 100644 (file)
        "vector-view-view": "Đọc",
        "vector-view-viewsource": "Xem mã nguồn",
        "actions": "Tác vụ",
-       "vector-more-actions": "Thêm nữa",
+       "vector-more-actions": "Khác",
        "namespaces": "Không gian tên",
        "variants": "Biến thể",
        "navigation-heading": "Trình đơn chuyển hướng",
        "recentchanges-label-unpatrolled": "Sửa đổi này chưa được tuần tra",
        "recentchanges-label-plusminus": "Kích cỡ trang đã thay đổi bằng số byte này",
        "recentchanges-legend-heading": "'''Chú giải:'''",
-       "recentchanges-legend-newpage": "(xem thêm [[Special:NewPages|danh sách các trang mới]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (xem thêm [[Special:NewPages|danh sách các trang mới]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Các thay đổi từ <strong>$2</strong> (hiển thị tối đa <strong>$1</strong> thay đổi).",
        "rclistfrom": "Xem các thay đổi từ $2 $3 trở về sau",
        "wantedtemplates": "Bản mẫu cần viết nhất",
        "mostlinked": "Trang được liên kết đến nhiều nhất",
        "mostlinkedcategories": "Thể loại có nhiều trang nhất",
-       "mostlinkedtemplates": "Bản mẫu được liên kết đến nhiều nhất",
+       "mostlinkedtemplates": "Trang được nhúng nhiều nhất",
        "mostcategories": "Trang có nhiều thể loại nhất",
        "mostimages": "Tập tin được liên kết đến nhiều nhất",
        "mostinterwikis": "Trang có nhiều liên kết liên wiki nhất",
index b8df457..d9a83f7 100644 (file)
        "vector-view-view": "Basaha",
        "vector-view-viewsource": "Kitaa an ginkuhaan",
        "actions": "Mga buhat",
+       "vector-more-actions": "Damo pa",
        "namespaces": "Mga ngaran-lat'ang",
        "variants": "Mga pagkadirudilain",
        "navigation-heading": "Menu hit nabigasyon",
        "permalink": "Sumpay nga unob",
        "print": "Igpatik",
        "view": "Kitaa",
+       "view-foreign": "Pagkita ha $1",
        "edit": "Igliwat",
+       "edit-local": "Igliwat an lokal nga pagpahayag",
        "create": "Himo-a",
+       "create-local": "Igdugang an lokal nga pagpahayag",
        "editthispage": "Igliwat ini nga pakli",
        "create-this-page": "Himo-a ini nga pakli",
        "delete": "Para-a",
        "jumptonavigation": "paglayag",
        "jumptosearch": "bilnga",
        "view-pool-error": "Pasayloa, an mga server diri na kaya yana nga takna.\nDamo nga nagamit in gusto sinmulod hini nga pakli.\nAlayon paghulat makadali san-o ka inmutro pagsulod hin nga pakli utro.\n\n$1",
+       "generic-pool-error": "Pasayloa, an mga server nasobrahan ha yanâ nga takna.\nDamo nga mga nágámit in karúyag sumulod hini nga kiritaon.\nAlayon paghulat magakadli san-o ka bumalik pagsulod hini nga kiritaon.",
        "pool-timeout": "An pagpaundang-hin-oras in naghuhulat hin trangka",
        "pool-queuefull": "Puno an katitirok nga pila",
        "pool-errorunknown": "Waray kasabti nga kasaypanan",
+       "pool-servererror": "An pool nga pag-ihap nga serbisyo diri yanâ magagamit ($)",
        "aboutsite": "Mahitungod han {{SITENAME}}",
        "aboutpage": "Project:Mahitungod han",
        "copyright": "An sulod mabiblingan ha ilarom han $1 antes may-ada pasabot.",
        "gotaccountlink": "Sakob",
        "userlogin-resetlink": "Nangalimot han imo detalye han pagsakob?",
        "userlogin-resetpassword-link": "¿Nangalimot ka han imo tigaman-pansulod?",
+       "userlogin-helplink2": "Búlig hin pagsakob",
        "userlogin-loggedin": "Nakalog-in kana komo hi {{GENDER:$1|$1}}.\nGamiti an porma ha ubos para makalog-in komo iba nga gumaramit.",
        "userlogin-createanother": "Paghimo hin iba nga akawnt",
        "createacct-emailrequired": "Email address",
        "loginlanguagelabel": "Pinulongan: $1",
        "suspicious-userlogout": "Waray ka tugoti pag-logout tungod nga baga ini ginpadangat hin usa nga broken browser o caching proxy.",
        "createacct-another-realname-tip": "Ada la ha imo kun karuyag mo igbutang an imo tinuod nga ngaran.\nKun pinili mo ito ighatag, gagamiton ini paghatag hin atribusyon ha gumaramit para hit ira buhat.",
+       "pt-login": "Sakob",
+       "pt-login-button": "Sakob",
+       "pt-createaccount": "Himo-a an akawnt",
+       "pt-userlogout": "Gawas",
        "php-mail-error-unknown": "Waray kasabti ha kanan PHP mail() function.",
        "user-mail-no-addy": "Nagsend hin email bisan waray email address.",
        "user-mail-no-body": "Nagsend hin email bisan waray o diri resonably kahalipot kaduro nga sulod.",
        "changepassword": "Igliwan an tigaman-pagsulod",
-       "resetpass_announce": "Nakalog-in ka hit temporaryo nga ginemail nga kodigo.\nPara mahuman paglalog-on, kinahanglan mo magbutang hin bag-o nga tigaman-panakob dinhi:",
+       "resetpass_announce": "Basi mahumán an pagsakob, ángay ka magpílì hin bag-o nga tigaman-panakob.",
        "resetpass_header": "Igliwan an akawnt nga tigaman-pagsulod",
        "oldpassword": "Daan nga tigaman-pagsulod:",
        "newpassword": "Bag-o nga tigaman-pagsulod:",
        "resetpass-submit-loggedin": "Igbal-iw an tigaman-pagsulod",
        "resetpass-submit-cancel": "Pasagdi",
        "resetpass-wrong-oldpass": "Diri balido an temporaryo o yana nga tigaman-panakob.\nImo malinamposon nga ginsalyuan an imo tigaman-panakob o umaro ka na hin bag-o nga temporaryo nga tigman-panakob.",
+       "resetpass-recycled": "Alayon pagreset han imo tigaman-pansakob hin lain tikang han imo yanâ nga tigaman-pansakob",
+       "resetpass-temp-emailed": "Nagsakob ka pinaagi hin temporary nga gin-email nga kodigo.\nBasi matapos an imo pagsakob, kinahanglan ka maghimo hin bag-o nga tigaman-pansakob dinhi:",
        "resetpass-temp-password": "Temporaryo nga tigaman-pagsakob:",
        "resetpass-abort-generic": "Ginpugong an pagbal-iw hin tigaman-panakob hin uska ekstensyon.",
+       "resetpass-expired": "Naubosan na hin panahon an im tigaman-pansakob.  Alayon paghimo hin bag-o nga tigaman-pansakob basi ka makasakob.",
        "passwordreset": "igreset an tigaman-hit-pagsulod",
        "passwordreset-text-one": "Kompletoha ini nga porma paramakareset hin imo tigaman-panakob.",
        "passwordreset-text-many": "{{PLURAL:$1|Butanga it usa nga mga surodlan basi makakarawat ko hin temporaryo nga tigaman-pansulod pinaagi ha email.}}",
        "log-fulllog": "Kitaa an bug-os nga taramdan",
        "edit-conflict": "Diri pagkakauroyon han pagliwat.",
        "edit-no-change": "Ginpabay-an an im pagliwat, mahitungod nga waray pagbalyo nga nabuhat ha nakasurat.",
-       "postedit-confirmation": "Natipig an imo ginliwat.",
+       "postedit-confirmation-saved": "Natipig an imo ginliwat.",
        "edit-already-exists": "Diri nakakahimo hin bag-o nga pakli.\nAada na ito.",
        "defaultmessagetext": "Aada-nga-daan nga teksto han mensahe",
        "invalid-content-data": "Sayop nga sulod nga datos",
        "currentrev": "Giurhii nga pagliwat",
        "currentrev-asof": "Giuurhii nga pagliwat han $1",
        "revisionasof": "Pagbabag-o han $1",
-       "revision-info": "Pagbag-o han $1 ni $",
+       "revision-info": "Pagbag-o tikang han $1 ni {{GENDER:$6|$2}}$7",
        "previousrevision": "← Durudaan nga pagliwat",
        "nextrevision": "Burubag-o nga pagliwat →",
        "currentrevisionlink": "Giurhii nga pagliwat",
        "searchmenu-exists": "'''May-ada pakli nga nakangaran hin \"[[:$1]]\" hini nga wiki.'''",
        "searchmenu-new": "<strong>Himoa an pakli nga \"[[:$1]]\" dinhi nga wiki!</strong> {{PLURAL:$2|0=|Kitaa gihapon an pakli nga nabilngan han imo pagbiling.|Kitaa gihapon an mga nabilngan nga ginmawas han pagbiling.}}",
        "searchprofile-articles": "Mga unod nga pakli",
-       "searchprofile-project": "Mga Bulig ngan Proyekto nga pakli",
        "searchprofile-images": "Multimedia",
        "searchprofile-everything": "Ngatanan",
        "searchprofile-advanced": "Abansado",
        "searchprofile-articles-tooltip": "Pamiling ha $1",
-       "searchprofile-project-tooltip": "Pamiling ha $1",
        "searchprofile-images-tooltip": "Pamiling hin mga fayl",
        "searchprofile-everything-tooltip": "Pamiling ha ngatanan nga sulod (lakip an mga hiruhimangraw nga pakli)",
        "searchprofile-advanced-tooltip": "Pamilnga ha mga nabatasan nga ngaran-lat'ang",
        "search-section": "(bahin $1)",
        "search-suggest": "Buot sidngon mo ba: $1",
        "search-interwiki-caption": "Mga bugto nga proyekto",
-       "search-interwiki-default": "$1 nga resulta:",
+       "search-interwiki-default": "Mga resulta tikang han $1:",
        "search-interwiki-more": "(damo pa)",
        "search-relatedarticle": "kasumapy",
-       "searcheverything-enable": "Pamilnga ha ngatanan nga ngaran-lat'ang",
        "searchrelated": "kadugtong",
        "searchall": "ngatanan",
        "showingresultsheader": "{{PLURAL:$5|Resulta '''$1''' han '''$3'''|Mga resulta '''$1 - $2''' han '''$3'''}} para ha '''$4'''",
        "allowemail": "Igpaandar an email nga tikang ha iba nga mga gumaramit",
        "prefs-searchoptions": "Pamilnga",
        "prefs-namespaces": "Ngaran-lat'ang",
-       "defaultns": "Kun diri, pamilnga hini nga mga ngaran-lat'ang:",
        "default": "aada-nga-daan",
        "prefs-files": "Mga paypay",
        "prefs-custom-css": "Custom CSS",
        "prefs-emailconfirm-label": "Kompirmasyon han email:",
        "youremail": "E-mail:",
        "username": "{{HENERO:$1|Agnay hit gumaramit}}:",
-       "uid": "ID hit {{HENERO:$1|Gumaramit}}:",
        "prefs-memberingroups": "{{GENDER:$2|Api}} han {{PLURAL:$1|grupo|mga grupo}}:",
        "prefs-registration": "Oras han pagrehistro:",
        "yourrealname": "Tinuod nga ngaran:",
        "recentchanges-label-minor": "Gutiay ini nga pagliwat",
        "recentchanges-label-bot": "Ini nga pagliwat in ginbuhat han bot",
        "recentchanges-label-unpatrolled": "Ini nga pagliwat in diri pa nakapatrol",
-       "rcnotefrom": "An ha ubos in mga pagbabag-o tikanng '''$''' (kutob ngadto ha '''$1''' nga ginpakita).",
+       "rcnotefrom": "An ha ubos in mga pagbabag-o tikang han <strong>$2</strong> (kutob ngadto ha <strong>$1</strong> nga ginpakita).",
        "rclistfrom": "Pakit-a an mga ginbag-ohan tikang han $3 $2",
        "rcshowhideminor": "$1 gudti nga mga pagliwat",
        "rcshowhidebots": "$1 mga bot",
        "log": "Mga talaan",
        "all-logs-page": "Ngatanan nga mga talaan panpubliko",
        "allpages": "Ngatanan nga mga pakli",
-       "alphaindexline": "$1 tubtob ha $2",
        "nextpage": "Sunod nga pakli ($1)",
        "prevpage": "Nahiuna nga pakli ($1)",
        "allpagesfrom": "Igpakita an mga pakli nga nagtitikang ha:",
        "unwatchthispage": "Undangi pagbantay",
        "notanarticle": "Diri uska unod nga pakli",
        "notvisiblerev": "An urhi nga pagliwat han iba nga gumaramit in ginpara",
-       "watchlist-details": "{{PLURAL:$1|$1 nga pakli|$1 nga mga pakli}} nga aada ha imo talaan nga binabantayan, diri lakip an mga hiruhimangraw-nga-pakli.",
+       "watchlist-details": "{{PLURAL:$1|$1 nga pakli|$1 nga mga pakli}} nga aada ha imo talaan nga binabantayan, diri bulag nga paglakip han mga hiruhimangraw-nga-pakli.",
        "wlshowlast": "Igpakita an katapusan nga $1 nga mga oras $2 nga mga adlaw $3",
        "watchlist-options": "Mga pirilian han talaan han binabantayan",
        "watching": "Ginbabantay...",
        "rollback_short": "Libot-pabalik",
        "rollbacklink": "libot-pabalik",
        "rollbackfailed": "Diri malinamposon an paglibot-pabalik",
-       "revertpage": "Ginpabalik an ginliwat ni [[Special:Contributions/|$2]] ([[User talk:$2|hiruhimangraw]]) ngadto ha urhi nga rebisyon ni [[User:$1|$1]] ngan",
+       "revertpage": "Ginpabalik an ginliwat ni [[Special:Contributions/$2|$2]] ([[User talk:$2|hiruhimangraw]]) ngadto ha urhi nga pagliwat ni [[User:$1|$1]]",
        "sessionfailure-title": "Pakyas an sesyon",
        "protectlogpage": "Talaan han pinasaliporan",
        "protectedarticle": "pinasaliporan \"[[$1]]\"",
        "block": "Pugngi an gumaramit",
        "blockip": "Pugngi an gumaramit",
        "blockip-legend": "Pugngi an gumaramit",
-       "ipadressorusername": "IP address o agnay-hit-gumaramit:",
+       "ipaddressorusername": "IP address o agnay-hit-gumaramit:",
        "ipbexpiry": "Matitima an dulot:",
        "ipbreason": "Katadungan:",
        "ipbreason-dropdown": "*Agsob nga mga rason hit pagpugong\n** Pagsusuksok hin sayop nga pananabutan\n** Pagtatangtang hin sulod tikang ha mga pakli\n** Bisan la ano nga pansusumpay ngadto ha gawas nga mga dapit\n** Pansusuksok hin inamasang/buro-buro ngadto ha mga pakli\n** Panhahadlok nga pamatasan/makakalilisang nga pansamok\n** Pan-abusar hin dirudilain nga mga akawnt\n** Diri makakarawat nga agnay-hit-gumaramit",
        "newimages": "Galeryia hin mga paypay nga bag-o",
        "newimages-legend": "Panara",
        "newimages-label": "Ngaran han paypay (o uska bahin hini):",
-       "showhidebots": "($1 ka mga bot)",
        "noimages": "Waray makikit-an.",
        "ilsubmit": "Bilnga",
        "bydate": "pinaagi han petsa",
index 9340ea7..27966c0 100644 (file)
        "recentchanges-label-unpatrolled": "די רעדאקטירונג איז נאך נישט נאכגעקוקט",
        "recentchanges-label-plusminus": "בלאט גרייס געענדערט מיט דער צאל בייטן",
        "recentchanges-legend-heading": "'''לעגענדע:'''",
-       "recentchanges-legend-newpage": "(זעט אויך [[Special:NewPages|די רשימה פון נייע בלעטער]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (זעט אויך [[Special:NewPages|די רשימה פון נייע בלעטער]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "פֿאלגנד זענען די ענדערונגען זײַט <strong>$2</strong> (ביז <strong>$1</strong>).",
        "rclistfrom": "װײַזן נײַע ענדערונגען פֿון $3 $2",
index 0dcc31d..61c4a08 100644 (file)
        "searchmenu-exists": "'''Ojúewé tó ún jẹ́ \"[[:$1]]\" wà lórí wiki yìí'''",
        "searchmenu-new": "'''Dá ojúewé \"[[:$1]]\" sí orí wiki yìí!'''",
        "searchprofile-articles": "Àwọn ojúewé Àkóónú",
-       "searchprofile-project": "Àwọn ojúewé Ìrànwọ́ àti Iṣẹ́-ọwọ́",
        "searchprofile-images": "Amóhùnmáwòrán",
        "searchprofile-everything": "Èyíkéyìí",
        "searchprofile-advanced": "Onígíga",
        "searchprofile-articles-tooltip": "Ṣàwáàrí nínú $1",
-       "searchprofile-project-tooltip": "Ṣàwáàrí nínú $1",
        "searchprofile-images-tooltip": "Ṣàwáàrí fún faili",
        "searchprofile-everything-tooltip": "Ṣàwáàrí nínú gbogbo àkóónú (pẹ̀lú àwọn ojúewé ọ̀rọ̀)",
        "searchprofile-advanced-tooltip": "Ṣàwáàrí nínú àwọn orúkọàyè pàtó",
        "search-interwiki-default": "èsì $1",
        "search-interwiki-more": "(tókù)",
        "search-relatedarticle": "Tóbáramu",
-       "searcheverything-enable": "Àwárí nínú gbogbo orúkọàyè:",
        "searchrelated": "tóbáramu",
        "searchall": "gbogbo",
        "showingresults": "Ìfihàn nísàlẹ̀ títí dé {{PLURAL:$1|èsì '''1'''|àwọn èsì '''$1'''}} láti ìbẹ̀rẹ̀ ní #'''$2'''.",
        "allowemail": "Ìgbàláyè e-mail látọ̀dọ̀ àwọn oníṣe mìíràn",
        "prefs-searchoptions": "Ṣàwárí",
        "prefs-namespaces": "Àwọn orúkọàyè",
-       "defaultns": "Bíbẹ́ẹ̀kọ́ ṣe àwárí nínú àwọn orúkọàyè yìí:",
        "default": "níbẹ̀rẹ̀",
        "prefs-files": "Àwọn faili",
        "prefs-custom-css": "CSS àkànṣe",
        "recentchanges-label-unpatrolled": "Àtúnṣe yìí kò tí ì jẹ́ onísíṣọ́",
        "recentchanges-label-plusminus": "Iye bytes àtúnṣe sí ìtóbi ojúewé",
        "recentchanges-legend-heading": "'''Ìtumọ̀:'''",
-       "recentchanges-legend-newpage": "(ẹ tún wo [[Special:NewPages|àtòjọ àwọn ojúewé tuntun]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ẹ tún wo [[Special:NewPages|àtòjọ àwọn ojúewé tuntun]])",
        "rcnotefrom": "Àwọn àtúnṣe láti ''''$2''' (títí dé '''$1''' hàn) lábẹ́.",
        "rclistfrom": "Àfihàn àwọn àtúnṣe tuntun nípa bíbẹ̀rẹ̀ láti $3 $2",
        "rcshowhideminor": "$1 àwọn àtúnṣe kékéèké",
index 4c37bd6..007f2a0 100644 (file)
@@ -17,7 +17,8 @@
                        "Yfdyh000",
                        "Cwek",
                        "아라",
-                       "Ktchankt"
+                       "Ktchankt",
+                       "Kc kennylau"
                ]
        },
        "tog-underline": "連結加底線:",
        "searchmenu-exists": "'''響呢個wiki度有一版叫做\"[[:$1]]\"。'''",
        "searchmenu-new": "'''響呢個wiki度開呢版\"[[:$1]]\"!'''",
        "searchprofile-articles": "內容頁",
-       "searchprofile-project": "幫手同計劃頁",
        "searchprofile-images": "多媒體",
        "searchprofile-everything": "全部嘢",
        "searchprofile-advanced": "進階",
        "searchprofile-articles-tooltip": "響$1度搵",
-       "searchprofile-project-tooltip": "響$1度搵",
        "searchprofile-images-tooltip": "搵檔案",
        "searchprofile-everything-tooltip": "搵全部嘢(包埋討論版)",
        "searchprofile-advanced-tooltip": "響自定空間名度搵",
        "search-interwiki-default": "$1項結果:",
        "search-interwiki-more": "(更多)",
        "search-relatedarticle": "有關",
-       "searcheverything-enable": "搵全部空間名",
        "searchrelated": "有關",
        "searchall": "全部",
        "showingresults": "'自#'''$2'''起顯示最多'''$1'''個結果。",
        "allowemail": "由其它用戶啟用電子郵件",
        "prefs-searchoptions": "搵嘢選項",
        "prefs-namespaces": "空間名",
-       "defaultns": "否則喺呢啲空間名搵嘢:",
        "default": "預設",
        "prefs-files": "檔案",
        "prefs-custom-css": "自定 CSS",
        "prefs-emailconfirm-label": "電郵確認:",
        "youremail": "電郵:",
        "username": "用戶名:",
-       "uid": "{{GENDER:$1|用戶}}ID:",
        "prefs-memberingroups": "{{PLURAL:$1|一|多}}組嘅成員:",
        "prefs-registration": "註冊時間:",
        "yourrealname": "真名:",
        "logempty": "日誌中冇符合嘅項目。",
        "log-title-wildcard": "搵以呢個文字開始嘅標題",
        "allpages": "所有頁面",
-       "alphaindexline": "$1到$2",
        "nextpage": "下一頁 ($1)",
        "prevpage": "上一頁 ($1)",
        "allpagesfrom": "顯示以下位置開始嘅頁面:",
        "tooltip-preferences-save": "保存設定",
        "tooltip-summary": "輸入一個簡短嘅摘要",
        "common.css": "/* 響呢度放 CSS 碼來改成個網站嘅畫面 */",
-       "cologneblue.css": "/* 響呢度放 CSS 碼去改用戶用嘅科隆藍畫面 */",
        "monobook.css": "/* 響呢度放 CSS 碼去改用戶用嘅 Monobook 畫面 */",
-       "modern.css": "/* 響呢度放 CSS 碼去改用戶用嘅摩登畫面 */",
        "vector.css": "/* 響呢度放 CSS 碼去改用戶用嘅域達畫面 */",
        "print.css": "/* 響呢度放 CSS 碼去改打印輸出 */",
        "common.js": "/* 響每一次個頁面載入時,所有用戶都會載入呢度任何嘅JavaScript。 */",
-       "cologneblue.js": "/* 響每一次個頁面載入時,用科隆藍畫面嘅用戶都會載入呢度任何嘅JavaScript */",
        "monobook.js": "/* 響每一次個頁面載入時,用 Monobook 畫面嘅用戶都會載入呢度任何嘅JavaScript */",
-       "modern.js": "/* 響每一次個頁面載入時,用摩登畫面嘅用戶都會載入呢度任何嘅JavaScript */",
        "vector.js": "/* 響每一次個頁面載入時,用域達畫面嘅用戶都會載入呢度任何嘅JavaScript */",
        "anonymous": "{{SITENAME}}嘅匿名{{PLURAL:$1|用戶|用戶}}",
        "siteuser": "{{SITENAME}}嘅用戶$1",
        "spam_reverting": "恢復返去最後一個唔包含指去$1嘅連結嘅嗰個修訂。",
        "spam_blanking": "全部版本都含有指去$1嘅連結,留空",
        "simpleantispam-label": "反垃圾檢查。\n'''唔好'''加入呢個!",
-       "skinname-cologneblue": "科隆藍",
        "skinname-monobook": "MonoBook",
-       "skinname-modern": "摩登",
        "skinname-vector": "Vector",
        "markaspatrolleddiff": "標示為已巡查嘅",
        "markaspatrolledtext": "標示呢版做查咗嘅",
        "sqlite-no-fts": "$1 冇全文搜尋支援",
        "revdelete-restricted": "已經應用限制到操作員",
        "revdelete-unrestricted": "已經拎走對於操作員嘅限制",
-       "rightsnone": "()",
+       "rightsnone": "()",
        "searchsuggest-search": "搵嘢",
        "searchsuggest-containing": "名單傳送緊...",
        "duration-hours": "$1{{PLURAL:$1|個鐘}}",
index 4af148b..006d7d8 100644 (file)
        "recentchanges-label-unpatrolled": "该编辑尚未巡查",
        "recentchanges-label-plusminus": "该页面字节数的前后变化",
        "recentchanges-legend-heading": "'''说明:'''",
-       "recentchanges-legend-newpage": "(见[[Special:NewPages|新页面列表]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}}(见[[Special:NewPages|新页面列表]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "下面是<strong>$2</strong>之后的更改(最多显示<strong>$1</strong>个)。",
        "rclistfrom": "显示$3 $2之后的新更改",
        "brokenredirectstext": "以下重定向链接至不存在的页面:",
        "brokenredirects-edit": "编辑",
        "brokenredirects-delete": "删除",
-       "withoutinterwiki": "无语言链接页面",
+       "withoutinterwiki": "无语言链接页面",
        "withoutinterwiki-summary": "以下页面没有链接至其它语言版本。",
        "withoutinterwiki-legend": "前缀",
        "withoutinterwiki-submit": "显示",
        "wantedtemplates": "需要的模板",
        "mostlinked": "最多链接页面",
        "mostlinkedcategories": "最多链接分类",
-       "mostlinkedtemplates": "最多链接模板",
+       "mostlinkedtemplates": "最多嵌入页面",
        "mostcategories": "有最多分类的页面",
        "mostimages": "最多链接文件",
        "mostinterwikis": "有最多跨wiki的页面",
        "allarticles": "所有页面",
        "allinnamespace": "所有页面($1名字空间)",
        "allpagessubmit": "提交",
-       "allpagesprefix": "显示有该前缀的页面:",
+       "allpagesprefix": "显示页面的前缀:",
        "allpagesbadtitle": "给定的页面标题是非法的,或者具有一个内部语言或内部 wiki 的前缀。它可能包含一个或更多的不能用于标题的字符。",
        "allpages-bad-ns": "在{{SITENAME}}中没有一个叫做\"$1\"的名字空间。",
        "allpages-hide-redirects": "隐藏重定向",
        "enotif_subject_created": "{{SITENAME}}页面$1已被$2创建",
        "enotif_subject_moved": "{{SITENAME}}页面$1已被$2移动",
        "enotif_subject_restored": "{{SITENAME}}页面$1已经被$2{{GENDER:$2|还原}}",
-       "enotif_subject_changed": "{{SITENAME}}页面$1被$2更改",
+       "enotif_subject_changed": "{{SITENAME}}页面$1被$2更改",
        "enotif_body_intro_deleted": "{{SITENAME}}页面$1已于$PAGEEDITDATE被$2{{GENDER:$2|删除}},请见$3。",
        "enotif_body_intro_created": "{{SITENAME}}页面$1已于$PAGEEDITDATE被$2{{GENDER:$2|创建}},请浏览<$3>查看当前版本。",
        "enotif_body_intro_moved": "{{SITENAME}}页面$1已于$PAGEEDITDATE被$2{{GENDER:$2|移动}},请浏览<$3>查看当前版本。",
        "mycontris": "贡献",
        "contribsub2": "{{GENDER:$3|$1}}的贡献($2)",
        "contributions-userdoesnotexist": "用户“$1”尚未注册。",
-       "nocontribs": "没有找到符合特征的更改。",
+       "nocontribs": "没有找到匹配这些规则的更改。",
        "uctop": "(当前)",
        "month": "截止月份:",
        "year": "截止年份:",
        "nolinkshere": "没有页面链接至'''[[:$1]]'''。",
        "nolinkshere-ns": "在所选的名字空间内没有页面链接到'''[[:$1]]'''。",
        "isredirect": "重定向页面",
-       "istemplate": "å\8c\85å\90«",
+       "istemplate": "åµ\8cå\85¥",
        "isimage": "文件链接",
        "whatlinkshere-prev": "{{PLURAL:$1|前|前$1个}}",
        "whatlinkshere-next": "{{PLURAL:$1|后|后$1个}}",
        "export-addnstext": "从名字空间添加页面:",
        "export-addns": "添加",
        "export-download": "另存为文件",
-       "export-templates": "包模板",
+       "export-templates": "包模板",
        "export-pagelinks": "包含链接页面的搜索深度:",
        "allmessages": "系统消息",
        "allmessagesname": "名称",
index 0f44ca2..81914ef 100644 (file)
        "recentchanges-label-unpatrolled": "該編輯尚未巡查",
        "recentchanges-label-plusminus": "該頁面變更的大小 (位元組)",
        "recentchanges-legend-heading": "'''說明:'''",
-       "recentchanges-legend-newpage": "(請參考 [[Special:NewPages|最新頁面]])",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (請參考 [[Special:NewPages|最新頁面]])",
        "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "rcnotefrom": "以下為自 <strong>$2</strong> 以來的變更 (最多顯示 <strong>$1</strong> 筆)。",
        "rclistfrom": "顯示自 $3 $2 以來的最近變更",
        "wantedtemplates": "需要的樣版",
        "mostlinked": "最多連結頁面",
        "mostlinkedcategories": "最多連結分類",
-       "mostlinkedtemplates": "最多連結的樣版",
+       "mostlinkedtemplates": "最多被嵌入包含的頁面",
        "mostcategories": "最多分類頁面",
        "mostimages": "最多連結檔案",
        "mostinterwikis": "最多 Interwiki 連結的頁面",
index 6ada6d7..07a0467 100644 (file)
@@ -430,7 +430,7 @@ $specialPageAliases = array(
        'Mostinterwikis'            => array( 'MostInterwikis' ),
        'Mostlinked'                => array( 'MostLinkedPages', 'MostLinked' ),
        'Mostlinkedcategories'      => array( 'MostLinkedCategories', 'MostUsedCategories' ),
-       'Mostlinkedtemplates'       => array( 'MostLinkedTemplates', 'MostUsedTemplates' ),
+       'Mostlinkedtemplates'       => array( 'MostTranscludedPages', 'MostLinkedTemplates', 'MostUsedTemplates' ),
        'Mostrevisions'             => array( 'MostRevisions' ),
        'Movepage'                  => array( 'MovePage' ),
        'Mycontributions'           => array( 'MyContributions' ),
index 1a54df1..a07cbc2 100644 (file)
@@ -59,7 +59,7 @@ class DeleteEqualMessages extends Maintenance {
                // Normalise message names for NS_MEDIAWIKI page_title
                $messageNames = array_map( array( $wgContLang, 'ucfirst' ), $messageNames );
 
-               $statuses = AllmessagesTablePager::getCustomisedStatuses( $messageNames, $langCode, $nonContLang );
+               $statuses = AllMessagesTablePager::getCustomisedStatuses( $messageNames, $langCode, $nonContLang );
                // getCustomisedStatuses is stripping the sub page from the page titles, add it back
                $titleSuffix = $nonContLang ? "/$langCode" : '';
 
index 7ce8794..3c5bef0 100644 (file)
@@ -4,7 +4,7 @@
 # and previous home directory location
 # The binary path is returned in $PHP if any
 
-for binary in $PHP `which php || true` "$DEV/php/bin/php" "$HOME/.mediawiki/php/bin/php" "$HOME/.mwphp/bin/php" ]; do
+for binary in $PHP $(which php || true) "$DEV/php/bin/php" "$HOME/.mediawiki/php/bin/php" "$HOME/.mwphp/bin/php" ]; do
        if [ -x "$binary" ]; then
                if "$binary" -r 'exit((int)!version_compare(PHP_VERSION, "5.4", ">="));'; then
                        PHP="$binary"
diff --git a/maintenance/language/listVariants.php b/maintenance/language/listVariants.php
new file mode 100644 (file)
index 0000000..4bff891
--- /dev/null
@@ -0,0 +1,73 @@
+<?php
+/**
+ * Lists all language variants
+ *
+ * Copyright © 2014 MediaWiki developers
+ * https://www.mediawiki.org/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Maintenance
+ */
+require_once dirname( __DIR__ ) . '/Maintenance.php';
+
+/**
+ * @since 1.24
+ */
+class ListVariants extends Maintenance {
+
+       public function __construct() {
+               parent::__construct();
+               $this->mDescription = 'Outputs a list of language variants';
+               $this->addOption( 'flat', 'Output variants in a flat list' );
+               $this->addOption( 'json', 'Output variants as JSON' );
+       }
+
+       public function execute() {
+               $variantLangs = array();
+               $variants = array();
+               foreach ( LanguageConverter::$languagesWithVariants as $langCode ) {
+                       $lang = Language::factory( $langCode );
+                       if ( count( $lang->getVariants() ) > 1 ) {
+                               $variants += array_flip( $lang->getVariants() );
+                               $variantLangs[$langCode] = $lang->getVariants();
+                       }
+               }
+               $variants = array_keys( $variants );
+               sort( $variants );
+               $result = $this->hasOption( 'flat' ) ? $variants : $variantLangs;
+
+               // Not using $this->output() because muting makes no sense here
+               if ( $this->hasOption( 'json' ) ) {
+                       echo FormatJson::encode( $result, true ) . "\n";
+               } else {
+                       foreach ( $result as $key => $value ) {
+                               if ( is_array( $value ) ) {
+                                       echo "$key\n";
+                                       foreach ( $value as $variant ) {
+                                               echo "   $variant\n";
+                                       }
+                               } else {
+                                       echo "$value\n";
+                               }
+                       }
+               }
+       }
+}
+
+$maintClass = 'ListVariants';
+require_once RUN_MAINTENANCE_IF_MAIN;
index ac83302..ea7d397 100644 (file)
@@ -1024,6 +1024,7 @@ return array(
        ),
        'mediawiki.action.history' => array(
                'scripts' => 'resources/src/mediawiki.action/mediawiki.action.history.js',
+               'styles' => 'resources/src/mediawiki.action/mediawiki.action.history.css',
                'group' => 'mediawiki.action.history',
        ),
        'mediawiki.action.history.diff' => array(
index 324833c..902a5cc 100644 (file)
 
         // set next check
         if(nextExpire != Infinity){
-            _ttl_timeout = setTimeout(_handleTTL, nextExpire - curtime);
+            _ttl_timeout = setTimeout(Math.min(_handleTTL, nextExpire - curtime, 0x7FFFFFFF));
         }
 
         // save changes
          * @param {Mixed} value Value to set. This can be any value that is JSON
          *              compatible (Numbers, Strings, Objects etc.).
          * @param {Object} [options] - possible options to use
-         * @param {Number} [options.TTL] - optional TTL value
+         * @param {Number} [options.TTL] - optional TTL value, in milliseconds
          * @return {Mixed} the used value
          */
         set: function(key, value, options){
index 75e3547..14280a7 100644 (file)
@@ -8,5 +8,9 @@
        "ooui-outline-control-move-down": "Premjesti stavku dole",
        "ooui-outline-control-move-up": "Premjesti stavku gore",
        "ooui-outline-control-remove": "Ukloni stavku",
-       "ooui-toolbar-more": "Više"
+       "ooui-toolbar-more": "Više",
+       "ooui-dialog-confirm-title": "Potvrdi",
+       "ooui-dialog-confirm-default-prompt": "Da li ste sigurni?",
+       "ooui-dialog-confirm-default-ok": "U redu",
+       "ooui-dialog-confirm-default-cancel": "Otkaži"
 }
index 1adbb35..0f423b3 100644 (file)
@@ -12,5 +12,8 @@
        "ooui-outline-control-move-down": "Elem mozgatása lefelé",
        "ooui-outline-control-move-up": "Elem mozgatása felfelé",
        "ooui-outline-control-remove": "Elem eltávolítása",
-       "ooui-toolbar-more": "Tovább..."
+       "ooui-toolbar-more": "Tovább...",
+       "ooui-dialog-confirm-title": "Megerősítés",
+       "ooui-dialog-confirm-default-prompt": "Biztos vagy benne?",
+       "ooui-dialog-confirm-default-cancel": "Mégse"
 }
diff --git a/resources/lib/oojs-ui/images/indicators/arrow-down.png b/resources/lib/oojs-ui/images/indicators/arrow-down.png
new file mode 100644 (file)
index 0000000..47ff54c
Binary files /dev/null and b/resources/lib/oojs-ui/images/indicators/arrow-down.png differ
diff --git a/resources/lib/oojs-ui/images/indicators/arrow-down.svg b/resources/lib/oojs-ui/images/indicators/arrow-down.svg
new file mode 100644 (file)
index 0000000..c871f60
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="12px"
+        height="12px" viewBox="0 0 12 12" style="enable-background:new 0 0 12 12;" xml:space="preserve">
+<g id="down" style="opacity:0.75;">
+       <polygon id="arrow" style="fill-rule:evenodd;clip-rule:evenodd;" points="2.023,3 5.512,8.953 9,3"/>
+</g>
+</svg>
diff --git a/resources/lib/oojs-ui/images/indicators/arrow-ltr.png b/resources/lib/oojs-ui/images/indicators/arrow-ltr.png
new file mode 100644 (file)
index 0000000..7984007
Binary files /dev/null and b/resources/lib/oojs-ui/images/indicators/arrow-ltr.png differ
diff --git a/resources/lib/oojs-ui/images/indicators/arrow-ltr.svg b/resources/lib/oojs-ui/images/indicators/arrow-ltr.svg
new file mode 100644 (file)
index 0000000..cbc22a4
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="12px"
+        height="12px" viewBox="0 0 12 12" style="enable-background:new 0 0 12 12;" xml:space="preserve">
+<g id="ltr" opacity="0.75">
+       <path d="M3.023,8.977 L3.023,2 L8.976,5.489 z" fill="#000000" id="arrow"/>
+</g>
+</svg>
diff --git a/resources/lib/oojs-ui/images/indicators/arrow-rtl.png b/resources/lib/oojs-ui/images/indicators/arrow-rtl.png
new file mode 100644 (file)
index 0000000..eebd509
Binary files /dev/null and b/resources/lib/oojs-ui/images/indicators/arrow-rtl.png differ
diff --git a/resources/lib/oojs-ui/images/indicators/arrow-rtl.svg b/resources/lib/oojs-ui/images/indicators/arrow-rtl.svg
new file mode 100644 (file)
index 0000000..71f73d5
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="12px"
+        height="12px" viewBox="0 0 12 12" style="enable-background:new 0 0 12 12;" xml:space="preserve">
+<g id="rtl" opacity="0.75">
+       <path d="M3.023,5.489 L8.976,8.977 L8.976,2 z" fill="#000000" id="arrow"/>
+</g>
+</svg>
diff --git a/resources/lib/oojs-ui/images/indicators/arrow-up.png b/resources/lib/oojs-ui/images/indicators/arrow-up.png
new file mode 100644 (file)
index 0000000..b827f6d
Binary files /dev/null and b/resources/lib/oojs-ui/images/indicators/arrow-up.png differ
diff --git a/resources/lib/oojs-ui/images/indicators/arrow-up.svg b/resources/lib/oojs-ui/images/indicators/arrow-up.svg
new file mode 100644 (file)
index 0000000..a5d7f38
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="12px"
+        height="12px" viewBox="0 0 12 12" style="enable-background:new 0 0 12 12;" xml:space="preserve">
+<g id="up" style="opacity:0.75;">
+       <polygon id="arrow" style="fill-rule:evenodd;clip-rule:evenodd;" points="5.512,2.006 2,8 9.024,8                "/>
+</g>
+</svg>
diff --git a/resources/lib/oojs-ui/images/indicators/down.png b/resources/lib/oojs-ui/images/indicators/down.png
deleted file mode 100644 (file)
index 47ff54c..0000000
Binary files a/resources/lib/oojs-ui/images/indicators/down.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/images/indicators/down.svg b/resources/lib/oojs-ui/images/indicators/down.svg
deleted file mode 100644 (file)
index c871f60..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="12px"
-        height="12px" viewBox="0 0 12 12" style="enable-background:new 0 0 12 12;" xml:space="preserve">
-<g id="down" style="opacity:0.75;">
-       <polygon id="arrow" style="fill-rule:evenodd;clip-rule:evenodd;" points="2.023,3 5.512,8.953 9,3"/>
-</g>
-</svg>
diff --git a/resources/lib/oojs-ui/images/indicators/up.png b/resources/lib/oojs-ui/images/indicators/up.png
deleted file mode 100644 (file)
index b827f6d..0000000
Binary files a/resources/lib/oojs-ui/images/indicators/up.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/images/indicators/up.svg b/resources/lib/oojs-ui/images/indicators/up.svg
deleted file mode 100644 (file)
index a5d7f38..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="12px"
-        height="12px" viewBox="0 0 12 12" style="enable-background:new 0 0 12 12;" xml:space="preserve">
-<g id="up" style="opacity:0.75;">
-       <polygon id="arrow" style="fill-rule:evenodd;clip-rule:evenodd;" points="5.512,2.006 2,8 9.024,8                "/>
-</g>
-</svg>
index e915ee8..94ebbe3 100644 (file)
@@ -1,7 +1,21 @@
 .oo-ui-dialog {
   background-color: #fff;
   background-color: rgba(255, 255, 255, 0.5);
+  /* Opening and closing animation */
+
   opacity: 0;
+}
+
+.oo-ui-dialog > .oo-ui-window-frame {
+  -webkit-transform: scale(0.5);
+     -moz-transform: scale(0.5);
+      -ms-transform: scale(0.5);
+       -o-transform: scale(0.5);
+          transform: scale(0.5);
+}
+
+.oo-ui-dialog.oo-ui-window-setup,
+.oo-ui-dialog.oo-ui-window-setup > .oo-ui-window-frame {
   -webkit-transition: all 250ms ease-in-out;
      -moz-transition: all 250ms ease-in-out;
       -ms-transition: all 250ms ease-in-out;
@@ -9,6 +23,18 @@
           transition: all 250ms ease-in-out;
 }
 
+.oo-ui-dialog.oo-ui-window-ready {
+  opacity: 1;
+}
+
+.oo-ui-dialog.oo-ui-window-ready > .oo-ui-window-frame {
+  -webkit-transform: scale(1);
+     -moz-transform: scale(1);
+      -ms-transform: scale(1);
+       -o-transform: scale(1);
+          transform: scale(1);
+}
+
 .oo-ui-dialog-content .oo-ui-window-head,
 .oo-ui-dialog-content .oo-ui-window-body,
 .oo-ui-dialog-content .oo-ui-window-foot {
   background-color: #fff;
   border: solid 1px #ccc;
   border-radius: 0.5em;
-  -webkit-transform: scale(0.5);
-     -moz-transform: scale(0.5);
-      -ms-transform: scale(0.5);
-       -o-transform: scale(0.5);
-          transform: scale(0.5);
   box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
-  -webkit-transition: all 250ms ease-in-out;
-     -moz-transition: all 250ms ease-in-out;
-      -ms-transition: all 250ms ease-in-out;
-       -o-transition: all 250ms ease-in-out;
-          transition: all 250ms ease-in-out;
 }
 
 .oo-ui-dialog-small > .oo-ui-window-frame {
   max-height: 690px;
 }
 
-.oo-ui-dialog-open {
-  opacity: 1;
-}
-
-.oo-ui-dialog-open > .oo-ui-window-frame {
-  -webkit-transform: scale(1);
-     -moz-transform: scale(1);
-      -ms-transform: scale(1);
-       -o-transform: scale(1);
-          transform: scale(1);
-}
-
 .oo-ui-dialog-content .oo-ui-window-head,
 .oo-ui-dialog-content .oo-ui-window-foot {
   z-index: 1;
index 6e45cef..0655397 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (99068355d6)
+ * OOjs UI v0.1.0-pre (c5ae888f67)
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: Tue Jun 10 2014 11:03:38 GMT-0700 (PDT)
+ * Date: Wed Jun 11 2014 18:10:09 GMT-0700 (PDT)
  */
 ( function ( OO ) {
 
@@ -1023,20 +1023,29 @@ OO.mixinClass( OO.ui.Window, OO.EventEmitter );
 /* Events */
 
 /**
- * Open window.
+ * Window is setup.
  *
- * Fired after window has been opened.
+ * Fired after the setup process has been executed.
  *
- * @event open
+ * @event setup
  * @param {Object} data Window opening data
  */
 
 /**
- * Close window.
+ * Window is ready.
  *
- * Fired after window has been closed.
+ * Fired after the ready process has been executed.
  *
- * @event close
+ * @event ready
+ * @param {Object} data Window opening data
+ */
+
+/**
+ * Window is torn down
+ *
+ * Fired after the teardown process has been executed.
+ *
+ * @event teardown
  * @param {Object} data Window closing data
  */
 
@@ -1081,7 +1090,7 @@ OO.ui.Window.prototype.isVisible = function () {
  * @return {boolean} Window is opening
  */
 OO.ui.Window.prototype.isOpening = function () {
-       return !!this.opening && this.opening.state() !== 'resolved';
+       return !!this.opening && this.opening.state() === 'pending';
 };
 
 /**
@@ -1090,7 +1099,7 @@ OO.ui.Window.prototype.isOpening = function () {
  * @return {boolean} Window is closing
  */
 OO.ui.Window.prototype.isClosing = function () {
-       return !!this.closing && this.closing.state() !== 'resolved';
+       return !!this.closing && this.closing.state() === 'pending';
 };
 
 /**
@@ -1099,7 +1108,7 @@ OO.ui.Window.prototype.isClosing = function () {
  * @return {boolean} Window is opened
  */
 OO.ui.Window.prototype.isOpened = function () {
-       return !!this.opened && this.opened.state() !== 'resolved';
+       return !!this.opened && this.opened.state() === 'pending';
 };
 
 /**
@@ -1335,22 +1344,18 @@ OO.ui.Window.prototype.open = function ( data ) {
        this.frame.load().done( OO.ui.bind( function () {
                this.$element.show();
                this.visible = true;
-               this.emit( 'opening', data );
                this.getSetupProcess( data ).execute().done( OO.ui.bind( function () {
-                       this.emit( 'open', data );
+                       this.$element.addClass( 'oo-ui-window-setup' );
+                       this.emit( 'setup', data );
                        setTimeout( OO.ui.bind( function () {
-                               // Focus the content div (which has a tabIndex) to inactivate
-                               // (but not clear) selections in the parent frame.
-                               // Must happen after 'open' is emitted (to ensure it is visible)
-                               // but before 'ready' is emitted (so subclasses can give focus to something
-                               // else)
                                this.frame.$content.focus();
                                this.getReadyProcess( data ).execute().done( OO.ui.bind( function () {
+                                       this.$element.addClass( 'oo-ui-window-ready' );
                                        this.emit( 'ready', data );
                                        this.opened = $.Deferred();
-                                       this.opening.resolve( this.opened.promise() );
                                        // Now that we are totally done opening, it's safe to allow closing
                                        this.closing = null;
+                                       this.opening.resolve( this.opened.promise() );
                                }, this ) );
                        }, this ) );
                }, this ) );
@@ -1370,23 +1375,34 @@ OO.ui.Window.prototype.open = function ( data ) {
  * @return {jQuery.Promise} Promise resolved when window is closed
  */
 OO.ui.Window.prototype.close = function ( data ) {
+       var close;
+
        // Return existing promise if already closing or closed
        if ( this.closing ) {
                return this.closing.promise();
        }
 
+       // Close after opening is done if opening is in progress
+       if ( this.opening && this.opening.state() === 'pending' ) {
+               close = OO.ui.bind( function () {
+                       return this.close( data );
+               }, this );
+               return this.opening.then( close, close );
+       }
+
        // Close the window
        // This.closing needs to exist before we emit the closing event so that handlers can call
        // window.close() and trigger the safety check above
        this.closing = $.Deferred();
        this.frame.$content.find( ':focus' ).blur();
-       this.emit( 'closing', data );
+       this.$element.removeClass( 'oo-ui-window-ready' );
        this.getTeardownProcess( data ).execute().done( OO.ui.bind( function () {
+               this.$element.removeClass( 'oo-ui-window-setup' );
+               this.emit( 'teardown', data );
                // To do something different with #opened, resolve/reject #opened in the teardown process
-               if ( this.opened.state() === 'pending' ) {
+               if ( this.opened && this.opened.state() === 'pending' ) {
                        this.opened.resolve();
                }
-               this.emit( 'close', data );
                this.$element.hide();
                this.visible = false;
                this.closing.resolve();
@@ -1444,78 +1460,61 @@ OO.mixinClass( OO.ui.WindowSet, OO.EventEmitter );
 /* Events */
 
 /**
- * @event opening
- * @param {OO.ui.Window} win Window that's being opened
+ * @event setup
+ * @param {OO.ui.Window} win Window that's been setup
  * @param {Object} config Window opening information
  */
 
 /**
- * @event open
- * @param {OO.ui.Window} win Window that's been opened
+ * @event ready
+ * @param {OO.ui.Window} win Window that's ready
  * @param {Object} config Window opening information
  */
 
 /**
- * @event closing
- * @param {OO.ui.Window} win Window that's being closed
- * @param {Object} config Window closing information
- */
-
-/**
- * @event close
- * @param {OO.ui.Window} win Window that's been closed
+ * @event teardown
+ * @param {OO.ui.Window} win Window that's been torn down
  * @param {Object} config Window closing information
  */
 
 /* Methods */
 
 /**
- * Handle a window that's being opened.
+ * Handle a window setup event.
  *
- * @param {OO.ui.Window} win Window that's being opened
+ * @param {OO.ui.Window} win Window that's been setup
  * @param {Object} [config] Window opening information
- * @fires opening
+ * @fires setup
  */
-OO.ui.WindowSet.prototype.onWindowOpening = function ( win, config ) {
+OO.ui.WindowSet.prototype.onWindowSetup = function ( win, config ) {
        if ( this.currentWindow && this.currentWindow !== win ) {
                this.currentWindow.close();
        }
        this.currentWindow = win;
-       this.emit( 'opening', win, config );
+       this.emit( 'setup', win, config );
 };
 
 /**
- * Handle a window that's been opened.
+ * Handle a window ready event.
  *
- * @param {OO.ui.Window} win Window that's been opened
+ * @param {OO.ui.Window} win Window that's ready
  * @param {Object} [config] Window opening information
- * @fires open
+ * @fires ready
  */
-OO.ui.WindowSet.prototype.onWindowOpen = function ( win, config ) {
-       this.emit( 'open', win, config );
+OO.ui.WindowSet.prototype.onWindowReady = function ( win, config ) {
+       this.emit( 'ready', win, config );
 };
 
 /**
- * Handle a window that's being closed.
+ * Handle a window teardown event.
  *
- * @param {OO.ui.Window} win Window that's being closed
+ * @param {OO.ui.Window} win Window that's been torn down
  * @param {Object} [config] Window closing information
- * @fires closing
+ * @fires teardown
  */
-OO.ui.WindowSet.prototype.onWindowClosing = function ( win, config ) {
+OO.ui.WindowSet.prototype.onWindowTeardown = function ( win, config ) {
        this.currentWindow = null;
-       this.emit( 'closing', win, config );
-};
-
-/**
- * Handle a window that's been closed.
- *
- * @param {OO.ui.Window} win Window that's been closed
- * @param {Object} [config] Window closing information
- * @fires close
- */
-OO.ui.WindowSet.prototype.onWindowClose = function ( win, config ) {
-       this.emit( 'close', win, config );
+       this.emit( 'teardown', win, config );
 };
 
 /**
@@ -1562,7 +1561,7 @@ OO.ui.WindowSet.prototype.createWindow = function ( name ) {
  * Connects event handlers and attaches it to the DOM. Calling
  * OO.ui.Window#open will not work until the window is added to the set.
  *
- * @param {OO.ui.Window} win
+ * @param {OO.ui.Window} win Window to add
  */
 OO.ui.WindowSet.prototype.addWindow = function ( win ) {
        if ( this.windowList.indexOf( win ) !== -1 ) {
@@ -1572,10 +1571,9 @@ OO.ui.WindowSet.prototype.addWindow = function ( win ) {
        this.windowList.push( win );
 
        win.connect( this, {
-               'opening': [ 'onWindowOpening', win ],
-               'open': [ 'onWindowOpen', win ],
-               'closing': [ 'onWindowClosing', win ],
-               'close': [ 'onWindowClose', win ]
+               'setup': [ 'onWindowSetup', win ],
+               'ready': [ 'onWindowReady', win ],
+               'teardown': [ 'onWindowTeardown', win ]
        } );
        this.$element.append( win.$element );
 };
@@ -1608,7 +1606,6 @@ OO.ui.Dialog = function OoUiDialog( config ) {
 
        // Events
        this.$element.on( 'mousedown', false );
-       this.connect( this, { 'open': 'onOpen' } );
 
        // Initialization
        this.$element.addClass( 'oo-ui-dialog' );
@@ -1694,13 +1691,6 @@ OO.ui.Dialog.prototype.onFrameDocumentKeyDown = function ( e ) {
        }
 };
 
-/**
- * Handle window open events.
- */
-OO.ui.Dialog.prototype.onOpen = function () {
-       this.$element.addClass( 'oo-ui-dialog-open' );
-};
-
 /**
  * Set dialog size.
  *
@@ -1718,9 +1708,6 @@ OO.ui.Dialog.prototype.setSize = function ( size ) {
                state = name === size;
                cssClass = sizeCssClasses[name];
                this.$element.toggleClass( cssClass, state );
-               if ( this.frame.$content ) {
-                       this.frame.$content.toggleClass( cssClass, state );
-               }
        }
 };
 
@@ -1770,7 +1757,7 @@ OO.ui.Dialog.prototype.getSetupProcess = function ( data ) {
 OO.ui.Dialog.prototype.getTeardownProcess = function ( data ) {
        return OO.ui.Dialog.super.prototype.getTeardownProcess.call( this, data )
                .first( function () {
-                       this.$element.removeClass( 'oo-ui-dialog-open' );
+                       // Wait for closing transition
                        return OO.ui.Process.static.delay( 250 );
                }, this )
                .next( function () {
@@ -2113,7 +2100,7 @@ OO.ui.ConfirmationDialog.prototype.initialize = function () {
                this.cancelButton.$element
        );
 
-       this.connect( this, { 'close': [ 'close', 'cancel' ] } );
+       this.connect( this, { 'teardown': [ 'close', 'cancel' ] } );
 };
 
 /*
@@ -4380,7 +4367,6 @@ OO.ui.GridLayout.prototype.getPanel = function ( x, y ) {
  * @cfg {boolean} [autoFocus=true] Focus on the first focusable element when changing to a page
  * @cfg {boolean} [outlined=false] Show an outline
  * @cfg {boolean} [editable=false] Show controls for adding, removing and reordering pages
- * @cfg {Object[]} [adders] List of adders for controls, each with name, icon and title properties
  */
 OO.ui.BookletLayout = function OoUiBookletLayout( config ) {
        // Initialize configuration
@@ -4399,7 +4385,6 @@ OO.ui.BookletLayout = function OoUiBookletLayout( config ) {
        this.outlined = !!config.outlined;
        if ( this.outlined ) {
                this.editable = !!config.editable;
-               this.adders = config.adders || null;
                this.outlineControlsWidget = null;
                this.outlineWidget = new OO.ui.OutlineWidget( { '$': this.$ } );
                this.outlinePanel = new OO.ui.PanelLayout( { '$': this.$, 'scrollable': true } );
@@ -4410,8 +4395,7 @@ OO.ui.BookletLayout = function OoUiBookletLayout( config ) {
                this.outlineVisible = true;
                if ( this.editable ) {
                        this.outlineControlsWidget = new OO.ui.OutlineControlsWidget(
-                               this.outlineWidget,
-                               { '$': this.$, 'adders': this.adders }
+                               this.outlineWidget, { '$': this.$ }
                        );
                }
        }
@@ -7472,7 +7456,7 @@ OO.ui.OutlineControlsWidget = function OoUiOutlineControlsWidget( outline, confi
 
        // Initialization
        this.$element.addClass( 'oo-ui-outlineControlsWidget' );
-       this.$group.addClass( 'oo-ui-outlineControlsWidget-adders' );
+       this.$group.addClass( 'oo-ui-outlineControlsWidget-items' );
        this.$movers
                .addClass( 'oo-ui-outlineControlsWidget-movers' )
                .append( this.removeButton.$element, this.upButton.$element, this.downButton.$element );
index 79751f4..aa4d42e 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (99068355d6)
+ * OOjs UI v0.1.0-pre (c5ae888f67)
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: Tue Jun 10 2014 11:03:38 GMT-0700 (PDT)
+ * Date: Wed Jun 11 2014 18:10:09 GMT-0700 (PDT)
  */
 
 /* Textures */
   height: 3em;
 }
 
-.oo-ui-outlineControlsWidget-adders,
+.oo-ui-outlineControlsWidget-items,
 .oo-ui-outlineControlsWidget-movers {
   float: left;
   height: 2em;
   background-repeat: no-repeat;
 }
 
-.oo-ui-outlineControlsWidget-adders {
+.oo-ui-outlineControlsWidget-items {
   float: left;
   margin-left: 0;
 }
 
-.oo-ui-outlineControlsWidget-adders .oo-ui-buttonWidget {
+.oo-ui-outlineControlsWidget-items .oo-ui-buttonWidget {
   float: left;
 }
 
 }
 
 .oo-ui-indicator-down {
-  background-image: /* @embed */ url(images/indicators/down.svg);
+  background-image: /* @embed */ url(images/indicators/arrow-down.svg);
+}
+
+.oo-ui-indicator-next {
+  background-image: /* @embed */ url(images/indicators/arrow-ltr.svg);
+}
+
+.oo-ui-indicator-previous {
+  background-image: /* @embed */ url(images/indicators/arrow-rtl.svg);
 }
 
 .oo-ui-indicator-required {
 }
 
 .oo-ui-indicator-up {
-  background-image: /* @embed */ url(images/indicators/up.svg);
+  background-image: /* @embed */ url(images/indicators/arrow-up.svg);
 }
\ No newline at end of file
diff --git a/resources/src/mediawiki.action/mediawiki.action.history.css b/resources/src/mediawiki.action/mediawiki.action.history.css
new file mode 100644 (file)
index 0000000..603a965
--- /dev/null
@@ -0,0 +1,4 @@
+#pagehistory li.before input[name="oldid"],
+#pagehistory li.after input[name="diff"] {
+       visibility: hidden;
+}
index 8aa5a1f..ac48c59 100644 (file)
@@ -12,54 +12,39 @@ jQuery( function ( $ ) {
         * @param e {jQuery.Event}
         */
        function updateDiffRadios() {
-               var diffLi = false, // the li where the diff radio is checked
-                       oldLi = false; // the li where the oldid radio is checked
+               var nextState = 'before',
+                       $li,
+                       $inputs,
+                       $oldidRadio,
+                       $diffRadio;
 
                if ( !$lis.length ) {
                        return true;
                }
 
                $lis
-               .removeClass( 'selected' )
                .each( function () {
-                       var     $li = $( this ),
-                               $inputs = $li.find( 'input[type="radio"]' ),
-                               $oldidRadio = $inputs.filter( '[name="oldid"]' ).eq( 0 ),
-                               $diffRadio = $inputs.filter( '[name="diff"]' ).eq( 0 );
+                       $li = $( this );
+                       $inputs = $li.find( 'input[type="radio"]' );
+                       $oldidRadio = $inputs.filter( '[name="oldid"]' ).eq( 0 );
+                       $diffRadio = $inputs.filter( '[name="diff"]' ).eq( 0 );
+
+                       $li.removeClass( 'selected between before after' );
 
                        if ( !$oldidRadio.length || !$diffRadio.length ) {
                                return true;
                        }
 
                        if ( $oldidRadio.prop( 'checked' ) ) {
-                               oldLi = true;
-                               $li.addClass( 'selected' );
-                               $oldidRadio.css( 'visibility', 'visible' );
-                               $diffRadio.css( 'visibility', 'hidden' );
-
+                               $li.addClass( 'selected after' );
+                               nextState = 'after';
                        } else if ( $diffRadio.prop( 'checked' ) ) {
-                               diffLi = true;
-                               $li.addClass( 'selected' );
-                               $oldidRadio.css( 'visibility', 'hidden' );
-                               $diffRadio.css( 'visibility', 'visible' );
-
-                       // This list item has neither checked
+                               $li.addClass( 'selected ' + nextState );
+                               nextState = 'between';
                        } else {
-                               // We're below the selected radios
-                               if ( diffLi && oldLi ) {
-                                       $oldidRadio.css( 'visibility', 'visible' );
-                                       $diffRadio.css( 'visibility', 'hidden' );
-
-                               // We're between the selected radios
-                               } else if ( diffLi ) {
-                                       $diffRadio.css( 'visibility', 'visible' );
-                                       $oldidRadio.css( 'visibility', 'visible' );
-
-                               // We're above the selected radios
-                               } else {
-                                       $diffRadio.css( 'visibility', 'visible' );
-                                       $oldidRadio.css( 'visibility', 'hidden' );
-                               }
+                               // This list item has neither checked
+                               // apply the appropriate class following the previous item.
+                               $li.addClass( nextState );
                        }
                } );
 
index 6556af9..67e2f33 100644 (file)
        list-style-image: url(@url);
 }
 
-.transition(@string) {
-       -webkit-transition: @string;
-       transition: @string;
+.transition(@value) {
+       -webkit-backface-visibility: hidden; // fixes Chrome 1px movement bug
+       -webkit-transition: @value;
+       -moz-transition: @value;
+       -o-transition: @value;
+       transition: @value;
 }
 
 .box-sizing(@value) {
-       -moz-box-sizing: @value;
        -webkit-box-sizing: @value;
+       -moz-box-sizing: @value;
        box-sizing: @value;
 }
+
+.box-shadow(@value) {
+       -webkit-box-shadow: @value; // Android 2.3+, iOS 4.0.2-4.2, Safari 3-4
+       box-shadow: @value; // Chrome 6+, Firefox 4+, IE 9+, iOS 5+, Opera 10.50+
+}
index 5bd4a89..15f53f0 100644 (file)
@@ -70,7 +70,7 @@ figure[typeof*='mw:Image'] {
                float: none;
        }
 
-       figcaption {
+       figcaption {
                display: table-caption;
                caption-side: bottom;
                /* In mw-core the font-size is duplicated, 94% in thumbiner
@@ -106,9 +106,9 @@ figure[typeof~='mw:Image/Frame'] {
        float: right;
 }
 
-figure[typeof~='mw:Image/Thumb'] img,
-figure[typeof~='mw:Image/Frame'] img,
-.mw-image-border img {
+figure[typeof~='mw:Image/Thumb'] > *:first-child > img,
+figure[typeof~='mw:Image/Frame'] > *:first-child > img,
+.mw-image-border > *:first-child > img {
        border: 1px solid #cccccc;
        margin: 4px;
 }
index 18661de..d456f86 100644 (file)
@@ -1,10 +1,35 @@
+// FIXME: remove @colorProgressiveShadow (shadows should be generated
+// in LESS by dimming the original colors)
+@colorProgressiveShadow: #4091ed;
+
+// White; for background use, and text use on dark backgrounds
 @colorWhite: #fff;
-@colorGrayLight: #ccc;
+// Off-white; for background use on white backgrounds
+@colorOffWhite: #fafafa;
+// Dark gray; for non-text use
 @colorGrayDark: #898989;
+// Light gray; for non-text use
+@colorGrayLight: #ccc;
+// Very light gray; for non-text use
+@colorGrayLighter: #ddd;
+// Lightest gray; for non-text use
+@colorGrayLightest: #eee;
+
+// Dark gray; for body text
 @colorText: #252525;
+// Light gray; for less important body text and links
+@colorTextLight: #696969;
+
+// Blue; for contextual use of a continuing action
 @colorProgressive: #347bff;
-// FIXME: remove @colorProgressiveShadow (shadows should be generated
-// in LESS by dimming the original colors)
-@colorProgressiveShadow: #4091ed;
+// Orange; for contextual use of returning to a past action
+@colorRegressive: #ff7e1e;
+// Green; for contextual use of a positive finalizing action
 @colorConstructive: #00af89;
+// Red; for contextual use of a negative finalizing action
 @colorDestructive: #d11d13;
+
+// Used in mixins to darken contextual colors by the same amount (eg. focus)
+@colorDarkenPercentage: 13.5%;
+// Used in mixins to lighten contextual colors by the same amount (eg. hover)
+@colorLightenPercentage: 13.5%;
\ No newline at end of file
index df51efc..04e88e8 100644 (file)
@@ -20,6 +20,7 @@
 //
 // Styleguide 1.
 
+@import "mediawiki.mixins";
 @import "components/utilities";
 @import "components/vector/forms";
 @import "components/vector/containers";
index c1815a5..c1f1844 100644 (file)
                         * @throws {Error} If any unregistered module or a dependency loop is encountered
                         */
                        function sortDependencies( module, resolved, unresolved ) {
-                               var n, deps, len;
+                               var n, deps, len, skip;
 
                                if ( registry[module] === undefined ) {
                                        throw new Error( 'Unknown dependency: ' + module );
                                }
+
+                               if ( registry[module].skip !== null ) {
+                                       /*jshint evil:true */
+                                       skip = new Function( registry[module].skip );
+                                       registry[module].skip = null;
+                                       if ( skip() ) {
+                                               registry[module].dependencies = [];
+                                               registry[module].state = 'ready';
+                                               handlePending( module );
+                                               return;
+                                       }
+                               }
+
                                // Resolves dynamic loader function and replaces it with its own results
                                if ( $.isFunction( registry[module].dependencies ) ) {
                                        registry[module].dependencies = registry[module].dependencies();
                                 *  names on which this module depends, or a function that returns that array.
                                 * @param {string} [group=null] Group which the module is in
                                 * @param {string} [source='local'] Name of the source
+                                * @param {string} [skip=null] Script body of the skip function
                                 */
-                               register: function ( module, version, dependencies, group, source ) {
+                               register: function ( module, version, dependencies, group, source, skip ) {
                                        var m;
                                        // Allow multiple registration
                                        if ( typeof module === 'object' ) {
                                                dependencies: [],
                                                group: typeof group === 'string' ? group : null,
                                                source: typeof source === 'string' ? source : 'local',
-                                               state: 'registered'
+                                               state: 'registered',
+                                               skip: typeof skip === 'string' ? skip : null
                                        };
                                        if ( typeof dependencies === 'string' ) {
                                                // Allow dependencies to be given as a single module name
index 9544d55..650a52b 100644 (file)
@@ -162,7 +162,6 @@ class VectorTemplate extends BaseTemplate {
                <div id="content" class="mw-body" role="main">
                        <a id="top"></a>
 
-                       <div id="mw-js-message" style="display:none;"<?php $this->html( 'userlangattributes' ) ?>></div>
                        <?php
                        if ( $this->data['sitenotice'] ) {
                                ?>
index 41cb1da..b17d15c 100644 (file)
@@ -1,4 +1,4 @@
-@html-font-size: 1em;
+@html-font-size: 100%;
 
 // Page content
 // FIXME: Use global variable since Echo and CentralNotice use this variable
index f8c4c6c..daf4bd9 100644 (file)
@@ -4,7 +4,6 @@ abstract class ResourceLoaderTestCase extends MediaWikiTestCase {
        protected static function getResourceLoaderContext() {
                $resourceLoader = new ResourceLoader();
                $request = new FauxRequest( array(
-                               'debug' => 'true',
                                'lang' => 'en',
                                'modules' => 'startup',
                                'only' => 'scripts',
@@ -17,6 +16,8 @@ abstract class ResourceLoaderTestCase extends MediaWikiTestCase {
        protected function setUp() {
                parent::setUp();
 
+               ResourceLoader::clearCache();
+
                $this->setMwGlobals( array(
                        // For ResourceLoader::inDebugMode since it doesn't have context
                        'wgResourceLoaderDebug' => true,
@@ -42,6 +43,7 @@ class ResourceLoaderTestModule extends ResourceLoaderModule {
        protected $dependencies = array();
        protected $group = null;
        protected $source = 'local';
+       protected $skipFunction = null;
        protected $targets = array( 'test' );
 
        public function __construct( $options = array() ) {
@@ -61,6 +63,10 @@ class ResourceLoaderTestModule extends ResourceLoaderModule {
        public function getSource() {
                return $this->source;
        }
+
+       public function getSkipFunction() {
+               return $this->skipFunction;
+       }
 }
 
 class ResourceLoaderFileModuleTestModule extends ResourceLoaderFileModule {
diff --git a/tests/phpunit/data/media/Bishzilla_blink.gif b/tests/phpunit/data/media/Bishzilla_blink.gif
new file mode 100644 (file)
index 0000000..13e5536
Binary files /dev/null and b/tests/phpunit/data/media/Bishzilla_blink.gif differ
index 57879f8..ca132a4 100644 (file)
@@ -46,3 +46,12 @@ https://commons.wikimedia.org/wiki/File:Speech_bubbles.svg
 CC BY-SA 3.0
 Jarry1250
 
+Soccer_ball_animated.svg
+https://commons.wikimedia.org/wiki/File:Soccer_ball_animated.svg
+GFDL 1.2 or later, CC-BY-SA 3.0 unported, CC-BY-SA 2.5 generic, CC-BY-SA 2.0 generic, or CC-BY-SA 1.0 generic
+Pumbaa80
+
+Bishzilla_blink.gif
+https://commons.wikimedia.org/wiki/File:Bishzilla_blink.gif
+Public domain
+Bishonen
diff --git a/tests/phpunit/data/media/Soccer_ball_animated.svg b/tests/phpunit/data/media/Soccer_ball_animated.svg
new file mode 100644 (file)
index 0000000..6bd82fc
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE svg>\r
+<svg width="150" height="150" viewBox="-105 -105 210 210" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\r
+   <defs>\r
+      <clipPath id="ball">\r
+         <circle r="100" stroke-width="0"/>\r
+      </clipPath>\r
+      <radialGradient id="shadow1" cx=".4" cy=".3" r=".8">\r
+        <stop offset="0" stop-color="white" stop-opacity="1"/>\r
+        <stop offset=".4" stop-color="white" stop-opacity="1"/>\r
+        <stop offset=".8" stop-color="#EEEEEE" stop-opacity="1"/>\r
+      </radialGradient>\r
+      <radialGradient id="shadow2" cx=".5" cy=".5" r=".5">\r
+        <stop offset="0" stop-color="white" stop-opacity="0"/>\r
+        <stop offset=".8" stop-color="white" stop-opacity="0"/>\r
+        <stop offset=".99" stop-color="black" stop-opacity=".3"/>\r
+        <stop offset="1" stop-color="black" stop-opacity="1"/>\r
+      </radialGradient>\r
+      <g id="black_stuff" stroke-linejoin="round" clip-path="url(#ball)">\r
+         <g fill="black">\r
+            <path d="M 6,-32 Q 26,-28 46,-19 Q 57,-35 64,-47 Q 50,-68 37,-76 Q 17,-75 1,-68 Q 4,-51 6,-32"/>\r
+            <path d="M -26,-2 Q -45,-8 -62,-11 Q -74,5 -76,22 Q -69,40 -50,54 Q -32,47 -17,39 Q -23,15 -26,-2"/>\r
+            <path d="M -95,22 Q -102,12 -102,-8 V 80 H -85 Q -95,45 -95,22"/>\r
+            <path d="M 55,24 Q 41,41 24,52 Q 28,65 31,79 Q 55,78 68,67 Q 78,50 80,35 Q 65,28 55,24"/>\r
+            <path d="M 0,120 L -3,95 Q -25,93 -42,82 Q -50,84 -60,81"/>\r
+            <path d="M -90,-48 Q -80,-52 -68,-49 Q -52,-71 -35,-77 Q -35,-100 -40,-100 H -100"/>\r
+            <path d="M 100,-55 L 87,-37 Q 98,-10 97,5 L 100,6"/>\r
+         </g>\r
+         <g fill="none">\r
+            <path d="M 6,-32 Q -18,-12 -26,-2\r
+                     M 46,-19 Q 54,5 55,24\r
+                     M 64,-47 Q 77,-44 87,-37\r
+                     M 37,-76 Q 39,-90 36,-100\r
+                     M 1,-68 Q -13,-77 -35,-77\r
+                     M -62,-11 Q -67,-25 -68,-49\r
+                     M -76,22 Q -85,24 -95,22\r
+                     M -50,54 Q -49,70 -42,82\r
+                     M -17,39 Q 0,48 24,52\r
+                     M 31,79 Q 20,92 -3,95\r
+                     M 68,67 L 80,80\r
+                     M 80,35 Q 90,25 97,5\r
+            "/>\r
+         </g>\r
+      </g>\r
+   </defs>\r
+   <circle r="100" fill="white" stroke="none"/>\r
+   <circle r="100" fill="url(#shadow1)" stroke="none"/>\r
+   <g><animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0" to="360" begin="0s" dur="3s" repeatCount="indefinite"/>\r
+      <use xlink:href="#black_stuff" stroke="#EEE" stroke-width="7"/>\r
+      <use xlink:href="#black_stuff" stroke="#DDD" stroke-width="4"/>\r
+      <use xlink:href="#black_stuff" stroke="#999" stroke-width="2"/>\r
+      <use xlink:href="#black_stuff" stroke="black" stroke-width="1"/>\r
+   </g>\r
+   <circle r="100" fill="url(#shadow2)" stroke="none"/>\r
+</svg>\r
index 4ed5aa9..8c5f540 100644 (file)
@@ -30,4 +30,43 @@ class ApiMainTest extends ApiTestCase {
                $this->assertThat( $sxe, $this->isInstanceOf( "SimpleXMLElement" ) );
        }
 
+       public static function provideAssert() {
+               $anon = new User();
+               $bot = new User();
+               $bot->setName( 'Bot' );
+               $bot->addToDatabase();
+               $bot->addGroup( 'bot' );
+               $user = new User();
+               $user->setName( 'User' );
+               $user->addToDatabase();
+               return array(
+                       array( $anon, 'user', 'assertuserfailed' ),
+                       array( $user, 'user', false ),
+                       array( $user, 'bot', 'assertbotfailed' ),
+                       array( $bot, 'user', false ),
+                       array( $bot, 'bot', false ),
+               );
+       }
+
+       /**
+        * Tests the assert={user|bot} functionality
+        *
+        * @covers ApiMain::checkAsserts
+        * @dataProvider provideAssert
+        * @param User $user
+        * @param string $assert
+        * @param string|bool $error false if no error expected
+        */
+       public function testAssert( $user, $assert, $error ) {
+               try {
+                       $this->doApiRequest( array(
+                               'action' => 'query',
+                               'assert' => $assert,
+                       ), null, null, $user );
+                       $this->assertFalse( $error ); // That no error was expected
+               } catch ( UsageException $e ) {
+                       $this->assertEquals( $e->getCodeString(), $error );
+               }
+       }
+
 }
diff --git a/tests/phpunit/includes/filerepo/files/FileTest.php b/tests/phpunit/includes/filerepo/files/FileTest.php
new file mode 100644 (file)
index 0000000..36b95ea
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+class FileTest extends MediaWikiMediaTestCase {
+
+       function setUp() {
+               $this->setMWGlobals( 'wgMaxAnimatedGifArea', 9000 );
+               parent::setUp();
+       }
+
+       /**
+        * @param $filename String
+        * @param $expected boolean
+        * @dataProvider providerCanAnimate
+        */
+       function testCanAnimateThumbIfAppropriate( $filename, $expected ) {
+               $file = $this->dataFile( $filename );
+               $this->assertEquals( $file->canAnimateThumbIfAppropriate(), $expected );
+       }
+
+       function providerCanAnimate() {
+               return array(
+                       array( 'nonanimated.gif', true ),
+                       array( 'jpeg-comment-utf.jpg', true ),
+                       array( 'test.tiff', true ),
+                       array( 'Animated_PNG_example_bouncing_beach_ball.png', false ),
+                       array( 'greyscale-png.png', true ),
+                       array( 'Toll_Texas_1.svg', true ),
+                       array( 'LoremIpsum.djvu', true ),
+                       array( '80x60-2layers.xcf', true ),
+                       array( 'Soccer_ball_animated.svg', false ),
+                       array( 'Bishzilla_blink.gif', false ),
+                       array( 'animated.gif', true ),
+               );
+       }
+}
index ebfcba9..96347d9 100644 (file)
@@ -63,10 +63,16 @@ abstract class MediaWikiMediaTestCase extends MediaWikiTestCase {
         *
         * File must be in the path returned by getFilePath()
         * @param $name String File name
-        * @param $type String MIME type
+        * @param $type String MIME type [optional]
         * @return UnregisteredLocalFile
         */
-       protected function dataFile( $name, $type ) {
+       protected function dataFile( $name, $type = null ) {
+               if ( !$type ) {
+                       // Autodetect by file extension for the lazy.
+                       $magic = MimeMagic::singleton();
+                       $parts = explode( $name, '.' );
+                       $type = $magic->guessTypesForExtension( $parts[count( $parts ) - 1]  );
+               }
                return new UnregisteredLocalFile( false, $this->repo,
                        "mwstore://localtesting/data/$name", $type );
        }
index fa63fa6..f06bd6f 100644 (file)
@@ -116,6 +116,17 @@ class SVGMetadataExtractorTest extends MediaWikiTestCase {
                                        ),
                                )
                        ),
+                       array(
+                               "$base/Soccer_ball_animated.svg",
+                               array(
+                                       'width' => 150,
+                                       'height' => 150,
+                                       'originalWidth' => '150',
+                                       'originalHeight' => '150',
+                                       'animated' => true,
+                                       'translations' => array()
+                               ),
+                       ),
                );
        }
 
index c4412de..df08972 100644 (file)
@@ -114,6 +114,67 @@ mw.loader.addSource( {
         "example"
     ]
 ] );'
+                       ) ),
+                       array( array(
+                               'msg' => 'Conditional dependency function',
+                               'modules' => array(
+                                       'test.x.core' => new ResourceLoaderTestModule(),
+                                       'test.x.polyfill' => new ResourceLoaderTestModule( array(
+                                               'skipFunction' => 'return true;'
+                                       ) ),
+                                       'test.y.polyfill' => new ResourceLoaderTestModule( array(
+                                               'skipFunction' =>
+                                                       'return !!(' .
+                                                       '    window.JSON &&' .
+                                                       '    JSON.parse &&' .
+                                                       '    JSON.stringify' .
+                                                       ');'
+                                       ) ),
+                                       'test.z.foo' => new ResourceLoaderTestModule( array(
+                                               'dependencies' => array(
+                                                       'test.x.core',
+                                                       'test.x.polyfil',
+                                                       'test.y.polyfil',
+                                               ),
+                                       ) ),
+                               ),
+                               'out' => '
+mw.loader.addSource( {
+    "local": {
+        "loadScript": "/w/load.php",
+        "apiScript": "/w/api.php"
+    }
+} );mw.loader.register( [
+    [
+        "test.x.core",
+        "1388534400"
+    ],
+    [
+        "test.x.polyfill",
+        "1388534400",
+        [],
+        null,
+        "local",
+        "return true;"
+    ],
+    [
+        "test.y.polyfill",
+        "1388534400",
+        [],
+        null,
+        "local",
+        "return !!(    window.JSON \u0026\u0026    JSON.parse \u0026\u0026    JSON.stringify);"
+    ],
+    [
+        "test.z.foo",
+        "1388534400",
+        [
+            "test.x.core",
+            "test.x.polyfil",
+            "test.y.polyfil"
+        ]
+    ]
+] );',
                        ) ),
                        array( array(
                                // This may seem like an edge case, but a plain MediaWiki core install
@@ -278,4 +339,77 @@ mw.loader.addSource( {
                );
        }
 
+       public static function provideRegistrations() {
+               return array(
+                       array( array(
+                               'test.blank' => new ResourceLoaderTestModule(),
+                               'test.min' => new ResourceLoaderTestModule( array(
+                                       'skipFunction' =>
+                                               'return !!(' .
+                                               '    window.JSON &&' .
+                                               '    JSON.parse &&' .
+                                               '    JSON.stringify' .
+                                               ');',
+                                       'dependencies' => array(
+                                               'test.blank',
+                                       ),
+                               ) ),
+                       ) )
+               );
+       }
+       /**
+        * @dataProvider provideRegistrations
+        */
+       public function testRegistrationsMinified( $modules ) {
+               $this->setMwGlobals( 'wgResourceLoaderDebug', false );
+
+               $context = self::getResourceLoaderContext();
+               $rl = $context->getResourceLoader();
+               $rl->register( $modules );
+               $this->assertEquals(
+'mw.loader.addSource({"local":{"loadScript":"/w/load.php","apiScript":"/w/api.php"}});'
+. 'mw.loader.register(['
+. '["test.blank","1388534400"],'
+. '["test.min","1388534400",["test.blank"],null,"local",'
+. '"return!!(window.JSON\u0026\u0026JSON.parse\u0026\u0026JSON.stringify);"'
+. ']]);',
+                       ResourceLoaderStartUpModule::getModuleRegistrations( $context ),
+                       'Minified output'
+               );
+       }
+
+       /**
+        * @dataProvider provideRegistrations
+        */
+       public function testRegistrationsUnminified( $modules ) {
+               $context = self::getResourceLoaderContext();
+               $rl = $context->getResourceLoader();
+               $rl->register( $modules );
+               $this->assertEquals(
+'mw.loader.addSource( {
+    "local": {
+        "loadScript": "/w/load.php",
+        "apiScript": "/w/api.php"
+    }
+} );mw.loader.register( [
+    [
+        "test.blank",
+        "1388534400"
+    ],
+    [
+        "test.min",
+        "1388534400",
+        [
+            "test.blank"
+        ],
+        null,
+        "local",
+        "return !!(    window.JSON \u0026\u0026    JSON.parse \u0026\u0026    JSON.stringify);"
+    ]
+] );',
+                       ResourceLoaderStartUpModule::getModuleRegistrations( $context ),
+                       'Unminified output'
+               );
+       }
+
 }
index f6eff77..ee729e6 100644 (file)
@@ -30,15 +30,30 @@ require_once __DIR__ . '/../../../includes/Xml.php';
 $moduleImplementations = array(
        'testUsesMissing' => "
 mw.loader.implement( 'testUsesMissing', function () {
-       QUnit.ok( false, 'Module test.usesMissing script should not run.');
+       QUnit.ok( false, 'Module usesMissing script should not run.' );
        QUnit.start();
 }, {}, {});
 ",
 
        'testUsesNestedMissing' => "
 mw.loader.implement( 'testUsesNestedMissing', function () {
-       QUnit.ok( false, 'Module testUsesNestedMissing script should not run.');
+       QUnit.ok( false, 'Module testUsesNestedMissing script should not run.' );
+       QUnit.start();
+}, {}, {});
+",
+
+       'testSkipped' =>"
+mw.loader.implement( 'testSkipped', function () {
+       QUnit.ok( false, 'Module testSkipped was supposed to be skipped.' );
 }, {}, {});
+",
+
+       'testNotSkipped' =>"
+mw.loader.implement( 'testNotSkipped', function () {}, {}, {});
+",
+
+       'testUsesSkippable' =>"
+mw.loader.implement( 'testUsesSkippable', function () {}, {}, {});
 ",
 );
 
index 0f6b445..9681330 100644 (file)
                }
        } ) );
 
+       mw.loader.addSource(
+               'testloader',
+               {
+                       loadScript: QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/load.mock.php' )
+               }
+       );
+
        QUnit.test( 'Initial check', 8, function ( assert ) {
                assert.ok( window.jQuery, 'jQuery defined' );
                assert.ok( window.$, '$ defined' );
        } );
 
        QUnit.asyncTest( 'mw.loader dependency handling', 5, function ( assert ) {
-               mw.loader.addSource(
-                       'testloader',
-                       {
-                               loadScript: QUnit.fixurl( mw.config.get( 'wgScriptPath' ) + '/tests/qunit/data/load.mock.php' )
-                       }
-               );
-
                mw.loader.register( [
                        // [module, version, dependencies, group, source]
                        ['testMissing', '1', [], null, 'testloader'],
                );
        } );
 
+       QUnit.asyncTest( 'mw.loader skin-function handling', 5, function ( assert ) {
+               mw.loader.register( [
+                       // [module, version, dependencies, group, source, skip]
+                       ['testSkipped', '1', [], null, 'testloader', 'return true;'],
+                       ['testNotSkipped', '1', [], null, 'testloader', 'return false;'],
+                       ['testUsesSkippable', '1', ['testSkipped', 'testNotSkipped'], null, 'testloader']
+               ] );
+
+               function verifyModuleStates() {
+                       assert.equal( mw.loader.getState( 'testSkipped' ), 'ready', 'Module is ready when skipped' );
+                       assert.equal( mw.loader.getState( 'testNotSkipped' ), 'ready', 'Module is ready when not skipped but loaded' );
+                       assert.equal( mw.loader.getState( 'testUsesSkippable' ), 'ready', 'Module is ready when skippable dependencies are ready' );
+               }
+
+               mw.loader.using( ['testUsesSkippable'],
+                       function () {
+                               assert.ok( true, 'Success handler should be invoked.' );
+                               assert.ok( true ); // Dummy to match error handler and reach QUnit expect()
+
+                               verifyModuleStates();
+
+                               QUnit.start();
+                       },
+                       function ( e, badmodules ) {
+                               assert.ok( false, 'Error handler should not be invoked.' );
+                               assert.deepEqual( badmodules, [], 'Bad modules as expected.' );
+
+                               verifyModuleStates();
+
+                               QUnit.start();
+                       }
+               );
+       } );
+
        QUnit.asyncTest( 'mw.loader( "//protocol-relative" ) (bug 30825)', 2, function ( assert ) {
                // This bug was actually already fixed in 1.18 and later when discovered in 1.17.
                // Test is for regressions!
index 1526679..4401ead 100644 (file)
                var a = mw.util.jsMessage( 'MediaWiki is <b>Awesome</b>.' );
                this.restoreWarnings();
                assert.ok( a, 'Basic checking of return value' );
-
-               // Clean up
-               $( '#mw-js-message' ).remove();
        } );
 
        QUnit.test( 'validateEmail', 6, function ( assert ) {